Hi Emil, On Sun, Mar 21, 2021 at 4:23 PM Emil Lenngren <emil.lenng...@gmail.com> wrote: > > Hi, > > Den mån 22 mars 2021 kl 00:01 skrev Luiz Augusto von Dentz > <luiz.de...@gmail.com>: > > Or we do something like > > https://lore.kernel.org/linux-bluetooth/20201024002251.1389267-1-luiz.de...@gmail.com/, > > that said the reason we didn't applied my patches was that the > > controller would be the one generating invalid data, but it seems you > > are reproducing with vhci controller which is only used for emulating > > a controller and requires root privileges so it is unlikely these > > conditions would happens with hardware itself, in the other hand as > > there seems to be more and more reports using vhci to emulate broken > > events it perhaps more productive to introduce proper checks for all > > events so we don't have to deal with more reports like this in the > > future. > > Keep in mind that when using the H4 uart protocol without any error > correction (as H5 has), it is possible that random bit errors occur on > the wire. I wouldn't like my kernel to crash due to this. Bit errors > happen all the time on RPi 4 for example at the default baud rate if > you just do some heavy stress testing, or use an application that > transfers a lot of data over Bluetooth.
While we can catch some errors like that, and possible avoid crashes, this should be limited to just boundary checks and not actually error correction, that I'm afraid is out of our hands since we can still receive an event that does match the original packet size but meant something else which may break the synchronization of the states between the controller and the host, also perhaps we need to notify this type of error since even if we start discarding the events that can possible cause states to be out of sync and the controller will need to be reset in order to recover. -- Luiz Augusto von Dentz