[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2 41/70] x86/quirks: CFI hardening
Control Flow Integrity schemes use toolchain and optionally hardware support to help protect against call/jump/return oriented programming attacks. Use cf_check to annotate function pointer targets for the toolchain. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: Jan Beulich <jbeulich@xxxxxxxx> --- xen/arch/x86/dmi_scan.c | 10 +++++----- xen/arch/x86/hvm/quirks.c | 2 +- xen/arch/x86/shutdown.c | 2 +- xen/arch/x86/x86_64/mmconfig-shared.c | 8 ++++---- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/xen/arch/x86/dmi_scan.c b/xen/arch/x86/dmi_scan.c index d27cd3450a29..81f80c053a7a 100644 --- a/xen/arch/x86/dmi_scan.c +++ b/xen/arch/x86/dmi_scan.c @@ -476,7 +476,7 @@ static void __init dmi_save_ident(const struct dmi_header *dm, int slot, int str #define NO_MATCH { DMI_NONE, NULL} #define MATCH DMI_MATCH -static int __init ich10_bios_quirk(const struct dmi_system_id *d) +static int __init cf_check ich10_bios_quirk(const struct dmi_system_id *d) { u32 port, smictl; @@ -499,14 +499,14 @@ static int __init ich10_bios_quirk(const struct dmi_system_id *d) return 0; } -static __init int reset_videomode_after_s3(const struct dmi_blacklist *d) +static __init int cf_check reset_videomode_after_s3(const struct dmi_blacklist *d) { /* See wakeup.S */ acpi_video_flags |= 2; return 0; } -static __init int dmi_disable_acpi(const struct dmi_blacklist *d) +static __init int cf_check dmi_disable_acpi(const struct dmi_blacklist *d) { if (!acpi_force) { printk(KERN_NOTICE "%s detected: acpi off\n",d->ident); @@ -521,7 +521,7 @@ static __init int dmi_disable_acpi(const struct dmi_blacklist *d) /* * Limit ACPI to CPU enumeration for HT */ -static __init int force_acpi_ht(const struct dmi_blacklist *d) +static __init int cf_check force_acpi_ht(const struct dmi_blacklist *d) { if (!acpi_force) { printk(KERN_NOTICE "%s detected: force use of acpi=ht\n", d->ident); @@ -650,7 +650,7 @@ static const struct dmi_blacklist __initconstrel dmi_blacklist[] = { * out of here. */ -static void __init dmi_decode(const struct dmi_header *dm) +static void __init cf_check dmi_decode(const struct dmi_header *dm) { #ifdef DMI_DEBUG const uint8_t *data = (const void *)dm; diff --git a/xen/arch/x86/hvm/quirks.c b/xen/arch/x86/hvm/quirks.c index 917356b1312c..2adab1f4b84b 100644 --- a/xen/arch/x86/hvm/quirks.c +++ b/xen/arch/x86/hvm/quirks.c @@ -25,7 +25,7 @@ s8 __read_mostly hvm_port80_allowed = -1; boolean_param("hvm_port80", hvm_port80_allowed); -static int __init dmi_hvm_deny_port80(const struct dmi_system_id *id) +static int __init cf_check dmi_hvm_deny_port80(const struct dmi_system_id *id) { printk(XENLOG_WARNING "%s: port 0x80 access %s allowed for HVM guests\n", id->ident, hvm_port80_allowed > 0 ? "forcibly" : "not"); diff --git a/xen/arch/x86/shutdown.c b/xen/arch/x86/shutdown.c index 30985d36a612..7619544d14da 100644 --- a/xen/arch/x86/shutdown.c +++ b/xen/arch/x86/shutdown.c @@ -158,7 +158,7 @@ static void default_reboot_type(void) reboot_type = BOOT_ACPI; } -static int __init override_reboot(const struct dmi_system_id *d) +static int __init cf_check override_reboot(const struct dmi_system_id *d) { enum reboot_type type = (long)d->driver_data; diff --git a/xen/arch/x86/x86_64/mmconfig-shared.c b/xen/arch/x86/x86_64/mmconfig-shared.c index 2fa7f3f0bc4b..74b22b71a19c 100644 --- a/xen/arch/x86/x86_64/mmconfig-shared.c +++ b/xen/arch/x86/x86_64/mmconfig-shared.c @@ -62,7 +62,7 @@ static int __init cf_check parse_mmcfg(const char *s) } custom_param("mmcfg", parse_mmcfg); -static const char __init *pci_mmcfg_e7520(void) +static const char *__init cf_check pci_mmcfg_e7520(void) { u32 win; win = pci_conf_read16(PCI_SBDF(0, 0, 0, 0), 0xce); @@ -84,7 +84,7 @@ static const char __init *pci_mmcfg_e7520(void) return "Intel Corporation E7520 Memory Controller Hub"; } -static const char __init *pci_mmcfg_intel_945(void) +static const char *__init cf_check pci_mmcfg_intel_945(void) { u32 pciexbar, mask = 0, len = 0; @@ -137,7 +137,7 @@ static const char __init *pci_mmcfg_intel_945(void) return "Intel Corporation 945G/GZ/P/PL Express Memory Controller Hub"; } -static const char __init *pci_mmcfg_amd_fam10h(void) +static const char *__init cf_check pci_mmcfg_amd_fam10h(void) { uint32_t address; uint64_t base, msr_content; @@ -190,7 +190,7 @@ static const char __init *pci_mmcfg_amd_fam10h(void) return "AMD Family 10h NB"; } -static const char __init *pci_mmcfg_nvidia_mcp55(void) +static const char *__init cf_check pci_mmcfg_nvidia_mcp55(void) { static bool_t __initdata mcp55_checked; int bus, i; -- 2.11.0
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |