-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Fox Snowpatch
committed
Dec 9, 2024
1 parent
1ecdccb
commit 040d11c
Showing
24 changed files
with
472 additions
and
81 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
/* SPDX-License-Identifier: GPL-2.0-only */ | ||
|
||
#include <linux/linkage.h> | ||
#include <linux/const.h> | ||
#include <asm/assembler.h> | ||
#include <asm/page.h> | ||
#include <asm/cpufeature.h> | ||
#include <asm/alternative.h> | ||
#include <asm/asm-extable.h> | ||
#include <asm/asm-uaccess.h> | ||
|
||
/* | ||
* Copy a page from src to dest (both are page aligned) with memory error safe | ||
* | ||
* Parameters: | ||
* x0 - dest | ||
* x1 - src | ||
* Returns: | ||
* x0 - Return 0 if copy success, or -EFAULT if anything goes wrong | ||
* while copying. | ||
*/ | ||
.macro ldp1 reg1, reg2, ptr, val | ||
KERNEL_MEM_ERR(9998f, ldp \reg1, \reg2, [\ptr, \val]) | ||
.endm | ||
|
||
SYM_FUNC_START(__pi_copy_mc_page) | ||
#include "copy_page_template.S" | ||
|
||
mov x0, #0 | ||
ret | ||
|
||
9998: mov x0, #-EFAULT | ||
ret | ||
|
||
SYM_FUNC_END(__pi_copy_mc_page) | ||
SYM_FUNC_ALIAS(copy_mc_page, __pi_copy_mc_page) | ||
EXPORT_SYMBOL(copy_mc_page) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
/* SPDX-License-Identifier: GPL-2.0-only */ | ||
/* | ||
* Copyright (C) 2012 ARM Ltd. | ||
*/ | ||
|
||
/* | ||
* Copy a page from src to dest (both are page aligned) | ||
* | ||
* Parameters: | ||
* x0 - dest | ||
* x1 - src | ||
*/ | ||
|
||
#ifdef CONFIG_AS_HAS_MOPS | ||
.arch_extension mops | ||
alternative_if_not ARM64_HAS_MOPS | ||
b .Lno_mops | ||
alternative_else_nop_endif | ||
|
||
mov x2, #PAGE_SIZE | ||
cpypwn [x0]!, [x1]!, x2! | ||
cpymwn [x0]!, [x1]!, x2! | ||
cpyewn [x0]!, [x1]!, x2! | ||
ret | ||
.Lno_mops: | ||
#endif | ||
ldp1 x2, x3, x1, #0 | ||
ldp1 x4, x5, x1, #16 | ||
ldp1 x6, x7, x1, #32 | ||
ldp1 x8, x9, x1, #48 | ||
ldp1 x10, x11, x1, #64 | ||
ldp1 x12, x13, x1, #80 | ||
ldp1 x14, x15, x1, #96 | ||
ldp1 x16, x17, x1, #112 | ||
|
||
add x0, x0, #256 | ||
add x1, x1, #128 | ||
1: | ||
tst x0, #(PAGE_SIZE - 1) | ||
|
||
stnp x2, x3, [x0, #-256] | ||
ldp1 x2, x3, x1, #0 | ||
stnp x4, x5, [x0, #16 - 256] | ||
ldp1 x4, x5, x1, #16 | ||
stnp x6, x7, [x0, #32 - 256] | ||
ldp1 x6, x7, x1, #32 | ||
stnp x8, x9, [x0, #48 - 256] | ||
ldp1 x8, x9, x1, #48 | ||
stnp x10, x11, [x0, #64 - 256] | ||
ldp1 x10, x11, x1, #64 | ||
stnp x12, x13, [x0, #80 - 256] | ||
ldp1 x12, x13, x1, #80 | ||
stnp x14, x15, [x0, #96 - 256] | ||
ldp1 x14, x15, x1, #96 | ||
stnp x16, x17, [x0, #112 - 256] | ||
ldp1 x16, x17, x1, #112 | ||
|
||
add x0, x0, #128 | ||
add x1, x1, #128 | ||
|
||
b.ne 1b | ||
|
||
stnp x2, x3, [x0, #-256] | ||
stnp x4, x5, [x0, #16 - 256] | ||
stnp x6, x7, [x0, #32 - 256] | ||
stnp x8, x9, [x0, #48 - 256] | ||
stnp x10, x11, [x0, #64 - 256] | ||
stnp x12, x13, [x0, #80 - 256] | ||
stnp x14, x15, [x0, #96 - 256] | ||
stnp x16, x17, [x0, #112 - 256] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.