18 Nov, 2010

1 commit


17 Nov, 2010

2 commits

  • Move the mid-layer's ->queuecommand() invocation from being locked
    with the host lock to being unlocked to facilitate speeding up the
    critical path for drivers who don't need this lock taken anyway.

    The patch below presents a simple SCSI host lock push-down as an
    equivalent transformation. No locking or other behavior should change
    with this patch. All existing bugs and locking orders are preserved.

    Additionally, add one parameter to queuecommand,
    struct Scsi_Host *
    and remove one parameter from queuecommand,
    void (*done)(struct scsi_cmnd *)

    Scsi_Host* is a convenient pointer that most host drivers need anyway,
    and 'done' is redundant to struct scsi_cmnd->scsi_done.

    Minimal code disturbance was attempted with this change. Most drivers
    needed only two one-line modifications for their host lock push-down.

    Signed-off-by: Jeff Garzik
    Acked-by: James Bottomley
    Signed-off-by: Linus Torvalds

    Jeff Garzik
     
  • * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
    [S390] kprobes: Fix the return address of multiple kretprobes
    [S390] kprobes: disable interrupts throughout
    [S390] ftrace: build without frame pointers on s390
    [S390] mm: add devmem_is_allowed() for STRICT_DEVMEM checking
    [S390] vmlogrdr: purge after recording is switched off
    [S390] cio: fix incorrect ccw_device_init_count
    [S390] tape: add medium state notifications
    [S390] fix get_user_pages_fast

    Linus Torvalds
     

13 Nov, 2010

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (66 commits)
    can-bcm: fix minor heap overflow
    gianfar: Do not call device_set_wakeup_enable() under a spinlock
    ipv6: Warn users if maximum number of routes is reached.
    docs: Add neigh/gc_thresh3 and route/max_size documentation.
    axnet_cs: fix resume problem for some Ax88790 chip
    ipv6: addrconf: don't remove address state on ifdown if the address is being kept
    tcp: Don't change unlocked socket state in tcp_v4_err().
    x25: Prevent crashing when parsing bad X.25 facilities
    cxgb4vf: add call to Firmware to reset VF State.
    cxgb4vf: Fail open if link_start() fails.
    cxgb4vf: flesh out PCI Device ID Table ...
    cxgb4vf: fix some errors in Gather List to skb conversion
    cxgb4vf: fix bug in Generic Receive Offload
    cxgb4vf: don't implement trivial (and incorrect) ndo_select_queue()
    ixgbe: Look inside vlan when determining offload protocol.
    bnx2x: Look inside vlan when determining checksum proto.
    vlan: Add function to retrieve EtherType from vlan packets.
    virtio-net: init link state correctly
    ucc_geth: Fix deadlock
    ucc_geth: Do not bring the whole IF down when TX failure.
    ...

    Linus Torvalds
     

10 Nov, 2010

3 commits

  • If automatic purge is enabled for a vmlogrdr device, old records are
    purged before an IUCV recording service is switched on or off. If z/VM
    generates a large number of records between purging and switching the
    recording service off, these records remain queued, and may have a
    negative performance impact on the z/VM system. To avoid this problem,
    we need to purge the records after recording is switched off.

    Signed-off-by: Stefan Weinhuber
    Signed-off-by: Martin Schwidefsky

    Stefan Weinhuber
     
  • If device recognition is interrupted by a subchannel event
    indicating that the device is gone, ccw_device_init_count
    is not correctly decreased.

    Fix this by reporting the corresponding event to the device
    recognition callback via the state machine.

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • Add uevent notifications for tape cartridge load and tape
    cartridge unload events.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     

09 Nov, 2010

2 commits

  • QDIO is running independent from netdevice state. We are not
    allowed to schedule NAPI in case the netdevice is not open.

    Signed-off-by: Frank Blaschka
    Signed-off-by: David S. Miller

    Frank Blaschka
     
  • For a certain Hipersockets specific error code in the xmit path, the
    qeth driver tries to invoke dev_queue_xmit again.
    Commit 79640a4ca6955e3ebdb7038508fa7a0cd7fa5527 introduces a busylock
    causing locking problems in case of re-invoked dev_queue_xmit by qeth.
    This patch removes the attempts to retry packet sending with
    dev_queue_xmit from the qeth driver.

    Signed-off-by: Ursula Braun
    Signed-off-by: Frank Blaschka
    Signed-off-by: David S. Miller

    Ursula Braun
     

01 Nov, 2010

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (70 commits)
    [SCSI] pmcraid: add support for set timestamp command and other fixes
    [SCSI] pmcraid: remove duplicate struct member
    [SCSI] qla4xxx: Fix cmd check in qla4xxx_cmd_wait
    [SCSI] megaraid_sas: Version and documentation update
    [SCSI] megaraid_sas: Add three times Online controller reset
    [SCSI] megaraid_sas: Add input parameter for max_sectors
    [SCSI] megaraid_sas: support devices update flag
    [SCSI] libosd: write/read_sg_kern API
    [SCSI] libosd: Support for scatter gather write/read commands
    [SCSI] libosd: Free resources in reverse order of allocation
    [SCSI] libosd: Fix bug in attr_page handling
    [SCSI] lpfc 8.3.18: Update lpfc driver version to 8.3.18
    [SCSI] lpfc 8.3.18: Add new WQE support
    [SCSI] lpfc 8.3.18: Fix critical errors
    [SCSI] lpfc 8.3.18: Adapter Shutdown and Unregistration cleanup
    [SCSI] lpfc 8.3.18: Add logic to detect last devloss timeout
    [SCSI] lpfc 8.3.18: Add support of received ELS commands
    [SCSI] lpfc 8.3.18: FC/FCoE Discovery fixes
    [SCSI] ipr: add definitions for a new adapter
    [SCSI] bfa: fix comments for c files
    ...

    Linus Torvalds
     

29 Oct, 2010

2 commits


25 Oct, 2010

25 commits

  • Use the FCP_RSP_INFO length to correctly skip the FCP_RSP_INFO field.

    Reviewed-by: Swen Schillig
    Signed-off-by: Christof Schmitt
    Signed-off-by: James Bottomley

    Christof Schmitt
     
  • zfcp_unit_release calls put_device on the port. Ensure that get_device
    has been called before possibly triggering the release function
    through put_device or device_unregister.

    Reviewed-by: Swen Schillig
    Signed-off-by: Christof Schmitt
    Signed-off-by: James Bottomley

    Christof Schmitt
     
  • If an exchange config is executed while the local link is down, the
    request succeeds but the returned data is incomplete. Proceeding with
    the adapter activation is leading to an unpredictable behaviour (e.g.
    kernel panic) caused by invalid values. In such a scenario the
    recommended ERP is to retry the action and wait for a link up event.
    If the issue persists the activation has to fail.

    Signed-off-by: Swen Schillig
    Sigend-off-by: Christof Schmitt
    Signed-off-by: James Bottomley

    Swen Schillig
     
  • Store the facility list once at system startup with stfl/stfle and
    reuse the result for all facility tests.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • For the DASD DIAG discipline IO is started through special diagnose
    calls. Unsolicited interrupts may contain information about the device
    itself. But this information is not needed because the device is not
    used directly.
    Fix the case that an unimplemented dicipline function may be called
    by ignoring unsolicited interrupts for the DIAG disciplin.

    Signed-off-by: Stefan Haberland
    Signed-off-by: Martin Schwidefsky

    Stefan Haberland
     
  • The dasd interrupt handler needs to distinguish solicited from
    unsolicited interrupts, as unsolicited interrupts may require special
    handling (e.g. summary unit checks) and solicited interrupts require
    proper error recovery for the failed I/O request.
    The interrupt handler needs to check several bit fields in the
    interrupt response block (irb) to make this distinction.
    So far our check of the status control bits has not been specific
    enough, which may lead to a failed request getting just retried
    instead of the necessary error recovery.

    Signed-off-by: Stefan Weinhuber
    Signed-off-by: Martin Schwidefsky

    Stefan Weinhuber
     
  • Writing to /proc/dasd/statistics while the debug level of the
    generic dasd debug entry is set to DBF_DEBUG will lead to an
    use after free when accessing the debug entry later.
    Since for the format string "%s" in the s390 dbf only a pointer
    to the string is stored in the debug feature and the buffer used
    here is freed afterwards.

    To fix this just remove the debug message.

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • Function ccw_device_cancel_halt_clear may cause an unexpected kernel
    panic if a clear function is currently active at the subchannel for
    which it is called. In that case, the iretry counter used to determine
    the number of retries is never initialized, leading to an immediate
    failure of the function which results in a kernel panic.

    Fix this by initializing the iretry counter when the function is
    first called. Also replace the kernel panic with a return code: a
    single malfunctioning I/O device should not automatically cause a
    system-wide kernel panic.

    Signed-off-by: Peter Oberparleiter
    Signed-off-by: Martin Schwidefsky

    Peter Oberparleiter
     
  • Read external interrupts parameters from the lowcore in the first
    level interrupt handler in entry[64].S.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • This patch adds a notification mechanism to inform ccw drivers
    about changes to channel paths, which occured while the device
    is online.

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • Update the subchannel descriptor while resuming from hibernate
    in order to obtain current link addresses.

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • Update the channel path descriptors after hibernation.
    This is done unlocked, since we are the only active
    task at this time.

    Note: chsc_determine_base_channel_path_desc is changed
    to use spin_lock_irqsave, since it's called with
    interrupts disabled in this case.

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • Update the channel path descriptor at the beginning of to the
    vary_on operation.

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • chsc_determine_channel_path_desc is called by a wrapper
    who allocates a response struct. The response data
    is then memcpy'ed to this response struct by
    chsc_determine_channel_path_desc.

    Change chsc_determine_base_channel_path_desc to use the
    global chsc_page and deliver it to the function doing
    the actual chsc call. The channel path desriptor is
    then directly read from the response data.

    As a result we get rid of the additional allocation
    for the response struct.

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • Most wrappers around the channel subsystem call have their own logic
    to allocate memory (with proper alignment) or use preallocated or
    static memory. This patch converts most users of the channel
    subsystem call to use the same preallocated page (proteced by a
    spinlock).

    Note: The sei_page which is used in our crw handler to call
    "store event information" has to coexist, since
    a) in crw context, while accessing the sei_page, sleeping is allowed
    (which will conflict with the spinlock protection of the chsc_page)
    b) in crw context, while accessing the sei_page, channel subsystem
    calls are allowed (which itself would require the page).

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • This patch fixes:
    * kfree vs. free_page usage
    * structure definition for determine_css_characteristics
    * naming convention for the chsc init function
    * deregistration of crw handlers in the cleanup path

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • Serialize access to members of struct channel_path with a mutex.

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • If a ccwdevice is lost during hibernation and a different
    ccwdevice is attached to the same subchannel, we will
    deregister the old ccw device and register the new one.

    Since deregistration is not allowed in this context, we
    handle this action later. However, some parts of the
    registration process for the new device were started anyway,
    so that the old device structure is no longer accessible.

    Fix this by deferring both actions to the afterwards
    scheduled subchannel event.

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • Signed-off-by: Andy Shevchenko
    Signed-off-by: Martin Schwidefsky

    Andy Shevchenko
     
  • The dasd_eckd_dump_sense_dbf function uses a macro for s390 debug
    feature that can handle up to 8 parameters (for the DASD device
    driver).
    Fix the function to use only the maximum number of parameters.

    Signed-off-by: Stefan Haberland
    Signed-off-by: Martin Schwidefsky

    Stefan Haberland
     
  • fix this sparse warning:

    drivers/s390/cio/css.c:580:6: warning: symbol 'css_schedule_eval_all_unreg'
    was not declared. Should it be static?

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • Signed-off-by: Joe Perches
    Signed-off-by: Martin Schwidefsky

    Joe Perches
     
  • The usual way to recover a failed DASD ECKD request (cqr) is to create
    a new request with an appropriate recovery CCW program. Certain
    features, e.g. failfast, can be enabled per request and are stored in
    the requests flags. These flags have to be copied from the failed to
    the recovery request, to let the recovery request use the same
    features as the original one.

    Signed-off-by: Stefan Weinhuber
    Signed-off-by: Martin Schwidefsky

    Stefan Weinhuber
     
  • * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
    Update broken web addresses in arch directory.
    Update broken web addresses in the kernel.
    Revert "drivers/usb: Remove unnecessary return's from void functions" for musb gadget
    Revert "Fix typo: configuation => configuration" partially
    ida: document IDA_BITMAP_LONGS calculation
    ext2: fix a typo on comment in ext2/inode.c
    drivers/scsi: Remove unnecessary casts of private_data
    drivers/s390: Remove unnecessary casts of private_data
    net/sunrpc/rpc_pipe.c: Remove unnecessary casts of private_data
    drivers/infiniband: Remove unnecessary casts of private_data
    drivers/gpu/drm: Remove unnecessary casts of private_data
    kernel/pm_qos_params.c: Remove unnecessary casts of private_data
    fs/ecryptfs: Remove unnecessary casts of private_data
    fs/seq_file.c: Remove unnecessary casts of private_data
    arm: uengine.c: remove C99 comments
    arm: scoop.c: remove C99 comments
    Fix typo configue => configure in comments
    Fix typo: configuation => configuration
    Fix typo interrest[ing|ed] => interest[ing|ed]
    Fix various typos of valid in comments
    ...

    Fix up trivial conflicts in:
    drivers/char/ipmi/ipmi_si_intf.c
    drivers/usb/gadget/rndis.c
    net/irda/irnet/irnet_ppp.c

    Linus Torvalds
     
  • * 'kvm-updates/2.6.37' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (321 commits)
    KVM: Drop CONFIG_DMAR dependency around kvm_iommu_map_pages
    KVM: Fix signature of kvm_iommu_map_pages stub
    KVM: MCE: Send SRAR SIGBUS directly
    KVM: MCE: Add MCG_SER_P into KVM_MCE_CAP_SUPPORTED
    KVM: fix typo in copyright notice
    KVM: Disable interrupts around get_kernel_ns()
    KVM: MMU: Avoid sign extension in mmu_alloc_direct_roots() pae root address
    KVM: MMU: move access code parsing to FNAME(walk_addr) function
    KVM: MMU: audit: check whether have unsync sps after root sync
    KVM: MMU: audit: introduce audit_printk to cleanup audit code
    KVM: MMU: audit: unregister audit tracepoints before module unloaded
    KVM: MMU: audit: fix vcpu's spte walking
    KVM: MMU: set access bit for direct mapping
    KVM: MMU: cleanup for error mask set while walk guest page table
    KVM: MMU: update 'root_hpa' out of loop in PAE shadow path
    KVM: x86 emulator: Eliminate compilation warning in x86_decode_insn()
    KVM: x86: Fix constant type in kvm_get_time_scale
    KVM: VMX: Add AX to list of registers clobbered by guest switch
    KVM guest: Move a printk that's using the clock before it's ready
    KVM: x86: TSC catchup mode
    ...

    Linus Torvalds
     

24 Oct, 2010

3 commits

  • The one big missing feature in s390-virtio was hotplugging. This is no more.
    This patch implements hotplug add support, so you can on the fly add new devices
    in the guest.

    Keep in mind that this needs a patch for qemu to actually leverage the
    functionality.

    Signed-off-by: Alexander Graf
    Signed-off-by: Marcelo Tosatti

    Alexander Graf
     
  • Currenty the ext_param field only distinguishes between "config change" and
    "vring interrupt". We can do a lot more with it though, so let's enable a
    full byte of possible values and constants to #defines while at it.

    Signed-off-by: Alexander Graf
    Signed-off-by: Marcelo Tosatti

    Alexander Graf
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1699 commits)
    bnx2/bnx2x: Unsupported Ethtool operations should return -EINVAL.
    vlan: Calling vlan_hwaccel_do_receive() is always valid.
    tproxy: use the interface primary IP address as a default value for --on-ip
    tproxy: added IPv6 support to the socket match
    cxgb3: function namespace cleanup
    tproxy: added IPv6 support to the TPROXY target
    tproxy: added IPv6 socket lookup function to nf_tproxy_core
    be2net: Changes to use only priority codes allowed by f/w
    tproxy: allow non-local binds of IPv6 sockets if IP_TRANSPARENT is enabled
    tproxy: added tproxy sockopt interface in the IPV6 layer
    tproxy: added udp6_lib_lookup function
    tproxy: added const specifiers to udp lookup functions
    tproxy: split off ipv6 defragmentation to a separate module
    l2tp: small cleanup
    nf_nat: restrict ICMP translation for embedded header
    can: mcp251x: fix generation of error frames
    can: mcp251x: fix endless loop in interrupt handler if CANINTF_MERRF is set
    can-raw: add msg_flags to distinguish local traffic
    9p: client code cleanup
    rds: make local functions/variables static
    ...

    Fix up conflicts in net/core/dev.c, drivers/net/pcmcia/smc91c92_cs.c and
    drivers/net/wireless/ath/ath9k/debug.c as per David

    Linus Torvalds