return;
 
        for (i = 0; i < MAXLR; i++) {
-               int q;
-               int same = 1;
+               int q, same = 1;
+
                /* Nothing stored: */
                if (!latency_record[i].backtrace[0]) {
                        if (firstnonnull > i)
                        continue;
                }
                for (q = 0 ; q < LT_BACKTRACEDEPTH ; q++) {
-                       if (latency_record[i].backtrace[q] !=
-                               lat->backtrace[q])
+                       unsigned long record = lat->backtrace[q];
+
+                       if (latency_record[i].backtrace[q] != record) {
                                same = 0;
-                       if (same && lat->backtrace[q] == 0)
                                break;
-                       if (same && lat->backtrace[q] == ULONG_MAX)
+                       }
+
+                       /* 0 and ULONG_MAX entries mean end of backtrace: */
+                       if (record == 0 || record == ULONG_MAX)
                                break;
                }
                if (same) {
        for (i = 0; i < LT_SAVECOUNT ; i++) {
                struct latency_record *mylat;
                int same = 1;
+
                mylat = &tsk->latency_record[i];
                for (q = 0 ; q < LT_BACKTRACEDEPTH ; q++) {
-                       if (mylat->backtrace[q] !=
-                               lat.backtrace[q])
+                       unsigned long record = lat.backtrace[q];
+
+                       if (mylat->backtrace[q] != record) {
                                same = 0;
-                       if (same && lat.backtrace[q] == 0)
                                break;
-                       if (same && lat.backtrace[q] == ULONG_MAX)
+                       }
+
+                       /* 0 and ULONG_MAX entries mean end of backtrace: */
+                       if (record == 0 || record == ULONG_MAX)
                                break;
                }
                if (same) {