20 Oct, 2007

15 commits

  • Quoting Randy:

    "It seems sad that this patch sources Kconfig.marker, a 7-line file,
    20-something times. Yes, you (we) don't want to put those 7 lines into
    20-something different files, so sourcing is the right thing.

    However, what you did for avr32 seems more on the right track to me: make
    _one_ Instrumentation support menu that includes PROFILING, OPROFILE, KPROBES,
    and MARKERS and then use (source) that in all of the arches."

    Signed-off-by: Mathieu Desnoyers
    Acked-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mathieu Desnoyers
     
  • This patch removes the crashkernel parsing from arch/sh/kernel/machine_kexec.c
    and calls the generic function, introduced in the generic patch, in
    setup_bootmem_allocator().

    This is necessary because the amount of System RAM must be known in this
    function now because of the new syntax.

    Signed-off-by: Bernhard Walle
    Acked-by: Paul Mundt
    Cc: Vivek Goyal
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bernhard Walle
     
  • This patch adapts the ppc64 code to use the generic parse_crashkernel()
    function introduced in the generic patch of that series.

    Signed-off-by: Bernhard Walle
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Vivek Goyal
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bernhard Walle
     
  • This patch adapts IA64 to use the generic parse_crashkernel() function instead
    of its own parsing for the crashkernel command line.

    Because the total amount of System RAM must be known when calling this
    function, efi_memmap_init() is modified to return its accumulated total_memory
    variable.

    Also, the crashkernel handling is moved in an own function in
    arch/ia64/kernel/setup.c to make the code more readable.

    [kamalesh@linux.vnet.ibm.com: build fix]
    Signed-off-by: Bernhard Walle
    Cc: "Luck, Tony"
    Cc: Vivek Goyal
    Cc: "Eric W. Biederman"
    Signed-off-by: Kamalesh Babulal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bernhard Walle
     
  • This patch removes the crashkernel parsing from
    arch/x86_64/kernel/machine_kexec.c and calls the generic function, introduced
    in the last patch, in setup_bootmem_allocator().

    This is necessary because the amount of System RAM must be known in this
    function now because of the new syntax.

    Signed-off-by: Bernhard Walle
    Cc: Andi Kleen
    Cc: Vivek Goyal
    Cc: "Eric W. Biederman"
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bernhard Walle
     
  • This patch removes the crashkernel parsing from
    arch/i386/kernel/machine_kexec.c and calls the generic function, introduced in
    the last patch, in setup_bootmem_allocator().

    This is necessary because the amount of System RAM must be known in this
    function now because of the new syntax.

    Signed-off-by: Bernhard Walle
    Cc: Andi Kleen
    Cc: Vivek Goyal
    Cc: "Eric W. Biederman"
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bernhard Walle
     
  • One of the easiest things to isolate is the pid printed in kernel log.
    There was a patch, that made this for arch-independent code, this one makes
    so for arch/xxx files.

    It took some time to cross-compile it, but hopefully these are all the
    printks in arch code.

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Pavel Emelyanov
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • define global BIT macro

    move all local BIT defines to the new globally define macro.

    Signed-off-by: Jiri Slaby
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Kumar Gala
    Cc: Dmitry Torokhov
    Cc: Jeff Garzik
    Cc: James Bottomley
    Cc: "Antonino A. Daplas"
    Cc: Russell King
    Acked-by: Ralf Baechle
    Cc: "John W. Linville"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • remove asm/bitops.h includes

    including asm/bitops directly may cause compile errors. don't include it
    and include linux/bitops instead. next patch will deny including asm header
    directly.

    Cc: Adrian Bunk
    Signed-off-by: Jiri Slaby
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • This is the largest patch in the set. Make all (I hope) the places where
    the pid is shown to or get from user operate on the virtual pids.

    The idea is:
    - all in-kernel data structures must store either struct pid itself
    or the pid's global nr, obtained with pid_nr() call;
    - when seeking the task from kernel code with the stored id one
    should use find_task_by_pid() call that works with global pids;
    - when showing pid's numerical value to the user the virtual one
    should be used, but however when one shows task's pid outside this
    task's namespace the global one is to be used;
    - when getting the pid from userspace one need to consider this as
    the virtual one and use appropriate task/pid-searching functions.

    [akpm@linux-foundation.org: build fix]
    [akpm@linux-foundation.org: nuther build fix]
    [akpm@linux-foundation.org: yet nuther build fix]
    [akpm@linux-foundation.org: remove unneeded casts]
    Signed-off-by: Pavel Emelyanov
    Signed-off-by: Alexey Dobriyan
    Cc: Sukadev Bhattiprolu
    Cc: Oleg Nesterov
    Cc: Paul Menage
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Emelyanov
     
  • is_init() is an ambiguous name for the pid==1 check. Split it into
    is_global_init() and is_container_init().

    A cgroup init has it's tsk->pid == 1.

    A global init also has it's tsk->pid == 1 and it's active pid namespace
    is the init_pid_ns. But rather than check the active pid namespace,
    compare the task structure with 'init_pid_ns.child_reaper', which is
    initialized during boot to the /sbin/init process and never changes.

    Changelog:

    2.6.22-rc4-mm2-pidns1:
    - Use 'init_pid_ns.child_reaper' to determine if a given task is the
    global init (/sbin/init) process. This would improve performance
    and remove dependence on the task_pid().

    2.6.21-mm2-pidns2:

    - [Sukadev Bhattiprolu] Changed is_container_init() calls in {powerpc,
    ppc,avr32}/traps.c for the _exception() call to is_global_init().
    This way, we kill only the cgroup if the cgroup's init has a
    bug rather than force a kernel panic.

    [akpm@linux-foundation.org: fix comment]
    [sukadev@us.ibm.com: Use is_global_init() in arch/m32r/mm/fault.c]
    [bunk@stusta.de: kernel/pid.c: remove unused exports]
    [sukadev@us.ibm.com: Fix capability.c to work with threaded init]
    Signed-off-by: Serge E. Hallyn
    Signed-off-by: Sukadev Bhattiprolu
    Acked-by: Pavel Emelianov
    Cc: Eric W. Biederman
    Cc: Cedric Le Goater
    Cc: Dave Hansen
    Cc: Herbert Poetzel
    Cc: Kirill Korotaev
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Serge E. Hallyn
     
  • The set of functions process_session, task_session, process_group and
    task_pgrp is confusing, as the names can be mixed with each other when looking
    at the code for a long time.

    The proposals are to
    * equip the functions that return the integer with _nr suffix to
    represent that fact,
    * and to make all functions work with task (not process) by making
    the common prefix of the same name.

    For monotony the routines signal_session() and set_signal_session() are
    replaced with task_session_nr() and set_task_session(), especially since they
    are only used with the explicit task->signal dereference.

    Signed-off-by: Pavel Emelianov
    Acked-by: Serge E. Hallyn
    Cc: Kirill Korotaev
    Cc: "Eric W. Biederman"
    Cc: Cedric Le Goater
    Cc: Herbert Poetzl
    Cc: Sukadev Bhattiprolu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Emelianov
     
  • In pre-cgroup cpusets, a few config files enabled cpusets by default.

    Signed-off-by: Paul Jackson
    Cc: Paul Menage
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Jackson
     
  • This patch uses vm_get_page_prot() to setup vma->vm_page_prot.

    Though inside vm_get_page_prot() the protection flags is AND with
    (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED), it does not hurt correct code.

    Signed-off-by: Coly Li
    Cc: Hugh Dickins
    Cc: Tony Luck
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Coly Li
     
  • copy_oldmem_page should not return leaving a page frame from the
    previous kernel mapped.

    Signed-off-by: Fernando Luis Vázquez Cao
    Acked-by: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fernando Luis Vázquez Cao
     

19 Oct, 2007

25 commits

  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    [MIPS] time: Move R4000 clockevent device code to separate configurable file
    [MIPS] time: Delete dead cycles_per_jiffy, mips_timer_ack and null_timer_ack
    [MIPS] IP32: Retire use of plat_timer_setup.
    [MIPS] Jazz: Retire use of plat_timer_setup.
    [MIPS] IP27: Convert to clock_event_device.
    [MIPS] JMR3927: Convert to clock_event_device.
    [MIPS] Always do the ARC64_TWIDDLE_PC thing.

    Linus Torvalds
     
  • * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (51 commits)
    [IPV6]: Fix again the fl6_sock_lookup() fixed locking
    [NETFILTER]: nf_conntrack_tcp: fix connection reopening fix
    [IPV6]: Fix race in ipv6_flowlabel_opt() when inserting two labels
    [IPV6]: Lost locking in fl6_sock_lookup
    [IPV6]: Lost locking when inserting a flowlabel in ipv6_fl_list
    [NETFILTER]: xt_sctp: fix mistake to pass a pointer where array is required
    [NET]: Fix OOPS due to missing check in dev_parse_header().
    [TCP]: Remove lost_retrans zero seqno special cases
    [NET]: fix carrier-on bug?
    [NET]: Fix uninitialised variable in ip_frag_reasm()
    [IPSEC]: Rename mode to outer_mode and add inner_mode
    [IPSEC]: Disallow combinations of RO and AH/ESP/IPCOMP
    [IPSEC]: Use the top IPv4 route's peer instead of the bottom
    [IPSEC]: Store afinfo pointer in xfrm_mode
    [IPSEC]: Add missing BEET checks
    [IPSEC]: Move type and mode map into xfrm_state.c
    [IPSEC]: Fix length check in xfrm_parse_spi
    [IPSEC]: Move ip_summed zapping out of xfrm6_rcv_spi
    [IPSEC]: Get nexthdr from caller in xfrm6_rcv_spi
    [IPSEC]: Move tunnel parsing for IPv4 out of xfrm4_input
    ...

    Linus Torvalds
     
  • * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
    [SPARC/64]: Consolidate of_register_driver
    [SPARC] Videopix Frame Grabber: Convert device_lock_sem to mutex
    [SPARC]: Support for new termios.
    [SPARC64]: Check of_get_property() return in pci_determine_mem_io_space().
    [SPARC64]: Fix boot failures due to bootmem.
    [SPARC64]: Implement atomic backoff.

    Linus Torvalds
     
  • To be consistent with the use of attributes in the rest of the kernel
    replace all use of __attribute_pure__ with __pure and delete the definition
    of __attribute_pure__.

    Signed-off-by: Ralf Baechle
    Cc: Russell King
    Acked-by: Mauro Carvalho Chehab
    Cc: Bryan Wu
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ralf Baechle
     
  • Get rid of sparse related warnings from places that use integer as NULL
    pointer.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Stephen Hemminger
    Cc: Andi Kleen
    Cc: Jeff Garzik
    Cc: Matt Mackall
    Cc: Ian Kent
    Cc: Arnd Bergmann
    Cc: Davide Libenzi
    Cc: Stephen Smalley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Hemminger
     
  • msr_class_cpu_callback() can be marked __cpuinit, being the notifier callback
    for a __cpuinitdata notifier_block. So can be marked msr_device_create() too,
    called only from the newly-__cpuinit msr_class_cpu_callback() or from
    __init-marked msr_init().

    Signed-off-by: Satyam Sharma
    Cc: Andi Kleen
    Acked-by: H. Peter Anvin
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Satyam Sharma
     
  • This adds POWERPC specific hooks for scaled time accounting.

    POWER6 includes a SPURR register. The SPURR is based off the PURR register
    but is scaled based on CPU frequency and issue rates. This gives a more
    accurate account of the instructions used per task. The PURR and timebase
    will be constant relative to the wall clock, irrespective of the CPU
    frequency.

    This implementation reads the SPURR register in account_system_vtime which
    is only call called on context witch and hard and soft irq entry and exit.
    The percentage of user and system time is then estimated using the ratio of
    these accounted by the PURR. If the SPURR is not present, the PURR read.

    An earlier implementation of this patch read the SPURR whenever the PURR
    was read, which included the system call entry and exit path.
    Unfortunately this showed a performance regression on lmbench runs, so was
    re-implemented.

    I've included the lmbench results here when run bare metal on POWER6. 1st
    column is the unpatch results. 2nd column is the results using the below
    patch and the 3rd is the % diff of these results from the base. 4th and
    5th columns are the results and % differnce from the base using the older
    patch (SPURR read in syscall entry/exit path).

    Base Scaled-Acct SPURR-in-syscall
    Result Result % diff Result % diff
    Simple syscall: 0.3086 0.3086 0.0000 0.3452 11.8600
    Simple read: 0.4591 0.4671 1.7425 0.5044 9.86713
    Simple write: 0.4364 0.4366 0.0458 0.4731 8.40971
    Simple stat: 2.0055 2.0295 1.1967 2.0669 3.06158
    Simple fstat: 0.5962 0.5876 -1.442 0.6368 6.80979
    Simple open/close: 3.1283 3.1009 -0.875 3.2088 2.57328
    Select on 10 fd's: 0.8554 0.8457 -1.133 0.8667 1.32101
    Select on 100 fd's: 3.5292 3.6329 2.9383 3.6664 3.88756
    Select on 250 fd's: 7.9097 8.1881 3.5197 8.2242 3.97613
    Select on 500 fd's: 15.2659 15.836 3.7357 15.873 3.97814
    Select on 10 tcp fd's: 0.9576 0.9416 -1.670 0.9752 1.83792
    Select on 100 tcp fd's: 7.248 7.2254 -0.311 7.2685 0.28283
    Select on 250 tcp fd's: 17.7742 17.707 -0.375 17.749 -0.1406
    Select on 500 tcp fd's: 35.4258 35.25 -0.496 35.286 -0.3929
    Signal handler installation: 0.6131 0.6075 -0.913 0.647 5.52927
    Signal handler overhead: 2.0919 2.1078 0.7600 2.1831 4.35967
    Protection fault: 0.7345 0.7478 1.8107 0.8031 9.33968
    Pipe latency: 33.006 16.398 -50.31 33.475 1.42368
    AF_UNIX sock stream latency: 14.5093 30.910 113.03 30.715 111.692
    Process fork+exit: 219.8 222.8 1.3648 229.37 4.35623
    Process fork+execve: 876.14 873.28 -0.32 868.66 -0.8533
    Process fork+/bin/sh -c: 2830 2876.5 1.6431 2958 4.52296
    File /var/tmp/XXX write bw: 1193497 1195536 0.1708 118657 -0.5799
    Pagefaults on /var/tmp/XXX: 3.1272 3.2117 2.7020 3.2521 3.99398

    Also, kernel compile times show no difference with this patch applied.

    [pbadari@us.ibm.com: Avoid unnecessary PURR reading]
    Signed-off-by: Michael Neuling
    Cc: Balbir Singh
    Cc: Jay Lan
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Badari Pulavarty
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Neuling
     
  • Found these while looking at printk uses.

    Add missing newlines to dev_ uses
    Add missing KERN_ prefixes to multiline dev_s
    Fixed a wierd->weird spelling typo
    Added a newline to a printk

    Signed-off-by: Joe Perches
    Cc: "Luck, Tony"
    Cc: Jens Axboe
    Cc: Mark M. Hoffman
    Cc: Roland Dreier
    Cc: Tilman Schmidt
    Cc: David Woodhouse
    Cc: Jeff Garzik
    Cc: Stephen Hemminger
    Cc: Greg KH
    Cc: Jeremy Fitzhardinge
    Cc: Geert Uytterhoeven
    Cc: Alessandro Zummo
    Cc: David Brownell
    Cc: James Smart
    Cc: Andrew Vasquez
    Cc: "Antonino A. Daplas"
    Cc: Evgeniy Polyakov
    Cc: Russell King
    Cc: Jaroslav Kysela
    Cc: Takashi Iwai
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Signed-off-by: Eric W. Biederman
    Cc: Alexey Dobriyan
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • - Fix resource leakage in error case within detect_cache_attributes()

    - Don't register hotcpu notifier when cache_add_dev() returns error

    - Introduce cache_dev_map cpumask to track whether cache interface for
    CPU is successfully added by cache_add_dev() or not.

    cache_add_dev() may fail with out of memory error. In order to
    avoid cache_remove_dev() with that uninitialized cache interface when
    CPU_DEAD event is delivered we need to have the cache_dev_map cpumask.

    (We cannot change cache_add_dev() from CPU_ONLINE event handler
    to CPU_UP_PREPARE event handler. Because cache_add_dev() needs
    to do cpuid and store the results with its CPU online.)

    [nix.or.die@googlemail.com: fix a section mismatch warning]
    Cc: Ashok Raj
    Signed-off-by: Akinobu Mita
    Cc: Gautham R Shenoy
    Cc: Oleg Nesterov
    Cc: Andi Kleen
    Cc: Jan Beulich
    Signed-off-by: Gabriel Craciunescu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • - Clear kobject in percpu device_mce before calling sysdev_register() with

    Because mce_create_device() may fail and it leaves kobject filled with
    junk. It will be the problem when mce_create_device() will be called
    next time.

    - Fix error handling in mce_create_device()

    Error handling should not do sysdev_remove_file() with not yet added
    attributes.

    - Don't register hotcpu notifier when mce_create_device() returns error

    - Do mce_create_device() in CPU_UP_PREPARE instead of CPU_ONLINE

    Cc: Andi Kleen
    Signed-off-by: Akinobu Mita
    Cc: Gautham R Shenoy
    Cc: Oleg Nesterov
    Cc: Andi Kleen
    Cc: Jan Beulich
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Do msr_device_create() in CPU_UP_PREPARE instead of CPU_ONLINE.

    Cc: "H. Peter Anvin"
    Signed-off-by: Akinobu Mita
    Cc: Gautham R Shenoy
    Cc: Oleg Nesterov
    Cc: Andi Kleen
    Cc: Jan Beulich
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Do thermal_throttle_add_dev() in CPU_UP_PREPARE instead of CPU_ONLINE.

    Cc: Dmitriy Zavin
    Signed-off-by: Akinobu Mita
    Cc: Gautham R Shenoy
    Cc: Oleg Nesterov
    Cc: Andi Kleen
    Cc: Jan Beulich
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • On platforms that copy sys_tz into the vdso (currently only x86_64, soon to
    include powerpc), it is possible for the vdso to get out of sync if a user
    calls (admittedly unusual) settimeofday(NULL, ptr).

    This patch adds a hook for architectures that set
    CONFIG_GENERIC_TIME_VSYSCALL to ensure when sys_tz is updated they can also
    updatee their copy in the vdso.

    Signed-off-by: Tony Breeds
    Cc: Andi Kleen
    Cc: Tony Luck
    Acked-by: John Stultz
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tony Breeds
     
  • Use temporary page tables for the kernel text mapping during hibernation
    restore on x86_64.

    Without the patch, the original boot kernel's page tables that represent the
    kernel text mapping are used while the core of the image kernel is being
    restored. However, in principle, if the boot kernel is not identical to the
    image kernel, the location of these page tables in the image kernel need not
    be the same, so we should create a safe copy of the kernel text mapping prior
    to restoring the core of the image kernel.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     
  • Since we already pass the address of restore_registers() in the image header,
    we can also pass the value of the CR3 register from before the hibernation in
    the same way. This will allow us to avoid using init_level4_pgt page tables
    during the restore.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     
  • Make it possible to restore a hibernation image on x86_64 with the help of a
    kernel different from the one in the image.

    The idea is to split the core restoration code into two separate parts and to
    place each of them in a different page.  The first part belongs to the boot
    kernel and is executed as the last step of the image kernel's memory
    restoration procedure.  Before being executed, it is relocated to a safe page
    that won't be overwritten while copying the image kernel pages.

    The final operation performed by it is a jump to the second part of the core
    restoration code that belongs to the image kernel and has just been restored.
    This code makes the CPU switch to the image kernel's page tables and restores
    the state of general purpose registers (including the stack pointer) from
    before the hibernation.

    The main issue with this idea is that in order to jump to the second part of
    the core restoration code the boot kernel needs to know its address.
     However, this address may be passed to it in the image header.  Namely, the
    part of the image header previously used for checking if the version of the
    image kernel is correct can be replaced with some architecture specific data
    that will allow the boot kernel to jump to the right address within the image
    kernel.  These data should also be used for checking if the image kernel is
    compatible with the boot kernel (as far as the memory restroration procedure
    is concerned). It can be done, for example, with the help of a "magic" value
    that has to be equal in both kernels, so that they can be regarded as
    compatible.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     
  • This removes old debugging stuff, that should be no longer neccessary. It
    accessed VGA hardware (which may not be ready at this point), and used LEDs
    at port 80 for debugging.

    Signed-off-by: Pavel Machek
    Acked-by: Rafael J. Wysocki
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Machek
     
  • Currently, there's a CONFIG_DISABLE_CONSOLE_SUSPEND that allows one to stop
    the serial console from being suspended when the rest of the machine goes
    to sleep. This is incredibly useful for debugging power management-related
    things; however, having it as a compile-time option has proved to be
    incredibly inconvenient for us (OLPC). There are plenty of times that we
    want serial console to not suspend, but for the most part we'd like serial
    console to be suspended.

    This drops CONFIG_DISABLE_CONSOLE_SUSPEND, and replaces it with a kernel
    boot parameter (no_console_suspend). By default, the serial console will
    be suspended along with the rest of the system; by passing
    'no_console_suspend' to the kernel during boot, serial console will remain
    alive during suspend.

    For now, this is pretty serial console specific; further fixes could be
    applied to make this work for things like netconsole.

    Signed-off-by: Andres Salomon
    Acked-by: "Rafael J. Wysocki"
    Acked-by: Pavel Machek
    Cc: Nigel Cunningham
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andres Salomon
     
  • There is no reason why the .prepare() and .finish() methods in 'struct
    platform_suspend_ops' should take any arguments, since architectures don't use
    these methods' argument in any practically meaningful way (ie. either the
    target system sleep state is conveyed to the platform by .set_target(), or
    there is only one suspend state supported and it is indicated to the PM core
    by .valid(), or .prepare() and .finish() aren't defined at all).  There also
    is no reason why .finish() should return any result.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Cc: Len Brown
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     
  • The name of 'struct pm_ops' suggests that it is related to the power
    management in general, but in fact it is only related to suspend.  Moreover,
    its name should indicate what this structure is used for, so it seems
    reasonable to change it to 'struct platform_suspend_ops'.  In that case, the
    name of the global variable of this type used by the PM core and the names of
    related functions should be changed accordingly.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Cc: Len Brown
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     
  • Move the definition of 'struct pm_ops' and related functions from
    to .

    There are, at least, the following reasons to do that:
    * 'struct pm_ops' is specifically related to suspend and not to the power
    management in general.
    * As long as 'struct pm_ops' is defined in , any modification of it
    causes the entire kernel to be recompiled, which is unnecessary and annoying.
    * Some suspend-related features are already defined in , so it
    is logical to move the definition of 'struct pm_ops' into there.
    * 'struct hibernation_ops', being the hibernation-related counterpart of
    'struct pm_ops', is defined in .

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Cc: Len Brown
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • cycles_per_jiffy was only ever getting assigned and the function pointer
    not being called anymore and mips_timer_ack had gotten similarly stale. I
    leave the remaining assignments unfixed as a lighthouse pointing platform
    maintainers to what needs a rewrite. These changes make null_timer_ack()
    unreferenced, so delete that too.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle