Linux 5.10.136
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.10.136 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/admin-guide/hw-vuln/spectre.rst | 8 + Makefile | 2 arch/arm64/crypto/poly1305-glue.c | 2 arch/x86/Kconfig | 8 - arch/x86/include/asm/cpufeatures.h | 2 arch/x86/include/asm/msr-index.h | 4 arch/x86/include/asm/nospec-branch.h | 21 +++ arch/x86/kernel/cpu/bugs.c | 86 ++++++++++---- arch/x86/kernel/cpu/common.c | 12 +- arch/x86/kvm/vmx/vmenter.S | 8 - drivers/acpi/apei/bert.c | 31 +++-- drivers/acpi/video_detect.c | 55 +++++---- drivers/bluetooth/btbcm.c | 2 drivers/bluetooth/btusb.c | 15 ++ drivers/bluetooth/hci_bcm.c | 2 drivers/macintosh/adb.c | 2 drivers/net/tun.c | 114 +++++++++---------- 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 tools/arch/x86/include/asm/cpufeatures.h | 1 tools/arch/x86/include/asm/msr-index.h | 4 tools/include/uapi/linux/bpf.h | 3 tools/kvm/kvm_stat/kvm_stat | 3 tools/testing/selftests/bpf/prog_tests/sock_fields.c | 60 ++++++---- tools/testing/selftests/bpf/progs/test_sock_fields.c | 45 +++++++ tools/testing/selftests/bpf/verifier/sock.c | 81 +++++++++++++ tools/testing/selftests/kvm/lib/aarch64/ucall.c | 9 - 28 files changed, 450 insertions(+), 149 deletions(-)
Aaron Ma (1):
Bluetooth: btusb: Add support of IMC Networks PID 0x3568
Ahmad Fatoum (1):
Bluetooth: hci_bcm: Add BCM4349B1 variant
Ben Hutchings (1):
x86/speculation: Make all RETbleed mitigations 64-bit only
Daniel Sneddon (1):
x86/speculation: Add RSB VM Exit protections
Dmitry Klochkov (1):
tools/kvm_stat: fix display of error when multiple processes are found
GUO Zihua (1):
crypto: arm64/poly1305 - fix a read out-of-bound
George Kennedy (1):
tun: avoid double free in tun_free_netdev
Greg Kroah-Hartman (1):
Linux 5.10.136
Hakan Jansson (1):
Bluetooth: hci_bcm: Add DT compatible for CYW55572
Hilda Wu (5):
Bluetooth: btusb: Add Realtek RTL8852C support ID 0x04CA:0x4007
Bluetooth: btusb: Add Realtek RTL8852C support ID 0x04C5:0x1675
Bluetooth: btusb: Add Realtek RTL8852C support ID 0x0CB8:0xC558
Bluetooth: btusb: Add Realtek RTL8852C support ID 0x13D3:0x3587
Bluetooth: btusb: Add Realtek RTL8852C support ID 0x13D3:0x3586Jakub Sitnicki (2):
selftests/bpf: Extend verifier and bpf_sock tests for dst_port loads selftests/bpf: Check dst_port only on the client socket
Ning Qiang (1):
macintosh/adb: fix oob read in do_adb_query() function
Pawan Gupta (1):
x86/speculation: Add LFENCE to RSB fill sequence
Raghavendra Rao Ananta (1):
selftests: KVM: Handle compiler optimizations in ucall
Tetsuo Handa (2):
ath9k_htc: fix NULL pointer dereference at ath9k_htc_rxep()
ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet()
Tony Luck (1):
ACPI: APEI: Better fix to avoid spamming the console with old error logs
Werner Sembach (2):
ACPI: video: Force backlight native for some TongFang devices
ACPI: video: Shortening quirk list by identifying Clevo by board_name only
Greg Kroah-Hartman
maintainerDocumentation/admin-guide/hw-vuln/spectre.rst +8 -0
@@ -422,6 +422,14 @@ The possible values in this file are: 'RSB filling' Protection of RSB on context switch enabled ============= =========================================== + - EIBRS Post-barrier Return Stack Buffer (PBRSB) protection status: + + =========================== ======================================================= + 'PBRSB-eIBRS: SW sequence' CPU is affected and protection of RSB on VMEXIT enabled + 'PBRSB-eIBRS: Vulnerable' CPU is vulnerable + 'PBRSB-eIBRS: Not affected' CPU is not affected by PBRSB + =========================== ======================================================= + Full mitigation might require a microcode update from the CPU vendor. When the necessary microcode is not available, the kernel will report vulnerability.
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 10 -SUBLEVEL = 135 +SUBLEVEL = 136 EXTRAVERSION = NAME = Dare mighty things
arch/arm64/crypto/poly1305-glue.c +1 -1
@@ -52,7 +52,7 @@ static void neon_poly1305_blocks(struct poly1305_desc_ctx *dctx, const u8 *src, {if (unlikely (!dctx->sset)) {if (!dctx->rset) { -poly1305_init_arch (dctx, src); +poly1305_init_arm64 (&dctx->h, src); src +=POLY1305_BLOCK_SIZE ; len -=POLY1305_BLOCK_SIZE ; dctx->rset =1 ;
arch/x86/Kconfig +4 -4
@@ -2447,7 +2447,7 @@ config RETPOLINE config RETHUNK bool "Enable return-thunks" depends on RETPOLINE && CC_HAS_RETURN_THUNK - default y + default y if X86_64 help Compile the kernel with the return-thunks compiler option to guard against kernel-to-user data leaks by avoiding return speculation.
@@ -2456,21 +2456,21 @@ config RETHUNK config CPU_UNRET_ENTRY bool "Enable UNRET on kernel entry" - depends on CPU_SUP_AMD && RETHUNK + depends on CPU_SUP_AMD && RETHUNK && X86_64 default y help Compile the kernel with support for the retbleed=unret mitigation. config CPU_IBPB_ENTRY bool "Enable IBPB on kernel entry" - depends on CPU_SUP_AMD + depends on CPU_SUP_AMD && X86_64 default y help Compile the kernel with support for the retbleed=ibpb mitigation. config CPU_IBRS_ENTRY bool "Enable IBRS on kernel entry" - depends on CPU_SUP_INTEL + depends on CPU_SUP_INTEL && X86_64 default y help Compile the kernel with support for the spectre_v2=ibrs mitigation.
arch/x86/include/asm/cpufeatures.h +2 -0
@@ -299,6 +299,7 @@#define X86_FEATURE_RETHUNK (11*32+14)/* "" Use REturn THUNK */ #define X86_FEATURE_UNRET (11*32+15)/* "" AMD BTB untrain return */ #define X86_FEATURE_USE_IBPB_FW (11*32+16)/* "" Use IBPB during runtime firmware calls */ +#define X86_FEATURE_RSB_VMEXIT_LITE (11*32+17)/* "" Fill RSB on VM exit when EIBRS is enabled */ /* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */ #define X86_FEATURE_AVX512_BF16 (12*32+ 5)/* AVX512 BFLOAT16 instructions */
@@ -429,5 +430,6 @@#define X86_BUG_SRBDS X86_BUG(24)/* CPU may leak RNG bits if not mitigated */ #define X86_BUG_MMIO_STALE_DATA X86_BUG(25)/* CPU is affected by Processor MMIO Stale Data vulnerabilities */ #define X86_BUG_RETBLEED X86_BUG(26)/* CPU is affected by RETBleed */ +#define X86_BUG_EIBRS_PBRSB X86_BUG(27)/* EIBRS is vulnerable to Post Barrier RSB Predictions */ #endif /* _ASM_X86_CPUFEATURES_H */
arch/x86/include/asm/msr-index.h +4 -0
@@ -148,6 +148,10 @@* are restricted to targets in * kernel. */ +#define ARCH_CAP_PBRSB_NO BIT(24)/* +* Not susceptible to Post-Barrier +* Return Stack Buffer Predictions. +*/ #define MSR_IA32_FLUSH_CMD 0x0000010b#define L1D_FLUSH BIT(0)/*
arch/x86/include/asm/nospec-branch.h +19 -2
@@ -60,7 +60,9 @@ 774: \ add $(BITS_PER_LONG/8) * 2, sp; \ dec reg; \ - jnz 771b; + jnz 771b; \ +/* barrier for jnz misprediction */ \ + lfence;#ifdef __ASSEMBLY__
@@ -118,13 +120,28 @@#endif .endm +.macro ISSUE_UNBALANCED_RET_GUARD + ANNOTATE_INTRA_FUNCTION_CALL + call .Lunbalanced_ret_guard_\@ + int3 +.Lunbalanced_ret_guard_\@: + add $(BITS_PER_LONG/8), %_ASM_SP + lfence +.endm + /* * A simpler FILL_RETURN_BUFFER macro. Don't make people use the CPP * monstrosity above, manually. */ -.macro FILL_RETURN_BUFFER reg:req nr:req ftr:req +.macro FILL_RETURN_BUFFER reg:req nr:req ftr:req ftr2 +.ifb \ftr2 ALTERNATIVE "jmp .Lskip_rsb_\@", "", \ftr +.else + ALTERNATIVE_2 "jmp .Lskip_rsb_\@", "", \ftr, "jmp .Lunbalanced_\@", \ftr2 +.endif __FILL_RETURN_BUFFER(\reg,\nr,%_ASM_SP) +.Lunbalanced_\@: +ISSUE_UNBALANCED_RET_GUARD .Lskip_rsb_\@: .endm
arch/x86/kernel/cpu/bugs.c +63 -23
115 lines not on this page · raw message
arch/x86/kernel/cpu/common.c +10 -2
@@ -1024,6 +1024,7 @@ static void identify_cpu_without_cpuid(struct cpuinfo_x86 *c)#define NO_SWAPGS BIT(6)#define NO_ITLB_MULTIHIT BIT(7)#define NO_SPECTRE_V2 BIT(8) +#define NO_EIBRS_PBRSB BIT(9)#define VULNWL (vendor, family, model, whitelist) \ X86_MATCH_VENDOR_FAM_MODEL(vendor, family, model, whitelist)
@@ -1064,7 +1065,7 @@ static const __initconst struct x86_cpu_id cpu_vuln_whitelist[] = {VULNWL_INTEL (ATOM_GOLDMONT ,NO_MDS |NO_L1TF |NO_SWAPGS |NO_ITLB_MULTIHIT ),VULNWL_INTEL (ATOM_GOLDMONT_D ,NO_MDS |NO_L1TF |NO_SWAPGS |NO_ITLB_MULTIHIT ), - VULNWL_INTEL(ATOM_GOLDMONT_PLUS, NO_MDS | NO_L1TF | NO_SWAPGS | NO_ITLB_MULTIHIT), + VULNWL_INTEL(ATOM_GOLDMONT_PLUS, NO_MDS | NO_L1TF | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_EIBRS_PBRSB),/* * Technically, swapgs isn't serializing on AMD (despite it previously
@@ -1074,7 +1075,9 @@ static const __initconst struct x86_cpu_id cpu_vuln_whitelist[] = {* good enough for our purposes. */ -VULNWL_INTEL (ATOM_TREMONT_D ,NO_ITLB_MULTIHIT ), +VULNWL_INTEL (ATOM_TREMONT ,NO_EIBRS_PBRSB ), +VULNWL_INTEL (ATOM_TREMONT_L ,NO_EIBRS_PBRSB ), +VULNWL_INTEL (ATOM_TREMONT_D ,NO_ITLB_MULTIHIT |NO_EIBRS_PBRSB ),/* AMD Family 0xf - 0x12 */ VULNWL_AMD(0x0f, NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT),
@@ -1252,6 +1255,11 @@ static void __init cpu_set_bug_bits(struct cpuinfo_x86 *c)setup_force_cpu_bug (X86_BUG_RETBLEED ); } +if (cpu_has (c,X86_FEATURE_IBRS_ENHANCED ) && + !cpu_matches (cpu_vuln_whitelist,NO_EIBRS_PBRSB ) && + !(ia32_cap &ARCH_CAP_PBRSB_NO )) +setup_force_cpu_bug (X86_BUG_EIBRS_PBRSB ); +if (cpu_matches (cpu_vuln_whitelist,NO_MELTDOWN ))return ;
arch/x86/kvm/vmx/vmenter.S +5 -3
@@ -197,11 +197,13 @@ SYM_INNER_LABEL(vmx_vmexit, SYM_L_GLOBAL) * entries and (in some cases) RSB underflow. * * eIBRS has its own protection against poisoned RSB, so it doesn't - * need the RSB filling sequence. But it does need to be enabled - * before the first unbalanced RET. + * need the RSB filling sequence. But it does need to be enabled, and a + * single call to retire, before the first unbalanced RET. */ - FILL_RETURN_BUFFER %_ASM_CX, RSB_CLEAR_LOOPS, X86_FEATURE_RSB_VMEXIT + FILL_RETURN_BUFFER %_ASM_CX, RSB_CLEAR_LOOPS, X86_FEATURE_RSB_VMEXIT,\ + X86_FEATURE_RSB_VMEXIT_LITE + pop %_ASM_ARG2 /* @flags */ pop %_ASM_ARG1 /* @vmx */
drivers/acpi/apei/bert.c +23 -8
@@ -29,16 +29,26 @@#undef pr_fmt#define pr_fmt (fmt) "BERT: " fmt + +#define ACPI_BERT_PRINT_MAX_RECORDS 5#define ACPI_BERT_PRINT_MAX_LEN 1024static int bert_disable; +/* +* Print "all" the error records in the BERT table, but avoid huge spam to +* the console if the BIOS included oversize records, or too many records. +* Skipping some records here does not lose anything because the full +* data is available to user tools in: +* /sys/firmware/acpi/tables/data/BERT +*/ static void __init bert_print_all (struct acpi_bert_region *region,unsigned int region_len) {struct acpi_hest_generic_status *estatus = (struct acpi_hest_generic_status *)region;int remain = region_len; +int printed =0 , skipped =0 ;u32 estatus_len;while (remain >=sizeof (struct acpi_bert_region )) {
@@ -46,24 +56,26 @@ static void __init bert_print_all(struct acpi_bert_region *region,if (remain < estatus_len) {pr_err (FW_BUG "Truncated status block (length: %u).\n" , estatus_len); -return ; +break ; }/* No more error records. */ if (!estatus->block_status) -return ; +break ;if (cper_estatus_check (estatus)) {pr_err (FW_BUG "Invalid error record.\n" ); -return ; +break ; } -pr_info_once ("Error records from previous boot:\n" ); -if (region_len <ACPI_BERT_PRINT_MAX_LEN ) +if (estatus_len <ACPI_BERT_PRINT_MAX_LEN && + printed <ACPI_BERT_PRINT_MAX_RECORDS ) { +pr_info_once ("Error records from previous boot:\n" ); cper_estatus_print(KERN_INFO HW_ERR, estatus); -else -pr_info_once ("Max print length exceeded, table data is available at:\n" -"/sys/firmware/acpi/tables/data/BERT" ); + printed++; + }else { + skipped++; + }/* * Because the boot error source is "one-time polled" type,
@@ -75,6 +87,9 @@ static void __init bert_print_all(struct acpi_bert_region *region, estatus = (void *)estatus + estatus_len; remain -= estatus_len; } + +if (skipped) +pr_info (HW_ERR "Skipped %d error records\n" , skipped); }static int __init setup_bert_disable (char *str)
drivers/acpi/video_detect.c +35 -20
101 lines not on this page · raw message
drivers/bluetooth/btbcm.c +2 -0
@@ -401,6 +401,8 @@ static const struct bcm_subver_table bcm_uart_subver_table[] = { { 0x6606, "BCM4345C5" }, /* 003.006.006 */ { 0x230f, "BCM4356A2" }, /* 001.003.015 */ { 0x220e, "BCM20702A1" }, /* 001.002.014 */ + { 0x420d, "BCM4349B1" }, /* 002.002.013 */ + { 0x420e, "BCM4349B1" }, /* 002.002.014 */ { 0x4217, "BCM4329B1" }, /* 002.002.023 */ { 0x6106, "BCM4359C0" }, /* 003.001.006 */ { 0x4106, "BCM4335A0" }, /* 002.001.006 */
drivers/bluetooth/btusb.c +15 -0
@@ -399,6 +399,18 @@ static const struct usb_device_id blacklist_table[] = { { USB_DEVICE(0x0bda, 0xc822), .driver_info = BTUSB_REALTEK | BTUSB_WIDEBAND_SPEECH }, + /* Realtek 8852CE Bluetooth devices */ + { USB_DEVICE(0x04ca, 0x4007), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x04c5, 0x1675), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0cb8, 0xc558), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x13d3, 0x3587), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x13d3, 0x3586), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH }, + /* Realtek Bluetooth devices */ { USB_VENDOR_AND_INTERFACE_INFO(0x0bda, 0xe0, 0x01, 0x01), .driver_info = BTUSB_REALTEK },
@@ -416,6 +428,9 @@ static const struct usb_device_id blacklist_table[] = { { USB_DEVICE(0x0489, 0xe0d9), .driver_info = BTUSB_MEDIATEK |BTUSB_WIDEBAND_SPEECH | BTUSB_VALID_LE_STATES }, + { USB_DEVICE(0x13d3, 0x3568), .driver_info = BTUSB_MEDIATEK | +BTUSB_WIDEBAND_SPEECH | + BTUSB_VALID_LE_STATES }, /* Additional Realtek 8723AE Bluetooth devices */ { USB_DEVICE(0x0930, 0x021d), .driver_info = BTUSB_REALTEK },
drivers/bluetooth/hci_bcm.c +2 -0
@@ -1489,8 +1489,10 @@ static const struct of_device_id bcm_bluetooth_of_match[] = { { .compatible = "brcm,bcm4345c5" }, { .compatible = "brcm,bcm4330-bt" }, { .compatible = "brcm,bcm43438-bt", .data = &bcm43438_device_data }, + { .compatible = "brcm,bcm4349-bt", .data = &bcm43438_device_data }, { .compatible = "brcm,bcm43540-bt", .data = &bcm4354_device_data }, { .compatible = "brcm,bcm4335a0" }, + { .compatible = "infineon,cyw55572-bt" }, { }, };MODULE_DEVICE_TABLE (of, bcm_bluetooth_of_match);
drivers/macintosh/adb.c +1 -1
@@ -647,7 +647,7 @@ do_adb_query(struct adb_request *req)switch (req->data[1 ]) {case ADB_QUERY_GETDEVINFO : -if (req->nbytes <3 ) +if (req->nbytes <3 || req->data[2 ] >=16 )break ;mutex_lock (&adb_handler_mutex); req->reply[0 ] = adb_handler[req->data[2 ]].original_address;
drivers/net/tun.c +59 -55
171 lines not on this page · raw message
drivers/net/wireless/ath/ath9k/htc.h +2 -0
@@ -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 {
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +13 -0
@@ -808,6 +808,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 ; }
@@ -1133,6 +1138,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) {
@@ -1188,6 +1197,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:
drivers/net/wireless/ath/ath9k/wmi.c +4 -0
@@ -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);
tools/arch/x86/include/asm/cpufeatures.h +1 -0
@@ -296,6 +296,7 @@#define X86_FEATURE_RETPOLINE_LFENCE (11*32+13)/* "" Use LFENCE for Spectre variant 2 */ #define X86_FEATURE_RETHUNK (11*32+14)/* "" Use REturn THUNK */ #define X86_FEATURE_UNRET (11*32+15)/* "" AMD BTB untrain return */ +#define X86_FEATURE_RSB_VMEXIT_LITE (11*32+17)/* "" Fill RSB on VM-Exit when EIBRS is enabled */ /* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */ #define X86_FEATURE_AVX512_BF16 (12*32+ 5)/* AVX512 BFLOAT16 instructions */
tools/arch/x86/include/asm/msr-index.h +4 -0
@@ -148,6 +148,10 @@* are restricted to targets in * kernel. */ +#define ARCH_CAP_PBRSB_NO BIT(24)/* +* Not susceptible to Post-Barrier +* Return Stack Buffer Predictions. +*/ #define MSR_IA32_FLUSH_CMD 0x0000010b#define L1D_FLUSH BIT(0)/*
tools/include/uapi/linux/bpf.h +2 -1
@@ -4180,7 +4180,8 @@ struct bpf_sock {__u32 src_ip4;__u32 src_ip6[4 ];__u32 src_port;/* host byte order */ -__u32 dst_port;/* network byte order */ +__be16 dst_port;/* network byte order */ + __u16 :16 ;/* zero padding */ __u32 dst_ip4;__u32 dst_ip6[4 ];__u32 state;
tools/kvm/kvm_stat/kvm_stat +2 -1
@@ -1646,7 +1646,8 @@ Press any other key to refresh statistics immediately. .format(values)) if len(pids) > 1: sys.exit('Error: Multiple processes found (pids: {}). Use "-p"' - ' to specify the desired pid'.format(" ".join(pids))) + ' to specify the desired pid' + .format(" ".join(map(str, pids)))) namespace.pid = pids[0] argparser = argparse.ArgumentParser(description=description_text,
tools/testing/selftests/bpf/prog_tests/sock_fields.c +41 -19
123 lines not on this page · raw message
tools/testing/selftests/bpf/progs/test_sock_fields.c +45 -0
55 lines not on this page · raw message
tools/testing/selftests/bpf/verifier/sock.c +78 -3
99 lines not on this page · raw message
tools/testing/selftests/kvm/lib/aarch64/ucall.c +4 -5
@@ -73,20 +73,19 @@ void ucall_uninit(struct kvm_vm *vm)void ucall (uint64_t cmd,int nargs, ...) { -struct ucall uc = { - .cmd = cmd, - }; +struct ucall uc = {};va_list va;int i; +WRITE_ONCE (uc.cmd, cmd); nargs = nargs <=UCALL_MAX_ARGS ? nargs :UCALL_MAX_ARGS ;va_start (va, nargs);for (i =0 ; i < nargs; ++i) - uc.args[i] =va_arg (va, uint64_t); +WRITE_ONCE (uc.args[i],va_arg (va, uint64_t));va_end (va); - *ucall_exit_mmio_addr = (vm_vaddr_t)&uc; +WRITE_ONCE (*ucall_exit_mmio_addr, (vm_vaddr_t)&uc); }uint64_t get_ucall (struct kvm_vm *vm,uint32_t vcpu_id,struct ucall *uc)