Received: by 10.192.165.148 with SMTP id m20csp695904imm; Fri, 20 Apr 2018 13:56:30 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+G0j4OHmXuNZbmTR6jyWtXww1kRgzsoWbI91a/NY1SxSD6TUCNq9DGqsC5tUlUBxUc65ol X-Received: by 10.99.178.3 with SMTP id x3mr9587027pge.266.1524257790875; Fri, 20 Apr 2018 13:56:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524257790; cv=none; d=google.com; s=arc-20160816; b=ktPOSbiQ8uYiGIip0LAn7JSJI/anR2UmmHBndaI8ZhOn8vB9V/3UVPV0t7dikKXern 0F2cjOmYRbrJy3AxzmiBx0P3GqTfu0IU4bHPUHO3MMXu3IvF8E/RUHcXU9R6ooEdSZ82 UFxWBvl8rmbRqYczLbo3+elYCWjRQ8e8b/winrECDl0BsqG9BhTMYBp03Jzd1pDq6wUE VKyRQ67Nn1HiM4mes6uH6lOfW09FyqxYO+17gKOlni4MQaVcfnDq7rHXLUmvLfsOhUXy xWEmByXk1pXGeDtzixNlojLmu4WmOTSOVMrCqiXvyaL5eMLCfVE47KcYP2f1ouPwINWV OF/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=7YHeYJCEDYGa+RYGn1S2AGpxi9R/FREo03jdzoW6Yzk=; b=marw+sJXm97xb0zqMPwExs88tSuZ9nG1ESVHzqkBj4wwWHQmr0d69tdcgrdI0XPJV9 l76hJ2bUyPH2Hv/xxP+aRgDmTic8b+L/jW2LpFm2pas8WWPnBTv0M/Ht6MzppQ44Q4lb D3benk0Jx0ueuw5PX7sSBCDm+wM8Yefj5ppvCLxSwCOazDVJAUMzJ6da5PIE9L/vgEqa k4NAbbRES3micXCFuYz6k2SEcch/fqOoeJzckwCUGidotHo9e7Kt8fDuXLt/STMwAKKa scD34MT9W27ag681n5mfcZafg2FtGBR3MZ49q5Y0sPGC5wVvR1w1ypSqCBoOEKvt5pfQ psQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=SCtgX9YO; 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=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n19si5203484pgc.229.2018.04.20.13.55.52; Fri, 20 Apr 2018 13:56:30 -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; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=SCtgX9YO; 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=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752715AbeDTUwe (ORCPT + 99 others); Fri, 20 Apr 2018 16:52:34 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:47120 "EHLO userp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752106AbeDTUwa (ORCPT ); Fri, 20 Apr 2018 16:52:30 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w3KKqL62057910; Fri, 20 Apr 2018 20:52:22 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id; s=corp-2017-10-26; bh=7YHeYJCEDYGa+RYGn1S2AGpxi9R/FREo03jdzoW6Yzk=; b=SCtgX9YOnV0JWy6LHbXY3cenKB5kY4/z7HuMSlyZzpnwPMq0WSftoSfdQ4eeyWZd8Fs+ IgtL6nlXGu91jOkl1Qsv2875r57KOJEM1ENWTPGR8jloW3oAbgEUJGtP2dOpGT0G4bvP FE9sSkAPHuQdlYy2grpLnnDe3OwoK/wCm6L46RBcNmS5hstj5HoeUaRoBaB4QuWYZy5M xFsVZmwUHP/RSPA8mi+0S8zCbeHoi2hv/momTiZGHixTo2wxJKjbu8eDeK4Vj27ZxLvg l6IkYnxBFhZsMUxD6EN+R98O5mT0/iMebydKt5JKQRgB3moLpsM3SfnYxyVMKqO5yc+R Vg== Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by userp2130.oracle.com with ESMTP id 2hdrxp6aga-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Apr 2018 20:52:22 +0000 Received: from brm-t84-02.us.oracle.com (brm-t84-02.us.oracle.com [10.80.150.81]) by userv0022.oracle.com (8.14.4/8.14.4) with ESMTP id w3KKqLQr031360; Fri, 20 Apr 2018 20:52:21 GMT From: Tom Hromatka To: davem@davemloft.net Cc: sparclinux@vger.kernel.org, arnd@arndb.de, gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, tom.hromatka@oracle.com, shuah@kernel.org, linux-kselftest@vger.kernel.org, allen.pais@oracle.com, khalid.aziz@oracle.com, shannon.nelson@oracle.com, anthony.yznaga@oracle.com Subject: [PATCH v4 0/2] sparc64: Add privileged ADI driver Date: Fri, 20 Apr 2018 14:52:19 -0600 Message-Id: <20180420205221.488589-1-tom.hromatka@oracle.com> X-Mailer: git-send-email 2.15.0 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8869 signatures=668698 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=1 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=563 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1804200210 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ADI is a feature supported on SPARC M7 and newer processors to allow hardware to catch rogue accesses to memory. ADI is supported for data fetches only and not instruction fetches. An app can enable ADI on its data pages, set version tags on them and use versioned addresses to access the data pages. Upper bits of the address contain the version tag. On M7 processors, upper four bits (bits 63-60) contain the version tag. If a rogue app attempts to access ADI enabled data pages, its access is blocked and processor generates an exception. Please see Documentation/sparc/adi.txt for further details. This patchset implements a char driver to read/write ADI versions from privileged user space processes. Intended consumers are makedumpfile and crash. v4: * Fixed messed up subject lines. v3: * Really fixed the copyright headers to use SPDX GPL v2. Really. v2: * Simplified copyright headers * Completely reworked sparc64 selftests Makefiles. Used the android selftests Makefiles as an example * Added run.sh and drivers_test.sh to the sparc64 selftest directory. Used bpf/test_kmod.sh and the android selftests as examples * Minor cleanups in the selftest adi-test.c * Added calls to ksft_test_*() in the adi-test.c Tom Hromatka (2): char: sparc64: Add privileged ADI driver selftests: sparc64: char: Selftest for privileged ADI driver drivers/char/Kconfig | 12 + drivers/char/Makefile | 1 + drivers/char/adi.c | 240 +++++++ tools/testing/selftests/Makefile | 1 + tools/testing/selftests/sparc64/Makefile | 46 ++ tools/testing/selftests/sparc64/drivers/.gitignore | 1 + tools/testing/selftests/sparc64/drivers/Makefile | 15 + tools/testing/selftests/sparc64/drivers/adi-test.c | 721 +++++++++++++++++++++ .../selftests/sparc64/drivers/drivers_test.sh | 30 + tools/testing/selftests/sparc64/run.sh | 3 + 10 files changed, 1070 insertions(+) create mode 100644 drivers/char/adi.c create mode 100644 tools/testing/selftests/sparc64/Makefile create mode 100644 tools/testing/selftests/sparc64/drivers/.gitignore create mode 100644 tools/testing/selftests/sparc64/drivers/Makefile create mode 100644 tools/testing/selftests/sparc64/drivers/adi-test.c create mode 100755 tools/testing/selftests/sparc64/drivers/drivers_test.sh create mode 100755 tools/testing/selftests/sparc64/run.sh -- 2.15.0