include/soc/fsl/qman.h:383:4: warning: field context_a within 'struct qm_fqd' is less aligned than 'union (unnamed union at include/soc/fsl/qman.h:365:2)' and is usually due to 'struct qm_fqd' being packed, which can lead to unaligned accesses

From: kernel test robot
Date: Wed Apr 09 2025 - 04:55:27 EST


Hi Breno,

FYI, the error/warning still remains.

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: a24588245776dafc227243a01bfbeb8a59bafba9
commit: 782fe08e9861d00ce8aca370453dd9ceb9a23d50 soc: fsl: qbman: FSL_DPAA depends on COMPILE_TEST
date: 9 months ago
config: arm-randconfig-r063-20250409 (https://download.01.org/0day-ci/archive/20250409/202504091657.OgPuMa8C-lkp@xxxxxxxxx/config)
compiler: clang version 16.0.6 (https://github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250409/202504091657.OgPuMa8C-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202504091657.OgPuMa8C-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

In file included from drivers/soc/fsl/qbman/qman_ccsr.c:31:
In file included from drivers/soc/fsl/qbman/qman_priv.h:33:
>> include/soc/fsl/qman.h:383:4: warning: field context_a within 'struct qm_fqd' is less aligned than 'union (unnamed union at include/soc/fsl/qman.h:365:2)' and is usually due to 'struct qm_fqd' being packed, which can lead to unaligned accesses [-Wunaligned-access]
} context_a;
^
1 warning generated.


vim +383 include/soc/fsl/qman.h

c535e923bb97a4 Claudiu Manoil 2016-09-22 346
c535e923bb97a4 Claudiu Manoil 2016-09-22 347 struct qm_fqd {
c535e923bb97a4 Claudiu Manoil 2016-09-22 348 /* _res[6-7], orprws[3-5], oa[2], olws[0-1] */
c535e923bb97a4 Claudiu Manoil 2016-09-22 349 u8 orpc;
c535e923bb97a4 Claudiu Manoil 2016-09-22 350 u8 cgid;
c535e923bb97a4 Claudiu Manoil 2016-09-22 351 __be16 fq_ctrl; /* See QM_FQCTRL_<...> */
c535e923bb97a4 Claudiu Manoil 2016-09-22 352 __be16 dest_wq; /* channel[3-15], wq[0-2] */
c535e923bb97a4 Claudiu Manoil 2016-09-22 353 __be16 ics_cred; /* 15-bit */
c535e923bb97a4 Claudiu Manoil 2016-09-22 354 /*
c535e923bb97a4 Claudiu Manoil 2016-09-22 355 * For "Initialize Frame Queue" commands, the write-enable mask
c535e923bb97a4 Claudiu Manoil 2016-09-22 356 * determines whether 'td' or 'oac_init' is observed. For query
c535e923bb97a4 Claudiu Manoil 2016-09-22 357 * commands, this field is always 'td', and 'oac_query' (below) reflects
c535e923bb97a4 Claudiu Manoil 2016-09-22 358 * the Overhead ACcounting values.
c535e923bb97a4 Claudiu Manoil 2016-09-22 359 */
c535e923bb97a4 Claudiu Manoil 2016-09-22 360 union {
c535e923bb97a4 Claudiu Manoil 2016-09-22 361 __be16 td; /* "Taildrop": _res[13-15], mant[5-12], exp[0-4] */
c535e923bb97a4 Claudiu Manoil 2016-09-22 362 struct qm_fqd_oac oac_init;
c535e923bb97a4 Claudiu Manoil 2016-09-22 363 };
c535e923bb97a4 Claudiu Manoil 2016-09-22 364 __be32 context_b;
c535e923bb97a4 Claudiu Manoil 2016-09-22 365 union {
c535e923bb97a4 Claudiu Manoil 2016-09-22 366 /* Treat it as 64-bit opaque */
c535e923bb97a4 Claudiu Manoil 2016-09-22 367 __be64 opaque;
c535e923bb97a4 Claudiu Manoil 2016-09-22 368 struct {
c535e923bb97a4 Claudiu Manoil 2016-09-22 369 __be32 hi;
c535e923bb97a4 Claudiu Manoil 2016-09-22 370 __be32 lo;
c535e923bb97a4 Claudiu Manoil 2016-09-22 371 };
c535e923bb97a4 Claudiu Manoil 2016-09-22 372 /* Treat it as s/w portal stashing config */
c535e923bb97a4 Claudiu Manoil 2016-09-22 373 /* see "FQD Context_A field used for [...]" */
c535e923bb97a4 Claudiu Manoil 2016-09-22 374 struct {
c535e923bb97a4 Claudiu Manoil 2016-09-22 375 struct qm_fqd_stashing stashing;
c535e923bb97a4 Claudiu Manoil 2016-09-22 376 /*
c535e923bb97a4 Claudiu Manoil 2016-09-22 377 * 48-bit address of FQ context to
c535e923bb97a4 Claudiu Manoil 2016-09-22 378 * stash, must be cacheline-aligned
c535e923bb97a4 Claudiu Manoil 2016-09-22 379 */
c535e923bb97a4 Claudiu Manoil 2016-09-22 380 __be16 context_hi;
c535e923bb97a4 Claudiu Manoil 2016-09-22 381 __be32 context_lo;
c535e923bb97a4 Claudiu Manoil 2016-09-22 382 } __packed;
c535e923bb97a4 Claudiu Manoil 2016-09-22 @383 } context_a;
c535e923bb97a4 Claudiu Manoil 2016-09-22 384 struct qm_fqd_oac oac_query;
c535e923bb97a4 Claudiu Manoil 2016-09-22 385 } __packed;
c535e923bb97a4 Claudiu Manoil 2016-09-22 386

:::::: The code at line 383 was first introduced by commit
:::::: c535e923bb97a4b361e89a6383693482057f8b0c soc/fsl: Introduce DPAA 1.x QMan device driver

:::::: TO: Claudiu Manoil <claudiu.manoil@xxxxxxx>
:::::: CC: Scott Wood <oss@xxxxxxxxxxxx>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki