Re: PROBLEM: oops, Linus tree: 2.6.23-g4fa4d23f, BUG: unable to handle kernel NULL pointer dereference at virtual address 00000004

2007-10-20 Thread Coly Li
Guillaume Chazarain wrote:
>>> BUG: unable to handle kernel NULL pointer dereference at virtual address 
>>> 0004
> 
> This should be fixed in recent git by
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9b013e05e0289c190a53d78ca029e2f21c0e4485
> 
Maybe we encounter same condition, at least the symbol name is same -- 
sock_setsockopt.

This happens in kernel bootup and makes network can not work properly -- I can 
not connect to
internet the whole weekend. Same as you, I am not a network guy, I tried to 
understand what
happened, but it seems not so easy for me ^_^.

Here is the oops message:
[ 4327.550035] BUG: unable to handle kernel NULL pointer dereference at virtual 
address 0004
[ 4327.550047] printing eip: c02ad991 *pdpt = 06062001 <1>*pde = 

[ 4327.550061] Oops:  [#1] SMP
[ 4327.550071] Modules linked in: arc4 ieee80211_crypt_wep af_packet ip6t_LOG 
nf_conntrack_ipv6
xt_pkttype ipt_LOG xt_limit deflate zlib_deflate twofish twofish_common 
camellia serpent blowfish
des_generic cbc ecb geode_aes blkcipher aes_i586 aes_generic xcbc 
sha256_generic sha1_generic
crypto_null af_key snd_pcm_oss snd_mixer_oss snd_seq snd_seq_device microcode 
ip6t_REJECT xt_tcpudp
ipt_REJECT xt_state iptable_mangle iptable_nat nf_nat iptable_filter 
ip6table_mangle
nf_conntrack_ipv4 nf_conntrack ip_tables ip6table_filter ip6_tables x_tables 
ipv6
cpufreq_conservative cpufreq_userspace cpufreq_powersave acpi_cpufreq 
speedstep_lib loop dm_mod
pcmcia nsc_ircc parport_pc irda parport ipw2200 rtc_cmos ieee80211 yenta_socket 
rsrc_nonstatic
crc_ccitt pcmcia_core thinkpad_acpi hwmon nvram rtc_core ieee80211_crypt 
firmware_class snd_intel8x0
sdhci rtc_lib battery snd_intel8x0m snd_ac97_codec ac97_bus output ac mmc_core 
snd_pcm snd_timer snd
soundcore sr_mod i2c_i801 i2c_core iTCO_wdt button snd_page_alloc 
iTCO_vendor_support cdrom
intel_agp agpgart tg3 uinput sg ehci_hcd uhci_hcd sd_mod usbcore edd ext3 
mbcache jbd fan ata_piix
ahci libata scsi_mod thermal processor
[ 4327.550286] CPU:0
[ 4327.550288] EIP:0060:[]Not tainted VLI
[ 4327.550291] EFLAGS: 00010282   (2.6.23-bigsmp-g4fa4d23f #6)
[ 4327.550305] EIP is at sk_filter_delayed_uncharge+0x1/0x23
[ 4327.550312] eax: c614f738   ebx:    ecx: 0003   edx: 
[ 4327.550319] esi: c60d97b0   edi: c614f738   ebp: c61e2ef8   esp: c61e2ec8
[ 4327.550326] ds: 007b   es: 007b   fs: 00d8  gs: 0033  ss: 0068
[ 4327.550333] Process dhclient (pid: 7024, ti=c61e2000 task=c61e5120 
task.ti=c61e2000)
[ 4327.550338] Stack: c61e2ef8 c02adb57 0002 0001 c02adaff 0068 
c60d97c0 0058
[ 4327.550356] c614f738 c61e2f24 c65c63f0 c61e2f48 c029c87f 
c61e2fb0 c030642f
[ 4327.550374]0001 0246 001a 8005000b fff2 8005000b 
c03042ae 8005000b
[ 4327.550391] Call Trace:
[ 4327.550396]  [] show_trace_log_lvl+0x1a/0x2f
[ 4327.550409]  [] show_stack_log_lvl+0x9b/0xa3
[ 4327.550419]  [] show_registers+0x1b8/0x28a
[ 4327.550429]  [] die+0x10b/0x1ee
[ 4327.550438]  [] do_page_fault+0x7d4/0x8b9
[ 4327.550449]  [] error_code+0x72/0x80
[ 4327.550458]  [] sock_setsockopt+0x46f/0x4c2
[ 4327.550469]  [] sys_setsockopt+0x5a/0x90
[ 4327.550478]  [] sys_socketcall+0x1e8/0x241
[ 4327.550486]  [] syscall_call+0x7/0xb
[ 4327.550495]  ===
[ 4327.550499] Code: 43 4e 39 d3 0f 8c 36 fe ff ff 0f b7 44 d1 f8 83 e0 07 83 
f8 06 0f 94 c0 0f b6
c0 48 83 e0 ea eb 05 b8 ea ff ff ff 5b 5e 5d c3 55 <8b> 4a 04 89 e5 8d 0c cd 10 
00 00 00 90 29 88 cc
00 00 00 8d 42
[ 4327.550590] EIP: [] sk_filter_delayed_uncharge+0x1/0x23 SS:ESP 
0068:c61e2ec8





> HTH.
> 

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: net: alignment problem in icmp code

2007-10-20 Thread David Miller
From: Pierre Ossman <[EMAIL PROTECTED]>
Date: Sat, 20 Oct 2007 23:35:40 +0200

> Structure assignment have to be aligned just like any assignment, and the skb 
> could point to anything. So take the safe route and use a memcpy().
> 
> Signed-off-by: Pierre Ossman <[EMAIL PROTECTED]>

Unfortunately this doesn't work, GCC can inline the memcpy just like
the assignment.

I tried to use a similar trick in the net/xfrm/xfrm_user.c code
but in the end it doesn't work at all.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Fw: [Bug 9189] New: Oops in kernel 2.6.21-rc4 through 2.6.23, page allocation failure

2007-10-20 Thread Herbert Xu
On Sat, Oct 20, 2007 at 12:00:15AM +0800, Herbert Xu wrote:
> >> 
> >> Backtrace #1:
> >> page allocation failure. order:1, mode:0x20
> >>  [] __alloc_pages+0x2e1/0x300   
> >>  [] cache_alloc_refill+0x29e/0x4b0
> >>  [] __kmalloc+0x6e/0x80
> >>  [] __alloc_skb+0x53/0x110
> >>  [] tcp_collapse+0x1ac/0x370
> >>  [] tcp_prune_queue+0xfd/0x2c0
> >>  [] tcp_data_queue+0x7cd/0xbb0
> >>  [] skb_checksum+0x4d/0x2a0
> >>  [] tcp_rcv_established+0x36e/0x6a0
> >>  [] tcp_v4_do_rcv+0xb4/0x2a0
> >>  [] __alloc_pages+0xd9/0x300
> >>  [] tcp_v4_rcv+0x6a9/0x6c0
> >>  [] ip_local_deliver+0x91/0x110
> >>  [] ip_rcv+0x230/0x3c0
> >>  [] __alloc_skb+0x53/0x110
> >>  [] netif_receive_skb+0x152/0x1e0
> >>  [] process_backlog+0x6f/0xe0
> >>  [] net_rx_action+0x5c/0xf0
> >>  [] __do_softirq+0x42/0x90
> >>  [] do_softirq+0x27/0x30
> >>  [] do_IRQ+0x3d/0x70
> >>  [] sys_gettimeofday+0x28/0x80
> >>  [] common_interrupt+0x23/0x28
> >>  ===

I knew this looked familiar.  In fact I'd already sent a patch
to fix this back in June 2006 but it seems to have been lost.

Here it is again rediffed against today's kernel:

[NET]: Fix SKB_WITH_OVERHEAD calculation

The calculation in SKB_WITH_OVERHEAD is incorrect in that it can cause
an overflow across a page boundary which is what it's meant to prevent.
In particular, the header length (X) should not be lumped together with
skb_shared_info.  The latter needs to be aligned properly while the header
has no choice but to sit in front of wherever the payload is.

Therefore the correct calculation is to take away the aligned size of
skb_shared_info, and then subtract the header length.  The resulting
quantity L satisfies the following inequality:

SKB_DATA_ALIGN(L + X) + sizeof(struct skb_shared_info) <= PAGE_SIZE

This is the quantity used by alloc_skb to do the actual allocation.

Signed-off-by: Herbert Xu <[EMAIL PROTECTED]>

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[EMAIL PROTECTED]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index f93f22b..369f60a 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -41,8 +41,7 @@
 #define SKB_DATA_ALIGN(X)  (((X) + (SMP_CACHE_BYTES - 1)) & \
 ~(SMP_CACHE_BYTES - 1))
 #define SKB_WITH_OVERHEAD(X)   \
-   (((X) - sizeof(struct skb_shared_info)) & \
-~(SMP_CACHE_BYTES - 1))
+   ((X) - SKB_DATA_ALIGN(sizeof(struct skb_shared_info)))
 #define SKB_MAX_ORDER(X, ORDER) \
SKB_WITH_OVERHEAD((PAGE_SIZE << (ORDER)) - (X))
 #define SKB_MAX_HEAD(X)(SKB_MAX_ORDER((X), 0))
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFD] iptables: mangle table obsoletes filter table

2007-10-20 Thread Valdis . Kletnieks
On Sun, 21 Oct 2007 07:31:58 +0300, Al Boldi said:
> > Well, for example to stop any transient packets being forwarded.  You could 
> > probably hack around this using mark's, but you can't stop the implied
> > route lookup, unless you stop it in prerouting.
> 
> Basically, you have one big unintended gaping whole in your firewall, that 
> could easily be exploited for DoS attacks at the least, unless you put in 
> specific rules to limit this.

OK, the light bulb just went on... ;)

We actually *do* have an issue with the flip side of that - it's a frikking
pain to make packets that show up on eth0 with a destination of 127.0.0.1
go away un-noticed - or at least I'm assuming it's the flip side of the same
issue.


pgpqsKaExhIYs.pgp
Description: PGP signature


Re: [RFD] iptables: mangle table obsoletes filter table

2007-10-20 Thread Al Boldi
[EMAIL PROTECTED] wrote:
> On Sat, 20 Oct 2007 06:40:02 +0300, Al Boldi said:
> > Sure, the idea was to mark the filter table obsolete as to make people
> > start using the mangle table to do their filtering for new setups.  The
> > filter table would then still be available for legacy/special setups. 
> > But this would only be possible if we at least ported the REJECT target
> > to mangle.
>
> That's *half* the battle.  The other half is explaining why I should move
> from a perfectly functional setup that uses the filter table.  What gains
> do I get from doing so?  What isn't working that I don't know about? etc?
>
> In other words - why do I want to move from filter to mangle?

This has already been explained in this thread; here it is again:

Al Boldi wrote:
>>>The problem is that people think they are safe with the filter table,
>>>when in fact they need the prerouting chain to seal things.  Right now
>>>this is only possible in the mangle table.
>>
>>Why do they need PREROUTING?
> 
> Well, for example to stop any transient packets being forwarded.  You could 
> probably hack around this using mark's, but you can't stop the implied
> route lookup, unless you stop it in prerouting.

Basically, you have one big unintended gaping whole in your firewall, that 
could easily be exploited for DoS attacks at the least, unless you put in 
specific rules to limit this.

Plus, it's outrageously incorrect to accept invalid packets, just because 
your filtering infrastructure can only reject packets after they have been 
prerouted.


Thanks!

--
Al

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


net: alignment problem in icmp code

2007-10-20 Thread Pierre Ossman
Structure assignment have to be aligned just like any assignment, and the skb 
could point to anything. So take the safe route and use a memcpy().

Signed-off-by: Pierre Ossman <[EMAIL PROTECTED]>
---

diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c
index 272c69e..a7e2ec9 100644
--- a/net/ipv4/icmp.c
+++ b/net/ipv4/icmp.c
@@ -783,7 +783,7 @@ static void icmp_echo(struct sk_buff *skb)
if (!sysctl_icmp_echo_ignore_all) {
struct icmp_bxm icmp_param;
 
-   icmp_param.data.icmph  = *icmp_hdr(skb);
+   memcpy(&icmp_param.data.icmph, icmp_hdr(skb), sizeof(struct 
icmphdr));
icmp_param.data.icmph.type = ICMP_ECHOREPLY;
icmp_param.skb = skb;
icmp_param.offset  = 0;
@@ -819,7 +819,7 @@ static void icmp_timestamp(struct sk_buff *skb)
icmp_param.data.times[2] = icmp_param.data.times[1];
if (skb_copy_bits(skb, 0, &icmp_param.data.times[0], 4))
BUG();
-   icmp_param.data.icmph  = *icmp_hdr(skb);
+   memcpy(&icmp_param.data.icmph, icmp_hdr(skb), sizeof(struct icmphdr));
icmp_param.data.icmph.type = ICMP_TIMESTAMPREPLY;
icmp_param.data.icmph.code = 0;
icmp_param.skb = skb;


signature.asc
Description: PGP signature


Re: Bluetooth patches for 2.6.24

2007-10-20 Thread Marcel Holtmann
Hi Dave,

> these are the Bluetooth patches for the 2.6.24 kernel release. Please
> pull and send them to Linus.

one of the cleanup patches slipped through the net. If you already
pulled my tree, then please re-pull. I pushed it on top of it.

Regards

Marcel


Please pull from

git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-2.6.git

This will update the following files:

 net/bluetooth/rfcomm/core.c |   60 +++-
 1 file changed, 21 insertions(+), 39 deletions(-)

through these ChangeSets:

Commit: 58876e6a3dac244ca8d61f3b9750a3fb63875eff 
Author: Marcel Holtmann <[EMAIL PROTECTED]> Sat, 20 Oct 2007 21:37:20 +0200 

[Bluetooth] Convert RFCOMM to use kthread API

This patch does the full kthread conversion for the RFCOMM protocol. It
makes the code slightly simpler and more maintainable.

Based on a patch from Christoph Hellwig <[EMAIL PROTECTED]>

Signed-off-by: Marcel Holtmann <[EMAIL PROTECTED]>



-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ISNs and 2.6.22, Was: Re: haproxy & linux firewall (netfilter)

2007-10-20 Thread Willy Tarreau
On Sat, Oct 20, 2007 at 07:23:25PM +0200, Krzysztof Oledzki wrote:
(...)
> >So it seems that ISNs are not randomly incremented but rather randomly 
> >generated. Adding netdev@vger.kernel.org to the CC list.
> 
> Eh, I was little to hurry this time. There were not randomly generated but 
> incremented with to big value. This patch fixes my problem:
> 
> http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git;a=blob;f=queue-2.6.22/fix-tcp-initial-sequence-number-selection.patch;h=05b9167d68ecde1e6088f58c55e2906b768420ed;hb=HEAD

Good catch Krzysztof ! I've already noticed that one on LKML but did not
make the connection with your problem!

Please also tell Jozsef so that if he gets other reports, he knows where
to point the reporters.

Regards,
Willy

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2] niu: Cleanup PAGE_SIZE checks a bit

2007-10-20 Thread Olof Johansson
Hi Dave,

I get the following warning from a powerpc allyesconfig of current
mainline:

drivers/net/niu.c: In function 'niu_size_rbr':
drivers/net/niu.c:3113: warning: large integer implicitly truncated to unsigned 
type

PAGE_SIZE in this case is 64KB, so I don't quite get why gcc can't tell
that the line in question will never be reached.

I suggest the following instead, but I can unfortunately not do anything but
build test it.

Also, the driver does some other checks to make sure that PAGE_SIZE is a
power of two (BUILD_BUG_ON() in niu_init()), doesn't seem like that could
ever be untrue? Or are there really archs with non-power-of-two PAGE_SIZE?


Signed-off-by: Olof Johansson <[EMAIL PROTECTED]>

--

Ack! It should obviously use min(), not max()!


-Olof

diff --git a/drivers/net/niu.c b/drivers/net/niu.c
index ed1f9bb..795cc68 100644
--- a/drivers/net/niu.c
+++ b/drivers/net/niu.c
@@ -3103,31 +3103,12 @@ static int niu_alloc_tx_ring_info(struct niu *np,
 
 static void niu_size_rbr(struct niu *np, struct rx_ring_info *rp)
 {
-   u16 bs;
+   u16 bss;
 
-   switch (PAGE_SIZE) {
-   case 4 * 1024:
-   case 8 * 1024:
-   case 16 * 1024:
-   case 32 * 1024:
-   rp->rbr_block_size = PAGE_SIZE;
-   rp->rbr_blocks_per_page = 1;
-   break;
+   bss = min(PAGE_SHIFT, 15);
 
-   default:
-   if (PAGE_SIZE % (32 * 1024) == 0)
-   bs = 32 * 1024;
-   else if (PAGE_SIZE % (16 * 1024) == 0)
-   bs = 16 * 1024;
-   else if (PAGE_SIZE % (8 * 1024) == 0)
-   bs = 8 * 1024;
-   else if (PAGE_SIZE % (4 * 1024) == 0)
-   bs = 4 * 1024;
-   else
-   BUG();
-   rp->rbr_block_size = bs;
-   rp->rbr_blocks_per_page = PAGE_SIZE / bs;
-   }
+   rp->rbr_block_size = 1 << bss;
+   rp->rbr_blocks_per_page = 1 << (PAGE_SHIFT-bss);
 
rp->rbr_sizes[0] = 256;
rp->rbr_sizes[1] = 1024;
@@ -7902,12 +7883,7 @@ static int __init niu_init(void)
 {
int err = 0;
 
-   BUILD_BUG_ON((PAGE_SIZE < 4 * 1024) ||
-((PAGE_SIZE > 32 * 1024) &&
- ((PAGE_SIZE % (32 * 1024)) != 0 &&
-  (PAGE_SIZE % (16 * 1024)) != 0 &&
-  (PAGE_SIZE % (8 * 1024)) != 0 &&
-  (PAGE_SIZE % (4 * 1024)) != 0)));
+   BUILD_BUG_ON(PAGE_SIZE < 4 * 1024);
 
niu_debug = netif_msg_init(debug, NIU_MSG_DEFAULT);
 
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] pasemi_mac: fix typo

2007-10-20 Thread Olof Johansson
Add missing &:

drivers/net/pasemi_mac.c: In function 'pasemi_mac_clean_rx':
drivers/net/pasemi_mac.c:553: warning: passing argument 1 of 'prefetch'
makes pointer from integer without a cast


Signed-off-by: Olof Johansson <[EMAIL PROTECTED]>

diff --git a/drivers/net/pasemi_mac.c b/drivers/net/pasemi_mac.c
index 9f9a421..ab4d309 100644
--- a/drivers/net/pasemi_mac.c
+++ b/drivers/net/pasemi_mac.c
@@ -550,7 +550,7 @@ static int pasemi_mac_clean_rx(struct pasemi_mac *mac, int 
limit)
 
n = mac->rx->next_to_clean;
 
-   prefetch(RX_RING(mac, n));
+   prefetch(&RX_RING(mac, n));
 
for (count = 0; count < limit; count++) {
macrx = RX_RING(mac, n);
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] niu: Cleanup PAGE_SIZE checks a bit

2007-10-20 Thread Olof Johansson
Hi Dave,

I get the following warning from a powerpc allyesconfig of current
mainline:

drivers/net/niu.c: In function 'niu_size_rbr':
drivers/net/niu.c:3113: warning: large integer implicitly truncated to unsigned 
type

PAGE_SIZE in this case is 64KB, so I don't quite get why gcc can't tell
that the line in question will never be reached.

I suggest the following instead, but I can unfortunately not do anything but
build test it.

Also, the driver does some other checks to make sure that PAGE_SIZE is a
power of two (BUILD_BUG_ON() in niu_init()), doesn't seem like that could
ever be untrue? Or are there really archs with non-power-of-two PAGE_SIZE?


Signed-off-by: Olof Johansson <[EMAIL PROTECTED]>

diff --git a/drivers/net/niu.c b/drivers/net/niu.c
index ed1f9bb..795cc68 100644
--- a/drivers/net/niu.c
+++ b/drivers/net/niu.c
@@ -3103,31 +3103,12 @@ static int niu_alloc_tx_ring_info(struct niu *np,
 
 static void niu_size_rbr(struct niu *np, struct rx_ring_info *rp)
 {
-   u16 bs;
+   u16 bss;
 
-   switch (PAGE_SIZE) {
-   case 4 * 1024:
-   case 8 * 1024:
-   case 16 * 1024:
-   case 32 * 1024:
-   rp->rbr_block_size = PAGE_SIZE;
-   rp->rbr_blocks_per_page = 1;
-   break;
+   bss = max(PAGE_SHIFT, 15);
 
-   default:
-   if (PAGE_SIZE % (32 * 1024) == 0)
-   bs = 32 * 1024;
-   else if (PAGE_SIZE % (16 * 1024) == 0)
-   bs = 16 * 1024;
-   else if (PAGE_SIZE % (8 * 1024) == 0)
-   bs = 8 * 1024;
-   else if (PAGE_SIZE % (4 * 1024) == 0)
-   bs = 4 * 1024;
-   else
-   BUG();
-   rp->rbr_block_size = bs;
-   rp->rbr_blocks_per_page = PAGE_SIZE / bs;
-   }
+   rp->rbr_block_size = 1 << bss;
+   rp->rbr_blocks_per_page = 1 << (PAGE_SHIFT-bss);
 
rp->rbr_sizes[0] = 256;
rp->rbr_sizes[1] = 1024;
@@ -7902,12 +7883,7 @@ static int __init niu_init(void)
 {
int err = 0;
 
-   BUILD_BUG_ON((PAGE_SIZE < 4 * 1024) ||
-((PAGE_SIZE > 32 * 1024) &&
- ((PAGE_SIZE % (32 * 1024)) != 0 &&
-  (PAGE_SIZE % (16 * 1024)) != 0 &&
-  (PAGE_SIZE % (8 * 1024)) != 0 &&
-  (PAGE_SIZE % (4 * 1024)) != 0)));
+   BUILD_BUG_ON(PAGE_SIZE < 4 * 1024);
 
niu_debug = netif_msg_init(debug, NIU_MSG_DEFAULT);
 
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ISNs and 2.6.22, Was: Re: haproxy & linux firewall (netfilter)

2007-10-20 Thread Krzysztof Oledzki



On Sat, 20 Oct 2007, Krzysztof Oledzki wrote:




On Sat, 20 Oct 2007, Willy Tarreau wrote:



What is very strange is that linux uses random increments, so your ISNs
should not wrap in a matter of a few seconds.


Good point. I need to investigate this.


netcat is very convenient for such tests. It's easy to bind it to a
source port for consecutive tests while you run tcpdump in the background :

 $ echo bla | nc -p 1234 192.168.1.2 80
 $ echo bla | nc -p 1234 192.168.1.2 80

Also, please try this with tcp_timestamps enabled and disabled to see if it
changes anything.


Interesting... :|

2.6.20:
18:52:33.558379 IP 192.168.0.33. > 212.77.100.101.80: S 
3708509816:3708509816(0) win 5840 0,nop,wscale 1>
18:52:33.882129 IP 192.168.0.33. > 212.77.100.101.80: S 
3708833567:3708833567(0) win 5840 0,nop,wscale 1>
18:52:34.084000 IP 192.168.0.33. > 212.77.100.101.80: S 
3709035437:3709035437(0) win 5840 0,nop,wscale 1>


2.6.21:
18:58:36.074969 IP 192.168.0.66. > 212.77.100.101.80: S 
110585153:110585153(0) win 5840 0,nop,wscale 5>
18:58:36.440084 IP 192.168.0.66. > 212.77.100.101.80: S 
110950271:110950271(0) win 5840 0,nop,wscale 5>
18:58:36.830141 IP 192.168.0.66. > 212.77.100.101.80: S 
111340328:111340328(0) win 5840 0,nop,wscale 5>


2.6.22:
18:59:34.525097 IP 192.168.0.7. > 212.77.100.101.80: S 
3303295586:3303295586(0) win 5840 0,nop,wscale 6>
18:59:34.942104 IP 192.168.0.7. > 212.77.100.101.80: S 
3720303240:3720303240(0) win 5840 0,nop,wscale 6>
18:59:35.412229 IP 192.168.0.7. > 212.77.100.101.80: S 
4190427367:4190427367(0) win 5840 0,nop,wscale 6>


2.6.22+tcp_timestamps=0:
19:00:38.285554 IP 192.168.0.7. > 212.77.100.101.80: S 
2639244549:2639244549(0) win 5840 
19:00:39.448675 IP 192.168.0.7. > 212.77.100.101.80: S 
3802363348:3802363348(0) win 5840 
19:00:43.003850 IP 192.168.0.7. > 212.77.100.101.80: S 
3062574559:3062574559(0) win 5840 
19:00:45.950863 IP 192.168.0.7. > 212.77.100.101.80: S 
1714619373:1714619373(0) win 5840 


So it seems that ISNs are not randomly incremented but rather randomly 
generated. Adding netdev@vger.kernel.org to the CC list.


Eh, I was little to hurry this time. There were not randomly generated but 
incremented with to big value. This patch fixes my problem:


http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git;a=blob;f=queue-2.6.22/fix-tcp-initial-sequence-number-selection.patch;h=05b9167d68ecde1e6088f58c55e2906b768420ed;hb=HEAD

Looking forward for a next -stable release. ;)

Best regards,

Krzysztof Olędzki

ISNs and 2.6.22, Was: Re: haproxy & linux firewall (netfilter)

2007-10-20 Thread Krzysztof Oledzki



On Sat, 20 Oct 2007, Willy Tarreau wrote:



What is very strange is that linux uses random increments, so your ISNs
should not wrap in a matter of a few seconds.


Good point. I need to investigate this.


netcat is very convenient for such tests. It's easy to bind it to a
source port for consecutive tests while you run tcpdump in the background :

 $ echo bla | nc -p 1234 192.168.1.2 80
 $ echo bla | nc -p 1234 192.168.1.2 80

Also, please try this with tcp_timestamps enabled and disabled to see if it
changes anything.


Interesting... :|

2.6.20:
18:52:33.558379 IP 192.168.0.33. > 212.77.100.101.80: S 3708509816:3708509816(0) 
win 5840 
18:52:33.882129 IP 192.168.0.33. > 212.77.100.101.80: S 3708833567:3708833567(0) 
win 5840 
18:52:34.084000 IP 192.168.0.33. > 212.77.100.101.80: S 3709035437:3709035437(0) 
win 5840 

2.6.21:
18:58:36.074969 IP 192.168.0.66. > 212.77.100.101.80: S 110585153:110585153(0) 
win 5840 
18:58:36.440084 IP 192.168.0.66. > 212.77.100.101.80: S 110950271:110950271(0) 
win 5840 
18:58:36.830141 IP 192.168.0.66. > 212.77.100.101.80: S 111340328:111340328(0) 
win 5840 

2.6.22:
18:59:34.525097 IP 192.168.0.7. > 212.77.100.101.80: S 3303295586:3303295586(0) 
win 5840 
18:59:34.942104 IP 192.168.0.7. > 212.77.100.101.80: S 3720303240:3720303240(0) 
win 5840 
18:59:35.412229 IP 192.168.0.7. > 212.77.100.101.80: S 4190427367:4190427367(0) 
win 5840 

2.6.22+tcp_timestamps=0:
19:00:38.285554 IP 192.168.0.7. > 212.77.100.101.80: S 2639244549:2639244549(0) 
win 5840 
19:00:39.448675 IP 192.168.0.7. > 212.77.100.101.80: S 3802363348:3802363348(0) 
win 5840 
19:00:43.003850 IP 192.168.0.7. > 212.77.100.101.80: S 3062574559:3062574559(0) 
win 5840 
19:00:45.950863 IP 192.168.0.7. > 212.77.100.101.80: S 1714619373:1714619373(0) 
win 5840 

So it seems that ISNs are not randomly incremented but rather randomly 
generated. Adding netdev@vger.kernel.org to the CC list.


Best regards,

Krzysztof Olędzki

Bluetooth patches for 2.6.24

2007-10-20 Thread Marcel Holtmann
Hi Dave,

these are the Bluetooth patches for the 2.6.24 kernel release. Please
pull and send them to Linus.

I assigned the next free constant for SOL_BLUETOOTH which will be used
to consolidate all the new socket options that are work in progress.

Regards

Marcel


Please pull from

git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-2.6.git

This will update the following files:

 drivers/bluetooth/Kconfig|   35 
 drivers/bluetooth/Makefile   |4 
 drivers/bluetooth/bluecard_cs.c  |5 
 drivers/bluetooth/bpa10x.c   |  624 ++
 drivers/bluetooth/bt3c_cs.c  |5 
 drivers/bluetooth/btsdio.c   |  406 +
 drivers/bluetooth/btuart_cs.c|5 
 drivers/bluetooth/btusb.c|  564 +
 drivers/bluetooth/dtl1_cs.c  |5 
 drivers/bluetooth/hci_bcsp.c |3 
 drivers/bluetooth/hci_ldisc.c|8 
 drivers/bluetooth/hci_ll.c   |  531 
 drivers/bluetooth/hci_uart.h |8 
 include/linux/socket.h   |1 
 include/net/bluetooth/hci.h  |  604 --
 include/net/bluetooth/hci_core.h |   13 
 include/net/bluetooth/l2cap.h|   37 
 net/bluetooth/hci_conn.c |   82 +
 net/bluetooth/hci_core.c |   70 +
 net/bluetooth/hci_event.c| 1651 +--
 net/bluetooth/hci_sock.c |2 
 net/bluetooth/hci_sysfs.c|   37 
 net/bluetooth/hidp/core.c|2 
 net/bluetooth/l2cap.c|  306 ---
 net/bluetooth/rfcomm/tty.c   |   25 
 net/bluetooth/sco.c  |   12 
 26 files changed, 3524 insertions(+), 1521 deletions(-)

through these ChangeSets:

Commit: 4c5534cce0c2be513ee071b41536d91180a775e2 
Author: Marcel Holtmann <[EMAIL PROTECTED]> Sat, 20 Oct 2007 15:28:08 +0200 

[Bluetooth] Add constant for Bluetooth socket options level

Assign the next free socket options level to be used by the Bluetooth
protocol and address family.

Signed-off-by: Marcel Holtmann <[EMAIL PROTECTED]>

Commit: c0c9360deb699f4647b901611af73d2935f4d16a 
Author: Marcel Holtmann <[EMAIL PROTECTED]> Sat, 20 Oct 2007 14:55:10 +0200 

[Bluetooth] Add support for handling simple eSCO links

With the Bluetooth 1.2 specification the Extended SCO feature for
better audio connections was introduced. So far the Bluetooth core
wasn't able to handle any eSCO connections correctly. This patch
adds simple eSCO support while keeping backward compatibility with
older devices.

Signed-off-by: Marcel Holtmann <[EMAIL PROTECTED]>

Commit: 9f73edf6556372b2ca308a90b6e86c42c299572c 
Author: Marcel Holtmann <[EMAIL PROTECTED]> Sat, 20 Oct 2007 14:52:38 +0200 

[Bluetooth] Add address and channel attribute to RFCOMM TTY device

Export the remote device address and channel of RFCOMM TTY device
via sysfs attributes. This allows udev to create better naming rules
for configured RFCOMM devices.

Signed-off-by: Marcel Holtmann <[EMAIL PROTECTED]>

Commit: 8ede11da710c41c82c15e706985a557b8925d412 
Author: Dave Young <[EMAIL PROTECTED]> Sat, 20 Oct 2007 14:15:39 +0200 

[Bluetooth] Fix wrong argument in debug code of HIDP

In the debug code of the hidp_queue_report function, the device
variable does not exist, replace it with session->hid.

Signed-off-by: Dave Young <[EMAIL PROTECTED]>
Signed-off-by: Marcel Holtmann <[EMAIL PROTECTED]>

Commit: 40f8ebd22f42a2590983bfb44f79e2b8c0f8bbd3 
Author: Marcel Holtmann <[EMAIL PROTECTED]> Sat, 20 Oct 2007 14:12:34 +0200 

[Bluetooth] Add generic driver for Bluetooth USB devices

This patch adds a new generic driver for Bluetooth USB devices. This
driver is still experimental at this point, but it is cleaner and
easier to maintain than the current Bluetooth USB driver. It is a
much better starting point for power management improvements.

Signed-off-by: Marcel Holtmann <[EMAIL PROTECTED]>

Commit: 7206aecb43d34e533722b10619878aa073fd20c0 
Author: Marcel Holtmann <[EMAIL PROTECTED]> Sat, 20 Oct 2007 14:02:04 +0200 

[Bluetooth] Add generic driver for Bluetooth SDIO devices

This patch adds a generic driver for Bluetooth SDIO devices. It
supports Type-A and Type-B devices.

Signed-off-by: David Vrabel <[EMAIL PROTECTED]>
Signed-off-by: Marcel Holtmann <[EMAIL PROTECTED]>

Commit: bcce038d8f2cfe0bb6d470d6029aa239fc1b5d73 
Author: Jeff Garzik <[EMAIL PROTECTED]> Sat, 20 Oct 2007 13:45:57 +0200 

[Bluetooth] Eliminate checks for impossible conditions in IRQ handler

Our info structure and info->hdev is always passed to the IRQ handler,
so we don't have to worry about these checks in every interrupt.

Leave a BUG_ON() just to help unwary programmers, but these could
probably be removed as well.

Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
Signed-off-by: Marcel Holtmann <[EMAIL PROTECTED]>

Com

Re: PROBLEM: oops, Linus tree: 2.6.23-g4fa4d23f, BUG: unable to handle kernel NULL pointer dereference at virtual address 00000004

2007-10-20 Thread Guillaume Chazarain
> > BUG: unable to handle kernel NULL pointer dereference at virtual address 
> > 0004

This should be fixed in recent git by
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9b013e05e0289c190a53d78ca029e2f21c0e4485

HTH.

-- 
Guillaume
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFD] iptables: mangle table obsoletes filter table

2007-10-20 Thread Jan Engelhardt

On Oct 20 2007 00:47, [EMAIL PROTECTED] wrote:
>> Sure, the idea was to mark the filter table obsolete as to make people start 
>> using the mangle table to do their filtering for new setups.  The filter 
>> table would then still be available for legacy/special setups.  But this 
>> would only be possible if we at least ported the REJECT target to mangle.
>
>That's *half* the battle.  The other half is explaining why I should move
>from a perfectly functional setup that uses the filter table.  What gains
>do I get from doing so?  What isn't working that I don't know about? etc?
>
>In other words - why do I want to move from filter to mangle?

Packet processing time.
Compare previous:
packet goes through mangle, then is dropped in filter
Compare afterwards:
packet is already dropped in mangle

=> less code to run through
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: PROBLEM: oops, Linus tree: 2.6.23-g4fa4d23f, BUG: unable to handle kernel NULL pointer dereference at virtual address 00000004

2007-10-20 Thread Jiri Kosina
added some relevant CCs

On Sat, 20 Oct 2007, Dave Haywood wrote:

> BUG: unable to handle kernel NULL pointer dereference at virtual address 
> 0004
> 
> Linux s1 2.6.23-g4fa4d23f #4 Fri Oct 19 10:15:50 BST 2007 i686 Pentium III 
> (Coppermine) GenuineIntel GNU/Linux
> 
> Gnu C  4.2.0
> Gnu make   3.81
> binutils   2.18
> util-linux 2.12r
> mount  2.12r
> module-init-tools  3.2.2
> e2fsprogs  1.40.2
> PPP2.4.4
> Linux C Library2.6.1
> Dynamic linker (ldd)   2.6.1
> Procps 3.2.7
> Net-tools  1.60
> Kbd1.13
> Sh-utils   6.9
> udev   115
> 
> Linux version 2.6.23-g4fa4d23f ([EMAIL PROTECTED]) (gcc version 4.2.0 (Gentoo 
> 4.2.0 p1.4)) #4 Fri Oct 19 10:15:50 BST 2007
> BIOS-provided physical RAM map:
>  BIOS-e820:  - 0009fc00 (usable)
>  BIOS-e820: 0009fc00 - 000a (reserved)
>  BIOS-e820: 000e - 0010 (reserved)
>  BIOS-e820: 0010 - 0fed (usable)
>  BIOS-e820: 0fed - 0fef (ACPI NVS)
>  BIOS-e820: 0fef - 0ff0 (usable)
>  BIOS-e820: feea - 0001 (reserved)
> 0MB HIGHMEM available.
> 255MB LOWMEM available.
> found SMP MP-table at 000f9bf0
> Entering add_active_range(0, 0, 65280) 0 entries of 256 used
> Zone PFN ranges:
>   DMA 0 -> 4096
>   Normal   4096 ->65280
>   HighMem 65280 ->65280
> Movable zone start PFN for each node
> early_node_map[1] active PFN ranges
> 0:0 ->65280
> On node 0 totalpages: 65280
>   DMA zone: 32 pages used for memmap
>   DMA zone: 0 pages reserved
>   DMA zone: 4064 pages, LIFO batch:0
>   Normal zone: 478 pages used for memmap
>   Normal zone: 60706 pages, LIFO batch:15
>   HighMem zone: 0 pages used for memmap
>   Movable zone: 0 pages used for memmap
> DMI 2.3 present.
> Using APIC driver default
> ACPI: RSDP 000E0010, 0014 (r0 COMPAQ)
> ACPI: RSDT 000E0080, 0054 (r1 COMPAQ CPQ0014  20010612 0)
> ACPI: FACP 000E0130, 0074 (r1 COMPAQ SOLANO  1 0)
> ACPI: DSDT 000E0204, 0CE6 (r1 COMPAQ DSDT1 MSFT  10D)
> ACPI: FACS 000E0040, 0040
> ACPI: SSDT 000E0EEA, 0174 (r1 COMPAQ CORE_UTL1 MSFT  10D)
> ACPI: SSDT 000E105E, 0D3D (r1 COMPAQ VILLTBL11 MSFT  10D)
> ACPI: APIC 000E01A4, 0060 (r1 COMPAQ SOLANO  1 0)
> ACPI: SSDT 000E2D4F, 0076 (r1 COMPAQ APIC1 MSFT  10D)
> ACPI: SSDT 000E1D9B, 06AD (r1 COMPAQ PNP_PRSS1 MSFT  10D)
> ACPI: SSDT 000E24A6, 01A4 (r1 COMPAQ   S31 MSFT  10D)
> ACPI: SSDT 000E264A, 0158 (r1 COMPAQ   PIDETM1 MSFT  10D)
> ACPI: SSDT 000E28FF, 010B (r1 COMPAQ GTF01 MSFT  10D)
> ACPI: SSDT 000E27A2, 015D (r1 COMPAQ   SIDETM1 MSFT  10D)
> ACPI: SSDT 000E2B21, 0117 (r1 COMPAQ GTF21 MSFT  10D)
> ACPI: SSDT 000E2EAD, 004E (r1 COMPAQFINIS1 MSFT  10D)
> ACPI: PM-Timer IO Port: 0xf808
> ACPI: Local APIC address 0xfee0
> ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
> Processor #0 6:8 APIC version 17
> ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
> ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
> ACPI: IOAPIC (id[0x08] address[0xfec0] gsi_base[0])
> IOAPIC[0]: apic_id 8, version 32, address 0xfec0, GSI 0-23
> ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
> ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
> ACPI: IRQ0 used by override.
> ACPI: IRQ2 used by override.
> ACPI: IRQ9 used by override.
> Enabling APIC mode:  Flat.  Using 1 I/O APICs
> Using ACPI (MADT) for SMP configuration information
> Allocating PCI resources starting at 1000 (gap: 0ff0:eefa)
> swsusp: Registered nosave memory region: 0009f000 - 000a
> swsusp: Registered nosave memory region: 000a - 000e
> swsusp: Registered nosave memory region: 000e - 0010
> swsusp: Registered nosave memory region: 0fed - 0fef
> Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 64770
> Kernel command line: root=/dev/md4
> mapped APIC to b000 (fee0)
> mapped IOAPIC to a000 (fec0)
> Enabling fast FPU save and restore... done.
> Enabling unmasked SIMD FPU exception support... done.
> Initializing CPU#0
> PID hash table entries: 1024 (order: 10, 4096 bytes)
> Detected 930.368 MHz processor.
> Console: colour VGA+ 80x25
> console [tty0] enabled
> Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
> Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
> Memory: 252820k/261120k available (3213k kernel code, 7612k reserved, 1274k 
> data, 264k init, 0k highmem)
> virtual kernel memory layout:
> fixmap  : 0xfffa7000 - 0xf000   ( 352 

hello!

2007-10-20 Thread am kara
Dear Sir/Madam,

I am looking for a patch or a new code for Fast
Ethernet Controller physical driver located at
drivers/net/e100.c, Linux kernel 2.6.23, with Large
Send Support(TCP Segmentation Offload), adaptor: Intel
PRO/100 M,82551QM.

I wonder if you know such driver exist and where to
obtain its source code.

Thank you to read my email,
Am Kara.
 
PS. My email is:
[EMAIL PROTECTED]

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: linux kernel networking code review request

2007-10-20 Thread Ilpo Järvinen
On Fri, 19 Oct 2007, Dmitry Torokhov wrote:

> On Friday 19 October 2007, Templin, Fred L wrote:
> > Hello,
> > 
> > I would like to get a review on some new Linux
> > kernel networking code. The code is based on the
> > 2.6.23 source tree and touches three files - two
> > in ./net/ipv6 and one in ./include/net. What is
> > the proper procedure for requesting a review?
> > 
> 
> Just don your flameproof pants and post the changes here ;)

In addition, check what is being said in Documentation/SubmittingPatches

:-)

-- 
 i.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html