1. 23 1月, 2010 1 次提交
    • T
      ext4: Add block validity check when truncating indirect block mapped inodes · 1f2acb60
      Theodore Ts'o 提交于
      Add checks to ext4_free_branches() to make sure a block number found
      in an indirect block are valid before trying to free it.  If a bad
      block number is found, stop freeing the indirect block immediately,
      since the file system is corrupt and we will need to run fsck anyway.
      This also avoids spamming the logs, and specifically avoids
      driver-level "attempt to access beyond end of device" errors obscure
      what is really going on.
      
      If you get *really*, *really*, *really* unlucky, without this patch, a
      supposed indirect block containing garbage might contain a reference
      to a primary block group descriptor, in which case
      ext4_free_branches() could end up zero'ing out a block group
      descriptor block, and if then one of the block bitmaps for a block
      group described by that bg descriptor block is not in memory, and is
      read in by ext4_read_block_bitmap().  This function calls
      ext4_valid_block_bitmap(), which assumes that bg_inode_table() was
      validated at mount time and hasn't been modified since.  Since this
      assumption is no longer valid, it's possible for the value
      (ext4_inode_table(sb, desc) - group_first_block) to go negative, which
      will cause ext4_find_next_zero_bit() to trigger a kernel GPF.
      
      Addresses-Google-Bug: #2220436
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      1f2acb60
  2. 16 2月, 2010 1 次提交
    • E
      ext4: Fix optional-arg mount options · 15121c18
      Eric Sandeen 提交于
      We have 2 mount options, "barrier" and "auto_da_alloc" which may or
      may not take a 1/0 argument.  This causes the ext4 superblock mount
      code to subtract uninitialized pointers and pass the result to
      kmalloc, which results in very noisy failures.
      
      Per Ted's suggestion, initialize the args struct so that
      we know whether match_token() found an argument for the
      option, and skip match_int() if not.
      
      Also, return error (0) from parse_options if we thought
      we found an argument, but match_int() Fails.
      Reported-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NEric Sandeen <sandeen@redhat.com>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      15121c18
  3. 05 2月, 2010 1 次提交
  4. 13 2月, 2010 8 次提交
  5. 12 2月, 2010 26 次提交
  6. 11 2月, 2010 3 次提交
    • A
      vgaarb: fix incorrect dereference of userspace pointer. · 77c1ff39
      Andy Getzendanner 提交于
      This patch corrects a userspace pointer dereference in the VGA arbiter
      in 2.6.32.1.
      
      copy_from_user() is used at line 822 to copy the contents of buf into
      kbuf, but a call to strncmp() on line 964 uses buf rather than kbuf.  This
      problem led to a GPF in strncmp() when X was started on my x86_32 systems.
       X triggered the behavior with a write of "target PCI:0000:01:00.0" to
      /dev/vga_arbiter.
      
      The patch has been tested against 2.6.32.1 and observed to correct the GPF
      observed when starting X or manually writing the string "target
      PCI:0000:01:00.0" to /dev/vga_arbiter.
      Signed-off-by: NAndy Getzendanner <james.getzendanner@students.olin.edu>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      77c1ff39
    • D
      Merge branch 'drm-radeon-linus' of ../drm-next · 0a4583eb
      Dave Airlie 提交于
      * 'drm-radeon-linus' of ../drm-next:
        drm/radeon/kms: retry auxch on 0x20 timeout value.
        drm/radeon: Skip dma copy test in benchmark if card doesn't have dma engine.
        drm/radeon/kms: fix screen clearing before fbcon.
        drm/radeon/kms: add quirk for VGA without DDC on rv730 XFX card.
        drm/radeon/kms: don't crash if no DDC bus on VGA/DVI connector.
        drm/radeon/kms: change Kconfig text to reflect the new option.
        drm/radeon/kms: suspend and resume audio stuff
      0a4583eb
    • D
      drm/radeon/kms: retry auxch on 0x20 timeout value. · 648ac05c
      Dave Airlie 提交于
      ATOM appears to return 0x20 which seems to mean some sort of timeout.
      
      retry the transaction up to 10 times before failing, this
      makes DP->VGA convertor we bought work at least a bit more predictably.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      648ac05c