1. 11 Jan, 2011 1 commit
    • Tejun Heo's avatar
      workqueue: relax lockdep annotation on flush_work() · e159489b
      Tejun Heo authored
      Currently, the lockdep annotation in flush_work() requires exclusive
      access on the workqueue the target work is queued on and triggers
      warning if a work is trying to flush another work on the same
      workqueue; however, this is no longer true as workqueues can now
      execute multiple works concurrently.
      
      This patch adds lock_map_acquire_read() and make process_one_work()
      hold read access to the workqueue while executing a work and
      start_flush_work() check for write access if concurrnecy level is one
      or the workqueue has a rescuer (as only one execution resource - the
      rescuer - is guaranteed to be available under memory pressure), and
      read access if higher.
      
      This better represents what's going on and removes spurious lockdep
      warnings which are triggered by fake dependency chain created through
      flush_work().
      
      * Peter pointed out that flushing another work from a WQ_MEM_RECLAIM
        wq breaks forward progress guarantee under memory pressure.
        Condition check accordingly updated.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-by: default avatar"Rafael J. Wysocki" <rjw@sisk.pl>
      Tested-by: default avatar"Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: stable@kernel.org
      e159489b
  2. 08 Jan, 2011 4 commits
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/hch/hfsplus · 0c21e3aa
      Linus Torvalds authored
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/hch/hfsplus:
        hfsplus: %L-to-%ll, macro correction, and remove unneeded braces
        hfsplus: spaces/indentation clean-up
        hfsplus: C99 comments clean-up
        hfsplus: over 80 character lines clean-up
        hfsplus: fix an artifact in ioctl flag checking
        hfsplus: flush disk caches in sync and fsync
        hfsplus: optimize fsync
        hfsplus: split up inode flags
        hfsplus: write up fsync for directories
        hfsplus: simplify fsync
        hfsplus: avoid useless work in hfsplus_sync_fs
        hfsplus: make sure sync writes out all metadata
        hfsplus: use raw bio access for partition tables
        hfsplus: use raw bio access for the volume headers
        hfsplus: always use hfsplus_sync_fs to write the volume header
        hfsplus: silence a few debug printks
        hfsplus: fix option parsing during remount
      
      Fix up conflicts due to VFS changes in fs/hfsplus/{hfsplus_fs.h,unicode.c}
      0c21e3aa
    • Linus Torvalds's avatar
      Merge branch 'next-spi' of git://git.secretlab.ca/git/linux-2.6 · 021db8e2
      Linus Torvalds authored
      * 'next-spi' of git://git.secretlab.ca/git/linux-2.6: (77 commits)
        spi/omap: Fix DMA API usage in OMAP MCSPI driver
        spi/imx: correct the test on platform_get_irq() return value
        spi/topcliff: Typo fix threhold to threshold
        spi/dw_spi Typo change diable to disable.
        spi/fsl_espi: change the read behaviour of the SPIRF
        spi/mpc52xx-psc-spi: move probe/remove to proper sections
        spi/dw_spi: add DMA support
        spi/dw_spi: change to EXPORT_SYMBOL_GPL for exported APIs
        spi/dw_spi: Fix too short timeout in spi polling loop
        spi/pl022: convert running variable
        spi/pl022: convert busy flag to a bool
        spi/pl022: pass the returned sglen to the DMA engine
        spi/pl022: map the buffers on the DMA engine
        spi/topcliff_pch: Fix data transfer issue
        spi/imx: remove autodetection
        spi/pxa2xx: pass of_node to spi device and set a parent device
        spi/pxa2xx: Modify RX-Tresh instead of busy-loop for the remaining RX bytes.
        spi/pxa2xx: Add chipselect support for Sodaville
        spi/pxa2xx: Consider CE4100's FIFO depth
        spi/pxa2xx: Add CE4100 support
        ...
      021db8e2
    • Linus Torvalds's avatar
      Merge branch 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · 72eb6a79
      Linus Torvalds authored
      * 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (30 commits)
        gameport: use this_cpu_read instead of lookup
        x86: udelay: Use this_cpu_read to avoid address calculation
        x86: Use this_cpu_inc_return for nmi counter
        x86: Replace uses of current_cpu_data with this_cpu ops
        x86: Use this_cpu_ops to optimize code
        vmstat: User per cpu atomics to avoid interrupt disable / enable
        irq_work: Use per cpu atomics instead of regular atomics
        cpuops: Use cmpxchg for xchg to avoid lock semantics
        x86: this_cpu_cmpxchg and this_cpu_xchg operations
        percpu: Generic this_cpu_cmpxchg() and this_cpu_xchg support
        percpu,x86: relocate this_cpu_add_return() and friends
        connector: Use this_cpu operations
        xen: Use this_cpu_inc_return
        taskstats: Use this_cpu_ops
        random: Use this_cpu_inc_return
        fs: Use this_cpu_inc_return in buffer.c
        highmem: Use this_cpu_xx_return() operations
        vmstat: Use this_cpu_inc_return for vm statistics
        x86: Support for this_cpu_add, sub, dec, inc_return
        percpu: Generic support for this_cpu_add, sub, dec, inc_return
        ...
      
      Fixed up conflicts: in arch/x86/kernel/{apic/nmi.c, apic/x2apic_uv_x.c, process.c}
      as per Tejun.
      72eb6a79
    • Linus Torvalds's avatar
      Merge branch 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · 23d69b09
      Linus Torvalds authored
      * 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (33 commits)
        usb: don't use flush_scheduled_work()
        speedtch: don't abuse struct delayed_work
        media/video: don't use flush_scheduled_work()
        media/video: explicitly flush request_module work
        ioc4: use static work_struct for ioc4_load_modules()
        init: don't call flush_scheduled_work() from do_initcalls()
        s390: don't use flush_scheduled_work()
        rtc: don't use flush_scheduled_work()
        mmc: update workqueue usages
        mfd: update workqueue usages
        dvb: don't use flush_scheduled_work()
        leds-wm8350: don't use flush_scheduled_work()
        mISDN: don't use flush_scheduled_work()
        macintosh/ams: don't use flush_scheduled_work()
        vmwgfx: don't use flush_scheduled_work()
        tpm: don't use flush_scheduled_work()
        sonypi: don't use flush_scheduled_work()
        hvsi: don't use flush_scheduled_work()
        xen: don't use flush_scheduled_work()
        gdrom: don't use flush_scheduled_work()
        ...
      
      Fixed up trivial conflict in drivers/media/video/bt8xx/bttv-input.c
      as per Tejun.
      23d69b09
  3. 07 Jan, 2011 35 commits