sky2: patches for 2.6.16 -stable
Subsystems (2)
cover sky2: patches for 2.6.16 -stable
I compared the current sky2 driver against the version in 2.6.16.40. These were the only two patches that should be added. They both relate to dual port boards, and not to many people have them.
--
Stephen Hemminger <[email protected]>
PATCH 1/2 sky2: fix for NAPI with dual port boards
This driver uses port 0 to handle receives on both ports. So the netif_poll_disable call in dev_close would end up stopping the second port on dual port cards.
--- drivers/net/sky2.c | 7 +++++++ 1 file changed, 7 insertions(+)
drivers/net/sky2.c +7 -0
@@ -1402,6 +1402,13 @@/* Stop more packets from being queued */ netif_stop_queue (dev); +/* +* Both ports share the NAPI poll on port 0, so if necessary undo the +* the disable that is done in dev_close. +*/ +if (sky2->port ==0 && hw->ports >1 ) +netif_poll_enable (dev); +/* Disable port IRQ */ spin_lock_irq (&hw->hw_lock); hw->intr_mask &= ~((sky2->port ==0 ) ?Y2_IS_IRQ_PHY1 :Y2_IS_IRQ_PHY2 );
--
Stephen Hemminger <[email protected]>
PATCH 2/2 sky2: dual-port pci-x checksum fix
In reply to Stephen HemmingerAdd a workaround for dual port PCI-X card that returns status out of order sometimes because of split transactions.
drivers/net/sky2.c +19 -1
@@ -1031,7 +1031,25 @@struct sky2_hw *hw = sky2->hw;unsigned port = sky2->port;u32 ramsize, rxspace; -int err = -ENOMEM ; +int cap, err = -ENOMEM ; +struct net_device *otherdev = hw->dev[sky2->port^1 ]; + +/* +* On dual port PCI-X card, there is an problem where status +* can be received out of order due to split transactions +*/ +if (otherdev &&netif_running (otherdev) && + (cap =pci_find_capability (hw->pdev,PCI_CAP_ID_PCIX ))) { +struct sky2_port *osky2 =netdev_priv (otherdev); +u16 cmd; + + cmd =sky2_pci_read16 (hw, cap +PCI_X_CMD ); + cmd &= ~PCI_X_CMD_MAX_SPLIT ; +sky2_pci_write16 (hw, cap +PCI_X_CMD , cmd); + + sky2->rx_csum =0 ; + osky2->rx_csum =0 ; + }if (netif_msg_ifup (sky2)) printk(KERN_INFO PFX "%s: enabling interface\n", dev->name);
--
Stephen Hemminger <[email protected]>
Quoted 4 lines · Stephen Hemminger
I compared the current sky2 driver against the version in 2.6.16.40. These were the only two patches that should be added. They both relate to dual port boards, and not to many people have them.
Thanks, I've applied both.
Quoted 1 line
Stephen Hemminger
cu
Adrian
Signature · 4 lines
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed