diff -ruN a/source_sync_rls_25c/source/unisoc/modules/libmemion/src/MemIon.cpp b/source_sync_rls_25c/source/unisoc/modules/libmemion/src/MemIon.cpp --- a/source_sync_rls_25c/source/unisoc/modules/libmemion/src/MemIon.cpp +++ b/source_sync_rls_25c/source/unisoc/modules/libmemion/src/MemIon.cpp @@ -177,7 +177,7 @@ munmap(mBase, mSize); if (mIonDeviceFd > 0) { - if (is_ion_legacy()) { + if (mIonHandle >= 0 && Is_ion_legacy(mIonDeviceFd)) { if (ioctl(mIonDeviceFd, ION_IOC_FREE, &data) < 0) ALOGE("%s: ION_IOC_FREE error: %d (%s)", __func__, -errno, strerror(errno));