Re: siw trigger BUG: sleeping function called from invalid context at mm/slab.h:50

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----"Bart Van Assche" <bvanassche@xxxxxxx> wrote: -----

>To: "Bernard Metzler" <bmt@xxxxxxxxxxxxxx>,
>linux-rdma@xxxxxxxxxxxxxxx
>From: "Bart Van Assche" <bvanassche@xxxxxxx>
>Date: 08/24/2019 01:02AM
>Subject: [EXTERNAL] siw trigger BUG: sleeping function called from
>invalid context at mm/slab.h:50
>
>Hi Bernard,
>
>If I try to associate the ib_srpt driver with the siw driver the
>complaint shown below appears on the console. In iw_cm_listen() I
>found the following:
>
>         [ ... ]
>	spin_lock_irqsave(&cm_id_priv->lock, flags);
>	switch (cm_id_priv->state) {
>	case IW_CM_STATE_IDLE:
>		cm_id_priv->state = IW_CM_STATE_LISTEN;
>		spin_unlock_irqrestore(&cm_id_priv->lock, flags);
>		ret = iw_cm_map(cm_id, false);
>		if (!ret)
>			ret = cm_id->device->ops.iw_create_listen(cm_id,
>								  backlog);
>		if (ret)
>			cm_id_priv->state = IW_CM_STATE_IDLE;
>		spin_lock_irqsave(&cm_id_priv->lock, flags);
>		break;
>	default:
>		ret = -EINVAL;
>	}
>	spin_unlock_irqrestore(&cm_id_priv->lock, flags);
>         [ ... ]
>
>So it surprises me that siw_listen_address() calls a function that
>can sleep. Do you think this is a correct analysis of the call trace
>shown below?
>

Hi Bart,

Yes, this is a BUG. Thanks very much for spotting it!
Obviously, there is not similar thing for ipv6 like
'in_dev_for_each_ifa_rtnl()'. Let me think about a
good fix to that and come back asap.

Many thanks!
Bernard.





[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux