paycheck: Fix printing of operation index while tracing.

The block tracer is meant to scan operations in reverse order, to
discover the latest operation that writes to a block. Strangely, it only
reversed the operation indexes but scanned the actual operations in the
original order, which is both incorrect in the general case, but even
when it works the printed results are confusing (operations shown with
the wrong index). This fixes it.

Also some cosmetic changes to pacify the linter.

TEST=paycheck -B now prints the correct operation indexes.

Change-Id: I65c44eeb450c229a2d5251737a0953716e124687
Commit-Queue: Gilad Arnold <>
Tested-by: Gilad Arnold <>
Reviewed-by: Don Garrett <>
diff --git a/host/lib/update_payload/ b/host/lib/update_payload/
index e8c7c76..1a9b010 100644
--- a/host/lib/update_payload/
+++ b/host/lib/update_payload/
@@ -67,7 +67,6 @@
     PayloadError if something is wrong with the arguments.
   # Determine the base conversion format.
   if size == 2:
@@ -105,7 +104,6 @@
     PayloadError if a read error occurred or not enough data was read.
   if offset is not None:
     if offset >= 0:
@@ -160,9 +158,10 @@
     An iterator whose i-th invocation returns (items[i], name), where name ==
     base_name + '[i]' (with a formatting function optionally applied to it).
   idx, inc = (len(items), -1) if reverse else (1, 1)
+  if reverse:
+    items = reversed(items)
   for item in items:
     item_name = '%s[%d]' % (base_name, idx)
     if name_format_func: