Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp5149516imu; Tue, 29 Jan 2019 13:45:36 -0800 (PST) X-Google-Smtp-Source: ALg8bN7K6C2+Wu666zacvrTydDIRrq2vMi+5ccFazPKg8SCgGrKE8dFxijte6Kk5PNBBdQBVD5I4 X-Received: by 2002:a62:4bcf:: with SMTP id d76mr29156329pfj.170.1548798336563; Tue, 29 Jan 2019 13:45:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548798336; cv=none; d=google.com; s=arc-20160816; b=OyLfhZ2OyRXI4nsSLrgo0nSLT/wihWBOi8v0FUWbuKzuuUZrd7Lq3MIcTuiIj3mS9l O5FbFvytDyR+mSK4wwwMujeBhtg7l0EpNgtcUwB9zCsKBVCW8Wj/rFiZwi/imdo30vws NfCAip5pvoUNurT/Jb9dq/K9Af2W8xCiCGW5IquLRv/7DUhU402x1WmfB9IExD83N4Ow kKIXh0dkOCVWU3d5/k95S6rwJJoxj2neKmCZrbTE6rHet1DtoNqYpIS4GVI9zR4+BX1X u6W4OtAKoZu/E7wFx9/cHhkyAeCLlQpGyHdD0TapOWYTtTsXPim9fEm/84nB0BhrpKiU kV1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:references:message-id:date :thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=+d56UBa6fAH4WuReKWodN00ICIqWP7OzVhnIwe3y/cQ=; b=fvNyD574KCHL3il2dcd9zXZHK4yYhGTrTgO82A8kwXnptsqzca94SUR/cxaV3irAux fdOjCGcHrJnzPvfeZXkNYTzb4RWLdVAHDKyFtIjdVDroZjNpMGzxScD0wV81U7fvTudH mnzshpHYKH3qWPYMx7KI5jN79yq/CSJ2BQBM4bj+qDXnxrbcJmaTj137IP8epFKmPuML sRufE+M/EfTmJ5V7CHkLLWw/B4vKSPCZpx1kT9vv5Og/0MqcMXouFHC3SScXNuXaFO/9 XMaeGAvb2iXmbrPcSZihj6r2u2yAfqOQgJJZXahKzDnQKrkpZTtedqB9rUCpVu9RcdkO wDEw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@synopsys.com header.s=mail header.b=OGDVVpef; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=synopsys.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x135si37920148pgx.579.2019.01.29.13.45.20; Tue, 29 Jan 2019 13:45:36 -0800 (PST) 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; dkim=pass header.i=@synopsys.com header.s=mail header.b=OGDVVpef; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=synopsys.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729319AbfA2Vot (ORCPT + 99 others); Tue, 29 Jan 2019 16:44:49 -0500 Received: from smtprelay2.synopsys.com ([198.182.60.111]:47730 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726982AbfA2Vot (ORCPT ); Tue, 29 Jan 2019 16:44:49 -0500 Received: from mailhost.synopsys.com (dc2-mailhost1.synopsys.com [10.12.135.161]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtprelay.synopsys.com (Postfix) with ESMTPS id B772310C1382; Tue, 29 Jan 2019 13:44:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1548798288; bh=DRprCnG4eBsABgj4bMUuvy1aRMokWEQjtv2TWu5cWXU=; h=From:To:CC:Subject:Date:References:From; b=OGDVVpefWMcbcyickIoADp9uB2H/dGfT+ooQEnN4nK65qBX5htGJijOkxZgCkbrX7 dTZT3iYqyfHs6VsyaorRuuI112Jnduiulo3LWGRUJmCrKitcjHrrZGJx1xoZqaqt8G 2KfW2YGrsrnDGVvCArb434qsCAl1bnr3nSmVuLV7B5AVha1O9ZFxXRPmdnO/yhUZjS LAMZN+/JgnE8yDVLKd1qrXqizAMYISi2iV1zNCkvqvHvQvGjf19PURwNGOD1GfsVoe FE6sALQ2RQqaglGRTPwhfCazL1h00Dfdf/hgYe2qOhlRyZ9fI+oCR7yEhttXwHrbxC Ghxd/orvhtugA== Received: from us01wehtc1.internal.synopsys.com (us01wehtc1-vip.internal.synopsys.com [10.12.239.236]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id 6209DA008B; Tue, 29 Jan 2019 21:44:47 +0000 (UTC) Received: from US01WEMBX2.internal.synopsys.com ([fe80::e4b6:5520:9c0d:250b]) by us01wehtc1.internal.synopsys.com ([::1]) with mapi id 14.03.0415.000; Tue, 29 Jan 2019 13:44:45 -0800 From: Vineet Gupta To: Eugeniy Paltsev , "linux-snps-arc@lists.infradead.org" CC: "linux-kernel@vger.kernel.org" , "Alexey Brodkin" Subject: Re: [PATCH 2/5] ARCv2: introduce unaligned access under a Kconfig option Thread-Topic: [PATCH 2/5] ARCv2: introduce unaligned access under a Kconfig option Thread-Index: AQHUt8BdV97GEf2KMUGRvvMb2YNphA== Date: Tue, 29 Jan 2019 21:44:44 +0000 Message-ID: References: <20190129104942.31705-1-Eugeniy.Paltsev@synopsys.com> <20190129104942.31705-3-Eugeniy.Paltsev@synopsys.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.144.199.106] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 1/29/19 2:49 AM, Eugeniy Paltsev wrote:=0A= > As of today we enable unaligned access unconditionally on ARCv2.=0A= > Lets move it under Kconfig option so we can disable it in case of=0A= > using HW configuration which lacks of it.=0A= >=0A= > Signed-off-by: Eugeniy Paltsev =0A= > ---=0A= > arch/arc/Kconfig | 8 ++++++++=0A= > arch/arc/include/asm/irqflags-arcv2.h | 4 ++++=0A= > arch/arc/kernel/intc-arcv2.c | 4 +++-=0A= > 3 files changed, 15 insertions(+), 1 deletion(-)=0A= >=0A= > diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig=0A= > index 376366a7db81..37c8aeefa3a5 100644=0A= > --- a/arch/arc/Kconfig=0A= > +++ b/arch/arc/Kconfig=0A= > @@ -387,6 +387,14 @@ config ARC_HAS_SWAPE=0A= > =0A= > if ISA_ARCV2=0A= > =0A= > +config ARC_USE_UNALIGNED_MEM_ACCESS=0A= > + bool "Handle unaligned access in HW and use it"=0A= > + default y=0A= > + help=0A= > + The ARC HS architecture supports unaligned memory access=0A= > + which is disabled by default. Enable unaligned access in=0A= > + hardware and use it in software.=0A= > +=0A= > config ARC_HAS_LL64=0A= > bool "Insn: 64bit LDD/STD"=0A= > help=0A= > diff --git a/arch/arc/include/asm/irqflags-arcv2.h b/arch/arc/include/asm= /irqflags-arcv2.h=0A= > index 8a4f77ea3238..9b911e2c6b31 100644=0A= > --- a/arch/arc/include/asm/irqflags-arcv2.h=0A= > +++ b/arch/arc/include/asm/irqflags-arcv2.h=0A= > @@ -44,8 +44,12 @@=0A= > #define ARCV2_IRQ_DEF_PRIO 1=0A= > =0A= > /* seed value for status register */=0A= > +#ifdef CONFIG_ARC_USE_UNALIGNED_MEM_ACCESS=0A= > #define ISA_INIT_STATUS_BITS (STATUS_IE_MASK | STATUS_AD_MASK | \=0A= > (ARCV2_IRQ_DEF_PRIO << 1))=0A= > +#else=0A= > +#define ISA_INIT_STATUS_BITS (STATUS_IE_MASK | (ARCV2_IRQ_DEF_PRIO << 1)= )=0A= > +#endif /* CONFIG_ARC_USE_UNALIGNED_MEM_ACCESS */=0A= =0A= I'd prefer to change the define of STATUS_AD_MASK itself and keep all of th= is=0A= unchanged !=0A= =0A= > =0A= > #ifndef __ASSEMBLY__=0A= > =0A= > diff --git a/arch/arc/kernel/intc-arcv2.c b/arch/arc/kernel/intc-arcv2.c= =0A= > index 067ea362fb3e..84b1c7157d1b 100644=0A= > --- a/arch/arc/kernel/intc-arcv2.c=0A= > +++ b/arch/arc/kernel/intc-arcv2.c=0A= > @@ -93,7 +93,9 @@ void arc_init_IRQ(void)=0A= > =0A= > /* setup status32, don't enable intr yet as kernel doesn't want */=0A= > tmp =3D read_aux_reg(ARC_REG_STATUS32);=0A= > - tmp |=3D STATUS_AD_MASK | (ARCV2_IRQ_DEF_PRIO << 1);=0A= > + if (IS_ENABLED(ARC_USE_UNALIGNED_MEM_ACCESS))=0A= > + tmp |=3D STATUS_AD_MASK;=0A= > + tmp |=3D ARCV2_IRQ_DEF_PRIO << 1;=0A= =0A= This will change after rebase as we just need to delete the code here, done= in head.S=0A= =0A= > tmp &=3D ~STATUS_IE_MASK;=0A= > asm volatile("kflag %0 \n"::"r"(tmp));=0A= > }=0A= =0A=