Thread (28 messages) 28 messages, 8 authors, 2018-08-07

Re: [PATCH v2 4/9] target: don't depend on SCSI

From: Kees Cook <hidden>
Date: 2018-08-06 23:59:09
Also in: linux-ide, linux-scsi, lkml, target-devel

On Mon, Aug 6, 2018 at 4:38 PM, Randy Dunlap [off-list ref] wrote:
On 07/31/2018 12:51 PM, Kees Cook wrote:
quoted
From: Christoph Hellwig <hch@lst.de>

The core target code only needs code from scsi_common.c, which is now
separately selectable.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kees Cook <redacted>
---
 drivers/target/Kconfig | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/target/Kconfig b/drivers/target/Kconfig
index 4c44d7bed01a..cb6f32ce7de8 100644
--- a/drivers/target/Kconfig
+++ b/drivers/target/Kconfig
@@ -1,10 +1,10 @@

 menuconfig TARGET_CORE
      tristate "Generic Target Core Mod (TCM) and ConfigFS Infrastructure"
-     depends on SCSI && BLOCK
+     depends on BLOCK
      select CONFIGFS_FS
      select CRC_T10DIF
-     select BLK_SCSI_REQUEST # only for scsi_command_size_tbl..
+     select BLK_SCSI_REQUEST
      select SGL_ALLOC
      default n
      help
@@ -29,6 +29,7 @@ config TCM_FILEIO

 config TCM_PSCSI
      tristate "TCM/pSCSI Subsystem Plugin for Linux/SCSI"
+     depends on SCSI
      help
      Say Y here to enable the TCM/pSCSI subsystem plugin for non-buffered
      passthrough access to Linux/SCSI device
Hi,

This patch causes build errors in linux-next-20180806 when SCSI=m and
LOOPBACK_TARGET=y.

drivers/target/loopback/tcm_loop.o: In function `tcm_loop_port_link':
tcm_loop.c:(.text+0x445): undefined reference to `scsi_add_device'
drivers/target/loopback/tcm_loop.o: In function `tcm_loop_driver_remove':
tcm_loop.c:(.text+0x55c): undefined reference to `scsi_remove_host'
tcm_loop.c:(.text+0x564): undefined reference to `scsi_host_put'
drivers/target/loopback/tcm_loop.o: In function `tcm_loop_submission_work':
tcm_loop.c:(.text+0x7c4): undefined reference to `scmd_printk'
drivers/target/loopback/tcm_loop.o: In function `tcm_loop_driver_probe':
tcm_loop.c:(.text+0x7fb): undefined reference to `scsi_host_alloc'
tcm_loop.c:(.text+0x85b): undefined reference to `scsi_add_host_with_dma'
tcm_loop.c:(.text+0x896): undefined reference to `scsi_host_put'
drivers/target/loopback/tcm_loop.o: In function `tcm_loop_port_unlink':
tcm_loop.c:(.text+0x962): undefined reference to `scsi_device_lookup'
tcm_loop.c:(.text+0x972): undefined reference to `scsi_remove_device'
tcm_loop.c:(.text+0x97a): undefined reference to `scsi_device_put'
drivers/target/loopback/tcm_loop.o:(.data+0x210): undefined reference to `scsi_change_queue_depth'
Can you send your .config? I'm struggling to get a build with SCSI=m. :P

I wonder if LOOPBACK_TARGET is just missing a "depends on SCSI" as was
added for TCM_PSCSI?

-Kees

-- 
Kees Cook
Pixel Security
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help