Commit b9067cd8 authored by Peter Zijlstra's avatar Peter Zijlstra
Browse files

Merge branch 'kvm/kvm-sls-fix'



Sync with the last minute SLS fix to extend it for IBT.

Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
parents f6a2c2b2 fe83f5ea
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -13376,6 +13376,7 @@ F: net/core/drop_monitor.c
NETWORKING DRIVERS
M:	"David S. Miller" <davem@davemloft.net>
M:	Jakub Kicinski <kuba@kernel.org>
M:	Paolo Abeni <pabeni@redhat.com>
L:	netdev@vger.kernel.org
S:	Maintained
Q:	https://patchwork.kernel.org/project/netdevbpf/list/
@@ -13422,6 +13423,7 @@ F: tools/testing/selftests/drivers/net/dsa/
NETWORKING [GENERAL]
M:	"David S. Miller" <davem@davemloft.net>
M:	Jakub Kicinski <kuba@kernel.org>
M:	Paolo Abeni <pabeni@redhat.com>
L:	netdev@vger.kernel.org
S:	Maintained
Q:	https://patchwork.kernel.org/project/netdevbpf/list/
+2 −2
Original line number Diff line number Diff line
@@ -56,14 +56,14 @@ enum arm64_bp_harden_el1_vectors {
DECLARE_PER_CPU_READ_MOSTLY(const char *, this_cpu_vector);

#ifndef CONFIG_UNMAP_KERNEL_AT_EL0
#define TRAMP_VALIAS	0
#define TRAMP_VALIAS	0ul
#endif

static inline const char *
arm64_get_bp_hardening_vector(enum arm64_bp_harden_el1_vectors slot)
{
	if (arm64_kernel_unmapped_at_el0())
		return (char *)TRAMP_VALIAS + SZ_2K * slot;
		return (char *)(TRAMP_VALIAS + SZ_2K * slot);

	WARN_ON_ONCE(slot == EL1_VECTOR_KPTI);

+0 −1
Original line number Diff line number Diff line
@@ -611,7 +611,6 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
	{
		.desc = "ARM erratum 2077057",
		.capability = ARM64_WORKAROUND_2077057,
		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
		ERRATA_MIDR_REV_RANGE(MIDR_CORTEX_A510, 0, 0, 2),
	},
#endif
+17 −2
Original line number Diff line number Diff line
@@ -430,8 +430,23 @@ static int fastop(struct x86_emulate_ctxt *ctxt, fastop_t fop);
	FOP_END

/* Special case for SETcc - 1 instruction per cc */

/*
 * Depending on .config the SETcc functions look like:
 *
 * SETcc %al   [3 bytes]
 * RET         [1 byte]
 * INT3        [1 byte; CONFIG_SLS]
 *
 * Which gives possible sizes 4 or 5.  When rounded up to the
 * next power-of-two alignment they become 4 or 8.
 */
#define SETCC_LENGTH	(4 + IS_ENABLED(CONFIG_SLS))
#define SETCC_ALIGN	(4 << IS_ENABLED(CONFIG_SLS))
static_assert(SETCC_LENGTH <= SETCC_ALIGN);

#define FOP_SETCC(op) \
	".align 4 \n\t" \
	".align " __stringify(SETCC_ALIGN) " \n\t" \
	".type " #op ", @function \n\t" \
	#op ": \n\t" \
	ASM_ENDBR \
@@ -1049,7 +1064,7 @@ static int em_bsr_c(struct x86_emulate_ctxt *ctxt)
static __always_inline u8 test_cc(unsigned int condition, unsigned long flags)
{
	u8 rc;
	void (*fop)(void) = (void *)em_setcc + 4 * (condition & 0xf);
	void (*fop)(void) = (void *)em_setcc + SETCC_ALIGN * (condition & 0xf);

	flags = (flags & EFLAGS_MASK) | X86_EFLAGS_IF;
	asm("push %[flags]; popf; " CALL_NOSPEC
+4 −0
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@
#include "blk-mq-sched.h"
#include "blk-pm.h"
#include "blk-throttle.h"
#include "blk-rq-qos.h"

struct dentry *blk_debugfs_root;

@@ -314,6 +315,9 @@ void blk_cleanup_queue(struct request_queue *q)
	 */
	blk_freeze_queue(q);

	/* cleanup rq qos structures for queue without disk */
	rq_qos_exit(q);

	blk_queue_flag_set(QUEUE_FLAG_DEAD, q);

	blk_sync_queue(q);
Loading