[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAMEGJJ1Rsjsa9CGB4Hv6ukf=xi41TTDRNf7nkrX4nQniEp+8zw@mail.gmail.com>
Date: Wed, 5 Nov 2025 15:17:01 +0000
From: Phil Elwell <phil@...pberrypi.com>
To: Dan Carpenter <dan.carpenter@...aro.org>
Cc: oe-kbuild@...ts.linux.dev, Jai Luthra <jai.luthra@...asonboard.com>,
Florian Fainelli <florian.fainelli@...adcom.com>,
Broadcom internal kernel review list <bcm-kernel-feedback-list@...adcom.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Ray Jui <rjui@...adcom.com>,
Scott Branden <sbranden@...adcom.com>, lkp@...el.com, oe-kbuild-all@...ts.linux.dev,
linux-rpi-kernel@...ts.infradead.org, linux-arm-kernel@...ts.infradead.org,
linux-staging@...ts.linux.dev, linux-kernel@...r.kernel.org,
kernel-list@...pberrypi.com, Stefan Wahren <wahrenst@....net>,
Dave Stevenson <dave.stevenson@...pberrypi.com>,
Laurent Pinchart <laurent.pinchart@...asonboard.com>,
Kieran Bingham <kieran.bingham@...asonboard.com>, Umang Jain <uajain@...lia.com>
Subject: Re: [PATCH v3 6/7] platform/raspberrypi: Destage VCHIQ interface
Hi Dan,
On Wed, 5 Nov 2025 at 15:00, Dan Carpenter <dan.carpenter@...aro.org> wrote:
>
> Hi Jai,
>
> kernel test robot noticed the following build warnings:
>
> url: https://github.com/intel-lab-lkp/linux/commits/Jai-Luthra/staging-vc04_services-Drop-bcm2835-camera-driver/20251029-184912
> base: dcb6fa37fd7bc9c3d2b066329b0d27dedf8becaa
> patch link: https://lore.kernel.org/r/20251029-vchiq-destage-v3-6-da8d6c83c2c5%40ideasonboard.com
> patch subject: [PATCH v3 6/7] platform/raspberrypi: Destage VCHIQ interface
> config: arm-randconfig-r071-20251102 (https://download.01.org/0day-ci/archive/20251103/202511031105.3z4Gf3FT-lkp@intel.com/config)
> compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project d2625a438020ad35330cda29c3def102c1687b1b)
>
> 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@...el.com>
> | Reported-by: Dan Carpenter <dan.carpenter@...aro.org>
> | Closes: https://lore.kernel.org/r/202511031105.3z4Gf3FT-lkp@intel.com/
>
> smatch warnings:
> drivers/platform/raspberrypi/vchiq-interface/vchiq_dev.c:602 vchiq_ioctl() warn: iterator 'i' not incremented
> drivers/platform/raspberrypi/vchiq-interface/vchiq_dev.c:1250 vchiq_release() warn: iterator 'i' not incremented
>
> vim +/i +602 drivers/platform/raspberrypi/vchiq-interface/vchiq_dev.c
>
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 583 static long
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 584 vchiq_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 585 {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 586 struct vchiq_instance *instance = file->private_data;
> 3414994ba84042 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2022-12-23 587 int status = 0;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 588 struct vchiq_service *service = NULL;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 589 long ret = 0;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 590 int i, rc;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 591
> 96622d58f50b8f drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Thomas Weißschuh 2025-03-11 592 dev_dbg(instance->state->dev, "arm: instance %p, cmd %s, arg %lx\n", instance,
> 8757f705d936ad drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Gaston Gonzalez 2021-09-12 593 ((_IOC_TYPE(cmd) == VCHIQ_IOC_MAGIC) && (_IOC_NR(cmd) <= VCHIQ_IOC_MAX)) ?
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 594 ioctl_names[_IOC_NR(cmd)] : "<invalid>", arg);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 595
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 596 switch (cmd) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 597 case VCHIQ_IOC_SHUTDOWN:
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 598 if (!instance->connected)
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 599 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 600
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 601 /* Remove all services */
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 @602 i = 0;
>
> i is not used any more. Delete.
No, don't do that. It's passed as an in/out parameter to
next_service_by_instance - it maintains the iterator position. This is
a false positive.
>
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 603 while ((service = next_service_by_instance(instance->state,
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 604 instance, &i))) {
> 14780bb174266e drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Adrien Thierry 2022-05-18 605 status = vchiq_remove_service(instance, service->handle);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 606 vchiq_service_put(service);
> 3414994ba84042 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2022-12-23 607 if (status)
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 608 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 609 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 610 service = NULL;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 611
> 3414994ba84042 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2022-12-23 612 if (!status) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 613 /* Wake the completion thread and ask it to exit */
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 614 instance->closing = 1;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 615 complete(&instance->insert_event);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 616 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 617
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 618 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 619
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 620 case VCHIQ_IOC_CONNECT:
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 621 if (instance->connected) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 622 ret = -EINVAL;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 623 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 624 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 625 rc = mutex_lock_killable(&instance->state->mutex);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 626 if (rc) {
> e70f17ed997cb7 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2023-12-05 627 dev_err(instance->state->dev,
> e70f17ed997cb7 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2023-12-05 628 "arm: vchiq: connect: could not lock mutex for state %d: %d\n",
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 629 instance->state->id, rc);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 630 ret = -EINTR;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 631 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 632 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 633 status = vchiq_connect_internal(instance->state, instance);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 634 mutex_unlock(&instance->state->mutex);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 635
> 3414994ba84042 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2022-12-23 636 if (!status)
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 637 instance->connected = 1;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 638 else
> e70f17ed997cb7 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2023-12-05 639 dev_err(instance->state->dev,
> e70f17ed997cb7 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2023-12-05 640 "arm: vchiq: could not connect: %d\n", status);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 641 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 642
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 643 case VCHIQ_IOC_CREATE_SERVICE: {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 644 struct vchiq_create_service __user *argp;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 645 struct vchiq_create_service args;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 646
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 647 argp = (void __user *)arg;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 648 if (copy_from_user(&args, argp, sizeof(args))) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 649 ret = -EFAULT;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 650 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 651 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 652
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 653 ret = vchiq_ioc_create_service(instance, &args);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 654 if (ret < 0)
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 655 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 656
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 657 if (put_user(args.handle, &argp->handle)) {
> 14780bb174266e drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Adrien Thierry 2022-05-18 658 vchiq_remove_service(instance, args.handle);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 659 ret = -EFAULT;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 660 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 661 } break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 662
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 663 case VCHIQ_IOC_CLOSE_SERVICE:
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 664 case VCHIQ_IOC_REMOVE_SERVICE: {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 665 unsigned int handle = (unsigned int)arg;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 666 struct user_service *user_service;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 667
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 668 service = find_service_for_instance(instance, handle);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 669 if (!service) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 670 ret = -EINVAL;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 671 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 672 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 673
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 674 user_service = service->base.userdata;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 675
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 676 /*
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 677 * close_pending is false on first entry, and when the
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 678 * wait in vchiq_close_service has been interrupted.
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 679 */
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 680 if (!user_service->close_pending) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 681 status = (cmd == VCHIQ_IOC_CLOSE_SERVICE) ?
> 14780bb174266e drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Adrien Thierry 2022-05-18 682 vchiq_close_service(instance, service->handle) :
> 14780bb174266e drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Adrien Thierry 2022-05-18 683 vchiq_remove_service(instance, service->handle);
> 3414994ba84042 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2022-12-23 684 if (status)
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 685 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 686 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 687
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 688 /*
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 689 * close_pending is true once the underlying service
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 690 * has been closed until the client library calls the
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 691 * CLOSE_DELIVERED ioctl, signalling close_event.
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 692 */
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 693 if (user_service->close_pending &&
> 8757f705d936ad drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Gaston Gonzalez 2021-09-12 694 wait_for_completion_interruptible(&user_service->close_event))
> 82a9eb4a3561e1 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2022-12-23 695 status = -EAGAIN;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 696 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 697 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 698
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 699 case VCHIQ_IOC_USE_SERVICE:
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 700 case VCHIQ_IOC_RELEASE_SERVICE: {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 701 unsigned int handle = (unsigned int)arg;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 702
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 703 service = find_service_for_instance(instance, handle);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 704 if (service) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 705 ret = (cmd == VCHIQ_IOC_USE_SERVICE) ?
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 706 vchiq_use_service_internal(service) :
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 707 vchiq_release_service_internal(service);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 708 if (ret) {
> e70f17ed997cb7 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2023-12-05 709 dev_err(instance->state->dev,
> e70f17ed997cb7 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2023-12-05 710 "suspend: cmd %s returned error %ld for service %p4cc:%03d\n",
> e70f17ed997cb7 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2023-12-05 711 (cmd == VCHIQ_IOC_USE_SERVICE) ?
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 712 "VCHIQ_IOC_USE_SERVICE" :
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 713 "VCHIQ_IOC_RELEASE_SERVICE",
> ae094de38e430e drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2023-10-25 714 ret, &service->base.fourcc,
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 715 service->client_id);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 716 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 717 } else {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 718 ret = -EINVAL;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 719 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 720 } break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 721
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 722 case VCHIQ_IOC_QUEUE_MESSAGE: {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 723 struct vchiq_queue_message args;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 724
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 725 if (copy_from_user(&args, (const void __user *)arg,
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 726 sizeof(args))) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 727 ret = -EFAULT;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 728 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 729 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 730
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 731 service = find_service_for_instance(instance, args.handle);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 732
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 733 if (service && (args.count <= MAX_ELEMENTS)) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 734 /* Copy elements into kernel space */
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 735 struct vchiq_element elements[MAX_ELEMENTS];
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 736
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 737 if (copy_from_user(elements, args.elements,
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 738 args.count * sizeof(struct vchiq_element)) == 0)
> 14780bb174266e drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Adrien Thierry 2022-05-18 739 ret = vchiq_ioc_queue_message(instance, args.handle, elements,
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 740 args.count);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 741 else
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 742 ret = -EFAULT;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 743 } else {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 744 ret = -EINVAL;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 745 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 746 } break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 747
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 748 case VCHIQ_IOC_QUEUE_BULK_TRANSMIT:
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 749 case VCHIQ_IOC_QUEUE_BULK_RECEIVE: {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 750 struct vchiq_queue_bulk_transfer args;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 751 struct vchiq_queue_bulk_transfer __user *argp;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 752
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 753 enum vchiq_bulk_dir dir =
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 754 (cmd == VCHIQ_IOC_QUEUE_BULK_TRANSMIT) ?
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 755 VCHIQ_BULK_TRANSMIT : VCHIQ_BULK_RECEIVE;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 756
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 757 argp = (void __user *)arg;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 758 if (copy_from_user(&args, argp, sizeof(args))) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 759 ret = -EFAULT;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 760 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 761 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 762
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 763 ret = vchiq_irq_queue_bulk_tx_rx(instance, &args,
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 764 dir, &argp->mode);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 765 } break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 766
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 767 case VCHIQ_IOC_AWAIT_COMPLETION: {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 768 struct vchiq_await_completion args;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 769 struct vchiq_await_completion __user *argp;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 770
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 771 argp = (void __user *)arg;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 772 if (copy_from_user(&args, argp, sizeof(args))) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 773 ret = -EFAULT;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 774 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 775 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 776
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 777 ret = vchiq_ioc_await_completion(instance, &args,
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 778 &argp->msgbufcount);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 779 } break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 780
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 781 case VCHIQ_IOC_DEQUEUE_MESSAGE: {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 782 struct vchiq_dequeue_message args;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 783
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 784 if (copy_from_user(&args, (const void __user *)arg,
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 785 sizeof(args))) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 786 ret = -EFAULT;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 787 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 788 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 789
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 790 ret = vchiq_ioc_dequeue_message(instance, &args);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 791 } break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 792
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 793 case VCHIQ_IOC_GET_CLIENT_ID: {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 794 unsigned int handle = (unsigned int)arg;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 795
> bad44825fbf5ad drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Adrien Thierry 2022-05-18 796 ret = vchiq_get_client_id(instance, handle);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 797 } break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 798
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 799 case VCHIQ_IOC_GET_CONFIG: {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 800 struct vchiq_get_config args;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 801 struct vchiq_config config;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 802
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 803 if (copy_from_user(&args, (const void __user *)arg,
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 804 sizeof(args))) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 805 ret = -EFAULT;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 806 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 807 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 808 if (args.config_size > sizeof(config)) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 809 ret = -EINVAL;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 810 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 811 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 812
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 813 vchiq_get_config(&config);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 814 if (copy_to_user(args.pconfig, &config, args.config_size)) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 815 ret = -EFAULT;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 816 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 817 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 818 } break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 819
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 820 case VCHIQ_IOC_SET_SERVICE_OPTION: {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 821 struct vchiq_set_service_option args;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 822
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 823 if (copy_from_user(&args, (const void __user *)arg,
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 824 sizeof(args))) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 825 ret = -EFAULT;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 826 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 827 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 828
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 829 service = find_service_for_instance(instance, args.handle);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 830 if (!service) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 831 ret = -EINVAL;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 832 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 833 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 834
> 14780bb174266e drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Adrien Thierry 2022-05-18 835 ret = vchiq_set_service_option(instance, args.handle, args.option,
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 836 args.value);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 837 } break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 838
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 839 case VCHIQ_IOC_LIB_VERSION: {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 840 unsigned int lib_version = (unsigned int)arg;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 841
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 842 if (lib_version < VCHIQ_VERSION_MIN)
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 843 ret = -EINVAL;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 844 else if (lib_version >= VCHIQ_VERSION_CLOSE_DELIVERED)
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 845 instance->use_close_delivered = 1;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 846 } break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 847
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 848 case VCHIQ_IOC_CLOSE_DELIVERED: {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 849 unsigned int handle = (unsigned int)arg;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 850
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 851 service = find_closed_service_for_instance(instance, handle);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 852 if (service) {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 853 struct user_service *user_service =
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 854 (struct user_service *)service->base.userdata;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 855 close_delivered(user_service);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 856 } else {
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 857 ret = -EINVAL;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 858 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 859 } break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 860
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 861 default:
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 862 ret = -ENOTTY;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 863 break;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 864 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 865
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 866 if (service)
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 867 vchiq_service_put(service);
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 868
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 869 if (ret == 0) {
> ab73dc85328195 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2022-12-23 870 if (status == -EINVAL)
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 871 ret = -EIO;
> 82a9eb4a3561e1 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2022-12-23 872 else if (status == -EAGAIN)
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 873 ret = -EINTR;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 874 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 875
> f67af5940d6d2e drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2023-10-24 876 if (!status && (ret < 0) && (ret != -EINTR) && (ret != -EWOULDBLOCK)) {
> 55e23aa95b1073 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2023-12-05 877 dev_dbg(instance->state->dev,
> 96622d58f50b8f drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Thomas Weißschuh 2025-03-11 878 "arm: ioctl instance %p, cmd %s -> status %d, %ld\n",
> 8757f705d936ad drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Gaston Gonzalez 2021-09-12 879 instance, (_IOC_NR(cmd) <= VCHIQ_IOC_MAX) ?
> 8757f705d936ad drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Gaston Gonzalez 2021-09-12 880 ioctl_names[_IOC_NR(cmd)] : "<invalid>", status, ret);
> f67af5940d6d2e drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2023-10-24 881 } else {
> 078666d7ee6d3c drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2023-12-05 882 dev_dbg(instance->state->dev,
> 96622d58f50b8f drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Thomas Weißschuh 2025-03-11 883 "arm: ioctl instance %p, cmd %s -> status %d\n, %ld\n",
> 8757f705d936ad drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Gaston Gonzalez 2021-09-12 884 instance, (_IOC_NR(cmd) <= VCHIQ_IOC_MAX) ?
> 8757f705d936ad drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Gaston Gonzalez 2021-09-12 885 ioctl_names[_IOC_NR(cmd)] : "<invalid>", status, ret);
> f67af5940d6d2e drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Umang Jain 2023-10-24 886 }
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 887
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 888 return ret;
> f05916281fd75d drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c Ojaswin Mujoo 2021-07-21 889 }
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
>
Powered by blists - more mailing lists