Browse Source

ACPI / processor: use container_of instead of casting first structure member

Use container_of instead of casting first structure member to resolve
acpi_madt_local_apic/sapic/x2apic from acpi_subtable_header.

Signed-off-by: Fabian Frederick <fabf@skynet.be>
[ rjw: Subject and changelog ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Fabian Frederick 11 years ago
parent
commit
ef86c3f4be
1 changed files with 3 additions and 3 deletions
  1. 3 3
      drivers/acpi/processor_core.c

+ 3 - 3
drivers/acpi/processor_core.c

@@ -16,7 +16,7 @@ static int map_lapic_id(struct acpi_subtable_header *entry,
 		 u32 acpi_id, int *apic_id)
 		 u32 acpi_id, int *apic_id)
 {
 {
 	struct acpi_madt_local_apic *lapic =
 	struct acpi_madt_local_apic *lapic =
-		(struct acpi_madt_local_apic *)entry;
+		container_of(entry, struct acpi_madt_local_apic, header);
 
 
 	if (!(lapic->lapic_flags & ACPI_MADT_ENABLED))
 	if (!(lapic->lapic_flags & ACPI_MADT_ENABLED))
 		return -ENODEV;
 		return -ENODEV;
@@ -32,7 +32,7 @@ static int map_x2apic_id(struct acpi_subtable_header *entry,
 			 int device_declaration, u32 acpi_id, int *apic_id)
 			 int device_declaration, u32 acpi_id, int *apic_id)
 {
 {
 	struct acpi_madt_local_x2apic *apic =
 	struct acpi_madt_local_x2apic *apic =
-		(struct acpi_madt_local_x2apic *)entry;
+		container_of(entry, struct acpi_madt_local_x2apic, header);
 
 
 	if (!(apic->lapic_flags & ACPI_MADT_ENABLED))
 	if (!(apic->lapic_flags & ACPI_MADT_ENABLED))
 		return -ENODEV;
 		return -ENODEV;
@@ -49,7 +49,7 @@ static int map_lsapic_id(struct acpi_subtable_header *entry,
 		int device_declaration, u32 acpi_id, int *apic_id)
 		int device_declaration, u32 acpi_id, int *apic_id)
 {
 {
 	struct acpi_madt_local_sapic *lsapic =
 	struct acpi_madt_local_sapic *lsapic =
-		(struct acpi_madt_local_sapic *)entry;
+		container_of(entry, struct acpi_madt_local_sapic, header);
 
 
 	if (!(lsapic->lapic_flags & ACPI_MADT_ENABLED))
 	if (!(lsapic->lapic_flags & ACPI_MADT_ENABLED))
 		return -ENODEV;
 		return -ENODEV;