lkml.org 
[lkml]   [2024]   [Apr]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH net-next v7 01/11] net/smc: decouple ism_client from SMC-D DMB registration
    Date
    The struct 'ism_client' is specialized for s390 platform firmware ISM.
    So replace it with 'void' to make SMCD DMB registration helper generic
    for both Emulated-ISM and existing ISM.

    Signed-off-by: Wen Gu <guwen@linux.alibaba.com>
    Reviewed-by: Wenjia Zhang <wenjia@linux.ibm.com>
    Reviewed-and-tested-by: Jan Karcher <jaka@linux.ibm.com>
    ---
    drivers/s390/net/ism_drv.c | 2 +-
    include/net/smc.h | 4 ++--
    net/smc/smc_ism.c | 7 ++-----
    3 files changed, 5 insertions(+), 8 deletions(-)

    diff --git a/drivers/s390/net/ism_drv.c b/drivers/s390/net/ism_drv.c
    index 43778b088ffa..e36e3ea165d3 100644
    --- a/drivers/s390/net/ism_drv.c
    +++ b/drivers/s390/net/ism_drv.c
    @@ -745,7 +745,7 @@ static int smcd_query_rgid(struct smcd_dev *smcd, struct smcd_gid *rgid,
    }

    static int smcd_register_dmb(struct smcd_dev *smcd, struct smcd_dmb *dmb,
    - struct ism_client *client)
    + void *client)
    {
    return ism_register_dmb(smcd->priv, (struct ism_dmb *)dmb, client);
    }
    diff --git a/include/net/smc.h b/include/net/smc.h
    index 10684d0a33df..542d12372c18 100644
    --- a/include/net/smc.h
    +++ b/include/net/smc.h
    @@ -47,7 +47,6 @@ struct smcd_dmb {
    #define ISM_ERROR 0xFFFF

    struct smcd_dev;
    -struct ism_client;

    struct smcd_gid {
    u64 gid;
    @@ -58,7 +57,7 @@ struct smcd_ops {
    int (*query_remote_gid)(struct smcd_dev *dev, struct smcd_gid *rgid,
    u32 vid_valid, u32 vid);
    int (*register_dmb)(struct smcd_dev *dev, struct smcd_dmb *dmb,
    - struct ism_client *client);
    + void *client);
    int (*unregister_dmb)(struct smcd_dev *dev, struct smcd_dmb *dmb);
    int (*add_vlan_id)(struct smcd_dev *dev, u64 vlan_id);
    int (*del_vlan_id)(struct smcd_dev *dev, u64 vlan_id);
    @@ -78,6 +77,7 @@ struct smcd_ops {
    struct smcd_dev {
    const struct smcd_ops *ops;
    void *priv;
    + void *client;
    struct list_head list;
    spinlock_t lock;
    struct smc_connection **conn;
    diff --git a/net/smc/smc_ism.c b/net/smc/smc_ism.c
    index ac88de2a06a0..051726586730 100644
    --- a/net/smc/smc_ism.c
    +++ b/net/smc/smc_ism.c
    @@ -222,7 +222,6 @@ int smc_ism_unregister_dmb(struct smcd_dev *smcd, struct smc_buf_desc *dmb_desc)
    int smc_ism_register_dmb(struct smc_link_group *lgr, int dmb_len,
    struct smc_buf_desc *dmb_desc)
    {
    -#if IS_ENABLED(CONFIG_ISM)
    struct smcd_dmb dmb;
    int rc;

    @@ -231,7 +230,7 @@ int smc_ism_register_dmb(struct smc_link_group *lgr, int dmb_len,
    dmb.sba_idx = dmb_desc->sba_idx;
    dmb.vlan_id = lgr->vlan_id;
    dmb.rgid = lgr->peer_gid.gid;
    - rc = lgr->smcd->ops->register_dmb(lgr->smcd, &dmb, &smc_ism_client);
    + rc = lgr->smcd->ops->register_dmb(lgr->smcd, &dmb, lgr->smcd->client);
    if (!rc) {
    dmb_desc->sba_idx = dmb.sba_idx;
    dmb_desc->token = dmb.dmb_tok;
    @@ -240,9 +239,6 @@ int smc_ism_register_dmb(struct smc_link_group *lgr, int dmb_len,
    dmb_desc->len = dmb.dmb_len;
    }
    return rc;
    -#else
    - return 0;
    -#endif
    }

    static int smc_nl_handle_smcd_dev(struct smcd_dev *smcd,
    @@ -446,6 +442,7 @@ static void smcd_register_dev(struct ism_dev *ism)
    if (!smcd)
    return;
    smcd->priv = ism;
    + smcd->client = &smc_ism_client;
    ism_set_priv(ism, &smc_ism_client, smcd);
    if (smc_pnetid_by_dev_port(&ism->pdev->dev, 0, smcd->pnetid))
    smc_pnetid_by_table_smcd(smcd);
    --
    2.32.0.3.g01195cf9f

    \
     
     \ /
      Last update: 2024-05-27 18:06    [W:4.077 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site