From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D0C5C1A23A9 for ; Wed, 8 Jan 2025 23:03:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736377393; cv=none; b=kddIVGj5cm5zYm063Hea5J3q2iEO2x+RQqx23753qHQ84qLaG1SLq/r85/YEiz3NAP9ltQro9HwXkMZak7s9WXQskPmKZDmWrxzq2BWnfkUVxcE5Vc1dfHasxU0g9pAapv5FLmgl4cESK36Zx3tLCLo5RKg2bxuNk54RJbRTWNo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736377393; c=relaxed/simple; bh=yosJ1tzZoRvPsSdTULBEID9QXuvxAEFjAfWllbJRJlo=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=kC8QHKnj82Q2bl38/1nwD1VDiPrbO/91X7UBtgPk51apAnJFXV2WJCD/6izqa/j08TouucclzcfQolmJhm+RaHHaQwRVjg0JqlGzn0oHGK47WScMJA487JjixJEK8D7fa4I3SouFx8GFFBUOL+ATK4e+F/nKHqv0RYuup4ne4WI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 19E91C4CED3; Wed, 8 Jan 2025 23:03:11 +0000 (UTC) Message-ID: Date: Thu, 9 Jan 2025 09:03:09 +1000 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] m68k: libgcc: Fix lvalue abuse in umul_ppmm() To: Geert Uytterhoeven Cc: Arnd Bergmann , Linus Torvalds , linux-m68k@lists.linux-m68k.org, linux-kernel@vger.kernel.org, kernel test robot References: Content-Language: en-US From: Greg Ungerer In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi Geert, On 9/1/25 03:22, Geert Uytterhoeven wrote: > lib/muldi3.c:53:28: warning: asm output is not an lvalue > lib/muldi3.c:53:28: warning: asm output is not an lvalue > lib/muldi3.c:53:28: error: not addressable > lib/muldi3.c:53:28: warning: generating address of non-lvalue (11) > lib/muldi3.c:53:28: warning: generating address of non-lvalue (11) > > Fix the lvalue warnings by replacing the casts on the output operands by > intermediate variables of the right type. > > Fix the "not addressable" error by replacing the cast on the second > input operand by an intermediate variable, too. Treat the other input > operand the same for consistency. > > Reported-by: kernel test robot > Closes: https://lore.kernel.org/oe-kbuild-all/202501030516.uZrwnuQQ-lkp@intel.com/ > Suggested-by: Linus Torvalds > Signed-off-by: Geert Uytterhoeven Thanks for cleaning this up. Acked-by: Greg Ungerer Regards Greg > --- > To be queued in the m68k for-v6.14 branch. > Not folding into commit e96424b86d5098f4 ("m68k: Use kernel's generic > muldi3 libgcc function"), as the issue was pre-existing. > --- > arch/m68k/include/asm/libgcc.h | 17 ++++++++++++----- > 1 file changed, 12 insertions(+), 5 deletions(-) > > diff --git a/arch/m68k/include/asm/libgcc.h b/arch/m68k/include/asm/libgcc.h > index 1cce6d130d805368..27e17195bd7be41c 100644 > --- a/arch/m68k/include/asm/libgcc.h > +++ b/arch/m68k/include/asm/libgcc.h > @@ -10,11 +10,18 @@ > * will fallback to using the C-coded version of umul_ppmm(). > */ > #define umul_ppmm(w1, w0, u, v) \ > - __asm__ ("mulu%.l %3,%1:%0" \ > - : "=d" ((unsigned long)(w0)), \ > - "=d" ((unsigned long)(w1)) \ > - : "%0" ((unsigned long)(u)), \ > - "dmi" ((unsigned long)(v))) > + do { \ > + unsigned long __u = (u), __v = (v); \ > + unsigned long __w0, __w1; \ > + \ > + __asm__ ("mulu%.l %3,%1:%0" \ > + : "=d" (__w0), \ > + "=d" (__w1) \ > + : "%0" (__u), \ > + "dmi" (__v)); \ > + \ > + (w0) = __w0; (w1) = __w1; \ > + } while (0) > #endif /* !CONFIG_CPU_HAS_NO_MULDIV64 */ > > #endif /* __ASM_M68K_LIBGCC_H */