Re: 2.6.12-rc5: sleeping function called from invalid context (qla2xxx/scsi_transport_fc?)

From: Greg KH
Date: Wed Jun 01 2005 - 16:42:08 EST


On Wed, Jun 01, 2005 at 11:48:20AM -0700, Andrew Vasquez wrote:
> On Mon, 30 May 2005, Andrew Morton wrote:
>
> > Ake.Sandgren@xxxxxxxxxxxx (Ake) wrote:
> > >
> > > Hi!
> > > I got the following when i pulled the FC cable from one of my qla2312
> > > cards.
> > > This is a 2.6.12-rc5 kernel (with udm1 patches for 2.6.12-rc2)
> > >
> > >
> > > May 30 14:12:45 ican-i kernel: [ 1109.864830] qla2300 0000:03:09.0: LOOP DOWN detected.
> > > May 30 14:12:45 ican-i kernel: [ 1109.875948] Debug: sleeping function called from invalid context at include/linux/rwsem.h:43
> > > May 30 14:12:45 ican-i kernel: [ 1109.894492] in_atomic():1, irqs_disabled():1
> > > May 30 14:12:45 ican-i kernel: [ 1109.903864] [dump_stack+30/48] dump_stack+0x1e/0x30
> > > May 30 14:12:45 ican-i kernel: [ 1109.913648] [__might_sleep+167/176] __might_sleep+0xa7/0xb0
> > > May 30 14:12:45 ican-i kernel: [ 1109.924003] [device_for_each_child+35/144] device_for_each_child+0x23/0x90
> > > May 30 14:12:45 ican-i kernel: [ 1109.935865] [pg0+944279047/1069622272] scsi_target_block+0x57/0x60 [scsi_mod]
> > > May 30 14:12:45 ican-i kernel: [ 1109.949142] [pg0+944996009/1069622272] fc_remote_port_block+0x39/0x60 [scsi_transport_fc]
> ...
> >
> > This was reported (and anaylsed) a month ago:
> >
> > http://lkml.org/lkml/2005/4/29/82
> >
> > I don't know if anything has been done about it yet though?
>
> Greg,
>
> Is there some other interrupt-safe alternative:
>
> http://lkml.org/lkml/2005/4/29/129
>
> to using device_for_each_child()? The scsi_target_[block/unblock]()
> functions need to iterate over all the child-scsi_device's belonging
> to an fc_rport.

Did you look at the code in the -mm tree? That's what's going into
2.6.13, so you might have some chance there.

Otherwise you need to rewrite your logic to not do that :)

Good luck,

greg k-h
-
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/