From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f175.google.com (mail-pg1-f175.google.com [209.85.215.175]) by mx.groups.io with SMTP id smtpd.web10.2173.1686071110198977818 for ; Tue, 06 Jun 2023 10:05:10 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="signature has expired" header.i=@ventanamicro.com header.s=google header.b=bc7bkzJT; spf=pass (domain: ventanamicro.com, ip: 209.85.215.175, mailfrom: sunilvl@ventanamicro.com) Received: by mail-pg1-f175.google.com with SMTP id 41be03b00d2f7-53fdae76f3aso5802647a12.0 for ; Tue, 06 Jun 2023 10:05:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1686071109; x=1688663109; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=7mkABp7qUjekfe4GuBimRSgXO7lSYOxRbqEMehWSGHY=; b=bc7bkzJTmnHotjhfgNorH5h6tj3Lv/iyU9G2/gucEYrXkvUKtKaXsLGqNCnAYr6GnA M9Kk7jTfZ7V2TRD9pZT+zCcTEj2NEu4U0vZ+rIcFb587Mfkjw1tn7hMHbU4crkLCM/6a ICEYYQKLHhkNh35Za1iVN0eXeCgRtIv150T9MJ45G35ldKJrC+Euuz04NGT2/TjAGet1 2hMk/jnZ6VgWMX3ZzabfO6K8RKW8b6vPsJt8r+f2QnsAKyT+Yoe/9+FqpYKxV8EIyLIx 7qQv9NB4HLC2cv/6XvwVyXrUFy3utKWDQXr8KN5yGfwcuaNLB/BxaafJPX6Nl2cKjXsP Irpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686071109; x=1688663109; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=7mkABp7qUjekfe4GuBimRSgXO7lSYOxRbqEMehWSGHY=; b=DLruK0/JL/YufKTKNZKTtFDyFtjfUFvMlZL4ZyeSdmN4zcKdt3AlNdlavBAWzA6ewp SnIRzLSy5PR1Fx9Fr1OTKEVrzjC8B7XoA5Z4n73aDhForiODVpZuOU3c7x0G6yr7tCmq uFRplL/QjRJUy/qO+vFEGp7586pyk1bfPsBzKUZVPASW9QvSJBPWeeMwkkT/7SCeG+Cy Cuc+Lb1uJnwLE8am+e13Gpn7f/KrIm5KGZpyGe6nmlTYHo2sOXA1OVoj011Emr41oREW ACiipHqecFgN1vR9b/1hac0rKaU3kzWCiflRC6Gl82PeyhmWqraDlf/ily1OFqCTcodT 0AqQ== X-Gm-Message-State: AC+VfDx4+tVD/7QxCl44v8ffCKqwNhqaVYx6UKAZtvfYS2ZmD3UBW/ks EU696QpomVkvCuq628QGC3Og32nUfM15Dpv7jvw= X-Google-Smtp-Source: ACHHUZ4ChRU+wIxN9NPQi8XLa2oNTY21kclKBXfwlkkgEK+2Ge+qbiRZj4rLmKH2mtYFxve24gW3jA== X-Received: by 2002:a17:90a:b002:b0:259:3cf1:6188 with SMTP id x2-20020a17090ab00200b002593cf16188mr2375131pjq.40.1686071109476; Tue, 06 Jun 2023 10:05:09 -0700 (PDT) Return-Path: Received: from kerodi.Dlink ([106.51.186.3]) by smtp.gmail.com with ESMTPSA id ml6-20020a17090b360600b002555689006esm9761986pjb.47.2023.06.06.10.05.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Jun 2023 10:05:09 -0700 (PDT) From: "Sunil V L" To: devel@edk2.groups.io Cc: Sunil V L , Chao Li , Daniel Schaefer , Michael D Kinney , Liming Gao , Zhiguang Liu , Andrei Warkentin Subject: [PATCH 1/1] MdePkg/BaseSynchronizationLib: Fix RISC-V synchronization functions Date: Tue, 6 Jun 2023 22:35:03 +0530 Message-Id: <20230606170503.734106-1-sunilvl@ventanamicro.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4433 There is a return value bug. SyncIncrement and SyncDecrement functions should return the updated value. But destination register rd in amoadd instruction will not have final incremented value. Fix this by loading the incremented value from the memory where amoadd instruction would have stored the final incremented value. Signed-off-by: Sunil V L Reported-by: Chao Li Cc: Daniel Schaefer Cc: Michael D Kinney Cc: Liming Gao Cc: Zhiguang Liu Cc: Andrei Warkentin --- .../Library/BaseSynchronizationLib/RiscV64/Synchronization.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MdePkg/Library/BaseSynchronizationLib/RiscV64/Synchronization.S b/MdePkg/Library/BaseSynchronizationLib/RiscV64/Synchronization.S index f287ef38f651..34672507d8dc 100644 --- a/MdePkg/Library/BaseSynchronizationLib/RiscV64/Synchronization.S +++ b/MdePkg/Library/BaseSynchronizationLib/RiscV64/Synchronization.S @@ -61,7 +61,7 @@ exit2: ASM_PFX (InternalSyncIncrement): li a1, 1 amoadd.w a2, a1, (a0) - mv a0, a2 + ld a0, 0(a0) ret // @@ -72,5 +72,5 @@ ASM_PFX (InternalSyncIncrement): ASM_PFX (InternalSyncDecrement): li a1, -1 amoadd.w a2, a1, (a0) - mv a0, a2 + ld a0, 0(a0) ret -- 2.34.1