This is the third version of my patches fixing bugs in the kernel: patches-20240624.tar.gz (11.7 KB) Most of them are related to MIPI cameras, but there are a few other bugs I found and fixed.
Before these patches, I observed various errors, kernel memory corruption (memory access violations etc), and failure to recover from errors. With these patches, I left a board streaming from multiple cameras overnight with a script that randomly turns off one camera to run the error handling code, and in the morning it was still working.
To avoid any doubt, I am releasing these patches under the terms of the GPL, just like the code they apply to (as required by the GPL), with full support from my employer (and previous employers when I have published earlier versions of these patches). I would appreciate if NVIDIA could merge these fixes so me and other people don’t have to continually rebase them with every new release from NVIDIA.
This is a rebased and slightly updated version of my patches from L4T kernel 35.4.1 patches. The functional changes are:
- One of the fixes only worked correctly on CONFIG_PREEMPT_RT, so I used a different approach
- I added the last patch which fixes a bug with the display driver
My TODO comment in “Avoid using TEMP_CHANNEL_ID for transactions with responses” should be easily addressed by somebody more familiar with the rest of that code.
The dce change may not be desirable if you want to keep it in a workqueue instead of a separate thread, but there are still race conditions that need to be fixed. They can be solved using the workqueue function return values, same as I did for the kthread version.