1. 07 Mar, 2011 7 commits
    • Josh Hunt's avatar
      ext2: Fix link count corruption under heavy link+rename load · db273d34
      Josh Hunt authored
      commit e8a80c6f upstream.
      
      vfs_rename_other() does not lock renamed inode with i_mutex. Thus changing
      i_nlink in a non-atomic manner (which happens in ext2_rename()) can corrupt
      it as reported and analyzed by Josh.
      
      In fact, there is no good reason to mess with i_nlink of the moved file.
      We did it presumably to simulate linking into the new directory and unlinking
      from an old one. But the practical effect of this is disputable because fsck
      can possibly treat file as being properly linked into both directories without
      writing any error which is confusing. So we just stop increment-decrement
      games with i_nlink which also fixes the corruption.
      
      CC: Al Viro <viro@ZenIV.linux.org.uk>
      Signed-off-by: default avatarJosh Hunt <johunt@akamai.com>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      db273d34
    • Thomas Gleixner's avatar
      clockevents: Prevent oneshot mode when broadcast device is periodic · f3d15563
      Thomas Gleixner authored
      commit 3a142a06 upstream.
      
      When the per cpu timer is marked CLOCK_EVT_FEAT_C3STOP, then we only
      can switch into oneshot mode, when the backup broadcast device
      supports oneshot mode as well. Otherwise we would try to switch the
      broadcast device into an unsupported mode unconditionally. This went
      unnoticed so far as the current available broadcast devices support
      oneshot mode. Seth unearthed this problem while debugging and working
      around an hpet related BIOS wreckage.
      
      Add the necessary check to tick_is_oneshot_available().
      Reported-and-tested-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      LKML-Reference: <alpine.LFD.2.00.1102252231200.2701@localhost6.localdomain6>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      f3d15563
    • Miklos Szeredi's avatar
      fuse: fix hang of single threaded fuseblk filesystem · 9efe5673
      Miklos Szeredi authored
      commit 5a18ec17 upstream.
      
      Single threaded NTFS-3G could get stuck if a delayed RELEASE reply
      triggered a DESTROY request via path_put().
      
      Fix this by
      
       a) making RELEASE requests synchronous, whenever possible, on fuseblk
       filesystems
      
       b) if not possible (triggered by an asynchronous read/write) then do
       the path_put() in a separate thread with schedule_work().
      Reported-by: default avatarOliver Neukum <oneukum@suse.de>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      9efe5673
    • Don Zickus's avatar
      x86: Use u32 instead of long to set reset vector back to 0 · bf30c46a
      Don Zickus authored
      commit 299c5696 upstream.
      
      A customer of ours, complained that when setting the reset
      vector back to 0, it trashed other data and hung their box.
      They noticed when only 4 bytes were set to 0 instead of 8,
      everything worked correctly.
      
      Mathew pointed out:
      
       |
       | We're supposed to be resetting trampoline_phys_low and
       | trampoline_phys_high here, which are two 16-bit values.
       | Writing 64 bits is definitely going to overwrite space
       | that we're not supposed to be touching.
       |
      
      So limit the area modified to u32.
      Signed-off-by: default avatarDon Zickus <dzickus@redhat.com>
      Acked-by: default avatarMatthew Garrett <mjg@redhat.com>
      LKML-Reference: <1297139100-424-1-git-send-email-dzickus@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      bf30c46a
    • Jochen Friedrich's avatar
      mfd: Fix NULL pointer due to non-initialized ucb1x00-ts absinfo · ba7c5cae
      Jochen Friedrich authored
      commit 9063f1f1 upstream.
      
      Call input_set_abs_params instead of manually setting absbit only.
      This fixes this oops:
      
      Unable to handle kernel NULL pointer dereference at virtual address 00000024
      Internal error: Oops: 41b67017 [#1]
      CPU: 0    Not tainted  (2.6.37 #4)
      pc : [<c016d1fc>]    lr : [<00000000>]    psr: 20000093
      sp : c19e5f30  ip : c19e5e6c  fp : c19e5f58
      r10: 00000000  r9 : c19e4000  r8 : 00000003
      r7 : 000001e4  r6 : 00000001  r5 : c1854400  r4 : 00000003
      r3 : 00000018  r2 : 00000018  r1 : 00000018  r0 : c185447c
      Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
      Control: c1b6717f  Table: c1b6717f  DAC: 00000017
      Stack: (0xc19e5f30 to 0xc19e6000)
      5f20:                                     00000003 00000003 c1854400 00000013
      5f40: 00000001 000001e4 000001c5 c19e5f80 c19e5f5c c016d5e8 c016cf5c 000001e4
      5f60: c1854400 c18b5860 00000000 00000171 000001e4 c19e5fc4 c19e5f84 c01559a4
      5f80: c016d584 c18b5868 00000000 c1bb5c40 c0035afc c18b5868 c18b5868 c1a55d54
      5fa0: c18b5860 c0155750 00000013 00000000 00000000 00000000 c19e5ff4 c19e5fc8
      5fc0: c0050174 c015575c 00000000 c18b5860 00000000 c19e5fd4 c19e5fd4 c1a55d54
      5fe0: c00500f0 c003b464 00000000 c19e5ff8 c003b464 c00500fc 04000400 04000400
      Backtrace:
      Function entered at [<c016cf50>] from [<c016d5e8>]
      Function entered at [<c016d578>] from [<c01559a4>]
       r8:000001e4 r7:00000171 r6:00000000 r5:c18b5860 r4:c1854400
      Function entered at [<c0155750>] from [<c0050174>]
      Function entered at [<c00500f0>] from [<c003b464>]
       r6:c003b464 r5:c00500f0 r4:c1a55d54
      Code: e59520fc e1a03286 e0433186 e0822003 (e592000c)
      
      >>PC;  c016d1fc <input_handle_event+2ac/5a0>   <=====
      
      Trace; c016cf50 <input_handle_event+0/5a0>
      Trace; c016d5e8 <input_event+70/88>
      Trace; c016d578 <input_event+0/88>
      Trace; c01559a4 <ucb1x00_thread+254/2dc>
      Trace; c0155750 <ucb1x00_thread+0/2dc>
      Trace; c0050174 <kthread+84/8c>
      Trace; c00500f0 <kthread+0/8c>
      Trace; c003b464 <do_exit+0/624>
      Signed-off-by: default avatarJochen Friedrich <jochen@scram.de>
      Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      ba7c5cae
    • Dave Airlie's avatar
      drm: fix unsigned vs signed comparison issue in modeset ctl ioctl. · 40d8d3eb
      Dave Airlie authored
      commit 19227561 upstream.
      
      This fixes CVE-2011-1013.
      
      Reported-by: Matthiew Herrb (OpenBSD X.org team)
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      40d8d3eb
    • Tristan Ye's avatar
      Ocfs2/refcounttree: Fix a bug for refcounttree to writeback clusters in a right number. · 08020344
      Tristan Ye authored
      commit acf3bb00 upstream.
      
      Current refcounttree codes actually didn't writeback the new pages out in
      write-back mode, due to a bug of always passing a ZERO number of clusters
      to 'ocfs2_cow_sync_writeback', the patch tries to pass a proper one in.
      Signed-off-by: default avatarTristan Ye <tristan.ye@oracle.com>
      Signed-off-by: default avatarJoel Becker <jlbec@evilplan.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      08020344
  2. 03 Mar, 2011 2 commits
  3. 02 Mar, 2011 31 commits