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; }