Messages in this thread | | | Date | Wed, 20 Jul 2022 19:17:51 +0300 | From | "Kirill A. Shutemov" <> | Subject | Re: [PATCH v8 4/5] x86/mm: Add noalias variants of set_memory_*crypted() functions |
| |
On Wed, Jul 20, 2022 at 07:56:04AM -0700, Sathyanarayanan Kuppuswamy wrote: > diff --git a/arch/x86/coco/mem.c b/arch/x86/coco/mem.c > new file mode 100644 > index 000000000000..ef76a8accc1e > --- /dev/null > +++ b/arch/x86/coco/mem.c > @@ -0,0 +1,82 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * Confidential Computing Decrypted Memory Allocator > + * > + * Copyright (C) 2022 Intel Corporation, Inc. > + * > + */ > + > +#undef pr_fmt > +#define pr_fmt(fmt) "cc/mem: " fmt > + > +#include <linux/export.h> > +#include <linux/mm.h> > +#include <linux/cc_platform.h> > +#include <linux/set_memory.h> > +#include <linux/platform_device.h> > +#include <linux/dma-mapping.h> > + > +#include <asm/coco.h> > +#include <asm/processor.h> > + > +#define CC_MEM_DRIVER "ccmem" > + > +struct platform_device *mem_pdev;
'static'?
> +dma_addr_t handle;
Hm. How does it work with >1 allocation a time?
> + > +/* Allocate decrypted memory of given size */ > +void *cc_decrypted_alloc(size_t size, gfp_t gfp) > +{ > + if (!mem_pdev) > + return NULL; > + > + return dma_alloc_coherent(&mem_pdev->dev, size, &handle, gfp); > +} > + > +/* Free given decrypted memory */ > +void cc_decrypted_free(void *addr, size_t size) > +{ > + if (!mem_pdev) > + return; > + > + dma_free_coherent(&mem_pdev->dev, size, addr, handle); > +} > +
-- Kirill A. Shutemov
| |