01 May, 2008
2 commits
-
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
ipv6: Compilation fix for compat MCAST_MSFILTER sockopts. -
The last hunk from the commit dae50295 (ipv4/ipv6 compat: Fix SSM
applications on 64bit kernels.) escaped from the compat_ipv6_setsockopt
to the ipv6_getsockopt (I guess due to patch smartness wrt searching
for context) thus breaking 32-bit and 64-bit-without-compat compilation.Signed-off-by: Pavel Emelyanov
Acked-by: David L Stevens
Signed-off-by: David S. Miller
30 Apr, 2008
1 commit
-
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (53 commits)
tcp: Overflow bug in Vegas
[IPv4] UFO: prevent generation of chained skb destined to UFO device
iwlwifi: move the selects to the tristate drivers
ipv4: annotate a few functions __init in ipconfig.c
atm: ambassador: vcc_sf semaphore to mutex
MAINTAINERS: The socketcan-core list is subscribers-only.
netfilter: nf_conntrack: padding breaks conntrack hash on ARM
ipv4: Update MTU to all related cache entries in ip_rt_frag_needed()
sch_sfq: use del_timer_sync() in sfq_destroy()
net: Add compat support for getsockopt (MCAST_MSFILTER)
net: Several cleanups for the setsockopt compat support.
ipvs: fix oops in backup for fwmark conn templates
bridge: kernel panic when unloading bridge module
bridge: fix error handling in br_add_if()
netfilter: {nfnetlink,ip,ip6}_queue: fix skb_over_panic when enlarging packets
netfilter: x_tables: fix net namespace leak when reading /proc/net/xxx_tables_names
netfilter: xt_TCPOPTSTRIP: signed tcphoff for ipv6_skip_exthdr() retval
tcp: Limit cwnd growth when deferring for GSO
tcp: Allow send-limited cwnd to grow up to max_burst when gso disabled
[netdrvr] gianfar: Determine TBIPA value dynamically
...
29 Apr, 2008
3 commits
-
This patch adds support for getsockopt for MCAST_MSFILTER for
both IPv4 and IPv6. It depends on the previous setsockopt patch,
and uses the same method.Signed-off-by: David L Stevens
Signed-off-by: YOSHIFUJI Hideaki
Signed-off-by: David S. Miller -
While reinjecting *bigger* modified versions of IPv6 packets using
libnetfilter_queue, things work fine on a 2.6.24 kernel (2.6.22 too)
but I get the following on recents kernels (2.6.25, trace below is
against today's net-2.6 git tree):skb_over_panic: text:c04fddb0 len:696 put:632 head:f7592c00 data:f7592c00 tail:0xf7592eb8 end:0xf7592e80 dev:eth0
------------[ cut here ]------------
invalid opcode: 0000 [#1] PREEMPT
Process sendd (pid: 3657, ti=f6014000 task=f77c31d0 task.ti=f6014000)
Stack: c071e638 c04fddb0 000002b8 00000278 f7592c00 f7592c00 f7592eb8 f7592e80
f763c000 f6bc5200 f7592c40 f6015c34 c04cdbfc f6bc5200 00000278 f6015c60
c04fddb0 00000020 f72a10c0 f751b420 00000001 0000000a 000002b8 c065582c
Call Trace:
[] ? nfqnl_recv_verdict+0x1c0/0x2e0
[] ? skb_put+0x3c/0x40
[] ? nfqnl_recv_verdict+0x1c0/0x2e0
[] ? nfnetlink_rcv_msg+0xf5/0x160
[] ? nfnetlink_rcv_msg+0x1e/0x160
[] ? nfnetlink_rcv_msg+0x0/0x160
[] ? netlink_rcv_skb+0x77/0xa0
[] ? nfnetlink_rcv+0x1c/0x30
[] ? netlink_unicast+0x243/0x2b0
[] ? memcpy_fromiovec+0x4a/0x70
[] ? netlink_sendmsg+0x1c6/0x270
[] ? sock_sendmsg+0xc4/0xf0
[] ? set_next_entity+0x1d/0x50
[] ? autoremove_wake_function+0x0/0x40
[] ? __wake_up_common+0x3e/0x70
[] ? n_tty_receive_buf+0x34f/0x1280
[] ? __wake_up+0x68/0x70
[] ? copy_from_user+0x37/0x70
[] ? verify_iovec+0x2c/0x90
[] ? sys_sendmsg+0x10a/0x230
[] ? __dequeue_entity+0x2a/0xa0
[] ? set_next_entity+0x1d/0x50
[] ? pty_write+0x47/0x60
[] ? tty_default_put_char+0x1b/0x20
[] ? __wake_up+0x49/0x70
[] ? tty_ldisc_deref+0x39/0x90
[] ? tty_write+0x1a0/0x1b0
[] ? sys_socketcall+0x7f/0x260
[] ? sysenter_past_esp+0x6a/0x91
[] ? snd_intel8x0m_probe+0x270/0x6e0
=======================
Code: 00 00 89 5c 24 14 8b 98 9c 00 00 00 89 54 24 0c 89 5c 24 10 8b 40 50 89 4c 24 04 c7 04 24 38 e6 71 c0 89 44 24 08 e8 c4 46 c5 ff 0b eb fe 55 89 e5 56 89 d6 53 89 c3 83 ec 0c 8b 40 50 39 d0
EIP: [] skb_over_panic+0x5c/0x60 SS:ESP 0068:f6015bf8Looking at the code, I ended up in nfq_mangle() function (called by
nfqnl_recv_verdict()) which performs a call to skb_copy_expand() due to
the increased size of data passed to the function. AFAICT, it should ask
for 'diff' instead of 'diff - skb_tailroom(e->skb)'. Because the
resulting sk_buff has not enough space to support the skb_put(skb, diff)
call a few lines later, this results in the call to skb_over_panic().The patch below asks for allocation of a copy with enough space for
mangled packet and the same amount of headroom as old sk_buff. While
looking at how the regression appeared (e2b58a67), I noticed the same
pattern in ipq_mangle_ipv6() and ipq_mangle_ipv4(). The patch corrects
those locations too.Tested with bigger reinjected IPv6 packets (nfqnl_mangle() path), things
are ok (2.6.25 and today's net-2.6 git tree).Signed-off-by: Arnaud Ebalard
Signed-off-by: Patrick McHardy
Signed-off-by: David S. Miller -
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
iwlwifi: Allow building iwl3945 without iwl4965.
wireless: Fix compile error with wifi & leds
tcp: Fix slab corruption with ipv6 and tcp6fuzz
ipv4/ipv6 compat: Fix SSM applications on 64bit kernels.
[IPSEC]: Use digest_null directly for auth
sunrpc: fix missing kernel-doc
can: Fix copy_from_user() results interpretation
Revert "ipv6: Fix typo in net/ipv6/Kconfig"
tipc: endianness annotations
ipv6: result of csum_fold() is already 16bit, no need to cast
[XFRM] AUDIT: Fix flowlabel text format ambibuity.
28 Apr, 2008
3 commits
-
Add support on 64-bit kernels for seting 32-bit compatible MCAST*
socket options.Signed-off-by: David L Stevens
Signed-off-by: David S. Miller -
This reverts commit 5b3f129c5592ca35b3fe8916767c58b98710478c.
As requested by Maciej W. Rozycki.
Signed-off-by: David S. Miller
-
Signed-off-by: Al Viro
Signed-off-by: David S. Miller
26 Apr, 2008
1 commit
-
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (48 commits)
net: Fix wrong interpretation of some copy_to_user() results.
xfrm: alg_key_len & alg_icv_len should be unsigned
[netdrvr] tehuti: move ioctl perm check closer to function start
ipv6: Fix typo in net/ipv6/Kconfig
via-velocity: fix vlan receipt
tg3: sparse cleanup
forcedeth: realtek phy crossover detection
ibm_newemac: Increase MDIO timeouts
gianfar: Fix skb allocation strategy
netxen: reduce stack usage of netxen_nic_flash_print
smc911x: test after postfix decrement fails in smc911x_{reset,drop_pkt}
net drivers: fix platform driver hotplug/coldplug
forcedeth: new backoff implementation
ehea: make things static
phylib: Add support for board-level PHY fixups
[netdrvr] atlx: code movement: move atl1 parameter parsing
atlx: remove flash vendor parameter
korina: misc cleanup
korina: fix misplaced return statement
WAN: Fix confusing insmod error code for C101 too.
...
25 Apr, 2008
2 commits
-
Two is used in the wrong context here, as you are connecting to an
IPv6 network over IPv4; not connecting two IPv6 networks to an IPv4
one.Signed-off-by: Michael Beasley
Signed-off-by: David S. Miller -
RFC3542 tells that IPV6_CHECKSUM socket option in the IPPROTO_IPV6
level is not allowed on ICMPv6 sockets. IPPROTO_RAW level
IPV6_CHECKSUM socket option (a Linux extension) is still allowed.Signed-off-by: YOSHIFUJI Hideaki
Signed-off-by: David S. Miller
24 Apr, 2008
1 commit
-
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
iwlwifi: Fix built-in compilation of iwlcore
net: Unexport move_addr_to_{kernel,user}
rt2x00: Select LEDS_CLASS.
iwlwifi: Select LEDS_CLASS.
leds: Do not guard NEW_LEDS with HAS_IOMEM
[IPSEC]: Fix catch-22 with algorithm IDs above 31
time: Export set_normalized_timespec.
tcp: Make use of before macro in tcp_input.c
hamradio: Remove unneeded and deprecated cli()/sti() calls in dmascc.c
[NETNS]: Remove empty ->init callback.
[DCCP]: Convert do_gettimeofday() to getnstimeofday().
[NETNS]: Don't initialize err variable twice.
[NETNS]: The ip6_fib_timer can work with garbage on net namespace stop.
[IPV4]: Convert do_gettimeofday() to getnstimeofday().
[IPV4]: Make icmp_sk_init() static.
[IPV6]: Make struct ip6_prohibit_entry_template static.
tcp: Trivial fix to correct function name in a comment in net/ipv4/tcp.c
[NET]: Expose netdevice dev_id through sysfs
skbuff: fix missing kernel-doc notation
[ROSE]: Fix soft lockup wrt. rose_node_list_lock
22 Apr, 2008
3 commits
-
The netns start-stop engine can happily live with any of
init or exit callbacks set to NULL.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
The ip6_route_net_init() performs some unneeded actions.
Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
The del_timer() function doesn't guarantee, that the timer callback
is not active by the time it exits.Thus, the fib6_net_exit() may kfree() all the data, that is required
by the fib6_run_gc(). The race window is tiny, but slab poisoning can
trigger this bug.Using del_timer_sync() will cure this.
Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller
21 Apr, 2008
1 commit
-
This patch makes the needlessly global struct
ip6_prohibit_entry_template static.Signed-off-by: Adrian Bunk
Signed-off-by: David S. Miller
19 Apr, 2008
1 commit
-
None of these files use any of the functionality promised by
asm/semaphore.h. It's possible that they rely on it dragging in some
unrelated header file, but I can't build all these files, so we'll have
fix any build failures as they come up.Signed-off-by: Matthew Wilcox
18 Apr, 2008
2 commits
-
Fixes bugzilla #8895
If a super-tree leaf has 'rt' assigned to it and we
get an error from fib6_add_rt2node(), we'll leave
a reference to 'rt' in pn->leaf and then do an
unconditional dst_free().We should prune such references.
Based upon a report by Vincent Perrier.
Signed-off-by: David S. Miller
-
As I can see from the code, two places (tcp_v6_syn_recv_sock and
dccp_v6_request_recv_sock) that call this one already run with
BHs disabled, so it's safe to call __inet_inherit_port there.Besides (in case I missed smth with code review) the calltrace
tcp_v6_syn_recv_sock
`- tcp_v4_syn_recv_sock
`- __inet_inherit_port
and the similar for DCCP are valid, but assumes BHs to be disabled.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller
16 Apr, 2008
15 commits
-
Signed-off-by: Denis V. Lunev
Signed-off-by: David S. Miller -
And no need in some IPPROTO_XXX enabling, since ipv6 code
doesn't have any filtering.So, just set proper net and mark device with NETNS_LOCAL.
Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
All the ip_route_output_key(), dev_get_by_...() and ipv6_chk_addr()
calls are now stubbed with init_net.Fortunately, all the places already have where to get the proper
net from.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
Move hashes in the struct ip6_tnl_net, replace tnls_xxx[] with
ip6n->tnlx_xxx[] and handle init and exit appropriately.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
All the code, that reference it already has the ip6_tnl_net pointer,
so s/ip6_fb_tnl_dev/ip6n->fb_tnl_dev/ and move creation/releasing
code into net init/exit ops.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
Calls to ip6_tnl_lookup were stubbed with init_net - give them
a proper one.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
Hashes and fallback device used in them will be per-net.
Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
Set proper net and mark a new device as NETNS_LOCAL before registering.
Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
I.e. replace init_net stubs in ip_route_output_key() calls.
Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
Just move all the hashes on the sit_net structure and
patch the rest of the code appropriately.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
Allocate and register one in sit_init_net, use sitn->fb_tunnel_dev
over the code and unregister one in sit_exit_net.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
Replace introduced in the previous patch init_net stubs
with the proper net pointer.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
... to make them prepared for future hashes and fallback device
move on the struct sit_net.Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller
14 Apr, 2008
5 commits
-
I was asked about "why don't we perform a sk_net filtering in
bind_conflict calls, like we do in other sock lookup places"
for a couple of times.Can we please add a comment about why we do not need one?
Signed-off-by: Pavel Emelyanov
Signed-off-by: David S. Miller -
Conflicts:
drivers/net/ehea/ehea_main.c
drivers/net/wireless/iwlwifi/Kconfig
drivers/net/wireless/rt2x00/rt61pci.c
net/ipv4/inet_timewait_sock.c
net/ipv6/raw.c
net/mac80211/ieee80211_sta.c -
Directly call IPv4 and IPv6 variants where the address family is
easily known.Signed-off-by: Jan Engelhardt
Signed-off-by: Patrick McHardy -
Signed-off-by: Jan Engelhardt
Signed-off-by: Patrick McHardy