From patchwork Mon Feb 17 09:50:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wojtek Wasko X-Patchwork-Id: 13977393 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2056.outbound.protection.outlook.com [40.107.93.56]) (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 85E49192B63 for ; Mon, 17 Feb 2025 09:50:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739785813; cv=fail; b=dDNgpvWuh90e7xX1EyRIZze+J1+5TFkHIMgz3IfWMH8I2+G7bEt3pG0UYS16DqrraYXkKVa7sEFEBvBrVJWD6drBVhc2mtPk+BRtcqpHBED9O3m7lUPXJoe48tib4kvp83V91nc4Ij/vw77yACLGjsVEsbbpYbpRcFUIWuFfL+Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739785813; c=relaxed/simple; bh=f5sTPc2Dzt362J1qTJq5+4WbHLtM1zPxWqITYwoBJ5w=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=paEriIR2uAmEz+W/P0wZSycQYhzjcvSxvGOspOopEnhEO65TnxyER1Zg/CtNBwMwdEm8xcdakQymUNA4M/wnIuKf/TX6MlQYKo1uKk8ZYMUY3iQjCuoXano9PlrIPJ6U4IiwXU4HnliwKSMcEsdjPxFeq/yLz7D9PqvnLXAlswI= 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=q0T3mdpW; arc=fail smtp.client-ip=40.107.93.56 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="q0T3mdpW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QLXfLho/igfJtIksBqCeAzv3P/esg6/oSsw/hgiwXPNjlW8aNmBExptUUFDEJRY6mwItbsAh4P/P6/E/SvbiEm6Jc2tM4t8/uQhGXEokvRUO6nmcR3ZA+4tAqAfAx33Q7gzaZ4C9dAkdzstHj3eDt8tlxdI5RSSD1RW01MLeWffpbtwMsR4PyK7uAhEAdk/8W95G6MWpRwsRIaYcBqwtVTe4oDuw7zbrzPp02NtlMPcn9FHzvCxAI7vqQRMnDCzXfhR02b9i36tNYU77mlZuTRcjhubRyX0AEvSLYlihZpYcoYoFScFilBiq5ULtenVg/z4+akmcvf358aEaT2BRXg== 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=i7D/PKnefn2O05nMQ31KCWmFxzuQb9NQ+oFhrXnYBSg=; b=fRcrwYWo6m2S13wXrLrXqs2+NKE5vgzlFyPTe/Eg3K9nOSEtXCo4p/TxscD91+zx7weVkIhXnNcPTo20amkCQ1T0UqTME8SPQN4ta+2+mYaso9Yu3Jo0zmWBsOxKDzuKBoEuPORaD+BLKUx09zOJAaleJokHTrFeSiEZxbLZFvLRiJ61p7/5V9y/JI3Kd3qyTT2E7uXmq7MzUu3cKQ409t90l2yP1qr48h6fWbrQa2D3eKhocbxGaETucGoCYWiOYj4EBRcXuhCpp931bxIQnclgjE77+3MGWWtAw5nI2Hi9LRnT//KzjUIPjwjxzL2Quh5pPqWD8Bx6D1ArJ4Vzng== 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=i7D/PKnefn2O05nMQ31KCWmFxzuQb9NQ+oFhrXnYBSg=; b=q0T3mdpWMWBDWGIMbRc5lUer3EHRrzbou1cgpIJQYVdL+ZjqpsLAu0B+5CDehCDlAw0N4uKEiIEU8GTFVnDiqi4peSkVmio7y3e5OJzydfVXcLcOROPFJ76Mm9e4xY7RZMHnqORrZ4YtipfxMwzIbKZWVecl3sW+XPoNOqlUcDkfcRrZzqDN2VrgLocJstwkOzQwrEDRlkS8fbUlQM3qj3tPi4kVkizE2re+FAcSXu/yIJ2ldLG51waPzwfEpXVD1AMBPu32FdJGmKw2j3uiHcrPhxokrSAG/EB1PByE+Ne6OZtCmHlCS1LDehEJG8TuJJ7iwBHdZN3hDHn15RJYxw== 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 PH0PR12MB7080.namprd12.prod.outlook.com (2603:10b6:510:21d::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:09 +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:08 +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 0/3] Permission checks for dynamic POSIX clocks Date: Mon, 17 Feb 2025 11:50:02 +0200 Message-ID: <20250217095005.1453413-1-wwasko@nvidia.com> X-Mailer: git-send-email 2.47.0 X-ClientProxiedBy: LNXP265CA0078.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:76::18) 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_|PH0PR12MB7080:EE_ X-MS-Office365-Filtering-Correlation-Id: 8f3787ec-32d1-44f1-4953-08dd4f3876c5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?q?QD94lmCdoy22Z8WXW/V/cQ6jWqFgC+R?= =?utf-8?q?tdt1tSDuAcKDyOq5B/AFuQVN82VZxjo8x9yHmye6dnw3pyQltY462rYDUPkRKy0QP?= =?utf-8?q?uAm+2KlLRk3dAOHjJz79o1zCXBT/R90XQ+kWJy/1Uok5SA52oRNHSu/WycEs2rRDE?= =?utf-8?q?s0yJq+grOzSPHCtNZ5SYOd+ERZ9d8u1zqqPGZfQaIxJoRVrb6l+o6/IDoP93PrrkJ?= =?utf-8?q?i96dLq9clggWjoQC+7rI6pQV+ozbML9qsYWaml31sLPpP4l+9ecW5qBcxUcHBODGv?= =?utf-8?q?P5oxpDq7B+E6kqjz9MbZYzIRbA3Fwvph0X1Qvgv9jR06KPvS4rN67xBII1F3VnKRQ?= =?utf-8?q?1lA3m6qfIMOvRlJJ8khuwvQnRNslWh307nNCTZonCT+BXR5vfZU/tMxA7lw//24Aq?= =?utf-8?q?BtMUTpeuKu2cg4K/cgqp8uxy1U/fAUKh+7mhqv03HsVu/BwkQEE0KTj+0V0pIlbMH?= =?utf-8?q?KRgnsD+48NRtwTpJSxDM88tJpLmL5hzhuJ6sjmPU/8FtRDDCAkBs4lDIQKj93J5SY?= =?utf-8?q?j1gubXDypBB4zAj4+vLBT2GwWgjMK3e23TyaXvrC6jEDXJu/7pTlR4FL2qOXuu+2m?= =?utf-8?q?tm+fK8d8vmtZkgk2Ze+iUhbZ3+XzoG1lZ1Goo16PHnawuxoesg4YgQp33dpPvWIhC?= =?utf-8?q?mm9xThqLoifoHmN3ZcZUSGltB1jCmc1J+8O4jin4vBCGNTkfbBmhsfdlcOzAJSyGq?= =?utf-8?q?qyt572lwaEqNP1Xv56E+XTy1trcNOgZWCXuf/iIcV9zUGJ9l47F8QTRks1PrO0iKF?= =?utf-8?q?5pcDLb9aE7PP3ft4MLR4V9imguwTmSc+eiSLufpYet4xTA6WLu58+emYjFFiX/DeC?= =?utf-8?q?5sl8OIda6G0MmofZqhqmDL+pzPMSIh3pO0H6jJ4AXxCibjMdC4HjDM9CMDiN5JPUT?= =?utf-8?q?LutAoJjVSFCefpyIfIP7jTx9T1sgJnY23Kgc85oHGQT4ZgOdmzQOpHzYd48gg3Rww?= =?utf-8?q?g9YVLH+tZuf8QzpVEd8Pnz5Fw/Tw9kEkZTEMHjhkNY8dJjXoFkN8yjVft5j8ZJprc?= =?utf-8?q?PT7AkK4/wDdYILpdly1pR0vMf07DD1w7f1RhTqKgUzUAPB3KuJB/uPSuZtWBfdyjA?= =?utf-8?q?1WS552AnGSklS22rDWYrhjKlaxKi4r+WgnyYnhoZBK6znJiaII1ZRsY/+i8hy+JT9?= =?utf-8?q?BKSHTOF3UwRNjc2RtWCIjX1MU8dJcAdFRwlhhplNr609A5gGgLyMEEdr2NOJh1LsS?= =?utf-8?q?FS/BA9HMN9aRq70qQx3NPYKSfgTC1wFPihvRXcgXW9HWskjjLjuy+Hgk06UATlp3m?= =?utf-8?q?keuTIQiABTNJJKm2wC3RuMmA68YPElXXrAqa1TF2X6ELnlEC90ham3RDe+TecvtkF?= =?utf-8?q?R7nLIq1Y65Pw?= 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)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?bJEblZD5VHzNMw2KXUIPV+N7Zb7I?= =?utf-8?q?rq1M8Vvv9qF0MqrOBBUy/1cJvZsOFr7z6FeMmNBq2Ma8KQFdNO4QlNHhpPm8rr4O3?= =?utf-8?q?RVflSdeiKJBZr1YOjnb3Bi3LK1HS1Krc1j4EDKMQtBDWSzQnzhd8wWQi2gE7+kgZy?= =?utf-8?q?B3gM1KfAIwgCCXc2LHBlQDaXwtUWB206zu8hJYw4LuLFvRzN9dI4My9KK0xA0Tty3?= =?utf-8?q?P/midcC59lXINvXKY8SdLc62aj3a4HVyK+RWRTi8KUXfk6XajfHTkyhCIdS2hJ5gJ?= =?utf-8?q?w5s9UShso+xgpr7n43SJddcoTdlaMBL1m6myXmlvA/M/EdEtHKatqNgtBA16FVbFX?= =?utf-8?q?1xDKTE3uEP9moTlPlIhR8HOY4JJRO8ue67+/EtbG/fMS/9dvAKGg/04ttYaLUnSum?= =?utf-8?q?zAIsvNdJ4w9fT4gk04aRc9hZjmw0bZ+TUGrQ/srgWo9LHkhn4rnoMSjrYa8nHEM6y?= =?utf-8?q?qUNCFZLH7rPEm8GjwPooiy5u7yA7rMNi1TEkwWqRLlmFoSbzXsUnDWXZ6c6urC3cw?= =?utf-8?q?rnporplg6xQhmdkDQxZVlyhWrwKXYhFzIUrxObZdgBWq4iyQo5CuT/ClYu+bVi1W7?= =?utf-8?q?kYtpw00MM9pRyRd/MCdXNRxBPSqdklZNL9TOXDZP0f2+xgfP5klXBAGQtvCJ2cj+G?= =?utf-8?q?gm9K3+8D6w3uQ65lAqU1qv/7LKY223l5jnETk6A5ZBwZ2YJ3VQYgby1y9q3eNtUur?= =?utf-8?q?zMz13C/HsgKK5L5SJ236951gi7mo6AEf3Nexj7Dia99wttAAQ35sOUqJCvmClxRWF?= =?utf-8?q?HWRLMS1lN6io0WTS+sJ7VVxMYbqH3iherLoY/ae3DinGswrRgkoviea+Kp71Mz5kd?= =?utf-8?q?SxdZyBrPBOjp+rEi4O/Jtex5xK45fWawjL1VfJQ0nsTPquGr16nA9OXHko1qiFnlv?= =?utf-8?q?OBXiS1PfNhD2fqtUFoCl0ed7qlSOfI1mM10V9DqIRcnGkrJCtzCbWr0BIjvLsEA9/?= =?utf-8?q?SiDWchUk1D0bbB3PEp/7w9wn4C177XXElcaEmshLpjgfl/rRPov97XSRVoqrl+f/P?= =?utf-8?q?ghEeUDSs6bwUo8GzAFQsURdD8YpoaUSKO7+xbdeQHLf+dRwG8Fb+7Q8juzgfZTopR?= =?utf-8?q?zRGTT2f6DieUnD/uep37F89fmeG3/iFXzlj7SyFz352sEmWjRhT80cPYeWxFNolPk?= =?utf-8?q?5pmbU7V/1r5LY6ZUO+5ghWkVxwL43ddcAhBK5BRYRqzTPlteKIgujOsI4kAjfBJkp?= =?utf-8?q?Q33wBpmkfuPngv7lVad8ZKgXxRHPRveNuZPzgXSmY0AkuOEPE0kX4+WhxGdR77k8u?= =?utf-8?q?7ebAFajcdZpRqOorb4Nhz1vs/hxbS8wf0sej5KglJHqFCuYh66rX0A6dbqPFN/9KL?= =?utf-8?q?eTXjzqRwUpAMePQDiJXpgAQMoDoQJI4XnkelqKw1cGhhq7cTBJLLu2diJ/iDeVsxX?= =?utf-8?q?+KtSTkqxGBqv8BgvEVigp6M84yAOjE20QsXUBbDrLalbzL0bbp2XsCHstel9s2MBB?= =?utf-8?q?TjIV56isR1fcRND5LCMYNU3r8LVwOPpgsqASX/RUip20K4eOMvc2d5jxiO+sd7qZL?= =?utf-8?q?G4EVImGv+uFx?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8f3787ec-32d1-44f1-4953-08dd4f3876c5 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:08.6999 (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: 466oIeN/jWkd00RrHLe7KzZC4mqNRmnjSXuTf/3bttICm7G7zO2y2Ym8mUyJX6tNLtHTGrlSSyyVZcyQl3nlnw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7080 X-Patchwork-Delegate: kuba@kernel.org Dynamic clocks - such as PTP clocks - extend beyond the standard POSIX clock API by using ioctl calls. While file permissions are enforced for standard POSIX operations, they are not implemented for ioctl calls, since the POSIX layer cannot differentiate between calls which modify the clock's state (like enabling PPS output generation) and those that don't (such as retrieving the clock's PPS capabilities). On the other hand, drivers implementing the dynamic clocks lack the necessary information context to enforce permission checks themselves. Add a struct file pointer to the POSIX clock context and use it to implement the appropriate permission checks on PTP chardevs. Add a readonly option to testptp. Changes in v3: - Reword the log message for commit against posix-clock and fix documentation of struct posix_clock_context, as suggested by Thomas Changes in v2: - Store file pointer in POSIX clock context rather than fmode in the PTP clock's private data, as suggested by Richard. - Move testptp.c changes into separate patch. Wojtek Wasko (3): posix-clock: Store file pointer in struct posix_clock_context ptp: Add file permission checks on PHCs testptp: add option to open PHC in readonly mode drivers/ptp/ptp_chardev.c | 16 ++++++++++++ include/linux/posix-clock.h | 6 ++++- kernel/time/posix-clock.c | 1 + tools/testing/selftests/ptp/testptp.c | 37 +++++++++++++++++---------- 4 files changed, 45 insertions(+), 15 deletions(-)