On Sun, 15 Apr 2007 13:46:16 -0700 [EMAIL PROTECTED] wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=8329
> 
>            Summary: mtplan.c: kmalloc while spinlock is held
>     Kernel Version: 2.6.20
>             Status: NEW
>           Severity: normal
>              Owner: [EMAIL PROTECTED]
>          Submitter: [EMAIL PROTECTED]
> 
> 
> Problem Description:
> 
> under some conditions mpt_lan_type_trans() can do a kmalloc(GFP_KERNEL) while
> the spinlock bad_naa_lock is held
> 
> drivers/message/fusion/mptlan.c:
> 
> ...
>                 write_lock_irq(&bad_naa_lock);
>                 for (prevnh = nh = mpt_bad_naa; nh != NULL;
>                      prevnh=nh, nh=nh->next) {
>                         if ((nh->ieee[0] == fch->saddr[0]) &&
>                             (nh->ieee[1] == fch->saddr[1]) &&
>                             (nh->ieee[2] == fch->saddr[2]) &&
>                             (nh->ieee[3] == fch->saddr[3]) &&
>                             (nh->ieee[4] == fch->saddr[4]) &&
>                             (nh->ieee[5] == fch->saddr[5])) {
>                                 found = 1;
>                                 dlprintk ((KERN_INFO "mptlan/type_trans: ARP 
> Re"
>                                          "q/Rep w/ bad NAA from system 
> already"
>                                          " in DB.\n"));
>                                 break;
>                         }
>                 }
> 
>                 if ((!found) && (nh == NULL)) {
> 
>                         nh = kmalloc(sizeof(struct NAA_Hosed), GFP_KERNEL);
> ...
> 
> AFAIK this should not be done as kmalloc could sleep while holding the 
> spinlock
> 

yup.  And the fact that nobody has ever reported a might_sleep() warning
coming out of there makes me think that it is dead code.

-
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