* [linux-next:master 10392/13707] drivers/misc/habanalabs/common/command_submission.c:950 cs_ioctl_signal_wait() warn: should 'cb->id << 12' be a 64 bit
@ 2020-08-05 7:40 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-08-05 7:40 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 27844 bytes --]
CC: kbuild-all(a)lists.01.org
TO: Oded Gabbay <oded.gabbay@gmail.com>
CC: Omer Shpigelman <oshpigelman@habana.ai>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 1cfc1dba44c2b62b2856bf23624116eea9cd5627
commit: 70b2f993ea4a79c298aac4ec1c58089020536ba5 [10392/13707] habanalabs: create common folder
:::::: branch date: 23 hours ago
:::::: commit date: 12 days ago
config: i386-randconfig-m021-20200805 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/misc/habanalabs/common/command_submission.c:950 cs_ioctl_signal_wait() warn: should 'cb->id << 12' be a 64 bit type?
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=70b2f993ea4a79c298aac4ec1c58089020536ba5
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git remote update linux-next
git checkout 70b2f993ea4a79c298aac4ec1c58089020536ba5
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 <oshpigelman@habana.ai>
:::::: CC: Oded Gabbay <oded.gabbay@gmail.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32773 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-08-05 7:40 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-05 7:40 [linux-next:master 10392/13707] drivers/misc/habanalabs/common/command_submission.c:950 cs_ioctl_signal_wait() warn: should 'cb->id << 12' be a 64 bit kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.