Hi networking developers, This is v2 of the patch previously titled "s390/ism: Detangle ISM client IRQ and event forwarding". As suggested by Paolo Abeni I split the patch up. While doing so I noticed another problem that was fixed by this patch concerning the way the workqueues access the client structs. This means the second patch turning the workqueues into simple direct calls also fixes a problem. Finally I split off a third patch just for fixing ism_unregister_client()s error path. The code after these 3 patches is identical to the result of the v1 patch except that I also turned the dev_err() for still registered DMBs into a WARN(). Thanks, Niklas Changes since v1: - Split into three patches (Paolo Abeni) - Turned the dev_err() in ism_unregsiter_client() on still registered DMBs into a WARN() as it should only happen due to client bugs. Niklas Schnelle (3): s390/ism: Fix locking for forwarding of IRQs and events to clients s390/ism: Fix and simplify add()/remove() callback handling s390/ism: Do not unregister clients with registered DMBs drivers/s390/net/ism_drv.c | 153 ++++++++++++++++++------------------- include/linux/ism.h | 7 +- 2 files changed, 74 insertions(+), 86 deletions(-) base-commit: d528014517f2b0531862c02865b9d4c908019dc4 -- 2.39.2