Skip to content

Commit cdb3033

Browse files
author
Ingo Molnar
committed
Merge branch 'sched/urgent' into sched/core, to pick up pending v6.7 fixes for the v6.8 merge window
This fix didn't make it upstream in time, pick it up for the v6.8 merge window. Signed-off-by: Ingo Molnar <mingo@kernel.org>
2 parents fbb66ce + f60a631 commit cdb3033

File tree

227 files changed

+2386
-1641
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

227 files changed

+2386
-1641
lines changed

.mailmap

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,10 @@ Gao Xiang <xiang@kernel.org> <gaoxiang25@huawei.com>
191191
Gao Xiang <xiang@kernel.org> <hsiangkao@aol.com>
192192
Gao Xiang <xiang@kernel.org> <hsiangkao@linux.alibaba.com>
193193
Gao Xiang <xiang@kernel.org> <hsiangkao@redhat.com>
194+
Geliang Tang <geliang.tang@linux.dev> <geliang.tang@suse.com>
195+
Geliang Tang <geliang.tang@linux.dev> <geliangtang@xiaomi.com>
196+
Geliang Tang <geliang.tang@linux.dev> <geliangtang@gmail.com>
197+
Geliang Tang <geliang.tang@linux.dev> <geliangtang@163.com>
194198
Georgi Djakov <djakov@kernel.org> <georgi.djakov@linaro.org>
195199
Gerald Schaefer <gerald.schaefer@linux.ibm.com> <geraldsc@de.ibm.com>
196200
Gerald Schaefer <gerald.schaefer@linux.ibm.com> <gerald.schaefer@de.ibm.com>

MAINTAINERS

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6050,10 +6050,8 @@ M: Mikulas Patocka <mpatocka@redhat.com>
60506050
M: dm-devel@lists.linux.dev
60516051
L: dm-devel@lists.linux.dev
60526052
S: Maintained
6053-
W: http://sources.redhat.com/dm
60546053
Q: http://patchwork.kernel.org/project/dm-devel/list/
60556054
T: git git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git
6056-
T: quilt http://people.redhat.com/agk/patches/linux/editing/
60576055
F: Documentation/admin-guide/device-mapper/
60586056
F: drivers/md/Kconfig
60596057
F: drivers/md/Makefile
@@ -9526,6 +9524,7 @@ F: drivers/bus/hisi_lpc.c
95269524
HISILICON NETWORK SUBSYSTEM 3 DRIVER (HNS3)
95279525
M: Yisen Zhuang <yisen.zhuang@huawei.com>
95289526
M: Salil Mehta <salil.mehta@huawei.com>
9527+
M: Jijie Shao <shaojijie@huawei.com>
95299528
L: netdev@vger.kernel.org
95309529
S: Maintained
95319530
W: http://www.hisilicon.com

arch/arc/Kconfig

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ config ARC
4949
select OF
5050
select OF_EARLY_FLATTREE
5151
select PCI_SYSCALL if PCI
52-
select PERF_USE_VMALLOC if ARC_CACHE_VIPT_ALIASING
5352
select HAVE_ARCH_JUMP_LABEL if ISA_ARCV2 && !CPU_ENDIAN_BE32
5453
select TRACE_IRQFLAGS_SUPPORT
5554

@@ -232,10 +231,6 @@ config ARC_CACHE_PAGES
232231
Note that Global I/D ENABLE + Per Page DISABLE works but corollary
233232
Global DISABLE + Per Page ENABLE won't work
234233

235-
config ARC_CACHE_VIPT_ALIASING
236-
bool "Support VIPT Aliasing D$"
237-
depends on ARC_HAS_DCACHE && ISA_ARCOMPACT
238-
239234
endif #ARC_CACHE
240235

241236
config ARC_HAS_ICCM

arch/arc/include/asm/cacheflush.h

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -44,60 +44,17 @@ void dma_cache_wback(phys_addr_t start, unsigned long sz);
4444

4545
#define flush_cache_dup_mm(mm) /* called on fork (VIVT only) */
4646

47-
#ifndef CONFIG_ARC_CACHE_VIPT_ALIASING
48-
4947
#define flush_cache_mm(mm) /* called on munmap/exit */
5048
#define flush_cache_range(mm, u_vstart, u_vend)
5149
#define flush_cache_page(vma, u_vaddr, pfn) /* PF handling/COW-break */
5250

53-
#else /* VIPT aliasing dcache */
54-
55-
/* To clear out stale userspace mappings */
56-
void flush_cache_mm(struct mm_struct *mm);
57-
void flush_cache_range(struct vm_area_struct *vma,
58-
unsigned long start,unsigned long end);
59-
void flush_cache_page(struct vm_area_struct *vma,
60-
unsigned long user_addr, unsigned long page);
61-
62-
/*
63-
* To make sure that userspace mapping is flushed to memory before
64-
* get_user_pages() uses a kernel mapping to access the page
65-
*/
66-
#define ARCH_HAS_FLUSH_ANON_PAGE
67-
void flush_anon_page(struct vm_area_struct *vma,
68-
struct page *page, unsigned long u_vaddr);
69-
70-
#endif /* CONFIG_ARC_CACHE_VIPT_ALIASING */
71-
7251
/*
7352
* A new pagecache page has PG_arch_1 clear - thus dcache dirty by default
7453
* This works around some PIO based drivers which don't call flush_dcache_page
7554
* to record that they dirtied the dcache
7655
*/
7756
#define PG_dc_clean PG_arch_1
7857

79-
#define CACHE_COLORS_NUM 4
80-
#define CACHE_COLORS_MSK (CACHE_COLORS_NUM - 1)
81-
#define CACHE_COLOR(addr) (((unsigned long)(addr) >> (PAGE_SHIFT)) & CACHE_COLORS_MSK)
82-
83-
/*
84-
* Simple wrapper over config option
85-
* Bootup code ensures that hardware matches kernel configuration
86-
*/
87-
static inline int cache_is_vipt_aliasing(void)
88-
{
89-
return IS_ENABLED(CONFIG_ARC_CACHE_VIPT_ALIASING);
90-
}
91-
92-
/*
93-
* checks if two addresses (after page aligning) index into same cache set
94-
*/
95-
#define addr_not_cache_congruent(addr1, addr2) \
96-
({ \
97-
cache_is_vipt_aliasing() ? \
98-
(CACHE_COLOR(addr1) != CACHE_COLOR(addr2)) : 0; \
99-
})
100-
10158
#define copy_to_user_page(vma, page, vaddr, dst, src, len) \
10259
do { \
10360
memcpy(dst, src, len); \

arch/arc/include/asm/entry-arcv2.h

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,4 +291,36 @@
291291
/* M = 8-1 N = 8 */
292292
.endm
293293

294+
.macro SAVE_ABI_CALLEE_REGS
295+
push r13
296+
push r14
297+
push r15
298+
push r16
299+
push r17
300+
push r18
301+
push r19
302+
push r20
303+
push r21
304+
push r22
305+
push r23
306+
push r24
307+
push r25
308+
.endm
309+
310+
.macro RESTORE_ABI_CALLEE_REGS
311+
pop r25
312+
pop r24
313+
pop r23
314+
pop r22
315+
pop r21
316+
pop r20
317+
pop r19
318+
pop r18
319+
pop r17
320+
pop r16
321+
pop r15
322+
pop r14
323+
pop r13
324+
.endm
325+
294326
#endif

arch/arc/include/asm/entry-compact.h

Lines changed: 86 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,91 @@
3333
#include <asm/irqflags-compact.h>
3434
#include <asm/thread_info.h> /* For THREAD_SIZE */
3535

36+
/* Note on the LD/ST addr modes with addr reg wback
37+
*
38+
* LD.a same as LD.aw
39+
*
40+
* LD.a reg1, [reg2, x] => Pre Incr
41+
* Eff Addr for load = [reg2 + x]
42+
*
43+
* LD.ab reg1, [reg2, x] => Post Incr
44+
* Eff Addr for load = [reg2]
45+
*/
46+
47+
.macro PUSHAX aux
48+
lr r9, [\aux]
49+
push r9
50+
.endm
51+
52+
.macro POPAX aux
53+
pop r9
54+
sr r9, [\aux]
55+
.endm
56+
57+
.macro SAVE_R0_TO_R12
58+
push r0
59+
push r1
60+
push r2
61+
push r3
62+
push r4
63+
push r5
64+
push r6
65+
push r7
66+
push r8
67+
push r9
68+
push r10
69+
push r11
70+
push r12
71+
.endm
72+
73+
.macro RESTORE_R12_TO_R0
74+
pop r12
75+
pop r11
76+
pop r10
77+
pop r9
78+
pop r8
79+
pop r7
80+
pop r6
81+
pop r5
82+
pop r4
83+
pop r3
84+
pop r2
85+
pop r1
86+
pop r0
87+
.endm
88+
89+
.macro SAVE_ABI_CALLEE_REGS
90+
push r13
91+
push r14
92+
push r15
93+
push r16
94+
push r17
95+
push r18
96+
push r19
97+
push r20
98+
push r21
99+
push r22
100+
push r23
101+
push r24
102+
push r25
103+
.endm
104+
105+
.macro RESTORE_ABI_CALLEE_REGS
106+
pop r25
107+
pop r24
108+
pop r23
109+
pop r22
110+
pop r21
111+
pop r20
112+
pop r19
113+
pop r18
114+
pop r17
115+
pop r16
116+
pop r15
117+
pop r14
118+
pop r13
119+
.endm
120+
36121
/*--------------------------------------------------------------
37122
* Switch to Kernel Mode stack if SP points to User Mode stack
38123
*
@@ -235,7 +320,7 @@
235320
SWITCH_TO_KERNEL_STK
236321

237322

238-
PUSH 0x003\LVL\()abcd /* Dummy ECR */
323+
st.a 0x003\LVL\()abcd, [sp, -4] /* Dummy ECR */
239324
sub sp, sp, 8 /* skip orig_r0 (not needed)
240325
skip pt_regs->sp, already saved above */
241326

arch/arc/include/asm/entry.h

Lines changed: 4 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -21,133 +21,31 @@
2121
#include <asm/entry-arcv2.h>
2222
#endif
2323

24-
/* Note on the LD/ST addr modes with addr reg wback
25-
*
26-
* LD.a same as LD.aw
27-
*
28-
* LD.a reg1, [reg2, x] => Pre Incr
29-
* Eff Addr for load = [reg2 + x]
30-
*
31-
* LD.ab reg1, [reg2, x] => Post Incr
32-
* Eff Addr for load = [reg2]
33-
*/
34-
35-
.macro PUSH reg
36-
st.a \reg, [sp, -4]
37-
.endm
38-
39-
.macro PUSHAX aux
40-
lr r9, [\aux]
41-
PUSH r9
42-
.endm
43-
44-
.macro POP reg
45-
ld.ab \reg, [sp, 4]
46-
.endm
47-
48-
.macro POPAX aux
49-
POP r9
50-
sr r9, [\aux]
51-
.endm
52-
53-
/*--------------------------------------------------------------
54-
* Helpers to save/restore Scratch Regs:
55-
* used by Interrupt/Exception Prologue/Epilogue
56-
*-------------------------------------------------------------*/
57-
.macro SAVE_R0_TO_R12
58-
PUSH r0
59-
PUSH r1
60-
PUSH r2
61-
PUSH r3
62-
PUSH r4
63-
PUSH r5
64-
PUSH r6
65-
PUSH r7
66-
PUSH r8
67-
PUSH r9
68-
PUSH r10
69-
PUSH r11
70-
PUSH r12
71-
.endm
72-
73-
.macro RESTORE_R12_TO_R0
74-
POP r12
75-
POP r11
76-
POP r10
77-
POP r9
78-
POP r8
79-
POP r7
80-
POP r6
81-
POP r5
82-
POP r4
83-
POP r3
84-
POP r2
85-
POP r1
86-
POP r0
87-
88-
.endm
89-
90-
/*--------------------------------------------------------------
91-
* Helpers to save/restore callee-saved regs:
92-
* used by several macros below
93-
*-------------------------------------------------------------*/
94-
.macro SAVE_R13_TO_R25
95-
PUSH r13
96-
PUSH r14
97-
PUSH r15
98-
PUSH r16
99-
PUSH r17
100-
PUSH r18
101-
PUSH r19
102-
PUSH r20
103-
PUSH r21
104-
PUSH r22
105-
PUSH r23
106-
PUSH r24
107-
PUSH r25
108-
.endm
109-
110-
.macro RESTORE_R25_TO_R13
111-
POP r25
112-
POP r24
113-
POP r23
114-
POP r22
115-
POP r21
116-
POP r20
117-
POP r19
118-
POP r18
119-
POP r17
120-
POP r16
121-
POP r15
122-
POP r14
123-
POP r13
124-
.endm
125-
12624
/*
12725
* save user mode callee regs as struct callee_regs
12826
* - needed by fork/do_signal/unaligned-access-emulation.
12927
*/
13028
.macro SAVE_CALLEE_SAVED_USER
131-
SAVE_R13_TO_R25
29+
SAVE_ABI_CALLEE_REGS
13230
.endm
13331

13432
/*
13533
* restore user mode callee regs as struct callee_regs
13634
* - could have been changed by ptrace tracer or unaligned-access fixup
13735
*/
13836
.macro RESTORE_CALLEE_SAVED_USER
139-
RESTORE_R25_TO_R13
37+
RESTORE_ABI_CALLEE_REGS
14038
.endm
14139

14240
/*
14341
* save/restore kernel mode callee regs at the time of context switch
14442
*/
14543
.macro SAVE_CALLEE_SAVED_KERNEL
146-
SAVE_R13_TO_R25
44+
SAVE_ABI_CALLEE_REGS
14745
.endm
14846

14947
.macro RESTORE_CALLEE_SAVED_KERNEL
150-
RESTORE_R25_TO_R13
48+
RESTORE_ABI_CALLEE_REGS
15149
.endm
15250

15351
/*--------------------------------------------------------------

arch/arc/include/asm/hugepage.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@
1010
#include <linux/types.h>
1111
#include <asm-generic/pgtable-nopmd.h>
1212

13+
/*
14+
* Hugetlb definitions.
15+
*/
16+
#define HPAGE_SHIFT PMD_SHIFT
17+
#define HPAGE_SIZE (_AC(1, UL) << HPAGE_SHIFT)
18+
#define HPAGE_MASK (~(HPAGE_SIZE - 1))
19+
1320
static inline pte_t pmd_pte(pmd_t pmd)
1421
{
1522
return __pte(pmd_val(pmd));

0 commit comments

Comments
 (0)