* OOPS : 2.4.27-pre2 + latest ACPI
@ 2004-05-08 21:27 O.Sezer
2004-05-08 21:36 ` O.Sezer
0 siblings, 1 reply; 4+ messages in thread
From: O.Sezer @ 2004-05-08 21:27 UTC (permalink / raw)
To: linux-kernel; +Cc: len.brown
[-- Attachment #1: Type: text/plain, Size: 243 bytes --]
Hi Len, all:
Vanilla 2.4.27-pre2 + acpi-20040326-2.4.27.diff.gz (dated May 06) from
http://www.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/release/2.4.27/
Decoded oops below, gzipped config and dmesg attached.
Regards;
Özkan Sezer
[-- Attachment #2: ksymoops.txt --]
[-- Type: text/plain, Size: 4974 bytes --]
ksymoops 2.4.5 on i686 2.4.27-pre2. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.27-pre2/ (default)
-m /boot/System.map-2.4.27-pre2 (default)
Warning: You did not tell me where to find symbol information. I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc. ksymoops -h explains the options.
Error (expand_objects): cannot stat(/lib/floppy.o) for floppy
Error (expand_objects): cannot stat(/lib/ext3.o) for ext3
Error (expand_objects): cannot stat(/lib/jbd.o) for jbd
Warning (map_ksym_to_module): cannot match loaded module floppy to a unique module object. Trace may not be reliable.
Warning (map_ksym_to_module): cannot match loaded module ext3 to a unique module object. Trace may not be reliable.
May 9 00:13:46 p733 kernel: Unable to handle kernel paging request at virtual address 5a5a5a5a
May 9 00:13:46 p733 kernel: c01a575a
May 9 00:13:46 p733 kernel: *pde = 00000000
May 9 00:13:46 p733 kernel: Oops: 0000
May 9 00:13:46 p733 kernel: CPU: 0
May 9 00:13:46 p733 kernel: EIP: 0010:[<c01a575a>] Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
May 9 00:13:46 p733 kernel: EFLAGS: 00010246
May 9 00:13:46 p733 kernel: eax: 00000000 ebx: 5a5a5a5a ecx: 00000000 edx: 00000006
May 9 00:13:46 p733 kernel: esi: 00000000 edi: ddc69e9c ebp: ddc69e90 esp: ddc69e8c
May 9 00:13:46 p733 kernel: ds: 0018 es: 0018 ss: 0018
May 9 00:13:46 p733 kernel: Process modprobe (pid: 2066, stackpage=ddc69000)
May 9 00:13:46 p733 kernel: Stack: df651a8c ddc69eb8 c0196144 5a5a5a5a 00000004 c028413e c0284100 00200000
May 9 00:13:46 p733 kernel: df651a8c ddc69ecc dfff0800 ddc69ee8 e0ae293a 5a5a5a5a 00000001 e0ae245d
May 9 00:13:46 p733 kernel: 00080000 e0ae2c9f e0ae2abc 00000473 dfff0800 dfff0800 e0ae3340 ddc69f14
May 9 00:13:46 p733 kernel: Call Trace: [<c0196144>] [<e0ae293a>] [<e0ae245d>] [<e0ae2c9f>] [<e0ae2abc>]
May 9 00:13:46 p733 kernel: [<e0ae3340>] [<c01b5a3f>] [<c01b59ab>] [<c01b5339>] [<e0ae3340>] [<e0ae3340>]
May 9 00:13:46 p733 kernel: [<c01b5cca>] [<c01b59ab>] [<e0ae3340>] [<e0ae2a84>] [<e0ae3340>] [<e0ae2cc3>]
May 9 00:13:46 p733 kernel: [<e0ae2abc>] [<c012051a>] [<c011f889>] [<c0108ea7>]
May 9 00:13:46 p733 kernel: Code: 80 3b 0f 0f 44 c3 5b 5d c3 a1 94 c0 32 c0 eb f6 55 89 e5 8b
>>EIP; c01a575a <acpi_ns_map_handle_to_node+19/29> <=====
>>ebx; 5a5a5a5a Before first symbol
>>edi; ddc69e9c <_end+1d919018/206911dc>
>>ebp; ddc69e90 <_end+1d91900c/206911dc>
>>esp; ddc69e8c <_end+1d919008/206911dc>
Trace; c0196144 <acpi_remove_notify_handler+87/18e>
Trace; e0ae293a <[button]acpi_button_remove+78/d4>
Trace; e0ae245d <[button]acpi_button_notify+0/94>
Trace; e0ae2c9f <[button].text.end+1e4/2e5>
Trace; e0ae2abc <[button].text.end+1/2e5>
Trace; e0ae3340 <[button]acpi_button_driver+0/d3>
Trace; c01b5a3f <acpi_bus_unattach+94/11f>
Trace; c01b59ab <acpi_bus_unattach+0/11f>
Trace; c01b5339 <acpi_bus_walk+a3/cf>
Trace; e0ae3340 <[button]acpi_button_driver+0/d3>
Trace; e0ae3340 <[button]acpi_button_driver+0/d3>
Trace; c01b5cca <acpi_bus_unregister_driver+4c/d1>
Trace; c01b59ab <acpi_bus_unattach+0/11f>
Trace; e0ae3340 <[button]acpi_button_driver+0/d3>
Trace; e0ae2a84 <[button]acpi_button_exit+49/80>
Trace; e0ae3340 <[button]acpi_button_driver+0/d3>
Trace; e0ae2cc3 <[button].text.end+208/2e5>
Trace; e0ae2abc <[button].text.end+1/2e5>
Trace; c012051a <free_module+ba/d0>
Trace; c011f889 <sys_delete_module+a9/1e0>
Trace; c0108ea7 <system_call+33/38>
Code; c01a575a <acpi_ns_map_handle_to_node+19/29>
00000000 <_EIP>:
Code; c01a575a <acpi_ns_map_handle_to_node+19/29> <=====
0: 80 3b 0f cmpb $0xf,(%ebx) <=====
Code; c01a575d <acpi_ns_map_handle_to_node+1c/29>
3: 0f 44 c3 cmove %ebx,%eax
Code; c01a5760 <acpi_ns_map_handle_to_node+1f/29>
6: 5b pop %ebx
Code; c01a5761 <acpi_ns_map_handle_to_node+20/29>
7: 5d pop %ebp
Code; c01a5762 <acpi_ns_map_handle_to_node+21/29>
8: c3 ret
Code; c01a5763 <acpi_ns_map_handle_to_node+22/29>
9: a1 94 c0 32 c0 mov 0xc032c094,%eax
Code; c01a5768 <acpi_ns_map_handle_to_node+27/29>
e: eb f6 jmp 6 <_EIP+0x6>
Code; c01a576a <acpi_ns_convert_entry_to_handle+0/8>
10: 55 push %ebp
Code; c01a576b <acpi_ns_convert_entry_to_handle+1/8>
11: 89 e5 mov %esp,%ebp
Code; c01a576d <acpi_ns_convert_entry_to_handle+3/8>
13: 8b 00 mov (%eax),%eax
3 warnings and 3 errors issued. Results may not be reliable.
[-- Attachment #3: dmesg.out.gz --]
[-- Type: application/x-gzip, Size: 4718 bytes --]
[-- Attachment #4: config.gz --]
[-- Type: application/x-gzip, Size: 7689 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: OOPS : 2.4.27-pre2 + latest ACPI
2004-05-08 21:27 OOPS : 2.4.27-pre2 + latest ACPI O.Sezer
@ 2004-05-08 21:36 ` O.Sezer
2004-05-09 8:02 ` O.Sezer
0 siblings, 1 reply; 4+ messages in thread
From: O.Sezer @ 2004-05-08 21:36 UTC (permalink / raw)
To: linux-kernel; +Cc: len.brown
O.Sezer wrote:
[...]
>>>EIP; c01a575a <acpi_ns_map_handle_to_node+19/29> <=====
>
>
>>>ebx; 5a5a5a5a Before first symbol
>>>edi; ddc69e9c <_end+1d919018/206911dc>
>>>ebp; ddc69e90 <_end+1d91900c/206911dc>
>>>esp; ddc69e8c <_end+1d919008/206911dc>
>
>
> Trace; c0196144 <acpi_remove_notify_handler+87/18e>
> Trace; e0ae293a <[button]acpi_button_remove+78/d4>
> Trace; e0ae245d <[button]acpi_button_notify+0/94>
> Trace; e0ae2c9f <[button].text.end+1e4/2e5>
> Trace; e0ae2abc <[button].text.end+1/2e5>
> Trace; e0ae3340 <[button]acpi_button_driver+0/d3>
> Trace; c01b5a3f <acpi_bus_unattach+94/11f>
> Trace; c01b59ab <acpi_bus_unattach+0/11f>
> Trace; c01b5339 <acpi_bus_walk+a3/cf>
> Trace; e0ae3340 <[button]acpi_button_driver+0/d3>
> Trace; e0ae3340 <[button]acpi_button_driver+0/d3>
> Trace; c01b5cca <acpi_bus_unregister_driver+4c/d1>
> Trace; c01b59ab <acpi_bus_unattach+0/11f>
> Trace; e0ae3340 <[button]acpi_button_driver+0/d3>
> Trace; e0ae2a84 <[button]acpi_button_exit+49/80>
> Trace; e0ae3340 <[button]acpi_button_driver+0/d3>
> Trace; e0ae2cc3 <[button].text.end+208/2e5>
> Trace; e0ae2abc <[button].text.end+1/2e5>
> Trace; c012051a <free_module+ba/d0>
> Trace; c011f889 <sys_delete_module+a9/1e0>
> Trace; c0108ea7 <system_call+33/38>
>
> Code; c01a575a <acpi_ns_map_handle_to_node+19/29>
> 00000000 <_EIP>:
> Code; c01a575a <acpi_ns_map_handle_to_node+19/29> <=====
> 0: 80 3b 0f cmpb $0xf,(%ebx) <=====
> Code; c01a575d <acpi_ns_map_handle_to_node+1c/29>
> 3: 0f 44 c3 cmove %ebx,%eax
> Code; c01a5760 <acpi_ns_map_handle_to_node+1f/29>
> 6: 5b pop %ebx
> Code; c01a5761 <acpi_ns_map_handle_to_node+20/29>
> 7: 5d pop %ebp
> Code; c01a5762 <acpi_ns_map_handle_to_node+21/29>
> 8: c3 ret
> Code; c01a5763 <acpi_ns_map_handle_to_node+22/29>
> 9: a1 94 c0 32 c0 mov 0xc032c094,%eax
> Code; c01a5768 <acpi_ns_map_handle_to_node+27/29>
> e: eb f6 jmp 6 <_EIP+0x6>
> Code; c01a576a <acpi_ns_convert_entry_to_handle+0/8>
> 10: 55 push %ebp
> Code; c01a576b <acpi_ns_convert_entry_to_handle+1/8>
> 11: 89 e5 mov %esp,%ebp
> Code; c01a576d <acpi_ns_convert_entry_to_handle+3/8>
> 13: 8b 00 mov (%eax),%eax
>
>
> 3 warnings and 3 errors issued. Results may not be reliable.
Sorry for giving missing info:
Oops occurs upon attemping to shutdown the machine during
which time unloading the button module, I guess.
If you require more info or want me to try anything/any code,
simply ask.
Best regards;
Özkan Sezer
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: OOPS : 2.4.27-pre2 + latest ACPI
2004-05-08 21:36 ` O.Sezer
@ 2004-05-09 8:02 ` O.Sezer
[not found] ` <pan.2004.05.10.17.34.01.383608@altlinux.ru>
0 siblings, 1 reply; 4+ messages in thread
From: O.Sezer @ 2004-05-09 8:02 UTC (permalink / raw)
To: linux-kernel; +Cc: len.brown
[-- Attachment #1: Type: text/plain, Size: 195 bytes --]
I backed-out the new module hunks and the
oops went-away. Seems like there are still
problems with the module unloading code.
I attached what I backed-out as a diff below.
Regards;
Özkan Sezer
[-- Attachment #2: acpi_backout_module.diff --]
[-- Type: text/plain, Size: 9870 bytes --]
diff -urN orig/drivers/acpi/ac.c work/drivers/acpi/ac.c
--- orig/drivers/acpi/ac.c 2004-05-09 10:50:52.000000000 +0300
+++ work/drivers/acpi/ac.c 2004-05-09 10:52:20.000000000 +0300
@@ -156,7 +156,6 @@
acpi_ac_dir);
if (!acpi_device_dir(device))
return_VALUE(-ENODEV);
- acpi_device_dir(device)->owner = THIS_MODULE;
}
/* 'state' [R] */
@@ -169,7 +168,6 @@
else {
entry->read_proc = acpi_ac_read_state;
entry->data = acpi_driver_data(device);
- entry->owner = THIS_MODULE;
}
return_VALUE(0);
@@ -320,7 +318,6 @@
acpi_ac_dir = proc_mkdir(ACPI_AC_CLASS, acpi_root_dir);
if (!acpi_ac_dir)
return_VALUE(-ENODEV);
- acpi_ac_dir->owner = THIS_MODULE;
result = acpi_bus_register_driver(&acpi_ac_driver);
if (result < 0) {
diff -urN orig/drivers/acpi/battery.c work/drivers/acpi/battery.c
--- orig/drivers/acpi/battery.c 2004-05-09 10:50:52.000000000 +0300
+++ work/drivers/acpi/battery.c 2004-05-09 10:52:20.000000000 +0300
@@ -613,7 +613,6 @@
acpi_battery_dir);
if (!acpi_device_dir(device))
return_VALUE(-ENODEV);
- acpi_device_dir(device)->owner = THIS_MODULE;
}
/* 'info' [R] */
@@ -626,7 +625,6 @@
else {
entry->read_proc = acpi_battery_read_info;
entry->data = acpi_driver_data(device);
- entry->owner = THIS_MODULE;
}
/* 'status' [R] */
@@ -639,7 +637,6 @@
else {
entry->read_proc = acpi_battery_read_state;
entry->data = acpi_driver_data(device);
- entry->owner = THIS_MODULE;
}
/* 'alarm' [R/W] */
@@ -653,7 +650,6 @@
entry->read_proc = acpi_battery_read_alarm;
entry->write_proc = acpi_battery_write_alarm;
entry->data = acpi_driver_data(device);
- entry->owner = THIS_MODULE;
}
return_VALUE(0);
@@ -805,7 +801,6 @@
acpi_battery_dir = proc_mkdir(ACPI_BATTERY_CLASS, acpi_root_dir);
if (!acpi_battery_dir)
return_VALUE(-ENODEV);
- acpi_battery_dir->owner = THIS_MODULE;
result = acpi_bus_register_driver(&acpi_battery_driver);
if (result < 0) {
diff -urN orig/drivers/acpi/bus.c work/drivers/acpi/bus.c
--- orig/drivers/acpi/bus.c 2004-05-09 10:50:52.000000000 +0300
+++ work/drivers/acpi/bus.c 2004-05-09 10:52:20.000000000 +0300
@@ -1769,23 +1769,15 @@
}
-struct acpi_device *acpi_fixed_pwr_button;
-struct acpi_device *acpi_fixed_sleep_button;
-
-EXPORT_SYMBOL(acpi_fixed_pwr_button);
-EXPORT_SYMBOL(acpi_fixed_sleep_button);
-
static int
acpi_bus_scan_fixed (
struct acpi_device *root)
{
int result = 0;
+ struct acpi_device *device = NULL;
ACPI_FUNCTION_TRACE("acpi_bus_scan_fixed");
- acpi_fixed_pwr_button = NULL;
- acpi_fixed_sleep_button = NULL;
-
if (!root)
return_VALUE(-ENODEV);
@@ -1793,11 +1785,11 @@
* Enumerate all fixed-feature devices.
*/
if (acpi_fadt.pwr_button == 0)
- result = acpi_bus_add(&acpi_fixed_pwr_button, acpi_root,
+ result = acpi_bus_add(&device, acpi_root,
NULL, ACPI_BUS_TYPE_POWER_BUTTON);
if (acpi_fadt.sleep_button == 0)
- result = acpi_bus_add(&acpi_fixed_sleep_button, acpi_root,
+ result = acpi_bus_add(&device, acpi_root,
NULL, ACPI_BUS_TYPE_SLEEP_BUTTON);
return_VALUE(result);
@@ -1972,10 +1964,8 @@
acpi_ec_init(); /* ACPI Embedded Controller */
#endif
#ifdef CONFIG_ACPI_PCI
- if (!acpi_pci_disabled) {
- acpi_pci_link_init(); /* ACPI PCI Interrupt Link */
- acpi_pci_root_init(); /* ACPI PCI Root Bridge */
- }
+ acpi_pci_link_init(); /* ACPI PCI Interrupt Link */
+ acpi_pci_root_init(); /* ACPI PCI Root Bridge */
#endif
/*
* Enumerate devices in the ACPI namespace.
diff -urN orig/drivers/acpi/button.c work/drivers/acpi/button.c
--- orig/drivers/acpi/button.c 2004-05-09 10:50:52.000000000 +0300
+++ work/drivers/acpi/button.c 2004-05-09 10:52:20.000000000 +0300
@@ -69,8 +69,6 @@
-------------------------------------------------------------------------- */
static struct proc_dir_entry *acpi_button_dir;
-extern struct acpi_device *acpi_fixed_pwr_button;
-extern struct acpi_device *acpi_fixed_sleep_button;
static int
acpi_button_read_info (
@@ -173,15 +171,10 @@
acpi_button_dir);
break;
}
-
- if (!entry)
- return_VALUE(-ENODEV);
- entry->owner = THIS_MODULE;
acpi_device_dir(device) = proc_mkdir(acpi_device_bid(device), entry);
if (!acpi_device_dir(device))
return_VALUE(-ENODEV);
- acpi_device_dir(device)->owner = THIS_MODULE;
/* 'info' [R] */
entry = create_proc_entry(ACPI_BUTTON_FILE_INFO,
@@ -193,7 +186,6 @@
else {
entry->read_proc = acpi_button_read_info;
entry->data = acpi_driver_data(device);
- entry->owner = THIS_MODULE;
}
if (button->type==ACPI_BUTTON_TYPE_LID){
@@ -207,7 +199,6 @@
else {
entry->read_proc = acpi_button_lid_read_state;
entry->data = acpi_driver_data(device);
- entry->owner = THIS_MODULE;
}
}
@@ -219,28 +210,10 @@
acpi_button_remove_fs (
struct acpi_device *device)
{
- struct acpi_button *button = NULL;
-
ACPI_FUNCTION_TRACE("acpi_button_remove_fs");
- button = acpi_driver_data(device);
if (acpi_device_dir(device)) {
- switch (button->type) {
- case ACPI_BUTTON_TYPE_POWER:
- case ACPI_BUTTON_TYPE_POWERF:
- remove_proc_entry(ACPI_BUTTON_SUBCLASS_POWER,
- acpi_button_dir);
- break;
- case ACPI_BUTTON_TYPE_SLEEP:
- case ACPI_BUTTON_TYPE_SLEEPF:
- remove_proc_entry(ACPI_BUTTON_SUBCLASS_SLEEP,
- acpi_button_dir);
- break;
- case ACPI_BUTTON_TYPE_LID:
- remove_proc_entry(ACPI_BUTTON_SUBCLASS_LID,
- acpi_button_dir);
- break;
- }
+ remove_proc_entry(acpi_device_bid(device), acpi_button_dir);
acpi_device_dir(device) = NULL;
}
@@ -497,7 +470,6 @@
acpi_button_dir = proc_mkdir(ACPI_BUTTON_CLASS, acpi_root_dir);
if (!acpi_button_dir)
return_VALUE(-ENODEV);
- acpi_button_dir->owner = THIS_MODULE;
result = acpi_bus_register_driver(&acpi_button_driver);
if (result < 0) {
@@ -514,12 +486,6 @@
{
ACPI_FUNCTION_TRACE("acpi_button_exit");
- if(acpi_fixed_pwr_button)
- acpi_button_remove(acpi_fixed_pwr_button, ACPI_BUS_TYPE_POWER_BUTTON);
-
- if(acpi_fixed_sleep_button)
- acpi_button_remove(acpi_fixed_sleep_button, ACPI_BUS_TYPE_SLEEP_BUTTON);
-
acpi_bus_unregister_driver(&acpi_button_driver);
remove_proc_entry(ACPI_BUTTON_CLASS, acpi_root_dir);
diff -urN orig/drivers/acpi/fan.c work/drivers/acpi/fan.c
--- orig/drivers/acpi/fan.c 2004-05-09 10:50:52.000000000 +0300
+++ work/drivers/acpi/fan.c 2004-05-09 10:52:20.000000000 +0300
@@ -151,7 +151,6 @@
acpi_fan_dir);
if (!acpi_device_dir(device))
return_VALUE(-ENODEV);
- acpi_device_dir(device)->owner = THIS_MODULE;
}
/* 'status' [R/W] */
@@ -165,7 +164,6 @@
entry->read_proc = acpi_fan_read_state;
entry->write_proc = acpi_fan_write_state;
entry->data = acpi_driver_data(device);
- entry->owner = THIS_MODULE;
}
return_VALUE(0);
@@ -269,7 +267,6 @@
acpi_fan_dir = proc_mkdir(ACPI_FAN_CLASS, acpi_root_dir);
if (!acpi_fan_dir)
return_VALUE(-ENODEV);
- acpi_fan_dir->owner = THIS_MODULE;
result = acpi_bus_register_driver(&acpi_fan_driver);
if (result < 0) {
diff -urN orig/drivers/acpi/Makefile work/drivers/acpi/Makefile
--- orig/drivers/acpi/Makefile 2004-05-09 10:50:52.000000000 +0300
+++ work/drivers/acpi/Makefile 2004-05-09 10:52:20.000000000 +0300
@@ -14,7 +14,7 @@
EXTRA_CFLAGS += $(ACPI_CFLAGS)
-export-objs := acpi_ksyms.o processor.o bus.o
+export-objs := acpi_ksyms.o processor.o
obj-$(CONFIG_ACPI) := acpi_ksyms.o
diff -urN orig/drivers/acpi/thermal.c work/drivers/acpi/thermal.c
--- orig/drivers/acpi/thermal.c 2004-05-09 10:50:52.000000000 +0300
+++ work/drivers/acpi/thermal.c 2004-05-09 10:52:20.000000000 +0300
@@ -1051,7 +1051,6 @@
acpi_thermal_dir);
if (!acpi_device_dir(device))
return_VALUE(-ENODEV);
- acpi_device_dir(device)->owner = THIS_MODULE;
}
/* 'state' [R] */
@@ -1064,7 +1063,6 @@
else {
entry->read_proc = acpi_thermal_read_state;
entry->data = acpi_driver_data(device);
- entry->owner = THIS_MODULE;
}
/* 'temperature' [R] */
@@ -1077,7 +1075,6 @@
else {
entry->read_proc = acpi_thermal_read_temperature;
entry->data = acpi_driver_data(device);
- entry->owner = THIS_MODULE;
}
/* 'trip_points' [R/W] */
@@ -1091,7 +1088,6 @@
entry->read_proc = acpi_thermal_read_trip_points;
entry->write_proc = acpi_thermal_write_trip_points;
entry->data = acpi_driver_data(device);
- entry->owner = THIS_MODULE;
}
/* 'cooling_mode' [R/W] */
@@ -1105,7 +1101,6 @@
entry->read_proc = acpi_thermal_read_cooling_mode;
entry->write_proc = acpi_thermal_write_cooling_mode;
entry->data = acpi_driver_data(device);
- entry->owner = THIS_MODULE;
}
/* 'polling_frequency' [R/W] */
@@ -1119,7 +1114,6 @@
entry->read_proc = acpi_thermal_read_polling;
entry->write_proc = acpi_thermal_write_polling;
entry->data = acpi_driver_data(device);
- entry->owner = THIS_MODULE;
}
return_VALUE(0);
@@ -1338,7 +1332,6 @@
acpi_thermal_dir = proc_mkdir(ACPI_THERMAL_CLASS, acpi_root_dir);
if (!acpi_thermal_dir)
return_VALUE(-ENODEV);
- acpi_thermal_dir->owner = THIS_MODULE;
result = acpi_bus_register_driver(&acpi_thermal_driver);
if (result < 0) {
diff -urN orig/drivers/acpi/toshiba_acpi.c work/drivers/acpi/toshiba_acpi.c
--- orig/drivers/acpi/toshiba_acpi.c 2004-05-09 10:50:53.000000000 +0300
+++ work/drivers/acpi/toshiba_acpi.c 2004-05-09 10:52:20.000000000 +0300
@@ -503,8 +503,6 @@
proc = create_proc_read_entry(item->name,
S_IFREG | S_IRUGO | S_IWUSR,
toshiba_proc_dir, (read_proc_t*)dispatch_read, item);
- if (proc)
- proc->owner = THIS_MODULE;
if (proc && item->write_func)
proc->write_proc = (write_proc_t*)dispatch_write;
}
@@ -552,7 +550,6 @@
if (!toshiba_proc_dir) {
status = AE_ERROR;
} else {
- toshiba_proc_dir->owner = THIS_MODULE;
status = add_device();
if (ACPI_FAILURE(status))
remove_proc_entry(PROC_TOSHIBA, acpi_root_dir);
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: OOPS : 2.4.27-pre2 + latest ACPI
[not found] ` <pan.2004.05.10.17.34.01.383608@altlinux.ru>
@ 2004-05-10 20:25 ` O.Sezer
0 siblings, 0 replies; 4+ messages in thread
From: O.Sezer @ 2004-05-10 20:25 UTC (permalink / raw)
To: Sergey Vlasov; +Cc: linux-kernel
Sergey Vlasov wrote:
>
> Looks like a free memory access - at acpi_button_remove() button->handle
> was trashed by 0x5a5a5a5a.
>
> Does the patch below (on top of the new ACPI changes) fix this? Seems
> that the special handling for fixed-feature buttons is unneeded at least
> for 2.4.x - acpi_bus_unregister_driver() works for them.
>
>
> --- linux/drivers/acpi/button.c.button-rmmod-oops 2004-05-09 19:45:09 +0400
> +++ linux/drivers/acpi/button.c 2004-05-10 21:18:56 +0400
> @@ -69,8 +69,6 @@
> -------------------------------------------------------------------------- */
>
> static struct proc_dir_entry *acpi_button_dir;
> -extern struct acpi_device *acpi_fixed_pwr_button;
> -extern struct acpi_device *acpi_fixed_sleep_button;
>
> static int
> acpi_button_read_info (
> @@ -514,12 +512,6 @@
> {
> ACPI_FUNCTION_TRACE("acpi_button_exit");
>
> - if(acpi_fixed_pwr_button)
> - acpi_button_remove(acpi_fixed_pwr_button, ACPI_BUS_TYPE_POWER_BUTTON);
> -
> - if(acpi_fixed_sleep_button)
> - acpi_button_remove(acpi_fixed_sleep_button, ACPI_BUS_TYPE_SLEEP_BUTTON);
> -
> acpi_bus_unregister_driver(&acpi_button_driver);
>
> remove_proc_entry(ACPI_BUTTON_CLASS, acpi_root_dir);
> --- linux/drivers/acpi/bus.c.button-rmmod-oops 2004-05-09 19:45:09 +0400
> +++ linux/drivers/acpi/bus.c 2004-05-10 21:21:06 +0400
> @@ -1769,23 +1769,15 @@
> }
>
>
> -struct acpi_device *acpi_fixed_pwr_button;
> -struct acpi_device *acpi_fixed_sleep_button;
> -
> -EXPORT_SYMBOL(acpi_fixed_pwr_button);
> -EXPORT_SYMBOL(acpi_fixed_sleep_button);
> -
> static int
> acpi_bus_scan_fixed (
> struct acpi_device *root)
> {
> int result = 0;
> + struct acpi_device *device = NULL;
>
> ACPI_FUNCTION_TRACE("acpi_bus_scan_fixed");
>
> - acpi_fixed_pwr_button = NULL;
> - acpi_fixed_sleep_button = NULL;
> -
> if (!root)
> return_VALUE(-ENODEV);
>
> @@ -1793,11 +1785,11 @@
> * Enumerate all fixed-feature devices.
> */
> if (acpi_fadt.pwr_button == 0)
> - result = acpi_bus_add(&acpi_fixed_pwr_button, acpi_root,
> + result = acpi_bus_add(&device, acpi_root,
> NULL, ACPI_BUS_TYPE_POWER_BUTTON);
>
> if (acpi_fadt.sleep_button == 0)
> - result = acpi_bus_add(&acpi_fixed_sleep_button, acpi_root,
> + result = acpi_bus_add(&device, acpi_root,
> NULL, ACPI_BUS_TYPE_SLEEP_BUTTON);
>
> return_VALUE(result);
Yes, this patch cures the oops. Thank you very much.
Best regards;
Özkan Sezer
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-05-10 20:25 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-05-08 21:27 OOPS : 2.4.27-pre2 + latest ACPI O.Sezer
2004-05-08 21:36 ` O.Sezer
2004-05-09 8:02 ` O.Sezer
[not found] ` <pan.2004.05.10.17.34.01.383608@altlinux.ru>
2004-05-10 20:25 ` O.Sezer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox