[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] x86/MSI: fix locking in pci_restore_msi_state()
commit dfd1fe582367933924a1e3318ac0a0da7d2bc7e3 Author: Jan Beulich <jbeulich@xxxxxxxx> AuthorDate: Mon Oct 14 09:07:02 2013 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Mon Oct 14 09:07:02 2013 +0200 x86/MSI: fix locking in pci_restore_msi_state() Right after the loop the lock is being dropped, so all loop exits should happen with the lock still held. Reported-by: Kristoffer Egefelt <kristoffer@xxxxxxx> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Tested-by: Kristoffer Egefelt <kristoffer@xxxxxxx> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- xen/arch/x86/msi.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c index e17e5b2..b43c36a 100644 --- a/xen/arch/x86/msi.c +++ b/xen/arch/x86/msi.c @@ -1158,11 +1158,11 @@ int pci_restore_msi_state(struct pci_dev *pdev) for ( i = 0; ; ) { msi_set_mask_bit(desc, entry[i].msi_attrib.masked); - spin_unlock_irqrestore(&desc->lock, flags); if ( !--nr ) break; + spin_unlock_irqrestore(&desc->lock, flags); desc = &irq_desc[entry[++i].irq]; spin_lock_irqsave(&desc->lock, flags); if ( desc->msi_desc != entry + i ) -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |