B44 driver was using unsigned long as an io memory address.
Recent changes caused this to be a warning. This patch fixes that
and makes the readl/writel wrapper into inline's instead of macros
with magic variable side effect (yuck).
Signed-off-by: David S. Miller <davem@davemloft.net>
This centralizes neighbour state transition by timer into
neigh_timer_handler(), and kill neigh_sync().
This improves timing accuracy of state transition.
neigh_timer_handler() for each entry is now reponsible
for state transition of the entry, and
neigh_periodic_timer() is just for garbage collection.
Update IsRouter (NTF_ROUTER) flag approrpriately.
Specifically,
- we should not update it blindly; if Override Flag is
unset and lladdr is differnt, we should NOT.
- we should set it when we have received RA.
- we should set it when we have received Redirect
whose target is off-link.
Herbert Xu [Mon, 13 Sep 2004 06:03:56 +0000 (23:03 -0700)]
[IPV6]: Add option to copy DSCP in decap in ip6_tunnel.
Here is a patch that allows the copying of the DSCP during decapsulation
for ip6_tunnel. I've made it a separate option from the one that
determines the copying during encapsulation since the DSCP processing
may be asymmetric. It also means that we preserve compatibility should
anyone be relying on the current behaviour.
inet_ecn.h might appear to be an odd place for ipv6_copy_dscp, but
I couldn't put it in dsfield.h since I want to use ipv6_get_dsfield
in inet_ecn.h later on. The other alternative would be to define
INET_ECN_MASK in dsfield.h.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This patch kills the bogus radeonfb_read/write routines. In order to do so,
it adds a new member to fb_info, along with screen_base, which is screen_size,
indicating the mapped area. The default fb_read/write will now use that instead
of fix->smem_len if it is non-0, and radeonfb now sets it to the mapped size
of the framebuffer.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
[PATCH] ppc64:Fix missing register in altivec context switch
This is a resend of a patch sent in July and that got lost somewhat,
the "VSCR" register wasn't restored properly from the context on
load_up_altivec (typo), please apply the fix:
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Rusty Russell [Sun, 12 Sep 2004 10:00:47 +0000 (03:00 -0700)]
[NETFILTER]: Fix conntrack seq_file handling.
Am travelling, but this passed simple tests here. If this isn't going
in, the current seqfile stuff should be ripped out; it's a mess.
/proc/net/ip_conntrack was changed over to seq_file. However,
seq_file isn't a great fit (a linked list which is changing is not a
good candidate for seq file), and the conversion was done badly.
1) Don't do allocation: simply hand the pointer head of the correct chain.
2) Actually output the original tuple.
3) Lock only when actually traversing hash chain.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: David S. Miller <davem@davemloft.net>
[IPVS]: Do not use skb_checksum_help(), create and use nf_reset_debug()
Appended is a 2nd version that uses nf_reset_debug.
- do not use skb_checksum_help in input path as ipvs can handle
incoming CHECKSUM_HW packets
- do not use skb_checksum_help in forwarding path
- claim that checksum is valid (CHECKSUM_NONE) when entering output
path for out->in packets
- do not reset/destroy the nfct in IP_VS_XMIT, the intention is to
reset the debugging field just to avoid log floods from nf_debug_ip_*
functions, it is known that the ipvs packets traverse other
hooks, eg. LOCAL_IN->LOCAL_OUT. Use nf_reset_debug instead of nf_reset.
Signed-off-by: Julian Anastasov <ja@ssi.bg> Signed-off-by: David S. Miller <davem@davemloft.net>
Well, rt->rt6i_idev is always set if it is dynamically allocated.
However, when we hit ip6_null_entry here, its rt6i_idev is NULL.
This patch is minimum fix to avoid the oops for now.
Signed-off-by: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
1. If the fake 5513 id bit is not set by the BIOS we must have the 5518
id in the device table.
2. If the register remapping is not set by the BIOS then the enable bit
check in ide_pci_setup_ports will fail. It's safe to switch to the
remapping mode here. Keeping the not remapped mode would need quite big
changes AFAICS.
This driver caused a _lot_ of warnings due to tons
of explicit casts to "uclong". Making all the types
sane not only removed the warnings, but got rid of
a lot of silly casting, since the types are now much
more natural to what the driver wanted to do in the
first place.
Roland McGrath [Fri, 10 Sep 2004 16:20:19 +0000 (09:20 -0700)]
[PATCH] Fix PTRACE_CONT after single-step into signal delivery
The previous single-step patch ("make single-step into signal delivery
stop in handler") took things a little too far.
It left TF set in the sigcontext on the stack, so a PTRACE_CONT after
stopping at the handler entry will step instead of resume. This
additional patch fixes it.
Signed-off-by: Roland McGrath <roland@redhat.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Add sparse "__iomem" infrastructure to check PCI address usage
There's tons of mis-use of PCI memory-mapped IO that is used
as if it was regular memory. That fails disastrously on a number
of architectures, and it doesn't help that it just happens to
work on regular x86 boxes.
This makes makes us do much stricter type-checking. Some of it
visible to the regular compiler, but the bulk of it is for sparse.
Thomas Graf [Fri, 10 Sep 2004 08:48:29 +0000 (01:48 -0700)]
[NET]: Device name changing via rtnetlink
Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller [Fri, 10 Sep 2004 08:35:59 +0000 (01:35 -0700)]
[TCP]: Fix packet counting during retransmission.
We run into a potential problem if we are doing
TSO and we reduce the congestion window. We might
create a case where the TSO packet is what we need
to resend but the congestion window is not large
enough to allow it through.
The fix is very simple, since tcp_retransmit_skb()
is going to chop the size of the packet down to size
of the normal non-TSO MSS, we can pretend at the top
level that each SKB is composed of only one real MSS
worth of data.
Signed-off-by: David S. Miller <davem@davemloft.net>
If we don't have IPv6 default routes, we assume all ipv6 destinations
are on-link as specified in RFC2461. It, however, is considered harmful now;
it is problematic with IPv6-capable nodes that do not have off-link
IPv6 connectivity (eg no default routers) and such nodes will take
a few seconds until they fall back to use IPv4.
See <draft-ietf-v6ops-onlinkassumption-02.txt> for details.
From: KUNITAKE Koichi <kunitake@anchor.jp> Signed-off-by: KUNITAKE Koichi <kunitake@anchor.jp> Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Herbert Xu [Fri, 10 Sep 2004 07:37:08 +0000 (00:37 -0700)]
[IPCOMP]: Use per-cpu buffers for compression/decompression.
Here is a really ugly patch to get IPCOMP to use per-cpu buffers. But
I'm afraid it really is necessary. At 300K per SA IPCOMP isn't very
affordable at all.
With per-cpu buffers this goes down to 300K per CPU.
I've also turned the kmalloc'ed scratch space into a vmalloc'ed one
since people may be loading the ipcomp module after the system has
been running for a while. On an i386 machine with 64M of RAM or less
this can often cause a 64K kmalloc to fail.
The crypto deflate buffer space are vmalloc'ed already as well.
Part of the ugliness comes from the lazy allocation. However we need
the lazy initialisation since new IPCOMP algorithms may be introduced
in future. That means we can't allocate space for every single IPCOMP
algorithm at module-load time.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Herbert Xu [Fri, 10 Sep 2004 07:36:11 +0000 (00:36 -0700)]
[IPSEC]: Find larval SAs by sequence number
When larval states are generated along with ACQUIRE messages, we should
use the sequence to find the corresponding larval state when creating
states with ADD_SA or ALLOC_SPI.
If we don't do that, then it may take down an unrelated larval state
with the same parameters (think different TCP sessions). This not only
leaves behind a larval state that shouldn't be there, it may also cause
another ACQUIRE message to be sent unnecessarily.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>