# git rev-parse -q --verify 3e7aeb78ab01c2c2f0e1f784e5ddec88fcd3d106^{commit} 3e7aeb78ab01c2c2f0e1f784e5ddec88fcd3d106 already have revision, skipping fetch # git checkout -q -f -B kisskb 3e7aeb78ab01c2c2f0e1f784e5ddec88fcd3d106 # git clean -qxdf # < git log -1 # commit 3e7aeb78ab01c2c2f0e1f784e5ddec88fcd3d106 # Merge: de927f6c0b07 a7fe0881d9b7 # Author: Linus Torvalds # Date: Thu Jan 11 10:07:29 2024 -0800 # # Merge tag 'net-next-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next # # Pull networking updates from Paolo Abeni: # "The most interesting thing is probably the networking structs # reorganization and a significant amount of changes is around # self-tests. # # Core & protocols: # # - Analyze and reorganize core networking structs (socks, netdev, # netns, mibs) to optimize cacheline consumption and set up build # time warnings to safeguard against future header changes # # This improves TCP performances with many concurrent connections up # to 40% # # - Add page-pool netlink-based introspection, exposing the memory # usage and recycling stats. This helps indentify bad PP users and # possible leaks # # - Refine TCP/DCCP source port selection to no longer favor even # source port at connect() time when IP_LOCAL_PORT_RANGE is set. This # lowers the time taken by connect() for hosts having many active # connections to the same destination # # - Refactor the TCP bind conflict code, shrinking related socket # structs # # - Refactor TCP SYN-Cookie handling, as a preparation step to allow # arbitrary SYN-Cookie processing via eBPF # # - Tune optmem_max for 0-copy usage, increasing the default value to # 128KB and namespecifying it # # - Allow coalescing for cloned skbs coming from page pools, improving # RX performances with some common configurations # # - Reduce extension header parsing overhead at GRO time # # - Add bridge MDB bulk deletion support, allowing user-space to # request the deletion of matching entries # # - Reorder nftables struct members, to keep data accessed by the # datapath first # # - Introduce TC block ports tracking and use. This allows supporting # multicast-like behavior at the TC layer # # - Remove UAPI support for retired TC qdiscs (dsmark, CBQ and ATM) and # classifiers (RSVP and tcindex) # # - More data-race annotations # # - Extend the diag interface to dump TCP bound-only sockets # # - Conditional notification of events for TC qdisc class and actions # # - Support for WPAN dynamic associations with nearby devices, to form # a sub-network using a specific PAN ID # # - Implement SMCv2.1 virtual ISM device support # # - Add support for Batman-avd mulicast packet type # # BPF: # # - Tons of verifier improvements: # - BPF register bounds logic and range support along with a large # test suite # - log improvements # - complete precision tracking support for register spills # - track aligned STACK_ZERO cases as imprecise spilled registers. # This improves the verifier "instructions processed" metric from # single digit to 50-60% for some programs # - support for user's global BPF subprogram arguments with few # commonly requested annotations for a better developer # experience # - support tracking of BPF_JNE which helps cases when the compiler # transforms (unsigned) "a > 0" into "if a == 0 goto xxx" and the # like # - several fixes # # - Add initial TX metadata implementation for AF_XDP with support in # mlx5 and stmmac drivers. Two types of offloads are supported right # now, that is, TX timestamp and TX checksum offload # # - Fix kCFI bugs in BPF all forms of indirect calls from BPF into # kernel and from kernel into BPF work with CFI enabled. This allows # BPF to work with CONFIG_FINEIBT=y # # - Change BPF verifier logic to validate global subprograms lazily # instead of unconditionally before the main program, so they can be # guarded using BPF CO-RE techniques # # - Support uid/gid options when mounting bpffs # # - Add a new kfunc which acquires the associated cgroup of a task # within a specific cgroup v1 hierarchy where the latter is # identified by its id # # - Extend verifier to allow bpf_refcount_acquire() of a map value # field obtained via direct load which is a use-case needed in # sched_ext # # - Add BPF link_info support for uprobe multi link along with bpftool # integration for the latter # # - Support for VLAN tag in XDP hints # # - Remove deprecated bpfilter kernel leftovers given the project is # developed in user-space (https://github.com/facebook/bpfilter) # # Misc: # # - Support for parellel TC self-tests execution # # - Increase MPTCP self-tests coverage # # - Updated the bridge documentation, including several so-far # undocumented features # # - Convert all the net self-tests to run in unique netns, to avoid # random failures due to conflict and allow concurrent runs # # - Add TCP-AO self-tests # # - Add kunit tests for both cfg80211 and mac80211 # # - Autogenerate Netlink families documentation from YAML spec # # - Add yml-gen support for fixed headers and recursive nests, the tool # can now generate user-space code for all genetlink families for # which we have specs # # - A bunch of additional module descriptions fixes # # - Catch incorrect freeing of pages belonging to a page pool # # Driver API: # # - Rust abstractions for network PHY drivers; do not cover yet the # full C API, but already allow implementing functional PHY drivers # in rust # # - Introduce queue and NAPI support in the netdev Netlink interface, # allowing complete access to the device <> NAPIs <> queues # relationship # # - Introduce notifications filtering for devlink to allow control # application scale to thousands of instances # # - Improve PHY validation, requesting rate matching information for # each ethtool link mode supported by both the PHY and host # # - Add support for ethtool symmetric-xor RSS hash # # - ACPI based Wifi band RFI (WBRF) mitigation feature for the AMD # platform # # - Expose pin fractional frequency offset value over new DPLL generic # netlink attribute # # - Convert older drivers to platform remove callback returning void # # - Add support for PHY package MMD read/write # # New hardware / drivers: # # - Ethernet: # - Octeon CN10K devices # - Broadcom 5760X P7 # - Qualcomm SM8550 SoC # - Texas Instrument DP83TG720S PHY # # - Bluetooth: # - IMC Networks Bluetooth radio # # Removed: # # - WiFi: # - libertas 16-bit PCMCIA support # - Atmel at76c50x drivers # - HostAP ISA/PCMCIA style 802.11b driver # - zd1201 802.11b USB dongles # - Orinoco ISA/PCMCIA 802.11b driver # - Aviator/Raytheon driver # - Planet WL3501 driver # - RNDIS USB 802.11b driver # # Driver updates: # # - Ethernet high-speed NICs: # - Intel (100G, ice, idpf): # - allow one by one port representors creation and removal # - add temperature and clock information reporting # - add get/set for ethtool's header split ringparam # - add again FW logging # - adds support switchdev hardware packet mirroring # - iavf: implement symmetric-xor RSS hash # - igc: add support for concurrent physical and free-running # timers # - i40e: increase the allowable descriptors # - nVidia/Mellanox: # - Preparation for Socket-Direct multi-dev netdev. That will # allow in future releases combining multiple PFs devices # attached to different NUMA nodes under the same netdev # - Broadcom (bnxt): # - TX completion handling improvements # - add basic ntuple filter support # - reduce MSIX vectors usage for MQPRIO offload # - add VXLAN support, USO offload and TX coalesce completion # for P7 # - Marvell Octeon EP: # - xmit-more support # - add PF-VF mailbox support and use it for FW notifications # for VFs # - Wangxun (ngbe/txgbe): # - implement ethtool functions to operate pause param, ring # param, coalesce channel number and msglevel # - Netronome/Corigine (nfp): # - add flow-steering support # - support UDP segmentation offload # # - Ethernet NICs embedded, slower, virtual: # - Xilinx AXI: remove duplicate DMA code adopting the dma engine # driver # - stmmac: add support for HW-accelerated VLAN stripping # - TI AM654x sw: add mqprio, frame preemption & coalescing # - gve: add support for non-4k page sizes. # - virtio-net: support dynamic coalescing moderation # # - nVidia/Mellanox Ethernet datacenter switches: # - allow firmware upgrade without a reboot # - more flexible support for bridge flooding via the compressed # FID flooding mode # # - Ethernet embedded switches: # - Microchip: # - fine-tune flow control and speed configurations in KSZ8xxx # - KSZ88X3: enable setting rmii reference # - Renesas: # - add jumbo frames support # - Marvell: # - 88E6xxx: add "eth-mac" and "rmon" stats support # # - Ethernet PHYs: # - aquantia: add firmware load support # - at803x: refactor the driver to simplify adding support for more # chip variants # - NXP C45 TJA11xx: Add MACsec offload support # # - Wifi: # - MediaTek (mt76): # - NVMEM EEPROM improvements # - mt7996 Extremely High Throughput (EHT) improvements # - mt7996 Wireless Ethernet Dispatcher (WED) support # - mt7996 36-bit DMA support # - Qualcomm (ath12k): # - support for a single MSI vector # - WCN7850: support AP mode # - Intel (iwlwifi): # - new debugfs file fw_dbg_clear # - allow concurrent P2P operation on DFS channels # # - Bluetooth: # - QCA2066: support HFP offload # - ISO: more broadcast-related improvements # - NXP: better recovery in case receiver/transmitter get out of sync" # # * tag 'net-next-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1714 commits) # lan78xx: remove redundant statement in lan78xx_get_eee # lan743x: remove redundant statement in lan743x_ethtool_get_eee # bnxt_en: Fix RCU locking for ntuple filters in bnxt_rx_flow_steer() # bnxt_en: Fix RCU locking for ntuple filters in bnxt_srxclsrldel() # bnxt_en: Remove unneeded variable in bnxt_hwrm_clear_vnic_filter() # tcp: Revert no longer abort SYN_SENT when receiving some ICMP # Revert "mlx5 updates 2023-12-20" # Revert "net: stmmac: Enable Per DMA Channel interrupt" # ipvlan: Remove usage of the deprecated ida_simple_xx() API # ipvlan: Fix a typo in a comment # net/sched: Remove ipt action tests # net: stmmac: Use interrupt mode INTM=1 for per channel irq # net: stmmac: Add support for TX/RX channel interrupt # net: stmmac: Make MSI interrupt routine generic # dt-bindings: net: snps,dwmac: per channel irq # net: phy: at803x: make read_status more generic # net: phy: at803x: add support for cdt cross short test for qca808x # net: phy: at803x: refactor qca808x cable test get status function # net: phy: at803x: generalize cdt fault length function # net: ethernet: cortina: Drop TSO support # ... # < /opt/cross/kisskb/x86-64--glibc--bleeding-edge-2022.08-1/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/x86-64--glibc--bleeding-edge-2022.08-1/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 3e7aeb78ab01c2c2f0e1f784e5ddec88fcd3d106 # make -s -j 40 ARCH=um O=/kisskb/build/linus_defconfig_um-x86_64-gcc12 CROSS_COMPILE=/opt/cross/kisskb/x86-64--glibc--bleeding-edge-2022.08-1/bin/x86_64-linux- SUBARCH=x86_64 defconfig # < make -s -j 40 ARCH=um O=/kisskb/build/linus_defconfig_um-x86_64-gcc12 CROSS_COMPILE=/opt/cross/kisskb/x86-64--glibc--bleeding-edge-2022.08-1/bin/x86_64-linux- SUBARCH=x86_64 help # make -s -j 40 ARCH=um O=/kisskb/build/linus_defconfig_um-x86_64-gcc12 CROSS_COMPILE=/opt/cross/kisskb/x86-64--glibc--bleeding-edge-2022.08-1/bin/x86_64-linux- SUBARCH=x86_64 olddefconfig # make -s -j 40 ARCH=um O=/kisskb/build/linus_defconfig_um-x86_64-gcc12 CROSS_COMPILE=/opt/cross/kisskb/x86-64--glibc--bleeding-edge-2022.08-1/bin/x86_64-linux- SUBARCH=x86_64 /kisskb/src/arch/x86/um/user-offsets.c:17:6: warning: no previous prototype for ‘foo’ [-Wmissing-prototypes] 17 | void foo(void) | ^~~ In file included from /kisskb/src/arch/um/kernel/asm-offsets.c:1: /kisskb/src/arch/x86/um/shared/sysdep/kernel-offsets.h:9:6: warning: no previous prototype for ‘foo’ [-Wmissing-prototypes] 9 | void foo(void) | ^~~ /kisskb/src/arch/x86/um/bugs_64.c:9:6: warning: no previous prototype for ‘arch_check_bugs’ [-Wmissing-prototypes] 9 | void arch_check_bugs(void) | ^~~~~~~~~~~~~~~ /kisskb/src/arch/x86/um/bugs_64.c:13:6: warning: no previous prototype for ‘arch_examine_signal’ [-Wmissing-prototypes] 13 | void arch_examine_signal(int sig, struct uml_pt_regs *regs) | ^~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/x86/um/fault.c:18:5: warning: no previous prototype for ‘arch_fixup’ [-Wmissing-prototypes] 18 | int arch_fixup(unsigned long address, struct uml_pt_regs *regs) | ^~~~~~~~~~ /kisskb/src/arch/x86/um/os-Linux/registers.c:146:15: warning: no previous prototype for ‘get_thread_reg’ [-Wmissing-prototypes] 146 | unsigned long get_thread_reg(int reg, jmp_buf *buf) | ^~~~~~~~~~~~~~ /kisskb/src/arch/x86/um/vdso/um_vdso.c:16:5: warning: no previous prototype for ‘__vdso_clock_gettime’ [-Wmissing-prototypes] 16 | int __vdso_clock_gettime(clockid_t clock, struct __kernel_old_timespec *ts) | ^~~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/x86/um/vdso/um_vdso.c:30:5: warning: no previous prototype for ‘__vdso_gettimeofday’ [-Wmissing-prototypes] 30 | int __vdso_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz) | ^~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/x86/um/vdso/um_vdso.c:44:21: warning: no previous prototype for ‘__vdso_time’ [-Wmissing-prototypes] 44 | __kernel_old_time_t __vdso_time(__kernel_old_time_t *t) | ^~~~~~~~~~~ /kisskb/src/arch/x86/um/vdso/um_vdso.c:57:1: warning: no previous prototype for ‘__vdso_getcpu’ [-Wmissing-prototypes] 57 | __vdso_getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *unused) | ^~~~~~~~~~~~~ /kisskb/src/arch/x86/um/os-Linux/mcontext.c:7:6: warning: no previous prototype for ‘get_regs_from_mc’ [-Wmissing-prototypes] 7 | void get_regs_from_mc(struct uml_pt_regs *regs, mcontext_t *mc) | ^~~~~~~~~~~~~~~~ /kisskb/src/arch/x86/um/os-Linux/prctl.c:9:5: warning: no previous prototype for ‘os_arch_prctl’ [-Wmissing-prototypes] 9 | int os_arch_prctl(int pid, int option, unsigned long *arg2) | ^~~~~~~~~~~~~ /kisskb/src/arch/um/os-Linux/skas/process.c:107:6: warning: no previous prototype for ‘wait_stub_done’ [-Wmissing-prototypes] 107 | void wait_stub_done(int pid) | ^~~~~~~~~~~~~~ /kisskb/src/arch/um/os-Linux/skas/process.c:728:6: warning: no previous prototype for ‘__switch_mm’ [-Wmissing-prototypes] 728 | void __switch_mm(struct mm_id *mm_idp) | ^~~~~~~~~~~ /kisskb/src/arch/um/kernel/skas/mmu.c:17:5: warning: no previous prototype for ‘init_new_context’ [-Wmissing-prototypes] 17 | int init_new_context(struct task_struct *task, struct mm_struct *mm) | ^~~~~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/skas/mmu.c:60:6: warning: no previous prototype for ‘destroy_context’ [-Wmissing-prototypes] 60 | void destroy_context(struct mm_struct *mm) | ^~~~~~~~~~~~~~~ /kisskb/src/arch/um/os-Linux/drivers/ethertap_kern.c:66:5: warning: no previous prototype for ‘ethertap_setup’ [-Wmissing-prototypes] 66 | int ethertap_setup(char *str, char **mac_out, void *data) | ^~~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/skas/process.c:36:12: warning: no previous prototype for ‘start_uml’ [-Wmissing-prototypes] 36 | int __init start_uml(void) | ^~~~~~~~~ /kisskb/src/arch/um/os-Linux/drivers/tuntap_kern.c:56:5: warning: no previous prototype for ‘tuntap_setup’ [-Wmissing-prototypes] 56 | int tuntap_setup(char *str, char **mac_out, void *data) | ^~~~~~~~~~~~ /kisskb/src/arch/x86/um/ptrace_64.c:111:5: warning: no previous prototype for ‘poke_user’ [-Wmissing-prototypes] 111 | int poke_user(struct task_struct *child, long addr, long data) | ^~~~~~~~~ /kisskb/src/arch/x86/um/ptrace_64.c:171:5: warning: no previous prototype for ‘peek_user’ [-Wmissing-prototypes] 171 | int peek_user(struct task_struct *child, long addr, long data) | ^~~~~~~~~ /kisskb/src/arch/x86/um/ptrace_64.c:192:5: warning: no previous prototype for ‘is_syscall’ [-Wmissing-prototypes] 192 | int is_syscall(unsigned long addr) | ^~~~~~~~~~ /kisskb/src/arch/um/os-Linux/main.c:187:7: warning: no previous prototype for ‘__wrap_malloc’ [-Wmissing-prototypes] 187 | void *__wrap_malloc(int size) | ^~~~~~~~~~~~~ /kisskb/src/arch/um/os-Linux/main.c:208:7: warning: no previous prototype for ‘__wrap_calloc’ [-Wmissing-prototypes] 208 | void *__wrap_calloc(int n, int size) | ^~~~~~~~~~~~~ /kisskb/src/arch/um/os-Linux/main.c:222:6: warning: no previous prototype for ‘__wrap_free’ [-Wmissing-prototypes] 222 | void __wrap_free(void *ptr) | ^~~~~~~~~~~ /kisskb/src/arch/um/os-Linux/mem.c:28:6: warning: no previous prototype for ‘kasan_map_memory’ [-Wmissing-prototypes] 28 | void kasan_map_memory(void *start, size_t len) | ^~~~~~~~~~~~~~~~ /kisskb/src/arch/um/os-Linux/mem.c:212:13: warning: no previous prototype for ‘check_tmpexec’ [-Wmissing-prototypes] 212 | void __init check_tmpexec(void) | ^~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/mem.c:202:8: warning: no previous prototype for ‘pgd_alloc’ [-Wmissing-prototypes] 202 | pgd_t *pgd_alloc(struct mm_struct *mm) | ^~~~~~~~~ /kisskb/src/arch/um/kernel/mem.c:215:7: warning: no previous prototype for ‘uml_kmalloc’ [-Wmissing-prototypes] 215 | void *uml_kmalloc(int size, int flags) | ^~~~~~~~~~~ /kisskb/src/arch/x86/um/signal.c:560:6: warning: no previous prototype for ‘sys_rt_sigreturn’ [-Wmissing-prototypes] 560 | long sys_rt_sigreturn(void) | ^~~~~~~~~~~~~~~~ /kisskb/src/arch/um/os-Linux/signal.c:75:6: warning: no previous prototype for ‘sig_handler’ [-Wmissing-prototypes] 75 | void sig_handler(int sig, struct siginfo *si, mcontext_t *mc) | ^~~~~~~~~~~ /kisskb/src/arch/um/os-Linux/signal.c:111:6: warning: no previous prototype for ‘timer_alarm_handler’ [-Wmissing-prototypes] 111 | void timer_alarm_handler(int sig, struct siginfo *unused_si, mcontext_t *mc) | ^~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/um/os-Linux/start_up.c:376:12: warning: no previous prototype for ‘parse_iomem’ [-Wmissing-prototypes] 376 | int __init parse_iomem(char *str, int *add) | ^~~~~~~~~~~ /kisskb/src/arch/um/kernel/process.c:51:5: warning: no previous prototype for ‘pid_to_processor_id’ [-Wmissing-prototypes] 51 | int pid_to_processor_id(int pid) | ^~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/process.c:87:7: warning: no previous prototype for ‘__switch_to’ [-Wmissing-prototypes] 87 | void *__switch_to(struct task_struct *from, struct task_struct *to) | ^~~~~~~~~~~ /kisskb/src/arch/um/kernel/process.c:140:6: warning: no previous prototype for ‘fork_handler’ [-Wmissing-prototypes] 140 | void fork_handler(void) | ^~~~~~~~~~~~ /kisskb/src/arch/um/kernel/process.c:217:6: warning: no previous prototype for ‘arch_cpu_idle’ [-Wmissing-prototypes] 217 | void arch_cpu_idle(void) | ^~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/process.c:253:5: warning: no previous prototype for ‘copy_to_user_proc’ [-Wmissing-prototypes] 253 | int copy_to_user_proc(void __user *to, void *from, int size) | ^~~~~~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/process.c:263:5: warning: no previous prototype for ‘clear_user_proc’ [-Wmissing-prototypes] 263 | int clear_user_proc(void __user *buf, int size) | ^~~~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/process.c:271:6: warning: no previous prototype for ‘set_using_sysemu’ [-Wmissing-prototypes] 271 | void set_using_sysemu(int value) | ^~~~~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/process.c:278:5: warning: no previous prototype for ‘get_using_sysemu’ [-Wmissing-prototypes] 278 | int get_using_sysemu(void) | ^~~~~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/process.c:316:12: warning: no previous prototype for ‘make_proc_sysemu’ [-Wmissing-prototypes] 316 | int __init make_proc_sysemu(void) | ^~~~~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/process.c:356:15: warning: no previous prototype for ‘arch_align_stack’ [-Wmissing-prototypes] 356 | unsigned long arch_align_stack(unsigned long sp) | ^~~~~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/reboot.c:45:6: warning: no previous prototype for ‘machine_restart’ [-Wmissing-prototypes] 45 | void machine_restart(char * __unused) | ^~~~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/reboot.c:51:6: warning: no previous prototype for ‘machine_power_off’ [-Wmissing-prototypes] 51 | void machine_power_off(void) | ^~~~~~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/reboot.c:57:6: warning: no previous prototype for ‘machine_halt’ [-Wmissing-prototypes] 57 | void machine_halt(void) | ^~~~~~~~~~~~ /kisskb/src/arch/x86/um/syscalls_64.c:84:6: warning: no previous prototype for ‘arch_switch_to’ [-Wmissing-prototypes] 84 | void arch_switch_to(struct task_struct *to) | ^~~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/tlb.c:579:6: warning: no previous prototype for ‘flush_tlb_mm_range’ [-Wmissing-prototypes] 579 | void flush_tlb_mm_range(struct mm_struct *mm, unsigned long start, | ^~~~~~~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/tlb.c:594:6: warning: no previous prototype for ‘force_flush_all’ [-Wmissing-prototypes] 594 | void force_flush_all(void) | ^~~~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/um_arch.c:408:19: warning: no previous prototype for ‘read_initrd’ [-Wmissing-prototypes] 408 | int __init __weak read_initrd(void) | ^~~~~~~~~~~ /kisskb/src/arch/um/kernel/um_arch.c:461:7: warning: no previous prototype for ‘text_poke’ [-Wmissing-prototypes] 461 | void *text_poke(void *addr, const void *opcode, size_t len) | ^~~~~~~~~ /kisskb/src/arch/um/kernel/um_arch.c:473:6: warning: no previous prototype for ‘text_poke_sync’ [-Wmissing-prototypes] 473 | void text_poke_sync(void) | ^~~~~~~~~~~~~~ /kisskb/src/arch/um/kernel/kmsg_dump.c:60:12: warning: no previous prototype for ‘kmsg_dumper_stdout_init’ [-Wmissing-prototypes] 60 | int __init kmsg_dumper_stdout_init(void) | ^~~~~~~~~~~~~~~~~~~~~~~ LINK linux Completed OK # rm -rf /kisskb/build/linus_defconfig_um-x86_64-gcc12 # Build took: 0:00:38.045041