public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* 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