[PATCH 2/3] powerpc: Remove SPU struct page's for PS3

Noguchi, Masato Masato.Noguchi at jp.sony.com
Wed Feb 14 12:32:47 EST 2007


I read it carefully and ran testsuite on PS3 platform with it.
It seems pretty good.

Regards,
  >> Masato.Noguchi at jp.sony.com <<

> -----Original Message-----
> From: cbe-oss-dev-bounces+masato.noguchi=jp.sony.com at ozlabs.org
> [mailto:cbe-oss-dev-bounces+masato.noguchi=jp.sony.com at ozlabs.org] On
> Behalf Of Benjamin Herrenschmidt
> Sent: Tuesday, February 13, 2007 9:46 AM
> To: Paul Mackerras
> Cc: linuxppc-dev at ozlabs.org; cbe-oss-dev at ozlabs.org
> Subject: [Cbe-oss-dev] [PATCH 2/3] powerpc: Remove SPU struct page's
for PS3
> 
> Struct page are no longer needed for SPUs, so let's not create them
> on PS3 anymore.
> 
> Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> 
>  arch/powerpc/platforms/ps3/spu.c |   42
> +--------------------------------------
>  1 file changed, 2 insertions(+), 40 deletions(-)
> 
> Index: linux-cell/arch/powerpc/platforms/ps3/spu.c
> ===================================================================
> --- linux-cell.orig/arch/powerpc/platforms/ps3/spu.c	2007-02-13
> 11:34:38.000000000 +1100
> +++ linux-cell/arch/powerpc/platforms/ps3/spu.c	2007-02-13
> 11:37:07.000000000 +1100
> @@ -170,31 +170,6 @@ static int __init construct_spu(struct s
>  	return result;
>  }
> 
> -static int __init add_spu_pages(unsigned long start_addr, unsigned
long size)
> -{
> -	int result;
> -	unsigned long start_pfn;
> -	unsigned long nr_pages;
> -	struct pglist_data *pgdata;
> -	struct zone *zone;
> -
> -	BUG_ON(!mem_init_done);
> -
> -	start_pfn = start_addr >> PAGE_SHIFT;
> -	nr_pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT;
> -
> -	pgdata = NODE_DATA(0);
> -	zone = pgdata->node_zones;
> -
> -	result = __add_pages(zone, start_pfn, nr_pages);
> -
> -	if (result)
> -		pr_debug("%s:%d: __add_pages failed: (%d)\n",
> -			__func__, __LINE__, result);
> -
> -	return result;
> -}
> -
>  static void spu_unmap(struct spu *spu)
>  {
>  	iounmap(spu->priv2);
> @@ -206,19 +181,6 @@ static void spu_unmap(struct spu *spu)
>  static int __init setup_areas(struct spu *spu)
>  {
>  	struct table {char* name; unsigned long addr; unsigned long
size;};
> -	int result;
> -
> -	/* setup pages */
> -
> -	result = add_spu_pages(spu->local_store_phys, LS_SIZE);
> -	if (result)
> -		goto fail_add;
> -
> -	result = add_spu_pages(spu->problem_phys, sizeof(struct
> spu_problem));
> -	if (result)
> -		goto fail_add;
> -
> -	/* ioremap */
> 
>  	spu_pdata(spu)->shadow = __ioremap(
>  		spu_pdata(spu)->shadow_addr, sizeof(struct spe_shadow),
> @@ -260,8 +222,8 @@ static int __init setup_areas(struct spu
> 
>  fail_ioremap:
>  	spu_unmap(spu);
> -fail_add:
> -	return result;
> +
> +	return -ENOMEM;
>  }
> 
>  static int __init setup_interrupts(struct spu *spu)
> _______________________________________________
> cbe-oss-dev mailing list
> cbe-oss-dev at ozlabs.org
> https://ozlabs.org/mailman/listinfo/cbe-oss-dev




More information about the Linuxppc-dev mailing list