1. 25 Jul, 2017 1 commit
    • Tejun Heo's avatar
      workqueue: implicit ordered attribute should be overridable · 0a94efb5
      Tejun Heo authored
      5c0338c6 ("workqueue: restore WQ_UNBOUND/max_active==1 to be
      ordered") automatically enabled ordered attribute for unbound
      workqueues w/ max_active == 1.  Because ordered workqueues reject
      max_active and some attribute changes, this implicit ordered mode
      broke cases where the user creates an unbound workqueue w/ max_active
      == 1 and later explicitly changes the related attributes.
      
      This patch distinguishes explicit and implicit ordered setting and
      overrides from attribute changes if implict.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Fixes: 5c0338c6 ("workqueue: restore WQ_UNBOUND/max_active==1 to be ordered")
      0a94efb5
  2. 19 Jul, 2017 1 commit
    • Tejun Heo's avatar
      workqueue: restore WQ_UNBOUND/max_active==1 to be ordered · 5c0338c6
      Tejun Heo authored
      The combination of WQ_UNBOUND and max_active == 1 used to imply
      ordered execution.  After NUMA affinity 4c16bd32 ("workqueue:
      implement NUMA affinity for unbound workqueues"), this is no longer
      true due to per-node worker pools.
      
      While the right way to create an ordered workqueue is
      alloc_ordered_workqueue(), the documentation has been misleading for a
      long time and people do use WQ_UNBOUND and max_active == 1 for ordered
      workqueues which can lead to subtle bugs which are very difficult to
      trigger.
      
      It's unlikely that we'd see noticeable performance impact by enforcing
      ordering on WQ_UNBOUND / max_active == 1 workqueues.  Let's
      automatically set __WQ_ORDERED for those workqueues.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-by: default avatarChristoph Hellwig <hch@infradead.org>
      Reported-by: default avatarAlexei Potashnik <alexei@purestorage.com>
      Fixes: 4c16bd32 ("workqueue: implement NUMA affinity for unbound workqueues")
      Cc: stable@vger.kernel.org # v3.10+
      5c0338c6
  3. 18 Jul, 2017 22 commits
  4. 17 Jul, 2017 15 commits
  5. 16 Jul, 2017 1 commit
    • Geert Uytterhoeven's avatar
      h8300: Add missing closing parenthesis in flat_get_addr_from_rp() · 87b2c3fc
      Geert Uytterhoeven authored
          In file included from include/linux/flat.h:13:0,
                           from fs/binfmt_flat.c:36:
          arch/h8300/include/asm/flat.h: In function 'flat_get_addr_from_rp':
          arch/h8300/include/asm/flat.h:28:3: error: expected ')' before 'val'
             val &= 0x00ffffff;
             ^
          arch/h8300/include/asm/flat.h:31:1: error: expected expression before '}' token
           }
           ^
          In file included from include/linux/flat.h:13:0,
                           from fs/binfmt_flat.c:36:
          arch/h8300/include/asm/flat.h:26:6: warning: unused variable 'val' [-Wunused-variable]
            u32 val = get_unaligned((__force u32 *)rp);
                ^
          In file included from include/linux/flat.h:13:0,
                           from fs/binfmt_flat.c:36:
          arch/h8300/include/asm/flat.h:31:1: warning: no return statement in function returning non-void [-Wreturn-type]
           }
           ^
      Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
      Fixes: 468138d7 ("binfmt_flat: flat_{get,put}_addr_from_rp() should be able to fail")
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      87b2c3fc