27 Nov, 2011

8 commits


26 Nov, 2011

1 commit


25 Nov, 2011

1 commit


24 Nov, 2011

13 commits

  • Fix below build error:
    CC drivers/net/ethernet/marvell/mv643xx_eth.o
    drivers/net/ethernet/marvell/mv643xx_eth.c: In function 'mv643xx_eth_get_drvinfo':
    drivers/net/ethernet/marvell/mv643xx_eth.c:1505: error: 'info' undeclared (first use in this function)
    drivers/net/ethernet/marvell/mv643xx_eth.c:1505: error: (Each undeclared identifier is reported only once
    drivers/net/ethernet/marvell/mv643xx_eth.c:1505: error: for each function it appears in.)
    make[4]: *** [drivers/net/ethernet/marvell/mv643xx_eth.o] Error 1

    Signed-off-by: Axel Lin
    Signed-off-by: David S. Miller

    Axel Lin
     
  • We can not update iph->daddr in ip_options_rcv_srr(), It is too early.
    When some exception ocurred later (eg. in ip_forward() when goto
    sr_failed) we need the ip header be identical to the original one as
    ICMP need it.

    Add a field 'nexthop' in struct ip_options to save nexthop of LSRR
    or SSRR option.

    Signed-off-by: Li Wei
    Signed-off-by: David S. Miller

    Li Wei
     
  • Use round_jiffies_relative to align the ehea workqueue and avoid
    extra wakeups.

    Signed-off-by: Anton Blanchard
    Signed-off-by: David S. Miller

    Anton Blanchard
     
  • Now that we enable multiqueue by default the ehea driver is using
    quite a lot of memory for its buffer pools. With 4 queues we
    consume 64MB in the jumbo packet ring, 16MB in the medium packet
    ring and 16MB in the tiny packet ring.

    We should only fill the jumbo ring once the MTU is increased but
    for now halve it's size so it consumes 32MB. Also reduce the tiny
    packet ring, with 4 queues we had 16k entries which is overkill.

    Signed-off-by: Anton Blanchard
    Signed-off-by: David S. Miller

    Anton Blanchard
     
  • When transmiting a fragmented skb, qlge fills a descriptor with the
    fragment addresses, after DMA-mapping them. If there are more than eight
    fragments, it will use the eighth descriptor as a pointer to an external
    list. After mapping this external list, called OAL to a structure
    containing more descriptors, it fills it with the extra fragments.

    However, considering that systems with pages larger than 8KiB would have
    less than 8 fragments, which was true before commit a715dea3c8e, it
    defined a macro for the OAL size as 0 in those cases.

    Now, if a skb with more than 8 fragments (counting skb->data as one
    fragment), this would start overwriting the list of addresses already
    mapped and would make the driver fail to properly unmap the right
    addresses on architectures with pages larger than 8KiB.

    Besides that, the list of mappings was one size too small, since it must
    have a mapping for the maxinum number of skb fragments plus one for
    skb->data and another for the OAL. So, even on architectures with page
    sizes 4KiB and 8KiB, a skb with the maximum number of fragments would
    make the driver overwrite its counter for the number of mappings, which,
    again, would make it fail to unmap the mapped DMA addresses.

    Signed-off-by: Thadeu Lima de Souza Cascardo
    Signed-off-by: David S. Miller

    Thadeu Lima de Souza Cascardo
     
  • Fix port identify test on 5461x PHY by driving LEDs through MDIO.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • rcu_assign_pointer(ptr, NULL) can be safely replaced by
    RCU_INIT_POINTER(ptr, NULL)

    (old rcu_assign_pointer() macro was testing the NULL value and could
    omit the smp_wmb(), but this had to be removed because of compiler
    warnings)

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

    Eric Dumazet
     
  • When add sources to interface failure, need to roll back the sfcount[MODE]
    to before state. We need to match it corresponding.

    Acked-by: David L Stevens
    Acked-by: Eric Dumazet
    Signed-off-by: Jun Zhao
    Signed-off-by: David S. Miller

    Jun Zhao
     
  • Since linux 2.6.26 (commit c6aefafb7ec6 : Add IPv6 support to TCP SYN
    cookies), we can drop a SYN packet reusing a TIME_WAIT socket.

    (As a matter of fact we fail to send the SYNACK answer)

    As the client resends its SYN packet after a one second timeout, we
    accept it, because first packet removed the TIME_WAIT socket before
    being dropped.

    This probably explains why nobody ever noticed or complained.

    Reported-by: Jesse Young
    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Reported issues when using dev_kfree_skb() on UP systems and
    systems with low numbers of cores. dev_kfree_skb_irq() will
    properly save IRQ state before freeing the skb.

    Tested on 3.1.1 and 3.2_rc2

    Example of reproducible trace of kernel 3.1.1
    ------------[ cut here ]------------
    WARNING: at kernel/softirq.c:159 local_bh_enable+0x32/0x79()
    ...
    Pid: 0, comm: swapper Not tainted 3.1.1-gentoo #1
    Call Trace:
    [] warn_slowpath_common+0x65/0x7a
    [] ? local_bh_enable+0x32/0x79
    [] warn_slowpath_null+0xf/0x13
    [] local_bh_enable+0x32/0x79
    [] destroy_conntrack+0x7c/0x9b
    [] nf_conntrack_destroy+0x1f/0x26
    [] skb_release_head_state+0x74/0x83
    [] __kfree_skb+0xb/0x6b
    [] consume_skb+0x24/0x26
    [] b44_poll+0xaa/0x449
    [] net_rx_action+0x3f/0xea
    [] __do_softirq+0x5f/0xd5
    [] ? local_bh_enable+0x79/0x79
    [] ? irq_exit+0x34/0x8d
    [] ? do_IRQ+0x74/0x87
    [] ? common_interrupt+0x29/0x30
    [] ? default_idle+0x29/0x3e
    [] ? cpu_idle+0x2f/0x5d
    [] ? rest_init+0x79/0x7b
    [] ? start_kernel+0x297/0x29c
    [] ? i386_start_kernel+0xb0/0xb7
    ---[ end trace 583f33bb1aa207a9 ]---

    Signed-off-by: Xander Hover
    Signed-off-by: David S. Miller

    Xander Hover
     
  • Distributions are using this in their default scripts, so don't hide
    them behind the advanced setting.

    Reported-by: Linus Torvalds
    Signed-off-by: David S. Miller

    David S. Miller
     
  • I broke the build with the addition of netprio_cgroups if CONFIG_CGROUPS=n.
    This patch corrects it by moving the offending struct into an ifdef
    CONFIG_CGROUPS block. Also clean up a few needless defines and inline functions
    that don't get called if CONFIG_CGROUPS isn't defined while Im at it.

    Signed-off-by: Neil Horman
    Signed-off-by: David S. Miller

    Neil Horman
     
  • commit 72a3effaf633bc ([NET]: Size listen hash tables using backlog
    hint) added a bug allowing inet6_synq_hash() to return an out of bound
    array index, because of u16 overflow.

    Bug can happen if system admins set net.core.somaxconn &
    net.ipv4.tcp_max_syn_backlog sysctls to values greater than 65536

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

    Eric Dumazet
     

23 Nov, 2011

17 commits