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
System: NetBSD 5.99.55 NetBSD 5.99.55 (LOONGSON) #22: Thu Aug 
25 19:51:06 CEST 2011  
Architecture: mipsel
Machine: evbmips
        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
        Some other ioctls in this file also have eiter long or pointers
        as part of their argument.
        try to use a 32bit wsconscfg on a 64bit kernel
        define and implement 32bit version of the affected ioctls in kernel.

Home | Main Index | Thread Index | Old Index