summaryrefslogtreecommitdiffstats
path: root/net/smc/smc_llc.h
diff options
context:
space:
mode:
authorKarsten Graul <kgraul@linux.ibm.com>2018-05-15 17:04:59 +0200
committerDavid S. Miller <davem@davemloft.net>2018-05-16 17:49:19 +0200
commit2a4c57a9e731fa7bd20b028ca078a0ab0ec2485e (patch)
treeafcc5c0fefefda9da14bf00daa21bce46554c9b4 /net/smc/smc_llc.h
parentnet/smc: move link llc initialization to llc layer (diff)
downloadlinux-2a4c57a9e731fa7bd20b028ca078a0ab0ec2485e.tar.xz
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_llc.h')
-rw-r--r--net/smc/smc_llc.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/smc/smc_llc.h b/net/smc/smc_llc.h
index d7f52a60c8d6..65c8645e96a1 100644
--- a/net/smc/smc_llc.h
+++ b/net/smc/smc_llc.h
@@ -42,10 +42,10 @@ int smc_llc_send_add_link(struct smc_link *link, u8 mac[], union ib_gid *gid,
enum smc_llc_reqresp reqresp);
int smc_llc_send_delete_link(struct smc_link *link,
enum smc_llc_reqresp reqresp);
-void smc_llc_link_init(struct smc_link *link);
+int smc_llc_link_init(struct smc_link *link);
void smc_llc_link_active(struct smc_link *link, int testlink_time);
void smc_llc_link_inactive(struct smc_link *link);
-void smc_llc_link_flush(struct smc_link *link);
+void smc_llc_link_clear(struct smc_link *link);
int smc_llc_do_confirm_rkey(struct smc_link *link,
struct smc_buf_desc *rmb_desc);
int smc_llc_init(void) __init;