NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/45297: wscons ioctls are not compat_netbsd32 friendly
>Number: 45297
>Category: kern
>Synopsis: wscons ioctls are not compat_netbsd32 friendly
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Aug 25 19:45:01 +0000 2011
>Originator: Manuel Bouyer
>Release: NetBSD 5.99.55
>Organization:
>Environment:
System: NetBSD java.soc.lip6.fr 5.99.55 NetBSD 5.99.55 (LOONGSON) #22: Thu Aug
25 19:51:06 CEST 2011
bouyer@roll:/dsk/l1/misc/bouyer/tmp/evbmips64el/obj/dsk/l1/misc/bouyer/current/src/sys/arch/evbmips/compile/LOONGSON
evbmips
Architecture: mipsel
Machine: evbmips
>Description:
On a system running a 64bit evbmips kernel with a N32 userland
(NetBSD doesn't provide 64bit userland by default):
java# wsconscfg 0
wsconscfg: WSDISPLAYIO_ADDSCREEN: Inappropriate ioctl for device
I tracked it down to the WSDISPLAYIO_ADDSCREEN ioctl definition being
different between LP32 and LP64 (from sys/dev/wscons/wsconsio.h):
struct wsdisplay_addscreendata {
int idx; /* screen index */
char *screentype;
char *emul;
};
#define WSDISPLAYIO_ADDSCREEN _IOW('W', 78, struct wsdisplay_addscreendata)
sizeof(struct wsdisplay_addscreendata) is not the same on lp32 and
lp64.
Some other ioctls in this file also have eiter long or pointers
as part of their argument.
>How-To-Repeat:
try to use a 32bit wsconscfg on a 64bit kernel
>Fix:
define and implement 32bit version of the affected ioctls in kernel.
Home |
Main Index |
Thread Index |
Old Index