summaryrefslogtreecommitdiff
path: root/apps/codec_thread.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codec_thread.c')
-rw-r--r--apps/codec_thread.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/apps/codec_thread.c b/apps/codec_thread.c
index b511809..e45e9ae 100644
--- a/apps/codec_thread.c
+++ b/apps/codec_thread.c
@@ -90,7 +90,9 @@ extern struct codec_api ci; /* from codecs.c */
static unsigned int codec_thread_id; /* For modifying thread priority later */
static struct event_queue codec_queue SHAREDBSS_ATTR;
static struct queue_sender_list codec_queue_sender_list SHAREDBSS_ATTR;
-static long codec_stack[(DEFAULT_STACK_SIZE + 0x2000)/sizeof(long)] IBSS_ATTR;
+/* Workaround stack overflow in opus codec on highmem devices (see FS#13060). */
+#define WORKAROUND_FS13060 (MEMORYSIZE >= 8 ? 0x800 : 0)
+static long codec_stack[(DEFAULT_STACK_SIZE + 0x2000 + WORKAROUND_FS13060)/sizeof(long)] IBSS_ATTR;
static const char codec_thread_name[] = "codec";
static void unload_codec(void);