Bug 108851 - omap_8250: hang on open without O_NONBLOCK
Summary: omap_8250: hang on open without O_NONBLOCK
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Serial (show other bugs)
Hardware: All Linux
: P1 high
Assignee: Russell King
Depends on:
Reported: 2015-12-03 18:37 UTC by Matwey V. Kornilov
Modified: 2015-12-03 18:37 UTC (History)
0 users

See Also:
Kernel Version: 4.3.0
Tree: Mainline
Regression: No


Description Matwey V. Kornilov 2015-12-03 18:37:56 UTC

When I try to open /dev/ttyS5 with my simple test application (which just opens and closes file) the process hungs inside open in S+ state (but only when the file already had been opened in this boot, so the first open is fine).

Trace is the following:

[ 1351.381696] a.out           S c0afb050     0  1676   1658 0x00000000
[ 1351.387048] [<c0afb050>] (__schedule) from [<c0afb4d0>] (schedule+0x58/0xcc)
[ 1351.392436] [<c0afb4d0>] (schedule) from [<c069369c>] (tty_port_block_til_ready+0x1a8/0x35c)
[ 1351.396937] [<c069369c>] (tty_port_block_til_ready) from [<c06ab220>] (uart_open+0x118/0x158)
[ 1351.402560] [<c06ab220>] (uart_open) from [<c068b768>] (tty_open+0x11c/0x600)
[ 1351.407043] [<c068b768>] (tty_open) from [<c03e1ce4>] (chrdev_open+0xb4/0x188)
[ 1351.412556] [<c03e1ce4>] (chrdev_open) from [<c03db3dc>] (do_dentry_open+0x230/0x330)
[ 1351.417038] [<c03db3dc>] (do_dentry_open) from [<c03dc64c>] (vfs_open+0x64/0x6c)
[ 1351.422470] [<c03dc64c>] (vfs_open) from [<c03eaf5c>] (do_last+0x510/0xd94)
[ 1351.426909] [<c03eaf5c>] (do_last) from [<c03eb86c>] (path_openat+0x8c/0x270)
[ 1351.432398] [<c03eb86c>] (path_openat) from [<c03ecd78>] (do_filp_open+0x70/0xd4)
[ 1351.436815] [<c03ecd78>] (do_filp_open) from [<c03dc9cc>] (do_sys_open+0x120/0x1e4)
[ 1351.442117] [<c03dc9cc>] (do_sys_open) from [<c03dcab8>] (SyS_open+0x28/0x30)
[ 1351.447046] [<c03dcab8>] (SyS_open) from [<c021cd40>] (ret_fast_syscall+0x0/0x34)

When O_NONBLOCK is used at open, there is no such issue.

Note You need to log in before you can comment on or make changes to this bug.