From owner-cvs-all@FreeBSD.ORG Wed Sep 20 19:05:01 2006 Return-Path: X-Original-To: cvs-all@freebsd.org Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F40D516A535 for ; Wed, 20 Sep 2006 19:05:00 +0000 (UTC) (envelope-from maksim.yevmenkin@gmail.com) Received: from wx-out-0506.google.com (wx-out-0506.google.com [66.249.82.239]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9A46243D73 for ; Wed, 20 Sep 2006 19:04:50 +0000 (GMT) (envelope-from maksim.yevmenkin@gmail.com) Received: by wx-out-0506.google.com with SMTP id i27so354664wxd for ; Wed, 20 Sep 2006 12:04:50 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=bX1JlSetsaNVGv7y4QW0pjJnfzppD2HUSvJLdMeHkGenNazKdipHc1D+RH1zsWt28lPCyiXhM2AkxAwpC6rsLJe/oBlV2uJ2exboXHIAuRgRhZ6Tsmc7xECrDbg/tGJmYPthvKQpBofzndVZa71jh96zMh8kgnqTyNBPrbPM6TE= Received: by 10.70.52.1 with SMTP id z1mr25297362wxz; Wed, 20 Sep 2006 12:04:49 -0700 (PDT) Received: by 10.70.55.2 with HTTP; Wed, 20 Sep 2006 12:04:49 -0700 (PDT) Message-ID: Date: Wed, 20 Sep 2006 12:04:49 -0700 From: "Maksim Yevmenkin" To: "Ruslan Ermilov" In-Reply-To: <20060920185618.GA28844@rambler-co.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20060919221404.GT94944@alchemy.franken.de> <20060920055715.GA81843@rambler-co.ru> <20060920121017.GU94944@alchemy.franken.de> <20060920122830.GB982@rambler-co.ru> <20060920162105.GC9976@rambler-co.ru> <20060920163710.GA28144@rambler-co.ru> <20060920185618.GA28844@rambler-co.ru> Cc: cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/dev/kbdmux kbdmux.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Sep 2006 19:05:01 -0000 On 9/20/06, Ruslan Ermilov wrote: > On Wed, Sep 20, 2006 at 09:44:49AM -0700, Maksim Yevmenkin wrote: > > On 9/20/06, Ruslan Ermilov wrote: > > >On Wed, Sep 20, 2006 at 09:28:46AM -0700, Maksim Yevmenkin wrote: > > >> On 9/20/06, Ruslan Ermilov wrote: > > >> >Here's another demo that indicates that sparc64 doesn't work > > >> >properly. In this case it's a CONS_SETKBD ioctl which is used > > >> >by kbdcontrol(8). I "kldload vkbd" and make sure two vkbd > > >> >instances exist, /dev/vkbdctl0 and /dev/vkbdctl1. > > >> > > >> [...] > > >> > > >> actually, i just tracked this down as part of my work on pr > > >> sparc64/96798. there are few problems mentioned in this pr. kbdcontrol > > >> -k not working is just one of them. > > >> > > >> basically, kb_index is wrong, and, in my case, is always 0. which > > >> defaults to first keyboard (i.e. subkbd(4)). that is why i can not use > > >> kbdcontrol -k to switch between sunkbd(4) and, say, ukbd(4). > > >> > > >Yes, this is the endianness bug we were talking about. > > >Hold on, the fix is almost ready. :-) > > > > sure, btw i think CONS_SETKBD is easy. nothing seems to calling it > > from the kernel, so we could (intptr_t *) cast it and it should just > > work. i really want to change it to > > > > #define CONS_SETKBD _IOW('c', 110, int) > > > Yes, it would break both binary and source API compatibility. No > we cannot do it. ok, i just tested the following patch on sparc64 and it makes 'kbdcontrol -k' work as expected. i can now switch between ukbd0 and sunkbd0 without any problems. --- syscons.c.orig Fri Mar 3 16:41:28 2006 +++ syscons.c Wed Sep 20 09:57:09 2006 @@ -1194,7 +1194,7 @@ keyboard_t *newkbd; s = spltty(); - newkbd = kbd_get_keyboard(*(int *)data); + newkbd = kbd_get_keyboard(*(intptr_t *)data); if (newkbd == NULL) { splx(s); return EINVAL; can i commit it? thanks, max p.s. yes, i know, there are few other ioctl's with the same problem. i just want to address it one ioctl at a time :)