Can you post your source code? What are the flags you are using along with clCreateBuffer() ?
my source code is :clCreateBuffer(GPUcontext, CL_MEM_READ_ONLY, size, NULL, &err)
However I have verified that the code run under windows but fail under linux because the CL_DEVICE_MAX_MEM_ALLOC_SIZE under this two are different. They are 192*1020*1024 bytes and 128*1024*1024 under window and linux, respectively, while my buffer size is in between, i.e 128*1024*1024<bufsize<192*1020*1024.
so it fails under linux but run through on windows.
but this folks another question, why under windows the CL_DEVICE_MAX_MEM_ALLOC_SIZE is 192*1020*1024, that is neither 1/4 of CL_DEVICE_GLOBAL_MEM_SIZE(in my case CL_DEVICE_GLOBAL_MEM_SIZE is 512*1024*1024) nor 128*1024*1024, according to specification.
Could AMD windows developers give a reason?