09 Nov, 2010

1 commit


04 Nov, 2010

1 commit

  • Somewhere along the lines net_cls_subsys_id became a macro when
    cls_cgroup is built as a module. Not only did it make cls_cgroup
    completely useless, it also causes it to crash on module unload.

    This patch fixes this by removing that macro.

    Thanks to Eric Dumazet for diagnosing this problem.

    Reported-by: Randy Dunlap
    Signed-off-by: Herbert Xu
    Reviewed-by: Li Zefan
    Signed-off-by: David S. Miller

    Herbert Xu
     

01 Nov, 2010

1 commit


24 Oct, 2010

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1699 commits)
    bnx2/bnx2x: Unsupported Ethtool operations should return -EINVAL.
    vlan: Calling vlan_hwaccel_do_receive() is always valid.
    tproxy: use the interface primary IP address as a default value for --on-ip
    tproxy: added IPv6 support to the socket match
    cxgb3: function namespace cleanup
    tproxy: added IPv6 support to the TPROXY target
    tproxy: added IPv6 socket lookup function to nf_tproxy_core
    be2net: Changes to use only priority codes allowed by f/w
    tproxy: allow non-local binds of IPv6 sockets if IP_TRANSPARENT is enabled
    tproxy: added tproxy sockopt interface in the IPV6 layer
    tproxy: added udp6_lib_lookup function
    tproxy: added const specifiers to udp lookup functions
    tproxy: split off ipv6 defragmentation to a separate module
    l2tp: small cleanup
    nf_nat: restrict ICMP translation for embedded header
    can: mcp251x: fix generation of error frames
    can: mcp251x: fix endless loop in interrupt handler if CANINTF_MERRF is set
    can-raw: add msg_flags to distinguish local traffic
    9p: client code cleanup
    rds: make local functions/variables static
    ...

    Fix up conflicts in net/core/dev.c, drivers/net/pcmcia/smc91c92_cs.c and
    drivers/net/wireless/ath/ath9k/debug.c as per David

    Linus Torvalds
     

21 Oct, 2010

3 commits

  • David S. Miller
     
  • The first parameter dev isn't in use in qdisc_create_dflt().

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

    Changli Gao
     
  • Under network load, doing :

    tc qdisc del dev eth0 root

    triggers :

    [ 167.193087] BUG: spinlock bad magic on CPU#3, udpflood/4928
    [ 167.193139] lock: c15bc324, .magic: 00000000, .owner:
    /-1, .owner_cpu: -1
    [ 167.193193] Pid: 4928, comm: udpflood Not tainted
    2.6.36-rc7-11417-g215340c-dirty #323
    [ 167.193245] Call Trace:
    [ 167.193292] [] ? printk+0x18/0x20
    [ 167.193342] [] spin_bug+0xa3/0xf0
    [ 167.193389] [] do_raw_spin_lock+0x7d/0x160
    [ 167.193440] [] ? __dev_xmit_skb+0x27e/0x2b0
    [ 167.193496] [] ? trace_hardirqs_on+0xb/0x10
    [ 167.193545] [] _raw_spin_lock+0x3a/0x40
    [ 167.193593] [] ? __dev_xmit_skb+0x27e/0x2b0
    [ 167.193641] [] __dev_xmit_skb+0x27e/0x2b0

    commit 79640a4ca695 (add additional lock to qdisc to increase
    throughput) forgot to initialize noop_qdisc and noqueue_qdisc busylock

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

    Eric Dumazet
     

19 Oct, 2010

1 commit

  • Peter Zijlstra found a bug in the way softirq time is accounted in
    VIRT_CPU_ACCOUNTING on this thread:

    http://lkml.indiana.edu/hypermail//linux/kernel/1009.2/01366.html

    The problem is, softirq processing uses local_bh_disable internally. There
    is no way, later in the flow, to differentiate between whether softirq is
    being processed or is it just that bh has been disabled. So, a hardirq when bh
    is disabled results in time being wrongly accounted as softirq.

    Looking at the code a bit more, the problem exists in !VIRT_CPU_ACCOUNTING
    as well. As account_system_time() in normal tick based accouting also uses
    softirq_count, which will be set even when not in softirq with bh disabled.

    Peter also suggested solution of using 2*SOFTIRQ_OFFSET as irq count
    for local_bh_{disable,enable} and using just SOFTIRQ_OFFSET while softirq
    processing. The patch below does that and adds API in_serving_softirq() which
    returns whether we are currently processing softirq or not.

    Also changes one of the usages of softirq_count in net/sched/cls_cgroup.c
    to in_serving_softirq.

    Looks like many usages of in_softirq really want in_serving_softirq. Those
    changes can be made individually on a case by case basis.

    Signed-off-by: Venkatesh Pallipadi
    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Venkatesh Pallipadi
     

14 Oct, 2010

2 commits


12 Oct, 2010

1 commit

  • Add a seqlock in struct neighbour to protect neigh->ha[], and avoid
    dirtying neighbour in stress situation (many different flows / dsts)

    Dirtying takes place because of read_lock(&n->lock) and n->used writes.

    Switching to a seqlock, and writing n->used only on jiffies changes
    permits less dirtying.

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

    Eric Dumazet
     

10 Oct, 2010

1 commit


07 Oct, 2010

1 commit


05 Oct, 2010

2 commits

  • skb_headroom() is unsigned so "skb_headroom(skb) + toff" is also
    unsigned and can't be less than zero. This test was added in 66d50d25:
    "u32: negative offset fix" It was supposed to fix a regression.

    Signed-off-by: Dan Carpenter
    Signed-off-by: David S. Miller

    Dan Carpenter
     
  • ingress being not used very much, and net_device->ingress_queue being
    quite a big object (128 or 256 bytes), use a dynamic allocation if
    needed (tc qdisc add dev eth0 ingress ...)

    dev_ingress_queue(dev) helper should be used only with RTNL taken.

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

    Eric Dumazet
     

30 Sep, 2010

1 commit


27 Sep, 2010

1 commit


13 Sep, 2010

1 commit


10 Sep, 2010

1 commit


02 Sep, 2010

2 commits

  • This patch fixes init_vf() function, so on each new backlog period parent's
    cl_cfmin is properly updated (including further propgation towards the root),
    even if the activated leaf has no upperlimit curve defined.

    Signed-off-by: Michal Soltys
    Signed-off-by: David S. Miller

    Michal Soltys
     
  • While reviewing commit 1c40be12f7d8ca1d387510d39787b12e512a7ce8, I
    audited other users of tc_action_ops->dump for information leaks.

    That commit covered almost all of them but act_police still had a leak.

    opt.limit and opt.capab aren't zeroed out before the structure is
    passed out.

    This patch uses the C99 initializers to zero everything unused out.

    Signed-off-by: Jeff Mahoney
    Acked-by: Jeff Mahoney
    Signed-off-by: David S. Miller

    Jeff Mahoney
     

25 Aug, 2010

1 commit


24 Aug, 2010

2 commits


23 Aug, 2010

1 commit

  • for the declararion of csum_ipv6_magic.

    Fixes this build error on PowerPC (at least):

    net/sched/act_csum.c: In function 'tcf_csum_ipv6_icmp':
    net/sched/act_csum.c:178: error: implicit declaration of function 'csum_ipv6_magic'

    Signed-off-by: Stephen Rothwell
    Signed-off-by: David S. Miller

    Stephen Rothwell
     

22 Aug, 2010

2 commits


20 Aug, 2010

3 commits


19 Aug, 2010

1 commit


18 Aug, 2010

1 commit

  • We leak at least 32bits of kernel memory to user land in tc dump,
    because we dont init all fields (capab ?) of the dumped structure.

    Use C99 initializers so that holes and non explicit fields are zeroed.

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

    Eric Dumazet
     

11 Aug, 2010

2 commits


10 Aug, 2010

3 commits


08 Aug, 2010

1 commit

  • Since there was added ->tcf_chain() method without ->bind_tcf() to
    sch_sfq class options, there is oops when a filter is added with
    the classid parameter.

    Fixes commit 7d2681a6ff4f9ab5e48d02550b4c6338f1638998
    netdev thread: null pointer at cls_api.c

    Signed-off-by: Jarek Poplawski
    Reported-by: Franchoze Eric
    Signed-off-by: David S. Miller

    Jarek Poplawski
     

05 Aug, 2010

2 commits