On 18 May 2016, at 10:05, Scott Long wrote:
Author: scottl
Date: Wed May 18 04:35:58 2016
New Revision: 300113
URL: https://svnweb.freebsd.org/changeset/base/300113
Log:
Import the 'iflib' API library for network drivers. From the
author:
For reasons I don’t understand right now this appears to break boot on
my T61.
It’s got an em NIC (82566MM) and is running root-on-zfs, if that
matters.
It mounts the rootfs and then just freezes. I’m investigating, but
would appreciate any hints or thoughts.
Modified: head/sys/kern/subr_taskqueue.c
==============================================================================
--- head/sys/kern/subr_taskqueue.c Wed May 18 04:04:14 2016
(r300112)
+++ head/sys/kern/subr_taskqueue.c Wed May 18 04:35:58 2016
(r300113)
@@ -119,11 +123,17 @@ TQ_SLEEP(struct taskqueue *tq, void *p,
}
static struct taskqueue *
-_taskqueue_create(const char *name __unused, int mflags,
+_taskqueue_create(const char *name, int mflags,
taskqueue_enqueue_fn enqueue, void *context,
- int mtxflags, const char *mtxname)
+ int mtxflags, const char *mtxname __unused)
{
struct taskqueue *queue;
+ char *tq_name = NULL;
+
+ if (name != NULL)
+ tq_name = strndup(name, 32, M_TASKQUEUE);
+ if (tq_name == NULL)
+ tq_name = "taskqueue";
This looks wrong. It’s later free()ed.
@@ -194,6 +206,7 @@ taskqueue_free(struct taskqueue *queue)
KASSERT(queue->tq_callouts == 0, ("Armed timeout tasks"));
mtx_destroy(&queue->tq_mutex);
free(queue->tq_threads, M_TASKQUEUE);
+ free(queue->tq_name, M_TASKQUEUE);
This potentially frees a constant pointer.
Regards,
Kristof
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"