[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 09/12] x86/shadow: Rework write_atomic() call in shadow_write_entries()


  • To: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Roberto Bagnara <roberto.bagnara@xxxxxxxxxxx>
  • Date: Mon, 23 Feb 2026 08:26:05 +0100
  • Arc-authentication-results: i=1; bugseng.com; arc=none smtp.remote-ip=2.38.49.5
  • Arc-message-signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; c=relaxed/relaxed; t=1771831567; h=Message-ID:Date:MIME-Version:User-Agent:Subject:To:Cc:References: Content-Language:From:In-Reply-To:Content-Type: Content-Transfer-Encoding; bh=DwE/1ASKJC5tWZ7jTRV4LXXRfDVeXh2O3vipPCqXy38=; b=EXeCL+Z9oKZUs0oewbvReI7K6Kc5pVxXeJ79u8/F874RhnDgNfQWULT16SNvXbaX8wP0 thNSxpnGpGO/ILIFHQiv7H204P7Dt6/SbJ4ev/jpqTN72Q1rw566h4Y9MLfU3Qfcgs1Xy hsBtFcRVQdiVZX86N8BaD4wlGUTQ3EPJu+4v0JbHFIUHBXkO+3HRKMBAi6bqNczycBtfN lDQl6oDHTZd6dmO7rMDxg/iabFvFycztM/6r9Gmrdc1xzQCGFPNNB8Ur4vXDgl4CkUlTV 1xQw/kryspVCPvgmANrDt3gLn98I1aGM2LcYE6nH+HKWpxr4lNmq83m0EDdCJjkyjEQ2C /BCPMVE8W/iiM2Eo8wRwc+9NPnHbyys02RX0ILuYIESvLfjVS+b5AXuH9fBbUI1wLSP52 rdwdR2kiqXQ/uDJ/8EivZsgunfSQrCVrK6qi7V653DS2pn0bGeBkF6Z7zN15rCuwHSIgv dJALSaf3D93MOpJrqF7wNVayAUh26oaZj1KxOTXNlX6YmeU9b3wfSYb1dV+DL5UUNb8vl QokHbjmpqLQAEzCYMMWbpwmhxjYdiFdoiO2tmf0+N/4gOj7em2JGSKP4Uy7Pyw/H65EIj 6ZzikIGAZ0dCDKJw3fiWEJ1MOq/2PihkTW+jAhDdlnn7X1/gf1sWmccMEc+SYpc=
  • Arc-seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1771831567; b=TZNyPqrNVKcx7wLIz4awO+SMrLrBvy3a6WkyVgYYSVvz8Pc7YqLJPzDNML2cmCBZj9Qf EKP1o2JqLO18F/bJatqXvJpO0T0kI4GCoVP6B9VxTDxxbSKSIFm709xxSpya4kiG4dHZO 21ArhJriWvoXkX8Z3dDsqS7K7SKLLV0Q0j/ON4H0Aqu06W287cw2BVROwCfIjTq4uHlIh XGN5fiAEW5sNEGwPk0DRyw12GVoowoXJwpE+BWFs5xn4ywmv6GpIn47Zv+8AGagBaGojQ VdTIlqJsNnrmkv3en89J8P0q8xejjVEn0TWUSjSs3kcVlVia05wBbAukpvoxk7uTAfZlX cyKTvQ6vPy3CuraSFUbkJnIQzlsepL72wsNVBbUrttj+NmKYjmbTSCIEC2t5QKnyO5Dye v0JTwwQVwPzUqih2c1TOp5piF1mO3BLDIrZtSu22ufc/tEWdp3ifEopwUUcfurBrcaL9R +T0wOgd7RSnwVZM01UGW8Unn8P53CI5yLVNnIaXWblsPNr87ZS661+YQg/0dJR6a+I4Ku e8mXAgv9Bnc4ROne6/K6MY1jK4LQfpZVDADulxgIAsK4tq1TXmaLBim+KkG3GBYkGRFWN E67Q/sbtsy51yLBV4CYSLF9WBQx15JaD4kFznRqnNEr7JWKC8ifYnmSueX/KnH0=
  • Authentication-results: bugseng.com; arc=none smtp.remote-ip=2.38.49.5
  • Cc: Jan Beulich <JBeulich@xxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, "consulting @ bugseng . com" <consulting@xxxxxxxxxxx>, Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
  • Delivery-date: Mon, 23 Feb 2026 07:26:40 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 20/02/26 22:46, Andrew Cooper wrote:
Eclair complains of a side effect in a sizeof() expression (R13.6).

I disagree with comments of the form "Eclair complains" used whereas
the right thing to say is, e.g.:

  sizeof() expressions with "potential side effects" violate
  MISRA C:2012 + AMD2 Rule 13.6, for which each function call
  is a potential side effect

or

  Take out potential side effects from sizeof() as mandated by
  MISRA C:2012 + AMD2 Rule 13.6.

Note that in recent versions of MISRA C that rule is no longer
mandatory.  More generally, note also that, IMHO, switching to
a more modern version of MISRA C would simplify compliance.

BTW: the correct spelling is "ECLAIR", all capitals.

write_atomic() only evaluates each parameter once, but rewrite the expression
to less resemble entries in an obfuscation contest.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
CC: Jan Beulich <JBeulich@xxxxxxxx>
CC: Roger Pau Monné <roger.pau@xxxxxxxxxx>
CC: Stefano Stabellini <sstabellini@xxxxxxxxxx>
CC: Julien Grall <julien@xxxxxxx>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
CC: Bertrand Marquis <bertrand.marquis@xxxxxxx>
CC: Michal Orzel <michal.orzel@xxxxxxx>
CC: consulting@xxxxxxxxxxx <consulting@xxxxxxxxxxx>
CC: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
---
  xen/arch/x86/mm/shadow/set.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/mm/shadow/set.c b/xen/arch/x86/mm/shadow/set.c
index 8b670b6bb555..96ba2811077e 100644
--- a/xen/arch/x86/mm/shadow/set.c
+++ b/xen/arch/x86/mm/shadow/set.c
@@ -62,8 +62,8 @@ shadow_write_entries(void *d, const void *s, unsigned int 
entries, mfn_t mfn)
ASSERT(IS_ALIGNED((unsigned long)dst, sizeof(*dst))); - for ( ; i < entries; i++ )
-        write_atomic(&dst++->l1, src++->l1);
+    for ( ; i < entries; i++, dst++, src++ )
+        write_atomic(&dst->l1, src->l1);
unmap_domain_page(map);
  }




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.