[IA64] workaround tiger ia64_sal_get_physical_id_info hang

This fixes regression introduced in 113134fcbc

Intel Tiger platforms hang when calling SAL_GET_PHYSICAL_ID_INFO
instead of properly returning -1 for unimplemented, so add a
version check.

SGI Altix platforms have an incorrect SAL version hard-coded into
their prom -- they encode 2.9, but actually implement 3.2 -- so
fix it up and allow ia64_sal_get_physical_id_info to keep
working.

Signed-off-by: Alex Chiang <[email protected]>
Acked-by: Russ Anderson <[email protected]>
Signed-off-by: Tony Luck <[email protected]>
This commit is contained in:
Alex Chiang 2008-02-27 18:41:38 -07:00 • committed by Tony Luck
commit 6ed0dc5ba8
2 changed files with 11 additions and 0 deletions

View file

@ -807,6 +807,10 @@ static inline s64
ia64_sal_physical_id_info(u16 *splid)
{
struct ia64_sal_retval isrv;
if (sal_revision < SAL_VERSION_CODE(3,2))
return -1;
SAL_CALL(isrv, SAL_PHYSICAL_ID_INFO, 0, 0, 0, 0, 0, 0, 0);
if (splid)
*splid = isrv.v0;