diff options
| author | Dan Crowell <dcrowell@us.ibm.com> | 2017-10-11 11:56:19 -0500 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-10-19 22:17:12 -0400 |
| commit | 20250c0b1f6de53b2bfddd1c714fb8c97e655ce2 (patch) | |
| tree | 3d67d0922a68c11bc71218880844233604ebf50d /src/include | |
| parent | 281503375a8c02c78b8fa188c58c6207affe3713 (diff) | |
| download | blackbird-hostboot-20250c0b1f6de53b2bfddd1c714fb8c97e655ce2.tar.gz blackbird-hostboot-20250c0b1f6de53b2bfddd1c714fb8c97e655ce2.zip | |
Ensure AbaPtr is not used in runtime code
The AbaPtr makes assumptions that we have pointer values that
are only 32-bits long. In our runtime (HBRT) environment that
assumption is not true so we need to make sure none of the code
that runs there is trying to use the AbaPtr code.
Change-Id: I0a26558f305fada723bf3cb3447a2bdfddb194d0
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/48248
Reviewed-by: Martin Gloff <mgloff@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Matt Derksen <mderkse1@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/kernel/heapmgr.H | 10 | ||||
| -rw-r--r-- | src/include/sys/time.h | 5 | ||||
| -rw-r--r-- | src/include/usr/errl/errlmanager.H | 1 | ||||
| -rw-r--r-- | src/include/util/lockfree/abaptr.H | 8 |
4 files changed, 20 insertions, 4 deletions
diff --git a/src/include/kernel/heapmgr.H b/src/include/kernel/heapmgr.H index bf4fe1cc7..9f1d0a7ed 100644 --- a/src/include/kernel/heapmgr.H +++ b/src/include/kernel/heapmgr.H @@ -26,10 +26,13 @@ #define __KERNEL_HEAPMGR_H #include <stdint.h> -#include <util/lockfree/stack.H> #include <builtins.h> #include <kernel/types.h> +#ifndef __HOSTBOOT_RUNTIME +#include <util/lockfree/stack.H> +#endif + extern "C" void kernel_execute_decrementer(); @@ -81,6 +84,8 @@ class HeapManager }; +// we only want the constants in HBRT +#ifndef __HOSTBOOT_RUNTIME friend class CpuManager; friend void kernel_execute_decrementer(); @@ -231,5 +236,8 @@ class HeapManager static uint32_t cv_smallheap_page_count; //!< # of pages being used static uint32_t cv_largeheap_page_count; //!< # of pages being used static uint32_t cv_largeheap_page_max; //!< Max # of pages used + +#endif //__HOSTBOOT_RUNTIME + }; #endif diff --git a/src/include/sys/time.h b/src/include/sys/time.h index 1a0a02ec4..85601bc63 100644 --- a/src/include/sys/time.h +++ b/src/include/sys/time.h @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2010,2014 */ +/* Contributors Listed Below - COPYRIGHT 2010,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -26,7 +26,10 @@ #define __SYS_TIME_H #include <stdint.h> + +#ifndef __HOSTBOOT_RUNTIME #include <kernel/timemgr.H> +#endif //****************************************************************************** // Macros diff --git a/src/include/usr/errl/errlmanager.H b/src/include/usr/errl/errlmanager.H index 9f2292515..174b55725 100644 --- a/src/include/usr/errl/errlmanager.H +++ b/src/include/usr/errl/errlmanager.H @@ -40,7 +40,6 @@ #include <errl/errlentry.H> #include <errldisplay/errldisplay.H> #include <sys/sync.h> -#include <kernel/timemgr.H> #include <hbotcompid.H> #include <hwas/common/hwasCallout.H> #include <mbox/mbox_queues.H> diff --git a/src/include/util/lockfree/abaptr.H b/src/include/util/lockfree/abaptr.H index ed13f83ca..5ea5868ff 100644 --- a/src/include/util/lockfree/abaptr.H +++ b/src/include/util/lockfree/abaptr.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015 */ +/* Contributors Listed Below - COPYRIGHT 2015,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -25,6 +25,12 @@ #ifndef __UTIL_LOCKFREE_ABAPTR_H #define __UTIL_LOCKFREE_ABAPTR_H +// This code makes assumptions on pointer sizes that are not valid within +// our runtime environment, therefore it cannot ever be used there. +#ifdef __HOSTBOOT_RUNTIME +#error "AbaPtr is not allowed in HBRT" +#endif + #include <stdint.h> #include <assert.h> |

