Commit 62673b7d authored by Eric Biggers's avatar Eric Biggers Committed by Jakub Kicinski
Browse files

RDMA/siw: use skb_crc32c() instead of __skb_checksum()



Instead of calling __skb_checksum() with a skb_checksum_ops struct that
does CRC32C, just call the new function skb_crc32c().  This is faster
and simpler.

Acked-by: default avatarLeon Romanovsky <leon@kernel.org>
Reviewed-by: default avatarBernard Metzler <bmt@zurich.ibm.com>
Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
Link: https://patch.msgid.link/20250519175012.36581-5-ebiggers@kernel.org


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 86edc94d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ config RDMA_SIW
	depends on INET && INFINIBAND
	depends on INFINIBAND_VIRT_DMA
	select CRC32
	select NET_CRC32C
	help
	This driver implements the iWARP RDMA transport over
	the Linux TCP/IP network stack. It enables a system with a
+1 −21
Original line number Diff line number Diff line
@@ -693,29 +693,9 @@ static inline void siw_crc_oneshot(const void *data, size_t len, u8 out[4])
	return siw_crc_final(&crc, out);
}

static inline __wsum siw_csum_update(const void *buff, int len, __wsum sum)
{
	return (__force __wsum)crc32c((__force __u32)sum, buff, len);
}

static inline __wsum siw_csum_combine(__wsum csum, __wsum csum2, int offset,
				      int len)
{
	return (__force __wsum)crc32c_combine((__force __u32)csum,
					      (__force __u32)csum2, len);
}

static inline void siw_crc_skb(struct siw_rx_stream *srx, unsigned int len)
{
	const struct skb_checksum_ops siw_cs_ops = {
		.update = siw_csum_update,
		.combine = siw_csum_combine,
	};
	__wsum crc = (__force __wsum)srx->mpa_crc;

	crc = __skb_checksum(srx->skb, srx->skb_offset, len, crc,
			     &siw_cs_ops);
	srx->mpa_crc = (__force u32)crc;
	srx->mpa_crc = skb_crc32c(srx->skb, srx->skb_offset, len, srx->mpa_crc);
}

#define siw_dbg(ibdev, fmt, ...)                                               \