]> git.hungrycats.org Git - linux/commitdiff
[PCMCIA] fix yenta unload oops
authorDaniel Ritz <daniel.ritz@ch.rmk.(none)>
Sun, 15 Jun 2003 17:33:47 +0000 (18:33 +0100)
committerRussell King <rmk@flint.arm.linux.org.uk>
Sun, 15 Jun 2003 17:33:47 +0000 (18:33 +0100)
Patch from Daniel Ritz

rmmod yenta produces the following oops:
Unable to handle kernel paging request at virtual address d084781e
EIP is at yenta_config_init+0x18f/0x1e0 [yenta]
Process pccardd (pid: 2618, threadinfo=c3236000 task=c988ae60)

drivers/pcmcia/yenta.c

index 83bea1327f6bf70c160b89b51bb6f406621bfe86..90b32f3b0af3529d5823d896d7e101c6e0f70aef 100644 (file)
@@ -751,6 +751,9 @@ static void yenta_close(struct pci_dev *dev)
 {
        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);
@@ -764,7 +767,6 @@ static void yenta_close(struct pci_dev *dev)
                iounmap(sock->base);
        yenta_free_resources(sock);
 
-       pcmcia_unregister_socket(&sock->socket);
        pci_set_drvdata(dev, NULL);
 }