From b4554596ea1c1044b5356bd0ce96753a72e838af Mon Sep 17 00:00:00 2001 From: Theofilos Manitaras Date: Wed, 13 Mar 2019 13:09:54 +0100 Subject: [PATCH 1/2] Fix string error in header file of Cuda memtest * Apply a patch to fix the compilation error in the header file of cuda memtest. --- cscs-checks/cuda/cuda_memtest_check.py | 3 +- .../cuda/src/cuda_memtest-1.2.3.patch2 | 111 ++++++++++++++++++ 2 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 cscs-checks/cuda/src/cuda_memtest-1.2.3.patch2 diff --git a/cscs-checks/cuda/cuda_memtest_check.py b/cscs-checks/cuda/cuda_memtest_check.py index 8da422dbae..c2376ad12c 100644 --- a/cscs-checks/cuda/cuda_memtest_check.py +++ b/cscs-checks/cuda/cuda_memtest_check.py @@ -20,7 +20,8 @@ def __init__(self): 'wget %s' % src_url, 'tar -xzf cuda_memtest-1.2.3.tar.gz', 'cd cuda_memtest-1.2.3', - 'patch -p1 < ../cuda_memtest-1.2.3.patch' + 'patch -p1 < ../cuda_memtest-1.2.3.patch', + 'patch -p1 < ../cuda_memtest-1.2.3.patch2' ] self.build_system = 'Make' self.executable = './cuda_memtest-1.2.3/cuda_memtest' diff --git a/cscs-checks/cuda/src/cuda_memtest-1.2.3.patch2 b/cscs-checks/cuda/src/cuda_memtest-1.2.3.patch2 new file mode 100644 index 0000000000..fdf159a19b --- /dev/null +++ b/cscs-checks/cuda/src/cuda_memtest-1.2.3.patch2 @@ -0,0 +1,111 @@ +--- cuda_memtest-1.2.3-orig/cuda_memtest.h 2019-03-13 11:38:24.000000000 +0100 ++++ cuda_memtest-1.2.3/cuda_memtest.h 2019-03-13 11:38:41.000000000 +0100 +@@ -8,18 +8,18 @@ + * + * Developed by: + * +- * Innovative Systems Lab +- * National Center for Supercomputing Applications ++ * Innovative Systems Lab ++ * National Center for Supercomputing Applications + * http://www.ncsa.uiuc.edu/AboutUs/Directorates/ISL.html +- * +- * Permission is hereby granted, free of charge, to any person obtaining a copy of +- * this software and associated documentation files (the "Software"), to deal with ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy of ++ * this software and associated documentation files (the "Software"), to deal with + * the Software without restriction, including without limitation the rights to use, +- * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the ++ * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, subject + * to the following conditions: + * +- * * Redistributions of source code must retain the above copyright notice, this list ++ * * Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimers. + * + * * Redistributions in binary form must reproduce the above copyright notice, this list +@@ -30,11 +30,11 @@ + * Applications, nor the names of its contributors may be used to endorse or promote products + * derived from this Software without specific prior written permission. + * +- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE +- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +- * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT ++ * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS WITH THE SOFTWARE. + */ + +@@ -71,27 +71,27 @@ + #define PRINTF(fmt,...) do{ \ + if (monitor_temp){ \ + pthread_mutex_lock(&mutex); \ +- printf("[%s][%s][%d][%d C]:"fmt, time_string(), hostname, gpu_idx, gpu_temp[gpu_idx],##__VA_ARGS__); \ ++ printf("[%s][%s][%d][%d C]:" fmt, time_string(), hostname, gpu_idx, gpu_temp[gpu_idx],##__VA_ARGS__); \ + pthread_mutex_unlock(&mutex); \ + } \ + else{ \ + pthread_mutex_lock(&mutex); \ +- printf("[%s][%s][%d]:"fmt, time_string(), hostname, gpu_idx, ##__VA_ARGS__); \ ++ printf("[%s][%s][%d]:" fmt, time_string(), hostname, gpu_idx, ##__VA_ARGS__); \ + pthread_mutex_unlock(&mutex); \ + } \ + fflush(stdout); \ +- } while(0) ++ } while(0) + + + #define FPRINTF(fmt,...) do{ \ + if (monitor_temp){ \ +- fprintf(stderr, "[%s][%s][%d][%d C]:"fmt, time_string(), hostname, gpu_idx, gpu_temp[gpu_idx],##__VA_ARGS__); \ ++ fprintf(stderr, "[%s][%s][%d][%d C]:" fmt, time_string(), hostname, gpu_idx, gpu_temp[gpu_idx],##__VA_ARGS__); \ + } \ + else{ \ +- fprintf(stderr, "[%s][%s][%d]:"fmt, time_string(), hostname, gpu_idx, ##__VA_ARGS__); \ ++ fprintf(stderr, "[%s][%s][%d]:" fmt, time_string(), hostname, gpu_idx, ##__VA_ARGS__); \ + } \ + fflush(stderr); \ +- } while(0) ++ } while(0) + + + +@@ -113,21 +113,21 @@ + PRINTF("%s: %d out of %d blocks finished\n", msg, num_checked_blocks, tot_num_blocks ); \ + } \ + } \ +- fflush(stdout); ++ fflush(stdout); + + + #define CUERR do{ cudaError_t cuda_err; \ + if ((cuda_err = cudaGetLastError()) != cudaSuccess) { \ + FPRINTF("ERROR: CUDA error: %s, line %d, file %s\n", cudaGetErrorString(cuda_err), __LINE__, __FILE__); \ + PRINTF("ERROR: CUDA error: %s, line %d, file %s\n", cudaGetErrorString(cuda_err), __LINE__, __FILE__); \ +- exit(cuda_err);}}while(0) ++ exit(cuda_err);}}while(0) + + #define SYNC_CUERR do{ cudaError_t cuda_err; \ + cudaThreadSynchronize(); \ + if ((cuda_err = cudaGetLastError()) != cudaSuccess) { \ + FPRINTF("ERROR: CUDA error: %s, line %d, file %s\n", cudaGetErrorString(cuda_err), __LINE__, __FILE__); \ + PRINTF("ERROR: CUDA error: %s, line %d, file %s\n", cudaGetErrorString(cuda_err), __LINE__, __FILE__); \ +- exit(cuda_err);}}while(0) ++ exit(cuda_err);}}while(0) + + #define TDIFF(tb, ta) (tb.tv_sec - ta.tv_sec + 0.000001*(tb.tv_usec - ta.tv_usec)) + #define DIM(x) (sizeof(x)/sizeof(x[0])) +@@ -141,7 +141,7 @@ + typedef struct cuda_memtest_s{ + test_func_t func; + char* desc; +- unsigned int enabled; ++ unsigned int enabled; + }cuda_memtest_t; + + From 0658d6ee5df35f0dcce37c7d327bb26443b3f6d4 Mon Sep 17 00:00:00 2001 From: Theofilos Manitaras Date: Thu, 21 Mar 2019 16:26:24 +0100 Subject: [PATCH 2/2] Address PR comments --- cscs-checks/cuda/cuda_memtest_check.py | 3 +- cscs-checks/cuda/src/cuda_memtest-1.2.3.patch | 123 +++++++++++++++++- .../cuda/src/cuda_memtest-1.2.3.patch2 | 111 ---------------- 3 files changed, 117 insertions(+), 120 deletions(-) delete mode 100644 cscs-checks/cuda/src/cuda_memtest-1.2.3.patch2 diff --git a/cscs-checks/cuda/cuda_memtest_check.py b/cscs-checks/cuda/cuda_memtest_check.py index c2376ad12c..8da422dbae 100644 --- a/cscs-checks/cuda/cuda_memtest_check.py +++ b/cscs-checks/cuda/cuda_memtest_check.py @@ -20,8 +20,7 @@ def __init__(self): 'wget %s' % src_url, 'tar -xzf cuda_memtest-1.2.3.tar.gz', 'cd cuda_memtest-1.2.3', - 'patch -p1 < ../cuda_memtest-1.2.3.patch', - 'patch -p1 < ../cuda_memtest-1.2.3.patch2' + 'patch -p1 < ../cuda_memtest-1.2.3.patch' ] self.build_system = 'Make' self.executable = './cuda_memtest-1.2.3/cuda_memtest' diff --git a/cscs-checks/cuda/src/cuda_memtest-1.2.3.patch b/cscs-checks/cuda/src/cuda_memtest-1.2.3.patch index 50e179b3c5..7dbc0f0073 100644 --- a/cscs-checks/cuda/src/cuda_memtest-1.2.3.patch +++ b/cscs-checks/cuda/src/cuda_memtest-1.2.3.patch @@ -1,8 +1,119 @@ -Binary files cuda_memtest-1.2.3-orig/cuda_memtest and cuda_memtest-1.2.3/cuda_memtest differ -Binary files cuda_memtest-1.2.3-orig/cuda_memtest.o and cuda_memtest-1.2.3/cuda_memtest.o differ -diff -urN cuda_memtest-1.2.3-orig/Makefile cuda_memtest-1.2.3/Makefile ---- cuda_memtest-1.2.3-orig/Makefile 2012-02-06 21:39:33.000000000 +0100 -+++ cuda_memtest-1.2.3/Makefile 2019-02-15 10:16:10.769307000 +0100 +diff -u cuda_memtest-1.2.3-orig/cuda_memtest.h cuda_memtest-1.2.3/cuda_memtest.h +--- cuda_memtest-1.2.3-orig/cuda_memtest.h 2019-03-21 16:13:55.000000000 +0100 ++++ cuda_memtest-1.2.3/cuda_memtest.h 2019-03-21 16:14:16.000000000 +0100 +@@ -8,18 +8,18 @@ + * + * Developed by: + * +- * Innovative Systems Lab +- * National Center for Supercomputing Applications ++ * Innovative Systems Lab ++ * National Center for Supercomputing Applications + * http://www.ncsa.uiuc.edu/AboutUs/Directorates/ISL.html +- * +- * Permission is hereby granted, free of charge, to any person obtaining a copy of +- * this software and associated documentation files (the "Software"), to deal with ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a copy of ++ * this software and associated documentation files (the "Software"), to deal with + * the Software without restriction, including without limitation the rights to use, +- * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the ++ * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, subject + * to the following conditions: + * +- * * Redistributions of source code must retain the above copyright notice, this list ++ * * Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimers. + * + * * Redistributions in binary form must reproduce the above copyright notice, this list +@@ -30,11 +30,11 @@ + * Applications, nor the names of its contributors may be used to endorse or promote products + * derived from this Software without specific prior written permission. + * +- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE +- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +- * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT ++ * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS WITH THE SOFTWARE. + */ + +@@ -71,27 +71,27 @@ + #define PRINTF(fmt,...) do{ \ + if (monitor_temp){ \ + pthread_mutex_lock(&mutex); \ +- printf("[%s][%s][%d][%d C]:"fmt, time_string(), hostname, gpu_idx, gpu_temp[gpu_idx],##__VA_ARGS__); \ ++ printf("[%s][%s][%d][%d C]:" fmt, time_string(), hostname, gpu_idx, gpu_temp[gpu_idx],##__VA_ARGS__); \ + pthread_mutex_unlock(&mutex); \ + } \ + else{ \ + pthread_mutex_lock(&mutex); \ +- printf("[%s][%s][%d]:"fmt, time_string(), hostname, gpu_idx, ##__VA_ARGS__); \ ++ printf("[%s][%s][%d]:" fmt, time_string(), hostname, gpu_idx, ##__VA_ARGS__); \ + pthread_mutex_unlock(&mutex); \ + } \ + fflush(stdout); \ +- } while(0) ++ } while(0) + + + #define FPRINTF(fmt,...) do{ \ + if (monitor_temp){ \ +- fprintf(stderr, "[%s][%s][%d][%d C]:"fmt, time_string(), hostname, gpu_idx, gpu_temp[gpu_idx],##__VA_ARGS__); \ ++ fprintf(stderr, "[%s][%s][%d][%d C]:" fmt, time_string(), hostname, gpu_idx, gpu_temp[gpu_idx],##__VA_ARGS__); \ + } \ + else{ \ +- fprintf(stderr, "[%s][%s][%d]:"fmt, time_string(), hostname, gpu_idx, ##__VA_ARGS__); \ ++ fprintf(stderr, "[%s][%s][%d]:" fmt, time_string(), hostname, gpu_idx, ##__VA_ARGS__); \ + } \ + fflush(stderr); \ +- } while(0) ++ } while(0) + + + +@@ -113,21 +113,21 @@ + PRINTF("%s: %d out of %d blocks finished\n", msg, num_checked_blocks, tot_num_blocks ); \ + } \ + } \ +- fflush(stdout); ++ fflush(stdout); + + + #define CUERR do{ cudaError_t cuda_err; \ + if ((cuda_err = cudaGetLastError()) != cudaSuccess) { \ + FPRINTF("ERROR: CUDA error: %s, line %d, file %s\n", cudaGetErrorString(cuda_err), __LINE__, __FILE__); \ + PRINTF("ERROR: CUDA error: %s, line %d, file %s\n", cudaGetErrorString(cuda_err), __LINE__, __FILE__); \ +- exit(cuda_err);}}while(0) ++ exit(cuda_err);}}while(0) + + #define SYNC_CUERR do{ cudaError_t cuda_err; \ + cudaThreadSynchronize(); \ + if ((cuda_err = cudaGetLastError()) != cudaSuccess) { \ + FPRINTF("ERROR: CUDA error: %s, line %d, file %s\n", cudaGetErrorString(cuda_err), __LINE__, __FILE__); \ + PRINTF("ERROR: CUDA error: %s, line %d, file %s\n", cudaGetErrorString(cuda_err), __LINE__, __FILE__); \ +- exit(cuda_err);}}while(0) ++ exit(cuda_err);}}while(0) + + #define TDIFF(tb, ta) (tb.tv_sec - ta.tv_sec + 0.000001*(tb.tv_usec - ta.tv_usec)) + #define DIM(x) (sizeof(x)/sizeof(x[0])) +@@ -141,7 +141,7 @@ + typedef struct cuda_memtest_s{ + test_func_t func; + char* desc; +- unsigned int enabled; ++ unsigned int enabled; + }cuda_memtest_t; + + +Common subdirectories: cuda_memtest-1.2.3-orig/doc and cuda_memtest-1.2.3/doc +diff -u cuda_memtest-1.2.3-orig/Makefile cuda_memtest-1.2.3/Makefile +--- cuda_memtest-1.2.3-orig/Makefile 2019-03-21 16:13:55.000000000 +0100 ++++ cuda_memtest-1.2.3/Makefile 2019-03-21 16:14:09.000000000 +0100 @@ -54,7 +54,7 @@ CUDA_INCLUDES := -I. -I${CUDA_INSTALL_PATH}/include @@ -12,5 +123,3 @@ diff -urN cuda_memtest-1.2.3-orig/Makefile cuda_memtest-1.2.3/Makefile CFLAGS_SM10= -arch sm_10 -DSM_10 -O3 CFLAGS_SM20= -arch sm_20 -DSM_20 -O3 CUDA_SRC_FILES= cuda_memtest.cu misc.cpp tests.cu -Binary files cuda_memtest-1.2.3-orig/misc.o and cuda_memtest-1.2.3/misc.o differ -Binary files cuda_memtest-1.2.3-orig/tests.o and cuda_memtest-1.2.3/tests.o differ diff --git a/cscs-checks/cuda/src/cuda_memtest-1.2.3.patch2 b/cscs-checks/cuda/src/cuda_memtest-1.2.3.patch2 deleted file mode 100644 index fdf159a19b..0000000000 --- a/cscs-checks/cuda/src/cuda_memtest-1.2.3.patch2 +++ /dev/null @@ -1,111 +0,0 @@ ---- cuda_memtest-1.2.3-orig/cuda_memtest.h 2019-03-13 11:38:24.000000000 +0100 -+++ cuda_memtest-1.2.3/cuda_memtest.h 2019-03-13 11:38:41.000000000 +0100 -@@ -8,18 +8,18 @@ - * - * Developed by: - * -- * Innovative Systems Lab -- * National Center for Supercomputing Applications -+ * Innovative Systems Lab -+ * National Center for Supercomputing Applications - * http://www.ncsa.uiuc.edu/AboutUs/Directorates/ISL.html -- * -- * Permission is hereby granted, free of charge, to any person obtaining a copy of -- * this software and associated documentation files (the "Software"), to deal with -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy of -+ * this software and associated documentation files (the "Software"), to deal with - * the Software without restriction, including without limitation the rights to use, -- * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the -+ * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the - * Software, and to permit persons to whom the Software is furnished to do so, subject - * to the following conditions: - * -- * * Redistributions of source code must retain the above copyright notice, this list -+ * * Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimers. - * - * * Redistributions in binary form must reproduce the above copyright notice, this list -@@ -30,11 +30,11 @@ - * Applications, nor the names of its contributors may be used to endorse or promote products - * derived from this Software without specific prior written permission. - * -- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR - * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE -- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT -- * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT -+ * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS WITH THE SOFTWARE. - */ - -@@ -71,27 +71,27 @@ - #define PRINTF(fmt,...) do{ \ - if (monitor_temp){ \ - pthread_mutex_lock(&mutex); \ -- printf("[%s][%s][%d][%d C]:"fmt, time_string(), hostname, gpu_idx, gpu_temp[gpu_idx],##__VA_ARGS__); \ -+ printf("[%s][%s][%d][%d C]:" fmt, time_string(), hostname, gpu_idx, gpu_temp[gpu_idx],##__VA_ARGS__); \ - pthread_mutex_unlock(&mutex); \ - } \ - else{ \ - pthread_mutex_lock(&mutex); \ -- printf("[%s][%s][%d]:"fmt, time_string(), hostname, gpu_idx, ##__VA_ARGS__); \ -+ printf("[%s][%s][%d]:" fmt, time_string(), hostname, gpu_idx, ##__VA_ARGS__); \ - pthread_mutex_unlock(&mutex); \ - } \ - fflush(stdout); \ -- } while(0) -+ } while(0) - - - #define FPRINTF(fmt,...) do{ \ - if (monitor_temp){ \ -- fprintf(stderr, "[%s][%s][%d][%d C]:"fmt, time_string(), hostname, gpu_idx, gpu_temp[gpu_idx],##__VA_ARGS__); \ -+ fprintf(stderr, "[%s][%s][%d][%d C]:" fmt, time_string(), hostname, gpu_idx, gpu_temp[gpu_idx],##__VA_ARGS__); \ - } \ - else{ \ -- fprintf(stderr, "[%s][%s][%d]:"fmt, time_string(), hostname, gpu_idx, ##__VA_ARGS__); \ -+ fprintf(stderr, "[%s][%s][%d]:" fmt, time_string(), hostname, gpu_idx, ##__VA_ARGS__); \ - } \ - fflush(stderr); \ -- } while(0) -+ } while(0) - - - -@@ -113,21 +113,21 @@ - PRINTF("%s: %d out of %d blocks finished\n", msg, num_checked_blocks, tot_num_blocks ); \ - } \ - } \ -- fflush(stdout); -+ fflush(stdout); - - - #define CUERR do{ cudaError_t cuda_err; \ - if ((cuda_err = cudaGetLastError()) != cudaSuccess) { \ - FPRINTF("ERROR: CUDA error: %s, line %d, file %s\n", cudaGetErrorString(cuda_err), __LINE__, __FILE__); \ - PRINTF("ERROR: CUDA error: %s, line %d, file %s\n", cudaGetErrorString(cuda_err), __LINE__, __FILE__); \ -- exit(cuda_err);}}while(0) -+ exit(cuda_err);}}while(0) - - #define SYNC_CUERR do{ cudaError_t cuda_err; \ - cudaThreadSynchronize(); \ - if ((cuda_err = cudaGetLastError()) != cudaSuccess) { \ - FPRINTF("ERROR: CUDA error: %s, line %d, file %s\n", cudaGetErrorString(cuda_err), __LINE__, __FILE__); \ - PRINTF("ERROR: CUDA error: %s, line %d, file %s\n", cudaGetErrorString(cuda_err), __LINE__, __FILE__); \ -- exit(cuda_err);}}while(0) -+ exit(cuda_err);}}while(0) - - #define TDIFF(tb, ta) (tb.tv_sec - ta.tv_sec + 0.000001*(tb.tv_usec - ta.tv_usec)) - #define DIM(x) (sizeof(x)/sizeof(x[0])) -@@ -141,7 +141,7 @@ - typedef struct cuda_memtest_s{ - test_func_t func; - char* desc; -- unsigned int enabled; -+ unsigned int enabled; - }cuda_memtest_t; - -