20 Feb, 2009

1 commit


06 Feb, 2009

3 commits


04 Feb, 2009

1 commit

  • Fix sunrpc/rdma build dependencies.
    Survives 12 build combinations of INET, IPV6, SUNRPC,
    INFINIBAND, and INFINIBAND_ADDR_TRANS.

    ERROR: "rdma_destroy_id" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!
    ERROR: "rdma_connect" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!
    ERROR: "rdma_destroy_qp" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!
    ERROR: "rdma_create_id" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!
    ERROR: "rdma_create_qp" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!
    ERROR: "rdma_resolve_route" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!
    ERROR: "rdma_disconnect" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!
    ERROR: "rdma_resolve_addr" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!
    ERROR: "rdma_accept" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!
    ERROR: "rdma_destroy_id" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!
    ERROR: "rdma_listen" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!
    ERROR: "rdma_create_id" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!
    ERROR: "rdma_create_qp" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!
    ERROR: "rdma_bind_addr" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!
    ERROR: "rdma_disconnect" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!

    Signed-off-by: Randy Dunlap
    Signed-off-by: David S. Miller

    Randy Dunlap
     

03 Feb, 2009

2 commits


01 Feb, 2009

2 commits

  • packet_lookup_frames() fails to get user frame if current frame header
    status contains extra flags.
    This is due to the wrong assumption on the operators precedence during
    frame status tests.
    Fixed by forcing the right operators precedence order with explicit brackets.

    Signed-off-by: Paolo Abeni
    Signed-off-by: Sebastiano Di Paola
    Signed-off-by: David S. Miller

    Sebastiano Di Paola
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    igb: fix link reporting when using sgmii
    igb: prevent skb_over panic w/ mtu smaller than 1K
    igb: Fix DCA errors and do not use context index for 82576
    ipv6: compile fix for ip6mr.c
    packet: Avoid lock_sock in mmap handler
    sfc: Replace stats_enabled flag with a disable count
    sfc: SFX7101/SFT9001: Fix AN advertisements
    sfc: SFT9001: Always enable XNP exchange on SFT9001 rev B
    sfc: Update board info for hardware monitor on SFN4111T-R5 and later
    sfc: Test for PHYXS faults whenever we cannot test link state bits
    sfc: Reinitialise the PHY completely in case of a PHY or NIC reset
    sfc: Fix post-reset MAC selection
    sfc: SFN4111T: Fix GPIO sharing between I2C and FLASH_CFG_1
    sfc: SFT9001: Fix speed reporting in 1G PHY loopback
    sfc: SFX7101: Remove workaround for bad link training
    sfc: SFT9001: Enable robust link training
    sky2: fix hard hang with netconsoling and iface going up

    Linus Torvalds
     

31 Jan, 2009

3 commits

  • net/ipv6/ip6mr.c: In function 'pim6_rcv':
    net/ipv6/ip6mr.c:368: error: implicit declaration of function 'csum_ipv6_magic'

    Signed-off-by: Dave Jones
    Signed-off-by: David S. Miller

    Dave Jones
     
  • As the mmap handler gets called under mmap_sem, and we may grab
    mmap_sem elsewhere under the socket lock to access user data, we
    should avoid grabbing the socket lock in the mmap handler.

    Since the only thing we care about in the mmap handler is for
    pg_vec* to be invariant, i.e., to exclude packet_set_ring, we
    can achieve this by simply using a new mutex.

    Signed-off-by: Herbert Xu
    Tested-by: Martin MOKREJŠ
    Signed-off-by: David S. Miller

    Herbert Xu
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (29 commits)
    tulip: fix 21142 with 10Mbps without negotiation
    drivers/net/skfp: if !capable(CAP_NET_ADMIN): inverted logic
    gianfar: Fix Wake-on-LAN support
    smsc911x: timeout reaches -1
    smsc9420: fix interrupt signalling test failures
    ucc_geth: Change uec phy id to the same format as gianfar's
    wimax: fix build issue when debugfs is disabled
    netxen: fix memory leak in drivers/net/netxen_nic_init.c
    tun: Add some missing TUN compat ioctl translations.
    ipv4: fix infinite retry loop in IP-Config
    net: update documentation ip aliases
    net: Fix OOPS in skb_seq_read().
    net: Fix frag_list handling in skb_seq_read
    netxen: revert jumbo ringsize
    ath5k: fix locking in ath5k_config
    cfg80211: print correct intersected regulatory domain
    cfg80211: Fix sanity check on 5 GHz when processing country IE
    iwlwifi: fix kernel oops when ucode DMA memory allocation failure
    rtl8187: Fix error in setting OFDM power settings for RTL8187L
    mac80211: remove Michael Wu as maintainer
    ...

    Linus Torvalds
     

30 Jan, 2009

7 commits

  • As reported by Toralf Förster and Randy Dunlap.

    - http://linuxwimax.org/pipermail/wimax/2009-January/000460.html

    - http://lkml.org/lkml/2009/1/29/279

    The definitions needed for the wimax stack and i2400m driver debug
    infrastructure was, by mistake, compiled depending on CONFIG_DEBUG_FS
    (by them being placed in the debugfs.c files); thus the build broke in
    2.6.29-rc3 when debugging was enabled (CONFIG_WIMAX_DEBUG) and
    DEBUG_FS was disabled.

    These definitions are always needed if debug is enabled at compile
    time (independently of DEBUG_FS being or not enabled), so moving them
    to a file that is always compiled fixes the issue.

    Signed-off-by: Inaky Perez-Gonzalez
    Signed-off-by: David S. Miller

    Inaky Perez-Gonzalez
     
  • Signed-off-by: Benjamin Zores
    Signed-off-by: David S. Miller

    Benjamin Zores
     
  • It oopsd for me in skb_seq_read. addr2line said it was
    linux-2.6/net/core/skbuff.c:2228, which is this line:

    while (st->frag_idx < skb_shinfo(st->cur_skb)->nr_frags) {

    I added some printks in there and it looks like we hit this:

    } else if (st->root_skb == st->cur_skb &&
    skb_shinfo(st->root_skb)->frag_list) {
    st->cur_skb = skb_shinfo(st->root_skb)->frag_list;
    st->frag_idx = 0;
    goto next_skb;
    }

    Actually I did some testing and added a few printks and found that the
    st->cur_skb->data was 0 and hence the ptr used by iscsi_tcp was null.
    This caused the kernel panic.

    if (abs_offset < block_limit) {
    - *data = st->cur_skb->data + abs_offset;
    + *data = st->cur_skb->data + (abs_offset - st->stepped_offset);

    I enabled the debug_tcp and with a few printks found that the code did
    not go to the next_skb label and could find that the sequence being
    followed was this -

    It hit this if condition -

    if (st->cur_skb->next) {
    st->cur_skb = st->cur_skb->next;
    st->frag_idx = 0;
    goto next_skb;

    And so, now the st pointer is shifted to the next skb whereas actually
    it should have hit the second else if first since the data is in the
    frag_list.

    else if (st->root_skb == st->cur_skb &&
    skb_shinfo(st->root_skb)->frag_list) {
    st->cur_skb = skb_shinfo(st->root_skb)->frag_list;
    goto next_skb;
    }

    Reversing the two conditions the attached patch fixes the issue for me
    on top of Herbert's patches.

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

    Shyam Iyer
     
  • The frag_list handling was broken in skb_seq_read:

    1) We didn't add the stepped offset when looking at the head
    are of fragments other than the first.

    2) We didn't take the stepped offset away when setting the data
    pointer in the head area.

    3) The frag index wasn't reset.

    This patch fixes both issues.

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

    Herbert Xu
     
  • David S. Miller
     
  • When CONFIG_CFG80211_REG_DEBUG is enabled and an intersection
    occurs we are printing the regulatory domain passed by CRDA
    and indicating its the intersected regulatory domain. Lets fix
    this and print the intersection as originally intended.

    Signed-off-by: Luis R. Rodriguez
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Luis R. Rodriguez
     
  • This fixes two issues with the sanity check loop when processing
    the country IE:

    1. Do not use frequency for the current subband channel check,
    this was a big fat typo.
    2. Apply the 5 GHz 4-channel steps when considering max channel
    on each subband as was done with a recent patch.

    Signed-off-by: Luis R. Rodriguez
    Signed-off-by: John W. Linville

    Luis R. Rodriguez
     

28 Jan, 2009

4 commits

  • The kernel manages this value internally, as necessary, as
    VIFs are added/removed and as multicast routers are registered
    and deregistered.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • This patch addresses the IPv6 multicast routing issues described
    below. It was tested with XORP 1.4/1.5 as the IPv6 PIM-SM routing
    daemon against FreeBSD peers.

    net/ipv6/ip6_input.c:

    - Don't try to forward link-local multicast packets.

    - Don't reset skb2->dev before calling ip6_mr_input() so packets can
    be identified as coming from the PIM register vif properly.

    net/ipv6/ip6mr.c:

    - Fix incoming PIM register messages processing:

    * The IPv6 pseudo-header should be included when checksumming PIM
    messages (RFC 4601 section 4.9; RFC 3973 section 4.7.1).

    * Packets decapsulated from PIM register messages should have
    skb->protocol ETH_P_IPV6.

    - Enable/disable IPv6 multicast forwarding on the corresponding
    interface when a routing daemon adds/removes a multicast virtual
    interface.

    - Remove incorrect skb_pull() to fix userspace signaling.

    - Enable/disable global IPv6 multicast forwarding when an IPv6
    multicast routing socket is opened/closed.

    net/ipv6/route.c:

    - Don't use strict routing logic for packets decapsulated from PIM
    register messages (similar to disabling rp_filter for the IPv4
    case).

    Signed-off-by: Thomas Goff
    Reviewed-by: Fred Templin
    Signed-off-by: David S. Miller

    Thomas Goff
     
  • This patch fixes the xfrm reverse flow lookup for icmp6 so that icmp6 packets
    don't get lost over ipsec tunnels. Similar patch is in RHEL5 kernel for a quite
    long time and I do not see why it isn't in mainline.

    Signed-off-by: Jiri Pirko
    Acked-by: Herbert Xu
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • We forgot to update this when adding server-side support.

    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     

27 Jan, 2009

5 commits

  • tcp_splice_data_recv has two lengths to consider: the len parameter it
    gets from tcp_read_sock, which specifies the amount of data in the skb,
    and rd_desc->count, which is the amount of data the splice caller still
    wants. Currently it passes just the latter to skb_splice_bits, which then
    splices min(rd_desc->count, skb->len - offset) bytes.

    Most of the time this is fine, except when the skb contains urgent data.
    In that case len goes only up to the urgent byte and is less than
    skb->len - offset. By ignoring len tcp_splice_data_recv may a) splice
    data tcp_read_sock told it not to, b) return to tcp_read_sock a value > len.

    Now, tcp_read_sock doesn't handle used > len and leaves the socket in a
    bad state (both sk_receive_queue and copied_seq are bad at that point)
    resulting in duplicated data and corruption.

    Fix by passing min(rd_desc->count, len) to skb_splice_bits.

    Signed-off-by: Dimitris Michailidis
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Dimitris Michailidis
     
  • commit 9088c5609584684149f3fb5b065aa7f18dcb03ff
    (udp: Improve port randomization) introduced a regression for UDP bind() syscall
    to null port (getting a random port) in case lot of ports are already in use.

    This is because we do about 28000 scans of very long chains (220 sockets per chain),
    with many spin_lock_bh()/spin_unlock_bh() calls.

    Fix this using a bitmap (64 bytes for current value of UDP_HTABLE_SIZE)
    so that we scan chains at most once.

    Instead of 250 ms per bind() call, we get after patch a time of 2.9 ms

    Based on a report from Vitaly Mayatskikh

    Reported-by: Vitaly Mayatskikh
    Signed-off-by: Eric Dumazet
    Tested-by: Vitaly Mayatskikh
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (92 commits)
    gianfar: Revive VLAN support
    vlan: Export symbols as non GPL symbols.
    bnx2x: tx_has_work should not wait for FW
    netxen: reduce memory footprint
    netxen: fix vlan tso/checksum offload
    net: Fix linux/if_frad.h's suitability for userspace.
    net: Move config NET_NS to from net/Kconfig to init/Kconfig
    isdn: Fix missing ifdef in isdn_ppp
    networking: document "nc" in addition to "netcat" in netconsole.txt
    e1000e: workaround hw errata
    af_key: initialize xfrm encap_oa
    virtio_net: Fix MAX_PACKET_LEN to support 802.1Q VLANs
    lcs: fix compilation for !CONFIG_IP_MULTICAST
    rtl8187: Add termination packet to prevent stall
    iwlwifi: fix rs_get_rate WARN_ON()
    p54usb: fix packet loss with first generation devices
    sctp: Fix another socket race during accept/peeloff
    sctp: Properly timestamp outgoing data chunks for rtx purposes
    sctp: Correctly start rtx timer on new packet transmissions.
    sctp: Fix crc32c calculations on big-endian arhes.
    ...

    Linus Torvalds
     
  • In previous kernels, any kernel module could get access to the
    'real-device' and the VLAN-ID for a particular VLAN. In more recent
    kernels, the code was restructured such that this is hard to do
    without accessing private .h files for any module that cannot use
    GPL-only symbols.

    Attached is a patch to once again allow non-GPL modules the ability to
    access the real-device and VLAN id for VLANs.

    Signed-off-by: Ben Greear
    Acked-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Ben Greear
     
  • Make NET_NS available underneath the generic Namespaces config option
    since all of the other namespace options are there.

    Signed-off-by: Matt Helsley
    Acked-by: Serge Hallyn
    Signed-off-by: David S. Miller

    Matt Helsley
     

26 Jan, 2009

1 commit

  • Currently encap_oa is left uninitialized, so it contains garbage data which
    is visible to userland via Netlink. Initialize it by zeroing it out.

    Signed-off-by: Timo Teras
    Acked-by: Herbert Xu
    Signed-off-by: David S. Miller

    Timo Teras
     

23 Jan, 2009

5 commits

  • There is a race between sctp_rcv() and sctp_accept() where we
    have moved the association from the listening socket to the
    accepted socket, but sctp_rcv() processing cached the old
    socket and continues to use it.

    The easy solution is to check for the socket mismatch once we've
    grabed the socket lock. If we hit a mis-match, that means
    that were are currently holding the lock on the listening socket,
    but the association is refrencing a newly accepted socket. We need
    to drop the lock on the old socket and grab the lock on the new one.

    A more proper solution might be to create accepted sockets when
    the new association is established, similar to TCP. That would
    eliminate the race for 1-to-1 style sockets, but it would still
    existing for 1-to-many sockets where a user wished to peeloff an
    association. For now, we'll live with this easy solution as
    it addresses the problem.

    Reported-by: Michal Hocko
    Reported-by: Karsten Keil
    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • Recent changes to the retransmit code exposed a long standing
    bug where it was possible for a chunk to be time stamped
    after the retransmit timer was reset. This caused a rare
    situation where the retrnamist timer has expired, but
    nothing was marked for retrnasmission because all of
    timesamps on data were less then 1 rto ago. As result,
    the timer was never restarted since nothing was retransmitted,
    and this resulted in a hung association that did couldn't
    complete the data transfer. The solution is to timestamp
    the chunk when it's added to the packet for transmission
    purposes. After the packet is trsnmitted the rtx timer
    is restarted. This guarantees that when the timer expires,
    there will be data to retransmit.

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

    Vlad Yasevich
     
  • Commit 62aeaff5ccd96462b7077046357a6d7886175a57
    (sctp: Start T3-RTX timer when fast retransmitting lowest TSN)
    introduced a regression where it was possible to forcibly
    restart the sctp retransmit timer at the transmission of any
    new chunk. This resulted in much longer timeout times and
    sometimes hung sctp connections.

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

    Vlad Yasevich
     
  • wlan0: switched to short barker preamble (BSSID=00:01:aa:bb:cc:dd)
    wlan0: switched to short slot (BSSID=)

    should be:

    wlan0: switched to short barker preamble (BSSID=00:01:aa:bb:cc:dd)
    wlan0: switched to short slot (BSSID=00:01:aa:bb:cc:dd)

    Signed-off-by: Christian Lamparter
    Signed-off-by: John W. Linville

    Christian Lamparter
     
  • After launching mesh discovery in tx path, reference count was not being
    decremented. This was preventing module unload.

    Signed-off-by: Brian Cavagnolo
    Signed-off-by: Andrey Yurovsky
    Acked-by: Johannes Berg
    Signed-off-by: John W. Linville

    Brian Cavagnolo
     

22 Jan, 2009

2 commits


21 Jan, 2009

4 commits