26 Jun, 2005

40 commits

  • This fixes typos/formatting in video_extension.txt.

    Signed-off-by: Pavel Machek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Machek
     
  • Sleep code uses wrong version of lgdt, that does the wrong thing when
    gdt is beyond 16MB or so.

    Signed-off-by: Pavel Machek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Machek
     
  • CONFIG_PM_DISK is long gone, but it still managed to survived at few
    places.

    Signed-off-by: Pavel Machek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Machek
     
  • This updates documentation and fixes pointers in MAINTAINERS file.

    Signed-off-by: Pavel Machek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Machek
     
  • Using CPU hotplug to support suspend/resume SMP. Both S3 and S4 use
    disable/enable_nonboot_cpus API. The S4 part is based on Pavel's original S4
    SMP patch.

    Signed-off-by: Li Shaohua
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Shaohua
     
  • We already do kobject_hotplug for cpu offline; this adds a kobject_hotplug
    call for the online case. This is being requested by developers of an
    application which wants to be notified about both kinds of events.

    Signed-off-by: Nathan Lynch
    Cc: Rusty Russell
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nathan Lynch
     
  • Dead CPU notifies online CPU that it's dead using cpu_state variable.
    After switching to physical cpu hotplug, we forgot setting the variable.
    This patch fixes it. Currently only __cpu_die uses it. We changed other
    locations for consistency in case others use it.

    Signed-off-by: Shaohua Li
    Acked-by: Ashok Raj
    Cc: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Shaohua Li
     
  • This patch provides an option to switch broadcast or use mask version for
    sending IPI's. If CONFIG_HOTPLUG_CPU is defined, we choose not to use
    broadcast shortcuts by default, otherwise we choose broadcast mode as default.

    both cases, one can change this via startup cmd line option, to choose
    no-broadcast mode.

    no_ipi_broadcast=1

    This is provided on request from Andi Kleen, since he doesnt agree with
    replacing IPI shortcuts as a solution for CPU hotplug. Without removing
    broadcast IPI's, it would mean lots of new code for __cpu_up() path, which
    would acheive the same results.

    Signed-off-by: Ashok Raj
    Acked-by: Andi Kleen
    Acked-by: Zwane Mwaikambo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ashok Raj
     
  • Broadcast IPI's provide un-expected behaviour for cpu hotplug. CPU's in
    offline state also end up receiving the IPI. Once the cpus become online they
    receive these stale IPI's which are bad and introduce unexpected behaviour.

    This is easily avoided by not sending a broadcast and addressing just the
    CPU's in online map. Doing prelim cycle counts it appears there is no big
    overhead and numbers seem around 0x3000-0x3900 on an average on x86 and x86_64
    systems with CPUS running 3G, both for broadcast and mask version of the
    API's.

    The shortcuts are useful only for flat mode (where the perf shows no
    degradation), and in cluster mode, its unicast anyway. Its simpler to just
    not use broadcast anymore.

    Signed-off-by: Ashok Raj
    Acked-by: Andi Kleen
    Acked-by: Zwane Mwaikambo
    Signed-off-by: Shaohua Li
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ashok Raj
     
  • This patch is a minor cleanup to the cpu sibling/core map. It is required
    that this setup happens on a per-cpu bringup time.

    Signed-off-by: Ashok Raj
    Acked-by: Andi Kleen
    Acked-by: Zwane Mwaikambo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ashok Raj
     
  • Experimental CPU hotplug patch for x86_64
    -----------------------------------------
    This supports logical CPU online and offline.
    - Test with maxcpus=1, and then kick other cpu's off to test if init code
    is all cleaned up. CONFIG_SCHED_SMT works as well.
    - idle threads are forked on demand from keventd threads for clean startup

    TBD:
    1. Not tested on a real NUMA machine (tested with numa=fake=2)
    2. Handle ACPI pieces for physical hotplug support.

    Signed-off-by: Ashok Raj
    Acked-by: Andi Kleen
    Acked-by: Zwane Mwaikambo
    Signed-off-by: Shaohua.li
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ashok Raj
     
  • This patch adds __cpuinit and __cpuinitdata sections that need to exist past
    boot to support cpu hotplug.

    Caveat: This is done *only* for EM64T CPU Hotplug support, on request from
    Andi Kleen. Much of the generic hotplug code in kernel, and none of the other
    archs that support CPU hotplug today, i386, ia64, ppc64, s390 and parisc dont
    mark sections with __cpuinit, but only mark them as __devinit, and
    __devinitdata.

    If someone is motivated to change generic code, we need to make sure all
    existing hotplug code does not break, on other arch's that dont use __cpuinit,
    and __cpudevinit.

    Signed-off-by: Ashok Raj
    Acked-by: Andi Kleen
    Acked-by: Zwane Mwaikambo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ashok Raj
     
  • I really wish smp_prepare_cpu() would disappear eventually. In the interim
    this is ideally a weak function, so we dont end up changing several places
    to define this dummy in headers.

    Today since the dummy declaration is done only in drivers/base/cpu.c but
    the function is called in kernel/power/smp.c i get undefined reference in
    my cpu hotplug code for x86_64 under development.

    Signed-off-by: Ashok Raj
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ashok Raj
     
  • Clean CPU states in order to reuse smp boot code for CPU hotplug.

    Signed-off-by: Li Shaohua
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Shaohua
     
  • Trival patch for CPU hotplug. In CPU identify part, only did cleaup for intel
    CPUs. Need do for other CPUs if they support S3 SMP.

    Signed-off-by: Li Shaohua
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Shaohua
     
  • Make sibling map init per-cpu. Hotplug CPU may change the map at runtime.

    Signed-off-by: Li Shaohua
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Shaohua
     
  • Make SEP init per-cpu, so it is hotplug safe.

    Signed-off-by: Li Shaohua
    Signed-off-by: Ashok Raj
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Shaohua
     
  • This patch introduces a startup parameter no_broadcast. When we enable
    CONFIG_HOTPLUG_CPU, we dont want to use broadcast shortcut as it has ill
    effects on a offline cpu. If we issue broadcast, the IPI is also delivered
    to offline cpus, or partially up cpu causing stale IPI's to be handled,
    which is a problem and can cause undesirable effects.

    Introduces a new startup cmdline option no_ipi_broadcast, that can be
    switched at cmdline if necessary.

    Signed-off-by: Ashok Raj
    Acked-by: Shaohua Li
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ashok Raj
     
  • (The i386 CPU hotplug patch provides infrastructure for some work which Pavel
    is doing as well as for ACPI S3 (suspend-to-RAM) work which Li Shaohua
    is doing)

    The following provides i386 architecture support for safely unregistering and
    registering processors during runtime, updated for the current -mm tree. In
    order to avoid dumping cpu hotplug code into kernel/irq/* i dropped the
    cpu_online check in do_IRQ() by modifying fixup_irqs(). The difference being
    that on cpu offline, fixup_irqs() is called before we clear the cpu from
    cpu_online_map and a long delay in order to ensure that we never have any
    queued external interrupts on the APICs. There are additional changes to s390
    and ppc64 to account for this change.

    1) Add CONFIG_HOTPLUG_CPU
    2) disable local APIC timer on dead cpus.
    3) Disable preempt around irq balancing to prevent CPUs going down.
    4) Print irq stats for all possible cpus.
    5) Debugging check for interrupts on offline cpus.
    6) Hacky fixup_irqs() to redirect irqs when cpus go off/online.
    7) play_dead() for offline cpus to spin inside.
    8) Handle offline cpus set in flush_tlb_others().
    9) Grab lock earlier in smp_call_function() to prevent CPUs going down.
    10) Implement __cpu_disable() and __cpu_die().
    11) Enable local interrupts in cpu_enable() after fixup_irqs()
    12) Don't fiddle with NMI on dead cpu, but leave intact on other cpus.
    13) Program IRQ affinity whilst cpu is still in cpu_online_map on offline.

    Signed-off-by: Zwane Mwaikambo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zwane Mwaikambo
     
  • I'm doing the cpu hotplug stress test and found a variable ('ready') is
    overflow after several hundreds rounds of cpu hotplug. Here is a fix.

    Signed-off-by: Shaohua Li
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Shaohua Li
     
  • With hpet enabled, cpu hotplug uses some routines marked with __init.

    Signed-off-by: Shaohua Li
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Shaohua Li
     
  • Whitespace and CodingStyle cleanup. No functionality changes.

    Signed-off-by: Andrey Panin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Panin
     
  • Since last dmi quirk looks useless (it just prints 404 compliant url) we can
    finally remove central dmi blacklist.

    Signed-off-by: Andrey Panin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Panin
     
  • This patch moves ACPI sleep quirk out of dmi_scan.c

    Signed-off-by: Andrey Panin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Panin
     
  • This patch moves ACPI boot quirks out of dmi_scan.c

    Signed-off-by: Andrey Panin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Panin
     
  • Stephen's patch to remove LparData.h missed an include in lparcfg.c This
    fixes a few compile warnings.

    Signed-off-by: Michael Ellerman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Ellerman
     
  • Continue the Good Fight: Limit bootmem.h include creep.

    Signed-off-by: Jon Loeliger
    Signed-off-by: Kumar Gala
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kumar Gala
     
  • All consumers of the driver MPC10x, MPC52xx, MPC824x, MPC83xx, and MPC85xx are
    all using platform devices. We can get ride of the dead code to support using
    this driver with the old OCP based model

    Signed-off-by: Kumar Gala
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kumar Gala
     
  • Support for the OCP device model on Freescale (FSL) PPC's is no longer used.
    All FSL PPC's that were using OCP have be converted to using the platform
    device model.

    Signed-off-by: Kumar Gala
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kumar Gala
     
  • The e200 core is a Book-E core (similar to e500) that has a unified L1 cache
    and is not cache coherent on the bus. The e200 core also adds a separate
    exception level for debug exceptions. Part of this patch helps to cleanup a
    few cases that are true for all Freescale Book-E parts, not just e500.

    Signed-off-by: Kim Phillips
    Signed-off-by: Kumar Gala
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kumar Gala
     
  • Ensure that the returned pointer from ppc_sys_get_pdata is not NULL before we
    start using it. This handles any cases where we have variants of processors
    on the same board with different functionality.

    Signed-off-by: Kumar Gala
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kumar Gala
     
  • This patch,based on sample code by Roland McGrath, adds an execheap
    permission check that controls the ability to make the heap executable so
    that this can be prevented in almost all cases (the X server is presently
    an exception, but this will hopefully be resolved in the future) so that
    even programs with execmem permission will need to have the anonymous
    memory mapped in order to make it executable.

    The only reason that we use a permission check for such restriction (vs.
    making it unconditional) is that the X module loader presently needs it; it
    could possibly be made unconditional in the future when X is changed.

    The policy patch for the execheap permission is available at:
    http://pearls.tuxedo-es.org/patches/selinux/policy-execheap.patch

    Signed-off-by: Lorenzo Hernandez Garcia-Hierro
    Acked-by: James Morris
    Acked-by: Stephen Smalley
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lorenzo Hernández García-Hierro
     
  • This patch adds an execstack permission check that controls the ability to
    make the main process stack executable so that attempts to make the stack
    executable can still be prevented even if the process is allowed the
    existing execmem permission in order to e.g. perform runtime code
    generation. Note that this does not yet address thread stacks. Note also
    that unlike the execmem check, the execstack check is only applied on
    mprotect calls, not mmap calls, as the current security_file_mmap hook is
    not passed the necessary information presently.

    The original author of the code that makes the distinction of the stack
    region, is Ingo Molnar, who wrote it within his patch for
    /proc//maps markers.
    (http://marc.theaimsgroup.com/?l=linux-kernel&m=110719881508591&w=2)

    The patches also can be found at:
    http://pearls.tuxedo-es.org/patches/selinux/policy-execstack.patch
    http://pearls.tuxedo-es.org/patches/selinux/kernel-execstack.patch

    policy-execstack.patch is the patch that needs to be applied to the policy in
    order to support the execstack permission and exclude it
    from general_domain_access within macros/core_macros.te.

    kernel-execstack.patch adds such permission to the SELinux code within
    the kernel and adds the proper permission check to the selinux_file_mprotect() hook.

    Signed-off-by: Lorenzo Hernandez Garcia-Hierro
    Acked-by: James Morris
    Acked-by: Stephen Smalley
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lorenzo Hernandez García-Hierro
     
  • Out-of-tree user of remap_pfn_range hit kernel BUG at mm/memory.c:1112! It
    passes an unrounded size to remap_pfn_range, which was okay before 2.6.12,
    but misses remap_pte_range's new end condition. An audit of all the other
    ptwalks confirms that this is the only one so exposed.

    Signed-off-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • Fix a bug on error handling in the direct I/O function.

    Currently, if a file is opened with the O_DIRECT|O_SYNC flag, the write()
    syscall cannot receive the EIO error after an I/O error (SCSI cable is
    disconnected etc.).

    Return values of other points that call generic_osync_inode() are treated
    appropriately.

    Signed-off-by: Hisashi Hifumi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hifumi Hisashi
     
  • 2.6.12-git6 doesn't boot on some MIPS machines. They need the support of flat
    memory and discontig memory.

    Signed-off-by: Yoichi Yuasa
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yoichi Yuasa
     
  • A couple of drivers declare register_serial/unregister_serial prototypes
    but don't use them. FRV contains a commented out call to register_serial.
    Since these are deprecated, remove these unnecessary references.

    Signed-off-by: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Russell King
     
  • Gcc4 doesn't like volatile casts as lvalues. Make the structure members
    volatile instead.

    Signed-off-by: Dave Jones
    Cc: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jones
     
  • I8K: add BIOS signatures of a newer Dell laptops, also there can be
    more than one temperature sensor reported by BIOS. Lifted from
    driver 1.25 on Massimo Dal Zotto's site.

    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dmitry Torokhov
     
  • I8K: use module_{init|exit} instead of old style #ifdef MODULE
    code, some formatting changes.

    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dmitry Torokhov