1. 06 Mar, 2017 2 commits
    • Suraj Jitindar Singh's avatar
      powerpc: Parse the command line before calling CAS · 12cc9fd6
      Suraj Jitindar Singh authored
      On POWER9 the hypervisor requires the guest to decide whether it would
      like to use a hash or radix mmu model at the time it calls
      ibm,client-architecture-support (CAS) based on what the hypervisor has
      said it's allowed to do. It is possible to disable radix by passing
      "disable_radix" on the command line. The next patch will add support for
      the new CAS format, thus we need to parse the command line before calling
      CAS so we can correctly select which mmu we would like to use.
      Signed-off-by: default avatarSuraj Jitindar Singh <sjitindarsingh@gmail.com>
      Reviewed-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      Acked-by: default avatarBalbir Singh <bsingharora@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      12cc9fd6
    • Balbir Singh's avatar
      powerpc/xics: Work around limitations of OPAL XICS priority handling · a69e2fb7
      Balbir Singh authored
      The CPPR (Current Processor Priority Register) of a XICS interrupt
      presentation controller contains a value N, such that only interrupts
      with a priority "more favoured" than N will be received by the CPU,
      where "more favoured" means "less than". So if the CPPR has the value 5
      then only interrupts with a priority of 0-4 inclusive will be received.
      
      In theory the CPPR can support a value of 0 to 255 inclusive.
      In practice Linux only uses values of 0, 4, 5 and 0xff. Setting the CPPR
      to 0 rejects all interrupts, setting it to 0xff allows all interrupts.
      The values 4 and 5 are used to differentiate IPIs from external
      interrupts. Setting the CPPR to 5 allows IPIs to be received but not
      external interrupts.
      
      The CPPR emulation in the OPAL XICS implementation only directly
      supports priorities 0 and 0xff. All other priorities are considered
      equivalent, and mapped to a single priority value internally. This means
      when using icp-opal we can not allow IPIs but not externals.
      
      This breaks Linux's use of priority values when a CPU is hot unplugged.
      After migrating IRQs away from the CPU that is being offlined, we set
      the priority to 5, meaning we still want the offline CPU to receive
      IPIs. But the effect of the OPAL XICS emulation's use of a single
      priority value is that all interrupts are rejected by the CPU. With the
      CPU offline, and not receiving IPIs, we may not be able to wake it up to
      bring it back online.
      
      The first part of the fix is in icp_opal_set_cpu_priority(). CPPR values
      of 0 to 4 inclusive will correctly cause all interrupts to be rejected,
      so we pass those CPPR values through to OPAL. However if we are called
      with a CPPR of 5 or greater, the caller is expecting to be able to allow
      IPIs but not external interrupts. We know this doesn't work, so instead
      of rejecting all interrupts we choose the opposite which is to allow all
      interrupts. This is still not correct behaviour, but we know for the
      only existing caller (xics_migrate_irqs_away()), that it is the better
      option.
      
      The other part of the fix is in xics_migrate_irqs_away(). Instead of
      setting priority (CPPR) to 0, and then back to 5 before migrating IRQs,
      we migrate the IRQs before setting the priority back to 5. This should
      have no effect on an ICP backend with a working set_priority(), and on
      icp-opal it means we will keep all interrupts blocked until after we've
      finished doing the IRQ migration. Additionally we wait for 5ms after
      doing the migration to make sure there are no IRQs in flight.
      
      Fixes: d7436188 ("powerpc/xics: Add ICP OPAL backend")
      Cc: stable@vger.kernel.org # v4.8+
      Suggested-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Reported-by: default avatarVaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
      Tested-by: default avatarVaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
      Signed-off-by: default avatarBalbir Singh <bsingharora@gmail.com>
      [mpe: Rewrote comments and change log, change delay to 5ms]
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      a69e2fb7
  2. 04 Mar, 2017 2 commits
  3. 03 Mar, 2017 7 commits
    • Laurentiu Tudor's avatar
      powerpc/booke: Fix boot crash due to null hugepd · 3fb66a70
      Laurentiu Tudor authored
      On 32-bit book-e machines, hugepd_ok() no longer takes into account null
      hugepd values, causing this crash at boot:
      
        Unable to handle kernel paging request for data at address 0x80000000
        ...
        NIP [c0018378] follow_huge_addr+0x38/0xf0
        LR [c001836c] follow_huge_addr+0x2c/0xf0
        Call Trace:
         follow_huge_addr+0x2c/0xf0 (unreliable)
         follow_page_mask+0x40/0x3e0
         __get_user_pages+0xc8/0x450
         get_user_pages_remote+0x8c/0x250
         copy_strings+0x110/0x390
         copy_strings_kernel+0x2c/0x50
         do_execveat_common+0x478/0x630
         do_execve+0x2c/0x40
         try_to_run_init_process+0x18/0x60
         kernel_init+0xbc/0x110
         ret_from_kernel_thread+0x5c/0x64
      
      This impacts all nxp (ex-freescale) 32-bit booke platforms.
      
      This was caused by the change of hugepd_t.pd from signed to unsigned,
      and the update to the nohash version of hugepd_ok(). Previously
      hugepd_ok() could exclude all non-huge and NULL pgds using > 0, whereas
      now we need to explicitly check that the value is not zero and also that
      PD_HUGE is *clear*.
      
      This isn't protected by the pgd_none() check in __find_linux_pte_or_hugepte()
      because on 32-bit we use pgtable-nopud.h, which causes the pgd_none()
      check to be always false.
      
      Fixes: 20717e1f ("powerpc/mm: Fix little-endian 4K hugetlb")
      Cc: stable@vger.kernel.org # v4.7+
      Reported-by: default avatarMadalin-Cristian Bucur <madalin.bucur@nxp.com>
      Signed-off-by: default avatarLaurentiu Tudor <laurentiu.tudor@nxp.com>
      [mpe: Flesh out change log details.]
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      3fb66a70
    • Nicholas Piggin's avatar
      powerpc: Fix compiling a BE kernel with a powerpc64le toolchain · 4dc831aa
      Nicholas Piggin authored
      GCC can compile with either endian, but the default ABI version is set
      based on the default endianness of the toolchain. Alan Modra says:
      
        you need both -mbig and -mabi=elfv1 to make a powerpc64le gcc
        generate powerpc64 code
      
      The opposite is true for powerpc64 when generating -mlittle it
      requires -mabi=elfv2 to generate v2 ABI, which we were already doing.
      
      This change adds ABI annotations together with endianness for all cases,
      LE and BE. This fixes the case of building a BE kernel with a toolchain
      that is LE by default.
      Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
      Tested-by: default avatarNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      4dc831aa
    • Sachin Sant's avatar
      selftest/powerpc: Fix false failures for skipped tests · a6d8a215
      Sachin Sant authored
      Tests under alignment subdirectory are skipped when executed on previous
      generation hardware, but harness still marks them as failed.
      
        test: test_copy_unaligned
        tags: git_version:unknown
        [SKIP] Test skipped on line 26
        skip: test_copy_unaligned
        selftests: copy_unaligned [FAIL]
      
      The MAGIC_SKIP_RETURN_VALUE value assigned to rc variable is retained till
      the program exit which causes the test to be marked as failed.
      
      This patch resets the value before returning to the main() routine.
      With this patch the test o/p is as follows:
      
        test: test_copy_unaligned
        tags: git_version:unknown
        [SKIP] Test skipped on line 26
        skip: test_copy_unaligned
        selftests: copy_unaligned [PASS]
      Signed-off-by: default avatarSachin Sant <sachinp@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      a6d8a215
    • Gautham R. Shenoy's avatar
      powerpc/powernv: Fix bug due to labeling ambiguity in power_enter_stop · 424f8acd
      Gautham R. Shenoy authored
      Commit 09206b60 ("powernv: Pass PSSCR value and mask to
      power9_idle_stop") added additional code in power_enter_stop() to
      distinguish between stop requests whose PSSCR had ESL=EC=1 from those
      which did not. When ESL=EC=1, we do a forward-jump to a location
      labelled by "1", which had the code to handle the ESL=EC=1 case.
      
      Unfortunately just a couple of instructions before this label, is the
      macro IDLE_STATE_ENTER_SEQ() which also has a label "1" in its
      expansion.
      
      As a result, the current code can result in directly executing stop
      instruction for deep stop requests with PSSCR ESL=EC=1, without saving
      the hypervisor state.
      
      Fix this BUG by labeling the location that handles ESL=EC=1 case with
      a more descriptive label ".Lhandle_esl_ec_set" (local label suggestion
      a la .Lxx from Anton Blanchard).
      
      While at it, rename the label "2" labelling the location of the code
      handling entry into deep stop states with ".Lhandle_deep_stop".
      
      For a good measure, change the label in IDLE_STATE_ENTER_SEQ() macro
      to an not-so commonly used value in order to avoid similar mishaps in
      the future.
      
      Fixes: 09206b60 ("powernv: Pass PSSCR value and mask to power9_idle_stop")
      Signed-off-by: default avatarGautham R. Shenoy <ego@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      424f8acd
    • Paul Mackerras's avatar
      powerpc/64: Invalidate process table caching after setting process table · 7a70d728
      Paul Mackerras authored
      The POWER9 MMU reads and caches entries from the process table.
      When we kexec from one kernel to another, the second kernel sets
      its process table pointer but doesn't currently do anything to
      make the CPU invalidate any cached entries from the old process table.
      This adds a tlbie (TLB invalidate entry) instruction with parameters
      to invalidate caching of the process table after the new process
      table is installed.
      Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      7a70d728
    • Ravi Bangoria's avatar
      powerpc: emulate_step() tests for load/store instructions · 4ceae137
      Ravi Bangoria authored
      Add new selftest that test emulate_step for Normal, Floating Point,
      Vector and Vector Scalar - load/store instructions. Test should run
      at boot time if CONFIG_KPROBES_SANITY_TEST and CONFIG_PPC64 is set.
      
      Sample log:
      
        emulate_step_test: ld             : PASS
        emulate_step_test: lwz            : PASS
        emulate_step_test: lwzx           : PASS
        emulate_step_test: std            : PASS
        emulate_step_test: ldarx / stdcx. : PASS
        emulate_step_test: lfsx           : PASS
        emulate_step_test: stfsx          : PASS
        emulate_step_test: lfdx           : PASS
        emulate_step_test: stfdx          : PASS
        emulate_step_test: lvx            : PASS
        emulate_step_test: stvx           : PASS
        emulate_step_test: lxvd2x         : PASS
        emulate_step_test: stxvd2x        : PASS
      Signed-off-by: default avatarRavi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
      [mpe: Drop start/complete lines, make it all __init]
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      4ceae137
    • Ravi Bangoria's avatar
      powerpc: Emulation support for load/store instructions on LE · e148bd17
      Ravi Bangoria authored
      emulate_step() uses a number of underlying kernel functions that were
      initially not enabled for LE. This has been rectified since. So, fix
      emulate_step() for LE for the corresponding instructions.
      
      Cc: stable@vger.kernel.org # v3.18+
      Reported-by: default avatarAnton Blanchard <anton@samba.org>
      Signed-off-by: default avatarRavi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      e148bd17
  4. 01 Mar, 2017 10 commits
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · b286cedd
      Linus Torvalds authored
      Pull more powerpc updates from Michael Ellerman:
       "Highlights include:
      
         - an update of the disassembly code used by xmon to the latest
           versions in binutils. We've received permission from all the
           authors of the relevant binutils changes to relicense their changes
           to the relevant files from GPLv3 to GPLv2, for inclusion in Linux.
           Thanks to Peter Bergner for doing the leg work to get permission
           from everyone.
      
         - addition of the "architected" Power9 CPU table entry, allowing us
           to boot in Power9 architected mode under a hypervisor.
      
         - updates to the Power9 PMU code.
      
         - implementation of clear_bit_unlock_is_negative_byte() to optimise
           unlock_page().
      
         - Freescale updates from Scott: "Highlights include 8xx breakpoints
           and perf, t1042rdb display support, and board updates."
      
        Thanks to:
          Al Viro, Andrew Donnellan, Aneesh Kumar K.V, Balbir Singh, Douglas
          Miller, Frédéric Weisbecker, Gavin Shan, Madhavan Srinivasan,
          Michael Roth, Nathan Fontenot, Naveen N. Rao, Nicholas Piggin, Peter
          Bergner, Paul E. McKenney, Rashmica Gupta, Russell Currey, Sahil
          Mehta, Stewart Smith"
      
      * tag 'powerpc-4.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (48 commits)
        powerpc: Remove leftover cputime_to_nsecs call causing build error
        powerpc/mm/hash: Always clear UPRT and Host Radix bits when setting up CPU
        powerpc/optprobes: Fix TOC handling in optprobes trampoline
        powerpc/pseries: Advertise Hot Plug Event support to firmware
        cxl: fix nested locking hang during EEH hotplug
        powerpc/xmon: Dump memory in CPU endian format
        powerpc/pseries: Revert 'Auto-online hotplugged memory'
        powerpc/powernv: Make PCI non-optional
        powerpc/64: Implement clear_bit_unlock_is_negative_byte()
        powerpc/powernv: Remove unused variable in pnv_pci_sriov_disable()
        powerpc/kernel: Remove error message in pcibios_setup_phb_resources()
        powerpc/mm: Fix typo in set_pte_at()
        pci/hotplug/pnv-php: Disable MSI and PCI device properly
        pci/hotplug/pnv-php: Disable surprise hotplug capability on conflicts
        pci/hotplug/pnv-php: Remove WARN_ON() in pnv_php_put_slot()
        powerpc: Add POWER9 architected mode to cputable
        powerpc/perf: use is_kernel_addr macro in perf_get_misc_flags()
        powerpc/perf: Avoid FAB_*_MATCH checks for power9
        powerpc/perf: Add restrictions to PMC5 in power9 DD1
        powerpc/perf: Use Instruction Counter value
        ...
      b286cedd
    • Benjamin Tissoires's avatar
      Input: rmi4 - f30: detect INPUT_PROP_BUTTONPAD from the button count · 522214d9
      Benjamin Tissoires authored
      INPUT_PROP_BUTTONPAD is currently only set through the platform data.
      The RMI4 header doc says that this property is there to force the
      buttonpad property, so we also need to detect it by looking at
      the exported buttons count.
      Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Reported-and-tested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      522214d9
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 044d5dfd
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A few last-minute fixes for rc1:
      
         - ALSA core timer and sequencer fixes for bugs spotted by syzkaller
      
         - a couple of trivial HD-audio fixups
      
         - additional PCI / codec IDs for Intel Geminilake
      
         - fixes for CT-XFi DMA mask bugs"
      
      * tag 'sound-fix-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: seq: Fix link corruption by event error handling
        ALSA: hda - Add subwoofer support for Dell Inspiron 17 7000 Gaming
        ALSA: ctxfi: Fallback DMA mask to 32bit
        ALSA: timer: Reject user params with too small ticks
        ALSA: hda: Add Geminilake HDMI codec ID
        ALSA: hda - Fix micmute hotkey problem for a lenovo AIO machine
        ALSA: hda - Add Geminilake PCI ID
      044d5dfd
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 544a068f
      Linus Torvalds authored
      Pull thermal management updates from Zhang Rui:
      
       - add thermal driver for R-Car Gen3 thermal sensors.
      
       - add thermal driver for ZTE' zx2967 family thermal sensors.
      
       - convert thermal ID allocation from IDR to IDA.
      
       - fix a possible NULL dereference in imx thermal driver.
      
       - fix a ti-soc-thermal driver dependency issue so that critical thermal
         control is still available when CPU_THERMAL is not defined.
      
       - update binding information for QorIQ thermal driver.
      
       - a couple of cleanups in thermal core, intel_powerclamp, exynos,
         dra752-thermal, mtk-thermal driver.
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
        powerpc/mpc85xx: Update TMU device tree node for T1023/T1024
        powerpc/mpc85xx: Update TMU device tree node for T1040/T1042
        dt-bindings: Update QorIQ TMU thermal bindings
        thermal: mtk_thermal: Staticise a number of data variables
        thermal: arm: dra752: Remove all TSHUT related definitions
        thermal: arm: dra752: Remove TSHUT configuration
        thermal: ti-soc-thermal: Remove CPU_THERMAL Dependency from TI_THERMAL
        thermal: imx: Fix possible NULL dereference.
        thermal: exynos: Remove parsing unused samsung,tmu_cal_mode property
        thermal: zx2967: add thermal driver for ZTE's zx2967 family
        thermal: use cpumask_var_t for on-stack cpu masks
        dt: bindings: add documentation for zx2967 family thermal sensor
        thermal/intel_powerclamp: Remove set-but-not-used variables
        thermal: rcar_gen3_thermal: Add R-Car Gen3 thermal driver
        thermal: rcar_gen3_thermal: Document the R-Car Gen3
        thermal: convert devfreq_cooling to use an IDA
        thermal: convert cpu_cooling to use an IDA
        thermal: convert clock cooling to use an IDA
        thermal core: convert ID allocation to IDA
      544a068f
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-4.11-rc1' of... · 545b2820
      Linus Torvalds authored
      Merge tag 'pwm/for-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "This set contains mostly fixes to existing drivers as well as cleanup
        of code that's not been in active use for a while"
      
      * tag 'pwm/for-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (27 commits)
        acpi: lpss: call pwm_add_table() for BSW PWM device
        pwm: Try to load modules during pwm_get()
        pwm: Don't hold pwm_lookup_lock longer than necessary
        pwm: Make the PWM_POLARITY flag in DTB optional
        pwm: Print error messages with pr_err() instead of pr_debug()
        pwm: imx: Add polarity inversion support to i.MX's PWMv2
        pwm: imx: doc: Update imx-pwm.txt documentation entry
        pwm: imx: Remove redundant i.MX PWMv2 code
        pwm: imx: Provide atomic PWM support for i.MX PWMv2
        pwm: imx: Move PWMv2 wait for fifo slot code to a separate function
        pwm: imx: Move PWMv2 software reset code to a separate function
        pwm: imx: Rewrite v1 code to facilitate switch to atomic PWM
        pwm: imx: Add separate set of PWM ops for v1 and v2
        pwm: imx: Remove ipg clock and enable per clock when required
        pwm: lpss: Add Intel Gemini Lake PCI ID
        pwm: lpss: Do not export board infos for different PWM types
        pwm: lpss: Avoid reconfiguring while UPDATE bit is still enabled
        pwm: lpss: Switch to new atomic API
        pwm: lpss: Allow duty cycle to be 0
        pwm: lpss: Avoid potential overflow of base_unit
        ...
      545b2820
    • Linus Torvalds's avatar
      Merge tag 'drm-ast-2500-for-v4.11' of git://people.freedesktop.org/~airlied/linux · 3437f9f0
      Linus Torvalds authored
      Pull drm AST2500 support from Dave Airlie:
       "This is a set of changes to enable the AST2500 BMC hardware, and also
        fix some bugs interacting with the older AST hardware.
      
        Some of the bug fixes are cc'ed to stable"
      
      * tag 'drm-ast-2500-for-v4.11' of git://people.freedesktop.org/~airlied/linux:
        drm/ast: Call open_key before enable_mmio in POST code
        drm/ast: Fix test for VGA enabled
        drm/ast: POST code for the new AST2500
        drm/ast: Rename ast_init_dram_2300 to ast_post_chip_2300
        drm/ast: Factor mmc_test code in POST code
        drm/ast: Fixed vram size incorrect issue on POWER
        drm/ast: Base support for AST2500
        drm/ast: Fix calculation of MCLK
        drm/ast: Remove spurious include
        drm/ast: const'ify mode setting tables
        drm/ast: Handle configuration without P2A bridge
        drm/ast: Fix AST2400 POST failure without BMC FW or VBIOS
      3437f9f0
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-for-v4.11-rc1' of git://people.freedesktop.org/~airlied/linux · f3ecc84b
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Misc fixes for v4.11-rc1.
      
        This is a selection of fixes for recent bugs, the vmwgfx one is
        important to avoid a regression, and compat ioctl one is pretty urgent
        for stable. Otherwise nothing too much.
      
        I've got a separate pull req for some AST hw IBM need to enable"
      
      * tag 'drm-fixes-for-v4.11-rc1' of git://people.freedesktop.org/~airlied/linux:
        dma-buf: add support for compat ioctl
        drm/vmwgfx: Work around drm removal of control nodes
        drm/rockchip: cdn-dp: Fix error handling
        drm/rockchip: add extcon dependency for DP
        drm: zte: fix static checker warning on variable 'fmt'
      f3ecc84b
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.11' of git://git.code.sf.net/p/openipmi/linux-ipmi · 2d6be4ab
      Linus Torvalds authored
      Pull IPMI updates from Corey Minyard:
       "This is a few small fixes to the main IPMI driver, make some things
        const, fix typos, etc.
      
        The last patch came in about a week ago, but IMHO it's best to go in
        now. It is not for the main driver, it's for the bt-bmc driver, which
        runs on the managment controller side, not on the host side, so the
        scope is limited and the change is necessary"
      
      * tag 'for-linus-4.11' of git://git.code.sf.net/p/openipmi/linux-ipmi:
        ipmi: bt-bmc: Use a regmap for register access
        char: ipmi: constify ipmi_smi_handlers structures
        acpi:ipmi: Make IPMI user handler const
        ipmi: make ipmi_usr_hndl const
        Documentation: Fix a typo in IPMI.txt.
      2d6be4ab
    • Linus Torvalds's avatar
      Merge branch 'idr-4.11' of git://git.infradead.org/users/willy/linux-dax · cf393195
      Linus Torvalds authored
      Pull IDR rewrite from Matthew Wilcox:
       "The most significant part of the following is the patch to rewrite the
        IDR & IDA to be clients of the radix tree. But there's much more,
        including an enhancement of the IDA to be significantly more space
        efficient, an IDR & IDA test suite, some improvements to the IDR API
        (and driver changes to take advantage of those improvements), several
        improvements to the radix tree test suite and RCU annotations.
      
        The IDR & IDA rewrite had a good spin in linux-next and Andrew's tree
        for most of the last cycle. Coupled with the IDR test suite, I feel
        pretty confident that any remaining bugs are quite hard to hit. 0-day
        did a great job of watching my git tree and pointing out problems; as
        it hit them, I added new test-cases to be sure not to be caught the
        same way twice"
      
      Willy goes on to expand a bit on the IDR rewrite rationale:
       "The radix tree and the IDR use very similar data structures.
      
        Merging the two codebases lets us share the memory allocation pools,
        and results in a net deletion of 500 lines of code. It also opens up
        the possibility of exposing more of the features of the radix tree to
        users of the IDR (and I have some interesting patches along those
        lines waiting for 4.12)
      
        It also shrinks the size of the 'struct idr' from 40 bytes to 24 which
        will shrink a fair few data structures that embed an IDR"
      
      * 'idr-4.11' of git://git.infradead.org/users/willy/linux-dax: (32 commits)
        radix tree test suite: Add config option for map shift
        idr: Add missing __rcu annotations
        radix-tree: Fix __rcu annotations
        radix-tree: Add rcu_dereference and rcu_assign_pointer calls
        radix tree test suite: Run iteration tests for longer
        radix tree test suite: Fix split/join memory leaks
        radix tree test suite: Fix leaks in regression2.c
        radix tree test suite: Fix leaky tests
        radix tree test suite: Enable address sanitizer
        radix_tree_iter_resume: Fix out of bounds error
        radix-tree: Store a pointer to the root in each node
        radix-tree: Chain preallocated nodes through ->parent
        radix tree test suite: Dial down verbosity with -v
        radix tree test suite: Introduce kmalloc_verbose
        idr: Return the deleted entry from idr_remove
        radix tree test suite: Build separate binaries for some tests
        ida: Use exceptional entries for small IDAs
        ida: Move ida_bitmap to a percpu variable
        Reimplement IDR and IDA using the radix tree
        radix-tree: Add radix_tree_iter_delete
        ...
      cf393195
    • Linus Torvalds's avatar
      Merge tag 'iommu-fix-v4.11-rc0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 5ecc5ac2
      Linus Torvalds authored
      Pull IOMMU fixes from Joerg Roedel:
       "Fix an issue introduced this merge window into the AMD and Intel IOMMU
        drivers that causes an oops when the vendor-specific sysfs-entries are
        accessed.
      
        The reason for this issue is that I forgot to update the sysfs code in
        the drivers when moving the iommu 'struct device' to the iommu-core"
      
      * tag 'iommu-fix-v4.11-rc0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/amd: Fix crash when accessing AMD-Vi sysfs entries
        iommu/vt-d: Fix crash when accessing VT-d sysfs entries
      5ecc5ac2
  5. 28 Feb, 2017 19 commits
    • Linus Torvalds's avatar
      Merge tag 'nfsd-4.11' of git://linux-nfs.org/~bfields/linux · 8313064c
      Linus Torvalds authored
      Pull nfsd updates from Bruce Fields:
       "The nfsd update this round is mainly a lot of miscellaneous cleanups
        and bugfixes.
      
        A couple changes could theoretically break working setups on upgrade.
        I don't expect complaints in practice, but they seem worth calling out
        just in case:
      
         - NFS security labels are now off by default; a new security_label
           export flag reenables it per export. But, having them on by default
           is a disaster, as it generally only makes sense if all your clients
           and servers have similar enough selinux policies. Thanks to Jason
           Tibbitts for pointing this out.
      
         - NFSv4/UDP support is off. It was never really supported, and the
           spec explicitly forbids it. We only ever left it on out of
           laziness; thanks to Jeff Layton for finally fixing that"
      
      * tag 'nfsd-4.11' of git://linux-nfs.org/~bfields/linux: (34 commits)
        nfsd: Fix display of the version string
        nfsd: fix configuration of supported minor versions
        sunrpc: don't register UDP port with rpcbind when version needs congestion control
        nfs/nfsd/sunrpc: enforce transport requirements for NFSv4
        sunrpc: flag transports as having congestion control
        sunrpc: turn bitfield flags in svc_version into bools
        nfsd: remove superfluous KERN_INFO
        nfsd: special case truncates some more
        nfsd: minor nfsd_setattr cleanup
        NFSD: Reserve adequate space for LOCKT operation
        NFSD: Get response size before operation for all RPCs
        nfsd/callback: Drop a useless data copy when comparing sessionid
        nfsd/callback: skip the callback tag
        nfsd/callback: Cleanup callback cred on shutdown
        nfsd/idmap: return nfserr_inval for 0-length names
        SUNRPC/Cache: Always treat the invalid cache as unexpired
        SUNRPC: Drop all entries from cache_detail when cache_purge()
        svcrdma: Poll CQs in "workqueue" mode
        svcrdma: Combine list fields in struct svc_rdma_op_ctxt
        svcrdma: Remove unused sc_dto_q field
        ...
      8313064c
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-4.11-rc1' of git://github.com/ceph/ceph-client · b2deee2d
      Linus Torvalds authored
      Pull ceph updates from Ilya Dryomov:
       "This time around we have:
      
         - support for rbd data-pool feature, which enables rbd images on
           erasure-coded pools (myself). CEPH_PG_MAX_SIZE has been bumped to
           allow erasure-coded profiles with k+m up to 32.
      
         - a patch for ceph_d_revalidate() performance regression introduced
           in 4.9, along with some cleanups in the area (Jeff Layton)
      
         - a set of fixes for unsafe ->d_parent accesses in CephFS (Jeff
           Layton)
      
         - buffered reads are now processed in rsize windows instead of rasize
           windows (Andreas Gerstmayr). The new default for rsize mount option
           is 64M.
      
         - ack vs commit distinction is gone, greatly simplifying ->fsync()
           and MOSDOpReply handling code (myself)
      
        ... also a few filesystem bug fixes from Zheng, a CRUSH sync up (CRUSH
        computations are still serialized though) and several minor fixes and
        cleanups all over"
      
      * tag 'ceph-for-4.11-rc1' of git://github.com/ceph/ceph-client: (52 commits)
        libceph, rbd, ceph: WRITE | ONDISK -> WRITE
        libceph: get rid of ack vs commit
        ceph: remove special ack vs commit behavior
        ceph: tidy some white space in get_nonsnap_parent()
        crush: fix dprintk compilation
        crush: do is_out test only if we do not collide
        ceph: remove req from unsafe list when unregistering it
        rbd: constify device_type structure
        rbd: kill obj_request->object_name and rbd_segment_name_cache
        rbd: store and use obj_request->object_no
        rbd: RBD_V{1,2}_DATA_FORMAT macros
        rbd: factor out __rbd_osd_req_create()
        rbd: set offset and length outside of rbd_obj_request_create()
        rbd: support for data-pool feature
        rbd: introduce rbd_init_layout()
        rbd: use rbd_obj_bytes() more
        rbd: remove now unused rbd_obj_request_wait() and helpers
        rbd: switch rbd_obj_method_sync() to ceph_osdc_call()
        libceph: pass reply buffer length through ceph_osdc_call()
        rbd: do away with obj_request in rbd_obj_read_sync()
        ...
      b2deee2d
    • Takashi Iwai's avatar
      ALSA: seq: Fix link corruption by event error handling · f3ac9f73
      Takashi Iwai authored
      The sequencer FIFO management has a bug that may lead to a corruption
      (shortage) of the cell linked list.  When a sequencer client faces an
      error at the event delivery, it tries to put back the dequeued cell.
      When the first queue was put back, this forgot the tail pointer
      tracking, and the link will be screwed up.
      
      Although there is no memory corruption, the sequencer client may stall
      forever at exit while flushing the pending FIFO cells in
      snd_seq_pool_done(), as spotted by syzkaller.
      
      This patch addresses the missing tail pointer tracking at
      snd_seq_fifo_cell_putback().  Also the patch makes sure to clear the
      cell->enxt pointer at snd_seq_fifo_event_in() for avoiding a similar
      mess-up of the FIFO linked list.
      Reported-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      f3ac9f73
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · d4f4cf77
      Linus Torvalds authored
      Pull ARM updates from Russell King:
      
       - nommu updates from Afzal Mohammed cleaning up the vectors support
      
       - allow DMA memory "mapping" for nommu Benjamin Gaignard
      
       - fixing a correctness issue with R_ARM_PREL31 relocations in the
         module linker
      
       - add strlen() prototype for the decompressor
      
       - support for DEBUG_VIRTUAL from Florian Fainelli
      
       - adjusting memory bounds after memory reservations have been
         registered
      
       - unipher cache handling updates from Masahiro Yamada
      
       - initrd and Thumb Kconfig cleanups
      
      * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: (23 commits)
        ARM: mm: round the initrd reservation to page boundaries
        ARM: mm: clean up initrd initialisation
        ARM: mm: move initrd init code out of arm_memblock_init()
        ARM: 8655/1: improve NOMMU definition of pgprot_*()
        ARM: 8654/1: decompressor: add strlen prototype
        ARM: 8652/1: cache-uniphier: clean up active way setup code
        ARM: 8651/1: cache-uniphier: include <linux/errno.h> instead of <linux/types.h>
        ARM: 8650/1: module: handle negative R_ARM_PREL31 addends correctly
        ARM: 8649/2: nommu: remove Hivecs configuration is asm
        ARM: 8648/2: nommu: display vectors base
        ARM: 8647/2: nommu: dynamic exception base address setting
        ARM: 8646/1: mmu: decouple VECTORS_BASE from Kconfig
        ARM: 8644/1: Reduce "CPU: shutdown" message to debug level
        ARM: 8641/1: treewide: Replace uses of virt_to_phys with __pa_symbol
        ARM: 8640/1: Add support for CONFIG_DEBUG_VIRTUAL
        ARM: 8639/1: Define KERNEL_START and KERNEL_END
        ARM: 8638/1: mtd: lart: Rename partition defines to be prefixed with PART_
        ARM: 8637/1: Adjust memory boundaries after reservations
        ARM: 8636/1: Cleanup sanity_check_meminfo
        ARM: add CPU_THUMB_CAPABLE to indicate possible Thumb support
        ...
      d4f4cf77
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f89db789
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "Two documentation updates, plus a debugging annotation fix"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/crash: Update the stale comment in reserve_crashkernel()
        x86/irq, trace: Add __irq_entry annotation to x86's platform IRQ handlers
        Documentation, x86, resctrl: Recommend locking for resctrlfs
      f89db789
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 65314ed0
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "Two rq-clock warnings related fixes, plus a cgroups related crash fix"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/cgroup: Move sched_online_group() back into css_online() to fix crash
        sched/fair: Update rq clock before changing a task's CPU affinity
        sched/core: Fix update_rq_clock() splat on hotplug (and suspend/resume)
      65314ed0
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3f26b0c8
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Misc fixes on the kernel and tooling side - nothing in particular
        stands out"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
        perf/core: Fix the perf_cpu_time_max_percent check
        perf/core: Fix perf_event_enable_on_exec() timekeeping (again)
        perf/core: Remove confusing comment and move put_ctx()
        perf record: Honor --quiet option properly
        perf annotate: Add -q/--quiet option
        perf diff: Add -q/--quiet option
        perf report: Add -q/--quiet option
        perf utils: Check verbose flag properly
        perf utils: Add perf_quiet_option()
        perf record: Add -a as default target
        perf stat: Add -a as default target
        perf tools: Fail on using multiple bits long terms without value
        perf tools: Move new_term arguments into struct parse_events_term template
        perf build: Add special fixdep cleaning rule
        perf tools: Replace _SC_NPROCESSORS_CONF with max_present_cpu in cpu_topology_map
        perf header: Make build_cpu_topology skip offline/absent CPUs
        perf cpumap: Add cpu__max_present_cpu()
        perf session: Fix DEBUG=1 build with clang
        tools lib traceevent: It's preempt not prempt
        perf python: Filter out -specs=/a/b/c from the python binding cc options
        ...
      3f26b0c8
    • Linus Torvalds's avatar
      Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 74efe07b
      Linus Torvalds authored
      Pull locking fixes from Ingo Molnar:
       "The main change is the uninlining of large refcount_t APIs, plus a
        header dependency fix.
      
        Note that the uninlining allowed us to enable the underflow/overflow
        warnings unconditionally and remove the debug Kconfig switch: this
        might trigger new warnings in buggy code and turn
        crashes/use-after-free bugs into less harmful memory leaks"
      
      * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/refcounts: Add missing kernel.h header to have UINT_MAX defined
        locking/refcounts: Out-of-line everything
      74efe07b
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e72e58fa
      Linus Torvalds authored
      Pull objtool fixes from Ingo Molnar:
       "A handful of objtool fixes related to unreachable code, plus a build
        fix for out of tree modules"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        objtool: Enclose contents of unreachable() macro in a block
        objtool: Prevent GCC from merging annotate_unreachable()
        objtool: Improve detection of BUG() and other dead ends
        objtool: Fix CONFIG_STACK_VALIDATION=y warning for out-of-tree modules
      e72e58fa
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide · 74e3f63c
      Linus Torvalds authored
      Pull IDE updates from David Miller:
       "Just one actual change here this time around, adding some init data
        annotations. The other change was bogus and got reverted"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide:
        ide: palm_bk3710: add __initdata to palm_bk3710_port_info
        Revert "ide: Fix interface autodetection in legacy IDE driver (trial #2)"
        ide: Fix interface autodetection in legacy IDE driver (trial #2)
      74e3f63c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · c2eca00f
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Don't save TIPC header values before the header has been validated,
          from Jon Paul Maloy.
      
       2) Fix memory leak in RDS, from Zhu Yanjun.
      
       3) We miss to initialize the UID in the flow key in some paths, from
          Julian Anastasov.
      
       4) Fix latent TOS masking bug in the routing cache removal from years
          ago, also from Julian.
      
       5) We forget to set the sockaddr port in sctp_copy_local_addr_list(),
          fix from Xin Long.
      
       6) Missing module ref count drop in packet scheduler actions, from
          Roman Mashak.
      
       7) Fix RCU annotations in rht_bucket_nested, from Herbert Xu.
      
       8) Fix use after free which happens because L2TP's ipv4 support returns
          non-zero values from it's backlog_rcv function which ipv4 interprets
          as protocol values. Fix from Paul Hüber.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (35 commits)
        qed: Don't use attention PTT for configuring BW
        qed: Fix race with multiple VFs
        l2tp: avoid use-after-free caused by l2tp_ip_backlog_recv
        xfrm: provide correct dst in xfrm_neigh_lookup
        rhashtable: Fix RCU dereference annotation in rht_bucket_nested
        rhashtable: Fix use before NULL check in bucket_table_free
        net sched actions: do not overwrite status of action creation.
        rxrpc: Kernel calls get stuck in recvmsg
        net sched actions: decrement module reference count after table flush.
        lib: Allow compile-testing of parman
        ipv6: check sk sk_type and protocol early in ip_mroute_set/getsockopt
        sctp: set sin_port for addr param when checking duplicate address
        net/mlx4_en: fix overflow in mlx4_en_init_timestamp()
        netfilter: nft_set_bitmap: incorrect bitmap size
        net: s2io: fix typo argumnet argument
        net: vxge: fix typo argumnet argument
        netfilter: nf_ct_expect: Change __nf_ct_expect_check() return value.
        ipv4: mask tos for input route
        ipv4: add missing initialization for flowi4_uid
        lib: fix spelling mistake: "actualy" -> "actually"
        ...
      c2eca00f
    • Takashi Iwai's avatar
      ALSA: hda - Add subwoofer support for Dell Inspiron 17 7000 Gaming · 493de342
      Takashi Iwai authored
      Dell Inspiron 17 7000 Gaming laptop needs a similar quirk like
      Inspiron 7599 to support its subwoofer speaker.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=194191
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      493de342
    • Takashi Iwai's avatar
      ALSA: ctxfi: Fallback DMA mask to 32bit · 15c75b09
      Takashi Iwai authored
      Currently ctxfi driver tries to set only the 64bit DMA mask on 64bit
      architectures, and bails out if it fails.  This causes a problem on
      some platforms since the 64bit DMA isn't always guaranteed.  We should
      fall back to the default 32bit DMA when 64bit DMA fails.
      
      Fixes: 6d74b86d ("ALSA: ctxfi - Allow 64bit DMA")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      15c75b09
    • Joerg Roedel's avatar
      iommu/amd: Fix crash when accessing AMD-Vi sysfs entries · b7a42b9d
      Joerg Roedel authored
      The link between the iommu sysfs-device and the struct
      amd_iommu is no longer stored as driver-data. Update the
      code to the new correct way of getting from device to
      amd_iommu.
      Reported-by: default avatarDave Jones <davej@codemonkey.org.uk>
      Fixes: 39ab9555 ('iommu: Add sysfs bindings for struct iommu_device')
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      b7a42b9d
    • Joerg Roedel's avatar
      iommu/vt-d: Fix crash when accessing VT-d sysfs entries · a7fdb6e6
      Joerg Roedel authored
      The link between the iommu sysfs-device and the struct
      intel_iommu is no longer stored as driver-data. Update the
      code to use the new access method.
      Reported-by: default avatarDave Jones <davej@codemonkey.org.uk>
      Fixes: 39ab9555 ('iommu: Add sysfs bindings for struct iommu_device')
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      a7fdb6e6
    • Takashi Iwai's avatar
      ALSA: timer: Reject user params with too small ticks · 71321eb3
      Takashi Iwai authored
      When a user sets a too small ticks with a fine-grained timer like
      hrtimer, the kernel tries to fire up the timer irq too frequently.
      This may lead to the condensed locks, eventually the kernel spinlock
      lockup with warnings.
      
      For avoiding such a situation, we define a lower limit of the
      resolution, namely 1ms.  When the user passes a too small tick value
      that results in less than that, the kernel returns -EINVAL now.
      Reported-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      71321eb3
    • Russell King's avatar
      Merge branches 'fixes' and 'misc'; commit 'kuser^{/add CPU_THUMB_CAPABLE to... · 17a870be
      Russell King authored
      Merge branches 'fixes' and 'misc'; commit 'kuser^{/add CPU_THUMB_CAPABLE to indicate}' into for-linus
      17a870be
    • Russell King's avatar
      ARM: mm: round the initrd reservation to page boundaries · cdcc5fa0
      Russell King authored
      Round the initrd memblock reservation to page boundaries to prevent
      other data sharing the initrd pages.  This prevents an allocation
      possibly overlapping with the initrd, which would later get trampled
      on in free_initrd_mem().
      Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      cdcc5fa0
    • Russell King's avatar
      ARM: mm: clean up initrd initialisation · 68b32f36
      Russell King authored
      Rather than repeatedly testing phys_initrd_size to see if the initrd
      is still enabled, return from the new function to avoid executing the
      remaining initialisation.
      Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      68b32f36