Re: [PATCH v5 3/4] dmaengine: dw-edma: Add support for native HDMA

From: kernel test robot
Date: Sat Mar 04 2023 - 01:51:48 EST


Hi Cai,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on pci/next]
[also build test WARNING on linus/master next-20230303]
[cannot apply to vkoul-dmaengine/next pci/for-linus v6.2]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Cai-Huoqing/dmaengine-dw-edma-Rename-dw_edma_core_ops-structure-to-dw_edma_plat_ops/20230303-204905
base: https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git next
patch link: https://lore.kernel.org/r/20230303124642.5519-4-cai.huoqing%40linux.dev
patch subject: [PATCH v5 3/4] dmaengine: dw-edma: Add support for native HDMA
config: arm-randconfig-r016-20230303 (https://download.01.org/0day-ci/archive/20230304/202303041444.2M7BzjRU-lkp@xxxxxxxxx/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 67409911353323ca5edf2049ef0df54132fa1ca7)
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
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://github.com/intel-lab-lkp/linux/commit/061ed1e9b9bf70de12d7885880ee6302865a72d0
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Cai-Huoqing/dmaengine-dw-edma-Rename-dw_edma_core_ops-structure-to-dw_edma_plat_ops/20230303-204905
git checkout 061ed1e9b9bf70de12d7885880ee6302865a72d0
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/dma/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Link: https://lore.kernel.org/oe-kbuild-all/202303041444.2M7BzjRU-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

In file included from drivers/dma/dw-edma/dw-hdma-v0-core.c:12:
>> drivers/dma/dw-edma/dw-hdma-v0-regs.h:71:4: warning: field msi_stop within 'struct dw_hdma_v0_ch_regs' is less aligned than 'union (unnamed union at drivers/dma/dw-edma/dw-hdma-v0-regs.h:65:2)' and is usually due to 'struct dw_hdma_v0_ch_regs' being packed, which can lead to unaligned accesses [-Wunaligned-access]
} msi_stop;
^
>> drivers/dma/dw-edma/dw-hdma-v0-regs.h:78:4: warning: field msi_watermark within 'struct dw_hdma_v0_ch_regs' is less aligned than 'union (unnamed union at drivers/dma/dw-edma/dw-hdma-v0-regs.h:72:2)' and is usually due to 'struct dw_hdma_v0_ch_regs' being packed, which can lead to unaligned accesses [-Wunaligned-access]
} msi_watermark;
^
>> drivers/dma/dw-edma/dw-hdma-v0-regs.h:85:4: warning: field msi_abort within 'struct dw_hdma_v0_ch_regs' is less aligned than 'union (unnamed union at drivers/dma/dw-edma/dw-hdma-v0-regs.h:79:2)' and is usually due to 'struct dw_hdma_v0_ch_regs' being packed, which can lead to unaligned accesses [-Wunaligned-access]
} msi_abort;
^
3 warnings generated.


vim +71 drivers/dma/dw-edma/dw-hdma-v0-regs.h

26
27 struct dw_hdma_v0_ch_regs {
28 u32 ch_en; /* 0x0000 */
29 u32 doorbell; /* 0x0004 */
30 u32 prefetch; /* 0x0008 */
31 u32 handshake; /* 0x000c */
32 union {
33 u64 reg; /* 0x0010..0x0014 */
34 struct {
35 u32 lsb; /* 0x0010 */
36 u32 msb; /* 0x0014 */
37 };
38 } llp;
39 u32 cycle_sync; /* 0x0018 */
40 u32 transfer_size; /* 0x001c */
41 union {
42 u64 reg; /* 0x0020..0x0024 */
43 struct {
44 u32 lsb; /* 0x0020 */
45 u32 msb; /* 0x0024 */
46 };
47 } sar;
48 union {
49 u64 reg; /* 0x0028..0x002c */
50 struct {
51 u32 lsb; /* 0x0028 */
52 u32 msb; /* 0x002c */
53 };
54 } dar;
55
56 u32 watermark_en; /* 0x0030 */
57 u32 control1; /* 0x0034 */
58 u32 func_num; /* 0x0038 */
59 u32 qos; /* 0x003c */
60 u32 reserved; /* 0x0040..0x007c */
61 u32 ch_stat; /* 0x0080 */
62 u32 int_stat; /* 0x0084 */
63 u32 int_setup; /* 0x0088 */
64 u32 int_clear; /* 0x008c */
65 union {
66 u64 reg; /* 0x0090..0x0094 */
67 struct {
68 u32 lsb; /* 0x0090 */
69 u32 msb; /* 0x0094 */
70 };
> 71 } msi_stop;
72 union {
73 u64 reg; /* 0x0098..0x009c */
74 struct {
75 u32 lsb; /* 0x0098 */
76 u32 msb; /* 0x009c */
77 };
> 78 } msi_watermark;
79 union {
80 u64 reg; /* 0x00a0..0x00a4 */
81 struct {
82 u32 lsb; /* 0x00a0 */
83 u32 msb; /* 0x00a4 */
84 };
> 85 } msi_abort;
86 u32 msi_msgdata; /* 0x00a8 */
87 } __packed;
88

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