Commit graph

996159 commits

Author SHA1 Message Date
Maxim Mikityanskiy
912c9b5fcc net/mlx5e: Revert parameters on errors when changing trust state without reset
Trust state may be changed without recreating the channels. It happens
when the channels are closed, and when channel parameters (min inline
mode) stay the same after changing the trust state. Changing the trust
state is a hardware command that may fail. The current code didn't
restore the channel parameters to their old values if an error happened
and the channels were closed. This commit adds handling for this case.

Fixes: 6e0504c698 ("net/mlx5e: Change inline mode correctly when changing trust state")
Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2021-01-26 15:38:58 -08:00
Maxim Mikityanskiy
57ac4a31c4 net/mlx5e: Correctly handle changing the number of queues when the interface is down
This commit addresses two issues related to changing the number of
queues when the channels are closed:

1. Missing call to mlx5e_num_channels_changed to update
real_num_tx_queues when the number of TCs is changed.

2. When mlx5e_num_channels_changed returns an error, the channel
parameters must be reverted.

Two Fixes: tags correspond to the first commits where these two issues
were introduced.

Fixes: 3909a12e79 ("net/mlx5e: Fix configuration of XPS cpumasks and netdev queues in corner cases")
Fixes: fa3748775b ("net/mlx5e: Handle errors from netif_set_real_num_{tx,rx}_queues")
Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2021-01-26 15:38:56 -08:00
Paul Blakey
89e3946758 net/mlx5e: Fix CT rule + encap slow path offload and deletion
Currently, if a neighbour isn't valid when offloading tunnel encap rules,
we offload the original match and replace the original action with
"goto slow path" action. For this we use a temporary flow attribute based
on the original flow attribute and then change the action. Flow flags,
which among those is the CT flag, are still shared for the slow path rule
offload, so we end up parsing this flow as a CT + goto slow path rule.

Besides being unnecessary, CT action offload saves extra information in
the passed flow attribute, such as created ct_flow and mod_hdr, which
is lost onces the temporary flow attribute is freed.

When a neigh is updated and is valid, we offload the original CT rule
with original CT action, which again creates a ct_flow and mod_hdr
and saves it in the flow's original attribute. Then we delete the slow
path rule with a temporary flow attribute based on original updated
flow attribute, and we free the relevant ct_flow and mod_hdr.

Then when tc deletes this flow, we try to free the ct_flow and mod_hdr
on the flow's attribute again.

To fix the issue, skip all furture proccesing (CT/Sample/Split rules)
in offload/unoffload of slow path rules.

Call trace:
[  758.850525] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000218
[  758.952987] Internal error: Oops: 96000005 [#1] PREEMPT SMP
[  758.964170] Modules linked in: act_csum(E) act_pedit(E) act_tunnel_key(E) act_ct(E) nf_flow_table(E) xt_nat(E) ip6table_filter(E) ip6table_nat(E) xt_comment(E) ip6_tables(E) xt_conntrack(E) xt_MASQUERADE(E) nf_conntrack_netlink(E) xt_addrtype(E) iptable_filter(E) iptable_nat(E) bpfilter(E) br_netfilter(E) bridge(E) stp(E) llc(E) xfrm_user(E) overlay(E) act_mirred(E) act_skbedit(E) rdma_ucm(OE) rdma_cm(OE) iw_cm(OE) ib_ipoib(OE) ib_cm(OE) ib_umad(OE) esp6_offload(E) esp6(E) esp4_offload(E) esp4(E) xfrm_algo(E) mlx5_ib(OE) ib_uverbs(OE) geneve(E) ip6_udp_tunnel(E) udp_tunnel(E) nfnetlink_cttimeout(E) nfnetlink(E) mlx5_core(OE) act_gact(E) cls_flower(E) sch_ingress(E) openvswitch(E) nsh(E) nf_conncount(E) nf_nat(E) mlxfw(OE) psample(E) nf_conntrack(E) nf_defrag_ipv4(E) vfio_mdev(E) mdev(E) ib_core(OE) mlx_compat(OE) crct10dif_ce(E) uio_pdrv_genirq(E) uio(E) i2c_mlx(E) mlxbf_pmc(E) sbsa_gwdt(E) mlxbf_gige(E) gpio_mlxbf2(E) mlxbf_pka(E) mlx_trio(E) mlx_bootctl(E) bluefield_edac(E) knem(O)
[  758.964225]  ip_tables(E) mlxbf_tmfifo(E) ipv6(E) crc_ccitt(E) nf_defrag_ipv6(E)
[  759.154186] CPU: 5 PID: 122 Comm: kworker/u16:1 Tainted: G           OE     5.4.60-mlnx.52.gde81e85 #1
[  759.172870] Hardware name: https://www.mellanox.com BlueField SoC/BlueField SoC, BIOS BlueField:3.5.0-2-gc1b5d64 Jan  4 2021
[  759.195466] Workqueue: mlx5e mlx5e_rep_neigh_update [mlx5_core]
[  759.207344] pstate: a0000005 (NzCv daif -PAN -UAO)
[  759.217003] pc : mlx5_del_flow_rules+0x5c/0x160 [mlx5_core]
[  759.228229] lr : mlx5_del_flow_rules+0x34/0x160 [mlx5_core]
[  759.405858] Call trace:
[  759.410804]  mlx5_del_flow_rules+0x5c/0x160 [mlx5_core]
[  759.421337]  __mlx5_eswitch_del_rule.isra.43+0x5c/0x1c8 [mlx5_core]
[  759.433963]  mlx5_eswitch_del_offloaded_rule_ct+0x34/0x40 [mlx5_core]
[  759.446942]  mlx5_tc_rule_delete_ct+0x68/0x74 [mlx5_core]
[  759.457821]  mlx5_tc_ct_delete_flow+0x160/0x21c [mlx5_core]
[  759.469051]  mlx5e_tc_unoffload_fdb_rules+0x158/0x168 [mlx5_core]
[  759.481325]  mlx5e_tc_encap_flows_del+0x140/0x26c [mlx5_core]
[  759.492901]  mlx5e_rep_update_flows+0x11c/0x1ec [mlx5_core]
[  759.504127]  mlx5e_rep_neigh_update+0x160/0x200 [mlx5_core]
[  759.515314]  process_one_work+0x178/0x400
[  759.523350]  worker_thread+0x58/0x3e8
[  759.530685]  kthread+0x100/0x12c
[  759.537152]  ret_from_fork+0x10/0x18
[  759.544320] Code: 97ffef55 51000673 3100067f 54ffff41 (b9421ab3)
[  759.556548] ---[ end trace fab818bb1085832d ]---

Fixes: 4c3844d9e9 ("net/mlx5e: CT: Introduce connection tracking")
Signed-off-by: Paul Blakey <paulb@nvidia.com>
Reviewed-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Vlad Buslov <vladbu@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2021-01-26 15:38:53 -08:00
Maor Dickman
156878d0e6 net/mlx5e: Disable hw-tc-offload when MLX5_CLS_ACT config is disabled
The cited commit introduce new CONFIG_MLX5_CLS_ACT kconfig variable
to control compilation of TC hardware offloads implementation.
When this configuration is disabled the driver is still wrongly
reports in ethtool that hw-tc-offload is supported.

Fixed by reporting hw-tc-offload is supported only when
CONFIG_MLX5_CLS_ACT is enabled.

Fixes: d956873f90 ("net/mlx5e: Introduce kconfig var for TC support")
Signed-off-by: Maor Dickman <maord@nvidia.com>
Reviewed-by: Vlad Buslov <vladbu@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2021-01-26 15:38:51 -08:00
Daniel Jurgens
0aa128475d net/mlx5: Maintain separate page trees for ECPF and PF functions
Pages for the host PF and ECPF were stored in the same tree, so the ECPF
pages were being freed along with the host PF's when the host driver
unloaded.

Combine the function ID and ECPF flag to use as an index into the
x-array containing the trees to get a different tree for the host PF and
ECPF.

Fixes: c6168161f6 ("net/mlx5: Add support for release all pages event")
Signed-off-by: Daniel Jurgens <danielj@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2021-01-26 15:38:48 -08:00
Maxim Mikityanskiy
45c9a30835 net/mlx5e: Fix IPSEC stats
When IPSEC offload isn't active, the number of stats is not zero, but
the strings are not filled, leading to exposing stats with empty names.
Fix this by using the same condition for NUM_STATS and FILL_STRS.

Fixes: 0aab3e1b04 ("net/mlx5e: IPSec, Expose IPsec HW stat only for supporting HW")
Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com>
Reviewed-by: Raed Salem <raeds@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2021-01-26 15:38:46 -08:00
Maor Dickman
48470a90a4 net/mlx5e: Reduce tc unsupported key print level
"Unsupported key used:" appears in kernel log when flows with
unsupported key are used, arp fields for example.

OpenVSwitch was changed to match on arp fields by default that
caused this warning to appear in kernel log for every arp rule, which
can be a lot.

Fix by lowering print level from warning to debug.

Fixes: e3a2b7ed01 ("net/mlx5e: Support offload cls_flower with drop action")
Signed-off-by: Maor Dickman <maord@nvidia.com>
Reviewed-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2021-01-26 15:38:43 -08:00
Pan Bian
258ed19f07 net/mlx5e: free page before return
Instead of directly return, goto the error handling label to free
allocated page.

Fixes: 5f29458b77 ("net/mlx5e: Support dump callback in TX reporter")
Signed-off-by: Pan Bian <bianpan2016@163.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2021-01-26 15:38:41 -08:00
Parav Pandit
1fe3e3166b net/mlx5e: E-switch, Fix rate calculation for overflow
rate_bytes_ps is a 64-bit field. It passed as 32-bit field to
apply_police_params(). Due to this when police rate is higher
than 4Gbps, 32-bit calculation ignores the carry. This results
in incorrect rate configurationn the device.

Fix it by performing 64-bit calculation.

Fixes: fcb64c0f56 ("net/mlx5: E-Switch, add ingress rate support")
Signed-off-by: Parav Pandit <parav@nvidia.com>
Reviewed-by: Eli Cohen <elic@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2021-01-26 15:38:38 -08:00
Roi Dayan
487c6ef81e net/mlx5: Fix memory leak on flow table creation error flow
When we create the ft object we also init rhltable in ft->fgs_hash.
So in error flow before kfree of ft we need to destroy that rhltable.

Fixes: 693c6883bb ("net/mlx5: Add hash table for flow groups in flow table")
Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Maor Dickman <maord@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2021-01-26 15:38:36 -08:00
Shaokun Zhang
507d664450 arm64: mm: Remove unused header file
Many header files are never used, let's remove them directly.

Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Shaokun Zhang <zhangshaokun@hisilicon.com>
Link: https://lore.kernel.org/r/1611663884-43329-1-git-send-email-zhangshaokun@hisilicon.com
Signed-off-by: Will Deacon <will@kernel.org>
2021-01-26 23:23:19 +00:00
Jakub Kicinski
c5e9e8d48a A couple of fixes:
* fix 160 MHz channel switch in mac80211
  * fix a staging driver to not deadlock due to some
    recent cfg80211 changes
  * fix NULL-ptr deref if cfg80211 returns -EINPROGRESS
    to wext (syzbot)
  * pause TX in mac80211 in type change to prevent crashes
    (syzbot)
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEH1e1rEeCd0AIMq6MB8qZga/fl8QFAmAQEXcACgkQB8qZga/f
 l8SYWg//X01WgOAAu8mTbnXGdnHF/ZTssp+/eenmoc/XroJgMmvbt4b/gfSt0xMF
 kEd3kPBPtp6Ttgr4HQAyfFctmtXcgq9qo6L8wBWy8WeDHBjaOMLWBLMlZ3m3/abH
 oU8LvDNO0FYCf5qCIzmpFJYXlEsyv22XOi9GYx62ux5g7DbWO6C1Me3dn7im+IiW
 +/P7Qy5lSDpww9F89wMfkwP4dDNcycgKkeRn6IEH1gJxzF6x6GFjuTvrr0finBnO
 9m/zgZCbBm0VIdFcySiJUiWqyhDgdfa3dfcOtNwegkH8mZUZ+h8sEG67Ku4Hp56L
 Js6AmOw4TA9kSs11nOWOZm9609kk8s8ucy88A8v7ct6O9FkxvzcK6VLo3GCGTBPE
 8BsPJoL9OXvziT/vwuGPJDruO3Vv6yzoDf8cSiiMGCCOe5TPioucDSbU8QV4N02Q
 OJ8NcgRtxIo0GC6DD8xOvafWVvc6/byruBpe1x7SkkgfK0NIaMKgWh2g8Ebi3RpE
 H1X/2FpsZ7AgKDs2yfJs4oFOwL72o8WezH6jTM4AFoGOEtxPnrYaG1+R35y6R9Vp
 DwPRo9bTyVb4rpnoOv/FYMoBaKpP7qQDyGlwvGeqUlAW8Yj+H+MmxVUv5JUIj4Cu
 Zdy0bFq27dntJ+/jnoryFfU/afyOdkANAu9cmlx+vXqr1etLvww=
 =g3wj
 -----END PGP SIGNATURE-----

Merge tag 'mac80211-for-net-2021-01-26' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211

Johannes Berg says:

====================
A couple of fixes:
 * fix 160 MHz channel switch in mac80211
 * fix a staging driver to not deadlock due to some
   recent cfg80211 changes
 * fix NULL-ptr deref if cfg80211 returns -EINPROGRESS
   to wext (syzbot)
 * pause TX in mac80211 in type change to prevent crashes
   (syzbot)

* tag 'mac80211-for-net-2021-01-26' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211:
  staging: rtl8723bs: fix wireless regulatory API misuse
  mac80211: pause TX while changing interface type
  wext: fix NULL-ptr-dereference with cfg80211's lack of commit()
  mac80211: 160MHz with extended NSS BW in CSA
====================

Link: https://lore.kernel.org/r/20210126130529.75225-1-johannes@sipsolutions.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-01-26 15:23:18 -08:00
Jakub Kicinski
db22ce68a9 wireless-drivers fixes for v5.11
Second set of fixes for v5.11. Like in last time we again have more
 fixes than usual Actually a bit too much for my liking in this state
 of the cycle, but due to unrelated challenges I was only able to
 submit them now.
 
 We have few important crash fixes, iwlwifi modifying read-only data
 being the most reported issue, and also smaller fixes to iwlwifi.
 
 mt76
 
 * fix a clang warning about enum usage
 
 * fix rx buffer refcounting crash
 
 mt7601u
 
 * fix rx buffer refcounting crash
 
 * fix crash when unbplugging the device
 
 iwlwifi
 
 * fix a crash where we were modifying read-only firmware data
 
 * lots of smaller fixes allover the driver
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJgD96RAAoJEG4XJFUm622bubwH/2TxF5aLNnE49BdgksiorD1M
 lr6r1QveG/VQkSVdecYV6wmJ/nzzR46Q3c7Ez3ZBnLpboSDmyK7gKIeGlHSLmMwC
 YYt3Fnj1XF/UgPs+daCiF/yxz3v7lsDicl8wKYQgpKU/jDj8dfQ/ntM5p3s0tc5O
 JaiWeDGQQRgbyE9g3enqW0vho/6luxI0MIOwcSnCLidsM6oAQowbmtzXDpmwagiR
 Xyi0eLzSHSCOmH41VNphDZzlL61C6yCLavNpCvCxv/bElTX7XXynwiw3+i8FiU14
 TQabyv0z0yd3pVCYp88TFf9cDe7uQ8MS6NG5CoYP3RXHJ1pDEy3a8yBBc1dp2Tc=
 =a+lu
 -----END PGP SIGNATURE-----

Merge tag 'wireless-drivers-2021-01-26' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers

Kalle Valo says:

====================
wireless-drivers fixes for v5.11

Second set of fixes for v5.11. Like in last time we again have more
fixes than usual Actually a bit too much for my liking in this state
of the cycle, but due to unrelated challenges I was only able to
submit them now.

We have few important crash fixes, iwlwifi modifying read-only data
being the most reported issue, and also smaller fixes to iwlwifi.

mt76
 * fix a clang warning about enum usage
 * fix rx buffer refcounting crash

mt7601u
 * fix rx buffer refcounting crash
 * fix crash when unbplugging the device

iwlwifi
 * fix a crash where we were modifying read-only firmware data
 * lots of smaller fixes all over the driver

* tag 'wireless-drivers-2021-01-26' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers: (24 commits)
  mt7601u: fix kernel crash unplugging the device
  iwlwifi: queue: bail out on invalid freeing
  iwlwifi: mvm: guard against device removal in reprobe
  iwlwifi: Fix IWL_SUBDEVICE_NO_160 macro to use the correct bit.
  iwlwifi: mvm: clear IN_D3 after wowlan status cmd
  iwlwifi: pcie: add rules to match Qu with Hr2
  iwlwifi: mvm: invalidate IDs of internal stations at mvm start
  iwlwifi: mvm: fix the return type for DSM functions 1 and 2
  iwlwifi: pcie: reschedule in long-running memory reads
  iwlwifi: pcie: use jiffies for memory read spin time limit
  iwlwifi: pcie: fix context info memory leak
  iwlwifi: pcie: add a NULL check in iwl_pcie_txq_unmap
  iwlwifi: pcie: set LTR on more devices
  iwlwifi: queue: don't crash if txq->entries is NULL
  iwlwifi: fix the NMI flow for old devices
  iwlwifi: pnvm: don't try to load after failures
  iwlwifi: pnvm: don't skip everything when not reloading
  iwlwifi: pcie: avoid potential PNVM leaks
  iwlwifi: mvm: take mutex for calling iwl_mvm_get_sync_time()
  iwlwifi: mvm: skip power command when unbinding vif during CSA
  ...
====================

Link: https://lore.kernel.org/r/20210126092202.6A367C433CA@smtp.codeaurora.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-01-26 15:16:40 -08:00
Eric Dumazet
81a86e1bd8 iwlwifi: provide gso_type to GSO packets
net/core/tso.c got recent support for USO, and this broke iwlfifi
because the driver implemented a limited form of GSO.

Providing ->gso_type allows for skb_is_gso_tcp() to provide
a correct result.

Fixes: 3d5b459ba0 ("net: tso: add UDP segmentation support")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Ben Greear <greearb@candelatech.com>
Tested-by: Ben Greear <greearb@candelatech.com>
Cc: Luca Coelho <luciano.coelho@intel.com>
Cc: Johannes Berg <johannes@sipsolutions.net>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=209913
Link: https://lore.kernel.org/r/20210125150949.619309-1-eric.dumazet@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-01-26 15:13:49 -08:00
Sowjanya Komatineni
ad338c2d69 arm64: tegra: Enable QSPI on Jetson Xavier NX
This patch enables QSPI on Jetson Xavier NX.

Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2021-01-27 00:11:51 +01:00
Sowjanya Komatineni
96ded827a2 arm64: tegra: Add QSPI nodes on Tegra194
Tegra194 has 2 QSPI controllers.

This patch adds DT node for these 2 QSPI controllers.

Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2021-01-27 00:11:50 +01:00
Sowjanya Komatineni
07910a79fc arm64: tegra: Enable QSPI on Jetson Nano
This patch enables QSPI on Jetson Nano.

Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2021-01-27 00:11:50 +01:00
Sameer Pujar
b0b4e286f9 arm64: tegra: Audio graph sound card for Jetson Nano and TX1
Enable support for audio-graph based sound card on Jetson-Nano and
Jetson-TX1. Depending on the platform, required I/O interfaces are
enabled.

 * Jetson-Nano: Enable I2S3, I2S4, DMIC1 and DMIC2.
 * Jetson-TX1: Enable all I2S and DMIC interfaces.

Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2021-01-27 00:11:49 +01:00
Sameer Pujar
f5208672eb arm64: tegra: Audio graph header for Tegra210
Expose a header which describes DT bindings required to use audio-graph
based sound card. All Tegra210 based platforms can include this header
and add platform specific information. Currently, from SoC point of view,
all links are exposed for ADMAIF, AHUB, I2S and DMIC components.

Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2021-01-27 00:11:49 +01:00
Thierry Reding
38254d1976 arm64: tegra: Order nodes alphabetically on Tegra210
Device tree nodes are ordered by unit-address and alphabetically by name
if a node doesn't have a unit-address. The thermal sensor and timer
nodes were not sorted in the correct order, so do that now.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2021-01-27 00:11:48 +01:00
JC Kuo
40b4d824ad arm64: tegra: Enable Jetson-Xavier J512 USB host
This commit enables USB host mode at J512 type-C port of Jetson-Xavier.

Signed-off-by: JC Kuo <jckuo@nvidia.com>
Acked-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2021-01-27 00:11:48 +01:00
JC Kuo
4ff5e30d8b arm64: tegra: Add XUSB pad controller's "nvidia,pmc" property on Tegra210
PMC driver provides USB sleepwalk registers access to XUSB PADCTL
driver. This commit adds a "nvidia,pmc" property which points to
PMC node to XUSB PADCTL device node.

Signed-off-by: JC Kuo <jckuo@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2021-01-27 00:11:48 +01:00
Sameer Pujar
1e0ca54674 arm64: tegra: Add power-domain for Tegra210 HDA
HDA initialization is failing occasionally on Tegra210 and following
print is observed in the boot log. Because of this probe() fails and
no sound card is registered.

  [16.800802] tegra-hda 70030000.hda: no codecs found!

Codecs request a state change and enumeration by the controller. In
failure cases this does not seem to happen as STATETS register reads 0.

The problem seems to be related to the HDA codec dependency on SOR
power domain. If it is gated during HDA probe then the failure is
observed. Building Tegra HDA driver into kernel image avoids this
failure but does not completely address the dependency part. Fix this
problem by adding 'power-domains' DT property for Tegra210 HDA. Note
that Tegra186 and Tegra194 HDA do this already.

Fixes: 742af7e7a0 ("arm64: tegra: Add Tegra210 support")
Depends-on: 96d1f078ff ("arm64: tegra: Add SOR power-domain for Tegra210")
Cc: <stable@vger.kernel.org>
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Acked-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2021-01-27 00:11:47 +01:00
Thierry Reding
0f08a54083 Merge branch 'for-5.12/dt-bindings' into for-5.12/arm64/dt 2021-01-27 00:11:35 +01:00
Sowjanya Komatineni
8889398633 dt-bindings: clock: tegra: Add clock ID TEGRA210_CLK_QSPI_PM
Tegra210 QSPI clock output has divider DIV2_SEL which will be enabled
when using DDR interface mode.

This patch adds clock ID for this to dt-binding.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2021-01-27 00:10:14 +01:00
Arnd Bergmann
8bd99a058f Samsung SoC drivers changes for v5.12
1. Adjust deferred probe and handle regmap_read() errors in Exynos ASV
    driver.
 2. Convert the ChipID code into a driver (from a early initcall) and
    merge it into the Exynos ASV.
 3. Convert the PM domains code into a driver. This is necessary for
    upcoming code enabling fw_devlinks.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmAPBrAQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD1zT9D/9L5YVx+1nhpW8BeVW5UfUpF5FLat0UwKKa
 5JJHf3BHPQekb4INc4cFBVgjwpF81CgNwAKKQ5fbLATk/OLajdNRmtDixsGmRwGN
 Sv86UBv68XoVZewLq/7OUqPDl/srOTcebztoGINaqmZRyf3SANJ2pz+J8gp+yNQU
 kVLNlf5DKuao9b8AVYpX5z9xWqYJo6u+lPm1i46HjC+QKbSPoZV1KpzTxzOW4JKa
 AhUCegr6MIkLqykBRiJhdA6ZG3Y0JBc4Nwo0y05wYfQVCaMvRDo3/WmYkcLI8Ugo
 azeKEs/6835tkRxyeS7Ah7+TivzsAbLj2pkfOouC41EOZ7AmUzIHfJttbHFAcyVl
 Wgkn76Yjf4cnGo0QiRZNTE9P18MwlFzErYeb2MUP9bWc4ms6DyXMLr1Gflt/x2WF
 UB/z3hrd9SSqyTLtzuu8apOg3cp1/hITPn5DRb8ODkckZLJrsTBzUt2xtnSrH8Cp
 1nJGInBG0QsNLID5Jk2yqxzdLqUn4URCYYVlHS/VCPoLXPycWzdbBgqons1adQDf
 DsJFOxq3w1JOiQ/+UEJ3SUnZOy2cYi1k3FkUfj0+y+lKyTQDL6CpcNW2poWV3v/K
 FolD2RJ5KdZl2/UOS41QrNmaAZpXdkER30ieiEDd3STwY+mBMgCsPxJ9Q0NLuwAH
 EvkXvFgoeg==
 =bA9r
 -----END PGP SIGNATURE-----

Merge tag 'samsung-drivers-5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/soc

Samsung SoC drivers changes for v5.12

1. Adjust deferred probe and handle regmap_read() errors in Exynos ASV
   driver.
2. Convert the ChipID code into a driver (from a early initcall) and
   merge it into the Exynos ASV.
3. Convert the PM domains code into a driver. This is necessary for
   upcoming code enabling fw_devlinks.

* tag 'samsung-drivers-5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  soc: samsung: pm_domains: Convert to regular platform driver
  soc: samsung: exynos-chipid: correct helpers __init annotation
  soc: samsung: exynos-chipid: convert to driver and merge exynos-asv
  soc: samsung: exynos-asv: handle reading revision register error
  soc: samsung: exynos-asv: don't defer early on not-supported SoCs

Link: https://lore.kernel.org/r/20210125191240.11278-2-krzk@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-01-26 23:57:54 +01:00
Quentin Monnet
150a27328b bpf, preload: Fix build when $(O) points to a relative path
Building the kernel with CONFIG_BPF_PRELOAD, and by providing a relative
path for the output directory, may fail with the following error:

  $ make O=build bindeb-pkg
  ...
  /.../linux/tools/scripts/Makefile.include:5: *** O=build does not exist.  Stop.
  make[7]: *** [/.../linux/kernel/bpf/preload/Makefile:9: kernel/bpf/preload/libbpf.a] Error 2
  make[6]: *** [/.../linux/scripts/Makefile.build:500: kernel/bpf/preload] Error 2
  make[5]: *** [/.../linux/scripts/Makefile.build:500: kernel/bpf] Error 2
  make[4]: *** [/.../linux/Makefile:1799: kernel] Error 2
  make[4]: *** Waiting for unfinished jobs....

In the case above, for the "bindeb-pkg" target, the error is produced by
the "dummy" check in Makefile.include, called from libbpf's Makefile.
This check changes directory to $(PWD) before checking for the existence
of $(O). But at this step we have $(PWD) pointing to "/.../linux/build",
and $(O) pointing to "build". So the Makefile.include tries in fact to
assert the existence of a directory named "/.../linux/build/build",
which does not exist.

Note that the error does not occur for all make targets and
architectures combinations. This was observed on x86 for "bindeb-pkg",
or for a regular build for UML [0].

Here are some details. The root Makefile recursively calls itself once,
after changing directory to $(O). The content for the variable $(PWD) is
preserved across recursive calls to make, so it is unchanged at this
step. For "bindeb-pkg", $(PWD) is eventually updated because the target
writes a new Makefile (as debian/rules) and calls it indirectly through
dpkg-buildpackage. This script does not preserve $(PWD), which is reset
to the current working directory when the target in debian/rules is
called.

Although not investigated, it seems likely that something similar causes
UML to change its value for $(PWD).

Non-trivial fixes could be to remove the use of $(PWD) from the "dummy"
check, or to make sure that $(PWD) and $(O) are preserved or updated to
always play well and form a valid $(PWD)/$(O) path across the different
targets and architectures. Instead, we take a simpler approach and just
update $(O) when calling libbpf's Makefile, so it points to an absolute
path which should always resolve for the "dummy" check run (through
includes) by that Makefile.

David Gow previously posted a slightly different version of this patch
as a RFC [0], two months ago or so.

  [0] https://lore.kernel.org/bpf/20201119085022.3606135-1-davidgow@google.com/t/#u

Fixes: d71fa5c976 ("bpf: Add kernel module with user mode driver that populates bpffs.")
Reported-by: David Gow <davidgow@google.com>
Signed-off-by: Quentin Monnet <quentin@isovalent.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Cc: Brendan Higgins <brendanhiggins@google.com>
Cc: Masahiro Yamada <masahiroy@kernel.org>
Link: https://lore.kernel.org/bpf/20210126161320.24561-1-quentin@isovalent.com
2021-01-26 23:13:25 +01:00
Arnd Bergmann
1f99bd1a51 Samsung DTS ARM64 changes for v5.12
Correct Samsung PMIC and S3FWRN5 NFC interrupts trigger levels on
 TM2/TM2E and Espresso boards.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmAPBUwQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD19xPEACX14MjDi/YglhTj+tAQh8dtovyXoR7F+hY
 Fa3fZjUYZ7YMVlngm/dJTCT9i4lmjVQrFidhmx3oNO0LETNU8q0bUT4DevpKCf7J
 Im8hZcSNnIobgpfmiuy45wftgCjOBf4aKF6jUPmyhrPzDQ086udV8np5aGaT8Z2b
 s9Mlke1a3SYvJi5zsVD0un6pGdBwn+sBZwevAeitTj5qlv0nqOCMkbC58XGOgrig
 U+XfMnLowrxiemtDnlCbVz6YyYDPV6GnAEgyLYyQu/ftkRg4LHPUxT+6Z5mYPnZg
 xvFGyINdmb/5ABSOx+QjRv99piyJILqQ6skfcWwgAeUxNhoXCAXdVLitFfUIgKgF
 gsMR7jWQEsjGaQNTfpuhOxgU3bZl9mr0vVdyJrYfEg8R+ht1IBAF7y1zRyBi9Cgk
 t10OtHksjLsKT72Wv68nBYfPU04w/wuLrab10t5k/cZuVX0d0lLT1DT7+ziSPNvg
 A1WC6I/Ez/m+yYx3AE9IqqRMSTdPqRFcHQ+Xu/dcOFgNDkjs/ulutKDcXfHD0CER
 QjLrCDVHDYwoKWfUbd+As1ufwCZsBNybNiqR9MaXTo2hbKU1G9iJJhYnH55hfQo8
 +C7weMwFDxsjLl/N4aDwuy7nC89MXz/7rj6vbJ+LtCr9lHxEpsAz/X517/edEGIC
 d+UbWfKNgg==
 =PJA4
 -----END PGP SIGNATURE-----

Merge tag 'samsung-dt64-5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/dt

Samsung DTS ARM64 changes for v5.12

Correct Samsung PMIC and S3FWRN5 NFC interrupts trigger levels on
TM2/TM2E and Espresso boards.

* tag 'samsung-dt64-5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  arm64: dts: exynos: correct S3FWRN5 NFC interrupt trigger level on TM2
  arm64: dts: exynos: correct PMIC interrupt trigger level on Espresso
  arm64: dts: exynos: correct PMIC interrupt trigger level on TM2

Link: https://lore.kernel.org/r/20210125191240.11278-4-krzk@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-01-26 23:13:07 +01:00
Corinna Vinschen
329a3678ec igc: fix link speed advertising
Link speed advertising in igc has two problems:

- When setting the advertisement via ethtool, the link speed is converted
  to the legacy 32 bit representation for the intel PHY code.
  This inadvertently drops ETHTOOL_LINK_MODE_2500baseT_Full_BIT (being
  beyond bit 31).  As a result, any call to `ethtool -s ...' drops the
  2500Mbit/s link speed from the PHY settings.  Only reloading the driver
  alleviates that problem.

  Fix this by converting the ETHTOOL_LINK_MODE_2500baseT_Full_BIT to the
  Intel PHY ADVERTISE_2500_FULL bit explicitly.

- Rather than checking the actual PHY setting, the .get_link_ksettings
  function always fills link_modes.advertising with all link speeds
  the device is capable of.

  Fix this by checking the PHY autoneg_advertised settings and report
  only the actually advertised speeds up to ethtool.

Fixes: 8c5ad0dae9 ("igc: Add ethtool support")
Signed-off-by: Corinna Vinschen <vinschen@redhat.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2021-01-26 13:39:26 -08:00
Johannes Berg
7f3414226b um: time: fix initialization in time-travel mode
In time-travel mode, since my previous patch, the start time was
initialized too late, so that the system would read it before we
set it, thus always starting system time at 0 (1970-01-01). This
happens because timekeeping_init() reads the time and is called
before time_init().

Unfortunately, I didn't see this before because I was testing it
only with the RTC patch applied (and enabled), and then the time
is read again by the RTC a little - after time_init() this time.

Fix this by just doing the initialization whenever necessary.

Fixes: 2701c1bd91 ("um: time: Fix read_persistent_clock64() in time-travel")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
2021-01-26 22:11:38 +01:00
Johannes Berg
9868c2081d um: fix os_idle_sleep() to not hang
Changing os_idle_sleep() to use pause() (I accidentally described
it as an empty select() in the commit log because I had changed it
from that to pause() in a later revision) exposed a race condition
in the idle code. The following can happen:

 timer_settime(0, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=624017}}, NULL) = 0
 ...
 <SIGALRM is delivered but we're already on the way to idle>
 pause()

and we now hang forever. This was previously possible as well, but
it could never cause UML to hang for more than a second since we
could only sleep for that much, so at most you'd notice a "hiccup"
in the UML. Obviously, any sort of external interrupt also "saves"
it and interrupts pause().

Fix this by properly handling the race, rather than papering over
it again:

 - first, block SIGALRM, and obtain the old signal set
 - check the timer
 - suspend, waiting for any signal out of the old set, if, and only
   if, the timer will fire in the future
 - restore the old signal mask

This ensures race-free operation: as it's blocked, the signal won't
be delivered while we're looking at the timer even if it were to be
triggered right _after_ we've returned from timer_gettime() with a
non-zero value (telling us the timer will trigger). Thus, despite
getting to sigsuspend() because timer_gettime() told us we're still
waiting, we'll not hang because sigsuspend() will return immediately
due to the pending signal.

Fixes: 49da38a3ef ("um: Simplify os_idle_sleep() and sleep longer")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Acked-By: Anton Ivanov <anton.ivanov@cambridgegreys.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
2021-01-26 22:11:38 +01:00
Johannes Berg
a31e9c4e72 Revert "um: support some of ARCH_HAS_SET_MEMORY"
This reverts commit 963285b0b4 ("um: support some of
ARCH_HAS_SET_MEMORY"), as it turns out that it's not only not
working (due to um never using the protection bits in the
page tables) but also corrupts the page tables if used on a
non-vmalloc page, since um never allocates proper page tables
for the 'physmem' in the first place.

Fixing all this will take more effort, so for now revert it.

Reported-by: Benjamin Berg <benjamin@sipsolutions.net>
Fixes: 963285b0b4 ("um: support some of ARCH_HAS_SET_MEMORY")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
2021-01-26 22:11:38 +01:00
Johannes Berg
2fcb4090cd Revert "um: allocate a guard page to helper threads"
This reverts commit ef4459a6da ("um: allocate a guard page to
helper threads"), it's broken in multiple ways:

 1) the free no longer matches the alloc; and

 2) more importantly, the set_memory_ro() causes allocation of
    page tables for the normal memory that doesn't have any,
    and that later causes corruption and crashes (usually but
    not always in vfree()).

We could fix the first bug and use vmalloc() to work around the
second, but set_memory_ro() actually doesn't do anything either
so I'll just revert that as well.

Reported-by: Benjamin Berg <benjamin@sipsolutions.net>
Fixes: ef4459a6da ("um: allocate a guard page to helper threads")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
2021-01-26 22:11:38 +01:00
Johannes Berg
f4172b0843 um: virtio: free vu_dev only with the contained struct device
Since struct device is refcounted, we shouldn't free the vu_dev
immediately when it's removed from the platform device, but only
when the references actually all go away. Move the freeing to
the release to accomplish that.

Fixes: 5d38f32499 ("um: drivers: Add virtio vhost-user driver")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
2021-01-26 22:11:38 +01:00
Thomas Meyer
e23fe90dec um: kmsg_dumper: always dump when not tty console
With the addition of the ttynull console driver, the chance that a
console driver was already registerd did increase. Refine the logic when
to dump the kernel message buffer: always dump the buffer, when the UML
stdio console driver is not active and the preferred console.

Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
Signed-off-by: Richard Weinberger <richard@nod.at>
2021-01-26 22:11:37 +01:00
Thomas Meyer
d7ffac3363 um: stdio_console: Make preferred console
The addition of the "ttynull" console driver did break the ordering of the
UML stdio console driver.
The UML stdio console driver is added in late_initcall (7), whereby the
ttynull driver is added in device_initcall (6), which always does make the
ttynull driver the default console.

Fix it by explicitly adding the UML stdio console as the preferred console,
in case no 'console=' command line option was specified.

Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
Signed-off-by: Richard Weinberger <richard@nod.at>
2021-01-26 22:11:37 +01:00
Johannes Berg
1cdcfb4437 um: return error from ioremap()
Back a few years ago, ioremap() was added to UML so that we'd
not break the build for everything all the time. However, for
some reason, v1 of the patch got applied, rather than the v2
that returned NULL, which was discussed here:

https://lore.kernel.org/lkml/1495726955-27497-1-git-send-email-logang@deltatee.com/

Fix that now.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Richard Weinberger <richard@nod.at>
2021-01-26 22:11:37 +01:00
Hajime Tazaki
94c41b3a7c um: ubd: fix command line handling of ubd
This commit fixes a regression to handle command line parameters of ubd.
With a simple line "./linux ubd0="./disk-ext4.img", it fails at
ubd_setup_common().  The commit adds additional checks to the variables
in order to properly parse the paremeters which previously worked.

Fixes: ef3ba87cb7 ("um: ubd: Set device serial attribute from cmdline")
Cc: Christopher Obbard <chris.obbard@collabora.com>
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
Acked-by: Christopher Obbard <chris.obbard@collabora.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
2021-01-26 22:10:44 +01:00
Arnd Bergmann
082153866e Qualcomm ARM64 defconfig fixes for v5.11
Devicetree patches for SDM845 introduced in v5.11 requires the
 platform's interconnect driver to be buildin, or the kernel will fail to
 provide a valid console when we hit userspace.
 -----BEGIN PGP SIGNATURE-----
 
 iQJPBAABCAA5FiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmAPUuUbHGJqb3JuLmFu
 ZGVyc3NvbkBsaW5hcm8ub3JnAAoJEAsfOT8Nma3F3KwQALq+CGxYAVMBetKh+gd/
 sRT85tPbePi8km6SUddibD3zxVcSAj38bAJZjhqHMTQer3AAwoZw3GQ5b/OSoxTZ
 4HD6hmWJZTwUG15QBiNvMrhdb+JOUl8kRZwlrpBuAsJhI9AlCEhAt4RCkT194iHA
 9DCPjj2/CLkewhep2RN8KAUOrvkS29TngQGUGt+xBDyZ4sbHRxcBqon/zCULdXz/
 nOoihuOika8TJ8/oZL3byLlyN55UcwHrzhd2t+hkLLGt9odctpdInx/ZAnWo8ZLl
 RcI5uNzo47qvf6dEuygAcW2YD06FiO9CeRBRl4+8SQJfaOfIjo9CxnDmxY7H4EHT
 G+BOvtFqh3UP8ocReHEVyApySqhokAT3Z09Rp9haquJD73PstiUge+aeYRjMoA2t
 tsaJoMMxHv5qpTmTPemGht13DlWHlmql6g/c0dMv644/Tx17+z230B3xZxduYoe5
 Y75C+XLII017H84cLA7ZeoEXEKw0hFN9tiT0ZZH5KY5FRV9FrMd/E8nY4kezaDqc
 AFtrvkBQhtnU47XZgAnVgigwRv6D1YdcvKEX5M2HVqViqvvls6Kf8Dhiqw8gRggX
 WCi4mCJWIfVcI9MO9tQ2C2EWB4BNdRgzFgQEYbwgflv7WEg5x06i3tjGc8rSGo8W
 7saIHrESM6slDv/aGD5HDVcX
 =DQAs
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-defconfig-fixes-for-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes

Qualcomm ARM64 defconfig fixes for v5.11

Devicetree patches for SDM845 introduced in v5.11 requires the
platform's interconnect driver to be buildin, or the kernel will fail to
provide a valid console when we hit userspace.

* tag 'qcom-arm64-defconfig-fixes-for-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm64: defconfig: Make INTERCONNECT_QCOM_SDM845 builtin

Link: https://lore.kernel.org/r/20210125232412.642834-1-bjorn.andersson@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-01-26 21:24:35 +01:00
Arnd Bergmann
3de834b292 Qualcomm ARM64 fixes for 5.11
This fixes a regression in Lenovo Yoga C630, where the touchpad in some
 units stopped working, by re-enabling the "tsc2" device.
 
 It also marks the LPASS related clocks as protected to allow DB845c and
 the Lenovo Yoga C630 to boot even if CONFIG_SDM_LPASSCC_845 is enabled.
 -----BEGIN PGP SIGNATURE-----
 
 iQJPBAABCAA5FiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmAPUbIbHGJqb3JuLmFu
 ZGVyc3NvbkBsaW5hcm8ub3JnAAoJEAsfOT8Nma3FKqMQAJiSDNHLxYs9MsenWJe4
 DOdJia2nWLBLcs7JNMk2Of+DisNKxqfa0qWClVCQSLd2s2fymCPtTCBtE0eaVhAd
 i7AcOyjnohyanKbwjfjbCRR3mLcuK5xRyQBIperTholtK0d5TnG78sGA/Xadcre9
 zflJ5aF7UshLTj1AVy+B35LG3diNQevzZaKMGlVViR7Z6F4dps4duPT3hZETjXWD
 3JWBki/poko9pN8X2H90g1yVmdr1azS2/8zjMtEhCOX5d+O/az6wPr8m5qpFCYDm
 jZQ2238MjLcwyxYOtIhNQjC569RbQowE3yFVPzL5KJ89khsoZk/ypzWeTdgrxCzz
 5TfFUUHlautQBKED3DBTmmn95duJV+wXkzz5RgE0RWv8x0Srn/mgmgnZNjY6CE2b
 u0s3tyrq23guAN3aPYzAu1nN2MAwM+1NnHzQEk7Xr740YE8B7CvK34jBtfFAQsgL
 iVA7FbkXBwacb3BojmHj29XdaMUqSLRSNhMiBns+Xcf6ap28w4mOmhGnZJpqhz2r
 guW4Hla2qhiXL5wmyCNY4x/aMfzVl9aNB+ETFdKrfRNAeRzKfr1/8h4BCW4BThZE
 JlRJFuSGOfVT4Sa/u7M/+HbWKeEbcGhi6Q/YxSO0Xb0MvOUPbJimxohm+TDurS8F
 MIP8XGa1AGi73r/L0wMgFRA0
 =E0WN
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-fixes-for-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes

Qualcomm ARM64 fixes for 5.11

This fixes a regression in Lenovo Yoga C630, where the touchpad in some
units stopped working, by re-enabling the "tsc2" device.

It also marks the LPASS related clocks as protected to allow DB845c and
the Lenovo Yoga C630 to boot even if CONFIG_SDM_LPASSCC_845 is enabled.

* tag 'qcom-arm64-fixes-for-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm64: dts: qcom: sdm845: Reserve LPASS clocks in gcc
  arm64: dts: qcom: c630: keep both touchpad devices enabled

Link: https://lore.kernel.org/r/20210125232039.642565-1-bjorn.andersson@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-01-26 21:23:59 +01:00
Arnd Bergmann
c25644d5db arm64: dts: amlogic: fixes for v5.11-rc
- meson-g12: Set FL-adj property value
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAmAPDEoACgkQWTcYmtP7
 xmV9/A//RQlZjlyWnqFalGwScJBs7yZtZyfXmD4spuwuouDFWyIg6TmI5W0FFrSX
 ZxT4xKoslYnf1J7Vv604q/JZ17ROIlKZPyFpGrMGAw4RvxMdolNh14NldY9Y0yml
 BAcPytN1vBqZxrDq9uGyYH82fr6MTbKb59smP70sny97I9wzY5Tg4kfz3N+P6859
 gQQnNpV+YOIwrRuylMDFKlF1A2XlGDP52oNJPAKhAlYJZtzfPvRsYwexH4Wbuyr0
 CbWUeIA7KAyqrSo2g0jd6xXRVplsoQZPccJX03oH/mWRjYBZlHlQVO6lMUsWwzyv
 lzc8CEkGt+BRtMDd3hIW+rvJdG9ltAsCON6Ee7XLB5x7Kru+zl7/Fnnp+qSHWnlu
 nCp2BsewtygfGbpqXLxVzb/6i+/+FfsOJQUrKn9/n7cZfRMiNb4iM6+4wYT+SmwV
 fFHvPxaW8vjxbD3p/4ZqSc8ZKjj1GvmN4dtyM6Adb9PS8FrCiL9femm30grzWZSN
 PLSh+6jelmhBlWHzNJglLYcbG16Bzur/bXYrgr43v3Nkg5vWLYES/oErlak+sx6u
 Fbgx87UFyNyTq5XgFCmgDiF59sxYoB3QncjYwS8jIMXPIm2HbX2yWMETiXRy35M6
 f6Ko/wxraCIBOZExXRl52LzgWYGpsRHVLr9Ip2YVOfS8RuMfoGM=
 =sLm2
 -----END PGP SIGNATURE-----

Merge tag 'amlogic-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/fixes

arm64: dts: amlogic: fixes for v5.11-rc
- meson-g12: Set FL-adj property value

* tag 'amlogic-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
  arm64: dts: amlogic: meson-g12: Set FL-adj property value

Link: https://lore.kernel.org/r/7hk0s0x3im.fsf@baylibre.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-01-26 21:23:36 +01:00
Arnd Bergmann
e6777b8d35 STM32 DT fixes for v5.11, round 1
Highlights:
 -----------
 
  -Fixes are for DHCOM/DHCOR boards:
   - Fix DRC02 uSD card detect polarity
   - use uSD card detect on DHCOM
   - Disable uSD WP on DHCOM
   - Disable TSC2004 on DRC02
   - Fix GPIO hogs on DHCOM boards
 -----BEGIN PGP SIGNATURE-----
 
 iQJRBAABCgA7FiEEctl9+nxzUSUqdELdf5rJavIecIUFAmAO7mcdHGFsZXhhbmRy
 ZS50b3JndWVAZm9zcy5zdC5jb20ACgkQf5rJavIecIWbQQ/+KmDtTdNUFeEuIMK0
 8iW8MtfAl/0OH6AsE4bPXXtaxFAJzrBaZ8eu9JjazDHPOU783i6God2idySVN0cx
 qKf5FAEea4UyXn4aJlldVX3Fx0YJm+o3Tc47JAd/foLANxXsRbmy9nzIWywHEudL
 s2cpokVE7V4s3965PZk67luENXfA2+6EtCtVK9+0TrDW82CBwKqO7SEZPau9b+dV
 q2/Q7dbsOazO66O/BpteefXhl6ONAua6I3enIt6qYfuyG4nxUzAVjfDof/yvRNLM
 +GCa5mwVAQFrbe/Yj95ENATdCK7JGUcncyxSCjzhWRYtShycVcOj+BwVXyxQbE0D
 R8vq6wqFanWqnkflmAMpjY5rM8diQfKdbllDC6Zm+w7JjlJsALNJGeiQUl0vNx8N
 XVnHPqxw/R30Jp7O9h7t8ifr17wLb+Q6k3/Z9uYiyGrbWjH6WaZ23yDFy50v6Fh/
 PsnvCaCsCzn35bB7LWgYrcoDyeldphBVLYjAWE2EFRFt7VIbLEeQG0gjQ4upe2gV
 GOXbDGJTDCRXX3xZOEqrrZnN+34690Jh5mqWl5eL9SWe146JDu0O+mupwgnUGCnJ
 ED+cG47RY0kpx3xBhr/5D0lvL2yul4Aep4c9RZlE4qH+Tc3YiVlGcOSHGlHrzDyL
 +R+XztorpO9c6yGMgQbj02grLTA=
 =5bKf
 -----END PGP SIGNATURE-----

Merge tag 'stm32-dt-for-v5.11-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into arm/fixes

STM32 DT fixes for v5.11, round 1

Highlights:
-----------

 -Fixes are for DHCOM/DHCOR boards:
  - Fix DRC02 uSD card detect polarity
  - use uSD card detect on DHCOM
  - Disable uSD WP on DHCOM
  - Disable TSC2004 on DRC02
  - Fix GPIO hogs on DHCOM boards

* tag 'stm32-dt-for-v5.11-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32:
  ARM: dts: stm32: Fix GPIO hog flags on DHCOM DRC02
  ARM: dts: stm32: Fix GPIO hog flags on DHCOM PicoITX
  ARM: dts: stm32: Fix GPIO hog names on DHCOM
  ARM: dts: stm32: Disable optional TSC2004 on DRC02 board
  ARM: dts: stm32: Disable WP on DHCOM uSD slot
  ARM: dts: stm32: Connect card-detect signal on DHCOM
  ARM: dts: stm32: Fix polarity of the DH DRC02 uSD card detect

Link: https://lore.kernel.org/r/b7379980-857e-736a-85d8-58e2bd300141@foss.st.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-01-26 21:23:02 +01:00
Yang Li
9abe47cc5c rsxx: remove redundant NULL check
Fix below warnings reported by coccicheck:
./drivers/block/rsxx/dma.c:948:3-8: WARNING: NULL check
before some freeing functions is not needed.

Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Signed-off-by: Yang Li <abaci-bugfix@linux.alibaba.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-01-26 13:15:41 -07:00
Chunguang Xu
49d1822bc0 blkcg: delete redundant get/put operations for queue
When calling blkcg_schedule_throttle(), for the same queue,
redundant get/put operations can be removed.

Signed-off-by: Chunguang Xu <brookxu@tencent.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-01-26 13:14:30 -07:00
Christoph Hellwig
2c2b9fd6b4 block: unexport truncate_bdev_range
truncate_bdev_range is only used in always built-in block layer code,
so remove the export and the !CONFIG_BLOCK stub.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-01-26 13:14:03 -07:00
Lei Chen
482e302a61 blk: wbt: remove unused parameter from wbt_should_throttle
The first parameter rwb is not used for this function.
So just remove it.

Signed-off-by: Lei Chen <lennychen@tencent.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-01-26 13:13:00 -07:00
Tian Tao
294ed6b9f0 zram: fix NULL check before some freeing functions is not needed
fixed the below warning:
/drivers/block/zram/zram_drv.c:534:2-8: WARNING: NULL check
before some freeing functions is not needed.

Signed-off-by: Tian Tao <tiantao6@hisilicon.com>
Acked-by: Minchan Kim <minchan@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-01-26 13:12:08 -07:00
Guoqing Jiang
370276bac8 drbd: remove unused argument from drbd_request_prepare and __drbd_make_request
We can remove start_jif since it is not used by drbd_request_prepare,
then remove it from __drbd_make_request further.

Cc: Philipp Reisner <philipp.reisner@linbit.com>
Cc: Lars Ellenberg <lars.ellenberg@linbit.com>
Cc: drbd-dev@lists.linbit.com
Signed-off-by: Guoqing Jiang <guoqing.jiang@cloud.ionos.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-01-26 13:11:34 -07:00
Bjorn Helgaas
2126979183 mtip32xx: prefer pcie_capability_read_word()
Replace pci_read_config_word() with pcie_capability_read_word().

pcie_capability_read_word() takes care of a few special cases when reading
the PCIe capability.  See 8c0d3a02c1 ("PCI: Add accessors for PCI Express
Capability").

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-01-26 13:09:39 -07:00
Bjorn Helgaas
416c054777 mtip32xx: use PCI #defines instead of numbers
Use PCI #defines for PCIe Device Control register values instead of
hard-coding bit positions.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-01-26 13:09:37 -07:00