* sky2: workaround for lost IRQ and 2.6.22-stable @ 2007-08-07 18:46 Krzysztof Oledzki 2007-08-07 18:56 ` [stable] " Greg KH 2007-08-07 19:14 ` sky2: workaround for lost IRQ and 2.6.22-stable Stephen Hemminger 0 siblings, 2 replies; 7+ messages in thread From: Krzysztof Oledzki @ 2007-08-07 18:46 UTC (permalink / raw) To: Stephen Hemminger; +Cc: stable, netdev [-- Attachment #1: Type: TEXT/PLAIN, Size: 278 bytes --] Hello, http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.21.y.git;a=commitdiff;h=fe1fe7c982f86624c692644e8ed05e132f4753cc Is this fix going to be included in the next 2.6.22-stable release or is it not needed any more? Best regards, Krzysztof Olędzki ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [stable] sky2: workaround for lost IRQ and 2.6.22-stable 2007-08-07 18:46 sky2: workaround for lost IRQ and 2.6.22-stable Krzysztof Oledzki @ 2007-08-07 18:56 ` Greg KH 2007-08-07 21:14 ` [RFT] sky2: backport patch Stephen Hemminger 2007-08-07 19:14 ` sky2: workaround for lost IRQ and 2.6.22-stable Stephen Hemminger 1 sibling, 1 reply; 7+ messages in thread From: Greg KH @ 2007-08-07 18:56 UTC (permalink / raw) To: Krzysztof Oledzki; +Cc: Stephen Hemminger, netdev, stable On Tue, Aug 07, 2007 at 08:46:31PM +0200, Krzysztof Oledzki wrote: > Hello, > > http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.21.y.git;a=commitdiff;h=fe1fe7c982f86624c692644e8ed05e132f4753cc > > Is this fix going to be included in the next 2.6.22-stable release or is it > not needed any more? It's not queued up for the next 2.6.22-stable release as no one has sent it to the stable maintainers :) thanks, greg k-h ^ permalink raw reply [flat|nested] 7+ messages in thread
* [RFT] sky2: backport patch 2007-08-07 18:56 ` [stable] " Greg KH @ 2007-08-07 21:14 ` Stephen Hemminger 2007-08-07 21:33 ` Jeff Garzik 2007-08-11 0:46 ` [stable] " Greg KH 0 siblings, 2 replies; 7+ messages in thread From: Stephen Hemminger @ 2007-08-07 21:14 UTC (permalink / raw) To: Greg KH; +Cc: Krzysztof Oledzki, netdev, stable Any volunteers to test this, it has a backport for the three main stability patches: 1. carrier management 2. lost irq timer 3. rechecking for packets in poll 4. overlength packet hang. I am away from any sky2 hardware for another week, but others maybe able to validate this. --- a/drivers/net/sky2.c 2007-07-20 04:30:14.000000000 -0400 +++ b/drivers/net/sky2.c 2007-08-07 17:08:21.000000000 -0400 @@ -96,7 +96,7 @@ static int disable_msi = 0; module_param(disable_msi, int, 0); MODULE_PARM_DESC(disable_msi, "Disable Message Signaled Interrupt (MSI)"); -static int idle_timeout = 0; +static int idle_timeout = 100; module_param(idle_timeout, int, 0); MODULE_PARM_DESC(idle_timeout, "Watchdog timer for lost interrupts (ms)"); @@ -1234,6 +1234,8 @@ static int sky2_up(struct net_device *de if (netif_msg_ifup(sky2)) printk(KERN_INFO PFX "%s: enabling interface\n", dev->name); + netif_carrier_off(dev); + /* must be power of 2 */ sky2->tx_le = pci_alloc_consistent(hw->pdev, TX_RING_SIZE * @@ -1573,7 +1575,6 @@ static int sky2_down(struct net_device * /* Stop more packets from being queued */ netif_stop_queue(dev); - netif_carrier_off(dev); /* Disable port IRQ */ imask = sky2_read32(hw, B0_IMSK); @@ -1625,6 +1626,8 @@ static int sky2_down(struct net_device * sky2_phy_power(hw, port, 0); + netif_carrier_off(dev); + /* turn off LED's */ sky2_write16(hw, B0_Y2LED, LED_STAT_OFF); @@ -1689,7 +1692,6 @@ static void sky2_link_up(struct sky2_por gm_phy_write(hw, port, PHY_MARV_INT_MASK, PHY_M_DEF_MSK); netif_carrier_on(sky2->netdev); - netif_wake_queue(sky2->netdev); /* Turn on link LED */ sky2_write8(hw, SK_REG(port, LNK_LED_REG), @@ -1741,7 +1743,6 @@ static void sky2_link_down(struct sky2_p gma_write16(hw, port, GM_GP_CTRL, reg); netif_carrier_off(sky2->netdev); - netif_stop_queue(sky2->netdev); /* Turn on link LED */ sky2_write8(hw, SK_REG(port, LNK_LED_REG), LINKLED_OFF); @@ -2064,6 +2065,9 @@ static struct sk_buff *sky2_receive(stru if (!(status & GMR_FS_RX_OK)) goto resubmit; + if (status >> 16 != length) + goto len_mismatch; + if (length < copybreak) skb = receive_copy(sky2, re, length); else @@ -2073,6 +2077,11 @@ resubmit: return skb; +len_mismatch: + /* Truncation of overlength packets + causes PHY length to not match MAC length */ + ++sky2->net_stats.rx_length_errors; + error: ++sky2->net_stats.rx_errors; if (status & GMR_FS_RX_FF_OV) { @@ -2441,17 +2450,24 @@ static int sky2_poll(struct net_device * sky2_phy_intr(hw, 1); work_done = sky2_status_intr(hw, work_limit); - if (work_done < work_limit) { - netif_rx_complete(dev0); + *budget -= work_done; + dev0->quota -= work_done; - /* end of interrupt, re-enables also acts as I/O synchronization */ - sky2_read32(hw, B0_Y2_SP_LISR); - return 0; - } else { - *budget -= work_done; - dev0->quota -= work_done; + /* More work? */ + if (hw->st_idx != sky2_read16(hw, STAT_PUT_IDX)) return 1; + + /* Bug/Errata workaround? + * Need to kick the TX irq moderation timer. + */ + if (sky2_read8(hw, STAT_TX_TIMER_CTRL) == TIM_START) { + sky2_write8(hw, STAT_TX_TIMER_CTRL, TIM_STOP); + sky2_write8(hw, STAT_TX_TIMER_CTRL, TIM_START); } + netif_rx_complete(dev0); + + sky2_read32(hw, B0_Y2_SP_LISR); + return 0; } static irqreturn_t sky2_intr(int irq, void *dev_id) @@ -3486,10 +3502,6 @@ static __devinit struct net_device *sky2 memcpy_fromio(dev->dev_addr, hw->regs + B2_MAC_1 + port * 8, ETH_ALEN); memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len); - /* device is off until link detection */ - netif_carrier_off(dev); - netif_stop_queue(dev); - return dev; } ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [RFT] sky2: backport patch 2007-08-07 21:14 ` [RFT] sky2: backport patch Stephen Hemminger @ 2007-08-07 21:33 ` Jeff Garzik 2007-08-07 21:47 ` Stephen Hemminger 2007-08-11 0:46 ` [stable] " Greg KH 1 sibling, 1 reply; 7+ messages in thread From: Jeff Garzik @ 2007-08-07 21:33 UTC (permalink / raw) To: Stephen Hemminger; +Cc: Greg KH, Krzysztof Oledzki, netdev, stable Stephen Hemminger wrote: > Any volunteers to test this, it has a backport for the three main stability patches: > 1. carrier management > 2. lost irq timer > 3. rechecking for packets in poll > 4. overlength packet hang. > > I am away from any sky2 hardware for another week, but others maybe > able to validate this. Backport to what? from what? You supplied no kernel version info. Jeff ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [RFT] sky2: backport patch 2007-08-07 21:33 ` Jeff Garzik @ 2007-08-07 21:47 ` Stephen Hemminger 0 siblings, 0 replies; 7+ messages in thread From: Stephen Hemminger @ 2007-08-07 21:47 UTC (permalink / raw) To: Jeff Garzik; +Cc: Greg KH, Krzysztof Oledzki, netdev, stable On Tue, 07 Aug 2007 17:33:51 -0400 Jeff Garzik <jeff@garzik.org> wrote: > Stephen Hemminger wrote: > > Any volunteers to test this, it has a backport for the three main stability patches: > > 1. carrier management > > 2. lost irq timer > > 3. rechecking for packets in poll > > 4. overlength packet hang. > > > > I am away from any sky2 hardware for another week, but others maybe > > able to validate this. > > Backport to what? from what? >From 2.6.23-rc2 to 2.6.22.y base > You supplied no kernel version info. > > Jeff > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [stable] [RFT] sky2: backport patch 2007-08-07 21:14 ` [RFT] sky2: backport patch Stephen Hemminger 2007-08-07 21:33 ` Jeff Garzik @ 2007-08-11 0:46 ` Greg KH 1 sibling, 0 replies; 7+ messages in thread From: Greg KH @ 2007-08-11 0:46 UTC (permalink / raw) To: Stephen Hemminger; +Cc: netdev, stable, Krzysztof Oledzki On Tue, Aug 07, 2007 at 05:14:15PM -0400, Stephen Hemminger wrote: > Any volunteers to test this, it has a backport for the three main stability patches: > 1. carrier management > 2. lost irq timer > 3. rechecking for packets in poll > 4. overlength packet hang. > > I am away from any sky2 hardware for another week, but others maybe > able to validate this. Care to break these down into 3 patches and send them to stable@ if you get the chance? thanks, greg k-h ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: sky2: workaround for lost IRQ and 2.6.22-stable 2007-08-07 18:46 sky2: workaround for lost IRQ and 2.6.22-stable Krzysztof Oledzki 2007-08-07 18:56 ` [stable] " Greg KH @ 2007-08-07 19:14 ` Stephen Hemminger 1 sibling, 0 replies; 7+ messages in thread From: Stephen Hemminger @ 2007-08-07 19:14 UTC (permalink / raw) To: Krzysztof Oledzki; +Cc: stable, netdev On Tue, 7 Aug 2007 20:46:31 +0200 (CEST) Krzysztof Oledzki <olel@ans.pl> wrote: > Hello, > > http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.21.y.git;a=commitdiff;h=fe1fe7c982f86624c692644e8ed05e132f4753cc > > Is this fix going to be included in the next 2.6.22-stable release or is > it not needed any more? > > Best regards, > > Krzysztof Olędzki It stops the major hang from IRQ loss. 2.6.23 has more minor stuff that probably aren't needed for stablilty ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2007-08-11 0:46 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-08-07 18:46 sky2: workaround for lost IRQ and 2.6.22-stable Krzysztof Oledzki 2007-08-07 18:56 ` [stable] " Greg KH 2007-08-07 21:14 ` [RFT] sky2: backport patch Stephen Hemminger 2007-08-07 21:33 ` Jeff Garzik 2007-08-07 21:47 ` Stephen Hemminger 2007-08-11 0:46 ` [stable] " Greg KH 2007-08-07 19:14 ` sky2: workaround for lost IRQ and 2.6.22-stable Stephen Hemminger
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).