Re: [OOPS] 2.6.23-rc1 Seems to be network related

2007-08-01 Thread Bongani Hlope
On Wednesday 01 August 2007 03:04:07 Andrew Morton wrote:
 On Wed, 1 Aug 2007 02:57:48 +0200 Bongani Hlope [EMAIL PROTECTED] 
wrote:
  I'm not sure if the first email went through, resending without .config
  attachment.

 It did come through, and I replied ;)


Thank you ;) 
-
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: 2.6.20-2.6.21 - networking dies after random time

2007-08-01 Thread Marcin Ślusarz
2007/7/30, Ingo Molnar [EMAIL PROTECTED]:
 (..)
 does the patch below fix those timeouts? It tests the theory whether any
 POST latency could expose this problem.

 Ingo

 Index: linux/drivers/net/lib8390.c
 ===
 --- linux.orig/drivers/net/lib8390.c
 +++ linux/drivers/net/lib8390.c
 @@ -375,6 +375,8 @@ static int ei_start_xmit(struct sk_buff
 /* Turn 8390 interrupts back on. */
 ei_local-irqlock = 0;
 ei_outb_p(ENISR_ALL, e8390_base + EN0_IMR);
 +   /* force POST: */
 +   ei_inb_p(e8390_base + EN0_IMR);

 spin_unlock(ei_local-page_lock);
 enable_irq_lockdep_irqrestore(dev-irq, flags);


Bad news. It doesn't fix the problem.

Marcin
-
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: [REGRESSION] tg3 dead after s2ram

2007-08-01 Thread Michael Chan
On Tue, 2007-07-31 at 17:45 -0700, Andrew Morton wrote:
 On Tue, 31 Jul 2007 11:28:32 +0200 Joachim Deguara
 [EMAIL PROTECTED] wrote:
 
  On my Acer Ferrari 1000 the tg3 ethernet no longer is available
 after a
  suspend to ram with the latet 2.6.23-rc1-git9.

It seems to work for me on the same 2.6.23-rc1-git9 kernel with the same
tg3 hardware.  Can you narrow down the problem some more?  It seems that
in your case, the chip registers are returning 0x after resume.
Can you do lspci -xxxvvv on the tg3 adapter after resume?

Here's my log:

tg3.c:v3.79 (July 18, 2007)
ACPI: PCI Interrupt :01:00.0[A] - GSI 16 (level, low) - IRQ 16
eth0: Tigon3 [partno(BCM95755m) rev a002 PHY(5755)] (PCI Express) 
10/100/1000Ba1eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] WireSpeed[1] 
TSOcap[1]
eth0: dma_rwctrl[7618] dma_mask[64-bit]
ACPI: PCI Interrupt :40:00.0[A] - GSI 17 (level, low) - IRQ 17
eth1: Tigon3 [partno(BCM95751) rev 4001 PHY(5750)] (PCI Express) 
10/100/1000Bas5eth1: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] WireSpeed[1] 
TSOcap[1]
eth1: dma_rwctrl[7618] dma_mask[64-bit]
ACPI: PCI Interrupt :05:09.0[A] - GSI 18 (level, low) - IRQ 19
eth2: Tigon3 [partno(BCM95788A50) rev 3003 PHY(5705)] (PCI:33MHz:32-bit) 
10/1008eth2: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] WireSpeed[0] TSOcap[1]
eth2: dma_rwctrl[763f] dma_mask[32-bit]
ADDRCONF(NETDEV_UP): eth0: link is not ready
ADDRCONF(NETDEV_UP): eth1: link is not ready
ADDRCONF(NETDEV_UP): eth2: link is not ready
tg3: eth2: Link is up at 1000 Mbps, full duplex.
tg3: eth2: Flow control is on for TX and on for RX.
ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
Stopping tasks ... done.
Suspending console(s)
ACPI handle has no context!
pnp: Device 00:08 disabled.
ACPI handle has no context!
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU0: Intel P4/Xeon Extended MCE MSRs (12) available
ACPI: PCI Interrupt :00:1f.2[B] - GSI 19 (level, low) - IRQ 18
tg3: eth2: Link is down.
pnp: Device 00:08 activated.
Restarting tasks ... hda: status error: status=0x51 { DriveReady SeekComplete 
E}hda: status error: error=0x04 { DriveStatusError }
ide: failed opcode was: unknown
hda: no DRQ after issuing MULTWRITE_EXT
hda: status error: status=0x51 { DriveReady SeekComplete Error }
hda: status error: error=0x04 { DriveStatusError }
ide: failed opcode was: unknown
hda: no DRQ after issuing MULTWRITE_EXT
hda: status error: status=0x51 { DriveReady SeekComplete Error }
hda: status error: error=0x04 { DriveStatusError }
ide: failed opcode was: unknown
hda: no DRQ after issuing MULTWRITE_EXT
hda: status error: status=0x51 { DriveReady SeekComplete Error }
hda: status error: error=0x04 { DriveStatusError }
ide: failed opcode was: unknown
hda: no DRQ after issuing MULTWRITE_EXT
done.
ide0: reset: success
tg3: eth2: Link is up at 1000 Mbps, full duplex.
tg3: eth2: Flow control is on for TX and on for RX.



-
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: 2.6.20-2.6.21 - networking dies after random time

2007-08-01 Thread Ingo Molnar

* Marcin Ślusarz [EMAIL PROTECTED] wrote:

  ei_outb_p(ENISR_ALL, e8390_base + EN0_IMR);
  +   /* force POST: */
  +   ei_inb_p(e8390_base + EN0_IMR);
 
  spin_unlock(ei_local-page_lock);
  enable_irq_lockdep_irqrestore(dev-irq, flags);
 
 
 Bad news. It doesn't fix the problem.

ok, it wasnt supposed to be _that_ easy i guess :-) Can you please 
(re-)confirm that the workaround below indeed fixes the hung card 
problem? (after producing a single WARN_ON message into the syslog)

also, does removing the ne2k-pci module and reinserting it again solve 
the problem too, or is your network card stuck forever once it got into 
that state?

Ingo

---
From: Thomas Gleixner [EMAIL PROTECTED]
Subject: genirq: temporary fix for level-triggered IRQ resend

delayed disable relies on the ability to re-trigger the interrupt in the
case that a real interrupt happens after the software disable was set.
In this case we actually disable the interrupt on the hardware level
_after_ it occurred.

On enable_irq, we need to re-trigger the interrupt. On i386 this relies
on a hardware resend mechanism (send_IPI_self()). 

Actually we only need the resend for edge type interrupts. Level type
interrupts come back once enable_irq() re-enables the interrupt line.

I assume that the interrupt in question is level triggered because it is
shared and above the legacy irqs 0-15:

17: 12   IO-APIC-fasteoi   eth1, eth0

Looking into the IO_APIC code, the resend via send_IPI_self() happens
unconditionally. So the resend is done for level and edge interrupts.
This makes the problem more mysterious.

The code in question lib8390.c does

disable_irq();
fiddle_with_the_network_card_hardware()
enable_irq();

The fiddle_with_the_network_card_hardware() might cause interrupts,
which are cleared in the same code path again,

Marcin found that when he disables the irq line on the hardware level
(removing the delayed disable) the card is kept alive.

So the difference is that we can get a resend on enable_irq, when an
interrupt happens during the time, where we are in the disabled region.

Signed-off-by: Ingo Molnar [EMAIL PROTECTED]
---
 kernel/irq/resend.c |9 +
 1 file changed, 9 insertions(+)

Index: linux/kernel/irq/resend.c
===
--- linux.orig/kernel/irq/resend.c
+++ linux/kernel/irq/resend.c
@@ -62,6 +62,15 @@ void check_irq_resend(struct irq_desc *d
 */
desc-chip-enable(irq);
 
+   /*
+* Temporary hack to figure out more about the problem, which
+* is causing the ancient network cards to die.
+*/
+   if (desc-handle_irq != handle_edge_irq) {
+   WARN_ON_ONCE(1);
+   return;
+   }
+
if ((status  (IRQ_PENDING | IRQ_REPLAY)) == IRQ_PENDING) {
desc-status = (status  ~IRQ_PENDING) | IRQ_REPLAY;
 

-
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: [Lksctp-developers] [PATCH] SCTP: drop SACK if ctsn is not less than the next tsn of assoc

2007-08-01 Thread Michael Tuexen

Hi Wei,

see my comments in-line.

Best regards
Michael

On Aug 1, 2007, at 3:06 AM, Wei Yongjun wrote:




On Tue, 2007-07-31 at 07:37 -0400, Neil Horman wrote:


On Tue, Jul 31, 2007 at 12:44:27PM +0800, Wei Yongjun wrote:

If SCTP data sender received a SACK which contains Cumulative  
TSN Ack is
not less than the Cumulative TSN Ack Point, and if this  
Cumulative TSN
Ack is not used by the data sender, SCTP data sender still  
accept this
SACK , and next SACK which send correctly to DATA sender be  
dropped,

because it is less than the new Cumulative TSN Ack Point.
After received this SACK, data will be retrans again and again  
even if

correct SACK is received.
So I think this SACK must be dropped to let data transmit   
correctly.


Following is the tcpdump of my test. And patch in this mail can  
avoid

this problem.

02:19:38.233278 sctp (1) [INIT] [init tag: 1250461886] [rwnd:  
54784] [OS: 10] [MIS: 65535] [init TSN: 217114040]
02:19:39.782160 sctp (1) [INIT ACK] [init tag: 1] [rwnd: 54784]  
[OS: 100] [MIS: 65535] [init TSN: 100]

02:19:39.798583 sctp (1) [COOKIE ECHO]
02:19:40.082125 sctp (1) [COOKIE ACK]
02:19:40.097859 sctp (1) [DATA] (B)(E) [TSN: 217114040] [SID: 0]  
[SSEQ 0] [PPID 0xf192090b]
02:19:40.100162 sctp (1) [DATA] (B)(E) [TSN: 217114041] [SID: 0]  
[SSEQ 1] [PPID 0x3e467007]
02:19:40.100779 sctp (1) [DATA] (B)(E) [TSN: 217114042] [SID: 0]  
[SSEQ 2] [PPID 0x11b12a0a]
02:19:40.101200 sctp (1) [DATA] (B)(E) [TSN: 217114043] [SID: 0]  
[SSEQ 3] [PPID 0x30e7d979]
02:19:40.561147 sctp (1) [SACK] [cum ack 217114040] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]
02:19:40.568498 sctp (1) [DATA] (B)(E) [TSN: 217114044] [SID: 0]  
[SSEQ 4] [PPID 0x251ff86f]
02:19:40.569308 sctp (1) [DATA] (B)(E) [TSN: 217114045] [SID: 0]  
[SSEQ 5] [PPID 0xe5d5da5d]
02:19:40.700584 sctp (1) [SACK] [cum ack 290855864] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]
02:19:40.701562 sctp (1) [DATA] (B)(E) [TSN: 217114046] [SID: 0]  
[SSEQ 6] [PPID 0x87d8b423]
02:19:40.701567 sctp (1) [DATA] (B)(E) [TSN: 217114047] [SID: 0]  
[SSEQ 7] [PPID 0xca47e645]
02:19:40.701569 sctp (1) [DATA] (B)(E) [TSN: 217114048] [SID: 0]  
[SSEQ 8] [PPID 0x6c0ea150]
02:19:40.701576 sctp (1) [DATA] (B)(E) [TSN: 217114049] [SID: 0]  
[SSEQ 9] [PPID 0x9cc1994f]
02:19:40.701585 sctp (1) [DATA] (B)(E) [TSN: 217114050] [SID: 0]  
[SSEQ 10] [PPID 0xb1df4129]
02:19:41.098201 sctp (1) [SACK] [cum ack 217114041] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]
02:19:41.283257 sctp (1) [SACK] [cum ack 217114042] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]
02:19:41.457217 sctp (1) [SACK] [cum ack 217114043] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]
02:19:41.691528 sctp (1) [SACK] [cum ack 217114044] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]
02:19:41.849636 sctp (1) [SACK] [cum ack 217114045] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]
02:19:41.975473 sctp (1) [DATA] (B)(E) [TSN: 217114046] [SID: 0]  
[SSEQ 6] [PPID 0x87d8b423]
02:19:42.021229 sctp (1) [SACK] [cum ack 217114046] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]
02:19:42.196495 sctp (1) [SACK] [cum ack 217114047] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]
02:19:42.424319 sctp (1) [SACK] [cum ack 217114048] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]
02:19:42.586924 sctp (1) [SACK] [cum ack 217114049] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]
02:19:42.744810 sctp (1) [SACK] [cum ack 217114050] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]
02:19:42.965536 sctp (1) [SACK] [cum ack 217114046] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]
02:19:43.106385 sctp (1) [DATA] (B)(E) [TSN: 217114046] [SID: 0]  
[SSEQ 6] [PPID 0x87d8b423]
02:19:43.218969 sctp (1) [SACK] [cum ack 217114046] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]
02:19:45.374101 sctp (1) [DATA] (B)(E) [TSN: 217114046] [SID: 0]  
[SSEQ 6] [PPID 0x87d8b423]
02:19:45.489258 sctp (1) [SACK] [cum ack 217114046] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]
02:19:49.830116 sctp (1) [DATA] (B)(E) [TSN: 217114046] [SID: 0]  
[SSEQ 6] [PPID 0x87d8b423]
02:19:49.984577 sctp (1) [SACK] [cum ack 217114046] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]
02:19:58.760300 sctp (1) [DATA] (B)(E) [TSN: 217114046] [SID: 0]  
[SSEQ 6] [PPID 0x87d8b423]
02:19:58.931690 sctp (1) [SACK] [cum ack 217114046] [a_rwnd  
54784] [#gap acks 0] [#dup tsns 0]



Signed-off-by: Wei Yongjun [EMAIL PROTECTED]

--- net/sctp/sm_statefuns.c.orig	2007-07-29 18:11:01.0  
-0400

+++ net/sctp/sm_statefuns.c 2007-07-29 18:14:49.0 -0400
@@ -2880,6 +2880,15 @@ sctp_disposition_t sctp_sf_eat_sack_6_2(
return SCTP_DISPOSITION_DISCARD;
}

+   /* If Cumulative TSN Ack is not less than the Cumulative TSN
+* Ack which will be send in the next data, drop the SACK.
+*/
+   if (!TSN_lt(ctsn, asoc-next_tsn)) {
+   SCTP_DEBUG_PRINTK(ctsn %x\n, ctsn);
+   SCTP_DEBUG_PRINTK(next_tsn %x\n, asoc-next_tsn);
+   return SCTP_DISPOSITION_DISCARD;
+   }
+
/* Return this 

Re: ATA over ethernet swapping

2007-08-01 Thread Peter Zijlstra
I've been working on this for quite some time. And should post again
soon. Please see the patches:

  http://programming.kicks-ass.net/kernel-patches/vm_deadlock/current/

For now it requires one uses SLUB, I hope that SLAB will go away (will
save me the trouble of adding support) and I guess I ought to do SLOB
some time (if that does stay).

You'd need the first 22 patches of that series, and then call
sk_set_memalloc(sk) on the proper socket, and do some fiddling with the
reconnect logic. See nfs-swapfile.patch for examples.


-
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: [PATCH FINAL] Merge the Sonics Silicon Backplane subsystem

2007-08-01 Thread Michael Buesch
On Wednesday 01 August 2007, Andrew Morton wrote:
 On Sun, 29 Jul 2007 13:24:54 +0200 Michael Buesch [EMAIL PROTECTED] wrote:
 
  The Sonics Silicon Backplane is a mini-bus used on
  various Broadcom chips and embedded devices.
 
 Sigh.
 
 s390:
 
 drivers/ssb/main.c: In function 'ssb_ssb_read16':
 drivers/ssb/main.c:489: error: implicit declaration of function 'readw'
 drivers/ssb/main.c: In function 'ssb_ssb_read32':
 drivers/ssb/main.c:497: error: implicit declaration of function 'readl'
 drivers/ssb/main.c: In function 'ssb_ssb_write16':
 drivers/ssb/main.c:505: error: implicit declaration of function 'writew'
 drivers/ssb/main.c: In function 'ssb_ssb_write32':
 drivers/ssb/main.c:513: error: implicit declaration of function 'writel'  
   
 
 we shouldn't be compiling SSB on s390, because:
 
 config SSB
 tristate Sonics Silicon Backplane support
 depends on EXPERIMENTAL  HAS_IOMEM
 
 and
 
 akpm2:/usr/src/25 grep IOMEM .config 
 CONFIG_NO_IOMEM=y
 akpm2:/usr/src/25 
 
 but
 
 akpm2:/usr/src/25 grep SSB .config 
 CONFIG_DCSSBLK=m
 CONFIG_SSB=m
 CONFIG_SSB_SILENT=y
 
 well, how did that come about?
 
 It _has_ to be `select'.  It's _always_ `select'.
 
 yup, it's `select':
 
 Selected by: B44  NETDEVICES  NET_ETHERNET || BCM43XX_MAC80211  
 NETDEVICES  !S390  MAC80211  WLAN_80211  EXPERIMENTAL
 
 
 Look.  Kconfig's `select' Just.  Does.  Not.  Work.  If you find yourself
 contemplating using it, please, don sackcloth, take a cold shower and
 several analgesics, then have another go, OK?
 
 ho hum.

Ah, yeah. Crap select not caring about dependencies...
The problem is that people will kill me, if they don't find
bcm43xx in the kconfig anymore, as they have to enable ssb
before that. Ya know the flame with Uwe Bugla going crazy
about that? :D
Same goes for b44. It was always there in kconfig without
additional deps, but now (when we merge the b44 port) we would
need ssb selected before we see b44.
Maybe default SSB to M?
-
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: NETPOLL=y , NETDEVICES=n compile error ( Re: 2.6.23-rc1-mm1 )

2007-08-01 Thread Jarek Poplawski
On Tue, Jul 31, 2007 at 05:05:00PM +0200, Gabriel C wrote:
 Jarek Poplawski wrote:
  On Tue, Jul 31, 2007 at 12:14:36PM +0200, Gabriel C wrote:
  Jarek Poplawski wrote:
  On 28-07-2007 20:42, Gabriel C wrote:
  Andrew Morton wrote:
  On Sat, 28 Jul 2007 17:44:45 +0200 Gabriel C [EMAIL PROTECTED] wrote:
 
  Hi,
 
  I got this compile error with a randconfig ( 
  http://194.231.229.228/MM/randconfig-auto-82.broken.netpoll.c ).
 
  ...
 
  net/core/netpoll.c: In function 'netpoll_poll':
  net/core/netpoll.c:155: error: 'struct net_device' has no member named 
  'poll_controller'
  net/core/netpoll.c:159: error: 'struct net_device' has no member named 
  'poll_controller'
  net/core/netpoll.c: In function 'netpoll_setup':
  net/core/netpoll.c:670: error: 'struct net_device' has no member named 
  'poll_controller'
  make[2]: *** [net/core/netpoll.o] Error 1
  make[1]: *** [net/core] Error 2
  make: *** [net] Error 2
  make: *** Waiting for unfinished jobs
 
  ...
 
 
  I think is because KGDBOE selects just NETPOLL.
 
  Looks like it.
 
  Select went and selected NETPOLL and NETPOLL_TRAP but things like
  CONFIG_NETDEVICES and CONFIG_NET_POLL_CONTROLLER remain unset.  `select'
  remains evil.
  ...
  I think there may be a logical issue ( again if I got it right ).
  We need some ethernet card to work with kgdboe right ? but we don't have 
  any if !NETDEVICES  !NET_ETHERNET.
 
  So maybe some ' depends on ...  NETDEVICES!=n  NET_ETHERNET!=n ' is 
  needed too ? 
  IMHO, the only logical issue here is netpoll.c mustn't use 
  CONFIG_NET_POLL_CONTROLLER code without #ifdef if it doesn't
  add this dependency itself.
 
  Well it does if NETDEVICES  if NET_ETHERNET which booth are N when 
  !NETDEVICES is why KGDBOE uses select and not depends on.
  
  does if XXX means may use if XXX.
 
 From what I know means only use if xxx on !xxx everything inside the if 
 xxx is n and depends on something inside the if xxx 
 does not work.
 
 ...
 
 menuconfig FOO
   bool FOO
   depends on BAR
   default y 
   -- help --
   something
 if FOO
 
 config BAZ
   depends on WHATEVR  !NOT_THIS
 
 menuconfig SOMETHING_ELSE
   
 if SOMETHING_ELSE
 
 config BLUBB
   depends on PCI  WHATNOT
 
 endif # SOMETHING_ELSE
 
 config NETPOLL
 def_bool NETCONSOLE
 
 config NETPOLL_TRAP
 bool Netpoll traffic trapping
 default n
 depends on NETPOLL
   
 config NET_POLL_CONTROLLER
 def_bool NETPOLL
 
 endif # FOO
 
 Now if you set FOO=n all is gone and your driver have to select whatever it 
 needs from there.

Probably not exactly so...

From drivers/net/Kconfig:

 # All the following symbols are dependent on NETDEVICES - do not repeat
 # that for each of the symbols.
 if NETDEVICES

So, according to this netpoll could presume NETDEVICES and
NET_POLL_CONTROLLER are always on.

But, as you've found, it's possible to select NETPOLL and !NETDEVICES,
so this comment is at least not precise.

On the other side something like this:

...
endif # NETDEVICES

config NETPOLL
depends on NETDEVICES
def_bool NETCONSOLE

config NETPOLL_TRAP
bool Netpoll traffic trapping
default n
depends on NETPOLL

config NET_POLL_CONTROLLER
def_bool NETPOLL
depends on NETPOLL


seems to select NET_POLL_CONTROLLER after selecting NETPOLL, but
still doesn't check for NETDEVICES dependency.

 
  
  Now KGDBOE just selects NETPOLL and NETPOLL_TRAP.
  Adding 'select CONFIG_NET_POLL_CONTROLLER' let kgdboe compiles but the 
  question is does it work without any ethernet card ?
  
  Why kgdboe should care what netpoll needs? So, I hope, you are adding
  this select under config NETPOLL. On the other hand, if NETPOLL should
  depend on NET_POLL_CONTROLLER there is probably no reason to have them
  both.
 
 NET_POLL_CONTROLLER has def_bool NETPOLL if NETDEVICES .
 
 Net peoples ping ?:)

OK, I wasn't right here: there is no visible reason for both in the
kernel code, but I can imagine there could be some external users of
NET_POLL_CONTROLLER without NETPOLL.

 
  
  The does it work question isn't logical issue, so it's irrelevant
  here...
 
 Right irrelevant for the compile error but relevant for the fix in my opinion.

This was kind of joking, but since some people prefer things to work,
and it's hard to do this right (logical) way, some strange (unlogical)
measures have to be done like repeating dependencies here.

Regards,
Jarek P.
-
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] prevent SSB compilation on s390 part 2

2007-08-01 Thread Heiko Carstens
From: Heiko Carstens [EMAIL PROTECTED]

drivers/ssb/Kconfig has already a depends on HAS_IOMEM which should
prevent SSB from being selected. But appearantly it looks like this
doesn't matter at all if it gets selected from somewhere else.
So add an explicit depends on HAS_IOMEM to the Broadcom driver to
prevent selection on s390.

Cc: John W. Linville [EMAIL PROTECTED]
Cc: Michael Buesch [EMAIL PROTECTED]
Cc: Martin Schwidefsky [EMAIL PROTECTED]
Signed-off-by: Heiko Carstens [EMAIL PROTECTED]
---
 drivers/net/Kconfig |1 +
 1 files changed, 1 insertion(+)

Index: linux-2.6.22/drivers/net/Kconfig
===
--- linux-2.6.22.orig/drivers/net/Kconfig
+++ linux-2.6.22/drivers/net/Kconfig
@@ -1434,6 +1434,7 @@ config APRICOT
 
 config B44
tristate Broadcom 440x/47xx ethernet support
+   depends on HAS_IOMEM
select SSB
select MII
help
-
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: [PATCH FINAL] Merge the Sonics Silicon Backplane subsystem

2007-08-01 Thread David Woodhouse
On Tue, 2007-07-31 at 20:26 -0700, Andrew Morton wrote:
 Look.  Kconfig's `select' Just.  Does.  Not.  Work.  If you find
 yourself contemplating using it, please, don sackcloth, take a cold
 shower and several analgesics, then have another go, OK?

Amen.

-- 
dwmw2

-
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: Removing the prism54 module

2007-08-01 Thread Edward Ando
With pleasure:

lsmod
Module  Size  Used by
tun 7680  1 
snd_seq_oss26816  0 
snd_seq_device  5288  1 snd_seq_oss
snd_seq_midi_event  5408  1 snd_seq_oss
snd_seq39856  4 snd_seq_oss,snd_seq_midi_event
snd_pcm_oss37344  0 
snd_mixer_oss  13504  1 snd_pcm_oss
pcmcia 33184  0 
snd_intel8x0   27108  2 
snd_ac97_codec 88836  1 snd_intel8x0
ac97_bus1824  1 snd_ac97_codec
snd_pcm62896  3 snd_pcm_oss,snd_intel8x0,snd_ac97_codec
snd_timer  17064  2 snd_seq,snd_pcm
prism5448848  0 
snd_page_alloc  7080  2 snd_intel8x0,snd_pcm
yenta_socket   22140  1 
rsrc_nonstatic  8580  1 yenta_socket


Edward

On Tue, 31 Jul 2007 21:20:57 -0400
Luis R. Rodriguez [EMAIL PROTECTED] wrote:

 On 7/28/07, Edward Ando [EMAIL PROTECTED] wrote:
  Dear All,
  I am trying to set up software suspend 2 (TuxOnIce now it seems).
  This has decided it wants to remove the prism54 module before
  starting the hibernate process.
 
  When it tries to do this, (or when I manually do: ifconfig eth1
  down), I start getting these messages on all terminals, ad
  infinitum:
 
  kernel: unregister_netdevice: waiting for eth1 to become free. Usage
  count = 4
 
 Hmm... can you show lsmod output please?
 
   Luis
-
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: [PATCH] SCTP: drop SACK if ctsn is not less than the next tsn of assoc

2007-08-01 Thread Wei Yongjun



Sorry, coming in late due to list issues...

Wei Yongjun wrote:
  

On Tue, 2007-07-31 at 07:37 -0400, Neil Horman wrote:
  
  

On Tue, Jul 31, 2007 at 12:44:27PM +0800, Wei Yongjun wrote:


If SCTP data sender received a SACK which contains Cumulative TSN Ack is 
not less than the Cumulative TSN Ack Point, and if this Cumulative TSN 
Ack is not used by the data sender, SCTP data sender still accept this 
SACK , and next SACK which send correctly to DATA sender be dropped, 
because it is less than the new Cumulative TSN Ack Point.
After received this SACK, data will be retrans again and again even if 
correct SACK is received.

So I think this SACK must be dropped to let data transmit  correctly.

Following is the tcpdump of my test. And patch in this mail can avoid 
this problem.


02:19:38.233278 sctp (1) [INIT] [init tag: 1250461886] [rwnd: 54784] [OS: 10] [MIS: 65535] [init TSN: 217114040] 
02:19:39.782160 sctp (1) [INIT ACK] [init tag: 1] [rwnd: 54784] [OS: 100] [MIS: 65535] [init TSN: 100] 
02:19:39.798583 sctp (1) [COOKIE ECHO] 
02:19:40.082125 sctp (1) [COOKIE ACK] 
02:19:40.097859 sctp (1) [DATA] (B)(E) [TSN: 217114040] [SID: 0] [SSEQ 0] [PPID 0xf192090b] 
02:19:40.100162 sctp (1) [DATA] (B)(E) [TSN: 217114041] [SID: 0] [SSEQ 1] [PPID 0x3e467007] 
02:19:40.100779 sctp (1) [DATA] (B)(E) [TSN: 217114042] [SID: 0] [SSEQ 2] [PPID 0x11b12a0a] 
02:19:40.101200 sctp (1) [DATA] (B)(E) [TSN: 217114043] [SID: 0] [SSEQ 3] [PPID 0x30e7d979] 
02:19:40.561147 sctp (1) [SACK] [cum ack 217114040] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
02:19:40.568498 sctp (1) [DATA] (B)(E) [TSN: 217114044] [SID: 0] [SSEQ 4] [PPID 0x251ff86f] 
02:19:40.569308 sctp (1) [DATA] (B)(E) [TSN: 217114045] [SID: 0] [SSEQ 5] [PPID 0xe5d5da5d] 
02:19:40.700584 sctp (1) [SACK] [cum ack 290855864] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
02:19:40.701562 sctp (1) [DATA] (B)(E) [TSN: 217114046] [SID: 0] [SSEQ 6] [PPID 0x87d8b423] 
02:19:40.701567 sctp (1) [DATA] (B)(E) [TSN: 217114047] [SID: 0] [SSEQ 7] [PPID 0xca47e645] 
02:19:40.701569 sctp (1) [DATA] (B)(E) [TSN: 217114048] [SID: 0] [SSEQ 8] [PPID 0x6c0ea150] 
02:19:40.701576 sctp (1) [DATA] (B)(E) [TSN: 217114049] [SID: 0] [SSEQ 9] [PPID 0x9cc1994f] 
02:19:40.701585 sctp (1) [DATA] (B)(E) [TSN: 217114050] [SID: 0] [SSEQ 10] [PPID 0xb1df4129] 
02:19:41.098201 sctp (1) [SACK] [cum ack 217114041] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
02:19:41.283257 sctp (1) [SACK] [cum ack 217114042] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
02:19:41.457217 sctp (1) [SACK] [cum ack 217114043] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
02:19:41.691528 sctp (1) [SACK] [cum ack 217114044] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
02:19:41.849636 sctp (1) [SACK] [cum ack 217114045] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
02:19:41.975473 sctp (1) [DATA] (B)(E) [TSN: 217114046] [SID: 0] [SSEQ 6] [PPID 0x87d8b423] 
02:19:42.021229 sctp (1) [SACK] [cum ack 217114046] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
02:19:42.196495 sctp (1) [SACK] [cum ack 217114047] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
02:19:42.424319 sctp (1) [SACK] [cum ack 217114048] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
02:19:42.586924 sctp (1) [SACK] [cum ack 217114049] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
02:19:42.744810 sctp (1) [SACK] [cum ack 217114050] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
02:19:42.965536 sctp (1) [SACK] [cum ack 217114046] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
02:19:43.106385 sctp (1) [DATA] (B)(E) [TSN: 217114046] [SID: 0] [SSEQ 6] [PPID 0x87d8b423] 
02:19:43.218969 sctp (1) [SACK] [cum ack 217114046] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
02:19:45.374101 sctp (1) [DATA] (B)(E) [TSN: 217114046] [SID: 0] [SSEQ 6] [PPID 0x87d8b423] 
02:19:45.489258 sctp (1) [SACK] [cum ack 217114046] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
02:19:49.830116 sctp (1) [DATA] (B)(E) [TSN: 217114046] [SID: 0] [SSEQ 6] [PPID 0x87d8b423] 
02:19:49.984577 sctp (1) [SACK] [cum ack 217114046] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
02:19:58.760300 sctp (1) [DATA] (B)(E) [TSN: 217114046] [SID: 0] [SSEQ 6] [PPID 0x87d8b423] 
02:19:58.931690 sctp (1) [SACK] [cum ack 217114046] [a_rwnd 54784] [#gap acks 0] [#dup tsns 0] 
  


  
This is an interesting case, but I am not sure that simply discarding

the SACK is the right thing.

The peer in this case is violating the protocol whereby he is trying to
advance the cumulative tsn ack to a point beyond the max tsn currently
sent. I would vote for terminating the association in this case since
either the peer is a mis-behaved implementation, or the association is
under attack.
I have modify the patch to abort the association with protocol violation 
error cause, and new patch is come on. May be this patch is correct.^_^


Signed-off-by: Wei Yongjun [EMAIL PROTECTED]

--- net/sctp/sm_statefuns.c.orig2007-07-29 18:11:01.0 -0400
+++ net/sctp/sm_statefuns.c 2007-07-31 00:29:16.0 -0400
@@ -104,6 

Re: [Lksctp-developers] [PATCH] SCTP: drop SACK if ctsn is not less than the next tsn of assoc

2007-08-01 Thread Neil Horman
On Wed, Aug 01, 2007 at 11:01:21AM +0200, Michael Tuexen wrote:
 Hi Wei,
 
 see my comments in-line.
 
 Best regards
 Michael
 
snip 
 (*1) At this point ctsn_ack_point=0,next_tsn=2, ctsn=1, SACK is  
 accept.
 After accept SACK, ctsn_ack_point=1.
 (*2) At this point ctsn_ack_point=1,next_tsn=6, ctsn=5,TSN_lt(ctsn,
 ctsn_ack_point) is ture, so accept SACK, and then ctsn_ack_point=5
 (*3) At this point SACK is a dup SACK, ctsn_ack_point=5,next_tsn=6,
 ctsn=1000,TSN_lt(ctsn, ctsn_ack_point) is ture, so accept SACK, and  
 then
 ctsn_ack_point=1000
 I would not consider it a duplicate SACK. RFC 4460, section 2.37.2 says
 that an implementation SHOULD abort the association when receiving a
 SACK acknowledging unsent data. So I would suggest to send an ABORT  
 chunk.

+1.  I didn't notice the ctsn value before.  We can't safely accept that a peer
pre-acks data we haven't sent.  Too many security holes.  

Neil



-- 
/***
 *Neil Horman
 *Software Engineer
 *Red Hat, Inc.
 [EMAIL PROTECTED]
 *gpg keyid: 1024D / 0x92A74FA1
 *http://pgp.mit.edu
 ***/
-
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


netconf 2007

2007-08-01 Thread Andy Johnson
Hello,

-   I used to follow the slides of netconf in recent years (2004-2006).

- I  found quite an interest in the slides.

- I was just wondering: is there going to be netconf in 2007 ? I could
not find any info about it.


Regards,
JA
-
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: [PATCH] prevent SSB compilation on s390 part 2

2007-08-01 Thread John W. Linville
On Wed, Aug 01, 2007 at 11:34:04AM +0200, Heiko Carstens wrote:
 From: Heiko Carstens [EMAIL PROTECTED]
 
 drivers/ssb/Kconfig has already a depends on HAS_IOMEM which should
 prevent SSB from being selected. But appearantly it looks like this
 doesn't matter at all if it gets selected from somewhere else.
 So add an explicit depends on HAS_IOMEM to the Broadcom driver to
 prevent selection on s390.
 
 Cc: John W. Linville [EMAIL PROTECTED]
 Cc: Michael Buesch [EMAIL PROTECTED]
 Cc: Martin Schwidefsky [EMAIL PROTECTED]
 Signed-off-by: Heiko Carstens [EMAIL PROTECTED]

Note to reviewers: this is only relevant to -mm and wireless-dev at
the moment, AFAIK...

John
-- 
John W. Linville
[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: [Lksctp-developers] [PATCH] SCTP: drop SACK if ctsn is not less than the next tsn of assoc

2007-08-01 Thread Vlad Yasevich
This is a little better.

One suggestion.  The new function you create is almost exactly like
sctp_sf_violation_chunklen() with the exception of the error string.
Can you extract the common parts into a single function so that
we don't have duplication of code.

Thanks
-vlad

Wei Yongjun wrote:
   
 This is an interesting case, but I am not sure that simply discarding
 the SACK is the right thing.

 The peer in this case is violating the protocol whereby he is trying to
 advance the cumulative tsn ack to a point beyond the max tsn currently
 sent. I would vote for terminating the association in this case since
 either the peer is a mis-behaved implementation, or the association is
 under attack.
 I have modify the patch to abort the association with protocol violation 
 error cause, and new patch is come on. May be this patch is correct.^_^
 
 Signed-off-by: Wei Yongjun [EMAIL PROTECTED]
 
 --- net/sctp/sm_statefuns.c.orig  2007-07-29 18:11:01.0 -0400
 +++ net/sctp/sm_statefuns.c   2007-07-31 00:29:16.0 -0400
 @@ -104,6 +104,13 @@ static sctp_disposition_t sctp_sf_violat
void *arg,
sctp_cmd_seq_t *commands);
  
 +static sctp_disposition_t sctp_sf_violation_ctsn(
 +  const struct sctp_endpoint *ep,
 +  const struct sctp_association *asoc,
 +  const sctp_subtype_t type,
 +  void *arg,
 +  sctp_cmd_seq_t *commands);
 +
  /* Small helper function that checks if the chunk length
   * is of the appropriate length.  The 'required_length' argument
   * is set to be the size of a specific chunk we are testing.
 @@ -2880,6 +2887,13 @@ sctp_disposition_t sctp_sf_eat_sack_6_2(
   return SCTP_DISPOSITION_DISCARD;
   }
  
 + /* If Cumulative TSN Ack beyond the max tsn currently
 +  * send, terminating the association and respond to the 
 +  * sender with an ABORT.
 +  */
 + if (!TSN_lt(ctsn, asoc-next_tsn))
 + return sctp_sf_violation_ctsn(ep, asoc, type, arg, commands);
 +
   /* Return this SACK for further processing.  */
   sctp_add_cmd_sf(commands, SCTP_CMD_PROCESS_SACK, SCTP_SACKH(sackh));
  
 @@ -3756,6 +3770,68 @@ nomem:
   return SCTP_DISPOSITION_NOMEM;
  }
  
 +/*
 + * Handle a protocol violation when the peer trying to advance the 
 + * cumulative tsn ack to a point beyond the max tsn currently sent.
 + *
 + * We inform the other end by sending an ABORT with a Protocol Violation
 + * error code.
 + *
 + * Section: Not specified
 + * Verification Tag:  Nothing to do
 + * Inputs
 + * (endpoint, asoc, chunk)
 + *
 + * Outputs
 + * (reply_msg, msg_up, counters)
 + *
 + * Generate an  ABORT chunk and terminate the association.
 + */
 +static sctp_disposition_t sctp_sf_violation_ctsn(
 +  const struct sctp_endpoint *ep,
 +  const struct sctp_association *asoc,
 +  const sctp_subtype_t type,
 +  void *arg,
 +  sctp_cmd_seq_t *commands)
 +{
 + struct sctp_chunk *chunk =  arg;
 + struct sctp_chunk *abort = NULL;
 + char err_str[] = The cumulative tsn ack beyond the max tsn currently 
 sent:;
 +
 + /* Make the abort chunk. */
 + abort = sctp_make_abort_violation(asoc, chunk, err_str,
 +   sizeof(err_str));
 + if (!abort)
 + goto nomem;
 +
 + sctp_add_cmd_sf(commands, SCTP_CMD_REPLY, SCTP_CHUNK(abort));
 + SCTP_INC_STATS(SCTP_MIB_OUTCTRLCHUNKS);
 +
 + if (asoc-state = SCTP_STATE_COOKIE_ECHOED) {
 + sctp_add_cmd_sf(commands, SCTP_CMD_TIMER_STOP,
 + SCTP_TO(SCTP_EVENT_TIMEOUT_T1_INIT));
 + sctp_add_cmd_sf(commands, SCTP_CMD_SET_SK_ERR,
 + SCTP_ERROR(ECONNREFUSED));
 + sctp_add_cmd_sf(commands, SCTP_CMD_INIT_FAILED,
 + SCTP_PERR(SCTP_ERROR_PROTO_VIOLATION));
 + } else {
 + sctp_add_cmd_sf(commands, SCTP_CMD_SET_SK_ERR,
 + SCTP_ERROR(ECONNABORTED));
 + sctp_add_cmd_sf(commands, SCTP_CMD_ASSOC_FAILED,
 + SCTP_PERR(SCTP_ERROR_PROTO_VIOLATION));
 + SCTP_DEC_STATS(SCTP_MIB_CURRESTAB);
 + }
 +
 + sctp_add_cmd_sf(commands, SCTP_CMD_DISCARD_PACKET, SCTP_NULL());
 +
 + SCTP_INC_STATS(SCTP_MIB_ABORTEDS);
 +
 + return SCTP_DISPOSITION_ABORT;
 +
 +nomem:
 + return SCTP_DISPOSITION_NOMEM;
 +}
 +
  /***
   * These are the state functions for handling primitive (Section 10) events.
   ***/
 
 
 

-
To unsubscribe from 

Re: [ofa-general] Re: Re: Re: [PATCH V3 0/7] net/bonding: ADD IPoIB support for the bonding driver

2007-08-01 Thread Moni Shoua

 It's always wrong to copy symbols from another module without
 referencing it.

Michael,
It seems like the preferred approach is to prevent ib_ipoib from being 
unloaded while bonding is on top it, right?
It seems like it would handle all safety issues (not just neigh cleanup).


-
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: specifying scopid's for link-local IPv6 addrs

2007-08-01 Thread Vlad Yasevich
Rick Jones wrote:
 Rick,

 I don't see any way around this.  For example, on one of my test
 systems, I have the following link local routes:

 chance% netstat -A inet6 -rn | grep fe80::/64
 fe80::/64  
 ::  U 25600 eth0
 fe80::/64  
 ::  U 25600 eth2
 fe80::/64  
 ::  U 25600 eth3
 fe80::/64  
 ::  U 25600 eth4
 fe80::/64  
 ::  U 25600 eth5
 fe80::/64  
 ::  U 25600 eth6

 So if I want to run a link local test to fe80::202:b3ff:fed4:cd1,
 the system has no way to choose which is the correct interface to
 use for the test, and will give an error if the interface isn't
 specified. 
 
 Yeah, I was wondering about that.  I'm not sure if the attempts on
 those other OSes happened to involve multiple interfaces or not.

Yes, there have been attempts.   BSD has a concept of default interface.
The default interface is used when the user did not specify the interface/
scope_id.

Other OSs do different things.  For example, Tru64 (to pick on a dead system)
would try to find the right interface base on the preferences you could
set up.

But, in the end the whole thing is really utterly broken since no-one has
truly implemented scoped address architecture for link-local addresses.
The concept of the link is so closely tied to the 'interface' that I don't
know anyone who has separated the two.


  Even
 so, it feels unpleasant for an application to deal with and I wonder
 if there is a way for a stack to deal with it on the application's
 behalf.  I guess that might involve some sort of layer violation between
 neightbor discovery and routing (typing while I think about things I
 know little about...)
 
 Is there RFC chapter and verse I might read about routing with multiple
 link-local's on a system?

See RFC 4007 for the concepts.  

 
 You must explicitly specify the desired interface.  For example,
 on my test system, the correct interface is eth6 which is interface 8
 (lo eth0 eth1 eth2 ... eth5 eth6).  Here is an example nuttcp test
 specifying interface 8:

 chance% nuttcp -P5100 fe80::202:b3ff:fed4:cd1%8
  1178.5809 MB /  10.02 sec =  986.2728 Mbps 12 %TX 15 %RX

 nuttcp uses getaddrinfo() which parses the %ifindex field,
 and then copies the sin6_scope_id from the res structure to the
 server's sockaddr_in6 structure before initiating the connect().
 
 OK, I'll give that a quick try with netperf:
 
 [EMAIL PROTECTED] ~]# netperf -H 192.168.2.107 -c -C -i 30,3 -- -s 1M -S 1M
 -m 64K -H fe80::207:43ff:fe05:9d%2
 TCP STREAM TEST from ::0 (::) port 0 AF_INET6 to
 fe80::207:43ff:fe05:9d%2 (fe80::207:43ff:fe05:9d) port 0 AF_INET6 :
 +/-2.5% @ 99% conf.
 
 Cool - it establishes the data connection just fine.
 
 
 To further demonstrate my ignorance :)  is that %n suffix something one
 might expect in most/all getaddrinfo()'s or is that unique to the one in
 Linux?

This is becoming more generic.  I believe HP-UX supports it (if the don't
you should kick them :).

-vlad
-
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: [PATCH]: Fix sk_buff page offsets and lengths.

2007-08-01 Thread Eric Dumazet
On Mon, 30 Jul 2007 18:50:28 -0700 (PDT)
David Miller [EMAIL PROTECTED] wrote:

 
 Stephen Rothwell pointed out to me that the skb_frag_struct
 is broken on platforms using 64K or larger page sizes, it
 even generates warnings when (for example) the myri10ge driver
 tries to assign PAGE_SIZE into frag-size.
 
 I've thus increased page offset and size to __u32 in the patch below.
 
 I made this change much to even my own chagrin, but this is the
 most direct fix and the ifdefs we could put here are both ugly
 and also not something that we do with struct scatterlist so
 no reason to do it in a place like this.
 
 Actually, the cost on 64-bit is zero because there existed 4 bytes of
 alignment padding for skb_frag_struct because of the page pointer.
 On 32-bit the cost is up to 64-bytes :-/
 
 Stephen, this opens up the doors a bit for the scatterlist work
 you wanted to do in sk_buff.
 

Ouch... 

sizeof(struct skb_shared_info) is enlarged by 18*4 bytes on i386, a litle bit 
more than 64 bytes :(

I understand ifdefs are ugly, but in the common case (PAGE_SIZE64K), this 
change seems very unfortunate.

-
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: [PATCH] prevent SSB compilation on s390 part 2

2007-08-01 Thread Heiko Carstens
On Wed, Aug 01, 2007 at 11:34:04AM +0200, Heiko Carstens wrote:
 From: Heiko Carstens [EMAIL PROTECTED]
 
 drivers/ssb/Kconfig has already a depends on HAS_IOMEM which should
 prevent SSB from being selected. But appearantly it looks like this
 doesn't matter at all if it gets selected from somewhere else.
 So add an explicit depends on HAS_IOMEM to the Broadcom driver to
 prevent selection on s390.
 
 Cc: John W. Linville [EMAIL PROTECTED]
 Cc: Michael Buesch [EMAIL PROTECTED]
 Cc: Martin Schwidefsky [EMAIL PROTECTED]
 Signed-off-by: Heiko Carstens [EMAIL PROTECTED]
 ---
  drivers/net/Kconfig |1 +
  1 files changed, 1 insertion(+)
 
 Index: linux-2.6.22/drivers/net/Kconfig
 ===
 --- linux-2.6.22.orig/drivers/net/Kconfig
 +++ linux-2.6.22/drivers/net/Kconfig
 @@ -1434,6 +1434,7 @@ config APRICOT
 
  config B44
   tristate Broadcom 440x/47xx ethernet support
 + depends on HAS_IOMEM
   select SSB
   select MII
   help

By the way.. wouldn't something like depends on NET_PCI or something
similar more correct for this driver? Just wondering...
-
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: [PATCH] prevent SSB compilation on s390 part 2

2007-08-01 Thread Michael Buesch
On Wednesday 01 August 2007, Heiko Carstens wrote:
 On Wed, Aug 01, 2007 at 11:34:04AM +0200, Heiko Carstens wrote:
  From: Heiko Carstens [EMAIL PROTECTED]
  
  drivers/ssb/Kconfig has already a depends on HAS_IOMEM which should
  prevent SSB from being selected. But appearantly it looks like this
  doesn't matter at all if it gets selected from somewhere else.
  So add an explicit depends on HAS_IOMEM to the Broadcom driver to
  prevent selection on s390.
  
  Cc: John W. Linville [EMAIL PROTECTED]
  Cc: Michael Buesch [EMAIL PROTECTED]
  Cc: Martin Schwidefsky [EMAIL PROTECTED]
  Signed-off-by: Heiko Carstens [EMAIL PROTECTED]
  ---
   drivers/net/Kconfig |1 +
   1 files changed, 1 insertion(+)
  
  Index: linux-2.6.22/drivers/net/Kconfig
  ===
  --- linux-2.6.22.orig/drivers/net/Kconfig
  +++ linux-2.6.22/drivers/net/Kconfig
  @@ -1434,6 +1434,7 @@ config APRICOT
  
   config B44
  tristate Broadcom 440x/47xx ethernet support
  +   depends on HAS_IOMEM
  select SSB
  select MII
  help
 
 By the way.. wouldn't something like depends on NET_PCI or something
 similar more correct for this driver? Just wondering...
 
 

No, B44 does not depend on PCI. It does depend on the SSB bus.
(Of course the SSB PCI parts do depend on PCI)
-
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 2/2] NET: fix memory leaks from security_secid_to_secctx()

2007-08-01 Thread Paul Moore
The security_secid_to_secctx() function returns memory that must be freed
by a call to security_release_secctx() which was not always happening.  This
patch fixes two of these problems (all that I could find in the kernel source
at present).

Signed-off-by: Paul Moore [EMAIL PROTECTED]
---
 net/netlabel/netlabel_user.c |4 +++-
 net/xfrm/xfrm_policy.c   |5 +++--
 2 files changed, 6 insertions(+), 3 deletions(-)

Index: linux-2.6_secctx-leaks/net/netlabel/netlabel_user.c
===
--- linux-2.6_secctx-leaks.orig/net/netlabel/netlabel_user.c
+++ linux-2.6_secctx-leaks/net/netlabel/netlabel_user.c
@@ -113,8 +113,10 @@ struct audit_buffer *netlbl_audit_start_
if (audit_info-secid != 0 
security_secid_to_secctx(audit_info-secid,
 secctx,
-secctx_len) == 0)
+secctx_len) == 0) {
audit_log_format(audit_buf,  subj=%s, secctx);
+   security_release_secctx(secctx, secctx_len);
+   }
 
return audit_buf;
 }
Index: linux-2.6_secctx-leaks/net/xfrm/xfrm_policy.c
===
--- linux-2.6_secctx-leaks.orig/net/xfrm/xfrm_policy.c
+++ linux-2.6_secctx-leaks/net/xfrm/xfrm_policy.c
@@ -2195,9 +2195,10 @@ void xfrm_audit_log(uid_t auid, u32 sid,
}
 
if (sid != 0 
-   security_secid_to_secctx(sid, secctx, secctx_len) == 0)
+   security_secid_to_secctx(sid, secctx, secctx_len) == 0) {
audit_log_format(audit_buf,  subj=%s, secctx);
-   else
+   security_release_secctx(secctx, secctx_len);
+   } else
audit_log_task_context(audit_buf);
 
if (xp) {

-- 
paul moore
linux security @ hp
-
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 1/2] SELinux: remove redundant pointer checks before calling kfree()

2007-08-01 Thread Paul Moore
We don't need to check for NULL pointers before calling kfree().

Signed-off-by: Paul Moore [EMAIL PROTECTED]
---
 security/selinux/hooks.c |3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Index: linux-2.6_secctx-leaks/security/selinux/hooks.c
===
--- linux-2.6_secctx-leaks.orig/security/selinux/hooks.c
+++ linux-2.6_secctx-leaks/security/selinux/hooks.c
@@ -4658,8 +4658,7 @@ static int selinux_secid_to_secctx(u32 s
 
 static void selinux_release_secctx(char *secdata, u32 seclen)
 {
-   if (secdata)
-   kfree(secdata);
+   kfree(secdata);
 }
 
 #ifdef CONFIG_KEYS

-- 
paul moore
linux security @ hp
-
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 0/2] Small memory-leak patchset

2007-08-01 Thread Paul Moore
While doing some other work I found some small memory leaks with the way
we are using security_secid_to_secctx() in some of the auditing code paths.
We also had a redundant NULL pointer check in the SELinux function which frees
the leaked memory.  This patchset fixes both of these issues.

This patchset is backed against Linus' tree from this morning and has been
lightly tested.

-- 
paul moore
linux security @ hp
-
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] remove get_perm_addr from ucc_geth_ethtool.c

2007-08-01 Thread Jan Altenberg
Remove get_perm_addr from ucc_geth_ethtool.c

This is needed because commit 313674afa8fdced2fe79f50f38e1c387b63d8790
inlines the generic function to the caller.

Signed-off-by: Jan Altenberg [EMAIL PROTECTED]

---
 drivers/net/ucc_geth_ethtool.c |1 -
 1 file changed, 1 deletion(-)

Index: linux-2.6/drivers/net/ucc_geth_ethtool.c
===
--- linux-2.6.orig/drivers/net/ucc_geth_ethtool.c
+++ linux-2.6/drivers/net/ucc_geth_ethtool.c
@@ -379,7 +379,6 @@ static const struct ethtool_ops uec_etht
.get_stats_count= uec_get_stats_count,
.get_strings= uec_get_strings,
.get_ethtool_stats  = uec_get_ethtool_stats,
-   .get_perm_addr  = ethtool_op_get_perm_addr,
 };
 
 void uec_set_ethtool_ops(struct net_device *netdev)


-
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: [ofa-general] Re: Re: Re: [PATCH V3 0/7] net/bonding: ADD IPoIB support for the bonding driver

2007-08-01 Thread Michael S. Tsirkin
 Quoting Moni Shoua [EMAIL PROTECTED]:
 Subject: Re: [ofa-general] Re: Re: Re: [PATCH V3 0/7] net/bonding: ADD IPoIB 
 support for?the bonding driver
 
 
  It's always wrong to copy symbols from another module without
  referencing it.
 
 Michael,
 It seems like the preferred approach is to prevent ib_ipoib from being 
 unloaded while bonding is on top it, right?
 It seems like it would handle all safety issues (not just neigh cleanup).

Donnu about preferred, but that'll work I think.

-- 
MST
-
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] sis190 check for ISA bridge on SiS966

2007-08-01 Thread maximilian attems
From: Neil Muller [EMAIL PROTECTED]

sis190 driver assumes to find ISA only on SiS965.
similar fix is in sis900 driver, see bug report
http://bugs.debian.org/435547

Signed-off-by: maximilian attems [EMAIL PROTECTED]

---

 drivers/net/sis190.c |3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c
index ec2ad9f..d470b19 100644
--- a/drivers/net/sis190.c
+++ b/drivers/net/sis190.c
@@ -1593,6 +1593,9 @@ static int __devinit sis190_get_mac_addr_from_apc(struct 
pci_dev *pdev,
  pci_name(pdev));
 
isa_bridge = pci_get_device(PCI_VENDOR_ID_SI, 0x0965, NULL);
+   if (!isa_bridge)
+   isa_bridge = pci_get_device(PCI_VENDOR_ID_SI, 0x0966, NULL);
+
if (!isa_bridge) {
net_probe(tp, KERN_INFO %s: Can not find ISA bridge.\n,
  pci_name(pdev));

-- 
maks
-
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: [PATCH FINAL] Merge the Sonics Silicon Backplane subsystem

2007-08-01 Thread Andrew Morton
On Wed, 1 Aug 2007 11:33:36 +0200 Michael Buesch [EMAIL PROTECTED] wrote:

  
  yup, it's `select':
  
  Selected by: B44  NETDEVICES  NET_ETHERNET || BCM43XX_MAC80211  
  NETDEVICES  !S390  MAC80211  WLAN_80211  EXPERIMENTAL
  
  
  Look.  Kconfig's `select' Just.  Does.  Not.  Work.  If you find yourself
  contemplating using it, please, don sackcloth, take a cold shower and
  several analgesics, then have another go, OK?
  
  ho hum.
 
 Ah, yeah. Crap select not caring about dependencies...
 The problem is that people will kill me, if they don't find
 bcm43xx in the kconfig anymore, as they have to enable ssb
 before that. Ya know the flame with Uwe Bugla going crazy
 about that? :D
 Same goes for b44. It was always there in kconfig without
 additional deps, but now (when we merge the b44 port) we would
 need ssb selected before we see b44.

We just don't have a good solution to this.

`select' is bust and it's unobvious how it can _not_ be bust.  If you're
selecting something whose dependencies aren't met, what can we do?  Maybe
select the thing it depends on as well?  What if it depends on (A||B)? 
Which one do we force on?  Screwed.

And hiding options from the users until theyve gone elsewher and selected
something else is most user-hostile.

At least we have menuconfig's / command, so if you know the option's name
you can work out why it isn't appearing.

I think what we should do is to continue to offer the unselectable option
in manuconfig and friends, only greyed out in some fashion.  So the user
can still navigate to it and select the what do you depend on button.

 Maybe default SSB to M?

People would complain about that too.  I don't know what to do, sorry. 
Muddle 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


[PATCH 2/2] [TCP]: DSACK signals data receival, be conservative

2007-08-01 Thread Ilpo Järvinen

In case a DSACK is received, it's better to lower cwnd as it's
a sign of data receival.

Signed-off-by: Ilpo Järvinen [EMAIL PROTECTED]
---
 net/ipv4/tcp_input.c |5 -
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index c3124e6..f030435 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -103,6 +103,7 @@ int sysctl_tcp_abc __read_mostly;
 #define FLAG_SLOWPATH  0x100 /* Do not skip RFC checks for window 
update.*/
 #define FLAG_ONLY_ORIG_SACKED  0x200 /* SACKs only non-rexmit sent before RTO 
*/
 #define FLAG_SND_UNA_ADVANCED  0x400 /* Snd_una was changed (!= 
FLAG_DATA_ACKED) */
+#define FLAG_DSACKING_ACK  0x800 /* SACK blocks contained DSACK info */
 
 #define FLAG_ACKED (FLAG_DATA_ACKED|FLAG_SYN_ACKED)
 #define FLAG_NOT_DUP   (FLAG_DATA|FLAG_WIN_UPDATE|FLAG_ACKED)
@@ -966,12 +967,14 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff 
*ack_skb, u32 prior_snd_
 
/* Check for D-SACK. */
if (before(ntohl(sp[0].start_seq), TCP_SKB_CB(ack_skb)-ack_seq)) {
+   flag |= FLAG_DSACKING_ACK;
found_dup_sack = 1;
tp-rx_opt.sack_ok |= 4;
NET_INC_STATS_BH(LINUX_MIB_TCPDSACKRECV);
} else if (num_sacks  1 
!after(ntohl(sp[0].end_seq), ntohl(sp[1].end_seq)) 
!before(ntohl(sp[0].start_seq), 
ntohl(sp[1].start_seq))) {
+   flag |= FLAG_DSACKING_ACK;
found_dup_sack = 1;
tp-rx_opt.sack_ok |= 4;
NET_INC_STATS_BH(LINUX_MIB_TCPDSACKOFORECV);
@@ -1858,7 +1861,7 @@ static void tcp_cwnd_down(struct sock *sk, int flag)
struct tcp_sock *tp = tcp_sk(sk);
int decr = tp-snd_cwnd_cnt + 1;
 
-   if ((flagFLAG_ANY_PROGRESS) ||
+   if ((flag(FLAG_ANY_PROGRESS|FLAG_DSACKING_ACK)) ||
(IsReno(tp)  !(flagFLAG_NOT_DUP))) {
tp-snd_cwnd_cnt = decr1;
decr = 1;
-- 
1.5.0.6


[PATCH 1/2] [TCP]: Also handle snd_una changes in tcp_cwnd_down

2007-08-01 Thread Ilpo Järvinen

tcp_cwnd_down must check for it too as it should be conservative
in case of collapse stuff and also when receiver is trying to
lie (though that wouldn't be very successful/useful anyway).

Note:
- Separated also is_dupack and do_lost in fast_retransalert
* Much cleaner look-and-feel now
* This time it really fixes cumulative ACK with many new
  SACK blocks recovery entry (I claimed this fixes with
  last patch but it wasn't). TCP will now call
  tcp_update_scoreboard regardless of is_dupack when
  in recovery as long as there is enough fackets_out.
- Introduce FLAG_SND_UNA_ADVANCED
* Some prior_snd_una arguments are unnecessary after it
- Added helper FLAG_ANY_PROGRESS to avoid long FLAG...|FLAG...
  constructs

Signed-off-by: Ilpo Järvinen [EMAIL PROTECTED]
---

Dave, BEWARE, I wasn't able to do anything else but compile test
because Linus' tree didn't seem to boot on the machine I was
trying to test it... :-(

I think that to stable version only a small part of this change
is necessary, not the full changeset. That should keep stable
folks much happier... :-) I'll soon put my reduced proposal to:
  http://www.cs.helsinki.fi/u/ijjarvin/patches/stable-0001.patch
The other patch (DSACK) can go to stable as is.

 net/ipv4/tcp_input.c |   34 ++
 1 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 378ca8a..c3124e6 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -102,11 +102,13 @@ int sysctl_tcp_abc __read_mostly;
 #define FLAG_DATA_LOST 0x80 /* SACK detected data lossage. 
*/
 #define FLAG_SLOWPATH  0x100 /* Do not skip RFC checks for window 
update.*/
 #define FLAG_ONLY_ORIG_SACKED  0x200 /* SACKs only non-rexmit sent before RTO 
*/
+#define FLAG_SND_UNA_ADVANCED  0x400 /* Snd_una was changed (!= 
FLAG_DATA_ACKED) */
 
 #define FLAG_ACKED (FLAG_DATA_ACKED|FLAG_SYN_ACKED)
 #define FLAG_NOT_DUP   (FLAG_DATA|FLAG_WIN_UPDATE|FLAG_ACKED)
 #define FLAG_CA_ALERT  (FLAG_DATA_SACKED|FLAG_ECE)
 #define FLAG_FORWARD_PROGRESS  (FLAG_ACKED|FLAG_DATA_SACKED)
+#define FLAG_ANY_PROGRESS  (FLAG_FORWARD_PROGRESS|FLAG_SND_UNA_ADVANCED)
 
 #define IsReno(tp) ((tp)-rx_opt.sack_ok == 0)
 #define IsFack(tp) ((tp)-rx_opt.sack_ok  2)
@@ -1856,7 +1858,7 @@ static void tcp_cwnd_down(struct sock *sk, int flag)
struct tcp_sock *tp = tcp_sk(sk);
int decr = tp-snd_cwnd_cnt + 1;
 
-   if ((flagFLAG_FORWARD_PROGRESS) ||
+   if ((flagFLAG_ANY_PROGRESS) ||
(IsReno(tp)  !(flagFLAG_NOT_DUP))) {
tp-snd_cwnd_cnt = decr1;
decr = 1;
@@ -2107,15 +2109,13 @@ static void tcp_mtup_probe_success(struct sock *sk, 
struct sk_buff *skb)
  * tcp_xmit_retransmit_queue().
  */
 static void
-tcp_fastretrans_alert(struct sock *sk, u32 prior_snd_una,
- int prior_packets, int flag)
+tcp_fastretrans_alert(struct sock *sk, int prior_packets, int flag)
 {
struct inet_connection_sock *icsk = inet_csk(sk);
struct tcp_sock *tp = tcp_sk(sk);
-   int is_dupack = (tp-snd_una == prior_snd_una 
-(!(flagFLAG_NOT_DUP) ||
- ((flagFLAG_DATA_SACKED) 
-  (tp-fackets_out  tp-reordering;
+   int is_dupack = !(flag(FLAG_SND_UNA_ADVANCED|FLAG_NOT_DUP));
+   int do_lost = is_dupack || ((flagFLAG_DATA_SACKED) 
+   (tp-fackets_out  tp-reordering));
 
/* Some technical things:
 * 1. Reno does not count dupacks (sacked_out) automatically. */
@@ -2192,14 +2192,14 @@ tcp_fastretrans_alert(struct sock *sk, u32 
prior_snd_una,
/* F. Process state. */
switch (icsk-icsk_ca_state) {
case TCP_CA_Recovery:
-   if (prior_snd_una == tp-snd_una) {
+   if (!(flag  FLAG_SND_UNA_ADVANCED)) {
if (IsReno(tp)  is_dupack)
tcp_add_reno_sack(sk);
} else {
int acked = prior_packets - tp-packets_out;
if (IsReno(tp))
tcp_remove_reno_sacks(sk, acked);
-   is_dupack = tcp_try_undo_partial(sk, acked);
+   do_lost = tcp_try_undo_partial(sk, acked);
}
break;
case TCP_CA_Loss:
@@ -2215,7 +2215,7 @@ tcp_fastretrans_alert(struct sock *sk, u32 prior_snd_una,
/* Loss is undone; fall through to processing in Open state. */
default:
if (IsReno(tp)) {
-   if (tp-snd_una != prior_snd_una)
+   if (flag  FLAG_SND_UNA_ADVANCED)
tcp_reset_reno_sack(tp);
if (is_dupack)
tcp_add_reno_sack(sk);
@@ -2264,7 +2264,7 @@ 

[RFC][PATCH] Removal of duplicated include net/wanrouter/wanmain.c

2007-08-01 Thread Michal Piotrowski
Hi,

There is no need to include linux/init.h twice

Regards,
Michal

--
LOG
http://www.stardust.webpages.pl/log/

Signed-off-by: Michal Piotrowski [EMAIL PROTECTED]

--- linux-mm-clean/net/wanrouter/wanmain.c  2007-07-09 01:32:17.0 
+0200
+++ linux-mm/net/wanrouter/wanmain.c2007-08-01 18:14:22.0 +0200
@@ -46,7 +46,6 @@
 #include linux/capability.h
 #include linux/errno.h   /* return codes */
 #include linux/kernel.h
-#include linux/init.h
 #include linux/module.h  /* support for loadable modules */
 #include linux/slab.h/* kmalloc(), kfree() */
 #include linux/mm.h
-
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: [REGRESSION] tg3 dead after s2ram

2007-08-01 Thread Michael Chan
On Wed, 2007-08-01 at 10:01 +0200, Joachim Deguara wrote:

 Here are the lspci outputs for the tg3

You have 2 Broadcom devices in your system.  07:00.0 is a wireless
device, I think.  8:4.0 is the tg3 device.

It's clear that the tg3 device is still in D3 state after resume and
that explains why all register accesses fail.  tg3_resume() should put
the device back in D0 state in a very straight forward way and I don't
see how that can fail.  It worked for me when I tested it last night.
Can you add some printk() to tg3_resume() to see what's happening?  Let
me know if you want me to send you some debug patches to do that.

Thanks.

Here's the before and after for 8:4.0:

 
 Before

 08:04.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5788 Gigabit 
 Ethernet (rev 03)
   Subsystem: Acer Incorporated [ALI] Unknown device 010e
   Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
 Stepping- 
 SERR- FastB2B-
   Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium TAbort- 
 TAbort- 
 MAbort- SERR- PERR-
   Latency: 0 (16000ns min)
   Interrupt: pin A routed to IRQ 22
   Region 0: Memory at d030 (32-bit, non-prefetchable) [size=64K]
   Expansion ROM at ignored [disabled]
   Capabilities: [48] Power Management version 2
   Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA 
 PME(D0-,D1-,D2-,D3hot+,D3cold+)
   Status: D0 PME-Enable- DSel=0 DScale=1 PME-
   Capabilities: [50] Vital Product Data
   Capabilities: [58] Message Signalled Interrupts: Mask- 64bit+ Queue=0/3 
 Enable-
   Address: 6bfe7fb8  Data: fec7
 00: e4 14 9c 16 06 00 b0 02 03 00 00 02 00 00 00 00
 10: 00 00 30 d0 00 00 00 00 00 00 00 00 00 00 00 00
 20: 00 00 00 00 00 00 00 00 07 00 00 00 25 10 0e 01
 30: 00 00 ff ff 48 00 00 00 00 00 00 00 0a 01 40 00
 40: 00 00 00 00 00 00 00 00 01 50 02 c0 00 20 00 00
 50: 03 58 fc 00 6f bf be 7f 05 00 86 00 b8 ff ff 7f
 60: fe 6b ff ff c7 fe 00 00 98 00 03 30 00 00 3f 76
 70: f6 10 00 00 20 00 00 80 14 04 00 00 00 00 00 00
 80: 85 6b d0 36 03 40 00 0c 34 00 13 04 82 90 09 04
 90: 09 97 00 01 00 00 00 00 00 00 00 00 eb 01 00 00
 a0: 00 00 00 00 23 01 00 00 00 00 00 00 cb 00 00 00
 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 
 After
 
 08:04.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5788 Gigabit 
 Ethernet (rev 03)
   Subsystem: Acer Incorporated [ALI] Unknown device 010e
   Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- 
 Stepping- 
 SERR- FastB2B-
   Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium TAbort- 
 TAbort- 
 MAbort- SERR- PERR-
   Interrupt: pin A routed to IRQ 22
   Region 0: Memory at d030 (32-bit, non-prefetchable) [disabled] 
 [size=64K]
   Expansion ROM at ignored [disabled]
   Capabilities: [48] Power Management version 2
   Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA 
 PME(D0-,D1-,D2-,D3hot+,D3cold+)
   Status: D0 PME-Enable+ DSel=0 DScale=1 PME-
   Capabilities: [50] Vital Product Data
   Capabilities: [58] Message Signalled Interrupts: Mask- 64bit+ Queue=0/3 
 Enable-
   Address: 6bfe7fb8  Data: fec7
 00: e4 14 9c 16 00 00 b0 02 03 00 00 02 00 00 00 00
 10: 00 00 30 d0 00 00 00 00 00 00 00 00 00 00 00 00
 20: 00 00 00 00 00 00 00 00 07 00 00 00 25 10 0e 01
 30: 00 00 ff ff 48 00 00 00 00 00 00 00 0a 01 40 00
 40: 00 00 00 00 00 00 00 00 01 50 02 c0 00 21 00 64
 50: 03 58 fc 00 6f bf be 7f 05 00 86 00 b8 ff ff 7f
 60: fe 6b ff ff c7 fe 00 00 9a 00 03 30 00 00 00 00
 70: 76 10 00 00 40 00 00 00 50 00 00 00 00 00 00 00
 80: 03 58 fc 00 00 00 00 00 00 00 00 00 fe 90 09 04
 90: 01 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 


-
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: [Bugme-new] [Bug 8808] New: Large file transfer causes kernel panic showing b44_poll

2007-08-01 Thread Gary Zambrano
On Wed, 2007-07-25 at 11:54 -0700, Andrew Morton wrote:
 On Wed, 25 Jul 2007 04:29:33 -0700 (PDT)
 [EMAIL PROTECTED] wrote:
 
  http://bugzilla.kernel.org/show_bug.cgi?id=8808
  
 Summary: Large file transfer causes kernel panic showing b44_poll
 Product: Drivers
 Version: 2.5
   KernelVersion: 2.6.22.1
Platform: All
  OS/Version: Linux
Tree: Mainline
  Status: NEW
Severity: blocking
Priority: P1
   Component: Network
  AssignedTo: [EMAIL PROTECTED]
  ReportedBy: [EMAIL PROTECTED]
  
  
  Most recent kernel where this bug did not occur: /
  Distribution: ttylinux 
  Hardware Environment: Dell Inspiron 1300
  Problem Description: 
  
  A large file transfer (6.5GB) (tried http with wget and plain netcat) 
  causes a
  kernel panic after more than several GB have been transferred. However, 
  kernel
  panic does not occur consistently. That is, it has occurred after 1.2GB, 
  1.8GB,
  2.3GB and even 3.4GB transferred. Transfer never finished though. 
  
I could not repro the problem, but please give this patch a try:

diff -rup a/b44.c b/b44.c
--- a/b44.c 2007-07-31 15:31:08.0 -0700
+++ b/b44.c 2007-08-01 08:03:08.0 -0700
@@ -792,15 +792,15 @@ static int b44_rx(struct b44 *bp, int bu
goto next_pkt;
}
 
-   if (len == 0) {
+   if (len  5) {
int i = 0;
 
do {
udelay(2);
barrier();
len = le16_to_cpu(rh-len);
-   } while (len == 0  i++  5);
-   if (len == 0)
+   } while (len  5  i++  5);
+   if (len  5)
goto drop_it;
}
 



-
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] Inconsistent behaviour at AF_PACKET

2007-08-01 Thread Unai Uribarri
Hello folks,

Timestamps should be usually requested explicitly by setting the
SOL_SOCKET/SO_TIMESTAMP option to 1. But if you setup a reception ring
with the SOL_PACKET/PACKET_RX_RING option, timestamps are automatically
enabled at the next packet recepcion.

I think that is a bug so I have written a patch that corrects it.

Thanks.

diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index 1322d62..a4f2da3 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -640,10 +640,6 @@ static int tpacket_rcv(struct sk_buff *skb, struct
net_device *dev, struct packe
h-tp_snaplen = snaplen;
h-tp_mac = macoff;
h-tp_net = netoff;
-   if (skb-tstamp.tv64 == 0) {
-   __net_timestamp(skb);
-   sock_enable_timestamp(sk);
-   }
tv = ktime_to_timeval(skb-tstamp);
h-tp_sec = tv.tv_sec;
h-tp_usec = tv.tv_usec;



-
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 1/1] ibmveth: Fix rx pool deactivate oops

2007-08-01 Thread Brian King

This fixes the following oops which can occur when trying to deallocate
receive buffer pools using sysfs with the ibmveth driver.

NIP: d024f954 LR: d024fa58 CTR: c00d7478
REGS: cffef9f0 TRAP: 0300   Not tainted  (2.6.22-ppc64)
MSR: 80009032 EE,ME,IR,DR  CR: 24242442  XER: 0010
DAR: 07f0, DSISR: 4200
TASK = c2f91360[2967] 'bash' THREAD: c0001398c000 CPU: 2
GPR00:  cffefc70 d0262d30 c0001c4087a0 
GPR04: 000300fe  000f c0579d80 
GPR08: 00365688 c0001c408998 07f0  
GPR12: d0251e88 c0579d80 200957ec  
GPR16: 100b8808 100feb30  10084828 
GPR20:  1014d4d0 0010 cffefeb0 
GPR24: c0001c408000  c0001c408000 b054 
GPR28: 00fe 0003 d0262700 c0001c4087a0 
NIP [d024f954] .ibmveth_remove_buffer_from_pool+0x38/0x108 [ibmveth]
LR [d024fa58] .ibmveth_rxq_harvest_buffer+0x34/0x78 [ibmveth]
Call Trace:
[cffefc70] [c00280a8] .dma_iommu_unmap_single+0x14/0x28 
(unreliable)
[cffefd00] [d024fa58] .ibmveth_rxq_harvest_buffer+0x34/0x78 
[ibmveth]
[cffefd80] [d0250e40] .ibmveth_poll+0xd8/0x434 [ibmveth]
[cffefe40] [c032da8c] .net_rx_action+0xdc/0x248
[cffefef0] [c0068b4c] .__do_softirq+0xa8/0x164
[cffeff90] [c002789c] .call_do_softirq+0x14/0x24
[c0001398f6f0] [c000c04c] .do_softirq+0x68/0xac
[c0001398f780] [c0068ca0] .irq_exit+0x54/0x6c
[c0001398f800] [c000c8e4] .do_IRQ+0x170/0x1ac
[c0001398f890] [c0004790] hardware_interrupt_entry+0x18/0x1c
   Exception: 501 at .plpar_hcall_norets+0x24/0x94
LR = .veth_pool_store+0x15c/0x298 [ibmveth]
[c0001398fb80] [d0250b2c] .veth_pool_store+0x5c/0x298 [ibmveth] 
(unreliable)
[c0001398fc30] [c0145530] .sysfs_write_file+0x140/0x1d8
[c0001398fcf0] [c00de89c] .vfs_write+0x120/0x208
[c0001398fd90] [c00df2c8] .sys_write+0x4c/0x8c
[c0001398fe30] [c00086ac] syscall_exit+0x0/0x40
Instruction dump:
fba1ffe8 fbe1fff8 789d0022 f8010010 f821ff71 789c0020 1d3d00a8 7b8a1f24 
3800 7c7f1b78 7d291a14 e9690128 7c0a592a e803 e9690120 80a90100 

Signed-off-by: Brian King [EMAIL PROTECTED]
---

 linux-2.6-bjking1/drivers/net/ibmveth.c |   24 ++--
 linux-2.6-bjking1/drivers/net/ibmveth.h |3 ---
 2 files changed, 14 insertions(+), 13 deletions(-)

diff -puN drivers/net/ibmveth.c~ibmveth_fixup_pool_deactivate 
drivers/net/ibmveth.c
--- linux-2.6/drivers/net/ibmveth.c~ibmveth_fixup_pool_deactivate   
2007-08-01 10:22:37.0 -0500
+++ linux-2.6-bjking1/drivers/net/ibmveth.c 2007-08-01 10:23:20.0 
-0500
@@ -1280,24 +1280,28 @@ const char * buf, size_t count)
int i;
/* Make sure there is a buffer pool with buffers that
   can hold a packet of the size of the MTU */
-   for(i = 0; iIbmVethNumBufferPools; i++) {
+   for (i = 0; i  IbmVethNumBufferPools; i++) {
if (pool == adapter-rx_buff_pool[i])
continue;
if (!adapter-rx_buff_pool[i].active)
continue;
-   if (mtu  adapter-rx_buff_pool[i].buff_size) {
-   pool-active = 0;
-   h_free_logical_lan_buffer(adapter-
- vdev-
- unit_address,
- pool-
- buff_size);
-   }
+   if (mtu = adapter-rx_buff_pool[i].buff_size)
+   break;
}
-   if (pool-active) {
+
+   if (i == IbmVethNumBufferPools) {
ibmveth_error_printk(no active pool = MTU\n);
return -EPERM;
}
+
+   pool-active = 0;
+   if (netif_running(netdev)) {
+   adapter-pool_config = 1;
+   ibmveth_close(netdev);
+   adapter-pool_config = 0;
+   if ((rc = ibmveth_open(netdev)))
+   return rc;
+   }
}
} 

Re: [REGRESSION] tg3 dead after s2ram

2007-08-01 Thread Michael Chan
On Wed, 2007-08-01 at 10:47 -0700, Michael Chan wrote:

 You have 2 Broadcom devices in your system.  07:00.0 is a wireless
 device, I think.  8:4.0 is the tg3 device.
 
 It's clear that the tg3 device is still in D3 state after resume and
 that explains why all register accesses fail.  tg3_resume() should put
 the device back in D0 state in a very straight forward way and I don't
 see how that can fail.  It worked for me when I tested it last night.
 Can you add some printk() to tg3_resume() to see what's happening?  Let
 me know if you want me to send you some debug patches to do that.

I misread the PCI registers below.  The power state was ok.

The problem is that memory enable and bus master were not set in PCI
register 4 after resume.  This also explains the register access
failures.

In tg3_resume(), we call pci_restore_state() which should re-enable
those 2 bits in PCI register 4.  Can you add some printk() to see why
those bits are not restored after pci_restore_state()?

Thanks.

 
 Here's the before and after for 8:4.0:
 
  
  Before
 
  08:04.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5788 Gigabit 
  Ethernet (rev 03)
  Subsystem: Acer Incorporated [ALI] Unknown device 010e
  Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
  Stepping- 
  SERR- FastB2B-
  Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium TAbort- 
  TAbort- 
  MAbort- SERR- PERR-
  Latency: 0 (16000ns min)
  Interrupt: pin A routed to IRQ 22
  Region 0: Memory at d030 (32-bit, non-prefetchable) [size=64K]
  Expansion ROM at ignored [disabled]
  Capabilities: [48] Power Management version 2
  Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA 
  PME(D0-,D1-,D2-,D3hot+,D3cold+)
  Status: D0 PME-Enable- DSel=0 DScale=1 PME-
  Capabilities: [50] Vital Product Data
  Capabilities: [58] Message Signalled Interrupts: Mask- 64bit+ Queue=0/3 
  Enable-
  Address: 6bfe7fb8  Data: fec7
  00: e4 14 9c 16 06 00 b0 02 03 00 00 02 00 00 00 00
  10: 00 00 30 d0 00 00 00 00 00 00 00 00 00 00 00 00
  20: 00 00 00 00 00 00 00 00 07 00 00 00 25 10 0e 01
  30: 00 00 ff ff 48 00 00 00 00 00 00 00 0a 01 40 00
  40: 00 00 00 00 00 00 00 00 01 50 02 c0 00 20 00 00
  50: 03 58 fc 00 6f bf be 7f 05 00 86 00 b8 ff ff 7f
  60: fe 6b ff ff c7 fe 00 00 98 00 03 30 00 00 3f 76
  70: f6 10 00 00 20 00 00 80 14 04 00 00 00 00 00 00
  80: 85 6b d0 36 03 40 00 0c 34 00 13 04 82 90 09 04
  90: 09 97 00 01 00 00 00 00 00 00 00 00 eb 01 00 00
  a0: 00 00 00 00 23 01 00 00 00 00 00 00 cb 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  
  After
  
  08:04.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5788 Gigabit 
  Ethernet (rev 03)
  Subsystem: Acer Incorporated [ALI] Unknown device 010e
  Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- 
  Stepping- 
  SERR- FastB2B-
  Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium TAbort- 
  TAbort- 
  MAbort- SERR- PERR-
  Interrupt: pin A routed to IRQ 22
  Region 0: Memory at d030 (32-bit, non-prefetchable) [disabled] 
  [size=64K]
  Expansion ROM at ignored [disabled]
  Capabilities: [48] Power Management version 2
  Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA 
  PME(D0-,D1-,D2-,D3hot+,D3cold+)
  Status: D0 PME-Enable+ DSel=0 DScale=1 PME-
  Capabilities: [50] Vital Product Data
  Capabilities: [58] Message Signalled Interrupts: Mask- 64bit+ Queue=0/3 
  Enable-
  Address: 6bfe7fb8  Data: fec7
  00: e4 14 9c 16 00 00 b0 02 03 00 00 02 00 00 00 00
  10: 00 00 30 d0 00 00 00 00 00 00 00 00 00 00 00 00
  20: 00 00 00 00 00 00 00 00 07 00 00 00 25 10 0e 01
  30: 00 00 ff ff 48 00 00 00 00 00 00 00 0a 01 40 00
  40: 00 00 00 00 00 00 00 00 01 50 02 c0 00 21 00 64
  50: 03 58 fc 00 6f bf be 7f 05 00 86 00 b8 ff ff 7f
  60: fe 6b ff ff c7 fe 00 00 9a 00 03 30 00 00 00 00
  70: 76 10 00 00 40 00 00 00 50 00 00 00 00 00 00 00
  80: 03 58 fc 00 00 00 00 00 00 00 00 00 fe 90 09 04
  90: 01 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  


-
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: [PATCH]: Fix sk_buff page offsets and lengths.

2007-08-01 Thread David Miller
From: Eric Dumazet [EMAIL PROTECTED]
Date: Tue, 31 Jul 2007 10:52:15 +0200

 I understand ifdefs are ugly, but in the common case
 (PAGE_SIZE64K), this change seems very unfortunate.

If this bothers you so much start where the real problems are and
advocate on linux-kernel for descreasing the type size of offset and
length in struct scatterlist.  It's a bit on the hypocritical side
to complain about this skb_frag_t change when I've never seen a peep
out of you about scatterlist doing the same thing :-)

Otherwise, we're better off with the types being the same so that we
can use scatterlist in skb_frag_t and therefore kill serious
performance problems with DMA mapping of sk_buff objects that exists
today on platforms such as powerpc.

-
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: [RFC][BNX2X]: New driver for Broadcom 10Gb Ethernet.

2007-08-01 Thread Michael Buesch
On Wednesday 01 August 2007 10:31:17 Michael Chan wrote:

 +typedef struct {
 + u8 reserved[64];
 +} license_key_t;

No typedef.
What is a license key used for, anyway?

 +#define RUN_AT(x)(jiffies + (x))

That macro does only obfuscate code, in my opinion.
If you want jiffies+x, better opencode it.

 +typedef enum {
 + BCM5710 = 0,
 +} board_t;

No typedef. Do
enum bnx2x_board {
BCM5710 = 0,
};
Or something like that.

 +static struct pci_device_id bnx2x_pci_tbl[] = {

static const struct...

 + { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_NX2_5710,
 + PCI_ANY_ID, PCI_ANY_ID, 0, 0, BCM5710 },
 + { 0 }
 +};

 +static inline u32 bnx2x_bits_en(struct bnx2x *bp, u32 block, u32 reg,
 + u32 bits)

Does that really need to be inline? I'd suggest dropping inline.

 +{
 + u32 val = REG_RD(bp, block, reg);
 +
 + val |= bits;
 + REG_WR(bp, block, reg, val);
 + return val;
 +}
 +
 +static inline u32 bnx2x_bits_dis(struct bnx2x *bp, u32 block, u32 reg,
 +  u32 bits)

Same here.

 +{
 + u32 val = REG_RD(bp, block, reg);
 +
 + val = ~bits;
 + REG_WR(bp, block, reg, val);
 + return val;
 +}
 +
 +static int bnx2x_mdio22_write(struct bnx2x *bp, u32 reg, u32 val)
 +{
 + int rc;
 + u32 tmp, i;
 + int port = bp-port;
 + u32 emac_base = port ? GRCBASE_EMAC1 : GRCBASE_EMAC0;
 +
 + if (bp-phy_flags  PHY_INT_MODE_AUTO_POLLING_FLAG) {
 +
 + tmp = REG_RD(bp, emac_base, EMAC_REG_EMAC_MDIO_MODE);
 + tmp = ~EMAC_MDIO_MODE_AUTO_POLL;
 + EMAC_WR(EMAC_REG_EMAC_MDIO_MODE, tmp);
 + REG_RD(bp, emac_base, EMAC_REG_EMAC_MDIO_MODE);
 + udelay(40);
 + }
 +
 + tmp = ((bp-phy_addr  21) | (reg  16) |
 +(val  EMAC_MDIO_COMM_DATA) |
 +EMAC_MDIO_COMM_COMMAND_WRITE_22 |
 +EMAC_MDIO_COMM_START_BUSY);
 + EMAC_WR(EMAC_REG_EMAC_MDIO_COMM, tmp);
 +
 + for (i = 0; i  50; i++) {
 + udelay(10);
 +
 + tmp = REG_RD(bp, emac_base, EMAC_REG_EMAC_MDIO_COMM);
 + if (!(tmp  EMAC_MDIO_COMM_START_BUSY)) {
 + udelay(5);
 + break;
 + }
 + }
 +
 + if (tmp  EMAC_MDIO_COMM_START_BUSY) {
 + BNX2X_ERR(write phy register failed\n);
 +
 + rc = -EBUSY;
 + } else {
 + rc = 0;
 + }
 +
 + if (bp-phy_flags  PHY_INT_MODE_AUTO_POLLING_FLAG) {
 +
 + tmp = REG_RD(bp, emac_base, EMAC_REG_EMAC_MDIO_MODE);
 + tmp |= EMAC_MDIO_MODE_AUTO_POLL;
 + EMAC_WR(EMAC_REG_EMAC_MDIO_MODE, tmp);
 + }
 +
 + return rc;
 +}
 +
 +static int bnx2x_mdio22_read(struct bnx2x *bp, u32 reg, u32 *ret_val)
 +{
 + int rc;
 + u32 val, i;
 + int port = bp-port;
 + u32 emac_base = port ? GRCBASE_EMAC1 : GRCBASE_EMAC0;
 +
 + if (bp-phy_flags  PHY_INT_MODE_AUTO_POLLING_FLAG) {
 +
 + val = REG_RD(bp, emac_base, EMAC_REG_EMAC_MDIO_MODE);
 + val = ~EMAC_MDIO_MODE_AUTO_POLL;
 + EMAC_WR(EMAC_REG_EMAC_MDIO_MODE, val);
 + REG_RD(bp, emac_base, EMAC_REG_EMAC_MDIO_MODE);
 + udelay(40);
 + }
 +
 + val = ((bp-phy_addr  21) | (reg  16) |
 +EMAC_MDIO_COMM_COMMAND_READ_22 |
 +EMAC_MDIO_COMM_START_BUSY);
 + EMAC_WR(EMAC_REG_EMAC_MDIO_COMM, val);
 +
 + for (i = 0; i  50; i++) {
 + udelay(10);
 +
 + val = REG_RD(bp, emac_base, EMAC_REG_EMAC_MDIO_COMM);
 + if (!(val  EMAC_MDIO_COMM_START_BUSY)) {

No udelay(5) here, like in write above?

 + val = EMAC_MDIO_COMM_DATA;
 + break;
 + }
 + }

 +static int bnx2x_mdio45_vwrite(struct bnx2x *bp, u32 reg, u32 addr, u32 val)
 +{
 + int i;
 + u32 rd_val;
 +
 + for (i = 0; i  10; i++) {
 + bnx2x_mdio45_write(bp, reg, addr, val);
 + mdelay(5);

Can you msleep(5) here?

 + bnx2x_mdio45_read(bp, reg, addr, rd_val);
 + /* if the read value is not the same as the value we wrote,
 +we should write it again */
 + if (rd_val == val) {
 + return 0;
 + }
 + }
 + BNX2X_ERR(MDIO write in CL45 failed\n);
 + return -EBUSY;
 +}

 +/* DMAE command positions used
 + * Port0 14
 + * Port1 15
 + */
 +static void bnx2x_wb_write_dmae(struct bnx2x *bp, u32 wb_addr, u32 *wb_write,
 + u32 wb_len)
 +{
 + struct dmae_command *dmae = bp-dmae;
 + int port = bp-port;
 + u32 *wb_comp = bnx2x_sp(bp, wb_comp);
 +
 + memcpy(bnx2x_sp(bp, wb_write[0]), wb_write, wb_len * 4);
 + memset(dmae, 0, sizeof(struct dmae_command));
 +
 + dmae-opcode = (DMAE_CMD_SRC_PCI | DMAE_CMD_DST_GRC |
 + DMAE_CMD_C_DST_PCI | DMAE_CMD_C_ENABLE |
 + DMAE_CMD_SRC_RESET | 

Re: [RFC][BNX2X]: New driver for Broadcom 10Gb Ethernet.

2007-08-01 Thread Roland Dreier
   +  { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_NX2_5710,
   +  PCI_ANY_ID, PCI_ANY_ID, 0, 0, BCM5710 },

FWIW, this could be neater as

{ PCI_VDEVICE(BROADCOM, PCI_DEVICE_ID_NX2_5710), BCM5710 }

 - R.
-
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: [PATCH] SMSC LAN911x and LAN921x vendor driver

2007-08-01 Thread Peter Korsgaard
 Steve == Steve Glendinning [EMAIL PROTECTED] writes:

Hi,

  What's the problem with Dustin's driver? It seems to work fine here
  with a lan9117. Why not just add lan921x support to the existing
  driver?

 Steve I have heard Dustin's driver works very well on PXA, but on
 Steve others it doesn't even compile (hence why it depends on
 Steve ARCH_PXA).

I'm using it on PPC.

 Steve Dustin's driver was based on the smc91x code, but these two
 Steve ethernet devices share nothing other than a similar name.
 Steve smsc911x is a new, completely platform-independent driver with
 Steve workarounds for several hardware issues, and it doesn't suffer
 Steve from quite as much macro abuse :-)

The macros are not that bad as the hw people sligtly misconnected the
chip, so I need special access routines (enable the big endian mode,
not byteswap on normal registar access and byteswap on fifo access).

I'll give your driver a try and report back.

-- 
Bye, Peter Korsgaard

-
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: [RFC][BNX2X]: New driver for Broadcom 10Gb Ethernet.

2007-08-01 Thread Jeff Garzik

Roland Dreier wrote:

   +{ PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_NX2_5710,
   +PCI_ANY_ID, PCI_ANY_ID, 0, 0, BCM5710 },

FWIW, this could be neater as

{ PCI_VDEVICE(BROADCOM, PCI_DEVICE_ID_NX2_5710), BCM5710 }


Yes.  And additionally, I prefer (but not require) that people directly 
use a hexidecimal constant in the PCI ID table for device ID, if that is 
the only place in the entire codebase referring to that PCI device ID.


Using a named constant for a single-use PCI device ID merely aggrevates 
include/linux/pci_ids.h patching headache for what is ultimately an 
arbitrary number [usually] picked out of thin air by the hw vendor.


Jeff



-
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: [PATCH 2/2] NET: fix memory leaks from security_secid_to_secctx()

2007-08-01 Thread James Morris
Both patches applied to:

git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6.git#for-akpm



-- 
James Morris
[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: NETPOLL=y , NETDEVICES=n compile error ( Re: 2.6.23-rc1-mm1 )

2007-08-01 Thread Matt Mackall
On Wed, Aug 01, 2007 at 11:59:21AM +0200, Jarek Poplawski wrote:
 On Tue, Jul 31, 2007 at 05:05:00PM +0200, Gabriel C wrote:
  Jarek Poplawski wrote:
   On Tue, Jul 31, 2007 at 12:14:36PM +0200, Gabriel C wrote:
   Jarek Poplawski wrote:
   On 28-07-2007 20:42, Gabriel C wrote:
   Andrew Morton wrote:
   On Sat, 28 Jul 2007 17:44:45 +0200 Gabriel C [EMAIL PROTECTED] 
   wrote:
  
   Hi,
  
   I got this compile error with a randconfig ( 
   http://194.231.229.228/MM/randconfig-auto-82.broken.netpoll.c ).
  
   ...
  
   net/core/netpoll.c: In function 'netpoll_poll':
   net/core/netpoll.c:155: error: 'struct net_device' has no member 
   named 'poll_controller'
   net/core/netpoll.c:159: error: 'struct net_device' has no member 
   named 'poll_controller'
   net/core/netpoll.c: In function 'netpoll_setup':
   net/core/netpoll.c:670: error: 'struct net_device' has no member 
   named 'poll_controller'
   make[2]: *** [net/core/netpoll.o] Error 1
   make[1]: *** [net/core] Error 2
   make: *** [net] Error 2
   make: *** Waiting for unfinished jobs
  
   ...
  
  
   I think is because KGDBOE selects just NETPOLL.
  
   Looks like it.
  
   Select went and selected NETPOLL and NETPOLL_TRAP but things like
   CONFIG_NETDEVICES and CONFIG_NET_POLL_CONTROLLER remain unset.  
   `select'
   remains evil.
   ...
   I think there may be a logical issue ( again if I got it right ).
   We need some ethernet card to work with kgdboe right ? but we don't 
   have any if !NETDEVICES  !NET_ETHERNET.
  
   So maybe some ' depends on ...  NETDEVICES!=n  NET_ETHERNET!=n ' 
   is needed too ? 
   IMHO, the only logical issue here is netpoll.c mustn't use 
   CONFIG_NET_POLL_CONTROLLER code without #ifdef if it doesn't
   add this dependency itself.
  
   Well it does if NETDEVICES  if NET_ETHERNET which booth are N when 
   !NETDEVICES is why KGDBOE uses select and not depends on.
   
   does if XXX means may use if XXX.
  
  From what I know means only use if xxx on !xxx everything inside the if 
  xxx is n and depends on something inside the if xxx 
  does not work.
  
  ...
  
  menuconfig FOO
  bool FOO
  depends on BAR
  default y 
  -- help --
  something
  if FOO
  
  config BAZ
  depends on WHATEVR  !NOT_THIS
  
  menuconfig SOMETHING_ELSE
  
  if SOMETHING_ELSE
  
  config BLUBB
  depends on PCI  WHATNOT
  
  endif # SOMETHING_ELSE
  
  config NETPOLL
  def_bool NETCONSOLE
  
  config NETPOLL_TRAP
  bool Netpoll traffic trapping
  default n
  depends on NETPOLL

  config NET_POLL_CONTROLLER
  def_bool NETPOLL
  
  endif # FOO
  
  Now if you set FOO=n all is gone and your driver have to select whatever it 
  needs from there.
 
 Probably not exactly so...
 
 From drivers/net/Kconfig:
 
  # All the following symbols are dependent on NETDEVICES - do not repeat
  # that for each of the symbols.
  if NETDEVICES
 
 So, according to this netpoll could presume NETDEVICES and
 NET_POLL_CONTROLLER are always on.
 
 But, as you've found, it's possible to select NETPOLL and !NETDEVICES,
 so this comment is at least not precise.
 
 On the other side something like this:
 
 ...
 endif # NETDEVICES
 
 config NETPOLL
 depends on NETDEVICES
 def_bool NETCONSOLE
 
 config NETPOLL_TRAP
 bool Netpoll traffic trapping
 default n
 depends on NETPOLL
 
 config NET_POLL_CONTROLLER
 def_bool NETPOLL
 depends on NETPOLL
 
 
 seems to select NET_POLL_CONTROLLER after selecting NETPOLL, but
 still doesn't check for NETDEVICES dependency.

That's odd. Adding Sam to the cc:.

   Now KGDBOE just selects NETPOLL and NETPOLL_TRAP.
   Adding 'select CONFIG_NET_POLL_CONTROLLER' let kgdboe compiles but the 
   question is does it work without any ethernet card ?
   
   Why kgdboe should care what netpoll needs? So, I hope, you are adding
   this select under config NETPOLL. On the other hand, if NETPOLL should
   depend on NET_POLL_CONTROLLER there is probably no reason to have them
   both.
  
  NET_POLL_CONTROLLER has def_bool NETPOLL if NETDEVICES .
  
  Net peoples ping ?:)

How about cc:ing the netpoll maintainer?
 
 OK, I wasn't right here: there is no visible reason for both in the
 kernel code, but I can imagine there could be some external users of
 NET_POLL_CONTROLLER without NETPOLL.

I don't know of any. As far as I can tell at this point,
NET_POLL_CONTROLLER == NETPOLL.

-- 
Mathematics is the supreme nostalgia of our time.
-
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 2.6.23-rc1][NETFILTER] nf_conntrack_reasm: adding icmpv6_send code(TIME EXCEEDED).

2007-08-01 Thread Masayuki Nakagawa
I ran the TAHI conformance test on a kernel, which CONFIG_NF_CONNTRACK_IPV6
is enabled. And then it showed a result including a couple of failure.
The all of failed items are related to TIME EXCEEDED.

The test procedure is here.
  Tester  Target
|   |
|--|
|   Echo Request|
|  (1st fragment)   |
|   |
|  wait for 65 sec. |
|   |
|--|
|ICMPv6 Error   |

(1) Tester sends a first fragment of ICMPv6 echo request to Target.
(2) Wait for over 60 sec.
(3) If target replies a ICMPv6 error message(Time Exceeded) to Tester,
then this test is success, otherwise it's failure.

The reason of the failure is very simple, it's because icmpv6_send code are
missing in nf_ct_frag6_expire function(nf_conntrack_reasm.c).
The change is to add the missing code.

In RFC2460, the specification regarding Time Exceeded is described,
but it's defined as should. So, there is no specification violation here.
Therefore I'm not sure whether this change is appropriate or not.

I will appreciate any comments. Thanks.

Signed-off-by: Masayuki Nakagawa [EMAIL PROTECTED]

Index: linux-2.6/net/ipv6/netfilter/nf_conntrack_reasm.c
===
--- linux-2.6.orig/net/ipv6/netfilter/nf_conntrack_reasm.c
+++ linux-2.6/net/ipv6/netfilter/nf_conntrack_reasm.c
@@ -76,6 +76,7 @@ struct nf_ct_frag6_queue
struct sk_buff  *fragments;
int len;
int meat;
+   int iif;
ktime_t stamp;
unsigned intcsum;
__u8last_in;/* has first/last segment 
arrived? */
@@ -279,6 +280,7 @@ static void nf_ct_frag6_evictor(void)
 static void nf_ct_frag6_expire(unsigned long data)
 {
struct nf_ct_frag6_queue *fq = (struct nf_ct_frag6_queue *) data;
+   struct net_device *dev = NULL;

spin_lock(fq-lock);

@@ -287,7 +289,26 @@ static void nf_ct_frag6_expire(unsigned

fq_kill(fq);

+   dev = dev_get_by_index(fq-iif);
+   if (!dev)
+   goto out;
+
+   /* Don't send error if the first segment did not arrive. */
+   if (!(fq-last_inFIRST_IN) || !fq-fragments)
+   goto out;
+
+   /*
+  But use as source device on which LAST ARRIVED
+  segment was received. And do not use fq-dev
+  pointer directly, device might already disappeared.
+*/
+   fq-fragments-dev = dev;
+   icmpv6_send(fq-fragments, ICMPV6_TIME_EXCEED, ICMPV6_EXC_FRAGTIME, 0, 
dev);
+
 out:
+   if (dev)
+   dev_put(dev);
+
spin_unlock(fq-lock);
fq_put(fq, NULL);
 }
@@ -534,6 +555,9 @@ static int nf_ct_frag6_queue(struct nf_c
else
fq-fragments = skb;

+   if (skb-dev)
+   fq-iif = skb-dev-ifindex;
+
skb-dev = NULL;
fq-stamp = skb-tstamp;
fq-meat += skb-len;
-
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: [PATCH 2.6.23-rc1][NETFILTER] nf_conntrack_reasm: adding icmpv6_send code(TIME EXCEEDED).

2007-08-01 Thread David Miller

Please make sure to CC: netfilter patches to
[EMAIL PROTECTED] and [EMAIL PROTECTED] as is listed
in the linux/MAINTAINERS file.

Thank you.

-
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: [PATCH 66] net/ipv4/raw.c: kmalloc + memset conversion to kzalloc

2007-08-01 Thread David Miller
From: Mariusz Kozlowski [EMAIL PROTECTED]
Date: Tue, 31 Jul 2007 23:54:00 +0200

 Signed-off-by: Mariusz Kozlowski [EMAIL PROTECTED]

Applied.
-
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: [PATCH 67] net/ipv4/route.c: mostly kmalloc + memset conversion to k[cz]alloc

2007-08-01 Thread David Miller
From: Mariusz Kozlowski [EMAIL PROTECTED]
Date: Tue, 31 Jul 2007 23:55:02 +0200

 Signed-off-by: Mariusz Kozlowski [EMAIL PROTECTED]

Applied.
-
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: [PATCH 2.6.23-rc1][NETFILTER] nf_conntrack_reasm: adding icmpv6_send code(TIME EXCEEDED).

2007-08-01 Thread Yasuyuki KOZAKAI

Hi,

From: Masayuki Nakagawa [EMAIL PROTECTED]
Date: Wed, 01 Aug 2007 19:53:20 -0700

 I ran the TAHI conformance test on a kernel, which CONFIG_NF_CONNTRACK_IPV6
 is enabled. And then it showed a result including a couple of failure.
 The all of failed items are related to TIME EXCEEDED.
 
 The test procedure is here.
   Tester  Target
 |   |
 |--|
 |   Echo Request|
 |  (1st fragment)   |
 |   |
 |  wait for 65 sec. |
 |   |
 |--|
 |ICMPv6 Error   |
 
 (1) Tester sends a first fragment of ICMPv6 echo request to Target.
 (2) Wait for over 60 sec.
 (3) If target replies a ICMPv6 error message(Time Exceeded) to Tester,
 then this test is success, otherwise it's failure.
 
 The reason of the failure is very simple, it's because icmpv6_send code are
 missing in nf_ct_frag6_expire function(nf_conntrack_reasm.c).
 The change is to add the missing code.
 
 In RFC2460, the specification regarding Time Exceeded is described,
 but it's defined as should. So, there is no specification violation here.
 Therefore I'm not sure whether this change is appropriate or not.
 
 I will appreciate any comments. Thanks.

Main usage of nf_conntrack_ipv6 is for firewall today. I think that silently
sending error is not preferable. Moreover, RFC2460 says

  4.5  Fragment Header

   The Fragment header is used by an IPv6 source to send a packet larger
   than would fit in the path MTU to its destination.  (Note: unlike
   IPv4, fragmentation in IPv6 is performed only by source nodes, not by
   routers along a packet's delivery path -- see section 5.)  

This means that IPv6 router doesn't send Too Big error for forwarded
packets.

At least it's better to be configurable if people want to do that.
Second idea is to pass such fragments to next network processing instead of
dropping them. But I'm not sure that it is possible.

-- Yasuyuki Kozakai
-
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: [RFC][PATCH] Removal of duplicated include net/wanrouter/wanmain.c

2007-08-01 Thread David Miller
From: Michal Piotrowski [EMAIL PROTECTED]
Date: Wed, 01 Aug 2007 19:58:53 +0200

 Hi,
 
 There is no need to include linux/init.h twice
...
 Signed-off-by: Michal Piotrowski [EMAIL PROTECTED]

Patch applied, thanks.
-
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