PTRS_PER_PGD
(PTRS_PER_PGD - USER_PTRS_PER_PGD - 1)*sizeof(pgd_t));
pgd_val(ret[PTRS_PER_PGD-2]) = pgd_val(init[PTRS_PER_PGD-2]);
pgd_val(ret[PTRS_PER_PGD-1])
BUILD_BUG_ON((PTRS_PER_PGD * sizeof(pgd_t)) > PAGE_SIZE);
pgd_t swapper_pg_dir[PTRS_PER_PGD] __aligned(PAGE_SIZE);
#define PGD_SIZE (PTRS_PER_PGD * sizeof(pgd_t))
extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
pg &= ~(PTRS_PER_PGD*sizeof(pgd_t)-1); \
for (i = 0; i < PTRS_PER_PGD; i++, pgd++) {
static pgd_t tmp_pgd_table[PTRS_PER_PGD] __initdata __aligned(PGD_SIZE);
PTRS_PER_PGD * PTRS_PER_PMD * sizeof(pmd_t))
#define SWAPPER_PG_DIR_SIZE (PTRS_PER_PGD * sizeof(pgd_t))
for (pgd = pgd_base; pgd < pgd_base + PTRS_PER_PGD; pgd++) {
#define _pgd_alloc(mm) kmalloc_objs(pgd_t, PTRS_PER_PGD, GFP_KERNEL | __GFP_ZERO)
(PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));
clean_dcache_area(new_pgd, PTRS_PER_PGD * sizeof(pgd_t));
#define PGD_SIZE (PTRS_PER_PGD * sizeof(pgd_t))
VM_BUG_ON(((addr >> PGDIR_SHIFT) ^ ((u64)pgdp >> 3)) % PTRS_PER_PGD);
pgd_index(_PAGE_OFFSET(VA_BITS_MIN)) != PTRS_PER_PGD - 1);
(PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));
(unsigned int)(ret + PTRS_PER_PGD));
extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
for ( ; (i < PTRS_PER_PGD) && (vaddr != end); pgd++, i++) {
((PTRS_PER_PGD - USER_PTRS_PER_PGD) * PTRS_PER_PTE)
pgd_t swapper_pg_dir[PTRS_PER_PGD] __page_aligned_bss;
for (i = 0; i < PTRS_PER_PGD; i++)
for (i = USER_PTRS_PER_PGD; i < PTRS_PER_PGD; i++)
memcpy(pgd, swapper_pg_dir, PTRS_PER_PGD*sizeof(pgd_t));
extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; /* located in head.S */
min(PTRS_PER_PGD * PTRS_PER_PUD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE, (1UL << cpu_vabits)) - PMD_SIZE - VMEMMAP_SIZE - KFENCE_AREA_SIZE)
min(PTRS_PER_PGD * PTRS_PER_PUD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE, (1UL << cpu_vabits) / 2) - PMD_SIZE - VMEMMAP_SIZE - KFENCE_AREA_SIZE)
DEFINE(_PTRS_PER_PGD, PTRS_PER_PGD);
static pgd_t kasan_pg_dir[PTRS_PER_PGD] __initdata __aligned(PAGE_SIZE);
(PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));
end = p + PTRS_PER_PGD;
memcpy(new_pgd, swapper_pg_dir, PTRS_PER_PGD * sizeof(pgd_t));
extern pgd_t kernel_pg_dir[PTRS_PER_PGD];
extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
extern pgd_t kernel_pg_dir[PTRS_PER_PGD];
for (i = 0; i < PTRS_PER_PGD; i++) {
for (i = 0; i < PTRS_PER_PGD; i++) {
#define KERNEL_PGD_PTRS (PTRS_PER_PGD-USER_PGD_PTRS)
extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
min(PTRS_PER_PGD * PTRS_PER_PUD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE, \
DEFINE(_PTRS_PER_PGD, PTRS_PER_PGD);
bool safe_to_remove = (i_min == 0 && i_max == PTRS_PER_PGD - 1);
end = p + PTRS_PER_PGD;
for ( ; (i < PTRS_PER_PGD) && (vaddr < end); pgd++, i++) {
pgd_t swapper_pg_dir[PTRS_PER_PGD] __section(".bss..swapper_pg_dir");
end = p + PTRS_PER_PGD;
(PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));
uasm_i_andi(p, scratch, scratch, (PTRS_PER_PGD - 1) << 3);
pwsize = ilog2(PTRS_PER_PGD) << MIPS_PWSIZE_GDW_SHIFT;
uasm_i_andi(p, tmp, tmp, (PTRS_PER_PGD - 1)<<3);
extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
pgd_t swapper_pg_dir[PTRS_PER_PGD] __aligned(PAGE_SIZE);
(PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));
(PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));
extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; /* defined in head.S */
for (i = 0; i < PTRS_PER_PGD; i++)
#define USER_PTRS_PER_PGD PTRS_PER_PGD
pgd_t swapper_pg_dir[PTRS_PER_PGD] __section(".data..vm0.pgd") __attribute__ ((aligned(PAGE_SIZE)));
BUILD_BUG_ON(PT_INITIAL > PTRS_PER_PGD);
#define MAX_PTRS_PER_PGD PTRS_PER_PGD
for (ig = 0; ig < PTRS_PER_PGD; ++ig, ++pgd) {
for (i = 0; i < PTRS_PER_PGD; i++, pgd++) {
ptdump_range[0].end = PAGE_OFFSET + (PGDIR_SIZE * PTRS_PER_PGD);
(PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));
#define TASK_SIZE_64 (PGDIR_SIZE * PTRS_PER_PGD / 2)
#define KERN_VIRT_SIZE ((PTRS_PER_PGD / 2 * PGDIR_SIZE) / 2)
pgd_t swapper_pg_dir[PTRS_PER_PGD] __page_aligned_bss;
pgd_t trampoline_pg_dir[PTRS_PER_PGD] __page_aligned_bss;
pgd_t early_pg_dir[PTRS_PER_PGD] __initdata __aligned(PAGE_SIZE);
static pgd_t tmp_pg_dir[PTRS_PER_PGD] __page_aligned_bss;
memcpy(tmp_pg_dir, swapper_pg_dir, sizeof(pgd_t) * PTRS_PER_PGD);
#define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))
return pgd + ((address >> shift) & (PTRS_PER_PGD - 1));
pgd_t swapper_pg_dir[PTRS_PER_PGD] __section(".bss..swapper_pg_dir");
pgd_t invalid_pg_dir[PTRS_PER_PGD] __section(".bss..invalid_pg_dir");
extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
for ( ; (i < PTRS_PER_PGD) && (vaddr != end); pgd++, i++) {
pgd_t swapper_pg_dir[PTRS_PER_PGD];
(PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));
PTRS_PER_PGD * (1<<PTE_MAGNITUDE),
extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
#define SRMMU_PGD_TABLE_SIZE (PTRS_PER_PGD*4)
(PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));
extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
(PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));
pgd_t swapper_pg_dir[PTRS_PER_PGD];
if (task_size > (unsigned long long) PTRS_PER_PGD * PGDIR_SIZE)
task_size = PTRS_PER_PGD * PGDIR_SIZE;
i = (physaddr >> PGDIR_SHIFT) % PTRS_PER_PGD;
i = (physaddr >> PGDIR_SHIFT) % PTRS_PER_PGD;
pgtable_area_len = sizeof(pgd_t) * PTRS_PER_PGD;
memset(ppd.pgd, 0, sizeof(pgd_t) * PTRS_PER_PGD);
ppd.pgtable_area += sizeof(pgd_t) * PTRS_PER_PGD;
decrypted_base = (pgd_index(workarea_end) + 1) & (PTRS_PER_PGD - 1);
check_base = (pgd_index(initrd_end) + 1) & (PTRS_PER_PGD - 1);
#define KERNEL_PGD_PTRS (PTRS_PER_PGD - KERNEL_PGD_BOUNDARY)
extern pgd_t early_top_pgt[PTRS_PER_PGD];
#define PAGE_TABLE_SIZE(pages) (((pages) / PTRS_PER_PMD) + PTRS_PER_PGD)
#define PAGE_TABLE_SIZE(pages) ((pages) / PTRS_PER_PGD)
memset(early_top_pgt, 0, sizeof(pgd_t)*(PTRS_PER_PGD-1));
{0, PTRS_PER_PGD * PGD_LEVEL_MULT / 2},
for (i = 0; i < PTRS_PER_PGD; i++) {
for ( ; (pgd_idx < PTRS_PER_PGD) && (vaddr != end); pgd_idx++) {
for ( ; (pgd_idx < PTRS_PER_PGD) && (vaddr != end); pgd++, pgd_idx++) {
for (; pgd_idx < PTRS_PER_PGD; pgd++, pgd_idx++) {
#define PREALLOCATED_PMDS PTRS_PER_PGD
base = early_ioremap(olpc_ofw_pgd, sizeof(olpc_ofw_pgd) * PTRS_PER_PGD);
early_iounmap(base, sizeof(olpc_ofw_pgd) * PTRS_PER_PGD);
for (i = 0; i < PTRS_PER_PGD; i++)
for (; pgd_idx < PTRS_PER_PGD; pgd++, pgd_idx++) {
for (i = pgd_index(__PAGE_OFFSET); i < PTRS_PER_PGD; i++)
#define pgd_index(a) (((a) >> PGDIR_SHIFT) & (PTRS_PER_PGD - 1))