Use GFP_KERNEL instead of GFP_ATOMIC.

GFP_ATOMIC is still needed by the sonypi and sony-laptop driver.

Signed-off-by: Zhang Rui <[EMAIL PROTECTED]>
---
 drivers/acpi/ac.c                 |    3 ++-
 drivers/acpi/asus_acpi.c          |    2 +-
 drivers/acpi/battery.c            |    3 ++-
 drivers/acpi/bus.c                |    7 ++++---
 drivers/acpi/button.c             |    2 +-
 drivers/acpi/event.c              |    6 +++---
 drivers/acpi/processor_core.c     |    7 ++++---
 drivers/acpi/sbs.c                |    2 +-
 drivers/acpi/thermal.c            |    8 ++++----
 drivers/acpi/video.c              |   10 +++++-----
 drivers/char/sonypi.c             |    3 ++-
 drivers/misc/asus-laptop.c        |    2 +-
 drivers/misc/sony-laptop.c        |    4 ++--
 drivers/misc/thinkpad_acpi.c      |   26 +++++++++++++++++---------
 drivers/pci/hotplug/acpiphp_ibm.c |    3 ++-
 include/acpi/acpi_bus.h           |    5 +++--
 16 files changed, 54 insertions(+), 39 deletions(-)

Index: linux-2.6.23-rc1/drivers/acpi/bus.c
===================================================================
--- linux-2.6.23-rc1.orig/drivers/acpi/bus.c
+++ linux-2.6.23-rc1/drivers/acpi/bus.c
@@ -284,7 +284,8 @@ DECLARE_WAIT_QUEUE_HEAD(acpi_bus_event_q
 
 extern int event_is_open;
 
-int acpi_bus_generate_event(struct acpi_device *device, u8 type, int data)
+int acpi_bus_generate_event(struct acpi_device *device, u8 type,
+                           int data, gfp_t flag)
 {
        struct acpi_bus_event *event = NULL;
        unsigned long flags = 0;
@@ -293,7 +294,7 @@ int acpi_bus_generate_event(struct acpi_
        if (!device)
                return -EINVAL;
 
-       if (acpi_bus_generate_genetlink_event(device, type, data))
+       if (acpi_bus_generate_genetlink_event(device, type, data, flag))
                printk(KERN_WARNING PREFIX
                        "Failed to generate an ACPI event via genetlink!\n");
 
@@ -301,7 +302,7 @@ int acpi_bus_generate_event(struct acpi_
        if (!event_is_open)
                return 0;
 
-       event = kmalloc(sizeof(struct acpi_bus_event), GFP_ATOMIC);
+       event = kmalloc(sizeof(struct acpi_bus_event), flag);
        if (!event)
                return -ENOMEM;
 
Index: linux-2.6.23-rc1/drivers/acpi/event.c
===================================================================
--- linux-2.6.23-rc1.orig/drivers/acpi/event.c
+++ linux-2.6.23-rc1/drivers/acpi/event.c
@@ -148,7 +148,7 @@ static struct genl_multicast_group acpi_
 };
 
 int acpi_bus_generate_genetlink_event(struct acpi_device *device,
-                                     u8 type, int data)
+                                     u8 type, int data, gfp_t flag)
 {
        struct sk_buff *skb;
        struct nlattr *attr;
@@ -161,7 +161,7 @@ int acpi_bus_generate_genetlink_event(st
        size = nla_total_size(sizeof(struct acpi_genl_event)) +
            nla_total_size(0);
 
-       skb = genlmsg_new(size, GFP_ATOMIC);
+       skb = genlmsg_new(size, flag);
        if (!skb)
                return -ENOMEM;
 
@@ -204,7 +204,7 @@ int acpi_bus_generate_genetlink_event(st
        }
 
        result =
-           genlmsg_multicast(skb, 0, acpi_event_mcgrp.id, GFP_ATOMIC);
+           genlmsg_multicast(skb, 0, acpi_event_mcgrp.id, flag);
        if (result)
                ACPI_DEBUG_PRINT((ACPI_DB_INFO,
                                  "Failed to send a Genetlink message!\n"));
Index: linux-2.6.23-rc1/include/acpi/acpi_bus.h
===================================================================
--- linux-2.6.23-rc1.orig/include/acpi/acpi_bus.h
+++ linux-2.6.23-rc1/include/acpi/acpi_bus.h
@@ -322,7 +322,7 @@ struct acpi_bus_event {
 
 extern struct kset acpi_subsys;
 extern int acpi_bus_generate_genetlink_event(struct acpi_device *device,
-                                               u8 type, int data);
+                                               u8 type, int data, gfp_t flag);
 /*
  * External Functions
  */
@@ -332,7 +332,8 @@ void acpi_bus_data_handler(acpi_handle h
 int acpi_bus_get_status(struct acpi_device *device);
 int acpi_bus_get_power(acpi_handle handle, int *state);
 int acpi_bus_set_power(acpi_handle handle, int state);
-int acpi_bus_generate_event(struct acpi_device *device, u8 type, int data);
+int acpi_bus_generate_event(struct acpi_device *device, u8 type, int data,
+                               gfp_t flag);
 int acpi_bus_receive_event(struct acpi_bus_event *event);
 int acpi_bus_register_driver(struct acpi_driver *driver);
 void acpi_bus_unregister_driver(struct acpi_driver *driver);
Index: linux-2.6.23-rc1/drivers/acpi/ac.c
===================================================================
--- linux-2.6.23-rc1.orig/drivers/acpi/ac.c
+++ linux-2.6.23-rc1/drivers/acpi/ac.c
@@ -199,7 +199,8 @@ static void acpi_ac_notify(acpi_handle h
        case ACPI_NOTIFY_BUS_CHECK:
        case ACPI_NOTIFY_DEVICE_CHECK:
                acpi_ac_get_state(ac);
-               acpi_bus_generate_event(device, event, (u32) ac->state);
+               acpi_bus_generate_event(device, event, (u32) ac->state,
+                                       GFP_KERNEL);
                break;
        default:
                ACPI_DEBUG_PRINT((ACPI_DB_INFO,
Index: linux-2.6.23-rc1/drivers/acpi/asus_acpi.c
===================================================================
--- linux-2.6.23-rc1.orig/drivers/acpi/asus_acpi.c
+++ linux-2.6.23-rc1/drivers/acpi/asus_acpi.c
@@ -1065,7 +1065,7 @@ static void asus_hotk_notify(acpi_handle
        }
 
        acpi_bus_generate_event(hotk->device, event,
-                               hotk->event_count[event % 128]++);
+                               hotk->event_count[event % 128]++, GFP_KERNEL);
 
        return;
 }
Index: linux-2.6.23-rc1/drivers/acpi/battery.c
===================================================================
--- linux-2.6.23-rc1.orig/drivers/acpi/battery.c
+++ linux-2.6.23-rc1/drivers/acpi/battery.c
@@ -868,7 +868,8 @@ static void acpi_battery_notify(acpi_han
                device = battery->device;
                acpi_battery_notify_update(battery);
                acpi_bus_generate_event(device, event,
-                                       acpi_battery_present(battery));
+                                       acpi_battery_present(battery),
+                                       GFP_KERNEL);
                break;
        default:
                ACPI_DEBUG_PRINT((ACPI_DB_INFO,
Index: linux-2.6.23-rc1/drivers/acpi/button.c
===================================================================
--- linux-2.6.23-rc1.orig/drivers/acpi/button.c
+++ linux-2.6.23-rc1/drivers/acpi/button.c
@@ -275,7 +275,7 @@ static void acpi_button_notify(acpi_hand
                input_sync(input);
 
                acpi_bus_generate_event(button->device, event,
-                                       ++button->pushed);
+                                       ++button->pushed, GFP_KERNEL);
                break;
        default:
                ACPI_DEBUG_PRINT((ACPI_DB_INFO,
Index: linux-2.6.23-rc1/drivers/acpi/processor_core.c
===================================================================
--- linux-2.6.23-rc1.orig/drivers/acpi/processor_core.c
+++ linux-2.6.23-rc1/drivers/acpi/processor_core.c
@@ -693,15 +693,16 @@ static void acpi_processor_notify(acpi_h
        case ACPI_PROCESSOR_NOTIFY_PERFORMANCE:
                acpi_processor_ppc_has_changed(pr);
                acpi_bus_generate_event(device, event,
-                                       pr->performance_platform_limit);
+                                       pr->performance_platform_limit,
+                                       GFP_KERNEL);
                break;
        case ACPI_PROCESSOR_NOTIFY_POWER:
                acpi_processor_cst_has_changed(pr);
-               acpi_bus_generate_event(device, event, 0);
+               acpi_bus_generate_event(device, event, 0, GFP_KERNEL);
                break;
        case ACPI_PROCESSOR_NOTIFY_THROTTLING:
                acpi_processor_tstate_has_changed(pr);
-               acpi_bus_generate_event(device, event, 0);
+               acpi_bus_generate_event(device, event, 0, GFP_KERNEL);
        default:
                ACPI_DEBUG_PRINT((ACPI_DB_INFO,
                                  "Unsupported event [0x%x]\n", event));
Index: linux-2.6.23-rc1/drivers/acpi/sbs.c
===================================================================
--- linux-2.6.23-rc1.orig/drivers/acpi/sbs.c
+++ linux-2.6.23-rc1/drivers/acpi/sbs.c
@@ -434,7 +434,7 @@ static int acpi_sbs_generate_event(struc
        strcpy(acpi_device_bid(device), bid);
        strcpy(acpi_device_class(device), class);
 
-       result = acpi_bus_generate_event(device, event, state);
+       result = acpi_bus_generate_event(device, event, state, GFP_KERNEL);
 
        strcpy(acpi_device_bid(device), bid_saved);
        strcpy(acpi_device_class(device), class_saved);
Index: linux-2.6.23-rc1/drivers/acpi/thermal.c
===================================================================
--- linux-2.6.23-rc1.orig/drivers/acpi/thermal.c
+++ linux-2.6.23-rc1/drivers/acpi/thermal.c
@@ -434,7 +434,7 @@ static int acpi_thermal_critical(struct 
               "Critical temperature reached (%ld C), shutting down.\n",
               KELVIN_TO_CELSIUS(tz->temperature));
        acpi_bus_generate_event(tz->device, ACPI_THERMAL_NOTIFY_CRITICAL,
-                               tz->trips.critical.flags.enabled);
+                               tz->trips.critical.flags.enabled, GFP_KERNEL);
 
        orderly_poweroff(true);
 
@@ -453,7 +453,7 @@ static int acpi_thermal_hot(struct acpi_
                tz->trips.hot.flags.enabled = 0;
 
        acpi_bus_generate_event(tz->device, ACPI_THERMAL_NOTIFY_HOT,
-                               tz->trips.hot.flags.enabled);
+                               tz->trips.hot.flags.enabled, GFP_KERNEL);
 
        /* TBD: Call user-mode "sleep(S4)" function */
 
@@ -1095,12 +1095,12 @@ static void acpi_thermal_notify(acpi_han
        case ACPI_THERMAL_NOTIFY_THRESHOLDS:
                acpi_thermal_get_trip_points(tz);
                acpi_thermal_check(tz);
-               acpi_bus_generate_event(device, event, 0);
+               acpi_bus_generate_event(device, event, 0, GFP_KERNEL);
                break;
        case ACPI_THERMAL_NOTIFY_DEVICES:
                if (tz->flags.devices)
                        acpi_thermal_get_devices(tz);
-               acpi_bus_generate_event(device, event, 0);
+               acpi_bus_generate_event(device, event, 0, GFP_KERNEL);
                break;
        default:
                ACPI_DEBUG_PRINT((ACPI_DB_INFO,
Index: linux-2.6.23-rc1/drivers/acpi/video.c
===================================================================
--- linux-2.6.23-rc1.orig/drivers/acpi/video.c
+++ linux-2.6.23-rc1/drivers/acpi/video.c
@@ -1769,7 +1769,7 @@ static void acpi_video_bus_notify(acpi_h
        switch (event) {
        case ACPI_VIDEO_NOTIFY_SWITCH:  /* User requested a switch,
                                         * most likely via hotkey. */
-               acpi_bus_generate_event(device, event, 0);
+               acpi_bus_generate_event(device, event, 0, GFP_KERNEL);
                break;
 
        case ACPI_VIDEO_NOTIFY_PROBE:   /* User plugged in or removed a video
@@ -1777,14 +1777,14 @@ static void acpi_video_bus_notify(acpi_h
                acpi_video_device_enumerate(video);
                acpi_video_device_rebind(video);
                acpi_video_switch_output(video, event);
-               acpi_bus_generate_event(device, event, 0);
+               acpi_bus_generate_event(device, event, 0, GFP_KERNEL);
                break;
 
        case ACPI_VIDEO_NOTIFY_CYCLE:   /* Cycle Display output hotkey pressed. 
*/
        case ACPI_VIDEO_NOTIFY_NEXT_OUTPUT:     /* Next Display output hotkey 
pressed. */
        case ACPI_VIDEO_NOTIFY_PREV_OUTPUT:     /* previous Display output 
hotkey pressed. */
                acpi_video_switch_output(video, event);
-               acpi_bus_generate_event(device, event, 0);
+               acpi_bus_generate_event(device, event, 0, GFP_KERNEL);
                break;
 
        default:
@@ -1809,7 +1809,7 @@ static void acpi_video_device_notify(acp
        switch (event) {
        case ACPI_VIDEO_NOTIFY_SWITCH:  /* change in status (cycle output 
device) */
        case ACPI_VIDEO_NOTIFY_PROBE:   /* change in status (output device 
status) */
-               acpi_bus_generate_event(device, event, 0);
+               acpi_bus_generate_event(device, event, 0, GFP_KERNEL);
                break;
        case ACPI_VIDEO_NOTIFY_CYCLE_BRIGHTNESS:        /* Cycle brightness */
        case ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS:  /* Increase brightness */
@@ -1817,7 +1817,7 @@ static void acpi_video_device_notify(acp
        case ACPI_VIDEO_NOTIFY_ZERO_BRIGHTNESS: /* zero brightnesss */
        case ACPI_VIDEO_NOTIFY_DISPLAY_OFF:     /* display device off */
                acpi_video_switch_brightness(video_device, event);
-               acpi_bus_generate_event(device, event, 0);
+               acpi_bus_generate_event(device, event, 0, GFP_KERNEL);
                break;
        default:
                ACPI_DEBUG_PRINT((ACPI_DB_INFO,
Index: linux-2.6.23-rc1/drivers/char/sonypi.c
===================================================================
--- linux-2.6.23-rc1.orig/drivers/char/sonypi.c
+++ linux-2.6.23-rc1/drivers/char/sonypi.c
@@ -875,7 +875,8 @@ found:
 
 #ifdef CONFIG_ACPI
        if (sonypi_acpi_device)
-               acpi_bus_generate_event(sonypi_acpi_device, 1, event);
+               acpi_bus_generate_event(sonypi_acpi_device, 1,
+                                       event, GFP_ATOMIC);
 #endif
 
        kfifo_put(sonypi_device.fifo, (unsigned char *)&event, sizeof(event));
Index: linux-2.6.23-rc1/drivers/misc/sony-laptop.c
===================================================================
--- linux-2.6.23-rc1.orig/drivers/misc/sony-laptop.c
+++ linux-2.6.23-rc1/drivers/misc/sony-laptop.c
@@ -904,7 +904,7 @@ static void sony_acpi_notify(acpi_handle
 
        dprintk("sony_acpi_notify, event: 0x%.2x\n", ev);
        sony_laptop_report_input_event(ev);
-       acpi_bus_generate_event(sony_nc_acpi_device, 1, ev);
+       acpi_bus_generate_event(sony_nc_acpi_device, 1, ev, GFP_KERNEL);
 }
 
 static acpi_status sony_walk_callback(acpi_handle handle, u32 level,
@@ -2275,7 +2275,7 @@ static irqreturn_t sony_pic_irq(int irq,
 
 found:
        sony_laptop_report_input_event(device_event);
-       acpi_bus_generate_event(spic_dev.acpi_dev, 1, device_event);
+       acpi_bus_generate_event(spic_dev.acpi_dev, 1, device_event, GFP_ATOMIC);
        sonypi_compat_report_event(device_event);
 
        return IRQ_HANDLED;
Index: linux-2.6.23-rc1/drivers/misc/thinkpad_acpi.c
===================================================================
--- linux-2.6.23-rc1.orig/drivers/misc/thinkpad_acpi.c
+++ linux-2.6.23-rc1/drivers/misc/thinkpad_acpi.c
@@ -1189,10 +1189,12 @@ static void hotkey_notify(struct ibm_str
                }
 
                if (sendacpi)
-                       acpi_bus_generate_event(ibm->acpi->device, event, hkey);
+                       acpi_bus_generate_event(ibm->acpi->device, event, hkey,
+                                               GFP_KERNEL);
        } else {
                printk(IBM_ERR "unknown hotkey notification event %d\n", event);
-               acpi_bus_generate_event(ibm->acpi->device, event, 0);
+               acpi_bus_generate_event(ibm->acpi->device, event, 0,
+                                       GFP_KERNEL);
        }
 }
 
@@ -2152,19 +2154,25 @@ static void dock_notify(struct ibm_struc
        int pci = ibm->acpi->hid && strstr(ibm->acpi->hid, PCI_ROOT_HID_STRING);
 
        if (event == 1 && !pci) /* 570 */
-               acpi_bus_generate_event(ibm->acpi->device, event, 1);   /* 
button */
+               acpi_bus_generate_event(ibm->acpi->device, event,
+                                       1, GFP_KERNEL); /* button */
        else if (event == 1 && pci)     /* 570 */
-               acpi_bus_generate_event(ibm->acpi->device, event, 3);   /* dock 
*/
+               acpi_bus_generate_event(ibm->acpi->device, event,
+                                       3, GFP_KERNEL); /* dock */
        else if (event == 3 && docked)
-               acpi_bus_generate_event(ibm->acpi->device, event, 1);   /* 
button */
+               acpi_bus_generate_event(ibm->acpi->device, event,
+                                       1, GFP_KERNEL); /* button */
        else if (event == 3 && !docked)
-               acpi_bus_generate_event(ibm->acpi->device, event, 2);   /* 
undock */
+               acpi_bus_generate_event(ibm->acpi->device, event,
+                                       2, GFP_KERNEL); /* undock */
        else if (event == 0 && docked)
-               acpi_bus_generate_event(ibm->acpi->device, event, 3);   /* dock 
*/
+               acpi_bus_generate_event(ibm->acpi->device, event,
+                                       3, GFP_KERNEL); /* dock */
        else {
                printk(IBM_ERR "unknown dock event %d, status %d\n",
                       event, _sta(dock_handle));
-               acpi_bus_generate_event(ibm->acpi->device, event, 0);   /* 
unknown */
+               acpi_bus_generate_event(ibm->acpi->device, event,
+                                       0, GFP_KERNEL); /* unknown */
        }
 }
 
@@ -2263,7 +2271,7 @@ static int __init bay_init(struct ibm_in
 
 static void bay_notify(struct ibm_struct *ibm, u32 event)
 {
-       acpi_bus_generate_event(ibm->acpi->device, event, 0);
+       acpi_bus_generate_event(ibm->acpi->device, event, 0, GFP_KERNEL);
 }
 
 #define bay_occupied(b) (_sta(b##_handle) & 1)
Index: linux-2.6.23-rc1/drivers/pci/hotplug/acpiphp_ibm.c
===================================================================
--- linux-2.6.23-rc1.orig/drivers/pci/hotplug/acpiphp_ibm.c
+++ linux-2.6.23-rc1/drivers/pci/hotplug/acpiphp_ibm.c
@@ -267,7 +267,8 @@ static void ibm_handle_events(acpi_handl
 
        if (subevent == 0x80) {
                dbg("%s: generationg bus event\n", __FUNCTION__);
-               acpi_bus_generate_event(note->device, note->event, detail);
+               acpi_bus_generate_event(note->device, note->event,
+                                       detail, GFP_KERNEL);
        } else
                note->event = event;
 }
Index: linux-2.6.23-rc1/drivers/misc/asus-laptop.c
===================================================================
--- linux-2.6.23-rc1.orig/drivers/misc/asus-laptop.c
+++ linux-2.6.23-rc1/drivers/misc/asus-laptop.c
@@ -728,7 +728,7 @@ static void asus_hotk_notify(acpi_handle
        }
 
        acpi_bus_generate_event(hotk->device, event,
-                               hotk->event_count[event % 128]++);
+                               hotk->event_count[event % 128]++, GFP_KERNEL);
 
        return;
 }
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to