diff options
author | Vincent Palatin <vpalatin@chromium.org> | 2014-10-28 15:30:59 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-11-11 23:01:36 +0000 |
commit | 19243d05ee719f338047c624bb5c8435e06e67f3 (patch) | |
tree | 3bf4f9ae4ca08fd97da28a6f42908f25333d4f37 | |
parent | bff770f73a4a5aef8d26656a59fb24ce96ac9dd9 (diff) | |
download | chrome-ec-19243d05ee719f338047c624bb5c8435e06e67f3.tar.gz |
CHERRY-PICK: usb: fix undefined USB endpoints
When calling the ep_undefined function, the linker was not considering
it as a Thumb function and not setting the LSB in the address pointer.
This was causing an exception at runtime.
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BRANCH=all
BUG=none
TEST=inspect assembly
Change-Id: I176e584d36b61edd6efd6a6064482f67872be6e6
Original-Change-Id: I8f4d1e351081032e138f593f0b61294031fc09b1
Reviewed-on: https://chromium-review.googlesource.com/226093
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/229160
Reviewed-by: Mohammed Habibulla <moch@chromium.org>
Commit-Queue: Mohammed Habibulla <moch@chromium.org>
Tested-by: Mohammed Habibulla <moch@chromium.org>
-rw-r--r-- | chip/stm32/usb_endpoints.S | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/chip/stm32/usb_endpoints.S b/chip/stm32/usb_endpoints.S index 831b4a8dee..0c950ccbe1 100644 --- a/chip/stm32/usb_endpoints.S +++ b/chip/stm32/usb_endpoints.S @@ -25,10 +25,6 @@ .endif .endm -ep_undefined: -iface_undefined: - bx lr - /* align function pointers on a 32-bit boundary */ .align 2 /* Endpoint callbacks */ @@ -99,3 +95,11 @@ interface 4 interface 5 interface 6 interface 7 + +.text +.code 16 + +.thumb_func +ep_undefined: +iface_undefined: + bx lr |