Please note: We are aware of an issue affecting replies on the Arm Community forums, which may not be loading as expected.
We apologize for any inconvenience and appreciate your patience while we investigate and work to resolve the issue.
Thank you for your understanding.
Hello,
I have a memory area that is marked reserved in the Linux kernel, and I use that area as a shared buffer. I have registered that region in drivers/char/mem.c file and I do mmap'ed to the user.
On 5.4 kernel, I do a GNU C memset() to that region and all works fine. if I upgrade to 5.10 or 5.15 there is a bus error when accessing byte 3 (byte 0, 1, 2 OK) memset() with count 3 fails. If I avoid to write to areas ( ! i % 3) then memset() works. Something has changed, same story with memcpy()
I try to figure out what may have changed in 5.15 kernel and the memset() fails.
Has anyone seen something similar before?
I have managed to find the cause of the problem - The latest kernels have shuffled the contents of the MAIR register. I had a hard coded page configuration using a wrong index in the MAIR register. It was pointing to other things rather NORMAL memory.