Skip to content

Commit

Permalink
net/smc: move link llc initialization to llc layer
Browse files Browse the repository at this point in the history
Move the llc layer specific initialization and cleanup out of smc_core.c
into smc_llc.c (smc_llc_link_init and smc_llc_link_clear). Move all
initialization of a link into the new init function.

Signed-off-by: Karsten Graul <[email protected]>
Signed-off-by: Ursula Braun <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
karstengr authored and davem330 committed May 16, 2018
1 parent d97935f commit b32cf4a
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 6 deletions.
6 changes: 1 addition & 5 deletions net/smc/smc_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ static int smc_lgr_create(struct smc_sock *smc,
smc_ib_setup_per_ibdev(smcibdev);
get_random_bytes(rndvec, sizeof(rndvec));
lnk->psn_initial = rndvec[0] + (rndvec[1] << 8) + (rndvec[2] << 16);
smc_llc_link_init(lnk);
rc = smc_wr_alloc_link_mem(lnk);
if (rc)
goto free_lgr;
Expand All @@ -206,11 +207,6 @@ static int smc_lgr_create(struct smc_sock *smc,
rc = smc_wr_create_link(lnk);
if (rc)
goto destroy_qp;
init_completion(&lnk->llc_confirm);
init_completion(&lnk->llc_confirm_resp);
init_completion(&lnk->llc_add);
init_completion(&lnk->llc_add_resp);
init_completion(&lnk->llc_confirm_rkey);

smc->conn.lgr = lgr;
rwlock_init(&lgr->conns_lock);
Expand Down
11 changes: 10 additions & 1 deletion net/smc/smc_llc.c
Original file line number Diff line number Diff line change
Expand Up @@ -562,10 +562,19 @@ static void smc_llc_testlink_work(struct work_struct *work)
schedule_delayed_work(&link->llc_testlink_wrk, next_interval);
}

void smc_llc_link_active(struct smc_link *link, int testlink_time)
void smc_llc_link_init(struct smc_link *link)
{
init_completion(&link->llc_confirm);
init_completion(&link->llc_confirm_resp);
init_completion(&link->llc_add);
init_completion(&link->llc_add_resp);
init_completion(&link->llc_confirm_rkey);
init_completion(&link->llc_testlink_resp);
INIT_DELAYED_WORK(&link->llc_testlink_wrk, smc_llc_testlink_work);
}

void smc_llc_link_active(struct smc_link *link, int testlink_time)
{
link->state = SMC_LNK_ACTIVE;
if (testlink_time) {
link->llc_testlink_time = testlink_time * HZ;
Expand Down
1 change: 1 addition & 0 deletions net/smc/smc_llc.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ 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);
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);
Expand Down

0 comments on commit b32cf4a

Please sign in to comment.