1. 31 Aug, 2007 6 commits
    • Oleg Nesterov's avatar
      signalfd: fix interaction with posix-timers · 68159e50
      Oleg Nesterov authored
      dequeue_signal:
      
      	if (__SI_TIMER) {
      		spin_unlock(&tsk->sighand->siglock);
      		do_schedule_next_timer(info);
      		spin_lock(&tsk->sighand->siglock);
      	}
      
      Unless tsk == curent, this is absolutely unsafe: nothing prevents tsk from
      exiting. If signalfd was passed to another process, do_schedule_next_timer()
      is just wrong.
      
      Add yet another "tsk == current" check into dequeue_signal().
      
      This patch fixes an oopsable bug, but breaks the scheduling of posix timers
      if the shared __SI_TIMER signal was fetched via signalfd attached to another
      sub-thread. Mostly fixed by the next patch.
      Signed-off-by: default avatarOleg Nesterov <oleg@tv-sign.ru>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Davide Libenzi <davidel@xmailserver.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Michael Kerrisk <mtk-manpages@gmx.net>
      Cc: Roland McGrath <roland@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      68159e50
    • Zachary Amsden's avatar
      i386: fix lazy mode vmalloc synchronization for paravirt · f24e131c
      Zachary Amsden authored
      Found this looping Ubuntu installs with VMI.
      
      If unlucky enough to hit a vmalloc sync fault during a lazy mode
      operation (from an IRQ handler for a module which was not yet populated
      in current page directory, or from inside copy_one_pte, which touches
      swap_map, and hit in an unused 4M region), the required PDE update would
      never get flushed, causing an infinite page fault loop.
      
      This bug affects any paravirt-ops backend which uses lazy updates, I
      believe that makes it a bug in Xen, VMI and lguest.  It only happens on
      LOWMEM kernels.
      
      
      Touching vmalloc memory in the middle of a lazy mode update can generate a
      kernel PDE update, which must be flushed immediately.  The fix is to leave
      lazy mode when doing a vmalloc sync.
      Signed-off-by: default avatarZachary Amsden <zach@vmware.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      f24e131c
    • Jeff Dike's avatar
      uml: fix previous request size limit fix · 6f157f74
      Jeff Dike authored
      The previous patch which limited the number of sectors in a single request
      to a COWed device was correct in concept, but the limit was implemented in
      the wrong place.
      
      By putting it in ubd_add, it covered the cases where the COWing was
      specified on the command line.  However, when the command line only has the
      COW file specified, the fact that it's a COW file isn't known until it's
      opened, so the limit is missed in these cases.
      
      This patch moves the sector limit from ubd_add to ubd_open_dev.
      Signed-off-by: default avatarJeff Dike <jdike@linux.intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      6f157f74
    • Stephen Hemminger's avatar
      sky2: don't clear phy power bits · 7405863e
      Stephen Hemminger authored
      There are special PHY settings available on Yukon EC-U chip that
      should not get cleared. This should solve mysterious errors on some
      motherboards (like Gigabyte DS-3).
      Signed-off-by: default avatarStephen Hemminger <shemminger@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      
      7405863e
    • Herbert Xu's avatar
      NET: Share correct feature code between bridging and bonding · d5e756e2
      Herbert Xu authored
      [NET]: Share correct feature code between bridging and bonding
      
      http://bugzilla.kernel.org/show_bug.cgi?id=8797 shows that the
      bonding driver may produce bogus combinations of the checksum
      flags and SG/TSO.
      
      For example, if you bond devices with NETIF_F_HW_CSUM and
      NETIF_F_IP_CSUM you'll end up with a bonding device that
      has neither flag set.  If both have TSO then this produces
      an illegal combination.
      
      The bridge device on the other hand has the correct code to
      deal with this.
      
      In fact, the same code can be used for both.  So this patch
      moves that logic into net/core/dev.c and uses it for both
      bonding and bridging.
      
      In the process I've made small adjustments such as only
      setting GSO_ROBUST if at least one constituent device
      supports it.
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      d5e756e2
    • Mark Fasheh's avatar
      ocfs2: Fix bad source start calculation during kernel writes · 1db5759e
      Mark Fasheh authored
      [PATCH] ocfs2: Fix bad source start calculation during kernel writes
      
      For in-kernel writes ocfs2_get_write_source() should be starting the buffer
      at a page boundary as the math in ocfs2_map_and_write_user_data() will pad
      it back out to the correct write offset. Instead, we were passing the raw
      offset, which caused ocfs2_map_and_write_user_data() start too far into the
      buffer, resulting in corruptions from nfs client writes.
      Signed-off-by: default avatarMark Fasheh <mark.fasheh@oracle.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      1db5759e
  2. 22 Aug, 2007 21 commits
  3. 21 Aug, 2007 2 commits
  4. 15 Aug, 2007 11 commits