Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net/smc: move link llc initialization to llc layer

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 <kgraul@linux.ibm.com>
Signed-off-by: Ursula Braun <ubraun@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Karsten Graul and committed by
David S. Miller
b32cf4ab d97935fa

+12 -6
+1 -5
net/smc/smc_core.c
··· 194 194 smc_ib_setup_per_ibdev(smcibdev); 195 195 get_random_bytes(rndvec, sizeof(rndvec)); 196 196 lnk->psn_initial = rndvec[0] + (rndvec[1] << 8) + (rndvec[2] << 16); 197 + smc_llc_link_init(lnk); 197 198 rc = smc_wr_alloc_link_mem(lnk); 198 199 if (rc) 199 200 goto free_lgr; ··· 207 206 rc = smc_wr_create_link(lnk); 208 207 if (rc) 209 208 goto destroy_qp; 210 - init_completion(&lnk->llc_confirm); 211 - init_completion(&lnk->llc_confirm_resp); 212 - init_completion(&lnk->llc_add); 213 - init_completion(&lnk->llc_add_resp); 214 - init_completion(&lnk->llc_confirm_rkey); 215 209 216 210 smc->conn.lgr = lgr; 217 211 rwlock_init(&lgr->conns_lock);
+10 -1
net/smc/smc_llc.c
··· 562 562 schedule_delayed_work(&link->llc_testlink_wrk, next_interval); 563 563 } 564 564 565 - void smc_llc_link_active(struct smc_link *link, int testlink_time) 565 + void smc_llc_link_init(struct smc_link *link) 566 566 { 567 + init_completion(&link->llc_confirm); 568 + init_completion(&link->llc_confirm_resp); 569 + init_completion(&link->llc_add); 570 + init_completion(&link->llc_add_resp); 571 + init_completion(&link->llc_confirm_rkey); 567 572 init_completion(&link->llc_testlink_resp); 568 573 INIT_DELAYED_WORK(&link->llc_testlink_wrk, smc_llc_testlink_work); 574 + } 575 + 576 + void smc_llc_link_active(struct smc_link *link, int testlink_time) 577 + { 569 578 link->state = SMC_LNK_ACTIVE; 570 579 if (testlink_time) { 571 580 link->llc_testlink_time = testlink_time * HZ;
+1
net/smc/smc_llc.h
··· 42 42 enum smc_llc_reqresp reqresp); 43 43 int smc_llc_send_delete_link(struct smc_link *link, 44 44 enum smc_llc_reqresp reqresp); 45 + void smc_llc_link_init(struct smc_link *link); 45 46 void smc_llc_link_active(struct smc_link *link, int testlink_time); 46 47 void smc_llc_link_inactive(struct smc_link *link); 47 48 void smc_llc_link_flush(struct smc_link *link);