Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 Sep 2007 17:26:01 GMT
From:      Marko Zec <zec@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 126186 for review
Message-ID:  <200709081726.l88HQ1Ca071785@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=126186

Change 126186 by zec@zec_tpx32 on 2007/09/08 17:25:17

	IFC @ 126179

Affected files ...

.. //depot/projects/vimage/src/sys/amd64/linux32/linux32_proto.h#4 integrate
.. //depot/projects/vimage/src/sys/amd64/linux32/linux32_syscall.h#4 integrate
.. //depot/projects/vimage/src/sys/amd64/linux32/linux32_sysent.c#4 integrate
.. //depot/projects/vimage/src/sys/amd64/linux32/syscalls.master#4 integrate
.. //depot/projects/vimage/src/sys/arm/xscale/i80321/i80321.c#2 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_misc.c#6 integrate
.. //depot/projects/vimage/src/sys/compat/linux/linux_misc.c#9 integrate
.. //depot/projects/vimage/src/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/acpica/acpi_cpu.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/ath/if_ath.c#12 integrate
.. //depot/projects/vimage/src/sys/dev/awi/awi.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/ipw/if_ipw.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/isp/isp_freebsd.h#7 integrate
.. //depot/projects/vimage/src/sys/dev/iwi/if_iwi.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_82598.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_api.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_api.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_common.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_common.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_osdep.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_phy.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_phy.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_type.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/ral/rt2560.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/ral/rt2661.c#8 integrate
.. //depot/projects/vimage/src/sys/dev/ray/if_ray.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/if_rum.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/if_ural.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/usb/if_zyd.c#1 branch
.. //depot/projects/vimage/src/sys/dev/usb/if_zydfw.h#1 branch
.. //depot/projects/vimage/src/sys/dev/usb/if_zydreg.h#1 branch
.. //depot/projects/vimage/src/sys/dev/usb/usbdevs#11 integrate
.. //depot/projects/vimage/src/sys/dev/wi/if_wi.c#9 integrate
.. //depot/projects/vimage/src/sys/fs/msdosfs/direntry.h#2 integrate
.. //depot/projects/vimage/src/sys/fs/msdosfs/msdosfs_conv.c#3 integrate
.. //depot/projects/vimage/src/sys/fs/msdosfs/msdosfs_lookup.c#3 integrate
.. //depot/projects/vimage/src/sys/fs/msdosfs/msdosfs_vnops.c#7 integrate
.. //depot/projects/vimage/src/sys/geom/eli/g_eli.h#2 integrate
.. //depot/projects/vimage/src/sys/geom/eli/g_eli_crypto.c#3 integrate
.. //depot/projects/vimage/src/sys/i386/isa/isa.c#3 integrate
.. //depot/projects/vimage/src/sys/i386/linux/linux_proto.h#5 integrate
.. //depot/projects/vimage/src/sys/i386/linux/linux_syscall.h#5 integrate
.. //depot/projects/vimage/src/sys/i386/linux/linux_sysent.c#5 integrate
.. //depot/projects/vimage/src/sys/i386/linux/syscalls.master#5 integrate
.. //depot/projects/vimage/src/sys/kern/kern_acct.c#5 integrate
.. //depot/projects/vimage/src/sys/kern/kern_ktrace.c#6 integrate
.. //depot/projects/vimage/src/sys/kern/kern_sysctl.c#8 integrate
.. //depot/projects/vimage/src/sys/kern/kern_timeout.c#6 integrate
.. //depot/projects/vimage/src/sys/kern/vfs_syscalls.c#8 integrate
.. //depot/projects/vimage/src/sys/modules/ixgbe/Makefile#1 branch
.. //depot/projects/vimage/src/sys/modules/zyd/Makefile#1 branch
.. //depot/projects/vimage/src/sys/net/if_lagg.c#9 integrate
.. //depot/projects/vimage/src/sys/net80211/_ieee80211.h#7 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211.h#4 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_freebsd.h#6 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_ht.c#2 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_input.c#7 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_ioctl.c#5 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_ioctl.h#3 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_node.c#6 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_proto.c#6 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_proto.h#5 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_var.h#5 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_fw2.c#25 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_asconf.c#13 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_auth.c#10 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_bsd_addr.c#8 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_cc_functions.c#3 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_constants.h#15 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_indata.c#17 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_input.c#18 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_lock_bsd.h#7 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_os_bsd.h#14 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_output.c#17 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_output.h#8 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_pcb.c#17 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_peeloff.c#11 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_timer.c#13 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_usrreq.c#18 integrate
.. //depot/projects/vimage/src/sys/netinet/sctputil.c#18 integrate
.. //depot/projects/vimage/src/sys/netinet/sctputil.h#12 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_subr.c#31 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_timer.c#12 edit
.. //depot/projects/vimage/src/sys/netinet/tcp_timer.h#6 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_usrreq.c#12 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_var.h#15 integrate
.. //depot/projects/vimage/src/sys/netinet6/sctp6_usrreq.c#18 integrate
.. //depot/projects/vimage/src/sys/netinet6/udp6_usrreq.c#18 edit
.. //depot/projects/vimage/src/sys/sparc64/fhc/fhc.c#4 integrate
.. //depot/projects/vimage/src/sys/sparc64/include/bus_common.h#2 integrate
.. //depot/projects/vimage/src/sys/sparc64/include/intr_machdep.h#4 integrate
.. //depot/projects/vimage/src/sys/sparc64/pci/psycho.c#7 integrate
.. //depot/projects/vimage/src/sys/sparc64/pci/psychoreg.h#4 integrate
.. //depot/projects/vimage/src/sys/sparc64/sbus/sbus.c#6 integrate
.. //depot/projects/vimage/src/sys/sparc64/sbus/sbusreg.h#3 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/exception.S#3 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/intr_machdep.c#4 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/tick.c#2 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/upa.c#4 integrate
.. //depot/projects/vimage/src/sys/sys/mount.h#6 integrate

Differences ...

==== //depot/projects/vimage/src/sys/amd64/linux32/linux32_proto.h#4 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call prototypes.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.31 2007/03/30 00:08:21 jkim Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.28 2007/03/30 00:06:21 jkim Exp 
+ * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.32 2007/08/28 12:36:23 kib Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.29 2007/08/28 12:26:34 kib Exp 
  */
 
 #ifndef _LINUX_SYSPROTO_H_
@@ -734,6 +734,11 @@
 	char uaddr2_l_[PADL_(void *)]; void * uaddr2; char uaddr2_r_[PADR_(void *)];
 	char val3_l_[PADL_(int)]; int val3; char val3_r_[PADR_(int)];
 };
+struct linux_sched_getaffinity_args {
+	char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
+	char len_l_[PADL_(l_uint)]; l_uint len; char len_r_[PADR_(l_uint)];
+	char user_mask_ptr_l_[PADL_(l_ulong *)]; l_ulong * user_mask_ptr; char user_mask_ptr_r_[PADR_(l_ulong *)];
+};
 struct linux_set_thread_area_args {
 	char desc_l_[PADL_(struct l_user_desc *)]; struct l_user_desc * desc; char desc_r_[PADR_(struct l_user_desc *)];
 };
@@ -1099,6 +1104,7 @@
 int	linux_fremovexattr(struct thread *, struct linux_fremovexattr_args *);
 int	linux_tkill(struct thread *, struct linux_tkill_args *);
 int	linux_sys_futex(struct thread *, struct linux_sys_futex_args *);
+int	linux_sched_getaffinity(struct thread *, struct linux_sched_getaffinity_args *);
 int	linux_set_thread_area(struct thread *, struct linux_set_thread_area_args *);
 int	linux_fadvise64(struct thread *, struct linux_fadvise64_args *);
 int	linux_exit_group(struct thread *, struct linux_exit_group_args *);
@@ -1172,6 +1178,13 @@
 
 #endif /* COMPAT_FREEBSD4 */
 
+
+#ifdef COMPAT_FREEBSD6
+
+#define	nosys	linux_nosys
+
+#endif /* COMPAT_FREEBSD6 */
+
 #define	LINUX_SYS_AUE_linux_fork	AUE_FORK
 #define	LINUX_SYS_AUE_linux_open	AUE_OPEN_RWTC
 #define	LINUX_SYS_AUE_linux_waitpid	AUE_WAIT4
@@ -1346,6 +1359,7 @@
 #define	LINUX_SYS_AUE_linux_fremovexattr	AUE_NULL
 #define	LINUX_SYS_AUE_linux_tkill	AUE_NULL
 #define	LINUX_SYS_AUE_linux_sys_futex	AUE_NULL
+#define	LINUX_SYS_AUE_linux_sched_getaffinity	AUE_NULL
 #define	LINUX_SYS_AUE_linux_set_thread_area	AUE_NULL
 #define	LINUX_SYS_AUE_linux_fadvise64	AUE_NULL
 #define	LINUX_SYS_AUE_linux_exit_group	AUE_EXIT

==== //depot/projects/vimage/src/sys/amd64/linux32/linux32_syscall.h#4 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.31 2007/03/30 00:08:21 jkim Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.28 2007/03/30 00:06:21 jkim Exp 
+ * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.32 2007/08/28 12:36:23 kib Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.29 2007/08/28 12:26:34 kib Exp 
  */
 
 #define	LINUX_SYS_exit	1
@@ -222,6 +222,7 @@
 #define	LINUX_SYS_linux_fremovexattr	237
 #define	LINUX_SYS_linux_tkill	238
 #define	LINUX_SYS_linux_sys_futex	240
+#define	LINUX_SYS_linux_sched_getaffinity	242
 #define	LINUX_SYS_linux_set_thread_area	243
 #define	LINUX_SYS_linux_fadvise64	250
 #define	LINUX_SYS_linux_exit_group	252

==== //depot/projects/vimage/src/sys/amd64/linux32/linux32_sysent.c#4 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.31 2007/03/30 00:08:21 jkim Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.28 2007/03/30 00:06:21 jkim Exp 
+ * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.32 2007/08/28 12:36:23 kib Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.29 2007/08/28 12:26:34 kib Exp 
  */
 
 #include <bsm/audit_kevents.h>
@@ -262,7 +262,7 @@
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 239 = linux_sendfile64 */
 	{ AS(linux_sys_futex_args), (sy_call_t *)linux_sys_futex, AUE_NULL, NULL, 0, 0 },	/* 240 = linux_sys_futex */
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 241 = linux_sched_setaffinity */
-	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 242 = linux_sched_getaffinity */
+	{ AS(linux_sched_getaffinity_args), (sy_call_t *)linux_sched_getaffinity, AUE_NULL, NULL, 0, 0 },	/* 242 = linux_sched_getaffinity */
 	{ AS(linux_set_thread_area_args), (sy_call_t *)linux_set_thread_area, AUE_NULL, NULL, 0, 0 },	/* 243 = linux_set_thread_area */
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 244 = linux_get_thread_area */
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 245 = linux_io_setup */

==== //depot/projects/vimage/src/sys/amd64/linux32/syscalls.master#4 (text+ko) ====

@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.28 2007/03/30 00:06:21 jkim Exp $
+ $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.29 2007/08/28 12:26:34 kib Exp $
 
 ;	@(#)syscalls.master	8.1 (Berkeley) 7/19/93
 ; System call name/number master file (or rather, slave, from LINUX).
@@ -408,7 +408,8 @@
 240	AUE_NULL	STD	{ int linux_sys_futex(void *uaddr, int op, int val, \
 					struct l_timespec *timeout, void *uaddr2, int val3); }
 241	AUE_NULL	UNIMPL	linux_sched_setaffinity
-242	AUE_NULL	UNIMPL	linux_sched_getaffinity
+242	AUE_NULL	STD	{ int linux_sched_getaffinity(l_pid_t pid, l_uint len, \
+					l_ulong *user_mask_ptr); }
 243	AUE_NULL	STD	{ int linux_set_thread_area(struct l_user_desc *desc); }
 244	AUE_NULL	UNIMPL	linux_get_thread_area
 245	AUE_NULL	UNIMPL	linux_io_setup

==== //depot/projects/vimage/src/sys/arm/xscale/i80321/i80321.c#2 (text+ko) ====

@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.6 2006/07/25 01:08:41 kevlo Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.7 2007/09/04 18:45:27 cognet Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -213,8 +213,6 @@
 		    PCIM_CMD_SERRESPEN;
 		bus_space_write_4(sc->sc_st, sc->sc_atu_sh,
 		    PCIR_COMMAND, preg);
-		preg = bus_space_read_4(sc->sc_st, sc->sc_atu_sh,
-		    PCIR_COMMAND);
 	}
 	/* Initialize the bus space tags. */
 	i80321_io_bs_init(&sc->sc_pci_iot, sc);

==== //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_misc.c#6 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.66 2007/07/04 23:04:41 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.67 2007/08/28 20:28:11 jhb Exp $");
 
 #include "opt_compat.h"
 
@@ -135,28 +135,28 @@
 static void
 copy_statfs(struct statfs *in, struct statfs32 *out)
 {
-	
+
+	statfs_scale_blocks(in, INT32_MAX);
 	bzero(out, sizeof(*out));
 	CP(*in, *out, f_bsize);
-	CP(*in, *out, f_iosize);
+	out->f_iosize = MIN(in->f_iosize, INT32_MAX);
 	CP(*in, *out, f_blocks);
 	CP(*in, *out, f_bfree);
 	CP(*in, *out, f_bavail);
-	CP(*in, *out, f_files);
-	CP(*in, *out, f_ffree);
+	out->f_files = MIN(in->f_files, INT32_MAX);
+	out->f_ffree = MIN(in->f_ffree, INT32_MAX);
 	CP(*in, *out, f_fsid);
 	CP(*in, *out, f_owner);
 	CP(*in, *out, f_type);
 	CP(*in, *out, f_flags);
-	CP(*in, *out, f_flags);
-	CP(*in, *out, f_syncwrites);
-	CP(*in, *out, f_asyncwrites);
+	out->f_syncwrites = MIN(in->f_syncwrites, INT32_MAX);
+	out->f_asyncwrites = MIN(in->f_asyncwrites, INT32_MAX);
 	strlcpy(out->f_fstypename,
 	      in->f_fstypename, MFSNAMELEN);
 	strlcpy(out->f_mntonname,
 	      in->f_mntonname, min(MNAMELEN, FREEBSD4_MNAMELEN));
-	CP(*in, *out, f_syncreads);
-	CP(*in, *out, f_asyncreads);
+	out->f_syncreads = MIN(in->f_syncreads, INT32_MAX);
+	out->f_asyncreads = MIN(in->f_asyncreads, INT32_MAX);
 	strlcpy(out->f_mntfromname,
 	      in->f_mntfromname, min(MNAMELEN, FREEBSD4_MNAMELEN));
 }

==== //depot/projects/vimage/src/sys/compat/linux/linux_misc.c#9 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.213 2007/06/12 00:11:57 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.214 2007/08/28 12:26:35 kib Exp $");
 
 #include "opt_compat.h"
 #include "opt_mac.h"
@@ -1716,3 +1716,24 @@
 
 	return (error);
 }
+
+/*
+ * XXX: fake one.. waiting for real implementation of affinity mask.
+ */
+int
+linux_sched_getaffinity(struct thread *td,
+    struct linux_sched_getaffinity_args *args)
+{
+	int error;
+	cpumask_t i = ~0;
+
+	if (args->len < sizeof(cpumask_t))
+		return (EINVAL);
+
+	error = copyout(&i, args->user_mask_ptr, sizeof(cpumask_t));
+	if (error)
+		return (EFAULT);
+
+	td->td_retval[0] = sizeof(cpumask_t);
+	return (0);
+}

==== //depot/projects/vimage/src/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#3 (text+ko) ====

@@ -155,9 +155,9 @@
 TUNABLE_ULONG("vfs.zfs.arc_max", &zfs_arc_max);
 TUNABLE_ULONG("vfs.zfs.arc_min", &zfs_arc_min);
 SYSCTL_DECL(_vfs_zfs);
-SYSCTL_ULONG(_vfs_zfs, OID_AUTO, arc_max, CTLFLAG_RD, &zfs_arc_max, 0,
+SYSCTL_ULONG(_vfs_zfs, OID_AUTO, arc_max, CTLFLAG_RDTUN, &zfs_arc_max, 0,
     "Maximum ARC size");
-SYSCTL_ULONG(_vfs_zfs, OID_AUTO, arc_min, CTLFLAG_RD, &zfs_arc_min, 0,
+SYSCTL_ULONG(_vfs_zfs, OID_AUTO, arc_min, CTLFLAG_RDTUN, &zfs_arc_min, 0,
     "Minimum ARC size");
 
 /*

==== //depot/projects/vimage/src/sys/dev/acpica/acpi_cpu.c#5 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cpu.c,v 1.66 2007/06/03 00:40:56 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cpu.c,v 1.67 2007/08/30 21:18:42 njl Exp $");
 
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -257,7 +257,7 @@
 acpi_cpu_attach(device_t dev)
 {
     ACPI_BUFFER		   buf;
-    ACPI_OBJECT		   arg, *obj;
+    ACPI_OBJECT		   arg[4], *obj;
     ACPI_OBJECT_LIST	   arglist;
     struct pcpu		   *pcpu_data;
     struct acpi_cpu_softc *sc;
@@ -268,6 +268,11 @@
     driver_t 		  **drivers;
     uint32_t		   cap_set[3];
 
+    /* UUID needed by _OSC evaluation */
+    static uint8_t cpu_oscuuid[16] = { 0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29,
+				       0xBE, 0x47, 0x9E, 0xBD, 0xD8, 0x70,
+				       0x58, 0x71, 0x39, 0x53 };
+
     ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
 
     sc = device_get_softc(dev);
@@ -334,19 +339,39 @@
     /*
      * CPU capabilities are specified as a buffer of 32-bit integers:
      * revision, count, and one or more capabilities.  The revision of
-     * "1" is not specified anywhere but seems to match Linux.  We should
-     * also support _OSC here.
+     * "1" is not specified anywhere but seems to match Linux.
      */
     if (sc->cpu_features) {
-	arglist.Pointer = &arg;
+	arglist.Pointer = arg;
 	arglist.Count = 1;
-	arg.Type = ACPI_TYPE_BUFFER;
-	arg.Buffer.Length = sizeof(cap_set);
-	arg.Buffer.Pointer = (uint8_t *)cap_set;
+	arg[0].Type = ACPI_TYPE_BUFFER;
+	arg[0].Buffer.Length = sizeof(cap_set);
+	arg[0].Buffer.Pointer = (uint8_t *)cap_set;
 	cap_set[0] = 1; /* revision */
 	cap_set[1] = 1; /* number of capabilities integers */
 	cap_set[2] = sc->cpu_features;
 	AcpiEvaluateObject(sc->cpu_handle, "_PDC", &arglist, NULL);
+
+	/*
+	 * On some systems we need to evaluate _OSC so that the ASL
+	 * loads the _PSS and/or _PDC methods at runtime.
+	 *
+	 * TODO: evaluate failure of _OSC.
+	 */
+	arglist.Pointer = arg;
+	arglist.Count = 4;
+	arg[0].Type = ACPI_TYPE_BUFFER;
+	arg[0].Buffer.Length = sizeof(cpu_oscuuid);
+	arg[0].Buffer.Pointer = cpu_oscuuid;	/* UUID */
+	arg[1].Type = ACPI_TYPE_INTEGER;
+	arg[1].Integer.Value = 1;		/* revision */
+	arg[2].Type = ACPI_TYPE_INTEGER;
+	arg[2].Integer.Value = 1;		/* count */
+	arg[3].Type = ACPI_TYPE_BUFFER;
+	arg[3].Buffer.Length = sizeof(cap_set);	/* Capabilities buffer */
+	arg[3].Buffer.Pointer = (uint8_t *)cap_set;
+	cap_set[0] = 0;
+	AcpiEvaluateObject(sc->cpu_handle, "_OSC", &arglist, NULL);
     }
 
     /* Probe for Cx state support. */

==== //depot/projects/vimage/src/sys/dev/ath/if_ath.c#12 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.173 2007/08/06 14:25:59 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.174 2007/09/05 23:00:26 sam Exp $");
 
 /*
  * Driver for the Atheros Wireless LAN controller.
@@ -1579,6 +1579,12 @@
 				ATH_TXBUF_UNLOCK(sc);
 				break;
 			}
+			/*
+			 * Cancel any background scan.
+			 */
+			if (ic->ic_flags & IEEE80211_F_SCAN)
+				ieee80211_cancel_scan(ic);
+
 			STAILQ_INIT(&frags);
 			/*
 			 * Find the node for the destination so we can do
@@ -1605,15 +1611,6 @@
 				 * the frame back when the time is right.
 				 */
 				ieee80211_pwrsave(ni, m);
-				/*
-				 * If we're in power save mode 'cuz of a bg
-				 * scan cancel it so the traffic can flow.
-				 * The packet we just queued will automatically
-				 * get sent when we drop out of power save.
-				 * XXX locking
-				 */
-				if (ic->ic_flags & IEEE80211_F_SCAN)
-					ieee80211_cancel_scan(ic);
 				goto reclaim;
 			}
 			/* calculate priority so we can find the tx queue */
@@ -1752,6 +1749,7 @@
 		}
 
 		ifp->if_timer = 5;
+		ic->ic_lastdata = ticks;
 #if 0
 		/*
 		 * Flush stale frames from the fast-frame staging queue.

==== //depot/projects/vimage/src/sys/dev/awi/awi.c#3 (text+ko) ====

@@ -89,7 +89,7 @@
 __KERNEL_RCSID(0, "$NetBSD: awi.c,v 1.62 2004/01/16 14:13:15 onoe Exp $");
 #endif
 #ifdef __FreeBSD__
-__FBSDID("$FreeBSD: src/sys/dev/awi/awi.c,v 1.44 2007/06/11 03:36:51 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/awi/awi.c,v 1.45 2007/09/05 21:31:31 sam Exp $");
 #endif
 
 #include "opt_inet.h"
@@ -1919,6 +1919,8 @@
 		else
 			awi_drvstate(sc, AWI_DRV_INFASSOC);
 		break;
+	default:
+		break;
 	}
 
 	if (nstate == IEEE80211_S_INIT) {
@@ -1954,6 +1956,8 @@
 			case IEEE80211_S_SCAN:
 				/* scan next */
 				break;
+			default:
+				break;
 			}
 			if (ic->ic_flags & IEEE80211_F_ASCAN)
 				newmode = AWI_SCAN_ACTIVE;

==== //depot/projects/vimage/src/sys/dev/ipw/if_ipw.c#6 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.29 2007/07/05 15:06:49 avatar Exp $	*/
+/*	$FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.30 2007/09/05 21:31:31 sam Exp $	*/
 
 /*-
  * Copyright (c) 2004-2006
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.29 2007/07/05 15:06:49 avatar Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.30 2007/09/05 21:31:31 sam Exp $");
 
 /*-
  * Intel(R) PRO/Wireless 2100 MiniPCI driver
@@ -839,6 +839,7 @@
 	case IEEE80211_S_SCAN:
 	case IEEE80211_S_AUTH:
 	case IEEE80211_S_ASSOC:
+	default:
 		break;
 	}
 

==== //depot/projects/vimage/src/sys/dev/isp/isp_freebsd.h#7 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/isp/isp_freebsd.h,v 1.106 2007/07/02 20:08:20 mjacob Exp $ */
+/* $FreeBSD: src/sys/dev/isp/isp_freebsd.h,v 1.107 2007/08/28 00:09:12 jkim Exp $ */
 /*-
  * Qlogic ISP SCSI Host Adapter FreeBSD Wrapper Definitions
  *
@@ -184,8 +184,8 @@
 	const struct firmware *	fw;
 	union {
 		struct {
-			char wwnn[17];
-			char wwpn[17];
+			char wwnn[19];
+			char wwpn[19];
 		} fc;
 	} sysctl_info;
 #endif

==== //depot/projects/vimage/src/sys/dev/iwi/if_iwi.c#6 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.55 2007/06/25 20:56:33 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.57 2007/09/05 23:00:26 sam Exp $");
 
 /*-
  * Intel(R) PRO/Wireless 2200BG/2225BG/2915ABG driver
@@ -957,7 +957,6 @@
 	struct iwi_softc *sc = ifp->if_softc;
 	int error = 0;
 
-	IWI_LOCK_ASSERT(sc);
 	DPRINTF(("%s: %s -> %s flags 0x%x\n", __func__,
 		ieee80211_state_name[ic->ic_state],
 		ieee80211_state_name[nstate], sc->flags));
@@ -1918,6 +1917,11 @@
 			IFQ_DRV_DEQUEUE(&ifp->if_snd, m0);
 			if (m0 == NULL)
 				break;
+			/*
+			 * Cancel any background scan.
+			 */
+			if (ic->ic_flags & IEEE80211_F_SCAN)
+				ieee80211_cancel_scan(ic);
 
 			if (m0->m_len < sizeof (struct ether_header) &&
 			    (m0 = m_pullup(m0, sizeof (struct ether_header))) == NULL) {
@@ -1979,6 +1983,7 @@
 		}
 
 		sc->sc_tx_timer = 5;
+		ic->ic_lastdata = ticks;
 	}
 
 	IWI_UNLOCK(sc);

==== //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe.c#2 (text+ko) ====

@@ -30,7 +30,7 @@
 POSSIBILITY OF SUCH DAMAGE.
 
 ***************************************************************************/
-/* $FreeBSD: src/sys/dev/ixgbe/ixgbe.c,v 1.3 2007/07/12 19:04:11 jfv Exp $ */
+/* $FreeBSD: src/sys/dev/ixgbe/ixgbe.c,v 1.4 2007/09/04 02:31:34 jfv Exp $ */
 
 #ifdef HAVE_KERNEL_OPTION_HEADERS
 #include "opt_device_polling.h"
@@ -46,7 +46,7 @@
 /*********************************************************************
  *  Driver version
  *********************************************************************/
-char ixgbe_driver_version[] = "1.1.3";
+char ixgbe_driver_version[] = "1.2.6";
 
 /*********************************************************************
  *  PCI Device ID Table
@@ -60,10 +60,9 @@
 
 static ixgbe_vendor_info_t ixgbe_vendor_info_array[] =
 {
-	{IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598, 0, 0, 0},
 	{IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598AF_DUAL_PORT, 0, 0, 0},
 	{IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598AF_SINGLE_PORT, 0, 0, 0},
-	{IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598AT_DUAL_PORT, 0, 0, 0},
+	{IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82598EB_CX4, 0, 0, 0},
 	/* required last entry */
 	{0, 0, 0, 0, 0}
 };
@@ -100,8 +99,9 @@
 static void     ixgbe_setup_interface(device_t, struct adapter *);
 static int	ixgbe_allocate_queues(struct adapter *);
 static int	ixgbe_allocate_msix_resources(struct adapter *);
+#if __FreeBSD_version >= 700000
 static int	ixgbe_setup_msix(struct adapter *);
-
+#endif
 static int      ixgbe_allocate_transmit_buffers(struct tx_ring *);
 static int	ixgbe_setup_transmit_structures(struct adapter *);
 static void	ixgbe_setup_transmit_ring(struct tx_ring *);
@@ -119,7 +119,7 @@
 static void     ixgbe_enable_intr(struct adapter *);
 static void     ixgbe_disable_intr(struct adapter *);
 static void     ixgbe_update_stats_counters(struct adapter *);
-static boolean_t ixgbe_txeof(struct tx_ring *);
+static bool	ixgbe_txeof(struct tx_ring *);
 static int      ixgbe_rxeof(struct rx_ring *, int);
 static void	ixgbe_rx_checksum(struct adapter *, uint32_t, struct mbuf *);
 static void     ixgbe_set_promisc(struct adapter *);
@@ -133,6 +133,7 @@
 static int      ixgbe_encap(struct adapter *, struct mbuf **);
 static int      ixgbe_sysctl_stats(SYSCTL_HANDLER_ARGS);
 static int	ixgbe_sysctl_debug(SYSCTL_HANDLER_ARGS);
+static int	ixgbe_set_flowcntl(SYSCTL_HANDLER_ARGS);
 static int	ixgbe_dma_malloc(struct adapter *, bus_size_t,
 		    struct ixgbe_dma_alloc *, int);
 static void     ixgbe_dma_free(struct adapter *, struct ixgbe_dma_alloc *);
@@ -143,14 +144,23 @@
 static void	ixgbe_set_ivar(struct adapter *, u16, u8);
 static void	ixgbe_configure_ivars(struct adapter *);
 
-/* Legacy Interrupt handler */
-static void     ixgbe_intr(void *);
+/* Legacy Fast Interrupt routine and handlers */
+#if __FreeBSD_version >= 700000
+static int	ixgbe_fast_irq(void *);
+/* The MSI/X Interrupt handlers */
+static void	ixgbe_msix_tx(void *);
+static void	ixgbe_msix_rx(void *);
+static void	ixgbe_msix_link(void *);
+#else
+static void	ixgbe_fast_irq(void *);
+#endif
 
-/* The MSI/X Interrupt handlers */
-static void     ixgbe_txint(void *);
-static void     ixgbe_rxint(void *);
-static void     ixgbe_linkint(void *);
+static void	ixgbe_rxtx(void *context, int pending);
+static void	ixgbe_link(void *context, int pending);
 
+#ifndef NO_82598_A0_SUPPORT
+static void	desc_flip(void *);
+#endif
 
 /*********************************************************************
  *  FreeBSD Device Interface Entry Points
@@ -175,26 +185,40 @@
 MODULE_DEPEND(ixgbe, pci, 1, 1, 1);
 MODULE_DEPEND(ixgbe, ether, 1, 1, 1);
 
+/*
+** TUNEABLE PARAMETERS:
+*/
+
 /* How many packets rxeof tries to clean at a time */
 static int ixgbe_rx_process_limit = 100;
 TUNABLE_INT("hw.ixgbe.rx_process_limit", &ixgbe_rx_process_limit);
 
-/*
- * Should the driver do MSI/X and RSS/MQ?
- *	- default to MSI/X and RSS enabled
- */
-static int ixgbe_disable_msix = 0;
-TUNABLE_INT("hw.ixgbe.disable_msix", &ixgbe_disable_msix);
+/* Flow control setting, default to full */
+static int ixgbe_flow_control = 3;
+TUNABLE_INT("hw.ixgbe.flow_control", &ixgbe_flow_control);
+
+/* Number of TX Queues, note multi tx is not working */
+static int ixgbe_tx_queues = 1;
+TUNABLE_INT("hw.ixgbe.tx_queues", &ixgbe_tx_queues);
+
+/* Number of RX Queues */
+static int ixgbe_rx_queues = 8;
+TUNABLE_INT("hw.ixgbe.rx_queues", &ixgbe_rx_queues);
+
+/* Number of Other Queues, this is used for link interrupts */
+static int ixgbe_other_queues = 1;
+TUNABLE_INT("hw.ixgbe.other_queues", &ixgbe_other_queues);
+
+/* Number of TX descriptors per ring */
+static int ixgbe_txd = DEFAULT_TXD;
+TUNABLE_INT("hw.ixgbe.txd", &ixgbe_txd);
+
+/* Number of RX descriptors per ring */
+static int ixgbe_rxd = DEFAULT_RXD;
+TUNABLE_INT("hw.ixgbe.rxd", &ixgbe_rxd);
 
-/*
-** Flow control tuneable:
-** 	0 - off
-**	1 - rx pause
-**	2 - tx pause
-**	3 - full
-*/
-static int ixgbe_flow_control = 0;
-TUNABLE_INT("hw.ixgbe.flow_control", &ixgbe_flow_control);
+/* Total number of Interfaces - need for config sanity check */
+static int ixgbe_total_ports;
 
 /*********************************************************************
  *  Device identification routine
@@ -239,6 +263,15 @@
 			sprintf(adapter_name, "%s, Version - %s",
 				ixgbe_strings[ent->index],
 				ixgbe_driver_version);
+			switch (pci_device_id) {
+				case IXGBE_DEV_ID_82598AF_DUAL_PORT :
+					ixgbe_total_ports += 2;
+					break;
+				case IXGBE_DEV_ID_82598AF_SINGLE_PORT :
+					ixgbe_total_ports += 1;
+				default:
+					break;
+			}
 			device_set_desc_copy(dev, adapter_name);
 			return (0);
 		}
@@ -264,13 +297,17 @@
 	struct adapter *adapter;
 	int             error = 0;
 	uint32_t	ctrl_ext;
+	char		name_string[16];
 
 	INIT_DEBUGOUT("ixgbe_attach: begin");
 
 	/* Allocate, clear, and link in our adapter structure */
 	adapter = device_get_softc(dev);
 	adapter->dev = adapter->osdep.dev = dev;
-	IXGBE_LOCK_INIT(adapter, device_get_nameunit(dev));
+	/* General Lock Init*/
+	snprintf(name_string, sizeof(name_string), "%s:core",
+	    device_get_nameunit(dev));
+	mtx_init(&adapter->core_mtx, name_string, NULL, MTX_DEF);
 
 	/* SYSCTL APIs */
 	SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev),
@@ -283,25 +320,17 @@
 			OID_AUTO, "debug", CTLTYPE_INT | CTLFLAG_RW,
 			adapter, 0, ixgbe_sysctl_debug, "I", "Debug Info");
 
-	SYSCTL_ADD_INT(device_get_sysctl_ctx(dev),
+	SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev),
 			SYSCTL_CHILDREN(device_get_sysctl_tree(dev)),
-			OID_AUTO, "flow control", CTLFLAG_RW,
-			&ixgbe_flow_control, 0, "Flow Control");
+			OID_AUTO, "flow_control", CTLTYPE_INT | CTLFLAG_RW,
+			adapter, 0, ixgbe_set_flowcntl, "I", "Flow Control");
 
 	/* Set up the timer callout */
-	callout_init_mtx(&adapter->timer, &adapter->mtx, 0);
+	callout_init_mtx(&adapter->timer, &adapter->core_mtx, 0);
 
 	/* Determine hardware revision */
 	ixgbe_identify_hardware(adapter);
 
-	/*
-	** Descriptors: (configurable by user), note these are
-	** constant for all rings, I saw no reason to vary 
-	** them, but perhaps someone later would.
-	*/
-	adapter->num_tx_desc = DEFAULT_TXD;
-	adapter->num_rx_desc = DEFAULT_RXD;
-
 	/* Indicate to RX setup to use Jumbo Clusters */
 	adapter->bigbufs = TRUE;
 
@@ -312,17 +341,50 @@
 		goto err_out;
 	}
 
+	/* Do descriptor calc and sanity checks */
+	if (((ixgbe_txd * sizeof(union ixgbe_adv_tx_desc)) % DBA_ALIGN) != 0 ||
+	    ixgbe_txd < MIN_TXD || ixgbe_txd > MAX_TXD) {
+		device_printf(dev, "TXD config issue, using default!\n");
+		adapter->num_tx_desc = DEFAULT_TXD;
+	} else
+		adapter->num_tx_desc = ixgbe_txd;
+
+	/*
+	** With many RX rings it is easy to exceed the
+	** system mbuf allocation. Tuning nmbclusters
+	** can alleviate this.
+	*/
+	if ((adapter->num_rx_queues > 1) && (nmbclusters > 0 )){
+		int s;
+		/* Calculate the total RX mbuf needs */
+		s = (ixgbe_rxd * adapter->num_rx_queues) * ixgbe_total_ports;
+		if (s > nmbclusters) {
+			device_printf(dev, "RX Descriptors exceed "
+			    "system mbuf max, using default instead!\n");
+			ixgbe_rxd = DEFAULT_RXD;
+		}
+	}
+
+	if (((ixgbe_rxd * sizeof(union ixgbe_adv_rx_desc)) % DBA_ALIGN) != 0 ||
+	    ixgbe_rxd < MIN_TXD || ixgbe_rxd > MAX_TXD) {
+		device_printf(dev, "RXD config issue, using default!\n");
+		adapter->num_rx_desc = DEFAULT_RXD;
+	} else
+		adapter->num_rx_desc = ixgbe_rxd;
+
 	/* Allocate our TX/RX Queues */
 	if (ixgbe_allocate_queues(adapter)) {
 		error = ENOMEM;
 		goto err_out;
 	}
 
+#if __FreeBSD_version >= 700000
 	if (adapter->msix) {
 		error = ixgbe_setup_msix(adapter); 
 		if (error) 
 			goto err_out;
 	}
+#endif
 
 	/* Initialize the shared code */
 	if (ixgbe_init_shared_code(&adapter->hw)) {
@@ -382,14 +444,25 @@
 	INIT_DEBUGOUT("ixgbe_detach: begin");
 
 	/* Make sure VLANS are not using driver */
+#if __FreeBSD_version >= 700000
 	if (adapter->ifp->if_vlantrunk != NULL) {
+#else
+	if (adapter->ifp->if_nvlans != 0) {
+#endif
 		device_printf(dev,"Vlan in use, detach first\n");
 		return (EBUSY);
 	}
 
-	IXGBE_LOCK(adapter);
+	mtx_lock(&adapter->core_mtx);
 	ixgbe_stop(adapter);
-	IXGBE_UNLOCK(adapter);
+	mtx_unlock(&adapter->core_mtx);
+
+	if (adapter->tq != NULL) {
+		taskqueue_drain(adapter->tq, &adapter->rxtx_task);
+		taskqueue_drain(taskqueue_fast, &adapter->link_task);
+		taskqueue_free(adapter->tq);
+		adapter->tq = NULL;
+	}
 
 	/* let hardware know driver is unloading */
 	ctrl_ext = IXGBE_READ_REG(&adapter->hw, IXGBE_CTRL_EXT);
@@ -405,7 +478,7 @@
 	ixgbe_free_transmit_structures(adapter);
 	ixgbe_free_receive_structures(adapter);
 
-	IXGBE_LOCK_DESTROY(adapter);
+	mtx_destroy(&adapter->core_mtx);
 	return (0);
 }
 
@@ -419,9 +492,9 @@
 ixgbe_shutdown(device_t dev)
 {
 	struct adapter *adapter = device_get_softc(dev);
-	IXGBE_LOCK(adapter);
+	mtx_lock(&adapter->core_mtx);
 	ixgbe_stop(adapter);
-	IXGBE_UNLOCK(adapter);
+	mtx_unlock(&adapter->core_mtx);
 	return (0);
 }
 
@@ -442,7 +515,7 @@
 	struct mbuf    *m_head;
 	struct adapter *adapter = ifp->if_softc;
 
-	IXGBE_LOCK_ASSERT(adapter);
+	mtx_assert(&adapter->tx_mtx, MA_OWNED);
 
 	if ((ifp->if_drv_flags & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) !=
 	    IFF_DRV_RUNNING)
@@ -464,7 +537,7 @@
 			break;
 		}
 		/* Send a copy of the frame to the BPF listener */
-		BPF_MTAP(ifp, m_head);
+		ETHER_BPF_MTAP(ifp, m_head);
 
 		/* Set timeout in case hardware has problems transmitting */
 		adapter->watchdog_timer = IXGBE_TX_TIMEOUT;
@@ -478,10 +551,10 @@
 {
 	struct adapter *adapter = ifp->if_softc;
 
-	IXGBE_LOCK(adapter);
+	mtx_lock(&adapter->tx_mtx);
 	if (ifp->if_drv_flags & IFF_DRV_RUNNING)
 		ixgbe_start_locked(ifp);
-	IXGBE_UNLOCK(adapter);
+	mtx_unlock(&adapter->tx_mtx);
 	return;
 }
 
@@ -508,9 +581,9 @@
 		if (ifa->ifa_addr->sa_family == AF_INET) {
 			ifp->if_flags |= IFF_UP;
 			if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) {
-				IXGBE_LOCK(adapter);
+				mtx_lock(&adapter->core_mtx);
 				ixgbe_init_locked(adapter);
-				IXGBE_UNLOCK(adapter);
+				mtx_unlock(&adapter->core_mtx);
 			}
 			arp_ifinit(ifp, ifa);
                 } else
@@ -521,17 +594,17 @@
 		if (ifr->ifr_mtu > IXGBE_MAX_FRAME_SIZE - ETHER_HDR_LEN) {
 			error = EINVAL;
 		} else {
-			IXGBE_LOCK(adapter);
+			mtx_lock(&adapter->core_mtx);
 			ifp->if_mtu = ifr->ifr_mtu;
 			adapter->max_frame_size =
 				ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN;
 			ixgbe_init_locked(adapter);
-			IXGBE_UNLOCK(adapter);
+			mtx_unlock(&adapter->core_mtx);
 		}
 		break;
 	case SIOCSIFFLAGS:
 		IOCTL_DEBUGOUT("ioctl: SIOCSIFFLAGS (Set Interface Flags)");
-		IXGBE_LOCK(adapter);
+		mtx_lock(&adapter->core_mtx);
 		if (ifp->if_flags & IFF_UP) {
 			if ((ifp->if_drv_flags & IFF_DRV_RUNNING)) {
 				if ((ifp->if_flags ^ adapter->if_flags) &
@@ -545,17 +618,17 @@
 			if (ifp->if_drv_flags & IFF_DRV_RUNNING)
 				ixgbe_stop(adapter);
 		adapter->if_flags = ifp->if_flags;
-		IXGBE_UNLOCK(adapter);
+		mtx_unlock(&adapter->core_mtx);
 		break;
 	case SIOCADDMULTI:
 	case SIOCDELMULTI:
 		IOCTL_DEBUGOUT("ioctl: SIOC(ADD|DEL)MULTI");
 		if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
-			IXGBE_LOCK(adapter);
+			mtx_lock(&adapter->core_mtx);
 			ixgbe_disable_intr(adapter);
 			ixgbe_set_multi(adapter);
 			ixgbe_enable_intr(adapter);
-			IXGBE_UNLOCK(adapter);
+			mtx_unlock(&adapter->core_mtx);
 		}
 		break;
 	case SIOCSIFMEDIA:
@@ -575,7 +648,9 @@
 			ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING;
 		if (ifp->if_drv_flags & IFF_DRV_RUNNING)
 			ixgbe_init(adapter);
+#if __FreeBSD_version >= 700000
 		VLAN_CAPABILITIES(ifp);

>>> TRUNCATED FOR MAIL (1000 lines) <<<



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