cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

pgtable.c (651B)


      1/*
      2 * This file is subject to the terms and conditions of the GNU General Public
      3 * License.  See the file "COPYING" in the main directory of this archive
      4 * for more details.
      5 */
      6#include <linux/export.h>
      7#include <linux/mm.h>
      8#include <linux/string.h>
      9#include <asm/pgalloc.h>
     10
     11pgd_t *pgd_alloc(struct mm_struct *mm)
     12{
     13	pgd_t *ret, *init;
     14
     15	ret = (pgd_t *) __get_free_pages(GFP_KERNEL, PGD_ORDER);
     16	if (ret) {
     17		init = pgd_offset(&init_mm, 0UL);
     18		pgd_init((unsigned long)ret);
     19		memcpy(ret + USER_PTRS_PER_PGD, init + USER_PTRS_PER_PGD,
     20		       (PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));
     21	}
     22
     23	return ret;
     24}
     25EXPORT_SYMBOL_GPL(pgd_alloc);