[{"id":15492,"web_url":"https://patchwork.libcamera.org/comment/15492/","msgid":"<20210305195656.yw652bdrorcpnokl@uno.localdomain>","date":"2021-03-05T19:56:56","subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_videodevice:\n\tPrevent queueing buffers without a cache","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Kieran,\n\nOn Wed, Mar 03, 2021 at 05:04:26PM +0000, Kieran Bingham wrote:\n> The v4l2 buffer cache allows us to map incoming buffers to an instance\n> of the V4L2 Buffer required to actually queue.\n>\n> If the cache_ is not available, then the buffers required to allow\n> queuing to a device have been released, and this indicates an issue at\n> the pipeline handler.\n>\n> This could be a common mistake, as it could happen if a pipeline handler\n> always requeues buffers to the device after they complete, without\n> checking if they are cancelled.\n>\n> That can then lead to trying to queue a buffer to a device which no\n> longer expects buffers, so add a loud message to indicate what has\n> happened but return an error without fatally crashing.\n>\n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nPersonally I lean a bit towards Laurent's opinion that this should be\nrather be made fatal and pipeline handler fixed.\n\nAter all this is not application facing and happens during pipeline\ndevelopment, so it won't disappoint any user but rather make sure\ndevelopers notices this.\n\nIf the two of you agree this is ok as an Error, plese add my tag\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n   j\n\n> ---\n>  src/libcamera/v4l2_videodevice.cpp | 10 ++++++++++\n>  1 file changed, 10 insertions(+)\n>\n> diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp\n> index c77e1aff7978..6129ce529afc 100644\n> --- a/src/libcamera/v4l2_videodevice.cpp\n> +++ b/src/libcamera/v4l2_videodevice.cpp\n> @@ -1390,6 +1390,16 @@ int V4L2VideoDevice::queueBuffer(FrameBuffer *buffer)\n>  \tstruct v4l2_buffer buf = {};\n>  \tint ret;\n>\n> +\t/*\n> +\t * Pipeline handlers should not requeue buffers after releasing the\n> +\t * buffers on the device. Any occurence of this error should be fixed\n> +\t * in the pipeline handler directly.\n> +\t */\n> +\tif (!cache_) {\n> +\t\tLOG(V4L2, Error) << \"No BufferCache available to queue.\";\n> +\t\treturn -ENOENT;\n> +\t}\n> +\n>  \tret = cache_->get(*buffer);\n>  \tif (ret < 0)\n>  \t\treturn ret;\n> --\n> 2.25.1\n>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id B72EFBD80C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  5 Mar 2021 19:56:29 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3C74568A99;\n\tFri,  5 Mar 2021 20:56:29 +0100 (CET)","from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net\n\t[217.70.183.198])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3742B68A69\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  5 Mar 2021 20:56:28 +0100 (CET)","from uno.localdomain (host-79-22-58-175.retail.telecomitalia.it\n\t[79.22.58.175]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay6-d.mail.gandi.net (Postfix) with ESMTPSA id 84627C0005;\n\tFri,  5 Mar 2021 19:56:27 +0000 (UTC)"],"X-Originating-IP":"79.22.58.175","Date":"Fri, 5 Mar 2021 20:56:56 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20210305195656.yw652bdrorcpnokl@uno.localdomain>","References":"<20210303170426.189648-1-kieran.bingham@ideasonboard.com>\n\t<20210303170426.189648-4-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20210303170426.189648-4-kieran.bingham@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_videodevice:\n\tPrevent queueing buffers without a cache","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":15523,"web_url":"https://patchwork.libcamera.org/comment/15523/","msgid":"<YEY9NjzFfQsPMHXH@pendragon.ideasonboard.com>","date":"2021-03-08T15:05:26","subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_videodevice:\n\tPrevent queueing buffers without a cache","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nThank you for the patch.\n\nOn Wed, Mar 03, 2021 at 05:04:26PM +0000, Kieran Bingham wrote:\n> The v4l2 buffer cache allows us to map incoming buffers to an instance\n> of the V4L2 Buffer required to actually queue.\n> \n> If the cache_ is not available, then the buffers required to allow\n> queuing to a device have been released, and this indicates an issue at\n> the pipeline handler.\n> \n> This could be a common mistake, as it could happen if a pipeline handler\n> always requeues buffers to the device after they complete, without\n> checking if they are cancelled.\n> \n> That can then lead to trying to queue a buffer to a device which no\n> longer expects buffers, so add a loud message to indicate what has\n> happened but return an error without fatally crashing.\n\nAs discussed in replies to the cover letter, this should be a fatal\nerror. I'm fine relaxing to check with an error instead until we fix the\nIPU3 pipeline handler to avoid blocking IPA development. Could the\ncommit message be reworded to explain that this is a fatal error as it\ndenotes a bug in the pipeline handler that can also likely result in\nother undefined behaviour, but that it's currently downgraded to a\nnormal error to avoid blocking development ?\n\n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> ---\n>  src/libcamera/v4l2_videodevice.cpp | 10 ++++++++++\n>  1 file changed, 10 insertions(+)\n> \n> diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp\n> index c77e1aff7978..6129ce529afc 100644\n> --- a/src/libcamera/v4l2_videodevice.cpp\n> +++ b/src/libcamera/v4l2_videodevice.cpp\n> @@ -1390,6 +1390,16 @@ int V4L2VideoDevice::queueBuffer(FrameBuffer *buffer)\n>  \tstruct v4l2_buffer buf = {};\n>  \tint ret;\n>  \n> +\t/*\n> +\t * Pipeline handlers should not requeue buffers after releasing the\n> +\t * buffers on the device. Any occurence of this error should be fixed\n> +\t * in the pipeline handler directly.\n> +\t */\n> +\tif (!cache_) {\n\n\t\t/* \\todo Make this a Fatal error */\n\n?\n\n> +\t\tLOG(V4L2, Error) << \"No BufferCache available to queue.\";\n\nI'd write \"No buffers allocated\", or \"Can't queue a buffer with no\nbuffers allocated\", as that's what is visible to pipeline handlers (the\ncache is an internal implementation detail).\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> +\t\treturn -ENOENT;\n> +\t}\n> +\n>  \tret = cache_->get(*buffer);\n>  \tif (ret < 0)\n>  \t\treturn ret;","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 6CF15BD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  8 Mar 2021 15:05:59 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D853468AA0;\n\tMon,  8 Mar 2021 16:05:58 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id ABCAF68A92\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  8 Mar 2021 16:05:57 +0100 (CET)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 1CEB3AC1;\n\tMon,  8 Mar 2021 16:05:57 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"F4MgAjiQ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1615215957;\n\tbh=jMs33vY8W7JchiQa52rQyZb08UK1g96ftXzPEq6dWIw=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=F4MgAjiQ6D3i1qmG5UOGeWcRlRfo0jkXsCNJYp/fBKSpI5Y8SZXZ6S8xlwwyySFCR\n\t4+77qOfs6U//Jrf3dnjC5hJGZhQbukx1Gg/lRX2fI7jqTN51R6ZBYJ8fUvDDcZ/qmv\n\tbTxLsSX1iM8P/qUfO63kHQxT3ug66I5/9mhIQ7Ys=","Date":"Mon, 8 Mar 2021 17:05:26 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<YEY9NjzFfQsPMHXH@pendragon.ideasonboard.com>","References":"<20210303170426.189648-1-kieran.bingham@ideasonboard.com>\n\t<20210303170426.189648-4-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20210303170426.189648-4-kieran.bingham@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_videodevice:\n\tPrevent queueing buffers without a cache","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":15525,"web_url":"https://patchwork.libcamera.org/comment/15525/","msgid":"<811c43eb-4619-1aaa-ab0c-99f9892a74b8@ideasonboard.com>","date":"2021-03-08T16:22:41","subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_videodevice:\n\tPrevent queueing buffers without a cache","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Laurent,\n\nOn 08/03/2021 15:05, Laurent Pinchart wrote:\n> Hi Kieran,\n> \n> Thank you for the patch.\n> \n> On Wed, Mar 03, 2021 at 05:04:26PM +0000, Kieran Bingham wrote:\n>> The v4l2 buffer cache allows us to map incoming buffers to an instance\n>> of the V4L2 Buffer required to actually queue.\n>>\n>> If the cache_ is not available, then the buffers required to allow\n>> queuing to a device have been released, and this indicates an issue at\n>> the pipeline handler.\n>>\n>> This could be a common mistake, as it could happen if a pipeline handler\n>> always requeues buffers to the device after they complete, without\n>> checking if they are cancelled.\n>>\n>> That can then lead to trying to queue a buffer to a device which no\n>> longer expects buffers, so add a loud message to indicate what has\n>> happened but return an error without fatally crashing.\n> \n> As discussed in replies to the cover letter, this should be a fatal\n> error. I'm fine relaxing to check with an error instead until we fix the\n> IPU3 pipeline handler to avoid blocking IPA development. Could the\n\nI don't mind it being fatal (and indeed, we've long ago discussed\nletting FATAL continue in non-debug) ... so that's fine too.\n\n\n> commit message be reworded to explain that this is a fatal error as it\n> denotes a bug in the pipeline handler that can also likely result in\n> other undefined behaviour, but that it's currently downgraded to a\n> normal error to avoid blocking development ?\n\nIt looks like the IPU3 Pipeline handler is stopping the IPA /after/\nstopping the video devices.\n\nTaht's a bug there, so patch to hit the list soon, and JM is just\ntesting it on his side.\n\nIf that resolves this, I'll simply make a v2 of this one as Fatal.\n\n--\nKieran\n\n\n> \n>> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>> ---\n>>  src/libcamera/v4l2_videodevice.cpp | 10 ++++++++++\n>>  1 file changed, 10 insertions(+)\n>>\n>> diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp\n>> index c77e1aff7978..6129ce529afc 100644\n>> --- a/src/libcamera/v4l2_videodevice.cpp\n>> +++ b/src/libcamera/v4l2_videodevice.cpp\n>> @@ -1390,6 +1390,16 @@ int V4L2VideoDevice::queueBuffer(FrameBuffer *buffer)\n>>  \tstruct v4l2_buffer buf = {};\n>>  \tint ret;\n>>  \n>> +\t/*\n>> +\t * Pipeline handlers should not requeue buffers after releasing the\n>> +\t * buffers on the device. Any occurence of this error should be fixed\n>> +\t * in the pipeline handler directly.\n>> +\t */\n>> +\tif (!cache_) {\n> \n> \t\t/* \\todo Make this a Fatal error */\n> \n> ?\n> \n>> +\t\tLOG(V4L2, Error) << \"No BufferCache available to queue.\";\n> \n> I'd write \"No buffers allocated\", or \"Can't queue a buffer with no\n> buffers allocated\", as that's what is visible to pipeline handlers (the\n> cache is an internal implementation detail).\n> \n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> \n>> +\t\treturn -ENOENT;\n>> +\t}\n>> +\n>>  \tret = cache_->get(*buffer);\n>>  \tif (ret < 0)\n>>  \t\treturn ret;\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id B4DBBBD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  8 Mar 2021 16:22:46 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3307368A92;\n\tMon,  8 Mar 2021 17:22:46 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 166A560520\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  8 Mar 2021 17:22:44 +0100 (CET)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 74BFCAC1;\n\tMon,  8 Mar 2021 17:22:43 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"ev2qrxLq\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1615220563;\n\tbh=a0/kVUtS+iK258PXXOToUjAqFobN90Y+9x2biCMlVYE=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=ev2qrxLqmhx+PGAwjJOJDwDdtFXxqRVbrYFUcaNf0escpJ7UiFdgisTb9a+dk9slV\n\tDnst7kfNYf+PN4tm8wo6ucndGVvyG9BmK4eq7vy7N//ho+LHxTDRZQl1xOATxzQ9t7\n\tZ7HJIQPlgxXvH4I5tXeL5EJtFs7v6IrsfYFrcd0c=","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","References":"<20210303170426.189648-1-kieran.bingham@ideasonboard.com>\n\t<20210303170426.189648-4-kieran.bingham@ideasonboard.com>\n\t<YEY9NjzFfQsPMHXH@pendragon.ideasonboard.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\tmQINBFYE/WYBEACs1PwjMD9rgCu1hlIiUA1AXR4rv2v+BCLUq//vrX5S5bjzxKAryRf0uHat\n\tV/zwz6hiDrZuHUACDB7X8OaQcwhLaVlq6byfoBr25+hbZG7G3+5EUl9cQ7dQEdvNj6V6y/SC\n\trRanWfelwQThCHckbobWiQJfK9n7rYNcPMq9B8e9F020LFH7Kj6YmO95ewJGgLm+idg1Kb3C\n\tpotzWkXc1xmPzcQ1fvQMOfMwdS+4SNw4rY9f07Xb2K99rjMwZVDgESKIzhsDB5GY465sCsiQ\n\tcSAZRxqE49RTBq2+EQsbrQpIc8XiffAB8qexh5/QPzCmR4kJgCGeHIXBtgRj+nIkCJPZvZtf\n\tKr2EAbc6tgg6DkAEHJb+1okosV09+0+TXywYvtEop/WUOWQ+zo+Y/OBd+8Ptgt1pDRyOBzL8\n\tRXa8ZqRf0Mwg75D+dKntZeJHzPRJyrlfQokngAAs4PaFt6UfS+ypMAF37T6CeDArQC41V3ko\n\tlPn1yMsVD0p+6i3DPvA/GPIksDC4owjnzVX9kM8Zc5Cx+XoAN0w5Eqo4t6qEVbuettxx55gq\n\t8K8FieAjgjMSxngo/HST8TpFeqI5nVeq0/lqtBRQKumuIqDg+Bkr4L1V/PSB6XgQcOdhtd36\n\tOe9X9dXB8YSNt7VjOcO7BTmFn/Z8r92mSAfHXpb07YJWJosQOQARAQABtDBLaWVyYW4gQmlu\n\tZ2hhbSA8a2llcmFuLmJpbmdoYW1AaWRlYXNvbmJvYXJkLmNvbT6JAlcEEwEKAEECGwMFCwkI\n\tBwIGFQgJCgsCBBYCAwECHgECF4ACGQEWIQSQLdeYP70o/eNy1HqhHkZyEKRh/QUCXWTtygUJ\n\tCyJXZAAKCRChHkZyEKRh/f8dEACTDsbLN2nioNZMwyLuQRUAFcXNolDX48xcUXsWS2QjxaPm\n\tVsJx8Uy8aYkS85mdPBh0C83OovQR/OVbr8AxhGvYqBs3nQvbWuTl/+4od7DfK2VZOoKBAu5S\n\tQK2FYuUcikDqYcFWJ8DQnubxfE8dvzojHEkXw0sA4igINHDDFX3HJGZtLio+WpEFQtCbfTAG\n\tYZslasz1YZRbwEdSsmO3/kqy5eMnczlm8a21A3fKUo3g8oAZEFM+f4DUNzqIltg31OAB/kZS\n\tenKZQ/SWC8PmLg/ZXBrReYakxXtkP6w3FwMlzOlhGxqhIRNiAJfXJBaRhuUWzPOpEDE9q5YJ\n\tBmqQL2WJm1VSNNVxbXJHpaWMH1sA2R00vmvRrPXGwyIO0IPYeUYQa3gsy6k+En/aMQJd27dp\n\taScf9am9PFICPY5T4ppneeJLif2lyLojo0mcHOV+uyrds9XkLpp14GfTkeKPdPMrLLTsHRfH\n\tfA4I4OBpRrEPiGIZB/0im98MkGY/Mu6qxeZmYLCcgD6qz4idOvfgVOrNh+aA8HzIVR+RMW8H\n\tQGBN9f0E3kfwxuhl3omo6V7lDw8XOdmuWZNC9zPq1UfryVHANYbLGz9KJ4Aw6M+OgBC2JpkD\n\thXMdHUkC+d20dwXrwHTlrJi1YNp6rBc+xald3wsUPOZ5z8moTHUX/uPA/qhGsbkCDQRWBP1m\n\tARAAzijkb+Sau4hAncr1JjOY+KyFEdUNxRy+hqTJdJfaYihxyaj0Ee0P0zEi35CbE6lgU0Uz\n\ttih9fiUbSV3wfsWqg1Ut3/5rTKu7kLFp15kF7eqvV4uezXRD3Qu4yjv/rMmEJbbD4cTvGCYI\n\td6MDC417f7vK3hCbCVIZSp3GXxyC1LU+UQr3fFcOyCwmP9vDUR9JV0BSqHHxRDdpUXE26Dk6\n\tmhf0V1YkspE5St814ETXpEus2urZE5yJIUROlWPIL+hm3NEWfAP06vsQUyLvr/GtbOT79vXl\n\tEn1aulcYyu20dRRxhkQ6iILaURcxIAVJJKPi8dsoMnS8pB0QW12AHWuirPF0g6DiuUfPmrA5\n\tPKe56IGlpkjc8cO51lIxHkWTpCMWigRdPDexKX+Sb+W9QWK/0JjIc4t3KBaiG8O4yRX8ml2R\n\t+rxfAVKM6V769P/hWoRGdgUMgYHFpHGSgEt80OKK5HeUPy2cngDUXzwrqiM5Sz6Od0qw5pCk\n\tNlXqI0W/who0iSVM+8+RmyY0OEkxEcci7rRLsGnM15B5PjLJjh1f2ULYkv8s4SnDwMZ/kE04\n\t/UqCMK/KnX8pwXEMCjz0h6qWNpGwJ0/tYIgQJZh6bqkvBrDogAvuhf60Sogw+mH8b+PBlx1L\n\toeTK396wc+4c3BfiC6pNtUS5GpsPMMjYMk7kVvEAEQEAAYkCPAQYAQoAJgIbDBYhBJAt15g/\n\tvSj943LUeqEeRnIQpGH9BQJdizzIBQkLSKZiAAoJEKEeRnIQpGH9eYgQAJpjaWNgqNOnMTmD\n\tMJggbwjIotypzIXfhHNCeTkG7+qCDlSaBPclcPGYrTwCt0YWPU2TgGgJrVhYT20ierN8LUvj\n\t6qOPTd+Uk7NFzL65qkh80ZKNBFddx1AabQpSVQKbdcLb8OFs85kuSvFdgqZwgxA1vl4TFhNz\n\tPZ79NAmXLackAx3sOVFhk4WQaKRshCB7cSl+RIng5S/ThOBlwNlcKG7j7W2MC06BlTbdEkUp\n\tECzuuRBv8wX4OQl+hbWbB/VKIx5HKlLu1eypen/5lNVzSqMMIYkkZcjV2SWQyUGxSwq0O/sx\n\tS0A8/atCHUXOboUsn54qdxrVDaK+6jIAuo8JiRWctP16KjzUM7MO0/+4zllM8EY57rXrj48j\n\tsbEYX0YQnzaj+jO6kJtoZsIaYR7rMMq9aUAjyiaEZpmP1qF/2sYenDx0Fg2BSlLvLvXM0vU8\n\tpQk3kgDu7kb/7PRYrZvBsr21EIQoIjXbZxDz/o7z95frkP71EaICttZ6k9q5oxxA5WC6sTXc\n\tMW8zs8avFNuA9VpXt0YupJd2ijtZy2mpZNG02fFVXhIn4G807G7+9mhuC4XG5rKlBBUXTvPU\n\tAfYnB4JBDLmLzBFavQfvonSfbitgXwCG3vS+9HEwAjU30Bar1PEOmIbiAoMzuKeRm2LVpmq4\n\tWZw01QYHU/GUV/zHJSFk","Organization":"Ideas on Board","Message-ID":"<811c43eb-4619-1aaa-ab0c-99f9892a74b8@ideasonboard.com>","Date":"Mon, 8 Mar 2021 16:22:41 +0000","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.10.0","MIME-Version":"1.0","In-Reply-To":"<YEY9NjzFfQsPMHXH@pendragon.ideasonboard.com>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_videodevice:\n\tPrevent queueing buffers without a cache","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Reply-To":"kieran.bingham@ideasonboard.com","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]