Skip to content

Commit

Permalink
ACPICA: Headers: Deploy #pragma pack (push) and (pop).
Browse files Browse the repository at this point in the history
Use push and pop to both guarantee that the correct alignment is used,
and to restore the alignment to whatever it was before the header
was included.

It is reported that the #pragma pack(push/pop) directives are not supported
by the specific GCCs, but this patch still doesn't affect kernel build
as there are already #pragma pack([1]) directives used in the old ACPICA
headers, which means there shouldn't be GCCs that are currently used to
compile the ACPI kernels do not support #pragma pack() directives.

References: https://bugs.acpica.org/show_bug.cgi?id=1058
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Bob Moore authored and Rafael J. Wysocki committed Feb 26, 2014
1 parent 4dde507 commit 4ac4c5f
Show file tree
Hide file tree
Showing 30 changed files with 115 additions and 10 deletions.
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/acdebug.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef __ACDEBUG_H__
#define __ACDEBUG_H__

#pragma pack(push) /* Set default struct packing */

#define ACPI_DEBUG_BUFFER_SIZE 0x4000 /* 16K buffer for return objects */

struct acpi_db_command_info {
Expand Down Expand Up @@ -282,4 +284,6 @@ struct acpi_namespace_node *acpi_db_local_ns_lookup(char *name);

void acpi_db_uint32_to_hex_string(u32 value, char *buffer);

#pragma pack(pop) /* Restore original struct packing */

#endif /* __ACDEBUG_H__ */
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/acdispat.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef _ACDISPAT_H_
#define _ACDISPAT_H_

#pragma pack(push) /* Set default struct packing */

#define NAMEOF_LOCAL_NTE "__L0"
#define NAMEOF_ARG_NTE "__A0"

Expand Down Expand Up @@ -351,4 +353,6 @@ acpi_status
acpi_ds_result_push(union acpi_operand_object *object,
struct acpi_walk_state *walk_state);

#pragma pack(pop) /* Restore original struct packing */

#endif /* _ACDISPAT_H_ */
3 changes: 3 additions & 0 deletions drivers/acpi/acpica/acevents.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef __ACEVENTS_H__
#define __ACEVENTS_H__

#pragma pack(push) /* Set default struct packing */

/*
* evevent
*/
Expand Down Expand Up @@ -251,4 +253,5 @@ u32 acpi_ev_install_sci_handler(void);
acpi_status acpi_ev_remove_all_sci_handlers(void);

ACPI_HW_DEPENDENT_RETURN_VOID(void acpi_ev_terminate(void))
#pragma pack(pop) /* Restore original struct packing */
#endif /* __ACEVENTS_H__ */
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/acglobal.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef __ACGLOBAL_H__
#define __ACGLOBAL_H__

#pragma pack(push) /* Set default struct packing */

/*
* Ensure that the globals are actually defined and initialized only once.
*
Expand Down Expand Up @@ -520,4 +522,6 @@ ACPI_FILE ACPI_INIT_GLOBAL(acpi_gbl_debug_file, NULL);

extern const struct ah_predefined_name asl_predefined_info[];

#pragma pack(pop) /* Restore original struct packing */

#endif /* __ACGLOBAL_H__ */
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/achware.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef __ACHWARE_H__
#define __ACHWARE_H__

#pragma pack(push) /* Set default struct packing */

/* Values for the _SST predefined method */

#define ACPI_SST_INDICATOR_OFF 0
Expand Down Expand Up @@ -147,4 +149,6 @@ acpi_status
acpi_hw_derive_pci_id(struct acpi_pci_id *pci_id,
acpi_handle root_pci_device, acpi_handle pci_region);

#pragma pack(pop) /* Restore original struct packing */

#endif /* __ACHWARE_H__ */
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/acinterp.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef __ACINTERP_H__
#define __ACINTERP_H__

#pragma pack(push) /* Set default struct packing */

#define ACPI_WALK_OPERANDS (&(walk_state->operands [walk_state->num_operands -1]))

/* Macros for tables used for debug output */
Expand Down Expand Up @@ -531,4 +533,6 @@ acpi_ex_data_table_space_handler(u32 function,
u64 *value,
void *handler_context, void *region_context);

#pragma pack(pop) /* Restore original struct packing */

#endif /* __INTERP_H__ */
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/aclocal.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef __ACLOCAL_H__
#define __ACLOCAL_H__

#pragma pack(push) /* Set default struct packing */

/* acpisrc:struct_defs -- for acpisrc conversion */

#define ACPI_SERIALIZED 0xFF
Expand Down Expand Up @@ -1147,4 +1149,6 @@ struct ah_predefined_name {
#endif
};

#pragma pack(pop) /* Restore original struct packing */

#endif /* __ACLOCAL_H__ */
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/acmacros.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef __ACMACROS_H__
#define __ACMACROS_H__

#pragma pack(push) /* Set default struct packing */

/*
* Extract data using a pointer. Any more than a byte and we
* get into potential aligment issues -- see the STORE macros below.
Expand Down Expand Up @@ -427,4 +429,6 @@

#define ACPI_IS_OCTAL_DIGIT(d) (((char)(d) >= '0') && ((char)(d) <= '7'))

#pragma pack(pop) /* Restore original struct packing */

#endif /* ACMACROS_H */
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/acnamesp.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef __ACNAMESP_H__
#define __ACNAMESP_H__

#pragma pack(push) /* Set default struct packing */

/* To search the entire name space, pass this as search_base */

#define ACPI_NS_ALL ((acpi_handle)0)
Expand Down Expand Up @@ -404,4 +406,6 @@ struct acpi_namespace_node *acpi_ns_validate_handle(acpi_handle handle);

void acpi_ns_terminate(void);

#pragma pack(pop) /* Restore original struct packing */

#endif /* __ACNAMESP_H__ */
4 changes: 3 additions & 1 deletion drivers/acpi/acpica/acobject.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef _ACOBJECT_H
#define _ACOBJECT_H

#pragma pack(push) /* Set default struct packing */

/* acpisrc:struct_defs -- for acpisrc conversion */

/*
Expand Down Expand Up @@ -456,6 +458,6 @@ union acpi_descriptor {
union acpi_parse_object op;
};

#pragma pack()
#pragma pack(pop) /* Restore original struct packing */

#endif /* _ACOBJECT_H */
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/acparser.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef __ACPARSER_H__
#define __ACPARSER_H__

#pragma pack(push) /* Set default struct packing */

#define OP_HAS_RETURN_VALUE 1

/* Variable number of arguments. This field must be 32 bits */
Expand Down Expand Up @@ -251,4 +253,6 @@ acpi_ps_sprint_op(char *buffer_start,

void acpi_ps_show(union acpi_parse_object *op);

#pragma pack(pop) /* Restore original struct packing */

#endif /* __ACPARSER_H__ */
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/acpredef.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef __ACPREDEF_H__
#define __ACPREDEF_H__

#pragma pack(push) /* Set default struct packing */

/******************************************************************************
*
* Return Package types
Expand Down Expand Up @@ -1080,4 +1082,6 @@ static const union acpi_predefined_info acpi_gbl_scope_names[] = {
extern const union acpi_predefined_info acpi_gbl_resource_names[];
#endif

#pragma pack(pop) /* Restore original struct packing */

#endif
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/acresrc.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@

#include "amlresrc.h"

#pragma pack(push) /* Set default struct packing */

/*
* If possible, pack the following structures to byte alignment, since we
* don't care about performance for debug output. Two cases where we cannot
Expand Down Expand Up @@ -378,4 +380,6 @@ extern struct acpi_rsdump_info acpi_rs_dump_uart_serial_bus[];
extern struct acpi_rsdump_info acpi_rs_dump_general_flags[];
#endif

#pragma pack(pop) /* Restore original struct packing */

#endif /* __ACRESRC_H__ */
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/acstruct.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef __ACSTRUCT_H__
#define __ACSTRUCT_H__

#pragma pack(push) /* Set default struct packing */

/* acpisrc:struct_defs -- for acpisrc conversion */

/*****************************************************************************
Expand Down Expand Up @@ -241,4 +243,6 @@ struct acpi_walk_info {

#define ACPI_DISPLAY_SHORT (u8) 2

#pragma pack(pop) /* Restore original struct packing */

#endif
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/actables.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef __ACTABLES_H__
#define __ACTABLES_H__

#pragma pack(push) /* Set default struct packing */

acpi_status acpi_allocate_root_table(u32 initial_table_count);

/*
Expand Down Expand Up @@ -129,4 +131,6 @@ acpi_tb_install_table(acpi_physical_address address,

acpi_status acpi_tb_parse_root_table(acpi_physical_address rsdp_address);

#pragma pack(pop) /* Restore original struct packing */

#endif /* __ACTABLES_H__ */
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/acutils.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef _ACUTILS_H
#define _ACUTILS_H

#pragma pack(push) /* Set default struct packing */

extern const u8 acpi_gbl_resource_aml_sizes[];
extern const u8 acpi_gbl_resource_aml_serial_bus_sizes[];

Expand Down Expand Up @@ -737,4 +739,6 @@ acpi_ut_method_error(const char *module_name,
struct acpi_namespace_node *node,
const char *path, acpi_status lookup_status);

#pragma pack(pop) /* Restore original struct packing */

#endif /* _ACUTILS_H */
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/amlcode.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@
#ifndef __AMLCODE_H__
#define __AMLCODE_H__

#pragma pack(push) /* Set default struct packing */

/* primary opcodes */

#define AML_NULL_CHAR (u16) 0x00
Expand Down Expand Up @@ -484,4 +486,6 @@ typedef enum {
#define AML_METHOD_SERIALIZED 0x08
#define AML_METHOD_SYNC_LEVEL 0xF0

#pragma pack(pop) /* Restore original struct packing */

#endif /* __AMLCODE_H__ */
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/amlresrc.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@
#ifndef __AMLRESRC_H
#define __AMLRESRC_H

#pragma pack(push) /* Set default struct packing */

/*
* Resource descriptor tags, as defined in the ACPI specification.
* Used to symbolically reference fields within a descriptor.
Expand Down Expand Up @@ -449,4 +451,6 @@ union aml_resource {
u8 byte_item;
};

#pragma pack(pop) /* Restore original struct packing */

#endif
4 changes: 4 additions & 0 deletions include/acpi/acbuffer.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef __ACBUFFER_H__
#define __ACBUFFER_H__

#pragma pack(push) /* Set default struct packing */

/*
* Contains buffer structures for these predefined names:
* _FDE, _GRT, _GTM, _PLD, _SRT
Expand Down Expand Up @@ -232,4 +234,6 @@ struct acpi_pld_info {
#define ACPI_PLD_GET_HORIZ_OFFSET(dword) ACPI_GET_BITS (dword, 16, ACPI_16BIT_MASK)
#define ACPI_PLD_SET_HORIZ_OFFSET(dword,value) ACPI_SET_BITS (dword, 16, ACPI_16BIT_MASK, value) /* Offset 128+16=144, Len 16 */

#pragma pack(pop) /* Restore original struct packing */

#endif /* ACBUFFER_H */
4 changes: 4 additions & 0 deletions include/acpi/acconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef _ACCONFIG_H
#define _ACCONFIG_H

#pragma pack(push) /* Set default struct packing */

/******************************************************************************
*
* Configuration options
Expand Down Expand Up @@ -229,4 +231,6 @@
#define ACPI_DEBUGGER_COMMAND_PROMPT '-'
#define ACPI_DEBUGGER_EXECUTE_PROMPT '%'

#pragma pack(pop) /* Restore original struct packing */

#endif /* _ACCONFIG_H */
4 changes: 4 additions & 0 deletions include/acpi/acexcep.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef __ACEXCEP_H__
#define __ACEXCEP_H__

#pragma pack(push) /* Set default struct packing */

/* This module contains all possible exception codes for acpi_status */

/*
Expand Down Expand Up @@ -377,4 +379,6 @@ static const struct acpi_exception_info acpi_gbl_exception_names_ctrl[] = {

#endif /* EXCEPTION_TABLE */

#pragma pack(pop) /* Restore original struct packing */

#endif /* __ACEXCEP_H__ */
4 changes: 4 additions & 0 deletions include/acpi/acoutput.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef __ACOUTPUT_H__
#define __ACOUTPUT_H__

#pragma pack(push) /* Set default struct packing */

/*
* Debug levels and component IDs. These are used to control the
* granularity of the output of the ACPI_DEBUG_PRINT macro -- on a
Expand Down Expand Up @@ -456,4 +458,6 @@

#endif /* ACPI_DEBUG_OUTPUT */

#pragma pack(pop) /* Restore original struct packing */

#endif /* __ACOUTPUT_H__ */
4 changes: 4 additions & 0 deletions include/acpi/acpiosxf.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@
#include <acpi/platform/acenv.h>
#include <acpi/actypes.h>

#pragma pack(push) /* Set default struct packing */

/* Types for acpi_os_execute */

typedef enum {
Expand Down Expand Up @@ -399,4 +401,6 @@ char *acpi_os_get_next_filename(void *dir_handle);
void acpi_os_close_directory(void *dir_handle);
#endif

#pragma pack(pop) /* Restore original struct packing */

#endif /* __ACPIOSXF_H__ */
4 changes: 4 additions & 0 deletions include/acpi/acpixf.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@

extern u8 acpi_gbl_permanent_mmap;

#pragma pack(push) /* Set default struct packing */

/*
* Globals that are publically available
*/
Expand Down Expand Up @@ -580,4 +582,6 @@ acpi_debug_print_raw(u32 requested_debug_level,
u32 component_id, const char *format, ...);
#endif

#pragma pack(pop) /* Restore original struct packing */

#endif /* __ACXFACE_H__ */
4 changes: 4 additions & 0 deletions include/acpi/acrestyp.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
#ifndef __ACRESTYP_H__
#define __ACRESTYP_H__

#pragma pack(push) /* Set default struct packing */

/*
* Definitions for Resource Attributes
*/
Expand Down Expand Up @@ -610,4 +612,6 @@ struct acpi_pci_routing_table {
char source[4]; /* pad to 64 bits so sizeof() works in all cases */
};

#pragma pack(pop) /* Restore original struct packing */

#endif /* __ACRESTYP_H__ */
Loading

0 comments on commit 4ac4c5f

Please sign in to comment.