NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/59576: viogpu causes race condition between pckbd_enable and pckbd_set_leds
The following reply was made to PR kern/59576; it has been noted by GNATS.
From: alexandre janon <alex14fr%gmail.com@localhost>
To: gnats-bugs%netbsd.org@localhost,kern-bug-people%netbsd.org@localhost,gnats-admin%netbsd.org@localhost,netbsd-bugs%netbsd.org@localhost,alex14fr%gmail.com@localhost
Cc:
Subject: Re: kern/59576: viogpu causes race condition between pckbd_enable and pckbd_set_leds
Date: Wed, 13 Aug 2025 00:27:27 +0200
From: "Martin Husemann via gnats" <gnats-admin%NetBSD.org@localhost>
Date: Tue, 12 Aug 2025 06:45:02 +0000 (UTC)
On Wed, Aug 06, 2025 at 08:20:00AM +0000, alex14fr%gmail.com@localhost wrote:
>> - pckbd_enable uses pckbport_poll_cmd to send KBC_ENABLE command
>> - pckbcintr fires, causing a call to pckbd_set_leds
>> - pckbd_set_leds sends a KBC_MODEIND keyboard command, waits for
>> acknowledgement but eats the acknowledgement of KBC_ENABLE that
>> should have been read by pckbd_enable/pckbport_poll_cmd
> Wouldn't it be better to make pckbd_set_leds() return immediately if
> sc->sc_enabled is not yet set?
>
> Could you test that?
I tested and it doesn't work (back to "command error" message). pckbcintr()
fires between entry of pckbd_enable and the return from pckbport_poll_cmd,
and calls bus_space_read_1 to read on KBC I/O ports 0x60 and 0x64 and
consume the ack.
Alexandre
Home |
Main Index |
Thread Index |
Old Index