diff options
Diffstat (limited to 'drivers/misc/sgi-xp/xpc_partition.c')
| -rw-r--r-- | drivers/misc/sgi-xp/xpc_partition.c | 47 | 
1 files changed, 20 insertions, 27 deletions
diff --git a/drivers/misc/sgi-xp/xpc_partition.c b/drivers/misc/sgi-xp/xpc_partition.c index 70d4a00c972..f84d6641020 100644 --- a/drivers/misc/sgi-xp/xpc_partition.c +++ b/drivers/misc/sgi-xp/xpc_partition.c @@ -15,15 +15,8 @@   *   */ -#include <linux/kernel.h> -#include <linux/sysctl.h> -#include <linux/cache.h> -#include <linux/mmzone.h> -#include <linux/nodemask.h> -#include <asm/sn/intr.h> -#include <asm/sn/sn_sal.h> -#include <asm/sn/nodepda.h> -#include <asm/sn/addrs.h> +#include <linux/device.h> +#include <linux/hardirq.h>  #include "xpc.h"  /* XPC is exiting flag */ @@ -71,24 +64,23 @@ static u64  xpc_get_rsvd_page_pa(int nasid)  {  	enum xp_retval ret; -	s64 status;  	u64 cookie = 0;  	u64 rp_pa = nasid;	/* seed with nasid */ -	u64 len = 0; +	size_t len = 0;  	u64 buf = buf;  	u64 buf_len = 0;  	void *buf_base = NULL;  	while (1) { -		status = sn_partition_reserved_page_pa(buf, &cookie, &rp_pa, -						       &len); +		ret = xpc_get_partition_rsvd_page_pa(buf, &cookie, &rp_pa, +						     &len); -		dev_dbg(xpc_part, "SAL returned with status=%li, cookie=" -			"0x%016lx, address=0x%016lx, len=0x%016lx\n", -			status, cookie, rp_pa, len); +		dev_dbg(xpc_part, "SAL returned with ret=%d, cookie=0x%016lx, " +			"address=0x%016lx, len=0x%016lx\n", ret, +			(unsigned long)cookie, (unsigned long)rp_pa, len); -		if (status != SALRET_MORE_PASSES) +		if (ret != xpNeedMoreInfo)  			break;  		/* !!! L1_CACHE_ALIGN() is only a sn2-bte_copy requirement */ @@ -100,8 +92,9 @@ xpc_get_rsvd_page_pa(int nasid)  								 &buf_base);  			if (buf_base == NULL) {  				dev_err(xpc_part, "unable to kmalloc " -					"len=0x%016lx\n", buf_len); -				status = SALRET_ERROR; +					"len=0x%016lx\n", +					(unsigned long)buf_len); +				ret = xpNoMemory;  				break;  			}  		} @@ -109,17 +102,17 @@ xpc_get_rsvd_page_pa(int nasid)  		ret = xp_remote_memcpy((void *)buf, (void *)rp_pa, buf_len);  		if (ret != xpSuccess) {  			dev_dbg(xpc_part, "xp_remote_memcpy failed %d\n", ret); -			status = SALRET_ERROR;  			break;  		}  	}  	kfree(buf_base); -	if (status != SALRET_OK) +	if (ret != xpSuccess)  		rp_pa = 0; -	dev_dbg(xpc_part, "reserved page at phys address 0x%016lx\n", rp_pa); +	dev_dbg(xpc_part, "reserved page at phys address 0x%016lx\n", +		(unsigned long)rp_pa);  	return rp_pa;  } @@ -138,7 +131,7 @@ xpc_setup_rsvd_page(void)  	/* get the local reserved page's address */  	preempt_disable(); -	rp_pa = xpc_get_rsvd_page_pa(cpuid_to_nasid(smp_processor_id())); +	rp_pa = xpc_get_rsvd_page_pa(xp_cpu_to_nasid(smp_processor_id()));  	preempt_enable();  	if (rp_pa == 0) {  		dev_err(xpc_part, "SAL failed to locate the reserved page\n"); @@ -150,7 +143,7 @@ xpc_setup_rsvd_page(void)  		/* SAL_versions < 3 had a SAL_partid defined as a u8 */  		rp->SAL_partid &= 0xff;  	} -	BUG_ON(rp->SAL_partid != sn_partition_id); +	BUG_ON(rp->SAL_partid != xp_partition_id);  	if (rp->SAL_partid < 0 || rp->SAL_partid >= xp_max_npartitions) {  		dev_err(xpc_part, "the reserved page's partid of %d is outside " @@ -237,11 +230,11 @@ xpc_get_remote_rp(int nasid, unsigned long *discovered_nasids,  	/* check that both remote and local partids are valid for each side */  	if (remote_rp->SAL_partid < 0 ||  	    remote_rp->SAL_partid >= xp_max_npartitions || -	    remote_rp->max_npartitions <= sn_partition_id) { +	    remote_rp->max_npartitions <= xp_partition_id) {  		return xpInvalidPartid;  	} -	if (remote_rp->SAL_partid == sn_partition_id) +	if (remote_rp->SAL_partid == xp_partition_id)  		return xpLocalPartid;  	return xpSuccess; @@ -426,7 +419,7 @@ xpc_discovery(void)  	 * protection is in regards to memory, IOI and IPI.  	 */  	max_regions = 64; -	region_size = sn_region_size; +	region_size = xp_region_size;  	switch (region_size) {  	case 128:  |