From a23d0cc404cc4f42bdd6b8205bb51b2f575a7734 Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Wed, 5 Dec 2007 13:49:31 +1100 Subject: [PATCH] --- yaml --- r: 81082 b: refs/heads/master c: f6eb7d7ffef3e2fa40b0161c30486cb87203758d h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/powerpc/platforms/cell/spu_base.c | 6 ++++++ trunk/arch/powerpc/platforms/cell/spufs/lscsa_alloc.c | 2 +- trunk/include/asm-powerpc/spu.h | 1 + 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 1fab5f393e90..c7cda2344494 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4d43466d567a6620f4f6d8576e1bed5d7cf4c28d +refs/heads/master: f6eb7d7ffef3e2fa40b0161c30486cb87203758d diff --git a/trunk/arch/powerpc/platforms/cell/spu_base.c b/trunk/arch/powerpc/platforms/cell/spu_base.c index 8398af6b5c0b..95001cdfaa26 100644 --- a/trunk/arch/powerpc/platforms/cell/spu_base.c +++ b/trunk/arch/powerpc/platforms/cell/spu_base.c @@ -126,6 +126,12 @@ void spu_associate_mm(struct spu *spu, struct mm_struct *mm) } EXPORT_SYMBOL_GPL(spu_associate_mm); +int spu_64k_pages_available(void) +{ + return mmu_psize_defs[MMU_PAGE_64K].shift != 0; +} +EXPORT_SYMBOL_GPL(spu_64k_pages_available); + static int __spu_trap_invalid_dma(struct spu *spu) { pr_debug("%s\n", __FUNCTION__); diff --git a/trunk/arch/powerpc/platforms/cell/spufs/lscsa_alloc.c b/trunk/arch/powerpc/platforms/cell/spufs/lscsa_alloc.c index f4b3c052dabf..d606e575a204 100644 --- a/trunk/arch/powerpc/platforms/cell/spufs/lscsa_alloc.c +++ b/trunk/arch/powerpc/platforms/cell/spufs/lscsa_alloc.c @@ -73,7 +73,7 @@ int spu_alloc_lscsa(struct spu_state *csa) int i, j, n_4k; /* Check availability of 64K pages */ - if (mmu_psize_defs[MMU_PAGE_64K].shift == 0) + if (!spu_64k_pages_available()) goto fail; csa->use_big_pages = 1; diff --git a/trunk/include/asm-powerpc/spu.h b/trunk/include/asm-powerpc/spu.h index 844c7cdd6b84..3308ed4933e0 100644 --- a/trunk/include/asm-powerpc/spu.h +++ b/trunk/include/asm-powerpc/spu.h @@ -214,6 +214,7 @@ static inline void crash_register_spus(struct list_head *list) extern void spu_invalidate_slbs(struct spu *spu); extern void spu_associate_mm(struct spu *spu, struct mm_struct *mm); +int spu_64k_pages_available(void); /* Calls from the memory management to the SPU */ struct mm_struct;