ANDROID: dm verity fec: pack the fec_header structure
The fec_header structure is generated build time and stored on disk.
The fec_header might be build on a 64 bits machine while it is read
per a 32 bits device or the other way around. In such situations, the
fec_header fields are not aligned as expected by the device and it
fails to read the fec_header structure.
This patch makes the fec_header packed.
Change-Id: Idb84453e70cc11abd5ef3a0adfbb16f8b5feaf06
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
diff --git a/drivers/md/dm-android-verity.h b/drivers/md/dm-android-verity.h
index 782e1c8..f43b02f 100644
--- a/drivers/md/dm-android-verity.h
+++ b/drivers/md/dm-android-verity.h
@@ -72,9 +72,6 @@
* if fec is not present
* <data_blocks> <verity_tree> <verity_metdata_32K>
*/
-/* TODO: rearrange structure to reduce memory holes
- * depends on userspace change.
- */
struct fec_header {
__le32 magic;
__le32 version;
@@ -83,7 +80,7 @@
__le32 fec_size;
__le64 inp_size;
u8 hash[SHA256_DIGEST_SIZE];
-};
+} __attribute__((packed));
struct android_metadata_header {
__le32 magic_number;