Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0015d3d68c84eb33e6b380802ad61b23f7eb6523
Commit:     0015d3d68c84eb33e6b380802ad61b23f7eb6523
Parent:     d78d0891d3dd976a2fb707c6c691d9cd5ed60727
Author:     David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Thu Mar 15 00:06:34 2007 -0700
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Thu Apr 26 01:55:23 2007 -0700

    [SPARC64]: Simplify read_obp_memory().
    
    Kick out empty entries as soon as we spot them, and use memmove()
    instead of a silly loop to make the operation more clear.
    
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 arch/sparc64/mm/init.c |   27 +++++++++++----------------
 1 files changed, 11 insertions(+), 16 deletions(-)

diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index f146071..973c4e1 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -122,24 +122,19 @@ static void __init read_obp_memory(const char *property,
                                size = 0UL;
                        base = new_base;
                }
-               regs[i].phys_addr = base;
-               regs[i].reg_size = size;
-       }
-
-       for (i = 0; i < ents; i++) {
-               if (regs[i].reg_size == 0UL) {
-                       int j;
-
-                       for (j = i; j < ents - 1; j++) {
-                               regs[j].phys_addr =
-                                       regs[j+1].phys_addr;
-                               regs[j].reg_size =
-                                       regs[j+1].reg_size;
-                       }
-
-                       ents--;
+               if (size == 0UL) {
+                       /* If it is empty, simply get rid of it.
+                        * This simplifies the logic of the other
+                        * functions that process these arrays.
+                        */
+                       memmove(&regs[i], &regs[i + 1],
+                               (ents - i - 1) * sizeof(regs[0]));
                        i--;
+                       ents--;
+                       continue;
                }
+               regs[i].phys_addr = base;
+               regs[i].reg_size = size;
        }
 
        *num_ents = ents;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to