From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7BE84C6FD1F for ; Tue, 2 Apr 2024 08:56:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0D4606B0093; Tue, 2 Apr 2024 04:56:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0850D6B0095; Tue, 2 Apr 2024 04:56:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E67966B0098; Tue, 2 Apr 2024 04:56:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id C12C26B0093 for ; Tue, 2 Apr 2024 04:56:57 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 7E1EC140A3D for ; Tue, 2 Apr 2024 08:56:57 +0000 (UTC) X-FDA: 81963986874.09.F6969EA Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) by imf08.hostedemail.com (Postfix) with ESMTP id 571FC16000C for ; Tue, 2 Apr 2024 08:56:54 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=XoF7Sz7P; spf=pass (imf08.hostedemail.com: domain of lkp@intel.com designates 192.198.163.14 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712048215; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=ZOXD8agINstf5KOuONxJXzcjWF2PbNHlRd7+WKUvW+0=; b=or8K1GW+TtZaw/lt/XrPxAufEr2Sgt5f1s+eC7ODLD80ESBy3JIm14ZXYsWONphiMzrIPb sj+VeyosfGvCK9V9R2rh7LKwPe1lSYhtJwcAbclYoGOwuoL0vbrbXXpknQ1wDz4shpEEVx m2iD5x7puN2O7te1+1Wbi8U1qwWjmsU= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=XoF7Sz7P; spf=pass (imf08.hostedemail.com: domain of lkp@intel.com designates 192.198.163.14 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712048215; a=rsa-sha256; cv=none; b=KQ0G3EWgpm/vZYD8FXD7db80uOIkex4vke5YZxTFG3ble1aCal/XgFke5tShbFUQA5i/bN 8Obl/TqlfnZAsa+LfLiOap2aBbbJAx8RC7N1WGFyLWB6B3KjpHaHkYVGXbltAlUy0Uw4W+ SJYhgRQE6Opyg0cgPp/uZWg+laulz+I= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1712048214; x=1743584214; h=date:from:to:cc:subject:message-id:mime-version; bh=eK2xOzGpkQHhxaM5f2ZtWml8mizLffoMXlsL1usNozs=; b=XoF7Sz7PsOe+czhHODzYank/HZwD7kKjwjp1bnTRFmz/kv1j+2WvXFZU UC7p+3cA4BLHiB+TNRq16va7holrZS48pMCxDhat9CYxj/EtWJaMcIF50 IuqjHob55/JFhP7Wjd1RUb5+0LIWaOzzqZhWWpq1zrgtHtGh8SaRLWiKW TGusKG/0HYBzackBs1YBXkarfbN/u3kdRHF5uwvNRfJrVFP/QvIq1UAjj lEZGrW8GcF2NaebKR7EGSZ9F8U01T4fFi0Z0YU7K57IKGc3pzVcQxqnOh ljTHpTSSVkhFcorKCVRN0wEpd1WuOeiOQmH3mDJz72owV7nnNSrr1BsmL Q==; X-CSE-ConnectionGUID: IEr9bldLSOOeWz8HPUZbGA== X-CSE-MsgGUID: mm5WLfLVT1KtC95vcarm3Q== X-IronPort-AV: E=McAfee;i="6600,9927,11031"; a="7415595" X-IronPort-AV: E=Sophos;i="6.07,174,1708416000"; d="scan'208";a="7415595" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Apr 2024 01:56:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,174,1708416000"; d="scan'208";a="17971351" Received: from lkp-server02.sh.intel.com (HELO 90ee3aa53dbd) ([10.239.97.151]) by orviesa009.jf.intel.com with ESMTP; 02 Apr 2024 01:56:51 -0700 Received: from kbuild by 90ee3aa53dbd with local (Exim 4.96) (envelope-from ) id 1rrZwl-00014T-1h; Tue, 02 Apr 2024 08:56:47 +0000 Date: Tue, 2 Apr 2024 16:56:15 +0800 From: kernel test robot To: "Paul E. McKenney" Cc: oe-kbuild-all@lists.linux.dev, Linux Memory Management List Subject: [linux-next:master 2559/3220] arch/riscv/include/asm/cmpxchg.h:329:23: warning: assignment to 'const struct gre_protocol *' from 'uintptr_t' {aka 'long unsigned int'} makes pointer from integer without a cast Message-ID: <202404021638.QKhbdQ4E-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspamd-Queue-Id: 571FC16000C X-Rspam-User: X-Stat-Signature: fupiiwqemommics3xnowf4gja1zajou7 X-Rspamd-Server: rspam01 X-HE-Tag: 1712048214-18295 X-HE-Meta: U2FsdGVkX18CQb+i88HG/rcdAX1ClJ0AdSuEVm2MZ5zZ5vLxBgL4LuH45gpktG/ZaL6YqJDkEniJ+tM1+I5NCjOwU6o1Mqjtb7pO7C8QCee5fXcC9yTRiYbtMZ7opHzIv9A0zapD/+1b/rHcYmk5C2prGF4lYRc4lTNSzWu+nAE/JxMvsgH0HkR703BJMXVQhepUR7IGx4uA+A03YFo+KoDQjEUSHzFpGorT8nBduVLnWvKGBas9M+j9y+xGjTjgimUyNrtq6FjGis/Y3X5ksZtXxTeHdlqlnymACfxE6wSLg/PbzuvS8SVOepPuKjh89DUzfpYv/7AQycrrHLADq0RVBPa9eL7NpXRML0S9ntpj3zoQ3zTUeIGDjgG2O9EUQOUivP/vymnXU14WZjog0ZfqphKVaI4RRWs6bjBfgoPPd/jKpHB/sQ+8W0Fak8SFKN0BxBhX1CJOXzTts8HPC4tRmfGwkrp89OGqOruDt2lNw2b8cDEomvjIE7jONPlKBNUu5SmHZyELSXJXgT9fE/tmrWeLbylYENIIK1e6v+5YsilhZNUyChHb7PY+xu+AKG3sBGDrl1o9ioQH2OglUHI0iolQ2gAjVgzFPoyC3JT40SEO5QqxcqM/SYDGvRoYZHKJG5ogmS8gt7oTYsMYJGqzJWNbnqnJIewGIX/D/b+ZDiudn9bdobFkv+j6tNr+frBn/W3HCsX8sQ7dSJIzSWX2QrUE43GoeuqfnykKgFlK+7bBLS24mrZh/gf9+OoMroL2lE2D/mVeC7uCrCyUAhuMRSO3fkAbPnaQyqEbfcetR3j8sijPGDlFWh3/z4MZZW4i85qpS0u7G/WDVAfOqfgIR1lRVRMM+ovVU7q1e47CZxgKLBUKpUhyRrnglHKRz2saoiXvpDPntUi2SrF6f7OqOKMVNd3cVWlYzOLdwI4= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: c0b832517f627ead3388c6f0c74e8ac10ad5774b commit: df35ee400e06b23ecd44fdb66451a5343932f834 [2559/3220] riscv: Emulate one-byte and two-byte cmpxchg config: riscv-randconfig-r036-20230619 (https://download.01.org/0day-ci/archive/20240402/202404021638.QKhbdQ4E-lkp@intel.com/config) compiler: riscv64-linux-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240402/202404021638.QKhbdQ4E-lkp@intel.com/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 | Closes: https://lore.kernel.org/oe-kbuild-all/202404021638.QKhbdQ4E-lkp@intel.com/ All warnings (new ones prefixed by >>): In file included from arch/riscv/include/asm/atomic.h:19, from include/linux/atomic.h:7, from include/linux/cpumask.h:14, from include/linux/smp.h:13, from arch/riscv/include/asm/mmiowb.h:12, from arch/riscv/include/asm/mmio.h:16, from arch/riscv/include/asm/clint.h:10, from arch/riscv/include/asm/timex.h:15, from include/linux/timex.h:67, from include/linux/time32.h:13, from include/linux/time.h:60, from include/linux/stat.h:19, from include/linux/module.h:13, from net/ipv4/gre_demux.c:10: net/ipv4/gre_demux.c: In function 'gre_add_protocol': arch/riscv/include/asm/cmpxchg.h:329:62: warning: passing argument 2 of 'cmpxchg_emu_u8' makes integer from pointer without a cast [-Wint-conversion] 329 | __ret = cmpxchg_emu_u8((volatile u8 *)__ptr, __old, __new); \ | ^~~~~ | | | const struct gre_protocol * arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ net/ipv4/gre_demux.c:36:17: note: in expansion of macro 'cmpxchg' 36 | return (cmpxchg((const struct gre_protocol **)&gre_proto[version], NULL, proto) == NULL) ? | ^~~~~~~ In file included from arch/riscv/include/asm/cmpxchg.h:12: include/linux/cmpxchg-emu.h:13:52: note: expected 'uintptr_t' {aka 'long unsigned int'} but argument is of type 'const struct gre_protocol *' 13 | uintptr_t cmpxchg_emu_u8(volatile u8 *p, uintptr_t old, uintptr_t new); | ~~~~~~~~~~^~~ arch/riscv/include/asm/cmpxchg.h:329:69: warning: passing argument 3 of 'cmpxchg_emu_u8' makes integer from pointer without a cast [-Wint-conversion] 329 | __ret = cmpxchg_emu_u8((volatile u8 *)__ptr, __old, __new); \ | ^~~~~ | | | const struct gre_protocol * arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ net/ipv4/gre_demux.c:36:17: note: in expansion of macro 'cmpxchg' 36 | return (cmpxchg((const struct gre_protocol **)&gre_proto[version], NULL, proto) == NULL) ? | ^~~~~~~ include/linux/cmpxchg-emu.h:13:67: note: expected 'uintptr_t' {aka 'long unsigned int'} but argument is of type 'const struct gre_protocol *' 13 | uintptr_t cmpxchg_emu_u8(volatile u8 *p, uintptr_t old, uintptr_t new); | ~~~~~~~~~~^~~ >> arch/riscv/include/asm/cmpxchg.h:329:23: warning: assignment to 'const struct gre_protocol *' from 'uintptr_t' {aka 'long unsigned int'} makes pointer from integer without a cast [-Wint-conversion] 329 | __ret = cmpxchg_emu_u8((volatile u8 *)__ptr, __old, __new); \ | ^ arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ net/ipv4/gre_demux.c:36:17: note: in expansion of macro 'cmpxchg' 36 | return (cmpxchg((const struct gre_protocol **)&gre_proto[version], NULL, proto) == NULL) ? | ^~~~~~~ arch/riscv/include/asm/cmpxchg.h:333:64: warning: passing argument 2 of 'cmpxchg_emu_u16' makes integer from pointer without a cast [-Wint-conversion] 333 | __ret = cmpxchg_emu_u16((volatile u16 *)__ptr, __old, __new); \ | ^~~~~ | | | const struct gre_protocol * arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ net/ipv4/gre_demux.c:36:17: note: in expansion of macro 'cmpxchg' 36 | return (cmpxchg((const struct gre_protocol **)&gre_proto[version], NULL, proto) == NULL) ? | ^~~~~~~ include/linux/cmpxchg-emu.h:14:54: note: expected 'uintptr_t' {aka 'long unsigned int'} but argument is of type 'const struct gre_protocol *' 14 | uintptr_t cmpxchg_emu_u16(volatile u16 *p, uintptr_t old, uintptr_t new); | ~~~~~~~~~~^~~ arch/riscv/include/asm/cmpxchg.h:333:71: warning: passing argument 3 of 'cmpxchg_emu_u16' makes integer from pointer without a cast [-Wint-conversion] 333 | __ret = cmpxchg_emu_u16((volatile u16 *)__ptr, __old, __new); \ | ^~~~~ | | | const struct gre_protocol * arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ net/ipv4/gre_demux.c:36:17: note: in expansion of macro 'cmpxchg' 36 | return (cmpxchg((const struct gre_protocol **)&gre_proto[version], NULL, proto) == NULL) ? | ^~~~~~~ include/linux/cmpxchg-emu.h:14:69: note: expected 'uintptr_t' {aka 'long unsigned int'} but argument is of type 'const struct gre_protocol *' 14 | uintptr_t cmpxchg_emu_u16(volatile u16 *p, uintptr_t old, uintptr_t new); | ~~~~~~~~~~^~~ arch/riscv/include/asm/cmpxchg.h:333:23: warning: assignment to 'const struct gre_protocol *' from 'uintptr_t' {aka 'long unsigned int'} makes pointer from integer without a cast [-Wint-conversion] 333 | __ret = cmpxchg_emu_u16((volatile u16 *)__ptr, __old, __new); \ | ^ arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ net/ipv4/gre_demux.c:36:17: note: in expansion of macro 'cmpxchg' 36 | return (cmpxchg((const struct gre_protocol **)&gre_proto[version], NULL, proto) == NULL) ? | ^~~~~~~ net/ipv4/gre_demux.c: In function 'gre_del_protocol': arch/riscv/include/asm/cmpxchg.h:329:62: warning: passing argument 2 of 'cmpxchg_emu_u8' makes integer from pointer without a cast [-Wint-conversion] 329 | __ret = cmpxchg_emu_u8((volatile u8 *)__ptr, __old, __new); \ | ^~~~~ | | | const struct gre_protocol * arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ net/ipv4/gre_demux.c:48:16: note: in expansion of macro 'cmpxchg' 48 | ret = (cmpxchg((const struct gre_protocol **)&gre_proto[version], proto, NULL) == proto) ? | ^~~~~~~ include/linux/cmpxchg-emu.h:13:52: note: expected 'uintptr_t' {aka 'long unsigned int'} but argument is of type 'const struct gre_protocol *' 13 | uintptr_t cmpxchg_emu_u8(volatile u8 *p, uintptr_t old, uintptr_t new); | ~~~~~~~~~~^~~ arch/riscv/include/asm/cmpxchg.h:329:69: warning: passing argument 3 of 'cmpxchg_emu_u8' makes integer from pointer without a cast [-Wint-conversion] 329 | __ret = cmpxchg_emu_u8((volatile u8 *)__ptr, __old, __new); \ | ^~~~~ | | | const struct gre_protocol * arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ net/ipv4/gre_demux.c:48:16: note: in expansion of macro 'cmpxchg' 48 | ret = (cmpxchg((const struct gre_protocol **)&gre_proto[version], proto, NULL) == proto) ? | ^~~~~~~ include/linux/cmpxchg-emu.h:13:67: note: expected 'uintptr_t' {aka 'long unsigned int'} but argument is of type 'const struct gre_protocol *' 13 | uintptr_t cmpxchg_emu_u8(volatile u8 *p, uintptr_t old, uintptr_t new); | ~~~~~~~~~~^~~ >> arch/riscv/include/asm/cmpxchg.h:329:23: warning: assignment to 'const struct gre_protocol *' from 'uintptr_t' {aka 'long unsigned int'} makes pointer from integer without a cast [-Wint-conversion] 329 | __ret = cmpxchg_emu_u8((volatile u8 *)__ptr, __old, __new); \ | ^ arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ net/ipv4/gre_demux.c:48:16: note: in expansion of macro 'cmpxchg' 48 | ret = (cmpxchg((const struct gre_protocol **)&gre_proto[version], proto, NULL) == proto) ? | ^~~~~~~ arch/riscv/include/asm/cmpxchg.h:333:64: warning: passing argument 2 of 'cmpxchg_emu_u16' makes integer from pointer without a cast [-Wint-conversion] 333 | __ret = cmpxchg_emu_u16((volatile u16 *)__ptr, __old, __new); \ | ^~~~~ | | | const struct gre_protocol * arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ net/ipv4/gre_demux.c:48:16: note: in expansion of macro 'cmpxchg' 48 | ret = (cmpxchg((const struct gre_protocol **)&gre_proto[version], proto, NULL) == proto) ? | ^~~~~~~ include/linux/cmpxchg-emu.h:14:54: note: expected 'uintptr_t' {aka 'long unsigned int'} but argument is of type 'const struct gre_protocol *' 14 | uintptr_t cmpxchg_emu_u16(volatile u16 *p, uintptr_t old, uintptr_t new); | ~~~~~~~~~~^~~ arch/riscv/include/asm/cmpxchg.h:333:71: warning: passing argument 3 of 'cmpxchg_emu_u16' makes integer from pointer without a cast [-Wint-conversion] 333 | __ret = cmpxchg_emu_u16((volatile u16 *)__ptr, __old, __new); \ | ^~~~~ | | | const struct gre_protocol * arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ net/ipv4/gre_demux.c:48:16: note: in expansion of macro 'cmpxchg' 48 | ret = (cmpxchg((const struct gre_protocol **)&gre_proto[version], proto, NULL) == proto) ? | ^~~~~~~ include/linux/cmpxchg-emu.h:14:69: note: expected 'uintptr_t' {aka 'long unsigned int'} but argument is of type 'const struct gre_protocol *' 14 | uintptr_t cmpxchg_emu_u16(volatile u16 *p, uintptr_t old, uintptr_t new); | ~~~~~~~~~~^~~ arch/riscv/include/asm/cmpxchg.h:333:23: warning: assignment to 'const struct gre_protocol *' from 'uintptr_t' {aka 'long unsigned int'} makes pointer from integer without a cast [-Wint-conversion] 333 | __ret = cmpxchg_emu_u16((volatile u16 *)__ptr, __old, __new); \ | ^ arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ net/ipv4/gre_demux.c:48:16: note: in expansion of macro 'cmpxchg' 48 | ret = (cmpxchg((const struct gre_protocol **)&gre_proto[version], proto, NULL) == proto) ? | ^~~~~~~ net/ipv4/gre_demux.c: In function 'gre_add_protocol': arch/riscv/include/asm/cmpxchg.h:333:23: warning: this statement may fall through [-Wimplicit-fallthrough=] 333 | __ret = cmpxchg_emu_u16((volatile u16 *)__ptr, __old, __new); \ | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ net/ipv4/gre_demux.c:36:17: note: in expansion of macro 'cmpxchg' 36 | return (cmpxchg((const struct gre_protocol **)&gre_proto[version], NULL, proto) == NULL) ? | ^~~~~~~ arch/riscv/include/asm/cmpxchg.h:334:9: note: here 334 | case 4: \ | ^~~~ arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ net/ipv4/gre_demux.c:36:17: note: in expansion of macro 'cmpxchg' 36 | return (cmpxchg((const struct gre_protocol **)&gre_proto[version], NULL, proto) == NULL) ? | ^~~~~~~ -- In file included from arch/riscv/include/asm/atomic.h:19, from include/linux/atomic.h:7, from include/linux/cpumask.h:14, from include/linux/smp.h:13, from include/linux/lockdep.h:14, from include/linux/spinlock.h:63, from include/linux/wait.h:9, from include/linux/wait_bit.h:8, from include/linux/fs.h:6, from fs/erofs/internal.h:10, from fs/erofs/compress.h:9, from fs/erofs/zdata.c:7: fs/erofs/zdata.c: In function 'z_erofs_try_to_claim_pcluster': arch/riscv/include/asm/cmpxchg.h:329:62: warning: passing argument 2 of 'cmpxchg_emu_u8' makes integer from pointer without a cast [-Wint-conversion] 329 | __ret = cmpxchg_emu_u8((volatile u8 *)__ptr, __old, __new); \ | ^~~~~ | | | z_erofs_next_pcluster_t {aka void *} arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ fs/erofs/zdata.c:751:13: note: in expansion of macro 'cmpxchg' 751 | if (cmpxchg(&pcl->next, Z_EROFS_PCLUSTER_NIL, | ^~~~~~~ In file included from arch/riscv/include/asm/cmpxchg.h:12: include/linux/cmpxchg-emu.h:13:52: note: expected 'uintptr_t' {aka 'long unsigned int'} but argument is of type 'z_erofs_next_pcluster_t' {aka 'void *'} 13 | uintptr_t cmpxchg_emu_u8(volatile u8 *p, uintptr_t old, uintptr_t new); | ~~~~~~~~~~^~~ arch/riscv/include/asm/cmpxchg.h:329:69: warning: passing argument 3 of 'cmpxchg_emu_u8' makes integer from pointer without a cast [-Wint-conversion] 329 | __ret = cmpxchg_emu_u8((volatile u8 *)__ptr, __old, __new); \ | ^~~~~ | | | z_erofs_next_pcluster_t {aka void *} arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ fs/erofs/zdata.c:751:13: note: in expansion of macro 'cmpxchg' 751 | if (cmpxchg(&pcl->next, Z_EROFS_PCLUSTER_NIL, | ^~~~~~~ include/linux/cmpxchg-emu.h:13:67: note: expected 'uintptr_t' {aka 'long unsigned int'} but argument is of type 'z_erofs_next_pcluster_t' {aka 'void *'} 13 | uintptr_t cmpxchg_emu_u8(volatile u8 *p, uintptr_t old, uintptr_t new); | ~~~~~~~~~~^~~ >> arch/riscv/include/asm/cmpxchg.h:329:23: warning: assignment to 'z_erofs_next_pcluster_t' {aka 'void *'} from 'uintptr_t' {aka 'long unsigned int'} makes pointer from integer without a cast [-Wint-conversion] 329 | __ret = cmpxchg_emu_u8((volatile u8 *)__ptr, __old, __new); \ | ^ arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ fs/erofs/zdata.c:751:13: note: in expansion of macro 'cmpxchg' 751 | if (cmpxchg(&pcl->next, Z_EROFS_PCLUSTER_NIL, | ^~~~~~~ arch/riscv/include/asm/cmpxchg.h:333:64: warning: passing argument 2 of 'cmpxchg_emu_u16' makes integer from pointer without a cast [-Wint-conversion] 333 | __ret = cmpxchg_emu_u16((volatile u16 *)__ptr, __old, __new); \ | ^~~~~ | | | z_erofs_next_pcluster_t {aka void *} arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ fs/erofs/zdata.c:751:13: note: in expansion of macro 'cmpxchg' 751 | if (cmpxchg(&pcl->next, Z_EROFS_PCLUSTER_NIL, | ^~~~~~~ include/linux/cmpxchg-emu.h:14:54: note: expected 'uintptr_t' {aka 'long unsigned int'} but argument is of type 'z_erofs_next_pcluster_t' {aka 'void *'} 14 | uintptr_t cmpxchg_emu_u16(volatile u16 *p, uintptr_t old, uintptr_t new); | ~~~~~~~~~~^~~ arch/riscv/include/asm/cmpxchg.h:333:71: warning: passing argument 3 of 'cmpxchg_emu_u16' makes integer from pointer without a cast [-Wint-conversion] 333 | __ret = cmpxchg_emu_u16((volatile u16 *)__ptr, __old, __new); \ | ^~~~~ | | | z_erofs_next_pcluster_t {aka void *} arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ fs/erofs/zdata.c:751:13: note: in expansion of macro 'cmpxchg' 751 | if (cmpxchg(&pcl->next, Z_EROFS_PCLUSTER_NIL, | ^~~~~~~ include/linux/cmpxchg-emu.h:14:69: note: expected 'uintptr_t' {aka 'long unsigned int'} but argument is of type 'z_erofs_next_pcluster_t' {aka 'void *'} 14 | uintptr_t cmpxchg_emu_u16(volatile u16 *p, uintptr_t old, uintptr_t new); | ~~~~~~~~~~^~~ arch/riscv/include/asm/cmpxchg.h:333:23: warning: assignment to 'z_erofs_next_pcluster_t' {aka 'void *'} from 'uintptr_t' {aka 'long unsigned int'} makes pointer from integer without a cast [-Wint-conversion] 333 | __ret = cmpxchg_emu_u16((volatile u16 *)__ptr, __old, __new); \ | ^ arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ fs/erofs/zdata.c:751:13: note: in expansion of macro 'cmpxchg' 751 | if (cmpxchg(&pcl->next, Z_EROFS_PCLUSTER_NIL, | ^~~~~~~ arch/riscv/include/asm/cmpxchg.h:333:23: warning: this statement may fall through [-Wimplicit-fallthrough=] 333 | __ret = cmpxchg_emu_u16((volatile u16 *)__ptr, __old, __new); \ | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ fs/erofs/zdata.c:751:13: note: in expansion of macro 'cmpxchg' 751 | if (cmpxchg(&pcl->next, Z_EROFS_PCLUSTER_NIL, | ^~~~~~~ arch/riscv/include/asm/cmpxchg.h:334:9: note: here 334 | case 4: \ | ^~~~ arch/riscv/include/asm/cmpxchg.h:368:30: note: in expansion of macro '__cmpxchg' 368 | (__typeof__(*(ptr))) __cmpxchg((ptr), \ | ^~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:4788:9: note: in expansion of macro 'raw_cmpxchg' 4788 | raw_cmpxchg(__ai_ptr, __VA_ARGS__); \ | ^~~~~~~~~~~ fs/erofs/zdata.c:751:13: note: in expansion of macro 'cmpxchg' 751 | if (cmpxchg(&pcl->next, Z_EROFS_PCLUSTER_NIL, | ^~~~~~~ include/linux/atomic/atomic-arch-fallback.h: In function 'raw_atomic_cmpxchg': .. vim +329 arch/riscv/include/asm/cmpxchg.h 319 320 #define __cmpxchg(ptr, old, new, size) \ 321 ({ \ 322 __typeof__(ptr) __ptr = (ptr); \ 323 __typeof__(*(ptr)) __old = (old); \ 324 __typeof__(*(ptr)) __new = (new); \ 325 __typeof__(*(ptr)) __ret; \ 326 register unsigned int __rc; \ 327 switch (size) { \ 328 case 1: \ > 329 __ret = cmpxchg_emu_u8((volatile u8 *)__ptr, __old, __new); \ 330 break; \ 331 case 2: \ 332 break; \ 333 __ret = cmpxchg_emu_u16((volatile u16 *)__ptr, __old, __new); \ 334 case 4: \ 335 __asm__ __volatile__ ( \ 336 "0: lr.w %0, %2\n" \ 337 " bne %0, %z3, 1f\n" \ 338 " sc.w.rl %1, %z4, %2\n" \ 339 " bnez %1, 0b\n" \ 340 RISCV_FULL_BARRIER \ 341 "1:\n" \ 342 : "=&r" (__ret), "=&r" (__rc), "+A" (*__ptr) \ 343 : "rJ" ((long)__old), "rJ" (__new) \ 344 : "memory"); \ 345 break; \ 346 case 8: \ 347 __asm__ __volatile__ ( \ 348 "0: lr.d %0, %2\n" \ 349 " bne %0, %z3, 1f\n" \ 350 " sc.d.rl %1, %z4, %2\n" \ 351 " bnez %1, 0b\n" \ 352 RISCV_FULL_BARRIER \ 353 "1:\n" \ 354 : "=&r" (__ret), "=&r" (__rc), "+A" (*__ptr) \ 355 : "rJ" (__old), "rJ" (__new) \ 356 : "memory"); \ 357 break; \ 358 default: \ 359 BUILD_BUG(); \ 360 } \ 361 __ret; \ 362 }) 363 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki