Jeffrey Lee
authored
Fix null pointer dereferences. Add protection against DeviceFS xfers being multiply inserted into their pipes xfer queue. Detail: build/Version - Increased version numbers build/c/ehcimodule, build/c/ohcimodule - Fixed null pointer dereferences in debug code build/c/port, build/s/triggercbs - Fix debug code in tsleep() using hardcoded IRQsema ptr. Now requests the right pointer from build/s/triggercbs. build/c/usbmodule - Fix null pointer deferences in debug code and MonitorTX/MonitorRX handlers. Add xfer_busy and delayed_read flags to devstream struct in order to track whether the xfer associated with the stream is busy or not. Previously if the TxWakeUp/RxWakeUp device calls were made on a stream which already had an active xfer, the xfer would end up being inserted in the USB pipes xfer queue twice, creating a circular reference, resulting in (at the least) infinite loops in usbd_dump_queue() when debugging is enabled. Now, in the case of reads, a second read will automatically be issued once the first completes, while in the case of writes, the write request will simply be ignored. This isn't a proper fix for all the shortcomings of the DeviceFS interface, but at least the code is now a little bit safer. Admin: Tested on Raspberry Pi with high processor vectors Version 0.72. Tagged as 'NetBSD-0_72'