Commit f5bfa159 authored by Michael Holzheu's avatar Michael Holzheu Committed by Martin Schwidefsky

[S390] Ensure that vmcore_info pointer is never accessed directly

Because the vmcore_info pointer is not 8 byte aligned it never should
not be accessed directly. The reason is that the compiler assumes that
64 bit pointer are always double word aligned. To ensure save access,
the vmcore_info type in struct lowcore is changed from u64 to an u8[8]
array and a comment is added.
Signed-off-by: default avatarMichael Holzheu <holzheu@linux.vnet.ibm.com>
Reported-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 25e2cf1c
...@@ -302,7 +302,12 @@ struct _lowcore { ...@@ -302,7 +302,12 @@ struct _lowcore {
*/ */
__u64 ipib; /* 0x0e00 */ __u64 ipib; /* 0x0e00 */
__u32 ipib_checksum; /* 0x0e08 */ __u32 ipib_checksum; /* 0x0e08 */
__u64 vmcore_info; /* 0x0e0c */ /*
* Because the vmcore_info pointer is not 8 byte aligned it never
* should not be accessed directly. For accessing the pointer, first
* copy it to a local pointer variable.
*/
__u8 vmcore_info[8]; /* 0x0e0c */
__u8 pad_0x0e14[0x0e18-0x0e14]; /* 0x0e14 */ __u8 pad_0x0e14[0x0e18-0x0e14]; /* 0x0e14 */
__u64 os_info; /* 0x0e18 */ __u64 os_info; /* 0x0e18 */
__u8 pad_0x0e20[0x0f00-0x0e20]; /* 0x0e20 */ __u8 pad_0x0e20[0x0f00-0x0e20]; /* 0x0e20 */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment