Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 328c6333 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Thomas writes:
  "A set of fixes for x86:

   - Resolve the kvmclock regression on AMD systems with memory
     encryption enabled. The rework of the kvmclock memory allocation
     during early boot results in encrypted storage, which is not
     shareable with the hypervisor. Create a new section for this data
     which is mapped unencrypted and take care that the later
     allocations for shared kvmclock memory is unencrypted as well.

   - Fix the build regression in the paravirt code introduced by the
     recent spectre v2 updates.

   - Ensure that the initial static page tables cover the fixmap space
     correctly so early console always works. This worked so far by
     chance, but recent modifications to the fixmap layout can -
     depending on kernel configuration - move the relevant entries to a
     different place which is not covered by the initial static page
     tables.

   - Address the regressions and issues which got introduced with the
     recent extensions to the Intel Recource Director Technology code.

   - Update maintainer entries to document reality"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/mm: Expand static page table for fixmap space
  MAINTAINERS: Add X86 MM entry
  x86/intel_rdt: Add Reinette as co-maintainer for RDT
  MAINTAINERS: Add Borislav to the x86 maintainers
  x86/paravirt: Fix some warning messages
  x86/intel_rdt: Fix incorrect loop end condition
  x86/intel_rdt: Fix exclusive mode handling of MBA resource
  x86/intel_rdt: Fix incorrect loop end condition
  x86/intel_rdt: Do not allow pseudo-locking of MBA resource
  x86/intel_rdt: Fix unchecked MSR access
  x86/intel_rdt: Fix invalid mode warning when multiple resources are managed
  x86/intel_rdt: Global closid helper to support future fixes
  x86/intel_rdt: Fix size reporting of MBA resource
  x86/intel_rdt: Fix data type in parsing callbacks
  x86/kvm: Use __bss_decrypted attribute in shared variables
  x86/mm: Add .bss..decrypted section to hold shared variables
parents 52890d2a 05ab1d8a
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -12260,6 +12260,7 @@ F: Documentation/networking/rds.txt

RDT - RESOURCE ALLOCATION
M:	Fenghua Yu <fenghua.yu@intel.com>
M:	Reinette Chatre <reinette.chatre@intel.com>
L:	linux-kernel@vger.kernel.org
S:	Supported
F:	arch/x86/kernel/cpu/intel_rdt*
@@ -15912,6 +15913,7 @@ F: net/x25/
X86 ARCHITECTURE (32-BIT AND 64-BIT)
M:	Thomas Gleixner <tglx@linutronix.de>
M:	Ingo Molnar <mingo@redhat.com>
M:	Borislav Petkov <bp@alien8.de>
R:	"H. Peter Anvin" <hpa@zytor.com>
M:	x86@kernel.org
L:	linux-kernel@vger.kernel.org
@@ -15940,6 +15942,15 @@ M: Borislav Petkov <bp@alien8.de>
S:	Maintained
F:	arch/x86/kernel/cpu/microcode/*

X86 MM
M:	Dave Hansen <dave.hansen@linux.intel.com>
M:	Andy Lutomirski <luto@kernel.org>
M:	Peter Zijlstra <peterz@infradead.org>
L:	linux-kernel@vger.kernel.org
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/mm
S:	Maintained
F:	arch/x86/mm/

X86 PLATFORM DRIVERS
M:	Darren Hart <dvhart@infradead.org>
M:	Andy Shevchenko <andy@infradead.org>
+10 −0
Original line number Diff line number Diff line
@@ -14,6 +14,16 @@
#ifndef _ASM_X86_FIXMAP_H
#define _ASM_X86_FIXMAP_H

/*
 * Exposed to assembly code for setting up initial page tables. Cannot be
 * calculated in assembly code (fixmap entries are an enum), but is sanity
 * checked in the actual fixmap C code to make sure that the fixmap is
 * covered fully.
 */
#define FIXMAP_PMD_NUM	2
/* fixmap starts downwards from the 507th entry in level2_fixmap_pgt */
#define FIXMAP_PMD_TOP	507

#ifndef __ASSEMBLY__
#include <linux/kernel.h>
#include <asm/acpi.h>
+7 −0
Original line number Diff line number Diff line
@@ -48,10 +48,13 @@ int __init early_set_memory_encrypted(unsigned long vaddr, unsigned long size);

/* Architecture __weak replacement functions */
void __init mem_encrypt_init(void);
void __init mem_encrypt_free_decrypted_mem(void);

bool sme_active(void);
bool sev_active(void);

#define __bss_decrypted __attribute__((__section__(".bss..decrypted")))

#else	/* !CONFIG_AMD_MEM_ENCRYPT */

#define sme_me_mask	0ULL
@@ -77,6 +80,8 @@ early_set_memory_decrypted(unsigned long vaddr, unsigned long size) { return 0;
static inline int __init
early_set_memory_encrypted(unsigned long vaddr, unsigned long size) { return 0; }

#define __bss_decrypted

#endif	/* CONFIG_AMD_MEM_ENCRYPT */

/*
@@ -88,6 +93,8 @@ early_set_memory_encrypted(unsigned long vaddr, unsigned long size) { return 0;
#define __sme_pa(x)		(__pa(x) | sme_me_mask)
#define __sme_pa_nodebug(x)	(__pa_nodebug(x) | sme_me_mask)

extern char __start_bss_decrypted[], __end_bss_decrypted[], __start_bss_decrypted_unused[];

#endif	/* __ASSEMBLY__ */

#endif	/* __X86_MEM_ENCRYPT_H__ */
+2 −1
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@
#include <asm/processor.h>
#include <linux/bitops.h>
#include <linux/threads.h>
#include <asm/fixmap.h>

extern p4d_t level4_kernel_pgt[512];
extern p4d_t level4_ident_pgt[512];
@@ -22,7 +23,7 @@ extern pud_t level3_ident_pgt[512];
extern pmd_t level2_kernel_pgt[512];
extern pmd_t level2_fixmap_pgt[512];
extern pmd_t level2_ident_pgt[512];
extern pte_t level1_fixmap_pgt[512];
extern pte_t level1_fixmap_pgt[512 * FIXMAP_PMD_NUM];
extern pgd_t init_top_pgt[];

#define swapper_pg_dir init_top_pgt
+13 −4
Original line number Diff line number Diff line
@@ -382,6 +382,11 @@ static inline bool is_mbm_event(int e)
		e <= QOS_L3_MBM_LOCAL_EVENT_ID);
}

struct rdt_parse_data {
	struct rdtgroup		*rdtgrp;
	char			*buf;
};

/**
 * struct rdt_resource - attributes of an RDT resource
 * @rid:		The index of the resource
@@ -423,7 +428,8 @@ struct rdt_resource {
	struct rdt_cache	cache;
	struct rdt_membw	membw;
	const char		*format_str;
	int (*parse_ctrlval)	(void *data, struct rdt_resource *r,
	int (*parse_ctrlval)(struct rdt_parse_data *data,
			     struct rdt_resource *r,
			     struct rdt_domain *d);
	struct list_head	evt_list;
	int			num_rmid;
@@ -431,8 +437,10 @@ struct rdt_resource {
	unsigned long		fflags;
};

int parse_cbm(void *_data, struct rdt_resource *r, struct rdt_domain *d);
int parse_bw(void *_buf, struct rdt_resource *r,  struct rdt_domain *d);
int parse_cbm(struct rdt_parse_data *data, struct rdt_resource *r,
	      struct rdt_domain *d);
int parse_bw(struct rdt_parse_data *data, struct rdt_resource *r,
	     struct rdt_domain *d);

extern struct mutex rdtgroup_mutex;

@@ -536,6 +544,7 @@ int rdtgroup_pseudo_lock_create(struct rdtgroup *rdtgrp);
void rdtgroup_pseudo_lock_remove(struct rdtgroup *rdtgrp);
struct rdt_domain *get_domain_from_cpu(int cpu, struct rdt_resource *r);
int update_domains(struct rdt_resource *r, int closid);
int closids_supported(void);
void closid_free(int closid);
int alloc_rmid(void);
void free_rmid(u32 rmid);
Loading