workqueue: deprecate WQ_NON_REENTRANT

WQ_NON_REENTRANT is now spurious.  Make alloc_workqueue() trigger
WARN_ON() if the flag is specified and drop it from all in-kernel
users.

If you're cc'd and wondering what's going on: Now all workqueues are
non-reentrant, so there's no reason to use WQ_NON_REENTRANT.

Some of the conversions in this patch aren't trivial.

* WQ_UNBOUND | WQ_NON_REENTRANT workqueues w/ max_active == 1 are
  converted to alloc_ordered_workqueue().

* NFC was using a lot of WQ_UNBOUND | WQ_NON_REENTRANT |
  WQ_MEM_RECLAIM workqueues w/ max_active == 1.  I converted them to
  alloc_ordered_workqueue() but can't understand why NFC would need
  the reclaim flag at all.  I added comments above all such
  occurrences.  If I'm missing something, please let me know;
  otherwise, please drop the flag.  Better, please try to use
  system_wq instead.

* drivers/staging/nvec doesn't seem to need its own workqueue.
  Converted to use system_wq and cancel work items on unload.  Plesae
  scream if it's wrong.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Stefan Richter <stefanr@s5r6.in-berlin.de>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Alasdair Kergon <agk@redhat.com>
Cc: Lauro Ramos Venancio <lauro.venancio@openbossa.org>
Cc: Aloisio Almeida Jr <aloisio.almeida@openbossa.org>
Cc: Samuel Ortiz <sameo@linux.intel.com>
Cc: Julian Andres Klode <jak@jak-linux.org>
Cc: Marc Dietrich <marvin24@gmx.de>
Cc: Rob Clark <rob@ti.com>
Cc: Christine Caulfield <ccaulfie@redhat.com>
Cc: Steven Whitehouse <swhiteho@redhat.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Sage Weil <sage@inktank.com>
21 files changed