1. 14 Apr, 2018 10 commits
    • AKASHI Takahiro's avatar
      kexec_file: make use of purgatory optional · b799a09f
      AKASHI Takahiro authored
      Patch series "kexec_file, x86, powerpc: refactoring for other
      architecutres", v2.
      
      This is a preparatory patchset for adding kexec_file support on arm64.
      
      It was originally included in a arm64 patch set[1], but Philipp is also
      working on their kexec_file support on s390[2] and some changes are now
      conflicting.
      
      So these common parts were extracted and put into a separate patch set
      for better integration.  What's more, my original patch#4 was split into
      a few small chunks for easier review after Dave's comment.
      
      As such, the resulting code is basically identical with my original, and
      the only *visible* differences are:
      
       - renaming of _kexec_kernel_image_probe() and  _kimage_file_post_load_cleanup()
      
       - change one of types of arguments at prepare_elf64_headers()
      
      Those, unfortunately, require a couple of trivial changes on the rest
      (#1, #6 to #13) of my arm64 kexec_file patch set[1].
      
      Patch #1 allows making a use of purgatory optional, particularly useful
      for arm64.
      
      Patch #2 commonalizes arch_kexec_kernel_{image_probe, image_load,
      verify_sig}() and arch_kimage_file_post_load_cleanup() across
      architectures.
      
      Patches #3-#7 are also intended to generalize parse_elf64_headers(),
      along with exclude_mem_range(), to be made best re-use of.
      
      [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2018-February/561182.html
      [2] http://lkml.iu.edu//hypermail/linux/kernel/1802.1/02596.html
      
      This patch (of 7):
      
      On arm64, crash dump kernel's usable memory is protected by *unmapping*
      it from kernel virtual space unlike other architectures where the region
      is just made read-only.  It is highly unlikely that the region is
      accidentally corrupted and this observation rationalizes that digest
      check code can also be dropped from purgatory.  The resulting code is so
      simple as it doesn't require a bit ugly re-linking/relocation stuff,
      i.e.  arch_kexec_apply_relocations_add().
      
      Please see:
      
         http://lists.infradead.org/pipermail/linux-arm-kernel/2017-December/545428.html
      
      All that the purgatory does is to shuffle arguments and jump into a new
      kernel, while we still need to have some space for a hash value
      (purgatory_sha256_digest) which is never checked against.
      
      As such, it doesn't make sense to have trampline code between old kernel
      and new kernel on arm64.
      
      This patch introduces a new configuration, ARCH_HAS_KEXEC_PURGATORY, and
      allows related code to be compiled in only if necessary.
      
      [takahiro.akashi@linaro.org: fix trivial screwup]
        Link: http://lkml.kernel.org/r/20180309093346.GF25863@linaro.org
      Link: http://lkml.kernel.org/r/20180306102303.9063-2-takahiro.akashi@linaro.orgSigned-off-by: default avatarAKASHI Takahiro <takahiro.akashi@linaro.org>
      Acked-by: default avatarDave Young <dyoung@redhat.com>
      Tested-by: default avatarDave Young <dyoung@redhat.com>
      Cc: Vivek Goyal <vgoyal@redhat.com>
      Cc: Baoquan He <bhe@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b799a09f
    • Alexey Dobriyan's avatar
      proc: revalidate misc dentries · 1da4d377
      Alexey Dobriyan authored
      If module removes proc directory while another process pins it by
      chdir'ing to it, then subsequent recreation of proc entry and all
      entries down the tree will not be visible to any process until pinning
      process unchdir from directory and unpins everything.
      
      Steps to reproduce:
      
      	proc_mkdir("aaa", NULL);
      	proc_create("aaa/bbb", ...);
      
      		chdir("/proc/aaa");
      
      	remove_proc_entry("aaa/bbb", NULL);
      	remove_proc_entry("aaa", NULL);
      
      	proc_mkdir("aaa", NULL);
      	# inaccessible because "aaa" dentry still points
      	# to the original "aaa".
      	proc_create("aaa/bbb", ...);
      
      Fix is to implement ->d_revalidate and ->d_delete.
      
      Link: http://lkml.kernel.org/r/20180312201938.GA4871@avx2Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1da4d377
    • Vlastimil Babka's avatar
      mm, slab: reschedule cache_reap() on the same CPU · a9f2a846
      Vlastimil Babka authored
      cache_reap() is initially scheduled in start_cpu_timer() via
      schedule_delayed_work_on(). But then the next iterations are scheduled
      via schedule_delayed_work(), i.e. using WORK_CPU_UNBOUND.
      
      Thus since commit ef557180 ("workqueue: schedule WORK_CPU_UNBOUND
      work on wq_unbound_cpumask CPUs") there is no guarantee the future
      iterations will run on the originally intended cpu, although it's still
      preferred.  I was able to demonstrate this with
      /sys/module/workqueue/parameters/debug_force_rr_cpu.  IIUC, it may also
      happen due to migrating timers in nohz context.  As a result, some cpu's
      would be calling cache_reap() more frequently and others never.
      
      This patch uses schedule_delayed_work_on() with the current cpu when
      scheduling the next iteration.
      
      Link: http://lkml.kernel.org/r/20180411070007.32225-1-vbabka@suse.cz
      Fixes: ef557180 ("workqueue: schedule WORK_CPU_UNBOUND work on wq_unbound_cpumask CPUs")
      Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Acked-by: default avatarPekka Enberg <penberg@kernel.org>
      Acked-by: default avatarChristoph Lameter <cl@linux.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Lai Jiangshan <jiangshanlai@gmail.com>
      Cc: John Stultz <john.stultz@linaro.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Stephen Boyd <sboyd@kernel.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a9f2a846
    • Petr Tesarik's avatar
      kexec: export PG_swapbacked to VMCOREINFO · 1cbf29da
      Petr Tesarik authored
      Since commit 6326fec1 ("mm: Use owner_priv bit for PageSwapCache,
      valid when PageSwapBacked"), PG_swapcache is an alias for
      PG_owner_priv_1, which may be also used for other purposes.
      
      To know whether the bit indeed has the PG_swapcache meaning, it is
      necessary to check PG_swapbacked, hence this bit must be exported.
      
      Link: http://lkml.kernel.org/r/20180410161345.142e142d@ezekiel.suse.czSigned-off-by: default avatarPetr Tesarik <ptesarik@suse.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Dave Young <dyoung@redhat.com>
      Cc: Xunlei Pang <xlpang@redhat.com>
      Cc: Baoquan He <bhe@redhat.com>
      Cc: Hari Bathini <hbathini@linux.vnet.ibm.com>
      Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
      Cc: "Marc-Andr Lureau" <marcandre.lureau@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1cbf29da
    • Eric Biggers's avatar
      ipc/shm: fix use-after-free of shm file via remap_file_pages() · 3f05317d
      Eric Biggers authored
      syzbot reported a use-after-free of shm_file_data(file)->file->f_op in
      shm_get_unmapped_area(), called via sys_remap_file_pages().
      
      Unfortunately it couldn't generate a reproducer, but I found a bug which
      I think caused it.  When remap_file_pages() is passed a full System V
      shared memory segment, the memory is first unmapped, then a new map is
      created using the ->vm_file.  Between these steps, the shm ID can be
      removed and reused for a new shm segment.  But, shm_mmap() only checks
      whether the ID is currently valid before calling the underlying file's
      ->mmap(); it doesn't check whether it was reused.  Thus it can use the
      wrong underlying file, one that was already freed.
      
      Fix this by making the "outer" shm file (the one that gets put in
      ->vm_file) hold a reference to the real shm file, and by making
      __shm_open() require that the file associated with the shm ID matches
      the one associated with the "outer" file.
      
      Taking the reference to the real shm file is needed to fully solve the
      problem, since otherwise sfd->file could point to a freed file, which
      then could be reallocated for the reused shm ID, causing the wrong shm
      segment to be mapped (and without the required permission checks).
      
      Commit 1ac0b6de ("ipc/shm: handle removed segments gracefully in
      shm_mmap()") almost fixed this bug, but it didn't go far enough because
      it didn't consider the case where the shm ID is reused.
      
      The following program usually reproduces this bug:
      
      	#include <stdlib.h>
      	#include <sys/shm.h>
      	#include <sys/syscall.h>
      	#include <unistd.h>
      
      	int main()
      	{
      		int is_parent = (fork() != 0);
      		srand(getpid());
      		for (;;) {
      			int id = shmget(0xF00F, 4096, IPC_CREAT|0700);
      			if (is_parent) {
      				void *addr = shmat(id, NULL, 0);
      				usleep(rand() % 50);
      				while (!syscall(__NR_remap_file_pages, addr, 4096, 0, 0, 0));
      			} else {
      				usleep(rand() % 50);
      				shmctl(id, IPC_RMID, NULL);
      			}
      		}
      	}
      
      It causes the following NULL pointer dereference due to a 'struct file'
      being used while it's being freed.  (I couldn't actually get a KASAN
      use-after-free splat like in the syzbot report.  But I think it's
      possible with this bug; it would just take a more extraordinary race...)
      
      	BUG: unable to handle kernel NULL pointer dereference at 0000000000000058
      	PGD 0 P4D 0
      	Oops: 0000 [#1] SMP NOPTI
      	CPU: 9 PID: 258 Comm: syz_ipc Not tainted 4.16.0-05140-gf8cf2f16 #189
      	Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-20171110_100015-anatol 04/01/2014
      	RIP: 0010:d_inode include/linux/dcache.h:519 [inline]
      	RIP: 0010:touch_atime+0x25/0xd0 fs/inode.c:1724
      	[...]
      	Call Trace:
      	 file_accessed include/linux/fs.h:2063 [inline]
      	 shmem_mmap+0x25/0x40 mm/shmem.c:2149
      	 call_mmap include/linux/fs.h:1789 [inline]
      	 shm_mmap+0x34/0x80 ipc/shm.c:465
      	 call_mmap include/linux/fs.h:1789 [inline]
      	 mmap_region+0x309/0x5b0 mm/mmap.c:1712
      	 do_mmap+0x294/0x4a0 mm/mmap.c:1483
      	 do_mmap_pgoff include/linux/mm.h:2235 [inline]
      	 SYSC_remap_file_pages mm/mmap.c:2853 [inline]
      	 SyS_remap_file_pages+0x232/0x310 mm/mmap.c:2769
      	 do_syscall_64+0x64/0x1a0 arch/x86/entry/common.c:287
      	 entry_SYSCALL_64_after_hwframe+0x42/0xb7
      
      [ebiggers@google.com: add comment]
        Link: http://lkml.kernel.org/r/20180410192850.235835-1-ebiggers3@gmail.com
      Link: http://lkml.kernel.org/r/20180409043039.28915-1-ebiggers3@gmail.com
      Reported-by: syzbot+d11f321e7f1923157eac80aa990b446596f46439@syzkaller.appspotmail.com
      Fixes: c8d78c18 ("mm: replace remap_file_pages() syscall with emulation")
      Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
      Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Acked-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Cc: Manfred Spraul <manfred@colorfullife.com>
      Cc: "Eric W . Biederman" <ebiederm@xmission.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3f05317d
    • Arnd Bergmann's avatar
      mm/filemap.c: provide dummy filemap_page_mkwrite() for NOMMU · 45397228
      Arnd Bergmann authored
      Building orangefs on MMU-less machines now results in a link error
      because of the newly introduced use of the filemap_page_mkwrite()
      function:
      
        ERROR: "filemap_page_mkwrite" [fs/orangefs/orangefs.ko] undefined!
      
      This adds a dummy version for it, similar to the existing
      generic_file_mmap and generic_file_readonly_mmap stubs in the same file,
      to avoid the link error without adding #ifdefs in each file system that
      uses these.
      
      Link: http://lkml.kernel.org/r/20180409105555.2439976-1-arnd@arndb.de
      Fixes: a5135eea ("orangefs: implement vm_ops->fault")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Martin Brandenburg <martin@omnibond.com>
      Cc: Mike Marshall <hubcap@omnibond.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      45397228
    • Michael S. Tsirkin's avatar
      mm/gup.c: document return value · d0811078
      Michael S. Tsirkin authored
      __get_user_pages_fast handles errors differently from
      get_user_pages_fast: the former always returns the number of pages
      pinned, the later might return a negative error code.
      
      Link: http://lkml.kernel.org/r/1522962072-182137-6-git-send-email-mst@redhat.comSigned-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Huang Ying <ying.huang@intel.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Thorsten Leemhuis <regressions@leemhuis.info>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d0811078
    • Michael S. Tsirkin's avatar
      get_user_pages_fast(): return -EFAULT on access_ok failure · c61611f7
      Michael S. Tsirkin authored
      get_user_pages_fast is supposed to be a faster drop-in equivalent of
      get_user_pages.  As such, callers expect it to return a negative return
      code when passed an invalid address, and never expect it to return 0
      when passed a positive number of pages, since its documentation says:
      
       * Returns number of pages pinned. This may be fewer than the number
       * requested. If nr_pages is 0 or negative, returns 0. If no pages
       * were pinned, returns -errno.
      
      When get_user_pages_fast fall back on get_user_pages this is exactly
      what happens.  Unfortunately the implementation is inconsistent: it
      returns 0 if passed a kernel address, confusing callers: for example,
      the following is pretty common but does not appear to do the right thing
      with a kernel address:
      
              ret = get_user_pages_fast(addr, 1, writeable, &page);
              if (ret < 0)
                      return ret;
      
      Change get_user_pages_fast to return -EFAULT when supplied a kernel
      address to make it match expectations.
      
      All callers have been audited for consistency with the documented
      semantics.
      
      Link: http://lkml.kernel.org/r/1522962072-182137-4-git-send-email-mst@redhat.com
      Fixes: 5b65c467 ("mm, x86/mm: Fix performance regression in get_user_pages_fast()")
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Reported-by: syzbot+6304bf97ef436580fede@syzkaller.appspotmail.com
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Huang Ying <ying.huang@intel.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Thorsten Leemhuis <regressions@leemhuis.info>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c61611f7
    • Michael S. Tsirkin's avatar
      mm/gup_benchmark: handle gup failures · 09e35a4a
      Michael S. Tsirkin authored
      Patch series "mm/get_user_pages_fast fixes, cleanups", v2.
      
      Turns out get_user_pages_fast and __get_user_pages_fast return different
      values on error when given a single page: __get_user_pages_fast returns
      0.  get_user_pages_fast returns either 0 or an error.
      
      Callers of get_user_pages_fast expect an error so fix it up to return an
      error consistently.
      
      Stress the difference between get_user_pages_fast and
      __get_user_pages_fast to make sure callers aren't confused.
      
      This patch (of 3):
      
      __gup_benchmark_ioctl does not handle the case where get_user_pages_fast
      fails:
      
       - a negative return code will cause a buffer overrun
      
       - returning with partial success will cause use of uninitialized
         memory.
      
      [akpm@linux-foundation.org: simplification]
      Link: http://lkml.kernel.org/r/1522962072-182137-3-git-send-email-mst@redhat.comSigned-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Huang Ying <ying.huang@intel.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Thorsten Leemhuis <regressions@leemhuis.info>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      09e35a4a
    • Takashi Iwai's avatar
      resource: fix integer overflow at reallocation · 60bb83b8
      Takashi Iwai authored
      We've got a bug report indicating a kernel panic at booting on an x86-32
      system, and it turned out to be the invalid PCI resource assigned after
      reallocation.  __find_resource() first aligns the resource start address
      and resets the end address with start+size-1 accordingly, then checks
      whether it's contained.  Here the end address may overflow the integer,
      although resource_contains() still returns true because the function
      validates only start and end address.  So this ends up with returning an
      invalid resource (start > end).
      
      There was already an attempt to cover such a problem in the commit
      47ea91b4 ("Resource: fix wrong resource window calculation"), but
      this case is an overseen one.
      
      This patch adds the validity check of the newly calculated resource for
      avoiding the integer overflow problem.
      
      Bugzilla: http://bugzilla.opensuse.org/show_bug.cgi?id=1086739
      Link: http://lkml.kernel.org/r/s5hpo37d5l8.wl-tiwai@suse.de
      Fixes: 23c570a6 ("resource: ability to resize an allocated resource")
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Reported-by: default avatarMichael Henders <hendersm@shaw.ca>
      Tested-by: default avatarMichael Henders <hendersm@shaw.ca>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Ram Pai <linuxram@us.ibm.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      60bb83b8
  2. 13 Apr, 2018 5 commits
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-for-v4.17-rc1' of git://people.freedesktop.org/~airlied/linux · 16e205cf
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "One omap, and one alsa pm fix (we merged the breaking patch via drm
        tree).
      
        Otherwise it's two bunches of amdgpu fixes, removing an unneeded file,
        some DC fixes, HDMI audio regression fix, and some vega12 fixes"
      
      * tag 'drm-fixes-for-v4.17-rc1' of git://people.freedesktop.org/~airlied/linux: (27 commits)
        Revert "drm/amd/display: disable CRTCs with NULL FB on their primary plane (V2)"
        Revert "drm/amd/display: fix dereferencing possible ERR_PTR()"
        drm/amd/display: Fix regamma not affecting full-intensity color values
        drm/amd/display: Fix FBC text console corruption
        drm/amd/display: Only register backlight device if embedded panel connected
        drm/amd/display: fix brightness level after resume from suspend
        drm/amd/display: HDMI has no sound after Panel power off/on
        drm/amdgpu: add MP1 and THM hw ip base reg offset
        drm/amdgpu: fix null pointer panic with direct fw loading on gpu reset
        drm/radeon: add PX quirk for Asus K73TK
        drm/omap: fix crash if there's no video PLL
        drm/amdgpu: Fix memory leaks at amdgpu_init() error path
        drm/amdgpu: Fix PCIe lane width calculation
        drm/radeon: Fix PCIe lane width calculation
        drm/amdgpu/si: implement get/set pcie_lanes asic callback
        drm/amdgpu: Add support for SRBM selection v3
        Revert "drm/amdgpu: Don't change preferred domian when fallback GTT v5"
        drm/amd/powerply: fix power reading on Fiji
        drm/amd/powerplay: Enable ACG SS feature
        drm/amdgpu/sdma: fix mask in emit_pipeline_sync
        ...
      16e205cf
    • Linus Torvalds's avatar
      Merge tag 'trace-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · affb0280
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
       "A few clean ups and bug fixes:
      
         - replace open coded "ARRAY_SIZE()" with macro
      
         - updates to uprobes
      
         - bug fix for perf event filter on error path"
      
      * tag 'trace-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Enforce passing in filter=NULL to create_filter()
        trace_uprobe: Simplify probes_seq_show()
        trace_uprobe: Use %lx to display offset
        tracing/uprobe: Add support for overlayfs
        tracing: Use ARRAY_SIZE() macro instead of open coding it
      affb0280
    • Alexey Dobriyan's avatar
      proc: fixup copyright sign · ee9294d6
      Alexey Dobriyan authored
      Add copyright in two files before they get autorubberstamped.
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ee9294d6
    • Linus Torvalds's avatar
      Merge tag 'pci-v4.17-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 0c314a95
      Linus Torvalds authored
      Pull PCI fixes from Bjorn Helgaas:
      
       - mark Extended Tags as broken on Broadcom HT1100 and HT2000 Root Ports
         to fix drm/Xorg hangs and unresponsive keyboards (Sinan Kaya)
      
       - remove useless messages during resource reassignment (Desnes A. Nunes
         do Rosario)
      
      * tag 'pci-v4.17-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        PCI: Remove messages about reassigning resources
        PCI: Mark Broadcom HT1100 and HT2000 Root Port Extended Tags as broken
      0c314a95
    • Linus Torvalds's avatar
      Merge branch 'parisc-4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 681857ef
      Linus Torvalds authored
      Pull parisc updates from Helge Deller:
      
       - fix panic when halting system via "shutdown -h now"
      
       - drop own coding in favour of generic CONFIG_COMPAT_BINFMT_ELF
         implementation
      
       - add FPE_CONDTRAP constant: last outstanding parisc-specific cleanup
         for Eric Biedermans siginfo patches
      
       - move some functions to .init and some to .text.hot linker sections
      
      * 'parisc-4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Prevent panic at system halt
        parisc: Switch to generic COMPAT_BINFMT_ELF
        parisc: Move cache flush functions into .text.hot section
        parisc/signal: Add FPE_CONDTRAP for conditional trap handling
      681857ef
  3. 12 Apr, 2018 25 commits
    • Dave Airlie's avatar
      Merge branch 'drm-next-4.17' of git://people.freedesktop.org/~agd5f/linux into drm-next · a10beabb
      Dave Airlie authored
      - Add a PX quirk for radeon
      - Fix flickering and stability issues with DC on some platforms
      - Fix HDMI audio regression
      - Few other misc DC and base driver fixes
      
      * 'drm-next-4.17' of git://people.freedesktop.org/~agd5f/linux:
        Revert "drm/amd/display: disable CRTCs with NULL FB on their primary plane (V2)"
        Revert "drm/amd/display: fix dereferencing possible ERR_PTR()"
        drm/amd/display: Fix regamma not affecting full-intensity color values
        drm/amd/display: Fix FBC text console corruption
        drm/amd/display: Only register backlight device if embedded panel connected
        drm/amd/display: fix brightness level after resume from suspend
        drm/amd/display: HDMI has no sound after Panel power off/on
        drm/amdgpu: add MP1 and THM hw ip base reg offset
        drm/amdgpu: fix null pointer panic with direct fw loading on gpu reset
        drm/radeon: add PX quirk for Asus K73TK
      a10beabb
    • Dave Airlie's avatar
      Merge tag 'drm-misc-next-fixes-2018-04-11' of... · dece02f7
      Dave Airlie authored
      Merge tag 'drm-misc-next-fixes-2018-04-11' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
      
      omap: Fix crash on AM4 EVM, and all OMAP2/3 boards (Tomi)
      
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      
      * tag 'drm-misc-next-fixes-2018-04-11' of git://anongit.freedesktop.org/drm/drm-misc:
        drm/omap: fix crash if there's no video PLL
      dece02f7
    • Linus Torvalds's avatar
      Merge tag 'xfs-4.17-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 80aa76bc
      Linus Torvalds authored
      Pull more xfs updates from Darrick Wong:
       "Most of these are code cleanups, but there are a couple of notable
        use-after-free bug fixes.
      
        This series has been run through a full xfstests run over the week and
        through a quick xfstests run against this morning's master, with no
        major failures reported.
      
         - clean up unnecessary function call parameters
      
         - fix a use-after-free bug when aborting logging intents
      
         - refactor filestreams state data to avoid use-after-free bug
      
         - fix incorrect removal of cow extents when truncating extended
           attributes.
      
         - refactor open-coded __set_page_dirty in favor of using vfs
           function.
      
         - fix a deadlock when fstrim and fs shutdown race"
      
      * tag 'xfs-4.17-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        Force log to disk before reading the AGF during a fstrim
        Export __set_page_dirty
        xfs: only cancel cow blocks when truncating the data fork
        xfs: non-scrub - remove unused function parameters
        xfs: remove filestream item xfs_inode reference
        xfs: fix intent use-after-free on abort
        xfs: Remove "committed" argument of xfs_dir_ialloc
      80aa76bc
    • Linus Torvalds's avatar
      Merge tag 'gfs2-4.17.fixes2' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 4ac1800f
      Linus Torvalds authored
      Pull more gfs2 updates from Bob Peterson:
       "We decided to request the latest three patches to be merged into this
        merge window while it's still open.
      
         - The first patch adds a new function to lockref:
           lockref_put_not_zero
      
         - The second patch fixes GFS2's glock dump code so it uses the new
           lockref function. This fixes a problem whereby lock dumps could
           miss glocks.
      
         - I made a minor patch to update some comments and fix the lock
           ordering text in our gfs2-glocks.txt Documentation file"
      
      * tag 'gfs2-4.17.fixes2' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        GFS2: Minor improvements to comments and documentation
        gfs2: Stop using rhashtable_walk_peek
        lockref: Add lockref_put_not_zero
      4ac1800f
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-4.17-1' of git://git.linux-nfs.org/projects/anna/linux-nfs · a1bf4c7d
      Linus Torvalds authored
      Pull NFS client updates from Anna Schumaker:
       "Stable bugfixes:
         - xprtrdma: Fix corner cases when handling device removal # v4.12+
         - xprtrdma: Fix latency regression on NUMA NFS/RDMA clients # v4.15+
      
        Features:
         - New sunrpc tracepoint for RPC pings
         - Finer grained NFSv4 attribute checking
         - Don't unnecessarily return NFS v4 delegations
      
        Other bugfixes and cleanups:
         - Several other small NFSoRDMA cleanups
         - Improvements to the sunrpc RTT measurements
         - A few sunrpc tracepoint cleanups
         - Various fixes for NFS v4 lock notifications
         - Various sunrpc and NFS v4 XDR encoding cleanups
         - Switch to the ida_simple API
         - Fix NFSv4.1 exclusive create
         - Forget acl cache after setattr operation
         - Don't advance the nfs_entry readdir cookie if xdr decoding fails"
      
      * tag 'nfs-for-4.17-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (47 commits)
        NFS: advance nfs_entry cookie only after decoding completes successfully
        NFSv3/acl: forget acl cache after setattr
        NFSv4.1: Fix exclusive create
        NFSv4: Declare the size up to date after it was set.
        nfs: Use ida_simple API
        NFSv4: Fix the nfs_inode_set_delegation() arguments
        NFSv4: Clean up CB_GETATTR encoding
        NFSv4: Don't ask for attributes when ACCESS is protected by a delegation
        NFSv4: Add a helper to encode/decode struct timespec
        NFSv4: Clean up encode_attrs
        NFSv4; Clean up XDR encoding of type bitmap4
        NFSv4: Allow GFP_NOIO sleeps in decode_attr_owner/decode_attr_group
        SUNRPC: Add a helper for encoding opaque data inline
        SUNRPC: Add helpers for decoding opaque and string types
        NFSv4: Ignore change attribute invalidations if we hold a delegation
        NFS: More fine grained attribute tracking
        NFS: Don't force unnecessary cache invalidation in nfs_update_inode()
        NFS: Don't redirty the attribute cache in nfs_wcc_update_inode()
        NFS: Don't force a revalidation of all attributes if change is missing
        NFS: Convert NFS_INO_INVALID flags to unsigned long
        ...
      a1bf4c7d
    • Linus Torvalds's avatar
      Merge branch 'work.thaw' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 7214dd4e
      Linus Torvalds authored
      Pull vfs thaw updates from Al Viro:
       "An ancient series that has fallen through the cracks in the previous
        cycle"
      
      * 'work.thaw' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        buffer.c: call thaw_super during emergency thaw
        vfs: factor sb iteration out of do_emergency_remount
      7214dd4e
    • Harry Wentland's avatar
      Revert "drm/amd/display: disable CRTCs with NULL FB on their primary plane (V2)" · 1cb19e82
      Harry Wentland authored
      This seems to cause flickering and lock-ups for a wide range of users.
      Revert until we've found a proper fix for the flickering and lock-ups.
      
      This reverts commit 36cc549d.
      
      Cc: Shirish S <shirish.s@amd.com>
      Cc: Alex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarMichel Dänzer <michel.daenzer@amd.com>
      Signed-off-by: default avatarHarry Wentland <harry.wentland@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      1cb19e82
    • Linus Torvalds's avatar
      Merge branch 'afs-dh' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 19e8a2f8
      Linus Torvalds authored
      Pull AFS updates from Al Viro:
       "The AFS series posted by dhowells depended upon lookup_one_len()
        rework; now that prereq is in the mainline, that series had been
        rebased on top of it and got some exposure and testing..."
      
      * 'afs-dh' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        afs: Do better accretion of small writes on newly created content
        afs: Add stats for data transfer operations
        afs: Trace protocol errors
        afs: Locally edit directory data for mkdir/create/unlink/...
        afs: Adjust the directory XDR structures
        afs: Split the directory content defs into a header
        afs: Fix directory handling
        afs: Split the dynroot stuff out and give it its own ops tables
        afs: Keep track of invalid-before version for dentry coherency
        afs: Rearrange status mapping
        afs: Make it possible to get the data version in readpage
        afs: Init inode before accessing cache
        afs: Introduce a statistics proc file
        afs: Dump bad status record
        afs: Implement @cell substitution handling
        afs: Implement @sys substitution handling
        afs: Prospectively look up extra files when doing a single lookup
        afs: Don't over-increment the cell usage count when pinning it
        afs: Fix checker warnings
        vfs: Remove the const from dir_context::actor
      19e8a2f8
    • Harry Wentland's avatar
      Revert "drm/amd/display: fix dereferencing possible ERR_PTR()" · 1bc8ffbd
      Harry Wentland authored
      This reverts commit cd2d6c92.
      
      Cc: Shirish S <shirish.s@amd.com>
      Cc: Alex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarMichel Dänzer <michel.daenzer@amd.com>
      Signed-off-by: default avatarHarry Wentland <harry.wentland@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      1bc8ffbd
    • Leo (Sunpeng) Li's avatar
      drm/amd/display: Fix regamma not affecting full-intensity color values · b2f3f592
      Leo (Sunpeng) Li authored
      Hardware understands the regamma LUT as a piecewise linear function,
      with points spaced exponentially along the range. We previously
      programmed the LUT for range [2^-10, 2^0). This causes (normalized)
      color values of 1 (=2^0) to miss the programmed LUT, and fall onto the
      end region.
      
      For DCE, the end region is extrapolated using a single (base, slope)
      pair, using the max y-value from the last point in the curve as base.
      This presents a problem, since this value affects all three color
      channels. Scaling down the intensity of say - the blue regamma curve -
      will not affect it's end region. This is especially noticiable when
      using RedShift. It scales down the blue and green channels, but leaves
      full-intensity colors unshifted.
      
      Therefore, extend the range to cover [2^-10, 2^1) by programming another
      hardware segment, containing only one point. That way, we won't be
      hitting the end region.
      
      Note that things are a bit different for DCN, since the end region can
      be set per-channel.
      Signed-off-by: default avatarLeo (Sunpeng) Li <sunpeng.li@amd.com>
      Reviewed-by: default avatarKrunoslav Kovac <Krunoslav.Kovac@amd.com>
      Acked-by: default avatarHarry Wentland <harry.wentland@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      b2f3f592
    • Roman Li's avatar
    • Harry Wentland's avatar
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 5d136594
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) In ip_gre tunnel, handle the conflict between TUNNEL_{SEQ,CSUM} and
          GSO/LLTX properly. From Sabrina Dubroca.
      
       2) Stop properly on error in lan78xx_read_otp(), from Phil Elwell.
      
       3) Don't uncompress in slip before rstate is initialized, from Tejaswi
          Tanikella.
      
       4) When using 1.x firmware on aquantia, issue a deinit before we
          hardware reset the chip, otherwise we break dirty wake WOL. From
          Igor Russkikh.
      
       5) Correct log check in vhost_vq_access_ok(), from Stefan Hajnoczi.
      
       6) Fix ethtool -x crashes in bnxt_en, from Michael Chan.
      
       7) Fix races in l2tp tunnel creation and duplicate tunnel detection,
          from Guillaume Nault.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (22 commits)
        l2tp: fix race in duplicate tunnel detection
        l2tp: fix races in tunnel creation
        tun: send netlink notification when the device is modified
        tun: set the flags before registering the netdevice
        lan78xx: Don't reset the interface on open
        bnxt_en: Fix NULL pointer dereference at bnxt_free_irq().
        bnxt_en: Need to include RDMA rings in bnxt_check_rings().
        bnxt_en: Support max-mtu with VF-reps
        bnxt_en: Ignore src port field in decap filter nodes
        bnxt_en: do not allow wildcard matches for L2 flows
        bnxt_en: Fix ethtool -x crash when device is down.
        vhost: return bool from *_access_ok() functions
        vhost: fix vhost_vq_access_ok() log check
        vhost: Fix vhost_copy_to_user()
        net: aquantia: oops when shutdown on already stopped device
        net: aquantia: Regression on reset with 1.x firmware
        cdc_ether: flag the Cinterion AHS8 modem by gemalto as WWAN
        slip: Check if rstate is initialized before uncompressing
        lan78xx: Avoid spurious kevent 4 "error"
        lan78xx: Correctly indicate invalid OTP
        ...
      5d136594
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.17-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 67a7a8ff
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
       "A few fixes of Xen related core code and drivers"
      
      * tag 'for-linus-4.17-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen/pvh: Indicate XENFEAT_linux_rsdp_unrestricted to Xen
        xen/acpi: off by one in read_acpi_id()
        xen/acpi: upload _PSD info for non Dom0 CPUs too
        x86/xen: Delay get_cpu_cap until stack canary is established
        xen: xenbus_dev_frontend: Verify body of XS_TRANSACTION_END
        xen: xenbus: Catch closing of non existent transactions
        xen: xenbus_dev_frontend: Fix XS_TRANSACTION_END handling
      67a7a8ff
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-4.17-2' of git://git.infradead.org/users/hch/dma-mapping · c5c177c5
      Linus Torvalds authored
      Pull dma-mapping fix from Christoph Hellwig:
       "Fix for one swiotlb regression in 2.16 from Takashi"
      
      * tag 'dma-mapping-4.17-2' of git://git.infradead.org/users/hch/dma-mapping:
        swiotlb: fix unexpected swiotlb_alloc_coherent failures
      c5c177c5
    • Linus Torvalds's avatar
      Merge tag 'mmc-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · d1cb7718
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
       "MMC core:
         - Prevent bus reference leak in mmc_blk_init()
      
        MMC host:
         - tmio: Fix error handling when issuing CMD23
         - jz4740: Fix race condition in IRQ mask update"
      
      * tag 'mmc-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: tmio: Fix error handling when issuing CMD23
        mmc: core: Prevent bus reference leak in mmc_blk_init()
        mmc: jz4740: Fix race condition in IRQ mask update
      d1cb7718
    • Linus Torvalds's avatar
      Merge tag 'for_linus-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb · cb098d50
      Linus Torvalds authored
      Pull kdb updates from Jason Wessel:
      
       - fix 2032 time access issues and new compiler warnings
      
       - minor regression test cleanup
      
       - formatting fixes for end user use of kdb
      
      * tag 'for_linus-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb:
        kdb: use memmove instead of overlapping memcpy
        kdb: use ktime_get_mono_fast_ns() instead of ktime_get_ts()
        kdb: bl: don't use tab character in output
        kdb: drop newline in unknown command output
        kdb: make "mdr" command repeat
        kdb: use __ktime_get_real_seconds instead of __current_kernel_time
        misc: kgdbts: Display progress of asynchronous tests
      cb098d50
    • Linus Torvalds's avatar
      Merge tag 'microblaze-4.17-rc1' of git://git.monstr.eu/linux-2.6-microblaze · 07820c3b
      Linus Torvalds authored
      Pull microblaze updates from Michal Simek:
       "Use generic pci_mmap_resource_range()"
      
      * tag 'microblaze-4.17-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Use generic pci_mmap_resource_range()
        microblaze: Provide pgprot_device/writecombine macros for nommu
      07820c3b
    • Bob Peterson's avatar
      GFS2: Minor improvements to comments and documentation · 3e7aafc3
      Bob Peterson authored
      This patch simply fixes some comments and the gfs2-glocks.txt file:
      Places where i_rwsem was called i_mutex, and adding i_rw_mutex.
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      3e7aafc3
    • Andreas Gruenbacher's avatar
      gfs2: Stop using rhashtable_walk_peek · 3fd5d3ad
      Andreas Gruenbacher authored
      Function rhashtable_walk_peek is problematic because there is no
      guarantee that the glock previously returned still exists; when that key
      is deleted, rhashtable_walk_peek can end up returning a different key,
      which will cause an inconsistent glock dump.  Fix this by keeping track
      of the current glock in the seq file iterator functions instead.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      3fd5d3ad
    • Andreas Gruenbacher's avatar
      lockref: Add lockref_put_not_zero · 450b1f6f
      Andreas Gruenbacher authored
      Put a lockref unless the lockref is dead or its count would become zero.
      This is the same as lockref_put_or_lock except that the lock is never
      left held.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      450b1f6f
    • Linus Torvalds's avatar
      Merge tag 'asm-generic' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic · c17b0aad
      Linus Torvalds authored
      Pull asm-generic fixes from Arnd Bergmann:
       "I have one regression fix for a minor build problem after the
        architecture removal series, plus a rework of the barriers in the
        readl/writel functions, thanks to work by Sinan Kaya:
      
        This started from a discussion on the linuxpcc and rdma mailing
        lists[1]. To summarize, we decided that architectures are responsible
        to serialize readl() and writel() accesses on a device MMIO space
        relative to DMA performed by that device.
      
        This series provides a pessimistic implementation of that behavior for
        asm-generic/io.h, which is in turn used by a number of architectures
        (h8300, microblaze, nios2, openrisc, s390, sparc, um, unicore32, and
        xtensa). Some of those presumably need no extra barriers, or something
        weaker than rmb()/wmb(), and they are advised to override the new
        default for better performance.
      
        For inb()/outb(), the same barriers are used, but architectures might
        want to add another barrier to outb() here if that can guarantee
        non-posted behavior (some architectures can, others cannot do that).
      
        The readl_relaxed()/writel_relaxed() family of functions retains the
        existing behavior with no extra barriers"
      
      [1] https://lists.ozlabs.org/pipermail/linuxppc-dev/2018-March/170481.html
      
      * tag 'asm-generic' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
        io: change writeX_relaxed() to remove barriers
        io: change readX_relaxed() to remove barriers
        dts: remove cris & metag dts hard link file
        io: change inX() to have their own IO barrier overrides
        io: change outX() to have their own IO barrier overrides
        io: define stronger ordering for the default writeX() implementation
        io: define stronger ordering for the default readX() implementation
        io: define several IO & PIO barrier types for the asm-generic version
      c17b0aad
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · e241e3f2
      Linus Torvalds authored
      Pull virtio update from Michael Tsirkin:
       "This adds reporting hugepage stats to virtio-balloon"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        virtio_balloon: export hugetlb page allocation counts
      e241e3f2
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · e5c37228
      Linus Torvalds authored
      Pull IOMMU updates from Joerg Roedel:
      
       - OF_IOMMU support for the Rockchip iommu driver so that it can use
         generic DT bindings
      
       - rework of locking in the AMD IOMMU interrupt remapping code to make
         it work better in RT kernels
      
       - support for improved iotlb flushing in the AMD IOMMU driver
      
       - support for 52-bit physical and virtual addressing in the ARM-SMMU
      
       - various other small fixes and cleanups
      
      * tag 'iommu-updates-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (53 commits)
        iommu/io-pgtable-arm: Avoid warning with 32-bit phys_addr_t
        iommu/rockchip: Support sharing IOMMU between masters
        iommu/rockchip: Add runtime PM support
        iommu/rockchip: Fix error handling in init
        iommu/rockchip: Use OF_IOMMU to attach devices automatically
        iommu/rockchip: Use IOMMU device for dma mapping operations
        dt-bindings: iommu/rockchip: Add clock property
        iommu/rockchip: Control clocks needed to access the IOMMU
        iommu/rockchip: Fix TLB flush of secondary IOMMUs
        iommu/rockchip: Use iopoll helpers to wait for hardware
        iommu/rockchip: Fix error handling in attach
        iommu/rockchip: Request irqs in rk_iommu_probe()
        iommu/rockchip: Fix error handling in probe
        iommu/rockchip: Prohibit unbind and remove
        iommu/amd: Return proper error code in irq_remapping_alloc()
        iommu/amd: Make amd_iommu_devtable_lock a spin_lock
        iommu/amd: Drop the lock while allocating new irq remap table
        iommu/amd: Factor out setting the remap table for a devid
        iommu/amd: Use `table' instead `irt' as variable name in amd_iommu_update_ga()
        iommu/amd: Remove the special case from alloc_irq_table()
        ...
      e5c37228
    • Linus Torvalds's avatar
      Merge tag 'pm-4.17-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 1fe43114
      Linus Torvalds authored
      Pull more power management updates from Rafael Wysocki:
       "These include one big-ticket item which is the rework of the idle loop
        in order to prevent CPUs from spending too much time in shallow idle
        states. It reduces idle power on some systems by 10% or more and may
        improve performance of workloads in which the idle loop overhead
        matters. This has been in the works for several weeks and it has been
        tested and reviewed quite thoroughly.
      
        Also included are changes that finalize the cpufreq cleanup moving
        frequency table validation from drivers to the core, a few fixes and
        cleanups of cpufreq drivers, a cpuidle documentation update and a PM
        QoS core update to mark the expected switch fall-throughs in it.
      
        Specifics:
      
         - Rework the idle loop in order to prevent CPUs from spending too
           much time in shallow idle states by making it stop the scheduler
           tick before putting the CPU into an idle state only if the idle
           duration predicted by the idle governor is long enough.
      
           That required the code to be reordered to invoke the idle governor
           before stopping the tick, among other things (Rafael Wysocki,
           Frederic Weisbecker, Arnd Bergmann).
      
         - Add the missing description of the residency sysfs attribute to the
           cpuidle documentation (Prashanth Prakash).
      
         - Finalize the cpufreq cleanup moving frequency table validation from
           drivers to the core (Viresh Kumar).
      
         - Fix a clock leak regression in the armada-37xx cpufreq driver
           (Gregory Clement).
      
         - Fix the initialization of the CPU performance data structures for
           shared policies in the CPPC cpufreq driver (Shunyong Yang).
      
         - Clean up the ti-cpufreq, intel_pstate and CPPC cpufreq drivers a
           bit (Viresh Kumar, Rafael Wysocki).
      
         - Mark the expected switch fall-throughs in the PM QoS core (Gustavo
           Silva)"
      
      * tag 'pm-4.17-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (23 commits)
        tick-sched: avoid a maybe-uninitialized warning
        cpufreq: Drop cpufreq_table_validate_and_show()
        cpufreq: SCMI: Don't validate the frequency table twice
        cpufreq: CPPC: Initialize shared perf capabilities of CPUs
        cpufreq: armada-37xx: Fix clock leak
        cpufreq: CPPC: Don't set transition_latency
        cpufreq: ti-cpufreq: Use builtin_platform_driver()
        cpufreq: intel_pstate: Do not include debugfs.h
        PM / QoS: mark expected switch fall-throughs
        cpuidle: Add definition of residency to sysfs documentation
        time: hrtimer: Use timerqueue_iterate_next() to get to the next timer
        nohz: Avoid duplication of code related to got_idle_tick
        nohz: Gather tick_sched booleans under a common flag field
        cpuidle: menu: Avoid selecting shallow states with stopped tick
        cpuidle: menu: Refine idle state selection for running tick
        sched: idle: Select idle state before stopping the tick
        time: hrtimer: Introduce hrtimer_next_event_without()
        time: tick-sched: Split tick_nohz_stop_sched_tick()
        cpuidle: Return nohz hint from cpuidle_select()
        jiffies: Introduce USER_TICK_USEC and redefine TICK_USEC
        ...
      1fe43114