Page MenuHomeFreeBSD

boot2 will deadlock if extended keys are used on text input
ClosedPublic

Authored by tsoome on Nov 21 2016, 9:04 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Dec 10, 3:23 PM
Unknown Object (File)
Oct 24 2024, 9:45 PM
Unknown Object (File)
Oct 22 2024, 11:46 PM
Unknown Object (File)
Oct 22 2024, 11:46 PM
Unknown Object (File)
Oct 22 2024, 11:45 PM
Unknown Object (File)
Oct 11 2024, 3:39 AM
Unknown Object (File)
Sep 17 2024, 9:18 AM
Unknown Object (File)
Sep 16 2024, 2:58 PM
Subscribers

Details

Summary

The boot2 family of bootblocks (zfsboot/gptzfsboot) are using separate
implementation if keyboard reading code, which has deadlock case when
extended key (arrows etc) are pressed.

The problem is about avoiding the noise from some systems, generating
false key events with scan code 1 and ascii code 00, so the code
does attempt to filter such cases out. Unfortunately the extended keys
also set ascii 0, and therefore the pressed key event is ignored and
the keypress is never read, resulting in infinite loop.

This update is moving the check to keyhit() function and is allowing
the rest of the code to process the extended keys.

Test Plan

boot2 prompt is not getting locked up.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

tsoome retitled this revision from to boot2 will deadlock if extended keys are used on text input.
tsoome updated this object.
tsoome edited the test plan for this revision. (Show Details)
tsoome added reviewers: allanjude, imp.
bapt edited edge metadata.
This revision is now accepted and ready to land.Dec 18 2016, 10:55 PM
allanjude edited edge metadata.

Approved for commit

This revision was automatically updated to reflect the committed changes.