Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:olh:xen-4.5
xen
xen.ca9310b24e6205de5387e5982ccd42c35caf89d4.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File xen.ca9310b24e6205de5387e5982ccd42c35caf89d4.patch of Package xen
From: Jan Beulich <jbeulich@suse.com> Date: Fri, 24 May 2019 10:19:59 +0200 Subject: ca9310b24e6205de5387e5982ccd42c35caf89d4 x86/IO-APIC: fix build with gcc9 There are a number of pointless __packed attributes which cause gcc 9 to legitimately warn: utils.c: In function 'vtd_dump_iommu_info': utils.c:287:33: error: converting a packed 'struct IO_APIC_route_entry' pointer (alignment 1) to a 'struct IO_APIC_route_remap_entry' pointer (alignment 8) may result in an unaligned pointer value [-Werror=address-of-packed-member] 287 | remap = (struct IO_APIC_route_remap_entry *) &rte; | ^~~~~~~~~~~~~~~~~~~~~~~~~ intremap.c: In function 'ioapic_rte_to_remap_entry': intremap.c:343:25: error: converting a packed 'struct IO_APIC_route_entry' pointer (alignment 1) to a 'struct IO_APIC_route_remap_entry' pointer (alignment 8) may result in an unaligned pointer value [-Werror=address-of-packed-member] 343 | remap_rte = (struct IO_APIC_route_remap_entry *) old_rte; | ^~~~~~~~~~~~~~~~~~~~~~~~~ Simply drop these attributes. Take the liberty and also re-format the structure definitions at the same time. Reported-by: Charles Arnold <carnold@suse.com> Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Wei Liu <wei.liu2@citrix.com> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> --- xen/include/asm-x86/io_apic.h | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------- 1 file changed, 57 insertions(+), 56 deletions(-) --- a/xen/include/asm-x86/io_apic.h +++ b/xen/include/asm-x86/io_apic.h @@ -26,108 +26,109 @@ #define IO_APIC_REDIR_VECTOR_MASK 0x000FF #define IO_APIC_REDIR_DEST_LOGICAL 0x00800 #define IO_APIC_REDIR_DEST_PHYSICAL 0x00000 #define IO_APIC_REDIR_SEND_PENDING (1 << 12) #define IO_APIC_REDIR_REMOTE_IRR (1 << 14) #define IO_APIC_REDIR_LEVEL_TRIGGER (1 << 15) #define IO_APIC_REDIR_MASKED (1 << 16) /* * The structure of the IO-APIC: */ union IO_APIC_reg_00 { - u32 raw; - struct __packed { - u32 __reserved_2 : 14, - LTS : 1, - delivery_type : 1, - __reserved_1 : 8, - ID : 8; - } bits; + uint32_t raw; + struct { + unsigned int __reserved_2:14; + unsigned int LTS:1; + unsigned int delivery_type:1; + unsigned int __reserved_1:8; + unsigned int ID:8; + } bits; }; union IO_APIC_reg_01 { - u32 raw; - struct __packed { - u32 version : 8, - __reserved_2 : 7, - PRQ : 1, - entries : 8, - __reserved_1 : 8; - } bits; + uint32_t raw; + struct { + unsigned int version:8; + unsigned int __reserved_2:7; + unsigned int PRQ:1; + unsigned int entries:8; + unsigned int __reserved_1:8; + } bits; }; union IO_APIC_reg_02 { - u32 raw; - struct __packed { - u32 __reserved_2 : 24, - arbitration : 4, - __reserved_1 : 4; - } bits; + uint32_t raw; + struct { + unsigned int __reserved_2:24; + unsigned int arbitration:4; + unsigned int __reserved_1:4; + } bits; }; union IO_APIC_reg_03 { - u32 raw; - struct __packed { - u32 boot_DT : 1, - __reserved_1 : 31; - } bits; + uint32_t raw; + struct { + unsigned int boot_DT:1; + unsigned int __reserved_1:31; + } bits; }; /* * # of IO-APICs and # of IRQ routing registers */ extern int nr_ioapics; extern int nr_ioapic_entries[MAX_IO_APICS]; enum ioapic_irq_destination_types { dest_Fixed = 0, dest_LowestPrio = 1, dest_SMI = 2, dest__reserved_1 = 3, dest_NMI = 4, dest_INIT = 5, dest__reserved_2 = 6, dest_ExtINT = 7 }; -struct __packed IO_APIC_route_entry { - __u32 vector : 8, - delivery_mode : 3, /* 000: FIXED - * 001: lowest prio - * 111: ExtINT - */ - dest_mode : 1, /* 0: physical, 1: logical */ - delivery_status : 1, - polarity : 1, - irr : 1, - trigger : 1, /* 0: edge, 1: level */ - mask : 1, /* 0: enabled, 1: disabled */ - __reserved_2 : 15; - - union { struct { __u32 - __reserved_1 : 24, - physical_dest : 4, - __reserved_2 : 4; - } physical; - - struct { __u32 - __reserved_1 : 24, - logical_dest : 8; - } logical; - - /* used when Interrupt Remapping with EIM is enabled */ - __u32 dest32; - } dest; - +struct IO_APIC_route_entry { + unsigned int vector:8; + unsigned int delivery_mode:3; /* + * 000: FIXED + * 001: lowest prio + * 111: ExtINT + */ + unsigned int dest_mode:1; /* 0: physical, 1: logical */ + unsigned int delivery_status:1; + unsigned int polarity:1; /* 0: low, 1: high */ + unsigned int irr:1; + unsigned int trigger:1; /* 0: edge, 1: level */ + unsigned int mask:1; /* 0: enabled, 1: disabled */ + unsigned int __reserved_2:15; + + union { + struct { + unsigned int __reserved_1:24; + unsigned int physical_dest:4; + unsigned int __reserved_2:4; + } physical; + + struct { + unsigned int __reserved_1:24; + unsigned int logical_dest:8; + } logical; + + /* used when Interrupt Remapping with EIM is enabled */ + unsigned int dest32; + } dest; }; /* * MP-BIOS irq configuration table structures: */ /* I/O APIC entries */ extern struct mpc_config_ioapic mp_ioapics[MAX_IO_APICS]; /* Only need to remap ioapic RTE (reg: 10~3Fh) */ #define ioapic_reg_remapped(reg) (iommu_intremap && ((reg) >= 0x10))
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