On Mon, Aug 6, 2018 at 4:38 PM, Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote: > On 07/31/2018 12:51 PM, Kees Cook wrote: >> From: Christoph Hellwig <hch@xxxxxx> >> >> The core target code only needs code from scsi_common.c, which is now >> separately selectable. >> >> Signed-off-by: Christoph Hellwig <hch@xxxxxx> >> Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx> >> --- >> 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