diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2011-01-25 13:24:06 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2011-01-25 13:38:27 +0100 |
commit | 1ec2a749f0dd81f7d4915cb166e29ee277f83067 (patch) | |
tree | 9fc4b37c263303839c0778e8b0065bb6a3576af5 | |
parent | 4c8ddb356cacd7644e2db9de3273ac4fdf8aa455 (diff) |
mtp: Remember the first SLS this link is on
-rw-r--r-- | include/mtp_data.h | 1 | ||||
-rw-r--r-- | src/mtp_layer3.c | 8 |
2 files changed, 8 insertions, 1 deletions
diff --git a/include/mtp_data.h b/include/mtp_data.h index c771c07..20b5e5e 100644 --- a/include/mtp_data.h +++ b/include/mtp_data.h @@ -92,6 +92,7 @@ struct mtp_link { int blocked; + int first_sls; int link_no; int sltm_pending; int was_up; diff --git a/src/mtp_layer3.c b/src/mtp_layer3.c index 4f6564c..fa8aa98 100644 --- a/src/mtp_layer3.c +++ b/src/mtp_layer3.c @@ -577,13 +577,19 @@ static struct mtp_link *find_next_link(struct mtp_link_set *set, void mtp_link_set_init_slc(struct mtp_link_set *set) { - struct mtp_link *link = NULL; + struct mtp_link *link = NULL, *tmp; int i; + llist_for_each_entry(tmp, &set->links, entry) + tmp->first_sls = 100; + for (i = 0; i < ARRAY_SIZE(set->slc); ++i) { link = find_next_link(set, link); set->slc[i] = link; + + if (link && i < link->first_sls) + link->first_sls = i; } } |