Hi Oded, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on char-misc/char-misc-testing] [also build test WARNING on next-20200730] [cannot apply to linux/master linus/master v5.8-rc7] [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] url: https://github.com/0day-ci/linux/commits/Oded-Gabbay/habanalabs-Replace-dma-fence-mechanism-with-completions/20200730-211536 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git 22362aa30bad6f03b5bcbbeee3cdc61950d40086 config: arm-randconfig-r011-20200731 (attached as .config) compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project c23ae3f18ee3ff11671f4c62ffc66d150b1bcdc2) 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 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> drivers/misc/habanalabs/common/firmware_if.c:368:14: warning: implicit conversion from '__le64' (aka 'unsigned long long') to '__le32' (aka 'unsigned int') changes value from 72057594037927936 to 0 [-Wconstant-conversion] pkt.index = cpu_to_le64(armcp_pcie_throughput_rx); ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/byteorder/generic.h:86:21: note: expanded from macro 'cpu_to_le64' #define cpu_to_le64 __cpu_to_le64 ^ include/uapi/linux/byteorder/big_endian.h:31:27: note: expanded from macro '__cpu_to_le64' #define __cpu_to_le64(x) ((__force __le64)__swab64((x))) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. vim +368 drivers/misc/habanalabs/common/firmware_if.c 356 357 int hl_fw_armcp_pci_counters_get(struct hl_device *hdev, 358 struct hl_info_pci_counters *counters) 359 { 360 struct armcp_packet pkt = {}; 361 long result; 362 int rc; 363 364 pkt.ctl = cpu_to_le32(ARMCP_PACKET_PCIE_THROUGHPUT_GET << 365 ARMCP_PKT_CTL_OPCODE_SHIFT); 366 367 /* Fetch PCI rx counter */ > 368 pkt.index = cpu_to_le64(armcp_pcie_throughput_rx); 369 rc = hdev->asic_funcs->send_cpu_message(hdev, (u32 *) &pkt, sizeof(pkt), 370 HL_ARMCP_INFO_TIMEOUT_USEC, &result); 371 if (rc) { 372 dev_err(hdev->dev, 373 "Failed to handle ArmCP PCI info pkt, error %d\n", rc); 374 return rc; 375 } 376 counters->rx_throughput = result; 377 378 /* Fetch PCI tx counter */ 379 pkt.index = cpu_to_le64(armcp_pcie_throughput_tx); 380 rc = hdev->asic_funcs->send_cpu_message(hdev, (u32 *) &pkt, sizeof(pkt), 381 HL_ARMCP_INFO_TIMEOUT_USEC, &result); 382 if (rc) { 383 dev_err(hdev->dev, 384 "Failed to handle ArmCP PCI info pkt, error %d\n", rc); 385 return rc; 386 } 387 counters->tx_throughput = result; 388 389 /* Fetch PCI replay counter */ 390 pkt.ctl = cpu_to_le32(ARMCP_PACKET_PCIE_REPLAY_CNT_GET << 391 ARMCP_PKT_CTL_OPCODE_SHIFT); 392 393 rc = hdev->asic_funcs->send_cpu_message(hdev, (u32 *) &pkt, sizeof(pkt), 394 HL_ARMCP_INFO_TIMEOUT_USEC, &result); 395 if (rc) { 396 dev_err(hdev->dev, 397 "Failed to handle ArmCP PCI info pkt, error %d\n", rc); 398 return rc; 399 } 400 counters->replay_cnt = (u32) result; 401 402 return rc; 403 } 404 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org