1. 20 Apr, 2009 3 commits
    • Suresh Siddha's avatar
      x86-64: fix FPU corruption with signals and preemption · 06c38d5e
      Suresh Siddha authored
      In 64bit signal delivery path, clear_used_math() was happening before saving
      the current active FPU state on to the user stack for signal handling. Between
      clear_used_math() and the state store on to the user stack, potentially we
      can get a page fault for the user address and can block. Infact, while testing
      we were hitting the might_fault() in __clear_user() which can do a schedule().
      
      At a later point in time, we will schedule back into this process and
      resume the save state (using "xsave/fxsave" instruction) which can lead
      to DNA fault. And as used_math was cleared before, we will reinit the FP state
      in the DNA fault and continue. This reinit will result in loosing the
      FPU state of the process.
      
      Move clear_used_math() to a point after the FPU state has been stored
      onto the user stack.
      
      This issue is present from a long time (even before the xsave changes
      and the x86 merge). But it can easily be exposed in 2.6.28.x and 2.6.29.x
      series because of the __clear_user() in this path, which has an explicit
      __cond_resched() leading to a context switch with CONFIG_PREEMPT_VOLUNTARY.
      
      [ Impact: fix FPU state corruption ]
      Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
      Cc: <stable@kernel.org>			[2.6.28.x, 2.6.29.x]
      Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
      06c38d5e
    • Jack Steiner's avatar
      x86/uv: fix for no memory at paddr 0 · fc61e663
      Jack Steiner authored
      Fix endcase where the memory at physical address 0 does not really
      exist AND one of the sockets on blade 0 has no active cpus.
      
      The memory that _appears_ to be at physical address 0 is actually
      memory that located at a different address but has been remapped by
      the chipset so that it appears to be at physical address 0.
      
      When determining the UV pnode, the algorithm for determining the pnode
      incorrectly used the relocated physical address instead of the actual
      (global) address.
      
      [ Impact: boot failure on partitioned systems ]
      Signed-off-by: default avatarJack Steiner <steiner@sgi.com>
      LKML-Reference: <20090420132530.GA23156@sgi.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      fc61e663
    • Ingo Molnar's avatar
      Merge branch 'linus' into x86/urgent · 62d17029
      Ingo Molnar authored
      Merge reason: We need the x86/uv updates from upstream, to queue up
                    dependent fix.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      62d17029
  2. 19 Apr, 2009 19 commits
  3. 18 Apr, 2009 11 commits
  4. 17 Apr, 2009 7 commits
    • Linus Torvalds's avatar
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · aefe6475
      Linus Torvalds authored
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        [libata] fix build error on drivers/ata/pata_legacy.c
        pata_via: Cache and rewrite the device bit
        sata_mv: workaround for multi_count errata sata24
        sata_mv: tidy up qc->tf usage in qc_prep() functions
      aefe6475
    • Zhenwen Xu's avatar
      [libata] fix build error on drivers/ata/pata_legacy.c · 16e6aeca
      Zhenwen Xu authored
      fix those errors:
      
      drivers/ata/pata_legacy.c: In function ‘pdc_data_xfer_vlb’:
      drivers/ata/pata_legacy.c:289: error: ‘ap’ undeclared (first use in this function)
      drivers/ata/pata_legacy.c:289: error: (Each undeclared identifier is reported only once
      drivers/ata/pata_legacy.c:289: error: for each function it appears in.)
      drivers/ata/pata_legacy.c: At top level:
      drivers/ata/pata_legacy.c:869: error: ‘ATA_PFLAG_PIO32_CHANGE’ undeclared here (not in a
      +function)
      make[2]: *** [drivers/ata/pata_legacy.o] Error 1
      make[1]: *** [drivers/ata] Error 2
      Signed-off-by: default avatarZhenwen Xu <helight.xu@gmail.com>
      Acked-by: default avatarAlan Cox <alan@linux.intel.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      16e6aeca
    • Alan Cox's avatar
      pata_via: Cache and rewrite the device bit · b4746ed7
      Alan Cox authored
      Some VIA chipsets will reset the DEV bit after IEN changes on ctl. Our
      optimised write path avoids doing this but we need to remove the
      optimisation on these devices.
      
      [Identified and some original patches proposed by Josehn Chan @ VIA but
      discussion then all ground to a halt so given a test case I dug it back out]
      
      Signed-off-by: Alan Cox <alan@lxorguk.ukuu.org.uk
      Tested-by: Christoph Bisping (bug #13086)
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      b4746ed7
    • Mark Lord's avatar
      sata_mv: workaround for multi_count errata sata24 · 299b3f8d
      Mark Lord authored
      Workaround for errata SATA#24 in sata_mv.
      This errata affects WRITE_MULTI* commands when
      the device multi_count produces a DRQ block size >= 4Kbytes.
      
      We work around it here by converting such operations
      into ordinary PIO_WRITEs instead.
      
      Note that this might result in a PIO FUA write unavoidably being converted
      into a non-FUA write.  In practice, any system using FUA is also going to be
      using DMA rather than PIO, so this shouldn't affect anyone in the real world.
      Signed-off-by: default avatarMark Lord <mlord@pobox.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      299b3f8d
    • Mark Lord's avatar
      sata_mv: tidy up qc->tf usage in qc_prep() functions · 8d2b450d
      Mark Lord authored
      Tidy up qc->tf accesses in the mv_qc_prep() functions.
      Signed-off-by: default avatarMark Lord <mlord@pobox.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      8d2b450d
    • Jeff Layton's avatar
      cifs: when renaming don't try to unlink negative dentry · fc6f3943
      Jeff Layton authored
      When attempting to rename a file on a read-only share, the kernel can
      call cifs_unlink on a negative dentry, which causes an oops. Only try
      to unlink the file if it's a positive dentry.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Tested-by: default avatarShirish Pargaonkar <shirishp@us.ibm.com>
      CC: Stable <stable@vger.kernel.org>
      Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
      fc6f3943
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 · d022bafb
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (43 commits)
        staging: slicoss: update README
        otus/zdusb.c: additional USB idnetifier
        Staging: go7007: fix build issues
        Staging: sxg: Fix leaks and checksum errors in transmit code path
        Staging: sxg: Fix sleep in atomic context warning while loading driver
        Staging: sxg: Use correct queue_id for transmitting non-TCP packets
        Staging: sxg: Fire watchdog timer at end of open routine to change the link
        Staging: Pohmelfs: Add load balancing between network states with the same priority.
        Staging: Pohmelfs: Added IO permissions and priorities.
        Staging: Pohmelfs: Added ->show_stats() callback.
        Staging: Pohmelfs: Drop ftrans debugging code.
        Staging: Pohmelfs: Use wait_on_page_timeout when waiting for remote directory sync instead of hardcoded 25 seconds.
        Staging: Pohmelfs: Reduce debugging noise about non-existing objects.
        Staging: Pohmelfs: Sync fs before killing it, since dentry cache is shrunk before writeback is invoked via generic_shutdown_super()
        Staging: Pohmelfs: Extend remount option.
        Staging: Pohmelfs: Set NETFS_INODE_REMOTE_SYNCED and clear NETFS_INODE_OWNED bits in the root inode.
        Staging: Pohmelfs: Added 'need_lock' variable into debug print.
        Staging: Pohmelfs: Disable read lock in pohmelfs_getattr().
        Staging: Pohmelfs: Move parent lock to the place where we really have to send a lookup request to the server.
        Staging: pohmelfs: Populate dentry cache when receiving the new readdir entry.
        ...
      d022bafb