On 2012-11-10 01:32, Xin LI wrote:
Author: delphij
Date: Sat Nov 10 00:32:47 2012
New Revision: 242842
URL: http://svnweb.freebsd.org/changeset/base/242842

Log:
   Attempt toward a buildable universe by silenting a few warnings for OFED.
...
-OFEDNOERR=     -Wno-cast-qual -Wno-pointer-arith -fms-extensions
+OFEDNOERR=     -Wno-cast-qual -Wno-pointer-arith -fms-extensions -Wno-switch 
-Wno-sometimes-uninitialized -Wno-conversion -Wno-initializer-overrides

A few of these warnings point to real bugs, e.g. the uninitialized
packet_length variable in ib_ud_header_init(), and the incorrect value
passed to rdma_notify() in sdp_rx_comp_work().  The others are not that
severe, but very easy to fix, as you can see from the attached diff.

If anything, I hope the maintainer(s) will check with upstream whether
these bugs are already fixed?  Meanwhile, I see no reason why we could
not do a local fix.
Index: sys/conf/kern.pre.mk
===================================================================
--- sys/conf/kern.pre.mk	(revision 242861)
+++ sys/conf/kern.pre.mk	(working copy)
@@ -156,7 +156,7 @@ NORMAL_LINT=	${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]
 # Infiniband C flags.  Correct include paths and omit errors that linux
 # does not honor.
 OFEDINCLUDES=	-I$S/ofed/include/
-OFEDNOERR=	-Wno-cast-qual -Wno-pointer-arith -fms-extensions -Wno-switch -Wno-sometimes-uninitialized -Wno-conversion -Wno-initializer-overrides
+OFEDNOERR=	-Wno-cast-qual -Wno-pointer-arith -fms-extensions
 OFEDCFLAGS=	${CFLAGS:N-I*} ${OFEDINCLUDES} ${CFLAGS:M-I*} ${OFEDNOERR}
 OFED_C_NOIMP=	${CC} -c -o ${.TARGET} ${OFEDCFLAGS} ${WERROR} ${PROF}
 OFED_C=		${OFED_C_NOIMP} ${.IMPSRC}
Index: sys/modules/mthca/Makefile
===================================================================
--- sys/modules/mthca/Makefile	(revision 242861)
+++ sys/modules/mthca/Makefile	(working copy)
@@ -28,4 +28,4 @@ opt_inet6.h:
 
 .include <bsd.kmod.mk>
 
-CFLAGS+= -Wno-cast-qual -Wno-pointer-arith -fms-extensions  -Wno-switch -Wno-sometimes-uninitialized -Wno-conversion -Wno-initializer-overrides
+CFLAGS+= -Wno-cast-qual -Wno-pointer-arith -fms-extensions
Index: sys/ofed/drivers/infiniband/core/cma.c
===================================================================
--- sys/ofed/drivers/infiniband/core/cma.c	(revision 242861)
+++ sys/ofed/drivers/infiniband/core/cma.c	(working copy)
@@ -1312,7 +1312,7 @@ static int cma_iw_handler(struct iw_cm_id *iw_id,
 		*sin = iw_event->local_addr;
 		sin = (struct sockaddr_in *) &id_priv->id.route.addr.dst_addr;
 		*sin = iw_event->remote_addr;
-		switch (iw_event->status) {
+		switch ((int)iw_event->status) {
 		case 0:
 			event.event = RDMA_CM_EVENT_ESTABLISHED;
 			break;
Index: sys/ofed/drivers/infiniband/core/ud_header.c
===================================================================
--- sys/ofed/drivers/infiniband/core/ud_header.c	(revision 242861)
+++ sys/ofed/drivers/infiniband/core/ud_header.c	(working copy)
@@ -230,7 +230,7 @@ void ib_ud_header_init(int     		    payload_bytes
 		       int		    immediate_present,
 		       struct ib_ud_header *header)
 {
-	u16 packet_length;
+	u16 packet_length = 0;
 
 	memset(header, 0, sizeof *header);
 
Index: sys/ofed/drivers/infiniband/ulp/sdp/sdp_rx.c
===================================================================
--- sys/ofed/drivers/infiniband/ulp/sdp/sdp_rx.c	(revision 242861)
+++ sys/ofed/drivers/infiniband/ulp/sdp/sdp_rx.c	(working copy)
@@ -590,7 +590,7 @@ sdp_rx_comp_work(struct work_struct *work)
 	if (unlikely(!ssk->poll_cq)) {
 		struct rdma_cm_id *id = ssk->id;
 		if (id && id->qp)
-			rdma_notify(id, RDMA_CM_EVENT_ESTABLISHED);
+			rdma_notify(id, IB_EVENT_COMM_EST);
 		goto out;
 	}
 
Index: sys/ofed/include/linux/pci.h
===================================================================
--- sys/ofed/include/linux/pci.h	(revision 242861)
+++ sys/ofed/include/linux/pci.h	(working copy)
@@ -73,10 +73,12 @@ struct pci_device_id {
 #define	PCI_DEVICE_ID_MELLANOX_SINAI		0x6274
 
 
-#define PCI_VDEVICE(vendor, device)					\
-	    PCI_VENDOR_ID_##vendor, (device), PCI_ANY_ID, PCI_ANY_ID, 0, 0
-#define	PCI_DEVICE(vendor, device)					\
-	    (vendor), (device), PCI_ANY_ID, PCI_ANY_ID, 0, 0
+#define PCI_VDEVICE(_vendor, _device)					\
+	    .vendor = PCI_VENDOR_ID_##_vendor, .device = (_device),	\
+	    .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID
+#define	PCI_DEVICE(_vendor, _device)					\
+	    .vendor = (_vendor), .device = (_device),			\
+	    .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID
 
 #define	to_pci_dev(n)	container_of(n, struct pci_dev, dev)
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to