Thread (29 messages) 29 messages, 5 authors, 2023-09-24

Re: [PATCH net-next 06/18] net/smc: extend GID to 128bits for virtual ISM device

flat view

From: Wen Gu <guwen@linux.alibaba.com>
Date: 2023-09-20 08:11:49
Also in: linux-s390, lkml, oe-kbuild-all
Subsystem: networking drivers, networking [general], s390 architecture, s390 network drivers, shared memory communications (smc) sockets, the rest · Maintainers: Andrew Lunn, "David S. Miller", Eric Dumazet, Jakub Kicinski, Paolo Abeni, Heiko Carstens, Vasily Gorbik, Alexander Gordeev, Alexandra Winter, Aswin Karuvally, D. Wythe, Dust Li, Sidraya Jayagond, Mahanta Jambigi, Linus Torvalds


On 2023/9/20 15:02, kernel test robot wrote:
Hi Wen,

kernel test robot noticed the following build errors:

[auto build test ERROR on net-next/main]

url:    https://github.com/intel-lab-lkp/linux/commits/Wen-Gu/net-smc-decouple-ism_dev-from-SMC-D-device-dump/20230920-010019
base:   net-next/main
patch link:    https://lore.kernel.org/r/1695134522-126655-7-git-send-email-guwen%40linux.alibaba.com
patch subject: [PATCH net-next 06/18] net/smc: extend GID to 128bits for virtual ISM device
config: s390-defconfig (https://download.01.org/0day-ci/archive/20230920/202309201408.95QRxHEl-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230920/202309201408.95QRxHEl-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot [off-list ref]
| Closes: https://lore.kernel.org/oe-kbuild-all/202309201408.95QRxHEl-lkp@intel.com/ (local)

All errors (new ones prefixed by >>):

    net/smc/smc_ism.c: In function 'smc_ism_signal_shutdown':
quoted
quoted
net/smc/smc_ism.c:539:57: error: incompatible type for argument 2 of 'lgr-><U72f8>.<U7260>.smcd->ops->signal_event'
      539 |         rc = lgr->smcd->ops->signal_event(lgr->smcd, lgr->peer_gid,
          |                                                      ~~~^~~~~~~~~~
          |                                                         |
          |                                                         struct smcd_gid
    net/smc/smc_ism.c:539:57: note: expected 'u64' {aka 'long long unsigned int'} but argument is of type 'struct smcd_gid'


vim +539 net/smc/smc_ism.c

820f21009f1bc7a Stefan Raspl 2023-01-23  526
820f21009f1bc7a Stefan Raspl 2023-01-23  527  int smc_ism_signal_shutdown(struct smc_link_group *lgr)
820f21009f1bc7a Stefan Raspl 2023-01-23  528  {
820f21009f1bc7a Stefan Raspl 2023-01-23  529  	int rc = 0;
820f21009f1bc7a Stefan Raspl 2023-01-23  530  #if IS_ENABLED(CONFIG_ISM)
820f21009f1bc7a Stefan Raspl 2023-01-23  531  	union smcd_sw_event_info ev_info;
820f21009f1bc7a Stefan Raspl 2023-01-23  532
820f21009f1bc7a Stefan Raspl 2023-01-23  533  	if (lgr->peer_shutdown)
820f21009f1bc7a Stefan Raspl 2023-01-23  534  		return 0;
820f21009f1bc7a Stefan Raspl 2023-01-23  535
820f21009f1bc7a Stefan Raspl 2023-01-23  536  	memcpy(ev_info.uid, lgr->id, SMC_LGR_ID_SIZE);
820f21009f1bc7a Stefan Raspl 2023-01-23  537  	ev_info.vlan_id = lgr->vlan_id;
820f21009f1bc7a Stefan Raspl 2023-01-23  538  	ev_info.code = ISM_EVENT_REQUEST;
820f21009f1bc7a Stefan Raspl 2023-01-23 @539  	rc = lgr->smcd->ops->signal_event(lgr->smcd, lgr->peer_gid,
820f21009f1bc7a Stefan Raspl 2023-01-23  540  					  ISM_EVENT_REQUEST_IR,
820f21009f1bc7a Stefan Raspl 2023-01-23  541  					  ISM_EVENT_CODE_SHUTDOWN,
820f21009f1bc7a Stefan Raspl 2023-01-23  542  					  ev_info.info);
820f21009f1bc7a Stefan Raspl 2023-01-23  543  #endif
820f21009f1bc7a Stefan Raspl 2023-01-23  544  	return rc;
820f21009f1bc7a Stefan Raspl 2023-01-23  545  }
201091ebb2a161a Ursula Braun 2020-09-26  546
I do not have a local compilation environment for s390 (IBM Z) architecture. But I think
it can be fixed by the following patch.

After this v1 exceeds 24 hours, I will send a v2 with this fix. Thanks.



Fix:

diff --git a/drivers/s390/net/ism_drv.c b/drivers/s390/net/ism_drv.c
index 1b714f6..7801a6a 100644
--- a/drivers/s390/net/ism_drv.c
+++ b/drivers/s390/net/ism_drv.c
@@ -811,10 +811,10 @@ static int smcd_reset_vlan_required(struct smcd_dev *smcd)
        return ism_cmd_simple(smcd->priv, ISM_RESET_VLAN);
 }

-static int smcd_signal_ieq(struct smcd_dev *smcd, u64 rgid, u32 trigger_irq,
-                          u32 event_code, u64 info)
+static int smcd_signal_ieq(struct smcd_dev *smcd, struct smcd_gid *rgid,
+                          u32 trigger_irq, u32 event_code, u64 info)
 {
-       return ism_signal_ieq(smcd->priv, rgid, trigger_irq, event_code, info);
+       return ism_signal_ieq(smcd->priv, rgid->gid, trigger_irq, event_code, info);
 }

 static int smcd_move(struct smcd_dev *smcd, u64 dmb_tok, unsigned int idx,
diff --git a/include/net/smc.h b/include/net/smc.h
index 04dbaa4..39a21ed 100644
--- a/include/net/smc.h
+++ b/include/net/smc.h
@@ -78,8 +78,8 @@ struct smcd_ops {
        int (*del_vlan_id)(struct smcd_dev *dev, u64 vlan_id);
        int (*set_vlan_required)(struct smcd_dev *dev);
        int (*reset_vlan_required)(struct smcd_dev *dev);
-       int (*signal_event)(struct smcd_dev *dev, u64 rgid, u32 trigger_irq,
-                           u32 event_code, u64 info);
+       int (*signal_event)(struct smcd_dev *dev, struct smcd_gid *rgid,
+                           u32 trigger_irq, u32 event_code, u64 info);
        int (*move_data)(struct smcd_dev *dev, u64 dmb_tok, unsigned int idx,
                         bool sf, unsigned int offset, void *data,
                         unsigned int size);
diff --git a/net/smc/smc_ism.c b/net/smc/smc_ism.c
index 0c20745..3d9588e 100644
--- a/net/smc/smc_ism.c
+++ b/net/smc/smc_ism.c
@@ -404,10 +404,11 @@ static void smcd_handle_sw_event(struct smc_ism_event_work *wrk)
                smc_smcd_terminate(wrk->smcd, &peer_gid, ev_info.vlan_id);
                break;
        case ISM_EVENT_CODE_TESTLINK:   /* Activity timer */
+               peer_gid.gid = wrk->event.tok;
                if (ev_info.code == ISM_EVENT_REQUEST) {
                        ev_info.code = ISM_EVENT_RESPONSE;
                        wrk->smcd->ops->signal_event(wrk->smcd,
-                                                    wrk->event.tok,
+                                                    &peer_gid,
                                                     ISM_EVENT_REQUEST_IR,
                                                     ISM_EVENT_CODE_TESTLINK,
                                                     ev_info.info);
@@ -575,7 +576,7 @@ int smc_ism_signal_shutdown(struct smc_link_group *lgr)
        memcpy(ev_info.uid, lgr->id, SMC_LGR_ID_SIZE);
        ev_info.vlan_id = lgr->vlan_id;
        ev_info.code = ISM_EVENT_REQUEST;
-       rc = lgr->smcd->ops->signal_event(lgr->smcd, lgr->peer_gid,
+       rc = lgr->smcd->ops->signal_event(lgr->smcd, &lgr->peer_gid,
                                          ISM_EVENT_REQUEST_IR,
                                          ISM_EVENT_CODE_SHUTDOWN,
                                          ev_info.info);
diff --git a/net/smc/smc_loopback.c b/net/smc/smc_loopback.c
index 611998b..8b249a5 100644
--- a/net/smc/smc_loopback.c
+++ b/net/smc/smc_loopback.c
@@ -253,8 +253,8 @@ static int smc_lo_reset_vlan_required(struct smcd_dev *smcd)
        return -EOPNOTSUPP;
 }

-static int smc_lo_signal_event(struct smcd_dev *dev, u64 rgid, u32 trigger_irq,
-                              u32 event_code, u64 info)
+static int smc_lo_signal_event(struct smcd_dev *dev, struct smcd_gid *rgid,
+                              u32 trigger_irq, u32 event_code, u64 info)
 {
        return 0;
 }
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help