On Mon, 20 Jan 2025 19:14:48 +0800
"WanRenyong" <wa...@yunsilicon.com> wrote:

> +struct __rte_packed_begin xsc_send_wqe_ctrl_seg {
> +     rte_le32_t      msg_opcode:8;
> +     rte_le32_t      with_immdt:1;
> +     rte_le32_t      csum_en:2;
> +     rte_le32_t      ds_data_num:5;
> +     rte_le32_t      wqe_id:16;
> +     rte_le32_t      msg_len;
> +     union __rte_packed_begin {
> +             rte_le32_t              opcode_data;
> +             struct __rte_packed_begin {
> +                     rte_le16_t      has_pph:1;
> +                     rte_le16_t      so_type:1;
> +                     rte_le16_t      so_data_size:14;
> +                     rte_le16_t      rsv1:8;
> +                     rte_le16_t      so_hdr_len:8;
> +             } __rte_packed_end;
> +             struct __rte_packed_begin {
> +                     rte_le16_t      desc_id;
> +                     rte_le16_t      is_last_wqe:1;
> +                     rte_le16_t      dst_qp_id:15;
> +             } __rte_packed_end;
> +     } __rte_packed_end;
> +     rte_le32_t      se:1;

If the whole structure is marked with packed attribute,
don't think you also need to mark the sub structures and unions
as packed. 

This is what is confusing the checkpatch check for __rte_packed_begin / 
__rte_packed_end

Reply via email to