Re: Appletouch going wild
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
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
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
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()
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
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
[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
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
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
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
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()
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
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
> 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
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
> 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
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