Commit 01480ba3 authored by Alexandre Bailon's avatar Alexandre Bailon Committed by Greg Kroah-Hartman

greybus: loopback: Fix broken synchonous test

loopback driver use the send_count variable to know the test progress.
The test may be stopped or change but this variable is never cleaned.
Such situation may break the next run.
Signed-off-by: default avatarAlexandre Bailon <abailon@baylibre.com>
Reviewed-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 58a527af
...@@ -107,6 +107,8 @@ struct gb_loopback { ...@@ -107,6 +107,8 @@ struct gb_loopback {
u64 elapsed_nsecs; u64 elapsed_nsecs;
u32 apbridge_latency_ts; u32 apbridge_latency_ts;
u32 gpbridge_latency_ts; u32 gpbridge_latency_ts;
u32 send_count;
}; };
static struct class loopback_class = { static struct class loopback_class = {
...@@ -247,6 +249,7 @@ static void gb_loopback_check_attr(struct gb_loopback *gb) ...@@ -247,6 +249,7 @@ static void gb_loopback_check_attr(struct gb_loopback *gb)
gb->requests_timedout = 0; gb->requests_timedout = 0;
gb->requests_completed = 0; gb->requests_completed = 0;
gb->iteration_count = 0; gb->iteration_count = 0;
gb->send_count = 0;
gb->error = 0; gb->error = 0;
if (kfifo_depth < gb->iteration_max) { if (kfifo_depth < gb->iteration_max) {
...@@ -971,7 +974,7 @@ static int gb_loopback_fn(void *data) ...@@ -971,7 +974,7 @@ static int gb_loopback_fn(void *data)
int us_wait = 0; int us_wait = 0;
int type; int type;
u32 size; u32 size;
u32 send_count = 0;
struct gb_loopback *gb = data; struct gb_loopback *gb = data;
while (1) { while (1) {
...@@ -989,10 +992,10 @@ static int gb_loopback_fn(void *data) ...@@ -989,10 +992,10 @@ static int gb_loopback_fn(void *data)
mutex_lock(&gb->mutex); mutex_lock(&gb->mutex);
/* Optionally terminate */ /* Optionally terminate */
if (send_count == gb->iteration_max) { if (gb->send_count == gb->iteration_max) {
if (gb->iteration_count == gb->iteration_max) { if (gb->iteration_count == gb->iteration_max) {
gb->type = 0; gb->type = 0;
send_count = 0; gb->send_count = 0;
sysfs_notify(&gb->dev->kobj, NULL, sysfs_notify(&gb->dev->kobj, NULL,
"iteration_count"); "iteration_count");
} }
...@@ -1032,7 +1035,7 @@ static int gb_loopback_fn(void *data) ...@@ -1032,7 +1035,7 @@ static int gb_loopback_fn(void *data)
gb->iteration_count++; gb->iteration_count++;
gb_loopback_calculate_stats(gb, !!error); gb_loopback_calculate_stats(gb, !!error);
} }
send_count++; gb->send_count++;
if (us_wait) if (us_wait)
udelay(us_wait); udelay(us_wait);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment