Re: [PATCH] platform-msi: Free descriptors in platform_msi_domain_free()

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

 



Hi Marc,

Marc Zyngier <marc.zyngier@xxxxxxx> wrote on Thu, 11 Oct 2018 09:36:04
+0100:

> Miquel,
> 
> On Fri, 28 Sep 2018 16:10:29 +0100,
> Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote:
> > 
> > Hi Marc,
> > 
> > [...]
> >   
> > > At that stage, you're better off just calling
> > > 
> > > 	list_del(&desc->list);
> > > 	free_msi_entry(desc);
> > > 
> > > I like this approach better as we only traverse the list once.  
> > 
> > Right.
> >   
> > >   
> > > >          }
> > > >   }    
> > > >   >   /**    
> > > > diff --git a/include/linux/msi.h b/include/linux/msi.h
> > > > index 5839d8062dfc..be8ec813dbfb 100644
> > > > --- a/include/linux/msi.h
> > > > +++ b/include/linux/msi.h
> > > > @@ -116,6 +116,8 @@ struct msi_desc {
> > > >          list_first_entry(dev_to_msi_list((dev)), struct msi_desc, list)
> > > >   #define for_each_msi_entry(desc, dev)  \
> > > >          list_for_each_entry((desc), dev_to_msi_list((dev)), list)
> > > > +#define for_each_msi_entry_safe(desc, tmp, dev)        \
> > > > +       list_for_each_entry_safe((desc), (tmp), dev_to_msi_list((dev)), list)    
> > > >   >   #ifdef CONFIG_PCI_MSI    
> > > >   #define first_pci_msi_entry(pdev)      first_msi_entry(&(pdev)->dev)    
> > > 
> > > If you repin this, I'll queue it right away.  
> > 
> > Let me test the new version to be sure I'm not breaking anything and
> > I'll send a v2.  
> 
> What is the status of this? Are you still planning to send a v2? I'd
> really like this fix to reach 4.19 before we put the last nail on it.

Sorry about that, I was sure I already sent the v2, now it's
done.

The changes in this v2 are that instead of creating a
platform_msi_domain_free_descs() helper that iterates over the list of 
descriptors, the descriptor itself is removed from the list and destroyed 
directly in platform_msi_domain_free(). The for_each_msi_entry() loop is
also transformed to use the "_safe" alternative.

Thanks,
Miquèl



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux