Message ID | 20180731195155.46664-5-keescook@chromium.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | block: Consolidate scsi sense buffer usage | expand |
On 07/31/2018 12:51 PM, Kees Cook wrote: > 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 <keescook@chromium.org> > --- > 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'
On Mon, Aug 6, 2018 at 4:38 PM, Randy Dunlap <rdunlap@infradead.org> wrote: > On 07/31/2018 12:51 PM, Kees Cook wrote: >> 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 <keescook@chromium.org> >> --- >> 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
On 08/06/2018 04:59 PM, Kees Cook wrote: > On Mon, Aug 6, 2018 at 4:38 PM, Randy Dunlap <rdunlap@infradead.org> wrote: >> On 07/31/2018 12:51 PM, Kees Cook wrote: >>> 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 <keescook@chromium.org> >>> --- >>> 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 Sure, it's attached. > I wonder if LOOPBACK_TARGET is just missing a "depends on SCSI" as was > added for TCM_PSCSI? possibly.
On Mon, Aug 06, 2018 at 04:59:04PM -0700, Kees Cook wrote: > I wonder if LOOPBACK_TARGET is just missing a "depends on SCSI" as was > added for TCM_PSCSI? That is eactly the case. LOOPBACK_TARGET is a scsi driver that feeds commands into the target layer, so it needs a depends on SCSI. Sorry for missing that earlier.
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