On Wed, Mar 18, 2020 at 08:27:32PM -0600, Jason A. Donenfeld wrote: > It also fixes up a bug in the (optional, costly) stride test that > prevented it from running on arm64. [...] > diff --git a/lib/crypto/chacha20poly1305-selftest.c b/lib/crypto/chacha20poly1305-selftest.c > index c391a91364e9..fa43deda2660 100644 > --- a/lib/crypto/chacha20poly1305-selftest.c > +++ b/lib/crypto/chacha20poly1305-selftest.c > @@ -9028,10 +9028,15 @@ bool __init chacha20poly1305_selftest(void) > && total_len <= 1 << 10; ++total_len) { > for (i = 0; i <= total_len; ++i) { > for (j = i; j <= total_len; ++j) { > + k = 0; > sg_init_table(sg_src, 3); > - sg_set_buf(&sg_src[0], input, i); > - sg_set_buf(&sg_src[1], input + i, j - i); > - sg_set_buf(&sg_src[2], input + j, total_len - j); > + if (i) > + sg_set_buf(&sg_src[k++], input, i); > + if (j - i) > + sg_set_buf(&sg_src[k++], input + i, j - i); > + if (total_len - j) > + sg_set_buf(&sg_src[k++], input + j, total_len - j); > + sg_init_marker(sg_src, k); > memset(computed_output, 0, total_len); > memset(input, 0, total_len); So with this test fix, does this test find the bug? Apparently the empty scatterlist elements caused some problem? What was that problem exactly? And what do you mean by this "prevented the test from running on arm64"? If there is a problem it seems we should something else about about it, e.g. debug checks that work in consistent way on all architectures, documenting what the function expects, or make it just work properly with empty scatterlist elements. - Eric