failure to set dtr/rts on USB VCP causes kernel page fault
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
attempting to reproduce bug https:/
20.04.1 LTS yields a kernel OOOPS / page fault in the USB cdc_acm driver.
will upload OOOPs shortly.
steps to reproduce:
1. boot ubuntu 20.04.1 LTS (In this case from live CD)
2. plug in a USB device with a virtual com port
3. configure the TTY assigned (/dev/ttyACM0) setting dtr/rts (for example with minicom)
4. device does not support setting dtr/rts
expected result:
error message
actual result:
error message plus page fault in kernel space plus system becoming unstable
will upload and attach dmesg log as soon as I managed to log the oops
ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: linux-image-
ProcVersionSign
Uname: Linux 5.4.0-42-generic x86_64
NonfreeKernelMo
ApportVersion: 2.20.11-0ubuntu27.4
Architecture: amd64
AudioDevicesInUse:
USER PID ACCESS COMMAND
/dev/snd/
CasperMD5CheckM
CasperMD5CheckR
CasperVersion: 1.445.1
CurrentDesktop: ubuntu:GNOME
Date: Fri Nov 27 17:37:22 2020
LiveMediaBuild: Ubuntu 20.04.1 LTS "Focal Fossa" - Release amd64 (20200731)
MachineType: FUJITSU LIFEBOOK E736
ProcEnviron:
TERM=xterm-
PATH=(custom, no user)
XDG_RUNTIME_
LANG=en_US.UTF-8
SHELL=/bin/bash
ProcFB: 0 i915drmfb
ProcKernelCmdLine: BOOT_IMAGE=
RelatedPackageV
linux-
linux-
linux-firmware 1.187.2
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 12/20/2016
dmi.bios.vendor: FUJITSU // Insyde Software Corp.
dmi.bios.version: Version 1.22
dmi.board.name: FJNB293
dmi.board.vendor: FUJITSU
dmi.board.version: M4
dmi.chassis.type: 10
dmi.chassis.vendor: FUJITSU
dmi.chassis.
dmi.modalias: dmi:bvnFUJITSU/
dmi.product.family: LIFEBOOK-FTS
dmi.product.name: LIFEBOOK E736
dmi.product.
dmi.sys.vendor: FUJITSU
adding dmesg log of the OOOPS
note that the behavior differs from bug #1905782 on Ubuntu 18.
On Ubuntu 18 no OOPS is triggered, instead the driver enters an endless loop when the USB device gets disconnected later
On Ubuntu 20 a kernel OOPS is generated and takes the whole USB stack with it. past that point no more USB events are generated and the system doesn't even notice USB devices getting plugged in or plugged out.
note that to trigger the OOOPS I had to repeat the procedure to reproduce twice - connect, try to set dtr/rts, disconnect, connect again, once more try to set dtr/rts --> OOOPS
on Ubuntu18 the modemmanager service automatically tried to set dtr/rts on the device. On Ubuntu 20 I had to do this by hand by opening the tty device with:
minicom -o -D /dev/ttyACM0