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 B94E0CD1292 for ; Mon, 8 Apr 2024 17:40:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1C26B6B007B; Mon, 8 Apr 2024 13:40:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 14BBF6B0082; Mon, 8 Apr 2024 13:40:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F2E056B0083; Mon, 8 Apr 2024 13:40:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id D19246B007B for ; Mon, 8 Apr 2024 13:40:43 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 4A8241A019B for ; Mon, 8 Apr 2024 17:40:43 +0000 (UTC) X-FDA: 81987079566.13.92ADBF7 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf17.hostedemail.com (Postfix) with ESMTP id 7E7244001E for ; Mon, 8 Apr 2024 17:40:41 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=SOaK6WnO; spf=pass (imf17.hostedemail.com: domain of "SRS0=TH1z=LN=paulmck-ThinkPad-P17-Gen-1.home=paulmck@kernel.org" designates 139.178.84.217 as permitted sender) smtp.mailfrom="SRS0=TH1z=LN=paulmck-ThinkPad-P17-Gen-1.home=paulmck@kernel.org"; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712598041; h=from:from:sender:reply-to: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=JwkPqoZRX5uExTczbu9Zn6aIhAVUpJfMPjls9yJmmw8=; b=dPHT4qfSXXanPaD84GHpvUMwKltbVsEWBa/Bsb9aHTdYgSDbHi+kjLzzRdVvT9A9jipuw0 mVu1QKobYVArS1fujjOJT/k+1tpiKj7ADLezkgudHg4wkbKz00RalHU+9hFhCRR4hw1Gm3 pSbk0T86ltwQL6nxrGrqrXH+u1XWePs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712598041; a=rsa-sha256; cv=none; b=wDCMAuxVQ1I/ZP8o3oV1KVoUg8YS7LguY/5AYzvO5u5F+C9LclQs4Ye9eU9L3Gz6Smb8oq juJL++RKT1vuny2RFwCUg8Ryytqp0+E1cljaH+XtNOmVllniJcgbw1Ra0uVn3ZIMWl9eqe g+pM1TQFuNmQY5HFs4OU/1l/U1pvS9s= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=SOaK6WnO; spf=pass (imf17.hostedemail.com: domain of "SRS0=TH1z=LN=paulmck-ThinkPad-P17-Gen-1.home=paulmck@kernel.org" designates 139.178.84.217 as permitted sender) smtp.mailfrom="SRS0=TH1z=LN=paulmck-ThinkPad-P17-Gen-1.home=paulmck@kernel.org"; dmarc=pass (policy=none) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 5140461326; Mon, 8 Apr 2024 17:40:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1C4DCC433C7; Mon, 8 Apr 2024 17:40:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712598040; bh=zRPDmo8wzpH7MlQn4X4AWPBc1kRD+usMYJ2d45VIlrc=; h=Date:From:To:Cc:Subject:Reply-To:References:In-Reply-To:From; b=SOaK6WnObDMcMHd8T8S9Z0NgzHv3kuI7vwL8ETNJXEIQpVKAmy4kN+yHE4zqLd5jz +DrV6ICL0i2Xl8xcYT6WbD5gwnsyrUcuRGfQvKnRRb6HvWAPU1/JY7/nZidoszEakY 9GOnZSPsYAvBCNbYKdM6vdFcsKlPD60YRemfCGSEk4RraWCT5vTBybckptOTvqqrvB ipgAbzt4J8Wua+pUbGc1XgUgMYtvCw9Ow12VK8HWGyYNwZ+qGN8bcASBl8pMUiGZUs XllRM3Z2nSnJY2Z7wtT7tPJD83EXeMwbVMPTLkW4Fd3tfWczNXm3zo/Q99Ja/FLyX3 KgK2AJbL5+grw== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id B81C1CE126C; Mon, 8 Apr 2024 10:40:39 -0700 (PDT) Date: Mon, 8 Apr 2024 10:40:39 -0700 From: "Paul E. McKenney" To: "Liu, Yujie" Cc: lkp , "linux-mm@kvack.org" , "llvm@lists.linux.dev" , "oe-kbuild-all@lists.linux.dev" Subject: Re: [linux-next:master 2524/3504] kernel/locking/rtmutex.c:218:9: error: incompatible pointer to integer conversion passing 'typeof (*(((__ai_ptr))))' (aka 'struct task_struct *') to parameter of type 'uintptr_t' (aka 'unsigned long') Message-ID: <9683809f-ff98-4c9f-bd67-97d99dc89e8f@paulmck-laptop> Reply-To: paulmck@kernel.org References: <202404040526.GVzaL2io-lkp@intel.com> <302e5ce2-5a65-4e07-8ca8-cced83e9af5b@paulmck-laptop> <98704087ab6012031f3e117460cc1b24457a554f.camel@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <98704087ab6012031f3e117460cc1b24457a554f.camel@intel.com> X-Stat-Signature: wekqbjecdrw8ekd3wfwr64bi6wik9m8p X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 7E7244001E X-Rspam-User: X-HE-Tag: 1712598041-890741 X-HE-Meta: U2FsdGVkX18KSiKCId2zc1QCAr9yTBfgK+5C8zGaBcwGwKBGWLTs6iO7KCwrqbT+OPK7G+74dHi5YW3stUFPpCGfr5+NSH+9WicmyQLv4Cv/Q6cskOdw9C5OkahkGa8srhxLXWR9Zkl37yXbKDksG8XjMyK4Xq9U5kN3aqDNDPXkd5aiDNoDt6sAhlV4Zs+nGAmDuihNa2kB84r/oVRHPqM6T6+h0hkHX4XrpNGucj095a9j1Hq1Yd8q47n6oevSijJhSItEczIvI7Cag1HsPK0JU2HZktiep0d7sUIaREYhvRWcY0uSWzJTm7myLqsSC22F3rz1/VXxiJkRg31k9thIfNF7xe9/Gck0j0V9sJtQKnNYRx8WpbP7DKC+zygyxyL9ZF8l4eCrpsbSPaAwxiOwCt3fnqR+cTVKTVMkTmpJSbrB3m4MI5sW29mvgD/e9vwIZlsGAmoGDdQkOwZQ4tohX6R7zTq6FkNJNngAD8Ft5aPf/ZK7KIKOnG8a4Fga6IyN0hruJuqLRkdN7SagV404oF8VQluUeSNQ/HECgu2I1hI+RpnsJzQ8Wsueyln+3AqBTj1FA7Fz9wf7lkPjX7j9JsZ9WPNNxPCF3M2aEJmbBPWaqepKN43r4I2UxMy3s6roVgwGp/aBsJ/pFxbDPjwqU1OrHShImwOwK1ytHwgga/g/JaUZIQwvrVenAw6WcpP90IWFALdVqdGY8H7AbndFvrdzitYIXZp16KvRDwspZ1TnTIx6zsExNHhqptre7YBeuCxU4v+o7awlKkXKI8U2RCVUhQfs6LsdSXlrqwH8jIhVt19ok6yU8il2Kbm0wkmCL0bWr68lC+cCF6VeK9Uu/qBc5Dm8yJRreZW2hSmdGcUDTJuTEVGo1vBxMitey5Q6x8UFzS+ha82Lntf7Fm0N1m4aFu4m55oPURZwAmbrFccu1wcbfOO2pSW1CoUL9SmLnHFl/Y+yijwSE94 fXlcWIL1 gd/FByTcYG1E+jfgtRFYuRo50ZB3Ci7WnG/Vi0iLGXg5EFTWmpy6oww/bvpo4zI4RGluUI+z09lNsMo5sA+NMEN338qZTI4qIQTJYfXQpsyGB98UVWCnJwyNQSQVUwkL73/+O6Nzj0zfLsyqHjX26DP1ofZqRsI5R/coJxawuN3sgL7UYjypmLNsytKWTf03+CaMUXL00TJ1F4aD+ZnysGRwsB1dA/ZgnDylFbNVsMaOyPANH0xwBQ6DJ/mM0QTHcmJTLqihi1auyMV/Ok6168oBceWUe+Ba+oauIfqXb86dh2AQ1L6CAD1lAxiuayXPKXyRo42HCVTl2m9AIVfNZ94fXlIL75xCd1nHsy+qUTdRbiNB2ph8RLogabK7pHLOZAaCKDbpE6ssE9D2dRNAYBzvBiUbgOG9R5dYbKCaFWF8NPXHNEqK08kOwlAOgYh0OH7dNQNV3KPUPxYe9H2YLHBpnb4Cf61JoRwSb6R/YDMxVwjdRKs2pnTdFLeF5adJsWlVmsAR7w9Hr1KT+R9pI23pGopkvpOq2S8J+/Lmua+ioYYLmnuXMBz7HqK6/ExnFOD70fl41+Zfh3TvjpfAEE900oKDGv+rQleEuk588EW6H1RwYUe+ROCk2k82l4j0Qd/8PLMPL7cvOH6Ce4us9OC6qW6aRCaF9ZM9w0sEDCyZ6M44QhQCBv/s9/zmiNAigYQOqc3RDoPS6B2VPAA9aVk54O0DnElVvvMVX0YME5yCYKHM1hOehQI6qbIFIGj0Pn9C7raYKqxoOeCa7qMj7kKk8NmzXN1KGHiuTZJxhyG0IdDF4O66uFYy6DWoDZVhKmr/YV1AO6QqVBzAzmCs7lSLBxCVMi5qIhcQGyrWarENoOEFExv32/O6pjLcqZEeL6SBfhfXfs5/mIsT/vc5XvV9mYoR52YDb0eqoE/BXRMUeBDsUUeLI6dXeMzxSy1wU5A/L9ixpP/UGxNN7KdxIYutPH8Ld 3xxLbjlO Jtw2a/do+qs= 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: On Sun, Apr 07, 2024 at 04:41:02AM +0000, Liu, Yujie wrote: > Hi Paul, > > On Thu, 2024-04-04 at 10:44 -0700, Paul E. McKenney wrote: > > On Thu, Apr 04, 2024 at 05:13:20AM +0800, kernel test robot wrote: > > > tree:   > > > https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git > > >  master > > > head:   727900b675b749c40ba1f6669c7ae5eb7eb8e837 > > > commit: df35ee400e06b23ecd44fdb66451a5343932f834 [2524/3504] riscv: > > > Emulate one-byte and two-byte cmpxchg > > > config: riscv-nommu_virt_defconfig > > > (https://download.01.org/0day-ci/archive/20240404/202404040526.GVza > > > L2io-lkp@intel.com/config) > > > compiler: clang version 19.0.0git > > > (https://github.com/llvm/llvm-project 546dc2245ffc4cccd0b05b58b7a59 > > > 55e355a3b27) > > > reproduce (this is a W=1 build): > > > (https://download.01.org/0day-ci/archive/20240404/202404040526.GVza > > > L2io-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/202404040526.GVzaL2io-lkp@intel.com/ > > > > I believe that this is fixed by the following updated commit in -rcu: > > > > 27011e7159ef ("riscv: Emulate one-byte cmpxchg") > > > > But please let me know if I am missing something. > > Sorry for the delay of reply due to we were on public holidays in the > last few days. > > The error still exists on the updated commit. > > Commit 27011e7159ef added the uintptr_t cast for __old and __new only > in the first occurrence of __ret assignment, but missed that in the > remaining __ret assignments. Seems it needs another fixup as below: > > ------------------------------------------------------------------- > > diff --git a/arch/riscv/include/asm/cmpxchg.h b/arch/riscv/include/asm/cmpxchg.h > index abcd5543b861b..a9803825567cf 100644 > --- a/arch/riscv/include/asm/cmpxchg.h > +++ b/arch/riscv/include/asm/cmpxchg.h > @@ -219,7 +219,7 @@ > register unsigned int __rc; \ > switch (size) { \ > case 1: \ > - __ret = (__typeof__(*(ptr)))cmpxchg_emu_u8((volatile u8 *)__ptr, __old, __new); \ > + __ret = (__typeof__(*(ptr)))cmpxchg_emu_u8((volatile u8 *)__ptr, (uintptr_t)__old, (uintptr_t)__new); \ > break; \ > case 4: \ > __asm__ __volatile__ ( \ > @@ -268,7 +268,7 @@ > register unsigned int __rc; \ > switch (size) { \ > case 1: \ > - __ret = (__typeof__(*(ptr)))cmpxchg_emu_u8((volatile u8 *)__ptr, __old, __new); \ > + __ret = (__typeof__(*(ptr)))cmpxchg_emu_u8((volatile u8 *)__ptr, (uintptr_t)__old, (uintptr_t)__new); \ > break; \ > case 4: \ > __asm__ __volatile__ ( \ > @@ -317,7 +317,7 @@ > register unsigned int __rc; \ > switch (size) { \ > case 1: \ > - __ret = (__typeof__(*(ptr)))cmpxchg_emu_u8((volatile u8 *)__ptr, __old, __new); \ > + __ret = (__typeof__(*(ptr)))cmpxchg_emu_u8((volatile u8 *)__ptr, (uintptr_t)__old, (uintptr_t)__new); \ > break; \ > case 4: \ > __asm__ __volatile__ ( \ > Applied with attribution, thank you! Quite the variety of casts required by the various architectures. ;-) Please see below for the updated patch. Thanx, Paul ------------------------------------------------------------------------ commit 4d5c72a34948625caf85c00b1db85372f4edbcae Author: Paul E. McKenney Date: Wed Mar 27 17:13:02 2024 -0700 riscv: Emulate one-byte cmpxchg Use the new cmpxchg_emu_u8() to emulate one-byte cmpxchg() on riscv. [ paulmck: Apply kernel test robot feedback, additional casts from Liu, Yujie. ] [ paulmck: Drop two-byte support per Arnd Bergmann feedback. ] Signed-off-by: Paul E. McKenney Tested-by: Yujie Liu Cc: Andi Shyti Cc: Andrzej Hajda Cc: Arnd Bergmann Cc: Acked-by: Palmer Dabbelt diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index be09c8836d56b..3bab9c5c0f465 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -44,6 +44,7 @@ config RISCV select ARCH_HAS_UBSAN select ARCH_HAS_VDSO_DATA select ARCH_KEEP_MEMBLOCK if ACPI + select ARCH_NEED_CMPXCHG_1_EMU select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT select ARCH_STACKWALK diff --git a/arch/riscv/include/asm/cmpxchg.h b/arch/riscv/include/asm/cmpxchg.h index 2fee65cc84432..a9803825567cf 100644 --- a/arch/riscv/include/asm/cmpxchg.h +++ b/arch/riscv/include/asm/cmpxchg.h @@ -9,6 +9,7 @@ #include #include +#include #define __xchg_relaxed(ptr, new, size) \ ({ \ @@ -170,6 +171,9 @@ __typeof__(*(ptr)) __ret; \ register unsigned int __rc; \ switch (size) { \ + case 1: \ + __ret = (__typeof__(*(ptr)))cmpxchg_emu_u8((volatile u8 *)__ptr, (uintptr_t)__old, (uintptr_t)__new); \ + break; \ case 4: \ __asm__ __volatile__ ( \ "0: lr.w %0, %2\n" \ @@ -214,6 +218,9 @@ __typeof__(*(ptr)) __ret; \ register unsigned int __rc; \ switch (size) { \ + case 1: \ + __ret = (__typeof__(*(ptr)))cmpxchg_emu_u8((volatile u8 *)__ptr, (uintptr_t)__old, (uintptr_t)__new); \ + break; \ case 4: \ __asm__ __volatile__ ( \ "0: lr.w %0, %2\n" \ @@ -260,6 +267,9 @@ __typeof__(*(ptr)) __ret; \ register unsigned int __rc; \ switch (size) { \ + case 1: \ + __ret = (__typeof__(*(ptr)))cmpxchg_emu_u8((volatile u8 *)__ptr, (uintptr_t)__old, (uintptr_t)__new); \ + break; \ case 4: \ __asm__ __volatile__ ( \ RISCV_RELEASE_BARRIER \ @@ -306,6 +316,9 @@ __typeof__(*(ptr)) __ret; \ register unsigned int __rc; \ switch (size) { \ + case 1: \ + __ret = (__typeof__(*(ptr)))cmpxchg_emu_u8((volatile u8 *)__ptr, (uintptr_t)__old, (uintptr_t)__new); \ + break; \ case 4: \ __asm__ __volatile__ ( \ "0: lr.w %0, %2\n" \