1. 13 Feb, 2018 7 commits
    • Tony Luck's avatar
      x86/mm, mm/hwpoison: Don't unconditionally unmap kernel 1:1 pages · fd0e786d
      Tony Luck authored
      In the following commit:
      
        ce0fa3e5 ("x86/mm, mm/hwpoison: Clear PRESENT bit for kernel 1:1 mappings of poison pages")
      
      ... we added code to memory_failure() to unmap the page from the
      kernel 1:1 virtual address space to avoid speculative access to the
      page logging additional errors.
      
      But memory_failure() may not always succeed in taking the page offline,
      especially if the page belongs to the kernel.  This can happen if
      there are too many corrected errors on a page and either mcelog(8)
      or drivers/ras/cec.c asks to take a page offline.
      
      Since we remove the 1:1 mapping early in memory_failure(), we can
      end up with the page unmapped, but still in use. On the next access
      the kernel crashes :-(
      
      There are also various debug paths that call memory_failure() to simulate
      occurrence of an error. Since there is no actual error in memory, we
      don't need to map out the page for those cases.
      
      Revert most of the previous attempt and keep the solution local to
      arch/x86/kernel/cpu/mcheck/mce.c. Unmap the page only when:
      
      	1) there is a real error
      	2) memory_failure() succeeds.
      
      All of this only applies to 64-bit systems. 32-bit kernel doesn't map
      all of memory into kernel space. It isn't worth adding the code to unmap
      the piece that is mapped because nobody would run a 32-bit kernel on a
      machine that has recoverable machine checks.
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Dave <dave.hansen@intel.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: Josh Poimboeuf <jpoimboe@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Robert (Persistent Memory) <elliott@hpe.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-mm@kvack.org
      Cc: stable@vger.kernel.org #v4.14
      Fixes: ce0fa3e5 ("x86/mm, mm/hwpoison: Clear PRESENT bit for kernel 1:1 mappings of poison pages")
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      fd0e786d
    • Arnd Bergmann's avatar
      x86/error_inject: Make just_return_func() globally visible · 01684e72
      Arnd Bergmann authored
      With link time optimizations enabled, I get a link failure:
      
        ./ccLbOEHX.ltrans19.ltrans.o: In function `override_function_with_return':
        <artificial>:(.text+0x7f3): undefined reference to `just_return_func'
      
      Marking the symbol .globl makes it work as expected.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
      Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Cc: Josef Bacik <jbacik@fb.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Nicolas Pitre <nico@linaro.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Fixes: 540adea3 ("error-injection: Separate error-injection from kprobe")
      Link: http://lkml.kernel.org/r/20180202145634.200291-3-arnd@arndb.deSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      01684e72
    • mike.travis@hpe.com's avatar
      x86/platform/UV: Fix GAM Range Table entries less than 1GB · c25d99d2
      mike.travis@hpe.com authored
      The latest UV platforms include the new ApachePass NVDIMMs into the
      UV address space.  This has introduced address ranges in the Global
      Address Map Table that are less than the previous lowest range, which
      was 2GB.  Fix the address calculation so it accommodates address ranges
      from bytes to exabytes.
      Signed-off-by: default avatarMike Travis <mike.travis@hpe.com>
      Reviewed-by: default avatarAndrew Banman <andrew.banman@hpe.com>
      Reviewed-by: default avatarDimitri Sivanich <dimitri.sivanich@hpe.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Russ Anderson <russ.anderson@hpe.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/20180205221503.190219903@stormcage.americas.sgi.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      c25d99d2
    • Progyan Bhattacharya's avatar
      x86/build: Add arch/x86/tools/insn_decoder_test to .gitignore · 74eb816b
      Progyan Bhattacharya authored
      The file was generated by make command and should not be in the source tree.
      Signed-off-by: default avatarProgyan Bhattacharya <progyanb@acm.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      74eb816b
    • Masayoshi Mizuma's avatar
      x86/smpboot: Fix uncore_pci_remove() indexing bug when hot-removing a physical CPU · 295cc7eb
      Masayoshi Mizuma authored
      When a physical CPU is hot-removed, the following warning messages
      are shown while the uncore device is removed in uncore_pci_remove():
      
        WARNING: CPU: 120 PID: 5 at arch/x86/events/intel/uncore.c:988
        uncore_pci_remove+0xf1/0x110
        ...
        CPU: 120 PID: 5 Comm: kworker/u1024:0 Not tainted 4.15.0-rc8 #1
        Workqueue: kacpi_hotplug acpi_hotplug_work_fn
        ...
        Call Trace:
        pci_device_remove+0x36/0xb0
        device_release_driver_internal+0x145/0x210
        pci_stop_bus_device+0x76/0xa0
        pci_stop_root_bus+0x44/0x60
        acpi_pci_root_remove+0x1f/0x80
        acpi_bus_trim+0x54/0x90
        acpi_bus_trim+0x2e/0x90
        acpi_device_hotplug+0x2bc/0x4b0
        acpi_hotplug_work_fn+0x1a/0x30
        process_one_work+0x141/0x340
        worker_thread+0x47/0x3e0
        kthread+0xf5/0x130
      
      When uncore_pci_remove() runs, it tries to get the package ID to
      clear the value of uncore_extra_pci_dev[].dev[] by using
      topology_phys_to_logical_pkg(). The warning messesages are
      shown because topology_phys_to_logical_pkg() returns -1.
      
        arch/x86/events/intel/uncore.c:
        static void uncore_pci_remove(struct pci_dev *pdev)
        {
        ...
                phys_id = uncore_pcibus_to_physid(pdev->bus);
        ...
                        pkg = topology_phys_to_logical_pkg(phys_id); // returns -1
                        for (i = 0; i < UNCORE_EXTRA_PCI_DEV_MAX; i++) {
                                if (uncore_extra_pci_dev[pkg].dev[i] == pdev) {
                                        uncore_extra_pci_dev[pkg].dev[i] = NULL;
                                        break;
                                }
                        }
                        WARN_ON_ONCE(i >= UNCORE_EXTRA_PCI_DEV_MAX); // <=========== HERE!!
      
      topology_phys_to_logical_pkg() tries to find
      cpuinfo_x86->phys_proc_id that matches the phys_pkg argument.
      
        arch/x86/kernel/smpboot.c:
        int topology_phys_to_logical_pkg(unsigned int phys_pkg)
        {
                int cpu;
      
                for_each_possible_cpu(cpu) {
                        struct cpuinfo_x86 *c = &cpu_data(cpu);
      
                        if (c->initialized && c->phys_proc_id == phys_pkg)
                                return c->logical_proc_id;
                }
                return -1;
        }
      
      However, the phys_proc_id was already set to 0 by remove_siblinginfo()
      when the CPU was offlined.
      
      So, topology_phys_to_logical_pkg() cannot find the correct
      logical_proc_id and always returns -1.
      
      As the result, uncore_pci_remove() calls WARN_ON_ONCE() and the warning
      messages are shown.
      
      What is worse is that the bogus 'pkg' index results in two bugs:
      
       - We dereference uncore_extra_pci_dev[] with a negative index
       - We fail to clean up a stale pointer in uncore_extra_pci_dev[][]
      
      To fix these bugs, remove the clearing of ->phys_proc_id from remove_siblinginfo().
      
      This should not cause any problems, because ->phys_proc_id is not
      used after it is hot-removed and it is re-set while hot-adding.
      Signed-off-by: default avatarMasayoshi Mizuma <m.mizuma@jp.fujitsu.com>
      Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: yasu.isimatu@gmail.com
      Cc: <stable@vger.kernel.org>
      Fixes: 30bb9811 ("x86/topology: Avoid wasting 128k for package id array")
      Link: http://lkml.kernel.org/r/ed738d54-0f01-b38b-b794-c31dc118c207@gmail.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      295cc7eb
    • Jia Zhang's avatar
      x86/mm/kcore: Add vsyscall page to /proc/kcore conditionally · cd026ca2
      Jia Zhang authored
      The vsyscall page should be visible only if vsyscall=emulate/native when dumping /proc/kcore.
      Signed-off-by: default avatarJia Zhang <zhang.jia@linux.alibaba.com>
      Reviewed-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: jolsa@redhat.com
      Link: http://lkml.kernel.org/r/1518446694-21124-3-git-send-email-zhang.jia@linux.alibaba.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      cd026ca2
    • Jia Zhang's avatar
      vfs/proc/kcore, x86/mm/kcore: Fix SMAP fault when dumping vsyscall user page · 595dd46e
      Jia Zhang authored
      Commit:
      
        df04abfd ("fs/proc/kcore.c: Add bounce buffer for ktext data")
      
      ... introduced a bounce buffer to work around CONFIG_HARDENED_USERCOPY=y.
      However, accessing the vsyscall user page will cause an SMAP fault.
      
      Replace memcpy() with copy_from_user() to fix this bug works, but adding
      a common way to handle this sort of user page may be useful for future.
      
      Currently, only vsyscall page requires KCORE_USER.
      Signed-off-by: default avatarJia Zhang <zhang.jia@linux.alibaba.com>
      Reviewed-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: jolsa@redhat.com
      Link: http://lkml.kernel.org/r/1518446694-21124-2-git-send-email-zhang.jia@linux.alibaba.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      595dd46e
  2. 11 Feb, 2018 4 commits
  3. 08 Feb, 2018 19 commits
    • Linus Torvalds's avatar
      Merge tag 'nfsd-4.16' of git://linux-nfs.org/~bfields/linux · f1517df8
      Linus Torvalds authored
      Pull nfsd update from Bruce Fields:
       "A fairly small update this time around. Some cleanup, RDMA fixes,
        overlayfs fixes, and a fix for an NFSv4 state bug.
      
        The bigger deal for nfsd this time around was Jeff Layton's
        already-merged i_version patches"
      
      * tag 'nfsd-4.16' of git://linux-nfs.org/~bfields/linux:
        svcrdma: Fix Read chunk round-up
        NFSD: hide unused svcxdr_dupstr()
        nfsd: store stat times in fill_pre_wcc() instead of inode times
        nfsd: encode stat->mtime for getattr instead of inode->i_mtime
        nfsd: return RESOURCE not GARBAGE_ARGS on too many ops
        nfsd4: don't set lock stateid's sc_type to CLOSED
        nfsd: Detect unhashed stids in nfsd4_verify_open_stid()
        sunrpc: remove dead code in svc_sock_setbufsize
        svcrdma: Post Receives in the Receive completion handler
        nfsd4: permit layoutget of executable-only files
        lockd: convert nlm_rqst.a_count from atomic_t to refcount_t
        lockd: convert nlm_lockowner.count from atomic_t to refcount_t
        lockd: convert nsm_handle.sm_count from atomic_t to refcount_t
      f1517df8
    • Linus Torvalds's avatar
      Merge branch 'idr-2018-02-06' of git://git.infradead.org/users/willy/linux-dax · 9d21874d
      Linus Torvalds authored
      Pull idr updates from Matthew Wilcox:
      
       - test-suite improvements
      
       - replace the extended API by improving the normal API
      
       - performance improvement for IDRs which are 1-based rather than
         0-based
      
       - add documentation
      
      * 'idr-2018-02-06' of git://git.infradead.org/users/willy/linux-dax:
        idr: Add documentation
        idr: Make 1-based IDRs more efficient
        idr: Warn if old iterators see large IDs
        idr: Rename idr_for_each_entry_ext
        idr: Remove idr_alloc_ext
        cls_u32: Convert to idr_alloc_u32
        cls_u32: Reinstate cyclic allocation
        cls_flower: Convert to idr_alloc_u32
        cls_bpf: Convert to use idr_alloc_u32
        cls_basic: Convert to use idr_alloc_u32
        cls_api: Convert to idr_alloc_u32
        net sched actions: Convert to use idr_alloc_u32
        idr: Add idr_alloc_u32 helper
        idr: Delete idr_find_ext function
        idr: Delete idr_replace_ext function
        idr: Delete idr_remove_ext function
        IDR test suite: Check handling negative end correctly
        idr test suite: Fix ida_test_random()
        radix tree test suite: Remove ARRAY_SIZE
      9d21874d
    • Linus Torvalds's avatar
      Merge tag 'gcc-plugins-v4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 4ed8244e
      Linus Torvalds authored
      Pull gcc plugins updates from Kees Cook:
      
       - update includes for gcc 8 (Valdis Kletnieks)
      
       - update initializers for gcc 8
      
      * tag 'gcc-plugins-v4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        gcc-plugins: Use dynamic initializers
        gcc-plugins: Add include required by GCC release 8
      4ed8244e
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux · a0f79386
      Linus Torvalds authored
      Pull orangefs updates from Mike Marshall:
       "Mostly cleanups, but three bug fixes:
      
         - don't pass garbage return codes back up the call chain (Mike
           Marshall)
      
         - fix stale inode test (Martin Brandenburg)
      
         - fix off-by-one errors (Xiongfeng Wang)
      
        Also add Martin as a reviewer in the Maintainers file"
      
      * tag 'for-linus-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
        orangefs: reverse sense of is-inode-stale test in d_revalidate
        orangefs: simplify orangefs_inode_is_stale
        Orangefs: don't propogate whacky error codes
        orangefs: use correct string length
        orangefs: make orangefs_make_bad_inode static
        orangefs: remove ORANGEFS_KERNEL_DEBUG
        orangefs: remove gossip_ldebug and gossip_lerr
        orangefs: make orangefs_client_debug_init static
        MAINTAINERS: update orangefs list and add myself as reviewer
      a0f79386
    • Linus Torvalds's avatar
      Merge tag 'afs-next-20180208' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · 81153336
      Linus Torvalds authored
      Pull afs updates from David Howells:
       "Four fixes:
      
         - add a missing put
      
         - two fixes to reset the address iteration cursor correctly
      
         - fix setting up the fileserver iteration cursor.
      
        Two cleanups:
      
         - remove some dead code
      
         - rearrange a function to be more logically laid out
      
        And one new feature:
      
         - Support AFS dynamic root.
      
           With this one should be able to do, say:
      
              mkdir /afs
              mount -t afs none /afs -o dyn
      
           to create a dynamic root and then, provided you have keyutils
           installed, do:
      
              ls /afs/grand.central.org
      
           and:
      
              ls /afs/umich.edu
      
           to list the root volumes of both those organisations' AFS cells
           without requiring any other setup (the kernel upcall to a program
           in the keyutils package to do DNS access as does NFS)"
      
      * tag 'afs-next-20180208' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        afs: Support the AFS dynamic root
        afs: Rearrange afs_select_fileserver() a little
        afs: Remove unused code
        afs: Fix server list handling
        afs: Need to clear responded flag in addr cursor
        afs: Fix missing cursor clearance
        afs: Add missing afs_put_cell()
      81153336
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · ef9417e8
      Linus Torvalds authored
      Pull IOMMU updates from Joerg Roedel:
       "This time there are not a lot of changes coming from the IOMMU side.
      
        That is partly because I returned from my parental leave late in the
        development process and probably partly because everyone was busy with
        Spectre and Meltdown mitigation work and didn't find the time for
        IOMMU work. So here are the few changes that queued up for this merge
        window:
      
         - 5-level page-table support for the Intel IOMMU.
      
         - error reporting improvements for the AMD IOMMU driver
      
         - additional DT bindings for ipmmu-vmsa (Renesas)
      
         - small fixes and cleanups"
      
      * tag 'iommu-updates-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu: Clean up of_iommu_init_fn
        iommu/ipmmu-vmsa: Remove redundant of_iommu_init_fn hook
        iommu/msm: Claim bus ops on probe
        iommu/vt-d: Enable 5-level paging mode in the PASID entry
        iommu/vt-d: Add a check for 5-level paging support
        iommu/vt-d: Add a check for 1GB page support
        iommu/vt-d: Enable upto 57 bits of domain address width
        iommu/vt-d: Use domain instead of cache fetching
        iommu/exynos: Don't unconditionally steal bus ops
        iommu/omap: Fix debugfs_create_*() usage
        iommu/vt-d: clean up pr_irq if request_threaded_irq fails
        iommu: Check the result of iommu_group_get() for NULL
        iommu/ipmmu-vmsa: Add r8a779(70|95) DT bindings
        iommu/ipmmu-vmsa: Add r8a7796 DT binding
        iommu/amd: Set the device table entry PPR bit for IOMMU V2 devices
        iommu/amd - Record more information about unknown events
      ef9417e8
    • Linus Torvalds's avatar
      Merge branch 'pcmcia' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia · 605dc776
      Linus Torvalds authored
      Pull pcmcia updates from Dominik Brodowski:
       "The linux-pcmcia mailing list was shut down, so offer an alternative
        path for patches in MAINTAINERS.
      
        Also, throw in two odd fixes for the pcmcia subsystem"
      
      * 'pcmcia' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia:
        pcmcia: soc_common: Handle return value of clk_prepare_enable
        pcmcia: use proper printk format for resource
        pcmcia: remove mailing list, update MAINTAINERS
      605dc776
    • Linus Torvalds's avatar
      Merge tag 'drm-for-v4.16-part2-fixes' of git://people.freedesktop.org/~airlied/linux · fe26adf4
      Linus Torvalds authored
      Pull more drm updates from Dave Airlie:
       "Ben missed sending his nouveau tree, but he really didn't have much
        stuff in it:
      
         - GP108 acceleration support is enabled by "secure boot" support
      
         - some clockgating work on Kepler, and bunch of fixes
      
         - the bulk of the diff is regenerated firmware files, the change to
           them really isn't that large.
      
        Otherwise this contains regular Intel and AMDGPU fixes"
      
      * tag 'drm-for-v4.16-part2-fixes' of git://people.freedesktop.org/~airlied/linux: (59 commits)
        drm/i915/bios: add DP max link rate to VBT child device struct
        drm/i915/cnp: Properly handle VBT ddc pin out of bounds.
        drm/i915/cnp: Ignore VBT request for know invalid DDC pin.
        drm/i915/cmdparser: Do not check past the cmd length.
        drm/i915/cmdparser: Check reg_table_count before derefencing.
        drm/i915/bxt, glk: Increase PCODE timeouts during CDCLK freq changing
        drm/i915/gvt: Use KVM r/w to access guest opregion
        drm/i915/gvt: Fix aperture read/write emulation when enable x-no-mmap=on
        drm/i915/gvt: only reset execlist state of one engine during VM engine reset
        drm/i915/gvt: refine intel_vgpu_submission_ops as per engine ops
        drm/amdgpu: re-enable CGCG on CZ and disable on ST
        drm/nouveau/clk: fix gcc-7 -Wint-in-bool-context warning
        drm/nouveau/mmu: Fix trailing semicolon
        drm/nouveau: Introduce NvPmEnableGating option
        drm/nouveau: Add support for SLCG for Kepler2
        drm/nouveau: Add support for BLCG on Kepler2
        drm/nouveau: Add support for BLCG on Kepler1
        drm/nouveau: Add support for basic clockgating on Kepler1
        drm/nouveau/kms/nv50: fix handling of gamma since atomic conversion
        drm/nouveau/kms/nv50: use INTERPOLATE_257_UNITY_RANGE LUT on newer chipsets
        ...
      fe26adf4
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-4.16-rc1' of git://github.com/ceph/ceph-client · 9e95dae7
      Linus Torvalds authored
      Pull ceph updates from Ilya Dryomov:
       "Things have been very quiet on the rbd side, as work continues on the
        big ticket items slated for the next merge window.
      
        On the CephFS side we have a large number of cap handling
        improvements, a fix for our long-standing abuse of ->journal_info in
        ceph_readpages() and yet another dentry pointer management patch"
      
      * tag 'ceph-for-4.16-rc1' of git://github.com/ceph/ceph-client:
        ceph: improving efficiency of syncfs
        libceph: check kstrndup() return value
        ceph: try to allocate enough memory for reserved caps
        ceph: fix race of queuing delayed caps
        ceph: delete unreachable code in ceph_check_caps()
        ceph: limit rate of cap import/export error messages
        ceph: fix incorrect snaprealm when adding caps
        ceph: fix un-balanced fsc->writeback_count update
        ceph: track read contexts in ceph_file_info
        ceph: avoid dereferencing invalid pointer during cached readdir
        ceph: use atomic_t for ceph_inode_info::i_shared_gen
        ceph: cleanup traceless reply handling for rename
        ceph: voluntarily drop Fx cap for readdir request
        ceph: properly drop caps for setattr request
        ceph: voluntarily drop Lx cap for link/rename requests
        ceph: voluntarily drop Ax cap for requests that create new inode
        rbd: whitelist RBD_FEATURE_OPERATIONS feature bit
        rbd: don't NULL out ->obj_request in rbd_img_obj_parent_read_full()
        rbd: use kmem_cache_zalloc() in rbd_img_request_create()
        rbd: obj_request->completion is unused
      9e95dae7
    • Nicolas Pitre's avatar
      cramfs: better MTD dependency expression · a8c6db00
      Nicolas Pitre authored
      Commit b9f5fb18 ("cramfs: fix MTD dependency") did what it says.
      
      Since commit 9059a349 ("kconfig: fix relational operators for bool
      and tristate symbols") it is possible to do it slightly better though.
      Signed-off-by: default avatarNicolas Pitre <nico@linaro.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a8c6db00
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · c0136321
      Linus Torvalds authored
      Pull more arm64 updates from Catalin Marinas:
       "As I mentioned in the last pull request, there's a second batch of
        security updates for arm64 with mitigations for Spectre/v1 and an
        improved one for Spectre/v2 (via a newly defined firmware interface
        API).
      
        Spectre v1 mitigation:
      
         - back-end version of array_index_mask_nospec()
      
         - masking of the syscall number to restrict speculation through the
           syscall table
      
         - masking of __user pointers prior to deference in uaccess routines
      
        Spectre v2 mitigation update:
      
         - using the new firmware SMC calling convention specification update
      
         - removing the current PSCI GET_VERSION firmware call mitigation as
           vendors are deploying new SMCCC-capable firmware
      
         - additional branch predictor hardening for synchronous exceptions
           and interrupts while in user mode
      
        Meltdown v3 mitigation update:
      
          - Cavium Thunder X is unaffected but a hardware erratum gets in the
            way. The kernel now starts with the page tables mapped as global
            and switches to non-global if kpti needs to be enabled.
      
        Other:
      
         - Theoretical trylock bug fixed"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (38 commits)
        arm64: Kill PSCI_GET_VERSION as a variant-2 workaround
        arm64: Add ARM_SMCCC_ARCH_WORKAROUND_1 BP hardening support
        arm/arm64: smccc: Implement SMCCC v1.1 inline primitive
        arm/arm64: smccc: Make function identifiers an unsigned quantity
        firmware/psci: Expose SMCCC version through psci_ops
        firmware/psci: Expose PSCI conduit
        arm64: KVM: Add SMCCC_ARCH_WORKAROUND_1 fast handling
        arm64: KVM: Report SMCCC_ARCH_WORKAROUND_1 BP hardening support
        arm/arm64: KVM: Turn kvm_psci_version into a static inline
        arm/arm64: KVM: Advertise SMCCC v1.1
        arm/arm64: KVM: Implement PSCI 1.0 support
        arm/arm64: KVM: Add smccc accessors to PSCI code
        arm/arm64: KVM: Add PSCI_VERSION helper
        arm/arm64: KVM: Consolidate the PSCI include files
        arm64: KVM: Increment PC after handling an SMC trap
        arm: KVM: Fix SMCCC handling of unimplemented SMC/HVC calls
        arm64: KVM: Fix SMCCC handling of unimplemented SMC/HVC calls
        arm64: entry: Apply BP hardening for suspicious interrupts from EL0
        arm64: entry: Apply BP hardening for high-priority synchronous exceptions
        arm64: futex: Mask __user pointers prior to dereference
        ...
      c0136321
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 846ade7d
      Linus Torvalds authored
      Pull virtio/vhost updates from Michael Tsirkin:
       "virtio, vhost: fixes, cleanups, features
      
        This includes the disk/cache memory stats for for the virtio balloon,
        as well as multiple fixes and cleanups"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        vhost: don't hold onto file pointer for VHOST_SET_LOG_FD
        vhost: don't hold onto file pointer for VHOST_SET_VRING_ERR
        vhost: don't hold onto file pointer for VHOST_SET_VRING_CALL
        ringtest: ring.c malloc & memset to calloc
        virtio_vop: don't kfree device on register failure
        virtio_pci: don't kfree device on register failure
        virtio: split device_register into device_initialize and device_add
        vhost: remove unused lock check flag in vhost_dev_cleanup()
        vhost: Remove the unused variable.
        virtio_blk: print capacity at probe time
        virtio: make VIRTIO a menuconfig to ease disabling it all
        virtio/ringtest: virtio_ring: fix up need_event math
        virtio/ringtest: fix up need_event math
        virtio: virtio_mmio: make of_device_ids const.
        firmware: Use PTR_ERR_OR_ZERO()
        virtio-mmio: Use PTR_ERR_OR_ZERO()
        vhost/scsi: Improve a size determination in four functions
        virtio_balloon: include disk/file caches memory statistics
      846ade7d
    • Chuck Lever's avatar
      svcrdma: Fix Read chunk round-up · 175e0310
      Chuck Lever authored
      A single NFSv4 WRITE compound can often have three operations:
      PUTFH, WRITE, then GETATTR.
      
      When the WRITE payload is sent in a Read chunk, the client places
      the GETATTR in the inline part of the RPC/RDMA message, just after
      the WRITE operation (sans payload). The position value in the Read
      chunk enables the receiver to insert the Read chunk at the correct
      place in the received XDR stream; that is between the WRITE and
      GETATTR.
      
      According to RFC 8166, an NFS/RDMA client does not have to add XDR
      round-up to the Read chunk that carries the WRITE payload. The
      receiver adds XDR round-up padding if it is absent and the
      receiver's XDR decoder requires it to be present.
      
      Commit 193bcb7b ("svcrdma: Populate tail iovec when receiving")
      attempted to add support for receiving such a compound so that just
      the WRITE payload appears in rq_arg's page list, and the trailing
      GETATTR is placed in rq_arg's tail iovec. (TCP just strings the
      whole compound into the head iovec and page list, without regard
      to the alignment of the WRITE payload).
      
      The server transport logic also had to accommodate the optional XDR
      round-up of the Read chunk, which it did simply by lengthening the
      tail iovec when round-up was needed. This approach is adequate for
      the NFSv2 and NFSv3 WRITE decoders.
      
      Unfortunately it is not sufficient for nfsd4_decode_write. When the
      Read chunk length is a couple of bytes less than PAGE_SIZE, the
      computation at the end of nfsd4_decode_write allows argp->pagelen to
      go negative, which breaks the logic in read_buf that looks for the
      tail iovec.
      
      The result is that a WRITE operation whose payload length is just
      less than a multiple of a page succeeds, but the subsequent GETATTR
      in the same compound fails with NFS4ERR_OP_ILLEGAL because the XDR
      decoder can't find it. Clients ignore the error, but they must
      update their attribute cache via a separate round trip.
      
      As nfsd4_decode_write appears to expect the payload itself to always
      have appropriate XDR round-up, have svc_rdma_build_normal_read_chunk
      add the Read chunk XDR round-up to the page_len rather than
      lengthening the tail iovec.
      Reported-by: default avatarOlga Kornievskaia <kolga@netapp.com>
      Fixes: 193bcb7b ("svcrdma: Populate tail iovec when receiving")
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      Tested-by: default avatarOlga Kornievskaia <kolga@netapp.com>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      175e0310
    • Arnd Bergmann's avatar
      NFSD: hide unused svcxdr_dupstr() · 2285ae76
      Arnd Bergmann authored
      There is now only one caller left for svcxdr_dupstr() and this is inside
      of an #ifdef, so we can get a warning when the option is disabled:
      
      fs/nfsd/nfs4xdr.c:241:1: error: 'svcxdr_dupstr' defined but not used [-Werror=unused-function]
      
      This changes the remaining caller to use a nicer IS_ENABLED() check,
      which lets the compiler drop the unused code silently.
      
      Fixes: e40d99e6183e ("NFSD: Clean up symlink argument XDR decoders")
      Suggested-by: default avatarRasmus Villemoes <rasmus.villemoes@prevas.dk>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      2285ae76
    • Amir Goldstein's avatar
      nfsd: store stat times in fill_pre_wcc() instead of inode times · 39ca1bf6
      Amir Goldstein authored
      The time values in stat and inode may differ for overlayfs and stat time
      values are the correct ones to use. This is also consistent with the fact
      that fill_post_wcc() also stores stat time values.
      
      This means introducing a stat call that could fail, where previously we
      were just copying values out of the inode.  To be conservative about
      changing behavior, we fall back to copying values out of the inode in
      the error case.  It might be better just to clear fh_pre_saved (though
      note the BUG_ON in set_change_info).
      Signed-off-by: default avatarAmir Goldstein <amir73il@gmail.com>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      39ca1bf6
    • Amir Goldstein's avatar
      nfsd: encode stat->mtime for getattr instead of inode->i_mtime · 76c47948
      Amir Goldstein authored
      The values of stat->mtime and inode->i_mtime may differ for overlayfs
      and stat->mtime is the correct value to use when encoding getattr.
      This is also consistent with the fact that other attr times are also
      encoded from stat values.
      
      Both callers of lease_get_mtime() already have the value of stat->mtime,
      so the only needed change is that lease_get_mtime() will not overwrite
      this value with inode->i_mtime in case the inode does not have an
      exclusive lease.
      Signed-off-by: default avatarAmir Goldstein <amir73il@gmail.com>
      Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      76c47948
    • J. Bruce Fields's avatar
      nfsd: return RESOURCE not GARBAGE_ARGS on too many ops · 0078117c
      J. Bruce Fields authored
      A client that sends more than a hundred ops in a single compound
      currently gets an rpc-level GARBAGE_ARGS error.
      
      It would be more helpful to return NFS4ERR_RESOURCE, since that gives
      the client a better idea how to recover (for example by splitting up the
      compound into smaller compounds).
      
      This is all a bit academic since we've never actually seen a reason for
      clients to send such long compounds, but we may as well fix it.
      
      While we're there, just use NFSD4_MAX_OPS_PER_COMPOUND == 16, the
      constant we already use in the 4.1 case, instead of hard-coding 100.
      Chances anyone actually uses even 16 ops per compound are small enough
      that I think there's a neglible risk or any regression.
      
      This fixes pynfs test COMP6.
      Reported-by: default avatar"Lu, Xinyu" <luxy.fnst@cn.fujitsu.com>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      0078117c
    • Linus Torvalds's avatar
      Merge tags 'cris-for-4.16' and 'cris-for-4.16-urgent' of... · 977e4152
      Linus Torvalds authored
      Merge tags 'cris-for-4.16' and 'cris-for-4.16-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris
      
      Pull CRIS updates and fixes from Jesper Nilsson:
      
       - a small fix for some conflicting symbols, aligning CRIS with other
         platforms.
      
       - fix build breakage regression for all CRIS SoCs. The main Makefile
         for the CRIS port was overzealously scrubbed in 4.15-rc3.
      
      * tag 'cris-for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris:
        cris: Fix conflicting types for _etext, _edata, _end
      
      * tag 'cris-for-4.16-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris:
        CRIS: Restore mistakenly cleared kernel Makefile
      977e4152
    • Jesper Nilsson's avatar
      CRIS: Restore mistakenly cleared kernel Makefile · 6e037721
      Jesper Nilsson authored
      Commit 0fbc0b67 ("cris: remove arch specific early DT functions")
      was a bit overzealous in removing the CRIS DT handling,
      and the complete contents of the Makefile was erased
      instead of just the line for the devicetree file.
      
      This lead to a complete link failure for all SoCs in
      the CRIS port due to missing symbols.
      
      Restore the contents except the line for the devicetree file.
      Signed-off-by: default avatarJesper Nilsson <jesper.nilsson@axis.com>
      Fixes: 0fbc0b67
      6e037721
  4. 07 Feb, 2018 10 commits
    • Linus Torvalds's avatar
      Merge tag 'modules-for-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux · 581e400f
      Linus Torvalds authored
      Pull modules updates from Jessica Yu:
       "Minor code cleanups and MAINTAINERS update"
      
      * tag 'modules-for-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux:
        modpost: Remove trailing semicolon
        ftrace/module: Move ftrace_release_mod() to ddebug_cleanup label
        MAINTAINERS: Remove from module & paravirt maintenance
      581e400f
    • Linus Torvalds's avatar
      Merge tag 'iversion-v4.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux · 6fbac201
      Linus Torvalds authored
      Pull inode->i_version cleanup from Jeff Layton:
       "Goffredo went ahead and sent a patch to rename this function, and
        reverse its sense, as we discussed last week.
      
        The patch is very straightforward and I figure it's probably best to
        go ahead and merge this to get the API as settled as possible"
      
      * tag 'iversion-v4.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux:
        iversion: Rename make inode_cmp_iversion{+raw} to inode_eq_iversion{+raw}
      6fbac201
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · fe803f86
      Linus Torvalds authored
      Pull UDF and ext2 fixlets from Jan Kara:
       "A UDF fix and an ext2 cleanup"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        ext2: drop unneeded newline
        udf: Sanitize nanoseconds for time stamps
      fe803f86
    • Dave Airlie's avatar
      Merge tag 'drm-intel-next-fixes-2018-02-07' of... · 94fc27ac
      Dave Airlie authored
      Merge tag 'drm-intel-next-fixes-2018-02-07' of git://anongit.freedesktop.org/drm/drm-intel into drm-next
      
      Fix for pcode timeouts on BXT and GLK, cmdparser fixes and fixes
      for new vbt version on CFL and CNL.
      
      GVT contains vGPU reset enhancement, which refines vGPU reset flow
      and the support of virtual aperture read/write when x-no-mmap=on
      is set in KVM, which is required by a test case from Redhat and
      also another fix for virtual OpRegion.
      
      * tag 'drm-intel-next-fixes-2018-02-07' of git://anongit.freedesktop.org/drm/drm-intel:
        drm/i915/bios: add DP max link rate to VBT child device struct
        drm/i915/cnp: Properly handle VBT ddc pin out of bounds.
        drm/i915/cnp: Ignore VBT request for know invalid DDC pin.
        drm/i915/cmdparser: Do not check past the cmd length.
        drm/i915/cmdparser: Check reg_table_count before derefencing.
        drm/i915/bxt, glk: Increase PCODE timeouts during CDCLK freq changing
        drm/i915/gvt: Use KVM r/w to access guest opregion
        drm/i915/gvt: Fix aperture read/write emulation when enable x-no-mmap=on
        drm/i915/gvt: only reset execlist state of one engine during VM engine reset
        drm/i915/gvt: refine intel_vgpu_submission_ops as per engine ops
      94fc27ac
    • Linus Torvalds's avatar
      Merge tag 'regulator-fix-v4.16-suspend' of... · ffefb181
      Linus Torvalds authored
      Merge tag 'regulator-fix-v4.16-suspend' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
      
      Pull regulator fix from Mark Brown:
       "Fix suspend to idle.
      
        Testing on mainline after the initial regulator pull request went in
        identified a regression for suspend to idle due to it calling the
        suspend operations with states that it wasn't realized could happen,
        this patch fixes the problem"
      
      * tag 'regulator-fix-v4.16-suspend' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: Fix suspend to idle
      ffefb181
    • Linus Torvalds's avatar
      Merge tag 'fbdev-v4.16' of git://github.com/bzolnier/linux · c3611b6d
      Linus Torvalds authored
      Pull fbdev updates from Bartlomiej Zolnierkiewicz:
       "There is nothing really major here:
      
         - fix display-timings lookup in the Device Tree in atmel_lcdfb driver
           (Johan Hovold)
      
         - fix video mode and line_length to be set correctly in vfb driver
           (Pieter "PoroCYon" Sluys)
      
         - fix returning nonsensical values to the user-space on GIO_FONTX
           ioctl when using dummy console (Nicolas Pitre)
      
         - add missing license tag to mmpfb driver (Arnd Bergmann)
      
         - convert radeonfb and pxa3xx_gcu drivers to use ktime_get[_ts64]()
           instead of the deprecated do_gettimeofday() (Arnd Bergmann)
      
         - switch udlfb driver from using the pr_*() logging functions to the
           dev_*() ones + related cleanups (Ladislav Michl)
      
         - use __raw I/O accessors also on arm64 (Ji Zhang)
      
         - fix Kconfig help text for intelfb driver (Randy Dunlap)
      
         - do not duplicate features data in omapfb driver (Ladislav Michl)
      
         - misc cleanups (Colin Ian King, Markus Elfring, Rasmus Villemoes,
           Vasyl Gomonovych, Himanshu Jha, Michael Trimarchi)"
      
      * tag 'fbdev-v4.16' of git://github.com/bzolnier/linux: (25 commits)
        video: udlfb: Switch from the pr_*() to the dev_*() logging functions
        video: udlfb: Constify read only data
        video: fbdev/mmp: add MODULE_LICENSE
        console/dummy: leave .con_font_get set to NULL
        fbdev: mxsfb: use framebuffer_alloc in the correct way
        video: udlfb: Do not name private data 'dev'
        video: udlfb: Remove noisy warnings
        video: udlfb: Remove redundant gdev variable
        video: udlfb: Remove unnecessary local variable
        fbdev: auo_k190x: Use zeroing memory allocator instead of allocator/memset
        vfb: fix video mode and line_length being set when loaded
        fbdev: arm64 use __raw I/O memory api
        omapfb: dss: Do not duplicate features data
        video: fbdev: omap2: Use PTR_ERR_OR_ZERO()
        fbdev: au1200fb: delete duplicate header contents
        fbdev: pxa3xx: use ktime_get_ts64 for time stamps
        fbdev: radeon: use ktime_get() for HZ calibration
        video: smscufx: Improve a size determination in two functions
        video: udlfb: Delete an unnecessary return statement in two functions
        video: udlfb: Improve a size determination in dlfb_alloc_urb_list()
        ...
      c3611b6d
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v4.16-2' of git://git.infradead.org/linux-platform-drivers-x86 · cc006a22
      Linus Torvalds authored
      Pull more x86 platform-drivers updates from Andy Shevchenko:
       "The DEFINE_SHOW_ATTRIBUTE() macro was defined privately in three
        locations and is useful for new and old users to avoid a lot of code
        duplication.
      
        Move the macro to seq_file.h.
      
        Along with above, clean up three drivers to use that macro.
      
        This, due to dependencies, was sent separately since affected changes
        weren't upstream originally yet. The rationale of doing this now is to
        allow use of new macro in v4.17 cycle in a conflictless manner"
      
      * tag 'platform-drivers-x86-v4.16-2' of git://git.infradead.org/linux-platform-drivers-x86:
        platform/x86: samsung-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro
        platform/x86: ideapad-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro
        platform/x86: dell-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro
        seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro
      cc006a22
    • Jani Nikula's avatar
      drm/i915/bios: add DP max link rate to VBT child device struct · 6dd3104e
      Jani Nikula authored
      Update VBT defs to reflect revision 216. While at it, default the
      expected child device struct size to sizeof the size rather than a
      hardcoded value.
      
      v2: Fix bit order (David)
      
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      Reviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180118153310.32437-1-jani.nikula@intel.com
      (cherry picked from commit c4fb60b9)
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      6dd3104e
    • Linus Torvalds's avatar
      Merge tag 'asoc-v4.16-5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound · 7590e37b
      Linus Torvalds authored
      Pull more ASoC updates from Mark Brown:
       "With the merge window having been delayed for another week here's
        another batch of updates that came in during that week.
      
        There's a few important fixes in here, mainly a fix for I/O on a
        number of devices caused by some of the component rework and a fix for
        a potential issue if more than one component in a link provides
        compressed operations. The I/O fixes are particularly important as the
        problem causes a power regression on a number of OMAP platforms"
      
      * tag 'asoc-v4.16-5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound: (22 commits)
        ASoC: stm32: add of dependency for stm32 drivers
        ASoC: mt8173-rt5650: fix child-node lookup
        ASoC: dapm: fix debugfs read using path->connected
        ASoC: compress: Fixup error messages
        ASoC: compress: Remove some extraneous blank lines
        ASoC: compress: Correct handling of copy callback
        ASoC: Intel: kbl: Enable mclk and ssp sclk early
        ASoC: Intel: Skylake: Add extended I2S config blob support in Clock driver
        ASoC: Intel: Skylake: Add ssp clock driver
        ASoC: Fix twl4030 and 6040 regression by adding back read and write
        ASoC: sun8i-codec: Add ADC support for a33
        ASoC: rockchip: Use dummy_dai for rt5514 dsp dailink
        ASoC: soc-pcm: rename .pmdown_time to .use_pmdown_time for Component
        ASoC: ak4613: call dummy write for PW_MGMT1/3 when Playback
        ASoC: soc-pcm: don't call flush_delayed_work() many times in soc_pcm_private_free()
        ASoC: soc-core: snd_soc_rtdcom_lookup() cares component driver name
        ASoC: sam9x5_wm8731: Drop 'ASoC' prefix from error messages
        ASoC: sam9g20_wm8731: use dev_*() logging functions
        ASoC: max98373 Changed SPDX header in C++ comments style
        ASoC: dmic: Fix check of return value from read of 'num-channels'
        ...
      7590e37b
    • Dave Airlie's avatar
      Merge branch 'drm-next-4.16' of git://people.freedesktop.org/~agd5f/linux into drm-next · 2dd27794
      Dave Airlie authored
      A few more misc fixes for 4.16.
      
      * 'drm-next-4.16' of git://people.freedesktop.org/~agd5f/linux:
        drm/amdgpu: re-enable CGCG on CZ and disable on ST
        drm/amdgpu: disable coarse grain clockgating for ST
        drm/radeon: adjust tested variable
        drm/amdgpu: remove WARN_ON when VM isn't found v2
        drm/amdgpu: fix locking in vega10_ih_prescreen_iv
        drm/amdgpu: fix another potential cause of VM faults
        drm/amdgpu: use queue 0 for kiq ring
        drm/ttm: Fix 'buf' pointer update in ttm_bo_vm_access_kmap() (v2)
        drm/ttm: fix missing parameter change for ttm_bo_cleanup_refs
      2dd27794