Re: drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c:102:28: warning: taking address of packed member 'csr_ops' of class or structure 'adf_hw_device_data' may result in an unaligned pointer value

From: Andy Shevchenko
Date: Wed Sep 01 2021 - 07:18:36 EST


On Wed, Sep 01, 2021 at 12:19:08AM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: b91db6a0b52e019b6bdabea3f1dbe36d85c7e52c
> commit: f9c697c4bfc6002d92e8015b65fe2a79acadb416 crypto: qat - split transport CSR access logic
> date: 10 months ago
> config: i386-randconfig-r012-20210831 (attached as .config)
> compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 4b1fde8a2b681dad2ce0c082a5d6422caa06b0bc)
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f9c697c4bfc6002d92e8015b65fe2a79acadb416
> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout f9c697c4bfc6002d92e8015b65fe2a79acadb416
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=i386
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
> All warnings (new ones prefixed by >>):
>
> clang-14: warning: optimization flag '-falign-jumps=0' is not supported [-Wignored-optimization-argument]
> In file included from drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c:3:
> In file included from drivers/crypto/qat/qat_c62xvf/../qat_common/adf_accel_devices.h:5:
> In file included from include/linux/interrupt.h:11:
> In file included from include/linux/hardirq.h:5:
> In file included from include/linux/context_tracking_state.h:5:
> In file included from include/linux/percpu.h:6:
> In file included from include/linux/preempt.h:78:
> In file included from arch/x86/include/asm/preempt.h:7:
> In file included from include/linux/thread_info.h:38:
> arch/x86/include/asm/thread_info.h:183:13: warning: calling '__builtin_frame_address' with a nonzero argument is unsafe [-Wframe-address]
> oldframe = __builtin_frame_address(1);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~
> arch/x86/include/asm/thread_info.h:185:11: warning: calling '__builtin_frame_address' with a nonzero argument is unsafe [-Wframe-address]
> frame = __builtin_frame_address(2);

Funny, but it's not related to the reported issue.

> ^~~~~~~~~~~~~~~~~~~~~~~~~~
> >> drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c:102:28: warning: taking address of packed member 'csr_ops' of class or structure 'adf_hw_device_data' may result in an unaligned pointer value [-Waddress-of-packed-member]
> adf_gen2_init_hw_csr_ops(&hw_data->csr_ops);
> ^~~~~~~~~~~~~~~~
> 3 warnings generated.


Why on Earth the struct adf_hw_device_data, that contains a lot of pointers,
marked as __packed?! That __packed has to be dropped.

--
With Best Regards,
Andy Shevchenko