From patchwork Mon Feb 17 09:50:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wojtek Wasko X-Patchwork-Id: 13977396 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2075.outbound.protection.outlook.com [40.107.244.75]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 759E4216399 for ; Mon, 17 Feb 2025 09:50:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.75 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739785827; cv=fail; b=oBMOM9AOcSL2KcAtJBN0hucsojmCL6XYrMBctvlIfe9ovTc3EBYuw8+4xnxpXHJDL1FHNQ/+P5rAMKimzcGLaMgeeuEuMnSaWoqS0zbMeUYtac+8JKoUx3jdKuhfjK67tdFnW8470H8AK0iNqRWFOjI6A8oWaPHfFHKezcAuI30= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739785827; c=relaxed/simple; bh=a4fVjMsw/SgGJh8eHoSPw8USgMbNCBnCD0yO4puxhVg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=mxYZG7IhUrmDCHsIprROEWe09toHxrzwMlEgJBji0c2v0JvwgnpiXwFU8Pivlxnbz37A7ARf+iLB/gCtFBLyCr/sJEMlQSyocDZirh5TtKrvDa730/W7izEg5p5FXRvdI4v+3mkNbrmzxMndH241HJJa22fqK3mD20CoszrQFFI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=CXPiNryf; arc=fail smtp.client-ip=40.107.244.75 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="CXPiNryf" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GGN8nRZLjx1Ow8P7Etk4U57/qchqQpX7+iVCAfWPe5PEwcCYnM+0Yv9bKpP4/Ukfhfe5qVP1x9MM7Z7w/XcpEBpC+HS9DhYPVIeVXDOXAaEcmh0pfs9rxSqjcZtjhi6yZJBpB30d9eNPNetMBQWTIZXCVAJtmMbYs2XB0PkOQmCmpQKGkIEvwqiSXoaOsULQy1yFeDOiT0ywgzjgt5xe8ju9LeqZzz+BD2X64el8WjowRHWlhoW9XLC/RtQSbTAVp+wgLcog6tD1K9UqgApEf+VE/xBya0/k+6pTGWL4TEULjdfe5Q/krsJ1rm17lhhu6CIdpu4zadXR9iCIpCsn6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=t62VDqDzF3H1w3UM9AIn7il/Fbd9FXz4Zv3s6wQWrWI=; b=nks20dq/55cO8/e4sHnsTQtETJdLFTIrhOfin9NK2swdZdv/Q+ve5DsuPIYPHAYsFINIiKlzAsYiQL0Q4u4M/u7a0rGrXxU2MsYrjJtgg9vrBbrmA7qkDnASeN/eUzWFW1lsKaYfgZE37OaPUJAUZC/oAIuDeh6z22y4SWZu5KdsNPzyrrAVYlIuxkFMmcpJYRh5ziSgqYKXQ+1llmptw9bT1EKIZ9PKnK8h4rsSYTs6ncPTiZxrlOLUwUTOUx0B5akZrbla/KzVb7X8O/xG07SlaZGuLwq/GEtr3IKv01ZKbI+LZjNpI6bH+BJkZ/nX/OSYXwOLqtDgLTa62ovqyg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t62VDqDzF3H1w3UM9AIn7il/Fbd9FXz4Zv3s6wQWrWI=; b=CXPiNryfhNym/S8PndVmG7gOHwCUucy/gqUsGAA56opD2dHrKRvkrKsZdswOa/Uj8h02AezHItbI+vgr+03r5cUvcc0LsVxIY7LUhW3QISx0xc56ANsxuhyBhzesUGVCHdC1mSm1GuWhUij2SJcsSWL1BkdE91FGbXOx3AEAvGMzyN2VmU1fE5dKFw9kcMV5/wfqeBP4JSWQ6gBe/P0N/16GuVaX0WVmdMTWC4ourp61nx78VwVNwmIYSlfw7e+99dzpdmtlanBupfPWbeJtSYgUDgx0dqEcMAz0SWATgSxxVz0y08x5L7uRf+JCCoyc61gKT1ty+vATQyXNmYxLiw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM4PR12MB8558.namprd12.prod.outlook.com (2603:10b6:8:187::22) by SJ2PR12MB7961.namprd12.prod.outlook.com (2603:10b6:a03:4c0::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8445.19; Mon, 17 Feb 2025 09:50:21 +0000 Received: from DM4PR12MB8558.namprd12.prod.outlook.com ([fe80::5ce:264f:c63c:2703]) by DM4PR12MB8558.namprd12.prod.outlook.com ([fe80::5ce:264f:c63c:2703%5]) with mapi id 15.20.8445.017; Mon, 17 Feb 2025 09:50:20 +0000 From: Wojtek Wasko To: netdev@vger.kernel.org Cc: richardcochran@gmail.com, vadim.fedorenko@linux.dev, kuba@kernel.org, horms@kernel.org, anna-maria@linutronix.de, frederic@kernel.org, pabeni@redhat.com, tglx@linutronix.de Subject: [PATCH net-next v3 3/3] testptp: add option to open PHC in readonly mode Date: Mon, 17 Feb 2025 11:50:05 +0200 Message-ID: <20250217095005.1453413-4-wwasko@nvidia.com> X-Mailer: git-send-email 2.47.0 In-Reply-To: <20250217095005.1453413-1-wwasko@nvidia.com> References: <20250217095005.1453413-1-wwasko@nvidia.com> X-ClientProxiedBy: LO4P123CA0343.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18d::6) To DM4PR12MB8558.namprd12.prod.outlook.com (2603:10b6:8:187::22) Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB8558:EE_|SJ2PR12MB7961:EE_ X-MS-Office365-Filtering-Correlation-Id: b79df807-cc63-479d-051e-08dd4f387d9f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?q?V8WLj7G7Iq8c3P55SsSOn0EsjVJ7Db/?= =?utf-8?q?jecdqFNXDVaWY05Qr31yakaaYSI/e7+3TOCRhAbPY+J/Na6FrsVLAv/3vDUmwXceW?= =?utf-8?q?IxJQIp9oFAZSiqHkLZIfzBw9bdEfyp2dv8BQJqRWIEtNvUivegkSWy0ptrXd4xPRP?= =?utf-8?q?jvjUKesassWupxJ8/SW+V3ljgwATytHmfWfQxjunva9jg3NprRdypi9sLtIbJlHvH?= =?utf-8?q?k4a1K276CWrp2akZQFJYGRltamyJXUy0Sx/sDH+8dLMVC7nAoZLzOOQnqKGdZB1xg?= =?utf-8?q?pHM1w8q7C1QX5pSnBwKmWNYWWWv7OFQg2KjNGnQspZVOGS6RNmdhHaNpiGhlIpa8G?= =?utf-8?q?C4zhm+LKItS2ZjPTM8UnB66TpsLmyGZkDB/PJrvABTEXeqZHWqwAOQPHsajk96KrS?= =?utf-8?q?8Or0K1egTloRb5UOAmVIG+rvoLybRaIbc4kOBs/VnlL3xmljfSzVkkFzM3n/br8eT?= =?utf-8?q?le3Haq0Xzcr8OzFO87a+TfmzUDFFYvGG2s6Vvgb4eFe9pdnF6yHd0bMRYAWmoexMa?= =?utf-8?q?YdleldhzFA+9asfJ1zX/eRkRosbckOppCWGBvAFr2zMSQOjel7KYgZ1BEU/9eGDRt?= =?utf-8?q?60GvMr/oR5MLiCFlGDo2e+ee684ithRqz1bDG3M4fbCU0R8LBTQICJ/7f/51pPlRo?= =?utf-8?q?ywtcjtsZenE7UdX7qrM2KCJn2I/jrkLSdb8pYTudMFUSqOk0QjVLdNpMptov6b4UM?= =?utf-8?q?+dJk3Oc+7Vyz4vjGPImoFNsoHFDWePtDCZEvG0+TbRvmXDeRos5LFsSPkfSc0U7pa?= =?utf-8?q?u/qvBAlEzoQPVia9OPYZdqjkwx9vXX7EpucPBNbyIf7E1tPBX60AzqxI9Rhbv7KAc?= =?utf-8?q?c+U8nHuMhu3yGknAtd4gV3VWAeRcoepcYF3YQYGQKYcuqk137I7oEsLqOoh3cEdsc?= =?utf-8?q?TObUCbxCoqlGsFPJp3eeJLOQAbmfr+iWrRbQRuw6+7jR2ClIF9EQXdZHbDnJFG6sl?= =?utf-8?q?RDFtBKhKYnx/zlc9xIGWihO5I9tOaQouI9PfyEu5af9uRLc1SSNL5Nd7r+LL8hTfV?= =?utf-8?q?TmOM8H2dGsdiHZ4aZttsedzp3g94qz3Cu/QdY+hJIIwSkhSua4LR9m3bMH1wnKkok?= =?utf-8?q?2dOEVSy+7Panx/xc2MbiQV70ww/qyFV6tFRb7DcWJs/9oBfR1GscGsESpJDzXtEPC?= =?utf-8?q?cLwR+l0PCsLmkmnm6e3nAPi76AdMJc1w8LbY1gXanpWSmhZjoMZKJola0LkB5M+ud?= =?utf-8?q?4U1rUjOvU+Z3LOJquRmWrnuZYC4FMKpJcUtLJyr4UVbvFdciHA6hl0zT0I0Evr8zL?= =?utf-8?q?Vwj4me/AJO/IHariGk/Ta+MpNtJwVFwrtmRYqpdbD3fSKTbWA7tS33CegsY94eGv5?= =?utf-8?q?orJE/PJ82SB8?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8558.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?7SarnBzRLPYMdN/zs5zVo/LemNr8?= =?utf-8?q?MZ5QhYkVnvh3Uv+ZGWnJlZe0PYqrug/leGcYdJ0wVaTgDScQ0edTJM0t4lCsHF24X?= =?utf-8?q?WyfhG+T/IreYOcLH1xmhWBoEOfffxOqZ9FTsqz8ILHVEw8NYQEoWHBuRTPD4Aha0n?= =?utf-8?q?dEb6uyGRfaapPi4gX0mW0h+9Lrrw7ZgydpHGrPfzyh5a8lzFV4r+4OOz/jBMXWu1N?= =?utf-8?q?k/BKajb+Vp4H0ONUKPyqcHFy+XgcSe2i/W1eAuG7+tVaQuZsHFOx4/ZW2nGJjXafW?= =?utf-8?q?ysq/KUtFEnD0xD2Ohe2SQ0Mb5brL4xkCYrqgrNykWFm8YocG2+UIQkIln+OdM3+Ft?= =?utf-8?q?bSfMvVwSzeJkHtjn0n8Tt3n2EBBlTkOdjFzeoPzyZH41dpLV1EEUpfJuuYvn0LUa7?= =?utf-8?q?BXuSD+zc0iu5BmjKX3XW8sFuUPNdVjddqhK+9MJUhNedntCWRFWg2of3PtDZbs95x?= =?utf-8?q?KDwowVOkiKBdxHvwDJ8rJKzpi59UYu5VzTnOVu0siNEp3r5zUsrnjNxoXiXHLP304?= =?utf-8?q?EVbAR0iUqw4jamQO0FrYq9QlFnX7yDSuwYZPTkQuVSO+mYEu9rHWhp2JVW6V+lHlt?= =?utf-8?q?Cf7QkNnDsSn4QRKPbNEgDt0eDGfuMrpnr95zx7jyttyvuM8ZkAWJ0VRZPt4tku8jv?= =?utf-8?q?PJDUgQGAyd5jPRvIYujKFpe00f3oeJD0uZ9C6TxeWqVthOEaUphvim+9u6K0208RR?= =?utf-8?q?3QvumfhS1jcJgRBvGUa+w/lu+lZ6MugNkd5WApiPlkcHCNtSYE2q9Blo8SSEtKr6R?= =?utf-8?q?bBl5d3WNRF10+ukyO6jiQx0aUYIV0zGSzpeX+sEVKsuc/iRyfI14inS/1Mhh4QAi3?= =?utf-8?q?S4V0JFx7zdbNkg4QPOtMDw4rcz6VtTUnFz3YIIB49S/iX2aU/8bKKjWjsjJ6r3MBI?= =?utf-8?q?fvjxnQBThSe9LGDFiUuGlPxjxRE6uIcPxf0LfphIR54YKAkHxdRAQa+JZu9X8Fdev?= =?utf-8?q?2YjT+BiA4pOxoL2e6LjN7UlZOm7GBDbBpN2fdUuf6l9w6Q+/wsaClnA/CxLjvMvy9?= =?utf-8?q?gKMBiYvZxK4ahOduRf48WgIV4FC7mF5nsQZvzOd9jEiwZwsHKUQrhOGwqmjTq4XMl?= =?utf-8?q?TS8VmTsaFWuWfi9EdxKNYoSFEeMsmPiGxP8WEI+tDb+z/gP0vsmtCTRMv+uIQpUA8?= =?utf-8?q?dgTsyvcyZc6SH4+AFQJGVfUeZZW1AzsbGUgSPvPIAJ3weFpbBPmrPxmdEujAoVA4C?= =?utf-8?q?E1l1gbfbAx8eOxdNpB+/E4ghHzCIhrfiMwWss6kQ8x2o5mm49eYT3LydrpNngfM+M?= =?utf-8?q?09IU9qkWe7sbiXCFhU/RKNo5aZKD9/l8JJ+8sAeGYJVQ5e/zKFYd/Q4LWJLZ39RCJ?= =?utf-8?q?MVbCGgAp3vM4KLtHfFHUUP2p4GDY17f+jSR4m60mZfvlfKw4Mrtsazlw82W/mbTyl?= =?utf-8?q?gKRnfsglwWVFx1DvK64lPka0j49sLAfmpRQ8VY3sVg7QSMnKCKTrJAWvokCjmRrNR?= =?utf-8?q?MeutrZDwOXLGQZFAGAg0ozi1/ARoT+qSz0meLs+iqBE/78V5K28j/sogLCfBmU7ZS?= =?utf-8?q?U7b5ejFah3wm?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: b79df807-cc63-479d-051e-08dd4f387d9f X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8558.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2025 09:50:20.1791 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DkJt09jHSkxFEkerRcpGdt6PRF3SjN+OjO624hmQovcoti8depkDyM4HCU1X+xNvJUyFX0Oi3z/3LY930FTBEQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7961 X-Patchwork-Delegate: kuba@kernel.org PTP Hardware Clocks no longer require WRITE permission to perform readonly operations, such as listing device capabilities or listening to EXTTS events once they have been enabled by a process with WRITE permissions. Add '-r' option to testptp to open the PHC in readonly mode instead of the default read-write mode. Skip enabling EXTTS if readonly mode is requested. Signed-off-by: Wojtek Wasko --- tools/testing/selftests/ptp/testptp.c | 37 +++++++++++++++++---------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/tools/testing/selftests/ptp/testptp.c b/tools/testing/selftests/ptp/testptp.c index 58064151f2c8..edc08a4433fd 100644 --- a/tools/testing/selftests/ptp/testptp.c +++ b/tools/testing/selftests/ptp/testptp.c @@ -140,6 +140,7 @@ static void usage(char *progname) " -H val set output phase to 'val' nanoseconds (requires -p)\n" " -w val set output pulse width to 'val' nanoseconds (requires -p)\n" " -P val enable or disable (val=1|0) the system clock PPS\n" + " -r open the ptp clock in readonly mode\n" " -s set the ptp clock time from the system time\n" " -S set the system time from the ptp clock time\n" " -t val shift the ptp clock time by 'val' seconds\n" @@ -188,6 +189,7 @@ int main(int argc, char *argv[]) int pin_index = -1, pin_func; int pps = -1; int seconds = 0; + int readonly = 0; int settime = 0; int channel = -1; clockid_t ext_clockid = CLOCK_REALTIME; @@ -200,7 +202,7 @@ int main(int argc, char *argv[]) progname = strrchr(argv[0], '/'); progname = progname ? 1+progname : argv[0]; - while (EOF != (c = getopt(argc, argv, "cd:e:f:F:ghH:i:k:lL:n:o:p:P:sSt:T:w:x:Xy:z"))) { + while (EOF != (c = getopt(argc, argv, "cd:e:f:F:ghH:i:k:lL:n:o:p:P:rsSt:T:w:x:Xy:z"))) { switch (c) { case 'c': capabilities = 1; @@ -252,6 +254,9 @@ int main(int argc, char *argv[]) case 'P': pps = atoi(optarg); break; + case 'r': + readonly = 1; + break; case 's': settime = 1; break; @@ -308,7 +313,7 @@ int main(int argc, char *argv[]) } } - fd = open(device, O_RDWR); + fd = open(device, readonly ? O_RDONLY : O_RDWR); if (fd < 0) { fprintf(stderr, "opening %s: %s\n", device, strerror(errno)); return -1; @@ -436,14 +441,16 @@ int main(int argc, char *argv[]) } if (extts) { - memset(&extts_request, 0, sizeof(extts_request)); - extts_request.index = index; - extts_request.flags = PTP_ENABLE_FEATURE; - if (ioctl(fd, PTP_EXTTS_REQUEST, &extts_request)) { - perror("PTP_EXTTS_REQUEST"); - extts = 0; - } else { - puts("external time stamp request okay"); + if (!readonly) { + memset(&extts_request, 0, sizeof(extts_request)); + extts_request.index = index; + extts_request.flags = PTP_ENABLE_FEATURE; + if (ioctl(fd, PTP_EXTTS_REQUEST, &extts_request)) { + perror("PTP_EXTTS_REQUEST"); + extts = 0; + } else { + puts("external time stamp request okay"); + } } for (; extts; extts--) { cnt = read(fd, &event, sizeof(event)); @@ -455,10 +462,12 @@ int main(int argc, char *argv[]) event.t.sec, event.t.nsec); fflush(stdout); } - /* Disable the feature again. */ - extts_request.flags = 0; - if (ioctl(fd, PTP_EXTTS_REQUEST, &extts_request)) { - perror("PTP_EXTTS_REQUEST"); + if (!readonly) { + /* Disable the feature again. */ + extts_request.flags = 0; + if (ioctl(fd, PTP_EXTTS_REQUEST, &extts_request)) { + perror("PTP_EXTTS_REQUEST"); + } } }