1. 01 Feb, 2008 40 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86 · 3e01dfce
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86:
        x86: avoid section mismatch involving arch_register_cpu
        x86: fixes for lookup_address args
        x86: fix sparse warnings in cpu/common.c
        x86: make early_console static in early_printk.c
        x86: remove unneeded round_up
        x86: fix section mismatch warning in kernel/pci-calgary
        x86: fix section mismatch warning in acpi/boot.c
        x86: fix section mismatch warnings when referencing notifiers
        x86: silence section mismatch warning in smpboot_64.c
        x86: fix comments in vmlinux_64.lds
        x86_64: make bootmap_start page align v6
        x86_64: add debug name for early_res
      3e01dfce
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched · 45f37e86
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched:
        latencytop: Change Kconfig dependency.
        futex: Add bitset conditional wait/wakeup functionality
        futex: Remove warn on in return fixup path
        x86: replace LOCK_PREFIX in futex.h
        tick-sched: add more debug information
        timekeeping: update xtime_cache when time(zone) changes
        hrtimer: fix hrtimer_init_sleeper() users
      45f37e86
    • Alexander van Heukelum's avatar
      x86: avoid section mismatch involving arch_register_cpu · d9874026
      Alexander van Heukelum authored
      Avoid section mismatch involving arch_register_cpu.
      
      Marking arch_register_cpu as __init and removing the export
      for non-hotplug-cpu configurations makes the following warning
      go away:
      
      Section mismatch in reference from the function
      arch_register_cpu() to the function .devinit.text:register_cpu()
      The function  arch_register_cpu() references
      the function __devinit register_cpu().
      This is often because arch_register_cpu lacks a __devinit
      annotation or the annotation of register_cpu is wrong.
      
      The only external user of arch_register_cpu in the tree is
      in drivers/acpi/processor_core.c where it is guarded by
      ACPI_HOTPLUG_CPU (which depends on HOTPLUG_CPU).
      Signed-off-by: default avatarAlexander van Heukelum <heukelum@fastmail.fm>
      CC: Sam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      d9874026
    • Harvey Harrison's avatar
      x86: fixes for lookup_address args · 93809be8
      Harvey Harrison authored
      Signedness mismatches in level argument.
      Signed-off-by: default avatarHarvey Harrison <harvey.harrison@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      93809be8
    • Harvey Harrison's avatar
      x86: fix sparse warnings in cpu/common.c · 4a148513
      Harvey Harrison authored
      The casts will always be needed, may as well make them the right
      signedness.  The ebx variables can easily be unsigned, may as well.
      
      arch/x86/kernel/cpu/common.c:261:21: warning: incorrect type in argument 2 (different signedness)
      arch/x86/kernel/cpu/common.c:261:21:    expected unsigned int *eax
      arch/x86/kernel/cpu/common.c:261:21:    got int *<noident>
      arch/x86/kernel/cpu/common.c:262:9: warning: incorrect type in argument 3 (different signedness)
      arch/x86/kernel/cpu/common.c:262:9:    expected unsigned int *ebx
      arch/x86/kernel/cpu/common.c:262:9:    got int *<noident>
      arch/x86/kernel/cpu/common.c:263:9: warning: incorrect type in argument 4 (different signedness)
      arch/x86/kernel/cpu/common.c:263:9:    expected unsigned int *ecx
      arch/x86/kernel/cpu/common.c:263:9:    got int *<noident>
      arch/x86/kernel/cpu/common.c:264:9: warning: incorrect type in argument 5 (different signedness)
      arch/x86/kernel/cpu/common.c:264:9:    expected unsigned int *edx
      arch/x86/kernel/cpu/common.c:264:9:    got int *<noident>
      arch/x86/kernel/cpu/common.c:293:30: warning: incorrect type in argument 3 (different signedness)
      arch/x86/kernel/cpu/common.c:293:30:    expected unsigned int *ebx
      arch/x86/kernel/cpu/common.c:293:30:    got int *<noident>
      arch/x86/kernel/cpu/common.c:350:22: warning: incorrect type in argument 2 (different signedness)
      arch/x86/kernel/cpu/common.c:350:22:    expected unsigned int *eax
      arch/x86/kernel/cpu/common.c:350:22:    got int *<noident>
      arch/x86/kernel/cpu/common.c:351:10: warning: incorrect type in argument 3 (different signedness)
      arch/x86/kernel/cpu/common.c:351:10:    expected unsigned int *ebx
      arch/x86/kernel/cpu/common.c:351:10:    got int *<noident>
      arch/x86/kernel/cpu/common.c:352:10: warning: incorrect type in argument 4 (different signedness)
      arch/x86/kernel/cpu/common.c:352:10:    expected unsigned int *ecx
      arch/x86/kernel/cpu/common.c:352:10:    got int *<noident>
      arch/x86/kernel/cpu/common.c:353:10: warning: incorrect type in argument 5 (different signedness)
      arch/x86/kernel/cpu/common.c:353:10:    expected unsigned int *edx
      arch/x86/kernel/cpu/common.c:353:10:    got int *<noident>
      arch/x86/kernel/cpu/common.c:362:30: warning: incorrect type in argument 3 (different signedness)
      arch/x86/kernel/cpu/common.c:362:30:    expected unsigned int *ebx
      arch/x86/kernel/cpu/common.c:362:30:    got int *<noident>
      Signed-off-by: default avatarHarvey Harrison <harvey.harrison@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      4a148513
    • Harvey Harrison's avatar
      x86: make early_console static in early_printk.c · bb0e1290
      Harvey Harrison authored
      Not necessary to expose it, also fixes sparse warning.
      
      arch/x86/kernel/early_printk.c:196:16: warning: symbol 'early_console' was not declared. Should it be static?
      Signed-off-by: default avatarHarvey Harrison <harvey.harrison@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      bb0e1290
    • Yinghai Lu's avatar
      x86: remove unneeded round_up · 9347e0b0
      Yinghai Lu authored
      Signed-off-by: default avatarYinghai Lu <yinghai.lu@sun.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      9347e0b0
    • Sam Ravnborg's avatar
      x86: fix section mismatch warning in kernel/pci-calgary · 31f3dff6
      Sam Ravnborg authored
      Fix following warning:
      WARNING: arch/x86/kernel/built-in.o(.text+0x1eb41): Section mismatch in reference from the function calgary_handle_quirks() to the function .init.text:calgary_set_split_completion_timeout()
      
      calgary_handle_quirks() are only called at
      __init time (in calgary_init_one() via handle_quirks ops).
      So annotate this function and the sister function __init.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      31f3dff6
    • Sam Ravnborg's avatar
      x86: fix section mismatch warning in acpi/boot.c · 009cbadb
      Sam Ravnborg authored
      Fix following warning:
      WARNING: o-x86_64/arch/x86/kernel/built-in.o(.text+0x13d15): Section mismatch in reference from the function acpi_map_lsapic() to the function .cpuinit.text:mp_register_lapic()
      
      The function acpi_map_lsapic() is exported and thus not annotated.
      But the sole user is acpi/processor_core.c in a __cpuinit path.
      So create a small wrapper and put back the annotation thus
      avoiding the warning.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      009cbadb
    • Sam Ravnborg's avatar
      x86: fix section mismatch warnings when referencing notifiers · c72258c7
      Sam Ravnborg authored
      Fix the following warnings:
      WARNING: arch/x86/kernel/built-in.o(.exit.text+0xf8): Section mismatch in reference from the function msr_exit() to the variable .cpuinit.data:msr_class_cpu_notifier
      WARNING: arch/x86/kernel/built-in.o(.exit.text+0x158): Section mismatch in reference from the function cpuid_exit() to the variable .cpuinit.data:cpuid_class_cpu_notifier
      WARNING: arch/x86/kernel/built-in.o(.exit.text+0x171): Section mismatch in reference from the function microcode_exit() to the variable .cpuinit.data:mc_cpu_notifier
      
      In all three cases there were a function annotated __exit
      that referenced a variable annotated __cpuinitdata.
      
      The fix was to replace the annotation of the notifier
      with __refdata to tell modpost that the reference to
      a _cpuinit function in the notifier are OK.
      The unregister call that references the notifier
      variable will simple delete the function pointer
      so there is no problem ignoring the reference.
      
      Note: This looks like another case where __cpuinit
      has been used as replacement for proper use
      of CONFIG_HOTPLUG_CPU to decide what code are used for
      HOTPLUG_CPU.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      c72258c7
    • Sam Ravnborg's avatar
      x86: silence section mismatch warning in smpboot_64.c · 69e97c02
      Sam Ravnborg authored
      Silence the following warning:
      WARNING: o-x86_64/arch/x86/kernel/built-in.o(.text+0x17cd3): Section mismatch in reference from the function remove_cpu_from_maps() to the variable .cpuinit.data:cpu_initialized
      
      remove_cpu:maps() had a single user: __cpu_disable() so
      mark it static and annotate it with __ref to silence the
      warning from modpost.
      
      _cpu_disable() has a single user in kernel/cpu.c:
       => take_cpu_down()
          which again has a single user in the following call:
          => __stop_machine_run(take_cpu_down, &tcd_param, cpu);
      Here a kthread is created.
      
      So maybe the warning is correct and the right fix is to
      remove the __cpuinitdata annotation of cpu_initialized?
      
      Note: The analysis were disturbed by the fact that we had a variable
            with the same name in cpu/common.c - but this is 32 bit only]
      Note: Should smpboot_64 use cpu_clear()?
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      69e97c02
    • Yinghai Lu's avatar
      x86: fix comments in vmlinux_64.lds · 32ed937d
      Yinghai Lu authored
      for bzImage, the vmlinux_64.lds still have s32 bit code, and startup_32
      should be 0. fix the comment.
      Signed-off-by: default avatarYinghai Lu <yinghai.lu@sun.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      32ed937d
    • Yinghai Lu's avatar
      x86_64: make bootmap_start page align v6 · 24a5da73
      Yinghai Lu authored
      boot oopses when a system has 64 or 128 GB of RAM installed:
      
      Calling initcall 0xffffffff80bc33b6: sctp_init+0x0/0x711()
      BUG: unable to handle kernel NULL pointer dereference at 000000000000005f
      IP: [<ffffffff802bfe55>] proc_register+0xe7/0x10f
      PGD 0
      Oops: 0000 [1] SMP
      CPU 0
      Modules linked in:
      Pid: 1, comm: swapper Not tainted 2.6.24-smp-g5a514e21-dirty #6
      RIP: 0010:[<ffffffff802bfe55>]  [<ffffffff802bfe55>] proc_register+0xe7/0x10f
      RSP: 0000:ffff810824c57e60  EFLAGS: 00010246
      RAX: 000000000000d7d7 RBX: ffff811024c5fa80 RCX: ffff810824c57e08
      RDX: 0000000000000000 RSI: 0000000000000195 RDI: ffffffff80cc2460
      RBP: ffffffffffffffff R08: 0000000000000000 R09: ffff811024c5fa80
      R10: 0000000000000000 R11: 0000000000000002 R12: ffff810824c57e6c
      R13: 0000000000000000 R14: ffff810824c57ee0 R15: 00000006abd25bee
      FS:  0000000000000000(0000) GS:ffffffff80b4d000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
      CR2: 000000000000005f CR3: 0000000000201000 CR4: 00000000000006e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Process swapper (pid: 1, threadinfo ffff810824c56000, task ffff812024c52000)
      Stack:  ffffffff80a57348 0000019500000000 ffff811024c5fa80 0000000000000000
       00000000ffffff97 ffffffff802bfef0 0000000000000000 ffffffffffffffff
       0000000000000000 ffffffff80bc3b4b ffff810824c57ee0 ffffffff80bc34a5
      Call Trace:
       [<ffffffff802bfef0>] ? create_proc_entry+0x73/0x8a
       [<ffffffff80bc3b4b>] ? sctp_snmp_proc_init+0x1c/0x34
       [<ffffffff80bc34a5>] ? sctp_init+0xef/0x711
       [<ffffffff80b976e3>] ? kernel_init+0x175/0x2e1
       [<ffffffff8020ccf8>] ? child_rip+0xa/0x12
       [<ffffffff80b9756e>] ? kernel_init+0x0/0x2e1
       [<ffffffff8020ccee>] ? child_rip+0x0/0x12
      
      Code: 1e 48 83 7b 38 00 75 08 48 c7 43 38 f0 e8 82 80 48 83 7b 30 00 75 08 48 c7 43 30 d0 e9 82 80 48 c7 c7 60 24 cc 80 e8 bd 5a 54 00 <48> 8b 45 60 48 89 6b 58 48 89 5d 60 48 89 43 50 fe 05 f5 25 a0
      RIP  [<ffffffff802bfe55>] proc_register+0xe7/0x10f
       RSP <ffff810824c57e60>
      CR2: 000000000000005f
      ---[ end trace 02c2d78def82877a ]---
      Kernel panic - not syncing: Attempted to kill init!
      
      it turns out some variables near end of bss are corrupted already.
      
      in System.map we have
      ffffffff80d40420 b rsi_table
      ffffffff80d40620 B krb5_seq_lock
      ffffffff80d40628 b i.20437
      ffffffff80d40630 b xprt_rdma_inline_write_padding
      ffffffff80d40638 b sunrpc_table_header
      ffffffff80d40640 b zero
      ffffffff80d40644 b min_memreg
      ffffffff80d40648 b rpcrdma_tk_lock_g
      ffffffff80d40650 B sctp_assocs_id_lock
      ffffffff80d40658 B proc_net_sctp
      ffffffff80d40660 B sctp_assocs_id
      ffffffff80d40680 B sysctl_sctp_mem
      ffffffff80d40690 B sysctl_sctp_rmem
      ffffffff80d406a0 B sysctl_sctp_wmem
      ffffffff80d406b0 b sctp_ctl_socket
      ffffffff80d406b8 b sctp_pf_inet6_specific
      ffffffff80d406c0 b sctp_pf_inet_specific
      ffffffff80d406c8 b sctp_af_v4_specific
      ffffffff80d406d0 b sctp_af_v6_specific
      ffffffff80d406d8 b sctp_rand.33270
      ffffffff80d406dc b sctp_memory_pressure
      ffffffff80d406e0 b sctp_sockets_allocated
      ffffffff80d406e4 b sctp_memory_allocated
      ffffffff80d406e8 b sctp_sysctl_header
      ffffffff80d406f0 b zero
      ffffffff80d406f4 A __bss_stop
      ffffffff80d406f4 A _end
      
      and setup_node_bootmem() will use that page 0xd40000 for bootmap
      Bootmem setup node 0 0000000000000000-0000000828000000
        NODE_DATA [000000000008a485 - 0000000000091484]
        bootmap [0000000000d406f4 -  0000000000e456f3] pages 105
      Bootmem setup node 1 0000000828000000-0000001028000000
        NODE_DATA [0000000828000000 - 0000000828006fff]
        bootmap [0000000828007000 -  0000000828106fff] pages 100
      Bootmem setup node 2 0000001028000000-0000001828000000
        NODE_DATA [0000001028000000 - 0000001028006fff]
        bootmap [0000001028007000 -  0000001028106fff] pages 100
      Bootmem setup node 3 0000001828000000-0000002028000000
        NODE_DATA [0000001828000000 - 0000001828006fff]
        bootmap [0000001828007000 -  0000001828106fff] pages 100
      
      setup_node_bootmem() makes NODE_DATA cacheline aligned,
      and bootmap is page-aligned.
      
      the patch updates find_e820_area() to make sure we can meet
      the alignment constraints.
      Signed-off-by: default avatarYinghai Lu <yinghai.lu@sun.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      24a5da73
    • Yinghai Lu's avatar
      x86_64: add debug name for early_res · 25eff8d4
      Yinghai Lu authored
      helps debugging problems in this rather murky area of code.
      Signed-off-by: default avatarYinghai Lu <yinghai.lu@sun.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      25eff8d4
    • Heiko Carstens's avatar
      latencytop: Change Kconfig dependency. · aa7d9350
      Heiko Carstens authored
      Change latencytop Kconfig entry so it doesn't list the archictectures
      that support it. Instead introduce HAVE_LATENCY_SUPPORT which any
      architecture can set. Should reduce patch conflicts.
      
      Cc: Arjan van de Ven <arjan@linux.intel.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Holger Wolf <wolf@linux.vnet.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      aa7d9350
    • Thomas Gleixner's avatar
      futex: Add bitset conditional wait/wakeup functionality · cd689985
      Thomas Gleixner authored
      To allow the implementation of optimized rw-locks in user space, glibc
      needs a possibility to select waiters for wakeup depending on a bitset
      mask.
      
      This requires two new futex OPs: FUTEX_WAIT_BITS and FUTEX_WAKE_BITS
      These OPs are basically the same as FUTEX_WAIT and FUTEX_WAKE plus an
      additional argument - a bitset. Further the FUTEX_WAIT_BITS OP is
      expecting an absolute timeout value instead of the relative one, which
      is used for the FUTEX_WAIT OP.
      
      FUTEX_WAIT_BITS calls into the kernel with a bitset. The bitset is
      stored in the futex_q structure, which is used to enqueue the waiter
      into the hashed futex waitqueue.
      
      FUTEX_WAKE_BITS also calls into the kernel with a bitset. The wakeup
      function logically ANDs the bitset with the bitset stored in each
      waiters futex_q structure. If the result is zero (i.e. none of the set
      bits in the bitsets is matching), then the waiter is not woken up. If
      the result is not zero (i.e. one of the set bits in the bitsets is
      matching), then the waiter is woken.
      
      The bitset provided by the caller must be non zero. In case the
      provided bitset is zero the kernel returns EINVAL.
      
      Internaly the new OPs are only extensions to the existing FUTEX_WAIT
      and FUTEX_WAKE functions. The existing OPs hand a bitset with all bits
      set into the futex_wait() and futex_wake() functions.
      Signed-off-by: default avatarThomas Gleixner <tgxl@linutronix.de>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      cd689985
    • Thomas Gleixner's avatar
      futex: Remove warn on in return fixup path · 83e96c60
      Thomas Gleixner authored
      The WARN_ON() in the fixup return path of futex_lock_pi() can
      trigger with false positives.
      
      The following scenario happens:
      t1 holds the futex and t2 and t3 are blocked on the kernel side rt_mutex.
      t1 releases the futex (and the rt_mutex) and assigned t2 to be the next
      owner of the futex.
      
      t2 is interrupted and returns w/o acquiring the rt_mutex, before t1 can
      release the rtmutex.
      
      t1 releases the rtmutex and t3 becomes the pending owner of the rtmutex.
      
      t2 notices that it is the designated owner (user space variable) and
      fails to acquire the rt_mutex via trylock, because it is not allowed to
      steal the rt_mutex from t3. Now it looks at the rt_mutex pending owner (t3)
      and assigns the futex and the pi_state to it.
      
      During the fixup t4 steals the rtmutex from t3.
      
      t2 returns from the fixup and the owner of the rt_mutex has changed from
      t3 to t4.
      
      There is no need to do another round of fixups from t2. The important
      part (t2 is not returning as the user space visible owner) is
      done. The further fixups are done, before either t3 or t4 return to
      user space.
      
      For the user space it is not relevant which task (t3 or t4) is the real
      owner, as long as those are both in the kernel, which is guaranteed by
      the serialization of the hash bucket lock. Both tasks (which ever returns
      first to userspace - t4 because it locked the rt_mutex or t3 due to a signal)
      are going through the lock_futex_pi() return path where the ownership is
      fixed before the return to user space.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      83e96c60
    • Thomas Gleixner's avatar
      x86: replace LOCK_PREFIX in futex.h · 9d55b992
      Thomas Gleixner authored
      The exception fixup for the futex macros __futex_atomic_op1/2 and
      futex_atomic_cmpxchg_inatomic() is missing an entry when the lock
      prefix is replaced by a NOP via SMP alternatives.
      
      Chuck Ebert tracked this down from the information provided in:
      https://bugzilla.redhat.com/show_bug.cgi?id=429412
      
      A possible solution would be to add another fixup after the
      LOCK_PREFIX, so both the LOCK and NOP case have their own entry in the
      exception table, but it's not really worth the trouble.
      
      Simply replace LOCK_PREFIX with lock and keep those untouched by SMP
      alternatives.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      9d55b992
    • Thomas Gleixner's avatar
      tick-sched: add more debug information · 5df7fa1c
      Thomas Gleixner authored
      To allow better diagnosis of tick-sched related, especially NOHZ
      related problems, we need to know when the last wakeup via an irq
      happened and when the CPU left the idle state.
      
      Add two fields (idle_waketime, idle_exittime) to the tick_sched
      structure and add them to the timer_list output.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      5df7fa1c
    • Thomas Gleixner's avatar
      timekeeping: update xtime_cache when time(zone) changes · 1001d0a9
      Thomas Gleixner authored
      xtime_cache needs to be updated whenever xtime and or wall_to_monotic
      are changed. Otherwise users of xtime_cache might see a stale (and in
      the case of timezone changes utterly wrong) value until the next
      update happens.
      
      Fixup the obvious places, which miss this update.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Acked-by: default avatarJohn Stultz <johnstul@us.ibm.com>
      Tested-by: default avatarDhaval Giani <dhaval@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      1001d0a9
    • Peter Zijlstra's avatar
      hrtimer: fix hrtimer_init_sleeper() users · 3588a085
      Peter Zijlstra authored
      this patch:
      
       commit 37bb6cb4
       Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
       Date:   Fri Jan 25 21:08:32 2008 +0100
      
           hrtimer: unlock hrtimer_wakeup
      
      Broke hrtimer_init_sleeper() users. It forgot to fix up the futex
      caller of this function to detect the failed queueing and messed up
      the do_nanosleep() caller in that it could leak a TASK_INTERRUPTIBLE
      state.
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      3588a085
    • Thiemo Seufer's avatar
      [MIPS] Split the micro-assembler from tlbex.c. · e30ec452
      Thiemo Seufer authored
      This patch moves the micro-assembler in a separate implementation, as
      it is useful for further run-time optimizations. The only change in
      behaviour is cutting down printk noise at kernel startup time.
      
      Checkpatch complains about macro parameters which aren't protected by
      parentheses. I believe this is a flaw in checkpatch, the paste operator
      used in those macros won't work with parenthesised parameters.
      Signed-off-by: default avatarThiemo Seufer <ths@networkno.de>
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      e30ec452
    • Ralf Baechle's avatar
      [MIPS] Fix build after b0rked changes to <linux/init.h>. · a055917e
      Ralf Baechle authored
      Commit 312b1485 made __INIT_REFOK expand
      into .section .section ".ref.text", "ax".  Since the assembler doesn't
      tolerate stuttering in the source that broke all MIPS builds.
      
      Since with this change Sam downgraded __INIT_REFOK the best fix is to
      get replace it by the modern days operator.  With MIPS the only user
      of __INIT_REFOK and __INITDATA_REFOK (which was equally broken) being
      unused anyway these can be deleted but that's subject of a separate
      commit.
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      a055917e
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block · 24e1c13c
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
        block: kill swap_io_context()
        as-iosched: fix inconsistent ioc->lock context
        ide-cd: fix leftover data BUG
        block: make elevator lib checkpatch compliant
        cfq-iosched: make checkpatch compliant
        block: make core bits checkpatch compliant
        block: new end request handling interface should take unsigned byte counts
        unexport add_disk_randomness
        block/sunvdc.c:print_version() must be __devinit
        splice: always updated atime in direct splice
      24e1c13c
    • Jens Axboe's avatar
      block: kill swap_io_context() · 3bc217ff
      Jens Axboe authored
      It blindly copies everything in the io_context, including the lock.
      That doesn't work so well for either lock ordering or lockdep.
      
      There seems zero point in swapping io contexts on a request to request
      merge, so the best point of action is to just remove it.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      3bc217ff
    • Randy Dunlap's avatar
      docbook: rapidio: fix fatal filename error · 31fa5d28
      Randy Dunlap authored
      Fix docbook fatal error (files were renamed):
      docproc: linux-2.6.24-git9/arch/ppc/kernel/rio.c: No such file or directory
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      31fa5d28
    • Steven Rostedt's avatar
      fix directory entry in arch-x86-Makefile · e3c2a998
      Steven Rostedt authored
      Doing a make randconfig I came across this error in the Makefile.
      
      This patch makes a directory out of arch/x86/mach-default for
      CONFIG_X86_RDC321X
      Signed-off-by: default avatarSteven Rostedt <srostedt@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e3c2a998
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 · 42bb1899
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
        [SPARC64]: Fix inconsistent .section usage in lib/
        [SPARC/SPARC64]: Fix usage of .section .sched.text in assembler code.
      42bb1899
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · cec03afc
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (173 commits)
        [NETNS]: Lookup in FIB semantic hashes taking into account the namespace.
        [NETNS]: Add a namespace mark to fib_info.
        [IPV4]: fib_sync_down rework.
        [NETNS]: Process interface address manipulation routines in the namespace.
        [IPV4]: Small style cleanup of the error path in rtm_to_ifaddr.
        [IPV4]: Fix memory leak on error path during FIB initialization.
        [NETFILTER]: Ipv6-related xt_hashlimit compilation fix.
        [NET_SCHED]: Add flow classifier
        [NET_SCHED]: sch_sfq: make internal queues visible as classes
        [NET_SCHED]: sch_sfq: add support for external classifiers
        [NET_SCHED]: Constify struct tcf_ext_map
        [BLUETOOTH]: Fix bugs in previous conn add/del workqueue changes.
        [TCP]: Unexport sysctl_tcp_tso_win_divisor
        [IPV4]: Make struct ipv4_devconf static.
        [TR] net/802/tr.c: sysctl_tr_rif_timeout static
        [XFRM]: Fix statistics.
        [XFRM]: Remove unused exports.
        [PKT_SCHED] sch_teql.c: Duplicate IFF_BROADCAST in FMASK, remove 2nd.
        [BNX2]: Fix ASYM PAUSE advertisement for remote PHY.
        [IPV4] route cache: Introduce rt_genid for smooth cache invalidation
        ...
      cec03afc
    • Olof Johansson's avatar
      pasemi: Fix thinko in dma_direct_ops setup · 2da53b01
      Olof Johansson authored
      [POWERPC] pasemi: Fix thinko in dma_direct_ops setup
      
      The first patch will just fall through and still set dma_data to a bad
      value, make it return directly instead.
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      Acked-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2da53b01
    • Greg Ungerer's avatar
      m68knommu: remove dead timer int pending code · 0c6377f8
      Greg Ungerer authored
      Remove all the dead timer interrupt checking functions for the ColdFire
      CPU "timers" hardware that are not used after switching to GENERIC_TIME.
      Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0c6377f8
    • Greg Ungerer's avatar
      m68knommu: remove empty timer offset function for 68360 · 79d8bfb0
      Greg Ungerer authored
      Switching to GENERIC_TIME means we no longer need the empty timer offset
      function for the 68360 CPU.
      Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      79d8bfb0
    • Greg Ungerer's avatar
      m68knommu: remove local gettimeofday code · 2d8815ba
      Greg Ungerer authored
      Remove unused local gettimeofday functions, now that we are using
      GENERIC_TIME.
      Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2d8815ba
    • Greg Ungerer's avatar
      m68knommu: set config to use GENERIC_TIME · de0cc4e2
      Greg Ungerer authored
      Switch m68knommu arch to using GENERIC_TIME.
      Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      de0cc4e2
    • Greg Ungerer's avatar
      m68knommu: switch ColdFire TIMER to use GENERIC_TIME · a7f61fa4
      Greg Ungerer authored
      Switch the ColdFire TIMER timer to use GENERIC_TIME.
      Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a7f61fa4
    • Greg Ungerer's avatar
      m68knommu: switch ColdFire PIT timer to use GENERIC_TIME · 8d80c5ee
      Greg Ungerer authored
      Switch the ColdFire PIT timer to using GENERIC_TIME.
      Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8d80c5ee
    • Greg Ungerer's avatar
      m68knommu: switch 68328 timer to use GENERIC_TIME · 36a90f26
      Greg Ungerer authored
      Switch the 68328 CPU timer code to using GENERIC_TIME.
      Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      36a90f26
    • Greg Ungerer's avatar
      m68knommu: remove unused CONFIG_DISKtel symbol · f6efaf62
      Greg Ungerer authored
      Remove unused CONFIG_DISKtel define.
      Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f6efaf62
    • Greg Ungerer's avatar
      m68knommu: fix 528x ColdFire cache settings · b7dcf7fe
      Greg Ungerer authored
      Fix problems with the 528x ColdFire CPU cache setup.
      Do not cache the flash region (if present), and make the runtime
      settings consistent with the init setting.
      
      Problems pointed out by Bernd Buttner <b.buettner@mkc-gmbh.de>
      Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b7dcf7fe
    • Greg Ungerer's avatar
      m68knommu: use container_of in mcf.c · 9f69ba86
      Greg Ungerer authored
      Use container_of() instead of assuming local uart struct is first member
      of uart_port struct.
      Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9f69ba86