Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package powerpc-utils for openSUSE:Factory 
checked in at 2024-02-01 18:04:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/powerpc-utils (Old)
 and      /work/SRC/openSUSE:Factory/.powerpc-utils.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "powerpc-utils"

Thu Feb  1 18:04:22 2024 rev:140 rq:1143292 version:1.3.11

Changes:
--------
--- /work/SRC/openSUSE:Factory/powerpc-utils/powerpc-utils.changes      
2024-01-05 21:40:51.841074979 +0100
+++ /work/SRC/openSUSE:Factory/.powerpc-utils.new.1815/powerpc-utils.changes    
2024-02-01 18:04:39.065526957 +0100
@@ -1,0 +2,12 @@
+Thu Feb  1 09:17:33 UTC 2024 - Michal Suchanek <msucha...@suse.com>
+
+- Support muliple NVMe device paths in bootlist (bsc#1219234 ltc#204975)
+  * bootlist-Support-multiple-dev-paths-for-a-nvme-boot-.patch
+- Add fixes merged upstream (bsc#1219433)
+  * rtas_dbg-Fix-the-large-negative-values-in-rtas_dbg.patch
+  * powerpc-nvram-fix-segmentation-fault-issue-in-print-.patch
+  * powerpc-nvram-Fix-Segmentation-fault-issue-in-nvram-.patch
+  * nvram-man-page-and-help-output-are-not-in-sync.patch
+  * ppc64_cpu-info-fix-bad-report-when-non-continuous-CP.patch
+
+-------------------------------------------------------------------
@@ -45 +57 @@
-- Fix setting primaty HNV link when using NM
+- Fix setting primaty HNV link when using NM (bsc#1195404 ltc#196259).

New:
----
  bootlist-Support-multiple-dev-paths-for-a-nvme-boot-.patch
  nvram-man-page-and-help-output-are-not-in-sync.patch
  powerpc-nvram-Fix-Segmentation-fault-issue-in-nvram-.patch
  powerpc-nvram-fix-segmentation-fault-issue-in-print-.patch
  ppc64_cpu-info-fix-bad-report-when-non-continuous-CP.patch
  rtas_dbg-Fix-the-large-negative-values-in-rtas_dbg.patch

BETA DEBUG BEGIN:
  New:- Support muliple NVMe device paths in bootlist (bsc#1219234 ltc#204975)
  * bootlist-Support-multiple-dev-paths-for-a-nvme-boot-.patch
- Add fixes merged upstream (bsc#1219433)
  New:  * powerpc-nvram-Fix-Segmentation-fault-issue-in-nvram-.patch
  * nvram-man-page-and-help-output-are-not-in-sync.patch
  * ppc64_cpu-info-fix-bad-report-when-non-continuous-CP.patch
  New:  * powerpc-nvram-fix-segmentation-fault-issue-in-print-.patch
  * powerpc-nvram-Fix-Segmentation-fault-issue-in-nvram-.patch
  * nvram-man-page-and-help-output-are-not-in-sync.patch
  New:  * rtas_dbg-Fix-the-large-negative-values-in-rtas_dbg.patch
  * powerpc-nvram-fix-segmentation-fault-issue-in-print-.patch
  * powerpc-nvram-Fix-Segmentation-fault-issue-in-nvram-.patch
  New:  * nvram-man-page-and-help-output-are-not-in-sync.patch
  * ppc64_cpu-info-fix-bad-report-when-non-continuous-CP.patch
  New:- Add fixes merged upstream (bsc#1219433)
  * rtas_dbg-Fix-the-large-negative-values-in-rtas_dbg.patch
  * powerpc-nvram-fix-segmentation-fault-issue-in-print-.patch
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ powerpc-utils.spec ++++++
--- /var/tmp/diff_new_pack.ALMHny/_old  2024-02-01 18:04:40.013558992 +0100
+++ /var/tmp/diff_new_pack.ALMHny/_new  2024-02-01 18:04:40.017559128 +0100
@@ -34,6 +34,12 @@
 Patch7:         lparstat-Fix-offline-threads-uninitialized-entries.patch
 Patch8:         ppc64_cpu-Support-partial-SMT-level-through-SYS-FS-s.patch
 Patch9:         powerpc-utils-scripts-ofpathname-handle-nsid-of-nvme.patch
+Patch10:        bootlist-Support-multiple-dev-paths-for-a-nvme-boot-.patch
+Patch11:        rtas_dbg-Fix-the-large-negative-values-in-rtas_dbg.patch
+Patch12:        powerpc-nvram-fix-segmentation-fault-issue-in-print-.patch
+Patch13:        powerpc-nvram-Fix-Segmentation-fault-issue-in-nvram-.patch
+Patch14:        nvram-man-page-and-help-output-are-not-in-sync.patch
+Patch15:        ppc64_cpu-info-fix-bad-report-when-non-continuous-CP.patch
 BuildRequires:  autoconf
 BuildRequires:  automake
 BuildRequires:  libnuma-devel

++++++ bootlist-Support-multiple-dev-paths-for-a-nvme-boot-.patch ++++++
>From 882335a30d04032d2684e165f70646b368a788b4 Mon Sep 17 00:00:00 2001
From: Wen Xiong <wenxi...@linux.ibm.com>
Date: Tue, 30 Jan 2024 10:49:13 -0600
Subject: [PATCH] bootlist: Support multiple dev paths for a nvme boot device

Multipath splitter drawer is going to support two physical paths for
each nvme device.
This patch adds the support for multiple device/of paths for a nvme boot
device.

For example,
#lsslot -c pci
U50EE.001.WZS000E-P3-C1-R1  U.2 PCI-E capable, Rev 4, 4x lanes with 2x
lanes connected  0581:10:00.0
U50EE.001.WZS000E-P3-C1-R2  U.2 PCI-E capable, Rev 4, 4x lanes with 2x
lanes connected  0521:10:00.0

#nvme list-subsys
nvme-subsys1 -
NQN=nqn.1994-11.com.samsung:nvme:PM1735a:2.5-inch:S6RUNE0R900042
               
hostnqn=nqn.2014-08.org.nvmexpress:uuid:3c6c1ace-e9b1-4a17-8ff0-6a84d3dd15f4
               iopolicy=numa
\
 +- nvme1 pcie 0523:20:00.0 live
 +- nvme0 pcie 0583:20:00.0 live

# bootlist -m normal nvme1n1
# bootlist -m normal -o
nvme0
nvme1n1
#bootlist -m normal -r
/pci@800000020000583/pci1014,6bc@0/namespace@1
/pci@800000020000523/pci1014,6bc@0/namespace@1

Signed-off-by: Wen Xiong <wenxi...@linux.ibm.com>
[tyreld: fixup whitespace errors]
Signed-off-by: Tyrel Datwyler <tyr...@linux.ibm.com>
---
 scripts/bootlist | 80 +++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 66 insertions(+), 14 deletions(-)

diff --git a/scripts/bootlist b/scripts/bootlist
index cc8718e..58c090f 100755
--- a/scripts/bootlist
+++ b/scripts/bootlist
@@ -304,6 +304,21 @@ is_nvmf_device()
        fi
 }
 
+# is_multipath_nvme_device
+# Check to see if this is a multipath nvme device
+#
+is_multipath_nvme_device()
+{
+       local res
+
+       res=`$FIND /sys/devices/virtual/nvme-subsystem -name $1 2>/dev/null`
+       if [[ ${#res} = 0 ]]; then
+               echo "no"
+       else
+               echo "yes"
+       fi
+}
+
 # get_link
 # return the directory path that a link points to.
 # The only parameter is the link name.
@@ -340,6 +355,32 @@ add_nvmf()
        fi
 }
 
+add_multipath_nvme()
+{
+       local DEVNAME=$1
+
+       ctrl_name=$DEVNAME
+       local startctr=$ctr
+
+       local dir
+       for dir in `$FIND /sys/devices/virtual/nvme-subsystem -name 
"$ctrl_name"`; do
+               cd $dir
+               cd ..
+               for slave in `ls -d $PWD/nvme*`; do
+                   slavedev=${slave##*/}
+                   if [[ "$slavedev" != *nvme*n* ]] ; then
+                           LOGICAL_NAMES[$ctr]=${slavedev}
+                           ctr=$[$ctr + 1]
+                   fi
+               done
+       done
+
+       if [[ "$startctr" = "$ctr" ]] ; then
+               LOGICAL_NAMES[$ctr]=$1
+               ctr=$[$ctr + 1]
+       fi
+}
+
 add_logical()
 {
     local DEVNAME=$1
@@ -487,31 +528,40 @@ while [[ -n $1 ]]; do
         if [[ "$1" == *"dm-"* ]] ; then
             add_logical $1
         else
-            if [[ "$1" == *"nvme-of"* ]]; then
+            if [[ "$1" == *"nvme-of"* ]] || [[ "$1" == *"namespace"* ]]; then
                 ctrl_name=`get_logical_device_name $1`
+               master_of_path=$1
             else
                ctrl_name=$1
                ctrl_name=${ctrl_name##*/}
+               master_of_path=`get_of_device_name $1`
             fi
+
+           if [[ -z $master_of_path ]]; then
+                echo "Device $1 does not appear to be valid." >&2
+                exit 1
+            fi
+
             ctrl_name="${ctrl_name%n[0-9]*}"
             is_nvmf=$(is_nvmf_device $ctrl_name)
             if [[ $is_nvmf = "yes" ]]; then
-                if [[ "$1" == *"nvme-of"* ]]; then
-                    master_of_path=$1
-                else
-                    master_of_path=`get_of_device_name $1`
-                fi
-
-                if [[ -z $master_of_path ]]; then
-                    echo "Device $1 does not appear to be valid." >&2
-                    exit 1
-                fi
-
                 namespace_base=${master_of_path##*/}
                 DEVTYPE="nvme-of"
                 add_nvmf $ctrl_name
             else
-                add_logical $1
+               is_multipath_nvme=$(is_multipath_nvme_device $ctrl_name)
+                if [[ $is_multipath_nvme = "yes" ]]; then
+                    if [[ "$master_of_path" == *namespace* ]] ; then
+                        namespace_base=${master_of_path##*/}
+                   else
+                       echo "Device $1 does not appear to be valid." >&2
+                       exit 1
+                    fi
+                    DEVTYPE="multi-nvme"
+                    add_multipath_nvme $ctrl_name
+                else
+                    add_logical $1
+               fi
             fi
         fi
     fi
@@ -534,8 +584,10 @@ if [[ ${#LOGICAL_NAMES[*]} -ne 0 ]]; then
         if [[ -z ${OF_DEVPATH[$ctr]} ]]; then
            # See if this is an OF pathname
            OF_DEVPATH[$ctr]=`get_of_device_name ${LOGICAL_NAMES[$ctr]}`
-           if [[ $DEVTYPE = "nvme-of" ]]; then
+           if [[ $DEVTYPE = "nvme-of" ]] || [[ $DEVTYPE = "multi-nvme" ]]; then
                    OF_DEVPATH[$ctr]=${OF_DEVPATH[$ctr]}/$namespace_base
+            else
+                   OF_DEVPATH[$ctr]=${OF_DEVPATH[$ctr]}
            fi
        else
            OF_DEVPATH[$ctr]=${LOGICAL_NAMES[$ctr]}
-- 
2.43.0


++++++ nvram-man-page-and-help-output-are-not-in-sync.patch ++++++
>From d604cc779741c29cbdc8da97cbfc1512fd21fc1b Mon Sep 17 00:00:00 2001
From: Likhitha Korrapati <likhi...@linux.ibm.com>
Date: Fri, 11 Aug 2023 00:41:14 -0500
Subject: [PATCH] nvram man page and --help output are not in sync

The nvram man page and the output from --help option are not in
sync and few of the options are missing in man page.

The options that are missing are ascii, dump, nvram-size, zero.
These options are added through the commit ids [1], [2].

This patch adds the above missing options to the nvram.

[1] 
https://github.com/ibm-power-utilities/powerpc-utils/commit/0e09f4e2898e7dea556479b018a7f4bf12108099
[2] 
https://github.com/ibm-power-utilities/powerpc-utils/commit/976dbe9bb7b01b135cac3e7bbd1dce0cdc88636a

Signed-off-by: Likhitha Korrapati <likhi...@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyr...@linux.ibm.com>
---
 man/nvram.8 | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/man/nvram.8 b/man/nvram.8
index 2938e34..6071712 100644
--- a/man/nvram.8
+++ b/man/nvram.8
@@ -67,6 +67,22 @@ be more verbose.
 \fB\--help
 print usage information including other low level options useful for
 debugging nvram.
+.TP
+\fB\--ascii \fIname
+print partition contents as ASCII text
+.TP
+\fB\--dump \fIname
+raw dump of partition (use --partitions to see names)
+.TP
+\fB\--nvram-size
+specify size of nvram data, must in multiples of 16 Bytes (for repair 
+operations)
+.TP
+\fB\--unzip \fIname
+decompress and print compressed data from partition
+.TP
+\fB\--zero | 0 \fR
+terminate config pairs with a NULL character
 .SH FILES
 /dev/nvram
 .SH AUTHOR
-- 
2.43.0


++++++ powerpc-nvram-Fix-Segmentation-fault-issue-in-nvram-.patch ++++++
>From a6d31caf4eaa453d3ec879f02163b3a515789b85 Mon Sep 17 00:00:00 2001
From: Likhitha Korrapati <likhi...@linux.ibm.com>
Date: Mon, 11 Sep 2023 05:23:37 -0500
Subject: [PATCH] powerpc/nvram: Fix Segmentation fault issue in nvram-size.

nvram-size option results in segmentation fault when the user
specifies value larger than the default nvram size

Without the patch:
[root@xxx ~]# nvram --nvram-size 1048592
nvram: WARNING: expected 1048592 bytes, but only read 15360!
Segmentation fault (core dumped)

Segmentation fault is caused because the phead->length is becoming 0.
And because of this the p_start doesn't get updated which makes the
while loop run infinitely resulting in segmentation fault.
This patch adds a condition check for phead->length to avoid infinite
while loop.

With the patch:
[root@xxx src]# ./nvram --nvram-size 1048592
./nvram: WARNING: expected 1048592 bytes, but only read 15360!
[root@xxx src]# ./nvram --nvram-size 268435456
./nvram: WARNING: expected 268435456 bytes, but only read 15360!
[root@xxx src]#

Reported-by: Shirisha Ganta <shiri...@linux.ibm.com>
Signed-off-by: Likhitha Korrapati <likhi...@linux.ibm.com>
[tyreld: fixed up else block]
Signed-off-by: Tyrel Datwyler <tyr...@linux.ibm.com>
---
 src/nvram.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/nvram.c b/src/nvram.c
index 095e747..1987c3d 100644
--- a/src/nvram.c
+++ b/src/nvram.c
@@ -460,8 +460,12 @@ nvram_parse_partitions(struct nvram *nvram)
        c_sum = checksum(phead);
        if (c_sum != phead->checksum)
            warn_msg("this partition checksum should be %02x!\n", c_sum);
-       phead->length = be16toh(phead->length);
-       p_start += phead->length * NVRAM_BLOCK_SIZE;
+       if (phead->length != 0) {
+               phead->length = be16toh(phead->length);
+               p_start += phead->length * NVRAM_BLOCK_SIZE;
+       } else {
+               break;
+       }
     }
 
     if (verbose)
-- 
2.43.0


++++++ powerpc-nvram-fix-segmentation-fault-issue-in-print-.patch ++++++
>From 3f72b8326a2fc9a9dffb4b31d0ce3abf12e24751 Mon Sep 17 00:00:00 2001
From: Likhitha Korrapati <likhi...@linux.ibm.com>
Date: Thu, 25 Jan 2024 15:44:02 +0530
Subject: [PATCH] powerpc/nvram: fix segmentation fault issue in print-config

print-config option in nvram results in segmentation fault when the
user provides a very large value.

without the patch:
[root@xxx powerpc-utils]# nvram --print-config=real-mode?
true
[root@xxx powerpc-utils]# nvram --print-config=$(perl -e 'p
rint "A"x1000000')
Segmentation fault (core dumped)

The Segmentation fault occurs because the code tries to access memory
beyond the bounds of the data at index varlen. varlen is the length of
the string provided by the user.

This patch adds a condition to check whether the length of the data is
greater than varlen to prevent accessing out of bounds.

with the patch:
[root@xxx powerpc-utils]# ./src/nvram --print-config=real-m
ode?
true
[root@xxx powerpc-utils]# ./src/nvram --print-config=$(perl
 -e 'print "A"x1000000')

Reported-by: Shirisha Ganta <shiri...@linux.ibm.com>
Signed-off-by: Likhitha Korrapati <likhi...@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyr...@linux.ibm.com>
---
 src/nvram.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/nvram.c b/src/nvram.c
index f051e9c..095e747 100644
--- a/src/nvram.c
+++ b/src/nvram.c
@@ -1280,7 +1280,7 @@ print_of_config(struct nvram *nvram, char *config_var, 
char *pname,
 
        data = (char *)phead + sizeof(*phead);
        while (*data != '\0') {
-           if ((data[varlen] == '=') && 
+           if (strlen(data) > varlen && (data[varlen] == '=') &&
                strncmp(config_var, data, varlen) == 0) {
                printf("%s%c", data + varlen + 1, terminator);
                rc = 0;
-- 
2.43.0


++++++ ppc64_cpu-info-fix-bad-report-when-non-continuous-CP.patch ++++++
>From f1a8ed892e18b83cb0483e8f8f8cbc512fa8510c Mon Sep 17 00:00:00 2001
From: Laurent Dufour <lduf...@linux.ibm.com>
Date: Thu, 10 Aug 2023 11:47:07 +0200
Subject: [PATCH] ppc64_cpu/info: fix bad report when non continuous CPU ids

When CPU ids are not continuous, let say that the kernel didn't reuse a set
of CPU ids already used on a different nodes, the output of ppc64_cpu
--info is not correct.

For instance, in the example below the CPU id 48 to 55 haven't been reused
by the kernel when a CPU has been added after a LPM operation.
Note that the system is running in SMT=4.

The numactl -H command is providing the correct set of CPU:
ltczep3-lp4:~ # numactl -H
available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 64 65 66 67 68 69 70 71
node 0 size: 7177 MB
node 0 free: 4235 MB
node 1 cpus: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 
38 39 40 41 42 43 44 45 46 47
node 1 size: 24508 MB
node 1 free: 23539 MB
node distances:
node   0   1
  0:  10  40
  1:  40  10

But ppc64_cpu --info is reporting the CPUs 48 to 55 offlined while not
reporting at all the CPU 65 to 71:
ltczep3-lp4:~ # ppc64_cpu --info
Core   0:    0*    1*    2*    3*    4*    5*    6*    7*
Core   1:    8*    9*   10*   11*   12*   13*   14*   15*
Core   2:   16*   17*   18*   19*   20*   21*   22*   23*
Core   3:   24*   25*   26*   27*   28*   29*   30*   31*
Core   4:   32*   33*   34*   35*   36*   37*   38*   39*
Core   5:   40*   41*   42*   43*   44*   45*   46*   47*
Core   6:   48    49    50    51    52    53    54    55

This is because it is considering that the CPU id are continuous which is
not the case here.

To prevent that, when looking for a core, it is now first checking that the
physical_id of the first thread in that core is defined (not -1). If that
the case this means that CPU/core is present.

With that patch applied, ppc64_cpu --info is reporting:
ltczep3-lp4:~ # pc64_cpu --info
Core   0:    0*    1*    2*    3*    4     5     6     7
Core   1:    8*    9*   10*   11*   12    13    14    15
Core   2:   16*   17*   18*   19*   20    21    22    23
Core   3:   24*   25*   26*   27*   28    29    30    31
Core   4:   32*   33*   34*   35*   36    37    38    39
Core   5:   40*   41*   42*   43*   44    45    46    47
Core   6:   64*   65*   66*   67*   68    69    70    71

Signed-off-by: Laurent Dufour <lduf...@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyr...@linux.ibm.com>
---
 src/common/cpu_info_helpers.c | 14 ++++++++++++++
 src/common/cpu_info_helpers.h |  1 +
 src/ppc64_cpu.c               | 25 +++++++++++++++++--------
 3 files changed, 32 insertions(+), 8 deletions(-)

diff --git a/src/common/cpu_info_helpers.c b/src/common/cpu_info_helpers.c
index c05d96d..8c57db8 100644
--- a/src/common/cpu_info_helpers.c
+++ b/src/common/cpu_info_helpers.c
@@ -83,6 +83,20 @@ int __sysattr_is_writeable(char *attribute, int 
threads_in_system)
        return test_sysattr(attribute, W_OK, threads_in_system);
 }
 
+int cpu_physical_id(int thread)
+{
+       char path[SYSFS_PATH_MAX];
+       int rc, physical_id;
+
+       sprintf(path, SYSFS_CPUDIR"/physical_id", thread);
+       rc = get_attribute(path, "%d", &physical_id);
+
+       /* This attribute does not exist in kernels without hotplug enabled */
+       if (rc && errno == ENOENT)
+               return -1;
+       return physical_id;
+}
+
 int cpu_online(int thread)
 {
        char path[SYSFS_PATH_MAX];
diff --git a/src/common/cpu_info_helpers.h b/src/common/cpu_info_helpers.h
index 8f09d79..c063fff 100644
--- a/src/common/cpu_info_helpers.h
+++ b/src/common/cpu_info_helpers.h
@@ -32,6 +32,7 @@
 
 extern int __sysattr_is_readable(char *attribute, int threads_in_system);
 extern int __sysattr_is_writeable(char *attribute, int threads_in_system);
+extern int cpu_physical_id(int thread);
 extern int cpu_online(int thread);
 extern int is_subcore_capable(void);
 extern int num_subcores(void);
diff --git a/src/ppc64_cpu.c b/src/ppc64_cpu.c
index 5fdf86a..ad9f4dc 100644
--- a/src/ppc64_cpu.c
+++ b/src/ppc64_cpu.c
@@ -1251,31 +1251,40 @@ static int do_cores_on(char *state)
        return 0;
 }
 
+static bool core_is_online(int core)
+{
+       return  cpu_physical_id(core * threads_per_cpu) != -1;
+}
+
 static int do_info(void)
 {
        int i, j, thread_num;
        char online;
-       int subcores = 0;
+       int core, subcores = 0;
 
        if (is_subcore_capable())
                subcores = num_subcores();
 
-       for (i = 0; i < cpus_in_system; i++) {
+       for (i = 0, core = 0; core < cpus_in_system; i++) {
+
+               if (!core_is_online(i))
+                       continue;
 
                if (subcores > 1) {
-                       if (i % subcores == 0)
-                               printf("Core %3d:\n", i/subcores);
-                       printf("  Subcore %3d: ", i);
+                       if (core % subcores == 0)
+                               printf("Core %3d:\n", core/subcores);
+                       printf("  Subcore %3d: ", core);
                } else {
-                       printf("Core %3d: ", i);
+                       printf("Core %3d: ", core);
                }
 
-               for (j = 0; j < threads_per_cpu; j++) {
-                       thread_num = i*threads_per_cpu + j;
+               thread_num = i * threads_per_cpu;
+               for (j = 0; j < threads_per_cpu; j++, thread_num++) {
                        online = cpu_online(thread_num) ? '*' : ' ';
                        printf("%4d%c ", thread_num, online);
                }
                printf("\n");
+               core++;
        }
        return 0;
 }
-- 
2.43.0


++++++ rtas_dbg-Fix-the-large-negative-values-in-rtas_dbg.patch ++++++
>From 9caa77e4477a73064a6deea253fd3faea32648fb Mon Sep 17 00:00:00 2001
From: Likhitha Korrapati <likhi...@linux.ibm.com>
Date: Fri, 17 Nov 2023 01:42:29 -0500
Subject: [PATCH] rtas_dbg: Fix the large negative values in rtas_dbg

without the patch:
[root@xxx powerpc-utils]# rtas_dbg -l ibm,rks-hcalls
Could not get rtas token for ibm,indicator-0002
Could not get rtas token for ibm,integrated-stop-self
Could not get rtas token for ibm,indicator-9005
Could not get rtas token for ibm,extended-os-term
Could not get rtas token for ibm,indicator-0001
Could not get rtas token for ibm,sensor-0009
Could not get rtas token for ibm,recoverable-epow3
Could not get rtas token for ibm,sensor-9005
Could not get rtas token for ibm,change-msix-capable
Could not get rtas token for ibm,sensor-0005
Could not get rtas token for ibm,sensor-0001
ibm,rks-hcalls                          -536870912

The large negatives values are due to incompatible format(%d).
The data type of the token variable is uint32_t.This patch
modifies the format(%u) to align with its data type(uint32_t).

with the patch:
[root@xxx powerpc-utils]# ./src/rtas_dbg -l ibm,rks-hcalls
Could not get rtas token for ibm,indicator-0002
Could not get rtas token for ibm,integrated-stop-self
Could not get rtas token for ibm,indicator-9005
Could not get rtas token for ibm,extended-os-term
Could not get rtas token for ibm,indicator-0001
Could not get rtas token for ibm,sensor-0009
Could not get rtas token for ibm,recoverable-epow3
Could not get rtas token for ibm,sensor-9005
Could not get rtas token for ibm,change-msix-capable
Could not get rtas token for ibm,sensor-0005
Could not get rtas token for ibm,sensor-0001
ibm,rks-hcalls                          3758096384

Reported-by: Shirisha Ganta <shiri...@linux.ibm.com>
Signed-off-by: Likhitha Korrapati <likhi...@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyr...@linux.ibm.com>
---
 src/rtas_dbg.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/rtas_dbg.c b/src/rtas_dbg.c
index ebc7474..6c7854a 100644
--- a/src/rtas_dbg.c
+++ b/src/rtas_dbg.c
@@ -200,10 +200,10 @@ void print_rtas_tokens(struct rtas_token *tok, struct 
rtas_token *tok_list)
        struct rtas_token *t;
 
        if (tok)
-               printf("%-40s%d\n", tok->name, tok->token);
+               printf("%-40s%u\n", tok->name, tok->token);
        else {
                for (t = tok_list; t; t = t->next)
-                       printf("%-40s%d\n", t->name, t->token);
+                       printf("%-40s%u\n", t->name, t->token);
        }
 }
 
@@ -217,7 +217,7 @@ int set_rtas_dbg(struct rtas_token *tok)
        args.nret = htobe32(1);
        args.args[0] = htobe32(tok->token);
 
-       printf("Enabling rtas debug for %s (%d)\n", tok->name, tok->token);
+       printf("Enabling rtas debug for %s (%u)\n", tok->name, tok->token);
 
        rc = rtas(&args);
 
-- 
2.43.0

Reply via email to