Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40e18843 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: msi: check access to PCIe config and BAR access for MSI/MSI-X"

parents d3e9cee6 1f985809
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -172,6 +172,7 @@ static void msm_msi_mask_irq(struct irq_data *data)
	struct irq_data *parent_data;
	struct msm_msi_irq *msi_irq;
	struct msm_msi *msi;
	unsigned long flags;

	parent_data = data->parent_data;
	if (!parent_data)
@@ -180,7 +181,11 @@ static void msm_msi_mask_irq(struct irq_data *data)
	msi_irq = irq_data_get_irq_chip_data(parent_data);
	msi = msi_irq->client->msi;

	spin_lock_irqsave(&msi->cfg_lock, flags);
	if (msi->cfg_access)
		pci_msi_mask_irq(data);
	spin_unlock_irqrestore(&msi->cfg_lock, flags);

	msi->mask_irq(parent_data);
}

@@ -216,6 +221,7 @@ static void msm_msi_unmask_irq(struct irq_data *data)
	struct irq_data *parent_data;
	struct msm_msi_irq *msi_irq;
	struct msm_msi *msi;
	unsigned long flags;

	parent_data = data->parent_data;
	if (!parent_data)
@@ -225,7 +231,11 @@ static void msm_msi_unmask_irq(struct irq_data *data)
	msi = msi_irq->client->msi;

	msi->unmask_irq(parent_data);

	spin_lock_irqsave(&msi->cfg_lock, flags);
	if (msi->cfg_access)
		pci_msi_unmask_irq(data);
	spin_unlock_irqrestore(&msi->cfg_lock, flags);
}

static struct irq_chip msm_msi_irq_chip = {