Messages in this thread Patch in this message | | | Date | Tue, 18 Feb 2003 09:15:29 +0100 | From | Dominik Brodowski <> | Subject | [PATCH] Re: stuff-up in pcmcia/cardbus stuff |
| |
On Tue, Feb 18, 2003 at 12:50:52PM +1100, Paul Mackerras wrote: > Recent 2.5 kernels will crash with a null pointer dereference on my > powerbook (PowerPC laptop) when I try to suspend. I tracked it down > to cardbus_suspend() in drivers/pcmcia/pci-socket.c calling > pcmcia_suspend_socket() with a NULL argument. It turns out that > socket->pcmcia_socket is never set in the current code.
Indeed. socket->pcmcia_socket (old) == socket->cls_d.s_info[0] (new) Could you please check whether this patch helps?
Dominik
diff -ruN linux-original/drivers/pcmcia/pci_socket.c linux/drivers/pcmcia/pci_socket.c --- linux-original/drivers/pcmcia/pci_socket.c 2003-02-18 09:08:00.000000000 +0100 +++ linux/drivers/pcmcia/pci_socket.c 2003-02-18 09:12:02.000000000 +0100 @@ -230,14 +230,16 @@ static int cardbus_suspend (struct pci_dev *dev, u32 state) { pci_socket_t *socket = pci_get_drvdata(dev); - pcmcia_suspend_socket (socket->pcmcia_socket); + if (socket && socket->cls_d.s_info[0]) + pcmcia_suspend_socket (socket->cls_d.s_info[0]); return 0; } static int cardbus_resume (struct pci_dev *dev) { pci_socket_t *socket = pci_get_drvdata(dev); - pcmcia_resume_socket (socket->pcmcia_socket); + if (socket && socket->cls_d.s_info[0]) + pcmcia_resume_socket (socket->cls_d.s_info[0]); return 0; } diff -ruN linux-original/drivers/pcmcia/pci_socket.h linux/drivers/pcmcia/pci_socket.h --- linux-original/drivers/pcmcia/pci_socket.h 2003-02-18 09:08:00.000000000 +0100 +++ linux/drivers/pcmcia/pci_socket.h 2003-02-18 09:10:29.000000000 +0100 @@ -20,7 +20,6 @@ socket_cap_t cap; spinlock_t event_lock; unsigned int events; - struct socket_info_t *pcmcia_socket; struct work_struct tq_task; struct timer_list poll_timer; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |