From f150e2736f346a3171f002e660c3dfc653cc11cd Mon Sep 17 00:00:00 2001 From: Sebastian Sanchez Date: Thu, 1 Feb 2018 10:46:15 -0800 Subject: IB/hfi1: Compute BTH only for RDMA_WRITE_LAST/SEND_LAST packet In hfi1_rc_rcv(), BTH is computed for all packets received. However, it's only used for packets received with opcodes RDMA_WRITE_LAST and SEND_LAST, and it is a costly operation. Compute BTH only in the RDMA_WRITE_LAST/SEND_LAST code path and let the compiler handle endianness conversion for bitwise operations. Reviewed-by: Mike Marciniszyn Signed-off-by: Sebastian Sanchez Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe --- include/rdma/ib_hdrs.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include/rdma/ib_hdrs.h') diff --git a/include/rdma/ib_hdrs.h b/include/rdma/ib_hdrs.h index c124d515f7d5..6b1e8039971d 100644 --- a/include/rdma/ib_hdrs.h +++ b/include/rdma/ib_hdrs.h @@ -331,4 +331,8 @@ static inline u8 ib_bth_get_tver(struct ib_other_headers *ohdr) IB_BTH_TVER_MASK); } +static inline bool ib_bth_is_solicited(struct ib_other_headers *ohdr) +{ + return ohdr->bth[0] & cpu_to_be32(IB_BTH_SOLICITED); +} #endif /* IB_HDRS_H */ -- cgit