Is get_user_pages portable on ARM64?

0

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?

linux
arm
asked on Stack Overflow Mar 31, 2021 by Steven

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0