1. 20 Mar, 2020 9 commits
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 5ad0ec0b
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
      
       - Fix panic() when it occurs during secondary CPU startup
      
       - Fix "kpti=off" when KASLR is enabled
      
       - Fix howler in compat syscall table for vDSO clock_getres() fallback
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: compat: Fix syscall number of compat_clock_getres
        arm64: kpti: Fix "kpti=off" when KASLR is enabled
        arm64: smp: fix crash_smp_send_stop() behaviour
        arm64: smp: fix smp_send_stop() behaviour
      5ad0ec0b
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · f014d2b8
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "Here are some small different driver fixes for 5.6-rc7:
      
         - binderfs fix, yet again
      
         - slimbus new device id added
      
         - hwtracing bugfixes for reported issues and a new device id
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'char-misc-5.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        intel_th: pci: Add Elkhart Lake CPU support
        intel_th: Fix user-visible error codes
        intel_th: msu: Fix the unexpected state warning
        stm class: sys-t: Fix the use of time_after()
        slimbus: ngd: add v2.1.0 compatible
        binderfs: use refcount for binder control devices too
      f014d2b8
    • Linus Torvalds's avatar
      Merge tag 'staging-5.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 3bd14829
      Linus Torvalds authored
      Pull staging/IIO fixes from Greg KH:
       "Here are a number of small staging and IIO driver fixes for 5.6-rc7
      
        Nothing major here, just resolutions for some reported problems:
         - iio bugfixes for a number of different drivers
         - greybus loopback_test fixes
         - wfx driver fixes
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'staging-5.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: rtl8188eu: Add device id for MERCUSYS MW150US v2
        staging: greybus: loopback_test: fix potential path truncations
        staging: greybus: loopback_test: fix potential path truncation
        staging: greybus: loopback_test: fix poll-mask build breakage
        staging: wfx: fix RCU usage between hif_join() and ieee80211_bss_get_ie()
        staging: wfx: fix RCU usage in wfx_join_finalize()
        staging: wfx: make warning about pending frame less scary
        staging: wfx: fix lines ending with a comma instead of a semicolon
        staging: wfx: fix warning about freeing in-use mutex during device unregister
        staging/speakup: fix get_word non-space look-ahead
        iio: ping: set pa_laser_ping_cfg in of_ping_match
        iio: chemical: sps30: fix missing triggered buffer dependency
        iio: st_sensors: remap SMO8840 to LIS2DH12
        iio: light: vcnl4000: update sampling periods for vcnl4040
        iio: light: vcnl4000: update sampling periods for vcnl4200
        iio: accel: adxl372: Set iio_chan BE
        iio: magnetometer: ak8974: Fix negative raw values in sysfs
        iio: trigger: stm32-timer: disable master mode when stopping
        iio: adc: stm32-dfsdm: fix sleep in atomic context
        iio: adc: at91-sama5d2_adc: fix differential channels in triggered mode
      3bd14829
    • Linus Torvalds's avatar
      Merge tag 'usb-5.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · b07c2e76
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are some small USB fixes for 5.6-rc7. And there's a thunderbolt
        driver fix thrown in for good measure as well.
      
        These fixes are:
         - new device ids for usb-serial drivers
         - thunderbolt error code fix
         - xhci driver fixes
         - typec fixes
         - cdc-acm driver fixes
         - chipidea driver fix
         - more USB quirks added for devices that need them.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'usb-5.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        USB: cdc-acm: fix rounding error in TIOCSSERIAL
        USB: cdc-acm: fix close_delay and closing_wait units in TIOCSSERIAL
        usb: quirks: add NO_LPM quirk for RTL8153 based ethernet adapters
        usb: chipidea: udc: fix sleeping function called from invalid context
        USB: serial: pl2303: add device-id for HP LD381
        USB: serial: option: add ME910G1 ECM composition 0x110b
        usb: host: xhci-plat: add a shutdown
        usb: typec: ucsi: displayport: Fix a potential race during registration
        usb: typec: ucsi: displayport: Fix NULL pointer dereference
        USB: Disable LPM on WD19's Realtek Hub
        usb: xhci: apply XHCI_SUSPEND_DELAY to AMD XHCI controller 1022:145c
        xhci: Do not open code __print_symbolic() in xhci trace events
        thunderbolt: Fix error code in tb_port_is_width_supported()
      b07c2e76
    • Linus Torvalds's avatar
      Merge tag 'tty-5.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · fa91418b
      Linus Torvalds authored
      Pull tty fixes from Greg KH:
       "Here are three small tty_io bugfixes for reported issues that Eric has
        resolved for 5.6-rc7
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'tty-5.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty: fix compat TIOCGSERIAL checking wrong function ptr
        tty: fix compat TIOCGSERIAL leaking uninitialized memory
        tty: drop outdated comments about release_tty() locking
      fa91418b
    • Linus Torvalds's avatar
      Merge tag 'sound-5.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 12bf19c9
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A few fixes covering the issues reported by syzkaller, a couple of
        fixes for the MIDI decoding bug, and a few usual HD-audio quirks.
      
        Some of them are about ALSA core stuff, but they are small fixes just
        for corner cases, and nothing thrilling"
      
      * tag 'sound-5.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda/realtek - Enable the headset of Acer N50-600 with ALC662
        ALSA: hda/realtek - Enable headset mic of Acer X2660G with ALC662
        ALSA: seq: oss: Fix running status after receiving sysex
        ALSA: seq: virmidi: Fix running status after receiving sysex
        ALSA: pcm: oss: Remove WARNING from snd_pcm_plug_alloc() checks
        ALSA: hda/realtek: Fix pop noise on ALC225
        ALSA: line6: Fix endless MIDI read loop
        ALSA: pcm: oss: Avoid plugin buffer overflow
      12bf19c9
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2020-03-20' of git://anongit.freedesktop.org/drm/drm · 69d3e5a5
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Hope you are well hiding out above the garage. A few amdgpu changes
        but nothing too major. I've had a wisdom tooth out this week so
        haven't been to on top of things, but all seems good.
      
        core:
         - fix lease warning
      
        i915:
         - Track active elements during dequeue
         - Fix failure to handle all MCR ranges
         - Revert unnecessary workaround
      
        amdgpu:
         - Pageflip fix
         - VCN clockgating fixes
         - GPR debugfs fix for umr
         - GPU reset fix
         - eDP fix for MBP
         - DCN2.x fix
      
        dw-hdmi:
         - fix AVI frame colorimetry
      
        komeda:
         - fix compiler warning
      
        bochs:
         - downgrade a binding failure to a warning"
      
      * tag 'drm-fixes-2020-03-20' of git://anongit.freedesktop.org/drm/drm:
        drm/amd/display: Fix pageflip event race condition for DCN.
        drm/amdgpu: fix typo for vcn2.5/jpeg2.5 idle check
        drm/amdgpu: fix typo for vcn2/jpeg2 idle check
        drm/amdgpu: fix typo for vcn1 idle check
        drm/lease: fix WARNING in idr_destroy
        drm/i915: Handle all MCR ranges
        Revert "drm/i915/tgl: Add extra hdc flush workaround"
        drm/i915/execlists: Track active elements during dequeue
        drm/bochs: downgrade pci_request_region failure from error to warning
        drm/amd/display: Add link_rate quirk for Apple 15" MBP 2017
        drm/amdgpu: add fbdev suspend/resume on gpu reset
        drm/amd/amdgpu: Fix GPR read from debugfs (v2)
        drm/amd/display: fix typos for dcn20_funcs and dcn21_funcs struct
        drm/komeda: mark PM functions as __maybe_unused
        drm/bridge: dw-hdmi: fix AVI frame colorimetry
      69d3e5a5
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2020-03-19' of... · 5366b96b
      Dave Airlie authored
      Merge tag 'drm-intel-fixes-2020-03-19' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      drm/i915 fixes for v5.6-rc7:
      - Track active elements during dequeue
      - Fix failure to handle all MCR ranges
      - Revert unnecessary workaround
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Jani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/877dzgepvu.fsf@intel.com
      5366b96b
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.6-2020-03-19' of... · 362b86a3
      Dave Airlie authored
      Merge tag 'amd-drm-fixes-5.6-2020-03-19' of git://people.freedesktop.org/~agd5f/linux into drm-fixes
      
      amd-drm-fixes-5.6-2020-03-19:
      
      amdgpu:
      - Pageflip fix
      - VCN clockgating fixes
      - GPR debugfs fix for umr
      - GPU reset fix
      - eDP fix for MBP
      - DCN2.x fix
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexdeucher@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200319204054.1036478-1-alexander.deucher@amd.com
      362b86a3
  2. 19 Mar, 2020 9 commits
    • Mario Kleiner's avatar
      drm/amd/display: Fix pageflip event race condition for DCN. · eb916a5a
      Mario Kleiner authored
      Commit '16f17eda ("drm/amd/display: Send vblank and user
      events at vsartup for DCN")' introduces a new way of pageflip
      completion handling for DCN, and some trouble.
      
      The current implementation introduces a race condition, which
      can cause pageflip completion events to be sent out one vblank
      too early, thereby confusing userspace and causing flicker:
      
      prepare_flip_isr():
      
      1. Pageflip programming takes the ddev->event_lock.
      2. Sets acrtc->pflip_status == AMDGPU_FLIP_SUBMITTED
      3. Releases ddev->event_lock.
      
      --> Deadline for surface address regs double-buffering passes on
          target pipe.
      
      4. dc_commit_updates_for_stream() MMIO programs the new pageflip
         into hw, but too late for current vblank.
      
      => pflip_status == AMDGPU_FLIP_SUBMITTED, but flip won't complete
         in current vblank due to missing the double-buffering deadline
         by a tiny bit.
      
      5. VSTARTUP trigger point in vblank is reached, VSTARTUP irq fires,
         dm_dcn_crtc_high_irq() gets called.
      
      6. Detects pflip_status == AMDGPU_FLIP_SUBMITTED and assumes the
         pageflip has been completed/will complete in this vblank and
         sends out pageflip completion event to userspace and resets
         pflip_status = AMDGPU_FLIP_NONE.
      
      => Flip completion event sent out one vblank too early.
      
      This behaviour has been observed during my testing with measurement
      hardware a couple of time.
      
      The commit message says that the extra flip event code was added to
      dm_dcn_crtc_high_irq() to prevent missing to send out pageflip events
      in case the pflip irq doesn't fire, because the "DCH HUBP" component
      is clock gated and doesn't fire pflip irqs in that state. Also that
      this clock gating may happen if no planes are active. This suggests
      that the problem addressed by that commit can't happen if planes
      are active.
      
      The proposed solution is therefore to only execute the extra pflip
      completion code iff the count of active planes is zero and otherwise
      leave pflip completion handling to the pflip irq handler, for a
      more race-free experience.
      
      Note that i don't know if this fixes the problem the original commit
      tried to address, as i don't know what the test scenario was. It
      does fix the observed too early pageflip events though and points
      out the problem introduced.
      
      Fixes: 16f17eda ("drm/amd/display: Send vblank and user events at vsartup for DCN")
      Reviewed-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
      Signed-off-by: default avatarMario Kleiner <mario.kleiner.de@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      eb916a5a
    • Linus Torvalds's avatar
      Merge tag 'mmc-v5.6-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 6c90b86a
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
      
       - rtsx_pci: Fix support for some various speed modes
      
       - sdhci-of-at91: Fix support for GPIO card detect on SAMA5D2
      
       - sdhci-cadence: Fix support for DDR52 speed mode for eMMC on UniPhier
      
       - sdhci-acpi: Fix broken WP support on Acer Aspire Switch 10
      
       - sdhci-acpi: Workaround FW bug for suspend on Lenovo Miix 320
      
      * tag 'mmc-v5.6-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: rtsx_pci: Fix support for speed-modes that relies on tuning
        mmc: sdhci-of-at91: fix cd-gpios for SAMA5D2
        mmc: sdhci-cadence: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN for UniPhier
        mmc: sdhci-acpi: Disable write protect detection on Acer Aspire Switch 10 (SW5-012)
        mmc: sdhci-acpi: Switch signal voltage back to 3.3V on suspend on external microSD on Lenovo Miix 320
      6c90b86a
    • Vincenzo Frascino's avatar
      arm64: compat: Fix syscall number of compat_clock_getres · 3568b889
      Vincenzo Frascino authored
      The syscall number of compat_clock_getres was erroneously set to 247
      (__NR_io_cancel!) instead of 264. This causes the vDSO fallback of
      clock_getres() to land on the wrong syscall for compat tasks.
      
      Fix the numbering.
      
      Cc: <stable@vger.kernel.org>
      Fixes: 53c489e1 ("arm64: compat: Add missing syscall numbers")
      Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarVincenzo Frascino <vincenzo.frascino@arm.com>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      3568b889
    • Linus Torvalds's avatar
      Merge tag '5.6-rc6-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 · cd607737
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "Three small smb3 fixes, two for stable"
      
      * tag '5.6-rc6-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        CIFS: fiemap: do not return EINVAL if get nothing
        CIFS: Increment num_remote_opens stats counter even in case of smb2_query_dir_first
        cifs: potential unintitliazed error code in cifs_getattr()
      cd607737
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v5.6-3' of... · 207f75c4
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v5.6-3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - fix __uint128_t capability test in Kconfig when GCC that defaults to
         32-bit is used to build the 64-bit kernel
      
       - suppress new noisy Clang warnings -Wpointer-to-enum-cast
      
       - move the namespace field in Module.symvers for the backward
         compatibility reason for the depmod tool
      
       - use available compression for initramdisk when INTRAMFS_SOURCE is
         defined, which was the original behavior
      
       - fix modpost to handle correct large section numbers when it refers to
         modversion CRCs and module namespaces
      
       - fix comments and documents
      
      * tag 'kbuild-fixes-v5.6-3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        scripts/kallsyms: fix wrong kallsyms_relative_base
        modpost: Get proper section index by get_secindex() instead of st_shndx
        initramfs: restore default compression behavior
        modpost: move the namespace field in Module.symvers last
        kbuild: Disable -Wpointer-to-enum-cast
        kbuild: doc: fix references to other documents
        int128: fix __uint128_t compiler test in Kconfig
        kconfig: introduce m32-flag and m64-flag
        kbuild: Fix inconsistent comment
      207f75c4
    • Corentin Labbe's avatar
      rtc: max8907: add missing select REGMAP_IRQ · 5d892919
      Corentin Labbe authored
      I have hit the following build error:
      
        armv7a-hardfloat-linux-gnueabi-ld: drivers/rtc/rtc-max8907.o: in function `max8907_rtc_probe':
        rtc-max8907.c:(.text+0x400): undefined reference to `regmap_irq_get_virq'
      
      max8907 should select REGMAP_IRQ
      
      Fixes: 94c01ab6 ("rtc: add MAX8907 RTC driver")
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarCorentin Labbe <clabbe@baylibre.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5d892919
    • Mikhail Petrov's avatar
      scripts/kallsyms: fix wrong kallsyms_relative_base · 7883a143
      Mikhail Petrov authored
      There is the code in the read_symbol function in 'scripts/kallsyms.c':
      
      	if (is_ignored_symbol(name, type))
      		return NULL;
      
      	/* Ignore most absolute/undefined (?) symbols. */
      	if (strcmp(name, "_text") == 0)
      		_text = addr;
      
      But the is_ignored_symbol function returns true for name="_text" and
      type='A'. So the next condition is not executed and the _text variable
      is always zero.
      
      It makes the wrong kallsyms_relative_base symbol as a result of the code
      (CONFIG_KALLSYMS_BASE_RELATIVE is defined):
      
      	if (base_relative) {
      		output_label("kallsyms_relative_base");
      		output_address(relative_base);
      		printf("\n");
      	}
      
      Because the output_address function uses the _text variable.
      
      So the kallsyms_lookup function and all related functions in the kernel
      do not work properly. For example, the stack trace in oops:
      
       Call Trace:
       [aa095e58] [809feab8] kobj_ns_ops_tbl+0x7ff09ac8/0x7ff1c1c4 (unreliable)
       [aa095e98] [80002b64] kobj_ns_ops_tbl+0x7f50db74/0x80000010
       [aa095ef8] [809c3d24] kobj_ns_ops_tbl+0x7feced34/0x7ff1c1c4
       [aa095f28] [80002ed0] kobj_ns_ops_tbl+0x7f50dee0/0x80000010
       [aa095f38] [8000f238] kobj_ns_ops_tbl+0x7f51a248/0x80000010
      
      The right stack trace:
      
       Call Trace:
       [aa095e58] [809feab8] module_vdu_video_init+0x2fc/0x3bc (unreliable)
       [aa095e98] [80002b64] do_one_initcall+0x40/0x1f0
       [aa095ef8] [809c3d24] kernel_init_freeable+0x164/0x1d8
       [aa095f28] [80002ed0] kernel_init+0x14/0x124
       [aa095f38] [8000f238] ret_from_kernel_thread+0x14/0x1c
      
      [masahiroy@kernel.org:
      
      This issue happens on binutils <= 2.22
      The following commit fixed it:
      https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=d2667025dd30611514810c28bee9709e4623012a
      
      The symbol type of _text is 'T' on binutils >= 2.23
      The minimal supported binutils version for the kernel build is 2.21
      ]
      Signed-off-by: default avatarMikhail Petrov <Mikhail.Petrov@mir.dev>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      7883a143
    • Will Deacon's avatar
      arm64: kpti: Fix "kpti=off" when KASLR is enabled · c8355785
      Will Deacon authored
      Enabling KASLR forces the use of non-global page-table entries for kernel
      mappings, as this is a decision that we have to make very early on before
      mapping the kernel proper. When used in conjunction with the "kpti=off"
      command-line option, it is possible to use non-global kernel mappings but
      with the kpti trampoline disabled.
      
      Since commit 09e3c22a ("arm64: Use a variable to store non-global
      mappings decision"), arm64_kernel_unmapped_at_el0() reflects only the use of
      non-global mappings and does not take into account whether the kpti
      trampoline is enabled. This breaks context switching of the TPIDRRO_EL0
      register for 64-bit tasks, where the clearing of the register is deferred to
      the ret-to-user code, but it also breaks the ARM SPE PMU driver which
      helpfully recommends passing "kpti=off" on the command line!
      
      Report whether or not KPTI is actually enabled in
      arm64_kernel_unmapped_at_el0() and check the 'arm64_use_ng_mappings' global
      variable directly when determining the protection flags for kernel mappings.
      
      Cc: Mark Brown <broonie@kernel.org>
      Reported-by: default avatarHongbo Yao <yaohongbo@huawei.com>
      Tested-by: default avatarHongbo Yao <yaohongbo@huawei.com>
      Fixes: 09e3c22a ("arm64: Use a variable to store non-global mappings decision")
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      c8355785
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2020-03-18-1' of... · 0f08b315
      Dave Airlie authored
      Merge tag 'drm-misc-fixes-2020-03-18-1' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes
      
      - drm/lease: fix WARNING in idr_destroy
      - Fix AVI frame colorimetry in the dw-hdmi bridge.
      - Fix compiler warning in komeda by annotating functions as __maybe_unused.
      - Downgrade bochs pci_request_region failure from error to warning to
        workaround firmware fb.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/7654ac39-deb8-c9ca-9fd5-ef77b2636380@linux.intel.com
      0f08b315
  3. 18 Mar, 2020 18 commits
  4. 17 Mar, 2020 4 commits
    • Cristian Marussi's avatar
      arm64: smp: fix crash_smp_send_stop() behaviour · f50b7dac
      Cristian Marussi authored
      On a system configured to trigger a crash_kexec() reboot, when only one CPU
      is online and another CPU panics while starting-up, crash_smp_send_stop()
      will fail to send any STOP message to the other already online core,
      resulting in fail to freeze and registers not properly saved.
      
      Moreover even if the proper messages are sent (case CPUs > 2)
      it will similarly fail to account for the booting CPU when executing
      the final stop wait-loop, so potentially resulting in some CPU not
      been waited for shutdown before rebooting.
      
      A tangible effect of this behaviour can be observed when, after a panic
      with kexec enabled and loaded, on the following reboot triggered by kexec,
      the cpu that could not be successfully stopped fails to come back online:
      
      [  362.291022] ------------[ cut here ]------------
      [  362.291525] kernel BUG at arch/arm64/kernel/cpufeature.c:886!
      [  362.292023] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
      [  362.292400] Modules linked in:
      [  362.292970] CPU: 3 PID: 0 Comm: swapper/3 Kdump: loaded Not tainted 5.6.0-rc4-00003-gc780b890948a #105
      [  362.293136] Hardware name: Foundation-v8A (DT)
      [  362.293382] pstate: 200001c5 (nzCv dAIF -PAN -UAO)
      [  362.294063] pc : has_cpuid_feature+0xf0/0x348
      [  362.294177] lr : verify_local_elf_hwcaps+0x84/0xe8
      [  362.294280] sp : ffff800011b1bf60
      [  362.294362] x29: ffff800011b1bf60 x28: 0000000000000000
      [  362.294534] x27: 0000000000000000 x26: 0000000000000000
      [  362.294631] x25: 0000000000000000 x24: ffff80001189a25c
      [  362.294718] x23: 0000000000000000 x22: 0000000000000000
      [  362.294803] x21: ffff8000114aa018 x20: ffff800011156a00
      [  362.294897] x19: ffff800010c944a0 x18: 0000000000000004
      [  362.294987] x17: 0000000000000000 x16: 0000000000000000
      [  362.295073] x15: 00004e53b831ae3c x14: 00004e53b831ae3c
      [  362.295165] x13: 0000000000000384 x12: 0000000000000000
      [  362.295251] x11: 0000000000000000 x10: 00400032b5503510
      [  362.295334] x9 : 0000000000000000 x8 : ffff800010c7e204
      [  362.295426] x7 : 00000000410fd0f0 x6 : 0000000000000001
      [  362.295508] x5 : 00000000410fd0f0 x4 : 0000000000000000
      [  362.295592] x3 : 0000000000000000 x2 : ffff8000100939d8
      [  362.295683] x1 : 0000000000180420 x0 : 0000000000180480
      [  362.296011] Call trace:
      [  362.296257]  has_cpuid_feature+0xf0/0x348
      [  362.296350]  verify_local_elf_hwcaps+0x84/0xe8
      [  362.296424]  check_local_cpu_capabilities+0x44/0x128
      [  362.296497]  secondary_start_kernel+0xf4/0x188
      [  362.296998] Code: 52805001 72a00301 6b01001f 54000ec0 (d4210000)
      [  362.298652] SMP: stopping secondary CPUs
      [  362.300615] Starting crashdump kernel...
      [  362.301168] Bye!
      [    0.000000] Booting Linux on physical CPU 0x0000000003 [0x410fd0f0]
      [    0.000000] Linux version 5.6.0-rc4-00003-gc780b890948a (crimar01@e120937-lin) (gcc version 8.3.0 (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36))) #105 SMP PREEMPT Fri Mar 6 17:00:42 GMT 2020
      [    0.000000] Machine model: Foundation-v8A
      [    0.000000] earlycon: pl11 at MMIO 0x000000001c090000 (options '')
      [    0.000000] printk: bootconsole [pl11] enabled
      .....
      [    0.138024] rcu: Hierarchical SRCU implementation.
      [    0.153472] its@2f020000: unable to locate ITS domain
      [    0.154078] its@2f020000: Unable to locate ITS domain
      [    0.157541] EFI services will not be available.
      [    0.175395] smp: Bringing up secondary CPUs ...
      [    0.209182] psci: failed to boot CPU1 (-22)
      [    0.209377] CPU1: failed to boot: -22
      [    0.274598] Detected PIPT I-cache on CPU2
      [    0.278707] GICv3: CPU2: found redistributor 1 region 0:0x000000002f120000
      [    0.285212] CPU2: Booted secondary processor 0x0000000001 [0x410fd0f0]
      [    0.369053] Detected PIPT I-cache on CPU3
      [    0.372947] GICv3: CPU3: found redistributor 2 region 0:0x000000002f140000
      [    0.378664] CPU3: Booted secondary processor 0x0000000002 [0x410fd0f0]
      [    0.401707] smp: Brought up 1 node, 3 CPUs
      [    0.404057] SMP: Total of 3 processors activated.
      
      Make crash_smp_send_stop() account also for the online status of the
      calling CPU while evaluating how many CPUs are effectively online: this way
      the right number of STOPs is sent and all other stopped-cores's registers
      are properly saved.
      
      Fixes: 78fd584c ("arm64: kdump: implement machine_crash_shutdown()")
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarCristian Marussi <cristian.marussi@arm.com>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      f50b7dac
    • Cristian Marussi's avatar
      arm64: smp: fix smp_send_stop() behaviour · d0bab0c3
      Cristian Marussi authored
      On a system with only one CPU online, when another one CPU panics while
      starting-up, smp_send_stop() will fail to send any STOP message to the
      other already online core, resulting in a system still responsive and
      alive at the end of the panic procedure.
      
      [  186.700083] CPU3: shutdown
      [  187.075462] CPU2: shutdown
      [  187.162869] CPU1: shutdown
      [  188.689998] ------------[ cut here ]------------
      [  188.691645] kernel BUG at arch/arm64/kernel/cpufeature.c:886!
      [  188.692079] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
      [  188.692444] Modules linked in:
      [  188.693031] CPU: 3 PID: 0 Comm: swapper/3 Not tainted 5.6.0-rc4-00001-g338d25c35a98 #104
      [  188.693175] Hardware name: Foundation-v8A (DT)
      [  188.693492] pstate: 200001c5 (nzCv dAIF -PAN -UAO)
      [  188.694183] pc : has_cpuid_feature+0xf0/0x348
      [  188.694311] lr : verify_local_elf_hwcaps+0x84/0xe8
      [  188.694410] sp : ffff800011b1bf60
      [  188.694536] x29: ffff800011b1bf60 x28: 0000000000000000
      [  188.694707] x27: 0000000000000000 x26: 0000000000000000
      [  188.694801] x25: 0000000000000000 x24: ffff80001189a25c
      [  188.694905] x23: 0000000000000000 x22: 0000000000000000
      [  188.694996] x21: ffff8000114aa018 x20: ffff800011156a38
      [  188.695089] x19: ffff800010c944a0 x18: 0000000000000004
      [  188.695187] x17: 0000000000000000 x16: 0000000000000000
      [  188.695280] x15: 0000249dbde5431e x14: 0262cbe497efa1fa
      [  188.695371] x13: 0000000000000002 x12: 0000000000002592
      [  188.695472] x11: 0000000000000080 x10: 00400032b5503510
      [  188.695572] x9 : 0000000000000000 x8 : ffff800010c80204
      [  188.695659] x7 : 00000000410fd0f0 x6 : 0000000000000001
      [  188.695750] x5 : 00000000410fd0f0 x4 : 0000000000000000
      [  188.695836] x3 : 0000000000000000 x2 : ffff8000100939d8
      [  188.695919] x1 : 0000000000180420 x0 : 0000000000180480
      [  188.696253] Call trace:
      [  188.696410]  has_cpuid_feature+0xf0/0x348
      [  188.696504]  verify_local_elf_hwcaps+0x84/0xe8
      [  188.696591]  check_local_cpu_capabilities+0x44/0x128
      [  188.696666]  secondary_start_kernel+0xf4/0x188
      [  188.697150] Code: 52805001 72a00301 6b01001f 54000ec0 (d4210000)
      [  188.698639] ---[ end trace 3f12ca47652f7b72 ]---
      [  188.699160] Kernel panic - not syncing: Attempted to kill the idle task!
      [  188.699546] Kernel Offset: disabled
      [  188.699828] CPU features: 0x00004,20c02008
      [  188.700012] Memory Limit: none
      [  188.700538] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]---
      
      [root@arch ~]# echo Helo
      Helo
      [root@arch ~]# cat /proc/cpuinfo | grep proce
      processor	: 0
      
      Make smp_send_stop() account also for the online status of the calling CPU
      while evaluating how many CPUs are effectively online: this way, the right
      number of STOPs is sent, so enforcing a proper freeze of the system at the
      end of panic even under the above conditions.
      
      Fixes: 08e875c1 ("arm64: SMP support")
      Reported-by: default avatarDave Martin <Dave.Martin@arm.com>
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarCristian Marussi <cristian.marussi@arm.com>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      d0bab0c3
    • Anthony Mallet's avatar
      USB: cdc-acm: fix rounding error in TIOCSSERIAL · b401f8c4
      Anthony Mallet authored
      By default, tty_port_init() initializes those parameters to a multiple
      of HZ. For instance in line 69 of tty_port.c:
         port->close_delay = (50 * HZ) / 100;
      https://github.com/torvalds/linux/blob/master/drivers/tty/tty_port.c#L69
      
      With e.g. CONFIG_HZ = 250 (as this is the case for Ubuntu 18.04
      linux-image-4.15.0-37-generic), the default setting for close_delay is
      thus 125.
      
      When ioctl(fd, TIOCGSERIAL, &s) is executed, the setting returned in
      user space is '12' (125/10). When ioctl(fd, TIOCSSERIAL, &s) is then
      executed with the same setting '12', the value is interpreted as '120'
      which is different from the current setting and a EPERM error may be
      raised by set_serial_info() if !CAP_SYS_ADMIN.
      https://github.com/torvalds/linux/blob/master/drivers/usb/class/cdc-acm.c#L919
      
      Fixes: ba2d8ce9 ("cdc-acm: implement TIOCSSERIAL to avoid blocking close(2)")
      Signed-off-by: default avatarAnthony Mallet <anthony.mallet@laas.fr>
      Cc: stable <stable@vger.kernel.org>
      Link: https://lore.kernel.org/r/20200312133101.7096-2-anthony.mallet@laas.frSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b401f8c4
    • Anthony Mallet's avatar
      USB: cdc-acm: fix close_delay and closing_wait units in TIOCSSERIAL · 633e2b2d
      Anthony Mallet authored
      close_delay and closing_wait are specified in hundredth of a second but stored
      internally in jiffies. Use the jiffies_to_msecs() and msecs_to_jiffies()
      functions to convert from each other.
      Signed-off-by: default avatarAnthony Mallet <anthony.mallet@laas.fr>
      Cc: stable <stable@vger.kernel.org>
      Link: https://lore.kernel.org/r/20200312133101.7096-1-anthony.mallet@laas.frSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      633e2b2d