Re: [KJ] potential crash fix : drivers/pcmcia/au1000_generic

From: Om Narasimhan
Date: Mon Sep 18 2006 - 18:54:34 EST


On 9/18/06, Matthew Wilcox <matthew@xxxxxx> wrote:
On Sun, Sep 17, 2006 at 05:54:17PM -0700, Om Narasimhan wrote:
> Tested by compiling.
>
> I have not subscribed to pcmcia list. Please cc me any comments.

You also haven't described what the 'potential crach' is that you're
fixing.
Okay, I should have documented that.
Here is the explanation.
The previous code did something like,

if (error) goto out_err;
....
do {
struct au1000_pcmcia_socket *skt = PCMCIA_SOCKET(i);
del_timer_sync(&skt->poll_timer);
pcmcia_unregister_socket(&skt->socket);
out_err:
flush_scheduled_work();
ops->hw_shutdown(skt);
i--;
} while (i > 0)
.....

1. On the error path, skt would not contain a valid value for the
first iteration (skt is masked by uninitialized automatic skt)
2. does not do hw_shutdown() for 0th element of PCMCIA_SOCKET

Does it sound good?

Regards,
Om.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/