svn commit: r300113 - in head/sys: conf kern net sys
Andriy Gapon
avg at FreeBSD.org
Thu May 19 12:07:38 UTC 2016
On 19/05/2016 14:37, Kristof Provost wrote:
>
>
> 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.
Alexander has just committed r300201. It should help.
>
>> 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
>
--
Andriy Gapon
More information about the svn-src-head
mailing list