09 Nov, 2010
1 commit
-
The basic classifier keeps statistics but does not report it to user space.
This showed up when using basic classifier (with police) as a default catch
all on ingress; no statistics were reported.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
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
01 Nov, 2010
1 commit
-
While validating the configuration em_ops is already set, thus the
individual destroy functions are called, but the ematch data has
not been allocated and associated with the ematch yet.Signed-off-by: Thomas Graf
Signed-off-by: David S. Miller
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
21 Oct, 2010
3 commits
-
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 -
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/0x2b0commit 79640a4ca695 (add additional lock to qdisc to increase
throughput) forgot to initialize noop_qdisc and noqueue_qdisc busylockSigned-off-by: Eric Dumazet
Signed-off-by: David S. Miller
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
14 Oct, 2010
2 commits
-
Signed-off-by: Jan Engelhardt
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
10 Oct, 2010
1 commit
-
Signed-off-by: Changli Gao
Signed-off-by: David S. Miller
07 Oct, 2010
1 commit
-
Conflicts:
drivers/net/pcmcia/pcnet_cs.c
net/caif/caif_socket.c
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 -
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
30 Sep, 2010
1 commit
-
There is some confusion with rx_queue name after RPS, and net drivers
private rx_queue fields.I suggest to rename "struct net_device"->rx_queue to ingress_queue.
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller
27 Sep, 2010
1 commit
-
Conflicts:
drivers/net/qlcnic/qlcnic_init.c
net/ipv4/ip_output.c
13 Sep, 2010
1 commit
-
The list_head conversion unearther an unnecessary flow
check. Since flow is always NULL here we don't need to
see if a matching flow exists already.Reported-by: Jiri Slaby
Signed-off-by: David S. Miller
10 Sep, 2010
1 commit
-
Conflicts:
net/mac80211/main.c
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 -
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
25 Aug, 2010
1 commit
-
Trivial extension to existing meta data match rules to allow
matching on skb receive hash value.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
24 Aug, 2010
2 commits
-
Signed-off-by: Changli Gao
Signed-off-by: David S. Miller -
It uses ip_send_check() and stuff like that.
Reported-by: Randy Dunlap
Signed-off-by: David S. Miller
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
22 Aug, 2010
2 commits
-
We can use rxhash to classify the traffic into flows. As rxhash maybe
supplied by NIC or RPS, it is cheaper.Signed-off-by: Changli Gao
Acked-by: Jamal Hadi Salim
Signed-off-by: David S. Miller
20 Aug, 2010
3 commits
-
net/sched: add ACT_CSUM action to update packets checksums
ACT_CSUM can be called just after ACT_PEDIT in order to re-compute some
altered checksums in IPv4 and IPv6 packets. The following checksums are
supported by this patch:
- IPv4: IPv4 header, ICMP, IGMP, TCP, UDP & UDPLite
- IPv6: ICMPv6, TCP, UDP & UDPLite
It's possible to request in the same action to update different kind of
checksums, if the packets flow mix TCP, UDP and UDPLite, ...An example of usage is done in the associated iproute2 patch.
Version 3 changes:
- remove useless goto instructions
- improve IPv6 hop options decodingVersion 2 changes:
- coding style correction
- remove useless arguments of some functions
- use stack in tcf_csum_dump()
- add tcf_csum_skb_nextlayer() to factor codeSigned-off-by: Gregoire Baron
Acked-by: jamal
Signed-off-by: David S. Miller -
Signed-off-by: Changli Gao
Signed-off-by: David S. Miller -
Signed-off-by: Changli Gao
Signed-off-by: David S. Miller
19 Aug, 2010
1 commit
-
There is no need to check "s". nla_data() doesn't return NULL. Also we
already dereferenced "s" at this point so it would have oopsed ealier if
it were NULL.Signed-off-by: Dan Carpenter
Signed-off-by: David S. Miller
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
11 Aug, 2010
2 commits
-
Require qdisc class ops .walk and .leaf for classful qdisc in
register_qdisc(). The checks could be done later insted, but these
ops are really needed and used by most of classful qdiscs.Signed-off-by: Jarek Poplawski
Signed-off-by: David S. Miller -
sch_sfq as a classful qdisc needs the .leaf handler. Otherwise, there
is an oops possible in tc_modify_qdisc()/check_loop().Fixes commit 7d2681a6ff4f9ab5e48d02550b4c6338f1638998
Signed-off-by: Jarek Poplawski
Signed-off-by: David S. Miller
10 Aug, 2010
3 commits
-
This is based on work originally done by Patric McHardy.
Signed-off-by: Ben Greear
Signed-off-by: David S. Miller -
…mmy bind/unbind handles
Verify in register_qdisc() some basic qdisc class handlers are present.
Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net> -
…dummy bind/unbind handles
Add dummy .unbind_tcf and .put qdisc class ops for easier verification.
(All other schedulers have it like this.)Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
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.cSigned-off-by: Jarek Poplawski
Reported-by: Franchoze Eric
Signed-off-by: David S. Miller
05 Aug, 2010
2 commits
-
The packet length should be checked before the packet data is dereferenced.
Signed-off-by: Changli Gao
Signed-off-by: David S. Miller -
The packet length should be checked before the packet data is dereferenced.
Signed-off-by: Changli Gao
Signed-off-by: David S. Miller