diff --git a/srpt/Makefile b/srpt/Makefile index 1e9817d1a..8ed66cbc6 100644 --- a/srpt/Makefile +++ b/srpt/Makefile @@ -77,10 +77,13 @@ endif OFED_MODULE_SYMVERS:=$(OFED_KERNEL_DIR)/$(MODULE_SYMVERS) endif -CREATE_SEND_MAD_FLAG = $(shell $(MAKE) -C $(KDIR) SUBDIRS=$(shell pwd)/conftest/create_send_mad PRE_CFLAGS="$(OFED_CFLAGS)" >/dev/null 2>&1 && echo -DCREATE_SEND_MAD_HAS_AH_ARG) +CREATE_SEND_MAD_AH_FLAG := $(shell $(MAKE) -C $(KDIR) SUBDIRS=$(shell pwd)/conftest/create_send_mad_ah PRE_CFLAGS="$(OFED_CFLAGS) -Werror" >/dev/null 2>&1 && echo -DCREATE_SEND_MAD_HAS_AH_ARG) +ifeq ($(CREATE_SEND_MAD_AH_FLAG),) + CREATE_SEND_MAD_BASE_FLAG := $(shell $(MAKE) -C $(KDIR) SUBDIRS=$(shell pwd)/conftest/create_send_mad_base PRE_CFLAGS="$(OFED_CFLAGS) -Werror" >/dev/null 2>&1 && echo -DCREATE_SEND_MAD_HAS_BASE_ARG) +endif GID_CHANGE_FLAG = $(shell $(MAKE) -C $(KDIR) SUBDIRS=$(shell pwd)/conftest/gid_change PRE_CFLAGS="$(OFED_CFLAGS)" >/dev/null 2>&1 && echo -DHAVE_IB_EVENT_GID_CHANGE) REGISTER_MAD_AGENT_FLAG = $(shell $(MAKE) -C $(KDIR) SUBDIRS=$(shell pwd)/conftest/register_mad_agent PRE_CFLAGS="$(OFED_CFLAGS) -Werror" >/dev/null 2>&1 && echo -DREGISTER_MAD_AGENT_HAS_FLAGS_ARG) -PRE_CFLAGS=$(OFED_CFLAGS) $(CREATE_SEND_MAD_FLAG) $(GID_CHANGE_FLAG) $(REGISTER_MAD_AGENT_FLAG) -DOFED_FLAVOR=$(OFED_FLAVOR) +PRE_CFLAGS=$(OFED_CFLAGS) $(CREATE_SEND_MAD_AH_FLAG) $(CREATE_SEND_MAD_BASE_FLAG) $(GID_CHANGE_FLAG) $(REGISTER_MAD_AGENT_FLAG) -DOFED_FLAVOR=$(OFED_FLAVOR) all: src/$(MODULE_SYMVERS) $(MAKE) -C $(KDIR) SUBDIRS=$(shell pwd)/src \ diff --git a/srpt/conftest/create_send_mad/Makefile b/srpt/conftest/create_send_mad_ah/Makefile similarity index 61% rename from srpt/conftest/create_send_mad/Makefile rename to srpt/conftest/create_send_mad_ah/Makefile index 0175c993c..37fdb6e9f 100644 --- a/srpt/conftest/create_send_mad/Makefile +++ b/srpt/conftest/create_send_mad_ah/Makefile @@ -1,3 +1,3 @@ LINUXINCLUDE := $(PRE_CFLAGS) $(LINUXINCLUDE) -obj-m += create_send_mad.o +obj-m += create_send_mad_ah.o diff --git a/srpt/conftest/create_send_mad/create_send_mad.c b/srpt/conftest/create_send_mad_ah/create_send_mad_ah.c similarity index 100% rename from srpt/conftest/create_send_mad/create_send_mad.c rename to srpt/conftest/create_send_mad_ah/create_send_mad_ah.c diff --git a/srpt/conftest/create_send_mad_base/Makefile b/srpt/conftest/create_send_mad_base/Makefile new file mode 100644 index 000000000..92f153d51 --- /dev/null +++ b/srpt/conftest/create_send_mad_base/Makefile @@ -0,0 +1,3 @@ +LINUXINCLUDE := $(PRE_CFLAGS) $(LINUXINCLUDE) + +obj-m += create_send_mad_base.o diff --git a/srpt/conftest/create_send_mad_base/create_send_mad_base.c b/srpt/conftest/create_send_mad_base/create_send_mad_base.c new file mode 100644 index 000000000..2f48902e3 --- /dev/null +++ b/srpt/conftest/create_send_mad_base/create_send_mad_base.c @@ -0,0 +1,13 @@ +#include +#include + +static int modinit(void) +{ + struct ib_mad_send_buf *b; + + b = ib_create_send_mad(NULL, 0, 0, 0, 0, 0, 0, 0); + + return b != 0; +} + +module_init(modinit); diff --git a/srpt/src/ib_srpt.c b/srpt/src/ib_srpt.c index 3aef620f5..4aa685e1c 100644 --- a/srpt/src/ib_srpt.c +++ b/srpt/src/ib_srpt.c @@ -602,7 +602,11 @@ static void srpt_mad_recv_handler(struct ib_mad_agent *mad_agent, NULL, #endif 0, IB_MGMT_DEVICE_HDR, IB_MGMT_DEVICE_DATA, - GFP_KERNEL); + GFP_KERNEL +#ifdef CREATE_SEND_MAD_HAS_BASE_ARG + , 0 +#endif + ); if (IS_ERR(rsp)) goto err_rsp;