#define VPU_MEM_MAX_ORDER 128\r
#define VPU_MEM_MIN_ALLOC PAGE_SIZE\r
\r
-#define VPU_MEM_DEBUG 0\r
+#define VPU_MEM_DEBUG 1\r
\r
#define VPU_MEM_SPLIT_ALLOC 0\r
#define VPU_MEM_SPLIT_LINK 1\r
#define NODE_REGION_INDEX(p) (p->region.index)\r
#define NODE_REGION_REFC(p) (p->region.ref_count)\r
\r
-#define VPU_MEM_DEBUG_MSGS 0\r
+#define VPU_MEM_DEBUG_MSGS 1\r
#if VPU_MEM_DEBUG_MSGS\r
#define DLOG(fmt,args...) \\r
do { printk(KERN_INFO "[%s:%s:%d] "fmt, __FILE__, __func__, __LINE__, \\r
region_unset(index, pfn_index);\r
region_unset(target, pfn_target);\r
region_set(index, pfn_total);\r
+ } else {\r
+ DLOG("region_merge: merge NEXT_INDEX fail index_avail(%d) = %d IS_FREE = %d\n",\r
+ target, index_avail(target), VPU_MEM_IS_FREE(target));\r
}\r
- target = VPU_MEM_LAST_INDEX(index);\r
+ target = index - 1;\r
if (index_avail(target) && VPU_MEM_IS_FREE(target)) {\r
int pfn_target = VPU_MEM_PFN(target);\r
int pfn_index = VPU_MEM_PFN(index);\r
int pfn_total = pfn_target + pfn_index;\r
+ target = VPU_MEM_LAST_INDEX(index);\r
region_unset(index, pfn_index);\r
region_unset(target, pfn_target);\r
- region_set(index, pfn_total);\r
+ region_set(target, pfn_total);\r
+ } else {\r
+ DLOG("region_merge: merge LAST_INDEX fail index_avail(%d) = %d IS_FREE = %d\n",\r
+ target, index_avail(target), VPU_MEM_IS_FREE(target));\r
}\r
return 0;\r
}\r