DF-4737 / run.log
=== DF-4737 run (guest) === == buggy loop (verbatim amdpm.c:308/319 `while(count--)` + `if (!count)`) == A clear_on_read=0 polls=10000 error=0x0 NO-TIMEOUT B clear_on_read=10000 polls=10000 error=0x20 TIMEOUT-REPORTED C clear_on_read=5000 polls=5000 error=0x0 NO-TIMEOUT == expectations == A (perpetual busy): SMB_ETIMEOUT SHOULD be set -> MISSING (reported success 0x0) -- BUG B (final-poll done): SMB_ETIMEOUT should NOT be set -> SPURIOUS SMB_ETIMEOUT -- BUG C (midway done): no error expected -> ok A also returned SMB_ENOERR (0x0): callers (amdpm_recvb/readb/readw amdpm.c:419-420/475-476/531-532; amdpm_bread amdpm.c:610-622) return stale HSTDATA/FIFO data as a SUCCESSFUL transfer. == fixed loop (`if (count < 0)`) == A clear_on_read=0 polls=10000 error=0x20 TIMEOUT-REPORTED B clear_on_read=10000 polls=10000 error=0x0 NO-TIMEOUT fixed A reports TIMEOUT: yes ; fixed B reports success: yes bugs demonstrated in buggy loop: 2 exit=0