On Wed, Aug 14, 2019 at 08:45:25AM -0600, Theo de Raadt wrote:

> Otto Moerbeek <o...@drijf.net> wrote:
> 
> > Hi,
> > 
> > I have a navigation device (Navilock NL-8002U USB 2.0 Multi GNSS
> > Receiver) that registers itself as a umodem. This device starts
> > spitting out data the moment you plug it in.
> > 
> > On amd64 it seems to behave, but on armv7 I see two (maybe related) 
> > problems.
> > 
> > The first problem:
> > $ doas cu -l cuaU0 gets me:
> > cu: tcsetattr: Operation not permitted
> > $
> > 
> > snippet of ktrace:
> >  98810 cu       CALL  fcntl(3,F_ISATTY)
> >  98810 cu       RET   fcntl 1
> >  98810 cu       CALL  kbind(0xbfff0d64,12,0x597af14c5495c4bc)
> >  98810 cu       RET   kbind 0
> >  98810 cu       CALL  ioctl(3,TIOCEXCL,0x2a5308b6)
> >  98810 cu       RET   ioctl 0
> >  98810 cu       CALL  ioctl(3,TIOCGETA,0xb47a014)
> >  98810 cu       RET   ioctl 0
> >  98810 cu       CALL  kbind(0xbfff0d64,12,0x597af14c5495c4bc)
> >  98810 cu       RET   kbind 0
> >  98810 cu       CALL  kbind(0xbfff0d64,12,0x597af14c5495c4bc)
> >  98810 cu       RET   kbind 0
> >  98810 cu       CALL  ioctl(3,TIOCSETAF,0xbfff0dd0)
> >  98810 cu       RET   ioctl -1 errno 1 Operation not permitted
> > 
> > This is tcsetattr doing TCSAFLUSH
> > 
> > A quick debufg statement showed fp->f_type == DTYPE_VNODE &&
> > (vp->v_flag & VISTTY) being true...
> 
> I think the open() against ucomopen() proceeded, but immediately
> encountered some failure, probably ucom_do_open() failed at that
> moment
> 
> As in, the usb stack is quite broken.
> 
> In two circumstances, I am using old USB2 hubs to make USB3 ports
> reliable.  The situation is pretty dire.

Yes, that worked as a workaround in my case as well. Maybe the problem
is triggered when attaching this device directly to a root hub.

        -Otto

Reply via email to