Re: [PATCH] fix limited slow start bug

2007-02-25 Thread Roger While


Dave M wrote :

diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index 415193e..18a468d 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -302,7 +302,7 @@ struct tcp_sock {
u32 snd_ssthresh;   /* Slow start size threshold*/
u32 snd_cwnd;   /* Sending congestion window*/
u16 snd_cwnd_cnt;   /* Linear increase counter  */
-   u16 snd_cwnd_clamp; /* Do not allow snd_cwnd to grow above this */
+   u32 snd_cwnd_clamp; /* Do not allow snd_cwnd to grow above this */
u32 snd_cwnd_used;
u32 snd_cwnd_stamp;


Was anything done about size/member alignment of struct tcp_sock per
mail from last year  -
http://marc.theaimsgroup.com/?l=linux-netdevm=114318857102290w=2

(I have no idea what current size is)


-
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


[git patches] net driver updates

2007-02-21 Thread Roger While




Dan Williams (1):
  prism54: correct assignment of DOT1XENABLE in WE-19 codepaths


Where did this spring from ?
I see no posting of this patch let alone
an ACK.
The patch is also doing rather more than the description -
It is inserting extra breaks into a switch statement with
no comment as to why.

Roger While


-
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. Please pull 'upstream' branch of wireless-2.6

2007-01-20 Thread Roger While



Kai Engert (1):
  prism54: add ethtool -i interface


I would have expected at least the firmware version to be reported
as well as the bus info.
(info-fw_version, info-bus_info)

Roger While


-
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. Please pull 'upstream' branch of wireless-2.6

2006-12-29 Thread Roger While



 Roy Marples (1):
   prism54: set carrier flags correctly

Why is this not #upstream-fixes material?  What's the impact?


Actually, I think the patch is incorrect.
At best it is insufficient and at worst it
stops the driver working correctly.

I can't see why we do carrier_off after start_queue in the open.
Other drivers (eg. ipw2100) do carrier_on.

We should also look at other places where eg. stop_queue
is called and do a carrier_off eg. the close routine.
(Amongst others)

Also according to Documentation/networking/operstates.txt
(netif_carrier_on/off) -
It is guaranteed that only the driver has write access,
 however, if different layers of the driver manipulate the same flag,
 the driver has to provide the synchronisation needed.

The trap routine in isl_ioctl.c however is lockless.
Assuming that the doc is correct, I would have thought
that putting carrier_on/off here is buggy or ?

Roger While


-
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. Please pull 'upstream' branch of wireless-2.6

2006-11-09 Thread Roger While

John wrote :

Yeah, looks like I was a bit overzealous on the warning squelch...

I'll cook-up a new patch that doesn't error-out.


I hope you do not bloat the kernel with meaningless warning messages.
Something simple like the following will do.

/* enable MWI */
/* Shut up the must_check tests - We don't care if this does not 
succeed */

if (pci_set_mwi(pdev))
rvalue = 0;


Roger While


-
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. Please pull 'upstream' branch of wireless-2.6

2006-11-08 Thread Roger While

John, you just broke a considerable number of prism54 users.
It is NOT an error if the MWI set fails. This is just a
performance tweak and has NO effect on the driver working.

Roger While


-
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] [TRIVIAL] prism54/islpci_eth.c: dev_kfree_skb in irq context

2006-01-17 Thread Roger While

I am going to NACK this.
Two reasons :
1) Unless we are patching different trees, it appears
the dev_kfree_skb at label drop_free got missed.
2) I still do not understand this. Quote from the definition
of dev_kfree_skb_irq -

/* Use this variant when it is known for sure that it
 * is executing from interrupt context.
 */

This patch is within the (hard)transmit path called from the
upper layers. I do not see any other driver doing this in the
hard transmit path.
Can we really get this in IRQ context ?
If, for any reason, that is so then we should use
dev_kfree_skb_any.
(Or I am being particularly thick)

Roger While


On 17/01/06, John W. Linville [EMAIL PROTECTED] wrote:
 On Wed, Jan 04, 2006 at 09:33:27AM +1030, Graham Gower wrote:
  On 03/01/06, Patrick McHardy [EMAIL PROTECTED] wrote:
   Graham Gower wrote:
My logs were starting to fill with messages exatcly like that 
mentioned here:

http://patchwork.netfilter.org/netfilter-devel/patch.pl?id=2840
   
In any event, the patch at the end of that link was never applied 
(it doesn't
fix the other call to dev_kfree_skb). After applying my patch, 
I've not had any

more messages in the logs.
  
   The patch has been applied to 2.6.15-rc. Only the first hunk of your
   patch is still required, but it doesn't apply anymore. Can you send
   a new patch against 2.6.15 please?
  
 
  Ok, here's a new one. Hope I got it right this time.
 
  Signed-off-by: Graham Gower [EMAIL PROTECTED]
 
  --- linux-2.6.15/drivers/net/wireless/prism54/islpci_eth.c.orig
  +++ linux-2.6.15/drivers/net/wireless/prism54/islpci_eth.c
  @@ -177,7 +177,7 @@
   #endif
 
newskb-dev = skb-dev;
  - dev_kfree_skb(skb);
  + dev_kfree_skb_irq(skb);
skb = newskb;
}
}
  -

 I'm planning to apply this patch with the following changelog commentary:

[PATCH] prism54/islpci_eth.c: dev_kfree_skb used with interrupts 
disabled


 dev_kfree_skb should not be used with interrupts disabled.  Change to
 use dev_kfree_skb_irq instead.

 Is that alright w/ everyone?

Fine by me.




-
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.15-rc1] prism54 : Remove extraneous udelay/register read

2005-11-14 Thread Roger While
In isl_38xx.c 
In routine isl38xx_trigger-device

Move unnecessary udelay/register read.
This is only required when hand-compiling the driver and
setting  VERBOSE  SHOW_ERROR_MESSAGES   


Signed-off-by: Roger While [EMAIL PROTECTED]
diff -Naur linux-2.6.15rc1orig/drivers/net/wireless/prism54/isl_38xx.c linux-2.6.15rc1/drivers/net/wireless/prism54/isl_38xx.c
--- linux-2.6.15rc1orig/drivers/net/wireless/prism54/isl_38xx.c	2005-11-14 11:34:59.0 +0100
+++ linux-2.6.15rc1/drivers/net/wireless/prism54/isl_38xx.c	2005-11-14 11:38:02.0 +0100
@@ -164,12 +164,12 @@
 		/* assert the Wakeup interrupt in the Device Interrupt Register */
 		isl38xx_w32_flush(device_base, ISL38XX_DEV_INT_WAKEUP,
   ISL38XX_DEV_INT_REG);
+
+#if VERBOSE  SHOW_ERROR_MESSAGES
 		udelay(ISL38XX_WRITEIO_DELAY);
 
 		/* perform another read on the Device Status Register */
 		reg = readl(device_base + ISL38XX_CTRL_STAT_REG);
-
-#if VERBOSE  SHOW_ERROR_MESSAGES
 		do_gettimeofday(current_time);
 		DEBUG(SHOW_TRACING, %08li.%08li Device register read %08x\n,
 		  current_time.tv_sec, (long)current_time.tv_usec, reg);


[PATCH 2/2 2.6.14-git10] prism54 : Transmit stats updated in wrong place

2005-11-07 Thread Roger While
Move update of the transmit statistics to the correct place.

Signed-off-by: Roger While [EMAIL PROTECTED]
diff -Naur linux-2.6.14orig/drivers/net/wireless/prism54/islpci_eth.c linux-2.6.14/drivers/net/wireless/prism54/islpci_eth.c
--- linux-2.6.14orig/drivers/net/wireless/prism54/islpci_eth.c	2005-11-07 15:43:45.0 +0100
+++ linux-2.6.14/drivers/net/wireless/prism54/islpci_eth.c	2005-11-07 16:05:28.0 +0100
@@ -227,17 +227,17 @@
 		priv-data_low_tx_full = 1;
 	}
 
+	/* set the transmission time */
+	ndev-trans_start = jiffies;
+	priv-statistics.tx_packets++;
+	priv-statistics.tx_bytes += skb-len;
+
 	/* trigger the device */
 	islpci_trigger(priv);
 
 	/* unlock the driver code */
 	spin_unlock_irqrestore(priv-slock, flags);
 
-	/* set the transmission time */
-	ndev-trans_start = jiffies;
-	priv-statistics.tx_packets++;
-	priv-statistics.tx_bytes += skb-len;
-
 	return 0;
 
   drop_free:


[PATCH 1/2 2.6.14-git10] prism54 : Unused variable / extraneous udelay

2005-11-07 Thread Roger While
In isl_38xx.c :
The variable counter is defined and incremented but never
used except if the driver is hand-compiled setting
VERBOSE  SHOW_ERROR_MESSAGES.
Move the definition and the increment to within the
#if VERBOSE ..   block.

Remove extraneous udelay's.
These are not required when triggering the device.

Signed-off-by: Roger While [EMAIL PROTECTED]
diff -Naur linux-2.6.14orig/drivers/net/wireless/prism54/isl_38xx.c linux-2.6.14/drivers/net/wireless/prism54/isl_38xx.c
--- linux-2.6.14orig/drivers/net/wireless/prism54/isl_38xx.c	2005-10-28 02:02:08.0 +0200
+++ linux-2.6.14/drivers/net/wireless/prism54/isl_38xx.c	2005-11-07 16:04:03.0 +0100
@@ -112,9 +112,10 @@
 void
 isl38xx_trigger_device(int asleep, void __iomem *device_base)
 {
-	u32 reg, counter = 0;
+	u32 reg;
 
 #if VERBOSE  SHOW_ERROR_MESSAGES
+	u32 counter = 0;
 	struct timeval current_time;
 	DEBUG(SHOW_FUNCTION_CALLS, isl38xx trigger device\n);
 #endif
@@ -131,7 +132,6 @@
 		  current_time.tv_sec, (long)current_time.tv_usec,
 		  readl(device_base + ISL38XX_CTRL_STAT_REG));
 #endif
-		udelay(ISL38XX_WRITEIO_DELAY);
 
 		reg = readl(device_base + ISL38XX_INT_IDENT_REG);
 		if (reg == 0xabadface) {
@@ -145,7 +145,9 @@
 			while (reg = readl(device_base + ISL38XX_CTRL_STAT_REG),
 			   (reg  ISL38XX_CTRL_STAT_SLEEPMODE) == 0) {
 udelay(ISL38XX_WRITEIO_DELAY);
+#if VERBOSE  SHOW_ERROR_MESSAGES
 counter++;
+#endif
 			}
 
 #if VERBOSE  SHOW_ERROR_MESSAGES
@@ -153,10 +155,6 @@
 			  %08li.%08li Device register read %08x\n,
 			  current_time.tv_sec, (long)current_time.tv_usec,
 			  readl(device_base + ISL38XX_CTRL_STAT_REG));
-#endif
-			udelay(ISL38XX_WRITEIO_DELAY);
-
-#if VERBOSE  SHOW_ERROR_MESSAGES
 			do_gettimeofday(current_time);
 			DEBUG(SHOW_TRACING,
 			  %08li.%08li Device asleep counter %i\n,
@@ -171,7 +169,6 @@
 
 		/* perform another read on the Device Status Register */
 		reg = readl(device_base + ISL38XX_CTRL_STAT_REG);
-		udelay(ISL38XX_WRITEIO_DELAY);
 
 #if VERBOSE  SHOW_ERROR_MESSAGES
 		do_gettimeofday(current_time);
@@ -187,7 +184,6 @@
 
 		isl38xx_w32_flush(device_base, ISL38XX_DEV_INT_UPDATE,
   ISL38XX_DEV_INT_REG);
-		udelay(ISL38XX_WRITEIO_DELAY);
 	}
 }