On Tue, Nov 24, 2020 at 12:51 PM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > On Tue, Nov 24, 2020 at 12:08:40PM +0100, Jann Horn wrote: > > > Since commit acaab7335bd6 ("lib/zlib: remove outdated and incorrect > > > pre-increment optimization"), get_unaligned16() is only used when > > > !CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS. > > > > > > Hence, make CC=clang W=1 warns: > > > > > > lib/zlib_inflate/inffast.c:20:1: > > > warning: unused function 'get_unaligned16' [-Wunused-function] > > > > > > Define get_unaligned16() only when it is actually used. > > > > > > Signed-off-by: Lukas Bulwahn <lukas.bulwahn@xxxxxxxxx> > > > > AFAICS a nicer option would be to "#include <asm/unaligned.h>" and > > then use "get_unaligned", which should automatically do the right > > thing everywhere and remove the need for defining get_unaligned16() > > and checking CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS entirely? > > Yes, that is the right thing to do. It's possible that this didn't work when the code was originally added: The decompressor functions are called from the compressed boot path, which is a bit limited regarding which headers it can include, at least on some architectures. I would recommend test-building this for all architectures that include ../../../../lib/decompress_inflate.c from their boot code. Arnd