From patchwork Tue Mar 20 02:50:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 10296107 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 74A0F602C2 for ; Tue, 20 Mar 2018 02:51:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 652A728DA8 for ; Tue, 20 Mar 2018 02:51:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 59C4528F20; Tue, 20 Mar 2018 02:51:32 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E382828DA8 for ; Tue, 20 Mar 2018 02:51:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752384AbeCTCvU (ORCPT ); Mon, 19 Mar 2018 22:51:20 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:35826 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750888AbeCTCub (ORCPT ); Mon, 19 Mar 2018 22:50:31 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id C8A7F60F92; Tue, 20 Mar 2018 02:50:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1521514231; bh=xitJ6QBYMPXpw2oo4vPhOefkO0aZUz6xvLmIuGKSF58=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ScBrUHmC4ViyqqSsVXFk25VkSK9mLVyiXOvwWAddSIA1MtAg1soQRidWUHIObp7RI jU2vxO+AFyCOVc7kFGJ/LVG55d3YCKqDO3MUNhfQGs/0vsLlz/Eh5X+3r8Mvj/pIIF SFLxQmdqyplWmuFRA4JJ37EpFZg61zeWg1HOUg2I= Received: from drakthul.qualcomm.com (global_nat1_iad_fw.qualcomm.com [129.46.232.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: okaya@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 94E3960FF7; Tue, 20 Mar 2018 02:50:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1521514221; bh=xitJ6QBYMPXpw2oo4vPhOefkO0aZUz6xvLmIuGKSF58=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i4+uoyBkkXqeSzSV4awkHH0uIXzzgKYGcadQHKicQDK/S7wPLaz8lwOYfgFB8BkGs LJfguR/X0p7o6IgwnEbSJ6oLw/KKTgVRc4odqldKtSYVFNAjkvyQ0XP0zP9omPgG/y 7SJC25ggbkSiltJk26a8FKsRPV74oPdntJXPsZkE= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 94E3960FF7 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=okaya@codeaurora.org From: Sinan Kaya To: linux-scsi@vger.kernel.org, timur@codeaurora.org, sulrich@codeaurora.org Cc: linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Sinan Kaya , Brian King , "James E.J. Bottomley" , "Martin K. Petersen" , linux-kernel@vger.kernel.org Subject: [PATCH v4 5/7] scsi: ipr: Eliminate duplicate barriers on weakly-ordered archs Date: Mon, 19 Mar 2018 22:50:05 -0400 Message-Id: <1521514207-10695-6-git-send-email-okaya@codeaurora.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1521514207-10695-1-git-send-email-okaya@codeaurora.org> References: <1521514207-10695-1-git-send-email-okaya@codeaurora.org> MIME-Version: 1.0 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Code includes barrier() followed by writel(). writel() already has a barrier on some architectures like arm64. This ends up CPU observing two barriers back to back before executing the register write. Since code already has an explicit barrier call, changing writeX() to writeX_relaxed(). Signed-off-by: Sinan Kaya Acked-by: Brian King --- drivers/scsi/ipr.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index e07dd99..209adac 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c @@ -762,9 +762,9 @@ static void ipr_mask_and_clear_interrupts(struct ipr_ioa_cfg *ioa_cfg, /* Set interrupt mask to stop all new interrupts */ if (ioa_cfg->sis64) - writeq(~0, ioa_cfg->regs.set_interrupt_mask_reg); + writeq_relaxed(~0, ioa_cfg->regs.set_interrupt_mask_reg); else - writel(~0, ioa_cfg->regs.set_interrupt_mask_reg); + writel_relaxed(~0, ioa_cfg->regs.set_interrupt_mask_reg); /* Clear any pending interrupts */ if (ioa_cfg->sis64) @@ -8435,7 +8435,8 @@ static int ipr_reset_enable_ioa(struct ipr_cmnd *ipr_cmd) wmb(); if (ioa_cfg->sis64) { /* Set the adapter to the correct endian mode. */ - writel(IPR_ENDIAN_SWAP_KEY, ioa_cfg->regs.endian_swap_reg); + writel_relaxed(IPR_ENDIAN_SWAP_KEY, + ioa_cfg->regs.endian_swap_reg); int_reg = readl(ioa_cfg->regs.endian_swap_reg); }