52xx build error

2010-08-24 Thread Benjamin Herrenschmidt
I get that with my current stuff:

cc1: warnings being treated as errors
In file included from 
/home/benh/linux-powerpc-test/arch/powerpc/platforms/52xx/mpc52xx_common.c:19:
/home/benh/linux-powerpc-test/include/linux/of_gpio.h:74: error: ‘struct 
gpio_chip’ declared inside parameter list
/home/benh/linux-powerpc-test/include/linux/of_gpio.h:74: error: its scope is 
only this definition or declaration, which is probably not what you want
/home/benh/linux-powerpc-test/include/linux/of_gpio.h:75: error: ‘struct 
gpio_chip’ declared inside parameter list
  CC  mm/bootmem.o
make[3]: *** [arch/powerpc/platforms/52xx/mpc52xx_common.o] Error 1
make[3]: *** Waiting for unfinished jobs

Cheers,
Ben.


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

Re: [PATCH] [powerpc] Wire up fanotify_init, fanotify_mark, prlimit64 syscalls

2010-08-24 Thread Benjamin Herrenschmidt
On Mon, 2010-08-23 at 15:52 +0200, Arnd Bergmann wrote:
 On Friday 20 August 2010, Andreas Schwab wrote:
  See arch/powerpc/platforms/cell/spu_callbacks.c.
  
   * 4. They are optional and we can't rely on them being
   *linked into the kernel. Unfortunately, the cond_syscall
   *helper does not work here as it does not add the necessary
   *opd symbols:
 
 Right. I should blame the person that wrote this comment.
 If only I could remember who that was.

Regardless of the outcome of that, I'm merging Andreas patch. We can
always add SPU bindings if we feel like it later.

Cheers,
Ben.


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


[git pull] Please pull powerpc.git merge branch

2010-08-24 Thread Benjamin Herrenschmidt
Hi Linus !

Here's a few powerpc bits  fixes for 2.6.36, some of them for some of
the new stuff that went in, along with the powerpc rwsem update to
atomic_long_t (not yet moved to asm-generic) and wiring up of some new
syscalls.

Cheers,
Ben.

The following changes since commit d1b113bb028999e82a8528e1484be8c23fb5a7d9:
  Linus Torvalds (1):
Merge git://git.kernel.org/.../davem/net-2.6

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git master

Anatolij Gustschin (1):
  powerpc: Fix typo in uImage target

Andreas Schwab (3):
  powerpc: Wire up fanotify_init, fanotify_mark, prlimit64 syscalls
  via-pmu: Add compat_pmu_ioctl
  powerpc: Fix config dependency problem with MPIC_U3_HT_IRQS

Anton Blanchard (4):
  powerpc/mm: Fix vsid_scrample typo
  powerpc/kdump: Stop all other CPUs before running crash handlers
  powerpc: Inline ppc64_runlatch_off
  powerpc: Fix bogus it_blocksize in VIO iommu code

Benjamin Herrenschmidt (2):
  Merge remote branch 'jwb/merge' into merge
  powerpc: Make rwsem use long type

Dave Kleikamp (4):
  powerpc/47x: Make sure mcsr is cleared before enabling machine check 
interrupts
  powerpc/47x: Remove redundant line from cputable.c
  powerpc/4xx: Index interrupt stacks by physical cpu
  powerpc/47x: Add an isync before the tlbivax instruction

Denis Kirjanov (1):
  powerpc: Use is_32bit_task() helper to test 32 bit binary

Grant Likely (1):
  powerpc/pci: Fix checking for child bridges in PCI code.

Julia Lawall (3):
  powerpc/powermac: Drop unnecessary of_node_put
  powerpc/powermac: Drop unnecessary null test
  powerpc/pci: Drop unnecessary null test

Matt Evans (1):
  powerpc: Initialise paca-kstack before early_setup_secondary

Nathan Fontenot (1):
  powerpc: Correct smt_enabled=X boot option for  2 threads per core

Rupjyoti Sarmah (1):
  powerpc/4xx: Device tree update for the 460ex DWC SATA

Signed-off-by: Darren Hart (3):
  powerpc: Re-enable preemption before cpu_die()
  powerpc: Silence __cpu_up() under normal operation
  powerpc: Silence xics_migrate_irqs_away() during cpu offline

Sonny Rao (1):
  powerpc: Export memstart_addr and kernstart_addr on ppc64

 arch/powerpc/Makefile |2 +-
 arch/powerpc/boot/dts/canyonlands.dts |8 
 arch/powerpc/include/asm/mmu-hash64.h |2 +-
 arch/powerpc/include/asm/reg.h|9 -
 arch/powerpc/include/asm/rwsem.h  |   64 +
 arch/powerpc/include/asm/systbl.h |3 +
 arch/powerpc/include/asm/unistd.h |5 ++-
 arch/powerpc/kernel/cputable.c|1 -
 arch/powerpc/kernel/crash.c   |   24 ++-
 arch/powerpc/kernel/head_44x.S|4 ++
 arch/powerpc/kernel/head_64.S |6 +-
 arch/powerpc/kernel/idle.c|2 +-
 arch/powerpc/kernel/irq.c |   16 ---
 arch/powerpc/kernel/pci_of_scan.c |2 +-
 arch/powerpc/kernel/process.c |   20 -
 arch/powerpc/kernel/setup_32.c|9 ++--
 arch/powerpc/kernel/setup_64.c|   63 
 arch/powerpc/kernel/smp.c |4 +-
 arch/powerpc/kernel/sys_ppc32.c   |8 
 arch/powerpc/kernel/vio.c |3 +-
 arch/powerpc/mm/init_64.c |2 +
 arch/powerpc/mm/tlb_nohash_low.S  |1 +
 arch/powerpc/platforms/Kconfig|3 +-
 arch/powerpc/platforms/cell/iommu.c   |2 +-
 arch/powerpc/platforms/iseries/iommu.c|2 +-
 arch/powerpc/platforms/powermac/feature.c |3 +-
 arch/powerpc/platforms/powermac/pci.c |2 -
 arch/powerpc/platforms/pseries/iommu.c|8 ++--
 arch/powerpc/platforms/pseries/smp.c  |   11 +++--
 arch/powerpc/platforms/pseries/xics.c |6 ++-
 drivers/macintosh/via-pmu.c   |   42 +++
 31 files changed, 219 insertions(+), 118 deletions(-)


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


Re: [PATCH] [powerpc] Wire up fanotify_init, fanotify_mark, prlimit64 syscalls

2010-08-24 Thread Arnd Bergmann
On Tuesday 24 August 2010, Benjamin Herrenschmidt wrote:
 On Mon, 2010-08-23 at 15:52 +0200, Arnd Bergmann wrote:
  On Friday 20 August 2010, Andreas Schwab wrote:
   See arch/powerpc/platforms/cell/spu_callbacks.c.
   
* 4. They are optional and we can't rely on them being
*linked into the kernel. Unfortunately, the cond_syscall
*helper does not work here as it does not add the necessary
*opd symbols:
  
  Right. I should blame the person that wrote this comment.
  If only I could remember who that was.
 
 Regardless of the outcome of that, I'm merging Andreas patch. We can
 always add SPU bindings if we feel like it later.

Sorry, I should have added a ';-)' or been clearer. The patch is good,
I wrote the comment that Andreas quoted and it's probably my own fault
that we never found a way to handle syscalls like this correctly from
the SPU.

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


[PATCH] gpiolib: Add 'struct gpio_chip' forward declaration for !GPIOLIB case

2010-08-24 Thread Anton Vorontsov
With CONFIG_GPIOLIB=n, the 'struct gpio_chip' is not declared,
so the following pops up on PowerPC:

  cc1: warnings being treated as errors
  In file included from arch/powerpc/platforms/52xx/mpc52xx_common.c:19:
  include/linux/of_gpio.h:74: warning: 'struct gpio_chip' declared
  inside parameter list
  include/linux/of_gpio.h:74: warning: its scope is only this definition
  or declaration, which is probably not what
  you want
  include/linux/of_gpio.h:75: warning: 'struct gpio_chip' declared
  inside parameter list
  make[2]: *** [arch/powerpc/platforms/52xx/mpc52xx_common.o] Error 1

This patch fixes the issue by providing the proper forward declaration.

Signed-off-by: Anton Vorontsov cbouatmai...@gmail.com
---

On Tue, Aug 24, 2010 at 04:26:08PM +1000, Benjamin Herrenschmidt wrote:
 I get that with my current stuff:
 
 cc1: warnings being treated as errors
 In file included from [..]/mpc52xx_common.c:19:
 of_gpio.h:74: error: ‘struct gpio_chip’ declared inside parameter list
[...]
 make[3]: *** Waiting for unfinished jobs

That's because with GPIOCHIP=n no one declares struct gpio_chip.

It should be either of_gpio.h or gpio.h. Let's make it gpio.h, as
this feels more generic, and we already have some !GPIOLIB handling
in there.

 include/linux/gpio.h |6 ++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/include/linux/gpio.h b/include/linux/gpio.h
index 03f616b..85207d2 100644
--- a/include/linux/gpio.h
+++ b/include/linux/gpio.h
@@ -15,6 +15,12 @@
 struct device;
 
 /*
+ * Some code might rely on the declaration. Still, it is illegal
+ * to dereference it for !GPIOLIB case.
+ */
+struct gpio_chip;
+
+/*
  * Some platforms don't support the GPIO programming interface.
  *
  * In case some driver uses it anyway (it should normally have
-- 
1.7.0.5

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

Re: 64-bit ppc rwsem

2010-08-24 Thread Arnd Bergmann
On Tuesday 24 August 2010, Benjamin Herrenschmidt wrote:
 On Mon, 2010-08-23 at 15:18 -0700, David Miller wrote:
   I've seen drivers in the past do trylocks at interrupt time ... tho
  I
   agree it sucks.
  
  Recently there was a thread where this was declared absolutely
  illegal.
  
  Maybe it was allowed, or sort-of worked before, and that's why it's
  accounted for with IRQ disables in some implementations.  I don't
  know. 
 
 Ok, I'm happy to say it's a big no-no then.
 
 Arnd, do you want to take over the moving to asm-generic and take care
 of the spinlock case as well ? I can send Linus the first patch that
 changes powerpc to use atomic_long now along with a few other things I
 have pending, then you can pickup from there. Or do you want me to
 continue pushing my patch as-is and we can look at cleaning up the
 spinlock case separately ?

I'm currently doing too many things at once, please push in your existing
patch for now, we can continue from there.

For the asm-generic patch:
Acked-by: Arnd Bergmann a...@arndb.de
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 1/5] ptp: Added a brand new class driver for ptp clocks.

2010-08-24 Thread Stephan Gatzka

Hello!


I'm curious if its possible to do the PTP hardware offset/adjustment
calculation in a module internally to the kernel? That would allow the
PPS interface to still be used to sync the system time, and not expose
additional interfaces.
Just my 2 cents on this issue. PTP is very often used in embedded 
systems, where the PTP timestamps will go into some dedicated hardware, 
for instance an FPGA.


I'm currently working on a project where it is not necessary to adjust 
the Linux system time via PTP (although it would be a nice to have), but 
we only need the timestamps from the PHY to put them into our FPGA 
device. So we need some kind of API to access the PTP timestamp registers.


Kind regards,

Stephan



smime.p7s
Description: S/MIME Cryptographic Signature
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: [PATCH 1/1] powerpc: Clear cpu_sibling_map in cpu_die

2010-08-24 Thread Brian King
On 08/24/2010 12:24 AM, Benjamin Herrenschmidt wrote:
 On Wed, 2010-08-11 at 15:34 -0500, Brian King wrote:
 While testing CPU DLPAR, the following problem was discovered.
 We were DLPAR removing the first CPU, which in this case was
 logical CPUs 0-3. CPUs 0-2 were already marked offline and
 we were in the process of offlining CPU 3. After marking
 the CPU inactive and offline in cpu_disable, but before the
 cpu was completely idle (cpu_die), we ended up in __make_request
 on CPU 3. There we looked at the topology map to see which CPU
 to complete the I/O on and found no CPUs in the cpu_sibling_map.
 This resulted in the block layer setting the completion cpu
 to be NR_CPUS, which then caused an oops when we tried to
 complete the I/O.

 Fix this by delaying clearing the sibling map of the cpu we
 are offlining for the cpu we are offlining until cpu_die.
 
 So I'm not getting a clear mental picture of the situation, sorry about
 that.
 
 We are offlining CPU 3, and we have already marked it inactive and
 online, so how come we end up in __make_request() on it at this stage

I'm not sure about that. My thought was that until we get into cpu_die,
the cpu could still be executing code.

 and shouldn't it be the block layer that notices that it's targeting an
 offlined CPU ?

It could be easily fixed in blk_cpu_to_group as well. I'll look into
this.

 IE. I have doubts about leaving a CPU in the sibling map which isn't
 online... Wouldn't we end up scheduling things to it after it's
 supposed to have freed itself of everything (timers, workqueues,
 etc...) ?

I was assuming this wouldn't happen since the cpu is no longer online.


Thanks,

Brian

 
 As I said, I'm probably missing a part of the puzzle ..
 
 Ben.
 
 Signed-off-by: Brian King brk...@linux.vnet.ibm.com
 ---

  arch/powerpc/kernel/smp.c |9 +++--
  1 file changed, 7 insertions(+), 2 deletions(-)

 diff -puN arch/powerpc/kernel/smp.c~powerpc_sibling_map_offline 
 arch/powerpc/kernel/smp.c
 --- linux-2.6/arch/powerpc/kernel/smp.c~powerpc_sibling_map_offline  
 2010-08-09 16:49:47.0 -0500
 +++ linux-2.6-bjking1/arch/powerpc/kernel/smp.c  2010-08-09 
 16:49:47.0 -0500
 @@ -598,8 +598,11 @@ int __cpu_disable(void)
  /* Update sibling maps */
  base = cpu_first_thread_in_core(cpu);
  for (i = 0; i  threads_per_core; i++) {
 -cpumask_clear_cpu(cpu, cpu_sibling_mask(base + i));
 -cpumask_clear_cpu(base + i, cpu_sibling_mask(cpu));
 +if ((base + i) != cpu) {
 +cpumask_clear_cpu(cpu, cpu_sibling_mask(base + i));
 +cpumask_clear_cpu(base + i, cpu_sibling_mask(cpu));
 +}
 +
  cpumask_clear_cpu(cpu, cpu_core_mask(base + i));
  cpumask_clear_cpu(base + i, cpu_core_mask(cpu));
  }
 @@ -641,6 +644,8 @@ void cpu_hotplug_driver_unlock()
  
  void cpu_die(void)
  {
 +cpumask_clear_cpu(smp_processor_id(), 
 cpu_sibling_mask(smp_processor_id()));
 +
  if (ppc_md.cpu_die)
  ppc_md.cpu_die();
  }
 _
 
 
 ___
 Linuxppc-dev mailing list
 Linuxppc-dev@lists.ozlabs.org
 https://lists.ozlabs.org/listinfo/linuxppc-dev


-- 
Brian King
Linux on Power Virtualization
IBM Linux Technology Center


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


[PATCH] powerpc: Check end of stack canary at oops time

2010-08-24 Thread Anton Blanchard

Add a check for the stack canary when we oops, similar to x86. This should make
it clear that we overran our stack:

Unable to handle kernel paging request for data at address 0x24652f63700ac689
Faulting instruction address: 0xc0063d24
Thread overran stack, or stack corrupted

Signed-off-by: Anton Blanchard an...@samba.org
---

Index: powerpc.git/arch/powerpc/mm/fault.c
===
--- powerpc.git.orig/arch/powerpc/mm/fault.c2010-08-25 08:41:08.230086186 
+1000
+++ powerpc.git/arch/powerpc/mm/fault.c 2010-08-25 09:12:38.276553103 +1000
@@ -30,6 +30,7 @@
 #include linux/kprobes.h
 #include linux/kdebug.h
 #include linux/perf_event.h
+#include linux/magic.h
 
 #include asm/firmware.h
 #include asm/page.h
@@ -385,6 +386,7 @@ do_sigbus:
 void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig)
 {
const struct exception_table_entry *entry;
+   unsigned long *stackend;
 
/* Are we prepared to handle this fault?  */
if ((entry = search_exception_tables(regs-nip)) != NULL) {
@@ -413,5 +415,9 @@ void bad_page_fault(struct pt_regs *regs
printk(KERN_ALERT Faulting instruction address: 0x%08lx\n,
regs-nip);
 
+   stackend = end_of_stack(current);
+   if (current != init_task  *stackend != STACK_END_MAGIC)
+   printk(KERN_ALERT Thread overran stack, or stack corrupted\n);
+
die(Kernel access of bad area, regs, sig);
 }
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH 2/2] powerpc: kdump: Override crash_free_reserved_phys_range to avoid freeing RTAS

2010-08-24 Thread Anton Blanchard

The crashkernel region will almost always overlap RTAS. If we free the
crashkernel region via echo 0  /sys/kernel/kexec_crash_size then we will
free RTAS and the machine will crash in confusing and exciting ways.

Override crash_free_reserved_phys_range and check for overlap with RTAS.

Signed-off-by: Anton Blanchard an...@samba.org
---

Index: powerpc.git/arch/powerpc/kernel/crash_dump.c
===
--- powerpc.git.orig/arch/powerpc/kernel/crash_dump.c   2010-08-24 
09:24:32.219643256 +1000
+++ powerpc.git/arch/powerpc/kernel/crash_dump.c2010-08-24 
09:46:22.826868330 +1000
@@ -19,6 +19,7 @@
 #include asm/prom.h
 #include asm/firmware.h
 #include asm/uaccess.h
+#include asm/rtas.h
 
 #ifdef DEBUG
 #include asm/udbg.h
@@ -141,3 +142,35 @@ ssize_t copy_oldmem_page(unsigned long p
 
return csize;
 }
+
+#ifdef CONFIG_PPC_RTAS
+/*
+ * The crashkernel region will almost always overlap the RTAS region, so
+ * we have to be careful when shrinking the crashkernel region.
+ */
+void crash_free_reserved_phys_range(unsigned long begin, unsigned long end)
+{
+   unsigned long addr;
+   const u32 *basep, *sizep;
+   unsigned int rtas_start = 0, rtas_end = 0;
+
+   basep = of_get_property(rtas.dev, linux,rtas-base, NULL);
+   sizep = of_get_property(rtas.dev, rtas-size, NULL);
+
+   if (basep  sizep) {
+   rtas_start = *basep;
+   rtas_end = *basep + *sizep;
+   }
+
+   for (addr = begin; addr  end; addr += PAGE_SIZE) {
+   /* Does this page overlap with the RTAS region? */
+   if (addr = rtas_end  ((addr + PAGE_SIZE)  rtas_start))
+   continue;
+
+   ClearPageReserved(pfn_to_page(addr  PAGE_SHIFT));
+   init_page_count(pfn_to_page(addr  PAGE_SHIFT));
+   free_page((unsigned long)__va(addr));
+   totalram_pages++;
+   }
+}
+#endif
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH 1/2] kdump: Allow shrinking of kdump region to be overridden

2010-08-24 Thread Anton Blanchard

On ppc64 the crashkernel region almost always overlaps an area of firmware.
This works fine except when using the sysfs interface to reduce the kdump
region. If we free the firmware area we are guaranteed to crash.

Rename free_reserved_phys_range to crash_free_reserved_phys_range and make
it a weak function so we can override it.

Signed-off-by: Anton Blanchard an...@samba.org
---

Index: powerpc.git/kernel/kexec.c
===
--- powerpc.git.orig/kernel/kexec.c 2010-08-25 10:12:11.493863566 +1000
+++ powerpc.git/kernel/kexec.c  2010-08-25 10:12:35.907264327 +1000
@@ -1097,7 +1097,8 @@ size_t crash_get_memory_size(void)
return size;
 }
 
-static void free_reserved_phys_range(unsigned long begin, unsigned long end)
+void __weak crash_free_reserved_phys_range(unsigned long begin,
+  unsigned long end)
 {
unsigned long addr;
 
@@ -1133,7 +1134,7 @@ int crash_shrink_memory(unsigned long ne
start = roundup(start, PAGE_SIZE);
end = roundup(start + new_size, PAGE_SIZE);
 
-   free_reserved_phys_range(end, crashk_res.end);
+   crash_free_reserved_phys_range(end, crashk_res.end);
 
if ((start == end)  (crashk_res.parent != NULL))
release_resource(crashk_res);
Index: powerpc.git/include/linux/kexec.h
===
--- powerpc.git.orig/include/linux/kexec.h  2010-08-25 10:12:11.483862172 
+1000
+++ powerpc.git/include/linux/kexec.h   2010-08-25 10:12:13.664166570 +1000
@@ -208,6 +208,7 @@ int __init parse_crashkernel(char *cmdli
unsigned long long *crash_size, unsigned long long *crash_base);
 int crash_shrink_memory(unsigned long new_size);
 size_t crash_get_memory_size(void);
+void crash_free_reserved_phys_range(unsigned long begin, unsigned long end);
 
 #else /* !CONFIG_KEXEC */
 struct pt_regs;
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH] powerpc: Check end of stack canary at oops time

2010-08-24 Thread Michael Ellerman
On Wed, 2010-08-25 at 09:15 +1000, Anton Blanchard wrote:
 Add a check for the stack canary when we oops, similar to x86. This should 
 make
 it clear that we overran our stack:
 
 Unable to handle kernel paging request for data at address 0x24652f63700ac689
 Faulting instruction address: 0xc0063d24
 Thread overran stack, or stack corrupted
 
 Signed-off-by: Anton Blanchard an...@samba.org
 ---
 
 Index: powerpc.git/arch/powerpc/mm/fault.c
 ===
 --- powerpc.git.orig/arch/powerpc/mm/fault.c  2010-08-25 08:41:08.230086186 
 +1000
 +++ powerpc.git/arch/powerpc/mm/fault.c   2010-08-25 09:12:38.276553103 
 +1000
 @@ -30,6 +30,7 @@
  #include linux/kprobes.h
  #include linux/kdebug.h
  #include linux/perf_event.h
 +#include linux/magic.h
  
  #include asm/firmware.h
  #include asm/page.h
 @@ -385,6 +386,7 @@ do_sigbus:
  void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig)
  {
   const struct exception_table_entry *entry;
 + unsigned long *stackend;
  
   /* Are we prepared to handle this fault?  */
   if ((entry = search_exception_tables(regs-nip)) != NULL) {
 @@ -413,5 +415,9 @@ void bad_page_fault(struct pt_regs *regs
   printk(KERN_ALERT Faulting instruction address: 0x%08lx\n,
   regs-nip);
  
 + stackend = end_of_stack(current);
 + if (current != init_task  *stackend != STACK_END_MAGIC)
 + printk(KERN_ALERT Thread overran stack, or stack corrupted\n);

The check for init is just because we haven't set the magic value for
init's stack right? But we could.

cheers



signature.asc
Description: This is a digitally signed message part
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: [PATCH] powerpc: remove fpscr use from [kvm_]cvt_{fd,df}

2010-08-24 Thread Benjamin Herrenschmidt
On Tue, 2010-08-24 at 15:15 +1000, Michael Neuling wrote:
   Do some 32 bit processors need this? 
   
   In 32 bit before the merge, we use to have code that did:
   
 #if defined(CONFIG_4xx) || defined(CONFIG_E500)
  #define cvt_fd without save/restore fpscr
 #else
  #define cvt_fd with save/restore fpscr
 #end if
   
   Kumar; does this ring any bells?
  
  I don't see anything in the various 440 docs I have at hand that would
  hint at lfd/stfs adffecting FPSCR.
 
 The way the ifdefs are, it's the other way around.  4xx procs don't need
 to save/restore fpscr and others do.

Right, my bad. In any case, Paulus reckons it's all his mistake and we
really never need to save/restore fpscr.

Cheers,
Ben.


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


Re: [PATCH] powerpc: remove fpscr use from [kvm_]cvt_{fd,df}

2010-08-24 Thread Michael Neuling
In message 1282699836.22370.566.ca...@pasglop you wrote:
 On Tue, 2010-08-24 at 15:15 +1000, Michael Neuling wrote:
Do some 32 bit processors need this? 

In 32 bit before the merge, we use to have code that did:

  #if defined(CONFIG_4xx) || defined(CONFIG_E500)
   #define cvt_fd without save/restore fpscr
  #else
   #define cvt_fd with save/restore fpscr
  #end if

Kumar; does this ring any bells?
   
   I don't see anything in the various 440 docs I have at hand that would
   hint at lfd/stfs adffecting FPSCR.
  
  The way the ifdefs are, it's the other way around.  4xx procs don't need
  to save/restore fpscr and others do.
 
 Right, my bad. In any case, Paulus reckons it's all his mistake and we
 really never need to save/restore fpscr.

ACK :-P

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


Re: [PATCH] powerpc: Check end of stack canary at oops time

2010-08-24 Thread Anton Blanchard
 
Hi,

 The check for init is just because we haven't set the magic value for
 init's stack right? But we could.

Yeah, it's similar to what x86 are doing now:


commit 0e7810be30f66e9f430c4ce2cd3b14634211690f
Author: Jan Beulich jbeul...@novell.com
Date:   Fri Nov 20 14:00:14 2009 +

x86: Suppress stack overrun message for init_task

init_task doesn't get its stack end location set to
STACK_END_MAGIC, and hence the message is confusing
rather than helpful in this case.


Adding it directly to init_task would be nice but I suspect we'd
either have to make assumptions about end_of_stack in our code or move the
canary into the thread_info (so we can statically allocate it via
INIT_THREAD_INFO()) or do it at runtime somewhere, hopefully early enough that
we couldn't take an oops.

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


Re: [PATCH 1/2] kdump: Allow shrinking of kdump region to be overridden

2010-08-24 Thread Eric W. Biederman
Anton Blanchard an...@samba.org writes:

 On ppc64 the crashkernel region almost always overlaps an area of firmware.
 This works fine except when using the sysfs interface to reduce the kdump
 region. If we free the firmware area we are guaranteed to crash.

That is ppc64 bug.  firmware should not be in the reserved region.  Any
random kernel like thing can be put in to that region at any valid
address and the fact that shrinking the region frees your firmware means
that using that region could also stomp your firmware (which I assume
would be a bad thing).

So please fix the ppc64 reservation.

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