Fix bug in VolatileReadable implementation for arrays. am: cd01182ec7 am: 7693530839

Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/virtio-drivers/+/3125135

Change-Id: I357ea2a61a5ed8ba0e73eb3c57ed224ea53d7e1f
Signed-off-by: Automerger Merge Worker <[email protected]>
diff --git a/patches/mmio.patch b/patches/mmio.patch
index 8e684f6..d11af71 100644
--- a/patches/mmio.patch
+++ b/patches/mmio.patch
@@ -37,7 +37,7 @@
      }
  
 diff --git a/src/volatile.rs b/src/volatile.rs
-index b7059d1..af7ef27 100644
+index b7059d1..67ebba3 100644
 --- a/src/volatile.rs
 +++ b/src/volatile.rs
 @@ -33,12 +33,14 @@ pub trait VolatileReadable<T> {
@@ -218,7 +218,7 @@
 +                asm!(
 +                    "ldrb {value:w}, [{ptr}]",
 +                    value = out(reg) value[i],
-+                    ptr = in(reg) (self as *const u8),
++                    ptr = in(reg) (self as *const u8).add(i),
 +                );
 +            }
 +            value
diff --git a/src/volatile.rs b/src/volatile.rs
index af7ef27..67ebba3 100644
--- a/src/volatile.rs
+++ b/src/volatile.rs
@@ -212,7 +212,7 @@
                 asm!(
                     "ldrb {value:w}, [{ptr}]",
                     value = out(reg) value[i],
-                    ptr = in(reg) (self as *const u8),
+                    ptr = in(reg) (self as *const u8).add(i),
                 );
             }
             value