Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Feb 2013 15:20:01 GMT
From:      Andrey Simonenko <simon@comsys.ntu-kpi.kiev.ua>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/175759: Correct data types for fields of struct qm_trace{} from <sys/queue.h>
Message-ID:  <201302041520.r14FK1Lq081069@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/175759; it has been noted by GNATS.

From: Andrey Simonenko <simon@comsys.ntu-kpi.kiev.ua>
To: Gleb Smirnoff <glebius@FreeBSD.org>
Cc: FreeBSD-gnats-submit@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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201302041520.r14FK1Lq081069>