1. 15 Dec, 2016 8 commits
    • zhong jiang's avatar
      kexec: add cond_resched into kimage_alloc_crash_control_pages · 8e53c073
      zhong jiang authored
      A soft lookup will occur when I run trinity in syscall kexec_load.  the
      corresponding stack information is as follows.
      
        BUG: soft lockup - CPU#6 stuck for 22s! [trinity-c6:13859]
        Kernel panic - not syncing: softlockup: hung tasks
        CPU: 6 PID: 13859 Comm: trinity-c6 Tainted: G           O L ----V-------   3.10.0-327.28.3.35.zhongjiang.x86_64 #1
        Hardware name: Huawei Technologies Co., Ltd. Tecal BH622 V2/BC01SRSA0, BIOS RMIBV386 06/30/2014
        Call Trace:
         <IRQ>  dump_stack+0x19/0x1b
         panic+0xd8/0x214
         watchdog_timer_fn+0x1cc/0x1e0
         __hrtimer_run_queues+0xd2/0x260
         hrtimer_interrupt+0xb0/0x1e0
         ? call_softirq+0x1c/0x30
         local_apic_timer_interrupt+0x37/0x60
         smp_apic_timer_interrupt+0x3f/0x60
         apic_timer_interrupt+0x6d/0x80
         <EOI>  ? kimage_alloc_control_pages+0x80/0x270
         ? kmem_cache_alloc_trace+0x1ce/0x1f0
         ? do_kimage_alloc_init+0x1f/0x90
         kimage_alloc_init+0x12a/0x180
         SyS_kexec_load+0x20a/0x260
         system_call_fastpath+0x16/0x1b
      
      the first time allocation of control pages may take too much time
      because crash_res.end can be set to a higher value.  we need to add
      cond_resched to avoid the issue.
      
      The patch have been tested and above issue is not appear.
      
      Link: http://lkml.kernel.org/r/1481164674-42775-1-git-send-email-zhongjiang@huawei.comSigned-off-by: default avatarzhong jiang <zhongjiang@huawei.com>
      Acked-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Xunlei Pang <xpang@redhat.com>
      Cc: Dave Young <dyoung@redhat.com>
      Cc: Vivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8e53c073
    • Baoquan He's avatar
      kexec: export the value of phys_base instead of symbol address · 401721ec
      Baoquan He authored
      Currently in x86_64, the symbol address of phys_base is exported to
      vmcoreinfo.  Dave Anderson complained this is really useless for his
      Crash implementation.  Because in user-space utility Crash and
      Makedumpfile which exported vmcore information is mainly used for, value
      of phys_base is needed to covert virtual address of exported kernel
      symbol to physical address.  Especially init_level4_pgt, if we want to
      access and go over the page table to look up a PA corresponding to VA,
      firstly we need calculate
      
        page_dir = SYMBOL(init_level4_pgt) - __START_KERNEL_map + phys_base;
      
      Now in Crash and Makedumpfile, we have to analyze the vmcore elf program
      header to get value of phys_base.  As Dave said, it would be preferable
      if it were readily availabl in vmcoreinfo rather than depending upon the
      PT_LOAD semantics.
      
      Hence in this patch change to export the value of phys_base instead of
      its virtual address.
      
      And people also complained that KERNEL_IMAGE_SIZE exporting is x86_64
      only, should be moved into arch dependent function
      arch_crash_save_vmcoreinfo.  Do the moving in this patch.
      
      Link: http://lkml.kernel.org/r/1478568596-30060-2-git-send-email-bhe@redhat.comSigned-off-by: default avatarBaoquan He <bhe@redhat.com>
      Cc: Thomas Garnier <thgarnie@google.com>
      Cc: Baoquan He <bhe@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H . Peter Anvin" <hpa@zytor.com>
      Cc: Eric Biederman <ebiederm@xmission.com>
      Cc: Xunlei Pang <xlpang@redhat.com>
      Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Eugene Surovegin <surovegin@google.com>
      Cc: Dave Young <dyoung@redhat.com>
      Cc: AKASHI Takahiro <takahiro.akashi@linaro.org>
      Cc: Atsushi Kumagai <ats-kumagai@wm.jp.nec.com>
      Cc: Dave Anderson <anderson@redhat.com>
      Cc: Pratyush Anand <panand@redhat.com>
      Cc: Vivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      401721ec
    • Baoquan He's avatar
      Revert "kdump, vmcoreinfo: report memory sections virtual addresses" · 69f58384
      Baoquan He authored
      This reverts commit 0549a3c0 ("kdump, vmcoreinfo: report memory
      sections virtual addresses").
      
      Commit 0549a3c0 tells the userspace utility makedumpfile the
      randomized base address of these memmory sections when mm kaslr is
      enabled.  However the following patch "kexec: export the value of
      phys_base instead of symbol address" makes makedumpfile not need these
      addresses any more.
      
      Besides we should use VMCOREINFO_NUMBER to export the value of the
      variable so that we can use the existing number_table mechanism of
      Makedumpfile to fetch it.  So revert it now.  If needed we can add it
      later.
      
      http://lists.infradead.org/pipermail/kexec/2016-October/017540.html
      Link: http://lkml.kernel.org/r/1478568596-30060-1-git-send-email-bhe@redhat.comSigned-off-by: default avatarBaoquan He <bhe@redhat.com>
      Cc: Thomas Garnier <thgarnie@google.com>
      Cc: Baoquan He <bhe@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H . Peter Anvin" <hpa@zytor.com>
      Cc: Eric Biederman <ebiederm@xmission.com>
      Cc: Xunlei Pang <xlpang@redhat.com>
      Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Eugene Surovegin <surovegin@google.com>
      Cc: Dave Young <dyoung@redhat.com>
      Cc: AKASHI Takahiro <takahiro.akashi@linaro.org>
      Cc: Atsushi Kumagai <ats-kumagai@wm.jp.nec.com>
      Cc: Dave Anderson <anderson@redhat.com>
      Cc: Pratyush Anand <panand@redhat.com>
      Cc: Vivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      69f58384
    • Alexey Dobriyan's avatar
      coredump: clarify "unsafe core_pattern" warning · 760c6a91
      Alexey Dobriyan authored
      I was amused to find "unsafe core_pattern" warning having these lines in
      /etc/sysctl.conf:
      
      	fs.suid_dumpable=2
      	kernel.core_pattern=/core/core-%e-%p-%E
      	kernel.core_uses_pid=0
      
      Turns out kernel is formally right.  Default core_pattern is just "core",
      which doesn't qualify for secure path while setting suid.dumpable.
      
      Hint admins about solution, clarify sysctl names, delete unnecessary '\'
      characters (string literals are concatenated regardless) and reformat for
      easier grepping.
      
      Link: http://lkml.kernel.org/r/20161029152124.GA1258@avx2Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Acked-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      760c6a91
    • Waiman Long's avatar
      signals: avoid unnecessary taking of sighand->siglock · c7be96af
      Waiman Long authored
      When running certain database workload on a high-end system with many
      CPUs, it was found that spinlock contention in the sigprocmask syscalls
      became a significant portion of the overall CPU cycles as shown below.
      
        9.30%  9.30%  905387  dataserver  /proc/kcore 0x7fff8163f4d2
        [k] _raw_spin_lock_irq
                  |
                  ---_raw_spin_lock_irq
                     |
                     |--99.34%-- __set_current_blocked
                     |          sigprocmask
                     |          sys_rt_sigprocmask
                     |          system_call_fastpath
                     |          |
                     |          |--50.63%-- __swapcontext
                     |          |          |
                     |          |          |--99.91%-- upsleepgeneric
                     |          |
                     |          |--49.36%-- __setcontext
                     |          |          ktskRun
      
      Looking further into the swapcontext function in glibc, it was found that
      the function always call sigprocmask() without checking if there are
      changes in the signal mask.
      
      A check was added to the __set_current_blocked() function to avoid taking
      the sighand->siglock spinlock if there is no change in the signal mask.
      This will prevent unneeded spinlock contention when many threads are
      trying to call sigprocmask().
      
      With this patch applied, the spinlock contention in sigprocmask() was
      gone.
      
      Link: http://lkml.kernel.org/r/1474979209-11867-1-git-send-email-Waiman.Long@hpe.comSigned-off-by: default avatarWaiman Long <Waiman.Long@hpe.com>
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Stas Sergeev <stsp@list.ru>
      Cc: Scott J Norton <scott.norton@hpe.com>
      Cc: Douglas Hatch <doug.hatch@hpe.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c7be96af
    • Michal Hocko's avatar
      mm, compaction: allow compaction for GFP_NOFS requests · 73e64c51
      Michal Hocko authored
      compaction has been disabled for GFP_NOFS and GFP_NOIO requests since
      the direct compaction was introduced by commit 56de7263 ("mm:
      compaction: direct compact when a high-order allocation fails").  The
      main reason is that the migration of page cache pages might recurse back
      to fs/io layer and we could potentially deadlock.  This is overly
      conservative because all the anonymous memory is migrateable in the
      GFP_NOFS context just fine.  This might be a large portion of the memory
      in many/most workkloads.
      
      Remove the GFP_NOFS restriction and make sure that we skip all fs pages
      (those with a mapping) while isolating pages to be migrated.  We cannot
      consider clean fs pages because they might need a metadata update so
      only isolate pages without any mapping for nofs requests.
      
      The effect of this patch will be probably very limited in many/most
      workloads because higher order GFP_NOFS requests are quite rare,
      although different configurations might lead to very different results.
      David Chinner has mentioned a heavy metadata workload with 64kB block
      which to quote him:
      
      : Unfortunately, there was an era of cargo cult configuration tweaks in the
      : Ceph community that has resulted in a large number of production machines
      : with XFS filesystems configured this way.  And a lot of them store large
      : numbers of small files and run under significant sustained memory
      : pressure.
      :
      : I slowly working towards getting rid of these high order allocations and
      : replacing them with the equivalent number of single page allocations, but
      : I haven't got that (complex) change working yet.
      
      We can do the following to simulate that workload:
      $ mkfs.xfs -f -n size=64k <dev>
      $ mount <dev> /mnt/scratch
      $ time ./fs_mark  -D  10000  -S0  -n  100000  -s  0  -L  32 \
              -d  /mnt/scratch/0  -d  /mnt/scratch/1 \
              -d  /mnt/scratch/2  -d  /mnt/scratch/3 \
              -d  /mnt/scratch/4  -d  /mnt/scratch/5 \
              -d  /mnt/scratch/6  -d  /mnt/scratch/7 \
              -d  /mnt/scratch/8  -d  /mnt/scratch/9 \
              -d  /mnt/scratch/10  -d  /mnt/scratch/11 \
              -d  /mnt/scratch/12  -d  /mnt/scratch/13 \
              -d  /mnt/scratch/14  -d  /mnt/scratch/15
      
      and indeed is hammers the system with many high order GFP_NOFS requests as
      per a simle tracepoint during the load:
      $ echo '!(gfp_flags & 0x80) && (gfp_flags &0x400000)' > $TRACE_MNT/events/kmem/mm_page_alloc/filter
      I am getting
      5287609 order=0
           37 order=1
      1594905 order=2
      3048439 order=3
      6699207 order=4
        66645 order=5
      
      My testing was done in a kvm guest so performance numbers should be
      taken with a grain of salt but there seems to be a difference when the
      patch is applied:
      
      * Original kernel
      FSUse%        Count         Size    Files/sec     App Overhead
           1      1600000            0       4300.1         20745838
           3      3200000            0       4239.9         23849857
           5      4800000            0       4243.4         25939543
           6      6400000            0       4248.4         19514050
           8      8000000            0       4262.1         20796169
           9      9600000            0       4257.6         21288675
          11     11200000            0       4259.7         19375120
          13     12800000            0       4220.7         22734141
          14     14400000            0       4238.5         31936458
          16     16000000            0       4231.5         23409901
          18     17600000            0       4045.3         23577700
          19     19200000            0       2783.4         58299526
          21     20800000            0       2678.2         40616302
          23     22400000            0       2693.5         83973996
      
      and xfs complaining about memory allocation not making progress
      [ 2304.372647] XFS: fs_mark(3289) possible memory allocation deadlock size 65624 in kmem_alloc (mode:0x2408240)
      [ 2304.443323] XFS: fs_mark(3285) possible memory allocation deadlock size 65728 in kmem_alloc (mode:0x2408240)
      [ 4796.772477] XFS: fs_mark(3424) possible memory allocation deadlock size 46936 in kmem_alloc (mode:0x2408240)
      [ 4796.775329] XFS: fs_mark(3423) possible memory allocation deadlock size 51416 in kmem_alloc (mode:0x2408240)
      [ 4797.388808] XFS: fs_mark(3424) possible memory allocation deadlock size 65728 in kmem_alloc (mode:0x2408240)
      
      * Patched kernel
      FSUse%        Count         Size    Files/sec     App Overhead
           1      1600000            0       4289.1         19243934
           3      3200000            0       4241.6         32828865
           5      4800000            0       4248.7         32884693
           6      6400000            0       4314.4         19608921
           8      8000000            0       4269.9         24953292
           9      9600000            0       4270.7         33235572
          11     11200000            0       4346.4         40817101
          13     12800000            0       4285.3         29972397
          14     14400000            0       4297.2         20539765
          16     16000000            0       4219.6         18596767
          18     17600000            0       4273.8         49611187
          19     19200000            0       4300.4         27944451
          21     20800000            0       4270.6         22324585
          22     22400000            0       4317.6         22650382
          24     24000000            0       4065.2         22297964
      
      So the dropdown at Count 19200000 didn't happen and there was only a
      single warning about allocation not making progress
      [ 3063.815003] XFS: fs_mark(3272) possible memory allocation deadlock size 65624 in kmem_alloc (mode:0x2408240)
      
      This suggests that the patch has helped even though there is not all that
      much of anonymous memory as the workload mostly generates fs metadata.  I
      assume the success rate would be higher with more anonymous memory which
      should be the case in many workloads.
      
      [akpm@linux-foundation.org: fix comment]
      Link: http://lkml.kernel.org/r/20161012114721.31853-1-mhocko@kernel.orgSigned-off-by: default avatarMichal Hocko <mhocko@suse.com>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Cc: Mel Gorman <mgorman@techsingularity.net>
      Cc: Joonsoo Kim <js1304@gmail.com>
      Cc: Dave Chinner <david@fromorbit.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      73e64c51
    • Konstantin Khlebnikov's avatar
      kernel/watchdog: use nmi registers snapshot in hardlockup handler · 4d1f0fb0
      Konstantin Khlebnikov authored
      NMI handler doesn't call set_irq_regs(), it's set only by normal IRQ.
      Thus get_irq_regs() returns NULL or stale registers snapshot with IP/SP
      pointing to the code interrupted by IRQ which was interrupted by NMI.
      NULL isn't a problem: in this case watchdog calls dump_stack() and
      prints full stack trace including NMI.  But if we're stuck in IRQ
      handler then NMI watchlog will print stack trace without IRQ part at
      all.
      
      This patch uses registers snapshot passed into NMI handler as arguments:
      these registers point exactly to the instruction interrupted by NMI.
      
      Fixes: 55537871 ("kernel/watchdog.c: perform all-CPU backtrace in case of hard lockup")
      Link: http://lkml.kernel.org/r/146771764784.86724.6006627197118544150.stgit@buzzSigned-off-by: default avatarKonstantin Khlebnikov <khlebnikov@yandex-team.ru>
      Cc: Jiri Kosina <jkosina@suse.cz>
      Cc: Ulrich Obergfell <uobergfe@redhat.com>
      Cc: Aaron Tomlin <atomlin@redhat.com>
      Cc: <stable@vger.kernel.org>	[4.4+]
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4d1f0fb0
    • Petr Mladek's avatar
      btrfs: better handle btrfs_printk() defaults · 40f7828b
      Petr Mladek authored
      Commit 262c5e86 ("printk/btrfs: handle more message headers")
      triggers:
      
          warning: `ratelimit' may be used uninitialized in this function
      
      with gcc (4.1.2) and probably many other versions.  The code actually is
      correct but a bit twisted.  Let's make it more straightforward and set
      the default values at the beginning.
      
      Link: http://lkml.kernel.org/r/20161213135246.GQ3506@pathway.suse.czSigned-off-by: default avatarPetr Mladek <pmladek@suse.com>
      Reported-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Reviewed-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Acked-by: default avatarDavid Sterba <dsterba@suse.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      40f7828b
  2. 14 Dec, 2016 13 commits
    • Linus Torvalds's avatar
      Merge tag 'dm-4.10-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · 775a2e29
      Linus Torvalds authored
      Pull device mapper updates from Mike Snitzer:
      
       - various fixes and improvements to request-based DM and DM multipath
      
       - some locking improvements in DM bufio
      
       - add Kconfig option to disable the DM block manager's extra locking
         which mainly serves as a developer tool
      
       - a few bug fixes to DM's persistent-data
      
       - a couple changes to prepare for multipage biovec support in the block
         layer
      
       - various improvements and cleanups in the DM core, DM cache, DM raid
         and DM crypt
      
       - add ability to have DM crypt use keys from the kernel key retention
         service
      
       - add a new "error_writes" feature to the DM flakey target, reads are
         left unchanged in this mode
      
      * tag 'dm-4.10-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (40 commits)
        dm flakey: introduce "error_writes" feature
        dm cache policy smq: use hash_32() instead of hash_32_generic()
        dm crypt: reject key strings containing whitespace chars
        dm space map: always set ev if sm_ll_mutate() succeeds
        dm space map metadata: skip useless memcpy in metadata_ll_init_index()
        dm space map metadata: fix 'struct sm_metadata' leak on failed create
        Documentation: dm raid: define data_offset status field
        dm raid: fix discard support regression
        dm raid: don't allow "write behind" with raid4/5/6
        dm mpath: use hw_handler_params if attached hw_handler is same as requested
        dm crypt: add ability to use keys from the kernel key retention service
        dm array: remove a dead assignment in populate_ablock_with_values()
        dm ioctl: use offsetof() instead of open-coding it
        dm rq: simplify use_blk_mq initialization
        dm: use blk_set_queue_dying() in __dm_destroy()
        dm bufio: drop the lock when doing GFP_NOIO allocation
        dm bufio: don't take the lock in dm_bufio_shrink_count
        dm bufio: avoid sleeping while holding the dm_bufio lock
        dm table: simplify dm_table_determine_type()
        dm table: an 'all_blk_mq' table must be loaded for a blk-mq DM device
        ...
      775a2e29
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md · 2a4c32ed
      Linus Torvalds authored
      Pull MD updates from Shaohua Li:
      
       - a raid5 writeback cache feature.
      
         The goal is to aggregate writes to make full stripe write and reduce
         read-modify-write. It's helpful for workload which does sequential
         write and follows fsync for example. This feature is experimental and
         off by default right now.
      
       - FAILFAST support.
      
         This fails IOs to broken raid disks quickly, so can improve latency.
         It's mainly for DASD storage, but some patches help normal raid array
         too.
      
       - support bad block for raid array with external metadata
      
       - AVX2 instruction support for raid6 parity calculation
      
       - normalize MD info output
      
       - add missing blktrace
      
       - other bug fixes
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md: (66 commits)
        md: separate flags for superblock changes
        md: MD_RECOVERY_NEEDED is set for mddev->recovery
        md: takeover should clear unrelated bits
        md/r5cache: after recovery, increase journal seq by 10000
        md/raid5-cache: fix crc in rewrite_data_only_stripes()
        md/raid5-cache: no recovery is required when create super-block
        md: fix refcount problem on mddev when stopping array.
        md/r5cache: do r5c_update_log_state after log recovery
        md/raid5-cache: adjust the write position of the empty block if no data blocks
        md/r5cache: run_no_space_stripes() when R5C_LOG_CRITICAL == 0
        md/raid5: limit request size according to implementation limits
        md/raid5-cache: do not need to set STRIPE_PREREAD_ACTIVE repeatedly
        md/raid5-cache: remove the unnecessary next_cp_seq field from the r5l_log
        md/raid5-cache: release the stripe_head at the appropriate location
        md/raid5-cache: use ring add to prevent overflow
        md/raid5-cache: remove unnecessary function parameters
        raid5-cache: don't set STRIPE_R5C_PARTIAL_STRIPE flag while load stripe into cache
        raid5-cache: add another check conditon before replaying one stripe
        md/r5cache: enable IRQs on error path
        md/r5cache: handle alloc_page failure
        ...
      2a4c32ed
    • Linus Torvalds's avatar
      Merge tag 'mmc-v4.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · b9f98bd4
      Linus Torvalds authored
      Pull another MMC update from Ulf Hansson:
       "Here's a second pull request for MMC for v4.10.
      
        As a matter of fact it's only one change that moves some mmc files
        around. I thought it was a good idea to get this into v4.10, as it
        gives us a nice and fresh base for v4.11. Summary:
      
        MMC core:
      
         - Move files from the card directory to the core directory to enable
           future clean-ups of the generic mmc header files and interfaces"
      
      * tag 'mmc-v4.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: block: Move files to core
      b9f98bd4
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · a829a844
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "This update includes the usual round of major driver updates (ncr5380,
        lpfc, hisi_sas, megaraid_sas, ufs, ibmvscsis, mpt3sas).
      
        There's also an assortment of minor fixes, mostly in error legs or
        other not very user visible stuff. The major change is the
        pci_alloc_irq_vectors replacement for the old pci_msix_.. calls; this
        effectively makes IRQ mapping generic for the drivers and allows
        blk_mq to use the information"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (256 commits)
        scsi: qla4xxx: switch to pci_alloc_irq_vectors
        scsi: hisi_sas: support deferred probe for v2 hw
        scsi: megaraid_sas: switch to pci_alloc_irq_vectors
        scsi: scsi_devinfo: remove synchronous ALUA for NETAPP devices
        scsi: be2iscsi: set errno on error path
        scsi: be2iscsi: set errno on error path
        scsi: hpsa: fallback to use legacy REPORT PHYS command
        scsi: scsi_dh_alua: Fix RCU annotations
        scsi: hpsa: use %phN for short hex dumps
        scsi: hisi_sas: fix free'ing in probe and remove
        scsi: isci: switch to pci_alloc_irq_vectors
        scsi: ipr: Fix runaway IRQs when falling back from MSI to LSI
        scsi: dpt_i2o: double free on error path
        scsi: cxlflash: Migrate scsi command pointer to AFU command
        scsi: cxlflash: Migrate IOARRIN specific routines to function pointers
        scsi: cxlflash: Cleanup queuecommand()
        scsi: cxlflash: Cleanup send_tmf()
        scsi: cxlflash: Remove AFU command lock
        scsi: cxlflash: Wait for active AFU commands to timeout upon tear down
        scsi: cxlflash: Remove private command pool
        ...
      a829a844
    • Linus Torvalds's avatar
      Merge tag 'configfs-for-4.10' of git://git.infradead.org/users/hch/configfs · 84b60791
      Linus Torvalds authored
      Pull configfs update from Christoph Hellwig:
       "Just one simple change from Andrzej to drop the pointless return value
        from the ->drop_link method"
      
      * tag 'configfs-for-4.10' of git://git.infradead.org/users/hch/configfs:
        fs: configfs: don't return anything from drop_link
      84b60791
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 5084fdf0
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "This merge request includes the dax-4.0-iomap-pmd branch which is
        needed for both ext4 and xfs dax changes to use iomap for DAX. It also
        includes the fscrypt branch which is needed for ubifs encryption work
        as well as ext4 encryption and fscrypt cleanups.
      
        Lots of cleanups and bug fixes, especially making sure ext4 is robust
        against maliciously corrupted file systems --- especially maliciously
        corrupted xattr blocks and a maliciously corrupted superblock. Also
        fix ext4 support for 64k block sizes so it works well on ppcle. Fixed
        mbcache so we don't miss some common xattr blocks that can be merged"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (86 commits)
        dax: Fix sleep in atomic contex in grab_mapping_entry()
        fscrypt: Rename FS_WRITE_PATH_FL to FS_CTX_HAS_BOUNCE_BUFFER_FL
        fscrypt: Delay bounce page pool allocation until needed
        fscrypt: Cleanup page locking requirements for fscrypt_{decrypt,encrypt}_page()
        fscrypt: Cleanup fscrypt_{decrypt,encrypt}_page()
        fscrypt: Never allocate fscrypt_ctx on in-place encryption
        fscrypt: Use correct index in decrypt path.
        fscrypt: move the policy flags and encryption mode definitions to uapi header
        fscrypt: move non-public structures and constants to fscrypt_private.h
        fscrypt: unexport fscrypt_initialize()
        fscrypt: rename get_crypt_info() to fscrypt_get_crypt_info()
        fscrypto: move ioctl processing more fully into common code
        fscrypto: remove unneeded Kconfig dependencies
        MAINTAINERS: fscrypto: recommend linux-fsdevel for fscrypto patches
        ext4: do not perform data journaling when data is encrypted
        ext4: return -ENOMEM instead of success
        ext4: reject inodes with negative size
        ext4: remove another test in ext4_alloc_file_blocks()
        Documentation: fix description of ext4's block_validity mount option
        ext4: fix checks for data=ordered and journal_async_commit options
        ...
      5084fdf0
    • Linus Torvalds's avatar
      Merge tag 'for-f2fs-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 09cb6464
      Linus Torvalds authored
      Pull f2fs updates from Jaegeuk Kim:
       "This patch series contains several performance tuning patches
        regarding to the IO submission flow, in addition to supporting new
        features such as a ZBC-base drive and multiple devices.
      
        It also includes some major bug fixes such as:
         - checkpoint version control
         - fdatasync-related roll-forward recovery routine
         - memory boundary or null-pointer access in corner cases
         - missing error cases
      
        It has various minor clean-up patches as well"
      
      * tag 'for-f2fs-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (66 commits)
        f2fs: fix a missing size change in f2fs_setattr
        f2fs: fix to access nullified flush_cmd_control pointer
        f2fs: free meta pages if sanity check for ckpt is failed
        f2fs: detect wrong layout
        f2fs: call sync_fs when f2fs is idle
        Revert "f2fs: use percpu_counter for # of dirty pages in inode"
        f2fs: return AOP_WRITEPAGE_ACTIVATE for writepage
        f2fs: do not activate auto_recovery for fallocated i_size
        f2fs: fix to determine start_cp_addr by sbi->cur_cp_pack
        f2fs: fix 32-bit build
        f2fs: set ->owner for debugfs status file's file_operations
        f2fs: fix incorrect free inode count in ->statfs
        f2fs: drop duplicate header timer.h
        f2fs: fix wrong AUTO_RECOVER condition
        f2fs: do not recover i_size if it's valid
        f2fs: fix fdatasync
        f2fs: fix to account total free nid correctly
        f2fs: fix an infinite loop when flush nodes in cp
        f2fs: don't wait writeback for datas during checkpoint
        f2fs: fix wrong written_valid_blocks counting
        ...
      09cb6464
    • Linus Torvalds's avatar
      Merge tag 'dlm-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · 19d37ce2
      Linus Torvalds authored
      Pull dlm fixes from David Teigland:
       "This set fixes error reporting for dlm sockets, removes the unbound
        property on the dlm callback workqueue to improve performance, and
        includes a couple trivial changes"
      
      * tag 'dlm-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        dlm: fix error return code in sctp_accept_from_sock()
        dlm: don't specify WQ_UNBOUND for the ast callback workqueue
        dlm: remove lock_sock to avoid scheduling while atomic
        dlm: don't save callbacks after accept
        dlm: audit and remove any unnecessary uses of module.h
        dlm: make genl_ops const
      19d37ce2
    • Linus Torvalds's avatar
      Merge tag 'jfs-4.10' of git://github.com/kleikamp/linux-shaggy · 3e5cecf2
      Linus Torvalds authored
      Pull jfs update from David Kleikamp:
       "The jfs piece of the current_time() series"
      
      * tag 'jfs-4.10' of git://github.com/kleikamp/linux-shaggy:
        fs: jfs: Replace CURRENT_TIME_SEC by current_time()
      3e5cecf2
    • Linus Torvalds's avatar
      Revert "nvme: add support for the Write Zeroes command" · cdb98c26
      Linus Torvalds authored
      This reverts commit 6d31e3ba.
      
      This causes bootup problems for me both on my laptop and my desktop.
      What they have in common is that they have NVMe disks with dm-crypt, but
      it's not the same controller, so it's not controller-specific.
      
      Jens does not see it on his machine (also NVMe), so it's presumably
      something that triggers just on bootup.  Possibly related to dm-crypt
      and the fact that I mark my luks volume with "allow-discards" in
      /etc/crypttab.
      
      It's 100% repeatable for me, which made it fairly straightforward to
      bisect the problem to this commit. Small mercies.
      
      So we don't know what the reason is yet, but the revert is needed to get
      things going again.
      Acked-by: default avatarJens Axboe <axboe@fb.com>
      Cc: Chaitanya Kulkarni <chaitanya.kulkarni@hgst.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cdb98c26
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · f4000cd9
      Linus Torvalds authored
      Pull arm64 updates from Catalin Marinas:
      
       - struct thread_info moved off-stack (also touching
         include/linux/thread_info.h and include/linux/restart_block.h)
      
       - cpus_have_cap() reworked to avoid __builtin_constant_p() for static
         key use (also touching drivers/irqchip/irq-gic-v3.c)
      
       - uprobes support (currently only for native 64-bit tasks)
      
       - Emulation of kernel Privileged Access Never (PAN) using TTBR0_EL1
         switching to a reserved page table
      
       - CPU capacity information passing via DT or sysfs (used by the
         scheduler)
      
       - support for systems without FP/SIMD (IOW, kernel avoids touching
         these registers; there is no soft-float ABI, nor kernel emulation for
         AArch64 FP/SIMD)
      
       - handling of hardware watchpoint with unaligned addresses, varied
         lengths and offsets from base
      
       - use of the page table contiguous hint for kernel mappings
      
       - hugetlb fixes for sizes involving the contiguous hint
      
       - remove unnecessary I-cache invalidation in flush_cache_range()
      
       - CNTHCTL_EL2 access fix for CPUs with VHE support (ARMv8.1)
      
       - boot-time checks for writable+executable kernel mappings
      
       - simplify asm/opcodes.h and avoid including the 32-bit ARM counterpart
         and make the arm64 kernel headers self-consistent (Xen headers patch
         merged separately)
      
       - Workaround for broken .inst support in certain binutils versions
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (60 commits)
        arm64: Disable PAN on uaccess_enable()
        arm64: Work around broken .inst when defective gas is detected
        arm64: Add detection code for broken .inst support in binutils
        arm64: Remove reference to asm/opcodes.h
        arm64: Get rid of asm/opcodes.h
        arm64: smp: Prevent raw_smp_processor_id() recursion
        arm64: head.S: Fix CNTHCTL_EL2 access on VHE system
        arm64: Remove I-cache invalidation from flush_cache_range()
        arm64: Enable HIBERNATION in defconfig
        arm64: Enable CONFIG_ARM64_SW_TTBR0_PAN
        arm64: xen: Enable user access before a privcmd hvc call
        arm64: Handle faults caused by inadvertent user access with PAN enabled
        arm64: Disable TTBR0_EL1 during normal kernel execution
        arm64: Introduce uaccess_{disable,enable} functionality based on TTBR0_EL1
        arm64: Factor out TTBR0_EL1 post-update workaround into a specific asm macro
        arm64: Factor out PAN enabling/disabling into separate uaccess_* macros
        arm64: Update the synchronous external abort fault description
        selftests: arm64: add test for unaligned/inexact watchpoint handling
        arm64: Allow hw watchpoint of length 3,5,6 and 7
        arm64: hw_breakpoint: Handle inexact watchpoint addresses
        ...
      f4000cd9
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 2ec4584e
      Linus Torvalds authored
      Pull s390 updates from Martin Schwidefsky:
       "The main bulk of the s390 patches for the 4.10 merge window:
      
         - Add support for the contiguous memory allocator.
      
         - The recovery for I/O errors in the dasd device driver is improved,
           the driver will now remove channel paths that are not working
           properly.
      
         - Additional fields are added to /proc/sysinfo, the extended
           partition name and the partition UUID.
      
         - New naming for PCI devices with system defined UIDs.
      
         - The last few remaining alloc_bootmem calls are converted to
           memblock.
      
         - The thread_info structure is stripped down and moved to the
           task_struct. The only field left in thread_info is the flags field.
      
         - Rework of the arch topology code to fix a fake numa issue.
      
         - Refactoring of the atomic primitives and add a new preempt_count
           implementation.
      
         - Clocksource steering for the STP sync check offsets.
      
         - The s390 specific headers are changed to make them usable with
           CLANG.
      
         - Bug fixes and cleanup"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (70 commits)
        s390/cpumf: Use configuration level indication for sampling data
        s390: provide memmove implementation
        s390: cleanup arch/s390/kernel Makefile
        s390: fix initrd corruptions with gcov/kcov instrumented kernels
        s390: exclude early C code from gcov profiling
        s390/dasd: channel path aware error recovery
        s390/dasd: extend dasd path handling
        s390: remove unused labels from entry.S
        s390/vmlogrdr: fix IUCV buffer allocation
        s390/crypto: unlock on error in prng_tdes_read()
        s390/sysinfo: show partition extended name and UUID if available
        s390/numa: pin all possible cpus to nodes early
        s390/numa: establish cpu to node mapping early
        s390/topology: use cpu_topology array instead of per cpu variable
        s390/smp: initialize cpu_present_mask in setup_arch
        s390/topology: always use s390 specific sched_domain_topology_level
        s390/smp: use smp_get_base_cpu() helper function
        s390/numa: always use logical cpu and core ids
        s390: Remove VLAIS in ptff() and clear_table()
        s390: fix machine check panic stack switch
        ...
      2ec4584e
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.10-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · aa3ecf38
      Linus Torvalds authored
      Pull xen updates from Juergen Gross:
       "Xen features and fixes for 4.10
      
        These are some fixes, a move of some arm related headers to share them
        between arm and arm64 and a series introducing a helper to make code
        more readable.
      
        The most notable change is David stepping down as maintainer of the
        Xen hypervisor interface. This results in me sending you the pull
        requests for Xen related code from now on"
      
      * tag 'for-linus-4.10-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (29 commits)
        xen/balloon: Only mark a page as managed when it is released
        xenbus: fix deadlock on writes to /proc/xen/xenbus
        xen/scsifront: don't request a slot on the ring until request is ready
        xen/x86: Increase xen_e820_map to E820_X_MAX possible entries
        x86: Make E820_X_MAX unconditionally larger than E820MAX
        xen/pci: Bubble up error and fix description.
        xen: xenbus: set error code on failure
        xen: set error code on failures
        arm/xen: Use alloc_percpu rather than __alloc_percpu
        arm/arm64: xen: Move shared architecture headers to include/xen/arm
        xen/events: use xen_vcpu_id mapping for EVTCHNOP_status
        xen/gntdev: Use VM_MIXEDMAP instead of VM_IO to avoid NUMA balancing
        xen-scsifront: Add a missing call to kfree
        MAINTAINERS: update XEN HYPERVISOR INTERFACE
        xenfs: Use proc_create_mount_point() to create /proc/xen
        xen-platform: use builtin_pci_driver
        xen-netback: fix error handling output
        xen: make use of xenbus_read_unsigned() in xenbus
        xen: make use of xenbus_read_unsigned() in xen-pciback
        xen: make use of xenbus_read_unsigned() in xen-fbfront
        ...
      aa3ecf38
  3. 13 Dec, 2016 19 commits
    • Linus Torvalds's avatar
      Merge branch 'stable/for-linus-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb · b5cab0da
      Linus Torvalds authored
      Pull swiotlb updates from Konrad Rzeszutek Wilk:
      
       - minor fixes (rate limiting), remove certain functions
      
       - support for DMA_ATTR_SKIP_CPU_SYNC which is an optimization
         in the DMA API
      
      * 'stable/for-linus-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb:
        swiotlb: Minor fix-ups for DMA_ATTR_SKIP_CPU_SYNC support
        swiotlb: Add support for DMA_ATTR_SKIP_CPU_SYNC
        swiotlb-xen: Enforce return of DMA_ERROR_CODE in mapping function
        swiotlb: Drop unused functions swiotlb_map_sg and swiotlb_unmap_sg
        swiotlb: Rate-limit printing when running out of SW-IOMMU space
      b5cab0da
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 93173b5b
      Linus Torvalds authored
      Pull KVM updates from Paolo Bonzini:
       "Small release, the most interesting stuff is x86 nested virt
        improvements.
      
        x86:
         - userspace can now hide nested VMX features from guests
         - nested VMX can now run Hyper-V in a guest
         - support for AVX512_4VNNIW and AVX512_FMAPS in KVM
         - infrastructure support for virtual Intel GPUs.
      
        PPC:
         - support for KVM guests on POWER9
         - improved support for interrupt polling
         - optimizations and cleanups.
      
        s390:
         - two small optimizations, more stuff is in flight and will be in
           4.11.
      
        ARM:
         - support for the GICv3 ITS on 32bit platforms"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (94 commits)
        arm64: KVM: pmu: Reset PMSELR_EL0.SEL to a sane value before entering the guest
        KVM: arm/arm64: timer: Check for properly initialized timer on init
        KVM: arm/arm64: vgic-v2: Limit ITARGETSR bits to number of VCPUs
        KVM: x86: Handle the kthread worker using the new API
        KVM: nVMX: invvpid handling improvements
        KVM: nVMX: check host CR3 on vmentry and vmexit
        KVM: nVMX: introduce nested_vmx_load_cr3 and call it on vmentry
        KVM: nVMX: propagate errors from prepare_vmcs02
        KVM: nVMX: fix CR3 load if L2 uses PAE paging and EPT
        KVM: nVMX: load GUEST_EFER after GUEST_CR0 during emulated VM-entry
        KVM: nVMX: generate MSR_IA32_CR{0,4}_FIXED1 from guest CPUID
        KVM: nVMX: fix checks on CR{0,4} during virtual VMX operation
        KVM: nVMX: support restore of VMX capability MSRs
        KVM: nVMX: generate non-true VMX MSRs based on true versions
        KVM: x86: Do not clear RFLAGS.TF when a singlestep trap occurs.
        KVM: x86: Add kvm_skip_emulated_instruction and use it.
        KVM: VMX: Move skip_emulated_instruction out of nested_vmx_check_vmcs12
        KVM: VMX: Reorder some skip_emulated_instruction calls
        KVM: x86: Add a return value to kvm_emulate_cpuid
        KVM: PPC: Book3S: Move prototypes for KVM functions into kvm_ppc.h
        ...
      93173b5b
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.10' of... · 1c59e1ed
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon updates from Guenter Roeck:
      
       - new drivers for TMP108 and TC654
      
       - hwmon core code cleanup
      
       - coretemp driver cleanup
      
       - fix overflow issues in several drivers
      
       - minor fixes, cleanups and enhancements in various drivers
      
      * tag 'hwmon-for-linus-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (41 commits)
        hwmon: (g762) Fix overflows and crash seen when writing limit attributes
        hwmon: (emcw201) Fix overflows seen when writing into limit attributes
        hwmon: (emc2103) Fix overflows seen when temperature limit attributes
        hwmon: (lm85) Fix overflows seen when writing voltage limit attributes
        hwmon: (lm87) Fix overflow seen when writing voltage limit attributes
        hwmon: (nct7802) Fix overflows seen when writing into limit attributes
        hwmon: (adt7470) Fix overflows seen when writing into limit attributes
        hwmon: (adt7462) Fix overflows seen when writing into limit attributes
        hwmon: (adm1026) Fix overflows seen when writing into limit attributes
        hwmon: (adm1025) Fix overflows seen when writing voltage limits
        hwmon: (via-cputemp) Convert to hotplug state machine
        devicetree: hwmon: Add documentation for TMP108 driver.
        hwmon: Add Texas Instruments TMP108 temperature sensor driver.
        hwmon: (core) Simplify sysfs attribute name allocation
        hwmon: (core) Rename groups parameter in API to extra_groups
        hwmon: (core) Explain why at least two attribute groups are allocated
        hwmon: (core) Make is_visible callback truly mandatory
        hwmon: (core) Deprecate hwmon_device_register()
        hwmon: (core) Clarify use of chip attributes
        hwmon: (core) Add support for string attributes to new API
        ...
      1c59e1ed
    • Linus Torvalds's avatar
      Merge tag 'spi-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · bb3dd056
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "The nicest things about this release for me is seeing some older
        drivers getting some cleanups and modernization, it's really good to
        see things moving forwards even for older drivers.
      
        In content terms it's a fairly humdrum release but where the work has
        been happening is great.
      
         - Support for simultaneous use of internal and GPIO chip selects for
           devices that require the use of the internal select even if it's
           not connected and a GPIO is actually routed to the slave device.
      
         - A major rework and cleanup of the fsl-espi driver from Heiner
           Kallweit which should make it work substantially better.
      
         - DMA support for Freescale DSPI IPs.
      
         - New drivers for Freescale LPSPI IPs and Marvell Armada 3700.
      
         - Support for Allwinner H3"
      
      * tag 'spi-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (85 commits)
        spi: mvebu: fix baudrate calculation for armada variant
        spi: Add support for Armada 3700 SPI Controller
        spi: armada-3700: Add documentation for the Armada 3700 SPI Controller
        spi: fsl-lpspi: quit reading rx fifo under error condition
        spi: fsl-lpspi: use GPL as module license
        spi: fsl-espi: fix ioread16/iowrite16 endianness
        spi: fsl-espi: remove unused linearization code
        spi: fsl-espi: eliminate need for linearization when reading from hardware
        spi: fsl-espi: eliminate need for linearization when writing to hardware
        spi: fsl-espi: determine need for byte swap only once
        spi: fsl-lpspi: read lpspi tx/rx fifo size in probe()
        spi: fsl-lpspi: use wait_for_completion_timeout() while waiting transfer done
        spi: orion: fix comment to mention MVEBU
        spi: atmel: remove the use of private channel fields
        spi: atmel: trivial: remove unused fields in DMA structure
        spi: atmel: Use SPI core DMA mapping framework
        spi: atmel: Use core SPI_MASTER_MUST_[RT]X handling
        spi: atmel: trivial: move info banner to latest probe action
        spi: imx: replace schedule() with cond_resched()
        spi: imx: fix potential shift truncation
        ...
      bb3dd056
    • Linus Torvalds's avatar
      Merge branch 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · 7b882cb8
      Linus Torvalds authored
      Pull another libata patch from Tejun Heo:
       "One more patch from Adam added.
      
        It makes libata skip probing for NCQ prio unless the feature is
        explicitly requested by the user. This is necessary because some
        controllers lock up after the optional feature is probed"
      
      * 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        ata: avoid probing NCQ Prio Support if not explicitly requested
      7b882cb8
    • Adam Manzanares's avatar
      ata: avoid probing NCQ Prio Support if not explicitly requested · 9f56eca3
      Adam Manzanares authored
      Previously, when the ata device was being initialized we were
      probing for NCQ prio support by checking the identify information
      and also checking the log page that holds information about ncq prio
      support.
      
      This caused an error on an Intel HBA so the code is now updated to
      only probe for NCQ prio support when the sysfs variable controlling
      NCQ prio support is enabled.
      
      tj: Update formatting, switch to spin_[un]lock_irq() and update
          locking a bit, use REVALIDATE instead of RESET, and return -EIO
          instead of -EINVAL on config failure.
      Signed-off-by: default avatarAdam Manzanares <adam.manzanares@wdc.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      9f56eca3
    • Linus Torvalds's avatar
      Merge branch 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · b92e09bb
      Linus Torvalds authored
      Pull libata updates from Tejun Heo:
      
       - Adam added opt-in ATA command priority support.
      
       - There are machines which hide multiple nvme devices behind an ahci
         BAR. Dan Williams proposed a solution to force-switch the mode but
         deemed too hackishd. People are gonna discuss the proper way to
         handle the situation in nvme standard meetings. For now, detect and
         warn about the situation.
      
       - Low level driver specific changes.
      
      Christoph Hellwig pipes in about the hidden nvme warning:
       "I wish that was the case. We've pretty much agreed that we'll want to
        implement it as a virtual PCIe root bridge, similar to Intels other
        'innovation' VMD that we work around that way.
      
        But Intel management has apparently decided that they don't want to
        spend more cycles on this now that Lenovo has an optional BIOS that
        doesn't force this broken mode anymore, and no one outside of Intel
        has enough information to implement something like this.
      
        So for now I guess this warning is it, until Intel reconsideres and
        spends resources on fixing up the damage their Chipset people caused"
      
      * 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        ahci: warn about remapped NVMe devices
        ahci-remap.h: add ahci remapping definitions
        nvme: move NVMe class code to pci_ids.h
        pata: imx: support controller modes up to PIO4
        pata: imx: add support of setting timings for PIO modes
        pata: imx: set controller PIO mode with .set_piomode callback
        pata: imx: sort headers out
        ata: set ncq_prio_enabled iff device has support
        ata: ATA Command Priority Disabled By Default
        ata: Enabling ATA Command Priorities
        block: Add iocontext priority to request
        ahci: qoriq: added ls1046a platform support
      b92e09bb
    • Linus Torvalds's avatar
      Merge branch 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · c11a6cfb
      Linus Torvalds authored
      Pull workqueue updates from Tejun Heo:
       "Mostly patches to initialize workqueue subsystem earlier and get rid
        of keventd_up().
      
        The patches were headed for the last merge cycle but got delayed due
        to a bug found late minute, which is fixed now.
      
        Also, to help debugging, destroy_workqueue() is more chatty now on a
        sanity check failure."
      
      * 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: move wq_numa_init() to workqueue_init()
        workqueue: remove keventd_up()
        debugobj, workqueue: remove keventd_up() usage
        slab, workqueue: remove keventd_up() usage
        power, workqueue: remove keventd_up() usage
        tty, workqueue: remove keventd_up() usage
        mce, workqueue: remove keventd_up() usage
        workqueue: make workqueue available early during boot
        workqueue: dump workqueue state on sanity check failures in destroy_workqueue()
      c11a6cfb
    • Shaohua Li's avatar
      Merge branch 'md-next' into md-linus · 20737738
      Shaohua Li authored
      20737738
    • Linus Torvalds's avatar
      Merge branch 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · e6efef72
      Linus Torvalds authored
      Pull percpu update from Tejun Heo:
       "This includes just one patch to reject non-power-of-2 alignments and
        trigger warning. Interestingly, this actually caught a bug in XEN
        ARM64"
      
      * 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
        percpu: ensure the requested alignment is power of two
      e6efef72
    • Linus Torvalds's avatar
      Merge tag 'char-misc-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · b78b499a
      Linus Torvalds authored
      Pull char/misc driver updates from Greg KH:
       "Here's the big char/misc driver patches for 4.10-rc1. Lots of tiny
        changes over lots of "minor" driver subsystems, the largest being some
        new FPGA drivers. Other than that, a few other new drivers, but no new
        driver subsystems added for this kernel cycle, a nice change.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'char-misc-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (107 commits)
        uio-hv-generic: store physical addresses instead of virtual
        Tools: hv: kvp: configurable external scripts path
        uio-hv-generic: new userspace i/o driver for VMBus
        vmbus: add support for dynamic device id's
        hv: change clockevents unbind tactics
        hv: acquire vmbus_connection.channel_mutex in vmbus_free_channels()
        hyperv: Fix spelling of HV_UNKOWN
        mei: bus: enable non-blocking RX
        mei: fix the back to back interrupt handling
        mei: synchronize irq before initiating a reset.
        VME: Remove shutdown entry from vme_driver
        auxdisplay: ht16k33: select framebuffer helper modules
        MAINTAINERS: add git url for fpga
        fpga: Clarify how write_init works streaming modes
        fpga zynq: Fix incorrect ISR state on bootup
        fpga zynq: Remove priv->dev
        fpga zynq: Add missing \n to messages
        fpga: Add COMPILE_TEST to all drivers
        uio: pruss: add clk_disable()
        char/pcmcia: add some error checking in scr24x_read()
        ...
      b78b499a
    • Mike Snitzer's avatar
      dm flakey: introduce "error_writes" feature · ef548c55
      Mike Snitzer authored
      Recent dm-flakey fixes, to have reads error out during the "down"
      interval, made it so that the previous read behaviour is no longer
      available.
      
      It is useful to have reads complete like normal but have writes error
      out, so make it possible again with a new "error_writes" feature.
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      ef548c55
    • Linus Torvalds's avatar
      Merge tag 'driver-core-4.10-rc1' of... · 098c3055
      Linus Torvalds authored
      Merge tag 'driver-core-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core updates from Greg KH:
       "Here's the new driver core patches for 4.10-rc1.
      
        Big thing here is the nice addition of "functional dependencies" to
        the driver core. The idea has been talked about for a very long time,
        great job to Rafael for stepping up and implementing it. It's been
        tested for longer than the 4.9-rc1 date, we held off on merging it
        earlier in order to feel more comfortable about it.
      
        Other than that, it's just a handful of small other patches, some good
        cleanups to the mess that is the firmware class code, and we have a
        test driver for the deferred probe logic.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'driver-core-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (30 commits)
        firmware: Correct handling of fw_state_wait() return value
        driver core: Silence device links sphinx warning
        firmware: remove warning at documentation generation time
        drivers: base: dma-mapping: Fix typo in dmam_alloc_non_coherent comments
        driver core: test_async: fix up typo found by 0-day
        firmware: move fw_state_is_done() into UHM section
        firmware: do not use fw_lock for fw_state protection
        firmware: drop bit ops in favor of simple state machine
        firmware: refactor loading status
        firmware: fix usermode helper fallback loading
        driver core: firmware_class: convert to use class_groups
        driver core: devcoredump: convert to use class_groups
        driver core: class: add class_groups support
        kernfs: Declare two local data structures static
        driver-core: fix platform_no_drv_owner.cocci warnings
        drivers/base/memory.c: Remove unused 'first_page' variable
        driver core: add CLASS_ATTR_WO()
        drivers: base: cacheinfo: support DT overrides for cache properties
        drivers: base: cacheinfo: add pr_fmt logging
        drivers: base: cacheinfo: fix boot error message when acpi is enabled
        ...
      098c3055
    • Linus Torvalds's avatar
      Merge tag 'staging-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 72cca7ba
      Linus Torvalds authored
      Pull staging/IIO updates from Greg KH:
       "Here's the "big" staging/iio pull request for 4.10-rc1.
      
        Not as big as 4.9 was, but still just over a thousand changes. We
        almost broke even of lines added vs. removed, as the slicoss driver
        was removed (got a "clean" driver for the same hardware through the
        netdev tree), and some iio drivers were also dropped, but I think we
        ended up adding a few thousand lines to the source tree in the end.
        Other than that it's a lot of minor fixes all over the place, nothing
        major stands out at all.
      
        All of these have been in linux-next for a while. There will be a
        merge conflict with Al's vfs tree in the lustre code, but the
        resolution for that should be pretty simple, that too has been in
        linux-next"
      
      * tag 'staging-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1002 commits)
        staging: comedi: comedidev.h: Document usage of 'detach' handler
        staging: fsl-mc: remove unnecessary info prints from bus driver
        staging: fsl-mc: add sysfs ABI doc
        staging/lustre/o2iblnd: Fix misspelled attemps->attempts
        staging/lustre/o2iblnd: Fix misspelling intialized->intialized
        staging/lustre: Convert all bare unsigned to unsigned int
        staging/lustre/socklnd: Fix whitespace problem
        staging/lustre/o2iblnd: Add missing space
        staging/lustre/lnetselftest: Fix potential integer overflow
        staging: greybus: audio_module: remove redundant OOM message
        staging: dgnc: Fix lines longer than 80 characters
        staging: dgnc: fix blank line after '{' warnings.
        staging/android: remove Sync Framework tasks from TODO
        staging/lustre/osc: Revert erroneous list_for_each_entry_safe use
        staging: slicoss: remove the staging driver
        staging: lustre: libcfs: remove lnet upcall code
        staging: lustre: remove set but unused variables
        staging: lustre: osc: set lock data for readahead lock
        staging: lustre: import: don't reconnect during connect interpret
        staging: lustre: clio: remove mtime check in vvp_io_fault_start()
        ...
      72cca7ba
    • Linus Torvalds's avatar
      Merge tag 'tty-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 5266e703
      Linus Torvalds authored
      Pull tty/serial updates from Greg KH:
       "Here's the tty/serial patchset for 4.10-rc1.
      
        It's been a quiet kernel cycle for this subsystem, just a small number
        of changes. A few new serial drivers, and some cleanups to the old
        vgacon logic, and other minor serial driver changes as well.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'tty-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (54 commits)
        serial: 8250_mid fix calltrace when hotplug 8250 serial controller
        console: Move userspace I/O out of console_lock to fix lockdep warning
        tty: nozomi: avoid sprintf buffer overflow
        serial: 8250_pci: Detach low-level driver during PCI error recovery
        serial: core: don't check port twice in a row
        mxs-auart: count FIFO overrun errors
        serial: 8250_dw: Add support for IrDA SIR mode
        serial: 8250: Expose set_ldisc function
        serial: 8250: Add IrDA to UART capabilities
        serial: 8250_dma: power off device after TX is done
        serial: 8250_port: export serial8250_rpm_{get|put}_tx()
        serial: sunsu: Free memory when probe fails
        serial: sunhv: Free memory when remove() is called
        vt: fix Scroll Lock LED trigger name
        tty: typo in comments in drivers/tty/vt/keyboard.c
        tty: amba-pl011: Add earlycon support for SBSA UART
        tty: nozomi: use permission-specific DEVICE_ATTR variants
        tty: serial: Make the STM32 serial port depend on it's arch
        serial: ifx6x60: Free memory when probe fails
        serial: ioc4_serial: Free memory when kzalloc fails during probe
        ...
      5266e703
    • Linus Torvalds's avatar
      Merge tag 'usb-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 03f8d4cc
      Linus Torvalds authored
      Pull USB/PHY updates from Greg KH:
       "Here's the big set of USB/PHY patches for 4.10-rc1.
      
        A number of new drivers are here in this set of changes. We have a new
        USB controller type "mtu3", a new usb-serial driver, and the usual
        churn in the gadget subsystem and the xhci host controller driver,
        along with a few other new small drivers added. And lots of little
        other changes all over the USB and PHY driver tree. Full details are
        in the shortlog
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'usb-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (309 commits)
        USB: serial: option: add dlink dwm-158
        USB: serial: option: add support for Telit LE922A PIDs 0x1040, 0x1041
        USB: OHCI: nxp: fix code warnings
        USB: OHCI: nxp: remove useless extern declaration
        USB: OHCI: at91: remove useless extern declaration
        usb: misc: rio500: fix result type for error message
        usb: mtu3: fix U3 port link issue
        usb: mtu3: enable auto switch from U3 to U2
        usbip: fix warning in vhci_hcd_probe/lockdep_init_map
        usb: core: usbport: Use proper LED API to fix potential crash
        usbip: add missing compile time generated files to .gitignore
        usb: hcd.h: construct hub class request constants from simpler constants
        USB: OHCI: ohci-pxa27x: remove useless functions
        USB: OHCI: omap: remove useless extern declaration
        USB: OHCI: ohci-omap: remove useless functions
        USB: OHCI: ohci-s3c2410: remove useless functions
        USB: cdc-acm: add device id for GW Instek AFG-125
        fsl/usb: Workarourd for USB erratum-A005697
        usb: hub: Wait for connection to be reestablished after port reset
        usbip: vudc: Refactor init_vudc_hw() to be more obvious
        ...
      03f8d4cc
    • Linus Torvalds's avatar
      Merge tag 'acpi-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · a67485d4
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "The ACPICA code in the kernel gets updated as usual (included is
        upstream revision 20160930 and a few commits from the next one, with
        the rest waiting for an issue discovered in linux-next to be
        addressed) which brings in a couple of fixes and cleanups
      
        On top of that initial support for APEI on ARM64 is added, two new
        pieces of documentation are introduced, the properties-parsing code is
        updated to follow changes in the (external) documentation it is based
        on and there are a few updates of SoC drivers, some new blacklist
        entries, plus some assorted fixes and cleanups
      
        Specifics:
      
         - ACPICA update including upstream revision 20160930 and several
           commits beyond it (Bob Moore, Lv Zheng)
      
         - Initial support for ACPI APEI on ARM64 (Tomasz Nowicki)
      
         - New document describing the handling of _OSI and _REV in Linux (Len
           Brown)
      
         - New document describing the usage rules for _DSD properties (Rafael
           Wysocki)
      
         - Update of the ACPI properties-parsing code to reflect recent
           changes in the (external) documentation it is based on (Rafael
           Wysocki)
      
         - Updates of the ACPI LPSS and ACPI APD SoC drivers for additional
           hardware support (Andy Shevchenko, Nehal Shah)
      
         - New blacklist entries for _REV and video handling (Alex Hung, Hans
           de Goede, Michael Pobega)
      
         - ACPI battery driver fix to fall back to _BIF if _BIX fails (Dave
           Lambley)
      
         - NMI notifications handling fix for APEI (Prarit Bhargava)
      
         - Error code path fix for the ACPI CPPC library (Dan Carpenter)
      
         - Assorted cleanups (Andy Shevchenko, Longpeng Mike)"
      
      * tag 'acpi-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (31 commits)
        ACPICA: Utilities: Add new decode function for parser values
        ACPI / osl: Refactor acpi_os_get_root_pointer() to drop 'else':s
        ACPI / osl: Propagate actual error code for kstrtoul()
        ACPI / property: Document usage rules for _DSD properties
        ACPI: Document _OSI and _REV for Linux BIOS writers
        ACPI / APEI / ARM64: APEI initial support for ARM64
        ACPI / APEI: Fix NMI notification handling
        ACPICA: Tables: Add an error message complaining driver bugs
        ACPICA: Tables: Add acpi_tb_unload_table()
        ACPICA: Tables: Cleanup acpi_tb_install_and_load_table()
        ACPICA: Events: Fix acpi_ev_initialize_region() return value
        ACPICA: Back port of "ACPICA: Dispatcher: Tune interpreter lock around AcpiEvInitializeRegion()"
        ACPICA: Namespace: Add acpi_ns_handle_to_name()
        ACPI / CPPC: set an error code on probe error path
        ACPI / video: Add force_native quirk for HP Pavilion dv6
        ACPI / video: Add force_native quirk for Dell XPS 17 L702X
        ACPI / property: Hierarchical properties support update
        ACPI / LPSS: enable hard LLP for DMA
        ACPI / battery: If _BIX fails, retry with _BIF
        ACPI / video: Move ACPI_VIDEO_NOTIFY_* defines to acpi/video.h
        ..
      a67485d4
    • Linus Torvalds's avatar
      Merge tag 'pm-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 7b9dc3f7
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "Again, cpufreq gets more changes than the other parts this time (one
        new driver, one old driver less, a bunch of enhancements of the
        existing code, new CPU IDs, fixes, cleanups)
      
        There also are some changes in cpuidle (idle injection rework, a
        couple of new CPU IDs, online/offline rework in intel_idle, fixes and
        cleanups), in the generic power domains framework (mostly related to
        supporting power domains containing CPUs), and in the Operating
        Performance Points (OPP) library (mostly related to supporting devices
        with multiple voltage regulators)
      
        In addition to that, the system sleep state selection interface is
        modified to make it easier for distributions with unchanged user space
        to support suspend-to-idle as the default system suspend method, some
        issues are fixed in the PM core, the latency tolerance PM QoS
        framework is improved a bit, the Intel RAPL power capping driver is
        cleaned up and there are some fixes and cleanups in the devfreq
        subsystem
      
        Specifics:
      
         - New cpufreq driver for Broadcom STB SoCs and a Device Tree binding
           for it (Markus Mayer)
      
         - Support for ARM Integrator/AP and Integrator/CP in the generic DT
           cpufreq driver and elimination of the old Integrator cpufreq driver
           (Linus Walleij)
      
         - Support for the zx296718, r8a7743 and r8a7745, Socionext UniPhier,
           and PXA SoCs in the the generic DT cpufreq driver (Baoyou Xie,
           Geert Uytterhoeven, Masahiro Yamada, Robert Jarzmik)
      
         - cpufreq core fix to eliminate races that may lead to using inactive
           policy objects and related cleanups (Rafael Wysocki)
      
         - cpufreq schedutil governor update to make it use SCHED_FIFO kernel
           threads (instead of regular workqueues) for doing delayed work (to
           reduce the response latency in some cases) and related cleanups
           (Viresh Kumar)
      
         - New cpufreq sysfs attribute for resetting statistics (Markus Mayer)
      
         - cpufreq governors fixes and cleanups (Chen Yu, Stratos Karafotis,
           Viresh Kumar)
      
         - Support for using generic cpufreq governors in the intel_pstate
           driver (Rafael Wysocki)
      
         - Support for per-logical-CPU P-state limits and the EPP/EPB (Energy
           Performance Preference/Energy Performance Bias) knobs in the
           intel_pstate driver (Srinivas Pandruvada)
      
         - New CPU ID for Knights Mill in intel_pstate (Piotr Luc)
      
         - intel_pstate driver modification to use the P-state selection
           algorithm based on CPU load on platforms with the system profile in
           the ACPI tables set to "mobile" (Srinivas Pandruvada)
      
         - intel_pstate driver cleanups (Arnd Bergmann, Rafael Wysocki,
           Srinivas Pandruvada)
      
         - cpufreq powernv driver updates including fast switching support
           (for the schedutil governor), fixes and cleanus (Akshay Adiga,
           Andrew Donnellan, Denis Kirjanov)
      
         - acpi-cpufreq driver rework to switch it over to the new CPU
           offline/online state machine (Sebastian Andrzej Siewior)
      
         - Assorted cleanups in cpufreq drivers (Wei Yongjun, Prashanth
           Prakash)
      
         - Idle injection rework (to make it use the regular idle path instead
           of a home-grown custom one) and related powerclamp thermal driver
           updates (Peter Zijlstra, Jacob Pan, Petr Mladek, Sebastian Andrzej
           Siewior)
      
         - New CPU IDs for Atom Z34xx and Knights Mill in intel_idle (Andy
           Shevchenko, Piotr Luc)
      
         - intel_idle driver cleanups and switch over to using the new CPU
           offline/online state machine (Anna-Maria Gleixner, Sebastian
           Andrzej Siewior)
      
         - cpuidle DT driver update to support suspend-to-idle properly
           (Sudeep Holla)
      
         - cpuidle core cleanups and misc updates (Daniel Lezcano, Pan Bian,
           Rafael Wysocki)
      
         - Preliminary support for power domains including CPUs in the generic
           power domains (genpd) framework and related DT bindings (Lina Iyer)
      
         - Assorted fixes and cleanups in the generic power domains (genpd)
           framework (Colin Ian King, Dan Carpenter, Geert Uytterhoeven)
      
         - Preliminary support for devices with multiple voltage regulators
           and related fixes and cleanups in the Operating Performance Points
           (OPP) library (Viresh Kumar, Masahiro Yamada, Stephen Boyd)
      
         - System sleep state selection interface rework to make it easier to
           support suspend-to-idle as the default system suspend method
           (Rafael Wysocki)
      
         - PM core fixes and cleanups, mostly related to the interactions
           between the system suspend and runtime PM frameworks (Ulf Hansson,
           Sahitya Tummala, Tony Lindgren)
      
         - Latency tolerance PM QoS framework imorovements (Andrew Lutomirski)
      
         - New Knights Mill CPU ID for the Intel RAPL power capping driver
           (Piotr Luc)
      
         - Intel RAPL power capping driver fixes, cleanups and switch over to
           using the new CPU offline/online state machine (Jacob Pan, Thomas
           Gleixner, Sebastian Andrzej Siewior)
      
         - Fixes and cleanups in the exynos-ppmu, exynos-nocp, rk3399_dmc,
           rockchip-dfi devfreq drivers and the devfreq core (Axel Lin,
           Chanwoo Choi, Javier Martinez Canillas, MyungJoo Ham, Viresh Kumar)
      
         - Fix for false-positive KASAN warnings during resume from ACPI S3
           (suspend-to-RAM) on x86 (Josh Poimboeuf)
      
         - Memory map verification during resume from hibernation on x86 to
           ensure a consistent address space layout (Chen Yu)
      
         - Wakeup sources debugging enhancement (Xing Wei)
      
         - rockchip-io AVS driver cleanup (Shawn Lin)"
      
      * tag 'pm-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (127 commits)
        devfreq: rk3399_dmc: Don't use OPP structures outside of RCU locks
        devfreq: rk3399_dmc: Remove dangling rcu_read_unlock()
        devfreq: exynos: Don't use OPP structures outside of RCU locks
        Documentation: intel_pstate: Document HWP energy/performance hints
        cpufreq: intel_pstate: Support for energy performance hints with HWP
        cpufreq: intel_pstate: Add locking around HWP requests
        PM / sleep: Print active wakeup sources when blocking on wakeup_count reads
        PM / core: Fix bug in the error handling of async suspend
        PM / wakeirq: Fix dedicated wakeirq for drivers not using autosuspend
        PM / Domains: Fix compatible for domain idle state
        PM / OPP: Don't WARN on multiple calls to dev_pm_opp_set_regulators()
        PM / OPP: Allow platform specific custom set_opp() callbacks
        PM / OPP: Separate out _generic_set_opp()
        PM / OPP: Add infrastructure to manage multiple regulators
        PM / OPP: Pass struct dev_pm_opp_supply to _set_opp_voltage()
        PM / OPP: Manage supply's voltage/current in a separate structure
        PM / OPP: Don't use OPP structure outside of rcu protected section
        PM / OPP: Reword binding supporting multiple regulators per device
        PM / OPP: Fix incorrect cpu-supply property in binding
        cpuidle: Add a kerneldoc comment to cpuidle_use_deepest_state()
        ..
      7b9dc3f7
    • Linus Torvalds's avatar
      Merge branch 'for-4.10/block' of git://git.kernel.dk/linux-block · 36869cb9
      Linus Torvalds authored
      Pull block layer updates from Jens Axboe:
       "This is the main block pull request this series. Contrary to previous
        release, I've kept the core and driver changes in the same branch. We
        always ended up having dependencies between the two for obvious
        reasons, so makes more sense to keep them together. That said, I'll
        probably try and keep more topical branches going forward, especially
        for cycles that end up being as busy as this one.
      
        The major parts of this pull request is:
      
         - Improved support for O_DIRECT on block devices, with a small
           private implementation instead of using the pig that is
           fs/direct-io.c. From Christoph.
      
         - Request completion tracking in a scalable fashion. This is utilized
           by two components in this pull, the new hybrid polling and the
           writeback queue throttling code.
      
         - Improved support for polling with O_DIRECT, adding a hybrid mode
           that combines pure polling with an initial sleep. From me.
      
         - Support for automatic throttling of writeback queues on the block
           side. This uses feedback from the device completion latencies to
           scale the queue on the block side up or down. From me.
      
         - Support from SMR drives in the block layer and for SD. From Hannes
           and Shaun.
      
         - Multi-connection support for nbd. From Josef.
      
         - Cleanup of request and bio flags, so we have a clear split between
           which are bio (or rq) private, and which ones are shared. From
           Christoph.
      
         - A set of patches from Bart, that improve how we handle queue
           stopping and starting in blk-mq.
      
         - Support for WRITE_ZEROES from Chaitanya.
      
         - Lightnvm updates from Javier/Matias.
      
         - Supoort for FC for the nvme-over-fabrics code. From James Smart.
      
         - A bunch of fixes from a whole slew of people, too many to name
           here"
      
      * 'for-4.10/block' of git://git.kernel.dk/linux-block: (182 commits)
        blk-stat: fix a few cases of missing batch flushing
        blk-flush: run the queue when inserting blk-mq flush
        elevator: make the rqhash helpers exported
        blk-mq: abstract out blk_mq_dispatch_rq_list() helper
        blk-mq: add blk_mq_start_stopped_hw_queue()
        block: improve handling of the magic discard payload
        blk-wbt: don't throttle discard or write zeroes
        nbd: use dev_err_ratelimited in io path
        nbd: reset the setup task for NBD_CLEAR_SOCK
        nvme-fabrics: Add FC LLDD loopback driver to test FC-NVME
        nvme-fabrics: Add target support for FC transport
        nvme-fabrics: Add host support for FC transport
        nvme-fabrics: Add FC transport LLDD api definitions
        nvme-fabrics: Add FC transport FC-NVME definitions
        nvme-fabrics: Add FC transport error codes to nvme.h
        Add type 0x28 NVME type code to scsi fc headers
        nvme-fabrics: patch target code in prep for FC transport support
        nvme-fabrics: set sqe.command_id in core not transports
        parser: add u64 number parser
        nvme-rdma: align to generic ib_event logging helper
        ...
      36869cb9