[#4131] ppp hangs at ioctl(TIOCSETD)
Submitted By: Yi Li
Open Date
2008-05-28 05:56:52 Close Date
2008-06-27 05:19:15
Priority:
Medium Assignee:
Yi Li
Status:
Closed Fixed In Release:
N/A
Found In Release:
N/A Release:
trunk,2008r1
Category:
N/A Board:
EZKIT Lite
Processor:
BF548 Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Fixed
Uboot version or rev.:
Toolchain version or rev.:
08r1-8
App binary format:
N/A
Summary: ppp hangs at ioctl(TIOCSETD)
Details:
I tried to start ppp link over serial port, according to:
docs.blackfin.uclinux.org/doku.php?id=uclinux-dist:ppp.
Kernel configure, pppd configure are the same as the document.
When starting pppd (using telnet, the serial terminal emulator is closed), it hangs. strace shows:
root:/> strace pppd
[snip]
open("/dev/ttyBF0", O_RDWR|O_NONBLOCK) = 7
fcntl(7, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK)
fcntl(7, F_SETFL, O_RDWR) = 0
ioctl(7, TIOCMBIS, [TIOCM_DTR]) = 0
ioctl(7, SNDCTL_TMR_TIMEBASE or TCGETS, {B57600 opost -isig -icanon -echo ...}) = 0
ioctl(7, SNDCTL_TMR_CONTINUE or TCSETSF, {B115200 -opost -isig -icanon -echo ...}) = 0
fcntl(6, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=544, len=1}) = 0
fcntl(6, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=1092, len=1}) = 0
fcntl(6, F_SETLK, {type=F_UNLCK, whence=SEEK_SET, start=1092, len=1}) = 0
fcntl(6, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=164, len=1}) = 0
fcntl(6, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=164, len=1}) = 0
fcntl(6, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=164, len=1}) = 0
fcntl(6, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=164, len=1}) = 0
fcntl(6, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=544, len=1}) = 0
ioctl(7, TIOCEXCL, 0) = 0
ioctl(7, TIOCSETD
[hangs here]
I am not sure this is configuration issue or ppp problem.
Follow-ups
--- Yi Li 2008-06-27 06:19:18
This is not a bug.
We need to disable blackfin serial console when using PPP on serial line,
otherwise, pppd will hangs at:
ioctl(TIOCSETD) --> tty_set_ldisc()
--->
if (wait_event_interruptible(tty_ldisc_wait, tty->ldisc.refcount == 0) <
0)
return -ERESTARTSYS;
the serial console uses the line discipline. Simply close the console will not
release the line discipline (a bug?).
If enabled the serial console, I boot uboot with the option:
Kernel command line:
ip=10.99.23.104:10.99.23.118:10.99.23.1:255.255.255.0:BF537:eth0:off
Then telnet to the board when kernel booted (did not open serial console at
all), pppd still hangs.
--- Mike Frysinger 2008-06-28 10:31:06
if you enable the serial console, you need to run pppd in the serial console,
you cant run it from the telnet session
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
No Files Were Found