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 = { > >>>> -- > > >