static int __init acpi_parse_madt(struct acpi_table_header *table)
{
- struct acpi_table_madt *madt;
-
- madt = (struct acpi_table_madt *)table;
+ struct acpi_table_madt *madt =
+ container_of(table, struct acpi_table_madt, header);
if (madt->address) {
acpi_lapic_addr = (u64) madt->address;
static int __init acpi_parse_hpet(struct acpi_table_header *table)
{
- struct acpi_table_hpet *hpet_tbl = (struct acpi_table_hpet *)table;
+ const struct acpi_table_hpet *hpet_tbl =
+ container_of(table, const struct acpi_table_hpet, header);
if (hpet_tbl->address.space_id != ACPI_ADR_SPACE_SYSTEM_MEMORY) {
printk(KERN_WARNING PREFIX "HPET timers must be located in "
static int __init acpi_parse_fadt(struct acpi_table_header *table)
{
- struct acpi_table_fadt *fadt = (struct acpi_table_fadt *)table;
+ const struct acpi_table_fadt *fadt =
+ container_of(table, const struct acpi_table_fadt, header);
#ifdef CONFIG_ACPI_INTERPRETER
/* initialize sci_int early for INT_SRC_OVR MADT parsing */
case ACPI_MADT_TYPE_LOCAL_APIC:
if (opt_acpi_verbose)
{
- struct acpi_madt_local_apic *p =
- (struct acpi_madt_local_apic *)header;
+ const struct acpi_madt_local_apic *p =
+ container_of(header, const struct acpi_madt_local_apic, header);
+
printk(KERN_INFO PREFIX
"LAPIC (acpi_id[0x%02x] lapic_id[0x%02x] %s)\n",
p->processor_id, p->id,
case ACPI_MADT_TYPE_LOCAL_X2APIC:
if (opt_acpi_verbose)
{
- struct acpi_madt_local_x2apic *p =
- (struct acpi_madt_local_x2apic *)header;
+ const struct acpi_madt_local_x2apic *p =
+ container_of(header, const struct acpi_madt_local_x2apic, header);
+
printk(KERN_INFO PREFIX
"X2APIC (apic_id[0x%02x] uid[0x%02x] %s)\n",
p->local_apic_id, p->uid,
case ACPI_MADT_TYPE_IO_APIC:
{
- struct acpi_madt_io_apic *p =
- (struct acpi_madt_io_apic *)header;
+ const struct acpi_madt_io_apic *p =
+ container_of(header, const struct acpi_madt_io_apic, header);
+
printk(KERN_INFO PREFIX
"IOAPIC (id[0x%02x] address[0x%08x] gsi_base[%d])\n",
p->id, p->address, p->global_irq_base);
case ACPI_MADT_TYPE_INTERRUPT_OVERRIDE:
{
- struct acpi_madt_interrupt_override *p =
- (struct acpi_madt_interrupt_override *)header;
+ const struct acpi_madt_interrupt_override *p =
+ container_of(header, const struct acpi_madt_interrupt_override, header);
+
printk(KERN_INFO PREFIX
"INT_SRC_OVR (bus %d bus_irq %d global_irq %d %s %s)\n",
p->bus, p->source_irq, p->global_irq,
case ACPI_MADT_TYPE_NMI_SOURCE:
{
- struct acpi_madt_nmi_source *p =
- (struct acpi_madt_nmi_source *)header;
+ const struct acpi_madt_nmi_source *p =
+ container_of(header, const struct acpi_madt_nmi_source, header);
+
printk(KERN_INFO PREFIX
"NMI_SRC (%s %s global_irq %d)\n",
mps_inti_flags_polarity[p->inti_flags & ACPI_MADT_POLARITY_MASK],
case ACPI_MADT_TYPE_LOCAL_APIC_NMI:
if (opt_acpi_verbose)
{
- struct acpi_madt_local_apic_nmi *p =
- (struct acpi_madt_local_apic_nmi *)header;
+ const struct acpi_madt_local_apic_nmi *p =
+ container_of(header, const struct acpi_madt_local_apic_nmi, header);
+
printk(KERN_INFO PREFIX
"LAPIC_NMI (acpi_id[0x%02x] %s %s lint[%#x])\n",
p->processor_id,
case ACPI_MADT_TYPE_LOCAL_X2APIC_NMI:
if (opt_acpi_verbose)
{
- u16 polarity, trigger;
- struct acpi_madt_local_x2apic_nmi *p =
- (struct acpi_madt_local_x2apic_nmi *)header;
-
- polarity = p->inti_flags & ACPI_MADT_POLARITY_MASK;
- trigger = (p->inti_flags & ACPI_MADT_TRIGGER_MASK) >> 2;
+ const struct acpi_madt_local_x2apic_nmi *p =
+ container_of(header, const struct acpi_madt_local_x2apic_nmi, header);
+ unsigned int polarity = MASK_EXTR(p->inti_flags, ACPI_MADT_POLARITY_MASK);
+ unsigned int trigger = MASK_EXTR(p->inti_flags, ACPI_MADT_TRIGGER_MASK);
printk(KERN_INFO PREFIX
"X2APIC_NMI (uid[0x%02x] %s %s lint[%#x])\n",
case ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE:
{
- struct acpi_madt_local_apic_override *p =
- (struct acpi_madt_local_apic_override *)header;
+ const struct acpi_madt_local_apic_override *p =
+ container_of(header, const struct acpi_madt_local_apic_override, header);
+
printk(KERN_INFO PREFIX
"LAPIC_ADDR_OVR (address[%p])\n",
(void *)(unsigned long)p->address);
case ACPI_MADT_TYPE_IO_SAPIC:
{
- struct acpi_madt_io_sapic *p =
- (struct acpi_madt_io_sapic *)header;
+ const struct acpi_madt_io_sapic *p =
+ container_of(header, const struct acpi_madt_io_sapic, header);
+
printk(KERN_INFO PREFIX
"IOSAPIC (id[%#x] address[%p] gsi_base[%d])\n",
p->id, (void *)(unsigned long)p->address,
case ACPI_MADT_TYPE_LOCAL_SAPIC:
if (opt_acpi_verbose)
{
- struct acpi_madt_local_sapic *p =
- (struct acpi_madt_local_sapic *)header;
+ const struct acpi_madt_local_sapic *p =
+ container_of(header, const struct acpi_madt_local_sapic, header);
+
printk(KERN_INFO PREFIX
"LSAPIC (acpi_id[0x%02x] lsapic_id[0x%02x] lsapic_eid[0x%02x] %s)\n",
p->processor_id, p->id, p->eid,
case ACPI_MADT_TYPE_INTERRUPT_SOURCE:
{
- struct acpi_madt_interrupt_source *p =
- (struct acpi_madt_interrupt_source *)header;
+ const struct acpi_madt_interrupt_source *p =
+ container_of(header, const struct acpi_madt_interrupt_source, header);
+
printk(KERN_INFO PREFIX
"PLAT_INT_SRC (%s %s type[%#x] id[0x%04x] eid[%#x] iosapic_vector[%#x] global_irq[%#x]\n",
mps_inti_flags_polarity[p->inti_flags & ACPI_MADT_POLARITY_MASK],