From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from fhigh-a7-smtp.messagingengine.com (fhigh-a7-smtp.messagingengine.com [103.168.172.158]) (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 9BB1C3D6699 for ; Wed, 25 Feb 2026 15:14:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.158 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772032461; cv=none; b=SBPobwdKL3n3gvelD6g+ZvmH1HszbndwVwz27muCByJ6EqtaaGE4NYO5V+bLqlAro92ACR9Cx+jejS4ygcpagNr3eUobiI9Zn54UJD2tIK2dWRsOZilQIB5J/MLVzF4H9ihYqn1V6A2vtYDcskKGSIiusjQ2CFC1tGSd18h6szw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772032461; c=relaxed/simple; bh=dulNlIKoCfV62gXnVo3v2F8sQPcv/mE1mb3Os0do3x4=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=NTUg6ZcAt2iJ6Y6jIoG8LbeOZEnoILaktHbYVk72ukWawJxyxiq+XoEOeVmVm/L9Yj2UIlP52RO9kUjFdqJFLtEejHr+K72EnWz+4pWI9xgxLy6h7HXtiylVLLbPYLQmHrdIWVkqMbm8wh15oh4HJYOcTPvok8gU1i6N1SaCYlo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=kroah.com; spf=pass smtp.mailfrom=kroah.com; dkim=pass (2048-bit key) header.d=kroah.com header.i=@kroah.com header.b=enN3rECh; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=CYZ+sfsO; arc=none smtp.client-ip=103.168.172.158 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=kroah.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kroah.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kroah.com header.i=@kroah.com header.b="enN3rECh"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="CYZ+sfsO" Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45]) by mailfhigh.phl.internal (Postfix) with ESMTP id D0E18140019A; Wed, 25 Feb 2026 10:14:18 -0500 (EST) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-05.internal (MEProxy); Wed, 25 Feb 2026 10:14:18 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kroah.com; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1772032458; x=1772118858; bh=LO01i9OpMyfG3+2kwXspen0PxerY4AIxEAm1XdyI6QE=; b= enN3rEChO7UWxgwDMLaK273siOhNf7xWe54GomuFrwq8VQzmZjezqRGgkXGQIz2M 6GjtcqjBMLhN7Rlkn4ctmFbdCqjzYpkmKQ/jPlBZBVfc46Fa2FeT8qb6bABHMH7l ezdaT+oVX9Xgf8JhV5OO6MZCoLhbvUJIkEXyBHrbj3rbNG64e2VTgON2IL2vyarG dAb03RrLgyB/jFPLRkmPKkhbALZh+qNf8a/3Eyv4vP5EHJGqk5BZ8NgkdxCNHJeI lAm1Qn3evlkBRc32RQS5A8iEf9weMTLgF4fgnK57N/IGo260DN6WGuv9zq8nxIbC 9o+OpEbOvT/PSw7vrbHWOw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1772032458; x= 1772118858; bh=LO01i9OpMyfG3+2kwXspen0PxerY4AIxEAm1XdyI6QE=; b=C YZ+sfsO0w+OkSBbXNSZYl+R1lJVLjnn1CIe0VdNjiD6zBoFOjAJ5GF71J7GMQh7c OK+5gRPwFWG7/bdRnHeexr/cTWSTOmQs8i+Fo3QCg248qtJAQeNNnlyzU+NiltD+ l2jAb7ms9EE9H3XVu6BNsA/pRtKjExLYSgcl0KoH3ftN8ARYLLCKsn+01umiY6dP zwaTDt8T93YjhZO/AwYjWthi3RvrWWho9611KGztH+XrQwJudP4mV/WL8cMyliEF jy+td6p0aAtmvnB6HekFTs7CCHUQzo07ssaqkT5NZyb6kBkgUss8kUxhP1H9TRPi rMwSJf4dIYYouHRzrR+4A== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvgeefgeefucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepfffhvfevuffkfhggtggugfgjsehtkeertddttddunecuhfhrohhmpefirhgvghcu mffjuceoghhrvghgsehkrhhorghhrdgtohhmqeenucggtffrrghtthgvrhhnpeegveevte fgveejffffveeluefhjeefgeeuveeftedujedufeduteejtddtheeuffenucffohhmrghi nhepkhgvrhhnvghlrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpe hmrghilhhfrhhomhepghhrvghgsehkrhhorghhrdgtohhmpdhnsggprhgtphhtthhopedu tddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepthhhohhmrghsrdifvghishhssh gthhhuhheslhhinhhuthhrohhnihigrdguvgdprhgtphhtthhopehsthgrsghlvgesvhhg vghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopeifihhllhihsehinhhfrhgruggvrg gurdhorhhgpdhrtghpthhtohepthhorhhvrghlughssehlihhnuhigqdhfohhunhgurght ihhonhdrohhrghdprhgtphhtthhopegsvghnseguvggtrgguvghnthdrohhrghdruhhk X-ME-Proxy: Feedback-ID: i787e41f1:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 25 Feb 2026 10:14:18 -0500 (EST) Date: Wed, 25 Feb 2026 07:14:09 -0800 From: Greg KH To: Thomas =?iso-8859-1?Q?Wei=DFschuh?= Cc: stable@vger.kernel.org, Matthew Wilcox , Linus Torvalds , Ben Hutchings Subject: Re: [PATCH 5.10.y 5.15.y 6.1.y 6.6.y 6.12.y 6.18.y 6.19.y] ARM: clean up the memset64() C wrapper Message-ID: <2026022556-poise-retrial-2090@gregkh> References: <20260225-arm-memset64-stable-v1-1-f453c4933ca0@linutronix.de> <2026022546-sloping-proactive-d4f7@gregkh> <20260225160327-91efd064-656c-409c-a1e1-aa8433a3ba6e@linutronix.de> Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20260225160327-91efd064-656c-409c-a1e1-aa8433a3ba6e@linutronix.de> On Wed, Feb 25, 2026 at 04:08:23PM +0100, Thomas Weißschuh wrote: > On Wed, Feb 25, 2026 at 06:36:13AM -0800, Greg KH wrote: > > On Wed, Feb 25, 2026 at 12:35:09PM +0100, Thomas Weißschuh wrote: > > > [ Upstream commit b52343d1cb47bb27ca32a3f4952cc2fd3cd165bf ] > > > > > > The current logic to split the 64-bit argument into its 32-bit halves is > > > byte-order specific and a bit clunky. Use a union instead which is > > > easier to read and works in all cases. > > > > > > GCC still generates the same machine code. > > > > > > While at it, rename the arguments of the __memset64() prototype to > > > actually reflect their semantics. > > > > > > Signed-off-by: Thomas Weißschuh > > > Signed-off-by: Linus Torvalds > > > Reported-by: Ben Hutchings # for -stable > > > Link: https://lore.kernel.org/all/1a11526ae3d8664f705b541b8d6ea57b847b49a8.camel@decadent.org.uk/ > > > Suggested-by: https://lore.kernel.org/all/aZonkWMwpbFhzDJq@casper.infradead.org/ # for -stable > > > Link: https://lore.kernel.org/all/aZonkWMwpbFhzDJq@casper.infradead.org/ > > > --- > > > Hi stable team, > > > > > > unfortunately the backports of commit 23ea2a4c7232 ("ARM: 9468/1: fix > > > memset64() on big-endian") does not work on 5.10 and 5.15 as > > > CONFIG_CPU_LITTLE_ENDIAN does not exist there, effectively breaking memset64() > > > on little-endian. Please use this variant instead which always works. > > > For consistency I prefer to have it backported to all versions. > > > --- > > > arch/arm/include/asm/string.h | 14 +++++++++----- > > > 1 file changed, 9 insertions(+), 5 deletions(-) > > > > > > diff --git a/arch/arm/include/asm/string.h b/arch/arm/include/asm/string.h > > > index b5ad23acb303..369781ec5511 100644 > > > --- a/arch/arm/include/asm/string.h > > > +++ b/arch/arm/include/asm/string.h > > > @@ -33,13 +33,17 @@ static inline void *memset32(uint32_t *p, uint32_t v, __kernel_size_t n) > > > } > > > > > > #define __HAVE_ARCH_MEMSET64 > > > -extern void *__memset64(uint64_t *, uint32_t low, __kernel_size_t, uint32_t hi); > > > +extern void *__memset64(uint64_t *, uint32_t first, __kernel_size_t, uint32_t second); > > > static inline void *memset64(uint64_t *p, uint64_t v, __kernel_size_t n) > > > { > > > - if (IS_ENABLED(CONFIG_CPU_LITTLE_ENDIAN)) > > > - return __memset64(p, v, n * 8, v >> 32); > > > - else > > > - return __memset64(p, v >> 32, n * 8, v); > > > + union { > > > + uint64_t val; > > > + struct { > > > + uint32_t first, second; > > > + }; > > > + } word = { .val = v }; > > > + > > > + return __memset64(p, word.first, n * 8, word.second); > > > } > > > > > > #endif > > > > > > --- > > > > I don't understand, why is this patch needed at all? What issue is it > > fixing to require this? > > memset64() was broken on ARM big-endian. It was fixed in commit 23ea2a4c7232 > ("ARM: 9468/1: fix memset64() on big-endian"). That fix was marked with a Fixes: > tag and was backported to all stable kernels. However that fix relies on the > kconfig symbol CONFIG_CPU_LITTLE_ENDIAN (as shown in the diff above). > That kconfig symbol does not exist on 5.10 and 5.15. So now memset64() is > broken on ARM little-endian on those branches. So on ALL branches? When did that config option get added? > The proposed works always, without requiring kconfig options. > The Fixes: tag target would differ between the stable branches, > so I left it out. A fixes: for commit 23ea2a4c7232 should be correct, right? thanks, greg k-h