Hi Linus, I love your patch! Perhaps something to improve: [auto build test WARNING on herbert-cryptodev-2.6/master] [also build test WARNING on atorgue-stm32/stm32-next linus/master v6.1-rc7 next-20221130] [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/Linus-Walleij/crypto-stm32-reuse-for-Ux500/20221126-063527 base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master patch link: https://lore.kernel.org/r/20221125223217.2409659-4-linus.walleij%40linaro.org patch subject: [PATCH v2 3/4] crypto: stm32/cryp - enable for use with Ux500 config: arm-multi_v7_defconfig compiler: arm-linux-gnueabi-gcc (GCC) 12.1.0 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://github.com/intel-lab-lkp/linux/commit/7b018df783081bdcb0e63fd49a40e570ab9e03da git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Linus-Walleij/crypto-stm32-reuse-for-Ux500/20221126-063527 git checkout 7b018df783081bdcb0e63fd49a40e570ab9e03da # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/crypto/stm32/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> drivers/crypto/stm32/stm32-cryp.c:395: warning: expecting prototype for swap_bits_in_byte(). Prototype was for ux500_swap_bits_in_byte() instead vim +395 drivers/crypto/stm32/stm32-cryp.c 372 373 /** 374 * swap_bits_in_byte() - mirror the bits in a byte 375 * @b: the byte to be mirrored 376 * 377 * The bits are swapped the following way: 378 * Byte b include bits 0-7, nibble 1 (n1) include bits 0-3 and 379 * nibble 2 (n2) bits 4-7. 380 * 381 * Nibble 1 (n1): 382 * (The "old" (moved) bit is replaced with a zero) 383 * 1. Move bit 6 and 7, 4 positions to the left. 384 * 2. Move bit 3 and 5, 2 positions to the left. 385 * 3. Move bit 1-4, 1 position to the left. 386 * 387 * Nibble 2 (n2): 388 * 1. Move bit 0 and 1, 4 positions to the right. 389 * 2. Move bit 2 and 4, 2 positions to the right. 390 * 3. Move bit 3-6, 1 position to the right. 391 * 392 * Combine the two nibbles to a complete and swapped byte. 393 */ 394 static inline u8 ux500_swap_bits_in_byte(u8 b) > 395 { 396 #define R_SHIFT_4_MASK 0xc0 /* Bits 6 and 7, right shift 4 */ 397 #define R_SHIFT_2_MASK 0x28 /* (After right shift 4) Bits 3 and 5, 398 right shift 2 */ 399 #define R_SHIFT_1_MASK 0x1e /* (After right shift 2) Bits 1-4, 400 right shift 1 */ 401 #define L_SHIFT_4_MASK 0x03 /* Bits 0 and 1, left shift 4 */ 402 #define L_SHIFT_2_MASK 0x14 /* (After left shift 4) Bits 2 and 4, 403 left shift 2 */ 404 #define L_SHIFT_1_MASK 0x78 /* (After left shift 1) Bits 3-6, 405 left shift 1 */ 406 407 u8 n1; 408 u8 n2; 409 410 /* Swap most significant nibble */ 411 /* Right shift 4, bits 6 and 7 */ 412 n1 = ((b & R_SHIFT_4_MASK) >> 4) | (b & ~(R_SHIFT_4_MASK >> 4)); 413 /* Right shift 2, bits 3 and 5 */ 414 n1 = ((n1 & R_SHIFT_2_MASK) >> 2) | (n1 & ~(R_SHIFT_2_MASK >> 2)); 415 /* Right shift 1, bits 1-4 */ 416 n1 = (n1 & R_SHIFT_1_MASK) >> 1; 417 418 /* Swap least significant nibble */ 419 /* Left shift 4, bits 0 and 1 */ 420 n2 = ((b & L_SHIFT_4_MASK) << 4) | (b & ~(L_SHIFT_4_MASK << 4)); 421 /* Left shift 2, bits 2 and 4 */ 422 n2 = ((n2 & L_SHIFT_2_MASK) << 2) | (n2 & ~(L_SHIFT_2_MASK << 2)); 423 /* Left shift 1, bits 3-6 */ 424 n2 = (n2 & L_SHIFT_1_MASK) << 1; 425 426 return n1 | n2; 427 } 428 -- 0-DAY CI Kernel Test Service https://01.org/lkp