diff --git a/src/events.c b/src/events.c index d64f601ebd..f4217c2c58 100644 --- a/src/events.c +++ b/src/events.c @@ -79,8 +79,9 @@ hsaKmtCreateEvent( if (events_page == NULL && args.event_page_offset > 0) { events_page = mmap(NULL, KFD_SIGNAL_EVENT_LIMIT * 8, PROT_WRITE | PROT_READ, MAP_SHARED, kfd_fd, args.event_page_offset); - if (events_page == NULL) { + if (events_page == MAP_FAILED) { hsaKmtDestroyEvent(e); + events_page = NULL; return HSAKMT_STATUS_ERROR; } } diff --git a/src/memory.c b/src/memory.c index 202e76de3f..7adc4fb914 100644 --- a/src/memory.c +++ b/src/memory.c @@ -121,7 +121,8 @@ hsaKmtAllocMemory( /* The required size should be page aligned (GDS?) */ page_size = PageSizeFromFlags(MemFlags.ui32.PageSize); - if ((SizeInBytes & (page_size-1)) && !MemFlags.ui32.GDSMemory) + if ((!MemoryAddress) || (!SizeInBytes) || + (SizeInBytes & (page_size-1))) return HSAKMT_STATUS_INVALID_PARAMETER; if (MemFlags.ui32.HostAccess && !MemFlags.ui32.NonPaged && !MemFlags.ui32.Scratch) {