* [PATCH 2.6.9-rc4-bk3-netdev3 1/3] r8169: always clean Tx desc
@ 2004-10-18 23:08 Francois Romieu
2004-10-18 23:09 ` [PATCH 2.6.9-rc4-bk3-netdev3 2/3] r8169: unneeded synchronize_irq() Francois Romieu
2004-10-19 15:29 ` [PATCH 2.6.9-rc4-bk3-netdev3 1/3] r8169: always clean Tx desc Jeff Garzik
0 siblings, 2 replies; 4+ messages in thread
From: Francois Romieu @ 2004-10-18 23:08 UTC (permalink / raw)
To: jgarzik; +Cc: netdev
rtl8169_unmap_tx_skb() can not assume that a Tx ring descriptor belongs
to the host as it can be issued during rtl8169_tx_clear() as a part of
a recovery process (during Tx timeout for instance).
Simple fix: always clean the relevant descriptor entry.
Acked-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jon Mason <jdmason@us.ibm.com>
diff -puN drivers/net/r8169.c~r8169-225 drivers/net/r8169.c
--- linux-2.6.9/drivers/net/r8169.c~r8169-225 2004-10-18 22:13:54.000000000 +0200
+++ linux-2.6.9-fr/drivers/net/r8169.c 2004-10-18 23:31:21.000000000 +0200
@@ -1679,6 +1679,7 @@ static void rtl8169_unmap_tx_skb(struct
unsigned int len = tx_skb->len;
pci_unmap_single(pdev, le64_to_cpu(desc->addr), len, PCI_DMA_TODEVICE);
+ desc->opts1 = 0x00;
desc->opts2 = 0x00;
desc->addr = 0x00;
tx_skb->len = 0;
_
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 2.6.9-rc4-bk3-netdev3 2/3] r8169: unneeded synchronize_irq()
2004-10-18 23:08 [PATCH 2.6.9-rc4-bk3-netdev3 1/3] r8169: always clean Tx desc Francois Romieu
@ 2004-10-18 23:09 ` Francois Romieu
2004-10-18 23:11 ` [PATCH 2.6.9-rc4-bk3-netdev3 3/3] r8169: netconsole support Francois Romieu
2004-10-19 15:29 ` [PATCH 2.6.9-rc4-bk3-netdev3 1/3] r8169: always clean Tx desc Jeff Garzik
1 sibling, 1 reply; 4+ messages in thread
From: Francois Romieu @ 2004-10-18 23:09 UTC (permalink / raw)
To: jgarzik; +Cc: netdev
synchronize_irq() is not needed as it is already issued by free_irq().
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
diff -puN drivers/net/r8169.c~r8169-230 drivers/net/r8169.c
--- linux-2.6.9/drivers/net/r8169.c~r8169-230 2004-10-18 23:37:30.000000000 +0200
+++ linux-2.6.9-fr/drivers/net/r8169.c 2004-10-18 23:37:58.000000000 +0200
@@ -2259,7 +2259,6 @@ rtl8169_close(struct net_device *dev)
spin_unlock_irq(&tp->lock);
- synchronize_irq(dev->irq);
free_irq(dev->irq, dev);
netif_poll_disable(dev);
_
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 2.6.9-rc4-bk3-netdev3 3/3] r8169: netconsole support
2004-10-18 23:09 ` [PATCH 2.6.9-rc4-bk3-netdev3 2/3] r8169: unneeded synchronize_irq() Francois Romieu
@ 2004-10-18 23:11 ` Francois Romieu
0 siblings, 0 replies; 4+ messages in thread
From: Francois Romieu @ 2004-10-18 23:11 UTC (permalink / raw)
To: jgarzik; +Cc: netdev
netconsole support.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
diff -puN drivers/net/r8169.c~r8169-235 drivers/net/r8169.c
--- linux-2.6.9/drivers/net/r8169.c~r8169-235 2004-10-18 23:39:38.000000000 +0200
+++ linux-2.6.9-fr/drivers/net/r8169.c 2004-10-18 23:56:27.000000000 +0200
@@ -1088,6 +1088,23 @@ static inline void rtl8169_request_timer
add_timer(timer);
}
+#ifdef CONFIG_NET_POLL_CONTROLLER
+/*
+ * Polling 'interrupt' - used by things like netconsole to send skbs
+ * without having to re-enable interrupts. It's not called while
+ * the interrupt routine is executing.
+ */
+static void rtl8169_netpoll(struct net_device *dev)
+{
+ struct rtl8169_private *tp = netdev_priv(dev);
+ struct pci_dev *pdev = tp->pci_dev;
+
+ disable_irq(pdev->irq);
+ rtl8169_interrupt(pdev->irq, dev, NULL);
+ enable_irq(pdev->irq);
+}
+#endif
+
static void rtl8169_release_board(struct pci_dev *pdev, struct net_device *dev,
void *ioaddr)
{
@@ -1314,6 +1331,10 @@ rtl8169_init_one(struct pci_dev *pdev, c
dev->vlan_rx_kill_vid = rtl8169_vlan_rx_kill_vid;
#endif
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ dev->poll_controller = rtl8169_netpoll;
+#endif
+
tp->intr_mask = 0xffff;
tp->pci_dev = pdev;
tp->mmio_addr = ioaddr;
_
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2.6.9-rc4-bk3-netdev3 1/3] r8169: always clean Tx desc
2004-10-18 23:08 [PATCH 2.6.9-rc4-bk3-netdev3 1/3] r8169: always clean Tx desc Francois Romieu
2004-10-18 23:09 ` [PATCH 2.6.9-rc4-bk3-netdev3 2/3] r8169: unneeded synchronize_irq() Francois Romieu
@ 2004-10-19 15:29 ` Jeff Garzik
1 sibling, 0 replies; 4+ messages in thread
From: Jeff Garzik @ 2004-10-19 15:29 UTC (permalink / raw)
To: Francois Romieu; +Cc: netdev
applied 1-3
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-10-19 15:29 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-10-18 23:08 [PATCH 2.6.9-rc4-bk3-netdev3 1/3] r8169: always clean Tx desc Francois Romieu
2004-10-18 23:09 ` [PATCH 2.6.9-rc4-bk3-netdev3 2/3] r8169: unneeded synchronize_irq() Francois Romieu
2004-10-18 23:11 ` [PATCH 2.6.9-rc4-bk3-netdev3 3/3] r8169: netconsole support Francois Romieu
2004-10-19 15:29 ` [PATCH 2.6.9-rc4-bk3-netdev3 1/3] r8169: always clean Tx desc Jeff Garzik
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.