Received: by 10.192.165.148 with SMTP id m20csp3688464imm; Mon, 23 Apr 2018 10:35:29 -0700 (PDT) X-Google-Smtp-Source: AIpwx49pDSlrvFsnMm4mT3xH+z2sF6TOHtoTLp4VfubMQUk9rzjylAOCngzdw2eEJujgdIxxQ9FW X-Received: by 10.99.141.193 with SMTP id z184mr12935029pgd.114.1524504929818; Mon, 23 Apr 2018 10:35:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524504929; cv=none; d=google.com; s=arc-20160816; b=CKgFZLJMgZPwYL75NnZ8YFqUYPcPutZetiMyRO6eIbVesF1PCHC77pNzm4M5sILnMY Q7F5sjCcqYc8oJnmPaylhPgZjefFzey6Tk8aeUaF+aWuvauIW3lBBtGCODWxdDeb71P2 Srhj6y5OFhvkIYe5LMlyJbw9YINPSpAEPHiIH7Sh9fux1UadQAxeNwKAUm2AYRu1A6Gd ut8Wa79XqS9fad5UkBL9epT9iinPEih1H87gOcGEEyXg2oAiTm7RNku0FLpMnQev2pRP 9V4JTT8OTlbIKkrabvvUKyXvMeFQEMIRnaLClFuKjxls+wjXJHO46SE3b5vFIveUVvUB 9+Uw== 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=bE/LiSnew9CXx/v2cTEz9yVZkTotGMbOI5Z496V0n/w=; b=gMw3nf78nnLYpepe8jQKUIcMf3cOFlvZmtWss8YQ06ASUVUFQLHNJSW1+TOOV6AZnR UbxiqmLURCuGPpPt2bUZxohLFGZJxz4oB0wyAYLuS59p9QmtfgEOpL8yqNNrkKFPrguM jTEXkLDySMx7QwZjt34P2ZRyvZtXs9/E4IqgjO+xNy82V7UtEHKo18Nym/vhJkw936do ZxKBHbNtSfo8hD4CoLDP7mDsMwQno+6qmqbUzSXWezioAorviZMz/1kKHM+OSNBnKKJ2 9ntjJd6B9AE6euuMHsTfs9ZXBjoZo5I8gUAgT76A8YeN4M9l2yf0w3uLYh0m6Ak1p0rE qsVw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=qkhjPiUi; 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 s6-v6si6534344plj.192.2018.04.23.10.35.15; Mon, 23 Apr 2018 10:35:29 -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=qkhjPiUi; 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 S932190AbeDWRdr (ORCPT + 99 others); Mon, 23 Apr 2018 13:33:47 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:42024 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932107AbeDWRdn (ORCPT ); Mon, 23 Apr 2018 13:33:43 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w3NHUYDV173258; Mon, 23 Apr 2018 17:33:34 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=bE/LiSnew9CXx/v2cTEz9yVZkTotGMbOI5Z496V0n/w=; b=qkhjPiUi8I79joAl3KtgjIqNzCOcRbiof/XSFffqDzegScuVVbNMTrUBsN6XdUFCKSP+ eOSRRfu1fGSGHEz0YkV+tnrL+ypx9rMk4ZhhPXGiiYRNlYP/Mh2qqgPQCcKfP+r7lwU/ f7krIknCEhx842FzlKjHkzpYe/NrifwYhTTfQQagnA1OdedYSkSst/On5cw09kD5UNka gd3elHF8Mr0fhKDi8u9RO4AyxfFY97jh2dpcWY7dyACfVlfWYx2bbaUpQzdiRBJAyGmd nIi/EgBP+4GP9TXccVK1nNmKQ5HlhZOSWNUsvm770kvohTFczku8ccR7XI5BPiIsYIXM gQ== Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by userp2120.oracle.com with ESMTP id 2hfwy9eepa-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 23 Apr 2018 17:33:34 +0000 Received: from brm-t84-02.us.oracle.com (brm-t84-02.us.oracle.com [10.80.150.81]) by userv0021.oracle.com (8.14.4/8.14.4) with ESMTP id w3NHXXIP019715; Mon, 23 Apr 2018 17:33:33 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 v5 0/2] sparc64: Add privileged ADI driver Date: Mon, 23 Apr 2018 11:33:30 -0600 Message-Id: <20180423173332.561489-1-tom.hromatka@oracle.com> X-Mailer: git-send-email 2.15.0 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8872 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=609 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1804230175 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. v5: * Fixed MODULE_LICENSE() for adi.c 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