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

[XEN PATCH v2] misra: address violation of MISRA C Rule 10.1


  • To: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@xxxxxxxx>
  • Date: Fri, 11 Jul 2025 11:43:13 +0000
  • Accept-language: en-US, uk-UA, ru-RU
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ME74X6qHAZD1OpdJW0zOn/DXxHul0Lg1N2c9o09JIzM=; b=IMWRvwHl21pfVRXHPgv5ERcywLvqhvbS2vlxTR1iMNBEfC8DSZ72HoV4RaeKXH5LP04wNAJ8fyDHyNkxIWber1WcP0clGxVB4Bjy/dEasZe1p+jThHXaKBoIIAyOBX2dKxMGcGFo8jAZQwGV+7stDzc/1YtLZXvKYa4HiU8E5MqFGSI56y0SED/0s++DzmrvBU2rZFVN0wRMtiHwyj7YQivZI4FR/k6FwdqXEtygq4qY/n3lZ64Ya+PkbAsoTPCnzZk2dQIcjMctTEMwCYMOXHGvxuQQWld6JPG3FgWM0dMK5BDkdUn0wCm+PEyXYWNi33LRd+ONRv65Qfe9sguHpQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Gy3KIKB4ShK14CxsPbFt7bxcH8WWCwT3kFWLwqegZt+AYgdejQAsg9p+I+JJpC5PuTAPTwHSbKNIbBTtms4x7SUfbqZixvmhi2DAZ1Tlrq40piom2ZVIqR62A+S9Cd0bOEEn8phXwNVUESd+y6dJst5zzgzILKvmlGTWQutMDUzBjmTr85tXdBU9hpv6ua7UdNScx29tZVnXfCAjjeLFojpGcNgkCCLV3bVO5lIcKCwLhpjXmRSZuz1pwYhDBwOOiKRuMM8FWUmL+MBSfTdHjH8M0MU9d2vGPZxxj6HrvNy6liXYa8MG6aMlzZtMUHkmpoGDezKr5XosAeCI6R9MYg==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com;
  • Cc: Dmytro Prokopchuk1 <dmytro_prokopchuk1@xxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Rahul Singh <rahul.singh@xxxxxxx>
  • Delivery-date: Fri, 11 Jul 2025 11:43:28 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHb8lj8U0c0yIOr5EqfSUQdGwVgzQ==
  • Thread-topic: [XEN PATCH v2] misra: address violation of MISRA C Rule 10.1

Rule 10.1: Operands shall not be of an
inappropriate essential type

The following are non-compliant:
- unary minus on unsigned type;
- boolean used as a numeric value.

Precede unary '-' operator with casting to signed type.
Replace numeric constant '-1UL' with '~0UL'.
Replace numeric constant '-1ULL' with '~0ULL'.
Replace boolean with numeric value.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@xxxxxxxx>
---
Changes since v1:
- changed patch subject prefix
- multiplication replaced with cast
Link to v1: 
https://patchew.org/Xen/d92cf08a64d8197a1d1a45f901e59183105d3da5.1752183472.git.dmytro._5Fprokopchuk1@xxxxxxxx/
---
 xen/arch/arm/gic-vgic.c               | 2 +-
 xen/common/memory.c                   | 2 +-
 xen/common/page_alloc.c               | 6 +++---
 xen/common/time.c                     | 2 +-
 xen/drivers/passthrough/arm/smmu-v3.c | 2 +-
 xen/lib/strtol.c                      | 2 +-
 xen/lib/strtoll.c                     | 2 +-
 7 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/gic-vgic.c b/xen/arch/arm/gic-vgic.c
index ea48c5375a..a35f33c5f2 100644
--- a/xen/arch/arm/gic-vgic.c
+++ b/xen/arch/arm/gic-vgic.c
@@ -17,7 +17,7 @@
 #include <asm/vgic.h>
 
 #define lr_all_full()                                           \
-    (this_cpu(lr_mask) == (-1ULL >> (64 - gic_get_nr_lrs())))
+    (this_cpu(lr_mask) == (~0ULL >> (64 - gic_get_nr_lrs())))
 
 #undef GIC_DEBUG
 
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 46620ed825..0a5b3fab04 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -773,7 +773,7 @@ static long 
memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
 
                 nrspin_lock(&d->page_alloc_lock);
                 drop_dom_ref = (dec_count &&
-                                !domain_adjust_tot_pages(d, -dec_count));
+                                !domain_adjust_tot_pages(d, -(long)dec_count));
                 nrspin_unlock(&d->page_alloc_lock);
 
                 if ( drop_dom_ref )
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 8f93a4c354..da8dddf934 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -691,7 +691,7 @@ size_param("low_mem_virq_limit", opt_low_mem_virq);
 /* Thresholds to control hysteresis. In pages */
 /* When memory grows above this threshold, reset hysteresis.
  * -1 initially to not reset until at least one virq issued. */
-static unsigned long low_mem_virq_high      = -1UL;
+static unsigned long low_mem_virq_high      = ~0UL;
 /* Threshold at which we issue virq */
 static unsigned long low_mem_virq_th        = 0;
 /* Original threshold after all checks completed */
@@ -710,7 +710,7 @@ static void __init setup_low_mem_virq(void)
      * to ever trigger. */
     if ( opt_low_mem_virq == 0 )
     {
-        low_mem_virq_th = -1UL;
+        low_mem_virq_th = ~0UL;
         return;
     }
 
@@ -778,7 +778,7 @@ static void check_low_mem_virq(void)
         low_mem_virq_th_order++;
         low_mem_virq_th = 1UL << low_mem_virq_th_order;
         if ( low_mem_virq_th == low_mem_virq_orig )
-            low_mem_virq_high = -1UL;
+            low_mem_virq_high = ~0UL;
         else
             low_mem_virq_high = 1UL << (low_mem_virq_th_order + 2);
     }
diff --git a/xen/common/time.c b/xen/common/time.c
index 92f7b72464..980dddee28 100644
--- a/xen/common/time.c
+++ b/xen/common/time.c
@@ -84,7 +84,7 @@ struct tm gmtime(unsigned long t)
     }
     tbuf.tm_year = y - 1900;
     tbuf.tm_yday = days;
-    ip = (const unsigned short int *)__mon_lengths[__isleap(y)];
+    ip = (const unsigned short int *)__mon_lengths[__isleap(y) ? 1 : 0];
     for ( y = 0; days >= ip[y]; ++y )
         days -= ip[y];
     tbuf.tm_mon = y;
diff --git a/xen/drivers/passthrough/arm/smmu-v3.c 
b/xen/drivers/passthrough/arm/smmu-v3.c
index df16235057..4058b18f2c 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -315,7 +315,7 @@ static int queue_poll_cons(struct arm_smmu_queue *q, bool 
sync, bool wfe)
 
        while (queue_sync_cons_in(q),
              (sync ? !queue_empty(&q->llq) : queue_full(&q->llq))) {
-               if ((NOW() > timeout) > 0)
+               if (NOW() > timeout)
                        return -ETIMEDOUT;
 
                if (wfe) {
diff --git a/xen/lib/strtol.c b/xen/lib/strtol.c
index 30dca779cf..c68d133657 100644
--- a/xen/lib/strtol.c
+++ b/xen/lib/strtol.c
@@ -13,7 +13,7 @@
 long simple_strtol(const char *cp, const char **endp, unsigned int base)
 {
     if ( *cp == '-' )
-        return -simple_strtoul(cp + 1, endp, base);
+        return -(long)simple_strtoul(cp + 1, endp, base);
     return simple_strtoul(cp, endp, base);
 }
 
diff --git a/xen/lib/strtoll.c b/xen/lib/strtoll.c
index 5d23fd80e8..6861d55929 100644
--- a/xen/lib/strtoll.c
+++ b/xen/lib/strtoll.c
@@ -13,7 +13,7 @@
 long long simple_strtoll(const char *cp, const char **endp, unsigned int base)
 {
     if ( *cp == '-' )
-        return -simple_strtoull(cp + 1, endp, base);
+        return -(long long)simple_strtoull(cp + 1, endp, base);
     return simple_strtoull(cp, endp, base);
 }
 
-- 
2.43.0



 


Rackspace

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