diff --git a/scripts/specialize-patch b/scripts/specialize-patch index 26bd3dfc1..e75c60c46 100755 --- a/scripts/specialize-patch +++ b/scripts/specialize-patch @@ -148,6 +148,9 @@ function evaluate(stmnt, pattern, arg, op, result) { gsub("defined\\(HAVE_IB_DMA_MAP_OPS\\)", "(LINUX_VERSION_CODE >= KERNEL_VERSION(0, 0, 0))", stmnt) + gsub("defined\\(HAVE_IB_SG_DMA_LEN\\)", + "(LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0))", stmnt) + gsub("defined(ENABLE_NPIV)", 0, stmnt) gsub("defined(FC_VPORT_CREATE_DEFINED)", 0, stmnt) @@ -398,6 +401,7 @@ function handle_if(evaluated) || $0 ~ "HAVE_IB_DMA_MAP_OPS" \ || $0 ~ "HAVE_IB_QUERY_DEVICE" \ || $0 ~ "HAVE_IB_SET_CPI_RESP_TIME" \ + || $0 ~ "HAVE_IB_SG_DMA_LEN" \ || $0 ~ "HAVE_RDMA_DESTROY_AH" \ || $0 ~ "HAVE_RDMA_DESTROY_AH_WITH_FLAGS" \ || $0 ~ "HAVE_RDMA_QUERY_GID" \ diff --git a/scst/include/backport.h b/scst/include/backport.h index 7f8bb03a7..6df7ca081 100644 --- a/scst/include/backport.h +++ b/scst/include/backport.h @@ -1588,11 +1588,6 @@ static inline struct ib_pd *ib_alloc_pd_backport(struct ib_device *device) }) #endif -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0) -#define ib_sg_dma_len(dev, sg) sg_dma_len(sg) -#define ib_sg_dma_address(dev, sg) sg_dma_address(sg) -#endif - /* */ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24) || \ diff --git a/srpt/Makefile b/srpt/Makefile index ced096d17..65d562afd 100644 --- a/srpt/Makefile +++ b/srpt/Makefile @@ -212,6 +212,11 @@ conftest/ib_set_cpi_resp_time/result-$(KVER).txt: \ echo "$(call run_conftest,ib_set_cpi_resp_time, \ -DHAVE_IB_SET_CPI_RESP_TIME)" >"$@" +conftest/ib_sg_dma_len/result-$(KVER).txt: \ + conftest/ib_sg_dma_len/ib_sg_dma_len.c \ + conftest/ib_sg_dma_len/Makefile + echo "$(call run_conftest_bool,ib_sg_dma_len,HAVE_IB_SG_DMA_LEN)" >"$@" + conftest/mad_handler_takes_send_buf/result-$(KVER).txt: \ conftest/mad_handler_takes_send_buf/mad_handler_takes_send_buf.c\ conftest/mad_handler_takes_send_buf/Makefile diff --git a/srpt/conftest/ib_sg_dma_len/Makefile b/srpt/conftest/ib_sg_dma_len/Makefile new file mode 100644 index 000000000..199542f31 --- /dev/null +++ b/srpt/conftest/ib_sg_dma_len/Makefile @@ -0,0 +1,3 @@ +LINUXINCLUDE := $(PRE_CFLAGS) $(LINUXINCLUDE) + +obj-m += ib_sg_dma_len.o diff --git a/srpt/conftest/ib_sg_dma_len/ib_sg_dma_len.c b/srpt/conftest/ib_sg_dma_len/ib_sg_dma_len.c new file mode 100644 index 000000000..4ac94b31c --- /dev/null +++ b/srpt/conftest/ib_sg_dma_len/ib_sg_dma_len.c @@ -0,0 +1,11 @@ +#include +#include + +#undef ib_sg_dma_len + +static int modinit(void) +{ + return ib_sg_dma_len != NULL; +} + +module_init(modinit); diff --git a/srpt/src/ib_srpt.h b/srpt/src/ib_srpt.h index 2af8422ba..ce680261a 100644 --- a/srpt/src/ib_srpt.h +++ b/srpt/src/ib_srpt.h @@ -66,6 +66,11 @@ struct srpt_nexus; +#if !HAVE_IB_SG_DMA_LEN +#define ib_sg_dma_len(dev, sg) sg_dma_len(sg) +#define ib_sg_dma_address(dev, sg) sg_dma_address(sg) +#endif + #if !HAVE_SRP_DATA_DESC_IMM enum { SRP_DATA_DESC_IMM = 3,