1. 01 Oct, 2009 1 commit
  2. 28 Sep, 2009 11 commits
    • Russell King's avatar
      ARM: Ensure do_cache_op takes mmap_sem · aa45ee8f
      Russell King authored
      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: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      aa45ee8f
    • Russell King's avatar
      ARM: Fix __cpuexit section mismatch warnings · 90140c30
      Russell King authored
      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: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
      90140c30
    • Russell King's avatar
      ARM: Don't allow highmem on SMP platforms without h/w TLB ops broadcast · e616c591
      Russell King authored
      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: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      e616c591
    • Jaswinder Singh Rajput's avatar
      ARM: includecheck fix: mach-davinci, board-dm365-evm.c · 9a0f6b46
      Jaswinder Singh Rajput authored
      fix the following 'make includecheck' warning:
      
        arch/arm/mach-davinci/board-dm365-evm.c: mach/common.h is included more than once.
      Signed-off-by: default avatarJaswinder Singh Rajput <jaswinderrajput@gmail.com>
      Acked-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      9a0f6b46
    • Jaswinder Singh Rajput's avatar
      ARM: Remove unused CONFIG SA1100_H3XXX · d5fc79cc
      Jaswinder Singh Rajput authored
      Removed unused CONFIG SA1100_H3XXX from Kconfig and defconfig
      Reported-by: default avatarRobert P. J. Day <rpjday@crashcourse.ca>
      Signed-off-by: default avatarJaswinder Singh Rajput <jaswinderrajput@gmail.com>
      Acked-by: default avatarDmitry Artamonow <mad_soft@inbox.ru>
      Cc: Philipp Zabel <philipp.zabel@gmail.com>
      Cc: Kristoffer Ericson <kristoffer.ericson@gmail.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      d5fc79cc
    • Russell King's avatar
      041d785f
    • Russell King's avatar
      ARM: Fix warning: #warning syscall migrate_pages not implemented · d80ade7b
      Russell King authored
      We're not implementing this syscall (we're not NUMA) so we might as
      well silence this warning.
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      d80ade7b
    • Russell King's avatar
      ARM: Fix SA11x0 clocksource warning · fac28e6d
      Russell King authored
      8e19608e missed updating SA11x0, and thus:
      
      arch/arm/mach-sa1100/time.c:88: warning: initialization from incompatible pointer type
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      fac28e6d
    • Russell King's avatar
      ARM: Fix SA1100 Neponset serial section mismatch · 3f944ab1
      Russell King authored
      WARNING: vmlinux.o(.devinit.text+0x524): Section mismatch in reference from the function neponset_probe() to the function .init.text:sa1100_register_uart_fns()
      The function __devinit neponset_probe() references
      a function __init sa1100_register_uart_fns().
      If sa1100_register_uart_fns is only used by neponset_probe then
      annotate sa1100_register_uart_fns with a matching annotation.
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
      3f944ab1
    • Russell King's avatar
      ARM: Fix SA1100 Assabet/Neponset PCMCIA section mismatch warnings · b29cf62c
      Russell King authored
      WARNING: drivers/pcmcia/sa1100_cs.o(.data+0x48): Section mismatch in reference from the variable sa11x0_pcmcia_hw_init to the function .init.text:pcmcia_assabet_init()
      The variable sa11x0_pcmcia_hw_init references
      the function __init pcmcia_assabet_init()
      If the reference is valid then annotate the
      variable with __init* or __refdata (see linux/init.h) or name the variable:
      *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
      
      WARNING: drivers/pcmcia/sa1111_cs.o(.text+0x298): Section mismatch in reference from the function pcmcia_probe() to the function .init.text:pcmcia_neponset_init()
      The function pcmcia_probe() references
      the function __init pcmcia_neponset_init().
      This is often because pcmcia_probe lacks a __init
      annotation or the annotation of pcmcia_neponset_init is wrong.
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
      b29cf62c
    • Russell King's avatar
      ARM: Fix section mismatch warning in Integrator pci_v3 · 7f8b7170
      Russell King authored
      WARNING: vmlinux.o(.text+0xc9d4): Section mismatch in reference from the function pci_v3_scan_bus() to the function .devinit.text:pci_scan_bus_parented()
      The function pci_v3_scan_bus() references
      the function __devinit pci_scan_bus_parented().
      This is often because pci_v3_scan_bus lacks a __devinit
      annotation or the annotation of pci_scan_bus_parented is wrong.
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
      7f8b7170
  3. 26 Sep, 2009 20 commits
  4. 25 Sep, 2009 8 commits