07 Jan, 2006

36 commits

  • Signed-off-by: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     
  • - make i2o_iop_free() static inline (from Adrian Bunk)

    - changed kmalloc() + memset(0) into kzalloc()

    Signed-off-by: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     
  • Fix some typos and minor code beautifying.

    Signed-off-by: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     
  • - Removed some kmalloc's with __GFP_ZERO and replace it with memset()
    because it didn't work properly.

    - Fixed returned message frame in i2o_cfg_passthru() which caused raidutils
    to display wrong error message in case a disk was missing.

    - Fixed size of printk() in i2o_scsi.c.

    - Fixed get_device() and put_device() in probing of the I2O controller.

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     
  • Removed wrong I2O device class, which was only needed to add sysfs attributes.

    Signed-off-by: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     
  • Fix lot of BE LE bugs which prevent it from working on SPARC.

    Signed-off-by: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     
  • Changed the I2O API to create I2O messages first in kernel memory and then
    transfer it at once over the PCI bus instead of sending each quad-word over
    the PCI bus.

    Signed-off-by: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     
  • Sanitize some s390 Kconfig options. We have ARCH_S390, ARCH_S390X,
    ARCH_S390_31, 64BIT, S390_SUPPORT and COMPAT. Replace these 6 options by
    S390, 64BIT and COMPAT.

    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Martin Schwidefsky
     
  • When the sclp_cpi module is loaded on a system which does not support the
    required SCLP call (e.g. on z/VM), ENOSUPP is returned to user space. The
    correct return value is EOPNOTSUPP.

    Signed-off-by: Peter Oberparleiter
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Oberparleiter
     
  • - Use kzalloc() in blacklist.c.
    - Kill unwanted casts in blacklist.c.
    - Provide release function for struct channel_subsystem.

    Signed-off-by: Cornelia Huck
    Cc: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cornelia Huck
     
  • Signed-off-by: Eric Rossman
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Rossman
     
  • Add support for multiple subchannel sets. Works with arbitrary devices in
    subchannel set 1 and is transparent to device drivers. Although currently
    only two subchannel sets are available, this will work with the architectured
    maximum number of subchannel sets as well.

    Signed-off-by: Cornelia Huck
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cornelia Huck
     
  • Convert /proc/cio_ignore to a sequential file. This makes multiple subchannel
    sets support easier.

    Signed-off-by: Cornelia Huck
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cornelia Huck
     
  • struct channel_subsystem encapsulates several per channel subsystem
    properties, like status of chpids or the global path group id.

    Signed-off-by: Cornelia Huck
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cornelia Huck
     
  • for_each_subchannel() is an iterator calling a function for every possible
    subchannel id until non-zero is returned. Convert the current iterating
    functions to it.

    Signed-off-by: Cornelia Huck
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cornelia Huck
     
  • This patch introduces a struct subchannel_id containing the subchannel number
    (formerly referred to as "irq") and switches code formerly relying on the
    subchannel number over to it.

    While we're touching inline assemblies anyway, make sure they have correct
    memory constraints.

    Signed-off-by: Cornelia Huck
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cornelia Huck
     
  • New feature V=V qdio pass-through.

    QDIO and HiperSockets processing in z/VM V=V guest environments (as well as
    V=R with z/VM running in LPAR mode) requires shadowing of all QDIO
    architecture queue elements. Especially the shadowing of SBALs and SLSBs
    structures in the hypervisor, and the need to issue SIGA SYNC operations to
    observe state changes, eventually causes significant CPU processing overhead
    in the hypervisor.

    The QDIO pass-through support for V=V guests avoids the shadowing of SBALs and
    SLSBs. This significantly reduces the hypervisor overhead for QDIO based I/O.

    Signed-off-by: Frank Pavlic
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Frank Pavlic
     
  • To properly support multipath-failover handling, the linux block layer has
    introduced a special request flag, 'REQ_FAILFAST'. This flag is now used to
    return requests immediately in case the device is not operational.

    Signed-off-by: Horst Hummel
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Horst Hummel
     
  • The IOCTL BIODASDPRRD had no return code for 'profiling is inactive' and
    therefore tunedasd wrote misleading message for request-counter = 0.
    Introduce return-code EIO for inactive profiling.

    Signed-off-by: Horst Hummel
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Horst Hummel
     
  • Extract the s390_root_dev_* functions from the common I/O layer as they are
    also used by non-ccw device drivers.

    Signed-off-by: Carsten Otte
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Carsten Otte
     
  • If we receive path not operational indications (pnom in pmcw nonzero), we
    switch off those paths. To catch them becoming available again, we have to
    recalculate the lpm from the pmcw each time we start path verification.

    Signed-off-by: Cornelia Huck
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cornelia Huck
     
  • Moved definition of CMS volume label to vtoc.h and modify partitions/ibm.c to
    use this volume label definition instead of anonymous array.

    Signed-off-by: Peter Oberparleiter
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Oberparleiter
     
  • Hugh Dickins

    Fix the broken atomic_cmpxchg primitive. Add atomic_sub_and_test,
    atomic64_sub_return, atomic64_sub_and_test, atomic64_cmpxchg,
    atomic64_add_unless and atomic64_inc_not_zero. Replace old style
    atomic_compare_and_swap by atomic_cmpxchg. Shorten the whole header by
    defining most primitives with the two inline functions atomic_add_return and
    atomic_sub_return.

    In addition this patch contains the s390 related fixes of Hugh's "mm: fill
    arch atomic64 gaps" patch.

    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Martin Schwidefsky
     
  • We had a report from one loony user who tried out suspend to disk using a
    swap partition on a firewire drive. As the firewire thread was put to
    sleep it didn't work out too well.

    Signed-off-by: Dave Jones
    Cc: Pavel Machek
    Cc: Ben Collins
    Cc: Jody McIntyre
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jones
     
  • Add support to hw_random for the Geode LX HRNG device.

    Signed-off-by: Jordan Crouse
    Cc: Alan Cox
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jordan Crouse
     
  • PnP BIOS data, code, and 32-bit entry segments all have fixed limits as well;
    set them in the GDT rather than adding more code. It would be nice to add
    these fixups to the boot GDT rather than setting the GDT for each CPU; perhaps
    I can wiggle this in later, but getting it in before the subsys init looks
    tricky.

    Also, make some progress on deprecating the ugly Q_SET_SEL macros.

    Signed-off-by: Zachary Amsden
    Cc: "Seth, Rohit"
    Cc: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     
  • The one remaining caller of set_limit, the PnP BIOS code, calls into the PnP
    BIOS, passing kernel parameters in and out. These parameteres may be passed
    from arbitrary kernel virtual memory, so they deserve strict protection to
    stop a bad BIOS from smashing beyond the object size.

    Unfortunately, the use of set_limit was badly botching this by setting the
    limit in terms of pages, when it really should have byte granularity.

    When doing this, I discovered my BIOS had the buggy code during the "get
    system device node" call:

    mov ax, es:[bx]

    Which is harmless, but has a trivial workaround.

    Signed-off-by: Zachary Amsden
    Cc: "Seth, Rohit"
    Cc: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     
  • Move PnP BIOS segment definitions into segment.h; the segments are reserved
    here, so they might as well be defined here as well.

    Note I didn't do this for APM BIOS, as Macintosh and other systems use those
    values to emulate APM in some scary way I don't want to understand.

    Signed-off-by: Zachary Amsden
    Acked-by: "Seth, Rohit"
    Cc: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     
  • Make GDT page aligned and page padded to support running inside of a
    hypervisor. This prevents false sharing of the GDT page with other hot
    data, which is not allowed in Xen, and causes performance problems in
    VMware.

    Rather than go back to the old method of statically allocating the GDT
    (which wastes unneded space for non-present CPUs), the GDT for APs is
    allocated dynamically.

    Signed-off-by: Zachary Amsden
    Cc: "Seth, Rohit"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     
  • Only output the messages about fan speed changes with a verbose=1 module
    param.

    Signed-off-by: Fabio M. Di Nitto
    Signed-off-by: Ben Collins
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Collins
     
  • Before this patch we were just using the "classic" /dev/ttySx devices.
    However when another on the system is loaded that uses those (like drivers for
    serial PCMCIA), that creates a conflict for the minors. Therefore, we now use
    /dev/ttyPSC[0:5] (note the 0-based numbering !) with some minors we've been
    assigned in the "Low Density Serial port major"

    Signed-off-by: Sylvain Munaut
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sylvain Munaut
     
  • Signed-off-by: Wolfgang Denk
    Signed-off-by: Sylvain Munaut
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sylvain Munaut
     
  • therm_pm72.c and windfarm_lm75_sensor.c both store the return from
    i2c_add_driver() but do no further processing on the result. Simply return
    what i2c_add_driver() did, instead.

    Signed-off-by: Arthur Othieno
    Acked-by: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arthur Othieno
     
  • register_memory is global and declared so in linux/memory.h. Update the
    HOTPLUG specific definition to match. This fixes a compile warning when
    HOTPLUG is enabled.

    Signed-off-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     
  • Both register_memory_notifer and unregister_memory_notifier are global and
    declared so in linux/memory.h. Update the HOTPLUG specific definitions to
    match. This fixes a compile warning when HOTPLUG is enabled.

    Signed-off-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     
  • Janos Haar of First NetCenter Bt. reported numerous crashes involving the
    NBD driver. With his help, this was tracked down to bogus bio vectors
    which in turn was the result of a race condition between the
    receive/transmit routines in the NBD driver.

    The bug manifests itself like this:

    CPU0 CPU1
    do_nbd_request
    add req to queuelist
    nbd_send_request
    send req head
    for each bio
    kmap
    send
    nbd_read_stat
    nbd_find_request
    nbd_end_request
    kunmap

    When CPU1 finishes nbd_end_request, the request and all its associated
    bio's are freed. So when CPU0 calls kunmap whose argument is derived from
    the last bio, it may crash.

    Under normal circumstances, the race occurs only on the last bio. However,
    if an error is encountered on the remote NBD server (such as an incorrect
    magic number in the request), or if there were a bug in the server, it is
    possible for the nbd_end_request to occur any time after the request's
    addition to the queuelist.

    The following patch fixes this problem by making sure that requests are not
    added to the queuelist until after they have been completed transmission.

    In order for the receiving side to be ready for responses involving
    requests still being transmitted, the patch introduces the concept of the
    active request.

    When a response matches the current active request, its processing is
    delayed until after the tranmission has come to a stop.

    This has been tested by Janos and it has been successful in curing this
    race condition.

    From: Herbert Xu

    Here is an updated patch which removes the active_req wait in
    nbd_clear_queue and the associated memory barrier.

    I've also clarified this in the comment.

    Signed-off-by: Herbert Xu
    Cc:
    Cc: Paul Clements
    Signed-off-by: Herbert Xu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Herbert Xu
     

06 Jan, 2006

4 commits