09 Jun, 2017

1 commit


08 Jun, 2017

1 commit

  • Remove the TI wifi from defconfig and include the head file host.h
    which contain the definition of struct mmc_host to avoid the following
    compile warning:

    In file included from drivers/net/wireless/ti/wlcore/sdio.c:28:0:
    ./include/linux/mmc/sdio.h:193:35: warning: 'struct mmc_host' declared inside parameter list
    void mmc_sdio_force_remove(struct mmc_host *host);
    ^
    ./include/linux/mmc/sdio.h:193:35: warning: its scope is only this definition or declaration, which is probably not what you want

    Signed-off-by: Haibo Chen

    Haibo Chen
     

09 Feb, 2017

1 commit

  • 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
     

26 Jan, 2017

9 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 ad9e202aa1ce571b1d7fed969d06f66067f8a086 upstream.

    We cannot preserve partial fields for hardware breakpoints, because
    the values written by userspace to the hardware breakpoint
    registers can't subsequently be recovered intact from the hardware.

    So, just reject attempts to write incomplete fields with -EINVAL.

    Fixes: 478fcb2cdb23 ("arm64: Debugging support")
    Signed-off-by: Dave Martin
    Acked-by: Will Deacon
    Signed-off-by: Catalin Marinas
    Signed-off-by: Greg Kroah-Hartman

    Dave Martin
     
  • commit aeb1f39d814b2e21e5e5706a48834bfd553d0059 upstream.

    This patch adds an explicit __reserved[] field to user_fpsimd_state
    to replace what was previously unnamed padding.

    This ensures that data in this region are propagated across
    assignment rather than being left possibly uninitialised at the
    destination.

    Fixes: 60ffc30d5652 ("arm64: Exception handling")
    Signed-off-by: Dave Martin
    Acked-by: Will Deacon
    Signed-off-by: Catalin Marinas
    Signed-off-by: Greg Kroah-Hartman

    Dave Martin
     
  • commit a672401c00f82e4e19704aff361d9bad18003714 upstream.

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

    Fixes: 5d220ff9420f ("arm64: Better native ptrace support for compat tasks")
    Signed-off-by: Dave Martin
    Acked-by: Will Deacon
    Signed-off-by: Catalin Marinas
    Signed-off-by: Greg Kroah-Hartman

    Dave Martin
     
  • commit 9dd73f72f218320c6c90da5f834996e7360dc227 upstream.

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

    Fixes: 766a85d7bc5d ("arm64: ptrace: add NT_ARM_SYSTEM_CALL regset")
    Signed-off-by: Dave Martin
    Acked-by: Will Deacon
    Signed-off-by: Catalin Marinas
    Signed-off-by: Greg Kroah-Hartman

    Dave Martin
     
  • commit 9a17b876b573441bfb3387ad55d98bf7184daf9d upstream.

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

    Fixes: 478fcb2cdb23 ("arm64: Debugging support")
    Signed-off-by: Dave Martin
    Acked-by: Will Deacon
    Signed-off-by: Catalin Marinas
    Signed-off-by: Greg Kroah-Hartman

    Dave Martin
     
  • commit 7d9e8f71b989230bc613d121ca38507d34ada849 upstream.

    Generally, taking an unexpected exception should be a fatal event, and
    bad_mode is intended to cater for this. However, it should be possible
    to contain unexpected synchronous exceptions from EL0 without bringing
    the kernel down, by sending a SIGILL to the task.

    We tried to apply this approach in commit 9955ac47f4ba1c95 ("arm64:
    don't kill the kernel on a bad esr from el0"), by sending a signal for
    any bad_mode call resulting from an EL0 exception.

    However, this also applies to other unexpected exceptions, such as
    SError and FIQ. The entry paths for these exceptions branch to bad_mode
    without configuring the link register, and have no kernel_exit. Thus, if
    we take one of these exceptions from EL0, bad_mode will eventually
    return to the original user link register value.

    This patch fixes this by introducing a new bad_el0_sync handler to cater
    for the recoverable case, and restoring bad_mode to its original state,
    whereby it calls panic() and never returns. The recoverable case
    branches to bad_el0_sync with a bl, and returns to userspace via the
    usual ret_to_user mechanism.

    Signed-off-by: Mark Rutland
    Fixes: 9955ac47f4ba1c95 ("arm64: don't kill the kernel on a bad esr from el0")
    Reported-by: Mark Salter
    Cc: Will Deacon
    Signed-off-by: Catalin Marinas
    Signed-off-by: Greg Kroah-Hartman

    Mark Rutland
     

20 Jan, 2017

3 commits

  • commit 69d012345a1a32d3f03957f14d972efccc106a98 upstream.

    In current code, the @changed always returns the last one's status for
    the huge page with the contiguous bit set. This is really not what we
    want. Even one of the PTEs is changed, we should tell it to the caller.

    This patch fixes this issue.

    Fixes: 66b3923a1a0f ("arm64: hugetlb: add support for PTE contiguous bit")
    Signed-off-by: Huang Shijie
    Signed-off-by: Catalin Marinas
    Signed-off-by: Greg Kroah-Hartman

    Huang Shijie
     
  • commit 20156ce2365d61beaa6f5a78a7a789044e0e7acc upstream.

    The find_num_contig() will return 1 when the pmd is not present.
    It will cause a kernel dead loop in the following scenaro:

    1.) pmd entry is not present.

    2.) the page fault occurs:
    ... hugetlb_fault() --> hugetlb_no_page() --> set_huge_pte_at()

    3.) set_huge_pte_at() will only set the first PMD entry, since the
    find_num_contig just return 1 in this case. So the PMD entries
    are all empty except the first one.

    4.) when kernel accesses the address mapped by the second PMD entry,
    a new page fault occurs:
    ... hugetlb_fault() --> huge_ptep_set_access_flags()

    The second PMD entry is still empty now.

    5.) When the kernel returns, the access will cause a page fault again.
    The kernel will run like the "4)" above.
    We will see a dead loop since here.

    The dead loop is caught in the 32M hugetlb page (2M PMD + Contiguous bit).

    This patch removes wrong pmd check, and fixes this dead loop.

    This patch also removes the redundant checks for PGD/PUD in
    the find_num_contig().

    Acked-by: Steve Capper
    Signed-off-by: Huang Shijie
    Reviewed-by: Catalin Marinas
    Signed-off-by: Catalin Marinas
    Signed-off-by: Greg Kroah-Hartman

    Huang Shijie
     
  • commit 0c2f0afe3582c58efeef93bc57bc07d502132618 upstream.

    The libhugetlbfs meets several failures since the following functions
    do not use the correct address:
    huge_ptep_get_and_clear()
    huge_ptep_set_access_flags()
    huge_ptep_set_wrprotect()
    huge_ptep_clear_flush()

    This patch fixes the wrong address for them.

    Signed-off-by: Huang Shijie
    Reviewed-by: Catalin Marinas
    Signed-off-by: Catalin Marinas
    Signed-off-by: Greg Kroah-Hartman

    Huang Shijie
     

15 Jan, 2017

3 commits

  • commit 4f24450c6e580ac8591942c8bf65355a06b44635 upstream.

    bcm2837-rpi-3-b.dts, its only in-tree user, was overriding it as
    "brcm,bcm2837" already.

    Fixes: 9d56c22a7861 ("ARM: bcm2835: Add devicetree for the Raspberry Pi 3.")
    Cc: Stephen Warren
    Signed-off-by: Andreas Färber
    Signed-off-by: Eric Anholt
    Signed-off-by: Greg Kroah-Hartman

    Andreas Färber
     
  • commit a44e87b47148c6ee6b78509f47e6a15c0fae890a upstream.

    We are incorrectly defining the pwr LED, attaching it to a gpio line
    that is wired to the Wi-Fi SDIO module (which fails due to this).

    The actual power LED is connected to the GPIO expander, which we don't
    expose currently.

    Fixes: 9d56c22a7861 ("ARM: bcm2835: Add devicetree for the Raspberry Pi 3.")
    Thanks-to: Eric Anholt [for clarifying we can't control the LED]
    Signed-off-by: Andrea Merello
    Signed-off-by: Eric Anholt
    Signed-off-by: Greg Kroah-Hartman

    Andrea Merello
     
  • commit a3207d644fb89e5d7d5e01f00c04dcfc6d2d44d5 upstream.

    The devicetree node for mt8173-auxadc lacks the clock and
    io-channel-cells property. This leads to a non-working driver.

    mt6577-auxadc 11001000.auxadc: failed to get auxadc clock
    mt6577-auxadc: probe of 11001000.auxadc failed with error -2

    Fix these fields to get the device up and running.

    Fixes: 748c7d4de46a ("ARM64: dts: mt8173: Add thermal/auxadc device
    nodes")
    Signed-off-by: Matthias Brugger
    Signed-off-by: Greg Kroah-Hartman

    Matthias Brugger
     

12 Jan, 2017

8 commits

  • commit 1803b9a52c4e5a5dbb8a27126f6bc06939359753 upstream.

    The core AES cipher implementation that uses ARMv8 Crypto Extensions
    instructions erroneously loads the round keys as 64-bit quantities,
    which causes the algorithm to fail when built for big endian. In
    addition, the key schedule generation routine fails to take endianness
    into account as well, when loading the combining the input key with
    the round constants. So fix both issues.

    Fixes: 12ac3efe74f8 ("arm64/crypto: use crypto instructions to generate AES key schedule")
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu
    Signed-off-by: Greg Kroah-Hartman

    Ard Biesheuvel
     
  • commit caf4b9e2b326cc2a5005a5c557274306536ace61 upstream.

    Emit the XTS tweak literal constants in the appropriate order for a
    single 128-bit scalar literal load.

    Fixes: 49788fe2a128 ("arm64/crypto: AES-ECB/CBC/CTR/XTS using ARMv8 NEON and Crypto Extensions")
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu
    Signed-off-by: Greg Kroah-Hartman

    Ard Biesheuvel
     
  • commit ee71e5f1e7d25543ee63a80451871f8985b8d431 upstream.

    The SHA1 digest is an array of 5 32-bit quantities, so we should refer
    to them as such in order for this code to work correctly when built for
    big endian. So replace 16 byte scalar loads and stores with 4x4 vector
    ones where appropriate.

    Fixes: 2c98833a42cd ("arm64/crypto: SHA-1 using ARMv8 Crypto Extensions")
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu
    Signed-off-by: Greg Kroah-Hartman

    Ard Biesheuvel
     
  • commit a2c435cc99862fd3d165e1b66bf48ac72c839c62 upstream.

    The AES implementation using pure NEON instructions relies on the generic
    AES key schedule generation routines, which store the round keys as arrays
    of 32-bit quantities stored in memory using native endianness. This means
    we should refer to these round keys using 4x4 loads rather than 16x1 loads.
    In addition, the ShiftRows tables are loading using a single scalar load,
    which is also affected by endianness, so emit these tables in the correct
    order depending on whether we are building for big endian or not.

    Fixes: 49788fe2a128 ("arm64/crypto: AES-ECB/CBC/CTR/XTS using ARMv8 NEON and Crypto Extensions")
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu
    Signed-off-by: Greg Kroah-Hartman

    Ard Biesheuvel
     
  • commit 56e4e76c68fcb51547b5299e5b66a135935ff414 upstream.

    The AES-CCM implementation that uses ARMv8 Crypto Extensions instructions
    refers to the AES round keys as pairs of 64-bit quantities, which causes
    failures when building the code for big endian. In addition, it byte swaps
    the input counter unconditionally, while this is only required for little
    endian builds. So fix both issues.

    Fixes: 12ac3efe74f8 ("arm64/crypto: use crypto instructions to generate AES key schedule")
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu
    Signed-off-by: Greg Kroah-Hartman

    Ard Biesheuvel
     
  • commit 9c433ad5083fd4a4a3c721d86cbfbd0b2a2326a5 upstream.

    The GHASH key and digest are both pairs of 64-bit quantities, but the
    GHASH code does not always refer to them as such, causing failures when
    built for big endian. So replace the 16x1 loads and stores with 2x8 ones.

    Fixes: b913a6404ce2 ("arm64/crypto: improve performance of GHASH algorithm")
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu
    Signed-off-by: Greg Kroah-Hartman

    Ard Biesheuvel
     
  • commit 174122c39c369ed924d2608fc0be0171997ce800 upstream.

    The SHA256 digest is an array of 8 32-bit quantities, so we should refer
    to them as such in order for this code to work correctly when built for
    big endian. So replace 16 byte scalar loads and stores with 4x32 vector
    ones where appropriate.

    Fixes: 6ba6c74dfc6b ("arm64/crypto: SHA-224/SHA-256 using ARMv8 Crypto Extensions")
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu
    Signed-off-by: Greg Kroah-Hartman

    Ard Biesheuvel
     
  • commit 4d75a171b67ffc3f4dadbd654c9d281091300eb2 upstream.

    The ohci/ehci hardware pin number should be 640/641, correct them.

    Fixes: commit aa8d3e74f54d ("arm64: dts: Add initial dts for Hisilicon Hip06 D03 board")
    Signed-off-by: Kefeng Wang
    Signed-off-by: Wei Xu
    Signed-off-by: Greg Kroah-Hartman

    Kefeng Wang
     

09 Jan, 2017

2 commits

  • commit 21cbe3cc8a48ff17059912e019fbde28ed54745a upstream.

    The ARMv8 architecture allows the cycle counter to be configured
    by setting PMSELR_EL0.SEL==0x1f and then accessing PMXEVTYPER_EL0,
    hence accessing PMCCFILTR_EL0. But it disallows the use of
    PMSELR_EL0.SEL==0x1f to access the cycle counter itself through
    PMXEVCNTR_EL0.

    Linux itself doesn't violate this rule, but we may end up with
    PMSELR_EL0.SEL being set to 0x1f when we enter a guest. If that
    guest accesses PMXEVCNTR_EL0, the access may UNDEF at EL1,
    despite the guest not having done anything wrong.

    In order to avoid this unfortunate course of events (haha!), let's
    sanitize PMSELR_EL0 on guest entry. This ensures that the guest
    won't explode unexpectedly.

    Acked-by: Will Deacon
    Signed-off-by: Marc Zyngier
    Signed-off-by: Greg Kroah-Hartman

    Marc Zyngier
     
  • commit 5e6b9a89afceadb1ee45472098f7d20af260335c upstream.

    Add the VDD_GPU regulator (a GPIO-enabled PWM regulator) to the Jetson
    TX1 board. This addition allows the GPU to be used provided the
    bootloader properly enabled the GPU node.

    Signed-off-by: Alexandre Courbot
    Signed-off-by: Thierry Reding
    [as pointed out by Thierry on IRC, nobody has reported a bug
    in the field, but using a new bootloader with a .dtb that
    has the incorrect data, it will crash on boot]
    Fixes: 336f79c7b6d7 ("arm64: tegra: Add NVIDIA Jetson TX1 Developer Kit support")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Greg Kroah-Hartman

    Alexandre Courbot
     

03 Dec, 2016

1 commit

  • The core and the cluster sleep state entry latencies can't be same as
    cluster sleep involves more work compared to core level e.g. shared
    cache maintenance.

    Experiments have shown on an average about 100us more latency for the
    cluster sleep state compared to the core level sleep. This patch fixes
    the entry latency for the cluster sleep state.

    Fixes: 28e10a8f3a03 ("arm64: dts: juno: Add idle-states to device tree")
    Cc: Lorenzo Pieralisi
    Cc: "Jon Medhurst (Tixy)"
    Reviewed-by: Liviu Dudau
    Signed-off-by: Sudeep Holla
    Signed-off-by: Arnd Bergmann

    Sudeep Holla
     

01 Dec, 2016

1 commit

  • The PCIe root complex on Juno translates the MMIO mapped
    at 0x5f800000 to the PIO address range starting at 0
    (which is common because PIO addresses are generally < 64k).
    Correct the DT to reflect this.

    Signed-off-by: Jeremy Linton
    Signed-off-by: Arnd Bergmann

    Jeremy Linton
     

20 Nov, 2016

2 commits

  • Pull ARM SoC fixes from Olof Johansson:
    "Again a set of smaller fixes across several platforms (OMAP, Marvell,
    Allwinner, i.MX, etc).

    A handful of typo fixes and smaller missing contents from device
    trees, with some tweaks to OMAP mach files to deal with CPU feature
    print misformatting, potential NULL ptr dereference and one setup
    issue with UARTs"

    * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ipmi/bt-bmc: change compatible node to 'aspeed, ast2400-ibt-bmc'
    ARM: dts: STiH410-b2260: Fix typo in spi0 chipselect definition
    ARM: dts: omap5: board-common: fix wrong SMPS6 (VDD-DDR3) voltage
    ARM: omap3: Add missing memory node in SOM-LV
    arm64: dts: marvell: add unique identifiers for Armada A8k SPI controllers
    arm64: dts: marvell: fix clocksource for CP110 slave SPI0
    arm64: dts: marvell: Fix typo in label name on Armada 37xx
    ASoC: omap-abe-twl6040: fix typo in bindings documentation
    dts: omap5: board-common: enable twl6040 headset jack detection
    dts: omap5: board-common: add phandle to reference Palmas gpadc
    ARM: OMAP2+: avoid NULL pointer dereference
    ARM: OMAP2+: PRM: initialize en_uart4_mask and grpsel_uart4_mask
    ARM: dts: omap3: Fix memory node in Torpedo board
    ARM: AM43XX: Select OMAP_INTERCONNECT in Kconfig
    ARM: OMAP3: Fix formatting of features printed
    ARM: dts: imx53-qsb: Fix regulator constraints
    ARM: dts: sun8i: fix the pinmux for UART1

    Linus Torvalds
     
  • KVM/ARM updates for v4.9-rc6

    - Fix handling of the 32bit cycle counter
    - Fix cycle counter filtering

    Radim Krčmář
     

18 Nov, 2016

3 commits

  • KVM calls kvm_pmu_set_counter_event_type() when PMCCFILTR is configured.
    But this function can't deals with PMCCFILTR correctly because the evtCount
    bits of PMCCFILTR, which is reserved 0, conflits with the SW_INCR event
    type of other PMXEVTYPER registers. To fix it, when eventsel == 0, this
    function shouldn't return immediately; instead it needs to check further
    if select_idx is ARMV8_PMU_CYCLE_IDX.

    Another issue is that KVM shouldn't copy the eventsel bits of PMCCFILTER
    blindly to attr.config. Instead it ought to convert the request to the
    "cpu cycle" event type (i.e. 0x11).

    To support this patch and to prevent duplicated definitions, a limited
    set of ARMv8 perf event types were relocated from perf_event.c to
    asm/perf_event.h.

    Cc: stable@vger.kernel.org # 4.6+
    Acked-by: Will Deacon
    Signed-off-by: Wei Huang
    Signed-off-by: Marc Zyngier

    Wei Huang
     
  • We're missing the handling code for the cycle counter accessed
    from a 32bit guest, leading to unexpected results.

    Cc: stable@vger.kernel.org # 4.6+
    Signed-off-by: Wei Huang
    Signed-off-by: Marc Zyngier

    Wei Huang
     
  • mvebu fixes for 4.9 (part 1)

    All of them are fixes for arm64 device tree

    - 2 for the SPI node on the Armada 7K/8K
    - 1 for the clock node on the Armada 37xx

    * tag 'mvebu-fixes-4.9-1' of git://git.infradead.org/linux-mvebu:
    arm64: dts: marvell: add unique identifiers for Armada A8k SPI controllers
    arm64: dts: marvell: fix clocksource for CP110 slave SPI0
    arm64: dts: marvell: Fix typo in label name on Armada 37xx

    Signed-off-by: Olof Johansson

    Olof Johansson
     

14 Nov, 2016

1 commit

  • Pull KVM fixes from Paolo Bonzini:
    "ARM fixes. There are a couple pending x86 patches but they'll have to
    wait for next week"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: arm/arm64: vgic: Kick VCPUs when queueing already pending IRQs
    KVM: arm/arm64: vgic: Prevent access to invalid SPIs
    arm/arm64: KVM: Perform local TLB invalidation when multiplexing vcpus on a single CPU

    Linus Torvalds
     

12 Nov, 2016

1 commit

  • Pull PCI fixes from Bjorn Helgaas:

    - Update MAINTAINERS for Intel VMD driver filename

    - Update Rockchip rk3399 host bridge driver DTS and resets

    - Fix ROM shadow problem that made some video device initialization
    fail

    * tag 'pci-v4.9-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    PCI: VMD: Update filename to reflect move
    arm64: dts: rockchip: add three new resets for rk3399 PCIe controller
    PCI: rockchip: Add three new resets as required properties
    PCI: Don't attempt to claim shadow copies of ROM

    Linus Torvalds
     

11 Nov, 2016

2 commits


09 Nov, 2016

1 commit

  • Enabling SPI controllers, which are attached to different busses
    inside an SoC, may result in overlapping enumeration and cause
    sysfs registration failure. Example log after enabling two
    controllers on Armada 8040 SoC with same identifiers:

    [ 3.740415] sysfs: cannot create duplicate filename
    '/class/spi_master/spi0'
    [ 3.747510] ------------[ cut here ]------------
    [ 3.752145] WARNING: at fs/sysfs/dir.c:31
    [...]
    [ 4.002299] orion_spi: probe of f4700600.spi failed with error -17

    spi-orion driver offers dedicated DT property ('cell-index'), that
    allow setting unique identifiers. Recently added support for CP110-slave
    HW block introduced two new SPI controllers' nodes with same ID as
    ones from CP110-master.

    This commit fixes the issue by assigning different 'cell-index' values
    for CP110-slave SPI controllers.

    Fixes: 4eef78a0091b ("arm64: dts: marvell: add description for the slave
    CP110 in Armada 8K")

    Signed-off-by: Marcin Wojtas
    Acked-by: Thomas Petazzoni
    Signed-off-by: Gregory CLEMENT

    Marcin Wojtas