]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge branch 'linus' into sched/core, to pick up fixes
authorIngo Molnar <mingo@kernel.org>
Sat, 24 Jun 2017 06:57:20 +0000 (08:57 +0200)
committerIngo Molnar <mingo@kernel.org>
Sat, 24 Jun 2017 06:57:20 +0000 (08:57 +0200)
Signed-off-by: Ingo Molnar <mingo@kernel.org>
1  2 
block/blk-mq.c
fs/dax.c
sound/core/pcm_lib.c

diff --combined block/blk-mq.c
index 121aa1dbb19215ba773f4704655962bdc601dfd1,958cedaff8b829ceb4c724dbf1c6f6d30d883aeb..07b0a03c46e6ac0b901d38c57529b953c325b6d0
@@@ -926,14 -926,14 +926,14 @@@ static bool reorder_tags_to_front(struc
        return first != NULL;
  }
  
 -static int blk_mq_dispatch_wake(wait_queue_t *wait, unsigned mode, int flags,
 +static int blk_mq_dispatch_wake(wait_queue_entry_t *wait, unsigned mode, int flags,
                                void *key)
  {
        struct blk_mq_hw_ctx *hctx;
  
        hctx = container_of(wait, struct blk_mq_hw_ctx, dispatch_wait);
  
 -      list_del(&wait->task_list);
 +      list_del(&wait->entry);
        clear_bit_unlock(BLK_MQ_S_TAG_WAITING, &hctx->state);
        blk_mq_run_hw_queue(hctx, true);
        return 1;
@@@ -2103,20 -2103,30 +2103,30 @@@ static void blk_mq_map_swqueue(struct r
        }
  }
  
+ /*
+  * Caller needs to ensure that we're either frozen/quiesced, or that
+  * the queue isn't live yet.
+  */
  static void queue_set_hctx_shared(struct request_queue *q, bool shared)
  {
        struct blk_mq_hw_ctx *hctx;
        int i;
  
        queue_for_each_hw_ctx(q, hctx, i) {
-               if (shared)
+               if (shared) {
+                       if (test_bit(BLK_MQ_S_SCHED_RESTART, &hctx->state))
+                               atomic_inc(&q->shared_hctx_restart);
                        hctx->flags |= BLK_MQ_F_TAG_SHARED;
-               else
+               } else {
+                       if (test_bit(BLK_MQ_S_SCHED_RESTART, &hctx->state))
+                               atomic_dec(&q->shared_hctx_restart);
                        hctx->flags &= ~BLK_MQ_F_TAG_SHARED;
+               }
        }
  }
  
- static void blk_mq_update_tag_set_depth(struct blk_mq_tag_set *set, bool shared)
+ static void blk_mq_update_tag_set_depth(struct blk_mq_tag_set *set,
+                                       bool shared)
  {
        struct request_queue *q;
  
diff --combined fs/dax.c
index 323ea481d4a8c84442c4848c2a26d4a795c9dc9f,9187f3b07f3e7f7b8546724d83dd06f4d16e7d8b..33d05aa02aadbb85b75304d2a7b9040d526e1019
+++ b/fs/dax.c
@@@ -84,7 -84,7 +84,7 @@@ struct exceptional_entry_key 
  };
  
  struct wait_exceptional_entry_queue {
 -      wait_queue_t wait;
 +      wait_queue_entry_t wait;
        struct exceptional_entry_key key;
  };
  
@@@ -108,7 -108,7 +108,7 @@@ static wait_queue_head_t *dax_entry_wai
        return wait_table + hash;
  }
  
 -static int wake_exceptional_entry_func(wait_queue_t *wait, unsigned int mode,
 +static int wake_exceptional_entry_func(wait_queue_entry_t *wait, unsigned int mode,
                                       int sync, void *keyp)
  {
        struct exceptional_entry_key *key = keyp;
@@@ -859,6 -859,7 +859,7 @@@ int dax_writeback_mapping_range(struct 
                        if (ret < 0)
                                goto out;
                }
+               start_index = indices[pvec.nr - 1] + 1;
        }
  out:
        put_dax(dax_dev);
diff --combined sound/core/pcm_lib.c
index dd5254077ef71bd54b67d5b16fb0975cde7d19d9,009e6c98754e484e489ebcdde361e200ee0d6205..8771760670724337e366b61fc38ee08187a67ae6
@@@ -1904,7 -1904,7 +1904,7 @@@ static int wait_for_avail(struct snd_pc
  {
        struct snd_pcm_runtime *runtime = substream->runtime;
        int is_playback = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
 -      wait_queue_t wait;
 +      wait_queue_entry_t wait;
        int err = 0;
        snd_pcm_uframes_t avail = 0;
        long wait_time, tout;
@@@ -2492,7 -2492,7 +2492,7 @@@ static int pcm_chmap_ctl_get(struct snd
        struct snd_pcm_substream *substream;
        const struct snd_pcm_chmap_elem *map;
  
-       if (snd_BUG_ON(!info->chmap))
+       if (!info->chmap)
                return -EINVAL;
        substream = snd_pcm_chmap_substream(info, idx);
        if (!substream)
@@@ -2524,7 -2524,7 +2524,7 @@@ static int pcm_chmap_ctl_tlv(struct snd
        unsigned int __user *dst;
        int c, count = 0;
  
-       if (snd_BUG_ON(!info->chmap))
+       if (!info->chmap)
                return -EINVAL;
        if (size < 8)
                return -ENOMEM;