From 56146a41bd3a13e759fbff557df54db2983a0910 Mon Sep 17 00:00:00 2001 From: hinus Date: Fri, 9 Jul 2021 01:36:45 +0800 Subject: [PATCH] Title: Initialization for static variables. Issue: https://gitee.com/hinus/linux_kernel_011/issues/I3ZTSO Description: Bugfix, initialize static variable 'start_buffer'. --- fs/buffer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/buffer.c b/fs/buffer.c index ceb30e9..3c1a26b 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -7,7 +7,7 @@ extern int end; -struct buffer_head * start_buffer = (struct buffer_head *) &end; +struct buffer_head * start_buffer; struct buffer_head * hash_table[NR_HASH]; static struct buffer_head * free_list; static struct task_struct * buffer_wait = NULL; @@ -160,6 +160,7 @@ struct buffer_head * bread(int dev,int block) { } void buffer_init(long buffer_end) { + start_buffer = (struct buffer_head *) &end; struct buffer_head * h = start_buffer; void * b; int i; @@ -169,6 +170,8 @@ void buffer_init(long buffer_end) { else b = (void *) buffer_end; + printk("buffer start at %x, end at %x\n", h, b); + while ( (b -= BLOCK_SIZE) >= ((void *) (h+1)) ) { h->b_dev = 0; h->b_dirt = 0; -- Gitee