1. 23 7月, 2011 3 次提交
    • J
      asm-generic: add MMU variants of io.h functions · f1ecc698
      Jonas Bonn 提交于
      Some of the implementations, in particular the ioremap variants, in
      asm-generic/io.h are for systems without an MMU.  In order to be able to
      use the generic header file for systems with an MMU, this patch wraps
      these implementations in checks for CONFIG_MMU.
      
      Tested on OpenRISC.
      Signed-off-by: NJonas Bonn <jonas@southpole.se>
      Cc: liqin.chen@sunplusct.com
      Cc: gxt@mprc.pku.edu.cn
      Acked-by: NMike Frysinger <vapier@gentoo.org>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      f1ecc698
    • J
      asm-generic: move archictures to common delay.h · a4e05276
      Jonas Bonn 提交于
      This patch moves the in-tree architectures that were using the 'generic'
      delay.h over to using the header file in asm-generic.
      
      This is not done using the generic-y mechanism as none of these arch's
      have started using that mechanism yet.  This is a trivial change to make
      later when the arch begins using generic-y.
      
      Note the subtle change to the avr32 and SH architectures where the argument
      to __const_udelay was previously using the rounded down constant value
      instead of the rounded up value.
      Signed-off-by: NJonas Bonn <jonas@southpole.se>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NHans-Christian Egtvedt <egtvedt@samfundet.no>
      a4e05276
    • A
      asm-generic: delay.h fix udelay and ndelay for 8 bit args · a87e553f
      Andrew Morton 提交于
      With a non-constant 8-bit argument, a call to udelay() generates a warning:
      
      drivers/gpu/drm/radeon/atom.c: In function 'atom_op_delay':
      drivers/gpu/drm/radeon/atom.c:654: warning: comparison is always false due to limited range of data type
      
      The code looks like it works OK with an 8-bit arg, and the calling code is
      doing nothing wrong, so udelay() needs fixing.
      
      Fixing it was rather tricky.  Simply typecasting `n' in the comparison with
      20000 didn't change anything.  Hence the divide-by-20000 trick.
      
      Using a do{}while loop didn't work because udelay() is used in ?: statements,
      hence the ({...}) construct.
      
      While I was there I replaced the brain-bending ?:?:?: mess with nice if/else
      code.
      
      Probably other architectures are generating the same warning and can use a
      similar change.
      
      [Taken from the x86 tree and moved to asm-generic by Jonas Bonn]
      
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NJonas Bonn <jonas@southpole.se>
      a87e553f
  2. 08 7月, 2011 1 次提交
    • J
      asm-generic: adapt delay.h to common implementation · 30ab2b03
      Jonas Bonn 提交于
      Several architectures are using a common delay.h implementation that
      appears to have originated with the x86 architecture.  This common
      implementation is a bit fuller than the current asm-generic version
      and has some compile-time checks that should be interesting for all
      architectures.
      
      This patch takes the common delay.h version and replaces the rather
      trivial asm-generic version with it.  As no architecture was actually
      using asm-generic/delay.h, this change is rather innocuous; it will,
      however, allow us to switch at least four architectures over to using
      the asm-generic version.
      Signed-off-by: NJonas Bonn <jonas@southpole.se>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      30ab2b03
  3. 28 6月, 2011 28 次提交
  4. 27 6月, 2011 5 次提交
    • L
      Merge branch 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm · edcda265
      Linus Torvalds 提交于
      * 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm:
        ARM: pm: ensure ARMv7 CPUs save and restore the TLS register
        ARM: pm: proc-v7: fix missing struct processor pointers for suspend code
        ARM: 6969/1: plat-iop: fix build error
        ARM: 6961/1: zImage: Add build-time check for correctly-sized proc_type entries
        ARM: SMP: wait for CPU to be marked active
        ARM: 6963/1: Thumb-2: Relax relocation requirements for non-function symbols
        ARM: 6962/1: mach-h720x: fix build error
        ARM: 6959/1: SMP build fix for entry-macro-multi.S
      edcda265
    • L
      Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6 · 9c317b3b
      Linus Torvalds 提交于
      * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
        [S390] allow setting of upper 32 bit in smp_ctl_set_bit
        [S390] hwsampler: Set a sane default sampling rate
        [S390] s390: enforce HW limits for the initial sampling rate
        [S390] kvm-s390: fix kconfig dependencies
      9c317b3b
    • M
      btrfs: fix inconsonant inode information · 2f7e33d4
      Miao Xie 提交于
      When iputting the inode, We may leave the delayed nodes if they have some
      delayed items that have not been dealt with. So when the inode is read again,
      we must look up the relative delayed node, and use the information in it to
      initialize the inode. Or we will get inconsonant inode information, it may
      cause that the same directory index number is allocated again, and hit the
      following oops:
      
      [ 5447.554187] err add delayed dir index item(name: pglog_0.965_0) into the
      insertion tree of the delayed node(root id: 262, inode id: 258, errno: -17)
      [ 5447.569766] ------------[ cut here ]------------
      [ 5447.575361] kernel BUG at fs/btrfs/delayed-inode.c:1301!
      [SNIP]
      [ 5447.790721] Call Trace:
      [ 5447.793191]  [<ffffffffa0641c4e>] btrfs_insert_dir_item+0x189/0x1bb [btrfs]
      [ 5447.800156]  [<ffffffffa0651a45>] btrfs_add_link+0x12b/0x191 [btrfs]
      [ 5447.806517]  [<ffffffffa0651adc>] btrfs_add_nondir+0x31/0x58 [btrfs]
      [ 5447.812876]  [<ffffffffa0651d6a>] btrfs_create+0xf9/0x197 [btrfs]
      [ 5447.818961]  [<ffffffff8111f840>] vfs_create+0x72/0x92
      [ 5447.824090]  [<ffffffff8111fa8c>] do_last+0x22c/0x40b
      [ 5447.829133]  [<ffffffff8112076a>] path_openat+0xc0/0x2ef
      [ 5447.834438]  [<ffffffff810c58e2>] ? __perf_event_task_sched_out+0x24/0x44
      [ 5447.841216]  [<ffffffff8103ecdd>] ? perf_event_task_sched_out+0x59/0x67
      [ 5447.847846]  [<ffffffff81121a79>] do_filp_open+0x3d/0x87
      [ 5447.853156]  [<ffffffff811e126c>] ? strncpy_from_user+0x43/0x4d
      [ 5447.859072]  [<ffffffff8111f1f5>] ? getname_flags+0x2e/0x80
      [ 5447.864636]  [<ffffffff8111f179>] ? do_getname+0x14b/0x173
      [ 5447.870112]  [<ffffffff8111f1b7>] ? audit_getname+0x16/0x26
      [ 5447.875682]  [<ffffffff8112b1ab>] ? spin_lock+0xe/0x10
      [ 5447.880882]  [<ffffffff81112d39>] do_sys_open+0x69/0xae
      [ 5447.886153]  [<ffffffff81112db1>] sys_open+0x20/0x22
      [ 5447.891114]  [<ffffffff813b9aab>] system_call_fastpath+0x16/0x1b
      
      Fix it by reusing the old delayed node.
      Reported-by: NJim Schutt <jaschut@sandia.gov>
      Signed-off-by: NMiao Xie <miaox@cn.fujitsu.com>
      Tested-by: NJim Schutt <jaschut@sandia.gov>
      Signed-off-by: NChris Mason <chris.mason@oracle.com>
      2f7e33d4
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6 · 258e43fd
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
        cifs: mark CONFIG_CIFS_NFSD_EXPORT as BROKEN
        cifs: free blkcipher in smbhash
      258e43fd
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 · 804a007f
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
        cifs: propagate errors from cifs_get_root() to mount(2)
        cifs: tidy cifs_do_mount() up a bit
        cifs: more breakage on mount failures
        cifs: close sget() races
        cifs: pull freeing mountdata/dropping nls/freeing cifs_sb into cifs_umount()
        cifs: move cifs_umount() call into ->kill_sb()
        cifs: pull cifs_mount() call up
        sanitize cifs_umount() prototype
        cifs: initialize ->tlink_tree in cifs_setup_cifs_sb()
        cifs: allocate mountdata earlier
        cifs: leak on mount if we share superblock
        cifs: don't pass superblock to cifs_mount()
        cifs: don't leak nls on mount failure
        cifs: double free on mount failure
        take bdi setup/destruction into cifs_mount/cifs_umount
      Acked-by: NSteve French <smfrench@gmail.com>
      804a007f
  5. 26 6月, 2011 3 次提交