1. 28 Apr, 2018 6 commits
    • Amir Goldstein's avatar
      <linux/stringhash.h>: fix end_name_hash() for 64bit long · 19b9ad67
      Amir Goldstein authored
      The comment claims that this helper will try not to loose bits, but for
      64bit long it looses the high bits before hashing 64bit long into 32bit
      int.  Use the helper hash_long() to do the right thing for 64bit long.
      For 32bit long, there is no change.
      
      All the callers of end_name_hash() either assign the result to
      qstr->hash, which is u32 or return the result as an int value (e.g.
      full_name_hash()).  Change the helper return type to int to conform to
      its users.
      
      [ It took me a while to apply this, because my initial reaction to it
        was - incorrectly - that it could make for slower code.
      
        After having looked more at it, I take back all my complaints about
        the patch, Amir was right and I was mis-reading things or just being
        stupid.
      
        I also don't worry too much about the possible performance impact of
        this on 64-bit, since most architectures that actually care about
        performance end up not using this very much (the dcache code is the
        most performance-critical, but the word-at-a-time case uses its own
        hashing anyway).
      
        So this ends up being mostly used for filesystems that do their own
        degraded hashing (usually because they want a case-insensitive
        comparison function).
      
        A _tiny_ worry remains, in that not everybody uses DCACHE_WORD_ACCESS,
        and then this potentially makes things more expensive on 64-bit
        architectures with slow or lacking multipliers even for the normal
        case.
      
        That said, realistically the only such architecture I can think of is
        PA-RISC. Nobody really cares about performance on that, it's more of a
        "look ma, I've got warts^W an odd machine" platform.
      
        So the patch is fine, and all my initial worries were just misplaced
        from not looking at this properly.   - Linus ]
      Signed-off-by: default avatarAmir Goldstein <amir73il@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      19b9ad67
    • David Sterba's avatar
      MAINTAINERS: add myself as maintainer of AFFS · bf8f5de1
      David Sterba authored
      The AFFS filesystem is still in use by m68k community (Link #2), but as
      there was no code activity and no maintainer, the filesystem appeared on
      the list of candidates for staging/removal (Link #1).
      
      I volunteer to act as a maintainer of AFFS to collect any fixes that
      might show up and to guard fs/affs/ against another spring cleaning.
      
      Link: https://lkml.kernel.org/r/20180425154602.GA8546@bombadil.infradead.org
      Link: https://lkml.kernel.org/r/1613268.lKBQxPXt8J@merkaba
      CC: Martin Steigerwald <martin@lichtvoll.de>
      CC: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bf8f5de1
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · a97d8efd
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
      
       - two driver fixes
      
       - better parameter check for the core
      
       - Documentation updates
      
       - part of a tree-wide HAS_DMA cleanup
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: sprd: Fix the i2c count issue
        i2c: sprd: Prevent i2c accesses after suspend is called
        i2c: dev: prevent ZERO_SIZE_PTR deref in i2cdev_ioctl_rdwr()
        Documentation/i2c: adopt kernel commenting style in examples
        Documentation/i2c: sync docs with current state of i2c-tools
        Documentation/i2c: whitespace cleanup
        i2c: Remove depends on HAS_DMA in case of platform dependency
      a97d8efd
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 6e041ffc
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
      
       - crypto API regression that may cause sporadic alloc failures
      
       - double-free bug in drbg
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: drbg - set freed buffers to NULL
        crypto: api - fix finding algorithm currently being tested
      6e041ffc
    • Linus Torvalds's avatar
      Merge tag '4.17-rc2-smb3' of git://git.samba.org/sfrench/cifs-2.6 · cac26428
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "A few security related fixes for SMB3, most importantly for SMB3.11
        encryption"
      
      * tag '4.17-rc2-smb3' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: smbd: Avoid allocating iov on the stack
        cifs: smbd: Don't use RDMA read/write when signing is used
        SMB311: Fix reconnect
        SMB3: Fix 3.11 encryption to Windows and handle encrypted smb3 tcon
        CIFS: set *resp_buf_type to NO_BUFFER on error
      cac26428
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.17-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 0d95cfa9
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "A bunch of fixes, mostly for existing code and going to stable.
      
        Our memory hot-unplug path wasn't flushing the cache before removing
        memory. That is a problem now that we are doing memory hotplug on bare
        metal.
      
        Three fixes for the NPU code that supports devices connected via
        NVLink (ie. GPUs). The main one tweaks the TLB flush algorithm to
        avoid soft lockups for large flushes.
      
        A fix for our memory error handling where we would loop infinitely,
        returning back to the bad access and hard lockup the CPU.
      
        Fixes for the OPAL RTC driver, which wasn't handling some error cases
        correctly.
      
        A fix for a hardlockup in the powernv cpufreq driver.
      
        And finally two fixes to our smp_send_stop(), required due to a recent
        change to use it on shutdown.
      
        Thanks to: Alistair Popple, Balbir Singh, Laurentiu Tudor, Mahesh
        Salgaonkar, Mark Hairgrove, Nicholas Piggin, Rashmica Gupta, Shilpasri
        G Bhat"
      
      * tag 'powerpc-4.17-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/kvm/booke: Fix altivec related build break
        powerpc: Fix deadlock with multiple calls to smp_send_stop
        cpufreq: powernv: Fix hardlockup due to synchronous smp_call in timer interrupt
        powerpc: Fix smp_send_stop NMI IPI handling
        rtc: opal: Fix OPAL RTC driver OPAL_BUSY loops
        powerpc/mce: Fix a bug where mce loops on memory UE.
        powerpc/powernv/npu: Do a PID GPU TLB flush when invalidating a large address range
        powerpc/powernv/npu: Prevent overwriting of pnv_npu2_init_contex() callback parameters
        powerpc/powernv/npu: Add lock to prevent race in concurrent context init/destroy
        powerpc/powernv/memtrace: Let the arch hotunplug code flush cache
        powerpc/mm: Flush cache on memory hot(un)plug
      0d95cfa9
  2. 27 Apr, 2018 24 commits
    • Linus Torvalds's avatar
      rMerge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 46dc111d
      Linus Torvalds authored
      Pull KVM fixes from Radim Krčmář:
       "ARM:
         - PSCI selection API, a leftover from 4.16 (for stable)
         - Kick vcpu on active interrupt affinity change
         - Plug a VMID allocation race on oversubscribed systems
         - Silence debug messages
         - Update Christoffer's email address (linaro -> arm)
      
        x86:
         - Expose userspace-relevant bits of a newly added feature
         - Fix TLB flushing on VMX with VPID, but without EPT"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        x86/headers/UAPI: Move DISABLE_EXITS KVM capability bits to the UAPI
        kvm: apic: Flush TLB after APIC mode/address change if VPIDs are in use
        arm/arm64: KVM: Add PSCI version selection API
        KVM: arm/arm64: vgic: Kick new VCPU on interrupt migration
        arm64: KVM: Demote SVE and LORegion warnings to debug only
        MAINTAINERS: Update e-mail address for Christoffer Dall
        KVM: arm/arm64: Close VMID generation race
      46dc111d
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 19b522db
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "Nothing too bad, but the spectre updates to smatch identified a few
        places that may need sanitising so we've got those covered.
      
        Details:
      
         - Close some potential spectre-v1 vulnerabilities found by smatch
      
         - Add missing list sentinel for CPUs that don't require KPTI
      
         - Removal of unused 'addr' parameter for I/D cache coherency
      
         - Removal of redundant set_fs(KERNEL_DS) calls in ptrace
      
         - Fix single-stepping state machine handling in response to kernel
           traps
      
         - Clang support for 128-bit integers
      
         - Avoid instrumenting our out-of-line atomics in preparation for
           enabling LSE atomics by default in 4.18"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: avoid instrumenting atomic_ll_sc.o
        KVM: arm/arm64: vgic: fix possible spectre-v1 in vgic_mmio_read_apr()
        KVM: arm/arm64: vgic: fix possible spectre-v1 in vgic_get_irq()
        arm64: fix possible spectre-v1 in ptrace_hbp_get_event()
        arm64: support __int128 with clang
        arm64: only advance singlestep for user instruction traps
        arm64/kernel: rename module_emit_adrp_veneer->module_emit_veneer_for_adrp
        arm64: ptrace: remove addr_limit manipulation
        arm64: mm: drop addr parameter from sync icache and dcache
        arm64: add sentinel to kpti_safe_list
      19b522db
    • Linus Torvalds's avatar
      Merge tag 'modules-for-v4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux · 7b87308e
      Linus Torvalds authored
      Pull modules fix from Jessica Yu:
       "Fix display of module section addresses in sysfs, which were getting
        hashed with %pK and breaking tools like perf"
      
      * tag 'modules-for-v4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux:
        module: Fix display of wrong module .text address
      7b87308e
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-4.17-rc3' of git://github.com/ceph/ceph-client · 64ebe312
      Linus Torvalds authored
      Pull ceph fixes from Ilya Dryomov:
       "A CephFS quota follow-up and fixes for two older issues in the
        messenger layer, marked for stable"
      
      * tag 'ceph-for-4.17-rc3' of git://github.com/ceph/ceph-client:
        libceph: validate con->state at the top of try_write()
        libceph: reschedule a tick in finish_hunting()
        libceph: un-backoff on tick when we have a authenticated session
        ceph: check if mds create snaprealm when setting quota
      64ebe312
    • Linus Torvalds's avatar
      Merge tag 'char-misc-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · d8a33273
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "Here are some small char and misc driver fixes for 4.17-rc3
      
        A variety of small things that have fallen out after 4.17-rc1 was out.
        Some vboxguest fixes for systems with lots of memory, amba bus fixes,
        some MAINTAINERS updates, uio_hv_generic driver fixes, and a few other
        minor things that resolve problems that people reported.
      
        The amba bus fixes took twice to get right, the first time I messed up
        applying the patches in the wrong order, hence the revert and later
        addition again with the correct fix, sorry about that.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'char-misc-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        ARM: amba: Fix race condition with driver_override
        ARM: amba: Make driver_override output consistent with other buses
        Revert "ARM: amba: Fix race condition with driver_override"
        ARM: amba: Don't read past the end of sysfs "driver_override" buffer
        ARM: amba: Fix race condition with driver_override
        virt: vbox: Log an error when we fail to get the host version
        virt: vbox: Use __get_free_pages instead of kmalloc for DMA32 memory
        virt: vbox: Add vbg_req_free() helper function
        virt: vbox: Move declarations of vboxguest private functions to private header
        slimbus: Fix out-of-bounds access in slim_slicesize()
        MAINTAINERS: add dri-devel&linaro-mm for Android ION
        fpga-manager: altera-ps-spi: preserve nCONFIG state
        MAINTAINERS: update my email address
        uio_hv_generic: fix subchannel ring mmap
        uio_hv_generic: use correct channel in isr
        uio_hv_generic: make ring buffer attribute for primary channel
        uio_hv_generic: set size of ring buffer attribute
        ANDROID: binder: prevent transactions into own process.
      d8a33273
    • Linus Torvalds's avatar
      Merge tag 'driver-core-4.17-rc3' of... · ee3748be
      Linus Torvalds authored
      Merge tag 'driver-core-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core fixes from Greg Kroah-Hartman:
       "Here are some small driver core and firmware fixes for 4.17-rc3
      
        There's a kobject WARN() removal to make syzkaller a lot happier about
        some "normal" error paths that it keeps hitting, which should reduce
        the number of false-positives we have been getting recently.
      
        There's also some fimware test and documentation fixes, and the
        coredump() function signature change that needed to happen after -rc1
        before drivers started to take advantage of it.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'driver-core-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        firmware: some documentation fixes
        selftests:firmware: fixes a call to a wrong function name
        kobject: don't use WARN for registration failures
        firmware: Fix firmware documentation for recent file renames
        test_firmware: fix setting old custom fw path back on exit, second try
        test_firmware: Install all scripts
        drivers: change struct device_driver::coredump() return type to void
      ee3748be
    • Linus Torvalds's avatar
      Merge tag 'tty-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · b52c85a7
      Linus Torvalds authored
      Pull tty/serial fixes from Greg KH:
       "Here are some tty and serial driver fixes for reported issues for
        4.17-rc3.
      
        Nothing major, but a number of small things:
      
         - device tree fixes/updates for serial ports
      
         - earlycon fixes
      
         - n_gsm fixes
      
         - tty core change reverted to help resolve syszkaller reports
      
         - other serial driver small fixes
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'tty-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty: Use __GFP_NOFAIL for tty_ldisc_get()
        tty: serial: xuartps: Setup early console when uartclk is also passed
        tty: Don't call panic() at tty_ldisc_init()
        tty: Avoid possible error pointer dereference at tty_ldisc_restore().
        dt-bindings: mvebu-uart: DT fix s/interrupts-names/interrupt-names/
        tty: serial: qcom_geni_serial: Use signed variable to get IRQ
        earlycon: Use a pointer table to fix __earlycon_table stride
        serial: sh-sci: Document r8a77470 bindings
        dt-bindings: meson-uart: DT fix s/clocks-names/clock-names/
        serial: imx: fix cached UCR2 read on software reset
        serial: imx: warn user when using unsupported configuration
        serial: mvebu-uart: Fix local flags handling on termios update
        tty: n_gsm: Fix DLCI handling for ADM mode if debug & 2 is not set
        tty: n_gsm: Fix long delays with control frame timeouts in ADM mode
      b52c85a7
    • KarimAllah Ahmed's avatar
      x86/headers/UAPI: Move DISABLE_EXITS KVM capability bits to the UAPI · 5e62493f
      KarimAllah Ahmed authored
      Move DISABLE_EXITS KVM capability bits to the UAPI just like the rest of
      capabilities.
      
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Radim Krčmář <rkrcmar@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: x86@kernel.org
      Cc: kvm@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarKarimAllah Ahmed <karahmed@amazon.de>
      Signed-off-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
      5e62493f
    • Linus Torvalds's avatar
      Merge tag 'staging-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 79a17dd9
      Linus Torvalds authored
      Pull staging fixes from Greg KH:
       "Here are two staging driver fixups for 4.17-rc3.
      
        The first is the remaining stragglers of the irda code removal that
        you pointed out during the merge window. The second is a fix for the
        wilc1000 driver due to a patch that got merged in 4.17-rc1.
      
        Both of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'staging-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: wilc1000: fix NULL pointer exception in host_int_parse_assoc_resp_info()
        staging: irda: remove remaining remants of irda code removal
      79a17dd9
    • Linus Torvalds's avatar
      Merge tag 'usb-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 1993cbf0
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are a number of USB driver fixes for reported problems for
        4.17-rc3.
      
        The "largest" here is a number of phy core changes for reported
        problems with the -rc1 release. There's also the usual musb and xhci
        fixes, as well as new device id updates. There are also some usbip
        fixes for reported problems as more people start to use that code with
        containers.
      
        All of these have been in linux-next with no reported issues, except
        the last few new device ids, which are "obviously correct" :)"
      
      * tag 'usb-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (26 commits)
        USB: musb: dsps: drop duplicate phy initialisation
        USB: musb: host: prevent core phy initialisation
        usb: core: phy: add the SPDX-License-Identifier and include guard
        xhci: Fix Kernel oops in xhci dbgtty
        usb: select USB_COMMON for usb role switch config
        usb: core: phy: add missing forward declaration for "struct device"
        usb: core: phy: make it a no-op if CONFIG_GENERIC_PHY is disabled
        usb: core: use phy_exit during suspend if wake up is not supported
        usb: core: split usb_phy_roothub_{init,alloc}
        usb: core: phy: fix return value of usb_phy_roothub_exit()
        usb: typec: ucsi: Increase command completion timeout value
        Revert "xhci: plat: Register shutdown for xhci_plat"
        usb: core: Add quirk for HP v222w 16GB Mini
        Documentation: typec.rst: Use literal-block element with ascii art
        usb: typec: ucsi: fix tracepoint related build error
        usbip: usbip_event: fix to not print kernel pointer address
        usbip: usbip_host: fix to hold parent lock for device_attach() calls
        usbip: vhci_hcd: Fix usb device and sockfd leaks
        usbip: vhci_hcd: check rhport before using in vhci_hub_control()
        USB: Increment wakeup count on remote wakeup.
        ...
      1993cbf0
    • Linus Torvalds's avatar
      Merge tag 'sound-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 7ff50002
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A significant amount of fixes have been piled up at this time.
      
         - Possible Spectre v1 coverage in OSS sequencer API, control API,
           HD-audio hwdep ioctl, ASIHPI hwdep ioctl, OPL3, and HDSPM/RME
           channel_info API.
      
         - A regression fix in PCM delay reporting that happened at the code
           refactoring for the set_fs() removal
      
         - The long-standing bug in PCM sync_ptr ioctl that missed the audio
           timestamp field
      
         - USB-audio regression fixes due to the recent UAC2 jack support
      
         - vm_fault_t conversions in a couple of places
      
         - ASoC topology API fixes
      
         - Assorted driver fixes:
            * ASoC rsnd, FSL, Intel SST, DMIC, AMD, ADAU17x1, Realtek codec
            * FireWire typo fix
            * HD-audio quirks and USB-audio Dell fixup
            * USB-audio UAC3 corrections"
      
      * tag 'sound-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (35 commits)
        ALSA: dice: fix error path to destroy initialized stream data
        ALSA: hda - Skip jack and others for non-existing PCM streams
        ALSA: hda/realtek - change the location for one of two front mics
        ALSA: rme9652: Hardening for potential Spectre v1
        ALSA: hdspm: Hardening for potential Spectre v1
        ALSA: asihpi: Hardening for potential Spectre v1
        ALSA: opl3: Hardening for potential Spectre v1
        ALSA: hda: Hardening for potential Spectre v1
        ALSA: control: Hardening for potential Spectre v1
        ALSA: seq: oss: Hardening for potential Spectre v1
        ALSA: seq: oss: Fix unbalanced use lock for synth MIDI device
        ALSA: hda/realtek - Update ALC255 depop optimize
        ALSA: hda/realtek - Add some fixes for ALC233
        ALSA: pcm: Change return type to vm_fault_t
        ALSA: usx2y: Change return type to vm_fault_t
        ALSA: usb-audio: ADC3: Fix channel mapping conversion for ADC3.
        ALSA: dice: fix OUI for TC group
        ALSA: usb-audio: Skip broken EU on Dell dock USB-audio
        ALSA: usb-audio: Fix missing endian conversion
        ALSA: usb-audio: Fix forgotten conversion of control query functions
        ...
      7ff50002
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · ee7141c9
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "This round of fixes has two larger changes that came in last week:
      
         - a couple of patches all intended to finally turn on USB support on
           various Amlogic SoC based boards. The respective driver were not
           finalized until very late before the merge window and the DT
           portion is the last bit now.
      
         - a defconfig update for gemini that had repeatedly missed the cut
           but that is required to actually boot any real machines with the
           default build.
      
        The rest are the usual small changes:
      
         - a fix for a nasty build regression on the OMAP memory drivers
      
         - a fix for a boot problem on Intel/Altera SocFPGA
      
         - a MAINTAINER file update
      
         - a couple of fixes for issues found by automated testing (kernelci,
           coverity, sparse, ...)
      
         - a few incorrect DT entries are updated to match the hardware"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: defconfig: Update Gemini defconfig
        ARM: s3c24xx: jive: Fix some GPIO names
        HISI LPC: Add Kconfig MFD_CORE dependency
        ARM: dts: Fix NAS4220B pin config
        MAINTAINERS: Remove myself as maintainer
        arm64: dts: correct SATA addresses for Stingray
        ARM64: dts: meson-gxm-khadas-vim2: enable the USB controller
        ARM64: dts: meson-gxl-nexbox-a95x: enable the USB controller
        ARM64: dts: meson-gxl-s905x-libretech-cc: enable the USB controller
        ARM64: dts: meson-gx-p23x-q20x: enable the USB controller
        ARM64: dts: meson-gxl-s905x-p212: enable the USB controller
        ARM64: dts: meson-gxm: add GXM specific USB host configuration
        ARM64: dts: meson-gxl: add USB host support
        ARM: OMAP2+: Fix build when using split object directories
        soc: bcm2835: Make !RASPBERRYPI_FIRMWARE dummies return failure
        soc: bcm: raspberrypi-power: Fix use of __packed
        ARM: dts: Fix cm2 and prm sizes for omap4
        ARM: socfpga_defconfig: Remove QSPI Sector 4K size force
        firmware: arm_scmi: remove redundant null check on array
        arm64: dts: juno: drop unnecessary address-cells and size-cells properties
      ee7141c9
    • Linus Torvalds's avatar
      Merge tag 'mtd/fixes-for-4.17-rc3' of git://git.infradead.org/linux-mtd · 245131e2
      Linus Torvalds authored
      Pull mtd fixes from Boris Brezillon:
      
       - Fix nanddev_mtd_erase() function to match the changes done in
         e7bfb3fd ("mtd: Stop updating erase_info->state and calling
         mtd_erase_callback()")
      
       - Fix a memory leak in the Tango NAND controller driver
      
       - Fix read/write to a suspended erase block in the CFI driver
      
       - Fix the DT parsing logic in the Marvell NAND controller driver
      
      * tag 'mtd/fixes-for-4.17-rc3' of git://git.infradead.org/linux-mtd:
        mtd: rawnand: marvell: fix the chip-select DT parsing logic
        mtd: cfi: cmdset_0002: Do not allow read/write to suspend erase block.
        mtd: cfi: cmdset_0001: Workaround Micron Erase suspend bug.
        mtd: cfi: cmdset_0001: Do not allow read/write to suspend erase block.
        mtd: spi-nor: cadence-quadspi: Fix page fault kernel panic
        mtd: nand: Fix nanddev_mtd_erase()
        mtd: rawnand: tango: Fix struct clk memory leak
      245131e2
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-for-v4.17-rc3' of git://people.freedesktop.org/~airlied/linux · 0f940fac
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Pretty run of the mill for this stage in the cycle: msm, i915, amdgpu,
        qxl, virtio-gpu, sun4i fixes.
      
        i915:
         - Black screen fixes
         - Display w/a fix
         - HDA codec interop fix
      
        sun4i:
         - tbsa711 tablet regression fix
      
        qxl:
         - Regression fixes due to changes in TTM
      
        virtio:
         - Fix wait event condition
      
        msm:
         - DSI display fixes
      
        amdgpu:
         - fix hang on Carrizo
         - DP MST hang fixes
         - irq handling deadlock in DC.
      
        amdkfd:
         - Fix Kconfig issue
         - Clock retrieval fix
         - Sparse fixes"
      
      * tag 'drm-fixes-for-v4.17-rc3' of git://people.freedesktop.org/~airlied/linux: (27 commits)
        drm/edid: Reset more of the display info
        drm/virtio: fix vq wait_event condition
        qxl: keep separate release_bo pointer
        qxl: fix qxl_release_{map,unmap}
        Revert "drm/sun4i: add lvds mode_valid function"
        drm/amd/display: Check dc_sink every time in MST hotplug
        drm/amd/display: Update MST edid property every time
        drm/amd/display: Don't read EDID in atomic_check
        drm/amd/display: Disallow enabling CRTC without primary plane with FB
        drm/amd/display: Fix deadlock when flushing irq
        drm/i915/fbdev: Enable late fbdev initial configuration
        drm/i915: Use ktime on wait_for
        drm/amdgpu: set COMPUTE_PGM_RSRC1 for SGPR/VGPR clearing shaders
        drm/amdkfd: fix build, select MMU_NOTIFIER
        drm/amdkfd: fix clock counter retrieval for node without GPU
        drm/amdkfd: Fix the error return code in kfd_ioctl_unmap_memory_from_gpu()
        drm/amdkfd: kfd_dev_is_large_bar() can be static
        drm/i915: Enable display WA#1183 from its correct spot
        drm/i915/audio: set minimum CD clock to twice the BCLK
        drm/msm: don't deref error pointer in the msm_fbdev_create error path
        ...
      0f940fac
    • Junaid Shahid's avatar
      kvm: apic: Flush TLB after APIC mode/address change if VPIDs are in use · a468f2db
      Junaid Shahid authored
      Currently, KVM flushes the TLB after a change to the APIC access page
      address or the APIC mode when EPT mode is enabled. However, even in
      shadow paging mode, a TLB flush is needed if VPIDs are being used, as
      specified in the Intel SDM Section 29.4.5.
      
      So replace vmx_flush_tlb_ept_only() with vmx_flush_tlb(), which will
      flush if either EPT or VPIDs are in use.
      Signed-off-by: default avatarJunaid Shahid <junaids@google.com>
      Reviewed-by: default avatarJim Mattson <jmattson@google.com>
      Signed-off-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
      a468f2db
    • Baolin Wang's avatar
      i2c: sprd: Fix the i2c count issue · 2a010461
      Baolin Wang authored
      We found the I2C controller count register is unreliable sometimes,
      that will cause I2C to lose data. Thus we can read the data count
      from 'i2c_dev->count' instead of the I2C controller count register.
      Signed-off-by: default avatarBaolin Wang <baolin.wang@linaro.org>
      Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
      2a010461
    • Baolin Wang's avatar
      i2c: sprd: Prevent i2c accesses after suspend is called · da33aa03
      Baolin Wang authored
      Add one flag to indicate if the i2c controller has been in suspend state,
      which can prevent i2c accesses after i2c controller is suspended following
      system suspend.
      Signed-off-by: default avatarBaolin Wang <baolin.wang@linaro.org>
      Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
      da33aa03
    • Alexander Popov's avatar
      i2c: dev: prevent ZERO_SIZE_PTR deref in i2cdev_ioctl_rdwr() · 23a27722
      Alexander Popov authored
      i2cdev_ioctl_rdwr() allocates i2c_msg.buf using memdup_user(), which
      returns ZERO_SIZE_PTR if i2c_msg.len is zero.
      
      Currently i2cdev_ioctl_rdwr() always dereferences the buf pointer in case
      of I2C_M_RD | I2C_M_RECV_LEN transfer. That causes a kernel oops in
      case of zero len.
      
      Let's check the len against zero before dereferencing buf pointer.
      
      This issue was triggered by syzkaller.
      Signed-off-by: default avatarAlexander Popov <alex.popov@linux.com>
      Reviewed-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      [wsa: use '< 1' instead of '!' for easier readability]
      Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
      23a27722
    • Mark Rutland's avatar
      arm64: avoid instrumenting atomic_ll_sc.o · 3789c122
      Mark Rutland authored
      Our out-of-line atomics are built with a special calling convention,
      preventing pointless stack spilling, and allowing us to patch call sites
      with ARMv8.1 atomic instructions.
      
      Instrumentation inserted by the compiler may result in calls to
      functions not following this special calling convention, resulting in
      registers being unexpectedly clobbered, and various problems resulting
      from this.
      
      For example, if a kernel is built with KCOV and ARM64_LSE_ATOMICS, the
      compiler inserts calls to __sanitizer_cov_trace_pc in the prologues of
      the atomic functions. This has been observed to result in spurious
      cmpxchg failures, leading to a hang early on in the boot process.
      
      This patch avoids such issues by preventing instrumentation of our
      out-of-line atomics.
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      3789c122
    • Arnd Bergmann's avatar
      Merge tag 'arm-soc/for-4.17/devicetree-arm64-fixes' of... · 4ea3f056
      Arnd Bergmann authored
      Merge tag 'arm-soc/for-4.17/devicetree-arm64-fixes' of https://github.com/Broadcom/stblinux into fixes
      
      Pull "Broadcom devicetree-arm64 fixes for 4.17" from Florian Fainelli:
      
      This pull request contains Broadcom ARM64-based SoCs Device Tree fixes
      for 4.17, please pull the following:
      
      - Srinath fixes the register base address of all SATA controllers on
        Stingray
      
      * tag 'arm-soc/for-4.17/devicetree-arm64-fixes' of https://github.com/Broadcom/stblinux:
        arm64: dts: correct SATA addresses for Stingray
      4ea3f056
    • Laurentiu Tudor's avatar
      powerpc/kvm/booke: Fix altivec related build break · b2d7ecbe
      Laurentiu Tudor authored
      Add missing "altivec unavailable" interrupt injection helper
      thus fixing the linker error below:
      
        arch/powerpc/kvm/emulate_loadstore.o: In function `kvmppc_check_altivec_disabled':
        arch/powerpc/kvm/emulate_loadstore.c: undefined reference to `.kvmppc_core_queue_vec_unavail'
      
      Fixes: 09f98496 ("KVM: PPC: Book3S: Add MMIO emulation for VMX instructions")
      Signed-off-by: default avatarLaurentiu Tudor <laurentiu.tudor@nxp.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      b2d7ecbe
    • Nicholas Piggin's avatar
      powerpc: Fix deadlock with multiple calls to smp_send_stop · 6029755e
      Nicholas Piggin authored
      smp_send_stop can lock up the IPI path for any subsequent calls,
      because the receiving CPUs spin in their handler function. This
      started becoming a problem with the addition of an smp_send_stop
      call in the reboot path, because panics can reboot after doing
      their own smp_send_stop.
      
      The NMI IPI variant was fixed with ac61c115 ("powerpc: Fix
      smp_send_stop NMI IPI handling"), which leaves the smp_call_function
      variant.
      
      This is fixed by having smp_send_stop only ever do the
      smp_call_function once. This is a bit less robust than the NMI IPI
      fix, because any other call to smp_call_function after smp_send_stop
      could deadlock, but that has always been the case, and it was not
      been a problem before.
      
      Fixes: f2748bdf ("powerpc/powernv: Always stop secondaries before reboot/shutdown")
      Reported-by: default avatarAbdul Haleem <abdhalee@linux.vnet.ibm.com>
      Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      6029755e
    • Shilpasri G Bhat's avatar
      cpufreq: powernv: Fix hardlockup due to synchronous smp_call in timer interrupt · c0f7f5b6
      Shilpasri G Bhat authored
      gpstate_timer_handler() uses synchronous smp_call to set the pstate
      on the requested core. This causes the below hard lockup:
      
        smp_call_function_single+0x110/0x180 (unreliable)
        smp_call_function_any+0x180/0x250
        gpstate_timer_handler+0x1e8/0x580
        call_timer_fn+0x50/0x1c0
        expire_timers+0x138/0x1f0
        run_timer_softirq+0x1e8/0x270
        __do_softirq+0x158/0x3e4
        irq_exit+0xe8/0x120
        timer_interrupt+0x9c/0xe0
        decrementer_common+0x114/0x120
        -- interrupt: 901 at doorbell_global_ipi+0x34/0x50
        LR = arch_send_call_function_ipi_mask+0x120/0x130
        arch_send_call_function_ipi_mask+0x4c/0x130
        smp_call_function_many+0x340/0x450
        pmdp_invalidate+0x98/0xe0
        change_huge_pmd+0xe0/0x270
        change_protection_range+0xb88/0xe40
        mprotect_fixup+0x140/0x340
        SyS_mprotect+0x1b4/0x350
        system_call+0x58/0x6c
      
      One way to avoid this is removing the smp-call. We can ensure that the
      timer always runs on one of the policy-cpus. If the timer gets
      migrated to a cpu outside the policy then re-queue it back on the
      policy->cpus. This way we can get rid of the smp-call which was being
      used to set the pstate on the policy->cpus.
      
      Fixes: 7bc54b65 ("timers, cpufreq/powernv: Initialize the gpstate timer as pinned")
      Cc: stable@vger.kernel.org # v4.8+
      Reported-by: default avatarNicholas Piggin <npiggin@gmail.com>
      Reported-by: default avatarPridhiviraj Paidipeddi <ppaidipe@linux.vnet.ibm.com>
      Signed-off-by: default avatarShilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com>
      Acked-by: default avatarNicholas Piggin <npiggin@gmail.com>
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Acked-by: default avatarVaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      c0f7f5b6
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2018-04-26' of... · 24d9092c
      Dave Airlie authored
      Merge tag 'drm-intel-fixes-2018-04-26' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      - Fix for black screen issues (FDO #104158 and #104425)
      - A correction for wrongly applied display W/A
      - Fixes for HDA codec interop issue (no audio) and too eager HW timeouts
      
      * tag 'drm-intel-fixes-2018-04-26' of git://anongit.freedesktop.org/drm/drm-intel:
        drm/i915/fbdev: Enable late fbdev initial configuration
        drm/i915: Use ktime on wait_for
        drm/i915: Enable display WA#1183 from its correct spot
        drm/i915/audio: set minimum CD clock to twice the BCLK
      24d9092c
  3. 26 Apr, 2018 10 commits
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 0644f186
      Linus Torvalds authored
      Pull virtio fixups from Michael Tsirkin:
      
       - Latest header update will break QEMU (if it's rebuilt with the new
         header) - and it seems that the code there is so fragile that any
         change in this header will break it. Add a better interface so users
         do not need to change their code every time that header changes.
      
       - Fix virtio console for spec compliance.
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        virtio_console: reset on out of memory
        virtio_console: move removal code
        virtio_console: drop custom control queue cleanup
        virtio_console: free buffers after reset
        virtio: add ability to iterate over vqs
        virtio_console: don't tie bufs to a vq
        virtio_balloon: add array of stat names
      0644f186
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.17-rc3' of... · 0871062b
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
      
       - Add support for new Ryzen chips to k10temp driver
         ... making Phoronix happy
      
       - Fix inconsistent chip access in nct6683 driver
      
       - Handle absence of few types of sensors in scmi driver
      
      * tag 'hwmon-for-linus-v4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (k10temp) Add support for AMD Ryzen w/ Vega graphics
        hwmon: (k10temp) Add temperature offset for Ryzen 2700X
        hwmon: (nct6683) Enable EC access if disabled at boot
        hwmon: (scmi) handle absence of few types of sensors
      0871062b
    • Linus Torvalds's avatar
      Merge tag 'pci-v4.17-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 7f5d1573
      Linus Torvalds authored
      Pull PCI fixes from Bjorn Helgaas:
      
       - fix Aardvark MRRS setting (Evan Wang)
      
       - clarify "bandwidth available" link status message (Jakub Kicinski)
      
       - update Kirin GPIO name to fix probe failure (Loic Poulain)
      
       - fix Aardvark IRQ usage (Victor Gu)
      
       - fix Aardvark config accessor issues (Victor Gu)
      
      * tag 'pci-v4.17-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        PCI: Add "PCIe" to pcie_print_link_status() messages
        PCI: kirin: Fix reset gpio name
        PCI: aardvark: Fix PCIe Max Read Request Size setting
        PCI: aardvark: Use ISR1 instead of ISR0 interrupt in legacy irq mode
        PCI: aardvark: Set PIO_ADDR_LS correctly in advk_pcie_rd_conf()
        PCI: aardvark: Fix logic in advk_pcie_{rd,wr}_conf()
      7f5d1573
    • Linus Torvalds's avatar
      Merge tag 'trace-v4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 47b5ece9
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
      
       - Add workqueue forward declaration (for new work, but a nice clean up)
      
       - seftest fixes for the new histogram code
      
       - Print output fix for hwlat tracer
      
       - Fix missing system call events - due to change in x86 syscall naming
      
       - Fix kprobe address being used by perf being hashed
      
      * tag 'trace-v4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Fix missing tab for hwlat_detector print format
        selftests: ftrace: Add a testcase for multiple actions on trigger
        selftests: ftrace: Fix trigger extended error testcase
        kprobes: Fix random address output of blacklist file
        tracing: Fix kernel crash while using empty filter with perf
        tracing/x86: Update syscall trace events to handle new prefixed syscall func names
        tracing: Add missing forward declaration
      47b5ece9
    • Linus Torvalds's avatar
      Merge tag 'acpi-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · fe03a759
      Linus Torvalds authored
      Pull ACPI fixes from Rafael Wysocki:
       "These are two watchdog-related fixes, fix for a backlight regression
        from the 4.16 cycle that unfortunately was propagated to -stable and a
        button module modification to prevent graphics driver modules from
        failing to load due to unmet dependencies if ACPI is disabled from the
        kernel command line.
      
        Specifics:
      
         - Change the ACPI subsystem initialization ordering to initialize the
           WDAT watchodg before reserving PNP motherboard resources so as to
           allow the watchdog to allocate its resources before the PNP code
           gets to them and prevents it from working correctly (Mika
           Westerberg).
      
         - Add a quirk for Lenovo Z50-70 to use the iTCO watchdog instead of
           the WDAT one which conflicts with the RTC on that platform (Mika
           Westerberg).
      
         - Avoid breaking backlight handling on Dell XPS 13 2013 model by
           allowing laptops to use the ACPI backlight by default even if they
           are Windows 8-ready in principle (Hans de Goede)"
      
      * tag 'acpi-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / video: Only default only_lcd to true on Win8-ready _desktops_
        ACPI / button: make module loadable when booted in non-ACPI mode
        ACPI / watchdog: Prefer iTCO_wdt on Lenovo Z50-70
        ACPI / scan: Initialize watchdog before PNP
      fe03a759
    • Linus Torvalds's avatar
      Merge tag 'pm-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · e58d911f
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "These are a Low Power S0 Idle quirk, a hibernation handling fix for
        the PCI bus type and a brcmstb-avs-cpufreq driver fixup removing
        development debug code from it.
      
        Specifics:
      
         - Blacklist the Low Power S0 Idle _DSM on ThinkPad X1 Tablet(2016)
           where it causes issues and make it use ACPI S3 which works instead
           of the non-working suspend-to-idle by default (Chen Yu).
      
         - Fix the handling of hibernation in the PCI core for devices with
           the DPM_FLAG_SMART_SUSPEND flag set to fix a regression affecting
           intel-lpss I2C devices (Mika Westerberg).
      
         - Drop development debug code from the brcmstb-avs-cpufreq driver
           (Markus Mayer)"
      
      * tag 'pm-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq: brcmstb-avs-cpufreq: remove development debug support
        PCI / PM: Do not clear state_saved in pci_pm_freeze() when smart suspend is set
        ACPI / PM: Blacklist Low Power S0 Idle _DSM for ThinkPad X1 Tablet(2016)
      e58d911f
    • Linus Torvalds's avatar
      Merge tag 'random_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random · 665fa000
      Linus Torvalds authored
      Pull /dev/random fixes from Ted Ts'o:
       "Fix a regression on NUMA kernels and suppress excess unseeded entropy
        pool warnings"
      
      * tag 'random_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random:
        random: rate limit unseeded randomness warnings
        random: fix possible sleeping allocation from irq context
      665fa000
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 1334ac11
      Linus Torvalds authored
      Pull s390 fixes from Martin Schwidefsky:
       "A couple of bug fixes:
      
         - correct some CPU-MF counter names for z13 and z14
      
         - correct locking in the vfio-ccw fsm_io_helper function
      
         - provide arch_uretprobe_is_alive to avoid sigsegv with uretprobes
      
         - fix a corner case with CPU-MF sampling in regard to execve
      
         - fix expoline code revert for loadable modules
      
         - update chpid descriptor for resource accessibility events
      
         - fix dasd I/O errors due to outdated device alias infomation"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390: correct module section names for expoline code revert
        vfio: ccw: process ssch with interrupts disabled
        s390: update sampling tag after task pid change
        s390/cpum_cf: rename IBM z13/z14 counter names
        s390/dasd: fix IO error for newly defined devices
        s390/uprobes: implement arch_uretprobe_is_alive()
        s390/cio: update chpid descriptor after resource accessibility event
      1334ac11
    • Greg Kroah-Hartman's avatar
      Merge tag 'usb-serial-4.17-rc3' of... · 573a0948
      Greg Kroah-Hartman authored
      Merge tag 'usb-serial-4.17-rc3' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus
      
      Johan writes:
      
      USB-serial fixes for v4.17-rc3
      
      Here are a few device ids for -rc3, including a new "simple driver".
      
      All have been in linux-next with no reported issues.
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      573a0948
    • Miquel Raynal's avatar
      mtd: rawnand: marvell: fix the chip-select DT parsing logic · f6997bec
      Miquel Raynal authored
      The block responsible of parsing the DT for the number of chip-select
      lines uses an 'if/else if/else if' block. The content of the second and
      third 'else if' conditions are:
              1/ the actual condition to enter the sub-block and
              2/ the operation to do in this sub-block.
      
              [...]
              else if (condition1_to_enter && action1() == failed)
                      raise_error();
              else if (condition2_to_enter && action2() == failed)
                      raise_error();
              [...]
      
      In case of failure, the sub-block is entered and an error raised.
      Otherwise, in case of success, the code would continue erroneously in
      the next 'else if' statement because it did not failed (and did not
      enter the first 'else if' sub-block).
      
      The first 'else if' refers to legacy bindings while the second 'else if'
      refers to new bindings. The second 'else if', which is entered
      erroneously, checks for the 'reg' property, which, for old bindings,
      does not mean anything because it would not be the number of CS
      available, but the regular register map of almost any DT node. This
      being said, the content of the 'reg' property being the register map
      offset and length, it has '2' values, so the number of CS in this
      situation is assumed to be '2'.
      
      When running nand_scan_ident() with 2 CS, the core will check for an
      array of chips. It will first issue a RESET and then a READ_ID. Of
      course this will trigger two timeouts because there is no chip in front
      of the second CS:
      
      [    1.367460] marvell-nfc f2720000.nand: Timeout on CMDD (NDSR: 0x00000080)
      [    1.474292] marvell-nfc f2720000.nand: Timeout on CMDD (NDSR: 0x00000280)
      
      Indeed, this is harmless and the core will then assume there is only one
      valid CS.
      
      Fix the logic in the whole block by entering each sub-block just on the
      'is legacy' condition, doing the action inside the sub-block. This way,
      when the action succeeds, the whole block is left.
      
      Furthermore, for both the old bindings and the new bindings the same
      logic was applied to retrieve the number of CS lines:
      using of_get_property() to get a size in bytes, converted in the actual
      number of lines by dividing it per sizeof(u32) (4 bytes).
      
      This is fine for the 'reg' property which is a list of the CS IDs but
      not for the 'num-cs' property which is directly the value of the number
      of CS.
      
      Anyway, no existing DT uses another value than 'num-cs = <1>' and no
      other value has ever been supported by the old driver (pxa3xx_nand.c).
      Remove this condition and apply a number of 1 CS anyway, as already
      described in the bindings.
      
      Finally, the 'reg' property of a 'nand' node (with the new bindings)
      gives the IDs of each CS line in use. marvell_nand.c driver first look
      at the number of CS lines that are present in this property.
      
      Better use of_property_count_elems_of_size() than dividing by 4 the size
      of the number of bytes returned by of_get_property().
      
      Fixes: 02f26ecf ("mtd: nand: add reworked Marvell NAND controller driver")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
      Tested-by: default avatarChris Packham <chris.packham@alliedtelesis.co.nz>
      Signed-off-by: default avatarBoris Brezillon <boris.brezillon@bootlin.com>
      f6997bec