Re: [PATCH net-next 13/14] net/dibs: Move data path to dibs layer

Alexandra Winter
2025-09-09T07:47:34Z

On 05.09.25 16:54, Alexandra Winter wrote:
> diff --git a/net/smc/smc_ism.c b/net/smc/smc_ism.c
> index c17988531bd8..f4a3e7e56034 100644
> --- a/net/smc/smc_ism.c
> +++ b/net/smc/smc_ism.c
[...]
> smcd->priv = ism;
> #if IS_ENABLED(CONFIG_ISM)
> ism_set_priv(ism, &smc_ism_client, smcd);
> - smcd->client = &smc_ism_client;
> #endif
> }
>
> @@ -588,8 +584,6 @@ static void smcd_unregister_dev(struct dibs_dev *dibs)
> list_del_init(&smcd->list);
> mutex_unlock(&smcd_dev_list.mutex);
> destroy_workqueue(smcd->event_wq);
> - if (smc_ism_is_loopback(dibs))
> - smc_loopback_exit();
> kfree(smcd->conn);
> kfree(smcd);
> }
> @@ -630,10 +624,10 @@ static void smcd_handle_event(struct ism_dev *ism, struct ism_event *event)
> * Context:
> * - Function called in IRQ context from ISM device driver IRQ handler.
> */
> -static void smcd_handle_irq(struct ism_dev *ism, unsigned int dmbno,
> +static void smcd_handle_irq(struct dibs_dev *dibs, unsigned int dmbno,
> u16 dmbemask)
> {
> - struct smcd_dev *smcd = ism_get_priv(ism, &smc_ism_client);
> + struct smcd_dev *smcd = dibs_get_priv(dibs, &smc_dibs_client);
> struct smc_connection *conn = NULL;
> unsigned long flags;

Here is another one where the scope of IS_ENABLED(CONFIG_ISM) needs to be changed.
patchwork reports:
+ERROR: modpost: "smcd_handle_irq" [net/smc/smc.ko] undefined!
Per-file breakdown

-> Will be fixed in next version.
At least my compile-check script now also reports it :-S

Actually getting rid of these dependencies is a main motivation for this series for me.