1. 20 1月, 2010 1 次提交
  2. 18 1月, 2010 1 次提交
  3. 13 1月, 2010 1 次提交
  4. 09 1月, 2010 1 次提交
    • R
      ARM: 5868/1: ARM: fix "BUG: using smp_processor_id() in preemptible code" · 22325525
      Rabin Vincent 提交于
      Fix the following warning, which appears when the register dump for a
      faulting process is printed in a kernel with SMP, DEBUG_PREEMPT, and
      DEBUG_USER (with user_debug=31) enabled:
      
      BUG: using smp_processor_id() in preemptible [00000000] code: init/1
      caller is __show_regs+0x18/0x234
      Backtrace:
      [<c0159e5c>] (dump_backtrace+0x0/0x114) from [<c01faf30>] (dump_stack+0x18/0x1c)
       r6:c781a000 r5:c0157544 r4:00000001 r3:00000000
      [<c01faf18>] (dump_stack+0x0/0x1c) from [<c01e5230>] (debug_smp_processor_id+0xc4/0xf8)
      [<c01e516c>] (debug_smp_processor_id+0x0/0xf8) from [<c0157544>] (__show_regs+0x18/0x234)
       r6:c781bfb0 r5:00000000 r4:c781bfb0 r3:00000000
      [<c015752c>] (__show_regs+0x0/0x234) from [<c01577a0>] (show_regs+0x40/0x50)
      [<c0157760>] (show_regs+0x0/0x50) from [<c015c968>] (__do_user_fault+0x5c/0xa4)
       r4:c781c000 r3:00000000
      [<c015c90c>] (__do_user_fault+0x0/0xa4) from [<c015cbe0>] (do_page_fault+0x1b4/0x1e4)
       r7:00000000 r6:00010000 r5:c781bfb0 r4:c781c000
      [<c015ca2c>] (do_page_fault+0x0/0x1e4) from [<c01554c8>] (do_DataAbort+0x3c/0xa0)
      [<c015548c>] (do_DataAbort+0x0/0xa0) from [<c01560c4>] (ret_from_exception+0x0/0x10)
      Signed-off-by: NRabin Vincent <rabin@rab.in>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      22325525
  5. 25 12月, 2009 1 次提交
  6. 18 12月, 2009 1 次提交
  7. 15 12月, 2009 3 次提交
    • A
      ARM: unexport symbols used to implement floating point emulation · 3e7b19ef
      Alan Jenkins 提交于
      The Kconfigs for in-tree floating point emulation do not allow building
      as modules. That leaves the Acorn FPEmulator module. I found two public
      releases of this as a binary module for 2.1 and 2.2 kernels, optimized
      for ARMV4.[1] If there is a resurgence of interest in this, the symbols
      can always be re-exported.
      
      This allows the EXPORT_SYMBOL_ALIAS() hack to be removed. The ulterior
      motive here is that EXPORT_SYMBOL_ALIAS() makes it harder to sort the
      resulting kernel symbol tables.  Sorted symbol tables will allow faster
      symbol resolution during module loading.
      
      Note that fp_send_sigs() and fp_printk() are simply aliases for existing
      exports and add no obvious value.  Similarly fp_enter could easily be
      renamed to kern_fp_enter at the point of definition. Therefore removing
      EXPORT_SYMBOL_ALIAS will not serve as a material obstacle to re-adding
      the exports should they be desired in future.
      
      Build tested only.
      
      [1] http://ftp.arm.linux.org.uk/pub/linux/arm/fpemulator/Signed-off-by: NAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      CC: Russell King <linux@arm.linux.org.uk>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      3e7b19ef
    • A
      ARM: use unified discard definition in linker script · e3f28c13
      Alan Jenkins 提交于
      Commit 023bf6f1 "linker script: unify usage of discard definition"
      changed the linker scripts for all architectures except for ARM.
      I can find no discussion about this ommision, so here are the changes
      for ARM.
      
      These changes are exactly parallel to the ia64 case.
      
      "ia64 is notable because it first throws away some ia64 specific
       subsections and then include the rest of the sections into the final
       image, so those sections must be discarded before the inclusion."
      
      Not boot-tested.  In build testing, the modified linker script generated
      an identical vmlinux file.
      
      [I would like to be able to rely on this unified discard definition.
       I want to sort the kernel symbol tables to allow faster symbol
       resolution during module loading. The simplest way appears to be
       to generate sorted versions from vmlinux.o, link them in to vmlinux,
       _and discard the original unsorted tables_.
      
       This work is driven by my x86 netbook, but it is implemented at a
       generic level. It is possible it will benefit some ARM systems also.]
      Signed-off-by: NAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      Acked-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Acked-by-without-testing: Tejun Heo <tj@kernel.org>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      e3f28c13
    • T
      genirq: Convert irq_desc.lock to raw_spinlock · 239007b8
      Thomas Gleixner 提交于
      Convert locks which cannot be sleeping locks in preempt-rt to
      raw_spinlocks.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Acked-by: NPeter Zijlstra <peterz@infradead.org>
      Acked-by: NIngo Molnar <mingo@elte.hu>
      239007b8
  8. 11 12月, 2009 2 次提交
  9. 09 12月, 2009 2 次提交
  10. 02 12月, 2009 1 次提交
  11. 24 11月, 2009 3 次提交
  12. 19 11月, 2009 1 次提交
  13. 12 11月, 2009 1 次提交
    • E
      sysctl arm: Remove binary sysctl support · 50469619
      Eric W. Biederman 提交于
      Now that sys_sysctl is a generic wrapper around /proc/sys  .ctl_name
      and .strategy members of sysctl tables are dead code.  Remove them.
      
      Remove a smattering of ctl_names used in sysctl paths,
      and kill the ctl_names in the recently added mach-bcmring.
      
      mach-bcmring never should have had sysctl entries with
      .ctl_name set.  The binary sysctl interface has been frozen
      for a long time before that code was merged, to prevent
      probmes with conflicts and lack of testing.   The sysctl_check
      code would have caught this if anyone had ever tested it that way.
      So I have simply dropped the binary sysctl support instead of
      adding another compat entry into sysctl_binary.c.  Going through
      /proc/sys/reboot/warm will still work.
      
      Cc: Leo Chen <leochen@broadcom.com>
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      50469619
  14. 10 11月, 2009 1 次提交
  15. 09 11月, 2009 1 次提交
  16. 08 11月, 2009 1 次提交
  17. 05 11月, 2009 1 次提交
  18. 03 11月, 2009 1 次提交
  19. 25 10月, 2009 1 次提交
  20. 14 10月, 2009 2 次提交
  21. 13 10月, 2009 1 次提交
    • A
      net: Introduce recvmmsg socket syscall · a2e27255
      Arnaldo Carvalho de Melo 提交于
      Meaning receive multiple messages, reducing the number of syscalls and
      net stack entry/exit operations.
      
      Next patches will introduce mechanisms where protocols that want to
      optimize this operation will provide an unlocked_recvmsg operation.
      
      This takes into account comments made by:
      
      . Paul Moore: sock_recvmsg is called only for the first datagram,
        sock_recvmsg_nosec is used for the rest.
      
      . Caitlin Bestler: recvmmsg now has a struct timespec timeout, that
        works in the same fashion as the ppoll one.
      
        If the underlying protocol returns a datagram with MSG_OOB set, this
        will make recvmmsg return right away with as many datagrams (+ the OOB
        one) it has received so far.
      
      . Rémi Denis-Courmont & Steven Whitehouse: If we receive N < vlen
        datagrams and then recvmsg returns an error, recvmmsg will return
        the successfully received datagrams, store the error and return it
        in the next call.
      
      This paves the way for a subsequent optimization, sk_prot->unlocked_recvmsg,
      where we will be able to acquire the lock only at batch start and end, not at
      every underlying recvmsg call.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a2e27255
  22. 12 10月, 2009 1 次提交
  23. 11 10月, 2009 3 次提交
  24. 03 10月, 2009 2 次提交
  25. 01 10月, 2009 1 次提交
  26. 29 9月, 2009 3 次提交
    • R
      ARM: Ensure do_cache_op takes mmap_sem · aa45ee8f
      Russell King 提交于
      do_cache_op() uses find_vma() to validate its arguments without holding
      any locking.  This means that the VMA could vanish beneath us.  Fix
      this by taking a read lock on mmap_sem.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      aa45ee8f
    • R
      ARM: Fix __cpuexit section mismatch warnings · 90140c30
      Russell King 提交于
      Fix:
      
      WARNING: vmlinux.o(.text+0x247c): Section mismatch in reference from the function cpu_idle() to the function .cpuexit.text:cpu_die()
      The function cpu_idle() references a function in an exit section.
      Often the function cpu_die() has valid usage outside the exit section
      and the fix is to remove the __cpuexit annotation of cpu_die.
      
      WARNING: vmlinux.o(.cpuexit.text+0x3c): Section mismatch in reference from the function cpu_die() to the function .cpuinit.text:secondary_start_kernel()
      The function __cpuexit cpu_die() references
      a function __cpuinit secondary_start_kernel().
      This is often seen when error handling in the exit function
      uses functionality in the init path.
      The fix is often to remove the __cpuinit annotation of
      secondary_start_kernel() so it may be used outside an init section.
      
      Sam says:
      > The annotation of cpu_die() is wrong.
      > To be annotated __cpuexit the function shall:
      > - be used in exit context and only in exit context with HOTPLUG_CPU=n
      > - be used outside exit context with HOTPLUG_CPU=y
      
      So, this also means __cpu_disable(), __cpu_die() and twd_timer_stop() are
      also wrong.  However, removing __cpuexit from cpu_die() creates:
      
      WARNING: vmlinux.o(.text+0x6834): Section mismatch in reference from the function cpu_die() to the function .cpuinit.text:secondary_start_kernel()
      The function cpu_die() references
      the function __cpuinit secondary_start_kernel().
      This is often because cpu_die lacks a __cpuinit
      annotation or the annotation of secondary_start_kernel is wrong.
      
      so fix this using __ref.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Acked-by: NSam Ravnborg <sam@ravnborg.org>
      90140c30
    • R
      ARM: Don't allow highmem on SMP platforms without h/w TLB ops broadcast · e616c591
      Russell King 提交于
      We suffer an unfortunate combination of "features" which makes highmem
      support on platforms without hardware TLB maintainence broadcast difficult:
      
      - we need kmap_high_get() support for DMA cache coherence
      - this requires kmap_high() to take a spinlock with IRQs disabled
      - kmap_high() occasionally calls flush_all_zero_pkmaps() to clear
        out old mappings
      - flush_all_zero_pkmaps() calls flush_tlb_kernel_range(), which
        on s/w IPI'd systems eventually calls smp_call_function_many()
      - smp_call_function_many() must not be called with IRQs disabled:
      
      WARNING: at kernel/smp.c:380 smp_call_function_many+0xc4/0x240()
      Modules linked in:
      Backtrace:
      [<c00306f0>] (dump_backtrace+0x0/0x108) from [<c0286e6c>] (dump_stack+0x18/0x1c)
       r6:c007cd18 r5:c02ff228 r4:0000017c
      [<c0286e54>] (dump_stack+0x0/0x1c) from [<c0053e08>] (warn_slowpath_common+0x50/0x80)
      [<c0053db8>] (warn_slowpath_common+0x0/0x80) from [<c0053e50>] (warn_slowpath_null+0x18/0x1c)
       r7:00000003 r6:00000001 r5:c1ff4000 r4:c035fa34
      [<c0053e38>] (warn_slowpath_null+0x0/0x1c) from [<c007cd18>] (smp_call_function_many+0xc4/0x240)
      [<c007cc54>] (smp_call_function_many+0x0/0x240) from [<c007cec0>] (smp_call_function+0x2c/0x38)
      [<c007ce94>] (smp_call_function+0x0/0x38) from [<c005980c>] (on_each_cpu+0x1c/0x38)
      [<c00597f0>] (on_each_cpu+0x0/0x38) from [<c0031788>] (flush_tlb_kernel_range+0x50/0x58)
       r6:00000001 r5:00000800 r4:c05f3590
      [<c0031738>] (flush_tlb_kernel_range+0x0/0x58) from [<c009c600>] (flush_all_zero_pkmaps+0xc0/0xe8)
      [<c009c540>] (flush_all_zero_pkmaps+0x0/0xe8) from [<c009c6b4>] (kmap_high+0x8c/0x1e0)
      [<c009c628>] (kmap_high+0x0/0x1e0) from [<c00364a8>] (kmap+0x44/0x5c)
      [<c0036464>] (kmap+0x0/0x5c) from [<c0109dfc>] (cramfs_readpage+0x3c/0x194)
      [<c0109dc0>] (cramfs_readpage+0x0/0x194) from [<c0090c14>] (__do_page_cache_readahead+0x1f0/0x290)
      [<c0090a24>] (__do_page_cache_readahead+0x0/0x290) from [<c0090ce4>] (ra_submit+0x30/0x38)
      [<c0090cb4>] (ra_submit+0x0/0x38) from [<c0089384>] (filemap_fault+0x3dc/0x438)
       r4:c1819988
      [<c0088fa8>] (filemap_fault+0x0/0x438) from [<c009d21c>] (__do_fault+0x58/0x43c)
      [<c009d1c4>] (__do_fault+0x0/0x43c) from [<c009e8cc>] (handle_mm_fault+0x104/0x318)
      [<c009e7c8>] (handle_mm_fault+0x0/0x318) from [<c0033c98>] (do_page_fault+0x188/0x1e4)
      [<c0033b10>] (do_page_fault+0x0/0x1e4) from [<c0033ddc>] (do_translation_fault+0x7c/0x84)
      [<c0033d60>] (do_translation_fault+0x0/0x84) from [<c002b474>] (do_DataAbort+0x40/0xa4)
       r8:c1ff5e20 r7:c0340120 r6:00000805 r5:c1ff5e54 r4:c03400d0
      [<c002b434>] (do_DataAbort+0x0/0xa4) from [<c002bcac>] (__dabt_svc+0x4c/0x60)
      ...
      
      So we disable highmem support on these systems.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      e616c591
  27. 27 9月, 2009 1 次提交
  28. 24 9月, 2009 1 次提交