linux-stable/drivers/infiniband/hw/hfi1
Dean Luick 1afac08b39 IB/hfi1: Correctly move list in sc_disable()
Commit 13bac86195 ("IB/hfi1: Fix abba locking issue with sc_disable()")
incorrectly tries to move a list from one list head to another.  The
result is a kernel crash.

The crash is triggered when a link goes down and there are waiters for a
send to complete.  The following signature is seen:

  BUG: kernel NULL pointer dereference, address: 0000000000000030
  [...]
  Call Trace:
   sc_disable+0x1ba/0x240 [hfi1]
   pio_freeze+0x3d/0x60 [hfi1]
   handle_freeze+0x27/0x1b0 [hfi1]
   process_one_work+0x1b0/0x380
   ? process_one_work+0x380/0x380
   worker_thread+0x30/0x360
   ? process_one_work+0x380/0x380
   kthread+0xd7/0x100
   ? kthread_complete_and_exit+0x20/0x20
   ret_from_fork+0x1f/0x30

The fix is to use the correct call to move the list.

Fixes: 13bac86195 ("IB/hfi1: Fix abba locking issue with sc_disable()")
Signed-off-by: Dean Luick <dean.luick@cornelisnetworks.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
Link: https://lore.kernel.org/r/166610327042.674422.6146908799669288976.stgit@awfm-02.cornelisnetworks.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
2022-10-19 10:06:07 +03:00
..
affinity.c RDMA/hfi: Replace cpumask_weight with cpumask_empty where appropriate 2022-02-11 15:07:30 -04:00
affinity.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
aspm.c
aspm.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
chip.c RDMA/hfi1: fix repeated words in comments 2022-09-20 14:06:49 +03:00
chip.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
chip_registers.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
common.h RDMA/hfi1: Remove all traces of diagpkt support 2022-05-24 15:08:32 -03:00
debugfs.c RDMA/hfi1: Delete useless module.h include 2022-01-28 13:03:12 -04:00
debugfs.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
device.c RDMA/hfi1: Delete useless module.h include 2022-01-28 13:03:12 -04:00
device.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
driver.c RDMA/hfi1: Remove pointless driver version 2022-05-24 15:08:31 -03:00
efivar.c IB/hf1: Fix typo in comment 2022-05-24 11:24:57 -03:00
efivar.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
eprom.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
eprom.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
exp_rcv.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
exp_rcv.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
fault.c RDMA/hfi1: Delete useless module.h include 2022-01-28 13:03:12 -04:00
fault.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
file_ops.c IB: move from strlcpy with unused retval to strscpy 2022-08-21 14:18:02 +03:00
firmware.c RDMA/hfi1: fix repeated words in comments 2022-09-20 14:06:49 +03:00
hfi.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
init.c RDMA/hfi1: Fix potential integer multiplication overflow errors 2022-05-24 15:08:31 -03:00
intr.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
iowait.c RDMA/hw/hfi1/iowait: Demote half-completed kernel-doc and fix formatting issue in another 2021-01-28 15:42:26 -04:00
iowait.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
ipoib.h IB/hfi1: Fix alloc failure with larger txqueuelen 2022-01-28 11:12:15 -04:00
ipoib_main.c IB/hfi1: Fix tstats alloc and dealloc 2022-01-28 11:12:15 -04:00
ipoib_rx.c IB/hfi1: Use skb_put_data() instead of skb_put/memcpy pair 2022-09-27 10:43:10 -03:00
ipoib_tx.c IB/hfi1: switch to netif_napi_add_tx() 2022-07-17 21:29:46 +03:00
Kconfig RDMA/hfi1: Depend on !UML 2022-07-18 13:40:38 +03:00
mad.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
mad.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
Makefile IB/hfi1: Add functions to receive accelerated ipoib packets 2020-05-21 11:23:56 -03:00
mmu_rb.c RDMA/hfi1: Fix use-after-free bug for mm struct 2022-04-08 15:40:06 -03:00
mmu_rb.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
msix.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
msix.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
netdev.h IB/hfi1: Rework AIP and VNIC dummy netdev usage 2021-04-13 13:54:56 -03:00
netdev_rx.c IB/hfi1: switch to netif_napi_add_weight() 2022-07-17 21:29:53 +03:00
opa_compat.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
opfn.c
opfn.h
pcie.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
pio.c IB/hfi1: Correctly move list in sc_disable() 2022-10-19 10:06:07 +03:00
pio.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
pio_copy.c RDMA/hfi1: Fix typo in comment 2022-06-07 11:57:26 +03:00
platform.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
platform.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
qp.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
qp.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
qsfp.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
qsfp.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
rc.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
rc.h
ruc.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
sdma.c RDMA/hfi1: Prevent use of lock before it is initialized 2022-05-24 14:52:47 -03:00
sdma.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
sdma_txreq.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
sysfs.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
tid_rdma.c treewide: use get_random_u32() when possible 2022-10-11 17:42:58 -06:00
tid_rdma.h
trace.c IB/hfi1: make hist static 2021-09-08 08:33:04 -03:00
trace.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
trace_ctxts.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
trace_dbg.h tracing/IB/hfi1: Use the new __vstring() helper 2022-07-15 17:44:40 -04:00
trace_ibhdrs.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
trace_iowait.h
trace_misc.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
trace_mmu.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
trace_rc.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
trace_rx.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
trace_tid.h treewide: Add missing semicolons to __assign_str uses 2021-06-30 09:19:14 -04:00
trace_tx.h IB/hfi1: Add ring consumer and producers traces 2021-09-27 20:06:42 -03:00
uc.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
ud.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
user_exp_rcv.c RDMA/hfi1: Use struct_size() and flex_array_size() helpers 2021-09-27 20:15:54 -03:00
user_exp_rcv.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
user_pages.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
user_sdma.c IB/hfi1: Use bitmap_zalloc() when applicable 2021-11-29 14:33:55 -04:00
user_sdma.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
verbs.c RDMA/hfi1: Remove the unneeded result variable 2022-09-05 15:14:31 +03:00
verbs.h IB/hfi1: remove rc_only_opcode and uc_only_opcode declarations 2022-09-20 20:13:10 +03:00
verbs_txreq.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
verbs_txreq.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
vnic.h RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
vnic_main.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00
vnic_sdma.c RDMA/hfi1: Convert to SPDX identifier 2021-08-25 14:56:48 -03:00