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 branch 'akpm' (patches from Andrew)

Merge misc fixes from Andrew Morton:
"14 patches.

Subsystems affected by this patch series: mm (kasan, gup, pagecache,
and kfence), MAINTAINERS, mailmap, nds32, gcov, ocfs2, ia64, and lib"

* emailed patches from Andrew Morton <akpm@linux-foundation.org>:
lib: fix kconfig dependency on ARCH_WANT_FRAME_POINTERS
kfence, x86: fix preemptible warning on KPTI-enabled systems
lib/test_kasan_module.c: suppress unused var warning
kasan: fix conflict with page poisoning
fs: direct-io: fix missing sdio->boundary
ia64: fix user_stack_pointer() for ptrace()
ocfs2: fix deadlock between setattr and dio_end_io_write
gcov: re-fix clang-11+ support
nds32: flush_dcache_page: use page_mapping_file to avoid races with swapoff
mm/gup: check page posion status for coredump.
.mailmap: fix old email addresses
mailmap: update email address for Jordan Crouse
treewide: change my e-mail address, fix my name
MAINTAINERS: update CZ.NIC's Turris information

+114 -70
+7
.mailmap
··· 168 168 Johan Hovold <johan@kernel.org> <johan@hovoldconsulting.com> 169 169 John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> 170 170 John Stultz <johnstul@us.ibm.com> 171 + Jordan Crouse <jordan@cosmicpenguin.net> <jcrouse@codeaurora.org> 171 172 <josh@joshtriplett.org> <josh@freedesktop.org> 172 173 <josh@joshtriplett.org> <josh@kernel.org> 173 174 <josh@joshtriplett.org> <josht@linux.vnet.ibm.com> ··· 254 253 Morten Welinder <welinder@darter.rentec.com> 255 254 Morten Welinder <welinder@troll.com> 256 255 Mythri P K <mythripk@ti.com> 256 + Nadia Yvette Chambers <nyc@holomorphy.com> William Lee Irwin III <wli@holomorphy.com> 257 257 Nathan Chancellor <nathan@kernel.org> <natechancellor@gmail.com> 258 258 Nguyen Anh Quynh <aquynh@gmail.com> 259 + Nicholas Piggin <npiggin@gmail.com> <npiggen@suse.de> 260 + Nicholas Piggin <npiggin@gmail.com> <npiggin@kernel.dk> 261 + Nicholas Piggin <npiggin@gmail.com> <npiggin@suse.de> 262 + Nicholas Piggin <npiggin@gmail.com> <nickpiggin@yahoo.com.au> 263 + Nicholas Piggin <npiggin@gmail.com> <piggin@cyberone.com.au> 259 264 Nicolas Ferre <nicolas.ferre@microchip.com> <nicolas.ferre@atmel.com> 260 265 Nicolas Pitre <nico@fluxnic.net> <nicolas.pitre@linaro.org> 261 266 Nicolas Pitre <nico@fluxnic.net> <nico@linaro.org>
+2 -2
Documentation/ABI/testing/debugfs-moxtet
··· 1 1 What: /sys/kernel/debug/moxtet/input 2 2 Date: March 2019 3 3 KernelVersion: 5.3 4 - Contact: Marek Behún <marek.behun@nic.cz> 4 + Contact: Marek Behún <kabel@kernel.org> 5 5 Description: (Read) Read input from the shift registers, in hexadecimal. 6 6 Returns N+1 bytes, where N is the number of Moxtet connected 7 7 modules. The first byte is from the CPU board itself. ··· 19 19 What: /sys/kernel/debug/moxtet/output 20 20 Date: March 2019 21 21 KernelVersion: 5.3 22 - Contact: Marek Behún <marek.behun@nic.cz> 22 + Contact: Marek Behún <kabel@kernel.org> 23 23 Description: (RW) Read last written value to the shift registers, in 24 24 hexadecimal, or write values to the shift registers, also 25 25 in hexadecimal.
+1 -1
Documentation/ABI/testing/debugfs-turris-mox-rwtm
··· 1 1 What: /sys/kernel/debug/turris-mox-rwtm/do_sign 2 2 Date: Jun 2020 3 3 KernelVersion: 5.8 4 - Contact: Marek Behún <marek.behun@nic.cz> 4 + Contact: Marek Behún <kabel@kernel.org> 5 5 Description: 6 6 7 7 ======= ===========================================================
+3 -3
Documentation/ABI/testing/sysfs-bus-moxtet-devices
··· 1 1 What: /sys/bus/moxtet/devices/moxtet-<name>.<addr>/module_description 2 2 Date: March 2019 3 3 KernelVersion: 5.3 4 - Contact: Marek Behún <marek.behun@nic.cz> 4 + Contact: Marek Behún <kabel@kernel.org> 5 5 Description: (Read) Moxtet module description. Format: string 6 6 7 7 What: /sys/bus/moxtet/devices/moxtet-<name>.<addr>/module_id 8 8 Date: March 2019 9 9 KernelVersion: 5.3 10 - Contact: Marek Behún <marek.behun@nic.cz> 10 + Contact: Marek Behún <kabel@kernel.org> 11 11 Description: (Read) Moxtet module ID. Format: %x 12 12 13 13 What: /sys/bus/moxtet/devices/moxtet-<name>.<addr>/module_name 14 14 Date: March 2019 15 15 KernelVersion: 5.3 16 - Contact: Marek Behún <marek.behun@nic.cz> 16 + Contact: Marek Behún <kabel@kernel.org> 17 17 Description: (Read) Moxtet module name. Format: string
+1 -1
Documentation/ABI/testing/sysfs-class-led-driver-turris-omnia
··· 1 1 What: /sys/class/leds/<led>/device/brightness 2 2 Date: July 2020 3 3 KernelVersion: 5.9 4 - Contact: Marek Behún <marek.behun@nic.cz> 4 + Contact: Marek Behún <kabel@kernel.org> 5 5 Description: (RW) On the front panel of the Turris Omnia router there is also 6 6 a button which can be used to control the intensity of all the 7 7 LEDs at once, so that if they are too bright, user can dim them.
+5 -5
Documentation/ABI/testing/sysfs-firmware-turris-mox-rwtm
··· 1 1 What: /sys/firmware/turris-mox-rwtm/board_version 2 2 Date: August 2019 3 3 KernelVersion: 5.4 4 - Contact: Marek Behún <marek.behun@nic.cz> 4 + Contact: Marek Behún <kabel@kernel.org> 5 5 Description: (Read) Board version burned into eFuses of this Turris Mox board. 6 6 Format: %i 7 7 8 8 What: /sys/firmware/turris-mox-rwtm/mac_address* 9 9 Date: August 2019 10 10 KernelVersion: 5.4 11 - Contact: Marek Behún <marek.behun@nic.cz> 11 + Contact: Marek Behún <kabel@kernel.org> 12 12 Description: (Read) MAC addresses burned into eFuses of this Turris Mox board. 13 13 Format: %pM 14 14 15 15 What: /sys/firmware/turris-mox-rwtm/pubkey 16 16 Date: August 2019 17 17 KernelVersion: 5.4 18 - Contact: Marek Behún <marek.behun@nic.cz> 18 + Contact: Marek Behún <kabel@kernel.org> 19 19 Description: (Read) ECDSA public key (in pubkey hex compressed form) computed 20 20 as pair to the ECDSA private key burned into eFuses of this 21 21 Turris Mox Board. ··· 24 24 What: /sys/firmware/turris-mox-rwtm/ram_size 25 25 Date: August 2019 26 26 KernelVersion: 5.4 27 - Contact: Marek Behún <marek.behun@nic.cz> 27 + Contact: Marek Behún <kabel@kernel.org> 28 28 Description: (Read) RAM size in MiB of this Turris Mox board as was detected 29 29 during manufacturing and burned into eFuses. Can be 512 or 1024. 30 30 Format: %i ··· 32 32 What: /sys/firmware/turris-mox-rwtm/serial_number 33 33 Date: August 2019 34 34 KernelVersion: 5.4 35 - Contact: Marek Behún <marek.behun@nic.cz> 35 + Contact: Marek Behún <kabel@kernel.org> 36 36 Description: (Read) Serial number burned into eFuses of this Turris Mox device. 37 37 Format: %016X
+1 -1
Documentation/devicetree/bindings/leds/cznic,turris-omnia-leds.yaml
··· 7 7 title: CZ.NIC's Turris Omnia LEDs driver 8 8 9 9 maintainers: 10 - - Marek Behún <marek.behun@nic.cz> 10 + - Marek Behún <kabel@kernel.org> 11 11 12 12 description: 13 13 This module adds support for the RGB LEDs found on the front panel of the
+10 -3
MAINTAINERS
··· 1790 1790 F: drivers/pinctrl/pinctrl-gemini.c 1791 1791 F: drivers/rtc/rtc-ftrtc010.c 1792 1792 1793 - ARM/CZ.NIC TURRIS MOX SUPPORT 1794 - M: Marek Behun <marek.behun@nic.cz> 1793 + ARM/CZ.NIC TURRIS SUPPORT 1794 + M: Marek Behun <kabel@kernel.org> 1795 1795 S: Maintained 1796 - W: http://mox.turris.cz 1796 + W: https://www.turris.cz/ 1797 1797 F: Documentation/ABI/testing/debugfs-moxtet 1798 1798 F: Documentation/ABI/testing/sysfs-bus-moxtet-devices 1799 1799 F: Documentation/ABI/testing/sysfs-firmware-turris-mox-rwtm 1800 1800 F: Documentation/devicetree/bindings/bus/moxtet.txt 1801 1801 F: Documentation/devicetree/bindings/firmware/cznic,turris-mox-rwtm.txt 1802 1802 F: Documentation/devicetree/bindings/gpio/gpio-moxtet.txt 1803 + F: Documentation/devicetree/bindings/leds/cznic,turris-omnia-leds.yaml 1804 + F: Documentation/devicetree/bindings/watchdog/armada-37xx-wdt.txt 1803 1805 F: drivers/bus/moxtet.c 1804 1806 F: drivers/firmware/turris-mox-rwtm.c 1807 + F: drivers/leds/leds-turris-omnia.c 1808 + F: drivers/mailbox/armada-37xx-rwtm-mailbox.c 1805 1809 F: drivers/gpio/gpio-moxtet.c 1810 + F: drivers/watchdog/armada_37xx_wdt.c 1811 + F: include/dt-bindings/bus/moxtet.h 1812 + F: include/linux/armada-37xx-rwtm-mailbox.h 1806 1813 F: include/linux/moxtet.h 1807 1814 1808 1815 ARM/EZX SMARTPHONES (A780, A910, A1200, E680, ROKR E2 and ROKR E6)
+1 -1
arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
··· 1 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 2 /* 3 3 * Device Tree file for CZ.NIC Turris Mox Board 4 - * 2019 by Marek Behun <marek.behun@nic.cz> 4 + * 2019 by Marek Behún <kabel@kernel.org> 5 5 */ 6 6 7 7 /dts-v1/;
+1 -7
arch/ia64/include/asm/ptrace.h
··· 54 54 55 55 static inline unsigned long user_stack_pointer(struct pt_regs *regs) 56 56 { 57 - /* FIXME: should this be bspstore + nr_dirty regs? */ 58 - return regs->ar_bspstore; 57 + return regs->r12; 59 58 } 60 59 61 60 static inline int is_syscall_success(struct pt_regs *regs) ··· 78 79 unsigned long __ip = instruction_pointer(regs); \ 79 80 (__ip & ~3UL) + ((__ip & 3UL) << 2); \ 80 81 }) 81 - /* 82 - * Why not default? Because user_stack_pointer() on ia64 gives register 83 - * stack backing store instead... 84 - */ 85 - #define current_user_stack_pointer() (current_pt_regs()->r12) 86 82 87 83 /* given a pointer to a task_struct, return the user's pt_regs */ 88 84 # define task_pt_regs(t) (((struct pt_regs *) ((char *) (t) + IA64_STK_OFFSET)) - 1)
+1 -1
arch/nds32/mm/cacheflush.c
··· 238 238 { 239 239 struct address_space *mapping; 240 240 241 - mapping = page_mapping(page); 241 + mapping = page_mapping_file(page); 242 242 if (mapping && !mapping_mapped(mapping)) 243 243 set_bit(PG_dcache_dirty, &page->flags); 244 244 else {
+6 -1
arch/x86/include/asm/kfence.h
··· 56 56 else 57 57 set_pte(pte, __pte(pte_val(*pte) | _PAGE_PRESENT)); 58 58 59 - /* Flush this CPU's TLB. */ 59 + /* 60 + * Flush this CPU's TLB, assuming whoever did the allocation/free is 61 + * likely to continue running on this CPU. 62 + */ 63 + preempt_disable(); 60 64 flush_tlb_one_kernel(addr); 65 + preempt_enable(); 61 66 return true; 62 67 } 63 68
+2 -2
drivers/bus/moxtet.c
··· 2 2 /* 3 3 * Turris Mox module configuration bus driver 4 4 * 5 - * Copyright (C) 2019 Marek Behun <marek.behun@nic.cz> 5 + * Copyright (C) 2019 Marek Behún <kabel@kernel.org> 6 6 */ 7 7 8 8 #include <dt-bindings/bus/moxtet.h> ··· 879 879 } 880 880 module_exit(moxtet_exit); 881 881 882 - MODULE_AUTHOR("Marek Behun <marek.behun@nic.cz>"); 882 + MODULE_AUTHOR("Marek Behun <kabel@kernel.org>"); 883 883 MODULE_DESCRIPTION("CZ.NIC's Turris Mox module configuration bus"); 884 884 MODULE_LICENSE("GPL v2");
+2 -2
drivers/firmware/turris-mox-rwtm.c
··· 2 2 /* 3 3 * Turris Mox rWTM firmware driver 4 4 * 5 - * Copyright (C) 2019 Marek Behun <marek.behun@nic.cz> 5 + * Copyright (C) 2019 Marek Behún <kabel@kernel.org> 6 6 */ 7 7 8 8 #include <linux/armada-37xx-rwtm-mailbox.h> ··· 547 547 548 548 MODULE_LICENSE("GPL v2"); 549 549 MODULE_DESCRIPTION("Turris Mox rWTM firmware driver"); 550 - MODULE_AUTHOR("Marek Behun <marek.behun@nic.cz>"); 550 + MODULE_AUTHOR("Marek Behun <kabel@kernel.org>");
+2 -2
drivers/gpio/gpio-moxtet.c
··· 2 2 /* 3 3 * Turris Mox Moxtet GPIO expander 4 4 * 5 - * Copyright (C) 2018 Marek Behun <marek.behun@nic.cz> 5 + * Copyright (C) 2018 Marek Behún <kabel@kernel.org> 6 6 */ 7 7 8 8 #include <linux/bitops.h> ··· 174 174 }; 175 175 module_moxtet_driver(moxtet_gpio_driver); 176 176 177 - MODULE_AUTHOR("Marek Behun <marek.behun@nic.cz>"); 177 + MODULE_AUTHOR("Marek Behun <kabel@kernel.org>"); 178 178 MODULE_DESCRIPTION("Turris Mox Moxtet GPIO expander"); 179 179 MODULE_LICENSE("GPL v2");
+2 -2
drivers/leds/leds-turris-omnia.c
··· 2 2 /* 3 3 * CZ.NIC's Turris Omnia LEDs driver 4 4 * 5 - * 2020 by Marek Behun <marek.behun@nic.cz> 5 + * 2020 by Marek Behún <kabel@kernel.org> 6 6 */ 7 7 8 8 #include <linux/i2c.h> ··· 287 287 288 288 module_i2c_driver(omnia_leds_driver); 289 289 290 - MODULE_AUTHOR("Marek Behun <marek.behun@nic.cz>"); 290 + MODULE_AUTHOR("Marek Behun <kabel@kernel.org>"); 291 291 MODULE_DESCRIPTION("CZ.NIC's Turris Omnia LEDs"); 292 292 MODULE_LICENSE("GPL v2");
+2 -2
drivers/mailbox/armada-37xx-rwtm-mailbox.c
··· 2 2 /* 3 3 * rWTM BIU Mailbox driver for Armada 37xx 4 4 * 5 - * Author: Marek Behun <marek.behun@nic.cz> 5 + * Author: Marek Behún <kabel@kernel.org> 6 6 */ 7 7 8 8 #include <linux/device.h> ··· 203 203 204 204 MODULE_LICENSE("GPL v2"); 205 205 MODULE_DESCRIPTION("rWTM BIU Mailbox driver for Armada 37xx"); 206 - MODULE_AUTHOR("Marek Behun <marek.behun@nic.cz>"); 206 + MODULE_AUTHOR("Marek Behun <kabel@kernel.org>");
+2 -2
drivers/watchdog/armada_37xx_wdt.c
··· 2 2 /* 3 3 * Watchdog driver for Marvell Armada 37xx SoCs 4 4 * 5 - * Author: Marek Behun <marek.behun@nic.cz> 5 + * Author: Marek Behún <kabel@kernel.org> 6 6 */ 7 7 8 8 #include <linux/clk.h> ··· 366 366 367 367 module_platform_driver(armada_37xx_wdt_driver); 368 368 369 - MODULE_AUTHOR("Marek Behun <marek.behun@nic.cz>"); 369 + MODULE_AUTHOR("Marek Behun <kabel@kernel.org>"); 370 370 MODULE_DESCRIPTION("Armada 37xx CPU Watchdog"); 371 371 372 372 MODULE_LICENSE("GPL v2");
+3 -2
fs/direct-io.c
··· 812 812 struct buffer_head *map_bh) 813 813 { 814 814 int ret = 0; 815 + int boundary = sdio->boundary; /* dio_send_cur_page may clear it */ 815 816 816 817 if (dio->op == REQ_OP_WRITE) { 817 818 /* ··· 851 850 sdio->cur_page_fs_offset = sdio->block_in_file << sdio->blkbits; 852 851 out: 853 852 /* 854 - * If sdio->boundary then we want to schedule the IO now to 853 + * If boundary then we want to schedule the IO now to 855 854 * avoid metadata seeks. 856 855 */ 857 - if (sdio->boundary) { 856 + if (boundary) { 858 857 ret = dio_send_cur_page(dio, sdio, map_bh); 859 858 if (sdio->bio) 860 859 dio_bio_submit(dio, sdio);
+1 -10
fs/ocfs2/aops.c
··· 2295 2295 struct ocfs2_alloc_context *meta_ac = NULL; 2296 2296 handle_t *handle = NULL; 2297 2297 loff_t end = offset + bytes; 2298 - int ret = 0, credits = 0, locked = 0; 2298 + int ret = 0, credits = 0; 2299 2299 2300 2300 ocfs2_init_dealloc_ctxt(&dealloc); 2301 2301 ··· 2305 2305 end <= i_size_read(inode) && 2306 2306 !dwc->dw_orphaned) 2307 2307 goto out; 2308 - 2309 - /* ocfs2_file_write_iter will get i_mutex, so we need not lock if we 2310 - * are in that context. */ 2311 - if (dwc->dw_writer_pid != task_pid_nr(current)) { 2312 - inode_lock(inode); 2313 - locked = 1; 2314 - } 2315 2308 2316 2309 ret = ocfs2_inode_lock(inode, &di_bh, 1); 2317 2310 if (ret < 0) { ··· 2386 2393 if (meta_ac) 2387 2394 ocfs2_free_alloc_context(meta_ac); 2388 2395 ocfs2_run_deallocs(osb, &dealloc); 2389 - if (locked) 2390 - inode_unlock(inode); 2391 2396 ocfs2_dio_free_write_ctx(inode, dwc); 2392 2397 2393 2398 return ret;
+6 -2
fs/ocfs2/file.c
··· 1245 1245 goto bail_unlock; 1246 1246 } 1247 1247 } 1248 + down_write(&OCFS2_I(inode)->ip_alloc_sem); 1248 1249 handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS + 1249 1250 2 * ocfs2_quota_trans_credits(sb)); 1250 1251 if (IS_ERR(handle)) { 1251 1252 status = PTR_ERR(handle); 1252 1253 mlog_errno(status); 1253 - goto bail_unlock; 1254 + goto bail_unlock_alloc; 1254 1255 } 1255 1256 status = __dquot_transfer(inode, transfer_to); 1256 1257 if (status < 0) 1257 1258 goto bail_commit; 1258 1259 } else { 1260 + down_write(&OCFS2_I(inode)->ip_alloc_sem); 1259 1261 handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS); 1260 1262 if (IS_ERR(handle)) { 1261 1263 status = PTR_ERR(handle); 1262 1264 mlog_errno(status); 1263 - goto bail_unlock; 1265 + goto bail_unlock_alloc; 1264 1266 } 1265 1267 } 1266 1268 ··· 1275 1273 1276 1274 bail_commit: 1277 1275 ocfs2_commit_trans(osb, handle); 1276 + bail_unlock_alloc: 1277 + up_write(&OCFS2_I(inode)->ip_alloc_sem); 1278 1278 bail_unlock: 1279 1279 if (status && inode_locked) { 1280 1280 ocfs2_inode_unlock_tracker(inode, 1, &oh, had_lock);
+1 -1
include/dt-bindings/bus/moxtet.h
··· 2 2 /* 3 3 * Constant for device tree bindings for Turris Mox module configuration bus 4 4 * 5 - * Copyright (C) 2019 Marek Behun <marek.behun@nic.cz> 5 + * Copyright (C) 2019 Marek Behún <kabel@kernel.org> 6 6 */ 7 7 8 8 #ifndef _DT_BINDINGS_BUS_MOXTET_H
+1 -1
include/linux/armada-37xx-rwtm-mailbox.h
··· 2 2 /* 3 3 * rWTM BIU Mailbox driver for Armada 37xx 4 4 * 5 - * Author: Marek Behun <marek.behun@nic.cz> 5 + * Author: Marek Behún <kabel@kernel.org> 6 6 */ 7 7 8 8 #ifndef _LINUX_ARMADA_37XX_RWTM_MAILBOX_H_
+1 -1
include/linux/moxtet.h
··· 2 2 /* 3 3 * Turris Mox module configuration bus driver 4 4 * 5 - * Copyright (C) 2019 Marek Behun <marek.behun@nic.cz> 5 + * Copyright (C) 2019 Marek Behún <kabel@kernel.org> 6 6 */ 7 7 8 8 #ifndef __LINUX_MOXTET_H
+19 -10
kernel/gcov/clang.c
··· 70 70 71 71 u32 ident; 72 72 u32 checksum; 73 + #if CONFIG_CLANG_VERSION < 110000 73 74 u8 use_extra_checksum; 75 + #endif 74 76 u32 cfg_checksum; 75 77 76 78 u32 num_counters; ··· 147 145 148 146 list_add_tail(&info->head, &current_info->functions); 149 147 } 150 - EXPORT_SYMBOL(llvm_gcda_emit_function); 151 148 #else 152 - void llvm_gcda_emit_function(u32 ident, u32 func_checksum, 153 - u8 use_extra_checksum, u32 cfg_checksum) 149 + void llvm_gcda_emit_function(u32 ident, u32 func_checksum, u32 cfg_checksum) 154 150 { 155 151 struct gcov_fn_info *info = kzalloc(sizeof(*info), GFP_KERNEL); 156 152 ··· 158 158 INIT_LIST_HEAD(&info->head); 159 159 info->ident = ident; 160 160 info->checksum = func_checksum; 161 - info->use_extra_checksum = use_extra_checksum; 162 161 info->cfg_checksum = cfg_checksum; 163 162 list_add_tail(&info->head, &current_info->functions); 164 163 } 165 - EXPORT_SYMBOL(llvm_gcda_emit_function); 166 164 #endif 165 + EXPORT_SYMBOL(llvm_gcda_emit_function); 167 166 168 167 void llvm_gcda_emit_arcs(u32 num_counters, u64 *counters) 169 168 { ··· 292 293 !list_is_last(&fn_ptr2->head, &info2->functions)) { 293 294 if (fn_ptr1->checksum != fn_ptr2->checksum) 294 295 return false; 296 + #if CONFIG_CLANG_VERSION < 110000 295 297 if (fn_ptr1->use_extra_checksum != fn_ptr2->use_extra_checksum) 296 298 return false; 297 299 if (fn_ptr1->use_extra_checksum && 298 300 fn_ptr1->cfg_checksum != fn_ptr2->cfg_checksum) 299 301 return false; 302 + #else 303 + if (fn_ptr1->cfg_checksum != fn_ptr2->cfg_checksum) 304 + return false; 305 + #endif 300 306 fn_ptr1 = list_next_entry(fn_ptr1, head); 301 307 fn_ptr2 = list_next_entry(fn_ptr2, head); 302 308 } ··· 533 529 534 530 list_for_each_entry(fi_ptr, &info->functions, head) { 535 531 u32 i; 536 - u32 len = 2; 537 - 538 - if (fi_ptr->use_extra_checksum) 539 - len++; 540 532 541 533 pos += store_gcov_u32(buffer, pos, GCOV_TAG_FUNCTION); 542 - pos += store_gcov_u32(buffer, pos, len); 534 + #if CONFIG_CLANG_VERSION < 110000 535 + pos += store_gcov_u32(buffer, pos, 536 + fi_ptr->use_extra_checksum ? 3 : 2); 537 + #else 538 + pos += store_gcov_u32(buffer, pos, 3); 539 + #endif 543 540 pos += store_gcov_u32(buffer, pos, fi_ptr->ident); 544 541 pos += store_gcov_u32(buffer, pos, fi_ptr->checksum); 542 + #if CONFIG_CLANG_VERSION < 110000 545 543 if (fi_ptr->use_extra_checksum) 546 544 pos += store_gcov_u32(buffer, pos, fi_ptr->cfg_checksum); 545 + #else 546 + pos += store_gcov_u32(buffer, pos, fi_ptr->cfg_checksum); 547 + #endif 547 548 548 549 pos += store_gcov_u32(buffer, pos, GCOV_TAG_COUNTER_BASE); 549 550 pos += store_gcov_u32(buffer, pos, fi_ptr->num_counters * 2);
+3 -3
lib/Kconfig.debug
··· 1363 1363 bool 1364 1364 depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT 1365 1365 select STACKTRACE 1366 - select FRAME_POINTER if !MIPS && !PPC && !ARM && !S390 && !MICROBLAZE && !ARC && !X86 1366 + depends on FRAME_POINTER || MIPS || PPC || S390 || MICROBLAZE || ARM || ARC || X86 1367 1367 select KALLSYMS 1368 1368 select KALLSYMS_ALL 1369 1369 ··· 1665 1665 depends on DEBUG_KERNEL 1666 1666 depends on STACKTRACE_SUPPORT 1667 1667 depends on PROC_FS 1668 - select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM && !ARC && !X86 1668 + depends on FRAME_POINTER || MIPS || PPC || S390 || MICROBLAZE || ARM || ARC || X86 1669 1669 select KALLSYMS 1670 1670 select KALLSYMS_ALL 1671 1671 select STACKTRACE ··· 1918 1918 depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT 1919 1919 depends on !X86_64 1920 1920 select STACKTRACE 1921 - select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM && !ARC && !X86 1921 + depends on FRAME_POINTER || MIPS || PPC || S390 || MICROBLAZE || ARM || ARC || X86 1922 1922 help 1923 1923 Provide stacktrace filter for fault-injection capabilities 1924 1924
+1 -1
lib/test_kasan_module.c
··· 22 22 char *kmem; 23 23 char __user *usermem; 24 24 size_t size = 10; 25 - int unused; 25 + int __maybe_unused unused; 26 26 27 27 kmem = kmalloc(size, GFP_KERNEL); 28 28 if (!kmem)
+4
mm/gup.c
··· 1535 1535 FOLL_FORCE | FOLL_DUMP | FOLL_GET); 1536 1536 if (locked) 1537 1537 mmap_read_unlock(mm); 1538 + 1539 + if (ret == 1 && is_page_poisoned(page)) 1540 + return NULL; 1541 + 1538 1542 return (ret == 1) ? page : NULL; 1539 1543 } 1540 1544 #endif /* CONFIG_ELF_CORE */
+20
mm/internal.h
··· 97 97 set_page_count(page, 1); 98 98 } 99 99 100 + /* 101 + * When kernel touch the user page, the user page may be have been marked 102 + * poison but still mapped in user space, if without this page, the kernel 103 + * can guarantee the data integrity and operation success, the kernel is 104 + * better to check the posion status and avoid touching it, be good not to 105 + * panic, coredump for process fatal signal is a sample case matching this 106 + * scenario. Or if kernel can't guarantee the data integrity, it's better 107 + * not to call this function, let kernel touch the poison page and get to 108 + * panic. 109 + */ 110 + static inline bool is_page_poisoned(struct page *page) 111 + { 112 + if (PageHWPoison(page)) 113 + return true; 114 + else if (PageHuge(page) && PageHWPoison(compound_head(page))) 115 + return true; 116 + 117 + return false; 118 + } 119 + 100 120 extern unsigned long highest_memmap_pfn; 101 121 102 122 /*
+3 -1
mm/page_poison.c
··· 77 77 void *addr; 78 78 79 79 addr = kmap_atomic(page); 80 + kasan_disable_current(); 80 81 /* 81 82 * Page poisoning when enabled poisons each and every page 82 83 * that is freed to buddy. Thus no extra check is done to 83 84 * see if a page was poisoned. 84 85 */ 85 - check_poison_mem(addr, PAGE_SIZE); 86 + check_poison_mem(kasan_reset_tag(addr), PAGE_SIZE); 87 + kasan_enable_current(); 86 88 kunmap_atomic(addr); 87 89 } 88 90