11 Jan, 2006

7 commits

  • The following patch (against 2.6.15-rc5-mm3) fixes a kprobes build break
    due to changes introduced in the kprobe locking in 2.6.15-rc5-mm3. In
    addition, the patch reverts back the open-coding of kprobe_mutex.

    Signed-off-by: Ananth N Mavinakayanahalli
    Acked-by: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ananth N Mavinakayanahalli
     
  • Currently arch_remove_kprobes() is only implemented/required for x86_64 and
    powerpc. All other architecture like IA64, i386 and sparc64 implementes a
    dummy function which is being called from arch independent kprobes.c file.

    This patch removes the dummy functions and replaces it with
    #define arch_remove_kprobe(p, s) do { } while(0)

    Signed-off-by: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anil S Keshavamurthy
     
  • Based on some feedback from Oleg Nesterov, I have made few changes to
    previously posted patch.

    Signed-off-by: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Keshavamurthy Anil S
     
  • Since Kprobes runtime exception handlers is now lock free as this code path is
    now using RCU to walk through the list, there is no need for the
    register/unregister{_kprobe} to use spin_{lock/unlock}_isr{save/restore}. The
    serialization during registration/unregistration is now possible using just a
    mutex.

    In the above process, this patch also fixes a minor memory leak for x86_64 and
    powerpc.

    Signed-off-by: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anil S Keshavamurthy
     
  • Now that all these entries in the arch ioctl32.c files are gone [1], we can
    build fs/compat_ioctl.c as a normal object and kill tons of cruft. We need a
    special do_ioctl32_pointer handler for s390 so the compat_ptr call is done.
    This is not needed but harmless on all other architectures. Also remove some
    superflous includes in fs/compat_ioctl.c

    Tested on ppc64.

    [1] parisc still had it's PPP handler left, which is not fully correct
    for ppp and besides that ppp uses the generic SIOCPRIV ioctl so it'd
    kick in for all netdevice users. We can introduce a proper handler
    in one of the next patch series by adding a compat_ioctl method to
    struct net_device but for now let's just kill it - parisc doesn't
    compile in mainline anyway and I don't want this to block this
    patchset.

    Signed-off-by: Christoph Hellwig
    Cc: Matthew Wilcox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • The comment in compat.c is wrong, every architecture provides a
    get_compat_sigevent() for the IPC compat code already.

    This basically moves the x86_64 version to common code and removes all the
    others.

    Signed-off-by: Christoph Hellwig
    Acked-by: Paul Mackerras
    Cc: Arnd Bergmann
    Cc: Benjamin Herrenschmidt
    Cc: Martin Schwidefsky
    Cc: "David S. Miller"
    Acked-by: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Cc: Eric Dumazet
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

10 Jan, 2006

4 commits


09 Jan, 2006

29 commits

  • We don't set CONFIG_PPC_MULTIPLATFORM on iSeries (yet). Avoid
    compiling in the prom_init stuff on iSeries.

    Signed-off-by: Paul Mackerras

    Paul Mackerras
     
  • In add_memory() we should be using __va() to get a virtual address.
    Spotted by Mike Kravetz.

    Signed-off-by: Michael Ellerman
    Signed-off-by: Paul Mackerras

    Michael Ellerman
     
  • The CONFIG_PPC_OF symbol is used to mean that the firmware device tree
    access functions are available. Since we always have a device tree
    with ARCH=powerpc, make CONFIG_PPC_OF always Y for ARCH=powerpc.

    This fixes some compile errors reported by Kumar Gala, but in a
    different way to his patch. This also makes prom_parse.o be compiled
    only if CONFIG_PPC_OF so that non-OF ARCH=ppc platforms will compile.

    Signed-off-by: Paul Mackerras

    Paul Mackerras
     
  • When taking a DABR exception we were reporting the PC. It makes more
    sense to report the address that caused the exception, and the gdb guys
    would like it that way.

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

    Anton Blanchard
     
  • POWER5+ adds new PMU groups and as such needs to be treated differently
    by oprofile userspace. Change it to report itself as power5+.

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

    Anton Blanchard
     
  • My recent changes to oprofile broke it when built as a module. Fix it by
    using an enum instead of a function pointer. This way we still retain
    the oprofile configuration in the cputable.

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

    Anton Blanchard
     
  • This patch adds cpufreq support for all desktop "tower" G5 models. The
    only G5 models still lacking cpufreq support at this point are the
    Xserve and possibly the new iMac iSight (not tested). I'll have those
    added soon. That patch uses the new platform functions interpreter to
    implement frequency and voltage switching on most models.

    Note that in order to find the low frequency value, I had to hack
    something that might now work properly on all models, so if the
    frequency value reported when running low speed looks bogus to you,
    please report it to me. (Appart from a bogus reported value, things
    should work fine).

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • This is the platform function interpreter itself along with the backends
    for UniN/U3/U4, mac-io, GPIOs and i2c. It adds the ability to execute
    those do-platform-* scripts in the device-tree (at least for most
    devices for which a backend is provided). This should replace the clock
    spreading hacks properly. It might also have an impact on all sort of
    machines since some of the scripts marked "at init" will now be executed
    on boot (or some other on sleep/wakeup), those will possibly do things
    that the kernel didn't do at all, like setting some values into some i2c
    devices (changing thermal sensor calibration or conversion rate) etc...
    Thus regression testing is MUCH welcome. Also loook for errors in dmesg.
    That's also why I've left rather verbose debugging enabled in this
    version of the patch.

    (I do expect some Windtunnel G4s to show some errors as they have an i2c
    clock chip on the PMU bus that uses some primitives that the i2c backend
    doesn't implement yet. I really need users that have one of those
    machine to come back to me so we can get that done right, though the
    errors themselves should be harmless, I suspect the machine might not
    run at full speed).

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • This is the continuation of the previous patch. This one removes the old
    PowerMac i2c drivers (i2c-keywest and i2c-pmac-smu) and replaces them
    both with a single stub driver that uses the new PowerMac low i2c layer.

    Now that i2c-keywest is gone, the low-i2c code is extended to support
    interrupt driver transfers. All i2c busses now appear as platform
    devices. Compatibility with existing drivers should be maintained as the
    i2c bus names have been kept identical, except for the SMU bus but in
    that later case, all users has been fixed.

    With that patch added, matching a device node to an i2c_adapter becomes
    trivial.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • This is the first part of a rework of the PowerMac i2c code. It
    completely reworks the "low_i2c" layer. It is now more flexible,
    supports KeyWest, SMU and PMU i2c busses, and provides functions to
    match device nodes to i2c busses and adapters.

    This patch also extends & fix some bugs in the SMU driver related to i2c
    support and removes the clock spreading hacks from the pmac feature code
    rather than adapting them to the new API since they'll be replaced by
    the platform function code completely in patch 3/5

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • ppc64 has its own version of sys_time. It looks pretty scary, touching
    a whole bunch of variables without any locking or memory ordering.

    In fact, a recent bugreport has shown it can actually go backwards. Time
    to remove it and just use the generic sys_time, which is implemented on
    top of do_gettimeofday.

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

    Anton Blanchard
     
  • For far, all SPU triggered interrupts always end up on
    the first SMT thread, which is a bad solution.

    This patch implements setting the affinity to the
    CPU that was running last when entering execution on
    an SPU. This should result in a significant reduction
    in IPI calls and better cache locality for SPE thread
    specific data.

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

    Arnd Bergmann
     
  • One local variable is missing an __iomem modifier,
    in another place, we pass a completely unused argument
    with a missing __user modifier.

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

    Arnd Bergmann
     
  • In a hypervisor based setup, direct access to the first
    priviledged register space can typically not be allowed
    to the kernel and has to be implemented through hypervisor
    calls.

    As suggested by Masato Noguchi, let's abstract the register
    access trough a number of function calls. Since there is
    currently no public specification of actual hypervisor
    calls to implement this, I only provide a place that
    makes it easier to hook into.

    Cc: Masato Noguchi
    Cc: Geoff Levand
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Paul Mackerras

    Arnd Bergmann
     
  • The logic for sys_spu_run keeps growing and it does
    not really belong into file.c any more since we
    moved away from using regular file operations to our
    own syscall.

    No functional change in here.

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

    Arnd Bergmann
     
  • checking bits manually might not be synchonized with
    the use of set_bit/clear_bit. Make sure we always use
    the correct bitops by removing the unnecessary
    identifiers.

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

    Arnd Bergmann
     
  • If creating one entry failed in spufs_fill_dir,
    we never cleaned up the freshly created entries.
    Fix this by calling the cleanup function on error.

    Noticed by Al Viro.

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

    Arnd Bergmann
     
  • If get_unused_fd failed in sys_spu_create, we never cleaned
    up the created directory. Fix that by restructuring the
    error path.

    Noticed by Al Viro.

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

    Arnd Bergmann
     
  • When spu_activate fails in spu_acquire_runnable, the
    state must still be SPU_STATE_SAVED, we were
    incorrectly setting it to SPU_STATE_RUNNABLE.

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

    Arnd Bergmann
     
  • During an earlier cleanup, we lost the serialization
    of multiple spu_run calls performed on the same
    spu_context. In order to get this back, introduce a
    mutex in the spu_context that is held inside of spu_run.

    Noticed by Al Viro.

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

    Arnd Bergmann
     
  • Only checking for SPUFS_MAGIC is not reliable, because
    it might not be unique in theory. Worse than that,
    we accidentally allow spu_run to be performed on
    any file in spufs, not just those returned from
    spu_create as intended.

    Noticed by Al Viro.

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

    Arnd Bergmann
     
  • spu_forget will do mmput on the DMA address space,
    which can lead to lots of other stuff getting triggered.
    We better not hold a semaphore here that we might
    need in the process.

    Noticed by Al Viro.

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

    Arnd Bergmann
     
  • We need to check for validity of owner under down_write,
    down_read is not enough.

    Noticed by Al Viro.

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

    Arnd Bergmann
     
  • This patch enables support for pause(0) power management state
    for the Cell Broadband Processor, which is import for power efficient
    operation. The pervasive infrastructure will in the future enable
    us to introduce more functionality specific to the Cell's
    pervasive unit.

    From: Maximino Aguilar
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Paul Mackerras

    Arnd Bergmann
     
  • Only build in support for ISA and PCI cases if we have enabled CONFIG_ISA
    and CONFIG_PCI. Additionally, isa_bridge is a global so we shouldn't use
    it a parameter name since it gets redefined to NULL when !CONFIG_PCI.

    Signed-off-by: Kumar Gala
    Signed-off-by: Paul Mackerras

    Kumar Gala
     
  • At present, we are not looking at all interrupt controller nodes in the
    device tree even though the proper node was not found. This is causing
    the system panic. The attached patch will scan all nodes until it finds
    the proper interrupt controller type.

    Signed-off-by: Haren Myneni
    Signed-off-by: Paul Mackerras

    Haren Myneni
     
  • In setup_arch and setup_system call find_legacy_serial_ports() if we
    build in support for 8250 serial ports instead of basing it on PPC_MULTIPLATFORM.

    Signed-off-by: Kumar Gala
    Signed-off-by: Paul Mackerras

    Kumar Gala
     
  • Added a common udbg_progress for use by ppc_md.progress()

    Signed-off-by: Kumar Gala
    Signed-off-by: Paul Mackerras

    Kumar Gala
     
  • Add the ability to configure and initialize legacy 8250 serials
    ports on an SOC bus. Also, fixed an issue that we would not
    configure any serial ports if "linux,stdout-path" was not found.

    Signed-off-by: Kumar Gala
    Signed-off-by: Paul Mackerras

    Kumar Gala