Sfoglia il codice sorgente

!412 pages的alloc和free中ARCH_PAGE_LIST_SIZE误写为ARCH_ADDRESS_WIDTH_BITS
Merge pull request !412 from jesven/fix-page_alloc

bernard 4 anni fa
parent
commit
0f482e66f5

+ 2 - 2
libcpu/aarch64/common/page.c

@@ -196,7 +196,7 @@ static int _pages_ref_get(struct page *p, uint32_t size_bits)
 static int _pages_free(struct page *p, uint32_t size_bits)
 {
     uint32_t level = size_bits;
-    uint32_t high = ARCH_ADDRESS_WIDTH_BITS - size_bits - 1;
+    uint32_t high = ARCH_PAGE_LIST_SIZE - size_bits - 1;
     struct page *buddy;
 
     RT_ASSERT(p->ref_cnt > 0);
@@ -238,7 +238,7 @@ static struct page *_pages_alloc(uint32_t size_bits)
     else
     {
         uint32_t level;
-        uint32_t high = ARCH_ADDRESS_WIDTH_BITS - size_bits - 1;
+        uint32_t high = ARCH_PAGE_LIST_SIZE - size_bits - 1;
 
         for (level = size_bits + 1; level <= high; level++)
         {

+ 2 - 2
libcpu/arm/cortex-a/page.c

@@ -179,7 +179,7 @@ static void _pages_ref_inc(struct page *p, uint32_t size_bits)
 static int _pages_free(struct page *p, uint32_t size_bits)
 {
     uint32_t level = size_bits;
-    uint32_t high = ARCH_ADDRESS_WIDTH_BITS - size_bits - 1;
+    uint32_t high = ARCH_PAGE_LIST_SIZE - size_bits - 1;
     struct page *buddy;
 
     RT_ASSERT(p->ref_cnt > 0);
@@ -221,7 +221,7 @@ static struct page *_pages_alloc(uint32_t size_bits)
     else
     {
         uint32_t level;
-        uint32_t high = ARCH_ADDRESS_WIDTH_BITS - size_bits - 1;
+        uint32_t high = ARCH_PAGE_LIST_SIZE - size_bits - 1;
 
         for (level = size_bits + 1; level <= high; level++)
         {

+ 2 - 2
libcpu/risc-v/t-head/c906/page.c

@@ -196,7 +196,7 @@ static int _pages_ref_get(struct page *p, uint32_t size_bits)
 static int _pages_free(struct page *p, uint32_t size_bits)
 {
     uint32_t level = size_bits;
-    uint32_t high = ARCH_ADDRESS_WIDTH_BITS - size_bits - 1;
+    uint32_t high = ARCH_PAGE_LIST_SIZE - size_bits - 1;
     struct page *buddy;
 
     RT_ASSERT(p->ref_cnt > 0);
@@ -238,7 +238,7 @@ static struct page *_pages_alloc(uint32_t size_bits)
     else
     {
         uint32_t level;
-        uint32_t high = ARCH_ADDRESS_WIDTH_BITS - size_bits - 1;
+        uint32_t high = ARCH_PAGE_LIST_SIZE - size_bits - 1;
 
         for (level = size_bits + 1; level <= high; level++)
         {

+ 2 - 2
libcpu/risc-v/virt64/page.c

@@ -196,7 +196,7 @@ static int _pages_ref_get(struct page *p, uint32_t size_bits)
 static int _pages_free(struct page *p, uint32_t size_bits)
 {
     uint32_t level = size_bits;
-    uint32_t high = ARCH_ADDRESS_WIDTH_BITS - size_bits - 1;
+    uint32_t high = ARCH_PAGE_LIST_SIZE - size_bits - 1;
     struct page *buddy;
 
     RT_ASSERT(p->ref_cnt > 0);
@@ -238,7 +238,7 @@ static struct page *_pages_alloc(uint32_t size_bits)
     else
     {
         uint32_t level;
-        uint32_t high = ARCH_ADDRESS_WIDTH_BITS - size_bits - 1;
+        uint32_t high = ARCH_PAGE_LIST_SIZE - size_bits - 1;
 
         for (level = size_bits + 1; level <= high; level++)
         {

+ 1 - 1
libcpu/x86/i386/page.c

@@ -292,7 +292,7 @@ static struct page *_pages_alloc(rt_size_t size_bits)
 static int _pages_free(struct page *p,rt_size_t size_bits)
 {
     rt_size_t level = size_bits;
-    rt_size_t high = ADDRESS_WIDTH_BITS - size_bits - 1;
+    rt_size_t high = ARCH_PAGE_LIST_SIZE - size_bits - 1;
     struct page *buddy;
 
     if (p->ref_cnt <= 0)