RE: [PATCH 2/9] ocrdma: Driver for Emulex OneConnect RDMA adapter

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


> +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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Home]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Free Online Dating]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Devices]

Add to Google Powered by Linux