02 Oct, 2007

1 commit

  • On a POWER6 machine running 2.6.23-rc8 I sometimes see the following error:

    xics_set_affinity: No online cpus in the mask 00000000,00000000,00000000,00000001 for irq 20

    In a desperate attempt to get a changelog entry in 2.6.23, I took a look
    into it.

    It turns out we are passing a real and not a virtual irq into
    get_irq_server. This works for the case where hwirq < NR_IRQS and we
    set virq = hwirq. In my case however hwirq = 590082 and we try and
    access irq_desc[590082], slightly past the end at 512 entries.

    Lucky we ship lots of memory with our machines.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Paul Mackerras

    Anton Blanchard
     

28 Sep, 2007

3 commits

  • Setup dr_mode for USB-DR to peripheral as the default (host mode) doesn't make
    much sense for the mini-AB connector on the ITX board.

    Peripheral mode is preferable to OTG as the fsl_usb2_udc.c driver doesn't yet
    properly support it.

    Signed-off-by: Peter Korsgaard
    Signed-off-by: Kumar Gala

    jacmet@sunsite.dk
     
  • mpc834x USB-MPH configuration got broken by commit
    6f442560021aecf08658e26ed9a37e6928ef0fa1. The selection bits in SICRL
    should be cleared rather than set to configure the USB MUXes for the MPH.

    Signed-off-by: Peter Korsgaard
    Signed-off-by: Kumar Gala

    jacmet@sunsite.dk
     
  • The powerpc version of commproc.c exports cpm_dpram_addr twice
    and cpm_dpram_phys not at all due to a typo. This patch fixes this
    problem.

    CC arch/powerpc/sysdev/commproc.o
    arch/powerpc/sysdev/commproc.c:398: error: redefinition of '__kcrctab_cpm_dpram_addr'
    arch/powerpc/sysdev/commproc.c:392: error: previous definition of '__kcrctab_cpm_dpram_addr' was here
    arch/powerpc/sysdev/commproc.c:398: error: redefinition of '__kstrtab_cpm_dpram_addr'
    arch/powerpc/sysdev/commproc.c:392: error: previous definition of '__kstrtab_cpm_dpram_addr' was here
    arch/powerpc/sysdev/commproc.c:398: error: redefinition of '__ksymtab_cpm_dpram_addr'
    arch/powerpc/sysdev/commproc.c:392: error: previous definition of '__ksymtab_cpm_dpram_addr' was here
    make[1]: *** [arch/powerpc/sysdev/commproc.o] Error 1
    make: *** [arch/powerpc/sysdev] Error 2

    Signed-off-by: Jochen Friedrich
    Signed-off-by: Kumar Gala

    Jochen Friedrich
     

26 Sep, 2007

1 commit

  • The commit 8b6f50ef1d5cc86b278eb42bc91630fad455fb10 seems to have
    been affected by a mismerge of a duplicate patch
    (d054b36ffd302ec65aabec16a0c60ddd9e6b5a62) - both the
    spufs_dir_contents and spufs_dir_nosched_contents have been given
    write-only signal notification files.

    This change reverts the spufs_dir_contents array to use the
    readable signal notification file implementation.

    Signed-off-by: Jeremy Kerr
    Acked-by: Arnd Bergmann
    Signed-off-by: Paul Mackerras

    Jeremy Kerr
     

25 Sep, 2007

1 commit

  • When PTRACE_O_TRACEEXEC is used, a ptrace call to fetch the registers at
    the PTRACE_EVENT_EXEC stop (PTRACE_PEEKUSR) will oops in CHECK_FULL_REGS.
    With recent versions, "gdb --args /bin/sh -c 'exec /bin/true'" and "run" at
    the (gdb) prompt is sufficient to produce this. I also have written an
    isolated test case, see https://bugzilla.redhat.com/show_bug.cgi?id=301791#c15.

    This change fixes the problem by clearing the low bit of pt_regs.trap in
    start_thread so that FULL_REGS is true again. This is correct since all of
    the GPRs that "full" refers to are cleared in start_thread.

    Signed-off-by: Roland McGrath
    Signed-off-by: Paul Mackerras

    Roland McGrath
     

19 Sep, 2007

3 commits


13 Sep, 2007

2 commits

  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
    [POWERPC] Move serial_dev_init to device_initcall()
    [POWERPC] Enable GENERIC_ISA_DMA if FSL_ULI1575 to fix compile issue
    [POWERPC] cpm2: Fix off-by-one error in setbrg().
    [PPC] 8xx: Fix r3 trashing due to 8MB TLB page instantiation
    [POWERPC] 8{5,6}xx: Fix build issue with !CONFIG_PCI

    Linus Torvalds
     
  • With the I/O space rewrite by BenH, the legacy_serial serial_dev_init()
    initcall is now called before I/O space is setup, but it's dependent on
    it being available.

    Since there's no way to make dependencies between initcalls, we'll just
    have to move it to device_initcall(). Yes, it's suboptimal but I'm not
    aware of any better solution at this time, and it fixes a regression
    from 2.6.22.

    Signed-off-by: Olof Johansson
    Signed-off-by: Paul Mackerras

    Olof Johansson
     

12 Sep, 2007

1 commit

  • Since the ULI1575 has a ISA bus we need to enable the generic ISA dma
    support for drivers that might expect it. Without this we get compile
    errors like the following:

    ound/built-in.o: In function `claim_dma_lock':
    /home/galak/git/linux-8572/include/asm/dma.h:189: undefined reference to `dma_spin_lock'
    /home/galak/git/linux-8572/include/asm/dma.h:189: undefined reference to `dma_spin_lock'
    sound/built-in.o: In function `release_dma_lock':
    /home/galak/git/linux-8572/include/asm/dma.h:195: undefined reference to `dma_spin_lock'
    sound/built-in.o: In function `claim_dma_lock':
    /home/galak/git/linux-8572/include/asm/dma.h:189: undefined reference to `dma_spin_lock'
    /home/galak/git/linux-8572/include/asm/dma.h:189: undefined reference to `dma_spin_lock'
    sound/built-in.o:/home/galak/git/linux-8572/include/asm/dma.h:195: more undefined references to `dma_spin_lock' follow
    make: *** [.tmp_vmlinux1] Error 1

    Signed-off-by: Kumar Gala

    Kumar Gala
     

11 Sep, 2007

6 commits

  • The hardware adds one to the BRG value to get the divider, so it must
    be subtracted by software. Without this patch, characters will occasionally
    be corrupted.

    Signed-off-by: Scott Wood
    Signed-off-by: Kumar Gala

    Scott Wood
     
  • We needed some ifdef CONFIG_PCI protection for pcibios_fixup so we
    can build !CONFIG_PCI.

    Signed-off-by: Kumar Gala

    Kumar Gala
     
  • Previously, ibmebus derived a device's bus_id from its location code.
    The location code is not guaranteed to be unique, so we might get bus_id
    collisions if two devices share the same location code. The OFDT
    full_name, however, is unique, so we use that instead (truncating it
    on the left if it is too long).

    Signed-off-by: Joachim Fenkes
    Signed-off-by: Paul Mackerras

    Joachim Fenkes
     
  • On PS3, A storage device may show up in the repository before the hypervisor
    has finished probing:
    - If its type is not yet known, it shows up as PS3_DEV_TYPE_STOR_DUMMY,
    - If its regions are being probed, it shows up as having zero regions.
    If any of these happen, consider the device not yet present. The storage
    probe thread will retry later.

    This fixes the timing-dependent problem where a kernel booted from FLASH ROM
    sometimes cannot find the hard disk.

    Signed-off-by: Geert Uytterhoeven
    Acked-by: Geoff Levand
    Signed-off-by: Paul Mackerras

    Geert Uytterhoeven
     
  • At present, running any SPE program on the ps3 will trigger a BUG_ON
    when spufs_run_spu tries to clear the master run control bit, as lv1
    does not make the master run control available to Linux.

    This change makes SPE apps work again by disabling changes to the
    master run control on PS3. Although we don't have the facility to
    disable a SPE with supervisor-level privileges, it's better than
    hitting the BUG_ON unconditionally.

    Signed-off-by: Jeremy Kerr
    Acked-by: Masato Noguchi
    Signed-off-by: Paul Mackerras

    Jeremy Kerr
     
  • The Cell BE Architecture spec states that the SPU MFC Class 0 interrupt
    is edge-triggered. The current spu interrupt handler assumes this
    behavior and does not clear the interrupt status.

    The PS3 hypervisor visualizes all SPU interrupts as level, and on return
    from the interrupt handler the hypervisor will deliver a new virtual
    interrupt for any unmasked interrupts which for which the status has not
    been cleared. This fix clears the interrupt status in the interrupt
    handler.

    Signed-off-by: Masato Noguchi
    Signed-off-by: Geoff Levand
    Signed-off-by: Jeremy Kerr
    Acked-by: Arnd Bergmann
    Signed-off-by: Paul Mackerras

    Masato Noguchi
     

30 Aug, 2007

6 commits

  • Fix the bug that the major version part of the firmware version number
    is ignored in the comparison done by ps3_compare_firmware_version
    because the difference of two 64-bit quantities is returned as an int.

    Signed-off-by: Masakazu Mokuno
    Acked-by: Geoff Levand
    Signed-off-by: Paul Mackerras

    Masakazu Mokuno
     
  • Signed-off-by: Paul Mackerras

    Paul Mackerras
     
  • This fixes a major bug which was happening when a SPU thread advances
    its execution right after being restored to a SPU. A potentially
    outdated NPC value was being (re)written to the SPU.

    So, spu_run_init, in this case, was either not doing anything relevant,
    or breaking the execution of the SPU thread.

    This fixes a common problem of losing a mailbox write when it was done
    to a saved context.

    Signed-off-by: Andre Detsch
    Signed-off-by: Jeremy Kerr
    Signed-off-by: Paul Mackerras

    Andre Detsch
     
  • When a process writes into the inbound spu mailbox (wbox) while the
    context is saved, we accidentally break the contents of the mb_stat_R
    register by clearing other entries of the mailbox status register. This
    can cause the user side to hang.

    This change fixes the problem by only altering the appropriate bits
    of the mailbox status register during a backing-store write.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Jeremy Kerr
    Signed-off-by: Paul Mackerras

    Arnd Bergmann
     
  • This fixes a regression introduced with 2.6.23-rc4 after on some
    confusion about the device tree interfaces.

    IBM QS21 device trees provide "physical-id", so we changed the code to
    run on that and remain compatible with all IBM machines.

    However, the Toshiba Celleb device tree provides the "unit-id" property,
    which was in the Linux code, but never used in this way on IBM hardware.

    Legacy device tree used the reg property for the physical id of an spe.
    This patch fixes find_spu_unit_number to look for the spu id in that order.
    The length is checked to avoid misinterpretation in case the attributes
    unit-id or reg do not contain the id.

    Signed-off-by: Christian Krafft
    Signed-off-by: Arnd Bergmann
    Cc: Jeremy Kerr

    Christian Krafft
     
  • Signed-off-by: Kumar Gala

    Kumar Gala
     

29 Aug, 2007

1 commit

  • When we flush register state for FP, Altivec, or SPE in flush_*_to_thread
    we need to respect the task_struct that the caller has passed to us.

    Most cases we are called with current, however sometimes (ptrace) we may
    be passed a different task_struct.

    This showed up when using gdbserver debugging a simple program that used
    floating point. When gdb tried to show the FP regs they all showed up as
    0, because the child's FP registers were never properly flushed to memory.

    Signed-off-by: Kumar Gala

    Kumar Gala
     

25 Aug, 2007

7 commits

  • This partially reverts edd0622bd2e8f755c960827e15aa6908c3c5aa94.

    It turns out that the part of that commit that aimed to ensure that we
    created an SLB entry for the kernel stack on secondary CPUs when
    starting the CPU didn't achieve its aim, and in fact caused a
    regression, because get_paca()->kstack is not initialized at the point
    where slb_initialize is called.

    This therefore just reverts that part of that commit, while keeping
    the change to slb_flush_and_rebolt, which is correct and necessary.

    Signed-off-by: Paul Mackerras

    Paul Mackerras
     
  • Signed-off-by: Arnd Bergmann
    Signed-off-by: Paul Mackerras

    Arnd Bergmann
     
  • On exit do not delete gendisk's queue because this is already done by
    del_gendisk(). Doing it twice may cause memory damage.

    Signed-off-by: Maximilian
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Paul Mackerras

    Maxim Shchetynin
     
  • Firmware would not deliver two interrupt numbers in device-tree any more
    but only one, for correctable ECC, because uncorrectable ECC from now
    is handled by firmware itself.
    Changes in the axonram module are necessary because in the old version, if
    it is not allowed to fetch the second interrupt number from device-tree,
    it interpretes this as an error case and exits.

    Signed-off-by: Maximilian
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Paul Mackerras

    Maxim Shchetynin
     
  • The Cell Broadband Engine has a method of injecting a
    system-reset-exception from an external source into the
    operating system, which should trigger the regular behaviour
    of entering xmon or kdump.

    Unfortunately, the exception handler cannot distinguish it from
    other interrupt causes by the SRR1 register, which gets used
    for this on Power 6 and others.

    IBM Blade servers that want to support triggering the
    system reset exception using a pinhole button in the front
    panel therefore use an extra register to determine the
    reset cause.

    Signed-off-by: Arnd Bergmann

    --
    Signed-off-by: Paul Mackerras

    Arnd Bergmann
     
  • Legacy device tree used the reg property for the physical id of an
    spe. On newer device tree layouts the reg property contains the
    "correct" value in the reg attribute. So there has been intoduced the
    "physical-id" on newer devicetree layouts. The id is stored by
    spu_manage into the spu struct as spe_id. cbe_thermal has been
    changed to use the spu->spe_id. There's no need for the thermal code
    to check devicetree attributes for itself.

    Signed-off-by: Christian Krafft
    Cc: Jeremy Kerr
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Paul Mackerras

    Christian Krafft
     
  • More fallout from the switch from PAGE_SIZE based IOMMU to the native page
    size for the driver. By pure luck it happened to work most of the time, since
    we end up invalidating the wrong entries in the TLB.

    Signed-off-by: Olof Johansson
    Signed-off-by: Paul Mackerras

    Olof Johansson
     

22 Aug, 2007

1 commit


21 Aug, 2007

1 commit


18 Aug, 2007

4 commits

  • CC arch/powerpc/sysdev/commproc.o
    arch/powerpc/sysdev/fsl_soc.c: In function fsl_pcmcia_of_init:
    arch/powerpc/sysdev/fsl_soc.c:1109: error: implicit declaration of function of_platform_device_create

    Signed-off-by: Kumar Gala

    Kumar Gala
     
  • Reserved MCSR bits on FSL BookE parts may have spurious values
    when mcheck occurs. Mask these off when printing the MCSR to
    avoid confusion. Also, get rid of the MCSR_GL_CI bit defined
    for e500 - this bit doesn't actually have any meaning.

    Signed-off-by: Becky Bruce
    Signed-off-by: Kumar Gala

    Becky Bruce
     
  • The interrupt routing in the device trees for the ULI M1575 was
    inproperly using the interrupt line field as pci function. Fixed
    up the device tree's to actual conform for to specification and
    changed the interrupt mapping code so it just uses a static mapping
    setup as follows:

    PIRQA - IRQ9
    PIRQB - IRQ10
    PIRQC - IRQ11
    PIRQD - IRQ12
    USB 1.1 OCHI (1c.0) - IRQ12
    USB 1.1 OCHI (1c.1) - IRQ9
    USB 1.1 OCHI (1c.2) - IRQ10
    USB 1.1 ECHI (1c.3) - IRQ11
    LAN (1b.0) - IRQ6
    AC97 (1d.0) - IRQ6
    Modem (1d.1) - IRQ6
    HD Audio (1d.2) - IRQ6
    SATA (1f.1) - IRQ5
    SMB (1e.1) - IRQ7
    PMU (1e.2) - IRQ7
    PATA (1f.0) - IRQ14/15

    Took the oppurtunity to refactor the code into a single file so we
    don't have to duplicate these fixes on the two current boards in the
    tree and several forth coming boards that will also need the code.

    Fixed RTC support that requires a dummy memory read on the P2P bridge
    to unlock the RTC and setup the default of the RTC alarm registers to
    match with a basic x86 style CMOS RTC.

    Moved code that poked ISA registers to a FIXUP_FINAL quirk to ensure
    the PCI IO space has been setup properly before we start poking ISA
    registers at random locations.

    Signed-off-by: Kumar Gala

    Kumar Gala
     
  • The RTC CMOS driver expects the interrupt to be a resource of the platform
    device. Use a fixed interrupt value of 8 since on PPC if we are using this
    its off an i8259 which we ensure has interrupt numbers 0..15.

    Signed-off-by: Kumar Gala

    Kumar Gala
     

17 Aug, 2007

1 commit

  • A similar fix to netfilter from Eric Dumazet inspired me to
    look around a bit by using some grep/sed stuff as looking for
    this kind of bugs seemed easy to automate. This is one of them
    I found where it looks like this semicolon is not valid.

    Signed-off-by: Ilpo Järvinen
    Acked-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Ilpo Järvinen
     

15 Aug, 2007

1 commit