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, ...)                                               \