From: Marek Olšák <marek.olsak@xxxxxxx> --- amdgpu/amdgpu_device.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/amdgpu/amdgpu_device.c b/amdgpu/amdgpu_device.c index 9a238d9..2b31c45 100644 --- a/amdgpu/amdgpu_device.c +++ b/amdgpu/amdgpu_device.c @@ -184,42 +184,47 @@ int amdgpu_device_initialize(int fd, uint32_t accel_working = 0; uint64_t start, max; *device_handle = NULL; pthread_mutex_lock(&fd_mutex); if (!fd_tab) fd_tab = util_hash_table_create(fd_hash, fd_compare); r = amdgpu_get_auth(fd, &flag_auth); if (r) { + fprintf(stderr, "%s: amdgpu_get_auth (1) failed (%i)\n", + __func__, r); pthread_mutex_unlock(&fd_mutex); return r; } dev = util_hash_table_get(fd_tab, UINT_TO_PTR(fd)); if (dev) { r = amdgpu_get_auth(dev->fd, &flag_authexist); if (r) { + fprintf(stderr, "%s: amdgpu_get_auth (2) failed (%i)\n", + __func__, r); pthread_mutex_unlock(&fd_mutex); return r; } if ((flag_auth) && (!flag_authexist)) { dev->flink_fd = dup(fd); } *major_version = dev->major_version; *minor_version = dev->minor_version; amdgpu_device_reference(device_handle, dev); pthread_mutex_unlock(&fd_mutex); return 0; } dev = calloc(1, sizeof(struct amdgpu_device)); if (!dev) { + fprintf(stderr, "%s: calloc failed\n", __func__); pthread_mutex_unlock(&fd_mutex); return -ENOMEM; } dev->fd = -1; dev->flink_fd = -1; atomic_set(&dev->refcount, 1); version = drmGetVersion(fd); @@ -241,41 +246,49 @@ int amdgpu_device_initialize(int fd, dev->minor_version = version->version_minor; drmFreeVersion(version); dev->bo_flink_names = util_hash_table_create(handle_hash, handle_compare); dev->bo_handles = util_hash_table_create(handle_hash, handle_compare); pthread_mutex_init(&dev->bo_table_mutex, NULL); /* Check if acceleration is working. */ r = amdgpu_query_info(dev, AMDGPU_INFO_ACCEL_WORKING, 4, &accel_working); - if (r) + if (r) { + fprintf(stderr, "%s: amdgpu_query_info(ACCEL_WORKING) failed (%i)\n", + __func__, r); goto cleanup; + } if (!accel_working) { + fprintf(stderr, "%s: AMDGPU_INFO_ACCEL_WORKING = 0\n", __func__); r = -EBADF; goto cleanup; } r = amdgpu_query_gpu_info_init(dev); - if (r) + if (r) { + fprintf(stderr, "%s: amdgpu_query_gpu_info_init failed\n", __func__); goto cleanup; + } amdgpu_vamgr_init(&dev->vamgr, dev->dev_info.virtual_address_offset, dev->dev_info.virtual_address_max, dev->dev_info.virtual_address_alignment); max = MIN2(dev->dev_info.virtual_address_max, 0xffffffff); start = amdgpu_vamgr_find_va(&dev->vamgr, max - dev->dev_info.virtual_address_offset, dev->dev_info.virtual_address_alignment, 0); - if (start > 0xffffffff) + if (start > 0xffffffff) { + fprintf(stderr, "%s: amdgpu_vamgr_find_va failed\n", __func__); goto free_va; /* shouldn't get here */ + } amdgpu_vamgr_init(&dev->vamgr_32, start, max, dev->dev_info.virtual_address_alignment); r = amdgpu_parse_asic_ids(&dev->asic_ids); if (r) { fprintf(stderr, "%s: Cannot parse ASIC IDs, 0x%x.", __func__, r); } -- 2.7.4