From nobody Sun Apr 28 23:25:31 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1612362188; cv=none; d=zohomail.com; s=zohoarc; b=A/QyzP7wpDwA+byrqtUDUpQyXkrMangvWEhESdJkFhD60UCgI7ccxEh++RQU9Wq3l8XT6nByH1/T/kEBtp8+sSyc1SV0tjV84QiW8dnKU5BxqYUVvvxdCCx08TlTIHEVgMEYEE78hg40PRaZavUOaPRe7uov90U15oO03IwC3VM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1612362188; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=mA3BQhw9Vb3J5jIjdLh1AVt9kQ9/0iuprHGUbiogyl0=; b=lhowJRmpc8HbhAFXdqHNyoxb5SqEBN0v+E62PQBSELrSixkXw4inS9Q4fuPMaJSj3JppSIU6YxwITJwHpdA3uswUCC+AARxonwCrddODDpdUco9UTKVi3ZOqllrexlJuYd3oaJV1z8Sv5rn/vnl2YoQWNDAMVI+CK7Hnv/EQvlg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=quarantine dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1612362188278520.2359129302073; Wed, 3 Feb 2021 06:23:08 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.80940.148506 (Exim 4.92) (envelope-from ) id 1l7J2w-0003lN-S5; Wed, 03 Feb 2021 14:22:18 +0000 Received: by outflank-mailman (output) from mailman id 80940.148506; Wed, 03 Feb 2021 14:22:18 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1l7J2w-0003lG-OR; Wed, 03 Feb 2021 14:22:18 +0000 Received: by outflank-mailman (input) for mailman id 80940; Wed, 03 Feb 2021 14:22:17 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1l7J2v-0003lB-Sr for xen-devel@lists.xenproject.org; Wed, 03 Feb 2021 14:22:17 +0000 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id a171fe5c-f184-4827-a383-fa72376b7b1f; Wed, 03 Feb 2021 14:22:16 +0000 (UTC) Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id ECE29AC6E; Wed, 3 Feb 2021 14:22:15 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: a171fe5c-f184-4827-a383-fa72376b7b1f X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1612362136; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mA3BQhw9Vb3J5jIjdLh1AVt9kQ9/0iuprHGUbiogyl0=; b=rLWE5Enr1gTUaWRJSThSSlYHaVUjmjEPr61Q3NgKyyCqq9Lo4ZpwnwIKS7PXyZMK2iDk4g b3CkXDJN0UksLV4QHOBxTIHwNo1nqLnYr/MNLjCiCv5ERgHm9eKPBB5BWxZOCQ4/TGRI3U NmwRQpREiPA7elO9vQLEpApQItF8RGY= To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= From: Jan Beulich Subject: [PATCH] x86/string: correct memmove()'s forwarding to memcpy() Message-ID: Date: Wed, 3 Feb 2021 15:22:15 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0 MIME-Version: 1.0 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) Content-Type: text/plain; charset="utf-8" With memcpy() expanding to the compiler builtin, we may not hand it overlapping source and destination. We strictly mean to forward to our own implementation (a few lines up in the same source file). Fixes: 78825e1c60fa ("x86/string: Clean up x86/string.h") Signed-off-by: Jan Beulich --- An alternative would be to "#undef memcpy" near the top of the file. But I think the way it's done now is more explicit to the reader. An #undef would be the only way if the macro was an object-like one. At least with gcc10 this does alter generated code: The builtin gets expanded into a tail call, while after this change our memcpy() gets inlined into memmove(). This would change again once we separate the 3 functions here into their own CUs for placing them in an archive. --- a/xen/arch/x86/string.c +++ b/xen/arch/x86/string.c @@ -43,7 +43,7 @@ void *(memmove)(void *dest, const void * return dest; =20 if ( dest < src ) - return memcpy(dest, src, n); + return (memcpy)(dest, src, n); =20 asm volatile ( " std ; "