Re: [PATCH powerpc] Fix MAX_STACK_TRACE_ENTRIES too low warning for ppc32

2012-12-03 Thread Denis Kirjanov
Could you please provide a more verbose patch description

Thanks.

On 12/3/12, Li Zhong zh...@linux.vnet.ibm.com wrote:
 This patch fixes MAX_STACK_TRACE_ENTRIES too low warning for ppc32,
 which is similar to commit 12660b17.

 Reported-by: Christian Kujau li...@nerdbynature.de
 Signed-off-by: Li Zhong zh...@linux.vnet.ibm.com
 Tested-by: Christian Kujau li...@nerdbynature.de
 ---
  arch/powerpc/kernel/entry_32.S |2 ++
  1 file changed, 2 insertions(+)

 diff --git a/arch/powerpc/kernel/entry_32.S
 b/arch/powerpc/kernel/entry_32.S
 index d22e73e..e514de5 100644
 --- a/arch/powerpc/kernel/entry_32.S
 +++ b/arch/powerpc/kernel/entry_32.S
 @@ -439,6 +439,8 @@ ret_from_fork:
  ret_from_kernel_thread:
   REST_NVGPRS(r1)
   bl  schedule_tail
 + li  r3,0
 + stw r3,0(r1)
   mtlrr14
   mr  r3,r15
   PPC440EP_ERR42
 --
 1.7.9.5

 ___
 Linuxppc-dev mailing list
 Linuxppc-dev@lists.ozlabs.org
 https://lists.ozlabs.org/listinfo/linuxppc-dev



-- 
Regards,
Denis
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 0/9] dma_debug: add debug_dma_mapping_error support to architectures that support DMA_DEBUG_API

2012-12-03 Thread Marek Szyprowski


On 12/2/2012 3:06 PM, Joerg Roedel wrote:

Hi Marek,
  
On Mon, Nov 26, 2012 at 11:57:19AM +0100, Marek Szyprowski wrote:


 I've took all the patches to the next-dma-debug branch in my tree, I sorry
 that You have to wait so long for it. My branch is based on Joerg's
 dma-debug branch and I've included it for testing in linux-next branch.

The patches are now two times in next. One version from my tree and one
from yours. Please remove the version from your tree, the patches should
go upstream via my dma-debug branch.


Ok, I've removed them from my dma-mapping-next tree. Please add/cherry-pick
the missing patch for ARM architecture, which I've accidentally already
pushed to mainline some time ago and then reverted. See commit
871ae57adc5ed092 (and 697575896670ba).

Best regards
--
Marek Szyprowski
Samsung Poland RD Center


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH -next] powerpc/85xx: use for_each_compatible_node() macro

2012-12-03 Thread Wei Yongjun
From: Wei Yongjun yongjun_...@trendmicro.com.cn

Use for_each_compatible_node() macro instead of open coding it.

Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn
---
 arch/powerpc/platforms/85xx/mpc85xx_mds.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/arch/powerpc/platforms/85xx/mpc85xx_mds.c 
b/arch/powerpc/platforms/85xx/mpc85xx_mds.c
index bd12588..a7b3621 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_mds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_mds.c
@@ -206,9 +206,7 @@ static void __init mpc85xx_mds_reset_ucc_phys(void)
setbits8(bcsr_regs[7], BCSR7_UCC12_GETHnRST);
clrbits8(bcsr_regs[8], BCSR8_UEM_MARVELL_RST);
 
-   for (np = NULL; (np = of_find_compatible_node(np,
-   network,
-   ucc_geth)) != NULL;) {
+   for_each_compatible_node(np, network, ucc_geth) {
const unsigned int *prop;
int ucc_num;
 

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH v2 1/4] kprobes/powerpc: Do not disable External interrupts during single step

2012-12-03 Thread Suzuki K. Poulose
From: Suzuki K. Poulose suz...@in.ibm.com

External/Decrement exceptions have lower priority than the Debug Exception.
So, we don't have to disable the External interrupts before a single step.
However, on BookE, Critical Input Exception(CE) has higher priority than a
Debug Exception. Hence we mask them.

Signed-off-by:  Suzuki K. Poulose suz...@in.ibm.com
Cc: Sebastian Andrzej Siewior bige...@linutronix.de
Cc: Ananth N Mavinakaynahalli ana...@in.ibm.com
Cc: Kumar Gala ga...@kernel.crashing.org
Cc: linuxppc-...@ozlabs.org
---
 arch/powerpc/kernel/kprobes.c |   10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c
index e88c643..4901b34 100644
--- a/arch/powerpc/kernel/kprobes.c
+++ b/arch/powerpc/kernel/kprobes.c
@@ -104,13 +104,13 @@ void __kprobes arch_remove_kprobe(struct kprobe *p)
 
 static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs 
*regs)
 {
-   /* We turn off async exceptions to ensure that the single step will
-* be for the instruction we have the kprobe on, if we dont its
-* possible we'd get the single step reported for an exception handler
-* like Decrementer or External Interrupt */
-   regs-msr = ~MSR_EE;
regs-msr |= MSR_SINGLESTEP;
 #ifdef CONFIG_PPC_ADV_DEBUG_REGS
+   /* 
+* We turn off Critical Input Exception(CE) to ensure that the single
+* step will be for the instruction we have the probe on; if we don't,
+* it is possible we'd get the single step reported for CE.
+*/
regs-msr = ~MSR_CE;
mtspr(SPRN_DBCR0, mfspr(SPRN_DBCR0) | DBCR0_IC | DBCR0_IDM);
 #ifdef CONFIG_PPC_47x

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH v2 2/4] powerpc: Move the single step enable code to a generic path

2012-12-03 Thread Suzuki K. Poulose
From: Suzuki K. Poulose suz...@in.ibm.com

This patch moves the single step enable code used by kprobe to a generic
routine header so that, it can be re-used by other code, in this case,
uprobes. No functional changes.

Signed-off-by: Suzuki K. Poulose suz...@in.ibm.com
Cc: Ananth N Mavinakaynahalli ana...@in.ibm.com
Cc: Kumar Gala ga...@kernel.crashing.org
Cc: linuxppc-...@ozlabs.org
---
 arch/powerpc/include/asm/probes.h |   25 +
 arch/powerpc/kernel/kprobes.c |   21 +
 2 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/arch/powerpc/include/asm/probes.h 
b/arch/powerpc/include/asm/probes.h
index 5f1e15b..f94a44f 100644
--- a/arch/powerpc/include/asm/probes.h
+++ b/arch/powerpc/include/asm/probes.h
@@ -38,5 +38,30 @@ typedef u32 ppc_opcode_t;
 #define is_trap(instr) (IS_TW(instr) || IS_TWI(instr))
 #endif /* CONFIG_PPC64 */
 
+#ifdef CONFIG_PPC_ADV_DEBUG_REGS
+#define MSR_SINGLESTEP (MSR_DE)
+#else
+#define MSR_SINGLESTEP (MSR_SE)
+#endif
+
+/* Enable single stepping for the current task */
+static inline void enable_single_step(struct pt_regs *regs)
+{
+   regs-msr |= MSR_SINGLESTEP;
+#ifdef CONFIG_PPC_ADV_DEBUG_REGS
+   /* 
+* We turn off Critical Input Exception(CE) to ensure that the single
+* step will be for the instruction we have the probe on; if we don't,
+* it is possible we'd get the single step reported for CE.
+*/
+   regs-msr = ~MSR_CE;
+   mtspr(SPRN_DBCR0, mfspr(SPRN_DBCR0) | DBCR0_IC | DBCR0_IDM);
+#ifdef CONFIG_PPC_47x
+   isync();
+#endif
+#endif
+}
+
+
 #endif /* __KERNEL__ */
 #endif /* _ASM_POWERPC_PROBES_H */
diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c
index 4901b34..92f1be7 100644
--- a/arch/powerpc/kernel/kprobes.c
+++ b/arch/powerpc/kernel/kprobes.c
@@ -36,12 +36,6 @@
 #include asm/sstep.h
 #include asm/uaccess.h
 
-#ifdef CONFIG_PPC_ADV_DEBUG_REGS
-#define MSR_SINGLESTEP (MSR_DE)
-#else
-#define MSR_SINGLESTEP (MSR_SE)
-#endif
-
 DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL;
 DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk);
 
@@ -104,20 +98,7 @@ void __kprobes arch_remove_kprobe(struct kprobe *p)
 
 static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs 
*regs)
 {
-   regs-msr |= MSR_SINGLESTEP;
-#ifdef CONFIG_PPC_ADV_DEBUG_REGS
-   /* 
-* We turn off Critical Input Exception(CE) to ensure that the single
-* step will be for the instruction we have the probe on; if we don't,
-* it is possible we'd get the single step reported for CE.
-*/
-   regs-msr = ~MSR_CE;
-   mtspr(SPRN_DBCR0, mfspr(SPRN_DBCR0) | DBCR0_IC | DBCR0_IDM);
-#ifdef CONFIG_PPC_47x
-   isync();
-#endif
-#endif
-
+   enable_single_step(regs);
/*
 * On powerpc we should single step on the original
 * instruction even if the probed insn is a trap

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] KVM: PPC: Make EPCR a valid field for booke64 and bookehv

2012-12-03 Thread Scott Wood

On 12/01/2012 07:58:25 AM, Alexander Graf wrote:

In BookE, EPCR is defined and valid when either the HV or the 64bit
category are implemented. Reflect this in the field definition.

Today the only KVM target on 64bit is HV enabled, so there is no
change in actual source code, but this keeps the code closer to the
spec and doesn't build up artificial road blocks for a PR KVM
on 64bit.

[snip]

Signed-off-by: Alexander Graf ag...@suse.de
---
 arch/powerpc/include/asm/kvm_host.h |9 +++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/include/asm/kvm_host.h  
b/arch/powerpc/include/asm/kvm_host.h

index 62fbd38..3480526 100644
--- a/arch/powerpc/include/asm/kvm_host.h
+++ b/arch/powerpc/include/asm/kvm_host.h
@@ -405,14 +405,19 @@ struct kvm_vcpu_arch {
 #ifdef CONFIG_KVM_BOOKE_HV
u32 host_mas4;
u32 host_mas6;
-   u32 shadow_epcr;
-   u32 epcr;
u32 shadow_msrp;
u32 eplc;
u32 epsc;
u32 oldpir;
 #endif

+#if defined(CONFIG_BOOKE)
+#if defined(CONFIG_KVM_BOOKE_HV) || defined(CONFIG_64BIT)
+   u32 shadow_epcr;
+   u32 epcr;
+#endif
+#endif


On a PR-mode implementation, why would we be have a shadow_epcr?  It  
would always be set based on the host kernel, just like when running  
any other userspace process.


-Scott
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


RE: [PATCH 3/4 v5] iommu/fsl: Add iommu domain attributes required by fsl PAMU driver.

2012-12-03 Thread Sethi Varun-B16395


 -Original Message-
 From: iommu-boun...@lists.linux-foundation.org [mailto:iommu-
 boun...@lists.linux-foundation.org] On Behalf Of Joerg Roedel
 Sent: Sunday, December 02, 2012 7:33 PM
 To: Sethi Varun-B16395
 Cc: linux-ker...@vger.kernel.org; io...@lists.linux-foundation.org; Wood
 Scott-B07421; linuxppc-dev@lists.ozlabs.org; Tabi Timur-B04825
 Subject: Re: [PATCH 3/4 v5] iommu/fsl: Add iommu domain attributes
 required by fsl PAMU driver.
 
 Hmm, we need to work out a good abstraction for this.
 
 On Tue, Nov 20, 2012 at 07:24:56PM +0530, Varun Sethi wrote:
  Added the following domain attributes required by FSL PAMU driver:
  1. Subwindows field added to the iommu domain geometry attribute.
 
 Are the Subwindows mapped with full size or do you map only parts of the
 subwindows?
 
[Sethi Varun-B16395] It's possible to map a part of the subwindow i.e. size of 
the mapping can be less than the sub window size.

  +* This attribute indicates number of DMA subwindows supported by
  +* the geometry. If there is a single window that maps the entire
  +* geometry, attribute must be set to 1. A value of 0 implies
  +* that this mechanism is not used at all(normal paging is used).
  +* Value other than* 0 or 1 indicates the actual number of
  +* subwindows.
  +*/
 
 This semantic is ugly, how about a feature detection mechanism?
 
[Sethi Varun-B16395] A feature mechanism to query the type of IOMMU?

-Varun

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 3/4 v5] iommu/fsl: Add iommu domain attributes required by fsl PAMU driver.

2012-12-03 Thread Scott Wood

On 12/03/2012 10:57:29 AM, Sethi Varun-B16395 wrote:



 -Original Message-
 From: iommu-boun...@lists.linux-foundation.org [mailto:iommu-
 boun...@lists.linux-foundation.org] On Behalf Of Joerg Roedel
 Sent: Sunday, December 02, 2012 7:33 PM
 To: Sethi Varun-B16395
 Cc: linux-ker...@vger.kernel.org; io...@lists.linux-foundation.org;  
Wood

 Scott-B07421; linuxppc-dev@lists.ozlabs.org; Tabi Timur-B04825
 Subject: Re: [PATCH 3/4 v5] iommu/fsl: Add iommu domain attributes
 required by fsl PAMU driver.

 Hmm, we need to work out a good abstraction for this.

 On Tue, Nov 20, 2012 at 07:24:56PM +0530, Varun Sethi wrote:
  Added the following domain attributes required by FSL PAMU driver:
  1. Subwindows field added to the iommu domain geometry attribute.

 Are the Subwindows mapped with full size or do you map only parts  
of the

 subwindows?

[Sethi Varun-B16395] It's possible to map a part of the subwindow  
i.e. size of the mapping can be less than the sub window size.


  +	 * This attribute indicates number of DMA subwindows supported  
by
  +	 * the geometry. If there is a single window that maps the  
entire
  +	 * geometry, attribute must be set to 1. A value of 0  
implies
  +	 * that this mechanism is not used at all(normal paging is  
used).

  +  * Value other than* 0 or 1 indicates the actual number of
  +  * subwindows.
  +  */

 This semantic is ugly, how about a feature detection mechanism?

[Sethi Varun-B16395] A feature mechanism to query the type of IOMMU?


A feature mechanism to determine whether this subwindow mechanism is  
available, and what the limits are.


-Scott
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 3/4 v5] iommu/fsl: Add iommu domain attributes required by fsl PAMU driver.

2012-12-03 Thread Joerg Roedel
On Mon, Dec 03, 2012 at 04:57:29PM +, Sethi Varun-B16395 wrote:
 
 
  -Original Message-
  From: iommu-boun...@lists.linux-foundation.org [mailto:iommu-
  boun...@lists.linux-foundation.org] On Behalf Of Joerg Roedel
  Sent: Sunday, December 02, 2012 7:33 PM
  To: Sethi Varun-B16395
  Cc: linux-ker...@vger.kernel.org; io...@lists.linux-foundation.org; Wood
  Scott-B07421; linuxppc-dev@lists.ozlabs.org; Tabi Timur-B04825
  Subject: Re: [PATCH 3/4 v5] iommu/fsl: Add iommu domain attributes
  required by fsl PAMU driver.
  
  Hmm, we need to work out a good abstraction for this.
  
  On Tue, Nov 20, 2012 at 07:24:56PM +0530, Varun Sethi wrote:
   Added the following domain attributes required by FSL PAMU driver:
   1. Subwindows field added to the iommu domain geometry attribute.
  
  Are the Subwindows mapped with full size or do you map only parts of the
  subwindows?
  
 [Sethi Varun-B16395] It's possible to map a part of the subwindow i.e.
 size of the mapping can be less than the sub window size.

Yes, I know that this is possible. But do you plan to support that or is
it sufficient when the whole subwindow is mapped?


Joerg


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/2] vfio powerpc: enabled on powernv platform

2012-12-03 Thread Alex Williamson
On Mon, 2012-12-03 at 13:52 +1100, Alexey Kardashevskiy wrote:
 This patch initializes IOMMU groups based on the IOMMU
 configuration discovered during the PCI scan on POWERNV
 (POWER non virtualized) platform. The IOMMU groups are
 to be used later by VFIO driver (PCI pass through).
 
 It also implements an API for mapping/unmapping pages for
 guest PCI drivers and providing DMA window properties.
 This API is going to be used later by QEMU-VFIO to handle
 h_put_tce hypercalls from the KVM guest.
 
 Although this driver has been tested only on the POWERNV
 platform, it should work on any platform which supports
 TCE tables.
 
 To enable VFIO on POWER, enable SPAPR_TCE_IOMMU config
 option and configure VFIO as required.
 
 Cc: David Gibson da...@gibson.dropbear.id.au
 Signed-off-by: Alexey Kardashevskiy a...@ozlabs.ru
 ---
  arch/powerpc/include/asm/iommu.h |9 ++
  arch/powerpc/kernel/iommu.c  |  186 
 ++
  arch/powerpc/platforms/powernv/pci.c |  135 
  drivers/iommu/Kconfig|8 ++
  4 files changed, 338 insertions(+)
 
 diff --git a/arch/powerpc/include/asm/iommu.h 
 b/arch/powerpc/include/asm/iommu.h
 index cbfe678..5c7087a 100644
 --- a/arch/powerpc/include/asm/iommu.h
 +++ b/arch/powerpc/include/asm/iommu.h
 @@ -76,6 +76,9 @@ struct iommu_table {
   struct iommu_pool large_pool;
   struct iommu_pool pools[IOMMU_NR_POOLS];
   unsigned long *it_map;   /* A simple allocation bitmap for now */
 +#ifdef CONFIG_IOMMU_API
 + struct iommu_group *it_group;
 +#endif
  };
  
  struct scatterlist;
 @@ -147,5 +150,11 @@ static inline void iommu_restore(void)
  }
  #endif
  
 +extern long iommu_clear_tces(struct iommu_table *tbl, unsigned long entry,
 + unsigned long pages);
 +extern long iommu_put_tces(struct iommu_table *tbl, unsigned long entry,
 + uint64_t tce, enum dma_data_direction direction,
 + unsigned long pages);
 +
  #endif /* __KERNEL__ */
  #endif /* _ASM_IOMMU_H */
 diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c
 index ff5a6ce..2738aa4 100644
 --- a/arch/powerpc/kernel/iommu.c
 +++ b/arch/powerpc/kernel/iommu.c
 @@ -44,6 +44,7 @@
  #include asm/kdump.h
  #include asm/fadump.h
  #include asm/vio.h
 +#include asm/tce.h
  
  #define DBG(...)
  
 @@ -856,3 +857,188 @@ void iommu_free_coherent(struct iommu_table *tbl, 
 size_t size,
   free_pages((unsigned long)vaddr, get_order(size));
   }
  }
 +
 +#ifdef CONFIG_IOMMU_API
 +/*
 + * SPAPR TCE API
 + */
 +
 +/*
 + * Returns the number of used IOMMU pages (4K) within
 + * the same system page (4K or 64K).
 + * bitmap_weight is not used as it does not support bigendian maps.
 + */
 +static int syspage_weight(unsigned long *map, unsigned long entry)
 +{
 + int ret = 0, nbits = PAGE_SIZE/IOMMU_PAGE_SIZE;
 +
 + /* Aligns TCE entry number to system page boundary */
 + entry = PAGE_MASK  IOMMU_PAGE_SHIFT;
 +
 + /* Count used 4K pages */
 + while (nbits--)
 + ret += (test_bit(entry++, map) == 0) ? 0 : 1;
 +
 + return ret;
 +}
 +
 +static void tce_flush(struct iommu_table *tbl)
 +{
 + /* Flush/invalidate TLB caches if necessary */
 + if (ppc_md.tce_flush)
 + ppc_md.tce_flush(tbl);
 +
 + /* Make sure updates are seen by hardware */
 + mb();
 +}
 +
 +/*
 + * iommu_clear_tces clears tces and returned the number of system pages
 + * which it called put_page() on
 + */
 +static long clear_tces_nolock(struct iommu_table *tbl, unsigned long entry,
 + unsigned long pages)
 +{
 + int i, retpages = 0;
 + unsigned long oldtce, oldweight;
 + struct page *page;
 +
 + for (i = 0; i  pages; ++i) {
 + oldtce = ppc_md.tce_get(tbl, entry + i);
 + ppc_md.tce_free(tbl, entry + i, 1);
 +
 + oldweight = syspage_weight(tbl-it_map, entry);
 + __clear_bit(entry - tbl-it_offset, tbl-it_map);
 +
 + if (!(oldtce  (TCE_PCI_WRITE | TCE_PCI_READ)))
 + continue;

Could this happen earlier, above syspage_weight() and __clear_bit()?

 +
 + page = pfn_to_page(oldtce  PAGE_SHIFT);
 +
 + WARN_ON(!page);
 + if (!page)
 + continue;
 +
 + if (oldtce  TCE_PCI_WRITE)
 + SetPageDirty(page);
 +
 + put_page(page);
 +
 + /* That was the last IOMMU page within the system page */
 + if ((oldweight == 1)  !syspage_weight(tbl-it_map, entry))
 + ++retpages;

If you used __test_and_clear_bit() above I think you could avoid this
2nd call to syspage_weight.  A minor optimization though.

 + }
 +
 + return retpages;
 +}
 +
 +/*
 + * iommu_clear_tces clears tces and returned the number
 + / of released system pages
 + */

Something bad happened to your comments here.

 +long iommu_clear_tces(struct iommu_table *tbl, 

Re: [PATCH 3/4 v5] iommu/fsl: Add iommu domain attributes required by fsl PAMU driver.

2012-12-03 Thread Scott Wood

On 12/03/2012 11:27:12 AM, Joerg Roedel wrote:

On Mon, Dec 03, 2012 at 04:57:29PM +, Sethi Varun-B16395 wrote:


  -Original Message-
  From: iommu-boun...@lists.linux-foundation.org [mailto:iommu-
  boun...@lists.linux-foundation.org] On Behalf Of Joerg Roedel
  Sent: Sunday, December 02, 2012 7:33 PM
  To: Sethi Varun-B16395
  Cc: linux-ker...@vger.kernel.org;  
io...@lists.linux-foundation.org; Wood

  Scott-B07421; linuxppc-dev@lists.ozlabs.org; Tabi Timur-B04825
  Subject: Re: [PATCH 3/4 v5] iommu/fsl: Add iommu domain attributes
  required by fsl PAMU driver.
 
  Hmm, we need to work out a good abstraction for this.
 
  On Tue, Nov 20, 2012 at 07:24:56PM +0530, Varun Sethi wrote:
   Added the following domain attributes required by FSL PAMU  
driver:
   1. Subwindows field added to the iommu domain geometry  
attribute.

 
  Are the Subwindows mapped with full size or do you map only parts  
of the

  subwindows?
 
 [Sethi Varun-B16395] It's possible to map a part of the subwindow  
i.e.

 size of the mapping can be less than the sub window size.

Yes, I know that this is possible. But do you plan to support that or  
is

it sufficient when the whole subwindow is mapped?


We do plan to support that.

-Scott
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] KVM: PPC: Make EPCR a valid field for booke64 and bookehv

2012-12-03 Thread Alexander Graf

On 03.12.2012, at 17:47, Scott Wood wrote:

 On 12/01/2012 07:58:25 AM, Alexander Graf wrote:
 In BookE, EPCR is defined and valid when either the HV or the 64bit
 category are implemented. Reflect this in the field definition.
 Today the only KVM target on 64bit is HV enabled, so there is no
 change in actual source code, but this keeps the code closer to the
 spec and doesn't build up artificial road blocks for a PR KVM
 on 64bit.
 [snip]
 Signed-off-by: Alexander Graf ag...@suse.de
 ---
 arch/powerpc/include/asm/kvm_host.h |9 +++--
 1 files changed, 7 insertions(+), 2 deletions(-)
 diff --git a/arch/powerpc/include/asm/kvm_host.h 
 b/arch/powerpc/include/asm/kvm_host.h
 index 62fbd38..3480526 100644
 --- a/arch/powerpc/include/asm/kvm_host.h
 +++ b/arch/powerpc/include/asm/kvm_host.h
 @@ -405,14 +405,19 @@ struct kvm_vcpu_arch {
 #ifdef CONFIG_KVM_BOOKE_HV
  u32 host_mas4;
  u32 host_mas6;
 -u32 shadow_epcr;
 -u32 epcr;
  u32 shadow_msrp;
  u32 eplc;
  u32 epsc;
  u32 oldpir;
 #endif
 +#if defined(CONFIG_BOOKE)
 +#if defined(CONFIG_KVM_BOOKE_HV) || defined(CONFIG_64BIT)
 +u32 shadow_epcr;
 +u32 epcr;
 +#endif
 +#endif
 
 On a PR-mode implementation, why would we be have a shadow_epcr?  It would 
 always be set based on the host kernel, just like when running any other 
 userspace process.

Right - we could simply set MSR_CM. I'll move shadow_epcr back into the HV only 
bit above.


Alex

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 2/2] vfio powerpc: implemented IOMMU driver for VFIO

2012-12-03 Thread Alex Williamson
On Mon, 2012-12-03 at 13:52 +1100, Alexey Kardashevskiy wrote:
 VFIO implements platform independent stuff such as
 a PCI driver, BAR access (via read/write on a file descriptor
 or direct mapping when possible) and IRQ signaling.
 
 The platform dependent part includes IOMMU initialization
 and handling. This patch implements an IOMMU driver for VFIO
 which does mapping/unmapping pages for the guest IO and
 provides information about DMA window (required by a POWERPC
 guest).
 
 The counterpart in QEMU is required to support this functionality.
 
 Cc: David Gibson da...@gibson.dropbear.id.au
 Signed-off-by: Alexey Kardashevskiy a...@ozlabs.ru
 ---
  drivers/vfio/Kconfig|6 +
  drivers/vfio/Makefile   |1 +
  drivers/vfio/vfio_iommu_spapr_tce.c |  350 
 +++
  include/linux/vfio.h|   26 +++
  4 files changed, 383 insertions(+)
  create mode 100644 drivers/vfio/vfio_iommu_spapr_tce.c
 
 diff --git a/drivers/vfio/Kconfig b/drivers/vfio/Kconfig
 index 7cd5dec..b464687 100644
 --- a/drivers/vfio/Kconfig
 +++ b/drivers/vfio/Kconfig
 @@ -3,10 +3,16 @@ config VFIO_IOMMU_TYPE1
   depends on VFIO
   default n
  
 +config VFIO_IOMMU_SPAPR_TCE
 + tristate
 + depends on VFIO  SPAPR_TCE_IOMMU
 + default n
 +
  menuconfig VFIO
   tristate VFIO Non-Privileged userspace driver framework
   depends on IOMMU_API
   select VFIO_IOMMU_TYPE1 if X86
 + select VFIO_IOMMU_SPAPR_TCE if PPC_POWERNV
   help
 VFIO provides a framework for secure userspace device drivers.
 See Documentation/vfio.txt for more details.
 diff --git a/drivers/vfio/Makefile b/drivers/vfio/Makefile
 index 2398d4a..72bfabc 100644
 --- a/drivers/vfio/Makefile
 +++ b/drivers/vfio/Makefile
 @@ -1,3 +1,4 @@
  obj-$(CONFIG_VFIO) += vfio.o
  obj-$(CONFIG_VFIO_IOMMU_TYPE1) += vfio_iommu_type1.o
 +obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o
  obj-$(CONFIG_VFIO_PCI) += pci/
 diff --git a/drivers/vfio/vfio_iommu_spapr_tce.c 
 b/drivers/vfio/vfio_iommu_spapr_tce.c
 new file mode 100644
 index 000..806ad9f
 --- /dev/null
 +++ b/drivers/vfio/vfio_iommu_spapr_tce.c
 @@ -0,0 +1,350 @@
 +/*
 + * VFIO: IOMMU DMA mapping support for TCE on POWER
 + *
 + * Copyright (C) 2012 IBM Corp.  All rights reserved.
 + * Author: Alexey Kardashevskiy a...@ozlabs.ru
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License version 2 as
 + * published by the Free Software Foundation.
 + *
 + * Derived from original vfio_iommu_type1.c:
 + * Copyright (C) 2012 Red Hat, Inc.  All rights reserved.
 + * Author: Alex Williamson alex.william...@redhat.com
 + */
 +
 +#include linux/module.h
 +#include linux/pci.h
 +#include linux/slab.h
 +#include linux/uaccess.h
 +#include linux/err.h
 +#include linux/vfio.h
 +#include asm/iommu.h
 +
 +#define DRIVER_VERSION  0.1
 +#define DRIVER_AUTHOR   a...@ozlabs.ru
 +#define DRIVER_DESC VFIO IOMMU SPAPR TCE
 +
 +static void tce_iommu_detach_group(void *iommu_data,
 + struct iommu_group *iommu_group);
 +
 +/*
 + * VFIO IOMMU fd for SPAPR_TCE IOMMU implementation
 + */
 +
 +/*
 + * This code handles mapping and unmapping of user data buffers
 + * into DMA'ble space using the IOMMU
 + */
 +
 +#define NPAGE_TO_SIZE(npage) ((size_t)(npage)  PAGE_SHIFT)
 +
 +struct vwork {
 + struct mm_struct*mm;
 + longnpage;
 + struct work_struct  work;
 +};
 +
 +/* delayed decrement/increment for locked_vm */
 +static void lock_acct_bg(struct work_struct *work)
 +{
 + struct vwork *vwork = container_of(work, struct vwork, work);
 + struct mm_struct *mm;
 +
 + mm = vwork-mm;
 + down_write(mm-mmap_sem);
 + mm-locked_vm += vwork-npage;
 + up_write(mm-mmap_sem);
 + mmput(mm);
 + kfree(vwork);
 +}
 +
 +static void lock_acct(long npage)
 +{
 + struct vwork *vwork;
 + struct mm_struct *mm;
 +
 + if (!current-mm)
 + return; /* process exited */
 +
 + if (down_write_trylock(current-mm-mmap_sem)) {
 + current-mm-locked_vm += npage;
 + up_write(current-mm-mmap_sem);
 + return;
 + }
 +
 + /*
 +  * Couldn't get mmap_sem lock, so must setup to update
 +  * mm-locked_vm later. If locked_vm were atomic, we
 +  * wouldn't need this silliness
 +  */
 + vwork = kmalloc(sizeof(struct vwork), GFP_KERNEL);
 + if (!vwork)
 + return;
 + mm = get_task_mm(current);
 + if (!mm) {
 + kfree(vwork);
 + return;
 + }
 + INIT_WORK(vwork-work, lock_acct_bg);
 + vwork-mm = mm;
 + vwork-npage = npage;
 + schedule_work(vwork-work);
 +}
 +
 +/*
 + * The container descriptor supports only a single group per container.
 + * Required by the API as the container is not supplied with the IOMMU group
 + * at the moment of 

Re: [PATCH 4/4 v6] iommu/fsl: Freescale PAMU driver and IOMMU API implementation.

2012-12-03 Thread Timur Tabi
Varun Sethi wrote:

 + out_be32(pamu_regs-ppbah, ((u64)ppaact_phys)  32);
 + out_be32(pamu_regs-ppbal, ppaact_phys);
 + ppaact_phys = ppaact_phys + PAACT_SIZE;
 + out_be32(pamu_regs-pplah, ((u64)ppaact_phys)  32);
 + out_be32(pamu_regs-pplal, ppaact_phys);

Instead of  ((u64)ppaact_phys)  32, use upper_32_bits() and lower_32_bits().

 +#define PAACE_NUMBER_ENTRIES0xFF

This is going to break with large LIODNs.  Instead of hard-coding the size
of the PPAACT, you need to scan the device tree for the largest LIODN, and
make the array dynamically sized.

-- 
Timur Tabi
Linux kernel developer at Freescale

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: omap2plus_defconfig fails to build

2012-12-03 Thread Stephen Rothwell
Hi all,

On Thu, 29 Nov 2012 11:40:18 +0100 Belisko Marek marek.beli...@gmail.com 
wrote:

 I've update linux-next to next-20121129 and omap2plus_defconfig fails to 
 build:
 arch/arm/mach-omap2/timer.c: In function 'omap_get_timer_dt':
 arch/arm/mach-omap2/timer.c:195: error: implicit declaration of
 function 'prom_add_property'

Caused by commit 9725f4451a9c (ARM: OMAP: Add DT support for timer
driver) from the arm-soc tree interacting with commit 79d1c712958f
(powerpc+of: Rename the drivers/of prom_* functions to of_*) from the
powerpc tree.

I will fix this up in today' linux-next (by changing prom_add_property to
of_add_property).  Someone will need to remember to tell Linus when the
latter of those two commits gets merged.

-- 
Cheers,
Stephen Rothwells...@canb.auug.org.au


pgpjjsbTKgWhh.pgp
Description: PGP signature
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: omap2plus_defconfig fails to build

2012-12-03 Thread Jon Hunter
Hi Stephen,

On 12/03/2012 05:26 PM, Stephen Rothwell wrote:
 Hi all,
 
 On Thu, 29 Nov 2012 11:40:18 +0100 Belisko Marek marek.beli...@gmail.com 
 wrote:

 I've update linux-next to next-20121129 and omap2plus_defconfig fails to 
 build:
 arch/arm/mach-omap2/timer.c: In function 'omap_get_timer_dt':
 arch/arm/mach-omap2/timer.c:195: error: implicit declaration of
 function 'prom_add_property'
 
 Caused by commit 9725f4451a9c (ARM: OMAP: Add DT support for timer
 driver) from the arm-soc tree interacting with commit 79d1c712958f
 (powerpc+of: Rename the drivers/of prom_* functions to of_*) from the
 powerpc tree.
 
 I will fix this up in today' linux-next (by changing prom_add_property to
 of_add_property).  Someone will need to remember to tell Linus when the
 latter of those two commits gets merged.

Just to let you know there is a patch available for this problem [1].

Tony, Olof, Arnd, not sure how you guys wish to handle this one.

Cheers
Jon

[1] http://www.spinics.net/lists/arm-kernel/msg210179.html

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: omap2plus_defconfig fails to build

2012-12-03 Thread Stephen Rothwell
Hi all,

On Mon, 3 Dec 2012 17:38:34 -0600 Jon Hunter jon-hun...@ti.com wrote:

 On 12/03/2012 05:26 PM, Stephen Rothwell wrote:
  
  On Thu, 29 Nov 2012 11:40:18 +0100 Belisko Marek marek.beli...@gmail.com 
  wrote:
 
  I've update linux-next to next-20121129 and omap2plus_defconfig fails to 
  build:
  arch/arm/mach-omap2/timer.c: In function 'omap_get_timer_dt':
  arch/arm/mach-omap2/timer.c:195: error: implicit declaration of
  function 'prom_add_property'
  
  Caused by commit 9725f4451a9c (ARM: OMAP: Add DT support for timer
  driver) from the arm-soc tree interacting with commit 79d1c712958f
  (powerpc+of: Rename the drivers/of prom_* functions to of_*) from the
  powerpc tree.
  
  I will fix this up in today' linux-next (by changing prom_add_property to
  of_add_property).  Someone will need to remember to tell Linus when the
  latter of those two commits gets merged.
 
 Just to let you know there is a patch available for this problem [1].
 
 Tony, Olof, Arnd, not sure how you guys wish to handle this one.

They just really need to send this to Linus along with the pull request,
or Ben does, depending on who gets in first.

 
 Cheers
 Jon
 
 [1] http://www.spinics.net/lists/arm-kernel/msg210179.html

I will apply this to the arm-soc merge in linux-next today.  The error
will only happen the linux-next at the moment.  Thanks for the pointer -
I actually fished it out of patchwork.

-- 
Cheers,
Stephen Rothwells...@canb.auug.org.au


pgpa9sJHOH6Wf.pgp
Description: PGP signature
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

[RFC PATCH] powerpc/kexec: Add kexec hold support for Book3e processors

2012-12-03 Thread Jimi Xenidis

Motivation:
IBM Blue Gene/Q comes with some very strange firmware that I'm trying to get 
out of using in the kernel.  So instead I spin all the threads in the boot 
wrapper (using the firmware) and have them enter the kexec stub, pre-translated 
at the virtual linear address, never touching firmware again.
This works strategy works wonderfully, but I need the following patch in the 
kexec stub.
I believe it should not effect Book3S and Book3E does not appear to be here yet 
so I'd love to get any criticisms up front. 

This patch adds two items:
1) Book3e requires that GPR4 survive the hold process, so we make
   sure that happens.
2) Book3e has no real mode, and the hold code exploits this.  Since
   these processors ares always translated, we arrange for the kexeced
   threads to enter the hold code using the normal kernel linear mapping.

Signed-off-by: Jimi Xenidis ji...@pobox.com
---
 arch/powerpc/kernel/head_64.S |   19 ++-
 1 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S
index 58bddee..1b00e95 100644
--- a/arch/powerpc/kernel/head_64.S
+++ b/arch/powerpc/kernel/head_64.S
@@ -122,6 +122,8 @@ __secondary_hold:
 #endif
/* Grab our physical cpu number */
mr  r24,r3
+   /* stash r4 for book3e */
+   mr  r25,r4
 
/* Tell the master cpu we're here */
/* Relocation is off  we are located at an address less */
@@ -129,16 +131,31 @@ __secondary_hold:
std r24,__secondary_hold_acknowledge-_stext(0)
sync
 
+   li  r26,0
+#ifdef CONFIG_PPC_BOOK3E
+   tovirt(r26,r26)
+#endif
/* All secondary cpus wait here until told to start. */
-100:   ld  r4,__secondary_hold_spinloop-_stext(0)
+100:   ld  r4,__secondary_hold_spinloop-_stext(r26)
cmpdi   0,r4,0
beq 100b
 
 #if defined(CONFIG_SMP) || defined(CONFIG_KEXEC)
+#ifdef CONFIG_PPC_BOOK3E
+   tovirt(r4,r4)
+#endif
ld  r4,0(r4)/* deref function descriptor */
mtctr   r4
mr  r3,r24
+   /*
+* it may be the case that other platforms have r4 right to
+* begin with, this gives us some safety in case it is not
+*/
+#ifdef CONFIG_PPC_BOOK3E
+   mr  r4,r25
+#else
li  r4,0
+#endif
/* Make sure that patched code is visible */
isync
bctr
-- 
1.7.1

freakazoid:bgq 
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH] powerpc: Disable relocation on exceptions whenever PR KVM is active

2012-12-03 Thread Ian Munsie
From: Ian Munsie imun...@au1.ibm.com

For PR KVM we allow userspace to map 0xc000. Because
transitioning from userspace to the guest kernel may use the relocated
exception vectors we have to disable relocation on exceptions whenever
PR KVM is active as we cannot trust that address.

This issue does not apply to HV KVM, since changing from a guest to the
hypervisor will never use the relocated exception vectors.

Currently the hypervisor interface only allows us to toggle relocation
on exceptions on a partition wide scope, so we need to globally disable
relocation on exceptions when the first PR KVM instance is started and
only re-enable them when all PR KVM instances have been destroyed.

It's a bit heavy handed, but until the hypervisor gives us a lightweight
way to toggle relocation on exceptions on a single thread it's only real
option.

Signed-off-by: Ian Munsie imun...@au1.ibm.com
---
 arch/powerpc/include/asm/hvcall.h  |9 +
 arch/powerpc/kvm/book3s_pr.c   |   18 ++
 arch/powerpc/platforms/pseries/setup.c |8 +---
 3 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/include/asm/hvcall.h 
b/arch/powerpc/include/asm/hvcall.h
index 0975e5c..4bc2c3d 100644
--- a/arch/powerpc/include/asm/hvcall.h
+++ b/arch/powerpc/include/asm/hvcall.h
@@ -395,6 +395,15 @@ static inline unsigned long cmo_get_page_size(void)
 {
return CMO_PageSize;
 }
+
+extern long pSeries_enable_reloc_on_exc(void);
+extern long pSeries_disable_reloc_on_exc(void);
+
+#else
+
+#define pSeries_enable_reloc_on_exc()  do {} while (0)
+#define pSeries_disable_reloc_on_exc() do {} while (0)
+
 #endif /* CONFIG_PPC_PSERIES */
 
 #endif /* __ASSEMBLY__ */
diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
index 05c28f5..74e25cd3 100644
--- a/arch/powerpc/kvm/book3s_pr.c
+++ b/arch/powerpc/kvm/book3s_pr.c
@@ -34,6 +34,7 @@
 #include asm/kvm_book3s.h
 #include asm/mmu_context.h
 #include asm/switch_to.h
+#include asm/firmware.h
 #include linux/gfp.h
 #include linux/sched.h
 #include linux/vmalloc.h
@@ -1192,12 +1193,21 @@ void kvmppc_core_commit_memory_region(struct kvm *kvm,
 {
 }
 
+static unsigned int kvm_global_user_count = 0;
+static DEFINE_SPINLOCK(kvm_global_user_count_lock);
+
 int kvmppc_core_init_vm(struct kvm *kvm)
 {
 #ifdef CONFIG_PPC64
INIT_LIST_HEAD(kvm-arch.spapr_tce_tables);
 #endif
 
+   if (firmware_has_feature(FW_FEATURE_SET_MODE)) {
+   spin_lock(kvm_global_user_count_lock);
+   if (++kvm_global_user_count == 1)
+   pSeries_disable_reloc_on_exc();
+   spin_unlock(kvm_global_user_count_lock);
+   }
return 0;
 }
 
@@ -1206,6 +1216,14 @@ void kvmppc_core_destroy_vm(struct kvm *kvm)
 #ifdef CONFIG_PPC64
WARN_ON(!list_empty(kvm-arch.spapr_tce_tables));
 #endif
+
+   if (firmware_has_feature(FW_FEATURE_SET_MODE)) {
+   spin_lock(kvm_global_user_count_lock);
+   BUG_ON(kvm_global_user_count == 0);
+   if (--kvm_global_user_count == 0)
+   pSeries_enable_reloc_on_exc();
+   spin_unlock(kvm_global_user_count_lock);
+   }
 }
 
 static int kvmppc_book3s_init(void)
diff --git a/arch/powerpc/platforms/pseries/setup.c 
b/arch/powerpc/platforms/pseries/setup.c
index ca55882..1890730 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -375,7 +375,7 @@ static void pSeries_idle(void)
  * to ever be a problem in practice we can move this into a kernel thread to
  * finish off the process later in boot.
  */
-static int __init pSeries_enable_reloc_on_exc(void)
+long pSeries_enable_reloc_on_exc(void)
 {
long rc;
unsigned int delay, total_delay = 0;
@@ -397,9 +397,9 @@ static int __init pSeries_enable_reloc_on_exc(void)
mdelay(delay);
}
 }
+EXPORT_SYMBOL(pSeries_enable_reloc_on_exc);
 
-#ifdef CONFIG_KEXEC
-static long pSeries_disable_reloc_on_exc(void)
+long pSeries_disable_reloc_on_exc(void)
 {
long rc;
 
@@ -410,7 +410,9 @@ static long pSeries_disable_reloc_on_exc(void)
mdelay(get_longbusy_msecs(rc));
}
 }
+EXPORT_SYMBOL(pSeries_disable_reloc_on_exc);
 
+#ifdef CONFIG_KEXEC
 static void pSeries_machine_kexec(struct kimage *image)
 {
long rc;
-- 
1.7.10.4

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH -next] TTY: hvsi: use for_each_compatible_node() macro

2012-12-03 Thread Wei Yongjun
From: Wei Yongjun yongjun_...@trendmicro.com.cn

Use for_each_compatible_node() macro instead of open coding it.

Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn
---
 drivers/tty/hvc/hvsi.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/tty/hvc/hvsi.c b/drivers/tty/hvc/hvsi.c
index 5b95b4f..70e0ef7 100644
--- a/drivers/tty/hvc/hvsi.c
+++ b/drivers/tty/hvc/hvsi.c
@@ -1187,9 +1187,7 @@ static int __init hvsi_console_init(void)
hvsi_wait = poll_for_state; /* no irqs yet; must poll */
 
/* search device tree for vty nodes */
-   for (vty = of_find_compatible_node(NULL, serial, hvterm-protocol);
-   vty != NULL;
-   vty = of_find_compatible_node(vty, serial, 
hvterm-protocol)) {
+   for_each_compatible_node(vty, serial, hvterm-protocol) {
struct hvsi_struct *hp;
const uint32_t *vtermno, *irq;
 


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH -next] [POWERPC] celleb: use for_each_compatible_node() macro

2012-12-03 Thread Wei Yongjun
From: Wei Yongjun yongjun_...@trendmicro.com.cn

Use for_each_compatible_node() macro instead of open coding it.

Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn
---
 arch/powerpc/platforms/cell/celleb_scc_sio.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/platforms/cell/celleb_scc_sio.c 
b/arch/powerpc/platforms/cell/celleb_scc_sio.c
index 3a16c5b..75d71a7 100644
--- a/arch/powerpc/platforms/cell/celleb_scc_sio.c
+++ b/arch/powerpc/platforms/cell/celleb_scc_sio.c
@@ -42,14 +42,13 @@ static struct {
 static int __init txx9_serial_init(void)
 {
extern int early_serial_txx9_setup(struct uart_port *port);
-   struct device_node *node = NULL;
+   struct device_node *node;
int i;
struct uart_port req;
struct of_irq irq;
struct resource res;
 
-   while ((node = of_find_compatible_node(node,
-   serial, toshiba,sio-scc)) != NULL) {
+   for_each_compatible_node(node, serial, toshiba,sio-scc) {
for (i = 0; i  ARRAY_SIZE(txx9_scc_tab); i++) {
if (!(txx9_serial_bitmap  (1i)))
continue;


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH powerpc] Fix MAX_STACK_TRACE_ENTRIES too low warning for ppc32

2012-12-03 Thread Li Zhong
On Mon, 2012-12-03 at 11:03 +0300, Denis Kirjanov wrote:
 Could you please provide a more verbose patch description

Sorry about the missing background. You may check

[0] http://lkml.indiana.edu/hypermail/linux/kernel/1211.0/03025.html
http://patchwork.ozlabs.org/patch/193414/
http://patchwork.ozlabs.org/patch/202385/

And as it is very similar to that of commit 12660b17, so I think it's
not needed to repeat that in the change log. 

Thanks, Zhong

 
 Thanks.
 
 On 12/3/12, Li Zhong zh...@linux.vnet.ibm.com wrote:
  This patch fixes MAX_STACK_TRACE_ENTRIES too low warning for ppc32,
  which is similar to commit 12660b17.
 
  Reported-by: Christian Kujau li...@nerdbynature.de
  Signed-off-by: Li Zhong zh...@linux.vnet.ibm.com
  Tested-by: Christian Kujau li...@nerdbynature.de
  ---
   arch/powerpc/kernel/entry_32.S |2 ++
   1 file changed, 2 insertions(+)
 
  diff --git a/arch/powerpc/kernel/entry_32.S
  b/arch/powerpc/kernel/entry_32.S
  index d22e73e..e514de5 100644
  --- a/arch/powerpc/kernel/entry_32.S
  +++ b/arch/powerpc/kernel/entry_32.S
  @@ -439,6 +439,8 @@ ret_from_fork:
   ret_from_kernel_thread:
  REST_NVGPRS(r1)
  bl  schedule_tail
  +   li  r3,0
  +   stw r3,0(r1)
  mtlrr14
  mr  r3,r15
  PPC440EP_ERR42
  --
  1.7.9.5
 
  ___
  Linuxppc-dev mailing list
  Linuxppc-dev@lists.ozlabs.org
  https://lists.ozlabs.org/listinfo/linuxppc-dev
 
 
 


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev