Driver/Hardware Interaction Bugs

In addition to the bugs discussed elsewhere on this site, SymDrive found two hardware-specific driver bugs. These bugs involved the driver using the hardware incorrectly. We found them by comparing the hardware operations used by two drivers for equivalent hardware, and noting discrepencies.

We reported one such bug to the FreeBSD developers, who subsequently fixed it, here (three files affected). We found a similar hardware-specific driver bug in the corresponding Linux driver, but other developers fixed it independently before we could report it, here. These two bugs are related only in that they are present in corresponding drivers for the same hardware--they are otherwise distinct.

To find these bugs, we compared execution traces of the two drivers manually.