aboutsummaryrefslogtreecommitdiffstats
path: root/tmk_core
diff options
context:
space:
mode:
authorGeorge Harris <ashandore@gmail.com>2020-01-25 22:35:39 +0100
committerDrashna Jaelre <drashna@live.com>2020-01-25 13:35:39 -0800
commite9ffc5347690ad2212d7217e406fb6018ed17079 (patch)
treef7c34e84d0dc3c641332ded9e9a748f13fd55390 /tmk_core
parent480a391929de9e66d36c84df900c49297c7dfec0 (diff)
downloadfirmware-e9ffc5347690ad2212d7217e406fb6018ed17079.tar.gz
firmware-e9ffc5347690ad2212d7217e406fb6018ed17079.tar.bz2
firmware-e9ffc5347690ad2212d7217e406fb6018ed17079.zip
Fix unaligned access with LTO (#7801)
Forces 4 byte alignment for USB input & output buffers to prevent unaligned accesses by chibios with LTO enabled
Diffstat (limited to 'tmk_core')
-rw-r--r--tmk_core/protocol/chibios/usb_main.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c
index 9981477a5..2617c73c1 100644
--- a/tmk_core/protocol/chibios/usb_main.c
+++ b/tmk_core/protocol/chibios/usb_main.c
@@ -227,8 +227,8 @@ typedef struct {
.in_size = stream##_EPSIZE, \
.out_size = stream##_EPSIZE, \
.fixed_size = fixedsize, \
- .ib = (uint8_t[BQ_BUFFER_SIZE(stream##_IN_CAPACITY, stream##_EPSIZE)]){}, \
- .ob = (uint8_t[BQ_BUFFER_SIZE(stream##_OUT_CAPACITY, stream##_EPSIZE)]){}, \
+ .ib = (__attribute__((aligned(4))) uint8_t[BQ_BUFFER_SIZE(stream##_IN_CAPACITY, stream##_EPSIZE)]){}, \
+ .ob = (__attribute__((aligned(4))) uint8_t[BQ_BUFFER_SIZE(stream##_OUT_CAPACITY, stream##_EPSIZE)]){}, \
} \
}