svn commit: r185199 - head/sys/dev/cxgb

Kip Macy kmacy at FreeBSD.org
Sat Nov 22 23:30:08 PST 2008


Author: kmacy
Date: Sun Nov 23 07:30:07 2008
New Revision: 185199
URL: http://svn.freebsd.org/changeset/base/185199

Log:
  Add backward compatibility ifdefs for non-multiq kernels

Modified:
  head/sys/dev/cxgb/cxgb_config.h
  head/sys/dev/cxgb/cxgb_main.c
  head/sys/dev/cxgb/cxgb_osdep.h

Modified: head/sys/dev/cxgb/cxgb_config.h
==============================================================================
--- head/sys/dev/cxgb/cxgb_config.h	Sun Nov 23 05:39:49 2008	(r185198)
+++ head/sys/dev/cxgb/cxgb_config.h	Sun Nov 23 07:30:07 2008	(r185199)
@@ -33,6 +33,8 @@ $FreeBSD$
 #define _CXGB_CONFIG_H_
 
 #define	CONFIG_CHELSIO_T3_CORE
-#define	IFNET_MULTIQUEUE
 
+#if __FreeBSD_version > 800053
+#define	IFNET_MULTIQUEUE
+#endif
 #endif

Modified: head/sys/dev/cxgb/cxgb_main.c
==============================================================================
--- head/sys/dev/cxgb/cxgb_main.c	Sun Nov 23 05:39:49 2008	(r185198)
+++ head/sys/dev/cxgb/cxgb_main.c	Sun Nov 23 07:30:07 2008	(r185199)
@@ -946,8 +946,9 @@ cxgb_port_attach(device_t dev)
 	}
 
 	ether_ifattach(ifp, p->hw_addr);
-
+#ifdef IFNET_MULTIQUEUE
 	ifp->if_transmit = cxgb_pcpu_transmit;
+#endif
 	/*
 	 * Only default to jumbo frames on 10GigE
 	 */

Modified: head/sys/dev/cxgb/cxgb_osdep.h
==============================================================================
--- head/sys/dev/cxgb/cxgb_osdep.h	Sun Nov 23 05:39:49 2008	(r185198)
+++ head/sys/dev/cxgb/cxgb_osdep.h	Sun Nov 23 07:30:07 2008	(r185199)
@@ -117,6 +117,30 @@ struct t3_mbuf_hdr {
 #define TOE_SUPPORTED
 #endif
 
+#if __FreeBSD_version < 800054
+#if defined (__GNUC__)
+  #if #cpu(i386) || defined __i386 || defined i386 || defined __i386__ || #cpu(x86_64) || defined __x86_64__
+    #define mb()  __asm__ __volatile__ ("mfence;": : :"memory")
+    #define wmb()  __asm__ __volatile__ ("sfence;": : :"memory")
+    #define rmb()  __asm__ __volatile__ ("lfence;": : :"memory")
+  #elif #cpu(sparc64) || defined sparc64 || defined __sparcv9 
+    #define mb()  __asm__ __volatile__ ("membar #MemIssue": : :"memory")
+    #define wmb() mb()
+    #define rmb() mb()
+  #elif #cpu(sparc) || defined sparc || defined __sparc__
+    #define mb()  __asm__ __volatile__ ("stbar;": : :"memory")
+    #define wmb() mb()
+    #define rmb() mb()
+#else
+    #define wmb() mb()
+    #define rmb() mb()
+    #define mb() 	/* XXX just to make this compile */
+  #endif
+#else
+  #error "unknown compiler"
+#endif
+#endif
+
 #define __read_mostly __attribute__((__section__(".data.read_mostly")))
 
 /*


More information about the svn-src-head mailing list