29 Sep, 2006
40 commits
-
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
rport argument is net-endian
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
->port is net-endian
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
ip_route_connect(), ip_route_newports() get port numbers net-endian
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
port is net-endian
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
->port is net-endian
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
port argument is net-endian
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
Some of the instances of tcp_sack_block are host-endian, some - net-endian.
Define struct tcp_sack_block_wire identical to struct tcp_sack_block
with u32 replaced with __be32; annotate uses of tcp_sack_block replacing
net-endian ones with tcp_sack_block_wire. Change is obviously safe since
for cc(1) __be32 is typedefed to u32.Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
ip_mc_sf_allow() expects addresses to be passed net-endian.
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
daddr is net-endian
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
->addr is net-endian
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
->faddr is net-endian; annotated as such, variables inferred to be net-endian
annotated.Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
raddr is net-endian
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
Signed-off-by: Al Viro
Signed-off-by: David S. Miller -
The move of qdisc destruction to a rcu callback broke locking in the
entire qdisc layer by invalidating previously valid assumptions about
the context in which changes to the qdisc tree occur.The two assumptions were:
- since changes only happen in process context, read_lock doesn't need
bottem half protection. Now invalid since destruction of inner qdiscs,
classifiers, actions and estimators happens in the RCU callback unless
they're manually deleted, resulting in dead-locks when read_lock in
process context is interrupted by write_lock_bh in bottem half context.- since changes only happen under the RTNL, no additional locking is
necessary for data not used during packet processing (f.e. u32_list).
Again, since destruction now happens in the RCU callback, this assumption
is not valid anymore, causing races while using this data, which can
result in corruption or use-after-free.Instead of "fixing" this by disabling bottem halfs everywhere and adding
new locks/refcounting, this patch makes these assumptions valid again by
moving destruction back to process context. Since only the dev->qdisc
pointer is protected by RCU, but ->enqueue and the qdisc tree are still
protected by dev->qdisc_lock, destruction of the tree can be performed
immediately and only the final free needs to happen in the rcu callback
to make sure dev_queue_xmit doesn't access already freed memory.Signed-off-by: Patrick McHardy
Signed-off-by: David S. Miller -
Fix incorrect use of RB_EMPTY_NODE in htb_safe_rb_erase, which makes it
skip nodes within the rbtree instead of nodes not in the tree, resulting
in crashes later on.The root cause for this seems to be the very counter-intuitive behaviour
of the RB_EMPTY_NODE macro, which returns _false_ when the node is empty.Signed-off-by: Patrick McHardy
Signed-off-by: David S. Miller -
This is just a minor buglet I came across by accident - when inet_init
fails to register raw_prot, it jumps to out_unregister_udp_proto which
should unregister UDP _and_ TCP.Signed-off-by: Olaf Kirch
Signed-off-by: David S. Miller -
Signed-off-by: Francesco Fondelli
Signed-off-by: Robert Olsson
Signed-off-by: David S. Miller -
Anyway, I've been asked to add support for managing DSCP codepoints,
so one can test DiffServ capable routers. It's very simple code and is
working for me.Signed-off-by: Francesco Fondelli
Signed-off-by: Robert Olsson
Signed-off-by: David S. Miller -
The attached patch allows pktgen to produce 802.1Q and Q-in-Q tagged frames.
I have used it for stress test a bridge and seems ok to me.
Unfortunately I have no access to net-2.6.x git tree so the diff is against
2.6.17.13.Signed-off-by: Francesco Fondelli
Acked-by: Steven Whitehouse
Signed-off-by: Robert Olsson
Signed-off-by: David S. Miller -
Prevents filters from being added if the first generated
handle already exists.Signed-off-by: Kim Nordlund
Signed-off-by: Thomas Graf -
PPPoE must advertise the underlying device's MTU via the ppp channel
descriptor structure, as multilink functionality depends on it.Signed-off-by: Michal Ostrowski
Acked-by: Paul Mackerras
Signed-off-by: Andrew Morton
Signed-off-by: David S. Miller -
Update version to 3.66.
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
Add support for the 5709 10/100 PHY.
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
Add support for the new 5709 device. This is a new 10/100 Mbps chip.
The mailbox access and firmware interface are quite different from
all other tg3 chips.Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
Put the firmware polling logic into a separate function. This makes
the code cleaner.Signed-off-by: Michael Chan
Signed-off-by: David S. Miller