svn commit: r275685 - in projects/clang350-import: bin/freebsd-version contrib/file/doc contrib/file/src etc etc/autofs gnu/usr.bin/gdb/kgdb lib/libc/net lib/libc/stdio sbin/mount sys/arm/altera/so...

Dimitry Andric dim at FreeBSD.org
Wed Dec 10 19:24:51 UTC 2014


Author: dim
Date: Wed Dec 10 19:24:42 2014
New Revision: 275685
URL: https://svnweb.freebsd.org/changeset/base/275685

Log:
  Merge ^/head r274961 through r275684.

Added:
  projects/clang350-import/etc/autofs/special_media
     - copied unchanged from r275684, head/etc/autofs/special_media
  projects/clang350-import/sys/dev/beri/virtio/network/
     - copied from r275684, head/sys/dev/beri/virtio/network/
  projects/clang350-import/sys/dev/xen/grant_table/
     - copied from r275684, head/sys/dev/xen/grant_table/
  projects/clang350-import/sys/dev/xen/pci/
     - copied from r275684, head/sys/dev/xen/pci/
  projects/clang350-import/sys/x86/xen/xen_pci_bus.c
     - copied unchanged from r275684, head/sys/x86/xen/xen_pci_bus.c
  projects/clang350-import/sys/xen/xen_pci.h
     - copied unchanged from r275684, head/sys/xen/xen_pci.h
  projects/clang350-import/usr.sbin/fstyp/
     - copied from r275684, head/usr.sbin/fstyp/
  projects/clang350-import/usr.sbin/pw/tests/pw_groupdel.sh
     - copied unchanged from r275684, head/usr.sbin/pw/tests/pw_groupdel.sh
  projects/clang350-import/usr.sbin/pw/tests/pw_groupmod.sh
     - copied unchanged from r275684, head/usr.sbin/pw/tests/pw_groupmod.sh
  projects/clang350-import/usr.sbin/pw/tests/pw_useradd.sh
     - copied unchanged from r275684, head/usr.sbin/pw/tests/pw_useradd.sh
  projects/clang350-import/usr.sbin/pw/tests/pw_userdel.sh
     - copied unchanged from r275684, head/usr.sbin/pw/tests/pw_userdel.sh
  projects/clang350-import/usr.sbin/pw/tests/pw_usermod.sh
     - copied unchanged from r275684, head/usr.sbin/pw/tests/pw_usermod.sh
Deleted:
  projects/clang350-import/sys/x86/xen/xen_pci.c
  projects/clang350-import/sys/xen/gnttab.c
  projects/clang350-import/usr.sbin/pw/tests/pw_delete.sh
  projects/clang350-import/usr.sbin/pw/tests/pw_modify.sh
Modified:
  projects/clang350-import/bin/freebsd-version/Makefile
  projects/clang350-import/contrib/file/doc/file.man
  projects/clang350-import/contrib/file/src/elfclass.h
  projects/clang350-import/contrib/file/src/file.h
  projects/clang350-import/contrib/file/src/funcs.c
  projects/clang350-import/contrib/file/src/readelf.c
  projects/clang350-import/contrib/file/src/softmagic.c
  projects/clang350-import/etc/auto_master
  projects/clang350-import/etc/autofs/Makefile
  projects/clang350-import/etc/devd.conf
  projects/clang350-import/gnu/usr.bin/gdb/kgdb/kthr.c
  projects/clang350-import/lib/libc/net/sctp_sys_calls.c
  projects/clang350-import/lib/libc/stdio/fflush.c
  projects/clang350-import/sbin/mount/mount.8
  projects/clang350-import/sys/arm/altera/socfpga/files.socfpga
  projects/clang350-import/sys/arm/arm/syscall.c
  projects/clang350-import/sys/arm/broadcom/bcm2835/bcm2835_wdog.c
  projects/clang350-import/sys/arm/conf/SOCKIT-BERI
  projects/clang350-import/sys/boot/fdt/dts/arm/socfpga-sockit-beri.dts
  projects/clang350-import/sys/conf/files
  projects/clang350-import/sys/conf/files.amd64
  projects/clang350-import/sys/dev/beri/virtio/virtio.c
  projects/clang350-import/sys/dev/beri/virtio/virtio.h
  projects/clang350-import/sys/dev/beri/virtio/virtio_block.c
  projects/clang350-import/sys/dev/beri/virtio/virtio_mmio_platform.c
  projects/clang350-import/sys/dev/beri/virtio/virtio_mmio_platform.h
  projects/clang350-import/sys/dev/mii/micphy.c
  projects/clang350-import/sys/dev/usb/usbdevs
  projects/clang350-import/sys/dev/usb/wlan/if_upgt.c
  projects/clang350-import/sys/dev/virtio/mmio/virtio_mmio.c
  projects/clang350-import/sys/dev/virtio/mmio/virtio_mmio_if.m
  projects/clang350-import/sys/fs/ext2fs/ext2_inode.c
  projects/clang350-import/sys/fs/msdosfs/msdosfs_vfsops.c
  projects/clang350-import/sys/kern/vfs_mount.c
  projects/clang350-import/sys/kern/vfs_subr.c
  projects/clang350-import/sys/ofed/include/linux/module.h
  projects/clang350-import/sys/powerpc/aim/trap.c
  projects/clang350-import/sys/x86/xen/pvcpu_enum.c
  projects/clang350-import/sys/x86/xen/xen_intr.c
  projects/clang350-import/sys/x86/xen/xenpv.c
  projects/clang350-import/sys/xen/gnttab.h
  projects/clang350-import/usr.sbin/Makefile
  projects/clang350-import/usr.sbin/autofs/auto_master.5
  projects/clang350-import/usr.sbin/mtree/verify.c
  projects/clang350-import/usr.sbin/pw/tests/Makefile
Directory Properties:
  projects/clang350-import/   (props changed)
  projects/clang350-import/contrib/file/   (props changed)
  projects/clang350-import/contrib/llvm/   (props changed)
  projects/clang350-import/etc/   (props changed)
  projects/clang350-import/gnu/usr.bin/gdb/   (props changed)
  projects/clang350-import/lib/libc/   (props changed)
  projects/clang350-import/sbin/   (props changed)
  projects/clang350-import/sys/   (props changed)
  projects/clang350-import/sys/boot/   (props changed)
  projects/clang350-import/sys/conf/   (props changed)

Modified: projects/clang350-import/bin/freebsd-version/Makefile
==============================================================================
--- projects/clang350-import/bin/freebsd-version/Makefile	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/bin/freebsd-version/Makefile	Wed Dec 10 19:24:42 2014	(r275685)
@@ -5,8 +5,7 @@ MAN = freebsd-version.1
 CLEANFILES = freebsd-version.sh
 NEWVERS = ${.CURDIR}/../../sys/conf/newvers.sh
 
-freebsd-version.sh.in: ${NEWVERS}
-freebsd-version.sh: ${.CURDIR}/freebsd-version.sh.in
+freebsd-version.sh: ${.CURDIR}/freebsd-version.sh.in ${NEWVERS}
 	eval $$(egrep '^(TYPE|REVISION|BRANCH)=' ${NEWVERS}) ; \
 	if ! sed -e "\
 			s/@@TYPE@@/$${TYPE}/g; \

Modified: projects/clang350-import/contrib/file/doc/file.man
==============================================================================
--- projects/clang350-import/contrib/file/doc/file.man	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/contrib/file/doc/file.man	Wed Dec 10 19:24:42 2014	(r275685)
@@ -1,5 +1,5 @@
 .\" $File: file.man,v 1.106 2014/03/07 23:11:51 christos Exp $
-.Dd January 30, 2014
+.Dd December 3, 2014
 .Dt FILE __CSECTION__
 .Os
 .Sh NAME
@@ -385,6 +385,7 @@ options.
 .Xr hexdump 1 ,
 .Xr od 1 ,
 .Xr strings 1 ,
+.Xr fstyp 8
 .Sh STANDARDS CONFORMANCE
 This program is believed to exceed the System V Interface Definition
 of FILE(CMD), as near as one can determine from the vague language

Modified: projects/clang350-import/contrib/file/src/elfclass.h
==============================================================================
--- projects/clang350-import/contrib/file/src/elfclass.h	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/contrib/file/src/elfclass.h	Wed Dec 10 19:24:42 2014	(r275685)
@@ -35,10 +35,12 @@
 	switch (type) {
 #ifdef ELFCORE
 	case ET_CORE:
+		phnum = elf_getu16(swap, elfhdr.e_phnum);
+		if (phnum > MAX_PHNUM)
+			return toomany(ms, "program", phnum);
 		flags |= FLAGS_IS_CORE;
 		if (dophn_core(ms, clazz, swap, fd,
-		    (off_t)elf_getu(swap, elfhdr.e_phoff),
-		    elf_getu16(swap, elfhdr.e_phnum), 
+		    (off_t)elf_getu(swap, elfhdr.e_phoff), phnum,
 		    (size_t)elf_getu16(swap, elfhdr.e_phentsize),
 		    fsize, &flags) == -1)
 			return -1;
@@ -46,18 +48,24 @@
 #endif
 	case ET_EXEC:
 	case ET_DYN:
+		phnum = elf_getu16(swap, elfhdr.e_phnum);
+		if (phnum > MAX_PHNUM)
+			return toomany(ms, "program", phnum);
+		shnum = elf_getu16(swap, elfhdr.e_shnum);
+		if (shnum > MAX_SHNUM)
+			return toomany(ms, "section", shnum);
 		if (dophn_exec(ms, clazz, swap, fd,
-		    (off_t)elf_getu(swap, elfhdr.e_phoff),
-		    elf_getu16(swap, elfhdr.e_phnum), 
+		    (off_t)elf_getu(swap, elfhdr.e_phoff), phnum,
 		    (size_t)elf_getu16(swap, elfhdr.e_phentsize),
-		    fsize, &flags, elf_getu16(swap, elfhdr.e_shnum))
-		    == -1)
+		    fsize, &flags, shnum) == -1)
 			return -1;
 		/*FALLTHROUGH*/
 	case ET_REL:
+		shnum = elf_getu16(swap, elfhdr.e_shnum);
+		if (shnum > MAX_SHNUM)
+			return toomany(ms, "section", shnum);
 		if (doshn(ms, clazz, swap, fd,
-		    (off_t)elf_getu(swap, elfhdr.e_shoff),
-		    elf_getu16(swap, elfhdr.e_shnum),
+		    (off_t)elf_getu(swap, elfhdr.e_shoff), shnum,
 		    (size_t)elf_getu16(swap, elfhdr.e_shentsize),
 		    fsize, &flags, elf_getu16(swap, elfhdr.e_machine),
 		    (int)elf_getu16(swap, elfhdr.e_shstrndx)) == -1)

Modified: projects/clang350-import/contrib/file/src/file.h
==============================================================================
--- projects/clang350-import/contrib/file/src/file.h	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/contrib/file/src/file.h	Wed Dec 10 19:24:42 2014	(r275685)
@@ -482,6 +482,14 @@ protected int file_regexec(file_regex_t 
 protected void file_regfree(file_regex_t *);
 protected void file_regerror(file_regex_t *, int, struct magic_set *);
 
+typedef struct {
+	char *buf;
+	uint32_t offset;
+} file_pushbuf_t;
+
+protected file_pushbuf_t *file_push_buffer(struct magic_set *);
+protected char  *file_pop_buffer(struct magic_set *, file_pushbuf_t *);
+
 #ifndef COMPILE_ONLY
 extern const char *file_names[];
 extern const size_t file_nnames;

Modified: projects/clang350-import/contrib/file/src/funcs.c
==============================================================================
--- projects/clang350-import/contrib/file/src/funcs.c	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/contrib/file/src/funcs.c	Wed Dec 10 19:24:42 2014	(r275685)
@@ -491,3 +491,43 @@ file_regerror(file_regex_t *rx, int rc, 
 	file_magerror(ms, "regex error %d for `%s', (%s)", rc, rx->pat,
 	    errmsg);
 }
+
+protected file_pushbuf_t *
+file_push_buffer(struct magic_set *ms)
+{
+	file_pushbuf_t *pb;
+
+	if (ms->event_flags & EVENT_HAD_ERR)
+		return NULL;
+
+	if ((pb = (CAST(file_pushbuf_t *, malloc(sizeof(*pb))))) == NULL)
+		return NULL;
+
+	pb->buf = ms->o.buf;
+	pb->offset = ms->offset;
+
+	ms->o.buf = NULL;
+	ms->offset = 0;
+
+	return pb;
+}
+
+protected char *
+file_pop_buffer(struct magic_set *ms, file_pushbuf_t *pb)
+{
+	char *rbuf;
+
+	if (ms->event_flags & EVENT_HAD_ERR) {
+		free(pb->buf);
+		free(pb);
+		return NULL;
+	}
+
+	rbuf = ms->o.buf;
+
+	ms->o.buf = pb->buf;
+	ms->offset = pb->offset;
+
+	free(pb);
+	return rbuf;
+}

Modified: projects/clang350-import/contrib/file/src/readelf.c
==============================================================================
--- projects/clang350-import/contrib/file/src/readelf.c	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/contrib/file/src/readelf.c	Wed Dec 10 19:24:42 2014	(r275685)
@@ -60,6 +60,18 @@ private uint16_t getu16(int, uint16_t);
 private uint32_t getu32(int, uint32_t);
 private uint64_t getu64(int, uint64_t);
 
+#define MAX_PHNUM	256
+#define	MAX_SHNUM	1024
+
+private int
+toomany(struct magic_set *ms, const char *name, uint16_t num)
+{
+	if (file_printf(ms, ", too many %s header sections (%u)", name, num
+	    ) == -1)
+		return -1;
+	return 0;
+}
+
 private uint16_t
 getu16(int swap, uint16_t value)
 {
@@ -477,6 +489,13 @@ donote(struct magic_set *ms, void *vbuf,
 	uint32_t namesz, descsz;
 	unsigned char *nbuf = CAST(unsigned char *, vbuf);
 
+	if (xnh_sizeof + offset > size) {
+		/*
+		 * We're out of note headers.
+		 */
+		return xnh_sizeof + offset;
+	}
+
 	(void)memcpy(xnh_addr, &nbuf[offset], xnh_sizeof);
 	offset += xnh_sizeof;
 
@@ -492,13 +511,13 @@ donote(struct magic_set *ms, void *vbuf,
 	if (namesz & 0x80000000) {
 	    (void)file_printf(ms, ", bad note name size 0x%lx",
 		(unsigned long)namesz);
-	    return offset;
+	    return 0;
 	}
 
 	if (descsz & 0x80000000) {
 	    (void)file_printf(ms, ", bad note description size 0x%lx",
 		(unsigned long)descsz);
-	    return offset;
+	    return 0;
 	}
 
 
@@ -900,6 +919,7 @@ doshn(struct magic_set *ms, int clazz, i
 	Elf32_Shdr sh32;
 	Elf64_Shdr sh64;
 	int stripped = 1;
+	size_t nbadcap = 0;
 	void *nbuf;
 	off_t noff, coff, name_off;
 	uint64_t cap_hw1 = 0;	/* SunOS 5.x hardware capabilites */
@@ -988,6 +1008,8 @@ doshn(struct magic_set *ms, int clazz, i
 				goto skip;
 			}
 
+			if (nbadcap > 5)
+				break;
 			if (lseek(fd, xsh_offset, SEEK_SET) == (off_t)-1) {
 				file_badseek(ms);
 				return -1;
@@ -1053,6 +1075,8 @@ doshn(struct magic_set *ms, int clazz, i
 					    (unsigned long long)xcap_tag,
 					    (unsigned long long)xcap_val) == -1)
 						return -1;
+					if (nbadcap++ > 2)
+						coff = xsh_size;
 					break;
 				}
 			}
@@ -1233,7 +1257,7 @@ file_tryelf(struct magic_set *ms, int fd
 	int flags = 0;
 	Elf32_Ehdr elf32hdr;
 	Elf64_Ehdr elf64hdr;
-	uint16_t type;
+	uint16_t type, phnum, shnum;
 
 	if (ms->flags & (MAGIC_MIME|MAGIC_APPLE))
 		return 0;

Modified: projects/clang350-import/contrib/file/src/softmagic.c
==============================================================================
--- projects/clang350-import/contrib/file/src/softmagic.c	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/contrib/file/src/softmagic.c	Wed Dec 10 19:24:42 2014	(r275685)
@@ -67,6 +67,9 @@ private void cvt_32(union VALUETYPE *, c
 private void cvt_64(union VALUETYPE *, const struct magic *);
 
 #define OFFSET_OOB(n, o, i)	((n) < (o) || (i) > ((n) - (o)))
+
+#define MAX_RECURSION_LEVEL	10
+
 /*
  * softmagic - lookup one file in parsed, in-memory copy of database
  * Passed the name and FILE * of one file to be typed.
@@ -1193,14 +1196,15 @@ mget(struct magic_set *ms, const unsigne
     int flip, int recursion_level, int *printed_something,
     int *need_separator, int *returnval)
 {
-	uint32_t soffset, offset = ms->offset;
+	uint32_t offset = ms->offset;
 	uint32_t lhs;
+	file_pushbuf_t *pb;
 	int rv, oneed_separator, in_type;
-	char *sbuf, *rbuf;
+	char *rbuf;
 	union VALUETYPE *p = &ms->ms_value;
 	struct mlist ml;
 
-	if (recursion_level >= 20) {
+	if (recursion_level >= MAX_RECURSION_LEVEL) {
 		file_error(ms, 0, "recursion nesting exceeded");
 		return -1;
 	}
@@ -1644,19 +1648,23 @@ mget(struct magic_set *ms, const unsigne
 	case FILE_INDIRECT:
 		if (offset == 0)
 			return 0;
+
 		if (nbytes < offset)
 			return 0;
-		sbuf = ms->o.buf;
-		soffset = ms->offset;
-		ms->o.buf = NULL;
-		ms->offset = 0;
+
+		if ((pb = file_push_buffer(ms)) == NULL)
+			return -1;
+
 		rv = file_softmagic(ms, s + offset, nbytes - offset,
 		    recursion_level, BINTEST, text);
+
 		if ((ms->flags & MAGIC_DEBUG) != 0)
 			fprintf(stderr, "indirect @offs=%u[%d]\n", offset, rv);
-		rbuf = ms->o.buf;
-		ms->o.buf = sbuf;
-		ms->offset = soffset;
+
+		rbuf = file_pop_buffer(ms, pb);
+		if (rbuf == NULL && ms->event_flags & EVENT_HAD_ERR)
+			return -1;
+
 		if (rv == 1) {
 			if ((ms->flags & (MAGIC_MIME|MAGIC_APPLE)) == 0 &&
 			    file_printf(ms, F(ms, m, "%u"), offset) == -1) {
@@ -1674,13 +1682,13 @@ mget(struct magic_set *ms, const unsigne
 	case FILE_USE:
 		if (nbytes < offset)
 			return 0;
-		sbuf = m->value.s;
-		if (*sbuf == '^') {
-			sbuf++;
+		rbuf = m->value.s;
+		if (*rbuf == '^') {
+			rbuf++;
 			flip = !flip;
 		}
-		if (file_magicfind(ms, sbuf, &ml) == -1) {
-			file_error(ms, 0, "cannot find entry `%s'", sbuf);
+		if (file_magicfind(ms, rbuf, &ml) == -1) {
+			file_error(ms, 0, "cannot find entry `%s'", rbuf);
 			return -1;
 		}
 

Modified: projects/clang350-import/etc/auto_master
==============================================================================
--- projects/clang350-import/etc/auto_master	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/etc/auto_master	Wed Dec 10 19:24:42 2014	(r275685)
@@ -3,3 +3,6 @@
 # Automounter master map, see auto_master(5) for details.
 #
 /net		-hosts		-nobrowse,nosuid
+# When using the -media special map, make sure to edit devd.conf(5)
+# to move the call to "automount -c" out of the comments section.
+#/media		-media		-nosuid

Modified: projects/clang350-import/etc/autofs/Makefile
==============================================================================
--- projects/clang350-import/etc/autofs/Makefile	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/etc/autofs/Makefile	Wed Dec 10 19:24:42 2014	(r275685)
@@ -1,6 +1,6 @@
 # $FreeBSD$
 
-FILES=		include_ldap special_hosts special_null
+FILES=		include_ldap special_hosts special_media special_null
 
 NO_OBJ=
 FILESDIR=	/etc/autofs

Copied: projects/clang350-import/etc/autofs/special_media (from r275684, head/etc/autofs/special_media)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/clang350-import/etc/autofs/special_media	Wed Dec 10 19:24:42 2014	(r275685, copy of r275684, head/etc/autofs/special_media)
@@ -0,0 +1,93 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# Print newline-separated list of devices available for mounting.
+# If there is a filesystem label - use it, otherwise use device name.
+print_available() {
+	local _fstype _fstype_and_label _label _p
+
+	for _p in ${providers}; do
+		_fstype_and_label="$(fstyp -l "/dev/${_p}" 2> /dev/null)"
+		if [ $? -ne 0 ]; then
+			# Ignore devices for which we were unable
+			# to determine filesystem type.
+			continue
+		fi
+
+		_fstype="${_fstype_and_label%% *}"
+		if [ "${_fstype}" != "${_fstype_and_label}" ]; then
+			_label="${_fstype_and_label#* }"
+			echo "${_label}"
+			continue
+		fi
+
+		echo "${_p}"
+	done
+}
+
+# Print a single map entry.
+print_one() {
+	local _fstype _fstype_and_label _label _key _p
+
+	_key="$1"
+
+	_fstype="$(fstyp "/dev/${_key}" 2> /dev/null)"
+	if [ $? -eq 0 ]; then
+		echo "-fstype=${_fstype},nosuid	:/dev/${_key}" 
+		return
+	fi
+
+	for _p in ${providers}; do
+		_fstype_and_label="$(fstyp -l "/dev/${_p}" 2> /dev/null)"
+		if [ $? -ne 0 ]; then
+			# Ignore devices for which we were unable
+			# to determine filesystem type.
+			continue
+		fi
+
+		_fstype="${_fstype_and_label%% *}"
+		if [ "${_fstype}" = "${_fstype_and_label}" ]; then
+			# No label, try another device.
+			continue
+		fi
+
+		_label="${_fstype_and_label#* }"
+		if [ "${_label}" != "${_key}" ]; then
+			# Labels don't match, try another device.
+			continue
+		fi
+
+		echo "-fstype=${_fstype},nosuid	:/dev/${_p}" 
+	done
+
+	# No matching device - don't print anything, autofs will handle it.
+}
+
+# Obtain a list of (geom-provider-name, access-count) pairs, turning this:
+#
+# z0xfffff80005085d00 [shape=hexagon,label="ada0\nr2w2e3\nerr#0\nsector=512\nstripe=0"];
+#
+# Into this:
+#
+# ada0 r2w2e3
+#
+# XXX: It would be easier to use kern.geom.conftxt instead, but it lacks
+#      access counts.
+pairs=$(sysctl kern.geom.confdot | sed -n 's/^.*hexagon,label="\([^\]*\)\\n\([^\]*\).*/\1 \2/p')
+
+# Obtain a list of GEOM providers that are not already open - not mounted,
+# and without other GEOM class, such as gpart, attached.  In other words,
+# grep for "r0w0e0".  Skip providers with names containing slashes; we're
+# not interested in geom_label(4) creations.
+providers=$(echo "$pairs" | awk '$2 == "r0w0e0" && $1 !~ /\// { print $1 }')
+
+if [ $# -eq 0 ]; then
+	print_available
+	exit 0
+fi
+
+print_one "$1"
+exit 0
+

Modified: projects/clang350-import/etc/devd.conf
==============================================================================
--- projects/clang350-import/etc/devd.conf	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/etc/devd.conf	Wed Dec 10 19:24:42 2014	(r275685)
@@ -318,4 +318,16 @@ notify 0 {
 	action			"/usr/local/etc/rc.d/postgresql restart";
 };
 
+# Discard autofs caches, useful for the -media special map.  The one
+# second delay is for GEOM to finish tasting.
+#
+# XXX: We should probably have a devctl(4) event that fires after GEOM
+#      tasting.
+#
+notify 100 {
+	match "system" "DEVFS";
+	match "cdev" "(da|mmcsd)[0-9]+";
+	action "sleep 1 && /usr/sbin/automount -c";
+};
+
 */

Modified: projects/clang350-import/gnu/usr.bin/gdb/kgdb/kthr.c
==============================================================================
--- projects/clang350-import/gnu/usr.bin/gdb/kgdb/kthr.c	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/gnu/usr.bin/gdb/kgdb/kthr.c	Wed Dec 10 19:24:42 2014	(r275685)
@@ -96,7 +96,7 @@ kgdb_thr_add_procs(uintptr_t paddr)
 			kt->kaddr = addr;
 			if (td.td_tid == dumptid)
 				kt->pcb = dumppcb;
-			else if (td.td_state == TDS_RUNNING &&
+			else if (td.td_oncpu != NOCPU &&
 			    CPU_ISSET(td.td_oncpu, &stopped_cpus))
 				kt->pcb = kgdb_trgt_core_pcb(td.td_oncpu);
 			else

Modified: projects/clang350-import/lib/libc/net/sctp_sys_calls.c
==============================================================================
--- projects/clang350-import/lib/libc/net/sctp_sys_calls.c	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/lib/libc/net/sctp_sys_calls.c	Wed Dec 10 19:24:42 2014	(r275685)
@@ -886,7 +886,7 @@ sctp_recvv(int sd,
 	struct sctp_rcvinfo *rcvinfo;
 	struct sctp_nxtinfo *nxtinfo;
 
-	if (((info != NULL) && (infolen == NULL)) |
+	if (((info != NULL) && (infolen == NULL)) ||
 	    ((info == NULL) && (infolen != NULL) && (*infolen != 0)) ||
 	    ((info != NULL) && (infotype == NULL))) {
 		errno = EINVAL;

Modified: projects/clang350-import/lib/libc/stdio/fflush.c
==============================================================================
--- projects/clang350-import/lib/libc/stdio/fflush.c	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/lib/libc/stdio/fflush.c	Wed Dec 10 19:24:42 2014	(r275685)
@@ -124,11 +124,13 @@ __sflush(FILE *fp)
 		t = _swrite(fp, (char *)p, n);
 		if (t <= 0) {
 			/* Reset _p and _w. */
-			if (p > fp->_p)	/* Some was written. */
+			if (p > fp->_p) {
+				/* Some was written. */
 				memmove(fp->_p, p, n);
-			fp->_p += n;
-			if ((fp->_flags & (__SLBF | __SNBF)) == 0)
-				fp->_w -= n;
+				fp->_p += n;
+				if ((fp->_flags & (__SLBF | __SNBF)) == 0)
+					fp->_w -= n;
+			}
 			fp->_flags |= __SERR;
 			return (EOF);
 		}

Modified: projects/clang350-import/sbin/mount/mount.8
==============================================================================
--- projects/clang350-import/sbin/mount/mount.8	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sbin/mount/mount.8	Wed Dec 10 19:24:42 2014	(r275685)
@@ -28,7 +28,7 @@
 .\"     @(#)mount.8	8.8 (Berkeley) 6/16/94
 .\" $FreeBSD$
 .\"
-.Dd November 22, 2014
+.Dd December 3, 2014
 .Dt MOUNT 8
 .Os
 .Sh NAME
@@ -549,6 +549,7 @@ support for a particular file system mig
 .Xr fstab 5 ,
 .Xr procfs 5 ,
 .Xr automount 8 ,
+.Xr fstyp 8 ,
 .Xr kldload 8 ,
 .Xr mount_cd9660 8 ,
 .Xr mount_msdosfs 8 ,

Modified: projects/clang350-import/sys/arm/altera/socfpga/files.socfpga
==============================================================================
--- projects/clang350-import/sys/arm/altera/socfpga/files.socfpga	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sys/arm/altera/socfpga/files.socfpga	Wed Dec 10 19:24:42 2014	(r275685)
@@ -26,5 +26,6 @@ dev/mmc/host/dwmmc.c				optional dwmmc
 # BERI specific
 dev/beri/beri_ring.c				optional beri_ring
 dev/beri/beri_mem.c				optional beri_mem
-dev/beri/virtio/virtio.c			optional beri_vtblk
+dev/beri/virtio/virtio.c			optional beri_vtblk | vtbe
 dev/beri/virtio/virtio_block.c			optional beri_vtblk
+dev/beri/virtio/network/if_vtbe.c		optional vtbe

Modified: projects/clang350-import/sys/arm/arm/syscall.c
==============================================================================
--- projects/clang350-import/sys/arm/arm/syscall.c	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sys/arm/arm/syscall.c	Wed Dec 10 19:24:42 2014	(r275685)
@@ -84,6 +84,7 @@ __FBSDID("$FreeBSD$");
 
 #include <sys/param.h>
 #include <sys/systm.h>
+#include <sys/kernel.h>
 #include <sys/proc.h>
 #include <sys/lock.h>
 #include <sys/mutex.h>

Modified: projects/clang350-import/sys/arm/broadcom/bcm2835/bcm2835_wdog.c
==============================================================================
--- projects/clang350-import/sys/arm/broadcom/bcm2835/bcm2835_wdog.c	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sys/arm/broadcom/bcm2835/bcm2835_wdog.c	Wed Dec 10 19:24:42 2014	(r275685)
@@ -142,14 +142,13 @@ bcmwd_watchdog_fn(void *private, u_int c
 
 	if (cmd > 0) {
 		sec = ((uint64_t)1 << (cmd & WD_INTERVAL)) / 1000000000;
-		ticks = (sec << 16) & BCM2835_WDOG_TIME_MASK;
-		if (ticks == 0) {
+		if (sec == 0 || sec > 15) {
 			/* 
 			 * Can't arm
 			 * disable watchdog as watchdog(9) requires
 			 */
 			device_printf(sc->dev,
-			    "Can't arm, timeout is less than 1 second\n");
+			    "Can't arm, timeout must be between 1-15 seconds\n");
 			WRITE(sc, BCM2835_RSTC_REG, 
 			    (BCM2835_PASWORD << BCM2835_PASSWORD_SHIFT) |
 			    BCM2835_RSTC_RESET);
@@ -157,6 +156,7 @@ bcmwd_watchdog_fn(void *private, u_int c
 			return;
 		}
 
+		ticks = (sec << 16) & BCM2835_WDOG_TIME_MASK;
 		reg = (BCM2835_PASWORD << BCM2835_PASSWORD_SHIFT) | ticks;
 		WRITE(sc, BCM2835_WDOG_REG, reg);
 

Modified: projects/clang350-import/sys/arm/conf/SOCKIT-BERI
==============================================================================
--- projects/clang350-import/sys/arm/conf/SOCKIT-BERI	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sys/arm/conf/SOCKIT-BERI	Wed Dec 10 19:24:42 2014	(r275685)
@@ -123,6 +123,7 @@ device		spibus
 device		beri_ring
 device		beri_mem
 device		beri_vtblk
+device		vtbe
 device		altera_pio
 
 # Ethernet

Modified: projects/clang350-import/sys/boot/fdt/dts/arm/socfpga-sockit-beri.dts
==============================================================================
--- projects/clang350-import/sys/boot/fdt/dts/arm/socfpga-sockit-beri.dts	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sys/boot/fdt/dts/arm/socfpga-sockit-beri.dts	Wed Dec 10 19:24:42 2014	(r275685)
@@ -39,7 +39,8 @@
 	compatible = "altr,socfpga-cyclone5", "altr,socfpga";
 
 	memreserve = < 0x00000000 0x1000 >, /* SMP trampoline */
-		     < 0x00001000 0x1000 >; /* virtio block */
+		     < 0x00001000 0x1000 >, /* virtio block */
+		     < 0x00002000 0x1000 >; /* virtio net */
 
 	memory {
 		device_type = "memory";
@@ -111,6 +112,15 @@
 			pio-recv = <&pio0>;
 			pio-send = <&pio1>;
 			beri-mem = <&beri_mem0>;
+			status = "disabled";
+		};
+
+		beri_vtnet: vtnet at 00002000 {
+			compatible = "sri-cambridge,beri-vtnet";
+			reg = <0x00002000 0x1000>;
+			pio-recv = <&pio0>;
+			pio-send = <&pio1>;
+			beri-mem = <&beri_mem0>;
 			status = "okay";
 		};
 

Modified: projects/clang350-import/sys/conf/files
==============================================================================
--- projects/clang350-import/sys/conf/files	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sys/conf/files	Wed Dec 10 19:24:42 2014	(r275685)
@@ -2651,6 +2651,7 @@ dev/xen/blkback/blkback.c	optional xen |
 dev/xen/console/console.c	optional xen | xenhvm
 dev/xen/console/xencons_ring.c	optional xen | xenhvm
 dev/xen/control/control.c	optional xen | xenhvm
+dev/xen/grant_table/grant_table.c	optional xen | xenhvm
 dev/xen/netback/netback.c	optional xen | xenhvm
 dev/xen/netfront/netfront.c	optional xen | xenhvm
 dev/xen/xenpci/xenpci.c		optional xenpci
@@ -4000,7 +4001,6 @@ vm/vm_reserv.c			standard
 vm/vm_unix.c			standard
 vm/vm_zeroidle.c		standard
 vm/vnode_pager.c		standard
-xen/gnttab.c			optional xen | xenhvm
 xen/features.c			optional xen | xenhvm
 xen/xenbus/xenbus_if.m		optional xen | xenhvm
 xen/xenbus/xenbus.c		optional xen | xenhvm

Modified: projects/clang350-import/sys/conf/files.amd64
==============================================================================
--- projects/clang350-import/sys/conf/files.amd64	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sys/conf/files.amd64	Wed Dec 10 19:24:42 2014	(r275685)
@@ -336,6 +336,8 @@ dev/viawd/viawd.c		optional	viawd
 dev/vmware/vmxnet3/if_vmx.c	optional	vmx
 dev/wbwd/wbwd.c			optional	wbwd
 dev/wpi/if_wpi.c		optional	wpi
+dev/xen/pci/xen_acpi_pci.c	optional	xenhvm
+dev/xen/pci/xen_pci.c		optional	xenhvm
 dev/isci/isci.c							optional isci
 dev/isci/isci_controller.c					optional isci
 dev/isci/isci_domain.c						optional isci
@@ -572,4 +574,4 @@ x86/xen/xen_apic.c		optional	xenhvm
 x86/xen/xenpv.c			optional	xenhvm
 x86/xen/xen_nexus.c		optional	xenhvm
 x86/xen/xen_msi.c		optional	xenhvm
-x86/xen/xen_pci.c		optional	xenhvm
+x86/xen/xen_pci_bus.c		optional	xenhvm

Modified: projects/clang350-import/sys/dev/beri/virtio/virtio.c
==============================================================================
--- projects/clang350-import/sys/dev/beri/virtio/virtio.c	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sys/dev/beri/virtio/virtio.c	Wed Dec 10 19:24:42 2014	(r275685)
@@ -58,10 +58,18 @@ __FBSDID("$FreeBSD$");
 #include <machine/cpu.h>
 #include <machine/intr.h>
 
+#include <dev/fdt/fdt_common.h>
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
 #include <dev/beri/virtio/virtio.h>
 #include <dev/virtio/virtio.h>
 #include <dev/virtio/virtqueue.h>
 #include <dev/virtio/virtio_ring.h>
+#include <dev/altera/pio/pio.h>
+
+#include "pio_if.h"
 
 int
 vq_ring_ready(struct vqueue_info *vq)
@@ -167,12 +175,13 @@ vq_relchain(struct vqueue_info *vq, stru
 	int i;
 
 	mask = vq->vq_qsize - 1;
+	vu = vq->vq_used;
 	head = be16toh(vq->vq_avail->ring[vq->vq_last_avail++ & mask]);
 
-	vu = vq->vq_used;
 	uidx = be16toh(vu->idx);
 	vue = &vu->ring[uidx++ & mask];
-	vue->id = htobe16(head);
+	vue->id = htobe32(head);
+
 	vue->len = htobe32(iolen);
 	vu->idx = htobe16(uidx);
 
@@ -181,3 +190,59 @@ vq_relchain(struct vqueue_info *vq, stru
 		paddr_unmap((void *)iov[i].iov_base, iov[i].iov_len);
 	}
 }
+
+int
+setup_pio(device_t dev, char *name, device_t *pio_dev)
+{
+	phandle_t pio_node;
+	struct fdt_ic *ic;
+	phandle_t xref;
+	phandle_t node;
+
+	if ((node = ofw_bus_get_node(dev)) == -1)
+		return (ENXIO);
+
+	if (OF_searchencprop(node, name, &xref,
+		sizeof(xref)) == -1) {
+		return (ENXIO);
+	}
+
+	pio_node = OF_node_from_xref(xref);
+	SLIST_FOREACH(ic, &fdt_ic_list_head, fdt_ics) {
+		if (ic->iph == pio_node) {
+			*pio_dev = ic->dev;
+			PIO_CONFIGURE(*pio_dev, PIO_OUT_ALL,
+					PIO_UNMASK_ALL);
+			return (0);
+		}
+	}
+
+	return (ENXIO);
+}
+
+int
+setup_offset(device_t dev, uint32_t *offset)
+{
+	pcell_t dts_value[2];
+	phandle_t mem_node;
+	phandle_t xref;
+	phandle_t node;
+	int len;
+
+	if ((node = ofw_bus_get_node(dev)) == -1)
+		return (ENXIO);
+
+	if (OF_searchencprop(node, "beri-mem", &xref,
+		sizeof(xref)) == -1) {
+		return (ENXIO);
+	}
+
+	mem_node = OF_node_from_xref(xref);
+	if ((len = OF_getproplen(mem_node, "reg")) <= 0)
+		return (ENXIO);
+	OF_getencprop(mem_node, "reg", dts_value, len);
+	*offset = dts_value[0];
+
+	return (0);
+}
+

Modified: projects/clang350-import/sys/dev/beri/virtio/virtio.h
==============================================================================
--- projects/clang350-import/sys/dev/beri/virtio/virtio.h	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sys/dev/beri/virtio/virtio.h	Wed Dec 10 19:24:42 2014	(r275685)
@@ -41,14 +41,10 @@
 
 #define	PAGE_SHIFT		12
 #define	VRING_ALIGN		4096
-#define	NUM_QUEUES		1
 
 #define	VQ_ALLOC		0x01	/* set once we have a pfn */
 #define	VQ_MAX_DESCRIPTORS	512
 
-#define	VTBLK_BLK_ID_BYTES	20
-#define	VTBLK_MAXSEGS		256
-
 struct vqueue_info {
 	uint16_t vq_qsize;	/* size of this queue (a power of 2) */
 	uint16_t vq_num;
@@ -70,3 +66,5 @@ int vq_getchain(uint32_t beri_mem_offset
 		struct iovec *iov, int n_iov, uint16_t *flags);
 void vq_relchain(struct vqueue_info *vq, struct iovec *iov, int n, uint32_t iolen);
 
+int setup_pio(device_t dev, char *name, device_t *pio_dev);
+int setup_offset(device_t dev, uint32_t *offset);

Modified: projects/clang350-import/sys/dev/beri/virtio/virtio_block.c
==============================================================================
--- projects/clang350-import/sys/dev/beri/virtio/virtio_block.c	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sys/dev/beri/virtio/virtio_block.c	Wed Dec 10 19:24:42 2014	(r275685)
@@ -74,6 +74,13 @@ __FBSDID("$FreeBSD$");
 
 #define DPRINTF(fmt, ...)
 
+/* We use indirect descriptors */
+#define	NUM_DESCS	1
+#define	NUM_QUEUES	1
+
+#define	VTBLK_BLK_ID_BYTES	20
+#define	VTBLK_MAXSEGS		256
+
 struct beri_vtblk_softc {
 	struct resource		*res[1];
 	bus_space_tag_t		bst;
@@ -286,8 +293,12 @@ vtblk_notify(struct beri_vtblk_softc *sc
 	while (vq_has_descs(vq))
 		vtblk_proc(sc, vq);
 
-	/* Interrupt other side */
-	PIO_SET(sc->pio_send, Q_INTR, 1);
+	/* Interrupt the other side */
+	if ((be16toh(vq->vq_avail->flags) & VRING_AVAIL_F_NO_INTERRUPT) == 0) {
+		reg = htobe32(VIRTIO_MMIO_INT_VRING);
+		WRITE4(sc, VIRTIO_MMIO_INTERRUPT_STATUS, reg);
+		PIO_SET(sc->pio_send, Q_INTR, 1);
+	}
 
 	return (0);
 }
@@ -302,7 +313,7 @@ vq_init(struct beri_vtblk_softc *sc)
 	int pfn;
 
 	vq = &sc->vs_queues[0];
-	vq->vq_qsize = NUM_QUEUES;
+	vq->vq_qsize = NUM_DESCS;
 
 	reg = READ4(sc, VIRTIO_MMIO_QUEUE_PFN);
 	pfn = be32toh(reg);
@@ -353,61 +364,6 @@ vtblk_thread(void *arg)
 }
 
 static int
-setup_pio(struct beri_vtblk_softc *sc, char *name, device_t *dev)
-{
-	phandle_t pio_node;
-	struct fdt_ic *ic;
-	phandle_t xref;
-	phandle_t node;
-
-	if ((node = ofw_bus_get_node(sc->dev)) == -1)
-		return (ENXIO);
-
-	if (OF_searchencprop(node, name, &xref,
-		sizeof(xref)) == -1) {
-		return (ENXIO);
-	}
-
-	pio_node = OF_node_from_xref(xref);
-	SLIST_FOREACH(ic, &fdt_ic_list_head, fdt_ics) {
-		if (ic->iph == pio_node) {
-			*dev = ic->dev;
-			PIO_CONFIGURE(*dev, PIO_OUT_ALL,
-					PIO_UNMASK_ALL);
-			return (0);
-		}
-	}
-
-	return (ENXIO);
-}
-
-static int
-setup_offset(struct beri_vtblk_softc *sc)
-{
-	pcell_t dts_value[2];
-	phandle_t mem_node;
-	phandle_t xref;
-	phandle_t node;
-	int len;
-
-	if ((node = ofw_bus_get_node(sc->dev)) == -1)
-		return (ENXIO);
-
-	if (OF_searchencprop(node, "beri-mem", &xref,
-		sizeof(xref)) == -1) {
-		return (ENXIO);
-	}
-
-	mem_node = OF_node_from_xref(xref);
-	if ((len = OF_getproplen(mem_node, "reg")) <= 0)
-		return (ENXIO);
-	OF_getencprop(mem_node, "reg", dts_value, len);
-	sc->beri_mem_offset = dts_value[0];
-
-	return (0);
-}
-
-static int
 backend_info(struct beri_vtblk_softc *sc)
 {
 	struct virtio_blk_config *cfg;
@@ -419,9 +375,9 @@ backend_info(struct beri_vtblk_softc *sc
 	reg = htobe32(VIRTIO_ID_BLOCK);
 	WRITE4(sc, VIRTIO_MMIO_DEVICE_ID, reg);
 
-	/* The number of queues we support */
-	reg = htobe16(NUM_QUEUES);
-	WRITE2(sc, VIRTIO_MMIO_QUEUE_NUM, reg);
+	/* Queue size */
+	reg = htobe32(NUM_DESCS);
+	WRITE4(sc, VIRTIO_MMIO_QUEUE_NUM_MAX, reg);
 
 	/* Our features */
 	reg = htobe32(VIRTIO_RING_F_INDIRECT_DESC
@@ -566,11 +522,11 @@ beri_vtblk_attach(device_t dev)
 		return (ENXIO);
 	}
 
-	if (setup_offset(sc) != 0)
+	if (setup_offset(dev, &sc->beri_mem_offset) != 0)
 		return (ENXIO);
-	if (setup_pio(sc, "pio-send", &sc->pio_send) != 0)
+	if (setup_pio(dev, "pio-send", &sc->pio_send) != 0)
 		return (ENXIO);
-	if (setup_pio(sc, "pio-recv", &sc->pio_recv) != 0)
+	if (setup_pio(dev, "pio-recv", &sc->pio_recv) != 0)
 		return (ENXIO);
 
 	sc->cdev = make_dev(&beri_cdevsw, 0, UID_ROOT, GID_WHEEL,

Modified: projects/clang350-import/sys/dev/beri/virtio/virtio_mmio_platform.c
==============================================================================
--- projects/clang350-import/sys/dev/beri/virtio/virtio_mmio_platform.c	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sys/dev/beri/virtio/virtio_mmio_platform.c	Wed Dec 10 19:24:42 2014	(r275685)
@@ -149,20 +149,49 @@ virtio_mmio_platform_attach(device_t dev
 }
 
 static int
-platform_note(device_t dev, size_t offset)
+platform_note(device_t dev, size_t offset, int val)
 {
 	struct virtio_mmio_platform_softc *sc;
+	int note;
+	int i;
 
 	sc = device_get_softc(dev);
 
-	if (offset == VIRTIO_MMIO_QUEUE_NOTIFY) {
-		mips_dcache_wbinv_all();
-		PIO_SET(sc->pio_send, Q_NOTIFY, 1);
+	switch (offset) {
+		case (VIRTIO_MMIO_QUEUE_NOTIFY):
+			if (val == 0)
+				note = Q_NOTIFY;
+			else if (val == 1)
+				note = Q_NOTIFY1;
+			break;
+		case (VIRTIO_MMIO_QUEUE_PFN):
+			note = Q_PFN;
+			break;
+		case (VIRTIO_MMIO_QUEUE_SEL):
+			note = Q_SEL;
+			break;
+		default:
+			note = 0;
 	}
 
-	if (offset == VIRTIO_MMIO_QUEUE_PFN) {
+	if (note) {
 		mips_dcache_wbinv_all();
-		PIO_SET(sc->pio_send, Q_PFN, 1);
+
+		PIO_SET(sc->pio_send, note, 1);
+
+		/* 
+		 * Wait until host ack the request.
+		 * Usually done within few cycles.
+		 * TODO: bad
+		 */
+
+		for (i = 100; i > 0; i--) {
+			if (PIO_READ(sc->pio_send) == 0)
+				break;
+		}
+
+		if (i == 0)
+			device_printf(sc->dev, "Warning: host busy\n");
 	}
 
 	return (0);

Modified: projects/clang350-import/sys/dev/beri/virtio/virtio_mmio_platform.h
==============================================================================
--- projects/clang350-import/sys/dev/beri/virtio/virtio_mmio_platform.h	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sys/dev/beri/virtio/virtio_mmio_platform.h	Wed Dec 10 19:24:42 2014	(r275685)
@@ -30,6 +30,8 @@
  * $FreeBSD$
  */
 
-#define	Q_NOTIFY	0x1
-#define	Q_PFN		0x2
-#define	Q_INTR		0x4
+#define	Q_NOTIFY	0x01
+#define	Q_PFN		0x02
+#define	Q_INTR		0x04
+#define	Q_SEL		0x08
+#define	Q_NOTIFY1	0x10

Modified: projects/clang350-import/sys/dev/mii/micphy.c
==============================================================================
--- projects/clang350-import/sys/dev/mii/micphy.c	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sys/dev/mii/micphy.c	Wed Dec 10 19:24:42 2014	(r275685)
@@ -68,7 +68,7 @@ __FBSDID("$FreeBSD$");
 #define	MII_KSZPHY_RX_DATA_PAD_SKEW		0x105
 #define	MII_KSZPHY_TX_DATA_PAD_SKEW		0x106
 
-#define	PS_TO_REG(p)	(p / 200)
+#define	PS_TO_REG(p)	((p) / 200)
 
 static int micphy_probe(device_t);
 static int micphy_attach(device_t);
@@ -104,7 +104,8 @@ static const struct mii_phy_funcs micphy
 	mii_phy_reset
 };
 
-static void micphy_write(struct mii_softc *sc, uint32_t reg, uint32_t val)
+static void
+micphy_write(struct mii_softc *sc, uint32_t reg, uint32_t val)
 {
 
 	PHY_WRITE(sc, MII_KSZPHY_EXTREG, KSZPHY_EXTREG_WRITE | reg);

Modified: projects/clang350-import/sys/dev/usb/usbdevs
==============================================================================
--- projects/clang350-import/sys/dev/usb/usbdevs	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sys/dev/usb/usbdevs	Wed Dec 10 19:24:42 2014	(r275685)
@@ -3195,7 +3195,7 @@ product NETGEAR EA101X		0x1002	Ethernet
 product NETGEAR FA101		0x1020	Ethernet 10/100, USB1.1
 product NETGEAR FA120		0x1040	USB 2.0 Ethernet
 product NETGEAR M4100		0x1100	M4100/M5300/M7100 series switch
-product NETGEAR WG111V2_2	0x4240	PrismGT USB 2.0 WLAN
+product NETGEAR WG111V1_2	0x4240	PrismGT USB 2.0 WLAN
 product NETGEAR WG111V3		0x4260	WG111v3
 product NETGEAR WG111U		0x4300	WG111U
 product NETGEAR WG111U_NF	0x4301	WG111U (no firmware)

Modified: projects/clang350-import/sys/dev/usb/wlan/if_upgt.c
==============================================================================
--- projects/clang350-import/sys/dev/usb/wlan/if_upgt.c	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sys/dev/usb/wlan/if_upgt.c	Wed Dec 10 19:24:42 2014	(r275685)
@@ -182,7 +182,7 @@ static const STRUCT_USB_HOST_ID upgt_dev
 	UPGT_DEV(FSC,		E5400),
 	UPGT_DEV(GLOBESPAN,	PRISM_GT_1),
 	UPGT_DEV(GLOBESPAN,	PRISM_GT_2),
-	UPGT_DEV(NETGEAR,	WG111V2_2),
+	UPGT_DEV(NETGEAR,	WG111V1_2),
 	UPGT_DEV(INTERSIL,	PRISM_GT),
 	UPGT_DEV(SMC,		2862WG),
 	UPGT_DEV(USR,		USR5422),

Modified: projects/clang350-import/sys/dev/virtio/mmio/virtio_mmio.c
==============================================================================
--- projects/clang350-import/sys/dev/virtio/mmio/virtio_mmio.c	Wed Dec 10 18:41:25 2014	(r275684)
+++ projects/clang350-import/sys/dev/virtio/mmio/virtio_mmio.c	Wed Dec 10 19:24:42 2014	(r275685)
@@ -1,11 +1,15 @@
 /*-
  * Copyright (c) 2014 Ruslan Bukin <br at bsdpad.com>
+ * Copyright (c) 2014 The FreeBSD Foundation
  * All rights reserved.
  *
  * This software was developed by SRI International and the University of
  * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
  * ("CTSRD"), as part of the DARPA CRASH research programme.
  *
+ * Portions of this software were developed by Andrew Turner

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


More information about the svn-src-projects mailing list