Chesnokov Gleb 414805bb4d vdisk_fileio, async_mode: Fix scheduling while atomic
This patch should fix the following bug:

BUG: scheduling while atomic: ...
...
Call Trace:
 <IRQ>
 dump_stack+0x6d/0x8b
 __schedule_bug.cold.94+0x4c/0x5a
 __schedule+0x51d/0x606
 schedule+0x33/0x9a
 __lock_sock+0x7d/0xbc
 ? finish_wait+0x80/0x78
 lock_sock_nested+0x64/0x66
 do_tcp_setsockopt.isra.47+0x7d/0xbc4
 ? scst_free_cmd+0x171/0x220 [scst]
 tcp_setsockopt+0x34/0x36
 sock_common_setsockopt+0x1a/0x1c
 cmnd_tx_start+0x94/0x210 [iscsi_scst]
 iscsi_send+0x2cd/0x800 [iscsi_scst]
 iscsi_tcp_send_locally+0xe9/0x1f0 [iscsi_scst]
 ? iscsi_tcp_send_data_rsp+0x5a/0x90 [iscsi_scst]
 iscsi_xmit_response+0xfe/0x230 [iscsi_scst]
 scst_process_active_cmd+0x742/0x1740 [scst]
 ? try_to_wake_up+0x1dd/0x5ac
 scst_process_redirect_cmd+0x128/0x300 [scst]
 ? insert_work+0xa8/0xc2
 scst_cmd_done_local+0x7f/0x100 [scst]
 ? rvmio_transfer_data+0xb0/0xb0 [scst_vdisk]
 fileio_async_complete+0x46/0x100 [scst_vdisk]
 iomap_dio_complete_work+0x29/0x2e
 iomap_dio_bio_end_io+0xed/0xff
 bio_endio+0xda/0x12e
 blk_update_request+0xea/0x3a1
 scsi_end_request+0x30/0x111
 scsi_io_completion+0x7c/0x4e1
 ? virtscsi_remove+0xc0/0xc0 [virtio_scsi]
 scsi_finish_command+0xe7/0x11a
 scsi_softirq_done+0x75/0xde
 blk_done_softirq+0xa5/0xcd
 __do_softirq+0xe1/0x2e7
 ? sched_clock+0x9/0xd
 irq_exit+0xf3/0xf8
 do_IRQ+0x59/0xe0
 common_interrupt+0xf/0x1d2
 </IRQ>
RIP: 0010:native_safe_halt+0x12/0x14
...
2021-12-08 21:44:58 +03:00
2021-01-02 23:16:59 +00:00
2021-12-02 20:31:44 -08:00
2021-01-02 23:16:59 +00:00
2021-01-02 23:16:59 +00:00
2021-02-05 20:26:25 +00:00
2021-03-15 04:06:56 +00:00
2021-12-07 00:18:44 +03:00

Overview

This is the source code repository of the SCST project. SCST is a collection of Linux kernel drivers that implement SCSI target functionality. The SCST project includes:

  1. The SCST core in the scst/ subdirectory.
  2. A tool for loading, saving and modifying the SCST configuration in directory scstadmin/.
  3. Several SCSI target drivers in the directories iscsi-scst/, qla2x00t/, srpt/, scst_local/ and fcst/.
  4. User space programs in the usr/ subdirectory, e.g. fileio_tgt.
  5. Various documentation in the doc/ subdirectory.

Instructions for building and installing SCST are available in the INSTALL.md file.

QLogic target driver

Two QLogic target drivers are included in the SCST project.

The default driver is located in qla2x00t-32gbit directory and it supports up to 32 Gb/s FC. It is the newer one.

May anyone wish to switch back to the older driver that only supported up to 16 Gb/s adapters, it is located in qla2x00t directory. To make use of the older driver build scst with environment variable QLA_32GBIT=no set.

Vladislav Bolkhovitin vst@vlnb.net, http://scst.sourceforge.net

Description
No description provided
Readme 33 MiB
Languages
C 90.1%
Perl 4.2%
Shell 1.8%
HTML 1.7%
Makefile 1.2%
Other 0.9%