Because clcsk_*, like clcsock, is initialized during the smc init process, the code was moved to prevent clcsk_* from having an address like inet_sk(sk)->pinet6, thereby preventing the previously initialized values from being tampered with. Additionally, if you don't need alignment in smc_inet6_prot , I'll modify the patch to only add the necessary code without alignment. Regards, Jeongjun Park > > > > > > Also, regarding alignment, it's okay for me whether it's aligned or > > not,But I checked the styles of other types of > > structures and did not strictly require alignment, so I now feel that > > there is no need to > > modify so much to do alignment. > > > > D. Wythe > > > > > > >> > >>>> + > >>>> static struct proto smc_inet6_prot = { > >>>> - .name = "INET6_SMC", > >>>> - .owner = THIS_MODULE, > >>>> - .init = smc_inet_init_sock, > >>>> - .hash = smc_hash_sk, > >>>> - .unhash = smc_unhash_sk, > >>>> - .release_cb = smc_release_cb, > >>>> - .obj_size = sizeof(struct smc_sock), > >>>> - .h.smc_hash = &smc_v6_hashinfo, > >>>> - .slab_flags = SLAB_TYPESAFE_BY_RCU, > >>>> + .name = "INET6_SMC", > >>>> + .owner = THIS_MODULE, > >>>> + .init = smc_inet_init_sock, > >>>> + .hash = smc_hash_sk, > >>>> + .unhash = smc_unhash_sk, > >>>> + .release_cb = smc_release_cb, > >>>> + .obj_size = sizeof(struct smc6_sock), > >>>> + .h.smc_hash = &smc_v6_hashinfo, > >>>> + .slab_flags = SLAB_TYPESAFE_BY_RCU, > >>>> + .ipv6_pinfo_offset = offsetof(struct smc6_sock, > >>>> np), > >>>> }; > >>>> > >>>> static const struct proto_ops smc_inet6_stream_ops = { > >>>> -- > > >