We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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.