From 7760e223507b5218d0674b5e2e8dc29fea079a89 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Thu, 31 Aug 2017 16:59:06 -0700 Subject: [PATCH 1/2] scsi: Remove Scsi_Host.uspace_req_q A patch I wrote myself several years ago removed SCSI target support from the code under drivers/scsi. That patch removed the code that sets uspace_req_q to a non-NULL value. Hence also remove the code that depends on uspace_req_q != NULL. References: commit 066465251303 ("tgt: removal") Signed-off-by: Bart Van Assche Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Johannes Thumshirn Reviewed-by: Johannes Thumshirn Reviewed-by: Christoph Hellwig Signed-off-by: Martin K. Petersen --- drivers/scsi/hosts.c | 8 -------- include/scsi/scsi_host.h | 6 ------ 2 files changed, 14 deletions(-) diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c index 831a1c8b9f89f4..fe3a0da3ec9783 100644 --- a/drivers/scsi/hosts.c +++ b/drivers/scsi/hosts.c @@ -315,8 +315,6 @@ static void scsi_host_dev_release(struct device *dev) { struct Scsi_Host *shost = dev_to_shost(dev); struct device *parent = dev->parent; - struct request_queue *q; - void *queuedata; scsi_proc_hostdir_rm(shost->hostt); @@ -326,12 +324,6 @@ static void scsi_host_dev_release(struct device *dev) kthread_stop(shost->ehandler); if (shost->work_q) destroy_workqueue(shost->work_q); - q = shost->uspace_req_q; - if (q) { - queuedata = q->queuedata; - blk_cleanup_queue(q); - kfree(queuedata); - } if (shost->shost_state == SHOST_CREATED) { /* diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index afb04811b7b9c5..0a804b1a47267d 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h @@ -691,12 +691,6 @@ struct Scsi_Host { unsigned int prot_capabilities; unsigned char prot_guard_type; - /* - * q used for scsi_tgt msgs, async events or any other requests that - * need to be processed in userspace - */ - struct request_queue *uspace_req_q; - /* legacy crap */ unsigned long base; unsigned long io_port; From 580b71e9f64e0e6e9063466fce4564c56156695d Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Tue, 5 Sep 2017 09:49:23 +0200 Subject: [PATCH 2/2] scsi: scsi_transport_sas: select BLK_DEV_BSGLIB Without CONFIG_BLK_DEV_BSGLIB, we get a link error here: drivers/scsi/scsi_transport_sas.o: In function `sas_bsg_initialize': scsi_transport_sas.c:(.text+0xcc0): undefined reference to `bsg_setup_queue' scsi_transport_sas.c:(.text+0xd10): undefined reference to `bsg_setup_queue' drivers/scsi/scsi_transport_sas.o: In function `sas_smp_dispatch': scsi_transport_sas.c:(.text+0xe8c): undefined reference to `bsg_job_done' This modifies the Kconfig 'select' statement accordingly, and matching what we do for the other two scsi_transport implementations that use bsglib. Fixes: 651a01364994 ("scsi: scsi_transport_sas: switch to bsg-lib for SMP passthrough") Signed-off-by: Arnd Bergmann Reviewed-by: Christoph Hellwig Signed-off-by: Martin K. Petersen --- drivers/scsi/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig index f4538d7a3016e2..c470a05c7f477d 100644 --- a/drivers/scsi/Kconfig +++ b/drivers/scsi/Kconfig @@ -272,7 +272,7 @@ config SCSI_ISCSI_ATTRS config SCSI_SAS_ATTRS tristate "SAS Transport Attributes" depends on SCSI - select BLK_DEV_BSG + select BLK_DEV_BSGLIB help If you wish to export transport-specific information about each attached SAS device to sysfs, say Y.