[{"id":29770,"web_url":"https://patchwork.libcamera.org/comment/29770/","msgid":"<20240605084140.GB31074@pendragon.ideasonboard.com>","date":"2024-06-05T08:41:40","subject":"Re: [PATCH] libcamera: dma_buf_allocator: Work around lack of\n\tmemfd_create() in uClibc","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Wed, Jun 05, 2024 at 11:37:57AM +0300, Laurent Pinchart wrote:\n> uClibc doesn't provide a memfd_create() implementation. Fix it by using\n> a direct syscall when the function isn't available.\n> \n\nFixes: ea4baaacc325 (\"libcamera: DmaBufAllocator: Support allocating from /dev/udmabuf\")\n\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n> I should have bundled this in a series with \"[PATCH] libcamera:\n> dma_buf_allocator: Work around lack of file seals in uClibc\", sorry\n> about that.\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 5ec29949c66a..d7d08e188a62 100644\n> --- a/src/libcamera/dma_buf_allocator.cpp\n> +++ b/src/libcamera/dma_buf_allocator.cpp\n> @@ -13,6 +13,7 @@\n>  #include <sys/ioctl.h>\n>  #include <sys/mman.h>\n>  #include <sys/stat.h>\n> +#include <sys/syscall.h>\n>  #include <sys/types.h>\n>  #include <unistd.h>\n>  \n> @@ -132,7 +133,11 @@ UniqueFD DmaBufAllocator::allocFromUDmaBuf(const char *name, std::size_t size)\n>  \tstd::size_t pageMask = sysconf(_SC_PAGESIZE) - 1;\n>  \tsize = (size + pageMask) & ~pageMask;\n>  \n> +#if HAVE_MEMFD_CREATE\n>  \tint ret = memfd_create(name, MFD_ALLOW_SEALING | MFD_CLOEXEC);\n> +#else\n> +\tint ret = syscall(SYS_memfd_create, name, MFD_ALLOW_SEALING | MFD_CLOEXEC);\n> +#endif\n>  \tif (ret < 0) {\n>  \t\tret = errno;\n>  \t\tLOG(DmaBufAllocator, Error)\n> \n> base-commit: 98071d3109c131820439f61d9380c0bd4cd2119a","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 4B120BDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  5 Jun 2024 08:42:00 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id EBBFB6543F;\n\tWed,  5 Jun 2024 10:41:59 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1C48A6543E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  5 Jun 2024 10:41:58 +0200 (CEST)","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 BB242EA2;\n\tWed,  5 Jun 2024 10:41:49 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"gyQCxD2t\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1717576909;\n\tbh=za8B6YxM7HkK7iXfi1fXrefi8qU4PnSHzkkfdXPen7I=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=gyQCxD2tTcPs4Jcb25LlI0FSMDRtPH1FfS7uEjjzvC6RGIaJlb+xLe6jxmWvAvC3A\n\tRpOMqPZIQHGk2CzYBYzn864cdEsOEOnCM9LPs5/SAhfp1x401m5D7gCBOS+anJSq+8\n\tGuniIs9oqgDsBBkHZkoyCTCpu3gURmtraqOR5qTs=","Date":"Wed, 5 Jun 2024 11:41:40 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Hans de Goede <hdegoede@redhat.com>","Subject":"Re: [PATCH] libcamera: dma_buf_allocator: Work around lack of\n\tmemfd_create() in uClibc","Message-ID":"<20240605084140.GB31074@pendragon.ideasonboard.com>","References":"<20240605083757.31553-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20240605083757.31553-1-laurent.pinchart@ideasonboard.com>","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":29772,"web_url":"https://patchwork.libcamera.org/comment/29772/","msgid":"<171757736633.205609.3037128128270976015@ping.linuxembedded.co.uk>","date":"2024-06-05T08:49:26","subject":"Re: [PATCH] libcamera: dma_buf_allocator: Work around lack of\n\tmemfd_create() in uClibc","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Laurent Pinchart (2024-06-05 09:37:57)\n> uClibc doesn't provide a memfd_create() implementation. Fix it by using\n> a direct syscall when the function isn't available.\n\nI presume the fact these are only coming up now means we don't yet have\nuClibc in CI?\n\n\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n> I should have bundled this in a series with \"[PATCH] libcamera:\n> dma_buf_allocator: Work around lack of file seals in uClibc\", sorry\n> about that.\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 5ec29949c66a..d7d08e188a62 100644\n> --- a/src/libcamera/dma_buf_allocator.cpp\n> +++ b/src/libcamera/dma_buf_allocator.cpp\n> @@ -13,6 +13,7 @@\n>  #include <sys/ioctl.h>\n>  #include <sys/mman.h>\n>  #include <sys/stat.h>\n> +#include <sys/syscall.h>\n>  #include <sys/types.h>\n>  #include <unistd.h>\n>  \n> @@ -132,7 +133,11 @@ UniqueFD DmaBufAllocator::allocFromUDmaBuf(const char *name, std::size_t size)\n>         std::size_t pageMask = sysconf(_SC_PAGESIZE) - 1;\n>         size = (size + pageMask) & ~pageMask;\n>  \n> +#if HAVE_MEMFD_CREATE\n>         int ret = memfd_create(name, MFD_ALLOW_SEALING | MFD_CLOEXEC);\n> +#else\n> +       int ret = syscall(SYS_memfd_create, name, MFD_ALLOW_SEALING | MFD_CLOEXEC);\n> +#endif\n\nIs there any benefit to going through memfd_create at all in that case?\n\nBut this is fine otherwise.\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n>         if (ret < 0) {\n>                 ret = errno;\n>                 LOG(DmaBufAllocator, Error)\n> \n> base-commit: 98071d3109c131820439f61d9380c0bd4cd2119a\n> -- \n> Regards,\n> \n> Laurent Pinchart\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 3A950BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  5 Jun 2024 08:49:31 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0298C65440;\n\tWed,  5 Jun 2024 10:49:30 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 22F756543C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  5 Jun 2024 10:49:29 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id A490EEA2;\n\tWed,  5 Jun 2024 10:49:20 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"ZPaJXpEZ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1717577360;\n\tbh=Vjq0gCAfuhWleGaoVl2kDz4lovJUQwaaW/pejpSmNEY=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=ZPaJXpEZd/+AUvMXea8zxtv5fnqSfrLo48q7yE6r/lqqUC6eYFPik4lroYePPWNIz\n\tFtanEdVHiLLph+ZYj8cwxsE+/7xbhgTEXG4T+vzGFuw2bexX/X3RgLPfNJJJNIVGIh\n\tvmK++lFqs9yS2V6/B/AcoXc2CR+aeeKaUau0UbkU=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20240605083757.31553-1-laurent.pinchart@ideasonboard.com>","References":"<20240605083757.31553-1-laurent.pinchart@ideasonboard.com>","Subject":"Re: [PATCH] libcamera: dma_buf_allocator: Work around lack of\n\tmemfd_create() in uClibc","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Hans de Goede <hdegoede@redhat.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Wed, 05 Jun 2024 09:49:26 +0100","Message-ID":"<171757736633.205609.3037128128270976015@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","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":29773,"web_url":"https://patchwork.libcamera.org/comment/29773/","msgid":"<20240605085522.GA6355@pendragon.ideasonboard.com>","date":"2024-06-05T08:55:22","subject":"Re: [PATCH] libcamera: dma_buf_allocator: Work around lack of\n\tmemfd_create() in uClibc","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Wed, Jun 05, 2024 at 09:49:26AM +0100, Kieran Bingham wrote:\n> Quoting Laurent Pinchart (2024-06-05 09:37:57)\n> > uClibc doesn't provide a memfd_create() implementation. Fix it by using\n> > a direct syscall when the function isn't available.\n> \n> I presume the fact these are only coming up now means we don't yet have\n> uClibc in CI?\n\nThat's right. musl would be relatively easy to add with an Alpine\ncontainer, but uClibc would be harder.\n\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> > I should have bundled this in a series with \"[PATCH] libcamera:\n> > dma_buf_allocator: Work around lack of file seals in uClibc\", sorry\n> > about that.\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 5ec29949c66a..d7d08e188a62 100644\n> > --- a/src/libcamera/dma_buf_allocator.cpp\n> > +++ b/src/libcamera/dma_buf_allocator.cpp\n> > @@ -13,6 +13,7 @@\n> >  #include <sys/ioctl.h>\n> >  #include <sys/mman.h>\n> >  #include <sys/stat.h>\n> > +#include <sys/syscall.h>\n> >  #include <sys/types.h>\n> >  #include <unistd.h>\n> >  \n> > @@ -132,7 +133,11 @@ UniqueFD DmaBufAllocator::allocFromUDmaBuf(const char *name, std::size_t size)\n> >         std::size_t pageMask = sysconf(_SC_PAGESIZE) - 1;\n> >         size = (size + pageMask) & ~pageMask;\n> >  \n> > +#if HAVE_MEMFD_CREATE\n> >         int ret = memfd_create(name, MFD_ALLOW_SEALING | MFD_CLOEXEC);\n> > +#else\n> > +       int ret = syscall(SYS_memfd_create, name, MFD_ALLOW_SEALING | MFD_CLOEXEC);\n> > +#endif\n> \n> Is there any benefit to going through memfd_create at all in that case?\n\nI think it's best to use what the libc provides, that lowers the risk of\nbreakages in the future.\n\nWe already have a similar construct in\nsrc/libcamera/shared_mem_object.cpp by the way, see commit acf61456cc55\n(\"libcamera: shared_mem_object: Fix compilation with uClibc\").\n\n> But this is fine otherwise.\n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> >         if (ret < 0) {\n> >                 ret = errno;\n> >                 LOG(DmaBufAllocator, Error)\n> > \n> > base-commit: 98071d3109c131820439f61d9380c0bd4cd2119a","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 E4AE2BDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  5 Jun 2024 08:55:41 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 267C46543C;\n\tWed,  5 Jun 2024 10:55:41 +0200 (CEST)","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 F20C9634B5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  5 Jun 2024 10:55:38 +0200 (CEST)","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 5F5C4EA2;\n\tWed,  5 Jun 2024 10:55:30 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"G+WnrrxG\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1717577730;\n\tbh=ocC68fnlvs4IAkqGghlUugh1w7pdLibWZmTJzWQiXx0=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=G+WnrrxGD9DEnjV30CbCwUfDEWezcoyiZgB9GJlvAR1Zqgt+z9D3DMmk5l2nqiDJM\n\tuVIhQrCQHdfTxwOwdsjmFTVj2sSWXaRInZpdAiXp4p+D9T0S7WXSWiSetFk1DJNcrM\n\tejGDJGTc0OuujeVLx06j1D6A20nGfoTOYyCedOwg=","Date":"Wed, 5 Jun 2024 11:55:22 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org, Hans de Goede <hdegoede@redhat.com>","Subject":"Re: [PATCH] libcamera: dma_buf_allocator: Work around lack of\n\tmemfd_create() in uClibc","Message-ID":"<20240605085522.GA6355@pendragon.ideasonboard.com>","References":"<20240605083757.31553-1-laurent.pinchart@ideasonboard.com>\n\t<171757736633.205609.3037128128270976015@ping.linuxembedded.co.uk>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<171757736633.205609.3037128128270976015@ping.linuxembedded.co.uk>","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":29782,"web_url":"https://patchwork.libcamera.org/comment/29782/","msgid":"<2e392e38-5872-4205-9e58-6cfcdd01b19f@redhat.com>","date":"2024-06-05T10:52:10","subject":"Re: [PATCH] libcamera: dma_buf_allocator: Work around lack of\n\tmemfd_create() in uClibc","submitter":{"id":102,"url":"https://patchwork.libcamera.org/api/people/102/","name":"Hans de Goede","email":"hdegoede@redhat.com"},"content":"Hi,\n\nOn 6/5/24 10:37 AM, Laurent Pinchart wrote:\n> uClibc doesn't provide a memfd_create() implementation. Fix it by using\n> a direct syscall when the function isn't available.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nThanks, patch looks good to me:\n\nReviewed-by: Hans de Goede <hdegoede@redhat.com>\n\nRegards,\n\nHans\n\n\n> ---\n> I should have bundled this in a series with \"[PATCH] libcamera:\n> dma_buf_allocator: Work around lack of file seals in uClibc\", sorry\n> about that.\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 5ec29949c66a..d7d08e188a62 100644\n> --- a/src/libcamera/dma_buf_allocator.cpp\n> +++ b/src/libcamera/dma_buf_allocator.cpp\n> @@ -13,6 +13,7 @@\n>  #include <sys/ioctl.h>\n>  #include <sys/mman.h>\n>  #include <sys/stat.h>\n> +#include <sys/syscall.h>\n>  #include <sys/types.h>\n>  #include <unistd.h>\n>  \n> @@ -132,7 +133,11 @@ UniqueFD DmaBufAllocator::allocFromUDmaBuf(const char *name, std::size_t size)\n>  \tstd::size_t pageMask = sysconf(_SC_PAGESIZE) - 1;\n>  \tsize = (size + pageMask) & ~pageMask;\n>  \n> +#if HAVE_MEMFD_CREATE\n>  \tint ret = memfd_create(name, MFD_ALLOW_SEALING | MFD_CLOEXEC);\n> +#else\n> +\tint ret = syscall(SYS_memfd_create, name, MFD_ALLOW_SEALING | MFD_CLOEXEC);\n> +#endif\n>  \tif (ret < 0) {\n>  \t\tret = errno;\n>  \t\tLOG(DmaBufAllocator, Error)\n> \n> base-commit: 98071d3109c131820439f61d9380c0bd4cd2119a","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 BF35EBD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  5 Jun 2024 10:52:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C754365441;\n\tWed,  5 Jun 2024 12:52:17 +0200 (CEST)","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 4C3566543B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  5 Jun 2024 12:52:15 +0200 (CEST)","from mail-ed1-f71.google.com (mail-ed1-f71.google.com\n\t[209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-34-qWTXGfveOS6AijQEd3aJyw-1; Wed, 05 Jun 2024 06:52:12 -0400","by mail-ed1-f71.google.com with SMTP id\n\t4fb4d7f45d1cf-579c69260bbso2292629a12.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 05 Jun 2024 03:52:12 -0700 (PDT)","from ?IPV6:2001:1c00:c32:7800:5bfa:a036:83f0:f9ec?\n\t(2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl.\n\t[2001:1c00:c32:7800:5bfa:a036:83f0:f9ec])\n\tby smtp.gmail.com with ESMTPSA id\n\t4fb4d7f45d1cf-57a31bbbe18sm9008280a12.37.2024.06.05.03.52.10\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tWed, 05 Jun 2024 03:52:10 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"bpDX/52I\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1717584734;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=1sJKqJWb1p0cU5og/ZqhBx3i6Izvbc1hLuvycOxV52w=;\n\tb=bpDX/52IOILIct9NgbhGK5qf/wUCQbCGSWsgvV9SO3G0qisllPXuKP/cih2moLEandDAMg\n\tO39FlQqobAI0hAEJifKt45tqIOV3D+LontbsLjCGylEAMjpcoFbl2exctTbh/gTFGHDqDl\n\tUnKtzXNQ7EZaR7FIOR1bKTnFK3zUXj4=","X-MC-Unique":"qWTXGfveOS6AijQEd3aJyw-1","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1717584731; x=1718189531;\n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:to:subject:user-agent:mime-version:date:message-id\n\t:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=1sJKqJWb1p0cU5og/ZqhBx3i6Izvbc1hLuvycOxV52w=;\n\tb=fCgl+PY1gW2+dBLKXQwEujmeZDuEa2uoMysLrhyC3HywutiogzXm1v9ZkFKuhpATl3\n\tlRdpUvAV29u+mpfPiQ0GSqHgQPAeHRzqluNxBNJAf6tN9wkThy2AY5MaqT9qHa3nE1yO\n\tG4a4R4sbJZUmdstejBnLEtipFbJV53ixA2dVVmziVtKeB5CRXkD7fVzk68XHfbIXXxiY\n\tiK1FDXF/P9hPXkr40QkXhxWZMTQs/L1ULjWt8CxnSwaUOowsDRBWUP7nY6TR8EWJ155C\n\tySTzLwRQzMU3ejZfo1IObMAaDxUej863n1sN9CtRVbzqN2pn8wopzCnqOdMPd3HCIOOm\n\tRJmA==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCX5ufkUF6Bz8Bz20twgutxhkDIDLHIhO7QZ3dqsZHhCJYHrjSOiXdYMSZNOxeLCPg86nAQ/lh3NvAaeNk/xuZs8fSp71o2unIVB2B8qunGWdQxi6Q==","X-Gm-Message-State":"AOJu0YwNWgJoJYZWuR559ER+b8lbmhG460tARhTWJwySdYnw4ujawEZQ\n\tTYUhyeMfqbm/UMTtJBzysLp+lPTI5W+B8stoQfsoCWmJ1NL/ijsNTA/bkx9NprFi6mgPWXUmqSH\n\t/OsJSkSghcmoLMs3kA4E+7TQG0Cv79AbQXdK1rlcUHFJUc04nqUUwLyyNmmL7IV/q56Wpaso=","X-Received":["by 2002:a50:ba82:0:b0:579:a956:76fd with SMTP id\n\t4fb4d7f45d1cf-57a8b687560mr1636040a12.8.1717584731704; \n\tWed, 05 Jun 2024 03:52:11 -0700 (PDT)","by 2002:a50:ba82:0:b0:579:a956:76fd with SMTP id\n\t4fb4d7f45d1cf-57a8b687560mr1636030a12.8.1717584731298; \n\tWed, 05 Jun 2024 03:52:11 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IGnstO4ucdqBahFHZ+4iGTsUNAUy9p/Toz2gYYOqOQGp5gUcGULKEYpAbwuUNRwEOcrDkcv0w==","Message-ID":"<2e392e38-5872-4205-9e58-6cfcdd01b19f@redhat.com>","Date":"Wed, 5 Jun 2024 12:52:10 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH] libcamera: dma_buf_allocator: Work around lack of\n\tmemfd_create() in uClibc","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20240605083757.31553-1-laurent.pinchart@ideasonboard.com>","From":"Hans de Goede <hdegoede@redhat.com>","In-Reply-To":"<20240605083757.31553-1-laurent.pinchart@ideasonboard.com>","X-Mimecast-Spam-Score":"0","X-Mimecast-Originator":"redhat.com","Content-Language":"en-US, nl","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","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":29784,"web_url":"https://patchwork.libcamera.org/comment/29784/","msgid":"<128010c2f0b219ff8ecb0b116fd0b419b772f794.camel@ndufresne.ca>","date":"2024-06-05T17:53:47","subject":"Re: [PATCH] libcamera: dma_buf_allocator: Work around lack of\n\tmemfd_create() in uClibc","submitter":{"id":30,"url":"https://patchwork.libcamera.org/api/people/30/","name":"Nicolas Dufresne","email":"nicolas@ndufresne.ca"},"content":"I know this is merged already, but for future style improvements ....\n\nLe mercredi 05 juin 2024 à 11:37 +0300, Laurent Pinchart a écrit :\n> uClibc doesn't provide a memfd_create() implementation. Fix it by using\n> a direct syscall when the function isn't available.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n> I should have bundled this in a series with \"[PATCH] libcamera:\n> dma_buf_allocator: Work around lack of file seals in uClibc\", sorry\n> about that.\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 5ec29949c66a..d7d08e188a62 100644\n> --- a/src/libcamera/dma_buf_allocator.cpp\n> +++ b/src/libcamera/dma_buf_allocator.cpp\n> @@ -13,6 +13,7 @@\n>  #include <sys/ioctl.h>\n>  #include <sys/mman.h>\n>  #include <sys/stat.h>\n> +#include <sys/syscall.h>\n>  #include <sys/types.h>\n>  #include <unistd.h>\n>  \n> @@ -132,7 +133,11 @@ UniqueFD DmaBufAllocator::allocFromUDmaBuf(const char *name, std::size_t size)\n>  \tstd::size_t pageMask = sysconf(_SC_PAGESIZE) - 1;\n>  \tsize = (size + pageMask) & ~pageMask;\n>  \n> +#if HAVE_MEMFD_CREATE\n>  \tint ret = memfd_create(name, MFD_ALLOW_SEALING | MFD_CLOEXEC);\n> +#else\n> +\tint ret = syscall(SYS_memfd_create, name, MFD_ALLOW_SEALING | MFD_CLOEXEC);\n> +#endif\n\nInstead of polluting code with ifdefs, a strongly suggest using a compat header\n(or C++ file):\n\n  #ifndef HAVE_MEMFD_CREATE\n  inline int memfd_create(...)\n  {\n  }\n  #endif\n\nNicolas\n\n>  \tif (ret < 0) {\n>  \t\tret = errno;\n>  \t\tLOG(DmaBufAllocator, Error)\n> \n> base-commit: 98071d3109c131820439f61d9380c0bd4cd2119a","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 56662BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  5 Jun 2024 17:53:53 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 62A746543C;\n\tWed,  5 Jun 2024 19:53:52 +0200 (CEST)","from mail-qk1-x730.google.com (mail-qk1-x730.google.com\n\t[IPv6:2607:f8b0:4864:20::730])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1F43B634CD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  5 Jun 2024 19:53:50 +0200 (CEST)","by mail-qk1-x730.google.com with SMTP id\n\taf79cd13be357-7951713ba08so3633985a.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 05 Jun 2024 10:53:50 -0700 (PDT)","from nicolas-tpx395.lan ([2606:6d00:17:5985::7a9])\n\tby smtp.gmail.com with ESMTPSA id\n\taf79cd13be357-794f3017cafsm462262785a.65.2024.06.05.10.53.48\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 05 Jun 2024 10:53:48 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=ndufresne-ca.20230601.gappssmtp.com\n\theader.i=@ndufresne-ca.20230601.gappssmtp.com\n\theader.b=\"RA5Kzpl0\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ndufresne-ca.20230601.gappssmtp.com; s=20230601; t=1717610029;\n\tx=1718214829; darn=lists.libcamera.org; \n\th=mime-version:user-agent:content-transfer-encoding:references\n\t:in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject\n\t:date:message-id:reply-to;\n\tbh=xrhkiXqjDfe6SCpM6EEGOjyrSY7P4pAp9PQ7T+OpNuQ=;\n\tb=RA5Kzpl0bXWwUZENdTUvRWTqyfvtbw3ndYaxb0LKxrm+LLYgwGIGa4pxpm/3lgG42S\n\tJ3MtW8NpPf5ew2u3LjUQo24viRIRN7O/eCin1VaOj191/CTSQXdeV1nmZCrdxsfdgTv5\n\tqGMFaGH1XR/RnwI+U80UtR7y/n8v6M0OGVn2saWBsVYgo4hP1FmuN7F+3v0hdOx2fJXJ\n\txQekoljRZ8ZPulraznbczvz4IoqjtIq8oTRgf1BrS16pIIWHuoqeR2rjr/VZ2K5Y4fed\n\tSAxVsrcrC1SVvvOB019uDTWanltQLT7V3+3rhdUKQw526nAjFZ/+1cCEukZwIulM7r5b\n\t7g4A==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1717610029; x=1718214829;\n\th=mime-version:user-agent:content-transfer-encoding:references\n\t:in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state\n\t:from:to:cc:subject:date:message-id:reply-to;\n\tbh=xrhkiXqjDfe6SCpM6EEGOjyrSY7P4pAp9PQ7T+OpNuQ=;\n\tb=spjEYY5Sbs11xgBiQLccPGsJ76fMClAxN5wafKGdF++IcBbs59h40GybKZMZhOk22B\n\tIHfM+tdGkl2xSSmtVlWeC6JVI9FsZqrFBluEnElFqOoMfvFDCbeI9D9drxWtwZ6piyl0\n\t2WG48cpM1ZKUgB8v7zNN0uyNQt7b6ztLB7VqHn4S7oFy0GAVZvEXrJ+Di64WuUZNlJ5F\n\tn7PTsDEcJhaye4QpQ7LCnNtqJ7HCVqACBDd9W3ibWPiDYEKQA+fw7DDLGAtVtlGVr0LN\n\t4qLIyoXNTp5Fy5TzMb4eyq4cDyD5+YXL2pcKZZtywjP+SS0OO4RxGqOfhdWs82NtifyC\n\ta8ZA==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCUJaaKKoX4xc7M9CjG1fcSjlLAvlnZlXyuW/QZCUuvZxlVpqWC7CRrM1StFrNzW0vZRUziB+AQ7U9hH50Xvv3aWnioPiWNnbI1cR88p6fIOr6lRjw==","X-Gm-Message-State":"AOJu0Yy7Y2Rxxkr6re6LS7EAOLbowwjt+dAfIoYqAwCxItGnBUX9ezgZ\n\tVV5LZNLJ6iCP+2qOLamOFjsXMz5Gw6xL/0hSnqPOTqXfLxjoIrsNf3Kcm/GU6O0=","X-Google-Smtp-Source":"AGHT+IFnPms4ULCFzjS4gzBR6wvdTOl5o6YYXCaIZXXLz1B/n3LJKQ8mEUOAL3cJyO5LK1jE36CxNg==","X-Received":"by 2002:a05:620a:2402:b0:794:f4db:ab78 with SMTP id\n\taf79cd13be357-7952f0b8717mr71241585a.3.1717610028752; \n\tWed, 05 Jun 2024 10:53:48 -0700 (PDT)","Message-ID":"<128010c2f0b219ff8ecb0b116fd0b419b772f794.camel@ndufresne.ca>","Subject":"Re: [PATCH] libcamera: dma_buf_allocator: Work around lack of\n\tmemfd_create() in uClibc","From":"Nicolas Dufresne <nicolas@ndufresne.ca>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>, \n\tlibcamera-devel@lists.libcamera.org","Cc":"Hans de Goede <hdegoede@redhat.com>","Date":"Wed, 05 Jun 2024 13:53:47 -0400","In-Reply-To":"<20240605083757.31553-1-laurent.pinchart@ideasonboard.com>","References":"<20240605083757.31553-1-laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","User-Agent":"Evolution 3.52.2 (3.52.2-1.fc40) ","MIME-Version":"1.0","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":30524,"web_url":"https://patchwork.libcamera.org/comment/30524/","msgid":"<20240731132102.GA23030@pendragon.ideasonboard.com>","date":"2024-07-31T13:21:02","subject":"Re: [PATCH] libcamera: dma_buf_allocator: Work around lack of\n\tmemfd_create() in uClibc","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Nicolas,\n\nOn Wed, Jun 05, 2024 at 01:53:47PM -0400, Nicolas Dufresne wrote:\n> I know this is merged already, but for future style improvements ....\n\nWe can still fix or improve code that has been merged already :-)\n\n> Le mercredi 05 juin 2024 à 11:37 +0300, Laurent Pinchart a écrit :\n> > uClibc doesn't provide a memfd_create() implementation. Fix it by using\n> > a direct syscall when the function isn't available.\n> > \n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> > I should have bundled this in a series with \"[PATCH] libcamera:\n> > dma_buf_allocator: Work around lack of file seals in uClibc\", sorry\n> > about that.\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 5ec29949c66a..d7d08e188a62 100644\n> > --- a/src/libcamera/dma_buf_allocator.cpp\n> > +++ b/src/libcamera/dma_buf_allocator.cpp\n> > @@ -13,6 +13,7 @@\n> >  #include <sys/ioctl.h>\n> >  #include <sys/mman.h>\n> >  #include <sys/stat.h>\n> > +#include <sys/syscall.h>\n> >  #include <sys/types.h>\n> >  #include <unistd.h>\n> >  \n> > @@ -132,7 +133,11 @@ UniqueFD DmaBufAllocator::allocFromUDmaBuf(const char *name, std::size_t size)\n> >  \tstd::size_t pageMask = sysconf(_SC_PAGESIZE) - 1;\n> >  \tsize = (size + pageMask) & ~pageMask;\n> >  \n> > +#if HAVE_MEMFD_CREATE\n> >  \tint ret = memfd_create(name, MFD_ALLOW_SEALING | MFD_CLOEXEC);\n> > +#else\n> > +\tint ret = syscall(SYS_memfd_create, name, MFD_ALLOW_SEALING | MFD_CLOEXEC);\n> > +#endif\n> \n> Instead of polluting code with ifdefs, a strongly suggest using a compat header\n> (or C++ file):\n> \n>   #ifndef HAVE_MEMFD_CREATE\n>   inline int memfd_create(...)\n>   {\n>   }\n>   #endif\n\nThat's a good idea. I'll test it out.\n\n> >  \tif (ret < 0) {\n> >  \t\tret = errno;\n> >  \t\tLOG(DmaBufAllocator, Error)\n> > \n> > base-commit: 98071d3109c131820439f61d9380c0bd4cd2119a","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 2356EC323E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 31 Jul 2024 13:21:27 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id ECBBC6336F;\n\tWed, 31 Jul 2024 15:21:25 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DAF516198E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 31 Jul 2024 15:21:23 +0200 (CEST)","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 BB30D842;\n\tWed, 31 Jul 2024 15:20:35 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"BwIQFHbh\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1722432036;\n\tbh=OsiTxHJZ3oKJDxyqick0IgUC6OVRyCk2jr7/VbwFIag=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=BwIQFHbhJF875P2Z+J+LGdlM7+gLXh+OWlEwX9uDqWTWRDk0ke76R2eR3O5R8vJtX\n\tlEuzd6kvKnlePKApSCWoQdJ0sQdgIS3yA9PMmym6TFhbUnArejvx8yWaJ/me/TBwfM\n\tqWUYykVf0Q6gQaShVaHA8M6fSs6pEmJ7fV/JOQFg=","Date":"Wed, 31 Jul 2024 16:21:02 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Nicolas Dufresne <nicolas@ndufresne.ca>","Cc":"libcamera-devel@lists.libcamera.org, Hans de Goede <hdegoede@redhat.com>","Subject":"Re: [PATCH] libcamera: dma_buf_allocator: Work around lack of\n\tmemfd_create() in uClibc","Message-ID":"<20240731132102.GA23030@pendragon.ideasonboard.com>","References":"<20240605083757.31553-1-laurent.pinchart@ideasonboard.com>\n\t<128010c2f0b219ff8ecb0b116fd0b419b772f794.camel@ndufresne.ca>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<128010c2f0b219ff8ecb0b116fd0b419b772f794.camel@ndufresne.ca>","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>"}}]