lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sun, 20 Jan 2013 10:04:02 +0100
From:	Arkadiusz Miskiewicz <a.miskiewicz@...il.com>
To:	Woody Suwalski <terraluna977@...il.com>
Cc:	"Greg Kroah-Hartman" <gregkh@...uxfoundation.org>,
	linux-kernel@...r.kernel.org, linux-usb@...r.kernel.org,
	Johan Hovold <jhovold@...il.com>,
	Peter Korsgaard <jacmet@...site.dk>,
	Alan Cox <alan@...ux.intel.com>,
	Preston Fick <preston.fick@...abs.com>
Subject: Re: 3.7.3, ttyUSB0 serial problem - devices stop working and only reboot helps (Inappropriate ioctl for device)

On Sunday 20 of January 2013, Woody Suwalski wrote:
> Arkadiusz Miskiewicz wrote:
> > On Saturday 19 of January 2013, Arkadiusz Miskiewicz wrote:
> >> On Saturday 19 of January 2013, Greg Kroah-Hartman wrote:
> >>> On Fri, Jan 18, 2013 at 11:28:43PM +0100, Arkadiusz Miskiewicz wrote:
> >>>> Hi.
> >>>> 
> >>>> Using 3.7.3 kernel and connecting two rs232 usb adapters, CP2102 and
> >>>> FT232RL, one after disconnecting another.
> >>>> 
> >>>> After few cycles of reconnecting and using socat (below) I'm getting
> >>>> problems accessing ttyUSB0:
> >>>> ioctl(3, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or
> >>>> TCGETS, 0x7fffb70c6ae0) = -1 ENOTTY (Inappropriate ioctl for device)
> >>>> 
> >>>> Unloading and reloading (by udev) modules ftdio_sio, cp210x, usbserial
> >>>> doesn't help. I have to reboot to get ttyUSB0 working (regardless of
> >>>> which driver, ftdio_sio or cp210x is handling ttyUSB0 - both stop
> >>>> working).
> >>>> 
> >>>> Any clues?
> >>> 
> >>> The kernel log shows the device getting removed a bunch and then coming
> >>> back, which implies electrical issues (flaky connection, low power,
> >>> etc.)  Are you really removing it and plugging it back in?  Or is it
> >>> doing it all by itself?
> >> 
> >> I was doing plug in CP2102, remove it, plug in FT232RL after few
> >> seconds, remove it, plug in CP... (and various variations, several
> >> times) and testing with socat before removing devices. After some
> >> iteration the problem appears and only reboot helps.
> > 
> > The issue is really weird. Machine is Thinkpad T400 2764CTO (latest
> > bios). When the problem happened on 3.7.3 today I rebooted into 3.8rc4
> > and ... freshly after reboot and plugging in PL2303 adapter the problem
> > was already there. Didn't have to do unplug/plug cycle to make it
> > happen.
> > 
> > Looks like sometimes reboot cures the problem, sometimes it doesn't. Now
> > powered off laptop and powered it on - problem gone.
> > 
> > Connected PL2303, ran socat, disconnected PL2303 (while socat was
> > running) -> problem happened again. Looks like it doesn't depend on
> > adapter chip type.
> > 
> > So to reproduce here:
> > - boot fresh 3.8rc4
> > - plug in some adapter (PL2303 for example)
> > - run "socat -ddd -s -u
> > /dev/ttyUSB0,raw,echo=0,b115200,crnl,noctty,nonblock -
> > 
> > | logger" - it should run fine, without any error
> > 
> > - disconnect adapter; socat should exit with error "W cannot restore
> > terminal settings on fd 3: Input/output error"
> > - plug in adapter again
> > - run socat again -> this time error "E tcgetattr(3, 0x7fff21411780):
> > Inappropriate ioctl for device" immediately always; regardless which
> > adapter is used and if kernel module drivers for these adapters were
> > reloaded
> > 
> > dmesg:
> > http://pastebin.com/r1Q5mmgt
> > 
> > config:
> > http://pastebin.com/8dpFFzuU
> > 
> > lspci:
> > http://pastebin.com/TBtUg1tW
> > 
> > lsusb:
> > http://pastebin.com/SueVw9CD
> > 
> > [   53.776047] usb 4-1: new full-speed USB device number 2 using uhci_hcd
> > [   53.938053] usb 4-1: New USB device found, idVendor=067b,
> > idProduct=2303 [   53.938060] usb 4-1: New USB device strings: Mfr=1,
> > Product=2, SerialNumber=0
> > [   53.938065] usb 4-1: Product: USB-Serial Controller
> > [   53.938068] usb 4-1: Manufacturer: Prolific Technology Inc.
> > [   53.949924] usbcore: registered new interface driver usbserial
> > [   53.950364] usbcore: registered new interface driver usbserial_generic
> > [   53.951147] usbserial: USB Serial support registered for generic
> > [   53.954268] usbcore: registered new interface driver pl2303
> > [   53.955009] usbserial: USB Serial support registered for pl2303
> > [   53.955039] pl2303 4-1:1.0: pl2303 converter detected
> > [   53.967394] usb 4-1: pl2303 converter now attached to ttyUSB0
> > [   64.492122] usb 4-1: USB disconnect, device number 2
> > [   64.501748] pl2303 ttyUSB0: pl2303 converter now disconnected from
> > ttyUSB0 [   64.502343] pl2303 4-1:1.0: device disconnected
> > [   66.494930] usb 4-1: new full-speed USB device number 3 using uhci_hcd
> > [   66.654247] usb 4-1: New USB device found, idVendor=067b,
> > idProduct=2303 [   66.654261] usb 4-1: New USB device strings: Mfr=1,
> > Product=2, SerialNumber=0
> > [   66.654269] usb 4-1: Product: USB-Serial Controller
> > [   66.654276] usb 4-1: Manufacturer: Prolific Technology Inc.
> > [   66.659661] pl2303 4-1:1.0: pl2303 converter detected
> > [   66.671587] usb 4-1: pl2303 converter now attached to ttyUSB0
> > 
> > 5722  munmap(0x7f1bfc0d7000, 4096)      = 0
> > 5722  write(2, "2013/01/19 09:36:38 socat[5722] E tcgetattr(3,
> > 0x7fffeff64020): Inappropriate ioctl for device\n", 95) = 95
> > 5722  ioctl(3, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or
> > TCGETS, 0x7fffeff63e50) = -1 ENOTTY (Inappropriate ioctl for device)
> > 5722  write(2, "2013/01/19 09:36:38 socat[5722] E tcgetattr(3,
> > 0x7fffeff63f90): Inappropriate ioctl for device\n", 95) = 95
> > 5722  ioctl(3, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or
> > TCGETS, 0x7fffeff63ec0) = -1 ENOTTY (Inappropriate ioctl for device)
> > 5722  write(2, "2013/01/19 09:36:38 socat[5722] E tcgetattr(3,
> > 0x7fffeff64160): Inappropriate ioctl for device\n", 95) = 95
> > 5722  fcntl(3, F_SETFD, FD_CLOEXEC)     = 0
> > 5722  ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or
> > TCGETS, 0x7fffeff64330) = -1 ENOTTY (Inappropriate ioctl for device)
> > 5722  select(4, [3], [1], [], NULL)     = 2 (in [3], out [1])
> 
> If I unplug the USB device while tty session is running, I will get on
> next plugin a new devnode ttyUSB1. It seems that you are trying to reuse
> an old "dead" connection? Could it be rather a udev problem?

After plugging back in kernel says ttyUSB0 in dmesg ("usb 4-1: pl2303 
converter now attached to ttyUSB0"), not ttyUSB1, so it's not udev problem.

Also socat exits with error after unplugging (""W cannot restore
terminal settings on fd 3: Input/output error"") releasing ttyUSB0, so next 
plug in should still use ttyUSB0.

Tried to reproduce the same problem on my PC and failed. On Thinkpad T400 I'm 
reproducing without any problem.

> Woody

-- 
Arkadiusz Miƛkiewicz, arekm / maven.pl
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ