From owner-svn-src-user@FreeBSD.ORG Tue Sep 23 10:56:43 2014 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 899D8688; Tue, 23 Sep 2014 10:56:43 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 750BD7BF; Tue, 23 Sep 2014 10:56:43 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id s8NAuhNR011490; Tue, 23 Sep 2014 10:56:43 GMT (envelope-from jceel@FreeBSD.org) Received: (from jceel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id s8NAughr011487; Tue, 23 Sep 2014 10:56:42 GMT (envelope-from jceel@FreeBSD.org) Message-Id: <201409231056.s8NAughr011487@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jceel set sender to jceel@FreeBSD.org using -f From: Jakub Wojciech Klama Date: Tue, 23 Sep 2014 10:56:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r272024 - in user/jceel/soc2014_evdev/head/sys: amd64/conf dev/evdev X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2014 10:56:43 -0000 Author: jceel Date: Tue Sep 23 10:56:42 2014 New Revision: 272024 URL: http://svnweb.freebsd.org/changeset/base/272024 Log: Changes as follows: * Added vt(4) to EVDEV kernel config * Fixed /dev/input/event%d device numbering * Fixed uinput evdev_alloc()/evdev_free() to prevent memory leaks Modified: user/jceel/soc2014_evdev/head/sys/amd64/conf/EVDEV user/jceel/soc2014_evdev/head/sys/dev/evdev/cdev.c user/jceel/soc2014_evdev/head/sys/dev/evdev/uinput.c Modified: user/jceel/soc2014_evdev/head/sys/amd64/conf/EVDEV ============================================================================== --- user/jceel/soc2014_evdev/head/sys/amd64/conf/EVDEV Tue Sep 23 08:39:08 2014 (r272023) +++ user/jceel/soc2014_evdev/head/sys/amd64/conf/EVDEV Tue Sep 23 10:56:42 2014 (r272024) @@ -186,6 +186,11 @@ device splash # Splash screen and scr device sc options SC_PIXEL_MODE # add support for the raster text mode +# vt is the new video console driver +device vt +device vt_vga +device vt_efifb + device agp # support several AGP chipsets # PCCARD (PCMCIA) support Modified: user/jceel/soc2014_evdev/head/sys/dev/evdev/cdev.c ============================================================================== --- user/jceel/soc2014_evdev/head/sys/dev/evdev/cdev.c Tue Sep 23 08:39:08 2014 (r272023) +++ user/jceel/soc2014_evdev/head/sys/dev/evdev/cdev.c Tue Sep 23 10:56:42 2014 (r272024) @@ -42,7 +42,7 @@ #include #include -//#define DEBUG +#define DEBUG #ifdef DEBUG #define debugf(fmt, args...) printf("evdev: " fmt "\n", ##args); #else @@ -167,7 +167,7 @@ evdev_read(struct cdev *dev, struct uio return (ret); if (state->ecs_revoked) - return (EPERM); + return (ENODEV); client = state->ecs_client; @@ -574,7 +574,7 @@ evdev_cdev_create(struct evdev_dev *evde snprintf(evdev->ev_cdev_name, NAMELEN, "input/event%d", evdev_cdev_count++); cdev = make_dev(&evdev_cdevsw, 0, UID_ROOT, GID_WHEEL, 0600, - evdev->ev_cdev_name, evdev_cdev_count++); + "%s", evdev->ev_cdev_name); sc = malloc(sizeof(struct evdev_cdev_softc), M_EVDEV, M_WAITOK | M_ZERO); @@ -588,6 +588,8 @@ evdev_cdev_create(struct evdev_dev *evde int evdev_cdev_destroy(struct evdev_dev *evdev) { + destroy_dev(evdev->ev_cdev); + evdev_cdev_count--; return (0); } Modified: user/jceel/soc2014_evdev/head/sys/dev/evdev/uinput.c ============================================================================== --- user/jceel/soc2014_evdev/head/sys/dev/evdev/uinput.c Tue Sep 23 08:39:08 2014 (r272023) +++ user/jceel/soc2014_evdev/head/sys/dev/evdev/uinput.c Tue Sep 23 10:56:42 2014 (r272024) @@ -57,9 +57,6 @@ static int uinput_poll(struct cdev *, in static void uinput_dtor(void *); static int uinput_setup_provider(struct evdev_dev *, struct uinput_user_dev *); - - - static int uinput_cdev_create(void); static struct cdevsw uinput_cdevsw = { @@ -120,11 +117,10 @@ uinput_dtor(void *data) { struct uinput_cdev_state *state = (struct uinput_cdev_state *)data; - if (state->ucs_connected) { + if (state->ucs_connected) evdev_unregister(NULL, state->ucs_evdev); - evdev_free(state->ucs_evdev); - } + evdev_free(state->ucs_evdev); free(data, M_EVDEV); } @@ -258,8 +254,6 @@ uinput_ioctl(struct cdev *dev, u_long cm return (0); evdev_unregister(NULL, state->ucs_evdev); - evdev_free(state->ucs_evdev); - state->ucs_evdev = NULL; state->ucs_connected = false; break;