> > > @@ -234,7 +234,7 @@ struct t4_cqe { > > > > > > /* used for SQ completion processing */ > > > #define CQE_WRID_SQ_IDX(x) ((x)->u.scqe.cidx) > > > -#define CQE_WRID_FR_STAG(x) (be32_to_cpu((x)->u.scqe.stag)) > > > +#define CQE_WRID_FR_STAG(x) ((x)->u.scqe.stag) > > > > This is incorrect. The stag is filled in by HW which is BE. The declaration of > > scqe.stag needs to be __be32. > > So why do you declare stag as u32? I'm saying it is a bug that stag is declared as u32. t4_cqe.u.scqe.stag should be declared as __be32. So the fix for the sparse warning should be something like this: diff --git a/drivers/infiniband/hw/cxgb4/t4.h b/drivers/infiniband/hw/cxgb4/t4.h index e765c00..bcb80ca6 100644 --- a/drivers/infiniband/hw/cxgb4/t4.h +++ b/drivers/infiniband/hw/cxgb4/t4.h @@ -171,7 +171,7 @@ struct t4_cqe { __be32 msn; } rcqe; struct { - u32 stag; + __be32 stag; u16 nada2; u16 cidx; } scqe; Steve. -- 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