1. 18 1月, 2010 8 次提交
    • P
      sh: Fixup the IOREMAP_FIXED=n build. · edf711b6
      Paul Mundt 提交于
      Presently the fixed ioremap API is only defined when CONFIG_IOREMAP_FIXED
      is set. As we want to call in to it unconditionally, provide a stubbed
      out interface.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      edf711b6
    • P
      sh: Handle early ioremaps through fixed mappings. · d9b9487a
      Paul Mundt 提交于
      This adds in a mem_init_done to work out when a standard ioremap() is
      possible, falling back to the fixmap based ioremap otherwise.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      d9b9487a
    • P
      Merge branch 'sh/stable-updates' · 0c54de14
      Paul Mundt 提交于
      0c54de14
    • P
      Merge branch 'sh/ioremap-fixed' · 8faba612
      Paul Mundt 提交于
      8faba612
    • P
      sh: Need IRQs enabled for init_fpu(). · 4291b730
      Paul Mundt 提交于
      This tosses in a local_irq_enable()/disable() pair around the init_fpu()
      callsite in the FPU state restore exception handler. Fixes up a slab BUG
      triggered by making a slab cache allocation that can sleep whilst
      irqs_disabled(). This follows the behaviour undertaken by the x86
      implementation.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      4291b730
    • M
      sh: Setup early PMB mappings. · 3d467676
      Matt Fleming 提交于
      More and more boards are going to start shipping that boot with the MMU
      in 32BIT mode by default. Previously we relied on the bootloader to
      setup PMB mappings for use by the kernel but we also need to cater for
      boards whose bootloaders don't set them up.
      
      If CONFIG_PMB_LEGACY is not enabled we have full control over our PMB
      mappings and can compress our address space. Usually, the distance
      between the the cached and uncached mappings of RAM is always 512MB,
      however we can compress the distance to be the amount of RAM on the
      board.
      
      pmb_init() now becomes much simpler. It no longer has to calculate any
      mappings, it just has to synchronise the software PMB table with the
      hardware.
      
      Tested on SDK7786 and SH7785LCR.
      Signed-off-by: NMatt Fleming <matt@console-pimps.org>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      3d467676
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 · 7dc9c484
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
        do_add_mount() should sanitize mnt_flags
        CIFS shouldn't make mountpoints shrinkable
        mnt_flags fixes in do_remount()
        attach_recursive_mnt() needs to hold vfsmount_lock over set_mnt_shared()
        may_umount() needs namespace_sem
        Fix configfs leak
        Fix the -ESTALE handling in do_filp_open()
        ecryptfs: Fix refcnt leak on ecryptfs_follow_link() error path
        Fix ACC_MODE() for real
        Unrot uml mconsole a bit
        hppfs: handle ->put_link()
        Kill 9p readlink()
        fix autofs/afs/etc. magic mountpoint breakage
      7dc9c484
    • M
      modpost: fix segfault in sym_is() with prefixed arches · 3a5dd791
      Mike Frysinger 提交于
      The sym_is() compares a symbol in an attempt to automatically skip symbol
      prefixes.  It does this first by searching the real symbol with the normal
      unprefixed symbol.  But then it uses the length of the original symbol to
      check the end of the substring instead of the length of the symbol it is
      looking for.  On non-prefixed arches, this is effectively the same thing,
      so there is no problem.  On prefixed-arches, since this is exceeds by just
      one byte, a crash is rare and it is usually a NUL byte anyways.  But every
      once in a blue moon, you get the right page alignment and it segfaults.
      
      For example, on the Blackfin arch, sym_is() will be called with the real
      symbol "___mod_usb_device_table" as "symbol" when looking for the normal
      symbol "__mod_usb_device_table" as "name".  The substring will thus return
      one byte into "symbol" and store it into "match".  But then "match" will
      be indexed with the length of "symbol" instead of "name" and so we will
      exceed the storage.  i.e. the code ends up doing:
      	char foo[] = "abc"; return foo[strlen(foo)+1] == '\0';
      Signed-off-by: NMike Frysinger <vapier@gentoo.org>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3a5dd791
  2. 17 1月, 2010 32 次提交