public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
* siw trigger BUG: sleeping function called from invalid context at mm/slab.h:50
@ 2019-08-23 23:02 Bart Van Assche
  2019-08-23 23:41 ` Bart Van Assche
  2019-08-26  8:00 ` Bernard Metzler
  0 siblings, 2 replies; 3+ messages in thread
From: Bart Van Assche @ 2019-08-23 23:02 UTC (permalink / raw)
  To: Bernard Metzler, linux-rdma

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?

Thanks,

Bart.

Target_Core_ConfigFS: REGISTER -> Allocated Fabric: srpt
iwpm_register_pid: Unable to send a nlmsg (client = 2)
BUG: sleeping function called from invalid context at mm/slab.h:501
in_atomic(): 1, irqs_disabled(): 0, pid: 1097, name: restart-lio-srp
4 locks held by restart-lio-srp/1097:
  #0: 0000000083aba319 (sb_writers#11){.+.+}, at: vfs_write+0x24a/0x2c0
  #1: 00000000dc6d2df5 (&buffer->mutex){+.+.}, at: configfs_write_file+0x4e/0x1d0 [configfs]
  #2: 000000004db62204 (lock#7){+.+.}, at: rdma_listen+0x34c/0x450 [rdma_cm]
  #3: 00000000ca45d89f (&ndev->lock){++--}, at: siw_create_listen+0x1d1/0x8b0 [siw]
Preemption disabled at:
[<ffffffffa0db6071>] siw_create_listen+0x1d1/0x8b0 [siw]
CPU: 0 PID: 1097 Comm: restart-lio-srp Not tainted 5.3.0-rc5-dbg+ #2
Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
Call Trace:
  dump_stack+0x8a/0xd6
  ___might_sleep.cold+0x128/0x139
  __might_sleep+0x76/0xe0
  kmem_cache_alloc+0x2b4/0x3a0
  sock_alloc_inode+0x20/0xf0
  alloc_inode+0x34/0xe0
  new_inode_pseudo+0x17/0x90
  sock_alloc+0x2f/0x110
  __sock_create+0x61/0x360
  sock_create+0x5f/0x70
  siw_listen_address+0xbe/0x630 [siw]
  siw_create_listen+0x2f5/0x8b0 [siw]
  iw_cm_listen+0xd9/0x110 [iw_cm]
  rdma_listen+0x32e/0x450 [rdma_cm]
  cma_listen_on_dev+0x276/0x290 [rdma_cm]
  rdma_listen+0x3c7/0x450 [rdma_cm]
  srpt_create_rdma_id+0xc8/0x120 [ib_srpt]
  srpt_rdma_cm_port_store+0x1a0/0x1f0 [ib_srpt]
  configfs_write_file+0x15c/0x1d0 [configfs]
  __vfs_write+0x4c/0x90
  vfs_write+0x145/0x2c0
  ksys_write+0xd7/0x180
  __x64_sys_write+0x47/0x50
  do_syscall_64+0x75/0x280
  entry_SYSCALL_64_after_hwframe+0x49/0xbe
[...]
siw: device registration error -23

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-08-26  8:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-23 23:02 siw trigger BUG: sleeping function called from invalid context at mm/slab.h:50 Bart Van Assche
2019-08-23 23:41 ` Bart Van Assche
2019-08-26  8:00 ` Bernard Metzler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox