]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
dibs: Move data path to dibs layer
authorAlexandra Winter <wintera@linux.ibm.com>
Thu, 18 Sep 2025 11:04:59 +0000 (13:04 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 23 Sep 2025 09:13:22 +0000 (11:13 +0200)
commitcc21191b584c6f7836b0f10774f8278b7cbfba10
treed32f1f225389ec6fb6368d637db3a32e79a1e736
parent719c3b67bb7ea95bb8158b03c75641c8fc8f94a0
dibs: Move data path to dibs layer

Use struct dibs_dmb instead of struct smc_dmb and move the corresponding
client tables to dibs_dev. Leave driver specific implementation details
like sba in the device drivers.

Register and unregister dmbs via dibs_dev_ops. A dmb is dedicated to a
single client, but a dibs device can have dmbs for more than one client.

Trigger dibs clients via dibs_client_ops->handle_irq(), when data is
received into a dmb. For dibs_loopback replace scheduling an smcd receive
tasklet with calling dibs_client_ops->handle_irq().

For loopback devices attach_dmb(), detach_dmb() and move_data() need to
access the dmb tables, so move those to dibs_dev_ops in this patch as well.

Remove remaining definitions of smc_loopback as they are no longer
required, now that everything is in dibs_loopback.

Note that struct ism_client and struct ism_dev are still required in smc
until a follow-on patch moves event handling to dibs. (Loopback does not
use events).

Signed-off-by: Alexandra Winter <wintera@linux.ibm.com>
Link: https://patch.msgid.link/20250918110500.1731261-14-wintera@linux.ibm.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
12 files changed:
drivers/dibs/dibs_loopback.c
drivers/dibs/dibs_loopback.h
drivers/dibs/dibs_main.c
drivers/s390/net/ism_drv.c
include/linux/dibs.h
include/linux/ism.h
include/net/smc.h
net/smc/Makefile
net/smc/smc_ism.c
net/smc/smc_ism.h
net/smc/smc_loopback.c [deleted file]
net/smc/smc_loopback.h [deleted file]