From 2a4c57a9e731fa7bd20b028ca078a0ab0ec2485e Mon Sep 17 00:00:00 2001 From: Karsten Graul Date: Tue, 15 May 2018 17:04:59 +0200 Subject: 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 Signed-off-by: Ursula Braun Signed-off-by: David S. Miller --- net/smc/smc_llc.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'net/smc/smc_llc.h') 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; -- cgit v1.2.3-59-g8ed1b