Skip to content

Commit

Permalink
scsi: cxlflash: Isolate external module dependencies
Browse files Browse the repository at this point in the history
Depending on the underlying transport, cxlflash has a dependency on either
the CXL or OCXL drivers, which are enabled via their Kconfig option.
Instead of having a module wide dependency on these config options, it is
better to isolate the object modules that are dependent on the CXL and OCXL
drivers and adjust the module dependencies accordingly.

This commit isolates the object files that are dependent on CXL and/or
OCXL. The cxl/ocxl fops used in the core driver are tucked under an ifdef to
avoid compilation errors.

Signed-off-by: Uma Krishnan <ukrishn@linux.vnet.ibm.com>
Acked-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
  • Loading branch information
Uma Krishnan authored and Martin K. Petersen committed May 18, 2018
1 parent de5d35a commit cd43c22
Show file tree
Hide file tree
Showing 7 changed files with 16 additions and 7 deletions.
2 changes: 1 addition & 1 deletion drivers/scsi/cxlflash/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

config CXLFLASH
tristate "Support for IBM CAPI Flash"
depends on PCI && SCSI && CXL && OCXL && EEH
depends on PCI && SCSI && (CXL || OCXL) && EEH
select IRQ_POLL
default m
help
Expand Down
4 changes: 3 additions & 1 deletion drivers/scsi/cxlflash/Makefile
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
obj-$(CONFIG_CXLFLASH) += cxlflash.o
cxlflash-y += main.o superpipe.o lunmgt.o vlun.o cxl_hw.o ocxl_hw.o
cxlflash-y += main.o superpipe.o lunmgt.o vlun.o
cxlflash-$(CONFIG_CXL) += cxl_hw.o
cxlflash-$(CONFIG_OCXL) += ocxl_hw.o
4 changes: 3 additions & 1 deletion drivers/scsi/cxlflash/lunmgt.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,11 @@
* 2 of the License, or (at your option) any later version.
*/

#include <misc/cxl.h>
#include <asm/unaligned.h>

#include <linux/interrupt.h>
#include <linux/pci.h>

#include <scsi/scsi_host.h>
#include <uapi/scsi/cxlflash_ioctl.h>

Expand Down
2 changes: 0 additions & 2 deletions drivers/scsi/cxlflash/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@

#include <asm/unaligned.h>

#include <misc/cxl.h>

#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_host.h>
#include <uapi/scsi/cxlflash_ioctl.h>
Expand Down
5 changes: 5 additions & 0 deletions drivers/scsi/cxlflash/main.h
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,15 @@ cxlflash_assign_ops(struct dev_dependent_vals *ddv)
{
const struct cxlflash_backend_ops *ops = NULL;

#ifdef CONFIG_OCXL
if (ddv->flags & CXLFLASH_OCXL_DEV)
ops = &cxlflash_ocxl_ops;
#endif

#ifdef CONFIG_CXL
if (!(ddv->flags & CXLFLASH_OCXL_DEV))
ops = &cxlflash_cxl_ops;
#endif

return ops;
}
Expand Down
3 changes: 2 additions & 1 deletion drivers/scsi/cxlflash/superpipe.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@

#include <linux/delay.h>
#include <linux/file.h>
#include <linux/interrupt.h>
#include <linux/pci.h>
#include <linux/syscalls.h>
#include <misc/cxl.h>
#include <asm/unaligned.h>

#include <scsi/scsi.h>
Expand Down
3 changes: 2 additions & 1 deletion drivers/scsi/cxlflash/vlun.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
* 2 of the License, or (at your option) any later version.
*/

#include <linux/interrupt.h>
#include <linux/pci.h>
#include <linux/syscalls.h>
#include <misc/cxl.h>
#include <asm/unaligned.h>
#include <asm/bitsperlong.h>

Expand Down

0 comments on commit cd43c22

Please sign in to comment.