qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] hw: ide: check the pointer before do dma memory unmap


From: Li Qiang
Subject: Re: [PATCH] hw: ide: check the pointer before do dma memory unmap
Date: Tue, 15 Sep 2020 21:38:39 +0800

ping!!

Li Qiang <liq3ea@gmail.com> 于2020年9月7日周一 上午9:39写道:
>
> Ping!
>
> Li Qiang <liq3ea@gmail.com> 于2020年9月1日周二 下午6:34写道:
> >
> > Ping.
> >
> > Li Qiang <liq3ea@163.com> 于2020年8月15日周六 下午3:21写道:
> > >
> > > In 'map_page' we need to check the return value of
> > > 'dma_memory_map' to ensure the we actully maped something.
> > > Otherwise, we will hit an assert in 'address_space_unmap'.
> > > This is because we can't find the MR with the NULL buffer.
> > > This is the LP#1884693:
> > >
> > > -->https://bugs.launchpad.net/qemu/+bug/1884693
> > >
> > > Reported-by: Alexander Bulekov <alxndr@bu.edu>
> > > Signed-off-by: Li Qiang <liq3ea@163.com>
> > > ---
> > >  hw/ide/ahci.c | 5 +++++
> > >  1 file changed, 5 insertions(+)
> > >
> > > diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
> > > index 009120f88b..63e9fccdbe 100644
> > > --- a/hw/ide/ahci.c
> > > +++ b/hw/ide/ahci.c
> > > @@ -250,6 +250,11 @@ static void map_page(AddressSpace *as, uint8_t 
> > > **ptr, uint64_t addr,
> > >      }
> > >
> > >      *ptr = dma_memory_map(as, addr, &len, DMA_DIRECTION_FROM_DEVICE);
> > > +
> > > +    if (!*ptr) {
> > > +        return;
> > > +    }
> > > +
> > >      if (len < wanted) {
> > >          dma_memory_unmap(as, *ptr, len, DMA_DIRECTION_FROM_DEVICE, len);
> > >          *ptr = NULL;
> > > --
> > > 2.17.1
> > >



reply via email to

[Prev in Thread] Current Thread [Next in Thread]