lkml.org 
[lkml]   [2022]   [Nov]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v3 RESEND 3/9] crypto/ycc: Add irq support for ycc kernel rings
    Hi 'Guanjun',

    https://git-scm.com/docs/git-format-patch#_base_tree_information]

    url: https://github.com/intel-lab-lkp/linux/commits/Guanjun/Drivers-for-Alibaba-YCC-Yitian-Cryptography-Complex-cryptographic-accelerator/20221103-154448
    base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
    patch link: https://lore.kernel.org/r/1667461243-48652-4-git-send-email-guanjun%40linux.alibaba.com
    patch subject: [PATCH v3 RESEND 3/9] crypto/ycc: Add irq support for ycc kernel rings
    config: ia64-randconfig-m031-20221104
    compiler: ia64-linux-gcc (GCC) 12.1.0

    If you fix the issue, kindly add following tag where applicable
    | Reported-by: kernel test robot <lkp@intel.com>
    | Reported-by: Dan Carpenter <error27@gmail.com>

    smatch warnings:
    drivers/crypto/ycc/ycc_isr.c:124 ycc_alloc_irqs() warn: missing error code 'ret'

    vim +/ret +124 drivers/crypto/ycc/ycc_isr.c

    99da43fc5ee114 Zelin Deng 2022-11-03 98
    99da43fc5ee114 Zelin Deng 2022-11-03 99 int ycc_alloc_irqs(struct ycc_dev *ydev)
    99da43fc5ee114 Zelin Deng 2022-11-03 100 {
    99da43fc5ee114 Zelin Deng 2022-11-03 101 struct pci_dev *rcec_pdev = ydev->assoc_dev->pdev;
    99da43fc5ee114 Zelin Deng 2022-11-03 102 int num = ydev->is_vf ? 1 : YCC_RINGPAIR_NUM;
    3c2d80e20cfe81 Zelin Deng 2022-11-03 103 int cpu, cpus = num_online_cpus();
    3c2d80e20cfe81 Zelin Deng 2022-11-03 104 int ret, i, j;
    99da43fc5ee114 Zelin Deng 2022-11-03 105
    3c2d80e20cfe81 Zelin Deng 2022-11-03 106 /* The 0 - (YCC_RINGPAIR_NUM-1) are rings irqs, the last one is dev error irq */
    99da43fc5ee114 Zelin Deng 2022-11-03 107 sprintf(ydev->err_irq_name, "ycc_dev_%d_global_err", ydev->id);
    99da43fc5ee114 Zelin Deng 2022-11-03 108 ret = request_irq(pci_irq_vector(rcec_pdev, num),
    99da43fc5ee114 Zelin Deng 2022-11-03 109 ycc_g_err_isr, 0, ydev->err_irq_name, ydev);
    3c2d80e20cfe81 Zelin Deng 2022-11-03 110 if (ret) {
    99da43fc5ee114 Zelin Deng 2022-11-03 111 pr_err("Failed to alloc global irq interrupt for dev: %d\n", ydev->id);
    3c2d80e20cfe81 Zelin Deng 2022-11-03 112 goto out;
    3c2d80e20cfe81 Zelin Deng 2022-11-03 113 }
    3c2d80e20cfe81 Zelin Deng 2022-11-03 114
    3c2d80e20cfe81 Zelin Deng 2022-11-03 115 if (ydev->is_polling)
    3c2d80e20cfe81 Zelin Deng 2022-11-03 116 goto out;
    3c2d80e20cfe81 Zelin Deng 2022-11-03 117
    3c2d80e20cfe81 Zelin Deng 2022-11-03 118 for (i = 0; i < num; i++) {
    3c2d80e20cfe81 Zelin Deng 2022-11-03 119 if (ydev->rings[i].type != KERN_RING)
    3c2d80e20cfe81 Zelin Deng 2022-11-03 120 continue;
    3c2d80e20cfe81 Zelin Deng 2022-11-03 121
    3c2d80e20cfe81 Zelin Deng 2022-11-03 122 ydev->msi_name[i] = kzalloc(16, GFP_KERNEL);
    3c2d80e20cfe81 Zelin Deng 2022-11-03 123 if (!ydev->msi_name[i])
    3c2d80e20cfe81 Zelin Deng 2022-11-03 @124 goto free_irq;

    ret = -ENOMEM;

    3c2d80e20cfe81 Zelin Deng 2022-11-03 125 snprintf(ydev->msi_name[i], 16, "ycc_ring_%d", i);
    3c2d80e20cfe81 Zelin Deng 2022-11-03 126 ret = request_irq(pci_irq_vector(rcec_pdev, i), ycc_resp_isr,
    3c2d80e20cfe81 Zelin Deng 2022-11-03 127 0, ydev->msi_name[i], &ydev->rings[i]);
    3c2d80e20cfe81 Zelin Deng 2022-11-03 128 if (ret) {
    3c2d80e20cfe81 Zelin Deng 2022-11-03 129 kfree(ydev->msi_name[i]);
    3c2d80e20cfe81 Zelin Deng 2022-11-03 130 goto free_irq;
    3c2d80e20cfe81 Zelin Deng 2022-11-03 131 }
    3c2d80e20cfe81 Zelin Deng 2022-11-03 132 if (!ydev->is_vf)
    3c2d80e20cfe81 Zelin Deng 2022-11-03 133 cpu = (i % YCC_RINGPAIR_NUM) % cpus;
    3c2d80e20cfe81 Zelin Deng 2022-11-03 134 else
    3c2d80e20cfe81 Zelin Deng 2022-11-03 135 cpu = smp_processor_id() % cpus;
    3c2d80e20cfe81 Zelin Deng 2022-11-03 136
    3c2d80e20cfe81 Zelin Deng 2022-11-03 137 ret = irq_set_affinity_hint(pci_irq_vector(rcec_pdev, i),
    3c2d80e20cfe81 Zelin Deng 2022-11-03 138 get_cpu_mask(cpu));
    3c2d80e20cfe81 Zelin Deng 2022-11-03 139 if (ret) {
    3c2d80e20cfe81 Zelin Deng 2022-11-03 140 free_irq(pci_irq_vector(rcec_pdev, i), &ydev->rings[i]);
    3c2d80e20cfe81 Zelin Deng 2022-11-03 141 kfree(ydev->msi_name[i]);
    3c2d80e20cfe81 Zelin Deng 2022-11-03 142 goto free_irq;
    3c2d80e20cfe81 Zelin Deng 2022-11-03 143 }
    3c2d80e20cfe81 Zelin Deng 2022-11-03 144 }
    3c2d80e20cfe81 Zelin Deng 2022-11-03 145
    3c2d80e20cfe81 Zelin Deng 2022-11-03 146 return 0;
    3c2d80e20cfe81 Zelin Deng 2022-11-03 147
    3c2d80e20cfe81 Zelin Deng 2022-11-03 148 free_irq:
    3c2d80e20cfe81 Zelin Deng 2022-11-03 149 for (j = 0; j < i; j++) {
    3c2d80e20cfe81 Zelin Deng 2022-11-03 150 if (ydev->rings[i].type != KERN_RING)
    3c2d80e20cfe81 Zelin Deng 2022-11-03 151 continue;
    3c2d80e20cfe81 Zelin Deng 2022-11-03 152
    3c2d80e20cfe81 Zelin Deng 2022-11-03 153 free_irq(pci_irq_vector(rcec_pdev, j), &ydev->rings[j]);
    3c2d80e20cfe81 Zelin Deng 2022-11-03 154 kfree(ydev->msi_name[j]);
    3c2d80e20cfe81 Zelin Deng 2022-11-03 155 }
    3c2d80e20cfe81 Zelin Deng 2022-11-03 156 free_irq(pci_irq_vector(rcec_pdev, num), ydev);
    3c2d80e20cfe81 Zelin Deng 2022-11-03 157 out:
    99da43fc5ee114 Zelin Deng 2022-11-03 158
    99da43fc5ee114 Zelin Deng 2022-11-03 159 return ret;
    99da43fc5ee114 Zelin Deng 2022-11-03 160 }

    --
    0-DAY CI Kernel Test Service
    https://01.org/lkp

    \
     
     \ /
      Last update: 2022-11-07 08:51    [W:3.252 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site