@@ -467,7 +467,7 @@ static struct pktgen_dev *pktgen_find_dev(struct pktgen_thread *t,
467
467
static int pktgen_device_event (struct notifier_block * , unsigned long , void * );
468
468
static void pktgen_run_all_threads (struct pktgen_net * pn );
469
469
static void pktgen_reset_all_threads (struct pktgen_net * pn );
470
- static void pktgen_stop_all_threads_ifs (struct pktgen_net * pn );
470
+ static void pktgen_stop_all_threads (struct pktgen_net * pn );
471
471
472
472
static void pktgen_stop (struct pktgen_thread * t );
473
473
static void pktgen_clear_counters (struct pktgen_dev * pkt_dev );
@@ -516,14 +516,11 @@ static ssize_t pgctrl_write(struct file *file, const char __user *buf,
516
516
data [count - 1 ] = 0 ; /* Strip trailing '\n' and terminate string */
517
517
518
518
if (!strcmp (data , "stop" ))
519
- pktgen_stop_all_threads_ifs (pn );
520
-
519
+ pktgen_stop_all_threads (pn );
521
520
else if (!strcmp (data , "start" ))
522
521
pktgen_run_all_threads (pn );
523
-
524
522
else if (!strcmp (data , "reset" ))
525
523
pktgen_reset_all_threads (pn );
526
-
527
524
else
528
525
return - EINVAL ;
529
526
@@ -3027,20 +3024,25 @@ static void pktgen_run(struct pktgen_thread *t)
3027
3024
t -> control &= ~(T_STOP );
3028
3025
}
3029
3026
3030
- static void pktgen_stop_all_threads_ifs (struct pktgen_net * pn )
3027
+ static void pktgen_handle_all_threads (struct pktgen_net * pn , u32 flags )
3031
3028
{
3032
3029
struct pktgen_thread * t ;
3033
3030
3034
- func_enter ();
3035
-
3036
3031
mutex_lock (& pktgen_thread_lock );
3037
3032
3038
3033
list_for_each_entry (t , & pn -> pktgen_threads , th_list )
3039
- t -> control |= T_STOP ;
3034
+ t -> control |= ( flags ) ;
3040
3035
3041
3036
mutex_unlock (& pktgen_thread_lock );
3042
3037
}
3043
3038
3039
+ static void pktgen_stop_all_threads (struct pktgen_net * pn )
3040
+ {
3041
+ func_enter ();
3042
+
3043
+ pktgen_handle_all_threads (pn , T_STOP );
3044
+ }
3045
+
3044
3046
static int thread_is_running (const struct pktgen_thread * t )
3045
3047
{
3046
3048
const struct pktgen_dev * pkt_dev ;
@@ -3103,16 +3105,9 @@ static int pktgen_wait_all_threads_run(struct pktgen_net *pn)
3103
3105
3104
3106
static void pktgen_run_all_threads (struct pktgen_net * pn )
3105
3107
{
3106
- struct pktgen_thread * t ;
3107
-
3108
3108
func_enter ();
3109
3109
3110
- mutex_lock (& pktgen_thread_lock );
3111
-
3112
- list_for_each_entry (t , & pn -> pktgen_threads , th_list )
3113
- t -> control |= (T_RUN );
3114
-
3115
- mutex_unlock (& pktgen_thread_lock );
3110
+ pktgen_handle_all_threads (pn , T_RUN );
3116
3111
3117
3112
/* Propagate thread->control */
3118
3113
schedule_timeout_interruptible (msecs_to_jiffies (125 ));
@@ -3122,16 +3117,9 @@ static void pktgen_run_all_threads(struct pktgen_net *pn)
3122
3117
3123
3118
static void pktgen_reset_all_threads (struct pktgen_net * pn )
3124
3119
{
3125
- struct pktgen_thread * t ;
3126
-
3127
3120
func_enter ();
3128
3121
3129
- mutex_lock (& pktgen_thread_lock );
3130
-
3131
- list_for_each_entry (t , & pn -> pktgen_threads , th_list )
3132
- t -> control |= (T_REMDEVALL );
3133
-
3134
- mutex_unlock (& pktgen_thread_lock );
3122
+ pktgen_handle_all_threads (pn , T_REMDEVALL );
3135
3123
3136
3124
/* Propagate thread->control */
3137
3125
schedule_timeout_interruptible (msecs_to_jiffies (125 ));
0 commit comments