On Mon, Dec 31, 2018 at 01:10:02AM -0500, Devesh Sharma wrote: > +static inline void bnxt_qplib_ring_nq_db64(void __iomem *db, u32 index, > + u16 xid, bool arm) > +{ > + struct dbc_dbc hdr64 = { 0 }; > + u32 tmp = 0; > + u64 *val; > + > + hdr64.index = cpu_to_le32(index & DBC_DBC_INDEX_MASK); > + tmp = xid & DBC_DBC_XID_MASK; > + tmp |= DBC_DBC_PATH_ROCE; > + tmp |= arm ? DBC_DBC_TYPE_NQ_ARM : DBC_DBC_TYPE_NQ; > + hdr64.type_path_xid = cpu_to_le32(tmp); > + val = (u64 *)&hdr64.index; > + wmb(); > + writeq(*val, db); wmb is not needed before writeq() > +static inline void bnxt_qplib_ring_creq_db64(void __iomem *db, u32 index, > + u16 xid, bool arm) > +{ > + struct dbc_dbc hdr64 = { 0 }; > + u32 tmp = 0; > + u64 *val; > + > + hdr64.index = cpu_to_le32(index & DBC_DBC_INDEX_MASK); > + tmp = xid & DBC_DBC_XID_MASK; > + tmp |= DBC_DBC_PATH_ROCE; > + tmp |= arm ? DBC_DBC_TYPE_NQ_ARM : DBC_DBC_TYPE_NQ; > + hdr64.type_path_xid = cpu_to_le32(tmp); > + val = (u64 *)&hdr64.index; > + wmb(); > + writeq(*val, db); same > #define to_bnxt_qplib(ptr, type, member) \ > container_of(ptr, type, member) What a weird thing to do?? > +/* dbc_dbc (size:64b/8B) */ > +struct dbc_dbc { > + __le32 index; > + #define DBC_DBC_INDEX_MASK 0xffffffUL > + #define DBC_DBC_INDEX_SFT 0 > + __le32 type_path_xid; > + #define DBC_DBC_XID_MASK 0xfffffUL > + #define DBC_DBC_XID_SFT 0 > + #define DBC_DBC_PATH_MASK 0x3000000UL > + #define DBC_DBC_PATH_SFT 24 > + #define DBC_DBC_PATH_ROCE (0x0UL << 24) > + #define DBC_DBC_PATH_L2 (0x1UL << 24) > + #define DBC_DBC_PATH_ENGINE (0x2UL << 24) > + #define DBC_DBC_PATH_LAST DBC_DBC_PATH_ENGINE > + #define DBC_DBC_DEBUG_TRACE 0x8000000UL > + #define DBC_DBC_TYPE_MASK 0xf0000000UL > + #define DBC_DBC_TYPE_SFT 28 > + #define DBC_DBC_TYPE_SQ (0x0UL << 28) > + #define DBC_DBC_TYPE_RQ (0x1UL << 28) > + #define DBC_DBC_TYPE_SRQ (0x2UL << 28) > + #define DBC_DBC_TYPE_SRQ_ARM (0x3UL << 28) > + #define DBC_DBC_TYPE_CQ (0x4UL << 28) > + #define DBC_DBC_TYPE_CQ_ARMSE (0x5UL << 28) > + #define DBC_DBC_TYPE_CQ_ARMALL (0x6UL << 28) > + #define DBC_DBC_TYPE_CQ_ARMENA (0x7UL << 28) > + #define DBC_DBC_TYPE_SRQ_ARMENA (0x8UL << 28) > + #define DBC_DBC_TYPE_CQ_CUTOFF_ACK (0x9UL << 28) > + #define DBC_DBC_TYPE_NQ (0xaUL << 28) > + #define DBC_DBC_TYPE_NQ_ARM (0xbUL << 28) > + #define DBC_DBC_TYPE_NULL (0xfUL << 28) > + #define DBC_DBC_TYPE_LAST DBC_DBC_TYPE_NULL > +}; > + > +/* dbc_dbc32 (size:32b/4B) */ > +struct dbc_dbc32 { > + __le32 type_abs_incr_xid; > + #define DBC_DBC32_XID_MASK 0xfffffUL > + #define DBC_DBC32_XID_SFT 0 > + #define DBC_DBC32_PATH_MASK 0xc00000UL > + #define DBC_DBC32_PATH_SFT 22 > + #define DBC_DBC32_PATH_ROCE (0x0UL << 22) > + #define DBC_DBC32_PATH_L2 (0x1UL << 22) > + #define DBC_DBC32_PATH_LAST DBC_DBC32_PATH_L2 > + #define DBC_DBC32_INCR_MASK 0xf000000UL > + #define DBC_DBC32_INCR_SFT 24 > + #define DBC_DBC32_ABS 0x10000000UL > + #define DBC_DBC32_TYPE_MASK 0xe0000000UL > + #define DBC_DBC32_TYPE_SFT 29 > + #define DBC_DBC32_TYPE_SQ (0x0UL << 29) > + #define DBC_DBC32_TYPE_LAST DBC_DBC32_TYPE_SQ > }; Please use some sensible choice for horizontal white space and not just random sprinkling. Jason