1. 25 Sep, 2009 1 commit
    • Roland Dreier's avatar
      > ============================================= · a470a30a
      Roland Dreier authored
       >  [ INFO: possible recursive locking detected ]
       >  2.6.31-2-generic #14~rbd3
       >  ---------------------------------------------
       >  firefox-3.5/4162 is trying to acquire lock:
       >   (&s->s_vfs_rename_mutex){+.+.+.}, at: [<ffffffff81139d31>] lock_rename+0x41/0xf0
       >
       >  but task is already holding lock:
       >   (&s->s_vfs_rename_mutex){+.+.+.}, at: [<ffffffff81139d31>] lock_rename+0x41/0xf0
       >
       >  other info that might help us debug this:
       >  3 locks held by firefox-3.5/4162:
       >   #0:  (&s->s_vfs_rename_mutex){+.+.+.}, at: [<ffffffff81139d31>] lock_rename+0x41/0xf0
       >   #1:  (&sb->s_type->i_mutex_key#11/1){+.+.+.}, at: [<ffffffff81139d5a>] lock_rename+0x6a/0xf0
       >   #2:  (&sb->s_type->i_mutex_key#11/2){+.+.+.}, at: [<ffffffff81139d6f>] lock_rename+0x7f/0xf0
       >
       >  stack backtrace:
       >  Pid: 4162, comm: firefox-3.5 Tainted: G         C 2.6.31-2-generic #14~rbd3
       >  Call Trace:
       >   [<ffffffff8108ae74>] print_deadlock_bug+0xf4/0x100
       >   [<ffffffff8108ce26>] validate_chain+0x4c6/0x750
       >   [<ffffffff8108d2e7>] __lock_acquire+0x237/0x430
       >   [<ffffffff8108d585>] lock_acquire+0xa5/0x150
       >   [<ffffffff81139d31>] ? lock_rename+0x41/0xf0
       >   [<ffffffff815526ad>] __mutex_lock_common+0x4d/0x3d0
       >   [<ffffffff81139d31>] ? lock_rename+0x41/0xf0
       >   [<ffffffff81139d31>] ? lock_rename+0x41/0xf0
       >   [<ffffffff8120eaf9>] ? ecryptfs_rename+0x99/0x170
       >   [<ffffffff81552b36>] mutex_lock_nested+0x46/0x60
       >   [<ffffffff81139d31>] lock_rename+0x41/0xf0
       >   [<ffffffff8120eb2a>] ecryptfs_rename+0xca/0x170
       >   [<ffffffff81139a9e>] vfs_rename_dir+0x13e/0x160
       >   [<ffffffff8113ac7e>] vfs_rename+0xee/0x290
       >   [<ffffffff8113c212>] ? __lookup_hash+0x102/0x160
       >   [<ffffffff8113d512>] sys_renameat+0x252/0x280
       >   [<ffffffff81133eb4>] ? cp_new_stat+0xe4/0x100
       >   [<ffffffff8101316a>] ? sysret_check+0x2e/0x69
       >   [<ffffffff8108c34d>] ? trace_hardirqs_on_caller+0x14d/0x190
       >   [<ffffffff8113d55b>] sys_rename+0x1b/0x20
       >   [<ffffffff81013132>] system_call_fastpath+0x16/0x1b
      
      The trace above is totally reproducible by doing a cross-directory
      rename on an ecryptfs directory.
      
      The issue seems to be that sys_renameat() does lock_rename() then calls
      into the filesystem; if the filesystem is ecryptfs, then
      ecryptfs_rename() again does lock_rename() on the lower filesystem, and
      lockdep can't tell that the two s_vfs_rename_mutexes are different.  It
      seems an annotation like the following is sufficient to fix this (it
      does get rid of the lockdep trace in my simple tests); however I would
      like to make sure I'm not misunderstanding the locking, hence the CC
      list...
      Signed-off-by: default avatarRoland Dreier <rdreier@cisco.com>
      Cc: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
      Cc: Dustin Kirkland <kirkland@canonical.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      a470a30a
  2. 20 Apr, 2009 1 commit
  3. 24 Aug, 2009 1 commit
    • Al Viro's avatar
      RAW_SETBIND and RAW_GETBIND 32bit versions are fscked in interesting ways. · cb8c8dac
      Al Viro authored
      1) fs/compat_ioctl.c has COMPATIBLE_IOCTL(RAW_SETBIND) followed by
      HANDLE_IOCTL(RAW_SETBIND, raw_ioctl).  The latter is ignored.
      
      2) on amd64 (and itanic) the damn thing is broken - we have int + u64 + u64
      and layouts on i386 and amd64 are _not_ the same.  raw_ioctl() would
      work there, but it's never called due to (1).  As it is, i386 /sbin/raw
      definitely doesn't work on amd64 boxen.
      
      3) switching to raw_ioctl() as is would *not* work on e.g. sparc64 and ppc64,
      which would be rather sad, seeing that normal userland there is 32bit.
      The thing is, slapping __packed on the struct in question does not DTRT -
      it eliminates *all* padding.  The real solution is to use compat_u64.
      
      4) of course, all that stuff has no business being outside of raw.c in the
      first place - there should be ->compat_ioctl() for /dev/rawctl instead of
      messing with compat_ioctl.c.
      
      [akpm@linux-foundation.org: coding-style fixes]
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      cb8c8dac
  4. 25 Sep, 2009 1 commit
    • Miklos Szeredi's avatar
      vfs_rename_dir() doesn't properly account for filesystems with · 07431498
      Miklos Szeredi authored
      FS_RENAME_DOES_D_MOVE.  If new_dentry has a target inode attached, it
      unhashes the new_dentry prior to the rename() iop and rehashes it after,
      but doesn't account for the possibility that rename() may have swapped
      {old,new}_dentry.  For FS_RENAME_DOES_D_MOVE filesystems, it rehashes
      new_dentry (now the old renamed-from name, which d_move() expected to go
      away), such that a subsequent lookup will find it.
      
      This was caught by the recently posted POSIX fstest suite, rename/10.t
      test 62 (and others) on ceph.
      
      The bug was introduced by: commit 349457cc
      "[PATCH] Allow file systems to manually d_move() inside of ->rename()"
      
      Fix by not rehashing the new dentry.  Rehashing used to be needed by
      d_move() but isn't anymore.
      Reported-by: default avatarSage Weil <sage@newdream.net>
      Cc: Zach Brown <zach.brown@oracle.com>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      Cc: Mark Fasheh <mark.fasheh@oracle.com>
      Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      07431498
  5. 06 Oct, 2009 1 commit
  6. 13 Oct, 2009 1 commit
  7. 09 Oct, 2009 1 commit
  8. 10 Oct, 2009 1 commit
  9. 09 Oct, 2009 1 commit
  10. 15 Oct, 2009 1 commit
  11. 14 Oct, 2009 1 commit
  12. 29 Sep, 2009 1 commit
  13. 19 Sep, 2009 1 commit
  14. 25 Sep, 2009 2 commits
  15. 20 Aug, 2009 1 commit
  16. 04 Aug, 2009 2 commits
  17. 29 Jul, 2009 1 commit
  18. 25 Sep, 2009 1 commit
  19. 29 Jul, 2009 1 commit
  20. 25 Sep, 2009 1 commit
  21. 19 Sep, 2009 1 commit
  22. 11 Aug, 2009 1 commit
  23. 06 Oct, 2009 1 commit
    • Andrew Morton's avatar
      do_div() takes a u64. The mips build warns: · 069b4675
      Andrew Morton authored
      In file included from include/trace/ftrace.h:635,
                       from include/trace/define_trace.h:61,
                       from include/trace/events/lockdep.h:96,
                       from kernel/lockdep.c:52:
      include/trace/events/lockdep.h: In function `ftrace_raw_event_lock_acquired':
      include/trace/events/lockdep.h:71: warning: comparison of distinct pointer types lacks a cast
      
      from the check in include/asm-generic/div64.h:do_div().
      
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      069b4675
  24. 16 Oct, 2009 1 commit
    • Stephen Boyd's avatar
      dmar_ir_support() references dmar_tbl which is annotated with · b8882458
      Stephen Boyd authored
      __initdata. The only caller of dmar_ir_support() is
      intr_remapping_supported() also annotated with __init.
      
      WARNING: drivers/pci/built-in.o(.text+0xa110): Section mismatch in
      reference from the function dmar_ir_support() to the variable
      .init.data:dmar_tbl
      The function dmar_ir_support() references
      the variable __initdata dmar_tbl.
      This is often because dmar_ir_support lacks a __initdata
      annotation or the annotation of dmar_tbl is wrong.
      Signed-off-by: default avatarStephen Boyd <bebarino@gmail.com>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: David Woodhouse <David.Woodhouse@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      b8882458
  25. 14 Oct, 2009 1 commit
  26. 31 Oct, 2009 1 commit
  27. 30 Sep, 2009 1 commit
    • sonic zhang's avatar
      Fit blackfin uart over sport driver into common uart inftrastructure. It · 855d8f84
      sonic zhang authored
      is based on the early platform interfaces to get the platform data early
      when the console is initilized.
      
      1. Enable sport uart driver to change uart baud, data bit, stop bit at
         runtime.  Bind the index of uart device nodes to physical index of
         sports.
      
      2. Move all platform data into arch specific board files.  Register
         and probe platform device data in both early and normal stages.
      
      3. Console is registered in sport uart driver as well.
      
      4. Remove 500 us block waiting in sport tx stop code by putting a
         dummy data into tx fifo to make sure the sport tx stops when all bytes
         are shifted out except for the dummy data.
      
      5. clean up a bit and fix up coding style.
      Signed-off-by: default avatarSonic Zhang <sonic.zhang@analog.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Cc: Bryan Wu <cooloney@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      855d8f84
  28. 13 Jul, 2009 1 commit
  29. 25 Sep, 2009 2 commits
    • Lamarque Vieira Souza's avatar
      Work around one problem with my Acer Bluetooth Optical Rechargeable Mouse · 2f89b8bd
      Lamarque Vieira Souza authored
      where the cursor gets stuck at screen's upper-left corner.
      
      Even my notebook's touchpad is not able to move cursor when the bluetooth
      mouse is connected to my Acer Ferrari 4005 notebook.
      
      Using input session instead of hid session solves this problem although
      the cursor still moves a little sluggishly with the bluetooth mouse,
      cursor moves correctly using the touchpad.
      
      My bluetooth mouse used to work well (no sluggish) until kernel 2.6.21,
      since then the problems are getting worse with each kernel release (it got
      sluggish in 2.6.22 and this this upper-left corner problem appeared in
      2.6.28 or 2.6.27).
      
      The patch adds a general quirk handling framework to the HIDP core and
      then uses this framework to implement a quirk for this device.
      
      [akpm@linux-foundation.org: use ARRAY_SIZE()-based search]
      Signed-off-by: default avatarLamarque V. Souza <lamarque@gmail.com>
      Cc: Marcel Holtmann <marcel@holtmann.org>
      Cc: Dave Young <hidave.darkstar@gmail.com>
      Cc: Jiri Kosina <jkosina@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      2f89b8bd
    • Sergei Shtylyov's avatar
      The driver wrongly claimed I/O ports at an address returned by pci_iomap() · 85d8c0b0
      Sergei Shtylyov authored
      -- even if it was passed an MMIO address.  Fix this by claiming/releasing
      all PCI resources in the PCI driver probe/remove handlers instead and get
      rid of the must_free_region flag weirdness (why would Cardbus claim
      anything for us?).
      
      Also, the remove handler was trying to talk to the chip after having
      disabled its address decoders (at least on x86) -- fix this and get rid of
      useless VORTEX_PCI() calls.
      
      While at it, fix some cases of the overly indented code...
      
      [akpm@linux-foundation.org: coding-style fixes]
      Signed-off-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Cc: Steffen Klassert <klassert@mathematik.tu-chemnitz.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      85d8c0b0
  30. 14 Oct, 2009 1 commit
  31. 24 Aug, 2009 2 commits
  32. 17 Aug, 2009 1 commit
  33. 04 Aug, 2009 1 commit
  34. 24 Aug, 2009 1 commit
  35. 20 Aug, 2009 1 commit
    • Sudhakar Rajashekhara's avatar
      Implement memory accessor interface in the MTD layer which enables the · fdfaf855
      Sudhakar Rajashekhara authored
      kernel to access flash data.
      
      This patch adds two new members to the mtd_partition structure, a function
      handler which will be called during setup of the partition and an argument
      to be passed to this setup function.
      
      Example:
      +static struct mtd_partition spi_flash_partitions[] = {
      +       [0] = {
      +               .name       = "U-Boot",
      +               .offset     = 0,
      +               .size       = SZ_256K,
      +               .mask_flags = MTD_WRITEABLE,
      +       },
      +       [1] = {
      +               .name       = "U-Boot Environment",
      +               .offset     = MTDPART_OFS_NXTBLK,
      +               .size       = SZ_64K,
      +               .mask_flags = MTD_WRITEABLE,
      +       },
      +       [2] = {
      +               .name       = "Linux",
      +               .offset     = MTDPART_OFS_NXTBLK,
      +               .size       = SZ_7M,
      +               .mask_flags = 0,
      +       },
      +       [3] = {
      +               .name       = "MAC Address",
      +               .offset     = MTDPART_OFS_NXTBLK,
      +               .size       = SZ_64K,
      +               .mask_flags = 0,
      +               .setup      = davinci_get_mac_addr,
      +               .context    = (void *)0,
      +       },
      +};
      
      The davinci_get_mac_addr function reads the MAC address from
      offset ZERO of last MTD partition.
      Signed-off-by: default avatarSudhakar Rajashekhara <sudhakar.raj@ti.com>
      Cc: David Brownell <david-b@pacbell.net>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      fdfaf855
  36. 12 Oct, 2009 1 commit
    • Roland McGrath's avatar
      This adds CROSS_COMPILE as a kconfig string so you can store it in · 68134294
      Roland McGrath authored
      .config.  Then you can use plain "make" in the configured kernel build
      directory to do the right cross compilation without setting the
      command-line or environment variable every time.
      
      With this, you can set up different build directories for different kernel
      configurations, whether native or cross-builds, and then use the simple:
      
      	make -C /build/dir M=module-source-dir
      
      idiom to build modules for any given target kernel, indicating which one
      by nothing but the build directory chosen.
      
      I tried a version that defaults the string with env="CROSS_COMPILE" so
      that in a "make oldconfig" with CROSS_COMPILE in the environment you can
      just hit return to store the way you're building it.  But the kconfig
      prompt for strings doesn't give you any way to say you want an empty
      string instead of the default, so I punted that.
      Signed-off-by: default avatarRoland McGrath <roland@redhat.com>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      68134294