Issue created by Sebastian Huber: 
https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5767



`BSP_com_inch()` of `bsps/mips/malta/console/printk_support.c` polls
the device in a loop until it reads a character. `BSP_poll_char`
references that function.

The specification of `BSP_poll_char` states the opposite. A
referenced function dequeues the least recently received character of
the device. Where the device holds none, the function returns minus
one at once. The generated documentation of
`cpukit/include/rtems/bspIo.h` carries that sentence.

`ts-validation-io-kernel` calls `getchark()` while the device holds
no character. The loop never ends, so the suite makes no progress on
`mips/malta`. It prints nothing and the runner ends it on a timeout.
A backtrace of the hung system stands in `ns16550_inch_polled()`
below `BSP_com_inch()`.

`mips/jmr3904` sets `BSP_poll_char` to NULL, which the specification
allows, so the suite passes there.

Return the result of the polled read. `ns16550_inch_polled()` already
gives minus one for an empty device.

Found in the repair of the Malta BSP for the test suite. This
description was created with Claude Code assistance.

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5767
You're receiving this email because of your account on gitlab.rtems.org. 
Unsubscribe from this thread: 
https://gitlab.rtems.org/-/namespace/49/sent_notifications/5-dvil6il7jfe77o2ok640jjmef-1d/unsubscribe
 | Manage all notifications: https://gitlab.rtems.org/-/profile/notifications | 
Help: https://gitlab.rtems.org/help


_______________________________________________
bugs mailing list
[email protected]
http://lists.rtems.org/mailman/listinfo/bugs

Reply via email to