mtp: Remember the first SLS this link is on
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 @@
 
 	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 @@
 
 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;
 	}
 }