lkml.org 
[lkml]   [2015]   [Oct]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/2] x86 smpboot: fix cpu_init_udelay=10000
    > From: Len Brown <len.brown@intel.com>
    >
    > For legacy machines cpu_init_udelay defaults to 10,000.
    > For modern machines it is set to 0.
    >
    > The user should be able to set cpu_init_udelay to
    > any value on the cmdline, including 10,000.
    > Before this patch, that was seen as "unchanged from default"
    > and thus on a modern machine, the user request was ignored
    > and the delay was set to 0.
    >
    > Signed-off-by: Len Brown <len.brown@intel.com>
    > ---
    > arch/x86/kernel/smpboot.c | 7 +++++--
    > 1 file changed, 5 insertions(+), 2 deletions(-)
    >
    > diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
    > index e0c198e..32267cc 100644
    > --- a/arch/x86/kernel/smpboot.c
    > +++ b/arch/x86/kernel/smpboot.c
    > @@ -509,7 +509,7 @@ void __inquire_remote_apic(int apicid)
    >  */
    > #define UDELAY_10MS_DEFAULT 10000
    >
    > -static unsigned int init_udelay = UDELAY_10MS_DEFAULT;
    > +static unsigned int init_udelay = INT_MAX;
    >
    > static int __init cpu_init_udelay(char *str)
    > {
    > @@ -522,13 +522,16 @@ early_param("cpu_init_udelay", cpu_init_udelay);
    > static void __init smp_quirk_init_udelay(void)
    > {
    >      /* if cmdline changed it from default, leave it alone */
    > -     if (init_udelay != UDELAY_10MS_DEFAULT)
    > +     if (init_udelay != INT_MAX)
    >           return;
    >
    >      /* if modern processor, use no delay */
    >      if (((boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) && (boot_cpu_data.x86 == 6)) ||
    >          ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) && (boot_cpu_data.x86 >= 0xF)))
    >           init_udelay = 0;
    > +
    > +     /* else, use legacy delay */
    > +     init_udelay = UDELAY_10MS_DEFAULT;


    Hi Len,


    Is this really what you intended? The else is commented out so if init_udelay is quirked
    to be 0 it will always be reset to UDELAY_10MS_DEFAULT. Also init_udelay is unsigned, so
    would UINT_MAX be a better choice?


    Shane



    \
     
     \ /
      Last update: 2015-10-16 22:01    [W:4.341 / U:0.476 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site