On Fri, 2008-01-11 at 14:46 +0530, Prakash, Sathya wrote:
> This patch fixes a panic at mptctl_probe -> mutex_init if the mptsas and
> mptcl module are loaded in parallel, this is because IOC is NULL, the fix is
> in mpt_device_register to call probe only with non-zero IOC pointer.
>
> signed-off-by: Sathya Prakash <[EMAIL PROTECTED]>
> ---
>
> diff --git a/drivers/message/fusion/mptbase.c
> b/drivers/message/fusion/mptbase.c
> index d733438..042bc86 100644
> --- a/drivers/message/fusion/mptbase.c
> +++ b/drivers/message/fusion/mptbase.c
> @@ -729,6 +729,8 @@ mpt_device_driver_register(struct mpt_pci_driver *
> dd_cbfunc, u8 cb_idx)
>
> /* call per pci device probe entry point */
> list_for_each_entry(ioc, &ioc_list, list) {
> + if (!pci_get_drvdata(ioc->pcidev))
> + continue;
This looks rather dubious ... it doesn't fix the race, it just manifests
differently (and non fatally) by apparently not attaching the mptctl.
Isn't a better fix to set the drvdata earlier in the process, say in
mpt_attach *before* you add the ioc to the ioc_list? That way the race
can never occur in the first place.
James
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html