linux-stable/net/smc
Karsten Graul 6778a6bed0 net/smc: separate LLC wait queues for flow and messages
There might be races in scenarios where both SMC link groups are on the
same system. Prevent that by creating separate wait queues for LLC flows
and messages. Switch to non-interruptable versions of wait_event() and
wake_up() for the llc flow waiter to make sure the waiters get control
sequentially. Fine tune the llc_flow_lock to include the assignment of
the message. Write to system log when an unexpected message was
dropped. And remove an extra indirection and use the existing local
variable lgr in smc_llc_enqueue().

Fixes: 555da9af82 ("net/smc: add event-based llc_flow framework")
Reviewed-by: Ursula Braun <ubraun@linux.ibm.com>
Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-07-08 12:35:15 -07:00
..
Kconfig treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
af_smc.c net/smc: log important pnetid and state change events 2020-05-05 12:56:52 -07:00
smc.h net/smc: handle incoming CDC validation message 2020-05-04 10:54:39 -07:00
smc_cdc.c net/smc: pre-fetch send buffer outside of send_lock 2020-05-30 18:12:25 -07:00
smc_cdc.h net/smc: pre-fetch send buffer outside of send_lock 2020-05-30 18:12:25 -07:00
smc_clc.c net/smc: convert static link ID to dynamic references 2020-04-29 12:26:32 -07:00
smc_clc.h net/smc: adapt SMC client code to use the LLC flow 2020-04-30 12:44:33 -07:00
smc_close.c net/smc: remove unused constant 2019-11-16 12:26:49 -08:00
smc_close.h net/smc: remove close abort worker 2019-10-22 11:23:44 -07:00
smc_core.c net/smc: separate LLC wait queues for flow and messages 2020-07-08 12:35:15 -07:00
smc_core.h net/smc: separate LLC wait queues for flow and messages 2020-07-08 12:35:15 -07:00
smc_diag.c net/smc: fix leak of kernel memory to user space 2020-02-11 17:04:42 -08:00
smc_ib.c RDMA 5.8 merge window pull request 2020-06-05 14:05:57 -07:00
smc_ib.h net/smc: convert static link ID to dynamic references 2020-04-29 12:26:32 -07:00
smc_ism.c net/smc: log important pnetid and state change events 2020-05-05 12:56:52 -07:00
smc_ism.h net/smc: add SMC-D shutdown signal 2018-11-21 16:14:56 -08:00
smc_llc.c net/smc: separate LLC wait queues for flow and messages 2020-07-08 12:35:15 -07:00
smc_llc.h net/smc: log important pnetid and state change events 2020-05-05 12:56:52 -07:00
smc_netns.h net/smc: add pnet table namespace support 2019-02-21 10:34:37 -08:00
smc_pnet.c net/smc: mark smc_pnet_policy as const 2020-05-26 20:19:13 -07:00
smc_pnet.h net/smc: introduce smc_pnet_find_alt_roce() 2020-05-01 16:20:05 -07:00
smc_rx.c fs: make the pipe_buf_operations ->confirm operation optional 2020-05-20 12:11:26 -04:00
smc_rx.h smc: add support for splice() 2018-05-04 11:45:06 -04:00
smc_tx.c net/smc: switch connections to alternate link 2020-05-04 10:54:39 -07:00
smc_tx.h net/smc: eliminate cursor read and write calls 2018-07-23 10:57:14 -07:00
smc_wr.c net/smc: wait for departure of an IB message 2020-05-04 10:54:39 -07:00
smc_wr.h net/smc: wait for departure of an IB message 2020-05-04 10:54:39 -07:00