[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH] Make sure we only use the first 32 (-8) grant entries for crash kernel
XENBUS only uses grant entries 32 onwards so that the first 32 (minus the 8 reserved entries) are clean for the crash kernel. This patch makes sure that the crash kernel does not go over that limit. Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx> --- src/xencrsh/gnttab.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/xencrsh/gnttab.c b/src/xencrsh/gnttab.c index bbaa519..9d56bb2 100644 --- a/src/xencrsh/gnttab.c +++ b/src/xencrsh/gnttab.c @@ -66,7 +66,9 @@ #define GNTTAB_IS_OUT_OF_RANGE_REFERENCE(_Reference) \ ((_Reference) > GNTTAB_ENTRY_PER_FRAME) -#define GNTTAB_MAX_DESCRIPTOR (GNTTAB_MAXIMUM_FRAME_COUNT * GNTTAB_ENTRY_PER_FRAME) +#define GNTTAB_CRASH_RESERVATION 32 + +#define GNTTAB_ENTRY_COUNT (GNTTAB_CRASH_RESERVATION) typedef struct _GNTTAB_REFERENCE_DESCRIPTOR { ULONG Next; // next free entry @@ -75,19 +77,15 @@ typedef struct _GNTTAB_REFERENCE_DESCRIPTOR { typedef struct _XENBUS_GNTTAB_CONTEXT { grant_entry_v1_t* Entry; // mapped page - GNTTAB_REFERENCE_DESCRIPTOR Descriptor[GNTTAB_MAX_DESCRIPTOR]; // free list + GNTTAB_REFERENCE_DESCRIPTOR Descriptor[GNTTAB_ENTRY_COUNT]; // free list ULONG HeadFreeReference; // head free list ULONG Count; // number in use } XENBUS_GNTTAB_CONTEXT, *PXENBUS_GNTTAB_CONTEXT; static XENBUS_GNTTAB_CONTEXT GnttabContext; -#define MAXIMUM_GRANT_ENTRY_PAGES 1 -// Entry(s), Status(s) -#define MAXIMUM_GRANT_PAGES 1 - __declspec(allocate(".gnttab_section")) -static UCHAR __GnttabSection[(MAXIMUM_GRANT_PAGES + 1) * PAGE_SIZE]; +static UCHAR __GnttabSection[(GNTTAB_MAXIMUM_FRAME_COUNT + 1) * PAGE_SIZE]; extern PHYSICAL_ADDRESS MmGetPhysicalAddress(IN PVOID Buffer); static FORCEINLINE PFN_NUMBER @@ -243,11 +241,11 @@ GnttabInitialize( LogVerbose("grant_entry_v1_t* : %p\n", GnttabContext.Entry); // initialize free list - LogVerbose("adding refrences [%08x - %08x]\n", GNTTAB_RESERVED_ENTRY_COUNT, GNTTAB_ENTRY_PER_FRAME - 1); + LogVerbose("adding refrences [%08x - %08x]\n", GNTTAB_RESERVED_ENTRY_COUNT, GNTTAB_ENTRY_COUNT - 1); GnttabContext.HeadFreeReference = GNTTAB_INVALID_REFERENCE; GnttabContext.Count = 0; - for (Reference = GNTTAB_ENTRY_PER_FRAME - 1; Reference >= GNTTAB_RESERVED_ENTRY_COUNT; --Reference) { + for (Reference = GNTTAB_ENTRY_COUNT - 1; Reference >= GNTTAB_RESERVED_ENTRY_COUNT; --Reference) { PGNTTAB_REFERENCE_DESCRIPTOR Descriptor = &GnttabContext.Descriptor[Reference]; ASSERT(GNTTAB_IS_INVALID_REFERENCE(Descriptor->Next)); -- 2.1.1 _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |