public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Michael Grzeschik <mgr@pengutronix.de>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: linux-usb@vger.kernel.org, linux-media@vger.kernel.org,
	gregkh@linuxfoundation.org, balbi@kernel.org,
	kernel@pengutronix.de,
	Daniel Scally <dan.scally@ideasonboard.com>
Subject: Re: [PATCH v7] usb: gadget: uvc: add validate and fix function for uvc response
Date: Tue, 29 Nov 2022 16:22:59 +0100	[thread overview]
Message-ID: <20221129152259.GQ18924@pengutronix.de> (raw)
In-Reply-To: <Y4X0unPRK7iAnfaH@pendragon.ideasonboard.com>

[-- Attachment #1: Type: text/plain, Size: 2332 bytes --]

On Tue, Nov 29, 2022 at 02:02:02PM +0200, Laurent Pinchart wrote:
>Hi Michael,
>
>On Tue, Nov 29, 2022 at 11:23:08AM +0100, Michael Grzeschik wrote:
>> On Tue, Nov 29, 2022 at 05:10:24AM +0200, Laurent Pinchart wrote:
>> > On Mon, Nov 28, 2022 at 11:31:25AM +0100, Michael Grzeschik wrote:
>> >> When the userspace gets the setup requests for UVC_GET_CUR UVC_GET_MIN,
>> >> UVC_GET_MAX, UVC_GET_DEF it will fill out the ctrl response. This data
>> >> needs to be validated. Since the kernel also knows the limits for valid
>> >> cases, it can fixup the values in case the userspace is setting invalid
>> >> data.
>> >
>> > Why is this a good idea ?
>>
>> Why is it not? We don't want the userspace to communicate other things
>> to the host than what is configured in the configfs. If you only object
>> the explanation, then I will improve the commit message and send an
>> fixed v8. If you have more objections please share your doubts, thanks.
>
>What bothers me is that this patch silently clamps invalid value, trying
>to hide the gadget userspace error from the host. It may allow the host
>to proceed one step further, but if the gadget userspace got it wrong in
>the first place, there's a very high chance it won't do the right thing
>in the next step anyway. This will make debugging more complicated,
>while at the same time not bringing much value.

I discussed this and we came up with a better approach. When the
userspace will send UVCIOC_SEND_RESPONSE we can return with a negativ
return value. Like EAGAIN if the validation was seeeing some trouble
with the userspaces uvc_streaming_control feedback to the host.

The validation code will then still fixup the data, but instead of
transfering this manipulated answer to the host, it will return the
changes to the application with EAGAIN. So now the userspace can
react to it and it should even point out misconfigurations between
kernel and userspace and so will simplify the debugging.

How about that?

Michael

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2022-11-29 15:23 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-28 10:31 [PATCH v7] usb: gadget: uvc: add validate and fix function for uvc response Michael Grzeschik
2022-11-29  3:10 ` Laurent Pinchart
2022-11-29 10:23   ` Michael Grzeschik
2022-11-29 11:15     ` Dan Scally
2022-11-29 12:02     ` Laurent Pinchart
2022-11-29 15:22       ` Michael Grzeschik [this message]
2022-11-29 21:56         ` Michael Grzeschik
2022-12-03 21:29         ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221129152259.GQ18924@pengutronix.de \
    --to=mgr@pengutronix.de \
    --cc=balbi@kernel.org \
    --cc=dan.scally@ideasonboard.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=kernel@pengutronix.de \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox