29 Dec, 2008

2 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1429 commits)
    net: Allow dependancies of FDDI & Tokenring to be modular.
    igb: Fix build warning when DCA is disabled.
    net: Fix warning fallout from recent NAPI interface changes.
    gro: Fix potential use after free
    sfc: If AN is enabled, always read speed/duplex from the AN advertising bits
    sfc: When disabling the NIC, close the device rather than unregistering it
    sfc: SFT9001: Add cable diagnostics
    sfc: Add support for multiple PHY self-tests
    sfc: Merge top-level functions for self-tests
    sfc: Clean up PHY mode management in loopback self-test
    sfc: Fix unreliable link detection in some loopback modes
    sfc: Generate unique names for per-NIC workqueues
    802.3ad: use standard ethhdr instead of ad_header
    802.3ad: generalize out mac address initializer
    802.3ad: initialize ports LACPDU from const initializer
    802.3ad: remove typedef around ad_system
    802.3ad: turn ports is_individual into a bool
    802.3ad: turn ports is_enabled into a bool
    802.3ad: make ntt bool
    ixgbe: Fix set_ringparam in ixgbe to use the same memory pools.
    ...

    Fixed trivial IPv4/6 address printing conflicts in fs/cifs/connect.c due
    to the conversion to %pI (in this networking merge) and the addition of
    doing IPv6 addresses (from the earlier merge of CIFS).

    Linus Torvalds
     
  • * 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6: (85 commits)
    [S390] provide documentation for hvc_iucv kernel parameter.
    [S390] convert ctcm printks to dev_xxx and pr_xxx macros.
    [S390] convert zfcp printks to pr_xxx macros.
    [S390] convert vmlogrdr printks to pr_xxx macros.
    [S390] convert zfcp dumper printks to pr_xxx macros.
    [S390] convert cpu related printks to pr_xxx macros.
    [S390] convert qeth printks to dev_xxx and pr_xxx macros.
    [S390] convert sclp printks to pr_xxx macros.
    [S390] convert iucv printks to dev_xxx and pr_xxx macros.
    [S390] convert ap_bus printks to pr_xxx macros.
    [S390] convert dcssblk and extmem printks messages to pr_xxx macros.
    [S390] convert monwriter printks to pr_xxx macros.
    [S390] convert s390 debug feature printks to pr_xxx macros.
    [S390] convert monreader printks to pr_xxx macros.
    [S390] convert appldata printks to pr_xxx macros.
    [S390] convert setup printks to pr_xxx macros.
    [S390] convert hypfs printks to pr_xxx macros.
    [S390] convert time printks to pr_xxx macros.
    [S390] convert cpacf printks to pr_xxx macros.
    [S390] convert cio printks to pr_xxx macros.
    ...

    Linus Torvalds
     

27 Dec, 2008

1 commit

  • The initial skb may have been freed after napi_gro_complete in
    napi_gro_receive if it was merged into an existing packet. Thus
    we cannot check same_flow (which indicates whether it was merged)
    after calling napi_gro_complete.

    This patch fixes this by saving the same_flow status before the
    call to napi_gro_complete.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     

26 Dec, 2008

12 commits

  • The recent GRO patches introduced the NAPI removal of devices in
    free_netdev. For drivers that can change the number of queues during
    driver operation, the NAPI infrastructure doesn't allow the freeing and
    re-addition of NAPI entities without reloading the driver.

    This change reinitializes the dev_list in each NAPI struct on delete,
    instead of just deleting it (and assigning the list pointers to POISON).
    Drivers that wish to remove/re-add NAPI will need to re-initialize the
    netdev napi_list after removing all NAPI instances, before re-adding NAPI
    devices again.

    Signed-off-by: Peter P Waskiewicz Jr
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Peter P Waskiewicz Jr
     
  • This patch removes a useless ret variable from the IPv4 ESP/UDP
    decapsulation code.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     
  • atif is tested for being NULL twice, with the same effect in each case. I
    have kept the second test, as it seems to fit well with the comment above it.

    A simplified version of the semantic patch that makes this change is as
    follows: (http://www.emn.fr/x-info/coccinelle/)

    //
    @r exists@
    local idexpression x;
    expression E;
    position p1,p2;
    @@

    if (x@p1 == NULL || ...) { ... when forall
    return ...; }
    ... when != \(x=E\|x--\|x++\|--x\|++x\|x-=E\|x+=E\|x|=E\|x&=E\|&x\)
    (
    x@p2 == NULL
    |
    x@p2 != NULL
    )

    // another path to the test that is not through p1?
    @s exists@
    local idexpression r.x;
    position r.p1,r.p2;
    @@

    ... when != x@p1
    (
    x@p2 == NULL
    |
    x@p2 != NULL
    )

    @fix depends on !s@
    position r.p1,r.p2;
    expression x,E;
    statement S1,S2;
    @@

    (
    - if ((x@p2 != NULL) || ...)
    S1
    |
    - if ((x@p2 == NULL) && ...) S1
    |
    - BUG_ON(x@p2 == NULL);
    )
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: David S. Miller

    Julia Lawall
     
  • Our TCP stack does not set the urgent flag if the urgent pointer
    does not fit in 16 bits, i.e., if it is more than 64K from the
    sequence number of a packet.

    This behaviour is different from the BSDs, and clearly contradicts
    the purpose of urgent mode, which is to send the notification
    (though not necessarily the associated data) as soon as possible.
    Our current behaviour may in fact delay the urgent notification
    indefinitely if the receiver window does not open up.

    Simply matching BSD however may break legacy applications which
    incorrectly rely on the out-of-band delivery of urgent data, and
    conversely the in-band delivery of non-urgent data.

    Alexey Kuznetsov suggested a safe solution of following BSD only
    if the urgent pointer itself has not yet been transmitted. This
    way we guarantee that when the remote end sees the packet with
    non-urgent data marked as urgent due to wrap-around we would have
    advanced the urgent pointer beyond, either to the actual urgent
    data or to an as-yet untransmitted packet.

    The only potential downside is that applications on the remote
    end may see multiple SIGURG notifications. However, this would
    occur anyway with other TCP stacks. More importantly, the outcome
    of such a duplicate notification is likely to be harmless since
    the signal itself does not carry any information other than the
    fact that we're in urgent mode.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     
  • The latest ietf socket extensions API draft said:

    8.1.21. Set or Get the SCTP Partial Delivery Point

    Note also that the call will fail if the user attempts to set
    this value larger than the socket receive buffer size.

    This patch add this validity check for SCTP_PARTIAL_DELIVERY_POINT
    socket option.

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

    Wei Yongjun
     
  • If FWD-TSN chunk is received with bad stream ID, the sctp will not do the
    validity check, this may cause memory overflow when overwrite the TSN of
    the stream ID.

    The FORWARD-TSN chunk is like this:

    FORWARD-TSN chunk
    Type = 192
    Flags = 0
    Length = 172
    NewTSN = 99
    Stream = 10000
    StreamSequence = 0xFFFF

    This patch fix this problem by discard the chunk if stream ID is not
    less than MIS.

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

    Wei Yongjun
     
  • Implement socket option SCTP_GET_ASSOC_NUMBER of the latest ietf socket
    extensions API draft.

    8.2.5. Get the Current Number of Associations (SCTP_GET_ASSOC_NUMBER)

    This option gets the current number of associations that are attached
    to a one-to-many style socket. The option value is an uint32_t.

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

    Wei Yongjun
     
  • Just fix a typo in socket.c.

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

    Wei Yongjun
     
  • Brings maxseg socket option set/get into line with the latest ietf socket
    extensions API draft, while maintaining backwards compatibility.

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

    Wei Yongjun
     
  • commit 656299f706e52e0409733d704c2761f1b12d6954
    (vlan: convert to net_device_ops) added a net_device_ops
    with a NULL ndo_start_xmit field.

    This gives a crash in dev_hard_start_xmit()

    Fix it using two net_device_ops structures, one for hwaccel vlan,
    one for non hwaccel vlan.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • This patch makes the followinf proc entries per-netns:
    /proc/net/igmp
    /proc/net/mcfilter

    Signed-off-by: Alexey Dobriyan
    Acked-by: Daniel Lezcano
    Acked-by: Benjamin Thery
    Signed-off-by: David S. Miller

    Alexey Dobriyan
     
  • Looks like everything is already ready.

    Required for ebtables(8) for one thing.

    Also, required for ipmr per-netns (coming soon). (Benjamin)

    Signed-off-by: Alexey Dobriyan
    Acked-by: Benjamin Thery
    Signed-off-by: David S. Miller

    Alexey Dobriyan
     

25 Dec, 2008

3 commits


24 Dec, 2008

1 commit


23 Dec, 2008

2 commits

  • While implementing a TCQ_F_THROTTLED flag there was used an smp_wmb()
    in qdisc_watchdog(), but since this flag is practically used only in
    sch_netem(), and since it's not even clear what reordering is avoided
    here (TCQ_F_THROTTLED vs. __QDISC_STATE_SCHED?) it seems the barrier
    could be safely removed.

    Signed-off-by: Jarek Poplawski
    Signed-off-by: David S. Miller

    Jarek Poplawski
     
  • A command like this: "brctl addif br1 eth1" issued as a user gave me
    an oops when bridge module wasn't loaded. It's caused by using a dev
    pointer before checking for NULL.

    Signed-off-by: Jarek Poplawski
    Signed-off-by: David S. Miller

    Jarek Poplawski
     

22 Dec, 2008

3 commits

  • Some gcc versions warn that ret may be used uninitialized in
    sfq_enqueue(). It's a false positive, so let's annotate this.

    Signed-off-by: Jarek Poplawski
    Signed-off-by: David S. Miller

    Jarek Poplawski
     
  • Adds the Backward Congestion Notification Address (BCNA) attribute to the
    Backward Congestion Notification (BCN) interface for Data Center Bridging
    (DCB), which was missing. Receive the BCNA attribute in the ixgbe driver.
    The BCNA attribute is for a switch to inform the endstation about the physical
    port identification in order to support BCN on aggregated links.

    Signed-off-by: Don Skidmore
    Signed-off-by: Eric W Multanen
    Signed-off-by: Jeff Kirsher

    Don Skidmore
     
  • Data Center Bridging (DCB) had no way to know if setstate had failed in the
    driver. This patch enables dcb netlink code to handle the status for the DCB
    setstate interface. Likewise it allows the driver to return a failed status
    if MSI-X isn't enabled.

    Signed-off-by: Don Skidmore
    Signed-off-by: Eric W Multanen
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Don Skidmore
     

20 Dec, 2008

10 commits

  • This patch implements dynamic power save for mac80211. Basically it
    means enabling power save mode after an idle period. Implementing it
    dynamically gives a good compromise of low power consumption and low
    latency. Some hardware have support for this in firmware, but some
    require the host to do it.

    The dynamic power save is implemented by adding an timeout to
    ieee80211_subif_start_xmit(). The timeout can be enabled from userspace
    with Wireless Extensions. For example, the command below enables the
    dynamic power save and sets the time timeout to 500 ms:

    iwconfig wlan0 power timeout 500m

    Power save now only works with devices which handle power save in firmware.
    It's also disabled by default and the heuristics when and how to enable is
    considered as a policy decision and will be left for the userspace to handle.
    In case the firmware has support for this, drivers can disable this feature
    with IEEE80211_HW_NO_STACK_DYNAMIC_PS.

    Big thanks to Johannes Berg for the help with the design and code.

    Signed-off-by: Kalle Valo
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Kalle Valo
     
  • This is a preparation for the dynamic power save support. In future there are
    two paths to stop the master queues and we need to track this properly to
    avoid starting queues incorrectly. Implement this by adding a status
    array for each queue.

    The original idea and design is from Johannes Berg, I just did
    the implementation based on his notes. All the bugs are mine, of course.

    Signed-off-by: Kalle Valo
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Kalle Valo
     
  • Also disable power save when disassociated. It makes no sense to have
    power save enabled while disassociated.

    iwlwifi seems to have this check in the driver, but it's better to do this
    in mac80211 instead.

    Signed-off-by: Kalle Valo
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Kalle Valo
     
  • In stress testing p54usb, the WARN_ON() in ieee80211_tasklet_handler() was
    triggered; however, there is no logging of the received value for packet
    type. Adding that feature will improve the warning.

    Signed-off-by: Larry Finger
    Signed-off-by: John W. Linville

    Larry Finger
     
  • This patch fixes a typo in ieee80211_send_assoc(), net/mac80211/mlme.c.

    The error is usage of a wrong member when building
    the ie80211 management frame (it should be assoc_req, and not reassoc_req).

    Signed-off-by: Rami Rosen
    Signed-off-by: John W. Linville

    Rami Rosen
     
  • Since we do not currently report HT rates (MCS index) in radiotap
    header for HT rates, we should not claim the rate is present. The rate
    octet itself is used as padding in this case, so only the it_present
    flag needs to be removed in case of HT rates.

    Signed-off-by: Jouni Malinen
    Signed-off-by: John W. Linville

    Jouni Malinen
     
  • When a STA roams back to the same AP before the previous STA entry has
    expired, a new STA entry is not added in mac80211. However, a Layer 2
    Update frame still needs to be transmitted to update layer 2 devices
    about the new location for the STA. Without this, switches may
    continue to forward frames to the previous (now incorrect) port when
    STA roams between APs.

    Signed-off-by: Jouni Malinen
    Signed-off-by: John W. Linville

    Jouni Malinen
     
  • This patch adds option for HT-enabled drivers to report HT rates
    (HT20/HT40, short GI, MCS index) to mac80211. These rates are
    currently not in the rate table, so the rate_idx is used to indicate
    MCS index.

    Signed-off-by: Jouni Malinen
    Signed-off-by: John W. Linville

    Jouni Malinen
     
  • HT management is done differently for AP and STA modes, unify
    to just the ->config() callback since HT is fundamentally a
    PHY property and cannot be per-BSS.

    Rename enum nl80211_sec_chan_offset as nl80211_channel_type to denote
    the channel type ( NO_HT, HT20, HT40+, HT40- ).

    Signed-off-by: Johannes Berg
    Signed-off-by: Sujith
    Signed-off-by: John W. Linville

    Sujith
     
  • This patch adds signal strength and transmission bitrate
    to the station_info of nl80211.

    Signed-off-by: Henning Rogge
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Henning Rogge
     

19 Dec, 2008

3 commits


18 Dec, 2008

3 commits

  • This reverts commit 70355602879229c6f8bd694ec9c0814222bc4936.

    As pointed out by Mark McLoughlin IP_PKTINFO cmsg data is one
    post-queueing user, so this optimization is not valid right
    now.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • And thus when we try to use 'ss -danemi' on these sockets that have no
    ccid blocks (data collected using systemtap after I fixed the problem):

    dccp_diag_get_info sk=0xffff8801220a3100, dp->dccps_hc_rx_ccid=0x0000000000000000, dp->dccps_hc_tx_ccid=0x0000000000000000

    We get an OOPS:

    mica.ghostprotocols.net login: BUG: unable to handle kernel NULL pointer
    dereferenc0
    IP: [] dccp_diag_get_info+0x82/0xc0 [dccp_diag]
    PGD 12106f067 PUD 122488067 PMD 0
    Oops: 0000 [#1] PREEMPT

    Fix is trivial, and 'ss -d' is working again:

    [root@mica ~]# ss -danemi
    State Recv-Q Send-Q Local Address:Port Peer Address:Port
    LISTEN 0 0 *:5001 *:*
    ino:7288 sk:220a3100ffff8801
    mem:(r0,w0,f0,t0) cwnd:0 ssthresh:0
    [root@mica ~]#

    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Arnaldo Carvalho de Melo
     
  • Signed-off-by: Rémi Denis-Courmont
    Signed-off-by: David S. Miller

    Rémi Denis-Courmont