aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@vyatta.com>2009-08-27 09:55:10 -0400
committerDavid S. Miller <davem@davemloft.net>2009-08-29 02:31:53 -0400
commit3bda06a3d7987bfeabb218ac2f17ce22c34f13b3 (patch)
tree03c29b206fea9df7655ae153fad3f61916d80457
parent65c5b786a37746302e225223c0d8b760d4c48a8b (diff)
pktgen: stop_device cleanup
All the callers were freeing skb after stopping device. Remove unneeded forward decl. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/core/pktgen.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/net/core/pktgen.c b/net/core/pktgen.c
index ccbc3a48cc27..1b1f1262a275 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -424,7 +424,7 @@ static int pktgen_device_event(struct notifier_block *, unsigned long, void *);
424static void pktgen_run_all_threads(void); 424static void pktgen_run_all_threads(void);
425static void pktgen_reset_all_threads(void); 425static void pktgen_reset_all_threads(void);
426static void pktgen_stop_all_threads_ifs(void); 426static void pktgen_stop_all_threads_ifs(void);
427static int pktgen_stop_device(struct pktgen_dev *pkt_dev); 427
428static void pktgen_stop(struct pktgen_thread *t); 428static void pktgen_stop(struct pktgen_thread *t);
429static void pktgen_clear_counters(struct pktgen_dev *pkt_dev); 429static void pktgen_clear_counters(struct pktgen_dev *pkt_dev);
430 430
@@ -3221,7 +3221,6 @@ static void show_results(struct pktgen_dev *pkt_dev, int nr_frags)
3221} 3221}
3222 3222
3223/* Set stopped-at timer, remove from running list, do counters & statistics */ 3223/* Set stopped-at timer, remove from running list, do counters & statistics */
3224
3225static int pktgen_stop_device(struct pktgen_dev *pkt_dev) 3224static int pktgen_stop_device(struct pktgen_dev *pkt_dev)
3226{ 3225{
3227 int nr_frags = pkt_dev->skb ? skb_shinfo(pkt_dev->skb)->nr_frags : -1; 3226 int nr_frags = pkt_dev->skb ? skb_shinfo(pkt_dev->skb)->nr_frags : -1;
@@ -3232,6 +3231,8 @@ static int pktgen_stop_device(struct pktgen_dev *pkt_dev)
3232 return -EINVAL; 3231 return -EINVAL;
3233 } 3232 }
3234 3233
3234 kfree_skb(pkt_dev->skb);
3235 pkt_dev->skb = NULL;
3235 pkt_dev->stopped_at = getCurUs(); 3236 pkt_dev->stopped_at = getCurUs();
3236 pkt_dev->running = 0; 3237 pkt_dev->running = 0;
3237 3238
@@ -3268,9 +3269,6 @@ static void pktgen_stop(struct pktgen_thread *t)
3268 3269
3269 list_for_each_entry(pkt_dev, &t->if_list, list) { 3270 list_for_each_entry(pkt_dev, &t->if_list, list) {
3270 pktgen_stop_device(pkt_dev); 3271 pktgen_stop_device(pkt_dev);
3271 kfree_skb(pkt_dev->skb);
3272
3273 pkt_dev->skb = NULL;
3274 } 3272 }
3275 3273
3276 if_unlock(t); 3274 if_unlock(t);
@@ -3382,8 +3380,6 @@ static void pktgen_xmit(struct pktgen_dev *pkt_dev)
3382 3380
3383 if (!netif_running(odev)) { 3381 if (!netif_running(odev)) {
3384 pktgen_stop_device(pkt_dev); 3382 pktgen_stop_device(pkt_dev);
3385 kfree_skb(pkt_dev->skb);
3386 pkt_dev->skb = NULL;
3387 goto out; 3383 goto out;
3388 } 3384 }
3389 if (need_resched()) 3385 if (need_resched())
@@ -3486,8 +3482,6 @@ static void pktgen_xmit(struct pktgen_dev *pkt_dev)
3486 3482
3487 /* Done with this */ 3483 /* Done with this */
3488 pktgen_stop_device(pkt_dev); 3484 pktgen_stop_device(pkt_dev);
3489 kfree_skb(pkt_dev->skb);
3490 pkt_dev->skb = NULL;
3491 } 3485 }
3492out:; 3486out:;
3493} 3487}