Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

openamp: Fix void pointer arithmetic in openamp to remove compilation… #11686

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
From 59e2764f9d0598ad0135286d4a0ee1ac95893bba Mon Sep 17 00:00:00 2001
From: Jukka Laitinen <jukkax@ssrc.tii.ae>
Date: Mon, 12 Feb 2024 13:27:13 +0200
Subject: [PATCH] libmetal/nuttx/io.c: Fix void pointer arithmetic in access
alignment

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
---
libmetal/lib/system/nuttx/io.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/system/nuttx/io.c libmetal/lib/system/nuttx/io.c
index 3ce9cbe..ab9bc6a 100644
--- a/lib/system/nuttx/io.c
+++ libmetal/lib/system/nuttx/io.c
@@ -45,7 +45,7 @@ static int metal_io_block_read_(struct metal_io_region *io,
*(uint32_t *)dst = *(uint32_t *)va;
else if (len == 8) {
*(uint32_t *)dst = *(uint32_t *)va;
- *(uint32_t *)(dst + 4) = *(uint32_t *)(va + 4);
+ *((uint32_t *)dst + 1) = *((uint32_t *)va + 1);
} else
memcpy(dst, va, len);

@@ -68,7 +68,7 @@ static int metal_io_block_write_(struct metal_io_region *io,
*(uint32_t *)va = *(uint32_t *)src;
else if (len == 8) {
*(uint32_t *)va = *(uint32_t *)src;
- *(uint32_t *)(va + 4) = *(uint32_t *)(src + 4);
+ *((uint32_t *)va + 1) = *((uint32_t *)src + 1);
} else
memcpy(va, src, len);

--
2.34.1

1 change: 1 addition & 0 deletions openamp/libmetal.defs
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ libmetal.zip:
$(Q) mv libmetal-$(VERSION) libmetal
$(Q) patch -p0 < 0001-libmetal-add-metal_list_for_each_safe-support.patch
$(Q) patch -p0 < 0002-libmetal-nuttx-io.c-align-access-when-read-write-siz.patch
$(Q) patch -p0 < 0003-libmetal-nuttx-io.c-Fix-void-pointer-arithmetic-in-a.patch
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jlaitine @CV-Bowen let's send the patch to OpenAMP community too.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, the original patch is in this PR: OpenAMP/libmetal#279 ; this is not merged in the openamp libmetal yet. So obviously I can't provide the fix for that patch either :)

@CV-Bowen feel free to add my patch to the same PR, or squash the fix into your original patch. I am not sure what is the plan forward with that PR.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xiaoxiang781216 @jlaitine Thanks, I will update OpenAMP/libmetal#279 later today.


.libmetal_headers: libmetal.zip
else
Expand Down
Loading