Merge mptable_check() into mptable_probe()
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Mon, 22 Jun 2009 10:24:17 +0000 (18:24 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Mon, 22 Jun 2009 11:39:56 +0000 (19:39 +0800)
sys/platform/pc32/i386/mp_machdep.c

index 600266f..24919fd 100644 (file)
@@ -302,6 +302,7 @@ static void mp_enable(u_int boot_addr);
 static int     mptable_iterate_entries(const mpcth_t,
                    mptable_iter_func, void *);
 static int     mptable_probe(void);
+static int     mptable_search(void);
 static int     mptable_check(vm_paddr_t);
 static int     mptable_search_sig(u_int32_t target, int count);
 static int     mptable_hyperthread_fixup(u_int, int);
@@ -346,11 +347,23 @@ mp_bootaddress(u_int basemem)
 }
 
 
+static int
+mptable_probe(void)
+{
+       int mpfps_paddr;
+
+       mpfps_paddr = mptable_search();
+       if (mptable_check(mpfps_paddr))
+               return 0;
+
+       return mpfps_paddr;
+}
+
 /*
  * Look for an Intel MP spec table (ie, SMP capable hardware).
  */
 static int
-mptable_probe(void)
+mptable_search(void)
 {
        int     x;
        u_int32_t target;
@@ -642,8 +655,6 @@ mp_enable(u_int boot_addr)
                mpfps_paddr = 0;
        } else {
                mpfps_paddr = mptable_probe();
-               if (mptable_check(mpfps_paddr))
-                       mpfps_paddr = 0;
        }
 
        if (mpfps_paddr) {