* 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
[parent not found: <pan.2004.05.10.17.34.01.383608@altlinux.ru>]
* 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