tree:   git://people.freedesktop.org/~gabbayo/linux habanalabs-next
head:   19b649b1933c3ed065426d612345115d15d90f23
commit: e4d7235a3c44a17cb0a70e8dde768b6345ba5dd4 [24/32] habanalabs: add new 
IOCTL for debug, tracing and profiling


coccinelle warnings: (new ones prefixed by >>)

>> drivers/misc/habanalabs/habanalabs_ioctl.c:143:10-17: WARNING opportunity 
>> for memdup_user

vim +143 drivers/misc/habanalabs/habanalabs_ioctl.c

   127  
   128  static int debug_coresight(struct hl_device *hdev, struct hl_debug_args 
*args)
   129  {
   130          struct hl_debug_params *params;
   131          void *input = NULL, *output = NULL;
   132          int rc;
   133  
   134          params = kzalloc(sizeof(*params), GFP_KERNEL);
   135          if (!params)
   136                  return -ENOMEM;
   137  
   138          params->reg_idx = args->reg_idx;
   139          params->enable = args->enable;
   140          params->op = args->op;
   141  
   142          if (args->input_ptr && args->input_size) {
 > 143                  input = kzalloc(args->input_size, GFP_KERNEL);
   144                  if (!input) {
   145                          rc = -ENOMEM;
   146                          goto out;
   147                  }
   148  
   149                  if (copy_from_user(input,
   150                                  (void __user *) (uintptr_t) 
args->input_ptr,
   151                                  args->input_size)) {
   152                          dev_err(hdev->dev,
   153                                  "copy from user failed in debug 
ioctl\n");
   154                          rc = -EFAULT;
   155                          goto out;
   156                  }
   157  
   158                  params->input = input;
   159          }
   160  
   161          if (args->output_ptr && args->output_size) {
   162                  output = kzalloc(args->output_size, GFP_KERNEL);
   163                  if (!output) {
   164                          rc = -ENOMEM;
   165                          goto out;
   166                  }
   167  
   168                  params->output = output;
   169                  params->output_size = args->output_size;
   170          }
   171  
   172          rc = hdev->asic_funcs->debug_coresight(hdev, params);
   173          if (rc) {
   174                  dev_err(hdev->dev,
   175                          "debug coresight operation failed %d\n", rc);
   176                  goto out;
   177          }
   178  
   179          if (output) {
   180                  if (copy_to_user((void __user *) (uintptr_t) 
args->output_ptr,
   181                                          output,
   182                                          args->output_size)) {
   183                          dev_err(hdev->dev,
   184                                  "copy to user failed in debug ioctl\n");
   185                          rc = -EFAULT;
   186                          goto out;
   187                  }
   188          }
   189  
   190  out:
   191          kfree(params);
   192          kfree(output);
   193          kfree(input);
   194  
   195          return rc;
   196  }
   197  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to