powerpc/pseries: Use irq_has_action() in eeh_disable_irq()
Rather than open-coding our own check, use irq_has_action() to check if an irq has an action - ie. is "in use". irq_has_action() doesn't take the descriptor lock, but it shouldn't matter - we're just using it as an indicator that the irq is in use. disable_irq_nosync() will take the descriptor lock before doing anything also. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Acked-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
551b81f26f
commit
59e3f83702
1 changed files with 1 additions and 17 deletions
|
@ -63,22 +63,6 @@ static void print_device_node_tree(struct pci_dn *pdn, int dent)
|
|||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* irq_in_use - return true if this irq is being used
|
||||
*/
|
||||
static int irq_in_use(unsigned int irq)
|
||||
{
|
||||
int rc = 0;
|
||||
unsigned long flags;
|
||||
struct irq_desc *desc = irq_desc + irq;
|
||||
|
||||
spin_lock_irqsave(&desc->lock, flags);
|
||||
if (desc->action)
|
||||
rc = 1;
|
||||
spin_unlock_irqrestore(&desc->lock, flags);
|
||||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
* eeh_disable_irq - disable interrupt for the recovering device
|
||||
*/
|
||||
|
@ -93,7 +77,7 @@ static void eeh_disable_irq(struct pci_dev *dev)
|
|||
if (dev->msi_enabled || dev->msix_enabled)
|
||||
return;
|
||||
|
||||
if (!irq_in_use(dev->irq))
|
||||
if (!irq_has_action(dev->irq))
|
||||
return;
|
||||
|
||||
PCI_DN(dn)->eeh_mode |= EEH_MODE_IRQ_DISABLED;
|
||||
|
|
Loading…
Reference in a new issue