On 2014/9/11 4:08, Thomas Gleixner wrote: > On Wed, 10 Sep 2014, Jiang Liu wrote: >> On 2014/9/9 20:37, Thomas Gleixner wrote: >>>> + ret = mp_ioapic_registered(gsi_base); >>>> + up_write(&acpi_ioapic_rwsem); >>>> + >>>> + return ret; >>>> +} >>> >>> So I assume that this is for a particular caller in the apci ioapic >>> hotplug code and that call site has its own serialization. Otherwise >>> the return value is not protected at all. >>> >>> Please add a Docbook comment to that function, and document the >>> locking rules as thats pretty non obvious. >> How about this comments about locking rules? >> /* >> * Locks related to IOAPIC hotplug >> * Hotplug side: >> * ->lock_device_hotplug() //device_hotplug_lock >> * ->acpi_ioapic_rwsem >> * ->ioapic_lock >> * Interrupt mapping side: >> * ->acpi_ioapic_rwsem >> * ->ioapic_mutex >> * ->ioapic_lock >> */ > > That looks asymetric. Why is the hotplug side not taking ioapic_mutex? Hi Thomas, We decide to protect system from IOAPIC hotplug in the ACPI layer. For ACPI enumerated IOAPICs, ioapic_mutex is redundant and it's used to protect MPPARSE, SFI, OF enumerated IOAPICs. Regards! Gerry > > Thanks, > > tglx > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html