1. 17 Sep, 2020 10 commits
    • Suzuki K Poulose's avatar
      coresight: etm4x: Handle unreachable sink in perf mode · 859d510e
      Suzuki K Poulose authored
      If the specified/hinted sink is not reachable from a subset of the CPUs,
      we could end up unable to trace the event on those CPUs. This
      is the best effort we could do until we support 1:1 configurations.
      Fail gracefully in such cases avoiding a WARN_ON, which can be easily
      triggered by the user on certain platforms (Arm N1SDP), with the following
      trace paths :
      
       CPU0
            \
             -- Funnel0 --> ETF0 -->
            /                        \
       CPU1                           \
                                        MainFunnel
       CPU2                           /
            \                        /
             -- Funnel1 --> ETF1 -->
            /
       CPU1
      
      $ perf record --per-thread -e cs_etm/@ETF0/u -- <app>
      
      could trigger the following WARNING, when the event is scheduled
      on CPU2.
      
      [10919.513250] ------------[ cut here ]------------
      [10919.517861] WARNING: CPU: 2 PID: 24021 at
      drivers/hwtracing/coresight/coresight-etm-perf.c:316 etm_event_start+0xf8/0x100
      ...
      
      [10919.564403] CPU: 2 PID: 24021 Comm: perf Not tainted 5.8.0+ #24
      [10919.570308] pstate: 80400089 (Nzcv daIf +PAN -UAO BTYPE=--)
      [10919.575865] pc : etm_event_start+0xf8/0x100
      [10919.580034] lr : etm_event_start+0x80/0x100
      [10919.584202] sp : fffffe001932f940
      [10919.587502] x29: fffffe001932f940 x28: fffffc834995f800
      [10919.592799] x27: 0000000000000000 x26: fffffe0011f3ced0
      [10919.598095] x25: fffffc837fce244c x24: fffffc837fce2448
      [10919.603391] x23: 0000000000000002 x22: fffffc8353529c00
      [10919.608688] x21: fffffc835bb31000 x20: 0000000000000000
      [10919.613984] x19: fffffc837fcdcc70 x18: 0000000000000000
      [10919.619281] x17: 0000000000000000 x16: 0000000000000000
      [10919.624577] x15: 0000000000000000 x14: 00000000000009f8
      [10919.629874] x13: 00000000000009f8 x12: 0000000000000018
      [10919.635170] x11: 0000000000000000 x10: 0000000000000000
      [10919.640467] x9 : fffffe00108cd168 x8 : 0000000000000000
      [10919.645763] x7 : 0000000000000020 x6 : 0000000000000001
      [10919.651059] x5 : 0000000000000002 x4 : 0000000000000001
      [10919.656356] x3 : 0000000000000000 x2 : 0000000000000000
      [10919.661652] x1 : fffffe836eb40000 x0 : 0000000000000000
      [10919.666949] Call trace:
      [10919.669382]  etm_event_start+0xf8/0x100
      [10919.673203]  etm_event_add+0x40/0x60
      [10919.676765]  event_sched_in.isra.134+0xcc/0x210
      [10919.681281]  merge_sched_in+0xb0/0x2a8
      [10919.685017]  visit_groups_merge.constprop.140+0x15c/0x4b8
      [10919.690400]  ctx_sched_in+0x15c/0x170
      [10919.694048]  perf_event_sched_in+0x6c/0xa0
      [10919.698130]  ctx_resched+0x60/0xa0
      [10919.701517]  perf_event_exec+0x288/0x2f0
      [10919.705425]  begin_new_exec+0x4c8/0xf58
      [10919.709247]  load_elf_binary+0x66c/0xf30
      [10919.713155]  exec_binprm+0x15c/0x450
      [10919.716716]  __do_execve_file+0x508/0x748
      [10919.720711]  __arm64_sys_execve+0x40/0x50
      [10919.724707]  do_el0_svc+0xf4/0x1b8
      [10919.728095]  el0_sync_handler+0xf8/0x124
      [10919.732003]  el0_sync+0x140/0x180
      
      Even though we don't support using separate sinks for the ETMs yet (e.g,
      for 1:1 configurations), we should at least honor the user's choice and
      handle the limitations gracefully, by simply skipping the tracing on ETMs
      which can't reach the requested sink.
      
      Fixes: f9d81a65 ("coresight: perf: Allow tracing on hotplugged CPUs")
      Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
      Cc: Mike Leach <mike.leach@linaro.org>
      Reported-by: default avatarJeremy Linton <jeremy.linton@arm.com>
      Tested-by: default avatarJeremy Linton <jeremy.linton@arm.com>
      Signed-off-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
      Signed-off-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
      Link: https://lore.kernel.org/r/20200916191737.4001561-11-mathieu.poirier@linaro.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      859d510e
    • Tingwei Zhang's avatar
      coresight: cti: Write regsiters directly in cti_enable_hw() · 984f37ef
      Tingwei Zhang authored
      Deadlock as below is triggered by one CPU holds drvdata->spinlock
      and calls cti_enable_hw(). Smp_call_function_single() is called
      in cti_enable_hw() and tries to let another CPU write CTI registers.
      That CPU is trying to get drvdata->spinlock in cti_cpu_pm_notify()
      and doesn't response to IPI from smp_call_function_single().
      
      [  988.335937] CPU: 6 PID: 10258 Comm: sh Tainted: G        W    L
      5.8.0-rc6-mainline-16783-gc38daa79b26b-dirty #1
      [  988.346364] Hardware name: Thundercomm Dragonboard 845c (DT)
      [  988.352073] pstate: 20400005 (nzCv daif +PAN -UAO BTYPE=--)
      [  988.357689] pc : smp_call_function_single+0x158/0x1b8
      [  988.362782] lr : smp_call_function_single+0x124/0x1b8
      ...
      [  988.451638] Call trace:
      [  988.454119]  smp_call_function_single+0x158/0x1b8
      [  988.458866]  cti_enable+0xb4/0xf8 [coresight_cti]
      [  988.463618]  coresight_control_assoc_ectdev+0x6c/0x128 [coresight]
      [  988.469855]  coresight_enable+0x1f0/0x364 [coresight]
      [  988.474957]  enable_source_store+0x5c/0x9c [coresight]
      [  988.480140]  dev_attr_store+0x14/0x28
      [  988.483839]  sysfs_kf_write+0x38/0x4c
      [  988.487532]  kernfs_fop_write+0x1c0/0x2b0
      [  988.491585]  vfs_write+0xfc/0x300
      [  988.494931]  ksys_write+0x78/0xe0
      [  988.498283]  __arm64_sys_write+0x18/0x20
      [  988.502240]  el0_svc_common+0x98/0x160
      [  988.506024]  do_el0_svc+0x78/0x80
      [  988.509377]  el0_sync_handler+0xd4/0x270
      [  988.513337]  el0_sync+0x164/0x180
      
      This change write CTI registers directly in cti_enable_hw().
      Config->hw_powered has been checked to be true with spinlock holded.
      CTI is powered and can be programmed until spinlock is released.
      
      Fixes: 6a0953ce ("coresight: cti: Add CPU idle pm notifer to CTI devices")
      Signed-off-by: default avatarTingwei Zhang <tingwei@codeaurora.org>
      [Re-ordered variable declaration]
      Signed-off-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
      Link: https://lore.kernel.org/r/20200916191737.4001561-10-mathieu.poirier@linaro.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      984f37ef
    • Jonathan Zhou's avatar
      coresight: etm4x: Fix issues within reset interface of sysfs · 4020fc8d
      Jonathan Zhou authored
      The member @nr_addr_cmp is not a bool value, using operator '>'
      instead to avoid unexpected failure.
      
      Fixes: a77de263 ("coresight: etm4x: moving sysFS entries to a dedicated file")
      Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
      Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
      Signed-off-by: default avatarJonathan Zhou <jonathan.zhouwen@huawei.com>
      Signed-off-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
      Link: https://lore.kernel.org/r/20200916191737.4001561-9-mathieu.poirier@linaro.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4020fc8d
    • Mike Leach's avatar
      coresight: etm4x: Ensure default perf settings filter user/kernel · 096dcfb9
      Mike Leach authored
      Moving from using an address filter to trace the default "all addresses"
      range to no filtering to acheive the same result, has caused the perf
      filtering of kernel/user address spaces from not working unless an
      explicit address filter was used.
      
      This is due to the original code using a side-effect of the address
      filtering rather than setting the global TRCVICTLR exception level
      filtering.
      
      The use of the mode sysfs file is also similarly affected.
      
      A helper function is added to fix both instances.
      
      Fixes: ae204151 ("coresight: etmv4: Update default filter and initialisation")
      Reported-by: default avatarLeo Yan <leo.yan@linaro.org>
      Tested-by: default avatarLeo Yan <leo.yan@linaro.org>
      Reviewed-by: default avatarLeo Yan <leo.yan@linaro.org>
      Signed-off-by: default avatarMike Leach <mike.leach@linaro.org>
      Signed-off-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
      Link: https://lore.kernel.org/r/20200916191737.4001561-8-mathieu.poirier@linaro.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      096dcfb9
    • Tingwei Zhang's avatar
      coresight: cti: remove pm_runtime_get_sync() from CPU hotplug · 6e8836c6
      Tingwei Zhang authored
      Below BUG is triggered by call pm_runtime_get_sync() in
      cti_cpuhp_enable_hw(). It's in CPU hotplug callback with interrupt
      disabled. Pm_runtime_get_sync() calls clock driver to enable clock
      which could sleep. Remove pm_runtime_get_sync() in cti_cpuhp_enable_hw()
      since pm_runtime_get_sync() is called in cti_enabld and pm_runtime_put()
      is called in cti_disabled. No need to increase pm count when CPU gets
      online since it's not decreased when CPU is offline.
      
      [  105.800279] BUG: scheduling while atomic: swapper/1/0/0x00000002
      [  105.800290] Modules linked in:
      [  105.800327] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G        W
      5.9.0-rc1-gff1304be0a05-dirty #21
      [  105.800337] Hardware name: Thundercomm Dragonboard 845c (DT)
      [  105.800353] Call trace:
      [  105.800414]  dump_backtrace+0x0/0x1d4
      [  105.800439]  show_stack+0x14/0x1c
      [  105.800462]  dump_stack+0xc0/0x100
      [  105.800490]  __schedule_bug+0x58/0x74
      [  105.800523]  __schedule+0x590/0x65c
      [  105.800538]  schedule+0x78/0x10c
      [  105.800553]  schedule_timeout+0x188/0x250
      [  105.800585]  qmp_send.constprop.10+0x12c/0x1b0
      [  105.800599]  qmp_qdss_clk_prepare+0x18/0x20
      [  105.800622]  clk_core_prepare+0x48/0xd4
      [  105.800639]  clk_prepare+0x20/0x34
      [  105.800663]  amba_pm_runtime_resume+0x54/0x90
      [  105.800695]  __rpm_callback+0xdc/0x138
      [  105.800709]  rpm_callback+0x24/0x78
      [  105.800724]  rpm_resume+0x328/0x47c
      [  105.800739]  __pm_runtime_resume+0x50/0x74
      [  105.800768]  cti_starting_cpu+0x40/0xa4
      [  105.800795]  cpuhp_invoke_callback+0x84/0x1e0
      [  105.800814]  notify_cpu_starting+0x9c/0xb8
      [  105.800834]  secondary_start_kernel+0xd8/0x164
      [  105.800933] CPU1: Booted secondary processor 0x0000000100 [0x517f803c]
      
      Fixes: e9b88058 ("coresight: cti: Add CPU Hotplug handling to CTI driver")
      Reviewed-by: default avatarMike Leach <mike.leach@linaro.org>
      Signed-off-by: default avatarTingwei Zhang <tingwei@codeaurora.org>
      Signed-off-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
      Link: https://lore.kernel.org/r/20200916191737.4001561-7-mathieu.poirier@linaro.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6e8836c6
    • Tingwei Zhang's avatar
      coresight: cti: disclaim device only when it's claimed · 0dee2826
      Tingwei Zhang authored
      Coresight_claim_device() is called in cti_starting_cpu() only
      when CTI is enabled while coresight_disclaim_device() is called
      uncontionally in cti_dying_cpu(). This triggered below WARNING.
      Only call disclaim device when CTI device is enabled to fix it.
      
      [   75.989643] WARNING: CPU: 1 PID: 14 at
      kernel/drivers/hwtracing/coresight/coresight.c:209
      coresight_disclaim_device_unlocked+0x10/0x24
      [   75.989697] CPU: 1 PID: 14 Comm: migration/1 Not tainted
      5.9.0-rc1-gff1304be0a05-dirty #21
      [   75.989709] Hardware name: Thundercomm Dragonboard 845c (DT)
      [   75.989737] pstate: 80c00085 (Nzcv daIf +PAN +UAO BTYPE=--)
      [   75.989758] pc : coresight_disclaim_device_unlocked+0x10/0x24
      [   75.989775] lr : coresight_disclaim_device+0x24/0x38
      [   75.989783] sp : ffff800011cd3c90
      .
      [   75.990018] Call trace:
      [   75.990041]  coresight_disclaim_device_unlocked+0x10/0x24
      [   75.990066]  cti_dying_cpu+0x34/0x4c
      [   75.990101]  cpuhp_invoke_callback+0x84/0x1e0
      [   75.990121]  take_cpu_down+0x90/0xe0
      [   75.990154]  multi_cpu_stop+0x134/0x160
      [   75.990171]  cpu_stopper_thread+0xb0/0x13c
      [   75.990196]  smpboot_thread_fn+0x1c4/0x270
      [   75.990222]  kthread+0x128/0x154
      [   75.990251]  ret_from_fork+0x10/0x18
      
      Fixes: e9b88058 ("coresight: cti: Add CPU Hotplug handling to CTI driver")
      Reviewed-by: default avatarMike Leach <mike.leach@linaro.org>
      Signed-off-by: default avatarTingwei Zhang <tingwei@codeaurora.org>
      Signed-off-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
      Link: https://lore.kernel.org/r/20200916191737.4001561-6-mathieu.poirier@linaro.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0dee2826
    • Qi Liu's avatar
      coresight: etm4x: Add Support for HiSilicon ETM device · 447a612e
      Qi Liu authored
      Add ETMv4 periperhal ID for HiSilicon Hip08 and Hip09 platform. Hip08
      contains ETMv4.2 device and Hip09 contains ETMv4.5 device.
      Acked-by: default avatarSuzuki K Poulose <suzuki.oulose@arm.com>
      Signed-off-by: default avatarQi Liu <liuqi115@huawei.com>
      Signed-off-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
      Link: https://lore.kernel.org/r/20200916191737.4001561-5-mathieu.poirier@linaro.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      447a612e
    • Mian Yousaf Kaukab's avatar
      coresight: fix offset by one error in counting ports · 9554c355
      Mian Yousaf Kaukab authored
      Since port-numbers start from 0, add 1 to port-number to get the port
      count.
      
      Fix following crash when Coresight is enabled on ACPI based systems:
      
      [   61.061736] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008
      ...
      [   61.135494] pc : acpi_coresight_parse_graph+0x1c4/0x37c
      [   61.140705] lr : acpi_coresight_parse_graph+0x160/0x37c
      [   61.145915] sp : ffff800012f4ba40
      [   61.145917] x29: ffff800012f4ba40 x28: ffff00becce62f98
      [   61.159896] x27: 0000000000000005 x26: ffff00becd8a7c88
      [   61.165195] x25: ffff00becd8a7d88 x24: ffff00becce62f80
      [   61.170492] x23: ffff800011ef99c0 x22: ffff009efb8bc010
      [   61.175790] x21: 0000000000000018 x20: 0000000000000005
      [   61.181087] x19: ffff00becce62e80 x18: 0000000000000020
      [   61.186385] x17: 0000000000000001 x16: 00000000000002a8
      [   61.191682] x15: ffff000838648550 x14: ffffffffffffffff
      [   61.196980] x13: 0000000000000000 x12: ffff00becce62d87
      [   61.202277] x11: 00000000ffffff76 x10: 000000000000002e
      [   61.207575] x9 : ffff8000107e1a68 x8 : ffff00becce63000
      [   61.212873] x7 : 0000000000000018 x6 : 000000000000003f
      [   61.218170] x5 : 0000000000000000 x4 : 0000000000000000
      [   61.223467] x3 : 0000000000000000 x2 : 0000000000000000
      [   61.228764] x1 : ffff00becce62f80 x0 : 0000000000000000
      [   61.234062] Call trace:
      [   61.236497]  acpi_coresight_parse_graph+0x1c4/0x37c
      [   61.241361]  coresight_get_platform_data+0xdc/0x130
      [   61.246225]  tmc_probe+0x138/0x2dc
      [   61.246227]  amba_probe+0xdc/0x220
      [   61.255779]  really_probe+0xe8/0x49c
      [   61.255781]  driver_probe_device+0xec/0x140
      [   61.255782]  device_driver_attach+0xc8/0xd0
      [   61.255785]  __driver_attach+0xac/0x180
      [   61.265857]  bus_for_each_dev+0x78/0xcc
      [   61.265859]  driver_attach+0x2c/0x40
      [   61.265861]  bus_add_driver+0x150/0x244
      [   61.265863]  driver_register+0x80/0x13c
      [   61.273591]  amba_driver_register+0x60/0x70
      [   61.273594]  tmc_driver_init+0x20/0x2c
      [   61.281582]  do_one_initcall+0x50/0x230
      [   61.281585]  do_initcalls+0x104/0x144
      [   61.291831]  kernel_init_freeable+0x168/0x1dc
      [   61.291834]  kernel_init+0x1c/0x120
      [   61.299215]  ret_from_fork+0x10/0x18
      [   61.299219] Code: b9400022 f9400660 9b277c42 8b020000 (f9400404)
      [   61.307381] ---[ end trace 63c6c3d7ec6a9b7c ]---
      [   61.315225] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
      
      Fixes: d375b356 ("coresight: Fix support for sparsely populated ports")
      Reported-by: default avatarRuediger Oertel <ro@suse.com>
      Tested-by: default avatarJeremy Linton <jeremy.linton@arm.com>
      Reviewed-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
      Reviewed-by: default avatarJeremy Linton <jeremy.linton@arm.com>
      Signed-off-by: default avatarMian Yousaf Kaukab <ykaukab@suse.de>
      Signed-off-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
      Link: https://lore.kernel.org/r/20200916191737.4001561-4-mathieu.poirier@linaro.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9554c355
    • Tingwei Zhang's avatar
      coresight: stm: Support marked packet · 4af8b3d3
      Tingwei Zhang authored
      STP_PACKET_MARKED is not supported by STM currently.
      Add STM_FLAG_MARKED to support marked packet in STM.
      Signed-off-by: default avatarTingwei Zhang <tingwei@codeaurora.org>
      Signed-off-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
      Link: https://lore.kernel.org/r/20200916191737.4001561-3-mathieu.poirier@linaro.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4af8b3d3
    • Sai Prakash Ranjan's avatar
      coresight: etm4x: Fix etm4_count race by moving cpuhp callbacks to init · 2d1a8bfb
      Sai Prakash Ranjan authored
      etm4_count keeps track of number of ETMv4 registered and on some systems,
      a race is observed on etm4_count variable which can lead to multiple calls
      to cpuhp_setup_state_nocalls_cpuslocked(). This function internally calls
      cpuhp_store_callbacks() which prevents multiple registrations of callbacks
      for a given state and due to this race, it returns -EBUSY leading to ETM
      probe failures like below.
      
       coresight-etm4x: probe of 7040000.etm failed with error -16
      
      This race can easily be triggered with async probe by setting probe type
      as PROBE_PREFER_ASYNCHRONOUS and with ETM power management property
      "arm,coresight-loses-context-with-cpu".
      
      Prevent this race by moving cpuhp callbacks to etm driver init since the
      cpuhp callbacks doesn't have to depend on the etm4_count and can be once
      setup during driver init. Similarly we move cpu_pm notifier registration
      to driver init and completely remove etm4_count usage. Also now we can
      use non cpuslocked version of cpuhp callbacks with this movement.
      
      Fixes: 9b6a3f36 ("coresight: etmv4: Fix CPU power management setup in probe() function")
      Fixes: 58eb457b ("hwtracing/coresight-etm4x: Convert to hotplug state machine")
      Suggested-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
      Tested-by: default avatarStephen Boyd <swboyd@chromium.org>
      Reviewed-by: default avatarStephen Boyd <swboyd@chromium.org>
      Reviewed-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
      Signed-off-by: default avatarSai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
      Signed-off-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
      Link: https://lore.kernel.org/r/20200916191737.4001561-2-mathieu.poirier@linaro.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2d1a8bfb
  2. 16 Sep, 2020 7 commits
  3. 14 Sep, 2020 3 commits
  4. 13 Sep, 2020 10 commits
    • Linus Torvalds's avatar
      Linux 5.9-rc5 · 856deb86
      Linus Torvalds authored
      856deb86
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 5712c3ed
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "A collection of fixes I've been accruing over the last few weeks, none
        of them have been severe enough to warrant flushing the queue but it's
        been long enough now that it's a good idea to send them in.
      
        A handful of them are fixups for QSPI DT/bindings/compatibles, some
        smaller fixes for system DMA clock control and TMU interrupts on i.MX,
        a handful of fixes for OMAP, including a fix for DSI (display) on
        omap5"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (27 commits)
        arm64: dts: ns2: Fixed QSPI compatible string
        ARM: dts: BCM5301X: Fixed QSPI compatible string
        ARM: dts: NSP: Fixed QSPI compatible string
        ARM: dts: bcm: HR2: Fixed QSPI compatible string
        dt-bindings: spi: Fix spi-bcm-qspi compatible ordering
        ARM: dts: imx6sx: fix the pad QSPI1B_SCLK mux mode for uart3
        arm64: dts: imx8mp: correct sdma1 clk setting
        arm64: dts: imx8mq: Fix TMU interrupt property
        ARM: dts: imx7d-zii-rmu2: fix rgmii phy-mode for ksz9031 phy
        ARM: dts: vfxxx: Add syscon compatible with OCOTP
        ARM: dts: imx6q-logicpd: Fix broken PWM
        arm64: dts: imx: Add missing imx8mm-beacon-kit.dtb to build
        ARM: dts: imx6q-prtwd2: Remove unneeded i2c unit name
        ARM: dts: imx6qdl-gw51xx: Remove unneeded #address-cells/#size-cells
        ARM: dts: imx7ulp: Correct gpio ranges
        ARM: dts: ls1021a: fix QuadSPI-memory reg range
        arm64: defconfig: Enable ptn5150 extcon driver
        arm64: defconfig: Enable USB gadget with configfs
        ARM: configs: Update Integrator defconfig
        ARM: dts: omap5: Fix DSI base address and clocks
        ...
      5712c3ed
    • Linus Torvalds's avatar
      Merge tag 'usb-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · e4c26faa
      Linus Torvalds authored
      Pull USB/Thunderbolt fixes from Greg KH:
       "Here are some small USB and Thunderbolt driver fixes for 5.9-rc5.
      
        Nothing huge, just a number of bugfixes and new device ids for
        problems reported:
      
         - new USB serial driver ids
      
         - bug fixes for syzbot reported problems
      
         - typec driver fixes
      
         - thunderbolt driver fixes
      
         - revert of reported broken commit
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'usb-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb: typec: intel_pmc_mux: Do not configure SBU and HSL Orientation in Alternate modes
        usb: typec: intel_pmc_mux: Do not configure Altmode HPD High
        usb: core: fix slab-out-of-bounds Read in read_descriptors
        Revert "usb: dwc3: meson-g12a: fix shared reset control use"
        usb: typec: ucsi: acpi: Check the _DEP dependencies
        usb: typec: intel_pmc_mux: Un-register the USB role switch
        usb: Fix out of sync data toggle if a configured device is reconfigured
        USB: serial: option: support dynamic Quectel USB compositions
        USB: serial: option: add support for SIM7070/SIM7080/SIM7090 modules
        thunderbolt: Use maximum USB3 link rate when reclaiming if link is not up
        thunderbolt: Disable ports that are not implemented
        USB: serial: ftdi_sio: add IDs for Xsens Mti USB converter
      e4c26faa
    • Linus Torvalds's avatar
      Merge tag 'staging-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 6c7247f6
      Linus Torvalds authored
      Pull staging/IIO driver fixes from Greg KH:
       "Here are a number of staging and IIO driver fixes for 5.9-rc5.
      
        The majority of these are IIO driver fixes, to resolve a timestamp
        issue that was recently found to affect a bunch of IIO drivers.
      
        The other fixes in here are:
      
         - small IIO driver fixes
      
         - greybus driver fix
      
         - counter driver fix (came in through the IIO fixes tree)
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'staging-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (23 commits)
        iio: adc: mcp3422: fix locking on error path
        iio: adc: mcp3422: fix locking scope
        iio: adc: meson-saradc: Use the parent device to look up the calib data
        iio:adc:max1118 Fix alignment of timestamp and data leak issues
        iio:adc:ina2xx Fix timestamp alignment issue.
        iio:adc:ti-adc084s021 Fix alignment and data leak issues.
        iio:adc:ti-adc081c Fix alignment and data leak issues
        iio:magnetometer:ak8975 Fix alignment and data leak issues.
        iio:light:ltr501 Fix timestamp alignment issue.
        iio:light:max44000 Fix timestamp alignment and prevent data leak.
        iio:chemical:ccs811: Fix timestamp alignment and prevent data leak.
        iio:proximity:mb1232: Fix timestamp alignment and prevent data leak.
        iio:accel:mma7455: Fix timestamp alignment and prevent data leak.
        iio:accel:bmc150-accel: Fix timestamp alignment and prevent data leak.
        iio:accel:mma8452: Fix timestamp alignment and prevent data leak.
        iio: accel: kxsd9: Fix alignment of local buffer.
        iio: adc: rockchip_saradc: select IIO_TRIGGERED_BUFFER
        iio: adc: ti-ads1015: fix conversion when CONFIG_PM is not set
        counter: microchip-tcb-capture: check the correct variable
        iio: cros_ec: Set Gyroscope default frequency to 25Hz
        ...
      6c7247f6
    • Linus Torvalds's avatar
      Merge tag 'driver-core-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 20a7b6be
      Linus Torvalds authored
      Pull driver core fixes from Greg KH:
       "Here are some small driver core and debugfs fixes for 5.9-rc5
      
        Included in here are:
      
         - firmware loader memory leak fix
      
         - firmware loader testing fixes for non-EFI systems
      
         - device link locking fixes found by lockdep
      
         - kobject_del() bugfix that has been affecting some callers
      
         - debugfs minor fix
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'driver-core-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        test_firmware: Test platform fw loading on non-EFI systems
        PM: <linux/device.h>: fix @em_pd kernel-doc warning
        kobject: Drop unneeded conditional in __kobject_del()
        driver core: Fix device_pm_lock() locking for device links
        MAINTAINERS: Add the security document to SECURITY CONTACT
        driver code: print symbolic error code
        debugfs: Fix module state check condition
        kobject: Restore old behaviour of kobject_del(NULL)
        firmware_loader: fix memory leak for paged buffer
      20a7b6be
    • Olof Johansson's avatar
      Merge tag 'arm-soc/for-5.9/devicetree-fixes' of https://github.com/Broadcom/stblinux into arm/fixes · a4da411e
      Olof Johansson authored
      This pull request contains Broadcom ARM-based SoCs Device Tree fixes for
      5.9, please pull the following:
      
      - Florian fixes the Broadcom QSPI controller binding such that the most
        specific compatible string is the left most one, and all existing
        in-tree users are updated as well.
      
      * tag 'arm-soc/for-5.9/devicetree-fixes' of https://github.com/Broadcom/stblinux:
        arm64: dts: ns2: Fixed QSPI compatible string
        ARM: dts: BCM5301X: Fixed QSPI compatible string
        ARM: dts: NSP: Fixed QSPI compatible string
        ARM: dts: bcm: HR2: Fixed QSPI compatible string
        dt-bindings: spi: Fix spi-bcm-qspi compatible ordering
      
      Link: https://lore.kernel.org/r/20200909211857.4144718-1-f.fainelli@gmail.comSigned-off-by: default avatarOlof Johansson <olof@lixom.net>
      a4da411e
    • Olof Johansson's avatar
      Merge tag 'imx-fixes-5.9-2' of... · 2aedcb04
      Olof Johansson authored
      Merge tag 'imx-fixes-5.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes
      
      i.MX fixes for 5.9, round 2:
      
      - Fix the misspelling of 'interrupts' property in i.MX8MQ TMU DT node.
      - Correct 'ahb' clock for i.MX8MP SDMA1 in device tree.
      - Fix pad QSPI1B_SCLK mux mode for UART3 on i.MX6SX.
      
      * tag 'imx-fixes-5.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
        ARM: dts: imx6sx: fix the pad QSPI1B_SCLK mux mode for uart3
        arm64: dts: imx8mp: correct sdma1 clk setting
        arm64: dts: imx8mq: Fix TMU interrupt property
      
      Link: https://lore.kernel.org/r/20200909143844.GA25109@dragonSigned-off-by: default avatarOlof Johansson <olof@lixom.net>
      2aedcb04
    • Olof Johansson's avatar
      Merge tag 'omap-for-v5.9/fixes-rc3' of... · 0e384029
      Olof Johansson authored
      Merge tag 'omap-for-v5.9/fixes-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/fixes
      
      Fixes for omaps for v5.9-rc cycle
      
      Few fixes for omap based devices:
      
      - Fix of_clk_get() error handling for omap-iommu
      
      - Fix missing audio pinctrl entries for logicpd boards
      
      - Fix video for logicpd-som-lv after switch to generic panels
      
      - Fix omap5 DSI clocks base
      
      * tag 'omap-for-v5.9/fixes-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        ARM: dts: omap5: Fix DSI base address and clocks
        ARM: dts: logicpd-som-lv-baseboard: Fix missing video
        ARM: dts: logicpd-som-lv-baseboard: Fix broken audio
        ARM: dts: logicpd-torpedo-baseboard: Fix broken audio
        ARM: OMAP2+: Fix an IS_ERR() vs NULL check in _get_pwrdm()
      
      Link: https://lore.kernel.org/r/pull-1599132064-54898@atomide.comSigned-off-by: default avatarOlof Johansson <olof@lixom.net>
      0e384029
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 2a1a4bee
      Linus Torvalds authored
      Pull char / misc driver fixes from Greg KH:
       "Here are a number of small driver fixes for 5.9-rc5
      
        Included in here are:
      
         - habanalabs driver fixes
      
         - interconnect driver fixes
      
         - soundwire driver fixes
      
         - dyndbg fixes for reported issues, and then reverts to fix it all up
           to a sane state.
      
         - phy driver fixes
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'char-misc-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        Revert "dyndbg: accept query terms like file=bar and module=foo"
        Revert "dyndbg: fix problem parsing format="foo bar""
        scripts/tags.sh: exclude tools directory from tags generation
        video: fbdev: fix OOB read in vga_8planes_imageblit()
        dyndbg: fix problem parsing format="foo bar"
        dyndbg: refine export, rename to dynamic_debug_exec_queries()
        dyndbg: give %3u width in pr-format, cosmetic only
        interconnect: qcom: Fix small BW votes being truncated to zero
        soundwire: fix double free of dangling pointer
        interconnect: Show bandwidth for disabled paths as zero in debugfs
        habanalabs: fix report of RAZWI initiator coordinates
        habanalabs: prevent user buff overflow
        phy: omap-usb2-phy: disable PHY charger detect
        phy: qcom-qmp: Use correct values for ipq8074 PCIe Gen2 PHY init
        soundwire: bus: fix typo in comment on INTSTAT registers
        phy: qualcomm: fix return value check in qcom_ipq806x_usb_phy_probe()
        phy: qualcomm: fix platform_no_drv_owner.cocci warnings
      2a1a4bee
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 84b13499
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "A bit on the bigger side, mostly due to me being on vacation, then
        busy, then on parental leave, but there's nothing worrisome.
      
        ARM:
         - Multiple stolen time fixes, with a new capability to match x86
         - Fix for hugetlbfs mappings when PUD and PMD are the same level
         - Fix for hugetlbfs mappings when PTE mappings are enforced (dirty
           logging, for example)
         - Fix tracing output of 64bit values
      
        x86:
         - nSVM state restore fixes
         - Async page fault fixes
         - Lots of small fixes everywhere"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (25 commits)
        KVM: emulator: more strict rsm checks.
        KVM: nSVM: more strict SMM checks when returning to nested guest
        SVM: nSVM: setup nested msr permission bitmap on nested state load
        SVM: nSVM: correctly restore GIF on vmexit from nesting after migration
        x86/kvm: don't forget to ACK async PF IRQ
        x86/kvm: properly use DEFINE_IDTENTRY_SYSVEC() macro
        KVM: VMX: Don't freeze guest when event delivery causes an APIC-access exit
        KVM: SVM: avoid emulation with stale next_rip
        KVM: x86: always allow writing '0' to MSR_KVM_ASYNC_PF_EN
        KVM: SVM: Periodically schedule when unregistering regions on destroy
        KVM: MIPS: Change the definition of kvm type
        kvm x86/mmu: use KVM_REQ_MMU_SYNC to sync when needed
        KVM: nVMX: Fix the update value of nested load IA32_PERF_GLOBAL_CTRL control
        KVM: fix memory leak in kvm_io_bus_unregister_dev()
        KVM: Check the allocation of pv cpu mask
        KVM: nVMX: Update VMCS02 when L2 PAE PDPTE updates detected
        KVM: arm64: Update page shift if stage 2 block mapping not supported
        KVM: arm64: Fix address truncation in traces
        KVM: arm64: Do not try to map PUDs when they are folded into PMD
        arm64/x86: KVM: Introduce steal-time cap
        ...
      84b13499
  5. 12 Sep, 2020 10 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://github.com/openrisc/linux · b952e974
      Linus Torvalds authored
      Pull OpenRISC fixes from Stafford Horne:
       "Fixes for compile issues pointed out by kbuild and one bug I found in
        initrd with the 5.9 patches"
      
      * tag 'for-linus' of git://github.com/openrisc/linux:
        openrisc: Fix issue with get_user for 64-bit values
        openrisc: Fix cache API compile issue when not inlining
        openrisc: Reserve memblock for initrd
      b952e974
    • Linus Torvalds's avatar
      Merge tag 'seccomp-v5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · ef2e9a56
      Linus Torvalds authored
      Pull seccomp fixes from Kees Cook:
       "This fixes a rare race condition in seccomp when using TSYNC and
        USER_NOTIF together where a memory allocation would not get freed
        (found by syzkaller, fixed by Tycho).
      
        Additionally updates Tycho's MAINTAINERS and .mailmap entries for his
        new address"
      
      * tag 'seccomp-v5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        seccomp: don't leave dangling ->notif if file allocation fails
        mailmap, MAINTAINERS: move to tycho.pizza
        seccomp: don't leak memory when filter install races
      ef2e9a56
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-fix-v5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 4f8b0a5b
      Linus Torvalds authored
      Pull libnvdimm fix from Vishal Verma:
       "Fix detection of dax support for block devices.
      
        Previous fixes in this area, which only affected printing of debug
        messages, had an incorrect condition for detection of dax. This fix
        should finally do the right thing"
      
      * tag 'libnvdimm-fix-v5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        dax: fix detection of dax support for non-persistent memory block devices
      4f8b0a5b
    • Linus Torvalds's avatar
      Merge tag 'for-5.9-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · edf6b0e1
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
       "A few more fixes:
      
         - regression fix for a crash after failed snapshot creation
      
         - one more lockep fix: use nofs allocation when allocating missing
           device
      
         - fix reloc tree leak on degraded mount
      
         - make some extent buffer alignment checks less strict to mount
           filesystems created by btrfs-convert"
      
      * tag 'for-5.9-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: fix NULL pointer dereference after failure to create snapshot
        btrfs: free data reloc tree on failed mount
        btrfs: require only sector size alignment for parent eb bytenr
        btrfs: fix lockdep splat in add_missing_dev
      edf6b0e1
    • Linus Torvalds's avatar
      Merge tag '5.9-rc4-smb3-fix' of git://git.samba.org/sfrench/cifs-2.6 · 5a3c558a
      Linus Torvalds authored
      Pull cifs fix from Steve French:
       "A fix for lookup on DFS link when cifsacl or modefromsid is used"
      
      * tag '5.9-rc4-smb3-fix' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: fix DFS mount with cifsacl/modefromsid
      5a3c558a
    • Maxim Levitsky's avatar
      KVM: emulator: more strict rsm checks. · 37f66bbe
      Maxim Levitsky authored
      Don't ignore return values in rsm_load_state_64/32 to avoid
      loading invalid state from SMM state area if it was tampered with
      by the guest.
      
      This is primarly intended to avoid letting guest set bits in EFER
      (like EFER.SVME when nesting is disabled) by manipulating SMM save area.
      Signed-off-by: default avatarMaxim Levitsky <mlevitsk@redhat.com>
      Message-Id: <20200827171145.374620-8-mlevitsk@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      37f66bbe
    • Maxim Levitsky's avatar
      KVM: nSVM: more strict SMM checks when returning to nested guest · 3ebb5d26
      Maxim Levitsky authored
      * check that guest is 64 bit guest, otherwise the SVM related fields
        in the smm state area are not defined
      
      * If the SMM area indicates that SMM interrupted a running guest,
        check that EFER.SVME which is also saved in this area is set, otherwise
        the guest might have tampered with SMM save area, and so indicate
        emulation failure which should triple fault the guest.
      
      * Check that that guest CPUID supports SVM (due to the same issue as above)
      Signed-off-by: default avatarMaxim Levitsky <mlevitsk@redhat.com>
      Message-Id: <20200827162720.278690-4-mlevitsk@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      3ebb5d26
    • Maxim Levitsky's avatar
      SVM: nSVM: setup nested msr permission bitmap on nested state load · 772b81bb
      Maxim Levitsky authored
      This code was missing and was forcing the L2 run with L1's msr
      permission bitmap
      Signed-off-by: default avatarMaxim Levitsky <mlevitsk@redhat.com>
      Message-Id: <20200827162720.278690-3-mlevitsk@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      772b81bb
    • Maxim Levitsky's avatar
      SVM: nSVM: correctly restore GIF on vmexit from nesting after migration · 9883764a
      Maxim Levitsky authored
      Currently code in svm_set_nested_state copies the current vmcb control
      area to L1 control area (hsave->control), under assumption that
      it mostly reflects the defaults that kvm choose, and later qemu
      overrides  these defaults with L2 state using standard KVM interfaces,
      like KVM_SET_REGS.
      
      However nested GIF (which is AMD specific thing) is by default is true,
      and it is copied to hsave area as such.
      
      This alone is not a big deal since on VMexit, GIF is always set to false,
      regardless of what it was on VM entry.  However in nested_svm_vmexit we
      were first were setting GIF to false, but then we overwrite the control
      fields with value from the hsave area.  (including the nested GIF field
      itself if GIF virtualization is enabled).
      
      Now on normal vm entry this is not a problem, since GIF is usually false
      prior to normal vm entry, and this is the value that copied to hsave,
      and then restored, but this is not always the case when the nested state
      is loaded as explained above.
      
      To fix this issue, move svm_set_gif after we restore the L1 control
      state in nested_svm_vmexit, so that even with wrong GIF in the
      saved L1 control area, we still clear GIF as the spec says.
      Signed-off-by: default avatarMaxim Levitsky <mlevitsk@redhat.com>
      Message-Id: <20200827162720.278690-2-mlevitsk@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      9883764a
    • Stafford Horne's avatar
      openrisc: Fix issue with get_user for 64-bit values · d877322b
      Stafford Horne authored
      A build failure was raised by kbuild with the following error.
      
          drivers/android/binder.c: Assembler messages:
          drivers/android/binder.c:3861: Error: unrecognized keyword/register name `l.lwz ?ap,4(r24)'
          drivers/android/binder.c:3866: Error: unrecognized keyword/register name `l.addi ?ap,r0,0'
      
      The issue is with 64-bit get_user() calls on openrisc.  I traced this to
      a problem where in the internally in the get_user macros there is a cast
      to long __gu_val this causes GCC to think the get_user call is 32-bit.
      This binder code is really long and GCC allocates register r30, which
      triggers the issue. The 64-bit get_user asm tries to get the 64-bit pair
      register, which for r30 overflows the general register names and returns
      the dummy register ?ap.
      
      The fix here is to move the temporary variables into the asm macros.  We
      use a 32-bit __gu_tmp for 32-bit and smaller macro and a 64-bit tmp in
      the 64-bit macro.  The cast in the 64-bit macro has a trick of casting
      through __typeof__((x)-(x)) which avoids the below warning.  This was
      barrowed from riscv.
      
          arch/openrisc/include/asm/uaccess.h:240:8: warning: cast to pointer from integer of different size
      
      I tested this in a small unit test to check reading between 64-bit and
      32-bit pointers to 64-bit and 32-bit values in all combinations.  Also I
      ran make C=1 to confirm no new sparse warnings came up.  It all looks
      clean to me.
      
      Link: https://lore.kernel.org/lkml/202008200453.ohnhqkjQ%25lkp@intel.com/Signed-off-by: default avatarStafford Horne <shorne@gmail.com>
      Reviewed-by: default avatarLuc Van Oostenryck <luc.vanoostenryck@gmail.com>
      d877322b