1. 04 5月, 2011 1 次提交
  2. 03 5月, 2011 4 次提交
  3. 26 4月, 2011 4 次提交
  4. 08 4月, 2011 2 次提交
  5. 27 3月, 2011 6 次提交
  6. 26 3月, 2011 2 次提交
  7. 25 3月, 2011 8 次提交
  8. 24 3月, 2011 13 次提交
    • A
      UBI: use GFP_NOFS properly · 3d46b316
      Artem Bityutskiy 提交于
      This patch fixes a brown-paperbag bug which was introduced by me:
      I used incorrect "GFP_KERNEL | GFP_NOFS" allocation flags to make
      sure my allocations do not cause write-back. But the correct form
      is "GFP_NOFS".
      Signed-off-by: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      3d46b316
    • M
      dm stripe: implement merge method · 29915202
      Mustafa Mesanovic 提交于
      Implement a merge function in the striped target.
      
      When the striped target's underlying devices provide a merge_bvec_fn
      (like all DM devices do via dm_merge_bvec) it is important to call down
      to them when building a biovec that doesn't span a stripe boundary.
      
      Without the merge method, a striped DM device stacked on DM devices
      causes bios with a single page to be submitted which results
      in unnecessary overhead that hurts performance.
      
      This change really helps filesystems (e.g. XFS and now ext4) which take
      care to assemble larger bios.  By implementing stripe_merge(), DM and the
      stripe target no longer undermine the filesystem's work by only allowing
      a single page per bio.  Buffered IO sees the biggest improvement
      (particularly uncached reads, buffered writes to a lesser degree).  This
      is especially so for more capable "enterprise" storage LUNs.
      
      The performance improvement has been measured to be ~12-35% -- when a
      reasonable chunk_size is used (e.g. 64K) in conjunction with a stripe
      count that is a power of 2.
      
      In contrast, the performance penalty is ~5-7% for the pathological worst
      case stripe configuration (small chunk_size with a stripe count that is
      not a power of 2).  The reason for this is that stripe_map_sector() is
      now called once for every call to dm_merge_bvec().  stripe_map_sector()
      will use slower division if stripe count isn't a power of 2.
      Signed-off-by: NMustafa Mesanovic <mume@linux.vnet.ibm.com>
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      29915202
    • M
      dm mpath: allow table load with no priority groups · a490a07a
      Mike Snitzer 提交于
      This patch adjusts the multipath target to allow a table with both 0
      priority groups and 0 for the initial priority group number.
      
      If any mpath device is held open when all paths in the last priority
      group have failed, userspace multipathd will attempt to reload the
      associated DM table to reflect the fact that the device no longer has
      any priority groups.  But the reload attempt always failed because the
      multipath target did not allow 0 priority groups.
      
      All multipath target messages related to priority group (enable_group,
      disable_group, switch_group) will handle a priority group of 0 (will
      cause error).
      
      When reloading a multipath table with 0 priority groups, userspace
      multipathd must be updated to specify an initial priority group number
      of 0 (rather than 1).
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Cc: Babu Moger <babu.moger@lsi.com>
      Acked-by: NHannes Reinecke <hare@suse.de>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      a490a07a
    • M
      dm mpath: fail message ioctl if specified path is not valid · 19040c0b
      Mike Snitzer 提交于
      Fail the reinstate_path and fail_path message ioctl if the specified
      path is not valid.
      
      The message ioctl would succeed for the 'reinistate_path' and
      'fail_path' messages even if action was not taken because the
      specified device was not a valid path of the multipath device.
      
      Before, when /dev/vdb is not a path of mpathb:
      $ dmsetup message mpathb 0 reinstate_path /dev/vdb
      $ echo $?
      0
      
      After:
      $ dmsetup message mpathb 0 reinstate_path /dev/vdb
      device-mapper: message ioctl failed: Invalid argument
      Command failed
      $ echo $?
      1
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      19040c0b
    • M
      dm ioctl: add flag to wipe buffers for secure data · f8681205
      Milan Broz 提交于
      Add DM_SECURE_DATA_FLAG which userspace can use to ensure
      that all buffers allocated for dm-ioctl are wiped
      immediately after use.
      
      The user buffer is wiped as well (we do not want to keep
      and return sensitive data back to userspace if the flag is set).
      
      Wiping is useful for cryptsetup to ensure that the key
      is present in memory only in defined places and only
      for the time needed.
      
      (For crypt, key can be present in table during load or table
      status, wait and message commands).
      Signed-off-by: NMilan Broz <mbroz@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      f8681205
    • M
      dm ioctl: prepare for crypt key wiping · 6bb43b5d
      Milan Broz 提交于
      Prepare code for implementing buffer wipe flag.
      No functional change in this patch.
      Signed-off-by: NMilan Broz <mbroz@redhat.com>
      Acked-by: NMike Snitzer <snitzer@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      6bb43b5d
    • M
      dm crypt: wipe keys string immediately after key is set · de8be5ac
      Milan Broz 提交于
      Always wipe the original copy of the key after processing it
      in crypt_set_key().
      Signed-off-by: NMilan Broz <mbroz@redhat.com>
      Acked-by: NMike Snitzer <snitzer@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      de8be5ac
    • J
      dm: add flakey target · 3407ef52
      Josef Bacik 提交于
      This target is the same as the linear target except that it returns I/O
      errors periodically.  It's been found useful in simulating failing
      devices for testing purposes.
      
      I needed a dm target to do some failure testing on btrfs's raid code, and
      Mike pointed me at this.
      Signed-off-by: NJosef Bacik <josef@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      3407ef52
    • M
      dm: fix opening log and cow devices for read only tables · 024d37e9
      Milan Broz 提交于
      If a table is read-only, also open any log and cow devices it uses read-only.
      
      Previously, even read-only devices were opened read-write internally.
      After patch 75f1dc0d
        block: check bdev_read_only() from blkdev_get()
      was applied, loading such tables began to fail.  The patch
      was reverted by e51900f7
        block: revert block_dev read-only check
      but this patch fixes this part of the code to work with the original patch.
      Signed-off-by: NMilan Broz <mbroz@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      024d37e9
    • D
      drm/vblank: update recently added vbl interface to be more future proof. · 51eab416
      Dave Airlie 提交于
      This makes the interface a bit cleaner by leaving a single gap in the
      vblank bit space instead of creating two gaps.
      
      Suggestions from Michel on mailing list/irc.
      Reviewed-by: NMichel Dänzer <michel@daenzer.net>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      51eab416
    • T
      drm radeon: Return -EINVAL on wrong pm sysfs access · 1783e4bf
      Thomas Renninger 提交于
      Throw an error if someone tries to fill this with
      wrong data, instead of simply ignoring the input.
      Now you get:
      
      echo hello >/sys/../power_method
      -bash: echo: write error: Invalid argument
      Signed-off-by: NThomas Renninger <trenn@suse.de>
      CC: Alexander.Deucher@amd.com
      CC: dri-devel@lists.freedesktop.org
      Reviewed-by: NAlex Deucher <alexdeucher@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      1783e4bf
    • A
      drm/radeon/kms: fix hardcoded EDID handling · fafcf94e
      Alex Deucher 提交于
      On some servers there is a hardcoded EDID provided
      in the vbios so that the driver will always see a
      display connected even if something like a KVM
      prevents traditional means like DDC or load
      detection from working properly.  Also most
      server boards with DVI are not actually DVI, but
      DVO connected to a virtual KVM service processor.
      If we fail to detect a monitor via DDC or load
      detection and a hardcoded EDID is available, use
      it.
      
      Additionally, when using the hardcoded EDID, use
      a copy of it rather than the actual one stored
      in the driver as the detect() and get_modes()
      functions may free it if DDC is successful.
      
      This fixes the virtual KVM on several internal
      servers.
      Signed-off-by: NAlex Deucher <alexdeucher@gmail.com>
      Cc: stable@kernel.org
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      fafcf94e
    • C
      Revert "drm/i915: Don't save/restore hardware status page address register" · f0c86024
      Chris Wilson 提交于
      This reverts commit a7a75c8f.
      
      There are two different variations on how Intel hardware addresses the
      "Hardware Status Page". One as a location in physical memory and the
      other as an offset into the virtual memory of the GPU, used in more
      recent chipsets. (The HWS itself is a cacheable region of memory which
      the GPU can write to without requiring CPU synchronisation, used for
      updating various details of hardware state, such as the position of
      the GPU head in the ringbuffer, the last breadcrumb seqno, etc).
      
      These two types of addresses were updated in different locations of code
      - one inline with the ringbuffer initialisation, and the other during
      device initialisation. (The HWS page is logically associated with
      the rings, and there is one HWS page per ring.) During resume, only the
      ringbuffers were being re-initialised along with the virtual HWS page,
      leaving the older physical address HWS untouched. This then caused a
      hang on the older gen3/4 (915GM, 945GM, 965GM) the first time we tried
      to synchronise the GPU as the breadcrumbs were never being updated.
      Reported-and-tested-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Reported-by: NJan Niehusmann <jan@gondor.com>
      Reported-and-tested-by: NJustin P. Mattock <justinmattock@gmail.com>
      Reported-and-tested-by: NMichael "brot" Groh <brot@minad.de>
      Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Acked-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      f0c86024