public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Steven Rostedt <rostedt@goodmis.org>,
	Sean Christopherson <seanjc@google.com>
Subject: [PATCH 5.4 70/84] KVM: x86: Ensure liveliness of nested VM-Enter fail tracepoint message
Date: Mon, 14 Jun 2021 12:27:48 +0200	[thread overview]
Message-ID: <20210614102648.741191107@linuxfoundation.org> (raw)
In-Reply-To: <20210614102646.341387537@linuxfoundation.org>

From: Sean Christopherson <seanjc@google.com>

commit f31500b0d437a2464ca5972d8f5439e156b74960 upstream.

Use the __string() machinery provided by the tracing subystem to make a
copy of the string literals consumed by the "nested VM-Enter failed"
tracepoint.  A complete copy is necessary to ensure that the tracepoint
can't outlive the data/memory it consumes and deference stale memory.

Because the tracepoint itself is defined by kvm, if kvm-intel and/or
kvm-amd are built as modules, the memory holding the string literals
defined by the vendor modules will be freed when the module is unloaded,
whereas the tracepoint and its data in the ring buffer will live until
kvm is unloaded (or "indefinitely" if kvm is built-in).

This bug has existed since the tracepoint was added, but was recently
exposed by a new check in tracing to detect exactly this type of bug.

  fmt: '%s%s
  ' current_buffer: ' vmx_dirty_log_t-140127  [003] ....  kvm_nested_vmenter_failed: '
  WARNING: CPU: 3 PID: 140134 at kernel/trace/trace.c:3759 trace_check_vprintf+0x3be/0x3e0
  CPU: 3 PID: 140134 Comm: less Not tainted 5.13.0-rc1-ce2e73ce600a-req #184
  Hardware name: ASUS Q87M-E/Q87M-E, BIOS 1102 03/03/2014
  RIP: 0010:trace_check_vprintf+0x3be/0x3e0
  Code: <0f> 0b 44 8b 4c 24 1c e9 a9 fe ff ff c6 44 02 ff 00 49 8b 97 b0 20
  RSP: 0018:ffffa895cc37bcb0 EFLAGS: 00010282
  RAX: 0000000000000000 RBX: ffffa895cc37bd08 RCX: 0000000000000027
  RDX: 0000000000000027 RSI: 00000000ffffdfff RDI: ffff9766cfad74f8
  RBP: ffffffffc0a041d4 R08: ffff9766cfad74f0 R09: ffffa895cc37bad8
  R10: 0000000000000001 R11: 0000000000000001 R12: ffffffffc0a041d4
  R13: ffffffffc0f4dba8 R14: 0000000000000000 R15: ffff976409f2c000
  FS:  00007f92fa200740(0000) GS:ffff9766cfac0000(0000) knlGS:0000000000000000
  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
  CR2: 0000559bd11b0000 CR3: 000000019fbaa002 CR4: 00000000001726e0
  Call Trace:
   trace_event_printf+0x5e/0x80
   trace_raw_output_kvm_nested_vmenter_failed+0x3a/0x60 [kvm]
   print_trace_line+0x1dd/0x4e0
   s_show+0x45/0x150
   seq_read_iter+0x2d5/0x4c0
   seq_read+0x106/0x150
   vfs_read+0x98/0x180
   ksys_read+0x5f/0xe0
   do_syscall_64+0x40/0xb0
   entry_SYSCALL_64_after_hwframe+0x44/0xae

Cc: Steven Rostedt <rostedt@goodmis.org>
Fixes: 380e0055bc7e ("KVM: nVMX: trace nested VM-Enter failures detected by H/W")
Signed-off-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Message-Id: <20210607175748.674002-1-seanjc@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/x86/kvm/trace.h |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/arch/x86/kvm/trace.h
+++ b/arch/x86/kvm/trace.h
@@ -1483,16 +1483,16 @@ TRACE_EVENT(kvm_nested_vmenter_failed,
 	TP_ARGS(msg, err),
 
 	TP_STRUCT__entry(
-		__field(const char *, msg)
+		__string(msg, msg)
 		__field(u32, err)
 	),
 
 	TP_fast_assign(
-		__entry->msg = msg;
+		__assign_str(msg, msg);
 		__entry->err = err;
 	),
 
-	TP_printk("%s%s", __entry->msg, !__entry->err ? "" :
+	TP_printk("%s%s", __get_str(msg), !__entry->err ? "" :
 		__print_symbolic(__entry->err, VMX_VMENTER_INSTRUCTION_ERRORS))
 );
 



  parent reply	other threads:[~2021-06-14 10:54 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-14 10:26 [PATCH 5.4 00/84] 5.4.126-rc1 review Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 01/84] proc: Track /proc/$pid/attr/ opener mm_struct Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 02/84] ASoC: max98088: fix ni clock divider calculation Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 03/84] spi: Fix spi device unregister flow Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 04/84] net/nfc/rawsock.c: fix a permission check bug Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 05/84] usb: cdns3: Fix runtime PM imbalance on error Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 06/84] ASoC: Intel: bytcr_rt5640: Add quirk for the Glavey TM800A550L tablet Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 07/84] ASoC: Intel: bytcr_rt5640: Add quirk for the Lenovo Miix 3-830 tablet Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 08/84] vfio-ccw: Serialize FSM IDLE state with I/O completion Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 09/84] ASoC: sti-sas: add missing MODULE_DEVICE_TABLE Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 10/84] spi: sprd: Add " Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 11/84] isdn: mISDN: netjet: Fix crash in nj_probe: Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 12/84] bonding: init notify_work earlier to avoid uninitialized use Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 13/84] netlink: disable IRQs for netlink_lock_table() Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 14/84] net: mdiobus: get rid of a BUG_ON() Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 15/84] cgroup: disable controllers at parse time Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 16/84] wq: handle VM suspension in stall detection Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 17/84] net/qla3xxx: fix schedule while atomic in ql_sem_spinlock Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 18/84] RDS tcp loopback connection can hang Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 19/84] scsi: bnx2fc: Return failure if io_req is already in ABTS processing Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 20/84] scsi: vmw_pvscsi: Set correct residual data length Greg Kroah-Hartman
2021-06-14 10:26 ` [PATCH 5.4 21/84] scsi: hisi_sas: Drop free_irq() of devm_request_irq() allocated irq Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 22/84] scsi: target: qla2xxx: Wait for stop_phase1 at WWN removal Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 23/84] net: macb: ensure the device is available before accessing GEMGXL control registers Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 24/84] net: appletalk: cops: Fix data race in cops_probe1 Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 25/84] net: dsa: microchip: enable phy errata workaround on 9567 Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 26/84] nvme-fabrics: decode host pathing error for connect Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 27/84] MIPS: Fix kernel hang under FUNCTION_GRAPH_TRACER and PREEMPT_TRACER Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 28/84] dm verity: fix require_signatures module_param permissions Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 29/84] bnx2x: Fix missing error code in bnx2x_iov_init_one() Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 30/84] nvme-tcp: remove incorrect Kconfig dep in BLK_DEV_NVME Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 31/84] powerpc/fsl: set fsl,i2c-erratum-a004447 flag for P2041 i2c controllers Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 32/84] powerpc/fsl: set fsl,i2c-erratum-a004447 flag for P1010 " Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 33/84] spi: Dont have controller clean up spi device before driver unbind Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 34/84] spi: Cleanup on failure of initial setup Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 35/84] i2c: mpc: Make use of i2c_recover_bus() Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 36/84] i2c: mpc: implement erratum A-004447 workaround Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 37/84] x86/boot: Add .text.* to setup.ld Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 38/84] spi: bcm2835: Fix out-of-bounds access with more than 4 slaves Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 39/84] drm: Fix use-after-free read in drm_getunique() Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 40/84] drm: Lock pointer access in drm_master_release() Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 41/84] kvm: avoid speculation-based attacks from out-of-range memslot accesses Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 42/84] staging: rtl8723bs: Fix uninitialized variables Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 43/84] btrfs: return value from btrfs_mark_extent_written() in case of error Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 44/84] btrfs: promote debugging asserts to full-fledged checks in validate_super Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 45/84] cgroup1: dont allow \n in renaming Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 46/84] USB: f_ncm: ncm_bitrate (speed) is unsigned Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 47/84] usb: f_ncm: only first packet of aggregate needs to start timer Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 48/84] usb: pd: Set PD_T_SINK_WAIT_CAP to 310ms Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 49/84] usb: dwc3: debugfs: Add and remove endpoint dirs dynamically Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 50/84] usb: dwc3: ep0: fix NULL pointer exception Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 51/84] usb: musb: fix MUSB_QUIRK_B_DISCONNECT_99 handling Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 52/84] usb: typec: wcove: Use LE to CPU conversion when accessing msg->header Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 53/84] usb: typec: ucsi: Clear PPM capability data in ucsi_init() error path Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 54/84] usb: gadget: f_fs: Ensure io_completion_wq is idle during unbind Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 55/84] USB: serial: ftdi_sio: add NovaTech OrionMX product ID Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 56/84] USB: serial: omninet: add device id for Zyxel Omni 56K Plus Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 57/84] USB: serial: quatech2: fix control-request directions Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 58/84] USB: serial: cp210x: fix alternate function for CP2102N QFN20 Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 59/84] usb: gadget: eem: fix wrong eem header operation Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 60/84] usb: fix various gadgets null ptr deref on 10gbps cabling Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 61/84] usb: fix various gadget panics " Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 62/84] regulator: core: resolve supply for boot-on/always-on regulators Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 63/84] regulator: max77620: Use device_set_of_node_from_dev() Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 64/84] usb: typec: mux: Fix copy-paste mistake in typec_mux_match Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 65/84] RDMA/ipoib: Fix warning caused by destroying non-initial netns Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 66/84] RDMA/mlx4: Do not map the core_clock page to user space unless enabled Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 67/84] vmlinux.lds.h: Avoid orphan section with !SMP Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 68/84] perf: Fix data race between pin_count increment/decrement Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 69/84] sched/fair: Make sure to update tg contrib for blocked load Greg Kroah-Hartman
2021-06-14 10:27 ` Greg Kroah-Hartman [this message]
2021-06-14 10:27 ` [PATCH 5.4 71/84] IB/mlx5: Fix initializing CQ fragments buffer Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 72/84] NFS: Fix a potential NULL dereference in nfs_get_client() Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 73/84] NFSv4: Fix deadlock between nfs4_evict_inode() and nfs4_opendata_get_inode() Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 74/84] perf session: Correct buffer copying when peeking events Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 75/84] kvm: fix previous commit for 32-bit builds Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 76/84] NFS: Fix use-after-free in nfs4_init_client() Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 77/84] NFSv4: Fix second deadlock in nfs4_evict_inode() Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 78/84] NFSv4: nfs4_proc_set_acl needs to restore NFS_CAP_UIDGID_NOMAP on error Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 79/84] scsi: core: Fix error handling of scsi_host_alloc() Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 80/84] scsi: core: Fix failure handling of scsi_add_host_with_dma() Greg Kroah-Hartman
2021-06-14 10:27 ` [PATCH 5.4 81/84] scsi: core: Put .shost_dev in failure path if host state changes to RUNNING Greg Kroah-Hartman
2021-06-14 10:28 ` [PATCH 5.4 82/84] scsi: core: Only put parent device if host state differs from SHOST_CREATED Greg Kroah-Hartman
2021-06-14 10:28 ` [PATCH 5.4 83/84] ftrace: Do not blindly read the ip address in ftrace_bug() Greg Kroah-Hartman
2021-06-14 10:28 ` [PATCH 5.4 84/84] tracing: Correct the length check which causes memory corruption Greg Kroah-Hartman
2021-06-14 17:55 ` [PATCH 5.4 00/84] 5.4.126-rc1 review Jon Hunter
2021-06-14 19:18 ` Florian Fainelli
2021-06-14 19:26 ` Shuah Khan
2021-06-15  1:21 ` Samuel Zou
2021-06-15  7:52 ` Naresh Kamboju
2021-06-15  9:48 ` Sudip Mukherjee
2021-06-15 14:20 ` Guenter Roeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210614102648.741191107@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=seanjc@google.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox