Merge tag 'x86_misc_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 24 May 2022 02:32:59 +0000 (19:32 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 24 May 2022 02:32:59 +0000 (19:32 -0700)
Pull misc x86 updates from Borislav Petkov:
 "A variety of fixes which don't fit any other tip bucket:

   - Remove unnecessary function export

   - Correct asm constraint

   - Fix __setup handlers retval"

* tag 'x86_misc_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/mm: Cleanup the control_va_addr_alignment() __setup handler
  x86: Fix return value of __setup handlers
  x86/delay: Fix the wrong asm constraint in delay_loop()
  x86/amd_nb: Unexport amd_cache_northbridges()

arch/x86/entry/vdso/vma.c
arch/x86/include/asm/amd_nb.h
arch/x86/kernel/amd_nb.c
arch/x86/kernel/apic/apic.c
arch/x86/kernel/cpu/intel.c
arch/x86/kernel/sys_x86_64.c
arch/x86/lib/delay.c
arch/x86/mm/pat/memtype.c
drivers/char/agp/amd64-agp.c
drivers/edac/amd64_edac.c

index 235a5794296acbef611d65d2de8cbec7de9f4ed3..1000d457c3321e2caf3c9428e7961b0e1c572458 100644 (file)
@@ -438,7 +438,7 @@ bool arch_syscall_is_vdso_sigreturn(struct pt_regs *regs)
 static __init int vdso_setup(char *s)
 {
        vdso64_enabled = simple_strtoul(s, NULL, 0);
-       return 0;
+       return 1;
 }
 __setup("vdso=", vdso_setup);
 
index 00d1a400b7a17a272f2cbbf796682b8a18aa3665..ed0eaf65c43721ebfcf4f4ee74f827c6d91ec5d1 100644 (file)
@@ -16,7 +16,6 @@ extern const struct amd_nb_bus_dev_range amd_nb_bus_dev_ranges[];
 
 extern bool early_is_amd_nb(u32 value);
 extern struct resource *amd_get_mmconfig_range(struct resource *res);
-extern int amd_cache_northbridges(void);
 extern void amd_flush_garts(void);
 extern int amd_numa_init(void);
 extern int amd_get_subcaches(int);
index 020c906f79349548d1d1ed5ddf101e1c83293c85..190e0f76337559f27e3b42f246f4b06f12a23ddc 100644 (file)
@@ -188,7 +188,7 @@ int amd_smn_write(u16 node, u32 address, u32 value)
 EXPORT_SYMBOL_GPL(amd_smn_write);
 
 
-int amd_cache_northbridges(void)
+static int amd_cache_northbridges(void)
 {
        const struct pci_device_id *misc_ids = amd_nb_misc_ids;
        const struct pci_device_id *link_ids = amd_nb_link_ids;
@@ -210,14 +210,14 @@ int amd_cache_northbridges(void)
        }
 
        misc = NULL;
-       while ((misc = next_northbridge(misc, misc_ids)) != NULL)
+       while ((misc = next_northbridge(misc, misc_ids)))
                misc_count++;
 
        if (!misc_count)
                return -ENODEV;
 
        root = NULL;
-       while ((root = next_northbridge(root, root_ids)) != NULL)
+       while ((root = next_northbridge(root, root_ids)))
                root_count++;
 
        if (root_count) {
@@ -290,7 +290,6 @@ int amd_cache_northbridges(void)
 
        return 0;
 }
-EXPORT_SYMBOL_GPL(amd_cache_northbridges);
 
 /*
  * Ignores subdevice/subvendor but as far as I can figure out
index 9b87ec6acdec31c084ae7c2209d98404ab0eb7dd..189d3a5e471adc43c44b7d6aa8d2805a0a9a475b 100644 (file)
@@ -170,7 +170,7 @@ static __init int setup_apicpmtimer(char *s)
 {
        apic_calibrate_pmtmr = 1;
        notsc_setup(NULL);
-       return 0;
+       return 1;
 }
 __setup("apicpmtimer", setup_apicpmtimer);
 #endif
index e6c37f38c5ea4b7f246a25f429a2f0b78d70b348..7860241a67db0ba79c5398054f8b23557dd09a3f 100644 (file)
@@ -94,7 +94,7 @@ static bool ring3mwait_disabled __read_mostly;
 static int __init ring3mwait_disable(char *__unused)
 {
        ring3mwait_disabled = true;
-       return 0;
+       return 1;
 }
 __setup("ring3mwait=disable", ring3mwait_disable);
 
index 660b78827638fd946ed2d538c30d1896eb9156d8..8cc653ffdccd72904b14225fc1e0bb57f17e7eb7 100644 (file)
@@ -68,9 +68,6 @@ static int __init control_va_addr_alignment(char *str)
        if (*str == 0)
                return 1;
 
-       if (*str == '=')
-               str++;
-
        if (!strcmp(str, "32"))
                va_align.flags = ALIGN_VA_32;
        else if (!strcmp(str, "64"))
@@ -80,11 +77,11 @@ static int __init control_va_addr_alignment(char *str)
        else if (!strcmp(str, "on"))
                va_align.flags = ALIGN_VA_32 | ALIGN_VA_64;
        else
-               return 0;
+               pr_warn("invalid option value: 'align_va_addr=%s'\n", str);
 
        return 1;
 }
-__setup("align_va_addr", control_va_addr_alignment);
+__setup("align_va_addr=", control_va_addr_alignment);
 
 SYSCALL_DEFINE6(mmap, unsigned long, addr, unsigned long, len,
                unsigned long, prot, unsigned long, flags,
index 65d15df6212d67e4b936f0b9e764efd2b7737308..0e65d00e2339ff95e022d03ee9012346d2ead8b3 100644 (file)
@@ -54,8 +54,8 @@ static void delay_loop(u64 __loops)
                "       jnz 2b          \n"
                "3:     dec %0          \n"
 
-               : /* we don't need output */
-               :"a" (loops)
+               : "+a" (loops)
+               :
        );
 }
 
index 4ba2a3ee4bce1258f0b86a47a47c823e3ff2eb49..d5ef64ddd35e9f38c2a533e22d79c016fd6fcc55 100644 (file)
@@ -101,7 +101,7 @@ int pat_debug_enable;
 static int __init pat_debug_setup(char *str)
 {
        pat_debug_enable = 1;
-       return 0;
+       return 1;
 }
 __setup("debugpat", pat_debug_setup);
 
index dc78a4fb879eb6a0fea8d17c880156567c398105..84a4aa9312cf8d845990f7b06ebc328b41064c7f 100644 (file)
@@ -327,7 +327,7 @@ static int cache_nbs(struct pci_dev *pdev, u32 cap_ptr)
 {
        int i;
 
-       if (amd_cache_northbridges() < 0)
+       if (!amd_nb_num())
                return -ENODEV;
 
        if (!amd_nb_has_feature(AMD_NB_GART))
index 812baa48b29065d322e822a04dc5fca02be8b082..2f854feeeb237af1059bcd4ab8b541ce0c25e4a9 100644 (file)
@@ -4336,7 +4336,7 @@ static int __init amd64_edac_init(void)
        if (!x86_match_cpu(amd64_cpuids))
                return -ENODEV;
 
-       if (amd_cache_northbridges() < 0)
+       if (!amd_nb_num())
                return -ENODEV;
 
        opstate_init();