pclc_smcd = &pclc->pclc_smcd;
        pclc_prfx = &pclc->pclc_prfx;
        ipv6_prfx = pclc->pclc_prfx_ipv6;
-       v2_ext = &pclc->pclc_v2_ext;
-       smcd_v2_ext = &pclc->pclc_smcd_v2_ext;
+       v2_ext = container_of(&pclc->pclc_v2_ext,
+                             struct smc_clc_v2_extension, fixed);
+       smcd_v2_ext = container_of(&pclc->pclc_smcd_v2_ext,
+                                  struct smc_clc_smcd_v2_extension, fixed);
        gidchids = pclc->pclc_gidchids;
        trl = &pclc->pclc_trl;
 
 
                         */
 
 struct smc_clc_v2_extension {
-       struct smc_clnt_opts_area_hdr hdr;
-       u8 roce[16];            /* RoCEv2 GID */
-       u8 max_conns;
-       u8 max_links;
-       __be16 feature_mask;
-       u8 reserved[12];
+       /* New members must be added within the struct_group() macro below. */
+       struct_group_tagged(smc_clc_v2_extension_fixed, fixed,
+               struct smc_clnt_opts_area_hdr hdr;
+               u8 roce[16];            /* RoCEv2 GID */
+               u8 max_conns;
+               u8 max_links;
+               __be16 feature_mask;
+               u8 reserved[12];
+       );
        u8 user_eids[][SMC_MAX_EID_LEN];
 };
 
 };
 
 struct smc_clc_smcd_v2_extension {
-       u8 system_eid[SMC_MAX_EID_LEN];
-       u8 reserved[16];
+       /* New members must be added within the struct_group() macro below. */
+       struct_group_tagged(smc_clc_smcd_v2_extension_fixed, fixed,
+               u8 system_eid[SMC_MAX_EID_LEN];
+               u8 reserved[16];
+       );
        struct smc_clc_smcd_gid_chid gidchid[];
 };
 
        struct smc_clc_msg_smcd                 pclc_smcd;
        struct smc_clc_msg_proposal_prefix      pclc_prfx;
        struct smc_clc_ipv6_prefix      pclc_prfx_ipv6[SMC_CLC_MAX_V6_PREFIX];
-       struct smc_clc_v2_extension             pclc_v2_ext;
+       struct smc_clc_v2_extension_fixed       pclc_v2_ext;
        u8                      user_eids[SMC_CLC_MAX_UEID][SMC_MAX_EID_LEN];
-       struct smc_clc_smcd_v2_extension        pclc_smcd_v2_ext;
+       struct smc_clc_smcd_v2_extension_fixed  pclc_smcd_v2_ext;
        struct smc_clc_smcd_gid_chid
                                pclc_gidchids[SMCD_CLC_MAX_V2_GID_ENTRIES];
        struct smc_clc_msg_trail                pclc_trl;