diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/arm64/kernel/entry.S | 64 | ||||
| -rw-r--r-- | arch/arm64/kernel/signal32.c | 2 | ||||
| -rw-r--r-- | arch/arm64/mm/fault.c | 2 |
3 files changed, 34 insertions, 34 deletions
diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S index fd4fa374e5d2..02e6af117762 100644 --- a/arch/arm64/kernel/entry.S +++ b/arch/arm64/kernel/entry.S | |||
| @@ -269,18 +269,18 @@ ENDPROC(el1_error_invalid) | |||
| 269 | el1_sync: | 269 | el1_sync: |
| 270 | kernel_entry 1 | 270 | kernel_entry 1 |
| 271 | mrs x1, esr_el1 // read the syndrome register | 271 | mrs x1, esr_el1 // read the syndrome register |
| 272 | lsr x24, x1, #ESR_EL1_EC_SHIFT // exception class | 272 | lsr x24, x1, #ESR_ELx_EC_SHIFT // exception class |
| 273 | cmp x24, #ESR_EL1_EC_DABT_EL1 // data abort in EL1 | 273 | cmp x24, #ESR_ELx_EC_DABT_CUR // data abort in EL1 |
| 274 | b.eq el1_da | 274 | b.eq el1_da |
| 275 | cmp x24, #ESR_EL1_EC_SYS64 // configurable trap | 275 | cmp x24, #ESR_ELx_EC_SYS64 // configurable trap |
| 276 | b.eq el1_undef | 276 | b.eq el1_undef |
| 277 | cmp x24, #ESR_EL1_EC_SP_ALIGN // stack alignment exception | 277 | cmp x24, #ESR_ELx_EC_SP_ALIGN // stack alignment exception |
| 278 | b.eq el1_sp_pc | 278 | b.eq el1_sp_pc |
| 279 | cmp x24, #ESR_EL1_EC_PC_ALIGN // pc alignment exception | 279 | cmp x24, #ESR_ELx_EC_PC_ALIGN // pc alignment exception |
| 280 | b.eq el1_sp_pc | 280 | b.eq el1_sp_pc |
| 281 | cmp x24, #ESR_EL1_EC_UNKNOWN // unknown exception in EL1 | 281 | cmp x24, #ESR_ELx_EC_UNKNOWN // unknown exception in EL1 |
| 282 | b.eq el1_undef | 282 | b.eq el1_undef |
| 283 | cmp x24, #ESR_EL1_EC_BREAKPT_EL1 // debug exception in EL1 | 283 | cmp x24, #ESR_ELx_EC_BREAKPT_CUR // debug exception in EL1 |
| 284 | b.ge el1_dbg | 284 | b.ge el1_dbg |
| 285 | b el1_inv | 285 | b el1_inv |
| 286 | el1_da: | 286 | el1_da: |
| @@ -318,7 +318,7 @@ el1_dbg: | |||
| 318 | /* | 318 | /* |
| 319 | * Debug exception handling | 319 | * Debug exception handling |
| 320 | */ | 320 | */ |
| 321 | cmp x24, #ESR_EL1_EC_BRK64 // if BRK64 | 321 | cmp x24, #ESR_ELx_EC_BRK64 // if BRK64 |
| 322 | cinc x24, x24, eq // set bit '0' | 322 | cinc x24, x24, eq // set bit '0' |
| 323 | tbz x24, #0, el1_inv // EL1 only | 323 | tbz x24, #0, el1_inv // EL1 only |
| 324 | mrs x0, far_el1 | 324 | mrs x0, far_el1 |
| @@ -375,26 +375,26 @@ el1_preempt: | |||
| 375 | el0_sync: | 375 | el0_sync: |
| 376 | kernel_entry 0 | 376 | kernel_entry 0 |
| 377 | mrs x25, esr_el1 // read the syndrome register | 377 | mrs x25, esr_el1 // read the syndrome register |
| 378 | lsr x24, x25, #ESR_EL1_EC_SHIFT // exception class | 378 | lsr x24, x25, #ESR_ELx_EC_SHIFT // exception class |
| 379 | cmp x24, #ESR_EL1_EC_SVC64 // SVC in 64-bit state | 379 | cmp x24, #ESR_ELx_EC_SVC64 // SVC in 64-bit state |
| 380 | b.eq el0_svc | 380 | b.eq el0_svc |
| 381 | cmp x24, #ESR_EL1_EC_DABT_EL0 // data abort in EL0 | 381 | cmp x24, #ESR_ELx_EC_DABT_LOW // data abort in EL0 |
| 382 | b.eq el0_da | 382 | b.eq el0_da |
| 383 | cmp x24, #ESR_EL1_EC_IABT_EL0 // instruction abort in EL0 | 383 | cmp x24, #ESR_ELx_EC_IABT_LOW // instruction abort in EL0 |
| 384 | b.eq el0_ia | 384 | b.eq el0_ia |
| 385 | cmp x24, #ESR_EL1_EC_FP_ASIMD // FP/ASIMD access | 385 | cmp x24, #ESR_ELx_EC_FP_ASIMD // FP/ASIMD access |
| 386 | b.eq el0_fpsimd_acc | 386 | b.eq el0_fpsimd_acc |
| 387 | cmp x24, #ESR_EL1_EC_FP_EXC64 // FP/ASIMD exception | 387 | cmp x24, #ESR_ELx_EC_FP_EXC64 // FP/ASIMD exception |
| 388 | b.eq el0_fpsimd_exc | 388 | b.eq el0_fpsimd_exc |
| 389 | cmp x24, #ESR_EL1_EC_SYS64 // configurable trap | 389 | cmp x24, #ESR_ELx_EC_SYS64 // configurable trap |
| 390 | b.eq el0_undef | 390 | b.eq el0_undef |
| 391 | cmp x24, #ESR_EL1_EC_SP_ALIGN // stack alignment exception | 391 | cmp x24, #ESR_ELx_EC_SP_ALIGN // stack alignment exception |
| 392 | b.eq el0_sp_pc | 392 | b.eq el0_sp_pc |
| 393 | cmp x24, #ESR_EL1_EC_PC_ALIGN // pc alignment exception | 393 | cmp x24, #ESR_ELx_EC_PC_ALIGN // pc alignment exception |
| 394 | b.eq el0_sp_pc | 394 | b.eq el0_sp_pc |
| 395 | cmp x24, #ESR_EL1_EC_UNKNOWN // unknown exception in EL0 | 395 | cmp x24, #ESR_ELx_EC_UNKNOWN // unknown exception in EL0 |
| 396 | b.eq el0_undef | 396 | b.eq el0_undef |
| 397 | cmp x24, #ESR_EL1_EC_BREAKPT_EL0 // debug exception in EL0 | 397 | cmp x24, #ESR_ELx_EC_BREAKPT_LOW // debug exception in EL0 |
| 398 | b.ge el0_dbg | 398 | b.ge el0_dbg |
| 399 | b el0_inv | 399 | b el0_inv |
| 400 | 400 | ||
| @@ -403,30 +403,30 @@ el0_sync: | |||
| 403 | el0_sync_compat: | 403 | el0_sync_compat: |
| 404 | kernel_entry 0, 32 | 404 | kernel_entry 0, 32 |
| 405 | mrs x25, esr_el1 // read the syndrome register | 405 | mrs x25, esr_el1 // read the syndrome register |
| 406 | lsr x24, x25, #ESR_EL1_EC_SHIFT // exception class | 406 | lsr x24, x25, #ESR_ELx_EC_SHIFT // exception class |
| 407 | cmp x24, #ESR_EL1_EC_SVC32 // SVC in 32-bit state | 407 | cmp x24, #ESR_ELx_EC_SVC32 // SVC in 32-bit state |
| 408 | b.eq el0_svc_compat | 408 | b.eq el0_svc_compat |
| 409 | cmp x24, #ESR_EL1_EC_DABT_EL0 // data abort in EL0 | 409 | cmp x24, #ESR_ELx_EC_DABT_LOW // data abort in EL0 |
| 410 | b.eq el0_da | 410 | b.eq el0_da |
| 411 | cmp x24, #ESR_EL1_EC_IABT_EL0 // instruction abort in EL0 | 411 | cmp x24, #ESR_ELx_EC_IABT_LOW // instruction abort in EL0 |
| 412 | b.eq el0_ia | 412 | b.eq el0_ia |
| 413 | cmp x24, #ESR_EL1_EC_FP_ASIMD // FP/ASIMD access | 413 | cmp x24, #ESR_ELx_EC_FP_ASIMD // FP/ASIMD access |
| 414 | b.eq el0_fpsimd_acc | 414 | b.eq el0_fpsimd_acc |
| 415 | cmp x24, #ESR_EL1_EC_FP_EXC32 // FP/ASIMD exception | 415 | cmp x24, #ESR_ELx_EC_FP_EXC32 // FP/ASIMD exception |
| 416 | b.eq el0_fpsimd_exc | 416 | b.eq el0_fpsimd_exc |
| 417 | cmp x24, #ESR_EL1_EC_UNKNOWN // unknown exception in EL0 | 417 | cmp x24, #ESR_ELx_EC_UNKNOWN // unknown exception in EL0 |
| 418 | b.eq el0_undef | 418 | b.eq el0_undef |
| 419 | cmp x24, #ESR_EL1_EC_CP15_32 // CP15 MRC/MCR trap | 419 | cmp x24, #ESR_ELx_EC_CP15_32 // CP15 MRC/MCR trap |
| 420 | b.eq el0_undef | 420 | b.eq el0_undef |
| 421 | cmp x24, #ESR_EL1_EC_CP15_64 // CP15 MRRC/MCRR trap | 421 | cmp x24, #ESR_ELx_EC_CP15_64 // CP15 MRRC/MCRR trap |
| 422 | b.eq el0_undef | 422 | b.eq el0_undef |
| 423 | cmp x24, #ESR_EL1_EC_CP14_MR // CP14 MRC/MCR trap | 423 | cmp x24, #ESR_ELx_EC_CP14_MR // CP14 MRC/MCR trap |
| 424 | b.eq el0_undef | 424 | b.eq el0_undef |
| 425 | cmp x24, #ESR_EL1_EC_CP14_LS // CP14 LDC/STC trap | 425 | cmp x24, #ESR_ELx_EC_CP14_LS // CP14 LDC/STC trap |
| 426 | b.eq el0_undef | 426 | b.eq el0_undef |
| 427 | cmp x24, #ESR_EL1_EC_CP14_64 // CP14 MRRC/MCRR trap | 427 | cmp x24, #ESR_ELx_EC_CP14_64 // CP14 MRRC/MCRR trap |
| 428 | b.eq el0_undef | 428 | b.eq el0_undef |
| 429 | cmp x24, #ESR_EL1_EC_BREAKPT_EL0 // debug exception in EL0 | 429 | cmp x24, #ESR_ELx_EC_BREAKPT_LOW // debug exception in EL0 |
| 430 | b.ge el0_dbg | 430 | b.ge el0_dbg |
| 431 | b el0_inv | 431 | b el0_inv |
| 432 | el0_svc_compat: | 432 | el0_svc_compat: |
diff --git a/arch/arm64/kernel/signal32.c b/arch/arm64/kernel/signal32.c index 5a1ba6e80d4e..192d900c058f 100644 --- a/arch/arm64/kernel/signal32.c +++ b/arch/arm64/kernel/signal32.c | |||
| @@ -501,7 +501,7 @@ static int compat_setup_sigframe(struct compat_sigframe __user *sf, | |||
| 501 | 501 | ||
| 502 | __put_user_error((compat_ulong_t)0, &sf->uc.uc_mcontext.trap_no, err); | 502 | __put_user_error((compat_ulong_t)0, &sf->uc.uc_mcontext.trap_no, err); |
| 503 | /* set the compat FSR WnR */ | 503 | /* set the compat FSR WnR */ |
| 504 | __put_user_error(!!(current->thread.fault_code & ESR_EL1_WRITE) << | 504 | __put_user_error(!!(current->thread.fault_code & ESR_ELx_WNR) << |
| 505 | FSR_WRITE_SHIFT, &sf->uc.uc_mcontext.error_code, err); | 505 | FSR_WRITE_SHIFT, &sf->uc.uc_mcontext.error_code, err); |
| 506 | __put_user_error(current->thread.fault_address, &sf->uc.uc_mcontext.fault_address, err); | 506 | __put_user_error(current->thread.fault_address, &sf->uc.uc_mcontext.fault_address, err); |
| 507 | __put_user_error(set->sig[0], &sf->uc.uc_mcontext.oldmask, err); | 507 | __put_user_error(set->sig[0], &sf->uc.uc_mcontext.oldmask, err); |
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c index c11cd27ca8f5..96da13167d4a 100644 --- a/arch/arm64/mm/fault.c +++ b/arch/arm64/mm/fault.c | |||
| @@ -219,7 +219,7 @@ static int __kprobes do_page_fault(unsigned long addr, unsigned int esr, | |||
| 219 | 219 | ||
| 220 | if (esr & ESR_LNX_EXEC) { | 220 | if (esr & ESR_LNX_EXEC) { |
| 221 | vm_flags = VM_EXEC; | 221 | vm_flags = VM_EXEC; |
| 222 | } else if ((esr & ESR_EL1_WRITE) && !(esr & ESR_EL1_CM)) { | 222 | } else if ((esr & ESR_ELx_WNR) && !(esr & ESR_ELx_CM)) { |
| 223 | vm_flags = VM_WRITE; | 223 | vm_flags = VM_WRITE; |
| 224 | mm_flags |= FAULT_FLAG_WRITE; | 224 | mm_flags |= FAULT_FLAG_WRITE; |
| 225 | } | 225 | } |
