Paul Skirrow
authored
Bug fix: DeviceFS was inadvertently enabling interrupts when generating the Upcall to indicate that new data has arrived in an input buffer. Detail: DeviceFS was using OS_UpCall to generate a UpCall_DeviceRxDataPresent upcall for for the wake up event (when data was inserted into a dormant receive buffer). However, OS_UpCall enables interrupts, contrary to the RISC OS 3 PRM. Since it happened within the hardware modem interrupt handler, this is quite dangerous and can lead to the modem interrupt handler being re-entered, thereby corrupting bytes or putting bytes into the buffer in the wrong order. Admin: SCTransport v0.57 or later is needed if using this version of DeviceFS (since earlier versions relied on this incorrect behaviour in DeviceVS). Unfortunately, Pace fault 2098 still exists after making this change (Chip to Server transactions are very slow in Customer F 8 using a HW modem). Version 0.52. Tagged as 'DeviceFS-0_52'