mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-04-13 09:59:31 +00:00

Move gmap_shadow_pgt_lookup() from mm/gmap.c into kvm/gaccess.c . Reviewed-by: Steffen Eiden <seiden@linux.ibm.com> Reviewed-by: Janosch Frank <frankja@linux.ibm.com> Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com> Link: https://lore.kernel.org/r/20250123144627.312456-13-imbrenda@linux.ibm.com Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com> Message-ID: <20250123144627.312456-13-imbrenda@linux.ibm.com>
39 lines
1.3 KiB
C
39 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* KVM guest address space mapping code
|
|
*
|
|
* Copyright IBM Corp. 2007, 2016, 2025
|
|
* Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
|
|
* Claudio Imbrenda <imbrenda@linux.ibm.com>
|
|
*/
|
|
|
|
#ifndef ARCH_KVM_S390_GMAP_H
|
|
#define ARCH_KVM_S390_GMAP_H
|
|
|
|
#define GMAP_SHADOW_FAKE_TABLE 1ULL
|
|
|
|
int gmap_make_secure(struct gmap *gmap, unsigned long gaddr, void *uvcb);
|
|
int gmap_convert_to_secure(struct gmap *gmap, unsigned long gaddr);
|
|
int gmap_destroy_page(struct gmap *gmap, unsigned long gaddr);
|
|
struct gmap *gmap_shadow(struct gmap *parent, unsigned long asce, int edat_level);
|
|
|
|
/**
|
|
* gmap_shadow_valid - check if a shadow guest address space matches the
|
|
* given properties and is still valid
|
|
* @sg: pointer to the shadow guest address space structure
|
|
* @asce: ASCE for which the shadow table is requested
|
|
* @edat_level: edat level to be used for the shadow translation
|
|
*
|
|
* Returns 1 if the gmap shadow is still valid and matches the given
|
|
* properties, the caller can continue using it. Returns 0 otherwise, the
|
|
* caller has to request a new shadow gmap in this case.
|
|
*
|
|
*/
|
|
static inline int gmap_shadow_valid(struct gmap *sg, unsigned long asce, int edat_level)
|
|
{
|
|
if (sg->removed)
|
|
return 0;
|
|
return sg->orig_asce == asce && sg->edat_level == edat_level;
|
|
}
|
|
|
|
#endif
|