Skip to content
  1. Jul 11, 2009
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block · 69ca06c9
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
        cfq-iosched: reset oom_cfqq in cfq_set_request()
        block: fix sg SG_DXFER_TO_FROM_DEV regression
        block: call blk_scsi_ioctl_init()
        Fix congestion_wait() sync/async vs read/write confusion
      69ca06c9
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2 · 9f2d8be4
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2:
        nilfs2: fix disorder in cp count on error during deleting checkpoints
        nilfs2: fix lockdep warning between regular file and inode file
        nilfs2: fix incorrect KERN_CRIT messages in case of write failures
        nilfs2: fix hang problem of log writer which occurs after write failures
        nilfs2: remove unlikely directive causing mis-conversion of error code
      9f2d8be4
    • Linus Torvalds's avatar
      Merge branch 'core-fixes-for-linus-2' of... · ac3f4822
      Linus Torvalds authored
      Merge branch 'core-fixes-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'core-fixes-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        dma-debug: Fix the overlap() function to be correct and readable
        oprofile: reset bt_lost_no_mapping with other stats
        x86/oprofile: rename kernel parameter for architectural perfmon to arch_perfmon
        signals: declare sys_rt_tgsigqueueinfo in syscalls.h
        rcu: Mark Hierarchical RCU no longer experimental
        dma-debug: Put all hash-chain locks into the same lock class
        dma-debug: fix off-by-one error in overlap function
      ac3f4822
    • Linus Torvalds's avatar
      Merge branch 'perfcounters-fixes-for-linus' of... · 85be928c
      Linus Torvalds authored
      Merge branch 'perfcounters-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'perfcounters-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (50 commits)
        perf report: Add "Fractal" mode output - support callchains with relative overhead rate
        perf_counter tools: callchains: Manage the cumul hits on the fly
        perf report: Change default callchain parameters
        perf report: Use a modifiable string for default callchain options
        perf report: Warn on callchain output request from non-callchain file
        x86: atomic64: Inline atomic64_read() again
        x86: atomic64: Clean up atomic64_sub_and_test() and atomic64_add_negative()
        x86: atomic64: Improve atomic64_xchg()
        x86: atomic64: Export APIs to modules
        x86: atomic64: Improve atomic64_read()
        x86: atomic64: Code atomic(64)_read and atomic(64)_set in C not CPP
        x86: atomic64: Fix unclean type use in atomic64_xchg()
        x86: atomic64: Make atomic_read() type-safe
        x86: atomic64: Reduce size of functions
        x86: atomic64: Improve atomic64_add_return()
        x86: atomic64: Improve cmpxchg8b()
        x86: atomic64: Improve atomic64_read()
        x86: atomic64: Move the 32-bit atomic64_t implementation to a .c file
        x86: atomic64: The atomic64_t data type should be 8 bytes aligned on 32-bit too
        perf report: Annotate variable initialization
        ...
      85be928c
    • Peter Zijlstra's avatar
      sched: optimize cond_resched() · d86ee480
      Peter Zijlstra authored
      
      
      Optimize cond_resched() by removing one conditional.
      
      Currently cond_resched() checks system_state ==
      SYSTEM_RUNNING in order to avoid scheduling before the
      scheduler is running.
      
      We can however, as per suggestion of Matt, use
      PREEMPT_ACTIVE to accomplish that very same.
      
      Suggested-by: default avatarMatt Mackall <mpm@selenic.com>
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Acked-by: default avatarMatt Mackall <mpm@selenic.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d86ee480
    • Peter Zijlstra's avatar
      sched: INIT_PREEMPT_COUNT · c99e6efe
      Peter Zijlstra authored
      
      
      Pull the initial preempt_count value into a single
      definition site.
      
      Maintainers for: alpha, ia64 and m68k, please have a look,
      your arch code is funny.
      
      The header magic is a bit odd, but similar to the KERNEL_DS
      one, CPP waits with expanding these macros until the
      INIT_THREAD_INFO macro itself is expanded, which is in
      arch/*/kernel/init_task.c where we've already included
      sched.h so we're good.
      
      Cc: tony.luck@intel.com
      Cc: rth@twiddle.net
      Cc: geert@linux-m68k.org
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Acked-by: default avatarMatt Mackall <mpm@selenic.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c99e6efe
    • Ingo Molnar's avatar
      dma-debug: Fix the overlap() function to be correct and readable · f39d1b97
      Ingo Molnar authored
      
      
      Linus noticed how unclean and buggy the overlap() function is:
      
       - It uses convoluted (and bug-causing) positive checks for
         range overlap - instead of using a more natural negative
         check.
      
       - Even the positive checks are buggy: a positive intersection
         check has four natural cases while we checked only for three,
         missing the (addr < start && addr2 == end) case for example.
      
       - The variables are mis-named, making it non-obvious how the
         check was done.
      
       - It needlessly uses u64 instead of unsigned long. Since these
         are kernel memory pointers and we explicitly exclude highmem
         ranges anyway we cannot ever overflow 32 bits, even if we
         could. (and on 64-bit it doesnt matter anyway)
      
      All in one, this function needs a total revamp. I used Linus's
      suggestions minus the paranoid checks (we cannot overflow really
      because if we get totally bad DMA ranges passed far more things
      break in the systems than just DMA debugging). I also fixed a
      few other small details i noticed.
      
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Joerg Roedel <joerg.roedel@amd.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      f39d1b97
    • Linus Torvalds's avatar
      Merge branch 'tracing-fixes-for-linus' of... · 2a6f86bc
      Linus Torvalds authored
      Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        tracing: Fix trace_print_seq()
        kprobes: No need to unlock kprobe_insn_mutex
        tracing/fastboot: Document the need of initcall_debug
        trace_export: Repair missed fields
        tracing: Fix stack tracer sysctl handling
      2a6f86bc
    • Vivek Goyal's avatar
      cfq-iosched: reset oom_cfqq in cfq_set_request() · 32f2e807
      Vivek Goyal authored
      
      
      In case memory is scarce, we now default to oom_cfqq. Once memory is
      available again, we should allocate a new cfqq and stop using oom_cfqq for
      a particular io context.
      
      Once a new request comes in, check if we are using oom_cfqq, and if yes,
      try to allocate a new cfqq.
      
      Tested the patch by forcing the use of oom_cfqq and upon next request thread
      realized that it was using oom_cfqq and it allocated a new cfqq.
      
      Signed-off-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      32f2e807
    • FUJITA Tomonori's avatar
      block: fix sg SG_DXFER_TO_FROM_DEV regression · ecb554a8
      FUJITA Tomonori authored
      
      
      I overlooked SG_DXFER_TO_FROM_DEV support when I converted sg to use
      the block layer mapping API (2.6.28).
      
      Douglas Gilbert explained SG_DXFER_TO_FROM_DEV:
      
      http://www.spinics.net/lists/linux-scsi/msg37135.html
      
      =
      The semantics of SG_DXFER_TO_FROM_DEV were:
         - copy user space buffer to kernel (LLD) buffer
         - do SCSI command which is assumed to be of the DATA_IN
           (data from device) variety. This would overwrite
           some or all of the kernel buffer
         - copy kernel (LLD) buffer back to the user space.
      
      The idea was to detect short reads by filling the original
      user space buffer with some marker bytes ("0xec" it would
      seem in this report). The "resid" value is a better way
      of detecting short reads but that was only added this century
      and requires co-operation from the LLD.
      =
      
      This patch changes the block layer mapping API to support this
      semantics. This simply adds another field to struct rq_map_data and
      enables __bio_copy_iov() to copy data from user space even with READ
      requests.
      
      It's better to add the flags field and kills null_mapped and the new
      from_user fields in struct rq_map_data but that approach makes it
      difficult to send this patch to stable trees because st and osst
      drivers use struct rq_map_data (they were converted to use the block
      layer in 2.6.29 and 2.6.30). Well, I should clean up the block layer
      mapping API.
      
      zhou sf reported this regiression and tested this patch:
      
      http://www.spinics.net/lists/linux-scsi/msg37128.html
      http://www.spinics.net/lists/linux-scsi/msg37168.html
      
      Reported-by: default avatarzhou sf <sxzzsf@gmail.com>
      Tested-by: default avatarzhou sf <sxzzsf@gmail.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      ecb554a8
    • FUJITA Tomonori's avatar
      block: call blk_scsi_ioctl_init() · 76da0346
      FUJITA Tomonori authored
      Currently, blk_scsi_ioctl_init() is not called since it lacks
      an initcall marking. This causes the command table to be
      unitialized, hence somce commands are block when they should
      not have been.
      
      This fixes a regression introduced by commit
      018e0446
      
      
      
      Signed-off-by: default avatarFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      76da0346
    • Jens Axboe's avatar
      Fix congestion_wait() sync/async vs read/write confusion · 8aa7e847
      Jens Axboe authored
      Commit 1faa16d2
      
       accidentally broke
      the bdi congestion wait queue logic, causing us to wait on congestion
      for WRITE (== 1) when we really wanted BLK_RW_ASYNC (== 0) instead.
      
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      8aa7e847
  2. Jul 10, 2009
  3. Jul 09, 2009