Eric Dumazet [Wed, 25 Mar 2009 20:05:46 +0000 (21:05 +0100)]
netfilter: nf_conntrack: use SLAB_DESTROY_BY_RCU and get rid of call_rcu()
Use "hlist_nulls" infrastructure we added in 2.6.29 for RCUification of UDP & TCP.
This permits an easy conversion from call_rcu() based hash lists to a
SLAB_DESTROY_BY_RCU one.
Avoiding call_rcu() delay at nf_conn freeing time has numerous gains.
First, it doesnt fill RCU queues (up to 10000 elements per cpu).
This reduces OOM possibility, if queued elements are not taken into account
This reduces latency problems when RCU queue size hits hilimit and triggers
emergency mode.
- It allows fast reuse of just freed elements, permitting better use of
CPU cache.
- We delete rcu_head from "struct nf_conn", shrinking size of this structure
by 8 or 16 bytes.
This patch only takes care of "struct nf_conn".
call_rcu() is still used for less critical conntrack parts, that may
be converted later if necessary.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Patrick McHardy [Wed, 25 Mar 2009 18:26:35 +0000 (19:26 +0100)]
netfilter: {ip,ip6,arp}_tables: fix incorrect loop detection
Commit
e1b4b9f ([NETFILTER]: {ip,ip6,arp}_tables: fix exponential worst-case
search for loops) introduced a regression in the loop detection algorithm,
causing sporadic incorrectly detected loops.
When a chain has already been visited during the check, it is treated as
having a standard target containing a RETURN verdict directly at the
beginning in order to not check it again. The real target of the first
rule is then incorrectly treated as STANDARD target and checked not to
contain invalid verdicts.
Fix by making sure the rule does actually contain a standard target.
Based on patch by Francis Dupont <Francis_Dupont@isc.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Holger Eitzenberger [Wed, 25 Mar 2009 17:44:01 +0000 (18:44 +0100)]
netfilter: limit the length of the helper name
This is necessary in order to have an upper bound for Netlink
message calculation, which is not a problem at all, as there
are no helpers with a longer name.
Signed-off-by: Holger Eitzenberger <holger@eitzenberger.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Holger Eitzenberger [Wed, 25 Mar 2009 17:26:30 +0000 (18:26 +0100)]
netlink: add nla_policy_len()
It calculates the max. length of a Netlink policy, which is usefull
for allocating Netlink buffers roughly the size of the actual
message.
Signed-off-by: Holger Eitzenberger <holger@eitzenberger.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Holger Eitzenberger [Wed, 25 Mar 2009 17:24:48 +0000 (18:24 +0100)]
netfilter: ctnetlink: add callbacks to the per-proto nlattrs
There is added a single callback for the l3 proto helper. The two
callbacks for the l4 protos are necessary because of the general
structure of a ctnetlink event, which is in short:
CTA_TUPLE_ORIG
<l3/l4-proto-attributes>
CTA_TUPLE_REPLY
<l3/l4-proto-attributes>
CTA_ID
...
CTA_PROTOINFO
<l4-proto-attributes>
CTA_TUPLE_MASTER
<l3/l4-proto-attributes>
Therefore the formular is
size := sizeof(generic-nlas) + 3 * sizeof(tuple_nlas) + sizeof(protoinfo_nlas)
Some of the NLAs are optional, e. g. CTA_TUPLE_MASTER, which is only
set if it's an expected connection. But the number of optional NLAs is
small enough to prevent netlink_trim() from reallocating if calculated
properly.
Signed-off-by: Holger Eitzenberger <holger@eitzenberger.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Eric Dumazet [Wed, 25 Mar 2009 16:31:52 +0000 (17:31 +0100)]
netfilter: factorize ifname_compare()
We use same not trivial helper function in four places. We can factorize it.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Eric Dumazet [Wed, 25 Mar 2009 16:24:34 +0000 (17:24 +0100)]
netfilter: nf_conntrack: use hlist_add_head_rcu() in nf_conntrack_set_hashsize()
Using hlist_add_head() in nf_conntrack_set_hashsize() is quite dangerous.
Without any barrier, one CPU could see a loop while doing its lookup.
Its true new table cannot be seen by another cpu, but previous table is still
readable.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Patrick McHardy [Wed, 25 Mar 2009 16:21:34 +0000 (17:21 +0100)]
netfilter: fix xt_LED build failure
net/netfilter/xt_LED.c:40: error: field netfilter_led_trigger has incomplete type
net/netfilter/xt_LED.c: In function led_timeout_callback:
net/netfilter/xt_LED.c:78: warning: unused variable ledinternal
net/netfilter/xt_LED.c: In function led_tg_check:
net/netfilter/xt_LED.c:102: error: implicit declaration of function led_trigger_register
net/netfilter/xt_LED.c: In function led_tg_destroy:
net/netfilter/xt_LED.c:135: error: implicit declaration of function led_trigger_unregister
Fix by adding a dependency on LED_TRIGGERS.
Reported-by: Sachin Sant <sachinp@in.ibm.com>
Tested-by: Subrata Modak <tosubrata@gmail.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Eric Dumazet [Tue, 24 Mar 2009 13:26:50 +0000 (14:26 +0100)]
netfilter: nf_conntrack: Reduce conntrack count in nf_conntrack_free()
We use RCU to defer freeing of conntrack structures. In DOS situation, RCU might
accumulate about 10.000 elements per CPU in its internal queues. To get accurate
conntrack counts (at the expense of slightly more RAM used), we might consider
conntrack counter not taking into account "about to be freed elements, waiting
in RCU queues". We thus decrement it in nf_conntrack_free(), not in the RCU
callback.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Tested-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Pablo Neira Ayuso [Mon, 23 Mar 2009 12:21:06 +0000 (13:21 +0100)]
nefilter: nfnetlink: add nfnetlink_set_err and use it in ctnetlink
This patch adds nfnetlink_set_err() to propagate the error to netlink
broadcast listener in case of memory allocation errors in the
message building.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Eric Leblond [Mon, 23 Mar 2009 12:16:53 +0000 (13:16 +0100)]
netfilter: sysctl support of logger choice
This patchs adds support of modification of the used logger via sysctl.
It can be used to change the logger to module that can not use the bind
operation (ipt_LOG and ipt_ULOG). For this purpose, it creates a
directory /proc/sys/net/netfilter/nf_log which contains a file
per-protocol. The content of the file is the name current logger (NONE if
not set) and a logger can be setup by simply echoing its name to the file.
By echoing "NONE" to a /proc/sys/net/netfilter/nf_log/PROTO file, the
logger corresponding to this PROTO is set to NULL.
Signed-off-by: Eric Leblond <eric@inl.fr>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Patrick McHardy [Wed, 18 Mar 2009 16:36:40 +0000 (17:36 +0100)]
netfilter: ctnetlink: fix rcu context imbalance
Introduced by
7ec47496 (netfilter: ctnetlink: cleanup master conntrack assignation):
net/netfilter/nf_conntrack_netlink.c:1275:2: warning: context imbalance in 'ctnetlink_create_conntrack' - different lock contexts for basic block
Signed-off-by: Patrick McHardy <kaber@trash.net>
Florian Westphal [Wed, 18 Mar 2009 16:30:50 +0000 (17:30 +0100)]
netfilter: remove nf_ct_l4proto_find_get/nf_ct_l4proto_put
users have been moved to __nf_ct_l4proto_find.
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Florian Westphal [Wed, 18 Mar 2009 16:28:37 +0000 (17:28 +0100)]
netfilter: ctnetlink: remove remaining module refcounting
Convert the remaining refcount users.
As pointed out by Patrick McHardy, the protocols can be accessed safely using RCU.
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Pablo Neira Ayuso [Mon, 16 Mar 2009 16:10:36 +0000 (17:10 +0100)]
netfilter: xtables: add cluster match
This patch adds the iptables cluster match. This match can be used
to deploy gateway and back-end load-sharing clusters. The cluster
can be composed of 32 nodes maximum (although I have only tested
this with two nodes, so I cannot tell what is the real scalability
limit of this solution in terms of cluster nodes).
Assuming that all the nodes see all packets (see below for an
example on how to do that if your switch does not allow this), the
cluster match decides if this node has to handle a packet given:
(jhash(source IP) % total_nodes) & node_mask
For related connections, the master conntrack is used. The following
is an example of its use to deploy a gateway cluster composed of two
nodes (where this is the node 1):
iptables -I PREROUTING -t mangle -i eth1 -m cluster \
--cluster-total-nodes 2 --cluster-local-node 1 \
--cluster-proc-name eth1 -j MARK --set-mark 0xffff
iptables -A PREROUTING -t mangle -i eth1 \
-m mark ! --mark 0xffff -j DROP
iptables -A PREROUTING -t mangle -i eth2 -m cluster \
--cluster-total-nodes 2 --cluster-local-node 1 \
--cluster-proc-name eth2 -j MARK --set-mark 0xffff
iptables -A PREROUTING -t mangle -i eth2 \
-m mark ! --mark 0xffff -j DROP
And the following commands to make all nodes see the same packets:
ip maddr add 01:00:5e:00:01:01 dev eth1
ip maddr add 01:00:5e:00:01:02 dev eth2
arptables -I OUTPUT -o eth1 --h-length 6 \
-j mangle --mangle-mac-s 01:00:5e:00:01:01
arptables -I INPUT -i eth1 --h-length 6 \
--destination-mac 01:00:5e:00:01:01 \
-j mangle --mangle-mac-d 00:zz:yy:xx:5a:27
arptables -I OUTPUT -o eth2 --h-length 6 \
-j mangle --mangle-mac-s 01:00:5e:00:01:02
arptables -I INPUT -i eth2 --h-length 6 \
--destination-mac 01:00:5e:00:01:02 \
-j mangle --mangle-mac-d 00:zz:yy:xx:5a:27
In the case of TCP connections, pickup facility has to be disabled
to avoid marking TCP ACK packets coming in the reply direction as
valid.
echo 0 > /proc/sys/net/netfilter/nf_conntrack_tcp_loose
BTW, some final notes:
* This match mangles the skbuff pkt_type in case that it detects
PACKET_MULTICAST for a non-multicast address. This may be done in
a PKTTYPE target for this sole purpose.
* This match supersedes the CLUSTERIP target.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Cyrill Gorcunov [Mon, 16 Mar 2009 15:30:49 +0000 (16:30 +0100)]
net: netfilter conntrack - add per-net functionality for DCCP protocol
Module specific data moved into per-net site and being allocated/freed
during net namespace creation/deletion.
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Daniel Lezcano <daniel.lezcano@free.fr>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Cyrill Gorcunov [Mon, 16 Mar 2009 15:23:30 +0000 (16:23 +0100)]
net: sysctl_net - use net_eq to compare nets
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Daniel Lezcano <daniel.lezcano@free.fr>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Jan Engelhardt [Mon, 16 Mar 2009 14:35:29 +0000 (15:35 +0100)]
netfilter: xtables: avoid pointer to self
Commit
784544739a25c30637397ace5489eeb6e15d7d49 (netfilter: iptables:
lock free counters) broke a number of modules whose rule data referenced
itself. A reallocation would not reestablish the correct references, so
it is best to use a separate struct that does not fall under RCU.
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Scott James Remnant [Mon, 16 Mar 2009 14:31:10 +0000 (15:31 +0100)]
netfilter: auto-load ip_queue module when socket opened
The ip_queue module is missing the net-pf-16-proto-3 alias that would
causae it to be auto-loaded when a socket of that type is opened. This
patch adds the alias.
Signed-off-by: Scott James Remnant <scott@canonical.com>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Scott James Remnant [Mon, 16 Mar 2009 14:30:14 +0000 (15:30 +0100)]
netfilter: auto-load ip6_queue module when socket opened
The ip6_queue module is missing the net-pf-16-proto-13 alias that would
cause it to be auto-loaded when a socket of that type is opened. This
patch adds the alias.
Signed-off-by: Scott James Remnant <scott@canonical.com>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Pablo Neira Ayuso [Mon, 16 Mar 2009 14:28:09 +0000 (15:28 +0100)]
netfilter: ctnetlink: move event reporting for new entries outside the lock
This patch moves the event reporting outside the lock section. With
this patch, the creation and update of entries is homogeneous from
the event reporting perspective. Moreover, as the event reporting is
done outside the lock section, the netlink broadcast delivery can
benefit of the yield() call under congestion.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Pablo Neira Ayuso [Mon, 16 Mar 2009 14:27:22 +0000 (15:27 +0100)]
netfilter: ctnetlink: cleanup conntrack update preliminary checkings
This patch moves the preliminary checkings that must be fulfilled
to update a conntrack, which are the following:
* NAT manglings cannot be updated
* Changing the master conntrack is not allowed.
This patch is a cleanup.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Pablo Neira Ayuso [Mon, 16 Mar 2009 14:25:46 +0000 (15:25 +0100)]
netfilter: ctnetlink: cleanup master conntrack assignation
This patch moves the assignation of the master conntrack to
ctnetlink_create_conntrack(), which is where it really belongs.
This patch is a cleanup.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Pablo Neira Ayuso [Mon, 16 Mar 2009 14:18:50 +0000 (15:18 +0100)]
netfilter: conntrack: increase drop stats if sequence adjustment fails
This patch increases the statistics of packets drop if the sequence
adjustment fails in ipv4_confirm().
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Stephen Hemminger [Mon, 16 Mar 2009 14:17:23 +0000 (15:17 +0100)]
netfilter: Kconfig spelling fixes (trivial)
Signed-off-by: Stephen Hemminger <sheminger@vyatta.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Christoph Paasch [Mon, 16 Mar 2009 14:15:35 +0000 (15:15 +0100)]
netfilter: remove IPvX specific parts from nf_conntrack_l4proto.h
Moving the structure definitions to the corresponding IPvX specific header files.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Eric Leblond [Mon, 16 Mar 2009 13:55:27 +0000 (14:55 +0100)]
netfilter: print the list of register loggers
This patch modifies the proc output to add display of registered
loggers. The content of /proc/net/netfilter/nf_log is modified. Instead
of displaying a protocol per line with format:
proto:logger
it now displays:
proto:logger (comma_separated_list_of_loggers)
NONE is used as keyword if no logger is used.
Signed-off-by: Eric Leblond <eric@inl.fr>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Eric Leblond [Mon, 16 Mar 2009 13:54:21 +0000 (14:54 +0100)]
netfilter: use a linked list of loggers
This patch modifies nf_log to use a linked list of loggers for each
protocol. This list of loggers is read and write protected with a
mutex.
This patch separates registration and binding. To be used as
logging module, a module has to register calling nf_log_register()
and to bind to a protocol it has to call nf_log_bind_pf().
This patch also converts the logging modules to the new API. For nfnetlink_log,
it simply switchs call to register functions to call to bind function and
adds a call to nf_log_register() during init. For other modules, it just
remove a const flag from the logger structure and replace it with a
__read_mostly.
Signed-off-by: Eric Leblond <eric@inl.fr>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Eric Dumazet [Tue, 24 Feb 2009 14:30:29 +0000 (15:30 +0100)]
netfilter: xt_hashlimit fix
Commit
784544739a25c30637397ace5489eeb6e15d7d49
(netfilter: iptables: lock free counters) broke xt_hashlimit netfilter module :
This module was storing a pointer inside its xt_hashlimit_info, and this pointer
is not relocated when we temporarly switch tables (iptables -L).
This hack is not not needed at all (probably a leftover from
ancient time), as each cpu should and can access to its own copy.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Jan Engelhardt [Tue, 24 Feb 2009 14:23:58 +0000 (15:23 +0100)]
netfilter: install missing headers
iptables imports headers from (the unifdefed headers of a)
kernel tree, but some headers happened to not be installed.
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Pablo Neira Ayuso [Tue, 24 Feb 2009 13:48:01 +0000 (14:48 +0100)]
netfilter: nf_conntrack: account packets drop by tcp_packet()
Since tcp_packet() may return -NF_DROP in two situations, the
packet-drop stats must be increased.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Eric Dumazet [Fri, 20 Feb 2009 10:03:33 +0000 (11:03 +0100)]
netfilter: ip_tables: unfold two critical loops in ip_packet_match()
While doing oprofile tests I noticed two loops are not properly unrolled by gcc
Using a hand coded unrolled loop provides nice speedup : ipt_do_table
credited of 2.52 % of cpu instead of 3.29 % in tbench.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Adam Nielsen [Fri, 20 Feb 2009 09:55:14 +0000 (10:55 +0100)]
netfilter: x_tables: add LED trigger target
Kernel module providing implementation of LED netfilter target. Each
instance of the target appears as a led-trigger device, which can be
associated with one or more LEDs in /sys/class/leds/
Signed-off-by: Adam Nielsen <a.nielsen@shikadi.net>
Acked-by: Richard Purdie <rpurdie@linux.intel.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Hagen Paul Pfeifer [Fri, 20 Feb 2009 09:48:06 +0000 (10:48 +0100)]
netfilter: fix hardcoded size assumptions
get_random_bytes() is sometimes called with a hard coded size assumption
of an integer. This could not be true for next centuries. This patch
replace it with a compile time statement.
Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Hagen Paul Pfeifer [Fri, 20 Feb 2009 09:47:09 +0000 (10:47 +0100)]
netfilter: nf_conntrack: table max size should hold at least table size
Table size is defined as unsigned, wheres the table maximum size is
defined as a signed integer. The calculation of max is 8 or 4,
multiplied the table size. Therefore the max value is aligned to
unsigned.
Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Stephen Hemminger [Fri, 20 Feb 2009 09:35:32 +0000 (10:35 +0100)]
netfilter: iptables: lock free counters
The reader/writer lock in ip_tables is acquired in the critical path of
processing packets and is one of the reasons just loading iptables can cause
a 20% performance loss. The rwlock serves two functions:
1) it prevents changes to table state (xt_replace) while table is in use.
This is now handled by doing rcu on the xt_table. When table is
replaced, the new table(s) are put in and the old one table(s) are freed
after RCU period.
2) it provides synchronization when accesing the counter values.
This is now handled by swapping in new table_info entries for each cpu
then summing the old values, and putting the result back onto one
cpu. On a busy system it may cause sampling to occur at different
times on each cpu, but no packet/byte counts are lost in the process.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Sucessfully tested on my dual quad core machine too, but iptables only (no ipv6 here)
BTW, my new "tbench 8" result is 2450 MB/s, (it was 2150 MB/s not so long ago)
Acked-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Eric Dumazet [Thu, 19 Feb 2009 10:18:23 +0000 (11:18 +0100)]
netfilter: ip6_tables: unfold two loops in ip6_packet_match()
ip6_tables netfilter module can use an ifname_compare() helper
so that two loops are unfolded.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Eric Dumazet [Thu, 19 Feb 2009 10:17:17 +0000 (11:17 +0100)]
netfilter: xt_physdev: unfold two loops in physdev_mt()
xt_physdev netfilter module can use an ifname_compare() helper
so that two loops are unfolded.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Jan Engelhardt [Thu, 19 Feb 2009 10:16:03 +0000 (11:16 +0100)]
netfilter: xtables: add backward-compat options
Concern has been expressed about the changing Kconfig options.
Provide the old options that forward-select.
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Eric Dumazet [Wed, 18 Feb 2009 18:11:39 +0000 (19:11 +0100)]
netfilter: xt_physdev fixes
1) physdev_mt() incorrectly assumes nulldevname[] is aligned on an int
2) It also uses word comparisons, while it could use long word ones.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Jan Engelhardt [Wed, 18 Feb 2009 17:39:31 +0000 (18:39 +0100)]
netfilter: Combine ipt_ttl and ip6t_hl source
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Jan Engelhardt [Wed, 18 Feb 2009 17:38:40 +0000 (18:38 +0100)]
netfilter: Combine ipt_TTL and ip6t_HL source
Suggested by: James King <t.james.king@gmail.com>
Similarly to commit
c9fd49680954714473d6cbd2546d6ff120f96840, merge
TTL and HL. Since HL does not depend on any IPv6-specific function,
no new module dependencies would arise.
With slight adjustments to the Kconfig help text.
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Eric Dumazet [Wed, 18 Feb 2009 16:47:50 +0000 (17:47 +0100)]
netfilter: arp_tables: unfold two critical loops in arp_packet_match()
x86 and powerpc can perform long word accesses in an efficient maner.
We can use this to unroll two loops in arp_packet_match(), to
perform arithmetic on long words instead of bytes. This is a win
on x86_64 for example.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Eric Leblond [Wed, 18 Feb 2009 15:30:56 +0000 (16:30 +0100)]
netfilter: log invalid new icmpv6 packet with nf_log_packet()
This patch adds a logging message for invalid new icmpv6 packet.
Signed-off-by: Eric Leblond <eric@inl.fr>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Stephen Hemminger [Wed, 18 Feb 2009 15:30:38 +0000 (16:30 +0100)]
netfilter: ebtables: remove unneeded initializations
The initialization of the lock element is not needed
since the lock is always initialized in ebt_register_table.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Stephen Hemminger [Wed, 18 Feb 2009 15:30:20 +0000 (16:30 +0100)]
netfilter: x_tables: remove unneeded initializations
Later patches change the locking on xt_table and the initialization of
the lock element is not needed since the lock is always initialized in
xt_table_register anyway.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Stephen Hemminger [Wed, 18 Feb 2009 15:29:44 +0000 (16:29 +0100)]
netfilter: x_tables: change elements in x_tables
Change to proper type on private pointer rather than anonymous void.
Keep active elements on same cache line.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Jan Engelhardt [Wed, 18 Feb 2009 15:29:08 +0000 (16:29 +0100)]
netfilter: remove unneeded goto
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Christoph Paasch [Wed, 18 Feb 2009 15:28:35 +0000 (16:28 +0100)]
netfilter: change generic l4 protocol number
0 is used by Hop-by-hop header and so this may cause confusion.
255 is stated as 'Reserved' by IANA.
Signed-off-by: Christoph Paasch <christoph.paasch@student.uclouvain.be>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Hannes Eder [Sun, 15 Feb 2009 02:13:01 +0000 (02:13 +0000)]
drivers/net/tokenring: fix sparse warning: cast truncates bits from const value
Impact: Remove the write-only field 'current_ring_status' completely.
Fix this sparse warnings:
drivers/net/tokenring/smctr.c:4410:52: warning: cast truncates bits from constant value (100 becomes 0)
drivers/net/tokenring/smctr.c:4415:52: warning: cast truncates bits from constant value (400 becomes 0)
drivers/net/tokenring/smctr.c:4420:52: warning: cast truncates bits from constant value (800 becomes 0)
drivers/net/tokenring/smctr.c:4425:52: warning: cast truncates bits from constant value (1000 becomes 0)
drivers/net/tokenring/smctr.c:4430:52: warning: cast truncates bits from constant value (2000 becomes 0)
drivers/net/tokenring/smctr.c:4435:52: warning: cast truncates bits from constant value (4000 becomes 0)
drivers/net/tokenring/smctr.c:4440:52: warning: cast truncates bits from constant value (8000 becomes 0)
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:50:45 +0000 (11:50 +0000)]
drivers/net/wireless/prism54: fix sparse warning: fix signedness
Fix sparse warning:
drivers/net/wireless/prism54/isl_ioctl.c:2997:32: warning: incorrect type in argument 2 (different signedness)
drivers/net/wireless/prism54/oid_mgt.c:712:42: warning: incorrect type in argument 2 (different signedness)
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:50:26 +0000 (11:50 +0000)]
drivers/net/wireless/ipw2x00: fix sparse warnings: fix signedness
Fix this sparse warnings:
drivers/net/wireless/ipw2x00/ipw2100.c:1930:43: warning: incorrect type in argument 4 (different signedness)
drivers/net/wireless/ipw2x00/ipw2100.c:1938:76: warning: incorrect type in argument 4 (different signedness)
drivers/net/wireless/ipw2x00/ipw2100.c:1946:67: warning: incorrect type in argument 4 (different signedness)
drivers/net/wireless/ipw2x00/ipw2100.c:1953:72: warning: incorrect type in argument 4 (different signedness)
drivers/net/wireless/ipw2x00/ipw2100.c:4071:73: warning: incorrect type in argument 4 (different signedness)
drivers/net/wireless/ipw2x00/ipw2100.c:4078:43: warning: incorrect type in argument 4 (different signedness)
drivers/net/wireless/ipw2x00/ipw2100.c:4084:67: warning: incorrect type in argument 4 (different signedness)
drivers/net/wireless/ipw2x00/ipw2100.c:7141:73: warning: incorrect type in argument 4 (different signedness)
drivers/net/wireless/ipw2x00/ipw2100.c:8317:48: warning: incorrect type in argument 4 (different signedness)
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:50:06 +0000 (11:50 +0000)]
drivers/net/wireless/b43: fix warning: format not a string literal and no ...
Fix this compilation warning:
drivers/net/wireless/b43/main.c: In function 'b43_print_fw_helptext':
drivers/net/wireless/b43/main.c:1971: warning: format not a string literal and no format arguments
drivers/net/wireless/b43/main.c:1973: warning: format not a string literal and no format arguments
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:49:48 +0000 (11:49 +0000)]
drivers/net/wireless/ath9k: fix sparse warnings: Should it be static?
Impact: Make symbols static.
Fix this sparse warnings:
drivers/net/wireless/ath9k/eeprom.c:1343:5: warning: symbol 'ath9k_hw_4k_get_spur_channel' was not declared. Should it be static?
drivers/net/wireless/ath9k/eeprom.c:1372:19: warning: symbol 'eep_4k_ops' was not declared. Should it be static?
drivers/net/wireless/ath9k/eeprom.c:2649:5: warning: symbol 'ath9k_hw_def_get_spur_channel' was not declared. Should it be static?
drivers/net/wireless/ath9k/eeprom.c:2678:19: warning: symbol 'eep_def_ops' was not declared. Should it be static?
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:49:26 +0000 (11:49 +0000)]
drivers/net/wireless: fix sparse warnings: fix signedness
Fix this sparse warnings:
drivers/net/wireless/airo.c:2102:21: warning: incorrect type in initializer (different signedness)
drivers/net/wireless/airo.c:2126:21: warning: incorrect type in initializer (different signedness)
drivers/net/wireless/airo.c:2167:21: warning: incorrect type in initializer (different signedness)
drivers/net/wireless/airo.c:2191:21: warning: incorrect type in initializer (different signedness)
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:49:09 +0000 (11:49 +0000)]
drivers/net/wireless: fix sparse warnings: symbol shadows an earlier one
Impact:
Move variable closer to usage resp.
remove redundant variables resp.
rename function scope variable.
Fix this sparse warnings:
drivers/net/wireless/airo.c:3840:29: warning: symbol 'i' shadows an earlier one
drivers/net/wireless/airo.c:3751:13: originally declared here
drivers/net/wireless/airo.c:3847:29: warning: symbol 'i' shadows an earlier one
drivers/net/wireless/airo.c:3751:13: originally declared here
drivers/net/wireless/airo.c:3861:21: warning: symbol 'i' shadows an earlier one
drivers/net/wireless/airo.c:3751:13: originally declared here
drivers/net/wireless/wavelan.c:43:13: warning: symbol 'irq' shadows an earlier one
drivers/net/wireless/wavelan.p.h:692:17: originally declared here
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:48:44 +0000 (11:48 +0000)]
drivers/net/wireless: fix sparse warning: context imbalance
Impact: Attribute function with __acquires(...) resp. __releases(...).
Fix this sparse warnings:
drivers/net/wireless/strip.c:955:21: warning: context imbalance in 'strip_seq_start' - wrong count at exit
drivers/net/wireless/strip.c:975:13: warning: context imbalance in 'strip_seq_stop' - unexpected unlock
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:48:25 +0000 (11:48 +0000)]
drivers/net/wan: fix sparse warning: symbol shadows an earlier one
Impact: Rename function scope variable and while being at it fix some
coding style issues.
Fix this sparse warning:
drivers/net/wan/sbni.c:1526:14: warning: symbol 'num' shadows an earlier one
drivers/net/wan/sbni.c:160:13: originally declared here
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:48:07 +0000 (11:48 +0000)]
drivers/net/wan: fix warning: format not a string literal and no ...
Impact: Use 'static const char[]' instead of 'static char[]'.
Fix this compilation warnings:
drivers/net/wan/lapbether.c: In function 'lapbeth_init_driver':
drivers/net/wan/lapbether.c:441: warning: format not a string literal and no format arguments
drivers/net/wan/z85230.c: In function 'z85230_init_driver':
drivers/net/wan/z85230.c:1782: warning: format not a string literal and no format arguments
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:47:47 +0000 (11:47 +0000)]
drivers/net/usb: fix sparse warnings: Should it be static?
Impact: Make symbols static.
Fix this sparse warnings:
drivers/net/usb/hso.c:1249:6: warning: symbol 'hso_unthrottle_tasklet' was not declared. Should it be static?
drivers/net/usb/hso.c:1268:6: warning: symbol 'hso_unthrottle_workfunc' was not declared. Should it be static?
drivers/net/usb/hso.c:1466:5: warning: symbol 'tiocmget_submit_urb' was not declared. Should it be static?
drivers/net/usb/smsc95xx.c:62:5: warning: symbol 'turbo_mode' was not declared. Should it be static?
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:47:30 +0000 (11:47 +0000)]
drivers/net/tulip: fix sparse warning: symbol shadows an earlier one
Impact: Rename a local variable resp. remove a redundant variable and
while being at it use more unform loop constructs.
Fix this sparse warning:
drivers/net/tulip/de4x5.c:3944:13: warning: symbol 'i' shadows an earlier one
drivers/net/tulip/de4x5.c:3938:9: originally declared here
drivers/net/tulip/media.c:72:21: warning: symbol 'i' shadows an earlier one
drivers/net/tulip/media.c:54:13: originally declared here
drivers/net/tulip/media.c:134:21: warning: symbol 'i' shadows an earlier one
drivers/net/tulip/media.c:117:13: originally declared here
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:46:59 +0000 (11:46 +0000)]
drivers/net/tulip: fix warning: format not a string literal and no ...
Impact: Use 'static const char[]' instead of 'static char[]' and while
being at it add a KERN_INFO prefix.
Fix this warning:
drivers/net/tulip/de4x5.c: In function 'de4x5_hw_init':
drivers/net/tulip/de4x5.c:1268: warning: format not a string literal and no format arguments
drivers/net/tulip/winbond-840.c: In function 'w840_init':
drivers/net/tulip/winbond-840.c:1666: warning: format not a string literal and no format arguments
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:44:44 +0000 (11:44 +0000)]
drivers/net/tokenring: fix sparse warning: symbol shadows an earlier one
Impact: Remove redundant variables.
Fix this sparse warnings:
drivers/net/tokenring/lanstreamer.c:619:21: warning: symbol 'i' shadows an earlier one
drivers/net/tokenring/lanstreamer.c:589:13: originally declared here
drivers/net/tokenring/madgemc.c:695:34: warning: symbol 'tp' shadows an earlier one
drivers/net/tokenring/madgemc.c:689:26: originally declared here
drivers/net/tokenring/olympic.c:702:21: warning: symbol 'i' shadows an earlier one
drivers/net/tokenring/olympic.c:440:13: originally declared here
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:44:19 +0000 (11:44 +0000)]
drivers/net/tokenring: fix warning: format not a string literal and no ...
Impact: Use 'static const char[]' instead of 'static char[]'.
Fix this warnings:
drivers/net/tokenring/smctr.c:3644: warning: format not a string literal and no format arguments
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:43:15 +0000 (11:43 +0000)]
drivers/net/skfp: fix sparse warning: Should it be static?
Impact: Move function declarations to header file.
Fix this sparse warnings:
drivers/net/skfp/cfm.c:146:6: warning: symbol 'all_selection_criteria' was not declared. Should it be static?
drivers/net/skfp/drvfbi.c:186:6: warning: symbol 'mac1_irq' was not declared. Should it be static?
drivers/net/skfp/drvfbi.c:284:6: warning: symbol 'read_address' was not declared. Should it be static?
drivers/net/skfp/drvfbi.c:323:6: warning: symbol 'init_board' was not declared. Should it be static?
drivers/net/skfp/fplustm.c:72:24: warning: symbol 'fddi_broadcast' was not declared. Should it be static?
drivers/net/skfp/fplustm.c:679:6: warning: symbol 'mac2_irq' was not declared. Should it be static?
drivers/net/skfp/fplustm.c:805:6: warning: symbol 'mac3_irq' was not declared. Should it be static?
drivers/net/skfp/fplustm.c:856:5: warning: symbol 'init_fplus' was not declared. Should it be static?
drivers/net/skfp/pcmplc.c:404:6: warning: symbol 'init_plc' was not declared. Should it be static?
drivers/net/skfp/pcmplc.c:1592:5: warning: symbol 'pcm_status_twisted' was not declared. Should it be static?
drivers/net/skfp/smtinit.c:68:5: warning: symbol 'init_smt' was not declared. Should it be static?
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:41:03 +0000 (11:41 +0000)]
drivers/net/sfc: fix sparse warning: symbol shadows an earlier one
Impact: Move variable declaration as close to their usage as possible.
Fix this sparse warning:
drivers/net/sfc/tenxpress.c:589:22: warning: symbol 'link_ok' shadows an earlier one
drivers/net/sfc/tenxpress.c:575:30: originally declared here
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Acked-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:39:23 +0000 (11:39 +0000)]
drivers/net/pcmcia: fix warning: format not a string literal and no ...
Impact: Use 'static const char[]' instead of 'static char[]' and while
being at it prefix the message with KERN_INFO.
Fix this warnings:
drivers/net/pcmcia/axnet_cs.c:1716: warning: format not a string literal and no format arguments
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:38:36 +0000 (11:38 +0000)]
drivers/net/ixgbe: fix sparse warning: Should it be static?
Impact: Make symbol static.
Fix this sparse warning:
drivers/net/ixgbe/ixgbe_82598.c:59:5: warning: symbol 'ixgbe_get_pcie_msix_count_82598' was not declared. Should it be static?
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Acked-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:36:20 +0000 (11:36 +0000)]
drivers/net/hamradio: fix sparse warnings: fix signedness
Fix this sparse warnings:
drivers/net/hamradio/hdlcdrv.c:274:34: warning: incorrect type in argument 2 (different signedness)
drivers/net/hamradio/hdlcdrv.c:279:47: warning: incorrect type in argument 2 (different signedness)
drivers/net/hamradio/hdlcdrv.c:288:39: warning: incorrect type in argument 2 (different signedness)
drivers/net/hamradio/hdlcdrv.c:300:47: warning: incorrect type in argument 2 (different signedness)
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:35:35 +0000 (11:35 +0000)]
drivers/net/hamradio: fix sparse warning: symbol shadows an earlier one
Impact: Rename inner scrope variable.
Fix this sparse warning:
drivers/net/hamradio/yam.c:856:35: warning: symbol 'dev' shadows an earlier one
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:34:52 +0000 (11:34 +0000)]
drivers/net/hamradio: fix sparse warning: context imbalance
Impact: Attribute functions with __acquires(...) resp. __releases(...).
Fix this sparse warnings:
drivers/net/hamradio/bpqether.c:387:13: warning: context imbalance in 'bpq_seq_start' - wrong count at exit
drivers/net/hamradio/bpqether.c:419:13: warning: context imbalance in 'bpq_seq_stop' - unexpected unlock
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:33:21 +0000 (11:33 +0000)]
drivers/net/hamradio: fix warning: format not a string literal and no ...
Impact: Use 'static const char[]' instead of 'static char[]' and while
being at it fix an issue in 'mkiss_init_driver', where in case of an
error the status code was not passed to printk.
Fix this warnings:
drivers/net/hamradio/6pack.c: In function 'sixpack_init_driver':
drivers/net/hamradio/6pack.c:802: warning: format not a string literal and no format arguments
drivers/net/hamradio/bpqether.c: In function 'bpq_init_driver':
drivers/net/hamradio/bpqether.c:609: warning: format not a string literal and no format arguments
drivers/net/hamradio/mkiss.c: In function 'mkiss_init_driver':
drivers/net/hamradio/mkiss.c:988: warning: format not a string literal and no format arguments
drivers/net/hamradio/mkiss.c:991: warning: format not a string literal and no format arguments
drivers/net/hamradio/scc.c: In function 'scc_init_driver':
drivers/net/hamradio/scc.c:2109: warning: format not a string literal and no format arguments
drivers/net/hamradio/yam.c: In function 'yam_init_driver':
drivers/net/hamradio/yam.c:1094: warning: format not a string literal and no format arguments
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:32:25 +0000 (11:32 +0000)]
drivers/net/e1000e: fix sparse warning: Should it be static?
Impact: Make symbol static.
Fix this sparse warning:
drivers/net/e1000e/82571.c:1229:5: warning: symbol 'e1000_check_for_serdes_link_82571' was not declared. Should it be static?
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:16:19 +0000 (11:16 +0000)]
drivers/net/cxgb3: fix sparse warnings: fix signedness
Fix this sparse warning:
drivers/net/cxgb3/ael1002.c:1010:60: warning: incorrect type in argument 4 (different signedness)
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Acked-by: Divy Le Ray <divy@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:16:04 +0000 (11:16 +0000)]
drivers/net/cxgb3: fix sparse warning: symbol shadows an earlier one
Impact: Move variable declaration as close to usage as possible.
Fix this sparse warning:
drivers/net/cxgb3/cxgb3_main.c:1586:21: warning: symbol 'cap' shadows an earlier one
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Acked-by: Divy Le Ray <divy@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:15:49 +0000 (11:15 +0000)]
drivers/net/bonding: fix sparse warning: symbol shadows an earlier one
Impact: Rename function scope variable.
Fix this sparse warning:
drivers/net/bonding/bond_main.c:4704:13: warning: symbol 'mode' shadows an earlier one
drivers/net/bonding/bond_main.c:95:13: originally declared here
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:15:33 +0000 (11:15 +0000)]
drivers/net/bonding: fix sparse warnings: context imbalance
Impact: Attribute functions with __acquires(...) and/or __releases(...).
Fix this sparse warnings:
drivers/net/bonding/bond_alb.c:1675:9: warning: context imbalance in 'bond_alb_handle_active_change' - unexpected unlock
drivers/net/bonding/bond_alb.c:1742:9: warning: context imbalance in 'bond_alb_set_mac_address' - unexpected unlock
drivers/net/bonding/bond_main.c:1025:17: warning: context imbalance in 'bond_do_fail_over_mac' - unexpected unlock
drivers/net/bonding/bond_main.c:3195:13: warning: context imbalance in 'bond_info_seq_start' - wrong count at exit
drivers/net/bonding/bond_main.c:3234:13: warning: context imbalance in 'bond_info_seq_stop' - unexpected unlock
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:15:17 +0000 (11:15 +0000)]
drivers/net/atlx: fix sparse warnings: fix signedness
Impact: While being at it: statics do not need to be initialized with 0.
Fix this sparse warnings:
drivers/net/atlx/atl1.c:109:1: warning: incorrect type in initializer (different signedness)
drivers/net/atlx/atl2.c:2870:1: warning: incorrect type in initializer (different signedness)
drivers/net/atlx/atl2.c:2880:1: warning: incorrect type in initializer (different signedness)
drivers/net/atlx/atl2.c:2894:1: warning: incorrect type in initializer (different signedness)
drivers/net/atlx/atl2.c:2904:1: warning: incorrect type in initializer (different signedness)
drivers/net/atlx/atl2.c:2913:1: warning: incorrect type in initializer (different signedness)
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Acked-by: Jay Cliburn <jcliburn@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:14:58 +0000 (11:14 +0000)]
drivers/net/atl1e: fix sparse warnings: fix signedness
Fix this sparse warnings:
drivers/net/atl1e/atl1e_main.c:716:39: warning: incorrect type in argument 2 (different signedness)
drivers/net/atl1e/atl1e_param.c:57:1: warning: incorrect type in initializer (different signedness)
drivers/net/atl1e/atl1e_param.c:68:1: warning: incorrect type in initializer (different signedness)
drivers/net/atl1e/atl1e_param.c:81:1: warning: incorrect type in initializer (different signedness)
drivers/net/atl1e/atl1e_param.c:92:1: warning: incorrect type in initializer (different signedness)
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:14:45 +0000 (11:14 +0000)]
drivers/net/arcnet: fix sparse warning: symbol shadows an earlier one
Impact: Remove redundant inner scope variable.
Fix this sparse warning:
drivers/net/arcnet/arcnet.c:383:21: warning: symbol 'count' shadows an earlier one
drivers/net/arcnet/arcnet.c:375:13: originally declared here
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:14:31 +0000 (11:14 +0000)]
drivers/net/s2io.c: fix sparse warning: symbol shadows an earlier one
Impact: Remove redundant inner scope variable.
Fix this sparse warning:
drivers/net/s2io.c:7223:21: warning: symbol 'i' shadows an earlier one
drivers/net/s2io.c:7184:13: originally declared here
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:14:04 +0000 (11:14 +0000)]
drivers/net/r6040.c: fix sparse warning: Using plain integer as NULL pointer
Fix this sparse warnings:
drivers/net/r6040.c:487:31: warning: Using plain integer as NULL pointer
drivers/net/r6040.c:492:31: warning: Using plain integer as NULL pointer
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Acked-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:13:52 +0000 (11:13 +0000)]
drivers/net/ppp*.c: fix sparse warnings: fix signedness
Fix this sparse warnings:
drivers/net/ppp_generic.c:919:43: warning: incorrect type in argument 1 (different signedness)
drivers/net/pppoe.c:1195:43: warning: incorrect type in argument 1 (different signedness)
drivers/net/pppol2tp.c:2666:43: warning: incorrect type in argument 1 (different signedness)
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Acked-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:13:39 +0000 (11:13 +0000)]
drivers/net/ni65.c: fix sparse warnings: fix signedness
Fix this sparse warnings:
drivers/net/ni65.c:488:36: warning: incorrect type in argument 2 (different signedness)
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:13:24 +0000 (11:13 +0000)]
drivers/net/lance.c: fix sparse warnings: fix signedness
Impact: Besides from fixing the signedness issue remove some
whitespace to obey to the 80 character limit.
Fix this sparse warnings:
drivers/net/lance.c:399:19: warning: incorrect type in assignment (different signedness)
drivers/net/lance.c:654:29: warning: incorrect type in argument 2 (different signedness)
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:12:48 +0000 (11:12 +0000)]
drivers/net/niu.c: fix sparse warning: symbol shadows an earlier one
Impact: Move variable declaration to a more inner scope.
Fix this sparse warning:
drivers/net/niu.c:2399:21: warning: symbol 'err' shadows an earlier one
drivers/net/niu.c:2287:13: originally declared here
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:12:36 +0000 (11:12 +0000)]
drivers/net/ns83820.c: fix sparse warnings: fix signedness
Fix this sparse warnings:
drivers/net/ns83820.c:479:36: warning: incorrect type in argument 2 (different signedness)
drivers/net/ns83820.c:479:36: warning: incorrect type in argument 2 (different signedness)
drivers/net/ns83820.c:479:36: warning: incorrect type in argument 2 (different signedness)
drivers/net/ns83820.c:479:36: warning: incorrect type in argument 2 (different signedness)
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:12:23 +0000 (11:12 +0000)]
drivers/net/ni65.c: fix sparse warnings: symbol shadows an earlier one
Impact: Remove redundant variable declaration or move them to a more
inner scope.
Fix this sparse warnings:
drivers/net/ni65.c:900:37: warning: symbol 'p' shadows an earlier one
drivers/net/ni65.c:874:21: originally declared here
drivers/net/ni65.c:925:21: warning: symbol 'p' shadows an earlier one
drivers/net/ni65.c:874:21: originally declared here
drivers/net/ni65.c:945:29: warning: symbol 'k' shadows an earlier one
drivers/net/ni65.c:926:15: originally declared here
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:12:10 +0000 (11:12 +0000)]
drivers/net/e2100.c: fix sparse warning: symbol shadows an earlier one
Impact: Remove redundant inner scope variable and while being at it
make use of ARRAY_SIZE instead of a hardcoded number.
Fix this sparse warning:
drivers/net/e2100.c:219:56: warning: symbol 'i' shadows an earlier one
drivers/net/e2100.c:181:13: originally declared here
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hannes Eder [Sat, 14 Feb 2009 11:11:55 +0000 (11:11 +0000)]
drivers/net/at1700.c: fix sparse warning: symbol shadows an earlier one
Impact: Move variable declaration to a more inner scope.
Fix this sparse warning:
drivers/net/at1700.c:846:21: warning: symbol 'i' shadows an earlier one
drivers/net/at1700.c:831:13: originally declared here
Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Thomas Gleixner [Mon, 16 Feb 2009 08:08:56 +0000 (00:08 -0800)]
net: replace commatas with semicolons
Impact: syntax fix
Interestingly enough this compiles w/o any complaints:
orphans = percpu_counter_sum_positive(&tcp_orphan_count),
sockets = percpu_counter_sum_positive(&tcp_sockets_allocated),
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Vlad Yasevich [Fri, 13 Feb 2009 08:33:44 +0000 (08:33 +0000)]
sctp: Inherit all socket options from parent correctly.
During peeloff/accept() sctp needs to save the parent socket state
into the new socket so that any options set on the parent are
inherited by the child socket. This was found when the
parent/listener socket issues SO_BINDTODEVICE, but the
data was misrouted after a route cache flush.
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Vlad Yasevich [Fri, 13 Feb 2009 08:33:43 +0000 (08:33 +0000)]
sctp: Fix the RTO-doubling on idle-link heartbeats
SCTP incorrectly doubles rto ever time a Hearbeat chunk
is generated. However RFC 4960 states:
On an idle destination address that is allowed to heartbeat, it is
recommended that a HEARTBEAT chunk is sent once per RTO of that
destination address plus the protocol parameter 'HB.interval', with
jittering of +/- 50% of the RTO value, and exponential backoff of the
RTO if the previous HEARTBEAT is unanswered.
Essentially, of if the heartbean is unacknowledged, do we double the RTO.
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Vlad Yasevich [Fri, 13 Feb 2009 08:33:42 +0000 (08:33 +0000)]
sctp: Clean up sctp checksumming code
The sctp crc32c checksum is always generated in little endian.
So, we clean up the code to treat it as little endian and remove
all the __force casts.
Suggested by Herbert Xu.
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Lucas Nussbaum [Fri, 13 Feb 2009 08:33:41 +0000 (08:33 +0000)]
sctp: Allow to disable SCTP checksums via module parameter
This is a new version of my patch, now using a module parameter instead
of a sysctl, so that the option is harder to find. Please note that,
once the module is loaded, it is still possible to change the value of
the parameter in /sys/module/sctp/parameters/, which is useful if you
want to do performance comparisons without rebooting.
Computation of SCTP checksums significantly affects the performance of
SCTP. For example, using two dual-Opteron 246 connected using a Gbe
network, it was not possible to achieve more than ~730 Mbps, compared to
941 Mbps after disabling SCTP checksums.
Unfortunately, SCTP checksum offloading in NICs is not commonly
available (yet).
By default, checksums are still enabled, of course.
Signed-off-by: Lucas Nussbaum <lucas.nussbaum@ens-lyon.fr>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Alexander Duyck [Mon, 16 Feb 2009 08:00:20 +0000 (00:00 -0800)]
igb: transition driver to only using advanced descriptors
Currently the driver uses advanced descriptors for its main functionality,
but then uses legacy when testing. This patch changes this so that
advanced descriptors are used throughout and all mentions of legacy
descriptors are removed.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Acked-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Alexander Duyck [Mon, 16 Feb 2009 07:59:44 +0000 (23:59 -0800)]
igb: remove unused defines
This patch removes all of the unused defines from the .h files contained in
igb. For some defines there was a use and so I plugged them into the correct
locations.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Alexander Duyck [Fri, 13 Feb 2009 14:45:17 +0000 (14:45 +0000)]
igb: misc cleanup to combine one if statement
This patch combines a pair of if statements into one.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
CC: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Alexander Duyck [Thu, 12 Feb 2009 18:17:42 +0000 (18:17 +0000)]
igb: cleanup incorrect comment and set IP Checksum Enable
IP Checksum enable doesn't need packet split in order to function. It only
requires the use of advanced descriptors which the current igb driver does.
So we can enable it always without any issues.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Acked-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Alexander Duyck [Thu, 12 Feb 2009 18:17:21 +0000 (18:17 +0000)]
igb: reduce size required to trigger low latency
Update the Adaptive Interrupt Moderation algorithm so that the low latency
state is triggered less easily to prevent high interrupt loads.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>