1. 14 Feb, 2016 7 commits
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8ab54ed6
      Linus Torvalds authored
      Pull irqchip fixes from Thomas Gleixner:
       "Another set of ARM SoC related irqchip fixes:
         - Plug a memory leak in gicv3-its
         - Limit features to the root gic interrupt controller
         - Add a missing barrier in the gic-v3 IAR access
         - Another compile test fix for sun4i"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/gic-v3: Make sure read from ICC_IAR1_EL1 is visible on redestributor
        irqchip/gic: Only set the EOImodeNS bit for the root controller
        irqchip/gic: Only populate set_affinity for the root controller
        irqchip/gicv3-its: Fix memory leak in its_free_tables()
        irqchip/sun4i: Fix compilation outside of arch/arm
      8ab54ed6
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2d23e61f
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "Two small fixlets for x86:
      
         - Prevent a KASAN false positive in thread_saved_pc()
      
         - Fix a 32-bit truncation problem in the x86 numa code"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm/numa: Fix 32-bit memblock range truncation bug on 32-bit NUMA kernels
        x86: Fix KASAN false positives in thread_saved_pc()
      2d23e61f
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · ab57a611
      Linus Torvalds authored
      Pull MIPS fixes from Ralf Baechle:
       "Here's the first round of MIPS fixes after the merge window:
      
         - Detect Octeon III's PCI correctly.
         - Fix return value of the MT7620 probing function.
         - Wire up the copy_file_range syscall.
         - Fix 64k page support on 32 bit kernels.
         - Fix the early Coherency Manager probe.
         - Allow only hardware-supported page sizes to be selected for R6000.
         - Fix corner cases for the RDHWR nstruction emulation on old hardware.
         - Fix FPU handling corner cases.
         - Remove stale entry for BCM33xx from the MAINTAINERS file.
         - 32 and 64 bit ELF headers are different, handle them correctly"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        mips: Differentiate between 32 and 64 bit ELF header
        MIPS: Octeon: Update OCTEON_FEATURE_PCIE for Octeon III
        MIPS: pci-mt7620: Fix return value check in mt7620_pci_probe()
        MIPS: Fix early CM probing
        MIPS: Wire up copy_file_range syscall.
        MIPS: Fix 64k page support for 32 bit kernels.
        MIPS: R6000: Don't allow 64k pages for R6000.
        MIPS: traps.c: Correct microMIPS RDHWR emulation
        MIPS: traps.c: Don't emulate RDHWR in the CpU #0 exception handler
        MAINTAINERS: Remove stale entry for BCM33xx chips
        MIPS: Fix FPU disable with preemption
        MIPS: Properly disable FPU in start_thread()
        MIPS: Fix buffer overflow in syscall_get_arguments()
      ab57a611
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · be3f4e0f
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "A couple of ARM fixes from Linus for the ICST clock generator code"
      
      [ "Linus" here is Linus Walleij.  Name-stealer.
      
             Linus "there can be only one" Torvalds ]
      
      * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        ARM: 8519/1: ICST: try other dividends than 1
        ARM: 8517/1: ICST: avoid arithmetic overflow in icst_hz()
      be3f4e0f
    • Linus Torvalds's avatar
      Merge branch 'component' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · 8b9f9ebe
      Linus Torvalds authored
      Pull component helper fixes from Russell King:
       "A few fixes for problems people have encountered with the recent
        update to the component helpers"
      
      * 'component' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        component: remove device from master match list on failed add
        component: Detach components when deleting master struct
        component: fix crash on x86_64 with hda audio drivers
      8b9f9ebe
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma · 7686e3c1
      Linus Torvalds authored
      Pull more rdma fixes from Doug Ledford:
       "I think we are getting pretty close to done now.  There are four
        one-off fixes in this update:
      
         - fix ipoib multicast joins
         - fix mlx4 error handling
         - fix mlx5 size computation
         - fix a thinko in core code"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
        IB/mlx5: Fix RC transport send queue overhead computation
        IB/ipoib: fix for rare multicast join race condition
        IB/core: Fix reading capability mask of the port info class
        net/mlx4: fix some error handling in mlx4_multi_func_init()
      7686e3c1
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · 2f2e9f2d
      Linus Torvalds authored
      Pull SCSI target fixes from Nicholas Bellinger:
       "This includes the long awaited series to address a set of bugs around
        active I/O remote-port LUN_RESET, as well as properly handling this
        same case with concurrent fabric driver session disconnect ->
        reconnect.
      
        Note this set of LUN_RESET bug-fixes has been surviving extended
        testing on both v4.5-rc1 and v3.14.y code over the last weeks, and is
        CC'ed for stable as it's something folks using multiple ESX connected
        hosts with slow backends can certainly trigger.
      
        The highlights also include:
      
         - Fix WRITE_SAME/DISCARD emulation 4k sector conversion in
           target/iblock (Mike Christie)
      
         - Fix TMR abort interaction and AIO type TMR response in qla2xxx
           target (Quinn Tran + Swapnil Nagle)
      
         - Fix >= v3.17 stale descriptor pointer regression in qla2xxx target
           (Quinn Tran)
      
         - Fix >= v4.5-rc1 return regression with unmap_zeros_data_store new
           configfs store handler (nab)
      
         - Add CPU affinity flag + convert qla2xxx to use bit (Quinn + HCH +
           Bart)"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        qla2xxx: use TARGET_SCF_USE_CPUID flag to indiate CPU Affinity
        target/transport: add flag to indicate CPU Affinity is observed
        target: Fix incorrect unmap_zeroes_data_store return
        qla2xxx: Use ATIO type to send correct tmr response
        qla2xxx: Fix stale pointer access.
        target/user: Fix cast from pointer to phys_addr_t
        target: Drop legacy se_cmd->task_stop_comp + REQUEST_STOP usage
        target: Fix race with SCF_SEND_DELAYED_TAS handling
        target: Fix remote-port TMR ABORT + se_cmd fabric stop
        target: Fix TAS handling for multi-session se_node_acls
        target: Fix LUN_RESET active TMR descriptor handling
        target: Fix LUN_RESET active I/O handling for ACK_KREF
        qla2xxx: Fix TMR ABORT interaction issue between qla2xxx and TCM
        qla2xxx: Fix warning reported by static checker
        target: Fix WRITE_SAME/DISCARD conversion to linux 512b sectors
      2f2e9f2d
  2. 13 Feb, 2016 4 commits
  3. 12 Feb, 2016 25 commits
    • Linus Torvalds's avatar
      Merge tag 'pci-v4.5-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 0cbb0b92
      Linus Torvalds authored
      Pull PCI fixes from Bjorn Helgaas:
       "These are some Renesas binding updates for PCI host controllers, a
        Broadcom fix for a regression we added in v4.5-rc1, and a fix for an
        AER use-after-free problem that can cause memory corruption.
      
        Summary:
      
        AER:
          Flush workqueue on device remove to avoid use-after-free (Sebastian Andrzej Siewior)
      
        Broadcom iProc host bridge driver:
          Allow multiple devices except on PAXC (Ray Jui)
      
        Renesas R-Car host bridge driver:
          Add gen2 device tree support for r8a7793 (Simon Horman)
          Add device tree support for r8a7793 (Simon Horman)"
      
      * tag 'pci-v4.5-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        PCI: rcar: Add device tree support for r8a7793
        PCI: rcar: Add gen2 device tree support for r8a7793
        PCI: iproc: Allow multiple devices except on PAXC
        PCI/AER: Flush workqueue on device remove to avoid use-after-free
      0cbb0b92
    • Linus Torvalds's avatar
      Merge branch 'akpm'(patches from Andrew) · 29f1bf34
      Linus Torvalds authored
      Merge fixes from Andrew Morton:
       "10 fixes"
      
      The lockdep hlist conversion is in the locking tree too, waiting for the
      next merge window.  Andrew thought it should go in now.  I'll take it,
      since it fixes a real problem and looks trivially correct (famous last
      words).
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        arch/x86/Kconfig: CONFIG_X86_UV should depend on CONFIG_EFI
        mm: fix pfn_t vs highmem
        kernel/locking/lockdep.c: convert hash tables to hlists
        mm,thp: fix spellos in describing __HAVE_ARCH_FLUSH_PMD_TLB_RANGE
        mm,thp: khugepaged: call pte flush at the time of collapse
        mm/backing-dev.c: fix error path in wb_init()
        mm, dax: check for pmd_none() after split_huge_pmd()
        vsprintf: kptr_restrict is okay in IRQ when 2
        mm: fix filemap.c kernel doc warning
        ubsan: cosmetic fix to Kconfig text
      29f1bf34
    • Leon Romanovsky's avatar
      IB/mlx5: Fix RC transport send queue overhead computation · 75c1657e
      Leon Romanovsky authored
      Fix the RC QPs send queue overhead computation to take into account
      two additional segments in the WQE which are needed for registration
      operations.
      
      The ATOMIC and UMR segments can't coexist together, so chose maximum out
      of them.
      
      The commit 9e65dc37 ("IB/mlx5: Fix RC transport send queue overhead
      computation") was intended to update RC transport as commit messages
      states, but added the code to UC transport.
      
      Fixes: 9e65dc37 ("IB/mlx5: Fix RC transport send queue overhead computation")
      Signed-off-by: default avatarKamal Heib <kamalh@mellanox.com>
      Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      Reviewed-by: default avatarSagi Grimberg <sagig@mellanox.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      75c1657e
    • Alex Estrin's avatar
      IB/ipoib: fix for rare multicast join race condition · 08bc3276
      Alex Estrin authored
      A narrow window for race condition still exist between
      multicast join thread and *dev_flush workers.
      A kernel crash caused by prolong erratic link state changes
      was observed (most likely a faulty cabling):
      
      [167275.656270] BUG: unable to handle kernel NULL pointer dereference at
      0000000000000020
      [167275.665973] IP: [<ffffffffa05f8f2e>] ipoib_mcast_join+0xae/0x1d0 [ib_ipoib]
      [167275.674443] PGD 0
      [167275.677373] Oops: 0000 [#1] SMP
      ...
      [167275.977530] Call Trace:
      [167275.982225]  [<ffffffffa05f92f0>] ? ipoib_mcast_free+0x200/0x200 [ib_ipoib]
      [167275.992024]  [<ffffffffa05fa1b7>] ipoib_mcast_join_task+0x2a7/0x490
      [ib_ipoib]
      [167276.002149]  [<ffffffff8109d5fb>] process_one_work+0x17b/0x470
      [167276.010754]  [<ffffffff8109e3cb>] worker_thread+0x11b/0x400
      [167276.019088]  [<ffffffff8109e2b0>] ? rescuer_thread+0x400/0x400
      [167276.027737]  [<ffffffff810a5aef>] kthread+0xcf/0xe0
      Here was a hit spot:
      ipoib_mcast_join() {
      ..............
            rec.qkey      = priv->broadcast->mcmember.qkey;
                                             ^^^^^^^
      .....
       }
      Proposed patch should prevent multicast join task to continue
      if link state change is detected.
      Signed-off-by: default avatarAlex Estrin <alex.estrin@intel.com>
      
      Changes from v4:
      - as suggested by Doug Ledford, optimized spinlock usage,
      i.e. ipoib_mcast_join() is called with lock held.
      Changes from v3:
      - sync with priv->lock before flag check.
      Chages from v2:
      - Move check for OPER_UP flag state to mcast_join() to
      ensure no event worker is in progress.
      - minor style fixes.
      Changes from v1:
      - No need to lock again if error detected.
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      08bc3276
    • Linus Torvalds's avatar
      Merge tag 'mmc-v4.5-rc2' of git://git.linaro.org/people/ulf.hansson/mmc · 5952cc77
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
       "Here are some mmc fixes intended for v4.5 rc4.
      
        MMC core:
         - Fix an sysfs ABI regression
         - Return an error in a specific error path dealing with mmc ioctls
      
        MMC host:
         - sdhci-pci|acpi: Fix card detect race for Intel BXT/APL
         - sh_mmcif: Correct TX DMA channel allocation
         - mmc_spi: Fix error handling for dma mapping errors
         - sdhci-of-at91: Fix an unbalance issue for the runtime PM usage count
         - pxamci: Fix the device-tree probe deferral path
         - pxamci: Fix read-only GPIO polarity"
      
      * tag 'mmc-v4.5-rc2' of git://git.linaro.org/people/ulf.hansson/mmc:
        Revert "mmc: block: don't use parameter prefix if built as module"
        mmc: sdhci-acpi: Fix card detect race for Intel BXT/APL
        mmc: sdhci-pci: Fix card detect race for Intel BXT/APL
        mmc: sdhci: Allow override of get_cd() called from sdhci_request()
        mmc: sdhci: Allow override of mmc host operations
        mmc: sh_mmcif: Correct TX DMA channel allocation
        mmc: block: return error on failed mmc_blk_get()
        mmc: pxamci: fix the device-tree probe deferral path
        mmc: mmc_spi: add checks for dma mapping error
        mmc: sdhci-of-at91: fix pm runtime unbalanced issue in error path
        mmc: pxamci: fix again read-only gpio detection polarity
      5952cc77
    • Linus Torvalds's avatar
      Merge tag 'sound-4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 0df34ad9
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "In this rc, we've got more volume than previous rc, unsurprisingly;
        the majority of updates in ASoC are about Intel drivers, and another
        major changes are the continued plumbing of ALSA timer bugs revealed
        by syzkaller fuzzer.  Hopefully both settle down now.
      
        Other than that, HD-audio received a couple of code fixes as well as
        the usual quirks, and various small fixes are found for FireWire
        devices, ASoC codecs and drivers"
      
      * tag 'sound-4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (50 commits)
        ASoC: arizona: fref must be limited in pseudo-fractional mode
        ASoC: sigmadsp: Fix missleading return value
        ALSA: timer: Fix race at concurrent reads
        ALSA: firewire-digi00x: Drop bogus const type qualifier on dot_scrt()
        ALSA: hda - Fix bad dereference of jack object
        ALSA: timer: Fix race between stop and interrupt
        ALSA: timer: Fix wrong instance passed to slave callbacks
        ASoC: Intel: Add module tags for common match module
        ASoC: Intel: Load the atom DPCM driver only
        ASoC: Intel: Create independent acpi match module
        ASoC: Intel: Revert "ASoC: Intel: fix ACPI probe regression with Atom DPCM driver"
        ALSA: dummy: Implement timer backend switching more safely
        ALSA: hda - Fix speaker output from VAIO AiO machines
        Revert "ALSA: hda - Fix noise on Gigabyte Z170X mobo"
        ALSA: firewire-tascam: remove needless member for control and status message
        ALSA: firewire-tascam: remove a flag for controller
        ALSA: firewire-tascam: add support for FW-1804
        ALSA: firewire-tascam: fix NULL pointer dereference when model identification fails
        ALSA: hda - Fix static checker warning in patch_hdmi.c
        ASoC: Intel: Skylake: Remove autosuspend delay
        ...
      0df34ad9
    • Linus Torvalds's avatar
      Merge tag 'fbdev-fixes-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux · 14379cdc
      Linus Torvalds authored
      Pull fbdev fixes from Tomi Valkeinen:
       - fix omap2plus_defconfig to enable omapfb as it was in v4.4
       - ocfb: fix timings for margins
       - s6e8ax0, da8xx-fb: fix compile warnings
       - mmp: fix build failure caused by bad printk parameters
       - imxfb: fix clock issue which kept the display off
      
      * tag 'fbdev-fixes-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux:
        video: fbdev: imxfb: Provide a reset mechanism
        fbdev: mmp: print IRQ resource using %pR format string
        fbdev: da8xx-fb: remove incorrect type cast
        fbdev: s6e8ax0: avoid unused function warnings
        ocfb: fix tgdel and tvdel timing parameters
        ARM: omap2plus_defconfig: update display configs
      14379cdc
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 4c05121e
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "A set of seven fixes:
      
        Two regressions in the new hisi_sas arm driver, a blacklist entry for
        the marvell console which was causing a reset cascade without it, a
        race fix in the WRITE_SAME/DISCARD routines, a retry fix for the rdac
        driver, without which, it would prematurely return EIO and a couple of
        fixes for the hyper-v storvsc driver"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        block/sd: Return -EREMOTEIO when WRITE SAME and DISCARD are disabled
        SCSI: Add Marvell Console to VPD blacklist
        scsi_dh_rdac: always retry MODE SELECT on command lock violation
        storvsc: Use the specified target ID in device lookup
        storvsc: Install the storvsc specific timeout handler for FC devices
        hisi_sas: fix v1 hw check for slot error
        hisi_sas: add dependency for HAS_IOMEM
      4c05121e
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · c747f97c
      Linus Torvalds authored
      Pull drm amd fixes from Dave Airlie:
       "Been pretty quiet.
      
        This is an amdgpu fixes pull from AMD, a bunch of powerplay stability
        fixes, race fix, hibernate fix, and a possible circular locking fix"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (21 commits)
        drm/amdgpu: fix issue with overlapping userptrs
        drm/radeon: hold reference to fences in radeon_sa_bo_new
        drm/amdgpu: remove unnecessary forward declaration
        drm/amdgpu: hold reference to fences in amdgpu_sa_bo_new (v2)
        drm/amdgpu: fix s4 resume
        drm/amdgpu/cz: plumb pg flags through to powerplay
        drm/amdgpu/tonga: plumb pg flags through to powerplay
        drma/dmgpu: move cg and pg flags into shared headers
        drm/amdgpu: remove unused cg defines
        drm/amdgpu: add a cgs interface to fetch cg and pg flags
        drm/amd/powerplay/tonga: disable vce pg
        drm/amd/powerplay/tonga: disable uvd pg
        drm/amd/powerplay/cz: disable vce pg
        drm/amd/powerplay/cz: disable uvd pg
        drm/amdgpu: be consistent with uvd cg flags
        drm/amdgpu: clean up vce pg flags for cz/st
        drm/amdgpu: handle vce pg flags properly
        drm/amdgpu: handle uvd pg flags properly
        drm/amdgpu/dpm/ci: switch over to the common pcie caps interface
        drm/amdgpu/cik: don't mess with aspm if gpu is root bus
        ...
      c747f97c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · df8c2723
      Linus Torvalds authored
      Pull crypto fix from James Morris.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        EVM: Use crypto_memneq() for digest comparisons
      df8c2723
    • Linus Torvalds's avatar
      Merge branch 'for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 27c9d772
      Linus Torvalds authored
      Pull btrfs fixes from Chris Mason:
       "This has a few fixes from Filipe, along with a readdir fix from Dave
        that we've been testing for some time"
      
      * 'for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        btrfs: properly set the termination value of ctx->pos in readdir
        Btrfs: fix hang on extent buffer lock caused by the inode_paths ioctl
        Btrfs: remove no longer used function extent_read_full_page_nolock()
        Btrfs: fix page reading in extent_same ioctl leading to csum errors
        Btrfs: fix invalid page accesses in extent_same (dedup) ioctl
      27c9d772
    • Linus Torvalds's avatar
      Merge tag 'xfs-fixes-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs · dfc85286
      Linus Torvalds authored
      Pull xfs fix from Dve Chinner:
       "This contains a fix for an endian conversion issue in new CRC
        validation in log recovery that was discovered on a ppc64 platform"
      
      * tag 'xfs-fixes-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs:
        xfs: fix endianness error when checking log block crc on big endian platforms
      dfc85286
    • Takashi Iwai's avatar
      Merge tag 'asoc-fix-v4.5-rc4' of... · 86c2ee16
      Takashi Iwai authored
      Merge tag 'asoc-fix-v4.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
      
      ASoC: Fixes for v4.5
      
      A rather large batch of fixes here, almost all in the Intel driver.
      The changes that got merged in this merge window for Skylake were rather
      large and as well as issues that you'd expect in a large block of new
      code there were some problems created for older processors which needed
      fixing up.  Things are largely settling down now hopefully.
      86c2ee16
    • Ryan Ware's avatar
      EVM: Use crypto_memneq() for digest comparisons · 613317bd
      Ryan Ware authored
      This patch fixes vulnerability CVE-2016-2085.  The problem exists
      because the vm_verify_hmac() function includes a use of memcmp().
      Unfortunately, this allows timing side channel attacks; specifically
      a MAC forgery complexity drop from 2^128 to 2^12.  This patch changes
      the memcmp() to the cryptographically safe crypto_memneq().
      Reported-by: default avatarXiaofei Rex Guo <xiaofei.rex.guo@intel.com>
      Signed-off-by: default avatarRyan Ware <ware@linux.intel.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMimi Zohar <zohar@linux.vnet.ibm.com>
      Signed-off-by: default avatarJames Morris <james.l.morris@oracle.com>
      613317bd
    • Vineet Gupta's avatar
      ARC: mm: Introduce explicit super page size support · 37eda9df
      Vineet Gupta authored
      MMUv4 supports 2 concurrent page sizes: Normal and Super [4K to 16M]
      
      So far Linux supported a single super page size for a given Normal page,
      depending on the software page walking address split.
      e.g. we had 11:8:13 address split for 8K page, which meant super page
      was 2 ^(8+13) = 2M (given that THP size has to be PMD_SHIFT)
      
      Now we turn this around, by allowing multiple Super Pages in Kconfig
      (currently 2M and 16M only) and forcing page walker address split to
      PGDIR_SHIFT and PAGE_SHIFT
      
      For configs without Super page, things are same as before and
      PGDIR_SHIFT can be hacked to get non default address split
      
      The motivation for this change is a customer who needs 16M super page
      and a 8K Normal page combo.
      Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
      37eda9df
    • Andrew Morton's avatar
      arch/x86/Kconfig: CONFIG_X86_UV should depend on CONFIG_EFI · 1ecb4ae5
      Andrew Morton authored
      arch/x86/built-in.o: In function `uv_bios_call':
      (.text+0xeba00): undefined reference to `efi_call'
      Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
      Suggested-by: default avatar"H. Peter Anvin" <hpa@zytor.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Reviewed-by: default avatarMatt Fleming <matt@codeblueprint.co.uk>
      Acked-by: default avatarAlex Thorlton <athorlton@sgi.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1ecb4ae5
    • Dan Williams's avatar
      mm: fix pfn_t vs highmem · db78c222
      Dan Williams authored
      The pfn_t type uses an unsigned long to store a pfn + flags value.  On a
      64-bit platform the upper 12 bits of an unsigned long are never used for
      storing the value of a pfn.  However, this is not true on highmem
      platforms, all 32-bits of a pfn value are used to address a 44-bit
      physical address space.  A pfn_t needs to store a 64-bit value.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=112211
      Fixes: 01c8f1c4 ("mm, dax, gpu: convert vm_insert_mixed to pfn_t")
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      Reported-by: default avatarStuart Foster <smf.linux@ntlworld.com>
      Reported-by: default avatarJulian Margetson <runaway@candw.ms>
      Tested-by: default avatarJulian Margetson <runaway@candw.ms>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      db78c222
    • Andrew Morton's avatar
      kernel/locking/lockdep.c: convert hash tables to hlists · 4a389810
      Andrew Morton authored
      Mike said:
      
      : CONFIG_UBSAN_ALIGNMENT breaks x86-64 kernel with lockdep enabled, i.  e
      : kernel with CONFIG_UBSAN_ALIGNMENT fails to load without even any error
      : message.
      :
      : The problem is that ubsan callbacks use spinlocks and might be called
      : before lockdep is initialized.  Particularly this line in the
      : reserve_ebda_region function causes problem:
      :
      : lowmem = *(unsigned short *)__va(BIOS_LOWMEM_KILOBYTES);
      :
      : If i put lockdep_init() before reserve_ebda_region call in
      : x86_64_start_reservations kernel loads well.
      
      Fix this ordering issue permanently: change lockdep so that it uses
      hlists for the hash tables.  Unlike a list_head, an hlist_head is in its
      initialized state when it is all-zeroes, so lockdep is ready for
      operation immediately upon boot - lockdep_init() need not have run.
      
      The patch will also save some memory.
      
      lockdep_init() and lockdep_initialized can be done away with now - a 4.6
      patch has been prepared to do this.
      Reported-by: default avatarMike Krinkin <krinkin.m.u@gmail.com>
      Suggested-by: default avatarMike Krinkin <krinkin.m.u@gmail.com>
      Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4a389810
    • Vineet Gupta's avatar
      mm,thp: fix spellos in describing __HAVE_ARCH_FLUSH_PMD_TLB_RANGE · 6b75d149
      Vineet Gupta authored
      [akpm@linux-foundation.org: s/threshhold/threshold/]
      Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6b75d149
    • Vineet Gupta's avatar
      mm,thp: khugepaged: call pte flush at the time of collapse · 6a6ac72f
      Vineet Gupta authored
      This showed up on ARC when running LMBench bw_mem tests as Overlapping
      TLB Machine Check Exception triggered due to STLB entry (2M pages)
      overlapping some NTLB entry (regular 8K page).
      
      bw_mem 2m touches a large chunk of vaddr creating NTLB entries.  In the
      interim khugepaged kicks in, collapsing the contiguous ptes into a
      single pmd.  pmdp_collapse_flush()->flush_pmd_tlb_range() is called to
      flush out NTLB entries for the ptes.  This for ARC (by design) can only
      shootdown STLB entries (for pmd).  The stray NTLB entries cause the
      overlap with the subsequent STLB entry for collapsed page.  So make
      pmdp_collapse_flush() call pte flush interface not pmd flush.
      
      Note that originally all thp flush call sites in generic code called
      flush_tlb_range() leaving it to architecture to implement the flush for
      pte and/or pmd.  Commit 12ebc158 changed this by calling a new
      opt-in API flush_pmd_tlb_range() which made the semantics more explicit
      but failed to distinguish the pte vs pmd flush in generic code, which is
      what this patch fixes.
      
      Note that ARC can fixed w/o touching the generic pmdp_collapse_flush()
      by defining a ARC version, but that defeats the purpose of generic
      version, plus sementically this is the right thing to do.
      
      Fixes STAR 9000961194: LMBench on AXS103 triggering duplicate TLB
      exceptions with super pages
      
      Fixes: 12ebc158 ("mm,thp: introduce flush_pmd_tlb_range")
      Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
      Reviewed-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: <stable@vger.kernel.org>	[4.4]
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6a6ac72f
    • Rasmus Villemoes's avatar
      mm/backing-dev.c: fix error path in wb_init() · 078c6c3a
      Rasmus Villemoes authored
      We need to use post-decrement to get percpu_counter_destroy() called on
      &wb->stat[0].  Moreover, the pre-decremebt would cause infinite
      out-of-bounds accesses if the setup code failed at i==0.
      Signed-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: Vladimir Davydov <vdavydov@virtuozzo.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      078c6c3a
    • Kirill A. Shutemov's avatar
      mm, dax: check for pmd_none() after split_huge_pmd() · 6b9116a6
      Kirill A. Shutemov authored
      DAX implements split_huge_pmd() by clearing pmd.  This simple approach
      reduces memory overhead, as we don't need to deposit page table on huge
      page mapping to make split_huge_pmd() never-fail.  PTE table can be
      allocated and populated later on page fault from backing store.
      
      But one side effect is that have to check if pmd is pmd_none() after
      split_huge_pmd().  In most places we do this already to deal with
      parallel MADV_DONTNEED.
      
      But I found two call sites which is not affected by MADV_DONTNEED (due
      down_write(mmap_sem)), but need to have the check to work with DAX
      properly.
      Signed-off-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Cc: Matthew Wilcox <willy@linux.intel.com>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6b9116a6
    • Jason A. Donenfeld's avatar
      vsprintf: kptr_restrict is okay in IRQ when 2 · 7eb39129
      Jason A. Donenfeld authored
      The kptr_restrict flag, when set to 1, only prints the kernel address
      when the user has CAP_SYSLOG.  When it is set to 2, the kernel address
      is always printed as zero.  When set to 1, this needs to check whether
      or not we're in IRQ.
      
      However, when set to 2, this check is unneccessary, and produces
      confusing results in dmesg.  Thus, only make sure we're not in IRQ when
      mode 1 is used, but not mode 2.
      
      [akpm@linux-foundation.org: coding-style fixes]
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Kees Cook <keescook@chromium.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7eb39129
    • Randy Dunlap's avatar
      mm: fix filemap.c kernel doc warning · 62eb320a
      Randy Dunlap authored
      Add missing kernel-doc notation for function parameter 'gfp_mask' to fix
      kernel-doc warning.
      
        mm/filemap.c:1898: warning: No description found for parameter 'gfp_mask'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      62eb320a
    • Yang Shi's avatar
      ubsan: cosmetic fix to Kconfig text · 7707535a
      Yang Shi authored
      When enabling UBSAN_SANITIZE_ALL, the kernel image size gets increased
      significantly (~3x).  So, it sounds better to have some note in Kconfig.
      
      And, fixed a typo.
      Signed-off-by: default avatarYang Shi <yang.shi@linaro.org>
      Acked-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7707535a
  4. 11 Feb, 2016 4 commits