> +struct ocrdma_alloc_ucontext_resp {
> +     u32 dev_id;
> +     u32 wqe_size;
> +     u32 max_inline_data;
> +     u32 dpp_wqe_size;
> +     u64 ah_tbl_page;
> +     u32 ah_tbl_len;
> +     u32 rsvd;
> +     u8 fw_ver[32];
> +     u32 rqe_size;
> +     u64 rsvd1;
> +} __packed;

Is there some reason to pack the structures in this file, rather than just 
defining things to align on a 64-bit boundary?  The structure above actually 
ends up sized to a 4-byte boundary, rather than 8-byte, with rsvd1 field 
misaligned.

> +/* user kernel communication data structures. */
> +struct ocrdma_alloc_pd_ureq {
> +     u64 rsvd1;
> +} __packed;
> +
> +struct ocrdma_alloc_pd_uresp {
> +     u32 id;
> +     u32 dpp_enabled;
> +     u32 dpp_page_addr_hi;
> +     u32 dpp_page_addr_lo;
> +     u64 rsvd1;
> +} __packed;
> +
> +struct ocrdma_create_cq_ureq {
> +     u32 dpp_cq;
> +     u32 rsvd;
> +} __packed;
> +
> +#define MAX_CQ_PAGES 8
> +struct ocrdma_create_cq_uresp {
> +     u32 cq_id;
> +     u32 page_size;
> +     u32 num_pages;
> +     u32 max_hw_cqe;
> +     u64 page_addr[MAX_CQ_PAGES];
> +     u64 db_page_addr;
> +     u32 db_page_size;
> +     u32 phase_change;
> +     u64 rsvd1;
> +     u64 rsvd2;
> +} __packed;

Why the extra reserved space?

> +
> +#define MAX_QP_PAGES 8
> +#define MAX_UD_AV_PAGES 8
> +
> +struct ocrdma_create_qp_ureq {
> +     u8 enable_dpp_cq;
> +     u8 rsvd;
> +     u16 dpp_cq_id;
> +     u32 rsvd1;
> +};
> +
> +struct ocrdma_create_qp_uresp {
> +     u16 qp_id;
> +     u16 sq_dbid;
> +     u16 rq_dbid;
> +     u16 resv0;
> +     u32 sq_page_size;
> +     u32 rq_page_size;
> +     u32 num_sq_pages;
> +     u32 num_rq_pages;
> +     u64 sq_page_addr[MAX_QP_PAGES];
> +     u64 rq_page_addr[MAX_QP_PAGES];
> +     u64 db_page_addr;
> +     u32 db_page_size;
> +     u32 dpp_credit;
> +     u32 dpp_offset;
> +     u32 rsvd1;
> +     u32 num_wqe_allocated;
> +     u32 num_rqe_allocated;
> +     u32 free_wqe_delta;
> +     u32 free_rqe_delta;
> +     u32 db_sq_offset;
> +     u32 db_rq_offset;
> +     u32 db_shift;
> +     u64 rsvd2;
> +     u64 rsvd3;
> +} __packed;

Why the extra reserved space?  rsvd2 & 3 are also misaligned.

> +
> +struct ocrdma_create_srq_uresp {
> +     u16 rq_dbid;
> +     u16 resv0;
> +     u32 resv1;
> +
> +     u32 rq_page_size;
> +     u32 num_rq_pages;
> +
> +     u64 rq_page_addr[MAX_QP_PAGES];
> +     u64 db_page_addr;
> +
> +     u32 db_page_size;
> +     u32 num_rqe_allocated;
> +     u32 db_rq_offset;
> +     u32 db_shift;
> +
> +     u32 free_rqe_delta;
> +     u32 rsvd2;
> +     u64 rsvd3;
> +} __packed;

Why the extra reserved space?

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to