From patchwork Tue Feb 11 15:09:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wojtek Wasko X-Patchwork-Id: 13969827 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2077.outbound.protection.outlook.com [40.107.102.77]) (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 85B6E3D69 for ; Tue, 11 Feb 2025 15:09:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.102.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739286574; cv=fail; b=CnDjUGdgEgLN+5524woGVpyWFlrZATwtBCuEklViatnTMIywute5x8Dh2dxNMtZJJ+x8lLPIGkBNRUI1LWure9eeHksnQsff/ghgUJ9pziX5vFx0DolWbJE4pCeV83pG3oZL9GCoqHcadXoKW9mHr9uZx4+bJFhj6wUQu0C+XeI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739286574; c=relaxed/simple; bh=a4fVjMsw/SgGJh8eHoSPw8USgMbNCBnCD0yO4puxhVg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=YmcFvKGOUGjosnb466e8sBppSDenBfMSHzWLrWGBQ4CbljOa06yqHzQxgOzlTMubjF48h4qlOMeys5wZ0w5bmxum77KH4Ayc3ofFvb2Q93BpDGqlnBYpCoezp3hJL5v4rYfVlqgiK6k95dEGYzEwMbnSExvABvVH1/8NQLMSgw8= 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=PkMHWut/; arc=fail smtp.client-ip=40.107.102.77 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="PkMHWut/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=j5xGA5pYUCocOafdHpnFepD09WEgBB1s+FhGg2/2qRGpiLG+GN+saEugsQODCdnCcgluAjiA7lgMP1frl5YCbis1I4cYVeR6A6UKs8XoUGhx0fKaiBdO6ZpmrLvkSuVitF5q49G6Y+fkN91h2+FP0riAWBVhOsOqNu2zo/rEP1x47E+8FDFP9b4Mig5uZ+byMjNQJKrg8bIz1Mt2640eFPSQvlpNVrgxu9zzP1b3iNRgDt6diGxe7PFRvmq/nfXMyjCR6uLRqN5gFwZgRY7Vm002im+VM7eILi23UDCHWd3NoGLrefCSOpnQs4YES8gNAoxKUkasTfChzU4osiNhnw== 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=kmyKcTy+A2U/V0W+7TraGMvBqq/OXQ+RvN6UZHKdGbxXRDR081hHuR9H0LlWF3TPPhMlg8hznuX43/kRKKr4pL9JU8/SrYnOMthKPEcWQgVgsAm5OOqIYNrm3zPVSXQH2cvSheq+ClFXs6rzON3FX1Rs7SAJw7VgFKK/YAC7/iHTAkM/Jduo6ywt93+wbqntfDhJ7ua9AnNWQuZ6VORAL0318oyPLiLzSmrD79RsYrqxgzGRk4Yr+gRNFbyX0tvIoWnJo4HXhZVc/z9BQXIoPHjk/EiV3Eosfo5szFOPyxV1O5pXa4C0dgxlWHYp5qVi9KHQvcOKvmhLPIbFG7oauA== 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=PkMHWut/RqY+Y27tLIB92YyiQfUBUiVKAQlCH5vVyjP+YwqamFfK47mcWYsG0VxYeWHKdZrM5RXJK9LykrlJckk7rswyglL8yOEtQ6s4UjkvYNUnBwVdrM+Lz8wm0SXXE84sPfLxmflx1aZqz6+wgOPWQhLnM04wB5FXJ5tz65hBlQqQ+Z09IFzd+YoRvoZivP+jOsnTrmqJZnmLPU4UMouElqY2WZgJ5kCYX/dW8KmLEYjsXy+Vw4sY2ppd+ex049rtTS67XE5UWjt3f5/SrjF63p7C5pD9Gc6gLpJujG/ybmXK6lvZrevsPxFCkGse9s/9lcqpMnet3+a0EWDUqQ== 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 MW4PR12MB7264.namprd12.prod.outlook.com (2603:10b6:303:22e::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.16; Tue, 11 Feb 2025 15:09:29 +0000 Received: from DM4PR12MB8558.namprd12.prod.outlook.com ([fe80::5ce:264f:c63c:2703]) by DM4PR12MB8558.namprd12.prod.outlook.com ([fe80::5ce:264f:c63c:2703%4]) with mapi id 15.20.8445.008; Tue, 11 Feb 2025 15:09:29 +0000 From: Wojtek Wasko To: netdev@vger.kernel.org Cc: richardcochran@gmail.com, vadim.fedorenko@linux.dev, kuba@kernel.org, horms@kernel.org Subject: [PATCH net-next v2 3/3] testptp: Add option to open PHC in readonly mode Date: Tue, 11 Feb 2025 17:09:13 +0200 Message-ID: <20250211150913.772545-4-wwasko@nvidia.com> X-Mailer: git-send-email 2.47.0 In-Reply-To: <20250211150913.772545-1-wwasko@nvidia.com> References: <20250211150913.772545-1-wwasko@nvidia.com> X-ClientProxiedBy: FR4P281CA0353.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f4::16) 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_|MW4PR12MB7264:EE_ X-MS-Office365-Filtering-Correlation-Id: 5a1152cd-7221-4cb6-a622-08dd4aae14c3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?q?IjntzZLggal8wSTQgLp2OTSGdomeW9P?= =?utf-8?q?Jyw3WJrCk1pIsCp5lTlhD5qMIwLohvg87RwktteRJo203Iz5A/DFP4EMTSH2FAZNG?= =?utf-8?q?K85OFqsKm9bxbECQPr+pRVlXrea4JWsLVRxOE5jlS8mHNUrYV2ugcW+mKBuubRay6?= =?utf-8?q?2Vz69rJRDi6GkO1zFrTcDAnM7uz6dcAAQEVrtB+KMAe0L7ZxpazkWJ7t2ZRtn7d3L?= =?utf-8?q?IqEmCZc5TROy/ZDQyQd6t/7t9VV4zCYfRBRToSp23JRHEYeYBwjqdJUbj7C7Qor4y?= =?utf-8?q?6px6aPVlVdzTeOt7w66vh4k4G7bsou5g0fh+F5jZcNMTxBol2iudEme1Sgb6k7ds0?= =?utf-8?q?pc2IgguUn1JM/9f0C3MaP6LiRCxFBC+BeTVjTU34husmvxtZ8GBSwfbdv/I4vgGNM?= =?utf-8?q?+kTWbzxfYVmnAE+kwQ+rthBJ5qlMzS8L50JJ/LMRvqe6FrUPgbKt6oEBWcIyaBaaO?= =?utf-8?q?Ic+afC+Yr8zBYyFpBjvYEFXOwlJpaiKVyrsvhNE/2X4ue0DeahFiNhNusW7rqtr8y?= =?utf-8?q?ZG+m/7RkGJYtNB2sf236OkZuS2xSPBbxcOjkZ5TlMoSQWl/6lINUd4ul7G7GqN6Ep?= =?utf-8?q?KUn4QAPIGzz2xwzh2l/r0fhKIuwUuHcSWafZaOC6UWmiNmAaiBkio+NpshAHwF2lF?= =?utf-8?q?2V0D0ZjFhV5PJshfSJ+IlGXIDUZXRSAToV5d5WPl0ALqeLfhON+DKK1n6sOE/tDjA?= =?utf-8?q?jZCvOEbCezjrFRGpgGpupKzHY1CyGajPrWs2khQHJiY+2eg2AhX705zRP4/RDQ9dY?= =?utf-8?q?Yu+J9szcRZQljggG19ZEfG5ksu/BBsfpgHASsOAx9pYB2GAd3RvC5nskS3z8Qvq47?= =?utf-8?q?hwko4ggVy/I1cJre2Nlgvz45DjTDw4Yi4alQ9VbJBe8yXPSKMZFXg8fCL+8mSo66y?= =?utf-8?q?Rtj5Ht1LuTByfRJkhCe7rd9bwyqLR3PSmccNYeMOXoKBPqG0+RbLE/17XnsgFQdak?= =?utf-8?q?4We3jx5J2immMSTyiBNJNQ7VlyJiTMQryI1XmbLEtoli4SQBYIJf5g7djljHcWBSp?= =?utf-8?q?gH2gan+KbmTZcch+KBpeSKaw7p/H0+uYrQn3LjSi12IAhiwVXhrbgFMZvA1IT/LyI?= =?utf-8?q?VndugZaqK3aBZhYW9Cwmm6lRdozOHx7niNGsN9m65P9ySLa9A6/wiWi81H1/8s/Iu?= =?utf-8?q?8Pl/TNZu7q/B4GGyVLjsH/mWXHnH+87OgNQUMzkgYL/+WAsVvdhct5YEqr/VJPTBn?= =?utf-8?q?6US+PcptJy8sn9ydAvCCdbWSRgIRhgOlUc21RiYlkcwixO4G7a6yInm8FOh68Lo0I?= =?utf-8?q?STNkARSk4XbH/xPaFoDoVQJrtCGtq3x0cpCVZIQoe1baBicTmYeGod9fKkJjmy3gU?= =?utf-8?q?mzpdH6X6KTnJ?= 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)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?gJNzs3cCCcQfv42hrikS060ogq80?= =?utf-8?q?O0K9RTrl6pnlIeO65rp578l8bLKGwt33E/IzvAkrE5xos8VXnRd8dczHoHFodJE0+?= =?utf-8?q?9eHBfoBcGsIlcSJ7y11eD7254hxHxmB0MVcFBfHg+Z3nEhyRs5XIgcbG7SgE6VQLP?= =?utf-8?q?RizB87/F7Qd6R2d8EaNhv8ZTU0aWyC6MNqOE/ENJZtZ9JbxId0/1kHAi3HnmuObhV?= =?utf-8?q?6zB0zI8e1io5oRh/ORnejnc2/cJfrXVLaqLo+PlrPiuPtetggJubGnSbzZd4K7zy0?= =?utf-8?q?WrvLEpGvdVBhu3CWwL9mynyK9kDcSQ1xFilwocCG5DjO95/B6OGUSGjfwsNea1ADh?= =?utf-8?q?YD9EhHtoR2mUkpT8r7v7VRbAmM1kIENtqza7gHxop1Wpsf12ygThPLS1b4FxwO24g?= =?utf-8?q?Q8XV+XghTOxrkercA6qXf3er/Ud+gFMBh121YrjMhvXo9N4QZMej2IChzy0w05qk4?= =?utf-8?q?I9doSwSaksMk6n/ydHwelCJG7Nl6fpP9uzV8ngXIYyM1vorhLuCXjDZdc6OHiLvxf?= =?utf-8?q?iUTohu8QLQXJly3u02zFV/8zPJoMVi5/4CQJRUXSmDNw54Y4T7sgcUV41l75toerY?= =?utf-8?q?1Ks+A3zuOHwX/LBw+VRMBUShqM2iNtgpuD1Z62Kz8eBRLwTwwvEciB3I3yX3UWEox?= =?utf-8?q?q4Ibultsg3YmtvrXpGfCeDzO1Wdkhn5N5RNhm/T5vFhMW2ISGp/SKKHgPj0zAp9oz?= =?utf-8?q?d1hAZSlUW1oUsDcn9PGCnoBU1ptf22sDSJ5wuFRkKTvpoIec+XqfizTQD9fU0ecUF?= =?utf-8?q?q0ONwgHRb2YTM9Fh39bh969P1hCqGigkVOMNSVciQFHqk2TjWLWEURNEApKc3fPgu?= =?utf-8?q?BfBBv1/s77h/Vw/JBpVZIL5VZmpv78kKRbemvqF953fksJGDGMfjB7TXzwIs638CL?= =?utf-8?q?naAjutZmssQGiC9Z1H12GofdNAzx3qJ56nnGfIPnGGj+KP1bAFtrWt/ZfmJhsPNAx?= =?utf-8?q?LwhIfOpwnFEmEnVksPqChJLjoMd/te+m8o52pW0Yu8hHg5DFcfa6rofK1EdHhpbZT?= =?utf-8?q?/RP1d7U9rP21j+yupfAMW+o6a9pqrbXOUaM+V85QcfRNhSnYZ4ynXvVY/o1Ld17CW?= =?utf-8?q?XcbR37DrzQixUoiGT+6QYDwi2TnAMJRvmrNoMVjdfc/8Rh0UVKFdLPviRTwu+dSvf?= =?utf-8?q?STnPXsulsZdon+bNVtFDHGvTyGPnvUxXC9T3lRHeivoJL8R3rgE9hWp2/oY9iaP+q?= =?utf-8?q?wzbhf7wDLH0CP41vGxK0a8q+4y+U/qTPaeRKiqHPR21C+jZkilc25LkrjoFG1eEGX?= =?utf-8?q?BJrci3QiSzIJ2aI0uC0IJMomWD0hrY7nv7hXZgiqrh6xFH9Oi6upckuXslxM9MqUU?= =?utf-8?q?PFXs9i2j93Eqrt0VWSoUcDu86QAdIZQPqhwp39D4ZMkTQ6K57trj9YYENN7PVBuW0?= =?utf-8?q?mT4RURqoAvBig2mjTrpuZa2ByqObmnd4twnPd/bcZeT/GgnyA4sogGfYOjDZNKsLF?= =?utf-8?q?yU/YRNGX38s/RKUnyori41T+5k9LjoxIsn+slKdQ02SrVq6/dlclejFUELcA9h/2f?= =?utf-8?q?V/MK4qw/cnLj?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5a1152cd-7221-4cb6-a622-08dd4aae14c3 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8558.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2025 15:09:29.1714 (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: IXt/x4UUQx/GOhC8nS0N/iPTxpDDR7QYrYe6FekMx87pb1kHZaASO0RmnYaGaZrLjtZIuPQer6uB5u+ZMftdJQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7264 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"); + } } }