diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2006-10-23 00:00:33 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-10-23 00:00:33 -0400 |
commit | 4e8a5201506423e0241202de1349422af4260296 (patch) | |
tree | e562a6cdbee37e3805551af92b264fa93d722c4b | |
parent | 6a43487f43fbd4e03c606dcb62b98374a3af88fc (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.c | 4 | ||||
-rw-r--r-- | net/sched/sch_netem.c | 2 |
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 | |
1638 | static void __devinit fixup_video(struct pci_dev *pdev) | 1638 | static 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 | } |
1665 | DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, fixup_video); | 1665 | DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, fixup_video); |
1666 | 1666 | #endif | |
1667 | 1667 | ||
1668 | static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end) | 1668 | static 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 |