diff --git a/iscsi-scst/Makefile b/iscsi-scst/Makefile index 5a83d7516..9827cac51 100644 --- a/iscsi-scst/Makefile +++ b/iscsi-scst/Makefile @@ -55,7 +55,7 @@ ifeq ($(INSTALL_MOD_PATH),) endif INSTALL_DIR := $(INSTALL_MOD_PATH)/lib/modules/$(KVER)/extra -INFINIBAND_ENABLED = $(shell if grep -wq 'ib_register_client' $$(dirname "$(KDIR)")/modules.symbols; then echo true; else echo false; fi) +INFINIBAND_ENABLED = $(shell syms=$$(dirname "$(KDIR)")/modules.symbols; if [ -e "$$syms" ] && grep -wq 'ib_register_client' "$$syms" || grep -q "^CONFIG_INFINIBAND=[my]$$" "$(KDIR)/.config"; then echo true; else echo false; fi) all: progs mods diff --git a/iscsi-scst/conftest/ib_client_remove/ib_client_remove.c b/iscsi-scst/conftest/ib_client_remove/ib_client_remove.c index 77cac3525..67f903d66 100644 --- a/iscsi-scst/conftest/ib_client_remove/ib_client_remove.c +++ b/iscsi-scst/conftest/ib_client_remove/ib_client_remove.c @@ -1,15 +1,15 @@ #include #include -static void client_remove(struct ib_device *dev, void *client_data) +static void remove_one(struct ib_device *device, void *client_data) { } static int modinit(void) { - struct ib_client c = { .remove = client_remove }; + struct ib_client c = { .remove = remove_one }; - return (uintptr_t)c.remove; + return c.remove != NULL; } module_init(modinit); diff --git a/iscsi-scst/conftest/ib_dma_map_ops/ib_dma_map_ops.c b/iscsi-scst/conftest/ib_dma_map_ops/ib_dma_map_ops.c index 2aeb8bbf2..7810f9ff7 100644 --- a/iscsi-scst/conftest/ib_dma_map_ops/ib_dma_map_ops.c +++ b/iscsi-scst/conftest/ib_dma_map_ops/ib_dma_map_ops.c @@ -1,11 +1,9 @@ #include #include -static struct ib_device *dev; - static int modinit(void) { - return dev->dma_ops != NULL; + return ib_dma_mapping_error(NULL, 0) != 0; } module_init(modinit); diff --git a/srpt/conftest/ib_client_remove/ib_client_remove.c b/srpt/conftest/ib_client_remove/ib_client_remove.c index 77cac3525..67f903d66 100644 --- a/srpt/conftest/ib_client_remove/ib_client_remove.c +++ b/srpt/conftest/ib_client_remove/ib_client_remove.c @@ -1,15 +1,15 @@ #include #include -static void client_remove(struct ib_device *dev, void *client_data) +static void remove_one(struct ib_device *device, void *client_data) { } static int modinit(void) { - struct ib_client c = { .remove = client_remove }; + struct ib_client c = { .remove = remove_one }; - return (uintptr_t)c.remove; + return c.remove != NULL; } module_init(modinit);