05 Jun, 2008

40 commits

  • When allocating memory for GID_PN nameserver requests, the allocation
    function stores the pointer to the mempool, but then overwrites the
    pointer via memset. Later, the wrong function to free the memory will
    be called, since this is based on the stored pointer.

    Fix this by first initializing the struct and then storing the pointer.

    Signed-off-by: Christof Schmitt
    Signed-off-by: Martin Peschke
    Signed-off-by: James Bottomley

    Christof Schmitt
     
  • Processing of an unsolicted status request can lead to a locking race
    of the request_queue's queue_lock during the recreation of the
    used up status read request while still in interrupt context
    of the response handler.

    Detaching the 'refill' of the long running status read requests from
    the handler to a scheduled work is solving this issue.

    In addition, each refill-run is trying to re-establish the full amount
    of status read requests, which might have failed in earlier runs.

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

    Swen Schillig
     
  • This patch makes the needlessly global struct mpt_proc_root_dir static.

    Signed-off-by: Adrian Bunk
    Acked-by: "Prakash, Sathya"
    Signed-off-by: James Bottomley

    Adrian Bunk
     
  • USB sometimes doesn't return an error but instead returns a residue
    value indicating part (or all) of the command wasn't completed. So if
    the driver _done() error processing indicates the command was fully
    processed, subtract off the residue so that this USB error gets
    propagated.

    Cc: Alan Stern
    Signed-off-by: James Bottomley

    James Bottomley
     
  • power.power_state is scheduled for removal. This patch (as1055)
    removes all uses of that field from the SCSI mesh driver.

    Signed-off-by: Alan Stern
    Acked-by: Paul Mackerras
    Signed-off-by: James Bottomley

    Alan Stern
     
  • drivers/scsi/aacraid/linit.c:865:9: warning: symbol 'aac_show_serial_number' was not declared. Should it be static?

    Signed-off-by: Harvey Harrison
    Acked-by: Mark Salyzyn
    Signed-off-by: James Bottomley

    Harvey Harrison
     
  • Update the documented list of products supported by the aacraid driver.

    Signed-off-by: Mark Salyzyn
    Signed-off-by: James Bottomley

    Mark Salyzyn
     
  • The latency information is provided on a SCSI device level (LUN)
    which can be found at the following location

     /sys/class/scsi_device//device/cmd_latency
     /sys/class/scsi_device//device/read_latency
     /sys/class/scsi_device//device/write_latency

    Each sysfs attribute provides the available data: min, max and sum for
    fabric and channel latency and the number of requests processed.

    An overrun of the variables is neither detected nor treated. The file
    has to be read twice to make a meaningful statement, because only the
    differences of the values between the two reads can be used. A reset
    of the values can be achieved by writing to the attribute.

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

    Christof Schmitt
     
  • Add the infrastructure to retrieve the fabric and channel latencies
    from FSF commands for each SCSI command that has been processed. For
    each unit, the sum, min, max and number of requests is tracked.

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

    Christof Schmitt
     
  • This patch just removes infrastructure that provided support for hardware
    handlers in the dm layer as it is not needed anymore.

    Signed-off-by: Chandra Seetharaman
    Acked-by: Alasdair G Kergon
    Signed-off-by: James Bottomley

    Chandra Seetharaman
     
  • This patch removes the 3 hardware handlers that currently exist
    under dm as the functionality is moved to SCSI layer in the earlier
    patches.

    [jejb: removed more makefile hunks and rejection fixes]
    Signed-off-by: Chandra Seetharaman
    Acked-by: Alasdair G Kergon
    Signed-off-by: James Bottomley

    Chandra Seetharaman
     
  • This patch just removes the dm layer's path initialization completion
    routine. This is separated from the other patch(scsi_dh: Use SCSI
    device handler in dm-multipath) Just to make that patch more readable.

    Signed-off-by: Chandra Seetharaman
    Acked-by: Alasdair G Kergon
    Signed-off-by: James Bottomley

    Chandra Seetharaman
     
  • Before this patch set (SCSI hardware handlers), initialization of a
    path was done asynchronously. Doing that requires a workqueue in each
    device/hardware handler module and leads to unneccessary complication
    in the device handler code, making it difficult to read the code and
    follow the state diagram.

    Moving that workqueue to this level makes the device handler code simpler.
    Hence, the workqueue is moved to dm level.

    A new workqueue is added instead of adding it to the existing workqueue
    (kmpathd) for the following reasons:
    1. Device activation has to happen faster, stacking them along
    with the other workqueue might lead to unnecessary delay
    in the activation of the path.
    2. The effect could be felt the other way too. i.e the current
    events that are handled by the existing workqueue might get
    a delayed response.

    Signed-off-by: Chandra Seetharaman
    Acked-by: Alasdair G Kergon
    Signed-off-by: James Bottomley

    Chandra Seetharaman
     
  • This patch converts dm-mpath to use scsi device handlers instead of
    dm's hardware handlers.

    This patch does not add any new functionality. Old behaviors remain and
    userspace tools work as is except that arguments supplied with hardware
    handler are ignored.

    One behavioral exception is: Activation of a path is synchronous in this
    patch, opposed to the older behavior of being asynchronous (changed in
    patch 07: scsi_dh: Add a single threaded workqueue for initializing a path)

    Note: There is no need to get a reference for the device handler module
    (as it was done in the dm hardware handler case) here as the reference
    is held when the device was first found. Instead we check and make sure
    that support for the specified device is present at table load time.

    Signed-off-by: Chandra Seetharaman
    Signed-off-by: Mike Christie
    Acked-by: Alasdair G Kergon
    Signed-off-by: James Bottomley

    Chandra Seetharaman
     
  • This adds support for EMC Clariions. This patch has the features that
    currently exists in mainline and advanced features from Ed's patches.

    Signed-off-by: Chandra Seetharaman
    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Chandra Seetharaman
     
  • This patch provides the device handler to support the older hp boxes
    which cannot be upgraded.

    Signed-off-by: Mike Christie
    Signed-off-by: Chandra Seetharaman
    Signed-off-by: James Bottomley

    Mike Christie
     
  • This patch provides the device handler to support the LSI RDAC SCSI
    based storage devices.

    Signed-off-by: Chandra Seetharaman
    Signed-off-by: James Bottomley

    Chandra Seetharaman
     
  • Some of the storage devices (that can be accessed through multiple paths),
    do need some special handling for
    1. Activating the passive path of the storage access.
    2. Decode and handle the special sense codes returned by the devices.
    3. Handle the I/Os being sent to the passive path, especially
    during the device probe time.
    when accessed through multiple paths.

    As of today this special device handling is done at the dm-multipath
    layer using dm-handlers. That works well for (1); for (2) to be handled
    at dm layer, scsi sense information need to be exported from SCSI to dm-layer,
    which is not very attractive; (3) cannot be done at all at the dm layer.

    Device handler has been moved to SCSI mainly to handle (2) and (3) properly.

    Signed-off-by: Chandra Seetharaman
    Signed-off-by: Mike Anderson
    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Chandra Seetharaman
     
  • Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (56 commits)
    l2tp: Fix possible oops if transmitting or receiving when tunnel goes down
    tcp: Fix for race due to temporary drop of the socket lock in skb_splice_bits.
    tcp: Increment OUTRSTS in tcp_send_active_reset()
    raw: Raw socket leak.
    lt2p: Fix possible WARN_ON from socket code when UDP socket is closed
    USB ID for Philips CPWUA054/00 Wireless USB Adapter 11g
    ssb: Fix context assertion in ssb_pcicore_dev_irqvecs_enable
    libertas: fix command size for CMD_802_11_SUBSCRIBE_EVENT
    ipw2200: expire and use oldest BSS on adhoc create
    airo warning fix
    b43legacy: Fix controller restart crash
    sctp: Fix ECN markings for IPv6
    sctp: Flush the queue only once during fast retransmit.
    sctp: Start T3-RTX timer when fast retransmitting lowest TSN
    sctp: Correctly implement Fast Recovery cwnd manipulations.
    sctp: Move sctp_v4_dst_saddr out of loop
    sctp: retran_path update bug fix
    tcp: fix skb vs fack_count out-of-sync condition
    sunhme: Cleanup use of deprecated calls to save_and_cli and restore_flags.
    xfrm: xfrm_algo: correct usage of RIPEMD-160
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
    sparc: switch /proc/led to seq_file
    sparc64: IO accessors fix

    Linus Torvalds
     
  • Some problems have been experienced in the field which cause an oops
    in the pppol2tp driver if L2TP tunnels fail while passing data.

    The pppol2tp driver uses private data that is referenced via the
    sk->sk_user_data of its UDP and PPPoL2TP sockets. This patch makes
    sure that the driver uses sock_hold() when it holds a reference to the
    sk pointer. This affects its sendmsg(), recvmsg(), getname(),
    [gs]etsockopt() and ioctl() handlers.

    Tested by ISP where problem was seen. System has been up 10 days with
    no oops since running this patch. Without the patch, an oops would
    occur every 1-2 days.

    Signed-off-by: James Chapman
    Signed-off-by: David S. Miller

    James Chapman
     
  • skb_splice_bits temporary drops the socket lock while iterating over
    the socket queue in order to break a reverse locking condition which
    happens with sendfile. This, however, opens a window of opportunity
    for tcp_collapse() to aggregate skbs and thus potentially free the
    current skb used in skb_splice_bits and tcp_read_sock.

    This patch fixes the problem by (re-)getting the same "logical skb"
    after the lock has been temporary dropped.

    Based on idea and initial patch from Evgeniy Polyakov.

    Signed-off-by: Octavian Purdila
    Acked-by: Evgeniy Polyakov
    Signed-off-by: David S. Miller

    Octavian Purdila
     
  • TCP "resets sent" counter is not incremented when a TCP Reset is
    sent via tcp_send_active_reset().

    Signed-off-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Sridhar Samudrala
     
  • The program below just leaks the raw kernel socket

    int main() {
    int fd = socket(PF_INET, SOCK_RAW, IPPROTO_UDP);
    struct sockaddr_in addr;

    memset(&addr, 0, sizeof(addr));
    inet_aton("127.0.0.1", &addr.sin_addr);
    addr.sin_family = AF_INET;
    addr.sin_port = htons(2048);
    sendto(fd, "a", 1, MSG_MORE, &addr, sizeof(addr));
    return 0;
    }

    Corked packet is allocated via sock_wmalloc which holds the owner socket,
    so one should uncork it and flush all pending data on close. Do this in the
    same way as in UDP.

    Signed-off-by: Denis V. Lunev
    Acked-by: Alexey Kuznetsov
    Signed-off-by: David S. Miller

    Denis V. Lunev
     
  • If an L2TP daemon closes a tunnel socket while packets are queued in
    the tunnel's reorder queue, a kernel warning is logged because the
    socket is closed while skbs are still referencing it. The fix is to
    purge the queue in the socket's release handler.

    WARNING: at include/net/sock.h:351 udp_lib_unhash+0x41/0x68()
    Pid: 12998, comm: openl2tpd Not tainted 2.6.25 #8
    [] warn_on_slowpath+0x41/0x51
    [] udp_lib_unhash+0x41/0x68
    [] sk_common_release+0x23/0x90
    [] udp_lib_close+0x8/0xa
    [] inet_release+0x42/0x48
    [] sock_release+0x14/0x60
    [] sock_close+0x29/0x30
    [] __fput+0xad/0x15b
    [] fput+0x17/0x19
    [] filp_close+0x50/0x5a
    [] sys_close+0x69/0x9f
    [] syscall_call+0x7/0xb

    Signed-off-by: James Chapman
    Signed-off-by: David S. Miller

    James Chapman
     
  • David S. Miller
     
  • Enable the Philips CPWUA054/00 in p54usb.

    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: John W. Linville

    Felix Homann
     
  • This fixes a context assertion in ssb that makes b44 print
    out warnings on resume.

    This fixes the following kernel oops:
    http://www.kerneloops.org/oops.php?number=12732
    http://www.kerneloops.org/oops.php?number=11410

    Signed-off-by: Michael Buesch
    Signed-off-by: John W. Linville

    Michael Buesch
     
  • The size was two small by two bytes.

    Signed-off-by: Holger Schurig
    Signed-off-by: John W. Linville

    Holger Schurig
     
  • If there are no networks on the free list, expire the oldest one when
    creating a new adhoc network. Because ipw2200 and the ieee80211 stack
    don't actually cull old networks and place them back on the free list
    unless they are needed for new probe responses, over time the free list
    would become empty and creating an adhoc network would fail due to the !
    list_empty(...) check.

    Signed-off-by: Dan Williams
    Signed-off-by: John W. Linville

    Dan Williams
     
  • WARNING: space prohibited between function name and open parenthesis '('
    #22: FILE: drivers/net/wireless/airo.c:2907:
    + while ((IN4500 (ai, COMMAND) & COMMAND_BUSY) && (delay < 10000)) {

    total: 0 errors, 1 warnings, 8 lines checked

    ./patches/wireless-airo-waitbusy-wont-delay.patch has style problems, please review. If any of these errors
    are false positives report them to the maintainer, see
    CHECKPATCH in MAINTAINERS.

    Please run checkpatch prior to sending patches

    Cc: Dan Williams
    Cc: Roel Kluin
    Signed-off-by: Andrew Morton
    Signed-off-by: John W. Linville

    Andrew Morton
     
  • This fixes a kernel crash on rmmod, in the case where the controller
    was restarted before doing the rmmod.

    Signed-off-by: Michael Buesch
    Signed-off-by: John W. Linville

    Michael Buesch
     
  • Commit e9df2e8fd8fbc95c57dbd1d33dada66c4627b44c ("[IPV6]: Use
    appropriate sock tclass setting for routing lookup.") also changed the
    way that ECN capable transports mark this capability in IPv6. As a
    result, SCTP was not marking ECN capablity because the traffic class
    was never set. This patch brings back the markings for IPv6 traffic.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • When fast retransmit is triggered by a sack, we should flush the queue
    only once so that only 1 retransmit happens. Also, since we could
    potentially have non-fast-rtx chunks on the retransmit queue, we need
    make sure any chunks eligable for fast retransmit are sent first
    during fast retransmission.

    Signed-off-by: Vlad Yasevich
    Tested-by: Wei Yongjun
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • When we are trying to fast retransmit the lowest outstanding TSN, we
    need to restart the T3-RTX timer, so that subsequent timeouts will
    correctly tag all the packets necessary for retransmissions.

    Signed-off-by: Vlad Yasevich
    Tested-by: Wei Yongjun
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • Correctly keep track of Fast Recovery state and do not reduce
    congestion window multiple times during sucht state.

    Signed-off-by: Vlad Yasevich
    Tested-by: Wei Yongjun
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • There's no need to execute sctp_v4_dst_saddr() for each
    iteration, just move it out of loop.

    Signed-off-by: Gui Jianfeng
    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Gui Jianfeng
     
  • If the current retran_path is the only active one, it should
    update it to the the next inactive one.

    Signed-off-by: Gui Jianfeng
    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Gui Jianfeng
     
  • David S. Miller