Marc noticed that a recent ATAPI permissions fix broke NetBSD 7.0's installer ISO.
The problem is that it's meaningless to check for !(cmd->flags & nondata) if the command isn't supported, since all unsupported commands have _no_ flags. Effectively, all commands default to "Transfer Data" in our model until we classify them otherwise. This leads to a problem where we reject a zero byte BCL PIO command that transfers no data, simply because we have no properties for the command at all. Getting an ATA rejection for this command greatly confuses NetBSD. Correct behavior is to reject the command at the SCSI layer for being unsupported. ________________________________________________________________________________ For convenience, this branch is available at: https://github.com/jnsnow/qemu.git branch atapi-bclimit-netbsd https://github.com/jnsnow/qemu/tree/atapi-bclimit-netbsd This version is tagged atapi-bclimit-netbsd-v1: https://github.com/jnsnow/qemu/releases/tag/atapi-bclimit-netbsd-v1 John Snow (2): atapi: add byte_count_limit helper atapi: Prioritize unknown cmd error over BCL error hw/ide/atapi.c | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) -- 2.4.3