15 Feb, 2017

10 commits

  • commit 08b259631b5a1d912af4832847b5642f377d9101 upstream.

    After:

    a33d331761bc ("x86/CPU/AMD: Fix Bulldozer topology")

    our SMT scheduling topology for Fam17h systems is broken, because
    the ThreadId is included in the ApicId when SMT is enabled.

    So, without further decoding cpu_core_id is unique for each thread
    rather than the same for threads on the same core. This didn't affect
    systems with SMT disabled. Make cpu_core_id be what it is defined to be.

    Signed-off-by: Yazen Ghannam
    Signed-off-by: Borislav Petkov
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20170205105022.8705-2-bp@alien8.de
    Signed-off-by: Ingo Molnar
    Signed-off-by: Greg Kroah-Hartman

    Yazen Ghannam
     
  • commit 79a8b9aa388b0620cc1d525d7c0f0d9a8a85e08e upstream.

    Commit:

    a33d331761bc ("x86/CPU/AMD: Fix Bulldozer topology")

    restored the initial approach we had with the Fam15h topology of
    enumerating CU (Compute Unit) threads as cores. And this is still
    correct - they're beefier than HT threads but still have some
    shared functionality.

    Our current approach has a problem with the Mad Max Steam game, for
    example. Yves Dionne reported a certain "choppiness" while playing on
    v4.9.5.

    That problem stems most likely from the fact that the CU threads share
    resources within one CU and when we schedule to a thread of a different
    compute unit, this incurs latency due to migrating the working set to a
    different CU through the caches.

    When the thread siblings mask mirrors that aspect of the CUs and
    threads, the scheduler pays attention to it and tries to schedule within
    one CU first. Which takes care of the latency, of course.

    Reported-by: Yves Dionne
    Signed-off-by: Borislav Petkov
    Cc: Brice Goglin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Yazen Ghannam
    Link: http://lkml.kernel.org/r/20170205105022.8705-1-bp@alien8.de
    Signed-off-by: Ingo Molnar
    Signed-off-by: Greg Kroah-Hartman

    Borislav Petkov
     
  • commit 146fbb766934dc003fcbf755b519acef683576bf upstream.

    CONFIG_KASAN=y needs a lot of virtual memory mapped for its shadow.
    In that case ptdump_walk_pgd_level_core() takes a lot of time to
    walk across all page tables and doing this without
    a rescheduling causes soft lockups:

    NMI watchdog: BUG: soft lockup - CPU#3 stuck for 23s! [swapper/0:1]
    ...
    Call Trace:
    ptdump_walk_pgd_level_core+0x40c/0x550
    ptdump_walk_pgd_level_checkwx+0x17/0x20
    mark_rodata_ro+0x13b/0x150
    kernel_init+0x2f/0x120
    ret_from_fork+0x2c/0x40

    I guess that this issue might arise even without KASAN on huge machines
    with several terabytes of RAM.

    Stick cond_resched() in pgd loop to fix this.

    Reported-by: Tobias Regnery
    Signed-off-by: Andrey Ryabinin
    Cc: kasan-dev@googlegroups.com
    Cc: Alexander Potapenko
    Cc: "Paul E . McKenney"
    Cc: Dmitry Vyukov
    Link: http://lkml.kernel.org/r/20170210095405.31802-1-aryabinin@virtuozzo.com
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Andrey Ryabinin
     
  • commit 9b256714979fad61ae11d90b53cf67dd5e6484eb upstream.

    The IPIs come in as HVI not EE, so we need to test the appropriate
    SRR1 bits. The encoding is such that it won't have false positives
    on P7 and P8 so we can just test it like that. We also need to handle
    the icp-opal variant of the flush.

    Fixes: d74361881f0d ("powerpc/xics: Add ICP OPAL backend")
    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Michael Ellerman
    Signed-off-by: Greg Kroah-Hartman

    Benjamin Herrenschmidt
     
  • commit 90c1e3c2fafec57fcb55b5d69bcf293b1a5fc8b3 upstream.

    Three tiny changes to the ERAT flushing logic: First don't make
    it depend on DD1. It hasn't been decided yet but we might run
    DD2 in a mode that also requires explicit flushes for performance
    reasons so make it unconditional. We also add a missing isync, and
    finally remove the flush from _tlbiel_va as it is only necessary
    for congruence-class invalidations (PID, LPID and full TLB), not
    targetted invalidations.

    Fixes: 96ed1fe511a8 ("powerpc/mm/radix: Invalidate ERAT on tlbiel for POWER9 DD1")
    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Michael Ellerman
    Signed-off-by: Greg Kroah-Hartman

    Benjamin Herrenschmidt
     
  • commit 97a98ae5b8acf08d07d972c087b2def060bc9b73 upstream.

    Asynchronous external abort is coded differently in DFSR with LPAE enabled.

    Fixes: 9254970c "ARM: 8447/1: catch pending imprecise abort on unmask".
    Signed-off-by: Alexander Sverdlin
    Cc: Russell King
    Cc: Andrew Morton
    Cc: linux-arm-kernel@lists.infradead.org
    Signed-off-by: Russell King
    Signed-off-by: Greg Kroah-Hartman

    Alexander Sverdlin
     
  • commit 7f59b319111bbc3a5f32730c8a43b201e9522f52 upstream.

    GPIO4_11 is on pin 152(MX6DL_PAD_KEY_ROW2) and not on pin
    151(MX6DL_PAD_KEY_ROW1).

    I found the error while booting a mainline kernel on APF6S SoM and
    noticed the following message:

    [ 2.609337] imx6dl-pinctrl 20e0000.iomuxc: pin MX6DL_PAD_KEY_ROW1
    already requested by 20a8000.gpio:105; cannot claim for 20a8000.gpio:107
    [ 2.621884] imx6dl-pinctrl 20e0000.iomuxc: pin-151 (20a8000.gpio:107)
    status -22
    [ 2.629303] spi_imx 2008000.ecspi: Can't get CS GPIO 107

    With this patch, the message is gone and spi_imx driver probes correctly.

    Fixes: bb728d662bed ("ARM: dts: add gpio-ranges property to iMX GPIO controllers")
    Signed-off-by: Sébastien Szymanski
    Signed-off-by: Shawn Guo
    Signed-off-by: Greg Kroah-Hartman

    Sébastien Szymanski
     
  • commit 228dbbfb5d77f8e047b2a1d78da14b7158433027 upstream.

    Ensure that if userspace supplies insufficient data to
    PTRACE_SETREGSET to fill all the registers, the thread's old
    registers are preserved.

    Fixes: 5be6f62b0059 ("ARM: 6883/1: ptrace: Migrate to regsets framework")
    Signed-off-by: Dave Martin
    Acked-by: Russell King
    Signed-off-by: Russell King
    Signed-off-by: Greg Kroah-Hartman

    Dave Martin
     
  • commit d966564fcdc19e13eb6ba1fbe6b8101070339c3d upstream.

    This reverts commit 020eb3daaba2857b32c4cf4c82f503d6a00a67de.

    Gabriel C reports that it causes his machine to not boot, and we haven't
    tracked down the reason for it yet. Since the bug it fixes has been
    around for a longish time, we're better off reverting the fix for now.

    Gabriel says:
    "It hangs early and freezes with a lot RCU warnings.

    I bisected it down to :

    > Ruslan Ruslichenko (1):
    > x86/ioapic: Restore IO-APIC irq_chip retrigger callback

    Reverting this one fixes the problem for me..

    The box is a PRIMERGY TX200 S5 , 2 socket , 2 x E5520 CPU(s) installed"

    and Ruslan and Thomas are currently stumped.

    Reported-and-bisected-by: Gabriel C
    Cc: Ruslan Ruslichenko
    Cc: Thomas Gleixner
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Linus Torvalds
     
  • commit a524c218bc94c705886a0e0fedeee45d1931da32 upstream.

    Reported-by: Jo-Philipp Wich
    Fixes: 9aed02feae57bf7 ("ARC: [arcompact] handle unaligned access delay slot")
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-snps-arc@lists.infradead.org
    Signed-off-by: Vineet Gupta
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Vineet Gupta
     

09 Feb, 2017

10 commits

  • commit aaaec6fc755447a1d056765b11b24d8ff2b81366 upstream.

    The recent commit which prevents double activation of interrupts unearthed
    interesting code in x86. The code (ab)uses irq_domain_activate_irq() to
    reconfigure an already activated interrupt. That trips over the prevention
    code now.

    Fix it by deactivating the interrupt before activating the new configuration.

    Fixes: 08d85f3ea99f1 "irqdomain: Avoid activating interrupts more than once"
    Reported-and-tested-by: Mike Galbraith
    Reported-and-tested-by: Borislav Petkov
    Signed-off-by: Thomas Gleixner
    Cc: Andrey Ryabinin
    Cc: Marc Zyngier
    Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1701311901580.3457@nanos
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • commit 00c87e9a70a17b355b81c36adedf05e84f54e10d upstream.

    Saving unsupported state prevents migration when the new host does not
    support a XSAVE feature of the original host, even if the feature is not
    exposed to the guest.

    We've masked host features with guest-visible features before, with
    4344ee981e21 ("KVM: x86: only copy XSAVE state for the supported
    features") and dropped it when implementing XSAVES. Do it again.

    Fixes: df1daba7d1cb ("KVM: x86: support XSAVES usage in the host")
    Reviewed-by: Paolo Bonzini
    Signed-off-by: Radim Krčmář
    Signed-off-by: Greg Kroah-Hartman

    Radim Krčmář
     
  • commit 1aa6cfd33df492939b0be15ebdbcff1f8ae5ddb6 upstream.

    The recent conversion to the hotplug state machine kept two mechanisms from
    the original code:

    1) The first_init logic which adds the number of online CPUs in a package
    to the refcount. That's wrong because the callbacks are executed for
    all online CPUs.

    Remove it so the refcounting is correct.

    2) The on_each_cpu() call to undo box->init() in the error handling
    path. That's bogus because when the prepare callback fails no box has
    been initialized yet.

    Remove it.

    Signed-off-by: Thomas Gleixner
    Cc: Alexander Shishkin
    Cc: Arnaldo Carvalho de Melo
    Cc: Jiri Olsa
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Sebastian Siewior
    Cc: Stephane Eranian
    Cc: Vince Weaver
    Cc: Yasuaki Ishimatsu
    Fixes: 1a246b9f58c6 ("perf/x86/intel/uncore: Convert to hotplug state machine")
    Link: http://lkml.kernel.org/r/20170131230141.298032324@linutronix.de
    Signed-off-by: Ingo Molnar
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • commit a0615a16f7d0ceb5804d295203c302d496d8ee91 upstream.

    When setting a 2MB pte, radix__map_kernel_page() is using the address

    ptep = (pte_t *)pudp;

    Fix this conversion to use pmdp instead. Use pmdp_ptep() to do this
    instead of casting the pointer.

    Fixes: 2bfd65e45e87 ("powerpc/mm/radix: Add radix callbacks for early init routines")
    Reviewed-by: Aneesh Kumar K.V
    Signed-off-by: Reza Arbab
    Signed-off-by: Michael Ellerman
    Signed-off-by: Greg Kroah-Hartman

    Reza Arbab
     
  • commit b5fa0f7f88edcde37df1807fdf9ff10ec787a60e upstream.

    Anton says: In commit 4db7327194db ("powerpc: Add option to use jump
    label for cpu_has_feature()") and commit c12e6f24d413 ("powerpc: Add
    option to use jump label for mmu_has_feature()") we added:

    BUILD_BUG_ON(!__builtin_constant_p(feature))

    to cpu_has_feature() and mmu_has_feature() in order to catch usage
    issues (such as cpu_has_feature(cpu_has_feature(X), which has happened
    once in the past). Unfortunately LLVM isn't smart enough to resolve
    this, and it errors out.

    I work around it in my clang/LLVM builds of the kernel, but I have just
    discovered that it causes a lot of issues for the bcc (eBPF) trace tool
    (which uses LLVM).

    For now just #ifdef it away for clang builds.

    Fixes: 4db7327194db ("powerpc: Add option to use jump label for cpu_has_feature()")
    Fixes: c12e6f24d413 ("powerpc: Add option to use jump label for mmu_has_feature()")
    Reported-by: Anton Blanchard
    Tested-by: Naveen N. Rao
    Signed-off-by: Michael Ellerman
    Signed-off-by: Greg Kroah-Hartman

    Michael Ellerman
     
  • commit af2b7fa17eb92e52b65f96604448ff7a2a89ee99 upstream.

    prom_init.c calls 'instance-to-package' twice, but the return
    is not checked during prom_find_boot_cpu(). The result is then
    passed to prom_getprop(), which could be PROM_ERROR. Add a return check
    to prevent this.

    This was found on a pasemi system, where CFE doesn't have a working
    'instance-to package' prom call.

    Before Commit 5c0484e25ec0 ('powerpc: Endian safe trampoline') the area
    around addr 0 was mostly 0's and this doesn't cause a problem. Once the
    macro 'FIXUP_ENDIAN' has been added to head_64.S, the low memory area
    now has non-zero values, which cause the prom_getprop() call
    to hang.

    mpe: Also confirmed that under SLOF if 'instance-to-package' did fail
    with PROM_ERROR we would crash in SLOF. So the bug is not specific to
    CFE, it's just that other open firmwares don't trigger it because they
    have a working 'instance-to-package'.

    Fixes: 5c0484e25ec0 ("powerpc: Endian safe trampoline")
    Signed-off-by: Darren Stevens
    Signed-off-by: Michael Ellerman
    Signed-off-by: Greg Kroah-Hartman

    Darren Stevens
     
  • commit f05fea5b3574a5926c53865eea27139bb40b2f2b upstream.

    In __eeh_clear_pe_frozen_state(), we should pass the flag's value
    instead of its address to eeh_unfreeze_pe(). The isolated flag is
    cleared if no error returned from __eeh_clear_pe_frozen_state(). We
    never observed the error from the function. So the isolated flag should
    have been always cleared, no real issue is caused because of the misused
    @flag.

    This fixes the code by passing the value of @flag to eeh_unfreeze_pe().

    Fixes: 5cfb20b96f6 ("powerpc/eeh: Emulate EEH recovery for VFIO devices")
    Signed-off-by: Gavin Shan
    Signed-off-by: Michael Ellerman
    Signed-off-by: Greg Kroah-Hartman

    Gavin Shan
     
  • commit 11e3b725cfc282efe9d4a354153e99d86a16af08 upstream.

    Update the ARMv8 Crypto Extensions and the plain NEON AES implementations
    in CBC and CTR modes to return the next IV back to the skcipher API client.
    This is necessary for chaining to work correctly.

    Note that for CTR, this is only done if the request is a round multiple of
    the block size, since otherwise, chaining is impossible anyway.

    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu
    Signed-off-by: Greg Kroah-Hartman

    Ard Biesheuvel
     
  • commit 4b3e6f2ef3722f1a6a97b6034ed492c1a21fd4ae upstream.

    Commit bf15f86b343ed8 ("xtensa: initialize MMU before jumping to reset
    vector") calls MMU management functions even when CONFIG_MMU is not
    selected. That breaks noMMU build on cores with MMU.

    Don't manage MMU when CONFIG_MMU is not selected.

    Signed-off-by: Max Filippov
    Signed-off-by: Greg Kroah-Hartman

    Max Filippov
     
  • commit bf29bddf0417a4783da3b24e8c9e017ac649326f upstream.

    Commit:

    129766708 ("x86/efi: Only map RAM into EFI page tables if in mixed-mode")

    stopped creating 1:1 mappings for all RAM, when running in native 64-bit mode.

    It turns out though that there are 64-bit EFI implementations in the wild
    (this particular problem has been reported on a Lenovo Yoga 710-11IKB),
    which still make use of the first physical page for their own private use,
    even though they explicitly mark it EFI_CONVENTIONAL_MEMORY in the memory
    map.

    In case there is no mapping for this particular frame in the EFI pagetables,
    as soon as firmware tries to make use of it, a triple fault occurs and the
    system reboots (in case of the Yoga 710-11IKB this is very early during bootup).

    Fix that by always mapping the first page of physical memory into the EFI
    pagetables. We're free to hand this page to the BIOS, as trim_bios_range()
    will reserve the first page and isolate it away from memory allocators anyway.

    Note that just reverting 129766708 alone is not enough on v4.9-rc1+ to fix the
    regression on affected hardware, as this commit:

    ab72a27da ("x86/efi: Consolidate region mapping logic")

    later made the first physical frame not to be mapped anyway.

    Reported-by: Hanka Pavlikova
    Signed-off-by: Jiri Kosina
    Signed-off-by: Matt Fleming
    Cc: Ard Biesheuvel
    Cc: Borislav Petkov
    Cc: Borislav Petkov
    Cc: Laura Abbott
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Vojtech Pavlik
    Cc: Waiman Long
    Cc: linux-efi@vger.kernel.org
    Fixes: 129766708 ("x86/efi: Only map RAM into EFI page tables if in mixed-mode")
    Link: http://lkml.kernel.org/r/20170127222552.22336-1-matt@codeblueprint.co.uk
    [ Tidied up the changelog and the comment. ]
    Signed-off-by: Ingo Molnar
    Signed-off-by: Greg Kroah-Hartman

    Jiri Kosina
     

01 Feb, 2017

7 commits

  • commit 63d762b88cb5510f2bfdb5112ced18cde867ae61 upstream.

    There is an off-by-one error so we don't unregister priv->pdev_mux[0].
    Also it's slightly simpler as a while loop instead of a for loop.

    Fixes: 58cbbee2391c ("x86/platform/mellanox: Introduce support for Mellanox systems platform")
    Signed-off-by: Dan Carpenter
    Acked-by: Vadim Pasternak
    Signed-off-by: Andy Shevchenko
    Signed-off-by: Greg Kroah-Hartman

    Dan Carpenter
     
  • commit 2ad5d52d42810bed95100a3d912679d8864421ec upstream.

    In swab.h the "#if BITS_PER_LONG > 32" breaks compiling userspace programs if
    BITS_PER_LONG is #defined by userspace with the sizeof() compiler builtin.

    Solve this problem by using __BITS_PER_LONG instead. Since we now
    #include asm/bitsperlong.h avoid further potential userspace pollution
    by moving the #define of SHIFT_PER_LONG to bitops.h which is not
    exported to userspace.

    This patch unbreaks compiling qemu on hppa/parisc.

    Signed-off-by: Helge Deller
    Signed-off-by: Greg Kroah-Hartman

    Helge Deller
     
  • commit 9aed02feae57bf7a40cb04ea0e3017cb7a998db4 upstream.

    After emulating an unaligned access in delay slot of a branch, we
    pretend as the delay slot never happened - so return back to actual
    branch target (or next PC if branch was not taken).

    Curently we did this by handling STATUS32.DE, we also need to clear the
    BTA.T bit, which is disregarded when returning from original misaligned
    exception, but could cause weirdness if it took the interrupt return
    path (in case interrupt was acive too)

    One ARC700 customer ran into this when enabling unaligned access fixup
    for kernel mode accesses as well

    Signed-off-by: Vineet Gupta
    Signed-off-by: Greg Kroah-Hartman

    Vineet Gupta
     
  • commit 36425cd67052e3becf325fd4d3ba5691791ef7e4 upstream.

    commit 3c7c7a2fc8811bc ("ARC: Don't use "+l" inline asm constraint")
    modified the inline assembly to setup LP_COUNT register manually and NOT
    rely on gcc to do it (with the +l inline assembler contraint hint, now
    being retired in the compiler)

    However the fix was flawed as we didn't add LP_COUNT to asm clobber list,
    meaning gcc doesn't know that LP_COUNT or zero-delay-loops are in action
    in the inline asm.

    This resulted in some fun - as nested ZOL loops were being generared

    | mov lp_count,250000 ;16 # tmp235,
    | lp .L__GCC__LP14 #
    Signed-off-by: Greg Kroah-Hartman

    Vineet Gupta
     
  • commit 9dce990d2cf57b5ed4e71a9cdbd7eae4335111ff upstream.

    Ensure that if userspace supplies insufficient data to
    PTRACE_SETREGSET to fill all the registers, the thread's old
    registers are preserved.

    convert_vx_to_fp() is adapted to handle only a specified number of
    registers rather than unconditionally handling all of them: other
    callers of this function are adapted appropriately.

    Based on an initial patch by Dave Martin.

    Reported-by: Dave Martin
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Greg Kroah-Hartman

    Martin Schwidefsky
     
  • commit 0d6da872d3e4a60f43c295386d7ff9a4cdcd57e9 upstream.

    The last pgtable rework silently disabled the CMMA unused state by
    setting a local pte variable (a parameter) instead of propagating it
    back into the caller. Fix it.

    Fixes: ebde765c0e85 ("s390/mm: uninline ptep_xxx functions from pgtable.h")
    Cc: Martin Schwidefsky
    Cc: Claudio Imbrenda
    Signed-off-by: Christian Borntraeger
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Greg Kroah-Hartman

    Christian Borntraeger
     
  • commit fd7c99142d77dc4a851879a66715abf12a3193fb upstream.

    Ensure that if userspace supplies insufficient data to
    PTRACE_SETREGSET to fill all the registers, the thread's old
    registers are preserved.

    Signed-off-by: Dave Martin
    Signed-off-by: Chris Metcalf
    Signed-off-by: Greg Kroah-Hartman

    Dave Martin
     

26 Jan, 2017

13 commits

  • commit ae7871be189cb41184f1e05742b4a99e2c59774d upstream.

    Convert the flag swiotlb_force from an int to an enum, to prepare for
    the advent of more possible values.

    Suggested-by: Konrad Rzeszutek Wilk
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Konrad Rzeszutek Wilk
    Signed-off-by: Greg Kroah-Hartman

    Geert Uytterhoeven
     
  • commit 524dabe1c68e0bca25ce7b108099e5d89472a101 upstream.

    Commit b67a8b29df introduced logic to skip swiotlb allocation when all memory
    is DMA accessible anyway.

    While this is a great idea, __dma_alloc still calls swiotlb code unconditionally
    to allocate memory when there is no CMA memory available. The swiotlb code is
    called to ensure that we at least try get_free_pages().

    Without initialization, swiotlb allocation code tries to access io_tlb_list
    which is NULL. That results in a stack trace like this:

    Unable to handle kernel NULL pointer dereference at virtual address 00000000
    [...]
    [] swiotlb_tbl_map_single+0xd0/0x2b0
    [] swiotlb_alloc_coherent+0x10c/0x198
    [] __dma_alloc+0x68/0x1a8
    [] drm_gem_cma_create+0x98/0x108 [drm]
    [] drm_fbdev_cma_create_with_funcs+0xbc/0x368 [drm_kms_helper]
    [] drm_fbdev_cma_create+0x2c/0x40 [drm_kms_helper]
    [] drm_fb_helper_initial_config+0x238/0x410 [drm_kms_helper]
    [] drm_fbdev_cma_init_with_funcs+0x98/0x160 [drm_kms_helper]
    [] drm_fbdev_cma_init+0x40/0x58 [drm_kms_helper]
    [] vc4_kms_load+0x90/0xf0 [vc4]
    [] vc4_drm_bind+0xec/0x168 [vc4]
    [...]

    Thankfully swiotlb code just learned how to not do allocations with the FORCE_NO
    option. This patch configures the swiotlb code to use that if we decide not to
    initialize the swiotlb framework.

    Fixes: b67a8b29df ("arm64: mm: only initialize swiotlb when necessary")
    Signed-off-by: Alexander Graf
    CC: Jisheng Zhang
    CC: Geert Uytterhoeven
    CC: Konrad Rzeszutek Wilk
    Signed-off-by: Catalin Marinas
    Signed-off-by: Greg Kroah-Hartman

    Alexander Graf
     
  • commit 1c8a946bf3754a59cba1fc373949a8114bfe5aaa upstream.

    The arm64 __page_to_voff() macro takes a parameter called 'page', and
    also refers to 'struct page'. Thus, if the value passed in is not
    called 'page', we'll refer to the wrong struct name (which might not
    exist).

    Fixes: 3fa72fe9c614 ("arm64: mm: fix __page_to_voff definition")
    Acked-by: Mark Rutland
    Suggested-by: Volodymyr Babchuk
    Signed-off-by: Oleksandr Andrushchenko
    Signed-off-by: Catalin Marinas
    Signed-off-by: Greg Kroah-Hartman

    Oleksandr Andrushchenko
     
  • commit 90f92c631b210c1e97080b53a9d863783281a932 upstream.

    The following patch was sketched by Russell in response to my
    crashes on the PB11MPCore after the patch for software-based
    priviledged no access support for ARMv8.1. See this thread:
    http://marc.info/?l=linux-arm-kernel&m=144051749807214&w=2

    I am unsure what is going on, I suspect everyone involved in
    the discussion is. I just want to repost this to get the
    discussion restarted, as I still have to apply this patch
    with every kernel iteration to get my PB11MPCore Realview
    running.

    Testing by Neil Armstrong on the Oxnas NAS has revealed that
    this bug exist also on that widely deployed hardware, so
    we are probably currently regressing all ARM11MPCore systems.

    Cc: Russell King
    Cc: Will Deacon
    Fixes: a5e090acbf54 ("ARM: software-based priviledged-no-access support")
    Tested-by: Neil Armstrong
    Signed-off-by: Linus Walleij
    Signed-off-by: Russell King
    Signed-off-by: Greg Kroah-Hartman

    Linus Walleij
     
  • commit f0e8faa7a5e894b0fc99d24be1b18685a92ea466 upstream.

    This function clearly never worked and always returns true,
    as pointed out by gcc-7:

    arch/arm/mach-ux500/pm.c: In function 'prcmu_is_cpu_in_wfi':
    arch/arm/mach-ux500/pm.c:137:212: error: ?:
    using integer constants in boolean context, the expression
    will always evaluate to 'true' [-Werror=int-in-bool-context]

    With the added braces, the condition actually makes sense.

    Fixes: 34fe6f107eab ("mfd : Check if the other db8500 core is in WFI")
    Signed-off-by: Arnd Bergmann
    Acked-by: Daniel Lezcano
    Signed-off-by: Linus Walleij
    Signed-off-by: Greg Kroah-Hartman

    Arnd Bergmann
     
  • commit 1ea6af3216b092ec97129ac81bd95cf254c4b140 upstream.

    This fixes commit ab8dd3aed011 ("ARM: DTS: Add minimal Support for
    Logic PD DM3730 SOM-LV") where the Card Detect and Write Protect
    pins were improperly configured.

    Fixes: ab8dd3aed011 ("ARM: DTS: Add minimal Support for Logic PD DM3730 SOM-LV")
    Signed-off-by: Adam Ford
    Signed-off-by: Tony Lindgren
    Signed-off-by: Greg Kroah-Hartman

    Adam Ford
     
  • commit 6ab5c2b662e2dcbb964099bf7f19e9dbc9ae5a41 upstream.

    This patch fixes the following error:
    sgtl5000 0-000a: Error reading chip id -6
    imx-sgtl5000 sound: ASoC: CODEC DAI sgtl5000 not registered
    imx-sgtl5000 sound: snd_soc_register_card failed (-517)

    The problem was that the pinctrl group was linked to the sound driver
    instead of the codec node. Since the codec is probed first, the sys_mclk
    was missing and it would therefore fail to initialize.

    Fixes: b32e700256bc ("ARM: dts: imx: add Boundary Devices Nitrogen6_Max board")
    Signed-off-by: Gary Bisson
    Signed-off-by: Shawn Guo
    Signed-off-by: Greg Kroah-Hartman

    Gary Bisson
     
  • commit 3d37d41a148c32389ed360e10a9f8a7cd37ce166 upstream.

    Commit d1f3156fc8c7 ("ARM: dts: omap2: Remove skeleton.dtsi usage")
    removed the skeleton.dtsi usage since we want to get rid of it.

    But this can cause issues when booting a kernel with a boot-loader
    that doesn't create a chosen node if this isn't present in the DTB
    since the decompressor relies on a pre-existing chosen node to be
    available to insert the command line and merge other ATAGS info.

    Fixes: d1f3156fc8c7 ("ARM: dts: omap2: Remove skeleton.dtsi usage")
    Reported-by: Pali Rohar
    Signed-off-by: Javier Martinez Canillas
    Signed-off-by: Tony Lindgren
    Signed-off-by: Greg Kroah-Hartman

    Javier Martinez Canillas
     
  • commit 23ab4c6183ac0679d80888b5c4cc1d528fcc21c2 upstream.

    Commit 008a2ebcd677 ("ARM: dts: omap3: Remove skeleton.dtsi usage")
    removed the skeleton.dtsi usage since we want to get rid of it.

    But this can cause issues when booting a kernel with a boot-loader
    that doesn't create a chosen node if this isn't present in the DTB
    since the decompressor relies on a pre-existing chosen node to be
    available to insert the command line and merge other ATAGS info.

    Fixes: 008a2ebcd677 ("ARM: dts: omap3: Remove skeleton.dtsi usage")
    Reported-by: Pali Rohar
    Signed-off-by: Javier Martinez Canillas
    Signed-off-by: Tony Lindgren
    Signed-off-by: Greg Kroah-Hartman

    Javier Martinez Canillas
     
  • commit ce95077d0cdfcc8e40dea10a1680249831ccec77 upstream.

    Commit 75813028bbd7 ("ARM: dts: am4372: Remove skeleton.dtsi usage")
    removed the skeleton.dtsi usage since we want to get rid of it.

    But this can cause issues when booting a kernel with a boot-loader
    that doesn't create a chosen node if this isn't present in the DTB
    since the decompressor relies on a pre-existing chosen node to be
    available to insert the command line and merge other ATAGS info.

    Fixes: 75813028bbd7 ("ARM: dts: am4372: Remove skeleton.dtsi usage")
    Reported-by: Pali Rohar
    Signed-off-by: Javier Martinez Canillas
    Signed-off-by: Tony Lindgren
    Signed-off-by: Greg Kroah-Hartman

    Javier Martinez Canillas
     
  • commit c9faa84cb9c34852ad70cb175457ae21fc06f39b upstream.

    Commit 76a8548ea987 ("ARM: dts: omap5: Remove skeleton.dtsi usage")
    removed the skeleton.dtsi usage since we want to get rid of it.

    But this can cause issues when booting a kernel with a boot-loader
    that doesn't create a chosen node if this isn't present in the DTB
    since the decompressor relies on a pre-existing chosen node to be
    available to insert the command line and merge other ATAGS info.

    Fixes: 76a8548ea987 ("ARM: dts: omap5: Remove skeleton.dtsi usage")
    Reported-by: Pali Rohar
    Signed-off-by: Javier Martinez Canillas
    Signed-off-by: Tony Lindgren
    Signed-off-by: Greg Kroah-Hartman

    Javier Martinez Canillas
     
  • commit 6c565d1a63ce241a0100f5d327c48dde87b4df76 upstream.

    Commit da6269e7e3dd ("ARM: dts: omap4: Remove skeleton.dtsi usage")
    removed the skeleton.dtsi usage since we want to get rid of it.

    But this can cause issues when booting a kernel with a boot-loader
    that doesn't create a chosen node if this isn't present in the DTB
    since the decompressor relies on a pre-existing chosen node to be
    available to insert the command line and merge other ATAGS info.

    Fixes: da6269e7e3dd ("ARM: dts: omap4: Remove skeleton.dtsi usage")
    Reported-by: Pali Rohar
    Signed-off-by: Javier Martinez Canillas
    Signed-off-by: Tony Lindgren
    Signed-off-by: Greg Kroah-Hartman

    Javier Martinez Canillas
     
  • commit 1d8d6d3f2f7d553c479f24ab93767974a8c2dfad upstream.

    Commit f8bf01611c99 ("ARM: dts: am33xx: Remove skeleton.dtsi usage")
    removed the skeleton.dtsi usage since we want to get rid of it.

    But this can cause issues when booting a kernel with a boot-loader
    that doesn't create a chosen node if this isn't present in the DTB
    since the decompressor relies on a pre-existing chosen node to be
    available to insert the command line and merge other ATAGS info.

    Fixes: f8bf01611c99 ("ARM: dts: am33xx: Remove skeleton.dtsi usage")
    Reported-by: Pali Rohar
    Signed-off-by: Javier Martinez Canillas
    Signed-off-by: Tony Lindgren
    Signed-off-by: Greg Kroah-Hartman

    Javier Martinez Canillas