Different kernels will be different levels of fussy about the bounded loop you're using there. Bounded loops are themselves a relatively recent feature.
Of course, checksum fixups in eBPF are idiomatically incremental.