Bug 58193

Summary: getc operations via RedBoot lock the system
Product: [Retired] eCos Reporter: Jonathan Larmour <jlarmour>
Component: HALAssignee: eCos bugs internal list <es-ecos-bugs-int>
Status: CLOSED WONTFIX QA Contact: eCos bugs internal list <es-ecos-bugs-int>
Severity: medium Docs Contact:
Priority: low    
Version: CVS   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2003-06-20 16:11:02 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jonathan Larmour 2002-01-10 21:33:21 UTC
Description of Problem:

If someone does a getc operation that uses the virtual vectors to call into
redboot, then the system locks up and no other threads run because interrupts
are disabled and the scheduler is locked.

Instead hal_if_diag_read_char() should call a new CYGACC_COMM_IF_GETC_NONBLOCK
operation so that the looping to detect for a character is done with interrupts
enabled at least some of the time. Slower, but at least not stopped.

Comment 1 Jesper Skov 2002-01-11 06:57:41 UTC
I disagree. If you use the polled routines provided by the VV, well, you'll
be polling. If you need an interrupt safe environment, use an IO driver.

Comment 2 Jonathan Larmour 2002-01-11 13:10:22 UTC
I can't disagree with "If you need an interrupt safe environment, use an IO
driver.", but I don't see any harm in changing this behaviour (except arguably
bloat because we can't get rid of the non-block version now it's there).


Comment 3 Alex Schuilenburg 2003-06-20 16:11:02 UTC
This bug has moved to http://bugs.ecos.sourceware.org/show_bug.cgi?id=58193