linux-stable/drivers/scsi
Saurav Kashyap 93aa5ccc44 scsi: bnx2fc: Remove spin_lock_bh while releasing resources after upload
[ Upstream commit c214ed2a4d ]

The session resources are used by FW and driver when session is offloaded,
once session is uploaded these resources are not used. The lock is not
required as these fields won't be used any longer. The offload and upload
calls are sequential, hence lock is not required.

This will suppress following BUG_ON():

[  449.843143] ------------[ cut here ]------------
[  449.848302] kernel BUG at mm/vmalloc.c:2727!
[  449.853072] invalid opcode: 0000 [#1] PREEMPT SMP PTI
[  449.858712] CPU: 5 PID: 1996 Comm: kworker/u24:2 Not tainted 5.14.0-118.el9.x86_64 #1
Rebooting.
[  449.867454] Hardware name: Dell Inc. PowerEdge R730/0WCJNT, BIOS 2.3.4 11/08/2016
[  449.876966] Workqueue: fc_rport_eq fc_rport_work [libfc]
[  449.882910] RIP: 0010:vunmap+0x2e/0x30
[  449.887098] Code: 00 65 8b 05 14 a2 f0 4a a9 00 ff ff 00 75 1b 55 48 89 fd e8 34 36 79 00 48 85 ed 74 0b 48 89 ef 31 f6 5d e9 14 fc ff ff 5d c3 <0f> 0b 0f 1f 44 00 00 41 57 41 56 49 89 ce 41 55 49 89 fd 41 54 41
[  449.908054] RSP: 0018:ffffb83d878b3d68 EFLAGS: 00010206
[  449.913887] RAX: 0000000080000201 RBX: ffff8f4355133550 RCX: 000000000d400005
[  449.921843] RDX: 0000000000000001 RSI: 0000000000001000 RDI: ffffb83da53f5000
[  449.929808] RBP: ffff8f4ac6675800 R08: ffffb83d878b3d30 R09: 00000000000efbdf
[  449.937774] R10: 0000000000000003 R11: ffff8f434573e000 R12: 0000000000001000
[  449.945736] R13: 0000000000001000 R14: ffffb83da53f5000 R15: ffff8f43d4ea3ae0
[  449.953701] FS:  0000000000000000(0000) GS:ffff8f529fc80000(0000) knlGS:0000000000000000
[  449.962732] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  449.969138] CR2: 00007f8cf993e150 CR3: 0000000efbe10003 CR4: 00000000003706e0
[  449.977102] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  449.985065] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[  449.993028] Call Trace:
[  449.995756]  __iommu_dma_free+0x96/0x100
[  450.000139]  bnx2fc_free_session_resc+0x67/0x240 [bnx2fc]
[  450.006171]  bnx2fc_upload_session+0xce/0x100 [bnx2fc]
[  450.011910]  bnx2fc_rport_event_handler+0x9f/0x240 [bnx2fc]
[  450.018136]  fc_rport_work+0x103/0x5b0 [libfc]
[  450.023103]  process_one_work+0x1e8/0x3c0
[  450.027581]  worker_thread+0x50/0x3b0
[  450.031669]  ? rescuer_thread+0x370/0x370
[  450.036143]  kthread+0x149/0x170
[  450.039744]  ? set_kthread_struct+0x40/0x40
[  450.044411]  ret_from_fork+0x22/0x30
[  450.048404] Modules linked in: vfat msdos fat xfs nfs_layout_nfsv41_files rpcsec_gss_krb5 auth_rpcgss nfsv4 dns_resolver dm_service_time qedf qed crc8 bnx2fc libfcoe libfc scsi_transport_fc intel_rapl_msr intel_rapl_common x86_pkg_temp_thermal intel_powerclamp dcdbas rapl intel_cstate intel_uncore mei_me pcspkr mei ipmi_ssif lpc_ich ipmi_si fuse zram ext4 mbcache jbd2 loop nfsv3 nfs_acl nfs lockd grace fscache netfs irdma ice sd_mod t10_pi sg ib_uverbs ib_core 8021q garp mrp stp llc mgag200 i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt mxm_wmi fb_sys_fops cec crct10dif_pclmul ahci crc32_pclmul bnx2x drm ghash_clmulni_intel libahci rfkill i40e libata megaraid_sas mdio wmi sunrpc lrw dm_crypt dm_round_robin dm_multipath dm_snapshot dm_bufio dm_mirror dm_region_hash dm_log dm_zero dm_mod linear raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx raid6_pq libcrc32c crc32c_intel raid1 raid0 iscsi_ibft squashfs be2iscsi bnx2i cnic uio cxgb4i cxgb4 tls
[  450.048497]  libcxgbi libcxgb qla4xxx iscsi_boot_sysfs iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi edd ipmi_devintf ipmi_msghandler
[  450.159753] ---[ end trace 712de2c57c64abc8 ]---

Reported-by: Guangwu Zhang <guazhang@redhat.com>
Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Link: https://lore.kernel.org/r/20240315071427.31842-1-skashyap@marvell.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-05-17 11:50:52 +02:00
..
aacraid
aic7xxx
aic94xx scsi: aic94xx: Add missing check for dma_map_single() 2023-03-10 09:39:28 +01:00
arcmsr scsi: arcmsr: Support new PCI device IDs 1883 and 1886 2024-02-23 08:54:41 +01:00
arm scsi: acornscsi: Remove scsi_cmd_to_tag() reference 2021-10-04 21:54:18 -04:00
be2iscsi scsi: be2iscsi: Fix a memleak in beiscsi_init_wrb_handle() 2023-12-13 18:36:41 +01:00
bfa scsi: bfa: Fix function pointer type mismatch for hcb_qe->cbfn 2024-03-26 18:21:33 -04:00
bnx2fc scsi: bnx2fc: Remove spin_lock_bh while releasing resources after upload 2024-05-17 11:50:52 +02:00
bnx2i scsi: iscsi: Fix session removal on shutdown 2022-08-17 14:23:45 +02:00
csiostor scsi: csiostor: Avoid function pointer casts 2024-03-26 18:21:33 -04:00
cxgbi scsi: iscsi: Rename iscsi_conn_queue_work() 2022-10-26 12:35:15 +02:00
cxlflash pci-v5.15-changes 2021-09-07 19:13:42 -07:00
device_handler scsi: scsi_dh_alua: Fix memleak for 'qdata' in alua_activate() 2023-03-30 12:47:45 +02:00
dpt
elx scsi: elx: libefc: Fix second parameter type in state callbacks 2022-12-31 13:14:44 +01:00
esas2r
fcoe scsi: Revert "scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock" 2024-02-23 08:55:05 +01:00
fnic scsi: fnic: Return error if vmalloc() failed 2024-01-25 14:52:37 -08:00
hisi_sas scsi: hisi_sas: Correct the number of global debugfs registers 2024-01-25 14:52:38 -08:00
ibmvscsi scsi: ibmvfc: Remove BUG_ON in the case of an empty event pool 2023-11-28 16:56:18 +00:00
ibmvscsi_tgt scsi: ibmvscsis: Increase INITIAL_SRP_LIMIT to 1024 2022-04-20 09:34:15 +02:00
isci scsi: isci: Fix an error code problem in isci_io_request_build() 2024-02-23 08:54:52 +01:00
libfc scsi: libfc: Fix up timeout error in fc_fcp_rec_error() 2024-02-23 08:54:42 +01:00
libsas scsi: libsas: Fix use-after-free bug in smp_execute_task_sg() 2022-10-26 12:35:15 +02:00
lpfc scsi: lpfc: Replace hbalock with ndlp lock in lpfc_nvme_unregister_port() 2024-05-17 11:50:52 +02:00
megaraid scsi: megaraid_sas: Increase register read retry rount from 3 to 30 for selected registers 2023-11-28 16:56:27 +00:00
mpi3mr scsi: mpi3mr: Refresh sdev queue depth after controller reset 2024-01-25 14:52:48 -08:00
mpt3sas scsi: mpt3sas: Prevent sending diag_reset when the controller is ready 2024-03-26 18:21:13 -04:00
mvsas scsi: mvsas: Add PCI ID of RocketRaid 2640 2022-04-20 09:34:17 +02:00
pcmcia
pm8001 scsi: pm80xx: Avoid leaking tags when processing OPC_INB_SET_CONTROLLER_CONFIG command 2023-10-06 13:18:17 +02:00
qedf scsi: qedf: Add synchronization between I/O completions and abort 2023-10-06 13:18:15 +02:00
qedi scsi: qedi: Fix potential deadlock on &qedi_percpu->p_work_lock 2023-09-19 12:22:29 +02:00
qla2xxx scsi: qla2xxx: Fix off by one in qla_edif_app_getstats() 2024-04-17 11:15:14 +02:00
qla4xxx scsi: qla4xxx: Add length check when parsing nlattrs 2023-09-19 12:22:45 +02:00
smartpqi scsi: smartpqi: Fix DMA direction for RAID requests 2022-08-17 14:23:51 +02:00
snic scsi: snic: Fix double free in snic_tgt_create() 2023-08-30 16:18:21 +02:00
sym53c8xx_2
ufs scsi: ufs: core: Remove the ufshcd_hba_exit() call from ufshcd_async_scan() 2024-02-23 08:54:21 +01:00
.gitignore
3w-9xxx.c scsi: 3w-9xxx: Avoid disabling device if failing to enable it 2022-10-26 12:35:46 +02:00
3w-9xxx.h
3w-sas.c
3w-sas.h
3w-xxxx.c scsi: 3w-xxxx: Add error handling for initialization failure in tw_probe() 2023-07-23 13:47:11 +02:00
3w-xxxx.h
53c700.c scsi: 53c700: Check that command slot is not NULL 2023-08-16 18:22:03 +02:00
53c700.h
53c700.scr
53c700_d.h_shipped
BusLogic.c
BusLogic.h
FlashPoint.c
Kconfig scsi: jazz_esp: Only build if SCSI core is builtin 2024-03-01 13:21:58 +01:00
Makefile scsi: core: Fix missing FORCE for scsi_devinfo_tbl.c build rule 2021-08-23 23:07:05 -04:00
NCR5380.c
NCR5380.h
a100u2w.c
a100u2w.h
a2091.c
a2091.h
a3000.c
a3000.h
a4000t.c
advansys.c scsi: advansys: Fix kernel pointer leak 2021-11-25 09:48:27 +01:00
aha152x.c scsi: aha152x: Fix aha152x_setup() __setup handler return value 2022-04-13 20:59:07 +02:00
aha152x.h
aha1542.c
aha1542.h
aha1740.c
aha1740.h
am53c974.c
atari_scsi.c
atp870u.c
atp870u.h
bvme6000_scsi.c
ch.c
constants.c
dc395x.c scsi: dc395x: Fix a missing check on list iterator 2022-06-09 10:23:22 +02:00
dc395x.h
dmx3191d.c
dpt_i2o.c scsi: dpt_i2o: Do not process completions with invalid addresses 2023-06-09 10:32:34 +02:00
dpti.h scsi: dpt_i2o: Remove broken pass-through ioctl (I2OUSERCMD) 2023-06-09 10:32:34 +02:00
esp_scsi.c
esp_scsi.h
fdomain.c
fdomain.h
fdomain_isa.c
fdomain_pci.c
g_NCR5380.c
gvp11.c
gvp11.h
hosts.c scsi: core: Fix unremoved procfs host directory regression 2024-04-10 16:19:32 +02:00
hpsa.c scsi: hpsa: Fix allocation size for scsi_host_alloc() 2023-02-01 08:27:22 +01:00
hpsa.h
hpsa_cmd.h
hptiop.c
hptiop.h
imm.c
imm.h
initio.c
initio.h
ipr.c scsi: ipr: Work around fortify-string warning 2023-03-11 13:57:31 +01:00
ipr.h
ips.c
ips.h
iscsi_boot_sysfs.c
iscsi_tcp.c scsi: iscsi_tcp: Check that sock is valid before iscsi_set_param() 2023-04-13 16:48:24 +02:00
iscsi_tcp.h scsi: iscsi: iscsi_tcp: Fix null-ptr-deref while calling getpeername() 2022-10-26 12:35:16 +02:00
jazz_esp.c
lasi700.c parisc: Make struct parisc_driver::remove() return void 2021-08-30 10:18:25 +02:00
libiscsi.c scsi: iscsi_tcp: Fix UAF during logout when accessing the shost ipaddress 2023-02-09 11:26:39 +01:00
libiscsi_tcp.c scsi: iscsi: Merge suspend fields 2022-04-27 14:38:56 +02:00
mac53c94.c
mac53c94.h
mac_esp.c
mac_scsi.c
megaraid.c scsi: megaraid: Fix mega_cmd_done() CMDID_INT_CMDS 2023-05-11 23:00:26 +09:00
megaraid.h
mesh.c
mesh.h
mvme16x_scsi.c
mvme147.c
mvme147.h
mvumi.c
mvumi.h
myrb.c scsi: mylex: Fix sysfs buffer lengths 2024-04-10 16:19:41 +02:00
myrb.h
myrs.c scsi: mylex: Fix sysfs buffer lengths 2024-04-10 16:19:41 +02:00
myrs.h
ncr53c8xx.c scsi: ncr53c8xx: Remove unused retrieve_from_waiting_list() function 2021-09-13 22:15:47 -04:00
ncr53c8xx.h
nsp32.c
nsp32.h
nsp32_debug.c
nsp32_io.h
pmcraid.c scsi: pmcraid: Fix missing resource cleanup in error case 2022-06-22 14:21:57 +02:00
pmcraid.h
ppa.c
ppa.h
ps3rom.c
qla1280.c scsi: qla1280: Stop using scsi_cmnd.tag 2021-08-23 23:06:56 -04:00
qla1280.h
qlogicfas.c
qlogicfas408.c
qlogicfas408.h
qlogicpti.c
qlogicpti.h
raid_class.c scsi: core: raid_class: Remove raid_component_add() 2023-08-30 16:18:21 +02:00
script_asm.pl
scsi.c scsi: core: Improve scsi_vpd_inquiry() checks 2023-04-26 13:51:50 +02:00
scsi.h
scsi_bsg.c
scsi_common.c
scsi_debug.c scsi: scsi_debug: Fix possible name leak in sdebug_add_host_helper() 2022-12-31 13:14:25 +01:00
scsi_debugfs.c scsi: core: Show SCMD_LAST in text form 2022-01-27 11:05:22 +01:00
scsi_debugfs.h
scsi_devinfo.c scsi: core: Add BLIST_SKIP_VPD_PAGES for SKhynix H28U74301AMR 2023-03-30 12:47:55 +02:00
scsi_dh.c
scsi_error.c scsi: core: Move scsi_host_busy() out of host lock if it is for per-command 2024-02-23 08:54:59 +01:00
scsi_ioctl.c scsi: core: Fix warning in scsi_alloc_sgtables() 2022-08-03 12:03:47 +02:00
scsi_lib.c scsi: core: Move scsi_host_busy() out of host lock if it is for per-command 2024-02-23 08:54:59 +01:00
scsi_lib_dma.c
scsi_logging.c
scsi_logging.h
scsi_netlink.c
scsi_pm.c scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume() 2022-01-27 11:04:15 +01:00
scsi_priv.h scsi: core: Move scsi_host_busy() out of host lock for waking up EH handler 2024-02-23 08:54:53 +01:00
scsi_proc.c scsi: core: Fix legacy /proc parsing buffer overflow 2023-08-16 18:22:03 +02:00
scsi_sas_internal.h
scsi_scan.c scsi: Revert "scsi: core: map PQ=1, PDT=other values to SCSI_SCAN_TARGET_PRESENT" 2023-02-09 11:26:34 +01:00
scsi_sysctl.c
scsi_sysfs.c scsi: core: Restrict legal sdev_state transitions via sysfs 2022-11-10 18:15:34 +01:00
scsi_trace.c
scsi_transport_api.h
scsi_transport_fc.c scsi: scsi_transport_fc: Fix FPIN Link Integrity statistics counters 2022-04-08 14:22:54 +02:00
scsi_transport_iscsi.c scsi: iscsi: Add strlen() check in iscsi_if_set{_host}_param() 2023-09-19 12:22:44 +02:00
scsi_transport_sas.c scsi: scsi_transport_sas: Fix error handling in sas_phy_add() 2022-11-26 09:24:35 +01:00
scsi_transport_spi.c
scsi_transport_srp.c
scsicam.c
sd.c scsi: sd: Revert "scsi: sd: Remove a local variable" 2022-11-03 23:59:20 +09:00
sd.h
sd_dif.c
sd_zbc.c scsi: sd_zbc: Support disks with more than 2**32 logical blocks 2021-09-21 23:52:55 -04:00
sense_codes.h
ses.c scsi: ses: Handle enclosure with just a primary component gracefully 2023-04-20 12:13:55 +02:00
sg.c scsi: sg: Allow waiting for commands to complete on removed device 2022-08-17 14:22:55 +02:00
sgiwd93.c
sim710.c
sni_53c710.c
sr.c block: move GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE to disk->event_flags 2023-09-19 12:23:02 +02:00
sr.h
sr_ioctl.c scsi: sr: Do not leak information in ioctl 2022-04-27 14:38:58 +02:00
sr_vendor.c scsi: sr: Don't use GFP_DMA 2022-01-27 11:05:03 +01:00
st.c block: drop unused includes in <linux/genhd.h> 2022-03-16 14:23:46 +01:00
st.h st: do not allocate a gendisk 2021-08-23 12:54:30 -06:00
st_options.h
stex.c scsi: stex: Fix gcc 13 warnings 2023-06-09 10:32:29 +02:00
storvsc_drv.c scsi: storvsc: Fix ring buffer size calculation 2024-02-23 08:55:03 +01:00
sun3_scsi.c
sun3_scsi_vme.c
sun3x_esp.c
sun_esp.c
virtio_scsi.c scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported" 2021-09-28 22:47:28 -04:00
vmw_pvscsi.c scsi: vmw_pvscsi: Set residual data length conditionally 2022-01-05 12:42:39 +01:00
vmw_pvscsi.h scsi: vmw_pvscsi: Expand vcpuHint to 16 bits 2022-06-22 14:21:57 +02:00
wd33c93.c
wd33c93.h
wd719x.c scsi: wd719: Stop using scsi_cmnd.tag 2021-08-16 13:33:24 -04:00
wd719x.h
xen-scsifront.c xen/scsifront: don't use gnttab_query_foreign_access() for mapped status 2022-03-11 12:22:36 +01:00
zalon.c parisc: Make struct parisc_driver::remove() return void 2021-08-30 10:18:25 +02:00
zorro7xx.c scsi: zorro7xx: Fix a resource leak in zorro7xx_remove_one() 2022-04-13 20:59:15 +02:00
zorro_esp.c