From patchwork Thu Nov 22 16:24:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gustavo Pimentel X-Patchwork-Id: 1001867 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-pci-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=synopsys.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=synopsys.com header.i=@synopsys.com header.b="WeFzhiuA"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4314XX2vM6z9s0t for ; Fri, 23 Nov 2018 03:24:44 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2395383AbeKWDEq (ORCPT ); Thu, 22 Nov 2018 22:04:46 -0500 Received: from us01smtprelay-2.synopsys.com ([198.182.60.111]:41836 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2395258AbeKWDEq (ORCPT ); Thu, 22 Nov 2018 22:04:46 -0500 Received: from mailhost.synopsys.com (mailhost1.synopsys.com [10.12.238.239]) by smtprelay.synopsys.com (Postfix) with ESMTP id BDC2010C13DB; Thu, 22 Nov 2018 08:24:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1542903882; bh=GdJJ8Msy/9aSgdBYlMbr2GiFqyMyNIZ4EObwk0SjbNc=; h=From:To:Cc:Subject:Date:From; b=WeFzhiuAnmD9eu8wP6d2dA8/cRoV1QLkmGPfIAEx5QUMau/lp1QENxBHSWphbtyoH x64qlc41jQB+nbCX8RUuMZRa0CcFcW2OI/iT0DtTs7LBKHsynZWMMYrjM2NVq3O7gQ BU4nXrpCVxAtRWPCukKfzoJZ+CHYfqifrWaB1uY1k6bimCq/qOZfmUr0esl0I1likc YeyS2lxxq0CKpgQyDC30kZdEtyDa/dXC9PBsfOwJjJWHp7C3nC9+GP5y63OEGOO1Yo qBn4dZ668P/BTOi8lzlIQ05MpC/YSePIsmy118K7TL3+s6r0tchR0jA1PmqbcN7fWP 7rJvJ8l28wEkw== Received: from de02.synopsys.com (germany.internal.synopsys.com [10.225.17.21]) by mailhost.synopsys.com (Postfix) with ESMTP id 7E54B5614; Thu, 22 Nov 2018 08:24:42 -0800 (PST) Received: from de02dwia024.internal.synopsys.com (de02dwia024.internal.synopsys.com [10.225.19.81]) by de02.synopsys.com (Postfix) with ESMTP id AF14E3F776; Thu, 22 Nov 2018 17:24:41 +0100 (CET) From: Gustavo Pimentel To: lorenzo.pieralisi@arm.com, jingoohan1@gmail.com, bhelgaas@google.com Cc: joao.pinto@synopsys.com, linux-pci@vger.kernel.org, Gustavo Pimentel Subject: [PATCH] PCI: dwc: Remove 3-bit right rotation on MSI-X table offset address calculation Date: Thu, 22 Nov 2018 17:24:28 +0100 Message-Id: X-Mailer: git-send-email 2.7.4 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org Remove 3-bit right rotation on MSI-X table offset address calculation on dw_pcie_ep_raise_msix_irq(). By default, the offset address of the MSI-X table is zero, so that even with a 3-bit right rotation, the computed result would still be zero, so still valid. Fixes: beb4641a787d ("PCI: dwc: Add MSI-X callbacks handler") Signed-off-by: Gustavo Pimentel --- drivers/pci/controller/dwc/pcie-designware-ep.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c index 1e7b022..cdb2005 100644 --- a/drivers/pci/controller/dwc/pcie-designware-ep.c +++ b/drivers/pci/controller/dwc/pcie-designware-ep.c @@ -440,7 +440,6 @@ int dw_pcie_ep_raise_msix_irq(struct dw_pcie_ep *ep, u8 func_no, tbl_offset = dw_pcie_readl_dbi(pci, reg); bir = (tbl_offset & PCI_MSIX_TABLE_BIR); tbl_offset &= PCI_MSIX_TABLE_OFFSET; - tbl_offset >>= 3; reg = PCI_BASE_ADDRESS_0 + (4 * bir); bar_addr_upper = 0; @@ -466,8 +465,10 @@ int dw_pcie_ep_raise_msix_irq(struct dw_pcie_ep *ep, u8 func_no, iounmap(msix_tbl); - if (vec_ctrl & PCI_MSIX_ENTRY_CTRL_MASKBIT) + if (vec_ctrl & PCI_MSIX_ENTRY_CTRL_MASKBIT) { + dev_err(pci->dev, "MSI-X entry ctrl set\n"); return -EPERM; + } ret = dw_pcie_ep_map_addr(epc, func_no, ep->msi_mem_phys, msg_addr, epc->mem->page_size);