[2/2] qcow2: fix unaligned access

Submitted by Aurelien Jarno on Jan. 1, 2011, 8:50 p.m.

Details

Message ID 1293915034-26391-2-git-send-email-aurelien@aurel32.net
State New
Headers show

Commit Message

Aurelien Jarno Jan. 1, 2011, 8:50 p.m.
cpu_to_be64w() is called with an obviously non-aligned pointer. Use
cpu_to_be64wu() instead. It fixes unaligned accesses errors on IA64
hosts.

Cc: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
 block/qcow2-cluster.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Comments

Kevin Wolf Jan. 10, 2011, 9:07 a.m.
Am 01.01.2011 21:50, schrieb Aurelien Jarno:
> cpu_to_be64w() is called with an obviously non-aligned pointer. Use
> cpu_to_be64wu() instead. It fixes unaligned accesses errors on IA64
> hosts.
> 
> Cc: Kevin Wolf <kwolf@redhat.com>
> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

Thanks, applied to the block branch.

Kevin

Patch hide | download patch | download mbox

diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c
index 6928c63..c3ef550 100644
--- a/block/qcow2-cluster.c
+++ b/block/qcow2-cluster.c
@@ -81,7 +81,7 @@  int qcow2_grow_l1_table(BlockDriverState *bs, int min_size, bool exact_size)
     /* set new table */
     BLKDBG_EVENT(bs->file, BLKDBG_L1_GROW_ACTIVATE_TABLE);
     cpu_to_be32w((uint32_t*)data, new_l1_size);
-    cpu_to_be64w((uint64_t*)(data + 4), new_l1_table_offset);
+    cpu_to_be64wu((uint64_t*)(data + 4), new_l1_table_offset);
     ret = bdrv_pwrite_sync(bs->file, offsetof(QCowHeader, l1_size), data,sizeof(data));
     if (ret < 0) {
         goto fail;