aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2020-09-18 20:11:14 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2020-09-18 20:19:56 +0200
commit0fbdfefebc30e389c69f132abda42f79bf8bd620 (patch)
tree887ebb367cfd07adc8603be9430e9c5b9917957c
parentb7c6f1e83f8f79320011de2f79523f349d593e30 (diff)
arch: x86: Fix convolve optimizations breaking signal
This patch fixes MS failing to even see the network, and only RACHs of 1 zeroed byte being seen in GSMTAP. The issue seems to only appear on some specific machines; others have been running fine for weeks without this memset being an issue. Fixes: 7a52e42ee0676f47e801dd348b478302de5d2e50 Change-Id: I98ad885a5d71e7775973a4d881c0f1cd665ea711
-rw-r--r--Transceiver52M/arch/x86/convolve.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/Transceiver52M/arch/x86/convolve.c b/Transceiver52M/arch/x86/convolve.c
index 81ea782..be62721 100644
--- a/Transceiver52M/arch/x86/convolve.c
+++ b/Transceiver52M/arch/x86/convolve.c
@@ -102,9 +102,9 @@ int convolve_real(const float *x, int x_len,
#ifndef __OPTIMIZE__
if (bounds_check(x_len, h_len, y_len, start, len) < 0)
return -1;
-
- memset(y, 0, len * 2 * sizeof(float));
#endif
+ memset(y, 0, len * 2 * sizeof(float));
+
switch (h_len) {
case 4:
c.conv_real4(x, x_len, h, h_len, y, y_len, start, len);
@@ -142,9 +142,9 @@ int convolve_complex(const float *x, int x_len,
#ifndef __OPTIMIZE__
if (bounds_check(x_len, h_len, y_len, start, len) < 0)
return -1;
-
- memset(y, 0, len * 2 * sizeof(float));
#endif
+ memset(y, 0, len * 2 * sizeof(float));
+
if (!(h_len % 8))
c.conv_cmplx_8n(x, x_len, h, h_len, y, y_len, start, len);
else if (!(h_len % 4))