lkml.org 
[lkml]   [2013]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v8 17/22] PCI, ACPI: Add alloc_acpi_hp_work()
    Date
    Will use it with acpiphp and pci_root_hp events handling

    Signed-off-by: Yinghai Lu <yinghai@kernel.org>
    Cc: Len Brown <lenb@kernel.org>
    Cc: linux-acpi@vger.kernel.org
    ---
    drivers/acpi/osl.c | 21 +++++++++++++++++++++
    include/acpi/acpiosxf.h | 9 +++++++++
    2 files changed, 30 insertions(+)

    diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
    index 3ff2678..e6539a3 100644
    --- a/drivers/acpi/osl.c
    +++ b/drivers/acpi/osl.c
    @@ -1778,3 +1778,24 @@ void acpi_os_set_prepare_sleep(int (*func)(u8 sleep_state,
    {
    __acpi_os_prepare_sleep = func;
    }
    +
    +void alloc_acpi_hp_work(acpi_handle handle, u32 type, void *context,
    + void (*func)(struct work_struct *work))
    +{
    + struct acpi_hp_work *hp_work;
    + int ret;
    +
    + hp_work = kmalloc(sizeof(*hp_work), GFP_KERNEL);
    + if (!hp_work)
    + return;
    +
    + hp_work->handle = handle;
    + hp_work->type = type;
    + hp_work->context = context;
    +
    + INIT_WORK(&hp_work->work, func);
    + ret = queue_work(kacpi_hotplug_wq, &hp_work->work);
    + if (!ret)
    + kfree(hp_work);
    +}
    +EXPORT_SYMBOL(alloc_acpi_hp_work);
    diff --git a/include/acpi/acpiosxf.h b/include/acpi/acpiosxf.h
    index 4315274..2a64da5 100644
    --- a/include/acpi/acpiosxf.h
    +++ b/include/acpi/acpiosxf.h
    @@ -195,6 +195,15 @@ void acpi_os_fixed_event_count(u32 fixed_event_number);
    */
    extern struct workqueue_struct *kacpi_hotplug_wq;

    +struct acpi_hp_work {
    + struct work_struct work;
    + acpi_handle handle;
    + u32 type;
    + void *context;
    +};
    +void alloc_acpi_hp_work(acpi_handle handle, u32 type, void *context,
    + void (*func)(struct work_struct *work));
    +
    acpi_thread_id acpi_os_get_thread_id(void);

    acpi_status
    --
    1.7.10.4


    \
     
     \ /
      Last update: 2013-01-12 00:41    [W:4.017 / U:0.280 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site