kern/175759: Correct data types for fields of struct qm_trace{} from <sys/queue.h>

Andrey Simonenko simon at comsys.ntu-kpi.kiev.ua
Mon Feb 4 15:20:01 UTC 2013


The following reply was made to PR kern/175759; it has been noted by GNATS.

From: Andrey Simonenko <simon at comsys.ntu-kpi.kiev.ua>
To: Gleb Smirnoff <glebius at FreeBSD.org>
Cc: FreeBSD-gnats-submit at freebsd.org
Subject: Re: kern/175759: Correct data types for fields of struct qm_trace{}
 from <sys/queue.h>
Date: Mon, 4 Feb 2013 17:12:57 +0200

 repost: forgot to send to the group.
 
 On Mon, Feb 04, 2013 at 06:14:07PM +0400, Gleb Smirnoff wrote:
 >   Andrey,
 > 
 >   any additional comments for the attached patch. Is it ok from your
 > viewpoint?
 > 
 > -- 
 > Totus tuus, Glebius.
 
 > Index: queue.h
 > ===================================================================
 > --- queue.h	(revision 245741)
 > +++ queue.h	(working copy)
 > @@ -105,13 +105,14 @@
 >  #ifdef QUEUE_MACRO_DEBUG
 >  /* Store the last 2 places the queue element or head was altered */
 >  struct qm_trace {
 > -	char * lastfile;
 > -	int lastline;
 > -	char * prevfile;
 > -	int prevline;
 > +	const char * lastfile;
 > +	unsigned long lastline;
 > +	const char * prevfile;
 > +	unsigned long prevline;
 >  };
 >  
 >  #define	TRACEBUF	struct qm_trace trace;
 > +#define	TRACEBUF_INITIALIZER	{ __FILE__, __LINE__, NULL, 0 } ,
 >  #define	TRASHIT(x)	do {(x) = (void *)-1;} while (0)
 >  #define	QMD_SAVELINK(name, link)	void **name = (void *)&(link)
 >  
 > @@ -134,6 +135,7 @@
 >  #define	QMD_TRACE_HEAD(head)
 >  #define	QMD_SAVELINK(name, link)
 >  #define	TRACEBUF
 > +#define	TRACEBUF_INITIALIZER
 >  #define	TRASHIT(x)
 >  #endif	/* QUEUE_MACRO_DEBUG */
 >  
 > @@ -461,7 +463,7 @@
 >  }
 >  
 >  #define	TAILQ_HEAD_INITIALIZER(head)					\
 > -	{ NULL, &(head).tqh_first }
 > +	{ NULL, &(head).tqh_first, TRACEBUF_INITIALIZER }
 >  
 >  #define	TAILQ_ENTRY(type)						\
 >  struct {								\
 
 Looks correct.
 
 What do you think about this idea:
 
 http://lists.freebsd.org/pipermail/freebsd-bugs/2013-February/051665.html
 
 it has more generic approach for such kind of debugging.


More information about the freebsd-bugs mailing list