Merge tag 'v4.19-rc6' into for-4.20/block
authorJens Axboe <axboe@kernel.dk>
Mon, 1 Oct 2018 14:58:57 +0000 (08:58 -0600)
committerJens Axboe <axboe@kernel.dk>
Mon, 1 Oct 2018 14:58:57 +0000 (08:58 -0600)
Merge -rc6 in, for two reasons:

1) Resolve a trivial conflict in the blk-mq-tag.c documentation
2) A few important regression fixes went into upstream directly, so
   they aren't in the 4.20 branch.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
* tag 'v4.19-rc6': (780 commits)
  Linux 4.19-rc6
  MAINTAINERS: fix reference to moved drivers/{misc => auxdisplay}/panel.c
  cpufreq: qcom-kryo: Fix section annotations
  perf/core: Add sanity check to deal with pinned event failure
  xen/blkfront: correct purging of persistent grants
  Revert "xen/blkfront: When purging persistent grants, keep them in the buffer"
  selftests/powerpc: Fix Makefiles for headers_install change
  blk-mq: I/O and timer unplugs are inverted in blktrace
  dax: Fix deadlock in dax_lock_mapping_entry()
  x86/boot: Fix kexec booting failure in the SEV bit detection code
  bcache: add separate workqueue for journal_write to avoid deadlock
  drm/amd/display: Fix Edid emulation for linux
  drm/amd/display: Fix Vega10 lightup on S3 resume
  drm/amdgpu: Fix vce work queue was not cancelled when suspend
  Revert "drm/panel: Add device_link from panel device to DRM device"
  xen/blkfront: When purging persistent grants, keep them in the buffer
  clocksource/drivers/timer-atmel-pit: Properly handle error cases
  block: fix deadline elevator drain for zoned block devices
  ACPI / hotplug / PCI: Don't scan for non-hotplug bridges if slot is not bridge
  drm/syncobj: Don't leak fences when WAIT_FOR_SUBMIT is set
  ...

Signed-off-by: Jens Axboe <axboe@kernel.dk>
14 files changed:
1  2 
arch/x86/xen/pmu.c
block/bio.c
block/blk-cgroup.c
block/blk-core.c
block/blk-mq-tag.c
block/blk-mq.c
block/elevator.c
block/genhd.c
drivers/block/floppy.c
drivers/block/xen-blkfront.c
drivers/nvme/host/multipath.c
drivers/scsi/sd.c
include/linux/blkdev.h
include/linux/genhd.h

Simple merge
diff --cc block/bio.c
Simple merge
Simple merge
Simple merge
index 40d1667bceac02c27746125832dfda070c33a75f,41317c50a44628e9ef4930e9f17ad6d8297c9190..cfda95b85d3475570dfeb9468732b6d587584610
@@@ -378,17 -321,12 +378,14 @@@ void blk_mq_queue_tag_busy_iter(struct 
        int i;
  
        /*
 -       * __blk_mq_update_nr_hw_queues will update the nr_hw_queues and
 -       * queue_hw_ctx after freeze the queue, so we use q_usage_counter
 -       * to avoid race with it.
 +       * __blk_mq_update_nr_hw_queues() updates nr_hw_queues and queue_hw_ctx
 +       * while the queue is frozen. So we can use q_usage_counter to avoid
 +       * racing with it. __blk_mq_update_nr_hw_queues() uses
 +       * synchronize_rcu() to ensure this function left the critical section
 +       * below.
         */
-       rcu_read_lock();
-       if (percpu_ref_is_zero(&q->q_usage_counter)) {
-               rcu_read_unlock();
+       if (!percpu_ref_tryget(&q->q_usage_counter))
                return;
-       }
  
        queue_for_each_hw_ctx(q, hctx, i) {
                struct blk_mq_tags *tags = hctx->tags;
diff --cc block/blk-mq.c
Simple merge
Simple merge
diff --cc block/genhd.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge