This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

EcosCentric PPP Stack blocking problem


I think have found a problem with the new ecoscentric ppp stack. The
wait_input function sometimes blocks even if a packet is available for
processing in the tty queue. 

If more than one packet is waiting in the serial driver, then one call to
wait_input can place more than one packet on to the tty queue. This will
cause wait_input to exit and enter get_input where only one packet is read
from the queue and processed. After that has finished wait_input is entered
again, and if no data is waiting in the serial driver, it will block until
more data is received or a timeout.

I have attached a patch to make wait_input check if there is data in the
'tty' queue before checking the serial driver. This stops it blocking until
there is no packets available. 

 <<ppp.patch>> 
Mark Retallack
Embedded Software Engineer
Siemens Traffic Controls 
Sopers Lane, Poole, Dorset. BH17 7ER. UK.
Tel: 01202 782844
Fax: 01202 782545
www.siemenstraffic.com

Committed to quality traffic solutions and service excellence





Siemens Traffic Controls is a division of Siemens plc. Registered No.
727817, England. 
Registered office: Siemens House, Oldbury, Bracknell, Berkshire, RG12 8FZ. 

This communication contains information which is confidential and 
may also be privileged. It is for the exclusive use of the addressee. 
If you are not the addressee please note that any distribution, 
reproduction, copying, publication or use of this communication 
or the information in it is prohibited.  If you have received this 
communication in error, please contact us immediately and also 
delete the communication from your computer. 


Attachment: ppp.patch
Description: Binary data

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]