20 Nov, 2020

1 commit


30 Oct, 2020

1 commit


08 Oct, 2020

1 commit

  • * tag 'v5.4.70': (3051 commits)
    Linux 5.4.70
    netfilter: ctnetlink: add a range check for l3/l4 protonum
    ep_create_wakeup_source(): dentry name can change under you...
    ...

    Conflicts:
    arch/arm/mach-imx/pm-imx6.c
    arch/arm64/boot/dts/freescale/imx8mm-evk.dts
    arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
    drivers/crypto/caam/caamalg.c
    drivers/gpu/drm/imx/dw_hdmi-imx.c
    drivers/gpu/drm/imx/imx-ldb.c
    drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
    drivers/mmc/host/sdhci-esdhc-imx.c
    drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
    drivers/net/ethernet/freescale/enetc/enetc.c
    drivers/net/ethernet/freescale/enetc/enetc_pf.c
    drivers/thermal/imx_thermal.c
    drivers/usb/cdns3/ep0.c
    drivers/xen/swiotlb-xen.c
    sound/soc/fsl/fsl_esai.c
    sound/soc/fsl/fsl_sai.c

    Signed-off-by: Jason Liu

    Jason Liu
     

01 Oct, 2020

3 commits

  • commit c4ad98e4b72cb5be30ea282fce935248f2300e62 upstream.

    KVM currently assumes that an instruction abort can never be a write.
    This is in general true, except when the abort is triggered by
    a S1PTW on instruction fetch that tries to update the S1 page tables
    (to set AF, for example).

    This can happen if the page tables have been paged out and brought
    back in without seeing a direct write to them (they are thus marked
    read only), and the fault handling code will make the PT executable(!)
    instead of writable. The guest gets stuck forever.

    In these conditions, the permission fault must be considered as
    a write so that the Stage-1 update can take place. This is essentially
    the I-side equivalent of the problem fixed by 60e21a0ef54c ("arm64: KVM:
    Take S1 walks into account when determining S2 write faults").

    Update kvm_is_write_fault() to return true on IABT+S1PTW, and introduce
    kvm_vcpu_trap_is_exec_fault() that only return true when no faulting
    on a S1 fault. Additionally, kvm_vcpu_dabt_iss1tw() is renamed to
    kvm_vcpu_abt_iss1tw(), as the above makes it plain that it isn't
    specific to data abort.

    Signed-off-by: Marc Zyngier
    Reviewed-by: Will Deacon
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20200915104218.1284701-2-maz@kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Marc Zyngier
     
  • [ Upstream commit 55be2f50336f67800513b46c5ba6270e4ed0e784 ]

    We need to check for errors when calling cpu_pm_enter() and
    cpu_cluster_pm_enter(). And we need to bail out on errors as
    otherwise we can enter a deeper idle state when not desired.

    I'm not aware of the lack of error handling causing issues yet,
    but we need this at least for blocking deeper idle states when
    a GPIO instance has pending interrupts.

    Cc: Dave Gerlach
    Cc: Grygorii Strashko
    Cc: Keerthy
    Cc: Ladislav Michl
    Cc: Russell King
    Cc: Tero Kristo
    Signed-off-by: Tony Lindgren
    Link: https://lore.kernel.org/r/20200304225433.37336-2-tony@atomide.com
    Signed-off-by: Linus Walleij
    Signed-off-by: Sasha Levin

    Tony Lindgren
     
  • [ Upstream commit 40ff1ddb5570284e039e0ff14d7a859a73dc3673 ]

    The stacktrace code can read beyond the stack size, when it attempts to
    read pt_regs from exception frames.

    This can happen on normal, non-corrupt stacks. Since the unwind
    information in the extable is not correct for function prologues, the
    unwinding code can return data from the stack which is not actually the
    caller function address, and if in_entry_text() happens to succeed on
    this value, we can end up reading data from outside the task's stack
    when attempting to read pt_regs, since there is no bounds check.

    Example:

    [] (unwind_backtrace) from [] (show_stack+0x11/0x14)
    [] (show_stack) from [] (dump_stack+0x87/0xac)
    [] (dump_stack) from [] (tasklet_action_common.constprop.4+0xa5/0xa8)
    [] (tasklet_action_common.constprop.4) from [] (__do_softirq+0x11b/0x31c)
    [] (__do_softirq) from [] (irq_exit+0xad/0xd8)
    [] (irq_exit) from [] (__handle_domain_irq+0x47/0x84)
    [] (__handle_domain_irq) from [] (gic_handle_irq+0x43/0x78)
    [] (gic_handle_irq) from [] (__irq_svc+0x69/0xb4)
    Exception stack(0xeb491f58 to 0xeb491fa0)
    1f40: 7eb14794 00000000
    1f60: ffffffff 008dd32c 008dd324 ffffffff 008dd314 0000002a 801011e4 eb490000
    1f80: 0000002a 7eb1478c 50c5387d eb491fa8 80101001 8023d09c 40080033 ffffffff
    [] (__irq_svc) from [] (do_pipe2+0x0/0xac)
    [] (do_pipe2) from [] (0xffffffff)
    Exception stack(0xeb491fc8 to 0xeb492010)
    1fc0: 008dd314 0000002a 00511ad8 008de4c8 7eb14790 7eb1478c
    1fe0: 00511e34 7eb14774 004c8557 76f44098 60080030 7eb14794 00000000 00000000
    2000: 00000001 00000000 ea846c00 ea847cc0

    In this example, the stack limit is 0xeb492000, but 16 bytes outside the
    stack have been read.

    Fix it by adding bounds checks.

    Signed-off-by: Vincent Whitchurch
    Signed-off-by: Russell King
    Signed-off-by: Sasha Levin

    Vincent Whitchurch
     

24 Sep, 2020

1 commit


23 Sep, 2020

1 commit


22 Sep, 2020

2 commits


17 Sep, 2020

10 commits

  • commit 2a6838d54128952ace6f0ca166dd8706abe46649 upstream.

    Add syscon compatibility with Vybrid OCOTP node. This is required to
    access the UID.

    Fixes: fa8d20c8dbb77 ("ARM: dts: vfxxx: Add node corresponding to OCOTP")
    Cc: stable@vger.kernel.org
    Reviewed-by: Fabio Estevam
    Reviewed-by: Stefan Agner
    Signed-off-by: Chris Healy
    Signed-off-by: Shawn Guo
    Signed-off-by: Greg Kroah-Hartman

    Chris Healy
     
  • [ Upstream commit b793dab8d811e103665d6bddaaea1c25db3776eb ]

    The string was incorrectly defined before from least to most
    specific, swap the compatible strings accordingly.

    Fixes: 1c8f40650723 ("ARM: dts: BCM5301X: convert to iProc QSPI")
    Signed-off-by: Florian Fainelli
    Signed-off-by: Sasha Levin

    Florian Fainelli
     
  • [ Upstream commit d1ecc40a954fd0f5e3789b91fa80f15e82284e39 ]

    The string was incorrectly defined before from least to most
    specific, swap the compatible strings accordingly.

    Fixes: 329f98c1974e ("ARM: dts: NSP: Add QSPI nodes to NSPI and bcm958625k DTSes")
    Signed-off-by: Florian Fainelli
    Signed-off-by: Sasha Levin

    Florian Fainelli
     
  • [ Upstream commit d663186293a818af97c648624bee6c7a59e8218b ]

    The string was incorrectly defined before from least to most specific,
    swap the compatible strings accordingly.

    Fixes: b9099ec754b5 ("ARM: dts: Add Broadcom Hurricane 2 DTS include file")
    Signed-off-by: Florian Fainelli
    Signed-off-by: Sasha Levin

    Florian Fainelli
     
  • [ Upstream commit deb6323b739c54e1a1e83cd3a2bae4901e3eebf6 ]

    Correct gpio ranges according to i.MX7ULP pinctrl driver:

    gpio_ptc: ONLY pin 0~19 are available;
    gpio_ptd: ONLY pin 0~11 are available;
    gpio_pte: ONLY pin 0~15 are available;
    gpio_ptf: ONLY pin 0~19 are available;

    Fixes: 20434dc92c05 ("ARM: dts: imx: add common imx7ulp dtsi support")
    Signed-off-by: Anson Huang
    Signed-off-by: Shawn Guo
    Signed-off-by: Sasha Levin

    Anson Huang
     
  • [ Upstream commit 81dbbb417da4d1ac407dca5b434d39d5b6b91ef3 ]

    According to the Reference Manual, the correct size is 512 MiB.

    Without this fix, probing the QSPI fails:

    fsl-quadspi 1550000.spi: ioremap failed for resource
    [mem 0x40000000-0x7fffffff]
    fsl-quadspi 1550000.spi: Freescale QuadSPI probe failed
    fsl-quadspi: probe of 1550000.spi failed with error -12

    Fixes: 85f8ee78ab72 ("ARM: dts: ls1021a: Add support for QSPI with ls1021a SoC")
    Signed-off-by: Matthias Schiffer
    Signed-off-by: Shawn Guo
    Signed-off-by: Sasha Levin

    Matthias Schiffer
     
  • [ Upstream commit 0ff5a4812be4ebd4782bbb555d369636eea164f7 ]

    Fixes the register address for the timer3 entry on Arria10.

    Fixes: 475dc86d08de4 ("arm: dts: socfpga: Add a base DTSI for Altera's Arria10 SOC")
    Signed-off-by: Dinh Nguyen
    Signed-off-by: Sasha Levin

    Dinh Nguyen
     
  • [ Upstream commit d1db7b80a6c8c5f81db0e80664d29b374750e2c6 ]

    A previous commit removed the panel-dpi driver, which made the
    SOM-LV video stop working because it relied on the DPI driver
    for setting video timings. Now that the simple-panel driver is
    available in omap2plus, this patch migrates the SOM-LV dev kits
    to use a similar panel and remove the manual timing requirements.
    A similar patch was already done and applied to the Torpedo family.

    Fixes: 8bf4b1621178 ("drm/omap: Remove panel-dpi driver")

    Signed-off-by: Adam Ford
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Adam Ford
     
  • [ Upstream commit 4d26e9a028e3d88223e06fa133c3d55af7ddbceb ]

    Older versions of U-Boot would pinmux the whole board, but as
    the bootloader got updated, it started to only pinmux the pins
    it needed, and expected Linux to configure what it needed.

    Unfortunately this caused an issue with the audio, because the
    mcbsp2 pins were configured in the device tree but never
    referenced by the driver. When U-Boot stopped muxing the audio
    pins, the audio died.

    This patch adds the references to the associate the pin controller
    with the mcbsp2 driver which makes audio operate again.

    Fixes: 5cb8b0fa55a9 ("ARM: dts: Move most of logicpd-som-lv-37xx-devkit.dts to logicpd-som-lv-baseboard.dtsi")

    Signed-off-by: Adam Ford
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Adam Ford
     
  • [ Upstream commit d7dfee67688ac7f2dfd4c3bc70c053ee990c40b5 ]

    Older versions of U-Boot would pinmux the whole board, but as
    the bootloader got updated, it started to only pinmux the pins
    it needed, and expected Linux to configure what it needed.

    Unfortunately this caused an issue with the audio, because the
    mcbsp2 pins were configured in the device tree, they were never
    referenced by the driver. When U-Boot stopped muxing the audio
    pins, the audio died.

    This patch adds the references to the associate the pin controller
    with the mcbsp2 driver which makes audio operate again.

    Fixes: 739f85bba5ab ("ARM: dts: Move most of logicpd-torpedo-37xx-devkit to logicpd-torpedo-baseboard")

    Signed-off-by: Adam Ford
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Adam Ford
     

15 Sep, 2020

1 commit


11 Sep, 2020

1 commit


09 Sep, 2020

1 commit

  • This change affects all i.MX 6 with PL310 L2 Cache controller.
    When Linux runs in Non-secure World the PL310 has already
    been initialized by the ARM secure World running OP-TEE os.
    However, in order to have a proper Linux Initialization all the
    L2 cache ways have been locked by the secure world.

    This patch unlock all the ways during pl310 initialization.

    Signed-off-by: Cedric Neveux
    Signed-off-by: Arulpandiyan Vadivel
    (cherry picked from commit 5133fbe9aaafd24add7d92b1aa2d3474b7a13723)

    Cedric Neveux
     

04 Sep, 2020

1 commit


03 Sep, 2020

3 commits

  • commit e4a42c82e943b97ce124539fcd7a47445b43fa0d upstream.

    Redefine GZIP, BZIP2, LZOP variables as KGZIP, KBZIP2, KLZOP resp.
    GZIP, BZIP2, LZOP env variables are reserved by the tools. The original
    attempt to redefine them internally doesn't work in makefiles/scripts
    intercall scenarios, e.g., "make GZIP=gzip bindeb-pkg" and results in
    broken builds. There can be other broken build commands because of this,
    so the universal solution is to use non-reserved env variables for the
    compression tools.

    Fixes: 8dfb61dcbace ("kbuild: add variables for compression tools")
    Signed-off-by: Denis Efremov
    Tested-by: Guenter Roeck
    Signed-off-by: Masahiro Yamada
    Cc: Matthias Maennich
    Signed-off-by: Greg Kroah-Hartman

    Denis Efremov
     
  • commit 8dfb61dcbaceb19a5ded5e9c9dcf8d05acc32294 upstream.

    Allow user to use alternative implementations of compression tools,
    such as pigz, pbzip2, pxz. For example, multi-threaded tools to
    speed up the build:
    $ make GZIP=pigz BZIP2=pbzip2

    Variables _GZIP, _BZIP2, _LZOP are used internally because original env
    vars are reserved by the tools. The use of GZIP in gzip tool is obsolete
    since 2015. However, alternative implementations (e.g., pigz) still rely
    on it. BZIP2, BZIP, LZOP vars are not obsolescent.

    The credit goes to @grsecurity.

    As a sidenote, for multi-threaded lzma, xz compression one can use:
    $ export XZ_OPT="--threads=0"

    Signed-off-by: Denis Efremov
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Matthias Maennich
    Signed-off-by: Greg Kroah-Hartman

    Denis Efremov
     
  • [ Upstream commit 5656bb3857c4904d1dec6e1b8f876c1c0337274e ]

    The timer fixed interval period pulse generator register
    is used to generate periodic pulses. The down count
    register loads the value programmed in the fixed period
    interval (FIPER). At every tick of the timer accumulator
    overflow, the counter decrements by the value of
    TMR_CTRL[TCLK_PERIOD]. It generates a pulse when the down
    counter value reaches zero. It reloads the down counter
    in the cycle following a pulse.

    To use the TMR_FIPER register to generate desired periodic
    pulses. The value should programmed is,
    desired_period - tclk_period

    Current tmr-fiper2 value is to generate 100us periodic pulses.
    (But the value should have been 99995, not 99990. The tclk_period is 5.)
    This patch is to generate 1 second periodic pulses with value
    999999995 programmed which is more desired by user.

    Signed-off-by: Yangbo Lu
    Acked-by: Richard Cochran
    Signed-off-by: Shawn Guo
    Signed-off-by: Sasha Levin

    Yangbo Lu
     

27 Aug, 2020

1 commit


26 Aug, 2020

1 commit

  • commit fdfe7cbd58806522e799e2a50a15aee7f2cbb7b6 upstream.

    The 'flags' field of 'struct mmu_notifier_range' is used to indicate
    whether invalidate_range_{start,end}() are permitted to block. In the
    case of kvm_mmu_notifier_invalidate_range_start(), this field is not
    forwarded on to the architecture-specific implementation of
    kvm_unmap_hva_range() and therefore the backend cannot sensibly decide
    whether or not to block.

    Add an extra 'flags' parameter to kvm_unmap_hva_range() so that
    architectures are aware as to whether or not they are permitted to block.

    Cc:
    Cc: Marc Zyngier
    Cc: Suzuki K Poulose
    Cc: James Morse
    Signed-off-by: Will Deacon
    Message-Id:
    Signed-off-by: Paolo Bonzini
    Signed-off-by: Will Deacon
    Signed-off-by: Greg Kroah-Hartman

    Will Deacon
     

21 Aug, 2020

1 commit


19 Aug, 2020

8 commits

  • commit b4d5ec9b39f8b31d98f65bc5577b5d15d93795d7 upstream.

    Since clang does not push pc and sp in function prologues, the current
    implementation of unwind_frame does not work. By using the previous
    frame's lr/fp instead of saved pc/sp we get valid unwinds on clang-built
    kernels.

    The bounds check on next frame pointer must be changed as well since
    there are 8 less bytes between frames.

    This fixes /proc//stack.

    Link: https://github.com/ClangBuiltLinux/linux/issues/912

    Reported-by: Miles Chen
    Tested-by: Miles Chen
    Cc: stable@vger.kernel.org
    Reviewed-by: Nick Desaulniers
    Signed-off-by: Nathan Huckleberry
    Signed-off-by: Russell King
    Signed-off-by: Greg Kroah-Hartman

    Nathan Huckleberry
     
  • [ Upstream commit 3ad7b4e8f89d6bcc9887ca701cf2745a6aedb1a0 ]

    if of_find_device_by_node() succeed, socfpga_setup_ocram_self_refresh
    doesn't have a corresponding put_device(). Thus add a jump target to
    fix the exception handling for this function implementation.

    Fixes: 44fd8c7d4005 ("ARM: socfpga: support suspend to ram")
    Signed-off-by: Yu Kuai
    Signed-off-by: Dinh Nguyen
    Signed-off-by: Sasha Levin

    Yu Kuai
     
  • [ Upstream commit e4dae01bf08b754de79072441c357737220b873f ]

    The Bananapi M2+ uses a GPIO line to change the effective resistance of
    the CPU supply regulator's feedback resistor network. The voltages
    described in the device tree were given directly by the vendor. This
    turns out to be slightly off compared to the real values.

    The updated voltages are based on calculations of the feedback resistor
    network, and verified down to three decimal places with a multi-meter.

    Fixes: 6eeb4180d4b9 ("ARM: dts: sunxi: h3-h5: Add Bananapi M2+ v1.2 device trees")
    Signed-off-by: Chen-Yu Tsai
    Signed-off-by: Maxime Ripard
    Link: https://lore.kernel.org/r/20200717160053.31191-4-wens@kernel.org
    Signed-off-by: Sasha Levin

    Chen-Yu Tsai
     
  • [ Upstream commit 55b271af765b0e03d1ff29502f81644b1a3c87fd ]

    The device tree currently only assigns the a supply for the first CPU
    core, when in reality the regulator supply is shared by all four cores.
    This might cause an issue if the implementation does not realize the
    sharing of the supply.

    Assign the same regulator supply to the remaining CPU cores to address
    this.

    Fixes: 6eeb4180d4b9 ("ARM: dts: sunxi: h3-h5: Add Bananapi M2+ v1.2 device trees")
    Signed-off-by: Chen-Yu Tsai
    Signed-off-by: Maxime Ripard
    Link: https://lore.kernel.org/r/20200717160053.31191-3-wens@kernel.org
    Signed-off-by: Sasha Levin

    Chen-Yu Tsai
     
  • [ Upstream commit f87a4f022c44e5b87e842a9f3e644fba87e8385f ]

    if of_find_device_by_node() succeed, at91_pm_sram_init() doesn't have
    a corresponding put_device(). Thus add a jump target to fix the exception
    handling for this function implementation.

    Fixes: d2e467905596 ("ARM: at91: pm: use the mmio-sram pool to access SRAM")
    Signed-off-by: yu kuai
    Signed-off-by: Alexandre Belloni
    Link: https://lore.kernel.org/r/20200604123301.3905837-1-yukuai3@huawei.com
    Signed-off-by: Sasha Levin

    yu kuai
     
  • [ Upstream commit 59692ac5a7bb8c97ff440fc8917828083fbc38d6 ]

    When adding the adv7612 device node the ports node was misspelled as
    port, fix this.

    Fixes: bc63cd87f3ce924f ("ARM: dts: gose: add HDMI input")
    Signed-off-by: Niklas Söderlund
    Link: https://lore.kernel.org/r/20200713111016.523189-1-niklas.soderlund+renesas@ragnatech.se
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Sasha Levin

    Niklas Söderlund
     
  • [ Upstream commit d344234abde938ae1062edb6c05852b0bafb4a03 ]

    When adding the adv7180 device node the ports node was misspelled as
    port, fix this.

    Fixes: 8cae359049a88b75 ("ARM: dts: gose: add composite video input")
    Signed-off-by: Niklas Söderlund
    Link: https://lore.kernel.org/r/20200704155856.3037010-2-niklas.soderlund+renesas@ragnatech.se
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Sasha Levin

    Niklas Söderlund
     
  • [ Upstream commit ea9dd8f61c8a890843f68e8dc0062ce78365aab8 ]

    Call exynos_cpu_power_up(cpunr) unconditionally. This is needed by the
    big.LITTLE cpuidle driver and has no side-effects on other code paths.

    The additional soft-reset call during little core power up has been added
    to properly boot all cores on the Exynos5422-based boards with secure
    firmware (like Odroid XU3/XU4 family). This however broke big.LITTLE
    CPUidle driver, which worked only on boards without secure firmware (like
    Peach-Pit/Pi Chromebooks). Apply the workaround only when board is
    running under secure firmware.

    Fixes: 833b5794e330 ("ARM: EXYNOS: reset Little cores when cpu is up")
    Signed-off-by: Marek Szyprowski
    Reviewed-by: Lukasz Luba
    Signed-off-by: Krzysztof Kozlowski
    Signed-off-by: Sasha Levin

    Marek Szyprowski
     

11 Aug, 2020

1 commit


07 Aug, 2020

1 commit

  • commit aa54ea903abb02303bf55855fb51e3fcee135d70 upstream.

    Fix build error for the case:
    defined(CONFIG_SMP) && !defined(CONFIG_CPU_V6)

    config: keystone_defconfig

    CC arch/arm/kernel/signal.o
    In file included from ../include/linux/random.h:14,
    from ../arch/arm/kernel/signal.c:8:
    ../arch/arm/include/asm/percpu.h: In function ‘__my_cpu_offset’:
    ../arch/arm/include/asm/percpu.h:29:34: error: ‘current_stack_pointer’ undeclared (first use in this function); did you mean ‘user_stack_pointer’?
    : "Q" (*(const unsigned long *)current_stack_pointer));
    ^~~~~~~~~~~~~~~~~~~~~
    user_stack_pointer

    Fixes: f227e3ec3b5c ("random32: update the net random state on interrupt and activity")
    Signed-off-by: Grygorii Strashko
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Grygorii Strashko