提交 171cf94c 编写于 作者: R Russell King

PCMCIA: fix sa1111 oops on remove

The sa1111 socket driver oopses when removed:

Unable to handle kernel NULL pointer dereference at virtual address 000003b0
pgd = c1b40000
[000003b0] *pgd=00000000
Internal error: Oops: 41b43005 [#1]
Modules linked in:
CPU: 0    Not tainted  (3.3.0-rc1+ #744)
PC is at pcmcia_remove+0x3c/0x60
LR is at pcmcia_remove+0x34/0x60

This is because we try to dereference a NULL 's' to obtain the next
pointer.  Fix this.
Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
上级 b3945bcb
...@@ -205,7 +205,8 @@ static int __devexit pcmcia_remove(struct sa1111_dev *dev) ...@@ -205,7 +205,8 @@ static int __devexit pcmcia_remove(struct sa1111_dev *dev)
dev_set_drvdata(&dev->dev, NULL); dev_set_drvdata(&dev->dev, NULL);
for (; next = s->next, s; s = next) { for (; s; s = next) {
next = s->next;
soc_pcmcia_remove_one(&s->soc); soc_pcmcia_remove_one(&s->soc);
kfree(s); kfree(s);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册