tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   fc80c51fd4b23ec007e88d4c688f2cac1b8648e7
commit: 70b2f993ea4a79c298aac4ec1c58089020536ba5 habanalabs: create common 
folder
date:   2 weeks ago
config: riscv-randconfig-m031-20200810 (attached as .config)
compiler: riscv32-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

smatch warnings:
drivers/misc/habanalabs/common/command_submission.c:950 cs_ioctl_signal_wait() 
warn: should 'cb->id << (12)' be a 64 bit type?

vim +950 drivers/misc/habanalabs/common/command_submission.c

eff6f4a0e70b7b drivers/misc/habanalabs/command_submission.c Oded Gabbay     
2019-02-16  768  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  769  static int cs_ioctl_signal_wait(struct hl_fpriv *hpriv, enum 
hl_cs_type cs_type,
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  770                             void __user *chunks, u32 num_chunks,
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  771                             u64 *cs_seq)
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  772  {
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  773     struct hl_device *hdev = hpriv->hdev;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  774     struct hl_ctx *ctx = hpriv->ctx;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  775     struct hl_cs_chunk *cs_chunk_array, *chunk;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  776     struct hw_queue_properties *hw_queue_prop;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  777     struct dma_fence *sig_fence = NULL;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  778     struct hl_cs_job *job;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  779     struct hl_cs *cs;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  780     struct hl_cb *cb;
21e7a346344959 drivers/misc/habanalabs/command_submission.c Ofir Bitton     
2020-05-14  781     enum hl_queue_type q_type;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  782     u64 *signal_seq_arr = NULL, signal_seq;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  783     u32 size_to_copy, q_idx, signal_seq_arr_len, cb_size;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  784     int rc;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  785  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  786     *cs_seq = ULLONG_MAX;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  787  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  788     if (num_chunks > HL_MAX_JOBS_PER_CS) {
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  789             dev_err(hdev->dev,
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  790                     "Number of chunks can NOT be larger than 
%d\n",
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  791                     HL_MAX_JOBS_PER_CS);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  792             rc = -EINVAL;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  793             goto out;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  794     }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  795  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  796     cs_chunk_array = kmalloc_array(num_chunks, 
sizeof(*cs_chunk_array),
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  797                                     GFP_ATOMIC);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  798     if (!cs_chunk_array) {
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  799             rc = -ENOMEM;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  800             goto out;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  801     }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  802  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  803     size_to_copy = num_chunks * sizeof(struct hl_cs_chunk);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  804     if (copy_from_user(cs_chunk_array, chunks, size_to_copy)) {
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  805             dev_err(hdev->dev, "Failed to copy cs chunk array 
from user\n");
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  806             rc = -EFAULT;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  807             goto free_cs_chunk_array;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  808     }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  809  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  810     /* currently it is guaranteed to have only one chunk */
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  811     chunk = &cs_chunk_array[0];
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  812     q_idx = chunk->queue_index;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  813     hw_queue_prop = &hdev->asic_prop.hw_queues_props[q_idx];
21e7a346344959 drivers/misc/habanalabs/command_submission.c Ofir Bitton     
2020-05-14  814     q_type = hw_queue_prop->type;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  815  
3abc99bb7dcbc0 drivers/misc/habanalabs/command_submission.c Ofir Bitton     
2020-06-23  816     if ((q_idx >= hdev->asic_prop.max_queues) ||
21e7a346344959 drivers/misc/habanalabs/command_submission.c Ofir Bitton     
2020-05-14  817                     (!hw_queue_prop->supports_sync_stream)) {
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  818             dev_err(hdev->dev, "Queue index %d is invalid\n", 
q_idx);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  819             rc = -EINVAL;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  820             goto free_cs_chunk_array;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  821     }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  822  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  823     if (cs_type == CS_TYPE_WAIT) {
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  824             struct hl_cs_compl *sig_waitcs_cmpl;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  825  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  826             signal_seq_arr_len = chunk->num_signal_seq_arr;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  827  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  828             /* currently only one signal seq is supported */
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  829             if (signal_seq_arr_len != 1) {
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  830                     dev_err(hdev->dev,
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  831                             "Wait for signal CS supports only 
one signal CS seq\n");
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  832                     rc = -EINVAL;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  833                     goto free_cs_chunk_array;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  834             }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  835  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  836             signal_seq_arr = kmalloc_array(signal_seq_arr_len,
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  837                                             
sizeof(*signal_seq_arr),
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  838                                             GFP_ATOMIC);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  839             if (!signal_seq_arr) {
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  840                     rc = -ENOMEM;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  841                     goto free_cs_chunk_array;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  842             }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  843  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  844             size_to_copy = chunk->num_signal_seq_arr *
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  845                             sizeof(*signal_seq_arr);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  846             if (copy_from_user(signal_seq_arr,
05c8a4fc44a916 drivers/misc/habanalabs/command_submission.c Oded Gabbay     
2020-06-01  847                                     
u64_to_user_ptr(chunk->signal_seq_arr),
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  848                                     size_to_copy)) {
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  849                     dev_err(hdev->dev,
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  850                             "Failed to copy signal seq array 
from user\n");
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  851                     rc = -EFAULT;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  852                     goto free_signal_seq_array;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  853             }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  854  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  855             /* currently it is guaranteed to have only one 
signal seq */
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  856             signal_seq = signal_seq_arr[0];
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  857             sig_fence = hl_ctx_get_fence(ctx, signal_seq);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  858             if (IS_ERR(sig_fence)) {
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  859                     dev_err(hdev->dev,
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  860                             "Failed to get signal CS with seq 
0x%llx\n",
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  861                             signal_seq);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  862                     rc = PTR_ERR(sig_fence);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  863                     goto free_signal_seq_array;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  864             }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  865  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  866             if (!sig_fence) {
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  867                     /* signal CS already finished */
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  868                     rc = 0;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  869                     goto free_signal_seq_array;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  870             }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  871  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  872             sig_waitcs_cmpl =
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  873                     container_of(sig_fence, struct hl_cs_compl, 
base_fence);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  874  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  875             if (sig_waitcs_cmpl->type != CS_TYPE_SIGNAL) {
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  876                     dev_err(hdev->dev,
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  877                             "CS seq 0x%llx is not of a signal 
CS\n",
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  878                             signal_seq);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  879                     dma_fence_put(sig_fence);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  880                     rc = -EINVAL;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  881                     goto free_signal_seq_array;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  882             }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  883  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  884             if (dma_fence_is_signaled(sig_fence)) {
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  885                     /* signal CS already finished */
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  886                     dma_fence_put(sig_fence);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  887                     rc = 0;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  888                     goto free_signal_seq_array;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  889             }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  890     }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  891  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  892     /* increment refcnt for context */
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  893     hl_ctx_get(hdev, ctx);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  894  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  895     rc = allocate_cs(hdev, ctx, cs_type, &cs);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  896     if (rc) {
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  897             if (cs_type == CS_TYPE_WAIT)
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  898                     dma_fence_put(sig_fence);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  899             hl_ctx_put(ctx);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  900             goto free_signal_seq_array;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  901     }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  902  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  903     /*
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  904      * Save the signal CS fence for later initialization right 
before
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  905      * hanging the wait CS on the queue.
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  906      */
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  907     if (cs->type == CS_TYPE_WAIT)
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  908             cs->signal_fence = sig_fence;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  909  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  910     hl_debugfs_add_cs(cs);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  911  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  912     *cs_seq = cs->sequence;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  913  
21e7a346344959 drivers/misc/habanalabs/command_submission.c Ofir Bitton     
2020-05-14  914     job = hl_cs_allocate_job(hdev, q_type, true);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  915     if (!job) {
db491e4f08a9fd drivers/misc/habanalabs/command_submission.c Ofir Bitton     
2020-06-18  916             ctx->cs_counters.out_of_mem_drop_cnt++;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  917             dev_err(hdev->dev, "Failed to allocate a new 
job\n");
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  918             rc = -ENOMEM;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  919             goto put_cs;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  920     }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  921  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  922     cb = hl_cb_kernel_create(hdev, PAGE_SIZE);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  923     if (!cb) {
db491e4f08a9fd drivers/misc/habanalabs/command_submission.c Ofir Bitton     
2020-06-18  924             ctx->cs_counters.out_of_mem_drop_cnt++;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  925             kfree(job);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  926             rc = -EFAULT;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  927             goto put_cs;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  928     }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  929  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  930     if (cs->type == CS_TYPE_WAIT)
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  931             cb_size = hdev->asic_funcs->get_wait_cb_size(hdev);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  932     else
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  933             cb_size = 
hdev->asic_funcs->get_signal_cb_size(hdev);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  934  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  935     job->id = 0;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  936     job->cs = cs;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  937     job->user_cb = cb;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  938     job->user_cb->cs_cnt++;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  939     job->user_cb_size = cb_size;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  940     job->hw_queue_id = q_idx;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  941  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  942     /*
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  943      * No need in parsing, user CB is the patched CB.
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  944      * We call hl_cb_destroy() out of two reasons - we don't 
need the CB in
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  945      * the CB idr anymore and to decrement its refcount as it 
was
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  946      * incremented inside hl_cb_kernel_create().
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  947      */
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  948     job->patched_cb = job->user_cb;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  949     job->job_cb_size = job->user_cb_size;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07 @950     hl_cb_destroy(hdev, &hdev->kernel_cb_mgr, cb->id << 
PAGE_SHIFT);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  951  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  952     cs->jobs_in_queue_cnt[job->hw_queue_id]++;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  953  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  954     list_add_tail(&job->cs_node, &cs->job_list);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  955  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  956     /* increment refcount as for external queues we get 
completion */
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  957     cs_get(cs);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  958  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  959     hl_debugfs_add_job(hdev, job);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  960  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  961     rc = hl_hw_queue_schedule_cs(cs);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  962     if (rc) {
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  963             if (rc != -EAGAIN)
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  964                     dev_err(hdev->dev,
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  965                             "Failed to submit CS %d.%llu to H/W 
queues, error %d\n",
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  966                             ctx->asid, cs->sequence, rc);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  967             goto free_cs_object;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  968     }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  969  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  970     rc = HL_CS_STATUS_SUCCESS;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  971     goto put_cs;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  972  
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  973  free_cs_object:
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  974     cs_rollback(hdev, cs);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  975     *cs_seq = ULLONG_MAX;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  976     /* The path below is both for good and erroneous exits */
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  977  put_cs:
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  978     /* We finished with the CS in this function, so put the ref 
*/
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  979     cs_put(cs);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  980  free_signal_seq_array:
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  981     if (cs_type == CS_TYPE_WAIT)
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  982             kfree(signal_seq_arr);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  983  free_cs_chunk_array:
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  984     kfree(cs_chunk_array);
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  985  out:
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  986     return rc;
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  987  }
b75f22505ac97e drivers/misc/habanalabs/command_submission.c Omer Shpigelman 
2020-05-07  988  

:::::: The code at line 950 was first introduced by commit
:::::: b75f22505ac97ea680bcc3e23dcd56f421252b43 habanalabs: add signal/wait to 
CS IOCTL operations

:::::: TO: Omer Shpigelman <[email protected]>
:::::: CC: Oded Gabbay <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

Reply via email to