summaryrefslogtreecommitdiffstats
path: root/openpower/package/hostboot-p8/0005-error-dereferencing-type-punned-pointer-will-break-s.patch
diff options
context:
space:
mode:
Diffstat (limited to 'openpower/package/hostboot-p8/0005-error-dereferencing-type-punned-pointer-will-break-s.patch')
-rw-r--r--openpower/package/hostboot-p8/0005-error-dereferencing-type-punned-pointer-will-break-s.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/openpower/package/hostboot-p8/0005-error-dereferencing-type-punned-pointer-will-break-s.patch b/openpower/package/hostboot-p8/0005-error-dereferencing-type-punned-pointer-will-break-s.patch
new file mode 100644
index 00000000..fcfe5701
--- /dev/null
+++ b/openpower/package/hostboot-p8/0005-error-dereferencing-type-punned-pointer-will-break-s.patch
@@ -0,0 +1,71 @@
+From 550d36dca3cdec84d47f05711c2569990d3b4708 Mon Sep 17 00:00:00 2001
+From: Stewart Smith <stewart@linux.vnet.ibm.com>
+Date: Thu, 25 Aug 2016 19:27:04 +1000
+Subject: [PATCH 05/10] error: dereferencing type-punned pointer will break
+ strict-aliasing rules
+
+Change-Id: I63accd3e881c941736ece4b4498c2c9d06ff8761
+Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
+---
+ src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.H | 7 +++++++
+ .../usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.H | 1 -
+ src/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.C | 6 +++---
+ 3 files changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.H b/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.H
+index e5af2c9..7edf2bf 100755
+--- a/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.H
++++ b/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.H
+@@ -227,6 +227,13 @@ namespace getAttrData
+ uint8_t iv_systemType;
+ uint8_t iv_systemType_ext;
+ uint8_t iv_dataVersion;
++ public:
++ MBvpdVMKeyword() : iv_version(0),iv_systemType(0),
++ iv_systemType_ext(0),iv_dataVersion(0) {};
++ operator uint32_t() const {
++ return iv_version << 24 | iv_systemType << 16 |
++ iv_systemType_ext << 8 | iv_dataVersion;
++ }
+ };
+ // Attribute definition
+ struct MBvpdAttrDef
+diff --git a/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.H b/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.H
+index f172508..85460b2 100644
+--- a/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.H
++++ b/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.H
+@@ -33,7 +33,6 @@
+ #define _HWP_GETMBVPDMEMDATAVERSION_
+
+ #include <fapi.H>
+-#define VM_KEYWORD_DEFAULT_VALUE 0x00000000
+
+ // function pointer typedef definition for HWP call support
+ typedef fapi::ReturnCode (*getMBvpdMemoryDataVersion_FP_t)
+diff --git a/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.C b/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.C
+index 2f83fa2..ef64515 100644
+--- a/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.C
++++ b/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.C
+@@ -50,7 +50,7 @@ fapi::ReturnCode getMBvpdMemoryDataVersion(
+ fapi::ReturnCode l_fapirc;
+ DimmType l_dimmType = ISDIMM;
+ fapi::MBvpdRecord l_record = fapi::MBVPD_RECORD_SPDX;
+- uint32_t l_vpdMemoryDataVersion = VM_KEYWORD_DEFAULT_VALUE;
++ MBvpdVMKeyword l_vpdMemoryDataVersion;
+ uint32_t l_bufSize = sizeof(l_vpdMemoryDataVersion);
+
+ FAPI_DBG("getMBvpdMemoryDataVersion: entry ");
+@@ -140,8 +140,8 @@ fapi::ReturnCode getMBvpdMemoryDataVersion(
+ }
+
+ // Check if the format byte in the value returned is in between valid range
+- if (( ((MBvpdVMKeyword *)(&l_vpdMemoryDataVersion))->iv_version > VM_SUPPORTED_HIGH_VER )||
+- ( ((MBvpdVMKeyword *)(&l_vpdMemoryDataVersion))->iv_version == VM_NOT_SUPPORTED ))
++ if ((l_vpdMemoryDataVersion.iv_version > VM_SUPPORTED_HIGH_VER )||
++ (l_vpdMemoryDataVersion.iv_version == VM_NOT_SUPPORTED ))
+ {
+ FAPI_ERR("getMBvpdMemoryDataVersion:"
+ " keyword data returned is invalid : %d ",
+--
+2.7.4
+
OpenPOWER on IntegriCloud