> I am reluctant to do anything about this. This one does need dealing with. It happens in the real world and the old IDE paths for this do get triggered and used now and then (we know this because bugs in them were found). All it takes is a device and a controller disagreeing about the length of a data transfer to get in a mess. In theory resetting the bus should get you out of this, I'm suprised we didn't get out that way. > All manner of things can go wrong, if the taskfile protocol specified > disagrees with the taskfile contents. True but at the point you are trying to do error recovery and DRQ is wedged on its a good idea to pull remaining data out of the fifo. > At that point you are in undefined territory, since libata will happily > ARM a DMA controller or otherwise program controller registers in > preparation for the requested taskfile protocol. Data corruption, hard > locks, anything could happen at that point. SG_IO and other userspace interfaces can mean we issue a command that ends up causing variants of this kind of confusion. Alan - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html