Message ID | 20171129125943.31113.29038.stgit@phlsvslse11.ph.intel.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Hi Mike, > -----Original Message----- > From: linux-rdma-owner@vger.kernel.org [mailto:linux-rdma- > owner@vger.kernel.org] On Behalf Of Mike Marciniszyn > Sent: Wednesday, November 29, 2017 7:00 AM > To: stable@vger.kernel.org > Cc: linux-rdma@vger.kernel.org; stable-commits@vger.kernel.org > Subject: [PATCH 1/2] IB/core: Do not warn on lid conversions for OPA > > From: Don Hiatt <don.hiatt@intel.com> > > Upstream commit 6588e412fe872ed81f3fb8d9b4561a66ecb763d0. > > On OPA devices the user_mad recv_handler can receive 32Bit LIDs (e.g. > OPA_PERMISSIVE_LID) and it is okay to lose the upper 16 bits of the LID as this > information is obtained elsewhere. Do not issue a warning when calling > ib_lid_be16() in this case by masking out the upper 16Bits. > > [75667.310846] ------------[ cut here ]------------ [75667.316447] WARNING: > CPU: 0 PID: 1718 at ./include/rdma/ib_verbs.h:3799 recv_handler+0x15a/0x170 > [ib_umad] [75667.327640] Modules linked in: ib_ipoib hfi1(E) rdmavt(E) > rdma_ucm(E) ib_ucm(E) rdma_cm(E) ib_cm(E) iw_cm(E) ib_umad(E) ib_uverbs(E) > ib_core(E) libiscsi scsi_transport_iscsi dm_mirror dm_region_hash dm_log > dm_mod dax x86_pkg_temp_thermal intel_powerclamp coretemp kvm > irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc aesni_intel > mei_me ipmi_si iTCO_wdt iTCO_vendor_support crypto_simd ipmi_devintf > pcspkr mei sg i2c_i801 glue_helper lpc_ich shpchp ioatdma mfd_core wmi > ipmi_msghandler cryptd acpi_power_meter acpi_pad nfsd auth_rpcgss nfs_acl > lockd grace sunrpc ip_tables xfs libcrc32c sd_mod mgag200 drm_kms_helper > syscopyarea sysfillrect sysimgblt fb_sys_fops ttm drm igb ptp ahci libahci > pps_core crc32c_intel libata dca i2c_algo_bit i2c_core [last unloaded: ib_core] > [75667.407704] CPU: 0 PID: 1718 Comm: kworker/0:1H Tainted: G W I E > 4.13.0-rc7+ #1 > [75667.417310] Hardware name: Intel Corporation S2600WT2/S2600WT2, BIOS > SE5C610.86B.01.01.0008.021120151325 02/11/2015 [75667.429555] > Workqueue: ib-comp-wq ib_cq_poll_work [ib_core] [75667.436360] task: > ffff88084a718000 task.stack: ffffc9000a424000 [75667.443549] RIP: > 0010:recv_handler+0x15a/0x170 [ib_umad] [75667.450090] RSP: > 0018:ffffc9000a427ce8 EFLAGS: 00010286 [75667.456508] RAX: > 00000000ffffffff RBX: ffff88085159ce80 RCX: 0000000000000000 > [75667.465094] RDX: ffff88085a47b068 RSI: 0000000000000000 RDI: > ffff88085159cf00 [75667.473668] RBP: ffffc9000a427d38 R08: > 000000000001efc0 R09: ffff88085159ce80 [75667.482228] R10: > ffff88085f007480 R11: ffff88084acf20e8 R12: ffff88085a47b020 > [75667.490824] R13: ffff881056842e10 R14: ffff881056840200 R15: > ffff88104c8d0800 [75667.499390] FS: 0000000000000000(0000) > GS:ffff88085f400000(0000) knlGS:0000000000000000 [75667.509028] CS: 0010 > DS: 0000 ES: 0000 CR0: 0000000080050033 [75667.516080] CR2: > 00007f9e4b3d9000 CR3: 0000000001c09000 CR4: 00000000001406f0 > [75667.524664] Call Trace: > [75667.528044] ? find_mad_agent+0x7c/0x1b0 [ib_core] [75667.534031] ? > ib_mark_mad_done+0x73/0xa0 [ib_core] [75667.540142] > ib_mad_recv_done+0x423/0x9b0 [ib_core] [75667.546215] > __ib_process_cq+0x5d/0xb0 [ib_core] [75667.552007] > ib_cq_poll_work+0x20/0x60 [ib_core] [75667.557766] > process_one_work+0x149/0x360 [75667.562844] worker_thread+0x4d/0x3c0 > [75667.567529] kthread+0x109/0x140 [75667.571713] ? > rescuer_thread+0x380/0x380 [75667.576775] ? kthread_park+0x60/0x60 > [75667.581447] ret_from_fork+0x25/0x30 [75667.586014] Code: 43 4a 0f b6 > 45 c6 88 43 4b 48 8b 45 b0 48 89 43 4c 48 8b 45 b8 48 89 43 54 8b 45 c0 0f c8 89 > 43 5c e9 79 ff ff ff e8 16 4e fa e0 <0f> ff e9 42 ff ff ff 66 66 66 66 66 66 2e 0f 1f > 84 00 00 00 00 [75667.608323] ---[ end trace cf26df27c9597264 ]--- > > Cc: <stable@vger.kernel.org> # 4.14.x > Fixes: 62ede7779904 ("Add OPA extended LID support") > Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com> > Signed-off-by: Don Hiatt <don.hiatt@intel.com> > Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> > Reviewed-by: Leon Romanovsky <leonro@mellanox.com> > Signed-off-by: Doug Ledford <dledford@redhat.com> > --- > drivers/infiniband/core/user_mad.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/drivers/infiniband/core/user_mad.c > b/drivers/infiniband/core/user_mad.c > index c1696e6..603acaf 100644 > --- a/drivers/infiniband/core/user_mad.c > +++ b/drivers/infiniband/core/user_mad.c > @@ -229,7 +229,16 @@ static void recv_handler(struct ib_mad_agent *agent, > packet->mad.hdr.status = 0; > packet->mad.hdr.length = hdr_size(file) + mad_recv_wc->mad_len; > packet->mad.hdr.qpn = cpu_to_be32(mad_recv_wc->wc->src_qp); > - packet->mad.hdr.lid = ib_lid_be16(mad_recv_wc->wc->slid); > + /* > + * On OPA devices it is okay to lose the upper 16 bits of LID as this > + * information is obtained elsewhere. Mask off the upper 16 bits. > + */ > + if (agent->device->port_immutable[agent->port_num].core_cap_flags > & > + RDMA_CORE_PORT_INTEL_OPA) Can you please use existing API rdma_cap_opa_mad() here? > + packet->mad.hdr.lid = ib_lid_be16(0xFFFF & > + mad_recv_wc->wc->slid); > + else > + packet->mad.hdr.lid = ib_lid_be16(mad_recv_wc->wc->slid); > packet->mad.hdr.sl = mad_recv_wc->wc->sl; > packet->mad.hdr.path_bits = mad_recv_wc->wc->dlid_path_bits; > packet->mad.hdr.pkey_index = mad_recv_wc->wc->pkey_index; > > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body > of a message to majordomo@vger.kernel.org More majordomo info at > http://vger.kernel.org/majordomo-info.html
On Wed, Nov 29, 2017 at 06:17:28PM +0000, Parav Pandit wrote: > Hi Mike, > > > -----Original Message----- > > From: linux-rdma-owner@vger.kernel.org [mailto:linux-rdma- > > owner@vger.kernel.org] On Behalf Of Mike Marciniszyn > > Sent: Wednesday, November 29, 2017 7:00 AM > > To: stable@vger.kernel.org > > Cc: linux-rdma@vger.kernel.org; stable-commits@vger.kernel.org > > Subject: [PATCH 1/2] IB/core: Do not warn on lid conversions for OPA > > > > From: Don Hiatt <don.hiatt@intel.com> > > > > Upstream commit 6588e412fe872ed81f3fb8d9b4561a66ecb763d0. > > > > On OPA devices the user_mad recv_handler can receive 32Bit LIDs (e.g. > > OPA_PERMISSIVE_LID) and it is okay to lose the upper 16 bits of the LID as this > > information is obtained elsewhere. Do not issue a warning when calling > > ib_lid_be16() in this case by masking out the upper 16Bits. > > > > [75667.310846] ------------[ cut here ]------------ [75667.316447] WARNING: > > CPU: 0 PID: 1718 at ./include/rdma/ib_verbs.h:3799 recv_handler+0x15a/0x170 > > [ib_umad] [75667.327640] Modules linked in: ib_ipoib hfi1(E) rdmavt(E) > > rdma_ucm(E) ib_ucm(E) rdma_cm(E) ib_cm(E) iw_cm(E) ib_umad(E) ib_uverbs(E) > > ib_core(E) libiscsi scsi_transport_iscsi dm_mirror dm_region_hash dm_log > > dm_mod dax x86_pkg_temp_thermal intel_powerclamp coretemp kvm > > irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc aesni_intel > > mei_me ipmi_si iTCO_wdt iTCO_vendor_support crypto_simd ipmi_devintf > > pcspkr mei sg i2c_i801 glue_helper lpc_ich shpchp ioatdma mfd_core wmi > > ipmi_msghandler cryptd acpi_power_meter acpi_pad nfsd auth_rpcgss nfs_acl > > lockd grace sunrpc ip_tables xfs libcrc32c sd_mod mgag200 drm_kms_helper > > syscopyarea sysfillrect sysimgblt fb_sys_fops ttm drm igb ptp ahci libahci > > pps_core crc32c_intel libata dca i2c_algo_bit i2c_core [last unloaded: ib_core] > > [75667.407704] CPU: 0 PID: 1718 Comm: kworker/0:1H Tainted: G W I E > > 4.13.0-rc7+ #1 > > [75667.417310] Hardware name: Intel Corporation S2600WT2/S2600WT2, BIOS > > SE5C610.86B.01.01.0008.021120151325 02/11/2015 [75667.429555] > > Workqueue: ib-comp-wq ib_cq_poll_work [ib_core] [75667.436360] task: > > ffff88084a718000 task.stack: ffffc9000a424000 [75667.443549] RIP: > > 0010:recv_handler+0x15a/0x170 [ib_umad] [75667.450090] RSP: > > 0018:ffffc9000a427ce8 EFLAGS: 00010286 [75667.456508] RAX: > > 00000000ffffffff RBX: ffff88085159ce80 RCX: 0000000000000000 > > [75667.465094] RDX: ffff88085a47b068 RSI: 0000000000000000 RDI: > > ffff88085159cf00 [75667.473668] RBP: ffffc9000a427d38 R08: > > 000000000001efc0 R09: ffff88085159ce80 [75667.482228] R10: > > ffff88085f007480 R11: ffff88084acf20e8 R12: ffff88085a47b020 > > [75667.490824] R13: ffff881056842e10 R14: ffff881056840200 R15: > > ffff88104c8d0800 [75667.499390] FS: 0000000000000000(0000) > > GS:ffff88085f400000(0000) knlGS:0000000000000000 [75667.509028] CS: 0010 > > DS: 0000 ES: 0000 CR0: 0000000080050033 [75667.516080] CR2: > > 00007f9e4b3d9000 CR3: 0000000001c09000 CR4: 00000000001406f0 > > [75667.524664] Call Trace: > > [75667.528044] ? find_mad_agent+0x7c/0x1b0 [ib_core] [75667.534031] ? > > ib_mark_mad_done+0x73/0xa0 [ib_core] [75667.540142] > > ib_mad_recv_done+0x423/0x9b0 [ib_core] [75667.546215] > > __ib_process_cq+0x5d/0xb0 [ib_core] [75667.552007] > > ib_cq_poll_work+0x20/0x60 [ib_core] [75667.557766] > > process_one_work+0x149/0x360 [75667.562844] worker_thread+0x4d/0x3c0 > > [75667.567529] kthread+0x109/0x140 [75667.571713] ? > > rescuer_thread+0x380/0x380 [75667.576775] ? kthread_park+0x60/0x60 > > [75667.581447] ret_from_fork+0x25/0x30 [75667.586014] Code: 43 4a 0f b6 > > 45 c6 88 43 4b 48 8b 45 b0 48 89 43 4c 48 8b 45 b8 48 89 43 54 8b 45 c0 0f c8 89 > > 43 5c e9 79 ff ff ff e8 16 4e fa e0 <0f> ff e9 42 ff ff ff 66 66 66 66 66 66 2e 0f 1f > > 84 00 00 00 00 [75667.608323] ---[ end trace cf26df27c9597264 ]--- > > > > Cc: <stable@vger.kernel.org> # 4.14.x > > Fixes: 62ede7779904 ("Add OPA extended LID support") > > Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com> > > Signed-off-by: Don Hiatt <don.hiatt@intel.com> > > Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> > > Reviewed-by: Leon Romanovsky <leonro@mellanox.com> > > Signed-off-by: Doug Ledford <dledford@redhat.com> > > --- > > drivers/infiniband/core/user_mad.c | 11 ++++++++++- > > 1 file changed, 10 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/infiniband/core/user_mad.c > > b/drivers/infiniband/core/user_mad.c > > index c1696e6..603acaf 100644 > > --- a/drivers/infiniband/core/user_mad.c > > +++ b/drivers/infiniband/core/user_mad.c > > @@ -229,7 +229,16 @@ static void recv_handler(struct ib_mad_agent *agent, > > packet->mad.hdr.status = 0; > > packet->mad.hdr.length = hdr_size(file) + mad_recv_wc->mad_len; > > packet->mad.hdr.qpn = cpu_to_be32(mad_recv_wc->wc->src_qp); > > - packet->mad.hdr.lid = ib_lid_be16(mad_recv_wc->wc->slid); > > + /* > > + * On OPA devices it is okay to lose the upper 16 bits of LID as this > > + * information is obtained elsewhere. Mask off the upper 16 bits. > > + */ > > + if (agent->device->port_immutable[agent->port_num].core_cap_flags > > & > > + RDMA_CORE_PORT_INTEL_OPA) > Can you please use existing API rdma_cap_opa_mad() here? This patch is already upstream, please fix it there if you really want to make this change. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 12/4/2017 4:11 AM, Greg KH wrote: > On Wed, Nov 29, 2017 at 06:17:28PM +0000, Parav Pandit wrote: >> Hi Mike, >> >>> -----Original Message----- >>> From: linux-rdma-owner@vger.kernel.org [mailto:linux-rdma- >>> owner@vger.kernel.org] On Behalf Of Mike Marciniszyn >>> Sent: Wednesday, November 29, 2017 7:00 AM >>> To: stable@vger.kernel.org >>> Cc: linux-rdma@vger.kernel.org; stable-commits@vger.kernel.org >>> Subject: [PATCH 1/2] IB/core: Do not warn on lid conversions for OPA >>> >>> From: Don Hiatt <don.hiatt@intel.com> >>> >>> Upstream commit 6588e412fe872ed81f3fb8d9b4561a66ecb763d0. >>> >>> On OPA devices the user_mad recv_handler can receive 32Bit LIDs (e.g. >>> OPA_PERMISSIVE_LID) and it is okay to lose the upper 16 bits of the LID as this >>> information is obtained elsewhere. Do not issue a warning when calling >>> ib_lid_be16() in this case by masking out the upper 16Bits. >>> >>> [75667.310846] ------------[ cut here ]------------ [75667.316447] WARNING: >>> CPU: 0 PID: 1718 at ./include/rdma/ib_verbs.h:3799 recv_handler+0x15a/0x170 >>> [ib_umad] [75667.327640] Modules linked in: ib_ipoib hfi1(E) rdmavt(E) >>> rdma_ucm(E) ib_ucm(E) rdma_cm(E) ib_cm(E) iw_cm(E) ib_umad(E) ib_uverbs(E) >>> ib_core(E) libiscsi scsi_transport_iscsi dm_mirror dm_region_hash dm_log >>> dm_mod dax x86_pkg_temp_thermal intel_powerclamp coretemp kvm >>> irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc aesni_intel >>> mei_me ipmi_si iTCO_wdt iTCO_vendor_support crypto_simd ipmi_devintf >>> pcspkr mei sg i2c_i801 glue_helper lpc_ich shpchp ioatdma mfd_core wmi >>> ipmi_msghandler cryptd acpi_power_meter acpi_pad nfsd auth_rpcgss nfs_acl >>> lockd grace sunrpc ip_tables xfs libcrc32c sd_mod mgag200 drm_kms_helper >>> syscopyarea sysfillrect sysimgblt fb_sys_fops ttm drm igb ptp ahci libahci >>> pps_core crc32c_intel libata dca i2c_algo_bit i2c_core [last unloaded: ib_core] >>> [75667.407704] CPU: 0 PID: 1718 Comm: kworker/0:1H Tainted: G W I E >>> 4.13.0-rc7+ #1 >>> [75667.417310] Hardware name: Intel Corporation S2600WT2/S2600WT2, BIOS >>> SE5C610.86B.01.01.0008.021120151325 02/11/2015 [75667.429555] >>> Workqueue: ib-comp-wq ib_cq_poll_work [ib_core] [75667.436360] task: >>> ffff88084a718000 task.stack: ffffc9000a424000 [75667.443549] RIP: >>> 0010:recv_handler+0x15a/0x170 [ib_umad] [75667.450090] RSP: >>> 0018:ffffc9000a427ce8 EFLAGS: 00010286 [75667.456508] RAX: >>> 00000000ffffffff RBX: ffff88085159ce80 RCX: 0000000000000000 >>> [75667.465094] RDX: ffff88085a47b068 RSI: 0000000000000000 RDI: >>> ffff88085159cf00 [75667.473668] RBP: ffffc9000a427d38 R08: >>> 000000000001efc0 R09: ffff88085159ce80 [75667.482228] R10: >>> ffff88085f007480 R11: ffff88084acf20e8 R12: ffff88085a47b020 >>> [75667.490824] R13: ffff881056842e10 R14: ffff881056840200 R15: >>> ffff88104c8d0800 [75667.499390] FS: 0000000000000000(0000) >>> GS:ffff88085f400000(0000) knlGS:0000000000000000 [75667.509028] CS: 0010 >>> DS: 0000 ES: 0000 CR0: 0000000080050033 [75667.516080] CR2: >>> 00007f9e4b3d9000 CR3: 0000000001c09000 CR4: 00000000001406f0 >>> [75667.524664] Call Trace: >>> [75667.528044] ? find_mad_agent+0x7c/0x1b0 [ib_core] [75667.534031] ? >>> ib_mark_mad_done+0x73/0xa0 [ib_core] [75667.540142] >>> ib_mad_recv_done+0x423/0x9b0 [ib_core] [75667.546215] >>> __ib_process_cq+0x5d/0xb0 [ib_core] [75667.552007] >>> ib_cq_poll_work+0x20/0x60 [ib_core] [75667.557766] >>> process_one_work+0x149/0x360 [75667.562844] worker_thread+0x4d/0x3c0 >>> [75667.567529] kthread+0x109/0x140 [75667.571713] ? >>> rescuer_thread+0x380/0x380 [75667.576775] ? kthread_park+0x60/0x60 >>> [75667.581447] ret_from_fork+0x25/0x30 [75667.586014] Code: 43 4a 0f b6 >>> 45 c6 88 43 4b 48 8b 45 b0 48 89 43 4c 48 8b 45 b8 48 89 43 54 8b 45 c0 0f c8 89 >>> 43 5c e9 79 ff ff ff e8 16 4e fa e0 <0f> ff e9 42 ff ff ff 66 66 66 66 66 66 2e 0f 1f >>> 84 00 00 00 00 [75667.608323] ---[ end trace cf26df27c9597264 ]--- >>> >>> Cc: <stable@vger.kernel.org> # 4.14.x >>> Fixes: 62ede7779904 ("Add OPA extended LID support") >>> Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com> >>> Signed-off-by: Don Hiatt <don.hiatt@intel.com> >>> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> >>> Reviewed-by: Leon Romanovsky <leonro@mellanox.com> >>> Signed-off-by: Doug Ledford <dledford@redhat.com> >>> --- >>> drivers/infiniband/core/user_mad.c | 11 ++++++++++- >>> 1 file changed, 10 insertions(+), 1 deletion(-) >>> >>> diff --git a/drivers/infiniband/core/user_mad.c >>> b/drivers/infiniband/core/user_mad.c >>> index c1696e6..603acaf 100644 >>> --- a/drivers/infiniband/core/user_mad.c >>> +++ b/drivers/infiniband/core/user_mad.c >>> @@ -229,7 +229,16 @@ static void recv_handler(struct ib_mad_agent *agent, >>> packet->mad.hdr.status = 0; >>> packet->mad.hdr.length = hdr_size(file) + mad_recv_wc->mad_len; >>> packet->mad.hdr.qpn = cpu_to_be32(mad_recv_wc->wc->src_qp); >>> - packet->mad.hdr.lid = ib_lid_be16(mad_recv_wc->wc->slid); >>> + /* >>> + * On OPA devices it is okay to lose the upper 16 bits of LID as this >>> + * information is obtained elsewhere. Mask off the upper 16 bits. >>> + */ >>> + if (agent->device->port_immutable[agent->port_num].core_cap_flags >>> & >>> + RDMA_CORE_PORT_INTEL_OPA) >> Can you please use existing API rdma_cap_opa_mad() here? > This patch is already upstream, please fix it there if you really want > to make this change. Hi Parav, I have changes for this that I can submit as a follow on patch, please let me know if this is how you'd like to proceed. don > thanks, > > greg k-h > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Don, > -----Original Message----- > From: Don Hiatt [mailto:don.hiatt@intel.com] > Sent: Monday, December 04, 2017 11:29 AM > To: Greg KH <greg@kroah.com>; Parav Pandit <parav@mellanox.com> > Cc: Mike Marciniszyn <mike.marciniszyn@intel.com>; stable@vger.kernel.org; > linux-rdma@vger.kernel.org; stable-commits@vger.kernel.org > Subject: Re: [PATCH 1/2] IB/core: Do not warn on lid conversions for OPA > > > > On 12/4/2017 4:11 AM, Greg KH wrote: > > On Wed, Nov 29, 2017 at 06:17:28PM +0000, Parav Pandit wrote: > >> Hi Mike, > >> > >>> -----Original Message----- > >>> From: linux-rdma-owner@vger.kernel.org [mailto:linux-rdma- > >>> owner@vger.kernel.org] On Behalf Of Mike Marciniszyn > >>> Sent: Wednesday, November 29, 2017 7:00 AM > >>> To: stable@vger.kernel.org > >>> Cc: linux-rdma@vger.kernel.org; stable-commits@vger.kernel.org > >>> Subject: [PATCH 1/2] IB/core: Do not warn on lid conversions for OPA > >>> > >>> From: Don Hiatt <don.hiatt@intel.com> > >>> > >>> Upstream commit 6588e412fe872ed81f3fb8d9b4561a66ecb763d0. > >>> > >>> On OPA devices the user_mad recv_handler can receive 32Bit LIDs (e.g. > >>> OPA_PERMISSIVE_LID) and it is okay to lose the upper 16 bits of the > >>> LID as this information is obtained elsewhere. Do not issue a > >>> warning when calling > >>> ib_lid_be16() in this case by masking out the upper 16Bits. > >>> > >>> [75667.310846] ------------[ cut here ]------------ [75667.316447] WARNING: > >>> CPU: 0 PID: 1718 at ./include/rdma/ib_verbs.h:3799 > >>> recv_handler+0x15a/0x170 [ib_umad] [75667.327640] Modules linked in: > >>> ib_ipoib hfi1(E) rdmavt(E) > >>> rdma_ucm(E) ib_ucm(E) rdma_cm(E) ib_cm(E) iw_cm(E) ib_umad(E) > >>> ib_uverbs(E) > >>> ib_core(E) libiscsi scsi_transport_iscsi dm_mirror dm_region_hash > >>> dm_log dm_mod dax x86_pkg_temp_thermal intel_powerclamp coretemp > kvm > >>> irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc > >>> aesni_intel mei_me ipmi_si iTCO_wdt iTCO_vendor_support crypto_simd > >>> ipmi_devintf pcspkr mei sg i2c_i801 glue_helper lpc_ich shpchp > >>> ioatdma mfd_core wmi ipmi_msghandler cryptd acpi_power_meter > >>> acpi_pad nfsd auth_rpcgss nfs_acl lockd grace sunrpc ip_tables xfs > >>> libcrc32c sd_mod mgag200 drm_kms_helper syscopyarea sysfillrect > >>> sysimgblt fb_sys_fops ttm drm igb ptp ahci libahci pps_core crc32c_intel > libata dca i2c_algo_bit i2c_core [last unloaded: ib_core] > >>> [75667.407704] CPU: 0 PID: 1718 Comm: kworker/0:1H Tainted: G W I E > >>> 4.13.0-rc7+ #1 > >>> [75667.417310] Hardware name: Intel Corporation S2600WT2/S2600WT2, > >>> BIOS > >>> SE5C610.86B.01.01.0008.021120151325 02/11/2015 [75667.429555] > >>> Workqueue: ib-comp-wq ib_cq_poll_work [ib_core] [75667.436360] task: > >>> ffff88084a718000 task.stack: ffffc9000a424000 [75667.443549] RIP: > >>> 0010:recv_handler+0x15a/0x170 [ib_umad] [75667.450090] RSP: > >>> 0018:ffffc9000a427ce8 EFLAGS: 00010286 [75667.456508] RAX: > >>> 00000000ffffffff RBX: ffff88085159ce80 RCX: 0000000000000000 > >>> [75667.465094] RDX: ffff88085a47b068 RSI: 0000000000000000 RDI: > >>> ffff88085159cf00 [75667.473668] RBP: ffffc9000a427d38 R08: > >>> 000000000001efc0 R09: ffff88085159ce80 [75667.482228] R10: > >>> ffff88085f007480 R11: ffff88084acf20e8 R12: ffff88085a47b020 > >>> [75667.490824] R13: ffff881056842e10 R14: ffff881056840200 R15: > >>> ffff88104c8d0800 [75667.499390] FS: 0000000000000000(0000) > >>> GS:ffff88085f400000(0000) knlGS:0000000000000000 [75667.509028] CS: > >>> 0010 > >>> DS: 0000 ES: 0000 CR0: 0000000080050033 [75667.516080] CR2: > >>> 00007f9e4b3d9000 CR3: 0000000001c09000 CR4: 00000000001406f0 > >>> [75667.524664] Call Trace: > >>> [75667.528044] ? find_mad_agent+0x7c/0x1b0 [ib_core] [75667.534031] ? > >>> ib_mark_mad_done+0x73/0xa0 [ib_core] [75667.540142] > >>> ib_mad_recv_done+0x423/0x9b0 [ib_core] [75667.546215] > >>> __ib_process_cq+0x5d/0xb0 [ib_core] [75667.552007] > >>> ib_cq_poll_work+0x20/0x60 [ib_core] [75667.557766] > >>> process_one_work+0x149/0x360 [75667.562844] > >>> worker_thread+0x4d/0x3c0 [75667.567529] kthread+0x109/0x140 > [75667.571713] ? > >>> rescuer_thread+0x380/0x380 [75667.576775] ? kthread_park+0x60/0x60 > >>> [75667.581447] ret_from_fork+0x25/0x30 [75667.586014] Code: 43 4a > >>> 0f b6 > >>> 45 c6 88 43 4b 48 8b 45 b0 48 89 43 4c 48 8b 45 b8 48 89 43 54 8b 45 > >>> c0 0f c8 89 > >>> 43 5c e9 79 ff ff ff e8 16 4e fa e0 <0f> ff e9 42 ff ff ff 66 66 66 > >>> 66 66 66 2e 0f 1f > >>> 84 00 00 00 00 [75667.608323] ---[ end trace cf26df27c9597264 ]--- > >>> > >>> Cc: <stable@vger.kernel.org> # 4.14.x > >>> Fixes: 62ede7779904 ("Add OPA extended LID support") > >>> Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com> > >>> Signed-off-by: Don Hiatt <don.hiatt@intel.com> > >>> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> > >>> Reviewed-by: Leon Romanovsky <leonro@mellanox.com> > >>> Signed-off-by: Doug Ledford <dledford@redhat.com> > >>> --- > >>> drivers/infiniband/core/user_mad.c | 11 ++++++++++- > >>> 1 file changed, 10 insertions(+), 1 deletion(-) > >>> > >>> diff --git a/drivers/infiniband/core/user_mad.c > >>> b/drivers/infiniband/core/user_mad.c > >>> index c1696e6..603acaf 100644 > >>> --- a/drivers/infiniband/core/user_mad.c > >>> +++ b/drivers/infiniband/core/user_mad.c > >>> @@ -229,7 +229,16 @@ static void recv_handler(struct ib_mad_agent > *agent, > >>> packet->mad.hdr.status = 0; > >>> packet->mad.hdr.length = hdr_size(file) + mad_recv_wc->mad_len; > >>> packet->mad.hdr.qpn = cpu_to_be32(mad_recv_wc->wc->src_qp); > >>> - packet->mad.hdr.lid = ib_lid_be16(mad_recv_wc->wc->slid); > >>> + /* > >>> + * On OPA devices it is okay to lose the upper 16 bits of LID as this > >>> + * information is obtained elsewhere. Mask off the upper 16 bits. > >>> + */ > >>> + if (agent->device->port_immutable[agent->port_num].core_cap_flags > >>> & > >>> + RDMA_CORE_PORT_INTEL_OPA) > >> Can you please use existing API rdma_cap_opa_mad() here? > > This patch is already upstream, please fix it there if you really want > > to make this change. > Hi Parav, > > I have changes for this that I can submit as a follow on patch, please let me > know if this is how you'd like to proceed. > Follow changes are fine to me.
diff --git a/drivers/infiniband/core/user_mad.c b/drivers/infiniband/core/user_mad.c index c1696e6..603acaf 100644 --- a/drivers/infiniband/core/user_mad.c +++ b/drivers/infiniband/core/user_mad.c @@ -229,7 +229,16 @@ static void recv_handler(struct ib_mad_agent *agent, packet->mad.hdr.status = 0; packet->mad.hdr.length = hdr_size(file) + mad_recv_wc->mad_len; packet->mad.hdr.qpn = cpu_to_be32(mad_recv_wc->wc->src_qp); - packet->mad.hdr.lid = ib_lid_be16(mad_recv_wc->wc->slid); + /* + * On OPA devices it is okay to lose the upper 16 bits of LID as this + * information is obtained elsewhere. Mask off the upper 16 bits. + */ + if (agent->device->port_immutable[agent->port_num].core_cap_flags & + RDMA_CORE_PORT_INTEL_OPA) + packet->mad.hdr.lid = ib_lid_be16(0xFFFF & + mad_recv_wc->wc->slid); + else + packet->mad.hdr.lid = ib_lid_be16(mad_recv_wc->wc->slid); packet->mad.hdr.sl = mad_recv_wc->wc->sl; packet->mad.hdr.path_bits = mad_recv_wc->wc->dlid_path_bits; packet->mad.hdr.pkey_index = mad_recv_wc->wc->pkey_index;