Skip to contentSkip to conversation

fix yenta unload oops

PATCH In review Daniel Ritz 2 participants 2 messages Jun 14, 2003 – Jun 15, 2003 Pcmcia

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fix yenta unload oops

hi

rmmod yenta produces the following oops:

Unable to handle kernel paging request at virtual address d084781e
 printing eip:
d08a555f
*pde = 013f1067
*pte = 00000000
Oops: 0002 [#1]
CPU:    0
EIP:    0060:[<d08a555f>]    Not tainted
EFLAGS: 00010212

EIP is at yenta_config_init+0x18f/0x1e0 [yenta]
eax: d084781e ebx: cfe16d08 ecx: c030d508 edx: 00000cfe
esi: cef0d154 edi: c3236000 ebp: c3237f2c esp: c3237f10
ds: 007b es: 007b ss: 0068
Process pccardd (pid: 2618, threadinfo=c3236000 task=c988ae60)

Stack: d084781e d08a63b6 00000079 00000500 05800000 cef0d154 cef0d21c c3237f44
       d08a55ca cef0d154 c0134970 c988ae60 cef0d21c c3237f50 d08b3d1a cef0d21c
       c3237f68 d08b4657 cef0d21c d08b489b 00000000 cef0d21c c3237fec d08b4fe6
Call Trace:
 [<d08a63b6>] +0x0/0x6a [yenta]
 [<d08a55ca>] yenta_init+0x1a/0x50 [yenta]
 [<c0134970>] process_timeout+0x0/0x10
 [<d08b3d1a>] init_socket+0x2a/0x30 [pcmcia_core]
 [<d08b4657>] shutdown_socket+0x17/0x100 [pcmcia_core]
 [<d08b489b>] socket_shutdown+0x4b/0x60 [pcmcia_core]
 [<d08b4fe6>] pccardd+0x346/0x360 [pcmcia_core]
 [<c0122e70>] default_wake_function+0x0/0x30
 [<c010c092>] ret_from_fork+0x6/0x14
 [<c0122e70>] default_wake_function+0x0/0x30
 [<d08b4ca0>] pccardd+0x0/0x360 [pcmcia_core]

the attached patch fixes this. against 2.5.70-bk.

rgds
-daniel

===== drivers/pcmcia/yenta.c 1.23 vs edited =====

drivers/pcmcia/yenta.c +3 -1
@@ -764,6 +764,9 @@
 {
 	struct yenta_socket *sock = pci_get_drvdata(dev);
 
+	/* we don't want a dying socket registered */
+	pcmcia_unregister_socket(&sock->socket);
+	
 	/* Disable all events so we don't die in an IRQ storm */
 	cb_writel(sock, CB_SOCKET_MASK, 0x0);
 	exca_writeb(sock, I365_CSCINT, 0);
@@ -777,7 +780,6 @@
 		iounmap(sock->base);
 	yenta_free_resources(sock);
 
-	pcmcia_unregister_socket(&sock->socket);
 	pci_set_drvdata(dev, NULL);
 }
 
 [<c010937d>] kernel_thread_helper+0x5/0x18

Code: c6 00 00 c7 44 24 08 79 00 00 00 c7 44 24 04 b6 63 8a d0 8b
#1 lore raw
Quoted 1 line · Daniel Ritz

rmmod yenta produces the following oops:

Thanks, it's now in my outgoing queue.

Signature · 2 lines
Russell King ([email protected])                The developer of ARM Linux
             http://www.arm.linux.org.uk/personal/aboutme.html