From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.bootlin.com ([62.4.15.54]:37013 "EHLO mail.bootlin.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726738AbeI1Veo (ORCPT ); Fri, 28 Sep 2018 17:34:44 -0400 Date: Fri, 28 Sep 2018 17:10:29 +0200 From: Miquel Raynal To: Marc Zyngier Cc: Greg Kroah-Hartman , "Rafael J . Wysocki" , Thomas Petazzoni , Nadav Haklai , Gregory Clement , Maxime Chevallier , Antoine Tenart , Stefan Chulski , stable@vger.kernel.org Subject: Re: [PATCH] platform-msi: Free descriptors in platform_msi_domain_free() Message-ID: <20180928171029.45199a98@xps13> In-Reply-To: <525716a2-96be-d7f4-f0dc-a8b59ac700e9@arm.com> References: <20180907150129.14729-1-miquel.raynal@bootlin.com> <86r2hovwrq.wl-marc.zyngier@arm.com> <20180924153938.4047e1b1@xps13> <525716a2-96be-d7f4-f0dc-a8b59ac700e9@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: stable-owner@vger.kernel.org List-ID: 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. Thanks, Miquèl