[POWERPC] ps3: multiplatform build fixes
A few code paths need to check whether or not they are running on the PS3's LV1 hypervisor before making hcalls. This introduces a new firmware feature bit for this, FW_FEATURE_PS3_LV1. Now when both PS3 and IBM_CELL_BLADE are enabled, but not PSERIES, FW_FEATURE_PS3_LV1 and FW_FEATURE_LPAR get enabled at compile time, which is a bug. The same problem can also happen for (PPC_ISERIES && !PPC_PSERIES && PPC_SOMETHING_ELSE). In order to solve this, I introduce a new CONFIG_PPC_NATIVE option that is set when at least one platform is selected that can run without a hypervisor and then turns the firmware feature check into a run-time option. The new cell oprofile support that was recently merged does not work on hypervisor based platforms like the PS3, therefore make it depend on PPC_CELL_NATIVE instead of PPC_CELL. This may change if we get oprofile support for PS3. Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
This commit is contained in:

committed by
Paul Mackerras

parent
eb30c72026
commit
e22ba7e381
@@ -22,6 +22,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/memory_hotplug.h>
|
||||
|
||||
#include <asm/firmware.h>
|
||||
#include <asm/lmb.h>
|
||||
#include <asm/udbg.h>
|
||||
#include <asm/ps3.h>
|
||||
@@ -293,6 +294,9 @@ static int __init ps3_mm_add_memory(void)
|
||||
unsigned long start_pfn;
|
||||
unsigned long nr_pages;
|
||||
|
||||
if (!firmware_has_feature(FW_FEATURE_PS3_LV1))
|
||||
return 0;
|
||||
|
||||
BUG_ON(!mem_init_done);
|
||||
|
||||
start_addr = USE_LPAR_ADDR ? map.r1.base : map.rm.size;
|
||||
|
Reference in New Issue
Block a user