Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'powerpc-5.11-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux

Pull powerpc fixes from Michael Ellerman:
"One fix for a lack of alignment in our linker script, that can lead to
crashes depending on configuration etc.

One fix for the 32-bit VDSO after the C VDSO conversion.

Thanks to Andreas Schwab, Ariel Marcovitch, and Christophe Leroy"

* tag 'powerpc-5.11-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
powerpc/vdso: Fix clock_gettime_fallback for vdso32
powerpc: Fix alignment bug within the init sections

+23 -1
+15 -1
arch/powerpc/include/asm/vdso/gettimeofday.h
··· 103 103 return do_syscall_2(__NR_gettimeofday, (unsigned long)_tv, (unsigned long)_tz); 104 104 } 105 105 106 + #ifdef __powerpc64__ 107 + 106 108 static __always_inline 107 109 int clock_gettime_fallback(clockid_t _clkid, struct __kernel_timespec *_ts) 108 110 { ··· 117 115 return do_syscall_2(__NR_clock_getres, _clkid, (unsigned long)_ts); 118 116 } 119 117 120 - #ifdef CONFIG_VDSO32 118 + #else 121 119 122 120 #define BUILD_VDSO32 1 121 + 122 + static __always_inline 123 + int clock_gettime_fallback(clockid_t _clkid, struct __kernel_timespec *_ts) 124 + { 125 + return do_syscall_2(__NR_clock_gettime64, _clkid, (unsigned long)_ts); 126 + } 127 + 128 + static __always_inline 129 + int clock_getres_fallback(clockid_t _clkid, struct __kernel_timespec *_ts) 130 + { 131 + return do_syscall_2(__NR_clock_getres_time64, _clkid, (unsigned long)_ts); 132 + } 123 133 124 134 static __always_inline 125 135 int clock_gettime32_fallback(clockid_t _clkid, struct old_timespec32 *_ts)
+8
arch/powerpc/kernel/vmlinux.lds.S
··· 187 187 .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) { 188 188 _sinittext = .; 189 189 INIT_TEXT 190 + 191 + /* 192 + *.init.text might be RO so we must ensure this section ends on 193 + * a page boundary. 194 + */ 195 + . = ALIGN(PAGE_SIZE); 190 196 _einittext = .; 191 197 #ifdef CONFIG_PPC64 192 198 *(.tramp.ftrace.init); ··· 205 199 .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) { 206 200 EXIT_TEXT 207 201 } 202 + 203 + . = ALIGN(PAGE_SIZE); 208 204 209 205 INIT_DATA_SECTION(16) 210 206