mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 09:40:58 +07:00
Merge branches 'x86/dma', 'x86/microcode', 'x86/mm' and 'x86/vdso' into x86/urgent
Merge these small and simple 1-2 commit branches into the urgent branch. Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
commit
24dd064d5b
@ -301,5 +301,6 @@ extern struct x86_apic_ops x86_apic_ops;
|
||||
extern void x86_early_init_platform_quirks(void);
|
||||
extern void x86_init_noop(void);
|
||||
extern void x86_init_uint_noop(unsigned int unused);
|
||||
extern bool x86_pnpbios_disabled(void);
|
||||
|
||||
#endif
|
||||
|
@ -70,7 +70,7 @@ static DEFINE_MUTEX(microcode_mutex);
|
||||
/*
|
||||
* Serialize late loading so that CPUs get updated one-by-one.
|
||||
*/
|
||||
static DEFINE_SPINLOCK(update_lock);
|
||||
static DEFINE_RAW_SPINLOCK(update_lock);
|
||||
|
||||
struct ucode_cpu_info ucode_cpu_info[NR_CPUS];
|
||||
|
||||
@ -560,9 +560,9 @@ static int __reload_late(void *info)
|
||||
if (__wait_for_cpus(&late_cpus_in, NSEC_PER_SEC))
|
||||
return -1;
|
||||
|
||||
spin_lock(&update_lock);
|
||||
raw_spin_lock(&update_lock);
|
||||
apply_microcode_local(&err);
|
||||
spin_unlock(&update_lock);
|
||||
raw_spin_unlock(&update_lock);
|
||||
|
||||
/* siblings return UCODE_OK because their engine got updated already */
|
||||
if (err > UCODE_NFOUND) {
|
||||
|
@ -106,17 +106,9 @@ mtrr_write(struct file *file, const char __user *buf, size_t len, loff_t * ppos)
|
||||
|
||||
memset(line, 0, LINE_SIZE);
|
||||
|
||||
length = len;
|
||||
length--;
|
||||
|
||||
if (length > LINE_SIZE - 1)
|
||||
length = LINE_SIZE - 1;
|
||||
|
||||
length = strncpy_from_user(line, buf, LINE_SIZE - 1);
|
||||
if (length < 0)
|
||||
return -EINVAL;
|
||||
|
||||
if (copy_from_user(line, buf, length))
|
||||
return -EFAULT;
|
||||
return length;
|
||||
|
||||
linelen = strlen(line);
|
||||
ptr = line + linelen - 1;
|
||||
@ -149,17 +141,16 @@ mtrr_write(struct file *file, const char __user *buf, size_t len, loff_t * ppos)
|
||||
return -EINVAL;
|
||||
ptr = skip_spaces(ptr + 5);
|
||||
|
||||
for (i = 0; i < MTRR_NUM_TYPES; ++i) {
|
||||
if (strcmp(ptr, mtrr_strings[i]))
|
||||
continue;
|
||||
i = match_string(mtrr_strings, MTRR_NUM_TYPES, ptr);
|
||||
if (i < 0)
|
||||
return i;
|
||||
|
||||
base >>= PAGE_SHIFT;
|
||||
size >>= PAGE_SHIFT;
|
||||
err = mtrr_add_page((unsigned long)base, (unsigned long)size, i, true);
|
||||
if (err < 0)
|
||||
return err;
|
||||
return len;
|
||||
}
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static long
|
||||
|
@ -9,10 +9,12 @@
|
||||
* your option) any later version.
|
||||
*/
|
||||
|
||||
#include <linux/dmi.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/syscore_ops.h>
|
||||
|
||||
#include <asm/dma.h>
|
||||
#include <asm/x86_init.h>
|
||||
|
||||
/*
|
||||
* This module just handles suspend/resume issues with the
|
||||
@ -49,6 +51,29 @@ static struct syscore_ops i8237_syscore_ops = {
|
||||
|
||||
static int __init i8237A_init_ops(void)
|
||||
{
|
||||
/*
|
||||
* From SKL PCH onwards, the legacy DMA device is removed in which the
|
||||
* I/O ports (81h-83h, 87h, 89h-8Bh, 8Fh) related to it are removed
|
||||
* as well. All removed ports must return 0xff for a inb() request.
|
||||
*
|
||||
* Note: DMA_PAGE_2 (port 0x81) should not be checked for detecting
|
||||
* the presence of DMA device since it may be used by BIOS to decode
|
||||
* LPC traffic for POST codes. Original LPC only decodes one byte of
|
||||
* port 0x80 but some BIOS may choose to enhance PCH LPC port 0x8x
|
||||
* decoding.
|
||||
*/
|
||||
if (dma_inb(DMA_PAGE_0) == 0xFF)
|
||||
return -ENODEV;
|
||||
|
||||
/*
|
||||
* It is not required to load this driver as newer SoC may not
|
||||
* support 8237 DMA or bus mastering from LPC. Platform firmware
|
||||
* must announce the support for such legacy devices via
|
||||
* ACPI_FADT_LEGACY_DEVICES field in FADT table.
|
||||
*/
|
||||
if (x86_pnpbios_disabled() && dmi_get_bios_year() >= 2017)
|
||||
return -ENODEV;
|
||||
|
||||
register_syscore_ops(&i8237_syscore_ops);
|
||||
return 0;
|
||||
}
|
||||
|
@ -33,9 +33,14 @@ void __init x86_early_init_platform_quirks(void)
|
||||
x86_platform.set_legacy_features();
|
||||
}
|
||||
|
||||
#if defined(CONFIG_PNPBIOS)
|
||||
bool __init arch_pnpbios_disabled(void)
|
||||
bool __init x86_pnpbios_disabled(void)
|
||||
{
|
||||
return x86_platform.legacy.devices.pnpbios == 0;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_PNPBIOS)
|
||||
bool __init arch_pnpbios_disabled(void)
|
||||
{
|
||||
return x86_pnpbios_disabled();
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user