Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Feb 2009 16:52:08 +0100 (CET)
From:      cyril.elkaim@free.fr
To:        freebsd drivers <freebsd-drivers@freebsd.org>
Subject:   patch aoe for freebsd 7
Message-ID:  <124214240.637761234194728394.JavaMail.root@zimbra10-e2.priv.proxad.net>
In-Reply-To: <1306049302.637521234194665378.JavaMail.root@zimbra10-e2.priv.proxad.net>

next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_19661_670433207.1234194728393
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hello there,

Here you'll find an attached patch to compile the coraid aoe driver with freebsd 7. I'm not able to validate this driver myself, so if somebody can test it I will be very grateful.

thanks,
Cyril Elkaim
------=_Part_19661_670433207.1234194728393
Content-Type: text/x-patch; name=aoe7.patch
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=aoe7.patch

diff -u dev/aoe/Makefile aoe7/Makefile
--- dev/aoe/Makefile	2006-05-24 21:48:07.000000000 +0200
+++ aoe7/Makefile	2009-02-09 15:43:18.000000000 +0100
@@ -3,5 +3,6 @@
 KMOD=	aoe
 SRCS=	aoecmd.c aoedev.c aoenet.c aoeblk.c aoemain.c
 CFLAGS+= -DFORCE_NETWORK_HOOK -I../..
+EXPORT_SYMS= YES
 
 .include <bsd.kmod.mk>
diff -u dev/aoe/aoeblk.c aoe7/aoeblk.c
--- dev/aoe/aoeblk.c	2006-05-25 19:19:23.000000000 +0200
+++ aoe7/aoeblk.c	2009-02-09 14:46:41.000000000 +0100
@@ -27,6 +27,8 @@
  *
  * $FreeBSD: src/sys/dev/aoe/aoeblk.c,v 1.23.2.5 2004/09/22 16:50:41 ?? Exp $
  */
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/sys/dev/aoe/aoeblk.c,v 1.23.2.5 2004/09/22 16:50:41 ?? Exp $");
 
 /*
  * aoeblk.c
diff -u dev/aoe/aoecmd.c aoe7/aoecmd.c
--- dev/aoe/aoecmd.c	2006-05-25 19:13:09.000000000 +0200
+++ aoe7/aoecmd.c	2009-02-09 13:00:16.000000000 +0100
@@ -449,6 +449,17 @@
         return (n);
 }
 
+static u_long
+lhget48(u_char *p)
+{
+        u_long n;
+
+        n = lhget32(p+2);
+        n <<= 16;
+        n |= lhget16(p);
+        return (n);
+}
+
 
 static void
 ataid_complete(struct aoedev *d, char *id)
@@ -460,7 +471,7 @@
 	n = lhget16(id + (83<<1));		/* Command set supported. */
 	if (n & (1<<10)) {			/* Lba48 */
 		atomic_set_32(&d->ad_flags, DEVFL_EXT);
-		d->ad_nsectors = lhget32(id + (100<<1));	/* n lba48 sectors. */
+		d->ad_nsectors = lhget48(id + (100<<1));	/* n lba48 sectors. */
 	} else {
 		atomic_clear_32(&d->ad_flags, DEVFL_EXT);
 		d->ad_nsectors = lhget32(id + (60<<1));	/* n lba28 sectors. */
diff -u dev/aoe/aoenet.c aoe7/aoenet.c
--- dev/aoe/aoenet.c	2006-05-25 18:10:11.000000000 +0200
+++ aoe7/aoenet.c	2009-02-09 15:38:05.000000000 +0100
@@ -48,6 +48,8 @@
 #include <net/if_var.h>
 #include <net/if_types.h>
 #include <net/if_arp.h>
+#include <net/if_dl.h>
+#include <net/if_var.h>
 #include <net/netisr.h>
 
 #include <dev/aoe/aoe.h>
@@ -77,8 +79,10 @@
 #define NECODES (sizeof(aoe_errlist) /  sizeof(char *) - 1)
 #if (__FreeBSD_version < 600000)
 #define IFPADDR(ifp) (((struct arpcom *) (ifp))->ac_enaddr)
+#elif (__FreeBSD_version < 700000)
+#define IFPADDR(ifp) IFP2ENADDR(ifp)
 #else
-#define IFPADDR(ifp) IFP2ENADDR(ifp) 
+#define IFPADDR(ifp) IF_LLADDR(ifp)
 #endif
 #define IFLISTSZ 1024
 
@@ -96,7 +100,7 @@
 #include <sys/limits.h>
 #define IDX(c)  ((u_char)(c) / LONG_BIT)
 #define BIT(c)  ((u_long)1 << ((u_char)(c) % LONG_BIT))
- 
+  
 static size_t
 strspn(const char *s, const char *charset)
 {
@@ -275,7 +279,7 @@
 	TAILQ_FOREACH(ifp, &ifnet, if_link) {
 		if (!is_aoe_netif(ifp))
 			continue;
-		memcpy(h->ah_src, IFPADDR(ifp), sizeof(h->ah_src));
+		memcpy(h->ah_src, (u_char *)IFPADDR(ifp), sizeof(h->ah_src));
 		m = m_copypacket(m0, M_DONTWAIT);
 		if (m == NULL) {
 			IPRINTK("m_copypacket failure\n");
@@ -291,7 +295,7 @@
 u_char *
 aoenet_enaddr(struct ifnet *ifp)
 {
-	return (IFPADDR(ifp));
+  return (u_char *)(IFPADDR(ifp));
 }
 
 u_int

------=_Part_19661_670433207.1234194728393--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?124214240.637761234194728394.JavaMail.root>