File: addrxlat-invalid-aarch64-16k

package info (click to toggle)
libkdumpfile 0.5.4-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,800 kB
  • sloc: ansic: 34,639; sh: 3,853; python: 1,490; makefile: 755
file content (39 lines) | stat: -rwxr-xr-x 1,318 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#! /bin/sh

#
# Check invalid VTOP translation for AArch64 with 16k pages.
#

pf="aarch64:14,11,11,11,1"

ptes="-e 0x0000:0x4003"		# PGD[0] -> 4000
ptes="$ptes -e 0x0008:0x20000"	# PGD[1] -> INVALID
ptes="$ptes -e 0x4000:0x8003"	# PGD[0] -> PUD[0] -> 8000
ptes="$ptes -e 0x4008:0x18002"	# PGD[0] -> PUD[1] -> INVALID
ptes="$ptes -e 0x4010:0xb000000001" # PGD[0] -> PUD[2] -> BLOCK (not allowed here)
ptes="$ptes -e 0x8000:0xc003"	# PGD[0] -> PUD[0] -> PMD[0] -> c000
ptes="$ptes -e 0x8008:0x10002"	# PGD[0] -> PUD[0] -> PMD[1] -> INVALID
ptes="$ptes -e 0xc000:0x28792"	# PGD[0] -> PUD[0] -> PMD[0] -> PTE[0] -> INVALID
ptes="$ptes -e 0xc008:0x30791"	# PGD[0] -> PUD[0] -> PMD[0] -> PTE[1] -> RESERVED

list="0x123"			# PGD[0] -> PUD[0] -> PMD[0] -> PTE[0]
list="$list 0x4567"		# PGD[0] -> PUD[0] -> PMD[0] -> PTE[1]
list="$list 0x2123456"		# PGD[0] -> PUD[0] -> PMD[1]
list="$list 0x1000005678"	# PGD[0] -> PUD[1]
list="$list 0x2000006789"	# PGD[0] -> PUD[2]
list="$list 0x80200601089a"	# PGD[1]

( . "$srcdir"/addrxlat-invalid )
totalrc=$?

# Level 1 table has only two entries, so test the 3rd case separately

ptes="-e 0x0000:0x800000000791"	# PGD[0] -> BLOCK (not allowed here)
list="0x789"			# PGD[0]

( . "$srcdir"/addrxlat-invalid )
rc=$?
test $rc -gt 1 && exit $rc
test $rc -eq 0 || totalrc=$rc

exit $totalrc