I have a program using get_user_pages
to shared data between kernel and user space, and it works good on x86 (linux 5.4). When I migrate to aarch64(ARM64) aws-ec2, program failed at get_user_pages
. I'm pretty sure that its first argument which I passed is in user space. (00000000fd40166c)
But in kernel message show:
Unable to handle kernel paging request at virtual address ffff800008000006
Mem abort info:
[26850.731473] ESR = 0x96000046
[26850.731869] EC = 0x25: DABT (current EL), IL = 32 bits
[26850.732589] SET = 0, FnV = 0
[26850.733012] EA = 0, S1PTW = 0
[26850.733479] Data abort info:
[26850.733884] ISV = 0, ISS = 0x00000046
[26850.734403] CM = 0, WnR = 1
[26850.734825] swapper pgtable: 4k pages, 48-bit VAs, pgdp=000000004140d000
[26850.735765] [ffff800008000006] pgd=000000007e5ff003, pud=000000007e5fe003, pmd=0000000000000000
[26850.736989] Internal error: Oops: 96000046 [#12] SMP
ffff800008000006 apparently is kernel address, but I didn't pass this address to any function.
I don't have minimal reproduce code for this question. Please give me any idea or possible causing it. Or get_user_pages
is not portable on other platform?
User contributions licensed under CC BY-SA 3.0