From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linutronix.de (146.0.238.70:993) by crypto-ml.lab.linutronix.de with IMAP4-SSL for ; 24 Feb 2019 15:08:35 -0000 Received: from mga05.intel.com ([192.55.52.43]) by Galois.linutronix.de with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1gxvNu-0001Qt-0s for speck@linutronix.de; Sun, 24 Feb 2019 16:08:07 +0100 From: Andi Kleen Subject: [MODERATED] [FROZEN] [PATCH v6 36/43] MDSv6 Date: Sun, 24 Feb 2019 07:07:42 -0800 Message-Id: <97fbde3b02f4348f0add0944368db2479ce54bd4.1551019522.git.ak@linux.intel.com> In-Reply-To: References: In-Reply-To: References: To: speck@linutronix.de Cc: Andi Kleen List-ID: From: Andi Kleen Subject: mds sweep: Make Amazon ena driver management interrupt clear cpu Most of the Amazon ena interrupt handlers do not touch user data, but the management interrupt does complicated things and should not be performance critical. Mark the management interrupt only as clear cpu. This needs some minor changes to the table driven interrupt setup. Signed-off-by: Andi Kleen --- drivers/net/ethernet/amazon/ena/ena_netdev.c | 5 +++-- drivers/net/ethernet/amazon/ena/ena_netdev.h | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c index a6eacf2099c3..b13611a203c6 100644 --- a/drivers/net/ethernet/amazon/ena/ena_netdev.c +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c @@ -1357,6 +1357,7 @@ static void ena_setup_mgmnt_intr(struct ena_adapter *adapter) snprintf(adapter->irq_tbl[ENA_MGMNT_IRQ_IDX].name, ENA_IRQNAME_SIZE, "ena-mgmnt@pci:%s", pci_name(adapter->pdev)); + adapter->irq_tbl[ENA_MGMNT_IRQ_IDX].flags = IRQF_USER_DATA; adapter->irq_tbl[ENA_MGMNT_IRQ_IDX].handler = ena_intr_msix_mgmnt; adapter->irq_tbl[ENA_MGMNT_IRQ_IDX].data = adapter; @@ -1381,6 +1382,7 @@ static void ena_setup_io_intr(struct ena_adapter *adapter) snprintf(adapter->irq_tbl[irq_idx].name, ENA_IRQNAME_SIZE, "%s-Tx-Rx-%d", netdev->name, i); + adapter->irq_tbl[irq_idx].flags = 0; adapter->irq_tbl[irq_idx].handler = ena_intr_msix_io; adapter->irq_tbl[irq_idx].data = &adapter->ena_napi[i]; adapter->irq_tbl[irq_idx].vector = @@ -1394,12 +1396,11 @@ static void ena_setup_io_intr(struct ena_adapter *adapter) static int ena_request_mgmnt_irq(struct ena_adapter *adapter) { - unsigned long flags = 0; struct ena_irq *irq; int rc; irq = &adapter->irq_tbl[ENA_MGMNT_IRQ_IDX]; - rc = request_irq(irq->vector, irq->handler, flags, irq->name, + rc = request_irq(irq->vector, irq->handler, irq->flags, irq->name, irq->data); if (rc) { netif_err(adapter, probe, adapter->netdev, diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.h b/drivers/net/ethernet/amazon/ena/ena_netdev.h index 63870072cbbd..8e8394553dc7 100644 --- a/drivers/net/ethernet/amazon/ena/ena_netdev.h +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.h @@ -140,6 +140,7 @@ struct ena_irq { irq_handler_t handler; + unsigned flags; void *data; int cpu; u32 vector; -- 2.17.2