11 Oct, 2007

40 commits

  • Reserve two bytes to align pointer to the IP header.

    Signed-off-by: Vladimir Davydov
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Vladimir Davydov
     
  • The following patch fixes the tx transmit timeout problem, which is
    caused by the interrupts being incorrectly check and masked. The patch
    moves the interrupt masking code so that interrupts are enabled only
    when the driver is registered and only disabled when the driver is
    unregistered.

    Signed-off-by: Ryan Mallon
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Ryan Mallon
     
  • Corrects a minor bug with priv->dnld_sent being set incorrectly in
    if_cs_host_to_card.

    Signed-off-by: Ryan Mallon
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Ryan Mallon
     
  • This change cleans up the radio-related messages in several ways.

    (1) The state of the rfkill switch is assumed to be on, rather than
    tested. Now, any user without such a switch will not see any
    messages. For devices with such a switch, a message will be
    logged only if the initial state is off, or if the switch is toggled.
    (2) The routine for testing the switch state is no longer inline.
    (3) The LED handling routine is simplified.
    (4) The "Radio turned off" message that has confused some users has been
    changed to "Radio initialized".

    This patch is patterned after a similar change to b43 by Michael Buesch.

    Signed-off-by: Larry Finger
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Larry Finger
     
  • This adds support for turning the radio off in software.
    That's useful in environments, where you don't want the RF
    to radiate any signals, but don't want to bring the interface down.

    This patch is based on a similar patch of b43 by Michael Buesch.

    Signed-off-by: Larry Finger
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Larry Finger
     
  • This adds support for turning the radio off in software.
    That's useful in environments, where you don't want the RF
    to radiate any signals, but don't want to bring the interface down.

    Cc: Larry Finger
    Signed-off-by: Michael Buesch
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Michael Buesch
     
  • This message is useless. Only report state changes.

    Cc: Larry Finger
    Signed-off-by: Michael Buesch
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Michael Buesch
     
  • This adds support for disabling the radio and setting the TXpower
    through wext.
    This also fixes the prism TXpower ioctl (It always overwrote the TXpower
    value in ieee80211_hw_config())

    Signed-off-by: Michael Buesch
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Michael Buesch
     
  • It seems I was actually able to hit this deadlock, on my quad G5 softmac
    locks up more often than not. This fixes it by using an own workqueue
    that can safely be flushed under RTNL.

    Not sure if the patch is correct with the workqueue naming. And don't
    think with the patch it doesn't continually lock up. It still does, just
    doesn't invoke lockdep warnings all the time.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Johannes Berg
     
  • Also cleanup the code a bit and remove the inline.

    Signed-off-by: Michael Buesch
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Michael Buesch
     
  • This fixes all Sparse warnings in SSB.
    No semantics change.

    Signed-off-by: Michael Buesch
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Michael Buesch
     
  • On a PCI bus use ioreadX() and iowriteX().
    We map the I/O space with pci_iomap(), so we must use the correct
    accessor functions, too.
    readX() and writeX() are not guaranteed to accept the cookie returned
    from pci_iomap() (though, it currently works on most architectures).

    Signed-off-by: Michael Buesch
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Michael Buesch
     
  • It's not required and the txpower adjustment must not be in atomic.

    Signed-off-by: Michael Buesch
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Michael Buesch
     
  • Signed-off-by: Andrew Morton
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Andrew Morton
     
  • Reinhard Speyerer reported at 2007-08-10 a new device.

    Here are the information strings.

    Product: Telegent TG54USB WLAN Adapter
    USB ID: 129b:1666
    Chip ID: zd1211 chip 129b:1666 v4330 high 00-01-36 RF2959_RF pa0 -----
    FCC ID: N89-UW620Z

    Signed-off-by: Ulrich Kunitz
    Signed-off-by: Daniel Drake
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Ulrich Kunitz
     
  • Some distros ship bcm43xx with debugging printout disabled. For those
    BCM43xx devices with radio on/off switches, this makes it impossible
    to know if the radio is on or off. This patch changes a pair of debug
    printk's into ordinary printk's. It also changes the message that
    prints when the radio is initialized to the off state as the old message
    seems to confuse users.

    Signed-off-by: Larry Finger
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Larry Finger
     
  • No need to initialize to NULL when variable is never used before
    it's assigned the return value of a kmalloc() call.

    Signed-off-by: Jesper Juhl
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Jesper Juhl
     
  • Am Freitag, 21. September 2007 schrieb Herbert Xu:
    > Please don't use LLTX in new drivers. We're trying to get rid
    > of it since it's
    >
    > 1) unnecessary;
    > 2) causes problems with AF_PACKET seeing things twice.

    I suggest to document that LLTX is deprecated.

    Signed-off-by: Christian Borntraeger
    Acked-by: Herbert Xu
    Signed-off-by: David S. Miller

    Christian Borntraeger
     
  • Signed-off-by: Zhu Yi
    Signed-off-by: David S. Miller

    Zhu Yi
     
  • For N cpus, with full throttle traffic on all N CPUs, funneling traffic
    to the same ethernet device, the devices queue lock is contended by all
    N CPUs constantly. The TX lock is only contended by a max of 2 CPUS.
    In the current mode of operation, after all the work of entering the
    dequeue region, we may endup aborting the path if we are unable to get
    the tx lock and go back to contend for the queue lock. As N goes up,
    this gets worse.

    The changes in this patch result in a small increase in performance
    with a 4CPU (2xdual-core) with no irq binding. Both e1000 and tg3
    showed similar behavior;

    Signed-off-by: Jamal Hadi Salim
    Signed-off-by: David S. Miller

    Jamal Hadi Salim
     
  • Doing this makes loopback.c a better example of how to do a
    simple network device, and it removes the special case
    single static allocation of a struct net_device, hopefully
    making maintenance easier.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: Daniel Lezcano
    Acked-By: Kirill Korotaev
    Acked-by: Benjamin Thery

    Daniel Lezcano
     
  • This patch replaces all occurences to the static variable
    loopback_dev to a pointer loopback_dev. That provides the
    mindless, trivial, uninteressting change part for the dynamic
    allocation for the loopback.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: Daniel Lezcano
    Acked-By: Kirill Korotaev
    Acked-by: Benjamin Thery
    Signed-off-by: David S. Miller

    Daniel Lezcano
     
  • Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville
    Signed-off-by: David S. Miller

    Johannes Berg
     
  • Signed-off-by: David S. Miller

    David S. Miller
     
  • There's no reason to clear the sacktag skb hint when small part
    of the rexmit queue changes. Account changes (if any) instead when
    fragmenting/collapsing. RTO/FRTO do not touch SACKED_ACKED bits so
    no need to discard SACK tag hint at all.

    Signed-off-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Ilpo Järvinen
     
  • Most of the description that follows comes from my mail to
    netdev (some editing done):

    Main obstacle to FRTO use is its deployment as it has to be on
    the sender side where as wireless link is often the receiver's
    access link. Take initiative on behalf of unlucky receivers and
    enable it by default in future Linux TCP senders. Also IETF
    seems to interested in advancing FRTO from experimental [1].

    How does FRTO help?
    ===================

    FRTO detects spurious RTOs and avoids a number of unnecessary
    retransmissions and a couple of other problems that can arise
    due to incorrect guess made at RTO (i.e., that segments were
    lost when they actually got delayed which is likely to occur
    e.g. in wireless environments with link-layer retransmission).
    Though FRTO cannot prevent the first (potentially unnecessary)
    retransmission at RTO, I suspect that it won't cost that much
    even if you have to pay for each bit (won't be that high
    percentage out of all packets after all :-)). However, usually
    when you have a spurious RTO, not only the first segment
    unnecessarily retransmitted but the *whole window*. It goes like
    this: all cumulative ACKs got delayed due to in-order delivery,
    then TCP will actually send 1.5*original cwnd worth of data in
    the RTO's slow-start when the delayed ACKs arrive (basically the
    original cwnd worth of it unnecessarily). In case one is
    interested in minimizing unnecessary retransmissions e.g. due to
    cost, those rexmissions must never see daylight. Besides, in the
    worst case the generated burst overloads the bottleneck buffers
    which is likely to significantly delay the further progress of
    the flow. In case of ll rexmissions, ACK compression often
    occurs at the same time making the burst very "sharp edged" (in
    that case TCP often loses most of the segments above high_seq
    => very bad performance too). When FRTO is enabled, those
    unnecessary retransmissions are fully avoided except for the
    first segment and the cwnd behavior after detected spurious RTO
    is determined by the response (one can tune that by sysctl).

    Basic version (non-SACK enhanced one), FRTO can fail to detect
    spurious RTO as spurious and falls back to conservative
    behavior. ACK lossage is much less significant than reordering,
    usually the FRTO can detect spurious RTO if at least 2
    cumulative ACKs from original window are preserved (excluding
    the ACK that advances to high_seq). With SACK-enhanced version,
    the detection is quite robust.

    FRTO should remove the need to set a high lower bound for the
    RTO estimator due to delay spikes that occur relatively common
    in some environments (esp. in wireless/cellular ones).

    [1] http://www1.ietf.org/mail-archive/web/tcpm/current/msg02862.html

    Signed-off-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Ilpo Järvinen
     
  • Since the SACK enhanced FRTO was added, the code has been
    under test numerous times so remove "experimental" claim
    from the documentation. Also be a bit more verbose about
    the usage.

    Signed-off-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Ilpo Järvinen
     
  • Basically this change enables it, previously other undo_marker
    users were left with nothing. Reverse undo_marker logic
    completely to get it set right in CA_Loss. On the other hand,
    when spurious RTO is detected, clear it. Clearing might be too
    heavy for some scenarios but seems safe enough starting point
    for now and shouldn't have much effect except in majority of
    cases (if in any).

    By adding a new FLAG_ we avoid looping through write_queue when
    RTO occurs.

    Signed-off-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Ilpo Järvinen
     
  • Implements following cleanups:
    - Comment re-placement (CodingStyle)
    - tcp_tso_acked() local (wrapper-like) variable removal
    (readability)
    - __-types removed (IMHO they make local variables jumpy looking
    and just was space)
    - acked -> flag (naming conventions elsewhere in TCP code)
    - linebreak adjustments (readability)
    - nested if()s combined (reduced indentation)
    - clarifying newlines added

    Signed-off-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Ilpo Järvinen
     
  • The accounting code is pretty much the same, so it's a shame
    we do it in two places.

    I'm not too sure if added fully_acked check in MTU probing is
    really what we want perhaps the added end_seq could be used in
    the after() comparison.

    Signed-off-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Ilpo Järvinen
     
  • In addition, fix its function comment spacing.

    Signed-off-by: Ilpo Järvinen

    Ilpo Järvinen
     
  • Substraction for fackets_out is unconditional when snd_una
    advances, thus there's no need to do it inside the loop. Just
    make sure correct bounds are honored.

    Signed-off-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Ilpo Järvinen
     
  • In general, it should not be necessary to call tcp_fragment for
    already SACKed skbs, but it's better to be safe than sorry. And
    indeed, it can be called from sacktag when a DSACK arrives or
    some ACK (with SACK) reordering occurs (sacktag could be made
    to avoid the call in the latter case though I'm not sure if it's
    worth of the trouble and added complexity to cover such marginal
    case).

    The collapse case has return for SACKED_ACKED case earlier, so
    just WARN_ON if internal inconsistency is detected for some
    reason.

    Signed-off-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Ilpo Järvinen
     
  • The remaining warning in phy.c will be fixed later.

    Signed-off-by: Michael Buesch
    Signed-off-by: David S. Miller

    Michael Buesch
     
  • Signed-off-by: Al Viro
    Signed-off-by: Jeff Garzik

    Al Viro
     
  • Signed-off-by: Al Viro
    Signed-off-by: Jeff Garzik

    Al Viro
     
  • Signed-off-by: Al Viro
    Signed-off-by: Jeff Garzik

    Al Viro
     
  • Signed-off-by: Al Viro
    Signed-off-by: Jeff Garzik

    Al Viro
     
  • Signed-off-by: Al Viro
    Signed-off-by: Jeff Garzik

    Al Viro
     
  • Signed-off-by: Al Viro
    Signed-off-by: Jeff Garzik

    Al Viro