Re: [PATCH] fix limited slow start bug
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
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
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
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
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
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
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
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
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
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); } }