1. 18 4月, 2009 1 次提交
  2. 15 4月, 2009 2 次提交
    • S
      drm/i915: fix scheduling while holding the new active list spinlock · 68c84342
      Shaohua Li 提交于
      regression caused by commit 5e118f41:
      i915_gem_object_move_to_inactive() should be called in task context,
      as it calls fput();
      
      Signed-off-by: Shaohua Li<shaohua.li@intel.com>
      [anholt: Add more detail to the comment about the lock break that's added]
      Signed-off-by: NEric Anholt <eric@anholt.net>
      68c84342
    • D
      Fix lpfc_parse_bg_err()'s use of do_div() · 2344b5b6
      David Howells 提交于
      Fix lpfc_parse_bg_err()'s use of do_div().  It should be passing a 64-bit
      variable as the first parameter.  However, since it's only using a 32-bit
      variable, it doesn't need to use do_div() at all, but can instead use the
      division operator.
      
      This deals with the following warnings:
      
          CC      drivers/scsi/lpfc/lpfc_scsi.o
        drivers/scsi/lpfc/lpfc_scsi.c: In function 'lpfc_parse_bg_err':
        drivers/scsi/lpfc/lpfc_scsi.c:1397: warning: comparison of distinct pointer types lacks a cast
        drivers/scsi/lpfc/lpfc_scsi.c:1397: warning: right shift count >= width of type
        drivers/scsi/lpfc/lpfc_scsi.c:1397: warning: passing argument 1 of '__div64_32' from incompatible pointer type
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2344b5b6
  3. 14 4月, 2009 26 次提交
  4. 13 4月, 2009 6 次提交
  5. 12 4月, 2009 1 次提交
  6. 11 4月, 2009 1 次提交
  7. 10 4月, 2009 1 次提交
  8. 09 4月, 2009 2 次提交
    • M
      dm kcopyd: fix callback race · 340cd444
      Mikulas Patocka 提交于
      If the thread calling dm_kcopyd_copy is delayed due to scheduling inside
      split_job/segment_complete and the subjobs complete before the loop in
      split_job completes, the kcopyd callback could be invoked from the
      thread that called dm_kcopyd_copy instead of the kcopyd workqueue.
      
      dm_kcopyd_copy -> split_job -> segment_complete -> job->fn()
      
      Snapshots depend on the fact that callbacks are called from the singlethreaded
      kcopyd workqueue and expect that there is no racing between individual
      callbacks. The racing between callbacks can lead to corruption of exception
      store and it can also mean that exception store callbacks are called twice
      for the same exception - a likely reason for crashes reported inside
      pending_complete() / remove_exception().
      
      This patch fixes two problems:
      
      1. job->fn being called from the thread that submitted the job (see above).
      
      - Fix: hand over the completion callback to the kcopyd thread.
      
      2. job->fn(read_err, write_err, job->context); in segment_complete
      reports the error of the last subjob, not the union of all errors.
      
      - Fix: pass job->write_err to the callback to report all error bits
        (it is done already in run_complete_job)
      
      Cc: stable@kernel.org
      Signed-off-by: NMikulas Patocka <mpatocka@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      340cd444
    • M
      dm kcopyd: prepare for callback race fix · 73830857
      Mikulas Patocka 提交于
      Use a variable in segment_complete() to point to the dm_kcopyd_client
      struct and only release job->pages in run_complete_job() if any are
      defined.  These changes are needed by the next patch.
      
      Cc: stable@kernel.org
      Signed-off-by: NMikulas Patocka <mpatocka@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      73830857