[PATCH 1/1] DmaBufAllocator: Make DmaSyncer non-copyable
Cheng-Hao Yang
chenghaoyang at chromium.org
Wed Dec 11 05:17:13 CET 2024
Hi Kieran,
On Wed, Dec 11, 2024 at 1:25 AM Kieran Bingham
<kieran.bingham at ideasonboard.com> wrote:
>
> Quoting Harvey Yang (2024-11-29 18:53:28)
> > This fixes commit 39482d59fe7160740ea5dd61f3ed965a88d848ce.
>
> Have you seen how we style fixes tags to match the linux kernel?
>
> Taken from: https://docs.kernel.org/process/submitting-patches.html#describe-your-changes
>
>
> """
>
> If your patch fixes a bug in a specific commit, e.g. you found an issue
> using git bisect, please use the ‘Fixes:’ tag with the first 12
> characters of the SHA-1 ID, and the one line summary. Do not split the
> tag across multiple lines, tags are exempt from the “wrap at 75 columns”
> rule in order to simplify parsing scripts. For example:
>
> Fixes: 54a4f0239f2e ("KVM: MMU: make kvm_mmu_zap_page() return the number of pages it actually freed")
>
> The following git config settings can be used to add a pretty format for
> outputting the above style in the git log or git show commands:
>
> [core]
> abbrev = 12
> [pretty]
> fixes = Fixes: %h (\"%s\")
>
> An example call:
>
> $ git log -1 --pretty=fixes 54a4f0239f2e
> Fixes: 54a4f0239f2e ("KVM: MMU: make kvm_mmu_zap_page() return the number of pages it actually freed")
>
Thanks for the suggestion!
Added in my git config, and sent a new version.
BR,
Harvey
> """
>
>
>
> >
> > As DmaSyncer does sync start/end in the c'tor/d'tor, copying a DmaSyncer
> > instance would trigger sync end earlier than expected. This patch makes
> > it non-copyable to avoid the issue.
> >
> > Signed-off-by: Harvey Yang <chenghaoyang at chromium.org>
>
> With the fixes tag corrected
>
>
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>
> > ---
> > include/libcamera/internal/dma_buf_allocator.h | 5 +++++
> > src/libcamera/dma_buf_allocator.cpp | 10 ++++++++++
> > 2 files changed, 15 insertions(+)
> >
> > diff --git a/include/libcamera/internal/dma_buf_allocator.h b/include/libcamera/internal/dma_buf_allocator.h
> > index fc5de2c13..0cb209630 100644
> > --- a/include/libcamera/internal/dma_buf_allocator.h
> > +++ b/include/libcamera/internal/dma_buf_allocator.h
> > @@ -60,9 +60,14 @@ public:
> >
> > explicit DmaSyncer(SharedFD fd, SyncType type = SyncType::ReadWrite);
> >
> > + DmaSyncer(DmaSyncer &&) = default;
> > + DmaSyncer &operator=(DmaSyncer &&) = default;
> > +
> > ~DmaSyncer();
> >
> > private:
> > + LIBCAMERA_DISABLE_COPY(DmaSyncer)
> > +
> > void sync(uint64_t step);
> >
> > SharedFD fd_;
> > diff --git a/src/libcamera/dma_buf_allocator.cpp b/src/libcamera/dma_buf_allocator.cpp
> > index 3cc52f968..5f517828d 100644
> > --- a/src/libcamera/dma_buf_allocator.cpp
> > +++ b/src/libcamera/dma_buf_allocator.cpp
> > @@ -311,6 +311,16 @@ DmaSyncer::DmaSyncer(SharedFD fd, SyncType type)
> > sync(DMA_BUF_SYNC_START);
> > }
> >
> > +/**
> > + * \fn DmaSyncer::DmaSyncer(DmaSyncer &&) = default;
> > + * \brief Enable move on class DmaSyncer
> > + */
> > +
> > +/**
> > + * \fn DmaSyncer::operator=(DmaSyncer &&) = default;
> > + * \brief Enable move on class DmaSyncer
> > + */
> > +
> > DmaSyncer::~DmaSyncer()
> > {
> > sync(DMA_BUF_SYNC_END);
> > --
> > 2.47.0.338.g60cca15819-goog
> >
More information about the libcamera-devel
mailing list