1. 14 10月, 2009 10 次提交
  2. 13 10月, 2009 18 次提交
    • P
      sh: ftrace: Make code modification NMI safe. · e4b053d9
      Paul Mundt 提交于
      This cribs the x86 implementation of ftrace_nmi_enter() and friends to
      make ftrace_modify_code() NMI safe, particularly on SMP configurations.
      
      For additional notes on the problems involved, see the comment below
      ftrace_call_replace().
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      e4b053d9
    • P
      sh: Don't profile return_address(). · c8afde7f
      Paul Mundt 提交于
      This adds return_address.c to the -pg exclusion list, as this is the
      building block for CALLER_ADDRx we do not want to profile this.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      c8afde7f
    • P
      sh: Tidy up the dwarf module helpers. · 5a3abba7
      Paul Mundt 提交于
      This enables us to build the dwarf unwinder both with modules enabled and
      disabled in addition to reducing code size in the latter case. The
      helpers are also consolidated, and modified to resemble the BUG module
      helpers.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      5a3abba7
    • P
      sh: Generalize CALLER_ADDRx support. · ac4fac8c
      Paul Mundt 提交于
      This splits out the unwinder implementation and adds a new
      return_address() abstraction modelled after the ARM code. The DWARF
      unwinder is tied in to this, returning NULL otherwise in the case of
      being unable to support arbitrary depths.
      
      This enables us to get correct behaviour with the unwinder enabled,
      as well as disabling the arbitrary depth support when frame pointers are
      enabled, as arbitrary depths with __builtin_return_address() are not
      supported regardless.
      
      With this abstraction it's also possible to layer on a simplified
      implementation with frame pointers in the event that the unwinder isn't
      enabled, although this is left as a future exercise.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      ac4fac8c
    • P
      Merge branch 'sh/stable-updates' · 5852b203
      Paul Mundt 提交于
      5852b203
    • P
      sh: ftrace: Fix up syscall tracepoint support. · 99222622
      Paul Mundt 提交于
      Sync up with latest core changes in the syscalls tracing area:
      
      - tracing: Map syscall name to number (syscall_name_to_nr())
      - tracing: Call arch_init_ftrace_syscalls at boot
      - tracing: add support tracepoint ids (set_syscall_{enter,exit}_id())
      
      Taken from the s390 change.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      99222622
    • P
      sh: maple: PHYSADDR() -> virt_to_phys() conversion. · 913df445
      Paul Mundt 提交于
      Maple's abuse of PHYSADDR() likewise can be converted to virt_to_phys()
      for its cases, although in practice this really wants explicit remapping.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      913df445
    • P
      cdrom: gdrom: Kill off PHYSADDR use. · 54d5102f
      Paul Mundt 提交于
      PHYSADDR() is gone, and completely unecessary in all of the cases the
      gdrom driver was using it. Kill off all references to it, and change the
      one legitimate use over to virt_to_phys() instead.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      54d5102f
    • P
      Merge branch 'sh/stable-updates' · 95019b48
      Paul Mundt 提交于
      95019b48
    • P
      sh: force dcache flush if dcache_dirty bit set. · 964f7e5a
      Paul Mundt 提交于
      This too follows the ARM change, given that the issue at hand applies to
      all platforms that implement lazy D-cache writeback.
      
      This fixes up the case when a page mapping disappears between the
      flush_dcache_page() call (when PG_dcache_dirty is set for the page) and
      the update_mmu_cache() call -- such as in the case of swap cache being
      freed early. This kills off the mapping test in update_mmu_cache() and
      switches to simply testing for PG_dcache_dirty.
      Reported-by: NNitin Gupta <ngupta@vflare.org>
      Reported-by: NHugh Dickins <hugh.dickins@tiscali.co.uk>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      964f7e5a
    • P
      sh: update die() output. · af67c3a9
      Paul Mundt 提交于
      This follows the ARM change, as SH had all of the same issues:
      
      Make die() better match x86:
      - add printing of the last accessed sysfs file
      - ensure console_verbose() is called under the lock
      - ensure we panic outside of oops_exit()
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      af67c3a9
    • P
      7a0064d6
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 · 2caa7318
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
        PCI: Prevent AER driver from being loaded on non-root port PCIE devices
        PCI: get larger bridge ranges when space is available
        PCI: pci.c: fix kernel-doc notation
        PCI quirk: TI XIO200a erroneously reports support for fast b2b transfers
        PCI PM: Read device power state from register after updating it
        PCI: remove pci_assign_resource_fixed()
        PCI: PCIe portdrv: remove "-driver" from driver name
      2caa7318
    • L
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · 589bf8d5
      Linus Torvalds 提交于
      * master.kernel.org:/home/rmk/linux-2.6-arm: (24 commits)
        ARM: force dcache flush if dcache_dirty bit set
        [ARM] pxa: workaround errata #37 by not using half turbo switching
        [ARM] pxamci: fix printing gpio numbers in pxamci_probe
        [ARM] pxa/csb726: adjust duplicate structure field initialization
        ARM: Add kmap_atomic type debugging
        ARM: boolean bit testing
        ARM: update die() output
        ARM: Dump code/mem oops lines with the appropriate log level
        ARM: Dump memory and backtrace as one printk per line
        ARM: 5756/1: ep93xx: introduce clk parent
        ARM: 5754/1: ep93xx: update i2c support
        ARM: 5753/1: ep93xx: remove old EP93XX_GPIO_* defines
        ARM: 5729/1: ep93xx: define EP93XX_*_PHYS_BASE with macros
        ARM: 5751/1: ep93xx/micro9: Add Micro9-Slim
        ARM: 5750/1: ep93xx/micro9: Update platform code
        ARM: 5749/1: ep93xx/micro9: Update maintainer
        ARM: 5752/1: SA1100: fix building of h3100
        ARM: 5748/1: bcmring: fix build warning messages
        ARM: 5747/1: Fix the start_pg value in free_memmap()
        ARM: 5746/1: Handle possible translation errors in ARMv6/v7 coherent_user_range
        ...
      589bf8d5
    • M
      USB: musb: invert arch depend string · e3c6f15f
      Mike Frysinger 提交于
      The MUSB code relies on platform implementations that currently only
      exists for Arm and Blackfin processors, so have the MUSB Kconfig depend
      upon those arches.
      
      This should prevent other arches from building MUSB via randconfig.
      Reported-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NMike Frysinger <vapier@gentoo.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e3c6f15f
    • S
      NFS: suppress a build warning · a1be9eee
      Stefan Richter 提交于
      struct sockaddr_storage * can safely be used as struct sockaddr *.
      Suppress an "incompatible pointer type" warning.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a1be9eee
    • L
      tty, serial: Fix race and NULL check in uart_close() · eea7e17e
      Linus Torvalds 提交于
      Commit 46d57a44 ("serial: use tty_port pointers in the core code")
      contained two bugs that causes (rare) crashes:
      
       - the rename typoed one site
      
       - a NULL check was missed
      Reported-and-tested-by: NIngo Molnar <mingo@elte.hu>
      Cc: Greg KH <gregkh@suse.de>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      eea7e17e
    • N
      ARM: force dcache flush if dcache_dirty bit set · 787b2faa
      Nitin Gupta 提交于
      On ARM, update_mmu_cache() does dcache flush for a page only if
      it has a kernel mapping (page_mapping(page) != NULL). The correct
      behavior would be to force the flush based on dcache_dirty bit only.
      
      One of the cases where present logic would be a problem is when
      a RAM based block device[1] is used as a swap disk. In this case,
      we would have in-memory data corruption as shown in steps below:
      
      do_swap_page()
      {
          - Allocate a new page (if not already in swap cache)
          - Issue read from swap disk
              - Block driver issues flush_dcache_page()
              - flush_dcache_page() simply sets PG_dcache_dirty bit and does not
                actually issue a flush since this page has no user space mapping yet.
          - Now, if swap disk is almost full, this newly read page is removed
            from swap cache and corrsponding swap slot is freed.
          - Map this page anonymously in user space.
          - update_mmu_cache()
              - Since this page does not have kernel mapping (its not in page/swap
                cache and is mapped anonymously), it does not issue dcache flush
                even if dcache_dirty bit is set by flush_dcache_page() above.
      
          <user now gets stale data since dcache was never flushed>
      }
      
      Same problem exists on mips too.
      
      [1] example:
       - brd (RAM based block device)
       - ramzswap (RAM based compressed swap device)
      Signed-off-by: NNitin Gupta <ngupta@vflare.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      787b2faa
  3. 12 10月, 2009 12 次提交