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: Tue Jul 23 2024 - 21:09:36 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5ad7ff8738b8bd238ca899df08badb1f61bcc39e
commit: 782fe08e9861d00ce8aca370453dd9ceb9a23d50 soc: fsl: qbman: FSL_DPAA depends on COMPILE_TEST
date: 9 days ago
config: arm-randconfig-r123-20240723 (https://download.01.org/0day-ci/archive/20240724/202407240923.IiSHts5M-lkp@xxxxxxxxx/config)
compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project ad154281230d83ee551e12d5be48bb956ef47ed3)
reproduce: (https://download.01.org/0day-ci/archive/20240724/202407240923.IiSHts5M-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/202407240923.IiSHts5M-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:31:
In file included from drivers/soc/fsl/qbman/dpaa_sys.h:46:
In file included from arch/arm/include/asm/cacheflush.h:10:
In file included from include/linux/mm.h:2258:
include/linux/vmstat.h:514:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
514 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
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]
383 | } context_a;
| ^
2 warnings 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