From: Davide Caratti <dcara...@redhat.com> Date: Tue, 16 May 2017 18:27:45 +0200
> @@ -2243,6 +2243,30 @@ __wsum skb_copy_and_csum_bits(const struct sk_buff > *skb, int offset, > } > EXPORT_SYMBOL(skb_copy_and_csum_bits); > > +static __wsum warn_crc32c_csum_update(const void *buff, int len, __wsum sum) > +{ > + net_warn_ratelimited( > + "%s: attempt to compute crc32c without libcrc32c.ko\n", > + __func__); > + return 0; > +} > + > +static __wsum warn_crc32c_csum_combine(__wsum csum, __wsum csum2, > + int offset, int len) > +{ > + net_warn_ratelimited( > + "%s: attempt to compute crc32c without libcrc32c.ko\n", > + __func__); > + return 0; > +} > + > +const struct skb_checksum_ops *crc32c_csum_stub __read_mostly = > + &(struct skb_checksum_ops) { > + .update = warn_crc32c_csum_update, > + .combine = warn_crc32c_csum_combine, > +}; > +EXPORT_SYMBOL(crc32c_csum_stub); Please, if you are going to do this, declare things in a more traditional and canonical way: static const struct skb_checksum_ops default_crc32c_ops = { .update = warn_crc32c_csum_update, .combine = warn_crc32c_csum_combine, }; const struct skb_checksum_ops *crc32c_csum_stub __read_mostly = &default_crc32c_ops; > +static const struct skb_checksum_ops *crc32c_csum_ops __read_mostly = > + &(struct skb_checksum_ops) { > + .update = sctp_csum_update, > + .combine = sctp_csum_combine, > +}; Likewise.