Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Jan 2011 00:23:57 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r217434 - in projects/binutils-2.17: bin/sh contrib/binutils/ld/emultempl contrib/gcc/config/rs6000 contrib/top lib/csu/i386-elf lib/csu/powerpc lib/csu/powerpc64 lib/libc/powerpc/gen l...
Message-ID:  <201101150023.p0F0Nve7007048@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Sat Jan 15 00:23:57 2011
New Revision: 217434
URL: http://svn.freebsd.org/changeset/base/217434

Log:
  Sync: merge r217376 through r217433 from ^/head.

Modified:
  projects/binutils-2.17/bin/sh/trap.c
  projects/binutils-2.17/contrib/binutils/ld/emultempl/ppc64elf.em
  projects/binutils-2.17/contrib/gcc/config/rs6000/crtsavres.asm
  projects/binutils-2.17/contrib/gcc/config/rs6000/freebsd.h
  projects/binutils-2.17/contrib/gcc/config/rs6000/rs6000.c
  projects/binutils-2.17/contrib/gcc/config/rs6000/tramp.asm
  projects/binutils-2.17/lib/csu/i386-elf/crt1_s.S
  projects/binutils-2.17/lib/csu/powerpc/crti.S
  projects/binutils-2.17/lib/csu/powerpc/crtn.S
  projects/binutils-2.17/lib/csu/powerpc64/crti.S
  projects/binutils-2.17/lib/csu/powerpc64/crtn.S
  projects/binutils-2.17/lib/libc/powerpc/gen/_ctx_start.S
  projects/binutils-2.17/lib/libc/powerpc/gen/_setjmp.S
  projects/binutils-2.17/lib/libc/powerpc/gen/fabs.S
  projects/binutils-2.17/lib/libc/powerpc/gen/setjmp.S
  projects/binutils-2.17/lib/libc/powerpc/gen/sigsetjmp.S
  projects/binutils-2.17/lib/libc/powerpc/sys/brk.S
  projects/binutils-2.17/lib/libc/powerpc/sys/cerror.S
  projects/binutils-2.17/lib/libc/powerpc/sys/exect.S
  projects/binutils-2.17/lib/libc/powerpc/sys/pipe.S
  projects/binutils-2.17/lib/libc/powerpc/sys/ptrace.S
  projects/binutils-2.17/lib/libc/powerpc/sys/sbrk.S
  projects/binutils-2.17/lib/libc/powerpc/sys/setlogin.S
  projects/binutils-2.17/lib/libc/powerpc64/gen/_ctx_start.S
  projects/binutils-2.17/lib/libc/powerpc64/gen/_setjmp.S
  projects/binutils-2.17/lib/libc/powerpc64/gen/fabs.S
  projects/binutils-2.17/lib/libc/powerpc64/gen/setjmp.S
  projects/binutils-2.17/lib/libc/powerpc64/gen/sigsetjmp.S
  projects/binutils-2.17/lib/libc/powerpc64/sys/brk.S
  projects/binutils-2.17/lib/libc/powerpc64/sys/cerror.S
  projects/binutils-2.17/lib/libc/powerpc64/sys/exect.S
  projects/binutils-2.17/lib/libc/powerpc64/sys/pipe.S
  projects/binutils-2.17/lib/libc/powerpc64/sys/ptrace.S
  projects/binutils-2.17/lib/libc/powerpc64/sys/sbrk.S
  projects/binutils-2.17/lib/libc/powerpc64/sys/setlogin.S
  projects/binutils-2.17/lib/libcompiler_rt/Makefile
  projects/binutils-2.17/libexec/rtld-elf/powerpc/rtld_start.S
  projects/binutils-2.17/libexec/rtld-elf/powerpc64/rtld_start.S
  projects/binutils-2.17/release/amd64/boot_crunch.conf
  projects/binutils-2.17/release/i386/boot_crunch.conf
  projects/binutils-2.17/release/ia64/boot_crunch.conf
  projects/binutils-2.17/release/pc98/boot_crunch.conf
  projects/binutils-2.17/release/powerpc/boot_crunch.conf
  projects/binutils-2.17/release/sparc64/boot_crunch.conf
  projects/binutils-2.17/release/sun4v/boot_crunch.conf
  projects/binutils-2.17/sys/amd64/ia32/ia32_signal.c
  projects/binutils-2.17/sys/amd64/linux32/linux32_sysvec.c
  projects/binutils-2.17/sys/contrib/pf/net/pf_osfp.c
  projects/binutils-2.17/sys/dev/alc/if_alc.c
  projects/binutils-2.17/sys/dev/alc/if_alcvar.h
  projects/binutils-2.17/sys/dev/dc/dcphy.c
  projects/binutils-2.17/sys/dev/dc/pnphy.c
  projects/binutils-2.17/sys/dev/mii/atphy.c
  projects/binutils-2.17/sys/dev/mii/brgphy.c
  projects/binutils-2.17/sys/dev/mii/ciphy.c
  projects/binutils-2.17/sys/dev/mii/e1000phy.c
  projects/binutils-2.17/sys/dev/mii/ip1000phy.c
  projects/binutils-2.17/sys/dev/mii/jmphy.c
  projects/binutils-2.17/sys/dev/mii/mii_physubr.c
  projects/binutils-2.17/sys/dev/mii/rgephy.c
  projects/binutils-2.17/sys/dev/mii/xmphy.c
  projects/binutils-2.17/sys/dev/re/if_re.c
  projects/binutils-2.17/sys/fs/nfs/nfs_var.h
  projects/binutils-2.17/sys/fs/nfsserver/nfs_nfsdkrpc.c
  projects/binutils-2.17/sys/fs/nfsserver/nfs_nfsdport.c
  projects/binutils-2.17/sys/fs/nfsserver/nfs_nfsdstate.c
  projects/binutils-2.17/sys/kern/sched_4bsd.c
  projects/binutils-2.17/sys/kern/sched_ule.c
  projects/binutils-2.17/sys/kern/subr_sleepqueue.c
  projects/binutils-2.17/sys/nfs/nfs_nfssvc.c
  projects/binutils-2.17/sys/nfs/nfssvc.h
  projects/binutils-2.17/sys/powerpc/include/vmparam.h
  projects/binutils-2.17/sys/powerpc/powerpc/elf32_machdep.c
  projects/binutils-2.17/sys/powerpc/powerpc/elf64_machdep.c
  projects/binutils-2.17/sys/powerpc/powerpc/exec_machdep.c
  projects/binutils-2.17/sys/sys/priority.h
  projects/binutils-2.17/usr.bin/cpuset/cpuset.1
  projects/binutils-2.17/usr.bin/cpuset/cpuset.c
Directory Properties:
  projects/binutils-2.17/   (props changed)
  projects/binutils-2.17/cddl/contrib/opensolaris/   (props changed)
  projects/binutils-2.17/contrib/bind9/   (props changed)
  projects/binutils-2.17/contrib/binutils/   (props changed)
  projects/binutils-2.17/contrib/bzip2/   (props changed)
  projects/binutils-2.17/contrib/dialog/   (props changed)
  projects/binutils-2.17/contrib/ee/   (props changed)
  projects/binutils-2.17/contrib/expat/   (props changed)
  projects/binutils-2.17/contrib/file/   (props changed)
  projects/binutils-2.17/contrib/gdb/   (props changed)
  projects/binutils-2.17/contrib/gdtoa/   (props changed)
  projects/binutils-2.17/contrib/gnu-sort/   (props changed)
  projects/binutils-2.17/contrib/groff/   (props changed)
  projects/binutils-2.17/contrib/less/   (props changed)
  projects/binutils-2.17/contrib/libpcap/   (props changed)
  projects/binutils-2.17/contrib/llvm/   (props changed)
  projects/binutils-2.17/contrib/llvm/tools/clang/   (props changed)
  projects/binutils-2.17/contrib/ncurses/   (props changed)
  projects/binutils-2.17/contrib/netcat/   (props changed)
  projects/binutils-2.17/contrib/ntp/   (props changed)
  projects/binutils-2.17/contrib/one-true-awk/   (props changed)
  projects/binutils-2.17/contrib/openbsm/   (props changed)
  projects/binutils-2.17/contrib/openpam/   (props changed)
  projects/binutils-2.17/contrib/pf/   (props changed)
  projects/binutils-2.17/contrib/sendmail/   (props changed)
  projects/binutils-2.17/contrib/tcpdump/   (props changed)
  projects/binutils-2.17/contrib/tcsh/   (props changed)
  projects/binutils-2.17/contrib/top/   (props changed)
  projects/binutils-2.17/contrib/top/install-sh   (props changed)
  projects/binutils-2.17/contrib/tzcode/stdtime/   (props changed)
  projects/binutils-2.17/contrib/tzcode/zic/   (props changed)
  projects/binutils-2.17/contrib/tzdata/   (props changed)
  projects/binutils-2.17/contrib/wpa/   (props changed)
  projects/binutils-2.17/contrib/xz/   (props changed)
  projects/binutils-2.17/crypto/openssh/   (props changed)
  projects/binutils-2.17/crypto/openssl/   (props changed)
  projects/binutils-2.17/lib/libc/   (props changed)
  projects/binutils-2.17/lib/libc/stdtime/   (props changed)
  projects/binutils-2.17/lib/libutil/   (props changed)
  projects/binutils-2.17/lib/libz/   (props changed)
  projects/binutils-2.17/sbin/   (props changed)
  projects/binutils-2.17/sbin/ipfw/   (props changed)
  projects/binutils-2.17/share/mk/bsd.arch.inc.mk   (props changed)
  projects/binutils-2.17/share/zoneinfo/   (props changed)
  projects/binutils-2.17/sys/   (props changed)
  projects/binutils-2.17/sys/amd64/include/xen/   (props changed)
  projects/binutils-2.17/sys/cddl/contrib/opensolaris/   (props changed)
  projects/binutils-2.17/sys/contrib/dev/acpica/   (props changed)
  projects/binutils-2.17/sys/contrib/octeon-sdk/   (props changed)
  projects/binutils-2.17/sys/contrib/pf/   (props changed)
  projects/binutils-2.17/sys/contrib/x86emu/   (props changed)
  projects/binutils-2.17/usr.bin/calendar/   (props changed)
  projects/binutils-2.17/usr.bin/csup/   (props changed)
  projects/binutils-2.17/usr.bin/procstat/   (props changed)
  projects/binutils-2.17/usr.sbin/zic/   (props changed)

Modified: projects/binutils-2.17/bin/sh/trap.c
==============================================================================
--- projects/binutils-2.17/bin/sh/trap.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/bin/sh/trap.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -134,7 +134,7 @@ printsignals(void)
 			outlen += 3;	/* good enough */
 		}
 		++outlen;
-		if (outlen > 70 || n == sys_nsig - 1) {
+		if (outlen > 71 || n == sys_nsig - 1) {
 			out1str("\n");
 			outlen = 0;
 		} else {

Modified: projects/binutils-2.17/contrib/binutils/ld/emultempl/ppc64elf.em
==============================================================================
--- projects/binutils-2.17/contrib/binutils/ld/emultempl/ppc64elf.em	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/contrib/binutils/ld/emultempl/ppc64elf.em	Sat Jan 15 00:23:57 2011	(r217434)
@@ -72,6 +72,7 @@ ppc_create_output_section_statements (vo
 {
   extern const bfd_target bfd_elf64_powerpc_vec;
   extern const bfd_target bfd_elf64_powerpcle_vec;
+  asection *sect;
 
   if (link_info.hash->creator != &bfd_elf64_powerpc_vec
       && link_info.hash->creator != &bfd_elf64_powerpcle_vec)
@@ -92,6 +93,8 @@ ppc_create_output_section_statements (vo
       return;
     }
 
+  if (bfd_get_section_by_name (stub_file->the_bfd, ".note.GNU-stack") == NULL)
+    sect = bfd_make_section (stub_file->the_bfd, ".note.GNU-stack");
   stub_file->the_bfd->flags |= BFD_LINKER_CREATED;
   ldlang_add_file (stub_file);
   ppc64_elf_init_stub_bfd (stub_file->the_bfd, &link_info);

Modified: projects/binutils-2.17/contrib/gcc/config/rs6000/crtsavres.asm
==============================================================================
--- projects/binutils-2.17/contrib/gcc/config/rs6000/crtsavres.asm	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/contrib/gcc/config/rs6000/crtsavres.asm	Sat Jan 15 00:23:57 2011	(r217434)
@@ -305,3 +305,5 @@ FUNC_END(_restgpr_15_x)
 FUNC_END(_restgpr_14_x)
 
 #endif
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/contrib/gcc/config/rs6000/freebsd.h
==============================================================================
--- projects/binutils-2.17/contrib/gcc/config/rs6000/freebsd.h	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/contrib/gcc/config/rs6000/freebsd.h	Sat Jan 15 00:23:57 2011	(r217434)
@@ -230,6 +230,8 @@
       }
 #endif
 
+#define TARGET_ASM_FILE_END rs6000_elf_end_indicate_exec_stack
+
 /* FreeBSD doesn't support saving and restoring 64-bit regs with a 32-bit
    kernel. This is supported when running on a 64-bit kernel with
    COMPAT_FREEBSD32, but tell GCC it isn't so that our 32-bit binaries
@@ -242,3 +244,5 @@
 #define PROFILE_HOOK(LABEL) \
   do { if (TARGET_64BIT) output_profile_hook (LABEL); } while (0)
 
+#undef NEED_INDICATE_EXEC_STACK
+#define NEED_INDICATE_EXEC_STACK 1

Modified: projects/binutils-2.17/contrib/gcc/config/rs6000/rs6000.c
==============================================================================
--- projects/binutils-2.17/contrib/gcc/config/rs6000/rs6000.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/contrib/gcc/config/rs6000/rs6000.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -18426,7 +18426,7 @@ rs6000_elf_declare_function_name (FILE *
 static void
 rs6000_elf_end_indicate_exec_stack (void)
 {
-  if (TARGET_32BIT)
+  if (NEED_INDICATE_EXEC_STACK)
     file_end_indicate_exec_stack ();
 }
 #endif

Modified: projects/binutils-2.17/contrib/gcc/config/rs6000/tramp.asm
==============================================================================
--- projects/binutils-2.17/contrib/gcc/config/rs6000/tramp.asm	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/contrib/gcc/config/rs6000/tramp.asm	Sat Jan 15 00:23:57 2011	(r217434)
@@ -115,3 +115,5 @@ FUNC_START(__trampoline_setup)
 FUNC_END(__trampoline_setup)
 
 #endif
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/csu/i386-elf/crt1_s.S
==============================================================================
--- projects/binutils-2.17/lib/csu/i386-elf/crt1_s.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/csu/i386-elf/crt1_s.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -42,6 +42,7 @@ _start:
 	.cfi_def_cfa_register %ebp
 	andl	$0xfffffff0,%esp # align stack
 	leal	8(%ebp),%eax
+	subl	$4,%esp
 	pushl	%eax		# argv
 	pushl	4(%ebp)		# argc
 	pushl	%edx		# rtld cleanup

Modified: projects/binutils-2.17/lib/csu/powerpc/crti.S
==============================================================================
--- projects/binutils-2.17/lib/csu/powerpc/crti.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/csu/powerpc/crti.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -47,3 +47,5 @@ _fini:
 	stw 31,12(1)
 	stw 0,20(1)
 	mr 31,1
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/csu/powerpc/crtn.S
==============================================================================
--- projects/binutils-2.17/lib/csu/powerpc/crtn.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/csu/powerpc/crtn.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -42,3 +42,5 @@ __FBSDID("$FreeBSD$");
 	lwz 31,-4(11)
 	mr 1,11
 	blr
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/csu/powerpc64/crti.S
==============================================================================
--- projects/binutils-2.17/lib/csu/powerpc64/crti.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/csu/powerpc64/crti.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -59,3 +59,5 @@ _fini:
 	stdu 1,-48(1)
 	mflr 0
 	std 0,64(1)
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/csu/powerpc64/crtn.S
==============================================================================
--- projects/binutils-2.17/lib/csu/powerpc64/crtn.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/csu/powerpc64/crtn.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -38,3 +38,5 @@ __FBSDID("$FreeBSD$");
 	ld 0,16(%r1)
 	mtlr 0
 	blr
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc/gen/_ctx_start.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc/gen/_ctx_start.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc/gen/_ctx_start.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -41,3 +41,5 @@
 	 * above branch.
 	 */
 	bl	PIC_PLT(CNAME(abort))	/* abort */
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc/gen/_setjmp.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc/gen/_setjmp.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc/gen/_setjmp.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -69,3 +69,5 @@ ENTRY(_longjmp)
 	bnelr
 	li	%r3,1
 	blr
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc/gen/fabs.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc/gen/fabs.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc/gen/fabs.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -33,3 +33,5 @@ __FBSDID("$FreeBSD$");
 ENTRY(fabs)
 	fabs	%f1,%f1
 	blr
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc/gen/setjmp.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc/gen/setjmp.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc/gen/setjmp.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -89,3 +89,4 @@ ENTRY(__longjmp)
 	li	%r3,1
 	blr
 
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc/gen/sigsetjmp.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc/gen/sigsetjmp.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc/gen/sigsetjmp.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -95,3 +95,5 @@ ENTRY(siglongjmp)
 	bnelr
 	li	%r3,1
 	blr
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc/sys/brk.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc/sys/brk.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc/sys/brk.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -71,3 +71,5 @@ ENTRY(brk)
 
 1:
 	b	PIC_PLT(HIDENAME(cerror))
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc/sys/cerror.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc/sys/cerror.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc/sys/cerror.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -54,4 +54,4 @@ HIDENAME(cerror):
 	li	%r4,-1
 	blr				/* return to callers caller */
 
-
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc/sys/exect.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc/sys/exect.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc/sys/exect.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -37,3 +37,5 @@ ENTRY(exect)
 	blr
 1:
 	b	PIC_PLT(HIDENAME(cerror))
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc/sys/pipe.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc/sys/pipe.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc/sys/pipe.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -41,3 +41,5 @@ ENTRY(pipe)
 	blr			/* and return 0 */
 1:
 	b	PIC_PLT(HIDENAME(cerror))
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc/sys/ptrace.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc/sys/ptrace.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc/sys/ptrace.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -56,3 +56,5 @@ ENTRY(ptrace)
 	blr
 1:
 	b	PIC_PLT(HIDENAME(cerror))
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc/sys/sbrk.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc/sys/sbrk.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc/sys/sbrk.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -68,3 +68,5 @@ ENTRY(sbrk)
 	blr
 2:
 	b	PIC_PLT(HIDENAME(cerror))
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc/sys/setlogin.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc/sys/setlogin.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc/sys/setlogin.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -47,3 +47,5 @@ SYSCALL(setlogin)
 	stw	%r5,CNAME(_logname_valid)@l(%r4)
 #endif
 	blr
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc64/gen/_ctx_start.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc64/gen/_ctx_start.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc64/gen/_ctx_start.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -45,3 +45,5 @@
 	 */
 	nop
 	bl	PIC_PLT(CNAME(abort))	/* abort */
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc64/gen/_setjmp.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc64/gen/_setjmp.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc64/gen/_setjmp.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -114,3 +114,5 @@ ENTRY(_longjmp)
 	bnelr
 	li	%r3,1
 	blr
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc64/gen/fabs.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc64/gen/fabs.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc64/gen/fabs.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -33,3 +33,5 @@ __FBSDID("$FreeBSD$");
 ENTRY(fabs)
 	fabs	%f1,%f1
 	blr
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc64/gen/setjmp.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc64/gen/setjmp.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc64/gen/setjmp.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -137,3 +137,4 @@ ENTRY(__longjmp)
 	li	%r3,1
 	blr
 
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc64/gen/sigsetjmp.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc64/gen/sigsetjmp.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc64/gen/sigsetjmp.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -142,3 +142,5 @@ ENTRY(siglongjmp)
 	bnelr
 	li	%r3,1
 	blr
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc64/sys/brk.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc64/sys/brk.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc64/sys/brk.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -69,3 +69,5 @@ ENTRY(brk)
 	ld	%r0,16(%r1)
 	mtlr	%r0
 	blr
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc64/sys/cerror.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc64/sys/cerror.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc64/sys/cerror.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -57,4 +57,4 @@ ENTRY(HIDENAME(cerror))
 	li	%r4,-1
 	blr
 
-
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc64/sys/exect.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc64/sys/exect.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc64/sys/exect.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -45,3 +45,5 @@ ENTRY(exect)
 	ld	%r0,16(%r1)
 	mtlr	%r0
 	blr
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc64/sys/pipe.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc64/sys/pipe.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc64/sys/pipe.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -49,3 +49,5 @@ ENTRY(pipe)
 	ld	%r0,16(%r1)
 	mtlr	%r0
 	blr
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc64/sys/ptrace.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc64/sys/ptrace.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc64/sys/ptrace.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -63,3 +63,5 @@ ENTRY(ptrace)
 	ld	%r0,16(%r1)
 	mtlr	%r0
 	blr
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc64/sys/sbrk.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc64/sys/sbrk.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc64/sys/sbrk.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -64,3 +64,5 @@ ENTRY(sbrk)
 	ld	%r0,16(%r1)
 	mtlr	%r0
 	blr
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libc/powerpc64/sys/setlogin.S
==============================================================================
--- projects/binutils-2.17/lib/libc/powerpc64/sys/setlogin.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libc/powerpc64/sys/setlogin.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -37,3 +37,5 @@ SYSCALL(setlogin)
 	li	%r5,0
 	stw	%r5,CNAME(_logname_valid)@toc@l(%r4)
 	blr
+
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/lib/libcompiler_rt/Makefile
==============================================================================
--- projects/binutils-2.17/lib/libcompiler_rt/Makefile	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/lib/libcompiler_rt/Makefile	Sat Jan 15 00:23:57 2011	(r217434)
@@ -156,7 +156,8 @@ SYMLINKS+=libcompiler_rt_p.a ${LIBDIR}/l
 . endif
 .endif
 
-.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
+.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \
+    ${MACHINE_CPUARCH} == "powerpc"
 AFLAGS+=--noexecstack
 ACFLAGS+=-Wa,--noexecstack
 .endif

Modified: projects/binutils-2.17/libexec/rtld-elf/powerpc/rtld_start.S
==============================================================================
--- projects/binutils-2.17/libexec/rtld-elf/powerpc/rtld_start.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/libexec/rtld-elf/powerpc/rtld_start.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -197,4 +197,4 @@ _ENTRY(_rtld_powerpc_pltcall)
         mtctr   %r11
         bctr				# (*jmptab[index])()
 
-
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/libexec/rtld-elf/powerpc64/rtld_start.S
==============================================================================
--- projects/binutils-2.17/libexec/rtld-elf/powerpc64/rtld_start.S	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/libexec/rtld-elf/powerpc64/rtld_start.S	Sat Jan 15 00:23:57 2011	(r217434)
@@ -159,3 +159,4 @@ _ENTRY(_rtld_bind_start)
 
 	bctr				# jump to target
 
+	.section .note.GNU-stack,"",%progbits

Modified: projects/binutils-2.17/release/amd64/boot_crunch.conf
==============================================================================
--- projects/binutils-2.17/release/amd64/boot_crunch.conf	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/release/amd64/boot_crunch.conf	Sat Jan 15 00:23:57 2011	(r217434)
@@ -40,5 +40,5 @@ progs sysinstall
 progs usbconfig
 
 libs -ll -ledit -lutil -lmd -lcrypt -lftpio -lz -lnetgraph
-libs -ldialog -lncurses -ldisk -lcam -lsbuf -lufs -ldevinfo
+libs -lodialog -lncurses -ldisk -lcam -lsbuf -lufs -ldevinfo
 libs -lbsdxml -larchive -lcrypto -lbz2 -llzma -lusb -ljail

Modified: projects/binutils-2.17/release/i386/boot_crunch.conf
==============================================================================
--- projects/binutils-2.17/release/i386/boot_crunch.conf	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/release/i386/boot_crunch.conf	Sat Jan 15 00:23:57 2011	(r217434)
@@ -40,5 +40,5 @@ progs sysinstall
 progs usbconfig
 
 libs -ll -ledit -lutil -lmd -lcrypt -lftpio -lz -lnetgraph
-libs -ldialog -lncurses -ldisk -lcam -lsbuf -lufs -ldevinfo
+libs -lodialog -lncurses -ldisk -lcam -lsbuf -lufs -ldevinfo
 libs -lbsdxml -larchive -lcrypto -lbz2 -llzma -lusb -ljail

Modified: projects/binutils-2.17/release/ia64/boot_crunch.conf
==============================================================================
--- projects/binutils-2.17/release/ia64/boot_crunch.conf	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/release/ia64/boot_crunch.conf	Sat Jan 15 00:23:57 2011	(r217434)
@@ -45,5 +45,5 @@ progs sysinstall
 progs usbconfig
 
 libs -ll -ledit -lutil -lmd -lcrypt -lftpio -lz -lnetgraph
-libs -ldialog -lncurses -ldisk -lcam -lkiconv -lsbuf -lufs -ldevinfo
+libs -lodialog -lncurses -ldisk -lcam -lkiconv -lsbuf -lufs -ldevinfo
 libs -lgeom -lbsdxml -larchive -lcrypto -lbz2 -llzma -lusb -ljail

Modified: projects/binutils-2.17/release/pc98/boot_crunch.conf
==============================================================================
--- projects/binutils-2.17/release/pc98/boot_crunch.conf	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/release/pc98/boot_crunch.conf	Sat Jan 15 00:23:57 2011	(r217434)
@@ -39,5 +39,5 @@ progs ppp
 progs sysinstall
 
 libs -ll -ledit -lutil -lmd -lcrypt -lftpio -lz -lnetgraph
-libs -ldialog -lncurses -ldisk -lcam -lsbuf -lufs -lbsdxml
+libs -lodialog -lncurses -ldisk -lcam -lsbuf -lufs -lbsdxml
 libs -larchive -lcrypto -lbz2 -llzma -ljail

Modified: projects/binutils-2.17/release/powerpc/boot_crunch.conf
==============================================================================
--- projects/binutils-2.17/release/powerpc/boot_crunch.conf	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/release/powerpc/boot_crunch.conf	Sat Jan 15 00:23:57 2011	(r217434)
@@ -45,5 +45,5 @@ progs sysinstall
 progs usbconfig
 
 libs -ll -ledit -lutil -lmd -lcrypt -lftpio -lz -lnetgraph
-libs -ldialog -lncurses -ldisk -lcam -lkiconv -lsbuf -lufs
+libs -lodialog -lncurses -ldisk -lcam -lkiconv -lsbuf -lufs
 libs -lgeom -lbsdxml -larchive -lcrypto -lbz2 -llzma -lusb -ljail

Modified: projects/binutils-2.17/release/sparc64/boot_crunch.conf
==============================================================================
--- projects/binutils-2.17/release/sparc64/boot_crunch.conf	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/release/sparc64/boot_crunch.conf	Sat Jan 15 00:23:57 2011	(r217434)
@@ -43,5 +43,5 @@ progs sysinstall
 progs usbconfig
 
 libs -ll -ledit -lutil -lmd -lcrypt -lftpio -lz -lnetgraph
-libs -ldialog -lncurses -ldisk -lcam -lsbuf -lufs -lgeom -lbsdxml
+libs -lodialog -lncurses -ldisk -lcam -lsbuf -lufs -lgeom -lbsdxml
 libs -larchive -lcrypto -lbz2 -llzma -lusb -ljail

Modified: projects/binutils-2.17/release/sun4v/boot_crunch.conf
==============================================================================
--- projects/binutils-2.17/release/sun4v/boot_crunch.conf	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/release/sun4v/boot_crunch.conf	Sat Jan 15 00:23:57 2011	(r217434)
@@ -40,5 +40,5 @@ progs sysinstall
 progs usbconfig
 
 libs -ll -ledit -lutil -lmd -lcrypt -lftpio -lz -lnetgraph
-libs -ldialog -lncurses -ldisk -lcam -lsbuf -lufs -lbsdxml
+libs -lodialog -lncurses -ldisk -lcam -lsbuf -lufs -lbsdxml
 libs -larchive -lcrypto -lbz2 -llzma -lusb -ljail

Modified: projects/binutils-2.17/sys/amd64/ia32/ia32_signal.c
==============================================================================
--- projects/binutils-2.17/sys/amd64/ia32/ia32_signal.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/amd64/ia32/ia32_signal.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -741,7 +741,6 @@ ia32_setregs(struct thread *td, struct i
 	regs->tf_gs = _ugssel;
 	regs->tf_flags = TF_HASSEGS;
 
-	load_cr0(rcr0() | CR0_MP | CR0_TS);
 	fpstate_drop(td);
 
 	/* Return via doreti so that we can change to a different %cs */

Modified: projects/binutils-2.17/sys/amd64/linux32/linux32_sysvec.c
==============================================================================
--- projects/binutils-2.17/sys/amd64/linux32/linux32_sysvec.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/amd64/linux32/linux32_sysvec.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -865,7 +865,7 @@ exec_linux_setregs(struct thread *td, st
 	regs->tf_flags = TF_HASSEGS;
 	regs->tf_cs = _ucode32sel;
 	regs->tf_rbx = imgp->ps_strings;
-	load_cr0(rcr0() | CR0_MP | CR0_TS);
+
 	fpstate_drop(td);
 
 	/* Do full restore on return so that we can change to a different %cs */

Modified: projects/binutils-2.17/sys/contrib/pf/net/pf_osfp.c
==============================================================================
--- projects/binutils-2.17/sys/contrib/pf/net/pf_osfp.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/contrib/pf/net/pf_osfp.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -601,7 +601,7 @@ pf_osfp_validate(void)
 		if (find.fp_mss == 0)
 			find.fp_mss = 128;
 		if (f->fp_flags & PF_OSFP_WSIZE_MSS)
-			find.fp_wsize *= find.fp_mss, 1;
+			find.fp_wsize *= find.fp_mss;
 		else if (f->fp_flags & PF_OSFP_WSIZE_MTU)
 			find.fp_wsize *= (find.fp_mss + 40);
 		else if (f->fp_flags & PF_OSFP_WSIZE_MOD)

Modified: projects/binutils-2.17/sys/dev/alc/if_alc.c
==============================================================================
--- projects/binutils-2.17/sys/dev/alc/if_alc.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/dev/alc/if_alc.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -1052,13 +1052,12 @@ alc_detach(device_t dev)
 
 	ifp = sc->alc_ifp;
 	if (device_is_attached(dev)) {
+		ether_ifdetach(ifp);
 		ALC_LOCK(sc);
-		sc->alc_flags |= ALC_FLAG_DETACH;
 		alc_stop(sc);
 		ALC_UNLOCK(sc);
 		callout_drain(&sc->alc_tick_ch);
 		taskqueue_drain(sc->alc_tq, &sc->alc_int_task);
-		ether_ifdetach(ifp);
 	}
 
 	if (sc->alc_tq != NULL) {
@@ -2368,7 +2367,7 @@ alc_ioctl(struct ifnet *ifp, u_long cmd,
 			    ((ifp->if_flags ^ sc->alc_if_flags) &
 			    (IFF_PROMISC | IFF_ALLMULTI)) != 0)
 				alc_rxfilter(sc);
-			else if ((sc->alc_flags & ALC_FLAG_DETACH) == 0)
+			else
 				alc_init_locked(sc);
 		} else if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
 			alc_stop(sc);
@@ -2663,6 +2662,7 @@ alc_int_task(void *arg, int pending)
 	ifp = sc->alc_ifp;
 
 	status = CSR_READ_4(sc, ALC_INTR_STATUS);
+	ALC_LOCK(sc);
 	if (sc->alc_morework != 0) {
 		sc->alc_morework = 0;
 		status |= INTR_RX_PKT;
@@ -2680,7 +2680,6 @@ alc_int_task(void *arg, int pending)
 			if (more == EAGAIN)
 				sc->alc_morework = 1;
 			else if (more == EIO) {
-				ALC_LOCK(sc);
 				ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
 				alc_init_locked(sc);
 				ALC_UNLOCK(sc);
@@ -2698,7 +2697,6 @@ alc_int_task(void *arg, int pending)
 			if ((status & INTR_TXQ_TO_RST) != 0)
 				device_printf(sc->alc_dev,
 				    "TxQ reset! -- resetting\n");
-			ALC_LOCK(sc);
 			ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
 			alc_init_locked(sc);
 			ALC_UNLOCK(sc);
@@ -2706,11 +2704,12 @@ alc_int_task(void *arg, int pending)
 		}
 		if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0 &&
 		    !IFQ_DRV_IS_EMPTY(&ifp->if_snd))
-			alc_start(ifp);
+			alc_start_locked(ifp);
 	}
 
 	if (more == EAGAIN ||
 	    (CSR_READ_4(sc, ALC_INTR_STATUS) & ALC_INTRS) != 0) {
+		ALC_UNLOCK(sc);
 		taskqueue_enqueue(sc->alc_tq, &sc->alc_int_task);
 		return;
 	}
@@ -2720,6 +2719,7 @@ done:
 		/* Re-enable interrupts if we're running. */
 		CSR_WRITE_4(sc, ALC_INTR_STATUS, 0x7FFFFFFF);
 	}
+	ALC_UNLOCK(sc);
 }
 
 static void
@@ -3039,7 +3039,9 @@ alc_rxeof(struct alc_softc *sc, struct r
 #endif
 			{
 			/* Pass it on. */
+			ALC_UNLOCK(sc);
 			(*ifp->if_input)(ifp, m);
+			ALC_LOCK(sc);
 			}
 		}
 	}

Modified: projects/binutils-2.17/sys/dev/alc/if_alcvar.h
==============================================================================
--- projects/binutils-2.17/sys/dev/alc/if_alcvar.h	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/dev/alc/if_alcvar.h	Sat Jan 15 00:23:57 2011	(r217434)
@@ -230,7 +230,6 @@ struct alc_softc {
 #define	ALC_FLAG_L0S		0x0400
 #define	ALC_FLAG_L1S		0x0800
 #define	ALC_FLAG_APS		0x1000
-#define	ALC_FLAG_DETACH		0x4000
 #define	ALC_FLAG_LINK		0x8000
 
 	struct callout		alc_tick_ch;

Modified: projects/binutils-2.17/sys/dev/dc/dcphy.c
==============================================================================
--- projects/binutils-2.17/sys/dev/dc/dcphy.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/dev/dc/dcphy.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -222,17 +222,12 @@ dcphy_service(struct mii_softc *sc, stru
 			/*dcphy_reset(sc);*/
 			(void) dcphy_auto(sc);
 			break;
-		case IFM_100_T4:
-			/*
-			 * XXX Not supported as a manual setting right now.
-			 */
-			return (EINVAL);
 		case IFM_100_TX:
 			dcphy_reset(sc);
 			DC_CLRBIT(dc_sc, DC_10BTCTRL, DC_TCTL_AUTONEGENBL);
 			mode |= DC_NETCFG_PORTSEL | DC_NETCFG_PCS |
 			    DC_NETCFG_SCRAMBLER;
-			if ((ife->ifm_media & IFM_GMASK) == IFM_FDX)
+			if ((ife->ifm_media & IFM_FDX) != 0)
 				mode |= DC_NETCFG_FULLDUPLEX;
 			else
 				mode &= ~DC_NETCFG_FULLDUPLEX;
@@ -241,7 +236,7 @@ dcphy_service(struct mii_softc *sc, stru
 		case IFM_10_T:
 			DC_CLRBIT(dc_sc, DC_SIARESET, DC_SIA_RESET);
 			DC_CLRBIT(dc_sc, DC_10BTCTRL, 0xFFFF);
-			if ((ife->ifm_media & IFM_GMASK) == IFM_FDX)
+			if ((ife->ifm_media & IFM_FDX) != 0)
 				DC_SETBIT(dc_sc, DC_10BTCTRL, 0x7F3D);
 			else
 				DC_SETBIT(dc_sc, DC_10BTCTRL, 0x7F3F);
@@ -249,7 +244,7 @@ dcphy_service(struct mii_softc *sc, stru
 			DC_CLRBIT(dc_sc, DC_10BTCTRL, DC_TCTL_AUTONEGENBL);
 			mode &= ~DC_NETCFG_PORTSEL;
 			mode |= DC_NETCFG_SPEEDSEL;
-			if ((ife->ifm_media & IFM_GMASK) == IFM_FDX)
+			if ((ife->ifm_media & IFM_FDX) != 0)
 				mode |= DC_NETCFG_FULLDUPLEX;
 			else
 				mode &= ~DC_NETCFG_FULLDUPLEX;

Modified: projects/binutils-2.17/sys/dev/dc/pnphy.c
==============================================================================
--- projects/binutils-2.17/sys/dev/dc/pnphy.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/dev/dc/pnphy.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -66,14 +66,6 @@ __FBSDID("$FreeBSD$");
 
 #include "miibus_if.h"
 
-#define DC_SETBIT(sc, reg, x)                           \
-        CSR_WRITE_4(sc, reg,                            \
-                CSR_READ_4(sc, reg) | x)
-
-#define DC_CLRBIT(sc, reg, x)                           \
-        CSR_WRITE_4(sc, reg,                            \
-                CSR_READ_4(sc, reg) & ~x)
-
 static int pnphy_probe(device_t);
 static int pnphy_attach(device_t);
 
@@ -170,23 +162,19 @@ pnphy_service(struct mii_softc *sc, stru
 		if ((mii->mii_ifp->if_flags & IFF_UP) == 0)
 			break;
 
+		/*
+		 * Note that auto-negotiation is broken on this chip.
+		 */
 		switch (IFM_SUBTYPE(ife->ifm_media)) {
-		case IFM_AUTO:
-			/* NWAY is busted on this chip */
-		case IFM_100_T4:
-			/*
-			 * XXX Not supported as a manual setting right now.
-			 */
-			return (EINVAL);
 		case IFM_100_TX:
 			mii->mii_media_active = IFM_ETHER | IFM_100_TX;
-			if ((ife->ifm_media & IFM_GMASK) == IFM_FDX)
+			if ((ife->ifm_media & IFM_FDX) != 0)
 				mii->mii_media_active |= IFM_FDX;
 			MIIBUS_STATCHG(sc->mii_dev);
 			return (0);
 		case IFM_10_T:
 			mii->mii_media_active = IFM_ETHER | IFM_10_T;
-			if ((ife->ifm_media & IFM_GMASK) == IFM_FDX)
+			if ((ife->ifm_media & IFM_FDX) != 0)
 				mii->mii_media_active |= IFM_FDX;
 			MIIBUS_STATCHG(sc->mii_dev);
 			return (0);
@@ -226,15 +214,14 @@ pnphy_status(struct mii_softc *sc)
 	mii->mii_media_active = IFM_ETHER;
 
 	reg = CSR_READ_4(dc_sc, DC_ISR);
-
 	if (!(reg & DC_ISR_LINKFAIL))
 		mii->mii_media_status |= IFM_ACTIVE;
-
-	if (CSR_READ_4(dc_sc, DC_NETCFG) & DC_NETCFG_SPEEDSEL)
+	reg = CSR_READ_4(dc_sc, DC_NETCFG);
+	if (reg & DC_NETCFG_SPEEDSEL)
 		mii->mii_media_active |= IFM_10_T;
 	else
 		mii->mii_media_active |= IFM_100_TX;
-	if (CSR_READ_4(dc_sc, DC_NETCFG) & DC_NETCFG_FULLDUPLEX)
+	if (reg & DC_NETCFG_FULLDUPLEX)
 		mii->mii_media_active |= IFM_FDX;
 	else
 		mii->mii_media_active |= IFM_HDX;

Modified: projects/binutils-2.17/sys/dev/mii/atphy.c
==============================================================================
--- projects/binutils-2.17/sys/dev/mii/atphy.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/dev/mii/atphy.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -187,9 +187,9 @@ atphy_service(struct mii_softc *sc, stru
 		}
 
 		anar = atphy_anar(ife);
-		if (((ife->ifm_media & IFM_GMASK) & IFM_FDX) != 0) {
+		if ((ife->ifm_media & IFM_FDX) != 0) {
 			bmcr |= BMCR_FDX;
-			if (((ife->ifm_media & IFM_GMASK) & IFM_FLOW) != 0 ||
+			if ((ife->ifm_media & IFM_FLOW) != 0 ||
 			    (sc->mii_flags & MIIF_FORCEPAUSE) != 0)
 				anar |= ANAR_PAUSE_TOWARDS;
 		}
@@ -371,7 +371,7 @@ atphy_anar(struct ifmedia_entry *ife)
 		return (0);
 	}
 
-	if (((ife->ifm_media & IFM_GMASK) & IFM_FDX) != 0) {
+	if ((ife->ifm_media & IFM_FDX) != 0) {
 		if (IFM_SUBTYPE(ife->ifm_media) == IFM_100_TX)
 			anar |= ANAR_TX_FD;
 		else
@@ -387,13 +387,13 @@ atphy_setmedia(struct mii_softc *sc, int
 	uint16_t anar;
 
 	anar = BMSR_MEDIA_TO_ANAR(sc->mii_capabilities) | ANAR_CSMA;
-	if (((IFM_SUBTYPE(media) == IFM_AUTO ||
-	    ((media & IFM_GMASK) & IFM_FDX) != 0) &&
-	    ((media & IFM_GMASK) & IFM_FLOW) != 0) ||
-	    (sc->mii_flags & MIIF_FORCEPAUSE) != 0)
+	if ((IFM_SUBTYPE(media) == IFM_AUTO || (media & IFM_FDX) != 0) &&
+	    ((media & IFM_FLOW) != 0 ||
+	    (sc->mii_flags & MIIF_FORCEPAUSE) != 0))
 		anar |= ANAR_PAUSE_TOWARDS;
 	PHY_WRITE(sc, MII_ANAR, anar);
-	if ((sc->mii_extcapabilities & (EXTSR_1000TFDX | EXTSR_1000THDX)) != 0)
+	if ((sc->mii_extcapabilities &
+	     (EXTSR_1000TFDX | EXTSR_1000THDX)) != 0)
 		PHY_WRITE(sc, MII_100T2CR, GTCR_ADV_1000TFDX |
 		    GTCR_ADV_1000THDX);
 	PHY_WRITE(sc, MII_BMCR, BMCR_RESET | BMCR_AUTOEN | BMCR_STARTNEG);

Modified: projects/binutils-2.17/sys/dev/mii/brgphy.c
==============================================================================
--- projects/binutils-2.17/sys/dev/mii/brgphy.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/dev/mii/brgphy.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -453,7 +453,7 @@ brgphy_setmedia(struct mii_softc *sc, in
 		break;
 	}
 
-	if ((media & IFM_GMASK) == IFM_FDX) {
+	if ((media & IFM_FDX) != 0) {
 		bmcr |= BRGPHY_BMCR_FDX;
 		gig = BRGPHY_1000CTL_AFD;
 	} else {

Modified: projects/binutils-2.17/sys/dev/mii/ciphy.c
==============================================================================
--- projects/binutils-2.17/sys/dev/mii/ciphy.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/dev/mii/ciphy.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -176,26 +176,23 @@ ciphy_service(struct mii_softc *sc, stru
 		case IFM_10_T:
 			speed = CIPHY_S10;
 setit:
-			if ((ife->ifm_media & IFM_GMASK) == IFM_FDX) {
+			if ((ife->ifm_media & IFM_FDX) != 0) {
 				speed |= CIPHY_BMCR_FDX;
 				gig = CIPHY_1000CTL_AFD;
-			} else {
+			} else
 				gig = CIPHY_1000CTL_AHD;
-			}
 
-			PHY_WRITE(sc, CIPHY_MII_1000CTL, 0);
+			if (IFM_SUBTYPE(ife->ifm_media) == IFM_1000_T) {
+				gig |= CIPHY_1000CTL_MSE;
+				if ((ife->ifm_media & IFM_ETH_MASTER) != 0)
+					gig |= CIPHY_1000CTL_MSC;
+				speed |=
+				    CIPHY_BMCR_AUTOEN | CIPHY_BMCR_STARTNEG;
+			} else
+				gig = 0;
+			PHY_WRITE(sc, CIPHY_MII_1000CTL, gig);
 			PHY_WRITE(sc, CIPHY_MII_BMCR, speed);
 			PHY_WRITE(sc, CIPHY_MII_ANAR, CIPHY_SEL_TYPE);
-
-			if (IFM_SUBTYPE(ife->ifm_media) != IFM_1000_T)
-				break;
-
-			gig |= CIPHY_1000CTL_MSE;
-			if ((ife->ifm_media & IFM_ETH_MASTER) != 0)
-				gig |= CIPHY_1000CTL_MSC;
-			PHY_WRITE(sc, CIPHY_MII_1000CTL, gig);
-			PHY_WRITE(sc, CIPHY_MII_BMCR,
-			    speed | CIPHY_BMCR_AUTOEN | CIPHY_BMCR_STARTNEG);
 			break;
 		case IFM_NONE:
 			PHY_WRITE(sc, MII_BMCR, BMCR_ISO | BMCR_PDOWN);

Modified: projects/binutils-2.17/sys/dev/mii/e1000phy.c
==============================================================================
--- projects/binutils-2.17/sys/dev/mii/e1000phy.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/dev/mii/e1000phy.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -358,7 +358,7 @@ e1000phy_service(struct mii_softc *sc, s
 			return (EINVAL);
 		}
 
-		if (((ife->ifm_media & IFM_GMASK) & IFM_FDX) != 0) {
+		if ((ife->ifm_media & IFM_FDX) != 0) {
 			speed |= E1000_CR_FULL_DUPLEX;
 			gig = E1000_1GCR_1000T_FD;
 		} else
@@ -372,10 +372,10 @@ e1000phy_service(struct mii_softc *sc, s
 			gig |= E1000_1GCR_MS_ENABLE;
 			if ((ife->ifm_media & IFM_ETH_MASTER) != 0)	
 				gig |= E1000_1GCR_MS_VALUE;
-			PHY_WRITE(sc, E1000_1GCR, gig);
 		} else if ((sc->mii_extcapabilities &
 		    (EXTSR_1000TFDX | EXTSR_1000THDX)) != 0)
-			PHY_WRITE(sc, E1000_1GCR, 0);
+			gig = 0;
+		PHY_WRITE(sc, E1000_1GCR, gig);
 		PHY_WRITE(sc, E1000_AR, E1000_AR_SELECTOR_FIELD);
 		PHY_WRITE(sc, E1000_CR, speed | E1000_CR_RESET);
 done:

Modified: projects/binutils-2.17/sys/dev/mii/ip1000phy.c
==============================================================================
--- projects/binutils-2.17/sys/dev/mii/ip1000phy.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/dev/mii/ip1000phy.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -186,22 +186,21 @@ ip1000phy_service(struct mii_softc *sc, 
 			return (EINVAL);
 		}
 
-		if (((ife->ifm_media & IFM_GMASK) & IFM_FDX) != 0) {
+		if ((ife->ifm_media & IFM_FDX) != 0) {
 			speed |= IP1000PHY_BMCR_FDX;
 			gig = IP1000PHY_1000CR_1000T_FDX;
 		} else
 			gig = IP1000PHY_1000CR_1000T;
 
-		PHY_WRITE(sc, IP1000PHY_MII_1000CR, 0);
-		PHY_WRITE(sc, IP1000PHY_MII_BMCR, speed);
-
-		if (IFM_SUBTYPE(ife->ifm_media) != IFM_1000_T)
-			break;
-
-		gig |= IP1000PHY_1000CR_MASTER | IP1000PHY_1000CR_MANUAL;
-		if ((ife->ifm_media & IFM_ETH_MASTER) != 0)
-			gig |= IP1000PHY_1000CR_MMASTER;
+		if (IFM_SUBTYPE(ife->ifm_media) == IFM_1000_T) {
+			gig |=
+			    IP1000PHY_1000CR_MASTER | IP1000PHY_1000CR_MANUAL;
+			if ((ife->ifm_media & IFM_ETH_MASTER) != 0)
+				gig |= IP1000PHY_1000CR_MMASTER;
+		} else
+			gig = 0;
 		PHY_WRITE(sc, IP1000PHY_MII_1000CR, gig);
+		PHY_WRITE(sc, IP1000PHY_MII_BMCR, speed);
 
 done:
 		break;

Modified: projects/binutils-2.17/sys/dev/mii/jmphy.c
==============================================================================
--- projects/binutils-2.17/sys/dev/mii/jmphy.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/dev/mii/jmphy.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -373,10 +373,10 @@ jmphy_setmedia(struct mii_softc *sc, str
 		bmcr |= BMCR_LOOP;
 
 	anar = jmphy_anar(ife);
-	if (((IFM_SUBTYPE(ife->ifm_media) == IFM_AUTO ||
+	if ((IFM_SUBTYPE(ife->ifm_media) == IFM_AUTO ||
 	    (ife->ifm_media & IFM_FDX) != 0) &&
-	    (ife->ifm_media & IFM_FLOW) != 0) ||
-	    (sc->mii_flags & MIIF_FORCEPAUSE) != 0)
+	    ((ife->ifm_media & IFM_FLOW) != 0 ||
+	    (sc->mii_flags & MIIF_FORCEPAUSE) != 0))
 		anar |= ANAR_PAUSE_TOWARDS;
 
 	if ((sc->mii_flags & MIIF_HAVE_GTCR) != 0) {

Modified: projects/binutils-2.17/sys/dev/mii/mii_physubr.c
==============================================================================
--- projects/binutils-2.17/sys/dev/mii/mii_physubr.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/dev/mii/mii_physubr.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -135,8 +135,9 @@ mii_phy_setmedia(struct mii_softc *sc)
 			gtcr |= GTCR_ADV_MS;
 	}
 
-	if ((ife->ifm_media & IFM_GMASK) == (IFM_FDX | IFM_FLOW) ||
-	    (sc->mii_flags & MIIF_FORCEPAUSE) != 0) {
+	if ((ife->ifm_media & IFM_FDX) != 0 &&
+	    ((ife->ifm_media & IFM_FLOW) != 0 ||
+	    (sc->mii_flags & MIIF_FORCEPAUSE) != 0)) {
 		if ((sc->mii_flags & MIIF_IS_1000X) != 0)
 			anar |= ANAR_X_PAUSE_TOWARDS;
 		else {
@@ -184,7 +185,8 @@ mii_phy_auto(struct mii_softc *sc)
 		    ANAR_CSMA;
 		if ((ife->ifm_media & IFM_FLOW) != 0 ||
 		    (sc->mii_flags & MIIF_FORCEPAUSE) != 0) {
-			if ((sc->mii_capabilities & BMSR_100TXFDX) != 0)
+			if ((sc->mii_capabilities &
+			    (BMSR_10TFDX | BMSR_100TXFDX)) != 0)
 				anar |= ANAR_FC;
 			/* XXX Only 1000BASE-T has PAUSE_ASYM? */
 			if (((sc->mii_flags & MIIF_HAVE_GTCR) != 0) &&

Modified: projects/binutils-2.17/sys/dev/mii/rgephy.c
==============================================================================
--- projects/binutils-2.17/sys/dev/mii/rgephy.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/dev/mii/rgephy.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -146,6 +146,13 @@ rgephy_attach(device_t dev)
 	mii_phy_add_media(sc);
 	printf("\n");
 #undef ADD
+	/*
+	 * Allow IFM_FLAG0 to be set indicating that auto-negotiation with
+	 * manual configuration, which is used to work around issues with
+	 * certain setups by default, should not be triggered as it may in
+	 * turn cause harm in some edge cases.
+	 */
+	mii->mii_media.ifm_mask |= IFM_FLAG0;
 
 	rgephy_reset(sc);
 	MIIBUS_MEDIAINIT(sc->mii_dev);
@@ -201,37 +208,38 @@ rgephy_service(struct mii_softc *sc, str
 			speed = RGEPHY_S10;
 			anar |= RGEPHY_ANAR_10_FD | RGEPHY_ANAR_10;
 setit:
-			rgephy_loop(sc);
-			if ((ife->ifm_media & IFM_GMASK) == IFM_FDX) {
+			if ((ife->ifm_media & IFM_FLOW) != 0 &&
+			    (mii->mii_media.ifm_media & IFM_FLAG0) != 0)
+				return (EINVAL);
+
+			if ((ife->ifm_media & IFM_FDX) != 0) {
 				speed |= RGEPHY_BMCR_FDX;
 				gig = RGEPHY_1000CTL_AFD;
 				anar &= ~(RGEPHY_ANAR_TX | RGEPHY_ANAR_10);
+				if ((ife->ifm_media & IFM_FLOW) != 0 ||
+				    (sc->mii_flags & MIIF_FORCEPAUSE) != 0)
+					anar |=
+					    RGEPHY_ANAR_PC | RGEPHY_ANAR_ASP;
 			} else {
 				gig = RGEPHY_1000CTL_AHD;
 				anar &=
 				    ~(RGEPHY_ANAR_TX_FD | RGEPHY_ANAR_10_FD);
 			}
-
-			if (IFM_SUBTYPE(ife->ifm_media) != IFM_1000_T) {
-				PHY_WRITE(sc, RGEPHY_MII_1000CTL, 0);
-				PHY_WRITE(sc, RGEPHY_MII_ANAR, anar);
-				PHY_WRITE(sc, RGEPHY_MII_BMCR, speed |
-				    RGEPHY_BMCR_AUTOEN |
-				    RGEPHY_BMCR_STARTNEG);
-				break;
+			if (IFM_SUBTYPE(ife->ifm_media) == IFM_1000_T) {
+				gig |= RGEPHY_1000CTL_MSE;
+				if ((ife->ifm_media & IFM_ETH_MASTER) != 0)
+				    gig |= RGEPHY_1000CTL_MSC;
+			} else {
+				gig = 0;
+				anar &= ~RGEPHY_ANAR_ASP;
 			}
-
-			if ((ife->ifm_media & IFM_FLOW) != 0 ||
-			    (sc->mii_flags & MIIF_FORCEPAUSE) != 0)
-				anar |= RGEPHY_ANAR_PC | RGEPHY_ANAR_ASP;
-
-			gig |= RGEPHY_1000CTL_MSE;
-			if ((ife->ifm_media & IFM_ETH_MASTER) != 0)
-			    gig |= RGEPHY_1000CTL_MSC;
+			if ((mii->mii_media.ifm_media & IFM_FLAG0) == 0)
+				speed |=
+				    RGEPHY_BMCR_AUTOEN | RGEPHY_BMCR_STARTNEG;
+			rgephy_loop(sc);
 			PHY_WRITE(sc, RGEPHY_MII_1000CTL, gig);
 			PHY_WRITE(sc, RGEPHY_MII_ANAR, anar);
-			PHY_WRITE(sc, RGEPHY_MII_BMCR, speed |
-			    RGEPHY_BMCR_AUTOEN | RGEPHY_BMCR_STARTNEG);
+			PHY_WRITE(sc, RGEPHY_MII_BMCR, speed);
 			break;
 		case IFM_NONE:
 			PHY_WRITE(sc, MII_BMCR, BMCR_ISO | BMCR_PDOWN);
@@ -258,8 +266,7 @@ setit:
 
 		/*
 		 * Check to see if we have link.  If we do, we don't
-		 * need to restart the autonegotiation process.  Read
-		 * the BMSR twice in case it's latched.
+		 * need to restart the autonegotiation process.
 		 */
 		if (rsc->mii_revision >= 2) {
 			/* RTL8211B(L) */

Modified: projects/binutils-2.17/sys/dev/mii/xmphy.c
==============================================================================
--- projects/binutils-2.17/sys/dev/mii/xmphy.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/dev/mii/xmphy.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -171,7 +171,7 @@ xmphy_service(struct mii_softc *sc, stru
 			break;
 		case IFM_1000_SX:
 			mii_phy_reset(sc);
-			if ((ife->ifm_media & IFM_GMASK) == IFM_FDX) {
+			if ((ife->ifm_media & IFM_FDX) != 0) {
 				PHY_WRITE(sc, XMPHY_MII_ANAR, XMPHY_ANAR_FDX);
 				PHY_WRITE(sc, XMPHY_MII_BMCR, XMPHY_BMCR_FDX);
 			} else {

Modified: projects/binutils-2.17/sys/dev/re/if_re.c
==============================================================================
--- projects/binutils-2.17/sys/dev/re/if_re.c	Sat Jan 15 00:12:51 2011	(r217433)
+++ projects/binutils-2.17/sys/dev/re/if_re.c	Sat Jan 15 00:23:57 2011	(r217434)
@@ -1258,11 +1258,6 @@ re_attach(device_t dev)
 		CSR_WRITE_1(sc, RL_EECMD, RL_EEMODE_OFF);
 	}
 
-	/* Reset the adapter. */
-	RL_LOCK(sc);
-	re_reset(sc);
-	RL_UNLOCK(sc);
-
 	hw_rev = re_hwrevs;
 	hwrev = CSR_READ_4(sc, RL_TXCFG);
 	switch (hwrev & 0x70000000) {
@@ -1366,6 +1361,11 @@ re_attach(device_t dev)
 		break;
 	}
 
+	/* Reset the adapter. */
+	RL_LOCK(sc);
+	re_reset(sc);
+	RL_UNLOCK(sc);
+
 	/* Enable PME. */
 	CSR_WRITE_1(sc, RL_EECMD, RL_EE_MODE);
 	cfg = CSR_READ_1(sc, RL_CFG1);
@@ -1663,15 +1663,19 @@ re_detach(device_t dev)
 	/* Destroy all the RX and TX buffer maps */
 
 	if (sc->rl_ldata.rl_tx_mtag) {
-		for (i = 0; i < sc->rl_ldata.rl_tx_desc_cnt; i++)
-			bus_dmamap_destroy(sc->rl_ldata.rl_tx_mtag,
-			    sc->rl_ldata.rl_tx_desc[i].tx_dmamap);
+		for (i = 0; i < sc->rl_ldata.rl_tx_desc_cnt; i++) {
+			if (sc->rl_ldata.rl_tx_desc[i].tx_dmamap)
+				bus_dmamap_destroy(sc->rl_ldata.rl_tx_mtag,
+				    sc->rl_ldata.rl_tx_desc[i].tx_dmamap);
+		}
 		bus_dma_tag_destroy(sc->rl_ldata.rl_tx_mtag);
 	}
 	if (sc->rl_ldata.rl_rx_mtag) {
-		for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++)
-			bus_dmamap_destroy(sc->rl_ldata.rl_rx_mtag,
-			    sc->rl_ldata.rl_rx_desc[i].rx_dmamap);
+		for (i = 0; i < sc->rl_ldata.rl_rx_desc_cnt; i++) {
+			if (sc->rl_ldata.rl_rx_desc[i].rx_dmamap)
+				bus_dmamap_destroy(sc->rl_ldata.rl_rx_mtag,
+				    sc->rl_ldata.rl_rx_desc[i].rx_dmamap);
+		}
 		if (sc->rl_ldata.rl_rx_sparemap)
 			bus_dmamap_destroy(sc->rl_ldata.rl_rx_mtag,
 			    sc->rl_ldata.rl_rx_sparemap);
@@ -2618,6 +2622,16 @@ re_init_locked(struct rl_softc *sc)
 	re_reset(sc);
 
 	/*
+	 * For C+ mode, initialize the RX descriptors and mbufs.
+	 */
+	if (re_rx_list_init(sc) != 0) {
+		device_printf(sc->rl_dev, "no memory for RX buffers\n");
+		re_stop(sc);
+		return;
+	}
+	re_tx_list_init(sc);
+
+	/*
 	 * Enable C+ RX and TX mode, as well as VLAN stripping and
 	 * RX checksum offload. We must configure the C+ register
 	 * before all others.
@@ -2669,12 +2683,6 @@ re_init_locked(struct rl_softc *sc)
 	CSR_WRITE_1(sc, RL_EECMD, RL_EEMODE_OFF);
 
 	/*
-	 * For C+ mode, initialize the RX descriptors and mbufs.
-	 */
-	re_rx_list_init(sc);
-	re_tx_list_init(sc);
-
-	/*
 	 * Load the addresses of the RX and TX lists into the chip.
 	 */
 
@@ -2923,14 +2931,20 @@ re_ioctl(struct ifnet *ifp, u_long comma
 			}
 		}
 #endif /* DEVICE_POLLING */
-		if (mask & IFCAP_HWCSUM) {
-			ifp->if_capenable ^= IFCAP_HWCSUM;
-			if (ifp->if_capenable & IFCAP_TXCSUM)

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



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