[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 2/4] mini-os: mm: remove not needed struct chunk_tail_st
The struct chunk_tail_st isn't really used other than writing to it. Remove it in order to simplify the code. Signed-off-by: Juergen Gross <jgross@xxxxxxxx> --- mm.c | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/mm.c b/mm.c index 1dcd954c..2cc49e94 100644 --- a/mm.c +++ b/mm.c @@ -123,7 +123,6 @@ static void map_free(unsigned long first_page, unsigned long nr_pages) /* BINARY BUDDY ALLOCATOR */ typedef struct chunk_head_st chunk_head_t; -typedef struct chunk_tail_st chunk_tail_t; struct chunk_head_st { chunk_head_t *next; @@ -131,10 +130,6 @@ struct chunk_head_st { int level; }; -struct chunk_tail_st { - int level; -}; - /* Linked lists of free chunks of different powers-of-two in size. */ #define FREELIST_SIZE ((sizeof(void *) << 3) - PAGE_SHIFT) static chunk_head_t *free_head[FREELIST_SIZE]; @@ -151,7 +146,6 @@ static void init_page_allocator(unsigned long min, unsigned long max) unsigned long range; unsigned long r_min, r_max; chunk_head_t *ch; - chunk_tail_t *ct; printk("MM: Initialise page allocator for %lx(%lx)-%lx(%lx)\n", (u_long)to_virt(min), min, (u_long)to_virt(max), max); @@ -215,14 +209,12 @@ static void init_page_allocator(unsigned long min, unsigned long max) ch = (chunk_head_t *)r_min; r_min += 1UL << i; range -= 1UL << i; - ct = (chunk_tail_t *)r_min - 1; i -= PAGE_SHIFT; ch->level = i; ch->next = free_head[i]; ch->pprev = &free_head[i]; ch->next->pprev = &ch->next; free_head[i] = ch; - ct->level = i; } } @@ -234,7 +226,6 @@ unsigned long alloc_pages(int order) { int i; chunk_head_t *alloc_ch, *spare_ch; - chunk_tail_t *spare_ct; if ( !chk_free_pages(1UL << order) ) goto no_memory; @@ -261,14 +252,11 @@ unsigned long alloc_pages(int order) i--; spare_ch = (chunk_head_t *)((char *)alloc_ch + (1UL << (i + PAGE_SHIFT))); - spare_ct = (chunk_tail_t *)((char *)spare_ch + - (1UL << (i + PAGE_SHIFT))) - 1; /* Create new header for spare chunk. */ spare_ch->level = i; spare_ch->next = free_head[i]; spare_ch->pprev = &free_head[i]; - spare_ct->level = i; /* Link in the spare chunk. */ spare_ch->next->pprev = &spare_ch->next; @@ -289,7 +277,6 @@ EXPORT_SYMBOL(alloc_pages); void free_pages(void *pointer, int order) { chunk_head_t *freed_ch, *to_merge_ch; - chunk_tail_t *freed_ct; unsigned long mask; /* First free the chunk */ @@ -297,8 +284,6 @@ void free_pages(void *pointer, int order) /* Create free chunk */ freed_ch = (chunk_head_t *)pointer; - freed_ct = (chunk_tail_t *)((char *)pointer + - (1UL << (order + PAGE_SHIFT))) - 1; /* Now, possibly we can conseal chunks together */ while ( order < FREELIST_SIZE ) @@ -320,9 +305,6 @@ void free_pages(void *pointer, int order) if ( allocated_in_map(virt_to_pfn(to_merge_ch)) || to_merge_ch->level != order ) break; - - /* Merge with successor */ - freed_ct = (chunk_tail_t *)((char *)to_merge_ch + mask) - 1; } /* We are committed to merging, unlink the chunk */ @@ -336,8 +318,6 @@ void free_pages(void *pointer, int order) freed_ch->level = order; freed_ch->next = free_head[order]; freed_ch->pprev = &free_head[order]; - freed_ct->level = order; - freed_ch->next->pprev = &freed_ch->next; free_head[order] = freed_ch; -- 2.43.0
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |