public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel•org>
To: linux-kernel@vger•kernel.org, stable@vger•kernel.org
Cc: Danielle Ratson <danieller@nvidia•com>,
	Eric Biederman <ebiederm@xmission•com>,
	Ido Schimmel <idosch@nvidia•com>,
	"David S . Miller" <davem@davemloft•net>,
	Sasha Levin <sashal@kernel•org>,
	petrm@nvidia•com, kuba@kernel•org, netdev@vger•kernel.org
Subject: [PATCH AUTOSEL 5.16 063/217] mlxsw: pci: Add shutdown method in PCI driver
Date: Mon, 17 Jan 2022 21:17:06 -0500	[thread overview]
Message-ID: <20220118021940.1942199-63-sashal@kernel.org> (raw)
In-Reply-To: <20220118021940.1942199-1-sashal@kernel.org>

From: Danielle Ratson <danieller@nvidia•com>

[ Upstream commit c1020d3cf4752f61a6a413f632ea2ce2370e150d ]

On an arm64 platform with the Spectrum ASIC, after loading and executing
a new kernel via kexec, the following trace [1] is observed. This seems
to be caused by the fact that the device is not properly shutdown before
executing the new kernel.

Fix this by implementing a shutdown method which mirrors the remove
method, as recommended by the kexec maintainer [2][3].

[1]
BUG: Bad page state in process devlink pfn:22f73d
page:fffffe00089dcf40 refcount:-1 mapcount:0 mapping:0000000000000000 index:0x0
flags: 0x2ffff00000000000()
raw: 2ffff00000000000 0000000000000000 ffffffff089d0201 0000000000000000
raw: 0000000000000000 0000000000000000 ffffffffffffffff 0000000000000000
page dumped because: nonzero _refcount
Modules linked in:
CPU: 1 PID: 16346 Comm: devlink Tainted: G B 5.8.0-rc6-custom-273020-gac6b365b1bf5 #44
Hardware name: Marvell Armada 7040 TX4810M (DT)
Call trace:
 dump_backtrace+0x0/0x1d0
 show_stack+0x1c/0x28
 dump_stack+0xbc/0x118
 bad_page+0xcc/0xf8
 check_free_page_bad+0x80/0x88
 __free_pages_ok+0x3f8/0x418
 __free_pages+0x38/0x60
 kmem_freepages+0x200/0x2a8
 slab_destroy+0x28/0x68
 slabs_destroy+0x60/0x90
 ___cache_free+0x1b4/0x358
 kfree+0xc0/0x1d0
 skb_free_head+0x2c/0x38
 skb_release_data+0x110/0x1a0
 skb_release_all+0x2c/0x38
 consume_skb+0x38/0x130
 __dev_kfree_skb_any+0x44/0x50
 mlxsw_pci_rdq_fini+0x8c/0xb0
 mlxsw_pci_queue_fini.isra.0+0x28/0x58
 mlxsw_pci_queue_group_fini+0x58/0x88
 mlxsw_pci_aqs_fini+0x2c/0x60
 mlxsw_pci_fini+0x34/0x50
 mlxsw_core_bus_device_unregister+0x104/0x1d0
 mlxsw_devlink_core_bus_device_reload_down+0x2c/0x48
 devlink_reload+0x44/0x158
 devlink_nl_cmd_reload+0x270/0x290
 genl_rcv_msg+0x188/0x2f0
 netlink_rcv_skb+0x5c/0x118
 genl_rcv+0x3c/0x50
 netlink_unicast+0x1bc/0x278
 netlink_sendmsg+0x194/0x390
 __sys_sendto+0xe0/0x158
 __arm64_sys_sendto+0x2c/0x38
 el0_svc_common.constprop.0+0x70/0x168
 do_el0_svc+0x28/0x88
 el0_sync_handler+0x88/0x190
 el0_sync+0x140/0x180

[2]
https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1195432.html

[3]
https://patchwork.kernel.org/project/linux-scsi/patch/20170212214920.28866-1-anton@ozlabs.org/#20116693

Cc: Eric Biederman <ebiederm@xmission•com>
Signed-off-by: Danielle Ratson <danieller@nvidia•com>
Signed-off-by: Ido Schimmel <idosch@nvidia•com>
Signed-off-by: David S. Miller <davem@davemloft•net>
Signed-off-by: Sasha Levin <sashal@kernel•org>
---
 drivers/net/ethernet/mellanox/mlxsw/pci.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c
index a15c95a10bae4..cd3331a077bbf 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/pci.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c
@@ -1973,6 +1973,7 @@ int mlxsw_pci_driver_register(struct pci_driver *pci_driver)
 {
 	pci_driver->probe = mlxsw_pci_probe;
 	pci_driver->remove = mlxsw_pci_remove;
+	pci_driver->shutdown = mlxsw_pci_remove;
 	return pci_register_driver(pci_driver);
 }
 EXPORT_SYMBOL(mlxsw_pci_driver_register);
-- 
2.34.1


  parent reply	other threads:[~2022-01-18  2:26 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-18  2:16 [PATCH AUTOSEL 5.16 001/217] Bluetooth: hci_sock: purge socket queues in the destruct() callback Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 002/217] Bluetooth: Fix debugfs entry leak in hci_register_dev() Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 003/217] Bluetooth: Fix memory leak of hci device Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 005/217] Bluetooth: Fix removing adv when processing cmd complete Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 008/217] libbpf: Detect corrupted ELF symbols section Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 009/217] libbpf: Improve sanity checking during BTF fix up Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 010/217] libbpf: Validate that .BTF and .BTF.ext sections contain data Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 012/217] selftests/bpf: Fix memory leaks in btf_type_c_dump() helper Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 013/217] selftests/bpf: Destroy XDP link correctly Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 014/217] selftests/bpf: Fix bpf_object leak in skb_ctx selftest Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 015/217] ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 024/217] ath11k: enable IEEE80211_VHT_EXT_NSS_BW_CAPABLE if NSS ratio enabled Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 025/217] batman-adv: allow netlink usage in unprivileged containers Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 026/217] bpf: Change value of MAX_TAIL_CALL_CNT from 32 to 33 Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 028/217] ath11k: Fix crash caused by uninitialized TX ring Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 034/217] amd: lance: use eth_hw_addr_set() Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 035/217] amd: ni65: " Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 036/217] amd: a2065/ariadne: " Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 037/217] amd: hplance: " Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 038/217] amd: atarilance: " Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 039/217] amd: mvme147: " Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 040/217] 8390: smc-ultra: " Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 041/217] 8390: hydra: " Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 042/217] 8390: mac8390: " Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 043/217] 8390: wd: " Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 044/217] smc9194: " Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 045/217] lasi_82594: " Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 046/217] apple: macmace: " Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 047/217] cirrus: mac89x0: " Sasha Levin
2022-01-18 16:56   ` Jakub Kicinski
2022-01-22 18:51     ` Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 051/217] libbpf: Accommodate DWARF/compiler bug with duplicated structs Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 052/217] ethernet: renesas: Use div64_ul instead of do_div Sasha Levin
2022-01-18  2:16 ` [PATCH AUTOSEL 5.16 053/217] 82596: use eth_hw_addr_set() Sasha Levin
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 059/217] ath11k: Fix mon status ring rx tlv processing Sasha Levin
2022-01-18  2:17 ` Sasha Levin [this message]
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 074/217] rtw89: fix potentially access out of range of RF register array Sasha Levin
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 075/217] rtw88: add quirk to disable pci caps on HP 250 G7 Notebook PC Sasha Levin
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 076/217] mwifiex: Fix skb_over_panic in mwifiex_usb_recv() Sasha Levin
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 077/217] rsi: Fix use-after-free in rsi_rx_done_handler() Sasha Levin
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 078/217] rsi: Fix out-of-bounds read in rsi_read_pkt() Sasha Levin
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 079/217] ath11k: Avoid NULL ptr access during mgmt tx cleanup Sasha Levin
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 104/217] iwlwifi: mvm: synchronize with FW after multicast commands Sasha Levin
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 105/217] iwlwifi: mvm: avoid clearing a just saved session protection id Sasha Levin
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 106/217] iwlwifi: acpi: fix wgds rev 3 size Sasha Levin
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 108/217] net: dsa: ocelot: felix: Remove requirement for PCS in felix devices Sasha Levin
2022-01-18 12:23   ` Vladimir Oltean
2022-01-22 19:02     ` Sasha Levin
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 109/217] ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work Sasha Levin
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 110/217] ath10k: Fix tx hanging Sasha Levin
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 111/217] rtw89: don't kick off TX DMA if failed to write skb Sasha Levin
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 112/217] net-sysfs: update the queue counts in the unregistration path Sasha Levin
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 113/217] ath10k: drop beacon and probe response which leak from other channel Sasha Levin
2022-01-18  2:17 ` [PATCH AUTOSEL 5.16 114/217] net: phy: prefer 1000baseT over 1000baseKX Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 118/217] net: Enable neighbor sysctls that is save for userns root Sasha Levin
2022-01-18 16:59   ` Jakub Kicinski
2022-01-19  3:46     ` David Ahern
2022-01-22 19:13       ` Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 120/217] ath11k: Avoid false DEADLOCK warning reported by lockdep Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 127/217] net: bonding: debug: avoid printing debug logs when bond is not notifying peers Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 129/217] bpf: Do not WARN in bpf_warn_invalid_xdp_action() Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 152/217] mt76: mt7615: fix possible deadlock while mt7615_register_ext_phy() Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 153/217] mt76: mt7915: fix SMPS operation fail Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 154/217] mt76: connac: fix a theoretical NULL pointer dereference in mt76_connac_get_phy_mode Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 155/217] mt76: do not pass the received frame with decryption error Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 156/217] mt76: mt7615: improve wmm index allocation Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 157/217] mt76: mt7921: fix network buffer leak by txs missing Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 158/217] ath9k_htc: fix NULL pointer dereference at ath9k_htc_rxep() Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 159/217] ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet() Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 160/217] ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 161/217] rtw88: 8822c: update rx settings to prevent potential hw deadlock Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 163/217] iwlwifi: recognize missing PNVM data and then log filename Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 164/217] iwlwifi: fix leaks/bad data after failed firmware load Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 165/217] iwlwifi: remove module loading failure message Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 166/217] iwlwifi: mvm: Fix calculation of frame length Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 167/217] iwlwifi: mvm: fix AUX ROC removal Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 168/217] iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 172/217] ath11k: Fix napi related hang Sasha Levin
2022-01-18  2:18 ` [PATCH AUTOSEL 5.16 176/217] xfrm: rate limit SA mapping change message to user space Sasha Levin
2022-01-18  2:19 ` [PATCH AUTOSEL 5.16 191/217] net/mlx5: DR, Fix error flow in creating matcher Sasha Levin
2022-01-18  2:19 ` [PATCH AUTOSEL 5.16 194/217] net: mdio: Demote probed message to debug print Sasha Levin
2022-01-18  2:19 ` [PATCH AUTOSEL 5.16 195/217] mac80211: allow non-standard VHT MCS-10/11 Sasha Levin
2022-01-18  2:19 ` [PATCH AUTOSEL 5.16 198/217] can: do not increase rx statistics when generating a CAN rx error message frame Sasha Levin
2022-01-18  2:19 ` [PATCH AUTOSEL 5.16 199/217] bpf/selftests: Fix namespace mount setup in tc_redirect Sasha Levin
2022-01-18  2:19 ` [PATCH AUTOSEL 5.16 200/217] mlxsw: pci: Avoid flow control for EMAD packets Sasha Levin
2022-01-18  2:19 ` [PATCH AUTOSEL 5.16 201/217] net: phy: marvell: configure RGMII delays for 88E1118 Sasha Levin
2022-01-18  2:19 ` [PATCH AUTOSEL 5.16 202/217] net: gemini: allow any RGMII interface mode Sasha Levin
2022-01-18  2:19 ` [PATCH AUTOSEL 5.16 203/217] net: dsa: hold rtnl_mutex when calling dsa_master_{setup,teardown} Sasha Levin
2022-01-18 12:13   ` Vladimir Oltean
2022-01-22 19:17     ` Sasha Levin
2022-01-18  2:19 ` [PATCH AUTOSEL 5.16 209/217] net/mlx5: Update log_max_qp value to FW max capability Sasha Levin
2022-01-18  2:19 ` [PATCH AUTOSEL 5.16 210/217] net/mlx5e: Unblock setting vid 0 for VF in case PF isn't eswitch manager Sasha Levin
2022-01-18  2:19 ` [PATCH AUTOSEL 5.16 213/217] can: flexcan: allow to change quirks at runtime Sasha Levin
2022-01-18  2:19 ` [PATCH AUTOSEL 5.16 214/217] can: flexcan: rename RX modes Sasha Levin
2022-01-18  2:19 ` [PATCH AUTOSEL 5.16 215/217] can: flexcan: add more quirks to describe RX path capabilities Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220118021940.1942199-63-sashal@kernel.org \
    --to=sashal@kernel$(echo .)org \
    --cc=danieller@nvidia$(echo .)com \
    --cc=davem@davemloft$(echo .)net \
    --cc=ebiederm@xmission$(echo .)com \
    --cc=idosch@nvidia$(echo .)com \
    --cc=kuba@kernel$(echo .)org \
    --cc=linux-kernel@vger$(echo .)kernel.org \
    --cc=netdev@vger$(echo .)kernel.org \
    --cc=petrm@nvidia$(echo .)com \
    --cc=stable@vger$(echo .)kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox