|
@@ -2031,7 +2031,7 @@ void __init setup_ioapic_ids_from_mpc(void)
|
|
|
* This is broken; anything with a real cpu count has to
|
|
|
* circumvent this idiocy regardless.
|
|
|
*/
|
|
|
- phys_id_present_map = apic->ioapic_phys_id_map(phys_cpu_present_map);
|
|
|
+ apic->ioapic_phys_id_map(&phys_cpu_present_map, &phys_id_present_map);
|
|
|
|
|
|
/*
|
|
|
* Set the IOAPIC ID to the value stored in the MPC table.
|
|
@@ -2058,7 +2058,7 @@ void __init setup_ioapic_ids_from_mpc(void)
|
|
|
* system must have a unique ID or we get lots of nice
|
|
|
* 'stuck on smp_invalidate_needed IPI wait' messages.
|
|
|
*/
|
|
|
- if (apic->check_apicid_used(phys_id_present_map,
|
|
|
+ if (apic->check_apicid_used(&phys_id_present_map,
|
|
|
mp_ioapics[apic_id].apicid)) {
|
|
|
printk(KERN_ERR "BIOS bug, IO-APIC#%d ID %d is already used!...\n",
|
|
|
apic_id, mp_ioapics[apic_id].apicid);
|
|
@@ -2073,7 +2073,7 @@ void __init setup_ioapic_ids_from_mpc(void)
|
|
|
mp_ioapics[apic_id].apicid = i;
|
|
|
} else {
|
|
|
physid_mask_t tmp;
|
|
|
- tmp = apic->apicid_to_cpu_present(mp_ioapics[apic_id].apicid);
|
|
|
+ apic->apicid_to_cpu_present(mp_ioapics[apic_id].apicid, &tmp);
|
|
|
apic_printk(APIC_VERBOSE, "Setting %d in the "
|
|
|
"phys_id_present_map\n",
|
|
|
mp_ioapics[apic_id].apicid);
|
|
@@ -3904,7 +3904,7 @@ int __init io_apic_get_unique_id(int ioapic, int apic_id)
|
|
|
*/
|
|
|
|
|
|
if (physids_empty(apic_id_map))
|
|
|
- apic_id_map = apic->ioapic_phys_id_map(phys_cpu_present_map);
|
|
|
+ apic->ioapic_phys_id_map(&phys_cpu_present_map, &apic_id_map);
|
|
|
|
|
|
spin_lock_irqsave(&ioapic_lock, flags);
|
|
|
reg_00.raw = io_apic_read(ioapic, 0);
|
|
@@ -3920,10 +3920,10 @@ int __init io_apic_get_unique_id(int ioapic, int apic_id)
|
|
|
* Every APIC in a system must have a unique ID or we get lots of nice
|
|
|
* 'stuck on smp_invalidate_needed IPI wait' messages.
|
|
|
*/
|
|
|
- if (apic->check_apicid_used(apic_id_map, apic_id)) {
|
|
|
+ if (apic->check_apicid_used(&apic_id_map, apic_id)) {
|
|
|
|
|
|
for (i = 0; i < get_physical_broadcast(); i++) {
|
|
|
- if (!apic->check_apicid_used(apic_id_map, i))
|
|
|
+ if (!apic->check_apicid_used(&apic_id_map, i))
|
|
|
break;
|
|
|
}
|
|
|
|
|
@@ -3936,7 +3936,7 @@ int __init io_apic_get_unique_id(int ioapic, int apic_id)
|
|
|
apic_id = i;
|
|
|
}
|
|
|
|
|
|
- tmp = apic->apicid_to_cpu_present(apic_id);
|
|
|
+ apic->apicid_to_cpu_present(apic_id, &tmp);
|
|
|
physids_or(apic_id_map, apic_id_map, tmp);
|
|
|
|
|
|
if (reg_00.bits.ID != apic_id) {
|