Received: by 2002:a25:824b:0:0:0:0:0 with SMTP id d11csp1187809ybn; Wed, 2 Oct 2019 12:09:19 -0700 (PDT) X-Google-Smtp-Source: APXvYqyt/iQ/MMNYwhAbb8syZaEMQC0O3IqnmHTR7vbd06cc7DbmnwE2jl74J5pqG/rTTJGyRpok X-Received: by 2002:a05:6402:1858:: with SMTP id v24mr5550458edy.130.1570043359236; Wed, 02 Oct 2019 12:09:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570043359; cv=none; d=google.com; s=arc-20160816; b=lQyI0mLhofwToNk6mNCkgEtmVwG+fL2QQX0Moj+/C+wWPVVh4Wl7BNEBR2XE1R9oSG p80UoDsAT4Oobl7h56h6lu6F7/WPQseQP/Ny8qcQrXoyAfsCX9Z1yHvcVe6MGhU0akLb 5mMcNUmMXBgiqYdGSr83O2douCBRaPv4qyXUhFKn2fxIQUWe8H9IV+gOaa7a120aF+sr 0jndRavwlcWDkXkzhi3uGUcTm5Nc6GPxMkCzCefSMbnezKNlyz0exmseRj3kK8ynC2sF QBelLJSBvSjAvz0xhGXTBsQyUktdj89C9LXgYI5S6oRLURNAXlbuoJFs/yzKbJQB/+38 daEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:subject:message-id:date:cc:to :from:mime-version:content-transfer-encoding:content-disposition; bh=phElAhwqaaRMpGnsX57I8ipKZiR7l3TuqKWKHuYJ0Ug=; b=j/f22vsMXYXn1Pb2SxA2I8iMOIyzRTnQIc48a8/87iiOGmRuGJzKRRqfGEmQ1EMP8I n+MbpmMMJWfUlwWL8hwR6fpxEzzMGV5cHKxrp8KnaJoOzuhq9Q9hZjScOZSSjPp2bBce ypGZXcm82Ra0Ye1BVdt6Vvi3ZNafdj4VnTTkOxWMijRuXVMl8ze2rR7D5w89DWi9puEy wRP1goDP0ZI0V0D5VsZFmtkJzMC8pYEfB1XDiozi2vCRdDTmv/xKpg4rWwMkg7whkjng QhSQ7Sf5DbGrpljWWAN2bjLQWn49MujsHY5GsvEnq1AWM0ZK58yyLQYwXYA6vN4ciRPb 8w4A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b3si19331ejq.45.2019.10.02.12.08.54; Wed, 02 Oct 2019 12:09:19 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729454AbfJBTI3 (ORCPT + 99 others); Wed, 2 Oct 2019 15:08:29 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:35624 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729231AbfJBTIM (ORCPT ); Wed, 2 Oct 2019 15:08:12 -0400 Received: from [192.168.4.242] (helo=deadeye) by shadbolt.decadent.org.uk with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iFjyr-00035x-Bv; Wed, 02 Oct 2019 20:08:09 +0100 Received: from ben by deadeye with local (Exim 4.92.1) (envelope-from ) id 1iFjyo-0003dY-Bv; Wed, 02 Oct 2019 20:08:06 +0100 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org CC: akpm@linux-foundation.org, Denis Kirjanov , "Helge Deller" , "John David Anglin" Date: Wed, 02 Oct 2019 20:06:51 +0100 Message-ID: X-Mailer: LinuxStableQueue (scripts by bwh) X-Patchwork-Hint: ignore Subject: [PATCH 3.16 46/87] parisc: Use implicit space register selection for loading the coherence index of I/O pdirs In-Reply-To: X-SA-Exim-Connect-IP: 192.168.4.242 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.16.75-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: John David Anglin commit 63923d2c3800919774f5c651d503d1dd2adaddd5 upstream. We only support I/O to kernel space. Using %sr1 to load the coherence index may be racy unless interrupts are disabled. This patch changes the code used to load the coherence index to use implicit space register selection. This saves one instruction and eliminates the race. Tested on rp3440, c8000 and c3750. Signed-off-by: John David Anglin Signed-off-by: Helge Deller Signed-off-by: Ben Hutchings --- drivers/parisc/ccio-dma.c | 4 +--- drivers/parisc/sba_iommu.c | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) --- a/drivers/parisc/ccio-dma.c +++ b/drivers/parisc/ccio-dma.c @@ -563,8 +563,6 @@ ccio_io_pdir_entry(u64 *pdir_ptr, space_ /* We currently only support kernel addresses */ BUG_ON(sid != KERNEL_SPACE); - mtsp(sid,1); - /* ** WORD 1 - low order word ** "hints" parm includes the VALID bit! @@ -595,7 +593,7 @@ ccio_io_pdir_entry(u64 *pdir_ptr, space_ ** Grab virtual index [0:11] ** Deposit virt_idx bits into I/O PDIR word */ - asm volatile ("lci %%r0(%%sr1, %1), %0" : "=r" (ci) : "r" (vba)); + asm volatile ("lci %%r0(%1), %0" : "=r" (ci) : "r" (vba)); asm volatile ("extru %1,19,12,%0" : "+r" (ci) : "r" (ci)); asm volatile ("depw %1,15,12,%0" : "+r" (pa) : "r" (ci)); --- a/drivers/parisc/sba_iommu.c +++ b/drivers/parisc/sba_iommu.c @@ -573,8 +573,7 @@ sba_io_pdir_entry(u64 *pdir_ptr, space_t pa = virt_to_phys(vba); pa &= IOVP_MASK; - mtsp(sid,1); - asm("lci 0(%%sr1, %1), %0" : "=r" (ci) : "r" (vba)); + asm("lci 0(%1), %0" : "=r" (ci) : "r" (vba)); pa |= (ci >> PAGE_SHIFT) & 0xff; /* move CI (8 bits) into lowest byte */ pa |= SBA_PDIR_VALID_BIT; /* set "valid" bit */