NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/53666: tcpdump for i386 does not work with COMPAT_NETBSD32 on amd64



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

From: Rin Okuyama <rokuyama%rk.phys.keio.ac.jp@localhost>
To: Paul Goyette <paul%whooppee.com@localhost>
Cc: matthew green <mrg%eterna.com.au@localhost>, gnats-bugs%NetBSD.org@localhost,
 kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost
Subject: Re: kern/53666: tcpdump for i386 does not work with COMPAT_NETBSD32
 on amd64
Date: Mon, 15 Oct 2018 19:28:12 +0900

 On 2018/10/15 19:04, Paul Goyette wrote:
 ...
 >> and sorry for troubling you...
 > 
 > Don't worry about it.  This is the risk one takes when working on a branch.  I will deal with it.
 
 Thank you for your kind words :).
 
 >> Hmm, unfortunately, support for BIOC[GS]ORTIMEOUT makes the situation
 >> worse. We have netbsd32_{to,from}_timeval50() in netbsd32_conv.h, and
 >> they convert between netbsd32_timeval50 and timeval, not timeval50!
 >> Apparently, we have too many different kinds of functions that share
 >> the same naming rule :(.
 >>
 >> Fix may be made in two steps: (1) minimum fix to HEAD for now and
 >> netbsd-8, in order to reduce conflicts b/w pgoyette-compat branch as
 >> much as possible, then (2) real fix after merge of pgoyette-compat.
 >>
 >> However, I'm not sure neither whether "the minimum fix" like this
 >>
 >>  http://www.netbsd.org/~rin/netbsd32_ioctl_20181015.patch
 >>
 >> is acceptable, nor how "the real fix" should be...
 > 
 > I think we need to decide on what "the real fix" looks like before we decide to use one-step or two-step patch.
 
 OK. IMO, the cause of trouble is naming rule violation for
 netbsd32_{to,from}_foo() functions; we have (at least) four
 different kinds of functions:
 
 (1) Functions in netbsd32_conv.h that take two argument, struct
 netbsd32_foo, and struct foo
 
 (2) Functions in netbsd32_conv.h that require additional arguments,
 e.g., netbsd32_to_iovecin():
 
 https://nxr.netbsd.org/xref/src/sys/compat/netbsd32/netbsd32_conv.h#241
 
 (3) Functions in netbsd32_conv.h that do *not* convert b/w struct
 netbsd32_foo and struct foo, e.g., netbsd32_to_timeval50():
 
 https://nxr.netbsd.org/xref/src/sys/compat/netbsd32/netbsd32_conv.h#72
 
 (4) Functions in netbsd32_ioctl.c that require "u_long cmd" argument.
 Note that the most of these functions do not actually use "cmd".
 
 At the moment, I cannot imagine how to resolve this confusion...
 
 Thanks,
 rin
 


Home | Main Index | Thread Index | Old Index