aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2006-10-23 00:00:33 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2006-10-23 00:00:33 -0400
commit4e8a5201506423e0241202de1349422af4260296 (patch)
treee562a6cdbee37e3805551af92b264fa93d722c4b
parent6a43487f43fbd4e03c606dcb62b98374a3af88fc (diff)
[PKT_SCHED] netem: Orphan SKB when adding to queue.
The networking emulator can queue SKBs for a very long time, so if you're using netem on the sender side for large bandwidth/delay product testing, the SKB socket send queue sizes become artificially larger. Correct this by calling skb_orphan() in netem_enqueue(). Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/pci/quirks.c4
-rw-r--r--net/sched/sch_netem.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index e8a7f1b1b2bc..ecf8e4d6b9da 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -1634,7 +1634,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C810, fixup_rev1
1634 * is marked here since the boot video device will be the only enabled 1634 * is marked here since the boot video device will be the only enabled
1635 * video device at this point. 1635 * video device at this point.
1636 */ 1636 */
1637 1637#if 0
1638static void __devinit fixup_video(struct pci_dev *pdev) 1638static void __devinit fixup_video(struct pci_dev *pdev)
1639{ 1639{
1640 struct pci_dev *bridge; 1640 struct pci_dev *bridge;
@@ -1663,7 +1663,7 @@ static void __devinit fixup_video(struct pci_dev *pdev)
1663 } 1663 }
1664} 1664}
1665DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, fixup_video); 1665DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, fixup_video);
1666 1666#endif
1667 1667
1668static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end) 1668static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end)
1669{ 1669{
diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c
index 45939bafbdf8..ef8874babf6a 100644
--- a/net/sched/sch_netem.c
+++ b/net/sched/sch_netem.c
@@ -170,6 +170,8 @@ static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch)
170 return NET_XMIT_BYPASS; 170 return NET_XMIT_BYPASS;
171 } 171 }
172 172
173 skb_orphan(skb);
174
173 /* 175 /*
174 * If we need to duplicate packet, then re-insert at top of the 176 * If we need to duplicate packet, then re-insert at top of the
175 * qdisc tree, since parent queuer expects that only one 177 * qdisc tree, since parent queuer expects that only one