Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:FrontRunner
s390-tools.19914
s390-tools-sles15sp2-03-zipl-remove-some-useles...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File s390-tools-sles15sp2-03-zipl-remove-some-useless-__packed___-attributes.patch of Package s390-tools.19914
Subject: [PATCH] [FEAT VS1804] zipl: remove some useless __packed___ attributes From: Marc Hartmayer <mhartmay@linux.ibm.com> Summary: genprotimg: Introduce new tool for the creation of PV images Description: genprotimg takes a kernel, host-key documents, optionally an initrd, optionally a file with the kernel command line, and it generates a single, loadable image file. The image consists of a concatenation of a plain text boot loader, the encrypted components for kernel, initrd, and cmdline, and the integrity-protected PV header, containing metadata necessary for running the guest in PV mode. It's possible to use this image file as a kernel for zIPL or for a direct kernel boot using QEMU. Upstream-ID: 2227bb8330aea1368ba234ae6f24fe0b5779d67d Problem-ID: VS1804 Upstream-Description: zipl: remove some useless __packed___ attributes The __packed__ attribute is not needed for these structures as they don't need any padding to meet the size and alignment constraints defined in the Linux for zSeries ABI. Reported by GCC 9.2.1 when building with '-Waddress-of-packed-member'. stage3.c: In function 'is_verified_address': stage3.c:241:26: warning: taking address of packed member of 'struct ipl_rb_components' may result in an unaligned pointer value [-Waddress-of-packed-member] 241 | for_each_rb_entry(comp, comps) { | ^~~~~ stage3.c:18:15: note: in definition of macro 'for_each_rb_entry' 18 | for (entry = rb->entries; \ | ^~ CC zipl/boot/kdump3.o CC zipl/boot/sclp_stage3.o sclp_stage3.c: In function '__sclp_hsa_copy': sclp_stage3.c:75:34: warning: converting a packed 'struct sdias_sccb' pointer (alignment 1) to a 'struct read_sccb' pointer (alignment 4096) may result in an unaligned pointer value [-Waddress-of-packed-member] 75 | if (sclp_hsa_copy_wait((struct read_sccb *)sccb)) | ^~~~~~~~~ In file included from sclp_stage3.c:13: sclp_stage3.h:43:8: note: defined here 43 | struct sdias_sccb { | ^~~~~~~~~~ In file included from sclp_stage3.c:12: sclp.h:149:8: note: defined here 149 | struct read_sccb { | ^~~~~~~~~ sclp_stage3.c: In function 'sclp_hsa_get_size': sclp_stage3.c:126:34: warning: converting a packed 'struct sdias_sccb' pointer (alignment 1) to a 'struct read_sccb' pointer (alignment 4096) may result in an unaligned pointer value [-Waddress-of-packed-member] 126 | if (sclp_hsa_copy_wait((struct read_sccb *)sccb)) | ^~~~~~~~~ In file included from sclp_stage3.c:13: sclp_stage3.h:43:8: note: defined here 43 | struct sdias_sccb { | ^~~~~~~~~~ In file included from sclp_stage3.c:12: sclp.h:149:8: note: defined here 149 | struct read_sccb { | ^~~~~~~~~ Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com> Reviewed-by: Stefan Haberland <sth@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com> Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com> --- zipl/boot/sclp.h | 6 ++++-- zipl/boot/sclp_stage3.h | 3 ++- zipl/boot/stage3.h | 6 ++++-- 3 files changed, 10 insertions(+), 5 deletions(-) --- a/zipl/boot/sclp.h +++ b/zipl/boot/sclp.h @@ -53,19 +53,21 @@ struct gds_subvector { uint8_t key; } __packed; +/* Structure must not have any padding */ struct sccb_header { uint16_t length; uint8_t function_code; uint8_t control_mask[3]; uint16_t response_code; -} __packed; +}; +/* Structure must not have any padding */ struct evbuf_header { uint16_t length; uint8_t type; uint8_t flags; uint16_t _reserved; -} __packed; +}; struct mto { uint16_t length; --- a/zipl/boot/sclp_stage3.h +++ b/zipl/boot/sclp_stage3.h @@ -40,10 +40,11 @@ struct sdias_evbuf { uint16_t dbs; } __packed; +/* Structure must not have any padding */ struct sdias_sccb { struct sccb_header header; struct sdias_evbuf evbuf; -} __packed; +}; int sclp_hsa_copy(void *, unsigned long, unsigned long); --- a/zipl/boot/stage3.h +++ b/zipl/boot/stage3.h @@ -124,11 +124,12 @@ struct ipl_rl_hdr { } __packed; /* IPL Report Block header */ +/* Structure must not have any padding */ struct ipl_rb_hdr { uint32_t len; uint8_t rbt; uint8_t reserved1[11]; -} __packed; +}; /* IPL Report Block types */ enum ipl_rbt { @@ -162,12 +163,13 @@ struct ipl_rb_component_entry { #define IPL_RB_COMPONENT_FLAG_SIGNED 0x80 #define IPL_RB_COMPONENT_FLAG_VERIFIED 0x40 +/* Structure must not have any padding */ struct ipl_rb_components { uint32_t len; uint8_t rbt; uint8_t reserved1[11]; struct ipl_rb_component_entry entries[]; -} __packed; +}; extern unsigned long long _parm_addr; /* address of parmline */ extern unsigned long long _initrd_addr; /* address of initrd */
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor