svn commit: r312926 - in head: bin/ed contrib/dma share/mk sys/amd64/amd64 sys/amd64/cloudabi64 sys/cam/ctl sys/cddl/dev/fbt/x86 sys/compat/cloudabi sys/compat/cloudabi64 sys/compat/linuxkpi/common...

Baptiste Daroussin bapt at FreeBSD.org
Sat Jan 28 16:30:18 UTC 2017


Author: bapt
Date: Sat Jan 28 16:30:14 2017
New Revision: 312926
URL: https://svnweb.freebsd.org/changeset/base/312926

Log:
  Revert r312923 a better approach will be taken later

Modified:
  head/bin/ed/Makefile
  head/contrib/dma/mail.c
  head/share/mk/bsd.doc.mk
  head/sys/amd64/amd64/db_trace.c
  head/sys/amd64/cloudabi64/cloudabi64_sysvec.c
  head/sys/cam/ctl/ctl_ioctl.h
  head/sys/cddl/dev/fbt/x86/fbt_isa.c
  head/sys/compat/cloudabi/cloudabi_fd.c
  head/sys/compat/cloudabi64/cloudabi64_poll.c
  head/sys/compat/linuxkpi/common/include/linux/slab.h
  head/sys/contrib/dev/acpica/components/namespace/nsxfeval.c
  head/sys/contrib/dev/acpica/include/acpixf.h
  head/sys/ddb/ddb.h
  head/sys/dev/drm2/drm_agpsupport.c
  head/sys/dev/drm2/drm_bufs.c
  head/sys/dev/drm2/drm_dma.c
  head/sys/dev/drm2/drm_drv.c
  head/sys/dev/drm2/drm_os_freebsd.c
  head/sys/dev/drm2/drm_os_freebsd.h
  head/sys/dev/drm2/drm_stub.c
  head/sys/fs/nfsserver/nfs_nfsdstate.c
  head/sys/kern/kern_descrip.c
  head/sys/kern/kern_shutdown.c
  head/sys/modules/drm2/drm2/Makefile
  head/tools/build/Makefile
  head/tools/tools/locale/etc/unicode.conf
  head/usr.bin/getconf/confstr.gperf
  head/usr.bin/getconf/getconf.c
  head/usr.bin/getconf/limits.gperf
  head/usr.bin/getconf/pathconf.gperf
  head/usr.bin/getconf/progenv.gperf
  head/usr.bin/getconf/sysconf.gperf
  head/usr.sbin/nscd/nscd.c
  head/usr.sbin/nscd/nscdcli.c

Modified: head/bin/ed/Makefile
==============================================================================
--- head/bin/ed/Makefile	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/bin/ed/Makefile	Sat Jan 28 16:30:14 2017	(r312926)
@@ -9,7 +9,7 @@ LINKS=	${BINDIR}/ed ${BINDIR}/red
 MLINKS=	ed.1 red.1
 
 .if ${MK_OPENSSL} != "no" && ${MK_ED_CRYPTO} != "no"
-CFLAGS+=-DDES
+CFLAGS+=-DDES -I/usr/include/private/openssl
 LIBADD=	crypto
 .endif
 

Modified: head/contrib/dma/mail.c
==============================================================================
--- head/contrib/dma/mail.c	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/contrib/dma/mail.c	Sat Jan 28 16:30:14 2017	(r312926)
@@ -38,6 +38,7 @@
 #include <signal.h>
 #include <syslog.h>
 #include <unistd.h>
+#include <ctype.h>
 
 #include "dma.h"
 
@@ -341,18 +342,41 @@ newaddr:
 	goto again;
 }
 
+static int
+writeline(struct queue *queue, const char *line, ssize_t linelen)
+{
+	ssize_t len;
+
+	while (linelen > 0) {
+		len = linelen;
+		if (linelen > 1000) {
+			len = 990;
+		}
+		if (fwrite(line, len, 1, queue->mailf) != 1)
+			return (-1);
+		if (linelen <= 1000)
+			break;
+		if (fwrite("\n", 1, 1, queue->mailf) != 1)
+			return (-1);
+		line += 990;
+		linelen = strlen(line);
+	}
+	return (0);
+}
+
 int
 readmail(struct queue *queue, int nodot, int recp_from_header)
 {
 	struct parse_state parse_state;
-	char line[1000];	/* by RFC2822 */
-	size_t linelen;
+	char *line = NULL;
+	ssize_t linelen;
+	size_t linecap = 0;
+	char newline[1000];
 	size_t error;
 	int had_headers = 0;
 	int had_from = 0;
 	int had_messagid = 0;
 	int had_date = 0;
-	int had_last_line = 0;
 	int nocopy = 0;
 
 	parse_state.state = NONE;
@@ -372,24 +396,15 @@ readmail(struct queue *queue, int nodot,
 		return (-1);
 
 	while (!feof(stdin)) {
-		if (fgets(line, sizeof(line) - 1, stdin) == NULL)
+		newline[0] = '\0';
+		if ((linelen = getline(&line, &linecap, stdin)) <= 0)
 			break;
-		if (had_last_line)
-			errlogx(EX_DATAERR, "bad mail input format:"
-				" from %s (uid %d) (envelope-from %s)",
-				username, useruid, queue->sender);
-		linelen = strlen(line);
-		if (linelen == 0 || line[linelen - 1] != '\n') {
-			/*
-			 * This line did not end with a newline character.
-			 * If we fix it, it better be the last line of
-			 * the file.
-			 */
-			line[linelen] = '\n';
-			line[linelen + 1] = 0;
-			had_last_line = 1;
-		}
 		if (!had_headers) {
+			if (linelen > 1000)
+				errlogx(EX_DATAERR, "bad mail input format:"
+					" from %s (uid %d) (envelope-from %s)",
+					username, useruid, queue->sender);
+
 			/*
 			 * Unless this is a continuation, switch of
 			 * the Bcc: nocopy flag.
@@ -425,36 +440,44 @@ readmail(struct queue *queue, int nodot,
 			}
 		}
 
-		if (strcmp(line, "\n") == 0 && !had_headers) {
+		if (line[0] == '\n' && !had_headers) {
 			had_headers = 1;
 			while (!had_date || !had_messagid || !had_from) {
 				if (!had_date) {
 					had_date = 1;
-					snprintf(line, sizeof(line), "Date: %s\n", rfc822date());
+					snprintf(newline, sizeof(newline), "Date: %s\n", rfc822date());
 				} else if (!had_messagid) {
 					/* XXX msgid, assign earlier and log? */
 					had_messagid = 1;
-					snprintf(line, sizeof(line), "Message-Id: <%"PRIxMAX".%s.%"PRIxMAX"@%s>\n",
+					snprintf(newline, sizeof(newline), "Message-Id: <%"PRIxMAX".%s.%"PRIxMAX"@%s>\n",
 						 (uintmax_t)time(NULL),
 						 queue->id,
 						 (uintmax_t)random(),
 						 hostname());
 				} else if (!had_from) {
 					had_from = 1;
-					snprintf(line, sizeof(line), "From: <%s>\n", queue->sender);
+					snprintf(newline, sizeof(newline), "From: <%s>\n", queue->sender);
 				}
-				if (fwrite(line, strlen(line), 1, queue->mailf) != 1)
-					return (-1);
+				if (fwrite(newline, strlen(newline), 1, queue->mailf) != 1)
+					goto fail;
 			}
-			strcpy(line, "\n");
+			strlcpy(newline, "\n", sizeof(newline));
 		}
 		if (!nodot && linelen == 2 && line[0] == '.')
 			break;
 		if (!nocopy) {
-			if (fwrite(line, strlen(line), 1, queue->mailf) != 1)
-				return (-1);
+			if (newline[0] != '\0') {
+				if (fwrite(newline, strlen(newline), 1, queue->mailf) != 1)
+					goto fail;
+			} else {
+				if (writeline(queue, line, linelen) != 0)
+					goto fail;
+			}
 		}
 	}
 
 	return (0);
+fail:
+	free(line);
+	return (-1);
 }

Modified: head/share/mk/bsd.doc.mk
==============================================================================
--- head/share/mk/bsd.doc.mk	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/share/mk/bsd.doc.mk	Sat Jan 28 16:30:14 2017	(r312926)
@@ -54,10 +54,10 @@ INDXBIB?=	indxbib
 PIC?=		pic
 REFER?=		refer
 .for _dev in ${PRINTERDEVICE:Mascii}
-ROFF.ascii?=	groff -Tascii -P-c ${TRFLAGS} -mtty-char ${MACROS} ${PAGES:C/^/-o/1}
+ROFF.ascii?=	nroff -Tascii -P-c ${TRFLAGS} -mtty-char ${MACROS} ${PAGES:C/^/-o/1}
 .endfor
 .for _dev in ${PRINTERDEVICE:Nascii}
-ROFF.${_dev}?=	groff -T${_dev} ${TRFLAGS} ${MACROS} ${PAGES:C/^/-o/1}
+ROFF.${_dev}?=	nroff -T${_dev} ${TRFLAGS} ${MACROS} ${PAGES:C/^/-o/1}
 .endfor
 SOELIM?=	soelim
 TBL?=		tbl

Modified: head/sys/amd64/amd64/db_trace.c
==============================================================================
--- head/sys/amd64/amd64/db_trace.c	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/amd64/amd64/db_trace.c	Sat Jan 28 16:30:14 2017	(r312926)
@@ -270,6 +270,7 @@ db_nextframe(struct amd64_frame **fp, db
 	*fp = (struct amd64_frame *) rbp;
 }
 
+
 static int
 db_backtrace(struct thread *td, struct trapframe *tf, struct amd64_frame *frame,
     db_addr_t pc, register_t sp, int count)
@@ -384,6 +385,20 @@ db_trace_self(void)
 	db_backtrace(curthread, NULL, frame, callpc, 0, -1);
 }
 
+void
+db_trace_self_depth(int depth)
+{
+	struct amd64_frame *frame;
+	db_addr_t callpc;
+	register_t rbp;
+
+	__asm __volatile("movq %%rbp,%0" : "=r" (rbp));
+	frame = (struct amd64_frame *)rbp;
+	callpc = (db_addr_t)db_get_value((long)&frame->f_retaddr, 8, FALSE);
+	frame = frame->f_frame;
+	db_backtrace(curthread, NULL, frame, callpc, 0, depth);
+}
+
 int
 db_trace_thread(struct thread *thr, int count)
 {

Modified: head/sys/amd64/cloudabi64/cloudabi64_sysvec.c
==============================================================================
--- head/sys/amd64/cloudabi64/cloudabi64_sysvec.c	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/amd64/cloudabi64/cloudabi64_sysvec.c	Sat Jan 28 16:30:14 2017	(r312926)
@@ -27,6 +27,7 @@
 __FBSDID("$FreeBSD$");
 
 #include <sys/param.h>
+#include <sys/systm.h>
 #include <sys/imgact.h>
 #include <sys/kernel.h>
 #include <sys/proc.h>
@@ -38,6 +39,7 @@ __FBSDID("$FreeBSD$");
 #include <machine/frame.h>
 #include <machine/pcb.h>
 #include <machine/vmparam.h>
+#include <machine/cpu.h>
 
 #include <compat/cloudabi/cloudabi_util.h>
 

Modified: head/sys/cam/ctl/ctl_ioctl.h
==============================================================================
--- head/sys/cam/ctl/ctl_ioctl.h	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/cam/ctl/ctl_ioctl.h	Sat Jan 28 16:30:14 2017	(r312926)
@@ -150,7 +150,7 @@ struct ctl_lun_io_stats {
 	uint64_t			lun_number;
 	uint32_t			blocksize;
 	ctl_lun_stats_flags		flags;
-	struct ctl_lun_io_port_stats	ports[CTL_MAX_PORTS];
+	struct ctl_lun_io_port_stats	*ports;
 };
 
 struct ctl_stats {

Modified: head/sys/cddl/dev/fbt/x86/fbt_isa.c
==============================================================================
--- head/sys/cddl/dev/fbt/x86/fbt_isa.c	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/cddl/dev/fbt/x86/fbt_isa.c	Sat Jan 28 16:30:14 2017	(r312926)
@@ -34,6 +34,8 @@
 
 #include <sys/dtrace.h>
 
+#include <machine/cpu.h>
+
 #include "fbt.h"
 
 #define	FBT_PUSHL_EBP		0x55

Modified: head/sys/compat/cloudabi/cloudabi_fd.c
==============================================================================
--- head/sys/compat/cloudabi/cloudabi_fd.c	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/compat/cloudabi/cloudabi_fd.c	Sat Jan 28 16:30:14 2017	(r312926)
@@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/socketvar.h>
 #include <sys/syscallsubr.h>
 #include <sys/sysproto.h>
+#include <sys/seq.h>
 #include <sys/systm.h>
 #include <sys/unistd.h>
 #include <sys/vnode.h>

Modified: head/sys/compat/cloudabi64/cloudabi64_poll.c
==============================================================================
--- head/sys/compat/cloudabi64/cloudabi64_poll.c	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/compat/cloudabi64/cloudabi64_poll.c	Sat Jan 28 16:30:14 2017	(r312926)
@@ -27,6 +27,7 @@
 __FBSDID("$FreeBSD$");
 
 #include <sys/param.h>
+#include <sys/systm.h>
 #include <sys/proc.h>
 #include <sys/syscallsubr.h>
 

Modified: head/sys/compat/linuxkpi/common/include/linux/slab.h
==============================================================================
--- head/sys/compat/linuxkpi/common/include/linux/slab.h	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/compat/linuxkpi/common/include/linux/slab.h	Sat Jan 28 16:30:14 2017	(r312926)
@@ -72,6 +72,14 @@ struct linux_kmem_cache {
 };
 
 #define	SLAB_HWCACHE_ALIGN	0x0001
+static inline void *
+kmalloc_array(size_t n, size_t size, gfp_t flags)
+{
+	if (size != 0 && n > SIZE_MAX / size)
+		return (NULL);
+	return kmalloc(n * size, flags);
+}
+}
 
 static inline int
 linux_kmem_ctor(void *mem, int size, void *arg, int flags)

Modified: head/sys/contrib/dev/acpica/components/namespace/nsxfeval.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/namespace/nsxfeval.c	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/contrib/dev/acpica/components/namespace/nsxfeval.c	Sat Jan 28 16:30:14 2017	(r312926)
@@ -1022,23 +1022,25 @@ ACPI_EXPORT_SYMBOL (AcpiDetachData)
 
 /*******************************************************************************
  *
- * FUNCTION:    AcpiGetData
+ * FUNCTION:    AcpiGetDataFull
  *
  * PARAMETERS:  ObjHandle           - Namespace node
- *              Handler             - Handler used in call to AttachData
+ *              Handle              - Handler used in call to attach_data
  *              Data                - Where the data is returned
+ *              Callback            - function to execute before returning
  *
  * RETURN:      Status
  *
- * DESCRIPTION: Retrieve data that was previously attached to a namespace node.
+ * DESCRIPTION: Retrieve data that was previously attached to a namespace node
+ *              and execute a callback before returning.
  *
  ******************************************************************************/
-
 ACPI_STATUS
-AcpiGetData (
+AcpiGetDataFull (
     ACPI_HANDLE             ObjHandle,
     ACPI_OBJECT_HANDLER     Handler,
-    void                    **Data)
+    void                    **Data,
+    void (*Callback)(void *))
 {
     ACPI_NAMESPACE_NODE     *Node;
     ACPI_STATUS             Status;
@@ -1069,10 +1071,34 @@ AcpiGetData (
     }
 
     Status = AcpiNsGetAttachedData (Node, Handler, Data);
-
+    if (ACPI_SUCCESS(Status) && Callback) {
+		Callback(*Data);
+    }
 UnlockAndExit:
     (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
     return (Status);
 }
+ACPI_EXPORT_SYMBOL (AcpiGetDataFull)
 
+/*******************************************************************************
+ *
+ * FUNCTION:    AcpiGetData
+ *
+ * PARAMETERS:  ObjHandle           - Namespace node
+ *              Handler             - Handler used in call to AttachData
+ *              Data                - Where the data is returned
+ *
+ * RETURN:      Status
+ *
+ * DESCRIPTION: Retrieve data that was previously attached to a namespace node.
+ *
+ ******************************************************************************/
+ACPI_STATUS
+AcpiGetData (
+    ACPI_HANDLE             ObjHandle,
+    ACPI_OBJECT_HANDLER     Handler,
+    void                    **Data)
+{
+	return (AcpiGetDataFull(ObjHandle, Handler, Data, NULL));
+}
 ACPI_EXPORT_SYMBOL (AcpiGetData)

Modified: head/sys/contrib/dev/acpica/include/acpixf.h
==============================================================================
--- head/sys/contrib/dev/acpica/include/acpixf.h	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/contrib/dev/acpica/include/acpixf.h	Sat Jan 28 16:30:14 2017	(r312926)
@@ -672,6 +672,14 @@ AcpiGetData (
 
 ACPI_EXTERNAL_RETURN_STATUS (
 ACPI_STATUS
+AcpiGetDataFull (
+    ACPI_HANDLE             Object,
+    ACPI_OBJECT_HANDLER     Handler,
+    void                    **Data,
+    void (*Callback)(void *)))
+
+ACPI_EXTERNAL_RETURN_STATUS (
+ACPI_STATUS
 AcpiDebugTrace (
     const char              *Name,
     UINT32                  DebugLevel,

Modified: head/sys/ddb/ddb.h
==============================================================================
--- head/sys/ddb/ddb.h	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/ddb/ddb.h	Sat Jan 28 16:30:14 2017	(r312926)
@@ -219,6 +219,7 @@ bool		db_stop_at_pc(int type, int code, 
 		    bool *is_watchpoint);
 #define		db_strcpy	strcpy
 void		db_trace_self(void);
+void		db_trace_self_depth(int);
 int		db_trace_thread(struct thread *, int);
 bool		db_value_of_name(const char *name, db_expr_t *valuep);
 bool		db_value_of_name_pcpu(const char *name, db_expr_t *valuep);

Modified: head/sys/dev/drm2/drm_agpsupport.c
==============================================================================
--- head/sys/dev/drm2/drm_agpsupport.c	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/dev/drm2/drm_agpsupport.c	Sat Jan 28 16:30:14 2017	(r312926)
@@ -35,7 +35,6 @@
 __FBSDID("$FreeBSD$");
 
 #include <dev/drm2/drmP.h>
-#include <linux/slab.h>
 
 #if __OS_HAS_AGP
 
@@ -209,13 +208,15 @@ int drm_agp_alloc(struct drm_device *dev
 
 	if (!dev->agp || !dev->agp->acquired)
 		return -EINVAL;
-	if (!(entry = kzalloc(sizeof(*entry), GFP_KERNEL)))
+	if (!(entry = malloc(sizeof(*entry), DRM_MEM_AGPLISTS, M_NOWAIT)))
 		return -ENOMEM;
 
+	memset(entry, 0, sizeof(*entry));
+
 	pages = (request->size + PAGE_SIZE - 1) / PAGE_SIZE;
 	type = (u32) request->type;
 	if (!(memory = agp_alloc_memory(dev->agp->bridge, type, pages << PAGE_SHIFT))) {
-		kfree(entry);
+		free(entry, DRM_MEM_AGPLISTS);
 		return -ENOMEM;
 	}
 
@@ -375,7 +376,7 @@ int drm_agp_free(struct drm_device *dev,
 	list_del(&entry->head);
 
 	drm_free_agp(entry->memory, entry->pages);
-	kfree(entry);
+	free(entry, DRM_MEM_AGPLISTS);
 	return 0;
 }
 EXPORT_SYMBOL(drm_agp_free);
@@ -403,11 +404,12 @@ struct drm_agp_head *drm_agp_init(struct
 {
 	struct drm_agp_head *head = NULL;
 
-	if (!(head = kzalloc(sizeof(*head), GFP_KERNEL)))
+	if (!(head = malloc(sizeof(*head), DRM_MEM_AGPLISTS, M_NOWAIT)))
 		return NULL;
+	memset((void *)head, 0, sizeof(*head));
 	head->bridge = agp_find_device();
 	if (!head->bridge) {
-		kfree(head);
+		free(head, DRM_MEM_AGPLISTS);
 		return NULL;
 	} else {
 		agp_get_info(head->bridge, &head->agp_info);

Modified: head/sys/dev/drm2/drm_bufs.c
==============================================================================
--- head/sys/dev/drm2/drm_bufs.c	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/dev/drm2/drm_bufs.c	Sat Jan 28 16:30:14 2017	(r312926)
@@ -39,6 +39,9 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/shm.h>
 
+#include <linux/vmalloc.h>
+#include <linux/slab.h>
+
 #include <dev/pci/pcireg.h>
 
 #include <dev/drm2/drmP.h>
@@ -216,7 +219,7 @@ static int drm_addmap_core(struct drm_de
 	int ret;
 	int align;
 
-	map = malloc(sizeof(*map), DRM_MEM_MAPS, M_NOWAIT);
+	map = kmalloc(sizeof(*map), GFP_KERNEL);
 	if (!map)
 		return -ENOMEM;
 
@@ -230,7 +233,7 @@ static int drm_addmap_core(struct drm_de
 	 * when processes fork.
 	 */
 	if ((map->flags & _DRM_REMOVABLE) && map->type != _DRM_SHM) {
-		free(map, DRM_MEM_MAPS);
+		kfree(map);
 		return -EINVAL;
 	}
 	DRM_DEBUG("offset = 0x%08llx, size = 0x%08lx, type = %d\n",
@@ -249,7 +252,7 @@ static int drm_addmap_core(struct drm_de
 	 * constant.
 	 */
 	if ((map->offset & ((resource_size_t)PAGE_MASK)) || (map->size & (PAGE_MASK))) {
-		free(map, DRM_MEM_MAPS);
+		kfree(map);
 		return -EINVAL;
 	}
 	map->mtrr = -1;
@@ -281,7 +284,7 @@ static int drm_addmap_core(struct drm_de
 				list->map->size = map->size;
 			}
 
-			free(map, DRM_MEM_MAPS);
+			kfree(map);
 			*maplist = list;
 			return 0;
 		}
@@ -298,7 +301,7 @@ static int drm_addmap_core(struct drm_de
 		if (map->type == _DRM_REGISTERS) {
 			drm_core_ioremap(map, dev);
 			if (!map->handle) {
-				free(map, DRM_MEM_MAPS);
+				kfree(map);
 				return -ENOMEM;
 			}
 		}
@@ -314,23 +317,23 @@ static int drm_addmap_core(struct drm_de
 				list->map->size = map->size;
 			}
 
-			free(map, DRM_MEM_MAPS);
+			kfree(map);
 			*maplist = list;
 			return 0;
 		}
-		map->handle = malloc(map->size, DRM_MEM_MAPS, M_NOWAIT);
+		map->handle = vmalloc_user(map->size);
 		DRM_DEBUG("%lu %d %p\n",
 			  map->size, drm_order(map->size), map->handle);
 		if (!map->handle) {
-			free(map, DRM_MEM_MAPS);
+			kfree(map);
 			return -ENOMEM;
 		}
 		map->offset = (unsigned long)map->handle;
 		if (map->flags & _DRM_CONTAINS_LOCK) {
 			/* Prevent a 2nd X Server from creating a 2nd lock */
 			if (dev->primary->master->lock.hw_lock != NULL) {
-				free(map->handle, DRM_MEM_MAPS);
-				free(map, DRM_MEM_MAPS);
+				kfree(map->handle);
+				kfree(map);
 				return -EBUSY;
 			}
 			dev->sigdata.lock = dev->primary->master->lock.hw_lock = map->handle;	/* Pointer to lock */
@@ -341,7 +344,7 @@ static int drm_addmap_core(struct drm_de
 		int valid = 0;
 
 		if (!drm_core_has_AGP(dev)) {
-			free(map, DRM_MEM_MAPS);
+			kfree(map);
 			return -EINVAL;
 		}
 #ifdef __linux__
@@ -376,7 +379,7 @@ static int drm_addmap_core(struct drm_de
 			}
 		}
 		if (!list_empty(&dev->agp->memory) && !valid) {
-			free(map, DRM_MEM_MAPS);
+			kfree(map);
 			return -EPERM;
 		}
 		DRM_DEBUG("AGP offset = 0x%08llx, size = 0x%08lx\n",
@@ -389,7 +392,7 @@ static int drm_addmap_core(struct drm_de
 		break;
 	case _DRM_SCATTER_GATHER:
 		if (!dev->sg) {
-			free(map, DRM_MEM_MAPS);
+			kfree(map);
 			return -EINVAL;
 		}
 		map->handle = (void *)(dev->sg->vaddr + offset);
@@ -405,7 +408,7 @@ static int drm_addmap_core(struct drm_de
 			align = PAGE_SIZE;
 		dmah = drm_pci_alloc(dev, map->size, align, BUS_SPACE_MAXADDR);
 		if (!dmah) {
-			free(map, DRM_MEM_MAPS);
+			kfree(map);
 			return -ENOMEM;
 		}
 		map->handle = dmah->vaddr;
@@ -413,15 +416,15 @@ static int drm_addmap_core(struct drm_de
 		map->dmah = dmah;
 		break;
 	default:
-		free(map, DRM_MEM_MAPS);
+		kfree(map);
 		return -EINVAL;
 	}
 
-	list = malloc(sizeof(*list), DRM_MEM_MAPS, M_ZERO | M_NOWAIT);
+	list = kzalloc(sizeof(*list), GFP_KERNEL);
 	if (!list) {
 		if (map->type == _DRM_REGISTERS)
 			drm_core_ioremapfree(map, dev);
-		free(map, DRM_MEM_MAPS);
+		kfree(map);
 		return -EINVAL;
 	}
 	list->map = map;
@@ -438,8 +441,8 @@ static int drm_addmap_core(struct drm_de
 	if (ret) {
 		if (map->type == _DRM_REGISTERS)
 			drm_core_ioremapfree(map, dev);
-		free(map, DRM_MEM_MAPS);
-		free(list, DRM_MEM_MAPS);
+		kfree(map);
+		kfree(list);
 		DRM_UNLOCK(dev);
 		return ret;
 	}
@@ -523,7 +526,7 @@ int drm_rmmap_locked(struct drm_device *
 			list_del(&r_list->head);
 			drm_ht_remove_key(&dev->map_hash,
 					  r_list->user_token >> PAGE_SHIFT);
-			free(r_list, DRM_MEM_MAPS);
+			kfree(r_list);
 			found = 1;
 			break;
 		}
@@ -545,7 +548,7 @@ int drm_rmmap_locked(struct drm_device *
 		}
 		break;
 	case _DRM_SHM:
-		free(map->handle, DRM_MEM_MAPS);
+		kfree(map->handle);
 		if (master) {
 			if (dev->sigdata.lock == master->lock.hw_lock)
 				dev->sigdata.lock = NULL;
@@ -564,7 +567,7 @@ int drm_rmmap_locked(struct drm_device *
 		DRM_ERROR("tried to rmmap GEM object\n");
 		break;
 	}
-	free(map, DRM_MEM_MAPS);
+	kfree(map);
 
 	return 0;
 }
@@ -655,16 +658,16 @@ static void drm_cleanup_buf_error(struct
 				drm_pci_free(dev, entry->seglist[i]);
 			}
 		}
-		free(entry->seglist, DRM_MEM_SEGS);
+		kfree(entry->seglist);
 
 		entry->seg_count = 0;
 	}
 
 	if (entry->buf_count) {
 		for (i = 0; i < entry->buf_count; i++) {
-			free(entry->buflist[i].dev_private, DRM_MEM_BUFS);
+			kfree(entry->buflist[i].dev_private);
 		}
-		free(entry->buflist, DRM_MEM_BUFS);
+		kfree(entry->buflist);
 
 		entry->buf_count = 0;
 	}
@@ -761,8 +764,7 @@ int drm_addbufs_agp(struct drm_device * 
 		return -EINVAL;
 	}
 
-	entry->buflist = malloc(count * sizeof(*entry->buflist), DRM_MEM_BUFS,
-	    M_NOWAIT | M_ZERO);
+	entry->buflist = kcalloc(count, sizeof(*entry->buflist), GFP_KERNEL);
 	if (!entry->buflist) {
 		DRM_UNLOCK(dev);
 		atomic_dec(&dev->buf_alloc);
@@ -790,8 +792,7 @@ int drm_addbufs_agp(struct drm_device * 
 		buf->file_priv = NULL;
 
 		buf->dev_priv_size = dev->driver->dev_priv_size;
-		buf->dev_private = malloc(buf->dev_priv_size, DRM_MEM_BUFS,
-		    M_NOWAIT | M_ZERO);
+		buf->dev_private = kzalloc(buf->dev_priv_size, GFP_KERNEL);
 		if (!buf->dev_private) {
 			/* Set count correctly so we free the proper amount. */
 			entry->buf_count = count;
@@ -810,9 +811,8 @@ int drm_addbufs_agp(struct drm_device * 
 
 	DRM_DEBUG("byte_count: %d\n", byte_count);
 
-	temp_buflist = realloc(dma->buflist,
-	    (dma->buf_count + entry->buf_count) * sizeof(*dma->buflist),
-	    DRM_MEM_BUFS, M_NOWAIT);
+	temp_buflist = krealloc(dma->buflist,
+	    (dma->buf_count + entry->buf_count) * sizeof(*dma->buflist), GFP_KERNEL);
 	if (!temp_buflist) {
 		/* Free the entry because it isn't valid */
 		drm_cleanup_buf_error(dev, entry);
@@ -912,18 +912,16 @@ int drm_addbufs_pci(struct drm_device * 
 		return -EINVAL;
 	}
 
-	entry->buflist = malloc(count * sizeof(*entry->buflist), DRM_MEM_BUFS,
-	    M_NOWAIT | M_ZERO);
+	entry->buflist = kcalloc(count, sizeof(*entry->buflist), GFP_KERNEL);
 	if (!entry->buflist) {
 		DRM_UNLOCK(dev);
 		atomic_dec(&dev->buf_alloc);
 		return -ENOMEM;
 	}
 
-	entry->seglist = malloc(count * sizeof(*entry->seglist), DRM_MEM_SEGS,
-	    M_NOWAIT | M_ZERO);
+	entry->seglist = kcalloc(count, sizeof(*entry->seglist), GFP_KERNEL);
 	if (!entry->seglist) {
-		free(entry->buflist, DRM_MEM_BUFS);
+		kfree(entry->buflist);
 		DRM_UNLOCK(dev);
 		atomic_dec(&dev->buf_alloc);
 		return -ENOMEM;
@@ -932,11 +930,12 @@ int drm_addbufs_pci(struct drm_device * 
 	/* Keep the original pagelist until we know all the allocations
 	 * have succeeded
 	 */
-	temp_pagelist = malloc((dma->page_count + (count << page_order)) *
-	    sizeof(*dma->pagelist), DRM_MEM_PAGES, M_NOWAIT);
+	temp_pagelist = kmalloc_array(dma->page_count + (count << page_order),
+				      sizeof(*dma->pagelist),
+				      GFP_KERNEL);
 	if (!temp_pagelist) {
-		free(entry->buflist, DRM_MEM_BUFS);
-		free(entry->seglist, DRM_MEM_SEGS);
+		kfree(entry->buflist);
+		kfree(entry->seglist);
 		DRM_UNLOCK(dev);
 		atomic_dec(&dev->buf_alloc);
 		return -ENOMEM;
@@ -960,7 +959,7 @@ int drm_addbufs_pci(struct drm_device * 
 			entry->buf_count = count;
 			entry->seg_count = count;
 			drm_cleanup_buf_error(dev, entry);
-			free(temp_pagelist, DRM_MEM_PAGES);
+			kfree(temp_pagelist);
 			DRM_UNLOCK(dev);
 			atomic_dec(&dev->buf_alloc);
 			return -ENOMEM;
@@ -990,14 +989,14 @@ int drm_addbufs_pci(struct drm_device * 
 			buf->file_priv = NULL;
 
 			buf->dev_priv_size = dev->driver->dev_priv_size;
-			buf->dev_private = malloc(buf->dev_priv_size,
-			    DRM_MEM_BUFS, M_NOWAIT | M_ZERO);
+			buf->dev_private = kzalloc(buf->dev_priv_size,
+						GFP_KERNEL);
 			if (!buf->dev_private) {
 				/* Set count correctly so we free the proper amount. */
 				entry->buf_count = count;
 				entry->seg_count = count;
 				drm_cleanup_buf_error(dev, entry);
-				free(temp_pagelist, DRM_MEM_PAGES);
+				kfree(temp_pagelist);
 				DRM_UNLOCK(dev);
 				atomic_dec(&dev->buf_alloc);
 				return -ENOMEM;
@@ -1009,13 +1008,13 @@ int drm_addbufs_pci(struct drm_device * 
 		byte_count += PAGE_SIZE << page_order;
 	}
 
-	temp_buflist = realloc(dma->buflist,
-	    (dma->buf_count + entry->buf_count) * sizeof(*dma->buflist),
-	    DRM_MEM_BUFS, M_NOWAIT);
+	temp_buflist = krealloc(dma->buflist,
+				(dma->buf_count + entry->buf_count) *
+				sizeof(*dma->buflist), GFP_KERNEL);
 	if (!temp_buflist) {
 		/* Free the entry because it isn't valid */
 		drm_cleanup_buf_error(dev, entry);
-		free(temp_pagelist, DRM_MEM_PAGES);
+		kfree(temp_pagelist);
 		DRM_UNLOCK(dev);
 		atomic_dec(&dev->buf_alloc);
 		return -ENOMEM;
@@ -1030,7 +1029,7 @@ int drm_addbufs_pci(struct drm_device * 
 	 * with the new one.
 	 */
 	if (dma->page_count) {
-		free(dma->pagelist, DRM_MEM_PAGES);
+		kfree(dma->pagelist);
 	}
 	dma->pagelist = temp_pagelist;
 
@@ -1124,8 +1123,7 @@ static int drm_addbufs_sg(struct drm_dev
 		return -EINVAL;
 	}
 
-	entry->buflist = malloc(count * sizeof(*entry->buflist), DRM_MEM_BUFS,
-	    M_NOWAIT | M_ZERO);
+	entry->buflist = kcalloc(count, sizeof(*entry->buflist), GFP_KERNEL);
 	if (!entry->buflist) {
 		DRM_UNLOCK(dev);
 		atomic_dec(&dev->buf_alloc);
@@ -1154,8 +1152,7 @@ static int drm_addbufs_sg(struct drm_dev
 		buf->file_priv = NULL;
 
 		buf->dev_priv_size = dev->driver->dev_priv_size;
-		buf->dev_private = malloc(buf->dev_priv_size, DRM_MEM_BUFS,
-		    M_NOWAIT | M_ZERO);
+		buf->dev_private = kzalloc(buf->dev_priv_size, GFP_KERNEL);
 		if (!buf->dev_private) {
 			/* Set count correctly so we free the proper amount. */
 			entry->buf_count = count;
@@ -1174,9 +1171,9 @@ static int drm_addbufs_sg(struct drm_dev
 
 	DRM_DEBUG("byte_count: %d\n", byte_count);
 
-	temp_buflist = realloc(dma->buflist,
-	    (dma->buf_count + entry->buf_count) * sizeof(*dma->buflist),
-	    DRM_MEM_BUFS, M_NOWAIT);
+	temp_buflist = krealloc(dma->buflist,
+				(dma->buf_count + entry->buf_count) *
+				sizeof(*dma->buflist), GFP_KERNEL);
 	if (!temp_buflist) {
 		/* Free the entry because it isn't valid */
 		drm_cleanup_buf_error(dev, entry);
@@ -1280,8 +1277,7 @@ static int drm_addbufs_fb(struct drm_dev
 		return -EINVAL;
 	}
 
-	entry->buflist = malloc(count * sizeof(*entry->buflist), DRM_MEM_BUFS,
-	    M_NOWAIT | M_ZERO);
+	entry->buflist = kzalloc(count * sizeof(*entry->buflist), GFP_KERNEL);
 	if (!entry->buflist) {
 		DRM_UNLOCK(dev);
 		atomic_dec(&dev->buf_alloc);
@@ -1309,8 +1305,7 @@ static int drm_addbufs_fb(struct drm_dev
 		buf->file_priv = NULL;
 
 		buf->dev_priv_size = dev->driver->dev_priv_size;
-		buf->dev_private = malloc(buf->dev_priv_size, DRM_MEM_BUFS,
-		    M_NOWAIT | M_ZERO);
+		buf->dev_private = kmalloc(buf->dev_priv_size, GFP_KERNEL);
 		if (!buf->dev_private) {
 			/* Set count correctly so we free the proper amount. */
 			entry->buf_count = count;
@@ -1329,9 +1324,8 @@ static int drm_addbufs_fb(struct drm_dev
 
 	DRM_DEBUG("byte_count: %d\n", byte_count);
 
-	temp_buflist = realloc(dma->buflist,
-	    (dma->buf_count + entry->buf_count) * sizeof(*dma->buflist),
-	    DRM_MEM_BUFS, M_NOWAIT);
+	temp_buflist = krealloc(dma->buflist,
+	    (dma->buf_count + entry->buf_count) * sizeof(*dma->buflist), GFP_KERNEL);
 	if (!temp_buflist) {
 		/* Free the entry because it isn't valid */
 		drm_cleanup_buf_error(dev, entry);

Modified: head/sys/dev/drm2/drm_dma.c
==============================================================================
--- head/sys/dev/drm2/drm_dma.c	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/dev/drm2/drm_dma.c	Sat Jan 28 16:30:14 2017	(r312926)
@@ -37,6 +37,7 @@
 __FBSDID("$FreeBSD$");
 
 #include <dev/drm2/drmP.h>
+#include <linux/slab.h>
 
 /**
  * Initialize the DMA data.
@@ -89,18 +90,17 @@ void drm_dma_takedown(struct drm_device 
 					drm_pci_free(dev, dma->bufs[i].seglist[j]);
 				}
 			}
-			free(dma->bufs[i].seglist, DRM_MEM_SEGS);
+			kfree(dma->bufs[i].seglist);
 		}
 		if (dma->bufs[i].buf_count) {
 			for (j = 0; j < dma->bufs[i].buf_count; j++) {
-				free(dma->bufs[i].buflist[j].dev_private,
-				    DRM_MEM_BUFS);
+				kfree(dma->bufs[i].buflist[j].dev_private);
 			}
-			free(dma->bufs[i].buflist, DRM_MEM_BUFS);
+			kfree(dma->bufs[i].buflist);
 		}
 	}
 
-	free(dma->buflist, DRM_MEM_BUFS);
+	kfree(dma->buflist);
 	free(dma->pagelist, DRM_MEM_PAGES);
 	free(dev->dma, DRM_MEM_DRIVER);
 	dev->dma = NULL;

Modified: head/sys/dev/drm2/drm_drv.c
==============================================================================
--- head/sys/dev/drm2/drm_drv.c	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/dev/drm2/drm_drv.c	Sat Jan 28 16:30:14 2017	(r312926)
@@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$");
 
 #include <sys/sysent.h>
 
-#include <linux/slab.h>
 #include <dev/drm2/drmP.h>
 #include <dev/drm2/drm_core.h>
 #include <dev/drm2/drm_global.h>
@@ -212,7 +211,7 @@ int drm_lastclose(struct drm_device * de
 			if (entry->bound)
 				drm_unbind_agp(entry->memory);
 			drm_free_agp(entry->memory, entry->pages);
-			kfree(entry);
+			free(entry, DRM_MEM_AGPLISTS);
 		}
 		INIT_LIST_HEAD(&dev->agp->memory);
 

Modified: head/sys/dev/drm2/drm_os_freebsd.c
==============================================================================
--- head/sys/dev/drm2/drm_os_freebsd.c	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/dev/drm2/drm_os_freebsd.c	Sat Jan 28 16:30:14 2017	(r312926)
@@ -16,7 +16,6 @@ MALLOC_DEFINE(DRM_MEM_MAGIC, "drm_magic"
 MALLOC_DEFINE(DRM_MEM_MINOR, "drm_minor", "DRM MINOR Data Structures");
 MALLOC_DEFINE(DRM_MEM_IOCTLS, "drm_ioctls", "DRM IOCTL Data Structures");
 MALLOC_DEFINE(DRM_MEM_MAPS, "drm_maps", "DRM MAP Data Structures");
-MALLOC_DEFINE(DRM_MEM_BUFS, "drm_bufs", "DRM BUFFER Data Structures");
 MALLOC_DEFINE(DRM_MEM_SEGS, "drm_segs", "DRM SEGMENTS Data Structures");
 MALLOC_DEFINE(DRM_MEM_PAGES, "drm_pages", "DRM PAGES Data Structures");
 MALLOC_DEFINE(DRM_MEM_FILES, "drm_files", "DRM FILE Data Structures");
@@ -24,6 +23,7 @@ MALLOC_DEFINE(DRM_MEM_QUEUES, "drm_queue
 MALLOC_DEFINE(DRM_MEM_CMDS, "drm_cmds", "DRM COMMAND Data Structures");
 MALLOC_DEFINE(DRM_MEM_MAPPINGS, "drm_mapping", "DRM MAPPING Data Structures");
 MALLOC_DEFINE(DRM_MEM_BUFLISTS, "drm_buflists", "DRM BUFLISTS Data Structures");
+MALLOC_DEFINE(DRM_MEM_AGPLISTS, "drm_agplists", "DRM AGPLISTS Data Structures");
 MALLOC_DEFINE(DRM_MEM_CTXBITMAP, "drm_ctxbitmap",
     "DRM CTXBITMAP Data Structures");
 MALLOC_DEFINE(DRM_MEM_SGLISTS, "drm_sglists", "DRM SGLISTS Data Structures");
@@ -495,5 +495,4 @@ MODULE_VERSION(drmn, 1);
 MODULE_DEPEND(drmn, agp, 1, 1, 1);
 MODULE_DEPEND(drmn, pci, 1, 1, 1);
 MODULE_DEPEND(drmn, mem, 1, 1, 1);
-MODULE_DEPEND(drmn, linuxkpi, 1, 1, 1);
 MODULE_DEPEND(drmn, iicbus, 1, 1, 1);

Modified: head/sys/dev/drm2/drm_os_freebsd.h
==============================================================================
--- head/sys/dev/drm2/drm_os_freebsd.h	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/dev/drm2/drm_os_freebsd.h	Sat Jan 28 16:30:14 2017	(r312926)
@@ -544,7 +544,6 @@ MALLOC_DECLARE(DRM_MEM_MAGIC);
 MALLOC_DECLARE(DRM_MEM_MINOR);
 MALLOC_DECLARE(DRM_MEM_IOCTLS);
 MALLOC_DECLARE(DRM_MEM_MAPS);
-MALLOC_DECLARE(DRM_MEM_BUFS);
 MALLOC_DECLARE(DRM_MEM_SEGS);
 MALLOC_DECLARE(DRM_MEM_PAGES);
 MALLOC_DECLARE(DRM_MEM_FILES);
@@ -552,6 +551,7 @@ MALLOC_DECLARE(DRM_MEM_QUEUES);
 MALLOC_DECLARE(DRM_MEM_CMDS);
 MALLOC_DECLARE(DRM_MEM_MAPPINGS);
 MALLOC_DECLARE(DRM_MEM_BUFLISTS);
+MALLOC_DECLARE(DRM_MEM_AGPLISTS);
 MALLOC_DECLARE(DRM_MEM_CTXBITMAP);
 MALLOC_DECLARE(DRM_MEM_SGLISTS);
 MALLOC_DECLARE(DRM_MEM_MM);

Modified: head/sys/dev/drm2/drm_stub.c
==============================================================================
--- head/sys/dev/drm2/drm_stub.c	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/dev/drm2/drm_stub.c	Sat Jan 28 16:30:14 2017	(r312926)
@@ -36,7 +36,6 @@ __FBSDID("$FreeBSD$");
 
 #include <dev/drm2/drmP.h>
 #include <dev/drm2/drm_core.h>
-#include <linux/slab.h>
 
 #ifdef DRM_DEBUG_DEFAULT_ON
 unsigned int drm_debug = (DRM_DEBUGBITS_DEBUG | DRM_DEBUGBITS_KMS |
@@ -316,7 +315,7 @@ void drm_cancel_fill_in_dev(struct drm_d
 				  DRM_MTRR_WC);
 		DRM_DEBUG("mtrr_del=%d\n", retval);
 	}
-	kfree(dev->agp);
+	free(dev->agp, DRM_MEM_AGPLISTS);
 	dev->agp = NULL;
 
 	drm_ht_remove(&dev->map_hash);
@@ -468,7 +467,7 @@ void drm_put_dev(struct drm_device *dev)
 	drm_sysctl_cleanup(dev);
 
 	if (drm_core_has_AGP(dev) && dev->agp) {
-		kfree(dev->agp);
+		free(dev->agp, DRM_MEM_AGPLISTS);
 		dev->agp = NULL;
 	}
 

Modified: head/sys/fs/nfsserver/nfs_nfsdstate.c
==============================================================================
--- head/sys/fs/nfsserver/nfs_nfsdstate.c	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/fs/nfsserver/nfs_nfsdstate.c	Sat Jan 28 16:30:14 2017	(r312926)
@@ -3081,7 +3081,7 @@ tryagain:
 			new_deleg->ls_stateid.other[2] = delegstateidp->other[2]
 			    = nfsrv_nextstateindex(clp);
 			if (writedeleg && !NFSVNO_EXRDONLY(exp) &&
-			    (nfsrv_writedelegifpos || !readonly) &&
+			    (nfsrv_writedelegifpos && !readonly) &&
 			    (new_stp->ls_flags & NFSLCK_WANTRDELEG) == 0) {
 			    new_deleg->ls_flags = (NFSLCK_DELEGWRITE |
 				NFSLCK_READACCESS | NFSLCK_WRITEACCESS);
@@ -3153,7 +3153,7 @@ tryagain:
 				    delegstateidp->other[2]
 				    = nfsrv_nextstateindex(clp);
 				if (writedeleg && !NFSVNO_EXRDONLY(exp) &&
-				    (nfsrv_writedelegifpos || !readonly) &&
+				    (nfsrv_writedelegifpos && !readonly) &&
 				    ((nd->nd_flag & ND_NFSV41) == 0 ||
 				     (new_stp->ls_flags & NFSLCK_WANTRDELEG) ==
 				     0)) {

Modified: head/sys/kern/kern_descrip.c
==============================================================================
--- head/sys/kern/kern_descrip.c	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/kern/kern_descrip.c	Sat Jan 28 16:30:14 2017	(r312926)
@@ -69,6 +69,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/signalvar.h>
 #include <sys/kdb.h>
 #include <sys/stat.h>
+#include <sys/seq.h>
 #include <sys/sx.h>
 #include <sys/syscallsubr.h>
 #include <sys/sysctl.h>
@@ -4074,6 +4075,13 @@ invfo_sendfile(struct file *fp, int sock
 	return (EINVAL);
 }
 
+bool
+fd_modified(struct filedesc *fdp, int fd, uint32_t seq)
+{
+
+	return (!seq_consistent(fd_seq(fdp->fd_files, fd), seq));
+}
+
 /*-------------------------------------------------------------------*/
 
 /*

Modified: head/sys/kern/kern_shutdown.c
==============================================================================
--- head/sys/kern/kern_shutdown.c	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/kern/kern_shutdown.c	Sat Jan 28 16:30:14 2017	(r312926)
@@ -722,6 +722,14 @@ vpanic(const char *fmt, va_list ap)
 
 	spinlock_enter();
 
+#if 0
+/***** DEBUGGING DRM *****/
+
+	doadump(0);
+	EVENTHANDLER_INVOKE(shutdown_final, RB_NOSYNC);
+
+/************************/
+#endif
 #ifdef SMP
 	/*
 	 * stop_cpus_hard(other_cpus) should prevent multiple CPUs from

Modified: head/sys/modules/drm2/drm2/Makefile
==============================================================================
--- head/sys/modules/drm2/drm2/Makefile	Sat Jan 28 16:24:06 2017	(r312925)
+++ head/sys/modules/drm2/drm2/Makefile	Sat Jan 28 16:30:14 2017	(r312926)
@@ -48,8 +48,6 @@ SRCS	= \
 	ati_pcigart.c

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


More information about the svn-src-all mailing list