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

Reply via email to