summaryrefslogtreecommitdiff
path: root/net/xfrm/xfrm_policy.c
diff options
context:
space:
mode:
authorVignesh Raghavendra <vigneshr@ti.com>2021-06-22 17:38:57 +0300
committerDavid S. Miller <davem@davemloft.net>2021-06-22 20:49:56 +0300
commitce8eb4c728ef40b554b4f3d8963f11ed44502e00 (patch)
treefcdb988132e66e146bf1bb8604f3015d2ba664ed /net/xfrm/xfrm_policy.c
parentddeacc4f6494e07cbb6f033627926623f3e7a9d0 (diff)
downloadlinux-ce8eb4c728ef40b554b4f3d8963f11ed44502e00.tar.xz
net: ti: am65-cpsw-nuss: Fix crash when changing number of TX queues
When changing number of TX queues using ethtool: # ethtool -L eth0 tx 1 [ 135.301047] Unable to handle kernel paging request at virtual address 00000000af5d0000 [...] [ 135.525128] Call trace: [ 135.525142] dma_release_from_dev_coherent+0x2c/0xb0 [ 135.525148] dma_free_attrs+0x54/0xe0 [ 135.525156] k3_cppi_desc_pool_destroy+0x50/0xa0 [ 135.525164] am65_cpsw_nuss_remove_tx_chns+0x88/0xdc [ 135.525171] am65_cpsw_set_channels+0x3c/0x70 [...] This is because k3_cppi_desc_pool_destroy() which is called after k3_udma_glue_release_tx_chn() in am65_cpsw_nuss_remove_tx_chns() references struct device that is unregistered at the end of k3_udma_glue_release_tx_chn() Therefore the right order is to call k3_cppi_desc_pool_destroy() and destroy desc pool before calling k3_udma_glue_release_tx_chn(). Fix this throughout the driver. Fixes: 93a76530316a ("net: ethernet: ti: introduce am65x/j721e gigabit eth subsystem driver") Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/xfrm/xfrm_policy.c')
0 files changed, 0 insertions, 0 deletions