diff options
author | Karsten Graul <kgraul@linux.ibm.com> | 2018-05-15 17:04:59 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-05-16 11:49:19 -0400 |
commit | 2a4c57a9e731fa7bd20b028ca078a0ab0ec2485e (patch) | |
tree | afcc5c0fefefda9da14bf00daa21bce46554c9b4 /net/smc/smc_core.h | |
parent | b32cf4ab68c06619bacefc7157857a08e7fee695 (diff) | |
download | talos-obmc-linux-2a4c57a9e731fa7bd20b028ca078a0ab0ec2485e.tar.gz talos-obmc-linux-2a4c57a9e731fa7bd20b028ca078a0ab0ec2485e.zip |
net/smc: use a workqueue to defer llc send
SMC handles deferred work in tasklets. As tasklets cannot sleep this
can result in rare EBUSY conditions, so defer this work in a work queue.
The high level api functions do not defer work because they can sleep
until the llc send is actually completed.
Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
Signed-off-by: Ursula Braun <ubraun@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/smc/smc_core.h')
-rw-r--r-- | net/smc/smc_core.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/smc/smc_core.h b/net/smc/smc_core.h index 9398e235d74b..d1753850684b 100644 --- a/net/smc/smc_core.h +++ b/net/smc/smc_core.h @@ -96,6 +96,7 @@ struct smc_link { u8 link_id; /* unique # within link group */ enum smc_link_state state; /* state of link */ + struct workqueue_struct *llc_wq; /* single thread work queue */ struct completion llc_confirm; /* wait for rx of conf link */ struct completion llc_confirm_resp; /* wait 4 rx of cnf lnk rsp */ int llc_confirm_rc; /* rc from confirm link msg */ |