diff options
| author | Michal Idziorek <m.i@gmx.at> | 2014-09-02 18:29:28 +0200 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2014-09-02 18:29:28 +0200 |
| commit | 3cf50b41a40f6c2bd824549104015f6d2f6799c0 (patch) | |
| tree | ee281c3a92e52a07da88f75d2a4e96cb8e8adc94 | |
| parent | 779c5755f6ddcc8680a2b4a3fa3606d930309ecc (diff) | |
Stop if MP Floating Pointer not found!
| -rw-r--r-- | kernel/mp.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/kernel/mp.c b/kernel/mp.c index dece903..c8d42c7 100644 --- a/kernel/mp.c +++ b/kernel/mp.c @@ -150,11 +150,11 @@ void show_mp_conf(mp_config *addr) } -void show_mp_fps(mp_fps *addr) +bool show_mp_fps(mp_fps *addr) { - if(addr->length!=1)return; - if(addr->version!=1&&addr->version!=4)return; + if(addr->length!=1)return false; + if(addr->version!=1&&addr->version!=4)return false; char buf[]="XXXX"; uint32_t *buf_addr=buf; @@ -167,6 +167,8 @@ void show_mp_fps(mp_fps *addr) if(addr->features1!=0)panic(FOOLOS_MODULE_NAME,"Intel default config not supported yet!"); show_mp_conf(addr->conf); + + return true; } bool check_mp(uint8_t *addr) @@ -195,7 +197,7 @@ bool init_mp() if(check_mp(addr)) { // log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Found at 0x%04X",addr); - show_mp_fps(addr); + if(show_mp_fps(addr))return true; } addr++; } @@ -206,12 +208,12 @@ bool init_mp() if(check_mp(addr)) { // log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Found at 0x%04X",addr); - show_mp_fps(addr); + if(show_mp_fps(addr))return true; } addr++; } - return true; + return false; } |
