[PATCH v5 09/12] tee: add Qualcomm TEE driver
Dan Carpenter
dan.carpenter at linaro.org
Wed May 28 05:22:06 UTC 2025
Hi Amirreza,
kernel test robot noticed the following build warnings:
url: https://github.com/intel-lab-lkp/linux/commits/Amirreza-Zarrabi/tee-allow-a-driver-to-allocate-a-tee_device-without-a-pool/20250527-151020
base: 3be1a7a31fbda82f3604b6c31e4f390110de1b46
patch link: https://lore.kernel.org/r/20250526-qcom-tee-using-tee-ss-without-mem-obj-v5-9-024e3221b0b9%40oss.qualcomm.com
patch subject: [PATCH v5 09/12] tee: add Qualcomm TEE driver
config: x86_64-randconfig-161-20250528 (https://download.01.org/0day-ci/archive/20250528/202505280653.Y79JKqDd-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp at intel.com>
| Reported-by: Dan Carpenter <dan.carpenter at linaro.org>
| Closes: https://lore.kernel.org/r/202505280653.Y79JKqDd-lkp@intel.com/
smatch warnings:
drivers/tee/qcomtee/call.c:748 qcomtee_probe() warn: missing error code 'err'
vim +/err +748 drivers/tee/qcomtee/call.c
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 711 static int qcomtee_probe(struct platform_device *pdev)
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 712 {
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 713 struct workqueue_struct *async_wq;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 714 struct tee_device *teedev;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 715 struct tee_shm_pool *pool;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 716 struct tee_context *ctx;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 717 struct qcomtee *qcomtee;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 718 int err;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 719
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 720 qcomtee = kzalloc(sizeof(*qcomtee), GFP_KERNEL);
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 721 if (!qcomtee)
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 722 return -ENOMEM;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 723
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 724 pool = qcomtee_shm_pool_alloc();
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 725 if (IS_ERR(pool)) {
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 726 err = PTR_ERR(pool);
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 727
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 728 goto err_free_qcomtee;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 729 }
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 730
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 731 teedev = tee_device_alloc(&qcomtee_desc, NULL, pool, qcomtee);
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 732 if (IS_ERR(teedev)) {
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 733 err = PTR_ERR(teedev);
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 734
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 735 goto err_pool_destroy;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 736 }
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 737
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 738 qcomtee->teedev = teedev;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 739 qcomtee->pool = pool;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 740 err = tee_device_register(qcomtee->teedev);
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 741 if (err)
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 742 goto err_unreg_teedev;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 743
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 744 platform_set_drvdata(pdev, qcomtee);
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 745 /* Start async wq. */
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 746 async_wq = alloc_ordered_workqueue("qcomtee_wq", 0);
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 747 if (!async_wq)
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 @748 goto err_unreg_teedev;
err = -ENOMEM;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 749
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 750 qcomtee->wq = async_wq;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 751 /* Driver context used for async operations of teedev. */
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 752 ctx = teedev_open(qcomtee->teedev);
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 753 if (IS_ERR(ctx)) {
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 754 err = PTR_ERR(ctx);
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 755
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 756 goto err_dest_wq;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 757 }
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 758
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 759 qcomtee->ctx = ctx;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 760 /* Init Object table. */
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 761 qcomtee->xa_last_id = 0;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 762 xa_init_flags(&qcomtee->xa_local_objects, XA_FLAGS_ALLOC);
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 763 /* Get QTEE verion. */
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 764 qcomtee_get_qtee_feature_list(qcomtee->ctx,
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 765 QCOMTEE_FEATURE_VER_OP_GET_QTEE_ID,
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 766 &qtee_version);
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 767
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 768 pr_info("QTEE version %u.%u.%u\n",
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 769 QTEE_VERSION_GET_MAJOR(qtee_version),
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 770 QTEE_VERSION_GET_MINOR(qtee_version),
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 771 QTEE_VERSION_GET_PATCH(qtee_version));
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 772
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 773 return 0;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 774
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 775 err_dest_wq:
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 776 destroy_workqueue(qcomtee->wq);
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 777 err_unreg_teedev:
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 778 tee_device_unregister(qcomtee->teedev);
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 779 err_pool_destroy:
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 780 tee_shm_pool_free(pool);
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 781 err_free_qcomtee:
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 782 kfree(qcomtee);
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 783
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 784 return err;
accd33ce59c3367 Amirreza Zarrabi 2025-05-26 785 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the dri-devel
mailing list