return 0;
 }
 
-static int kfd_sysfs_create_file(struct kfd_process *p, struct attribute *attr,
+static void kfd_sysfs_create_file(struct kobject *kobj, struct attribute *attr,
                                 char *name)
 {
-       int ret = 0;
+       int ret;
 
-       if (!p || !attr || !name)
-               return -EINVAL;
+       if (!kobj || !attr || !name)
+               return;
 
        attr->name = name;
        attr->mode = KFD_SYSFS_FILE_MODE;
        sysfs_attr_init(attr);
 
-       ret = sysfs_create_file(p->kobj, attr);
-
-       return ret;
+       ret = sysfs_create_file(kobj, attr);
+       if (ret)
+               pr_warn("Create sysfs %s/%s failed %d", kobj->name, name, ret);
 }
 
-static int kfd_procfs_add_sysfs_stats(struct kfd_process *p)
+static void kfd_procfs_add_sysfs_stats(struct kfd_process *p)
 {
-       int ret = 0;
+       int ret;
        int i;
        char stats_dir_filename[MAX_SYSFS_FILENAME_LEN];
 
-       if (!p)
-               return -EINVAL;
-
-       if (!p->kobj)
-               return -EFAULT;
+       if (!p || !p->kobj)
+               return;
 
        /*
         * Create sysfs files for each GPU:
         */
        for (i = 0; i < p->n_pdds; i++) {
                struct kfd_process_device *pdd = p->pdds[i];
-               struct kobject *kobj_stats;
 
                snprintf(stats_dir_filename, MAX_SYSFS_FILENAME_LEN,
                                "stats_%u", pdd->dev->id);
-               kobj_stats = kfd_alloc_struct(kobj_stats);
-               if (!kobj_stats)
-                       return -ENOMEM;
+               pdd->kobj_stats = kfd_alloc_struct(pdd->kobj_stats);
+               if (!pdd->kobj_stats)
+                       return;
 
-               ret = kobject_init_and_add(kobj_stats,
-                                               &procfs_stats_type,
-                                               p->kobj,
-                                               stats_dir_filename);
+               ret = kobject_init_and_add(pdd->kobj_stats,
+                                          &procfs_stats_type,
+                                          p->kobj,
+                                          stats_dir_filename);
 
                if (ret) {
                        pr_warn("Creating KFD proc/stats_%s folder failed",
-                                       stats_dir_filename);
-                       kobject_put(kobj_stats);
-                       goto err;
+                               stats_dir_filename);
+                       kobject_put(pdd->kobj_stats);
+                       pdd->kobj_stats = NULL;
+                       return;
                }
 
-               pdd->kobj_stats = kobj_stats;
-               pdd->attr_evict.name = "evicted_ms";
-               pdd->attr_evict.mode = KFD_SYSFS_FILE_MODE;
-               sysfs_attr_init(&pdd->attr_evict);
-               ret = sysfs_create_file(kobj_stats, &pdd->attr_evict);
-               if (ret)
-                       pr_warn("Creating eviction stats for gpuid %d failed",
-                                       (int)pdd->dev->id);
-
+               kfd_sysfs_create_file(pdd->kobj_stats, &pdd->attr_evict,
+                                     "evicted_ms");
                /* Add sysfs file to report compute unit occupancy */
-               if (pdd->dev->kfd2kgd->get_cu_occupancy != NULL) {
-                       pdd->attr_cu_occupancy.name = "cu_occupancy";
-                       pdd->attr_cu_occupancy.mode = KFD_SYSFS_FILE_MODE;
-                       sysfs_attr_init(&pdd->attr_cu_occupancy);
-                       ret = sysfs_create_file(kobj_stats,
-                                               &pdd->attr_cu_occupancy);
-                       if (ret)
-                               pr_warn("Creating %s failed for gpuid: %d",
-                                       pdd->attr_cu_occupancy.name,
-                                       (int)pdd->dev->id);
-               }
+               if (pdd->dev->kfd2kgd->get_cu_occupancy)
+                       kfd_sysfs_create_file(pdd->kobj_stats,
+                                             &pdd->attr_cu_occupancy,
+                                             "cu_occupancy");
        }
-err:
-       return ret;
 }
 
 
-static int kfd_procfs_add_sysfs_files(struct kfd_process *p)
+static void kfd_procfs_add_sysfs_files(struct kfd_process *p)
 {
-       int ret = 0;
        int i;
 
-       if (!p)
-               return -EINVAL;
-
-       if (!p->kobj)
-               return -EFAULT;
+       if (!p || !p->kobj)
+               return;
 
        /*
         * Create sysfs files for each GPU:
 
                snprintf(pdd->vram_filename, MAX_SYSFS_FILENAME_LEN, "vram_%u",
                         pdd->dev->id);
-               ret = kfd_sysfs_create_file(p, &pdd->attr_vram, pdd->vram_filename);
-               if (ret)
-                       pr_warn("Creating vram usage for gpu id %d failed",
-                               (int)pdd->dev->id);
+               kfd_sysfs_create_file(p->kobj, &pdd->attr_vram,
+                                     pdd->vram_filename);
 
                snprintf(pdd->sdma_filename, MAX_SYSFS_FILENAME_LEN, "sdma_%u",
                         pdd->dev->id);
-               ret = kfd_sysfs_create_file(p, &pdd->attr_sdma, pdd->sdma_filename);
-               if (ret)
-                       pr_warn("Creating sdma usage for gpu id %d failed",
-                               (int)pdd->dev->id);
+               kfd_sysfs_create_file(p->kobj, &pdd->attr_sdma,
+                                           pdd->sdma_filename);
        }
-
-       return ret;
 }
 
 void kfd_procfs_del_queue(struct queue *q)
                        goto out;
                }
 
-               process->attr_pasid.name = "pasid";
-               process->attr_pasid.mode = KFD_SYSFS_FILE_MODE;
-               sysfs_attr_init(&process->attr_pasid);
-               ret = sysfs_create_file(process->kobj, &process->attr_pasid);
-               if (ret)
-                       pr_warn("Creating pasid for pid %d failed",
-                                       (int)process->lead_thread->pid);
+               kfd_sysfs_create_file(process->kobj, &process->attr_pasid,
+                                     "pasid");
 
                process->kobj_queues = kobject_create_and_add("queues",
                                                        process->kobj);
                if (!process->kobj_queues)
                        pr_warn("Creating KFD proc/queues folder failed");
 
-               ret = kfd_procfs_add_sysfs_stats(process);
-               if (ret)
-                       pr_warn("Creating sysfs stats dir for pid %d failed",
-                               (int)process->lead_thread->pid);
-
-               ret = kfd_procfs_add_sysfs_files(process);
-               if (ret)
-                       pr_warn("Creating sysfs usage file for pid %d failed",
-                               (int)process->lead_thread->pid);
+               kfd_procfs_add_sysfs_stats(process);
+               kfd_procfs_add_sysfs_files(process);
        }
 out:
        if (!IS_ERR(process))