From owner-svn-src-head@FreeBSD.ORG Mon Aug 24 04:59:09 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ACBDB106568C; Mon, 24 Aug 2009 04:59:09 +0000 (UTC) (envelope-from alfred@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 828D58FC14; Mon, 24 Aug 2009 04:59:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n7O4x9SW082340; Mon, 24 Aug 2009 04:59:09 GMT (envelope-from alfred@svn.freebsd.org) Received: (from alfred@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n7O4x9Ht082337; Mon, 24 Aug 2009 04:59:09 GMT (envelope-from alfred@svn.freebsd.org) Message-Id: <200908240459.n7O4x9Ht082337@svn.freebsd.org> From: Alfred Perlstein Date: Mon, 24 Aug 2009 04:59:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r196490 - in head/sys/dev/usb: misc storage X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2009 04:59:09 -0000 Author: alfred Date: Mon Aug 24 04:59:09 2009 New Revision: 196490 URL: http://svn.freebsd.org/changeset/base/196490 Log: - FIFO's are always opened separately in read and write direction even if the actual device is opened for read and write. Fix fflags check so that the UFM and URIO drivers work. Reported by: Krassimir Slavchev Submitted by: hps Modified: head/sys/dev/usb/misc/ufm.c head/sys/dev/usb/storage/urio.c Modified: head/sys/dev/usb/misc/ufm.c ============================================================================== --- head/sys/dev/usb/misc/ufm.c Mon Aug 24 04:58:42 2009 (r196489) +++ head/sys/dev/usb/misc/ufm.c Mon Aug 24 04:59:09 2009 (r196490) @@ -86,11 +86,9 @@ static device_attach_t ufm_attach; static device_detach_t ufm_detach; static usb_fifo_ioctl_t ufm_ioctl; -static usb_fifo_open_t ufm_open; static struct usb_fifo_methods ufm_fifo_methods = { .f_ioctl = &ufm_ioctl, - .f_open = &ufm_open, .basename[0] = "ufm", }; @@ -179,15 +177,6 @@ ufm_detach(device_t dev) } static int -ufm_open(struct usb_fifo *dev, int fflags) -{ - if ((fflags & (FWRITE | FREAD)) != (FWRITE | FREAD)) { - return (EACCES); - } - return (0); -} - -static int ufm_do_req(struct ufm_softc *sc, uint8_t request, uint16_t value, uint16_t index, uint8_t *retbuf) { @@ -315,6 +304,10 @@ ufm_ioctl(struct usb_fifo *fifo, u_long struct ufm_softc *sc = usb_fifo_softc(fifo); int error = 0; + if ((fflags & (FWRITE | FREAD)) != (FWRITE | FREAD)) { + return (EACCES); + } + switch (cmd) { case FM_SET_FREQ: error = ufm_set_freq(sc, addr); Modified: head/sys/dev/usb/storage/urio.c ============================================================================== --- head/sys/dev/usb/storage/urio.c Mon Aug 24 04:58:42 2009 (r196489) +++ head/sys/dev/usb/storage/urio.c Mon Aug 24 04:59:09 2009 (r196490) @@ -390,9 +390,6 @@ urio_open(struct usb_fifo *fifo, int ffl { struct urio_softc *sc = usb_fifo_softc(fifo); - if ((fflags & (FWRITE | FREAD)) != (FWRITE | FREAD)) { - return (EACCES); - } if (fflags & FREAD) { /* clear stall first */ mtx_lock(&sc->sc_mtx);