Tim Deegan
2011-May-18 08:53 UTC
[Xen-devel] [PATCH] pci_remove_device: fix linked list discipline
# HG changeset patch # User Tim Deegan <Tim.Deegan@citrix.com> # Date 1305708740 -3600 # Node ID 7b12c46b18777655c8a5f8290286f5699c77c335 # Parent f531ed84b0661aa6863dc86d5e5638642bc47301 pci_remove_device: fix linked list discipline Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com> diff -r f531ed84b066 -r 7b12c46b1877 xen/drivers/passthrough/pci.c --- a/xen/drivers/passthrough/pci.c Tue May 17 17:32:19 2011 +0100 +++ b/xen/drivers/passthrough/pci.c Wed May 18 09:52:20 2011 +0100 @@ -173,11 +173,11 @@ out: int pci_remove_device(u8 bus, u8 devfn) { - struct pci_dev *pdev; + struct pci_dev *pdev, *tmp; int ret = -ENODEV; spin_lock(&pcidevs_lock); - list_for_each_entry ( pdev, &alldevs_list, alldevs_list ) + list_for_each_entry_safe ( pdev, tmp, &alldevs_list, alldevs_list ) if ( pdev->bus == bus && pdev->devfn == devfn ) { ret = iommu_remove_device(pdev); _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jan Beulich
2011-May-20 15:41 UTC
Re: [Xen-devel] [PATCH] pci_remove_device: fix linked list discipline
>>> On 18.05.11 at 10:53, Tim Deegan <Tim.Deegan@citrix.com> wrote: > # HG changeset patch > # User Tim Deegan <Tim.Deegan@citrix.com> > # Date 1305708740 -3600 > # Node ID 7b12c46b18777655c8a5f8290286f5699c77c335 > # Parent f531ed84b0661aa6863dc86d5e5638642bc47301 > pci_remove_device: fix linked list discipline > > Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com> > > diff -r f531ed84b066 -r 7b12c46b1877 xen/drivers/passthrough/pci.c > --- a/xen/drivers/passthrough/pci.c Tue May 17 17:32:19 2011 +0100 > +++ b/xen/drivers/passthrough/pci.c Wed May 18 09:52:20 2011 +0100 > @@ -173,11 +173,11 @@ out: > > int pci_remove_device(u8 bus, u8 devfn) > { > - struct pci_dev *pdev; > + struct pci_dev *pdev, *tmp; > int ret = -ENODEV; > > spin_lock(&pcidevs_lock); > - list_for_each_entry ( pdev, &alldevs_list, alldevs_list ) > + list_for_each_entry_safe ( pdev, tmp, &alldevs_list, alldevs_list )Somehow I overlooked this patch when it was sent - looking at the code it modifies I can''t see why the ..._safe() variant is necessary here, as there''s a break statement following the list deletion. Jan> if ( pdev->bus == bus && pdev->devfn == devfn ) > { > ret = iommu_remove_device(pdev); > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Tim Deegan
2011-May-23 09:55 UTC
Re: [Xen-devel] [PATCH] pci_remove_device: fix linked list discipline
At 16:41 +0100 on 20 May (1305909715), Jan Beulich wrote:> > diff -r f531ed84b066 -r 7b12c46b1877 xen/drivers/passthrough/pci.c > > --- a/xen/drivers/passthrough/pci.c Tue May 17 17:32:19 2011 +0100 > > +++ b/xen/drivers/passthrough/pci.c Wed May 18 09:52:20 2011 +0100 > > @@ -173,11 +173,11 @@ out: > > > > int pci_remove_device(u8 bus, u8 devfn) > > { > > - struct pci_dev *pdev; > > + struct pci_dev *pdev, *tmp; > > int ret = -ENODEV; > > > > spin_lock(&pcidevs_lock); > > - list_for_each_entry ( pdev, &alldevs_list, alldevs_list ) > > + list_for_each_entry_safe ( pdev, tmp, &alldevs_list, alldevs_list ) > > Somehow I overlooked this patch when it was sent - looking at the > code it modifies I can''t see why the ..._safe() variant is necessary > here, as there''s a break statement following the list deletion.Ah - good point. I''ll go back to the crash report I thought this fixed and take another look. :) Cheers, Tim. -- Tim Deegan <Tim.Deegan@citrix.com> Principal Software Engineer, Xen Platform Team Citrix Systems UK Ltd. (Company #02937203, SL9 0BG) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Tim Deegan
2011-May-23 12:54 UTC
[PATCH] Re: [Xen-devel] pci_remove_device: fix linked list discipline
At 10:55 +0100 on 23 May (1306148154), Tim Deegan wrote:> > Somehow I overlooked this patch when it was sent - looking at the > > code it modifies I can''t see why the ..._safe() variant is necessary > > here, as there''s a break statement following the list deletion. > > Ah - good point. I''ll go back to the crash report I thought this fixed > and take another look. :)The attached patch is a more likely candidate. That will teach me to debug crash reports without getting hold of proper debug symbols. :) Keir, can you apply this and revert 23352:ea48976517af ? Cheers, Tim. -- Tim Deegan <Tim.Deegan@citrix.com> Principal Software Engineer, Xen Platform Team Citrix Systems UK Ltd. (Company #02937203, SL9 0BG) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel