diff --git a/patches.suse/scsi-ibmvscsi-Fix-WARN_ON-during-event-pool-release.patch b/patches.suse/scsi-ibmvscsi-Fix-WARN_ON-during-event-pool-release.patch new file mode 100644 index 0000000..a746675 --- /dev/null +++ b/patches.suse/scsi-ibmvscsi-Fix-WARN_ON-during-event-pool-release.patch @@ -0,0 +1,95 @@ +From b36522150e5b85045f868768d46fbaaa034174b2 Mon Sep 17 00:00:00 2001 +From: Tyrel Datwyler +Date: Mon, 27 Apr 2020 15:49:53 -0700 +Subject: [PATCH] scsi: ibmvscsi: Fix WARN_ON during event pool release + +References: bsc#1170791 ltc#185128 +Patch-mainline: Queued +Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git +Git-commit: b36522150e5b85045f868768d46fbaaa034174b2 + +While removing an ibmvscsi client adapter a WARN_ON like the following is +seen in the kernel log: + +drmgr: drmgr: -r -c slot -s U9080.M9S.783AEC8-V11-C11 -w 5 -d 1 +WARNING: CPU: 9 PID: 24062 at ../kernel/dma/mapping.c:311 dma_free_attrs+0x78/0x110 +Supported: No, Unreleased kernel +CPU: 9 PID: 24062 Comm: drmgr Kdump: loaded Tainted: G X 5.3.18-12-default +NIP: c0000000001fa758 LR: c0000000001fa744 CTR: c0000000001fa6e0 +REGS: c0000002173375d0 TRAP: 0700 Tainted: G X (5.3.18-12-default) +MSR: 8000000000029033 CR: 28088282 XER: 20000000 +CFAR: c0000000001fbf0c IRQMASK: 1 +GPR00: c0000000001fa744 c000000217337860 c00000000161ab00 0000000000000000 +GPR04: 0000000000000000 c000011e12250000 0000000018010000 0000000000000000 +GPR08: 0000000000000000 0000000000000001 0000000000000001 c0080000190f4fa8 +GPR12: c0000000001fa6e0 c000000007fc2a00 0000000000000000 0000000000000000 +GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 +GPR20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 +GPR24: 000000011420e310 0000000000000000 0000000000000000 0000000018010000 +GPR28: c00000000159de50 c000011e12250000 0000000000006600 c000011e5c994848 +NIP [c0000000001fa758] dma_free_attrs+0x78/0x110 +LR [c0000000001fa744] dma_free_attrs+0x64/0x110 +Call Trace: +[c000000217337860] [000000011420e310] 0x11420e310 (unreliable) +[c0000002173378b0] [c0080000190f0280] release_event_pool+0xd8/0x120 [ibmvscsi] +[c000000217337930] [c0080000190f3f74] ibmvscsi_remove+0x6c/0x160 [ibmvscsi] +[c000000217337960] [c0000000000f3cac] vio_bus_remove+0x5c/0x100 +[c0000002173379a0] [c00000000087a0a4] device_release_driver_internal+0x154/0x280 +[c0000002173379e0] [c0000000008777cc] bus_remove_device+0x11c/0x220 +[c000000217337a60] [c000000000870fc4] device_del+0x1c4/0x470 +[c000000217337b10] [c0000000008712a0] device_unregister+0x30/0xa0 +[c000000217337b80] [c0000000000f39ec] vio_unregister_device+0x2c/0x60 +[c000000217337bb0] [c00800001a1d0964] dlpar_remove_slot+0x14c/0x250 [rpadlpar_io] +[c000000217337c50] [c00800001a1d0bcc] remove_slot_store+0xa4/0x110 [rpadlpar_io] +[c000000217337cd0] [c000000000c091a0] kobj_attr_store+0x30/0x50 +[c000000217337cf0] [c00000000057c934] sysfs_kf_write+0x64/0x90 +[c000000217337d10] [c00000000057be10] kernfs_fop_write+0x1b0/0x290 +[c000000217337d60] [c000000000488c4c] __vfs_write+0x3c/0x70 +[c000000217337d80] [c00000000048c648] vfs_write+0xd8/0x260 +[c000000217337dd0] [c00000000048ca8c] ksys_write+0xdc/0x130 +[c000000217337e20] [c00000000000b488] system_call+0x5c/0x70 +Instruction dump: +7c840074 f8010010 f821ffb1 20840040 eb830218 7c8407b4 48002019 60000000 +2fa30000 409e003c 892d0988 792907e0 <0b090000> 2fbd0000 419e0028 2fbc0000 +---[ end trace 5955b3c0cc079942 ]--- +rpadlpar_io: slot U9080.M9S.783AEC8-V11-C11 removed + +This is tripped as a result of irqs being disabled during the call to +dma_free_coherent() by release_event_pool(). At this point in the code path +we have quiesced the adapter and it is overly paranoid to be holding the +host lock. + +[mkp: fixed build warning reported by sfr] + +Link: https://lore.kernel.org/r/1588027793-17952-1-git-send-email-tyreld@linux.ibm.com +Signed-off-by: Tyrel Datwyler +Signed-off-by: Martin K. Petersen +Acked-by: Michal Suchanek +--- + drivers/scsi/ibmvscsi/ibmvscsi.c | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c +index 7f66a77832099..59f0f1030c54a 100644 +--- a/drivers/scsi/ibmvscsi/ibmvscsi.c ++++ b/drivers/scsi/ibmvscsi/ibmvscsi.c +@@ -2320,16 +2320,12 @@ static int ibmvscsi_probe(struct vio_dev *vdev, const struct vio_device_id *id) + static int ibmvscsi_remove(struct vio_dev *vdev) + { + struct ibmvscsi_host_data *hostdata = dev_get_drvdata(&vdev->dev); +- unsigned long flags; + + srp_remove_host(hostdata->host); + scsi_remove_host(hostdata->host); + + purge_requests(hostdata, DID_ERROR); +- +- spin_lock_irqsave(hostdata->host->host_lock, flags); + release_event_pool(&hostdata->pool, hostdata); +- spin_unlock_irqrestore(hostdata->host->host_lock, flags); + + ibmvscsi_release_crq_queue(&hostdata->queue, hostdata, + max_events); +-- +2.16.4 + diff --git a/series.conf b/series.conf index d943315..d15b8c1 100644 --- a/series.conf +++ b/series.conf @@ -11552,6 +11552,7 @@ patches.suse/scsi-qla2xxx-set-UNLOADING-before-waiting-for-sessio.patch patches.suse/scsi-qla2xxx-check-UNLOADING-before-posting-async-wo.patch patches.suse/scsi-ibmvfc-Don-t-send-implicit-logouts-prior-to-NPI.patch + patches.suse/scsi-ibmvscsi-Fix-WARN_ON-during-event-pool-release.patch # git://git.infradead.org/nvme.git nvme-5.8 patches.suse/nvme-fc-Sync-header-to-FC-NVME-2-rev-1.08.patch