[{"id":33054,"web_url":"https://patchwork.libcamera.org/comment/33054/","msgid":"<851px6wq5e.fsf@mzamazal-thinkpadp1gen3.tpbc.csb>","date":"2025-01-13T17:59:57","subject":"Re: [PATCH] DmaBufAllocator: Avoid syncing with an invalid file\n\tdescriptor","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi Harvey,\n\nthank you for the patch.\n\nHarvey Yang <chenghaoyang@chromium.org> writes:\n\n> As DmaSyncer disables the copy c'tor, the move c'tor will be used\n> instead. This leaves some DmaSyncers with invalid SharedFDs. They should\n> avoid syncing with invalid file descriptors in the d'tor.\n>\n> Fixes: 545046a41e17 (\"DmaBufAllocator: Make DmaSyncer non-copyable\")\n> Signed-off-by: Harvey Yang <chenghaoyang@chromium.org>\n\nTested-by: Milan Zamazal <mzamazal@redhat.com>\n\n> ---\n>  src/libcamera/dma_buf_allocator.cpp | 5 +++++\n>  1 file changed, 5 insertions(+)\n>\n> diff --git a/src/libcamera/dma_buf_allocator.cpp b/src/libcamera/dma_buf_allocator.cpp\n> index a014c3b4263c..17a888efaa40 100644\n> --- a/src/libcamera/dma_buf_allocator.cpp\n> +++ b/src/libcamera/dma_buf_allocator.cpp\n> @@ -330,6 +330,11 @@ DmaSyncer::~DmaSyncer()\n>  \n>  void DmaSyncer::sync(uint64_t step)\n>  {\n> +\t// DmaSyncer might be moved and left an empty SharedFD.\n\n... left with an ... ?\n\n> +\t// Avoid syncing with an invalid file descriptor in this case.\n\nI think /* ... */ style comments are to be used in libcamera.\n\n> +\tif (!fd_.isValid())\n> +\t\treturn;\n> +\n>  \tstruct dma_buf_sync sync = {\n>  \t\t.flags = flags_ | step\n>  \t};","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 3EF21C32F6\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 13 Jan 2025 18:00:06 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5594D6851C;\n\tMon, 13 Jan 2025 19:00:05 +0100 (CET)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 980B1684E7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 13 Jan 2025 19:00:03 +0100 (CET)","from mail-wm1-f69.google.com (mail-wm1-f69.google.com\n\t[209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-318-IUzM4_0yO4qMFHlj5RPv-g-1; Mon, 13 Jan 2025 13:00:01 -0500","by mail-wm1-f69.google.com with SMTP id\n\t5b1f17b1804b1-4361f371908so31933875e9.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 13 Jan 2025 10:00:01 -0800 (PST)","from mzamazal-thinkpadp1gen3.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-436e2e89dfesm186323775e9.32.2025.01.13.09.59.57\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 13 Jan 2025 09:59:58 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"WStEuRXd\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1736791202;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=4kR+8Fx5fR7dqO+8VurxwtinQ0G8QsrGdki5QjMCDH8=;\n\tb=WStEuRXdeppHNkq+Ri1tJjJVVs738Pc8zLhQs3X4USzy1xYRC7VEqM5xd+q9oMsGhagAnK\n\tPE0u2OYeeiRzinVWpicgXyZ4H20pgxo1F6kEa+xNA9OI6qlAaot4mqzSkIGNVMCQZFJKN0\n\tSkZBMj8VXZj49C/DF7eNYKNR4k7060Q=","X-MC-Unique":"IUzM4_0yO4qMFHlj5RPv-g-1","X-Mimecast-MFC-AGG-ID":"IUzM4_0yO4qMFHlj5RPv-g","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1736791199; x=1737395999;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=4kR+8Fx5fR7dqO+8VurxwtinQ0G8QsrGdki5QjMCDH8=;\n\tb=mV70cPBxa+rhHBCD4Bx/3bC8KKdR3OHpDL0x8HdqPl/9TUomvBDTM6xf1/rmHOCcpo\n\t7e7gx+ZfZWctIcHluA1fg7dnUe9by5stsYIrtQE2GxQdpdLfCVRWYgL7LUAxsKtjfR8y\n\tH7b1ZIszxcFpxHzPbx7TM1qiqm9m0ux/k4JnaVTXMnUyxpOsD8Mmy6vpfWY/hht+aiPz\n\tMYTQaLOKOan1R7eu/fuVByqa/6kacz4U4PZqRMp4GYosWBT4PORTg/OkKtx8U6mEv6nb\n\ti4lnKKrdmLt11ZT7VnSuKSbMStGeNVgtEniXJ/4Cpr2AF7ZgQt/itySAqJp25wG8tCcK\n\tBDOA==","X-Gm-Message-State":"AOJu0YzHh4E6qaZafeIKPokHQ5siYPWDox77AhWaMFWR09ezSiJRUAoe\n\tlagHhN5Khdw6qLbP2FVh+W5GcHVRh4U5LPxafDgbNZx9anltfCG97cuohiODmG2uHLyKOyCy6Ux\n\tCAkM4VRtDNiSL1YVsuyDPbjH11aiMWN3DnpchCVA9YYMZfvQ8+2f0IOS+lO3dtbkY8Cp8OlQUON\n\tIW6ExDoNV3ktRxVdkiNjOgDawgevx0n7efCKYVRfusWVcLFXxTS5hi4Yk=","X-Gm-Gg":"ASbGncs2saYfuI9tdpWzPu3HJMw0JXZa7VH4IMzApUGdj/lFy34qBRr8CiPsNFHUpmj\n\tGT8myPrrmlJMK3srD84k0NGpJzlDndh4M+g54wKy8zr1FoA7ENlVS86cXT9sd1O8woyYywjb8Ha\n\tmE8xs4gyAQYwVl2x/Q7Ldn6/mKU1dmE8gK7DwBLeQps4dJnIyzZfAj8D0IbVcssp45/xWEZC32t\n\tPv1tfDHpqQfp8NKMwXMwtA04lNNylvOxUs/o6GQCSjapyRrjQuKX+7fYUOZce9PKLp5OzL5TA3S\n\tsBVgMHOx2N4tWjtX0GnXJ91Id4B23wBJxQ==","X-Received":["by 2002:a05:600c:511f:b0:436:1b96:7072 with SMTP id\n\t5b1f17b1804b1-436e26867f6mr221497565e9.5.1736791199570; \n\tMon, 13 Jan 2025 09:59:59 -0800 (PST)","by 2002:a05:600c:511f:b0:436:1b96:7072 with SMTP id\n\t5b1f17b1804b1-436e26867f6mr221497255e9.5.1736791199062; \n\tMon, 13 Jan 2025 09:59:59 -0800 (PST)"],"X-Google-Smtp-Source":"AGHT+IESDMVEJz9tX3M05N1nSpw/Ep6JwUsyi3k8XQ0QAzlGQ+hAYAisZ+HRg6h3exffgDzeAloCOQ==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Harvey Yang <chenghaoyang@chromium.org>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH] DmaBufAllocator: Avoid syncing with an invalid file\n\tdescriptor","In-Reply-To":"<20250113170724.801717-1-chenghaoyang@chromium.org> (Harvey\n\tYang's message of \"Mon, 13 Jan 2025 17:06:56 +0000\")","References":"<20250113170724.801717-1-chenghaoyang@chromium.org>","Date":"Mon, 13 Jan 2025 18:59:57 +0100","Message-ID":"<851px6wq5e.fsf@mzamazal-thinkpadp1gen3.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"eGE51XxP_Kxuy2wOIyzXrsduwlFClZyQsxcOZ7eShEc_1736791200","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":33055,"web_url":"https://patchwork.libcamera.org/comment/33055/","msgid":"<20250113180041.GA17696@pendragon.ideasonboard.com>","date":"2025-01-13T18:00:41","subject":"Re: [PATCH] DmaBufAllocator: Avoid syncing with an invalid file\n\tdescriptor","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Mon, Jan 13, 2025 at 05:06:56PM +0000, Harvey Yang wrote:\n> As DmaSyncer disables the copy c'tor, the move c'tor will be used\n> instead. This leaves some DmaSyncers with invalid SharedFDs. They should\n> avoid syncing with invalid file descriptors in the d'tor.\n> \n> Fixes: 545046a41e17 (\"DmaBufAllocator: Make DmaSyncer non-copyable\")\n> Signed-off-by: Harvey Yang <chenghaoyang@chromium.org>\n> ---\n>  src/libcamera/dma_buf_allocator.cpp | 5 +++++\n>  1 file changed, 5 insertions(+)\n> \n> diff --git a/src/libcamera/dma_buf_allocator.cpp b/src/libcamera/dma_buf_allocator.cpp\n> index a014c3b4263c..17a888efaa40 100644\n> --- a/src/libcamera/dma_buf_allocator.cpp\n> +++ b/src/libcamera/dma_buf_allocator.cpp\n> @@ -330,6 +330,11 @@ DmaSyncer::~DmaSyncer()\n>  \n>  void DmaSyncer::sync(uint64_t step)\n>  {\n> +\t// DmaSyncer might be moved and left an empty SharedFD.\n> +\t// Avoid syncing with an invalid file descriptor in this case.\n\nComment style.\n\n> +\tif (!fd_.isValid())\n> +\t\treturn;\n\nI would move this to the destructor, as calling sync() with an invalid\nfd in the constructor is an error that should result in a loud log\nmessage.\n\n> +\n>  \tstruct dma_buf_sync sync = {\n>  \t\t.flags = flags_ | step\n>  \t};","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 95D7FC32F6\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 13 Jan 2025 18:00:46 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 505756851F;\n\tMon, 13 Jan 2025 19:00: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 B033B684E7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 13 Jan 2025 19:00:45 +0100 (CET)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id EF47D74A;\n\tMon, 13 Jan 2025 18:59:48 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"KgjmYm2j\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1736791189;\n\tbh=73ZdmepAwesNEf6Df+EVNcPNu5r6zrSwI+4WC7fEnmw=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=KgjmYm2jq4OmgSehb6POSpPw3K/j2fUIqVXZo1qsGY0ta/oXyQolZ7xvA9Swhlw2i\n\tl208LoMRVfEXCyL1HGKiRLPckwQNFx0olwmPw8rKELJcPTTEI6cRUBEBCz0na381nh\n\tAd4kgyDfV2yjbX+9QERjjPIRvztkTwDl8lCJ8DyY=","Date":"Mon, 13 Jan 2025 20:00:41 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Harvey Yang <chenghaoyang@chromium.org>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH] DmaBufAllocator: Avoid syncing with an invalid file\n\tdescriptor","Message-ID":"<20250113180041.GA17696@pendragon.ideasonboard.com>","References":"<20250113170724.801717-1-chenghaoyang@chromium.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20250113170724.801717-1-chenghaoyang@chromium.org>","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":33056,"web_url":"https://patchwork.libcamera.org/comment/33056/","msgid":"<CAEB1ahvOSqgg+3OPT8MuOL8gka9+rGUtRdBbAGi1aq8qL4gL9g@mail.gmail.com>","date":"2025-01-13T20:27:38","subject":"Re: [PATCH] DmaBufAllocator: Avoid syncing with an invalid file\n\tdescriptor","submitter":{"id":117,"url":"https://patchwork.libcamera.org/api/people/117/","name":"Cheng-Hao Yang","email":"chenghaoyang@chromium.org"},"content":"Hi Laurent,\n\nOn Mon, Jan 13, 2025 at 7:00 PM Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> On Mon, Jan 13, 2025 at 05:06:56PM +0000, Harvey Yang wrote:\n> > As DmaSyncer disables the copy c'tor, the move c'tor will be used\n> > instead. This leaves some DmaSyncers with invalid SharedFDs. They should\n> > avoid syncing with invalid file descriptors in the d'tor.\n> >\n> > Fixes: 545046a41e17 (\"DmaBufAllocator: Make DmaSyncer non-copyable\")\n> > Signed-off-by: Harvey Yang <chenghaoyang@chromium.org>\n> > ---\n> >  src/libcamera/dma_buf_allocator.cpp | 5 +++++\n> >  1 file changed, 5 insertions(+)\n> >\n> > diff --git a/src/libcamera/dma_buf_allocator.cpp b/src/libcamera/dma_buf_allocator.cpp\n> > index a014c3b4263c..17a888efaa40 100644\n> > --- a/src/libcamera/dma_buf_allocator.cpp\n> > +++ b/src/libcamera/dma_buf_allocator.cpp\n> > @@ -330,6 +330,11 @@ DmaSyncer::~DmaSyncer()\n> >\n> >  void DmaSyncer::sync(uint64_t step)\n> >  {\n> > +     // DmaSyncer might be moved and left an empty SharedFD.\n> > +     // Avoid syncing with an invalid file descriptor in this case.\n>\n> Comment style.\n\nYeah sorry. Will be updated in the next version.\n\n>\n> > +     if (!fd_.isValid())\n> > +             return;\n>\n> I would move this to the destructor, as calling sync() with an invalid\n> fd in the constructor is an error that should result in a loud log\n> message.\n\nMakes sense. Will be moved.\n\nBR,\nHarvey\n\n>\n> > +\n> >       struct dma_buf_sync sync = {\n> >               .flags = flags_ | step\n> >       };\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","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 7CF3AC326C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 13 Jan 2025 20:27:51 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AC4AD6851C;\n\tMon, 13 Jan 2025 21:27:50 +0100 (CET)","from mail-lj1-x230.google.com (mail-lj1-x230.google.com\n\t[IPv6:2a00:1450:4864:20::230])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E5368684E7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 13 Jan 2025 21:27:49 +0100 (CET)","by mail-lj1-x230.google.com with SMTP id\n\t38308e7fff4ca-305d843d925so36816091fa.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 13 Jan 2025 12:27:49 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"CWLhUE6G\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=chromium.org; s=google; t=1736800069; x=1737404869;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=iXqHGy1aMds4SfNqEPqy7ixGRIdiT0MBuQQAY6v2DXM=;\n\tb=CWLhUE6GEAXGO2BuU+FvK4T6u68Bm8zjL07T+VEOvx3WYCIZMgjrtDGWxPDxPdPrDL\n\tjmN0T+WGg4KeDDNt0Z7F0tl8rZfNTZnLa5wnb8e9N9CfJ2tht+XQpcKK5BrIgS1CLEmc\n\t+8N1LPiVMzfgLqkmbF+O7JgqlIJb2nthwSpA4=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1736800069; x=1737404869;\n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:x-gm-message-state:from:to:cc\n\t:subject:date:message-id:reply-to;\n\tbh=iXqHGy1aMds4SfNqEPqy7ixGRIdiT0MBuQQAY6v2DXM=;\n\tb=FNcBqoNAkSx8u+OWYjYzj1vmz2Mj9DHZ98JDtcUgg2uV1chCl47XngECCYTVwyeufI\n\tGUcwoarTQvUQ/S4GVApJd7xptgtgVwnHxhqwJTSFqujGYYX2MyRHvTx0JW9QJ6AEIj8r\n\tBAh8KySoFd+b57/FHLAoX3v9zUKyP8akIxEq/OjGeqZPEKe4ME1ueycG3aek0zo/+Vqd\n\tmH8c8wUe9ZF0XCyjcfNMIG8/4Ho3yM9gnYQtCX8T2qA+NUtnRYT/btIs5FtHQ0eGzV3O\n\teVqA/t60T+wUBfmzQUkWBz7Iv7HlT9CnSpUblb+NoQdmViHD7ZKkXpbpX7Y/c2RaBjt0\n\t3Gcg==","X-Gm-Message-State":"AOJu0YydM/OTYGOt0mDqMYcBHAa8McC4InAZ/wWgNcGcidqxHZB02spO\n\tKsaz0z/RwuLUbEc+MCi7R1m33wS+5DJVh1Zh+3vd2IMKwyAAjBGyuPLuv3xFfnIrDJ7b/c5fO4+\n\tT39jh1iegXxF0KiQgxoy2MSVf09OrUTz2n/XFoayouMeBrqAXVQ==","X-Gm-Gg":"ASbGnct3S+i+0Xxh0Ya7yR9X0ZGhKe8E1fLde2pDtco7G+LO1Po5luTJ5/MjNzm1Kiq\n\txMZT/U27PT+IYNRZjOS/eSl7qdH2fK/Jd6Ao6","X-Google-Smtp-Source":"AGHT+IFb2QqaNUz8uNRxIA1eTyx+CK2NbzFWp7OI7YIUn92jM5QElG1OIGSH/IGUzAcFY2tU/mwsqJja97rrAk9Ab1w=","X-Received":"by 2002:a05:651c:b20:b0:302:29a5:6e01 with SMTP id\n\t38308e7fff4ca-305f45302d4mr71352841fa.2.1736800069049;\n\tMon, 13 Jan 2025 12:27:49 -0800 (PST)","MIME-Version":"1.0","References":"<20250113170724.801717-1-chenghaoyang@chromium.org>\n\t<20250113180041.GA17696@pendragon.ideasonboard.com>","In-Reply-To":"<20250113180041.GA17696@pendragon.ideasonboard.com>","From":"Cheng-Hao Yang <chenghaoyang@chromium.org>","Date":"Mon, 13 Jan 2025 21:27:38 +0100","X-Gm-Features":"AbW1kvZCqMf1TbHhcFjzYhdlfYchpE_vqu1xSqIj_VVCTqPLKGWuqjUIB9_XWN8","Message-ID":"<CAEB1ahvOSqgg+3OPT8MuOL8gka9+rGUtRdBbAGi1aq8qL4gL9g@mail.gmail.com>","Subject":"Re: [PATCH] DmaBufAllocator: Avoid syncing with an invalid file\n\tdescriptor","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":33057,"web_url":"https://patchwork.libcamera.org/comment/33057/","msgid":"<CAEB1ahsAnKpSnXPqq_0MGm9jwioWy69ZPC_WhHsmkgQWO6pjag@mail.gmail.com>","date":"2025-01-13T20:28:25","subject":"Re: [PATCH] DmaBufAllocator: Avoid syncing with an invalid file\n\tdescriptor","submitter":{"id":117,"url":"https://patchwork.libcamera.org/api/people/117/","name":"Cheng-Hao Yang","email":"chenghaoyang@chromium.org"},"content":"Hi Milan,\n\n\nOn Mon, Jan 13, 2025 at 7:00 PM Milan Zamazal <mzamazal@redhat.com> wrote:\n>\n> Hi Harvey,\n>\n> thank you for the patch.\n>\n> Harvey Yang <chenghaoyang@chromium.org> writes:\n>\n> > As DmaSyncer disables the copy c'tor, the move c'tor will be used\n> > instead. This leaves some DmaSyncers with invalid SharedFDs. They should\n> > avoid syncing with invalid file descriptors in the d'tor.\n> >\n> > Fixes: 545046a41e17 (\"DmaBufAllocator: Make DmaSyncer non-copyable\")\n> > Signed-off-by: Harvey Yang <chenghaoyang@chromium.org>\n>\n> Tested-by: Milan Zamazal <mzamazal@redhat.com>\n>\n> > ---\n> >  src/libcamera/dma_buf_allocator.cpp | 5 +++++\n> >  1 file changed, 5 insertions(+)\n> >\n> > diff --git a/src/libcamera/dma_buf_allocator.cpp b/src/libcamera/dma_buf_allocator.cpp\n> > index a014c3b4263c..17a888efaa40 100644\n> > --- a/src/libcamera/dma_buf_allocator.cpp\n> > +++ b/src/libcamera/dma_buf_allocator.cpp\n> > @@ -330,6 +330,11 @@ DmaSyncer::~DmaSyncer()\n> >\n> >  void DmaSyncer::sync(uint64_t step)\n> >  {\n> > +     // DmaSyncer might be moved and left an empty SharedFD.\n>\n> ... left with an ... ?\n\nDone\n\n>\n> > +     // Avoid syncing with an invalid file descriptor in this case.\n>\n> I think /* ... */ style comments are to be used in libcamera.\n\nRight, will be updated.\n\nBR,\nHarvey\n\n>\n> > +     if (!fd_.isValid())\n> > +             return;\n> > +\n> >       struct dma_buf_sync sync = {\n> >               .flags = flags_ | step\n> >       };\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 D987AC326C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 13 Jan 2025 20:28:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 915D56851C;\n\tMon, 13 Jan 2025 21:28:38 +0100 (CET)","from mail-lj1-x236.google.com (mail-lj1-x236.google.com\n\t[IPv6:2a00:1450:4864:20::236])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 173C768516\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 13 Jan 2025 21:28:37 +0100 (CET)","by mail-lj1-x236.google.com with SMTP id\n\t38308e7fff4ca-30167f4c1e3so42008911fa.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 13 Jan 2025 12:28:37 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"lt3CW785\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=chromium.org; s=google; t=1736800116; x=1737404916;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=QhlHdeER7mR5qz6UqrEtUjWtkuGrRDemgspa5H2AZ8Q=;\n\tb=lt3CW785SCjNFCA8IjTKE7FZYtK5zZ3tas9hnmggfb82RfXIhu1IivTTbPKk0JQmMX\n\tfCsW0rIWxM3pL05FiWU9S6JxnL/sS2W04+8fcAk8ff5KGN8lhDLhvUR5ciTZLBytcUa4\n\tiK9va9uxXqrcBj+42O8lTnJ7y3phx0q5Vg8Bs=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1736800116; x=1737404916;\n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:x-gm-message-state:from:to:cc\n\t:subject:date:message-id:reply-to;\n\tbh=QhlHdeER7mR5qz6UqrEtUjWtkuGrRDemgspa5H2AZ8Q=;\n\tb=RkRv7tErvcgCa0SrQvjh95Ph+mhbM37JNFTx+Y3B2vs/IfXXlN+LSkPRl9Id209wWi\n\tjFc5ju/ty8KmjoUcz0hG1734C4QMl6gQBx68GML2dlXGkwj5W9DueCfiNg+rjGCTUVrM\n\tqI9it0c1W1eHAqgMYl4MGPSxYdMBYfZAsy+cEPyFBeMhZrkVW2ERVGAJ/QmlAZHd9EmB\n\tQKxrfGFoH9Gyo9KqjBqxdavAQazdzLjsWGlVKaxmRuD6FrvA6z80rgZkdmpNDHHDsdeT\n\t3wqrVs+efpmeKDTmHteGoe/p4s7FxVjV9MsEtUn63xF5LIMF1sgrD+AKkRNOLRxjtHWz\n\t7tXA==","X-Gm-Message-State":"AOJu0YwNP+pIbUUb27ZiM78OxCgnAOiFiMx3Ngv3um8+0UgJQ5udI4f7\n\tZrVB393r23n8Zx/lauA733rX924sz91KzOEgzN8ji2Hj+xThSgHzKdiTTCdDzfV6ZDr8APnF1mV\n\tbKbBfpCzr2lTyHCCvcghqsPgo0SmjjzHx99iqKuFZ7OVKg43yoA==","X-Gm-Gg":"ASbGncuBrGm3ahdgaTxeNGI5ATiXn3tWSktOWLaT5qfcvWMaFiZ5+XTZsdmf3vVBplg\n\ttalM/8oDJ5uft2c9/f8PnJux7B65Ty+pycvxl","X-Google-Smtp-Source":"AGHT+IHndm24LOIP+on/VTtkzVtc8MpJyy7hwhcYpB3an46KoHGEyGVAsrbTclfZKvM+C5OC2EGRMPZXPdHO7qeJsuM=","X-Received":"by 2002:a05:651c:897:b0:306:26cf:1305 with SMTP id\n\t38308e7fff4ca-30626cf13b0mr6237571fa.35.1736800116335;\n\tMon, 13 Jan 2025 12:28:36 -0800 (PST)","MIME-Version":"1.0","References":"<20250113170724.801717-1-chenghaoyang@chromium.org>\n\t<851px6wq5e.fsf@mzamazal-thinkpadp1gen3.tpbc.csb>","In-Reply-To":"<851px6wq5e.fsf@mzamazal-thinkpadp1gen3.tpbc.csb>","From":"Cheng-Hao Yang <chenghaoyang@chromium.org>","Date":"Mon, 13 Jan 2025 21:28:25 +0100","X-Gm-Features":"AbW1kvbwfu9CTpid9EY89oNzHtg8vMOyr17O9Am2sz5Y-2J4h5czbTNQKz8VhaQ","Message-ID":"<CAEB1ahsAnKpSnXPqq_0MGm9jwioWy69ZPC_WhHsmkgQWO6pjag@mail.gmail.com>","Subject":"Re: [PATCH] DmaBufAllocator: Avoid syncing with an invalid file\n\tdescriptor","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]