From: David Miller <davem@xxxxxxxxxxxxx> Date: Fri, 02 Jun 2017 14:39:06 -0400 (EDT) > From: "Darrick J. Wong" <darrick.wong@xxxxxxxxxx> > Date: Fri, 2 Jun 2017 11:08:08 -0700 > >> ext4/jbd2's crc32c implementations will also need a fix like this for >> {ext4,jbd2}_chksum. Note that both of these modules call the crypto api >> directly to avoid a static dependence on libcrc32c; this was done to >> reduce kernel footprint for applications that don't need it. (ext2, >> ext3, and ext4 before the metadata_csum feature existed). > > Good catch. I even looked at that code the other day so should > have spotted it as well. > > I'll integrate fixes for those into my patch when I get a chance, > thanks! Actually, ext4 doesn't trigger the problem because the on-stack object used in ext4 is a fixed size at compile time. Which is technically an ill-advised assumption to make. Even the generic libcrc32c.c doesn't assume that the context area is 4 bytes for crc32c. Anyways, back to the main point, the gcc bug only triggers when alloca() like constructs are used. That's why I scanned for SHASH_DESC_ON_STACK() to see exactly where the workaround is necessary.