Browse Source

Merge pull request #495 from jeromerobert/develop

Fix a segfault in gemv when MAX_STACK_ALLOC is set
tags/v0.2.14^2
Zhang Xianyi 10 years ago
parent
commit
07ff001981
2 changed files with 4 additions and 2 deletions
  1. +3
    -1
      interface/gemv.c
  2. +1
    -1
      interface/ger.c

+ 3
- 1
interface/gemv.c View File

@@ -209,7 +209,9 @@ void CNAME(enum CBLAS_ORDER order,
if (incy < 0) y -= (leny - 1) * incy;

#ifdef MAX_STACK_ALLOC
int stack_alloc_size = m + n;
// make it volatile because some gemv implementation (ex: dgemv_n.S)
// do not restore all register
volatile int stack_alloc_size = m + n;
if(stack_alloc_size < 128)
//dgemv_n.S require a 128 bytes buffer
stack_alloc_size = 128;


+ 1
- 1
interface/ger.c View File

@@ -172,7 +172,7 @@ void CNAME(enum CBLAS_ORDER order,
if (incx < 0) x -= (m - 1) * incx;

#ifdef MAX_STACK_ALLOC
int stack_alloc_size = m;
volatile int stack_alloc_size = m;
if(stack_alloc_size > MAX_STACK_ALLOC / sizeof(FLOAT))
stack_alloc_size = 0;
FLOAT stack_buffer[stack_alloc_size];


Loading…
Cancel
Save