You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Ingo Molnar: "Misc fixes and minor updates all over the place: - an SGI/UV fix - a defconfig update - a build warning fix - move the boot_params file to the arch location in debugfs - a pkeys fix - selftests fix - boot message fixes - sparse fixes - a resume warning fix - ioapic hotplug fixes - reboot quirks ... plus various minor cleanups" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/build/x86_64_defconfig: Enable CONFIG_R8169 x86/reboot/quirks: Add ASUS EeeBook X205TA/W reboot quirk x86/hpet: Prevent might sleep splat on resume x86/boot: Correct setup_header.start_sys name x86/purgatory: Fix sparse warning, symbol not declared x86/purgatory: Make functions and variables static x86/events: Remove last remnants of old filenames x86/pkeys: Check against max pkey to avoid overflows x86/ioapic: Split IOAPIC hot-removal into two steps x86/PCI: Implement pcibios_release_device to release IRQ from IOAPIC x86/intel_rdt: Remove duplicate inclusion of linux/cpu.h x86/vmware: Remove duplicate inclusion of asm/timer.h x86/hyperv: Hide unused label x86/reboot/quirks: Add ASUS EeeBook X205TA reboot quirk x86/platform/uv/BAU: Fix HUB errors by remove initial write to sw-ack register x86/selftests: Add clobbers for int80 on x86_64 x86/apic: Simplify enable_IR_x2apic(), remove try_to_enable_IR() x86/apic: Fix a warning message in logical CPU IDs allocation x86/kdebugfs: Move boot params hierarchy under (debugfs)/x86/
This commit is contained in:
@@ -176,6 +176,7 @@ CONFIG_E1000E=y
|
||||
CONFIG_SKY2=y
|
||||
CONFIG_FORCEDETH=y
|
||||
CONFIG_8139TOO=y
|
||||
CONFIG_R8169=y
|
||||
CONFIG_FDDI=y
|
||||
CONFIG_INPUT_POLLDEV=y
|
||||
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
|
||||
|
||||
@@ -604,7 +604,7 @@ amd_get_event_constraints_f15h(struct cpu_hw_events *cpuc, int idx,
|
||||
return &amd_f15_PMC20;
|
||||
}
|
||||
case AMD_EVENT_NB:
|
||||
/* moved to perf_event_amd_uncore.c */
|
||||
/* moved to uncore.c */
|
||||
return &emptyconstraint;
|
||||
default:
|
||||
return &emptyconstraint;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* perf_event_intel_cstate.c: support cstate residency counters
|
||||
* Support cstate residency counters
|
||||
*
|
||||
* Copyright (C) 2015, Intel Corp.
|
||||
* Author: Kan Liang (kan.liang@intel.com)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* perf_event_intel_rapl.c: support Intel RAPL energy consumption counters
|
||||
* Support Intel RAPL energy consumption counters
|
||||
* Copyright (C) 2013 Google, Inc., Stephane Eranian
|
||||
*
|
||||
* Intel RAPL interface is specified in the IA-32 Manual Vol3b
|
||||
|
||||
@@ -360,7 +360,7 @@ extern struct list_head pci2phy_map_head;
|
||||
extern struct pci_extra_dev *uncore_extra_pci_dev;
|
||||
extern struct event_constraint uncore_constraint_empty;
|
||||
|
||||
/* perf_event_intel_uncore_snb.c */
|
||||
/* uncore_snb.c */
|
||||
int snb_uncore_pci_init(void);
|
||||
int ivb_uncore_pci_init(void);
|
||||
int hsw_uncore_pci_init(void);
|
||||
@@ -371,7 +371,7 @@ void nhm_uncore_cpu_init(void);
|
||||
void skl_uncore_cpu_init(void);
|
||||
int snb_pci2phy_map_init(int devid);
|
||||
|
||||
/* perf_event_intel_uncore_snbep.c */
|
||||
/* uncore_snbep.c */
|
||||
int snbep_uncore_pci_init(void);
|
||||
void snbep_uncore_cpu_init(void);
|
||||
int ivbep_uncore_pci_init(void);
|
||||
@@ -385,5 +385,5 @@ void knl_uncore_cpu_init(void);
|
||||
int skx_uncore_pci_init(void);
|
||||
void skx_uncore_cpu_init(void);
|
||||
|
||||
/* perf_event_intel_uncore_nhmex.c */
|
||||
/* uncore_nhmex.c */
|
||||
void nhmex_uncore_cpu_init(void);
|
||||
|
||||
@@ -158,13 +158,13 @@ void hyperv_init(void)
|
||||
clocksource_register_hz(&hyperv_cs_tsc, NSEC_PER_SEC/100);
|
||||
return;
|
||||
}
|
||||
register_msr_cs:
|
||||
#endif
|
||||
/*
|
||||
* For 32 bit guests just use the MSR based mechanism for reading
|
||||
* the partition counter.
|
||||
*/
|
||||
|
||||
register_msr_cs:
|
||||
hyperv_cs = &hyperv_cs_msr;
|
||||
if (ms_hyperv.features & HV_X64_MSR_TIME_REF_COUNT_AVAILABLE)
|
||||
clocksource_register_hz(&hyperv_cs_msr, NSEC_PER_SEC/100);
|
||||
|
||||
@@ -46,6 +46,15 @@ extern int __arch_set_user_pkey_access(struct task_struct *tsk, int pkey,
|
||||
static inline
|
||||
bool mm_pkey_is_allocated(struct mm_struct *mm, int pkey)
|
||||
{
|
||||
/*
|
||||
* "Allocated" pkeys are those that have been returned
|
||||
* from pkey_alloc(). pkey 0 is special, and never
|
||||
* returned from pkey_alloc().
|
||||
*/
|
||||
if (pkey <= 0)
|
||||
return false;
|
||||
if (pkey >= arch_max_pkey())
|
||||
return false;
|
||||
return mm_pkey_allocation_map(mm) & (1U << pkey);
|
||||
}
|
||||
|
||||
@@ -82,12 +91,6 @@ int mm_pkey_alloc(struct mm_struct *mm)
|
||||
static inline
|
||||
int mm_pkey_free(struct mm_struct *mm, int pkey)
|
||||
{
|
||||
/*
|
||||
* pkey 0 is special, always allocated and can never
|
||||
* be freed.
|
||||
*/
|
||||
if (!pkey)
|
||||
return -EINVAL;
|
||||
if (!mm_pkey_is_allocated(mm, pkey))
|
||||
return -EINVAL;
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ struct setup_header {
|
||||
__u32 header;
|
||||
__u16 version;
|
||||
__u32 realmode_swtch;
|
||||
__u16 start_sys;
|
||||
__u16 start_sys_seg;
|
||||
__u16 kernel_version;
|
||||
__u8 type_of_loader;
|
||||
__u8 loadflags;
|
||||
|
||||
@@ -1610,24 +1610,15 @@ static inline void try_to_enable_x2apic(int remap_mode) { }
|
||||
static inline void __x2apic_enable(void) { }
|
||||
#endif /* !CONFIG_X86_X2APIC */
|
||||
|
||||
static int __init try_to_enable_IR(void)
|
||||
{
|
||||
#ifdef CONFIG_X86_IO_APIC
|
||||
if (!x2apic_enabled() && skip_ioapic_setup) {
|
||||
pr_info("Not enabling interrupt remapping due to skipped IO-APIC setup\n");
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
return irq_remapping_enable();
|
||||
}
|
||||
|
||||
void __init enable_IR_x2apic(void)
|
||||
{
|
||||
unsigned long flags;
|
||||
int ret, ir_stat;
|
||||
|
||||
if (skip_ioapic_setup)
|
||||
if (skip_ioapic_setup) {
|
||||
pr_info("Not enabling interrupt remapping due to skipped IO-APIC setup\n");
|
||||
return;
|
||||
}
|
||||
|
||||
ir_stat = irq_remapping_prepare();
|
||||
if (ir_stat < 0 && !x2apic_supported())
|
||||
@@ -1645,7 +1636,7 @@ void __init enable_IR_x2apic(void)
|
||||
|
||||
/* If irq_remapping_prepare() succeeded, try to enable it */
|
||||
if (ir_stat >= 0)
|
||||
ir_stat = try_to_enable_IR();
|
||||
ir_stat = irq_remapping_enable();
|
||||
/* ir_stat contains the remap mode or an error code */
|
||||
try_to_enable_x2apic(ir_stat);
|
||||
|
||||
@@ -2062,10 +2053,10 @@ static int allocate_logical_cpuid(int apicid)
|
||||
|
||||
/* Allocate a new cpuid. */
|
||||
if (nr_logical_cpuids >= nr_cpu_ids) {
|
||||
WARN_ONCE(1, "Only %d processors supported."
|
||||
WARN_ONCE(1, "APIC: NR_CPUS/possible_cpus limit of %i reached. "
|
||||
"Processor %d/0x%x and the rest are ignored.\n",
|
||||
nr_cpu_ids - 1, nr_logical_cpuids, apicid);
|
||||
return -1;
|
||||
nr_cpu_ids, nr_logical_cpuids, apicid);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
cpuid_to_apicid[nr_logical_cpuids] = apicid;
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
#include <linux/sched/signal.h>
|
||||
#include <linux/sched/task.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/task_work.h>
|
||||
|
||||
#include <uapi/linux/magic.h>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
#include <asm/hypervisor.h>
|
||||
#include <asm/timer.h>
|
||||
#include <asm/apic.h>
|
||||
#include <asm/timer.h>
|
||||
|
||||
#undef pr_fmt
|
||||
#define pr_fmt(fmt) "vmware: " fmt
|
||||
|
||||
@@ -354,7 +354,7 @@ static int hpet_resume(struct clock_event_device *evt, int timer)
|
||||
|
||||
irq_domain_deactivate_irq(irq_get_irq_data(hdev->irq));
|
||||
irq_domain_activate_irq(irq_get_irq_data(hdev->irq));
|
||||
disable_irq(hdev->irq);
|
||||
disable_hardirq(hdev->irq);
|
||||
irq_set_affinity(hdev->irq, cpumask_of(hdev->cpu));
|
||||
enable_irq(hdev->irq);
|
||||
}
|
||||
|
||||
@@ -167,7 +167,7 @@ static int __init boot_params_kdebugfs_init(void)
|
||||
struct dentry *dbp, *version, *data;
|
||||
int error = -ENOMEM;
|
||||
|
||||
dbp = debugfs_create_dir("boot_params", NULL);
|
||||
dbp = debugfs_create_dir("boot_params", arch_debugfs_dir);
|
||||
if (!dbp)
|
||||
return -ENOMEM;
|
||||
|
||||
|
||||
@@ -223,6 +223,22 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "P4S800"),
|
||||
},
|
||||
},
|
||||
{ /* Handle problems with rebooting on ASUS EeeBook X205TA */
|
||||
.callback = set_acpi_reboot,
|
||||
.ident = "ASUS EeeBook X205TA",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "X205TAW"),
|
||||
},
|
||||
},
|
||||
{ /* Handle problems with rebooting on ASUS EeeBook X205TAW */
|
||||
.callback = set_acpi_reboot,
|
||||
.ident = "ASUS EeeBook X205TAW",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "X205TAW"),
|
||||
},
|
||||
},
|
||||
|
||||
/* Certec */
|
||||
{ /* Handle problems with rebooting on Certec BPC600 */
|
||||
|
||||
@@ -735,6 +735,15 @@ void pcibios_disable_device (struct pci_dev *dev)
|
||||
pcibios_disable_irq(dev);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
|
||||
void pcibios_release_device(struct pci_dev *dev)
|
||||
{
|
||||
if (atomic_dec_return(&dev->enable_cnt) >= 0)
|
||||
pcibios_disable_device(dev);
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
int pci_ext_cfg_avail(void)
|
||||
{
|
||||
if (raw_pci_ext_ops)
|
||||
|
||||
@@ -1847,7 +1847,6 @@ static void pq_init(int node, int pnode)
|
||||
|
||||
ops.write_payload_first(pnode, first);
|
||||
ops.write_payload_last(pnode, last);
|
||||
ops.write_g_sw_ack(pnode, 0xffffUL);
|
||||
|
||||
/* in effect, all msg_type's are set to MSG_NOOP */
|
||||
memset(pqp, 0, sizeof(struct bau_pq_entry) * DEST_Q_SIZE);
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
*/
|
||||
|
||||
#include "sha256.h"
|
||||
#include "purgatory.h"
|
||||
#include "../boot/string.h"
|
||||
|
||||
struct sha_region {
|
||||
@@ -18,11 +19,11 @@ struct sha_region {
|
||||
unsigned long len;
|
||||
};
|
||||
|
||||
unsigned long backup_dest = 0;
|
||||
unsigned long backup_src = 0;
|
||||
unsigned long backup_sz = 0;
|
||||
static unsigned long backup_dest;
|
||||
static unsigned long backup_src;
|
||||
static unsigned long backup_sz;
|
||||
|
||||
u8 sha256_digest[SHA256_DIGEST_SIZE] = { 0 };
|
||||
static u8 sha256_digest[SHA256_DIGEST_SIZE] = { 0 };
|
||||
|
||||
struct sha_region sha_regions[16] = {};
|
||||
|
||||
@@ -39,7 +40,7 @@ static int copy_backup_region(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int verify_sha256_digest(void)
|
||||
static int verify_sha256_digest(void)
|
||||
{
|
||||
struct sha_region *ptr, *end;
|
||||
u8 digest[SHA256_DIGEST_SIZE];
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#ifndef PURGATORY_H
|
||||
#define PURGATORY_H
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
extern void purgatory(void);
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* PURGATORY_H */
|
||||
@@ -9,6 +9,7 @@
|
||||
* This source code is licensed under the GNU General Public License,
|
||||
* Version 2. See the file COPYING for more details.
|
||||
*/
|
||||
#include "purgatory.h"
|
||||
|
||||
.text
|
||||
.globl purgatory_start
|
||||
|
||||
@@ -41,8 +41,10 @@ void acpi_gpe_apply_masked_gpes(void);
|
||||
void acpi_container_init(void);
|
||||
void acpi_memory_hotplug_init(void);
|
||||
#ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
|
||||
void pci_ioapic_remove(struct acpi_pci_root *root);
|
||||
int acpi_ioapic_remove(struct acpi_pci_root *root);
|
||||
#else
|
||||
static inline void pci_ioapic_remove(struct acpi_pci_root *root) { return; }
|
||||
static inline int acpi_ioapic_remove(struct acpi_pci_root *root) { return 0; }
|
||||
#endif
|
||||
#ifdef CONFIG_ACPI_DOCK
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user