Re: Appletouch going wild

2007-11-10 Thread Andreas Schwab
Johannes Berg <[EMAIL PROTECTED]> writes:

> On Fri, 2007-11-09 at 13:58 +0100, Andreas Schwab wrote:
>> Every once in a while the touchpad in my iBook G4 (geyser1, 030B) is
>> going wild, emitting random movement events even when not being touched.
>> That started only with 2.6.24-rc1.  The only way to stop it is to reload
>> the appletouch module.  My guess would be that reinitializing the
>> touchpad can result in some kind of race condition.
>
> Is it the same in -rc2?

Yes.

> The bad patch that broke fountains was fixed later, but you do have a
> geyser.

I don't see the messages you were seeing with your fountain, geyser1
does understand the geyser mode request, although it apparently uses raw
mode by default.  The reinit does help shutting up the stream of zero
moves, so it is not bad per se.

Andreas.

-- 
Andreas Schwab, SuSE Labs, [EMAIL PROTECTED]
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH v4 04/13] [POWERPC] Add generic support for simple MPC5200 based boards

2007-11-10 Thread Wolfgang Denk
In message <[EMAIL PROTECTED]> you wrote:
> This patch adds support for 'mpc5200-simple-platform' compatible
> boards which do not need a platform specific setup. Such boards
> are supported assuming the following:
...
> + const char *board[] = { 
> + "tqc,tqm5200",
> + "promess,motionpro",
> + "schindler,cm5200",
> + NULL
> + };

would it make sense to sort this list alphabetiacally? At the moment
we can setill easily find each board, but assume that list grows to 50
boards names...

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: [EMAIL PROTECTED]
   There is enough for the need of everyone in this world,
   but not for the greed of everyone. - Mahatma Gandhi
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: PPC440EPx on Sequoia: /proc/iomem acts weird

2007-11-10 Thread Stefan Roese
Hi Steve,

On Friday 09 November 2007, Steven A. Falco wrote:
> I am using the Denx 2.6.32 kernel, which does have powerpc/sequoia.
> Xenomai is a real-time kernel built on Adeos/Ipipe.  I'll dig into it
> further.

Is this arch/ppc or arch/powerpc? I remember fixing this a while ago in 
arch/ppc:

commit 67a35ce785b1d11d09bf528c166ea26d489a4bd6
Author: Stefan Roese <[EMAIL PROTECTED]>
Date:   Thu Aug 2 14:15:22 2007 +0200

ppc: Fix problem with recursive NDFC platform_device resource management

This change fixes a problem with a resursive platform_device resource
management of the AMCC 4xx NDFC. Without this fix a "cat /proc/iomem"
leads to an infinite loop of printing the "ndfc-nand.0" resource.

Signed-off-by: Stefan Roese <[EMAIL PROTECTED]>

Best regards,
Stefan
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


2.6.24-rc2-git powerpc - kernel build fails !CONFIG_SMP

2007-11-10 Thread Kamalesh Babulal
Hi,

The 2.6.24-rc2-git1 kernel build fails with randconfig on powerpc,

  CC  arch/powerpc/mm/tlb_64.o
arch/powerpc/mm/tlb_64.c: In function ‘pgtable_free_now’:
arch/powerpc/mm/tlb_64.c:71: error: ‘pte_free_smp_sync’ undeclared (first use 
in this function)
arch/powerpc/mm/tlb_64.c:71: error: (Each undeclared identifier is reported 
only once
arch/powerpc/mm/tlb_64.c:71: error: for each function it appears in.)
make[1]: *** [arch/powerpc/mm/tlb_64.o] Error 1
make: *** [arch/powerpc/mm] Error 2

The function pgtable_free_now is defined within CONFIG_SMP, and its not set in 
the
config.

-- 
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.24-rc2-git1
# Sat Nov 10 16:31:48 2007
#
CONFIG_PPC64=y

#
# Processor support
#
# CONFIG_POWER4_ONLY is not set
CONFIG_POWER3=y
CONFIG_POWER4=y
CONFIG_TUNE_CELL=y
CONFIG_PPC_FPU=y
CONFIG_ALTIVEC=y
CONFIG_PPC_STD_MMU=y
CONFIG_PPC_MM_SLICES=y
# CONFIG_VIRT_CPU_ACCOUNTING is not set
# CONFIG_SMP is not set
CONFIG_64BIT=y
CONFIG_WORD_SIZE=64
CONFIG_PPC_MERGE=y
CONFIG_MMU=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_IRQ_PER_CPU=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_ARCH_HAS_ILOG2_U32=y
CONFIG_ARCH_HAS_ILOG2_U64=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_ARCH_NO_VIRT_TO_BUS=y
CONFIG_PPC=y
CONFIG_EARLY_PRINTK=y
CONFIG_COMPAT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_PPC_OF=y
CONFIG_OF=y
CONFIG_PPC_UDBG_16550=y
CONFIG_GENERIC_TBSYNC=y
CONFIG_AUDIT_ARCH=y
CONFIG_GENERIC_BUG=y
# CONFIG_DEFAULT_UIMAGE is not set
# CONFIG_PPC_DCR_NATIVE is not set
# CONFIG_PPC_DCR_MMIO is not set
CONFIG_PPC_OF_PLATFORM_PCI=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# General setup
#
# CONFIG_EXPERIMENTAL is not set
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
# CONFIG_TASK_IO_ACCOUNTING is not set
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
CONFIG_CGROUPS=y
CONFIG_CGROUP_DEBUG=y
CONFIG_CGROUP_NS=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_FAIR_USER_SCHED=y
# CONFIG_FAIR_CGROUP_SCHED is not set
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
# CONFIG_BLK_DEV_INITRD is not set
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_MODULES is not set
CONFIG_BLOCK=y
# CONFIG_BLK_DEV_IO_TRACE is not set
CONFIG_BLOCK_COMPAT=y

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"

#
# Platform support
#
CONFIG_PPC_MULTIPLATFORM=y
# CONFIG_PPC_82xx is not set
# CONFIG_PPC_83xx is not set
# CONFIG_PPC_86xx is not set
CONFIG_PPC_PSERIES=y
CONFIG_PPC_SPLPAR=y
CONFIG_EEH=y
# CONFIG_SCANLOG is not set
# CONFIG_LPARCFG is not set
# CONFIG_PPC_ISERIES is not set
# CONFIG_PPC_MPC52xx is not set
# CONFIG_PPC_MPC5200 is not set
# CONFIG_PPC_PMAC is not set
CONFIG_PPC_MAPLE=y
CONFIG_PPC_PASEMI=y

#
# PA Semi PWRficient options
#
CONFIG_PPC_PASEMI_IOMMU=y
# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set
# CONFIG_ELECTRA_IDE is not set
CONFIG_PPC_CELLEB=y
# CONFIG_PPC_PS3 is not set
CONFIG_PPC_CELL=y
# CONFIG_PPC_CELL_NATIVE is not set
# CONFIG_PPC_IBM_CELL_BLADE is not set

#
# Cell Broadband Engine options
#
CONFIG_SPU_FS=y
# CONFIG_SPU_FS_64K_LS is not set
CONFIG_SPU_BASE=y
# CONFIG_PQ2ADS is not set
CONFIG_PPC_NATIVE=y
CONFIG_UDBG_RTAS_CONSOLE=y
CONFIG_PPC_UDBG_BEAT=y
CONFIG_XICS=y
CONFIG_MPIC=y
# CONFIG_MPIC_WEIRD is not set
CONFIG_PPC_I8259=y
CONFIG_U3_DART=y
CONFIG_PPC_RTAS=y
CONFIG_RTAS_ERROR_LOGGING=y
CONFIG_RTAS_PROC=y
CONFIG_RTAS_FLASH=y
CONFIG_MMIO_NVRAM=y
CONFIG_MPIC_U3_HT_IRQS=y
CONFIG_MPIC_BROKEN_REGREAD=y
CONFIG_IBMVIO=y
# CONFIG_IBMEBUS is not set
# CONFIG_PPC_MPC106 is not set
CONFIG_PPC_970_NAP=y
CONFIG_PPC_INDIRECT_IO=y
CONFIG_GENERIC_IOMAP=y
# CONFIG_CPU_FREQ is not set
# CONFIG_CPM2 is not set
# CONFIG_FSL_ULI1575 is not set

#
# Kernel options
#
CONFIG_TICK_ONE

Re: Kernel locks up after calling kernel_execve()

2007-11-10 Thread Gerhard Pircher

 Original-Nachricht 
> Datum: Fri, 09 Nov 2007 18:50:29 +1100
> Von: Benjamin Herrenschmidt <[EMAIL PROTECTED]>
> An: Gerhard Pircher <[EMAIL PROTECTED]>
> CC: linuxppc-dev@ozlabs.org
> Betreff: Re: Kernel locks up after calling kernel_execve()

> 
> > I tried to use /bin/sh as init program and was able to enter a command,
> > but then the machine locked up, too.
> > Could that be a problem with a CPU sleeping/idle code?
> 
> That's possibly an issue, try disabling power save if any for that CPU
> type. If it worked and broke, you may have to bisect tho.
I disabled the powersaving code by adding powersave=off to the kernel's
command line, but it didn't help. It seems to lockup whenever it tries to
access a filesystem.
Is there a way to debug it without a hardware debugger or can you
recommend a cheap hardware debugger?

Gerhard
-- 
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! 
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


IRQs in i2c-mpc.c

2007-11-10 Thread Jon Smirl
I'm doing final clean up the i2c open firmware support. What is the
intention of this code? Is it meant for a missing IRQ attribute to
return a zero and not get an IRQ for the device? Does the device
function without an IRQ? If so, it needs a comment explaining things.
Otherwise IRQ of zero should be an error.

i2c->irq = irq_of_parse_and_map(op->node, 0);
if (i2c->irq <= 0) {
result = -ENXIO;
goto fail_irq;
}

if (i2c->irq != 0)
if ((result = request_irq(i2c->irq, mpc_i2c_isr,
IRQF_SHARED, "i2c-mpc", i2c)) < 
0) {
printk(KERN_ERR "i2c-mpc - failed to attach 
interrupt\n");
goto fail_irq;
}

-- 
Jon Smirl
[EMAIL PROTECTED]
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


[PATCH] [POWERPC] Fix CONFIG_SMP=n build error on ppc64

2007-11-10 Thread Olof Johansson
[POWERPC] Fix CONFIG_SMP=n build error

The patch "KVM: fix !SMP build error" change the way smp_call_function()
actually uses the passed in function names on non-SMP builds. So
previously it was never caught that the function passed in was never
actually defined.

This causes a build error on ppc64_defconfig + CONFIG_SMP=n:

arch/powerpc/mm/tlb_64.c: In function 'pgtable_free_now':
arch/powerpc/mm/tlb_64.c:71: error: 'pte_free_smp_sync' undeclared (first use 
in this function)
arch/powerpc/mm/tlb_64.c:71: error: (Each undeclared identifier is reported 
only once
arch/powerpc/mm/tlb_64.c:71: error: for each function it appears in.)

So we need to define it even if CONFIG_SMP is off. Either that or ifdef
out the smp_call_function() call, but that's ugly.


Signed-off-by: Olof Johansson <[EMAIL PROTECTED]>

diff --git a/arch/powerpc/mm/tlb_64.c b/arch/powerpc/mm/tlb_64.c
index eafbca5..e2d867c 100644
--- a/arch/powerpc/mm/tlb_64.c
+++ b/arch/powerpc/mm/tlb_64.c
@@ -54,12 +54,10 @@ unsigned long pte_freelist_forced_free;
((PAGE_SIZE - sizeof(struct pte_freelist_batch)) \
  / sizeof(pgtable_free_t))
 
-#ifdef CONFIG_SMP
 static void pte_free_smp_sync(void *arg)
 {
/* Do nothing, just ensure we sync with all CPUs */
 }
-#endif
 
 /* This is only called when we are critically out of memory
  * (and fail to get a page in pte_free_tlb).
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: IRQs in i2c-mpc.c

2007-11-10 Thread Kumar Gala

On Nov 10, 2007, at 1:44 PM, Jon Smirl wrote:

> I'm doing final clean up the i2c open firmware support. What is the
> intention of this code? Is it meant for a missing IRQ attribute to
> return a zero and not get an IRQ for the device? Does the device
> function without an IRQ? If so, it needs a comment explaining things.
> Otherwise IRQ of zero should be an error.
>
>   i2c->irq = irq_of_parse_and_map(op->node, 0);
>   if (i2c->irq <= 0) {
>   result = -ENXIO;
>   goto fail_irq;
>   }
>   
>   if (i2c->irq != 0)
>   if ((result = request_irq(i2c->irq, mpc_i2c_isr,
>   IRQF_SHARED, "i2c-mpc", i2c)) < 
> 0) {
>   printk(KERN_ERR "i2c-mpc - failed to attach 
> interrupt\n");
>   goto fail_irq;
>   }

Looking at the current driver it looks like we could get ride of if  
check since the previous code checked the return of platform_get_irq().

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


Re: IRQs in i2c-mpc.c

2007-11-10 Thread Jon Smirl
On 11/10/07, Kumar Gala <[EMAIL PROTECTED]> wrote:
> Looking at the current driver it looks like we could get ride of if
> check since the previous code checked the return of platform_get_irq().

The code was a snippet from the larger patch that is converting i2c
from being a platform driver to a of_platform driver.

The question is, what to do about a missing IRQ tag in the device tree
or a IRQ of zero. What is an error and what should be ignored, etc.

+static int mpc_i2c_probe(struct of_device *op, const struct
of_device_id *match)
 {
int result = 0;
struct mpc_i2c *i2c;
-   struct fsl_i2c_platform_data *pdata;
-   struct resource *r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-
-   pdata = (struct fsl_i2c_platform_data *) pdev->dev.platform_data;

if (!(i2c = kzalloc(sizeof(*i2c), GFP_KERNEL))) {
return -ENOMEM;
}

-   i2c->irq = platform_get_irq(pdev, 0);
-   if (i2c->irq < 0) {
-   result = -ENXIO;
-   goto fail_get_irq;
-   }
-   i2c->flags = pdata->device_flags;
-   init_waitqueue_head(&i2c->queue);
+   if (of_get_property(op->node, "dfsrr", NULL))
+   i2c->flags |= FSL_I2C_DEV_SEPARATE_DFSRR;

-   i2c->base = ioremap((phys_addr_t)r->start, MPC_I2C_REGION);
+   if (of_device_is_compatible(op->node, "mpc5200-i2c"))
+   i2c->flags |= FSL_I2C_DEV_CLOCK_5200;

+   init_waitqueue_head(&i2c->queue);
+
+   i2c->base = of_iomap(op->node, 0);
if (!i2c->base) {
printk(KERN_ERR "i2c-mpc - failed to map controller\n");
result = -ENOMEM;
goto fail_map;
}

+   i2c->irq = irq_of_parse_and_map(op->node, 0);
+   if (i2c->irq < 0) {
+   result = -ENXIO;
+   goto fail_irq;
+   }
+   
if (i2c->irq != 0)
if ((result = request_irq(i2c->irq, mpc_i2c_isr,
- IRQF_SHARED, "i2c-mpc", i2c)) < 0) {
-   printk(KERN_ERR
-  "i2c-mpc - failed to attach interrupt\n");
+   IRQF_SHARED, "i2c-mpc", i2c)) < 
0) {
+   printk(KERN_ERR "i2c-mpc - failed to attach 
interrupt\n");
goto fail_irq;
}

mpc_i2c_setclock(i2c);
-   platform_set_drvdata(pdev, i2c);
+   
+   dev_set_drvdata(&op->dev, i2c);

i2c->adap = mpc_ops;
-   i2c->adap.nr = pdev->id;
i2c_set_adapdata(&i2c->adap, i2c);
-   i2c->adap.dev.parent = &pdev->dev;
-   if ((result = i2c_add_numbered_adapter(&i2c->adap)) < 0) {
+   i2c->adap.dev.parent = &op->dev;
+   if ((result = i2c_add_adapter(&i2c->adap)) < 0) {
printk(KERN_ERR "i2c-mpc - failed to add adapter\n");
goto fail_add;
}
+   
+   of_register_i2c_devices(&i2c->adap, op->node);

return result;

-  fail_add:
+fail_add:
if (i2c->irq != 0)
free_irq(i2c->irq, i2c);
-  fail_irq:
+fail_irq:
iounmap(i2c->base);
-  fail_map:
-  fail_get_irq:
+fail_map:
kfree(i2c);
return result;
 };



-- 
Jon Smirl
[EMAIL PROTECTED]
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: IRQs in i2c-mpc.c

2007-11-10 Thread Kumar Gala

On Nov 10, 2007, at 5:16 PM, Jon Smirl wrote:

> On 11/10/07, Kumar Gala <[EMAIL PROTECTED]> wrote:
>> Looking at the current driver it looks like we could get ride of if
>> check since the previous code checked the return of  
>> platform_get_irq().
>
> The code was a snippet from the larger patch that is converting i2c
> from being a platform driver to a of_platform driver.
>
> The question is, what to do about a missing IRQ tag in the device tree
> or a IRQ of zero. What is an error and what should be ignored, etc.

I think the lack of an IRQ in the device tree should be an error.  If  
the IRQ value is zero, than its zero.

- k

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


Re: IRQs in i2c-mpc.c

2007-11-10 Thread Jon Smirl
On 11/10/07, Kumar Gala <[EMAIL PROTECTED]> wrote:
>
> On Nov 10, 2007, at 5:16 PM, Jon Smirl wrote:
>
> > On 11/10/07, Kumar Gala <[EMAIL PROTECTED]> wrote:
> >> Looking at the current driver it looks like we could get ride of if
> >> check since the previous code checked the return of
> >> platform_get_irq().
> >
> > The code was a snippet from the larger patch that is converting i2c
> > from being a platform driver to a of_platform driver.
> >
> > The question is, what to do about a missing IRQ tag in the device tree
> > or a IRQ of zero. What is an error and what should be ignored, etc.
>
> I think the lack of an IRQ in the device tree should be an error.  If
> the IRQ value is zero, than its zero.

irq_of_parse_and_map() returns NO_IRQ when the irq parameter is missing.

This API appears to be broken. In asm-powerpc/irq.h NO_IRQ is defined
as (0). There is no way to tell an error in the attribute from a valid
attribute selecting interrupt zero.

NO_IRQ used to be (-1).

/* This number is used when no interrupt has been assigned */
#ifdef CONFIG_PPC_MERGE
#define NO_IRQ  (0)
#else
#define NO_IRQ  (-1)


-- 
Jon Smirl
[EMAIL PROTECTED]
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Kernel locks up after calling kernel_execve()

2007-11-10 Thread Benjamin Herrenschmidt

On Sat, 2007-11-10 at 18:11 +0100, Gerhard Pircher wrote:
>  Original-Nachricht 
> > Datum: Fri, 09 Nov 2007 18:50:29 +1100
> > Von: Benjamin Herrenschmidt <[EMAIL PROTECTED]>
> > An: Gerhard Pircher <[EMAIL PROTECTED]>
> > CC: linuxppc-dev@ozlabs.org
> > Betreff: Re: Kernel locks up after calling kernel_execve()
> 
> > 
> > > I tried to use /bin/sh as init program and was able to enter a command,
> > > but then the machine locked up, too.
> > > Could that be a problem with a CPU sleeping/idle code?
> > 
> > That's possibly an issue, try disabling power save if any for that CPU
> > type. If it worked and broke, you may have to bisect tho.
> I disabled the powersaving code by adding powersave=off to the kernel's
> command line, but it didn't help. It seems to lockup whenever it tries to
> access a filesystem.
> Is there a way to debug it without a hardware debugger or can you
> recommend a cheap hardware debugger?

There are ways, sure, which probably involve adding prink's all over the
place to figure it out... could be some DMA issue for example, could be
pretty much anything. Have you tried booting an initrd with no disk
access ?

Ben.


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


Re: [PATCH] [POWERPC] Fix CONFIG_SMP=n build error on ppc64

2007-11-10 Thread Kamalesh Babulal
On Sat, Nov 10, 2007 at 02:59:29PM -0600, Olof Johansson wrote:
> [POWERPC] Fix CONFIG_SMP=n build error
> 
> The patch "KVM: fix !SMP build error" change the way smp_call_function()
> actually uses the passed in function names on non-SMP builds. So
> previously it was never caught that the function passed in was never
> actually defined.
> 
> This causes a build error on ppc64_defconfig + CONFIG_SMP=n:
> 
> arch/powerpc/mm/tlb_64.c: In function 'pgtable_free_now':
> arch/powerpc/mm/tlb_64.c:71: error: 'pte_free_smp_sync' undeclared (first use 
> in this function)
> arch/powerpc/mm/tlb_64.c:71: error: (Each undeclared identifier is reported 
> only once
> arch/powerpc/mm/tlb_64.c:71: error: for each function it appears in.)
> 
> So we need to define it even if CONFIG_SMP is off. Either that or ifdef
> out the smp_call_function() call, but that's ugly.
Hi,

Thanks, the patch fixes the build failure.

Tested-by: Kamalesh Babulal <[EMAIL PROTECTED]>
Signed-off-by: Olof Johansson <[EMAIL PROTECTED]>

diff --git a/arch/powerpc/mm/tlb_64.c b/arch/powerpc/mm/tlb_64.c
index eafbca5..e2d867c 100644
--- a/arch/powerpc/mm/tlb_64.c
+++ b/arch/powerpc/mm/tlb_64.c
@@ -54,12 +54,10 @@ unsigned long pte_freelist_forced_free;
  ((PAGE_SIZE - sizeof(struct pte_freelist_batch)) \ 
/ sizeof(pgtable_free_t))

-#ifdef CONFIG_SMP
 static void pte_free_smp_sync(void *arg)
 { 
  /* Do nothing, just ensure we sync with all CPUs */
 } 
-#endif

 /* This is only called when we are critically out of memory
  * (and fail to get a page in pte_free_tlb).

-- 
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH] Avoid unpaired stwcx. on some processors

2007-11-10 Thread Benjamin Herrenschmidt

> Seems like a "better" (but still ugly) workaround would be to create a
> _new_ reservation to a RA that's unavailable to any userspace process,
> so that they could never do a successful store to it. That way you would
> have stray reservations, but never dangling stwcx:es. No?

Many processors don't compare the reservation address locally. If
there's any valid reservation held by that processor, a subsequent
stwcx. will always succeed. That would make you scheme dangerous :-)

Ben.


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


Re: IRQs in i2c-mpc.c

2007-11-10 Thread Benjamin Herrenschmidt

On Sat, 2007-11-10 at 17:18 -0600, Kumar Gala wrote:
> On Nov 10, 2007, at 5:16 PM, Jon Smirl wrote:
> 
> > On 11/10/07, Kumar Gala <[EMAIL PROTECTED]> wrote:
> >> Looking at the current driver it looks like we could get ride of if
> >> check since the previous code checked the return of  
> >> platform_get_irq().
> >
> > The code was a snippet from the larger patch that is converting i2c
> > from being a platform driver to a of_platform driver.
> >
> > The question is, what to do about a missing IRQ tag in the device tree
> > or a IRQ of zero. What is an error and what should be ignored, etc.
> 
> I think the lack of an IRQ in the device tree should be an error.  If  
> the IRQ value is zero, than its zero.

virq 0 is always illegal so if platform_get_irq() returns 0, it can be
safely treated as an error or the absence of irq, on both powerpc and
x86.

Ben.


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


Re: IRQs in i2c-mpc.c

2007-11-10 Thread Benjamin Herrenschmidt

> irq_of_parse_and_map() returns NO_IRQ when the irq parameter is missing.
> 
> This API appears to be broken. In asm-powerpc/irq.h NO_IRQ is defined
> as (0). There is no way to tell an error in the attribute from a valid
> attribute selecting interrupt zero.

No, it is not broken. Interrupt numbers in arch/powerpc are virtually
mapped and 0 is never a legal value, thus NO_IRQ is 0. This was done in
part because Linus wanted it that way.

The hardware number can perfectly be 0 though, that's a different thing,
and has nothing to do with what you pass to request_irq().

Ben.


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


Re: [PATCH] Avoid unpaired stwcx. on some processors

2007-11-10 Thread Olof Johansson
On Sun, Nov 11, 2007 at 03:46:05PM +1100, Benjamin Herrenschmidt wrote:
> 
> > Seems like a "better" (but still ugly) workaround would be to create a
> > _new_ reservation to a RA that's unavailable to any userspace process,
> > so that they could never do a successful store to it. That way you would
> > have stray reservations, but never dangling stwcx:es. No?
> 
> Many processors don't compare the reservation address locally. If
> there's any valid reservation held by that processor, a subsequent
> stwcx. will always succeed. That would make you scheme dangerous :-)

Yeah, I had missed that arch detail. Becky already explained it in her
reply, but thanks for doing it again. :)


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