From patchwork Tue Feb 11 15:09:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wojtek Wasko X-Patchwork-Id: 13969824 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2047.outbound.protection.outlook.com [40.107.94.47]) (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 C8F813D69 for ; Tue, 11 Feb 2025 15:09:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.47 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739286561; cv=fail; b=KgSdMe9fbuytoDuiRaIdzWblfhtmhTrSRH09Ki7zJ/KY+LUR4ST5ruP1ytd3B4QaaWj8skh/vCKpWjAOjWx/IGNuttRsM/cECrUTNowj6J1NhXIhfYrOsH7746kaUhdXOAeUILeQ8EcY9yFCBVj59OBfHB3IUqPPuZmKOUkoER4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739286561; c=relaxed/simple; bh=YYnG4uqQMHyFecp9baGcDsKg7sLNYWzjLMmLOAbB27k=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=pzCGIacpIjCPBXvR/25E9jguHFstmU4O0vz5ACSf4zLSd0Ymz42jdCwtMaddMJJmFZSSaeRDARV+nVknF/RJZikEIxMmZx62exG9/KoL5hE81su7VyHZfRQ8utNYqerC8gfUkRzJy2XgWywjeS0xO4ZGgmOSFCG7XJYw5yFr0eY= 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=cNg4NYod; arc=fail smtp.client-ip=40.107.94.47 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="cNg4NYod" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Z7tiAALDnpCa7rcHFwCScIRHG99PeoYU8eFcg+eJqYyGQSRzKq7jIjBxqajH4afvg7ihzzG2/d9CQs+wnh4HINgzGoLkG5AFCIAeQ5OyG/A581zecVtGfvNYGtj+/c2G1y3fKOfUZzN2kFOAkNXbarSwwJokzFyl4EwVO4BEwKUbNRfyqDynrxZ6SZOTSOixYHKzjsaDmQ95gH9OeLJF1sDjRp3wsWHaXnjnJskKtdH2McsSmq9zAS29yyikwj4xFN7f6xwePunL7p/PtDrNlDIPaC5C39SmP5r0o8dpf+Wn2ZIZQxcDIjpEzOr1Vd8ZTYYXuzz5FwQf+NQuvuFqxQ== 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=c2Hj1jxBHj4m1cV2heoW5/s9Dc6ZW/uONbrX4Sy5hz8=; b=MhQ2AnvVdSSHSyAWW00aJhaQ3GmtDqf4Hwf2c6OPi+JMGCsnsSem2blDQ4ZzO54n6wDFvKoAmFV2hUk2U6ApT3VVoHUWmO05NnUCIOLsHaojvhhK4CXmfQqBGZeP/7Q5ezw7F4zeyy187PYtGNqHfby5H8q1qic0CQi4PPO42Kw5xFyMU0d66g0AVbtHoltRF+C2YgSL2BU/t0lDVy+RnO6++B5FjCEoL14xwCQzjiZOhyxhnqkUv0E4faZwkR8Iyd2weaG9xPopNw3QLBDQrgqD/qDcOBtCudHhoulYhhzQBp69EWjrcXuI1fGUK+GBKfsLRcinUlLQkNyNvidecg== 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=c2Hj1jxBHj4m1cV2heoW5/s9Dc6ZW/uONbrX4Sy5hz8=; b=cNg4NYodA/T9vohFYxN4BSeCKEN9TSZ6h23gwWbvQKqWCxqI9JJUiGCQVMem2UVxyx6D+6XVdtSuiGC+GyfWygr4BPRWbfNowNa0igydXqlHfE72ytxbtI9AtkrhwU1GYQ2Zwizbu4/oz/DCvLW8sLJ9zvAGkilyAava4mkNy2FrBFNfttuyF/AKTG8S1uOd7+SnKzydITk+yp/jP7B8dHJKvnRSnR+j4KBOIcvlm7Yw32fi7aGH1d/29VfKowCAITghrxvHagCwxYiG0eFcRYQnC7FujJmdl6kcNVWsLjh9f4BwtLt2puNAL44LGwfQNvFKxQqN+M52xWCgPepIvw== 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 IA1PR12MB8357.namprd12.prod.outlook.com (2603:10b6:208:3ff::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.18; Tue, 11 Feb 2025 15:09:17 +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:17 +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 0/3] Permission checks for dynamic POSIX clocks Date: Tue, 11 Feb 2025 17:09:10 +0200 Message-ID: <20250211150913.772545-1-wwasko@nvidia.com> X-Mailer: git-send-email 2.47.0 X-ClientProxiedBy: FR2P281CA0005.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a::15) 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_|IA1PR12MB8357:EE_ X-MS-Office365-Filtering-Correlation-Id: 3bb8b581-9aa1-4aec-3ee4-08dd4aae0db8 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?WNiFPpY0j57rBmeeyo09NpFRmyRNc42?= =?utf-8?q?9qHGYloSaG6MSFRHINOTM9OkEztc4ULOr1xkkls1Q9QVa1gI8yXzWQeWO7L5XDbvU?= =?utf-8?q?VKA8Lcnngyf+Uwq+zIpR7bC94e6TlNqN72GDCUhz8CGvJSTM1RzrH1V8vu9KajKvl?= =?utf-8?q?zp3cASv25mLnJY/PtZNHdgtH2GjBmi9lF9dJn8Vd6NfOSO1BEFIvbol5IhT7BzwrQ?= =?utf-8?q?xk+ToDq82d0oXzfp0VEbB6cQJJy0C4nqojdUYbspjKeftO1vWu/Xzmn7pNXCe1urw?= =?utf-8?q?WyPUA7LljNjdOYVOrelEH/cfC61ELfPW+NXMnTGqltT9bOSCRQ67BKs1cJKrER1V9?= =?utf-8?q?fyhHN/KlvfPQYLxJRAL948sGDMqr4TuWzp3YvTS5uPysvI7n8GnSpX9PmA8UsG9MQ?= =?utf-8?q?fZEbL9rO92bmxevLgQkMTkxV+wB5M6VdMSRvSxH34TvONpnihPHLm+e43Ee7UDBll?= =?utf-8?q?M7rwfBQVTXuKN6tDxinmKJfC5v1JV5usKXKnUfUlSE7Y9fHmOEJQq0x+QrH/dCwAB?= =?utf-8?q?8l3xh5zqOEIYJ9PXxZAny+UQGncMJ/m2C02gi8Delc9o8gJBpMvqGcACQQRnimRlw?= =?utf-8?q?KUUnvJpkAhqpXllVnFeCTeA4Y9larGXA1oQDBhypH1S5yvOWw44/n/QvdxXvxY1cS?= =?utf-8?q?lRqBDr/SG3GlHaP/FYneqwwMpGm+dLulU4rNlztafJ2MIDTCA2StX0VPdN/lwFNNo?= =?utf-8?q?gTCEGHACMZCwVlP1HpCRqRvF8VU0aFSHKB/3ZCPVS/3R8bLHrcY51RlC8i0ZcaGbP?= =?utf-8?q?p6wxKTUIMYFDKa4b/zfDvv+yfsJgXvu7BaNq5omvvWcUB8MuMY1tJxpdI/QMyJ9aP?= =?utf-8?q?R8HSfvT7s7OAYmcDlebHMB0FRB25H35UWND51p1yJzqs4Z8UUyP830sTfVxz0GseN?= =?utf-8?q?utj/mbvDc1CaPBmsMjL9/Q8P1dvUb2GMqNfxHZnvf6jfa1KkFj+5tsoEspvUiVB/C?= =?utf-8?q?VEh+PoRMGwAhro6z+nY48VtuN1cn5W6p1K25lhzXnM+Vp5M1lBGdOKmVDk4SD07re?= =?utf-8?q?GarEGrciHFd8JAYt0KmIVM6SzjvLR6H3uPqyT6O9KuWTgsRBkgwmBi04XYGBKuywG?= =?utf-8?q?lfBRSj+kibIjdw/Uy5+GC7v4WBLq0VZBqAQlqJDF8VVicRgYSI+4XyRAdFJQnZb8i?= =?utf-8?q?KZX5mj3FzfDZThOMqFqkwxzYuwqPUvf0/sSVNuhKn4PiU5YFBO4WcwPdIJcQegtIi?= =?utf-8?q?WvXZQzW9//WadYBlS/gJlcIzKALBaZsdWFzcfiUg+Vw7gVdsEpQH4myM8vYEuggx2?= =?utf-8?q?PzSFzwJNkEew29z1YUL3uYps7pL6Z9nwpZ+QQyHCDPLaBO82TpEkCVGvZJj3AXx/2?= =?utf-8?q?AFFEOQHGT6zH?= 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?BfrhCBdxO5WftylWlLJPFhj+n8Dg?= =?utf-8?q?OozZNecv8k+6ahYHgc5zXKooAK21bFCRKCLwRsjPH+uP38+xH96/JB1Hhh5JFalwg?= =?utf-8?q?lS3dzzXgloc38TRsL26ltK7X7XieWZGVAWaWEA1OTxBYmPZuXNbGNmEpfOqLwpXAB?= =?utf-8?q?k+e0d7TjuihhPpFshSjgpvglkzYEezo8Xveit240j4KEn2kPZsktvfVvQjZWsaPCW?= =?utf-8?q?DxWwxh7Zw3XkmtjGa4ZcqqMnRu5CLpKC07fX/hlx9BGpq7dpbZeXCtFH78Jyz0VCF?= =?utf-8?q?xqqL2ZBQl5HWoNioSut6A5V9jKVXIhg2a+lrrmcdQkuqzoe1LRtmbMex4Gzo0A/C1?= =?utf-8?q?V9xCepiFIW1vOkdpj5Lrvb4yzzOqM2A0s9dAvNi3ZsLjPUvbtH6pTecxk9dEwlIHN?= =?utf-8?q?GBxoNCN2VCT220+KpQaQdFrVij7O6/CKMNZL4ZluyCiz3vVyzAlppuX6z+uNp2y7Z?= =?utf-8?q?C9BRf2V+/CzvyzMccg7duV2dUWg2z0dsknVnGNxWG2no6cE/nUWLLF78JGUh1OpLl?= =?utf-8?q?JKMSSDYiwV5pbiTYYRf4TKljME0REKvVYIuV+cVaUM4qsAn63zDX6gsUvP/TjgRRZ?= =?utf-8?q?vd5a8NXBUYu5k5+ED5U0t3+1oxEdQ1IuNXjnS0TaPxRbm3mLJ481VMRpEsJADx8Vi?= =?utf-8?q?fgtrGyRQNG+OxhxjabfkF62EEMEw24eruhrfsOnx4PoTS5MvRca9qc+iAfjPQQrBl?= =?utf-8?q?NYG5+wZ1YUyZ420wRYk/kxwFH7bEPvJWUV5QydOzhOFTEYU1d2oWZqTn5nKj5HUak?= =?utf-8?q?2cSDCbZS55oIHon8aywC3WHt5AecqO2TIjm7RsKWpSEMFrpZW3XW4TottCbQHmYWr?= =?utf-8?q?kI//Jv8FLA3Gksc6b1k0XdLBoVVCKosRm6t5r+FBfvFdJOzFlaqyfDcDekvT352XS?= =?utf-8?q?1m/CT8d2kJCN4tY/kpJcSxSoCZBPfmigeHrvmXLJKOfhljdB73UAuYfl8XSpMvUP1?= =?utf-8?q?fYNrFjs6RlDEsKSMBVP1zP467jLWj0o2jZ6wdkeBxb+5/dZc/OLKCu2a36aKTbNnK?= =?utf-8?q?TeidHAZo61tO3Bmpcuba9VbVDvV5NH9OUjDZPksbz2qlW5kn78PXbXD38b/iBmYlS?= =?utf-8?q?OpRUctLIF6qx7Dme5GuCExWAx4qMrM/pjearY3/ledtbXK2SyjI1c0PkwL+UwBvbM?= =?utf-8?q?igTiqIeAqXQljZJ3y9WVD45LFQ4a9Wtbl3ngTqy2qrtXIY5vMwcR0m5UwOoZgNhup?= =?utf-8?q?rX1vig7vcyF2DZ0hFUqdCy/QWFfWHbgFMeKtuXfRoN0EXsY++c2y6j9S9GOPBIegi?= =?utf-8?q?OI3bYUJjFqwgTxNwghAnw4HgthQqreejld5pHBDrpPxIHTGqI3RfZtwkFH8rE+qRL?= =?utf-8?q?0GOBn3z70j06uL6Ao+4BsVlirB4ewdfDVLZnuwAC81Jha0ByRKdl1OACn3o59Kwg9?= =?utf-8?q?D2lfHaKKeuXy2tvf8ct7Eo/ql/gIxv8tabHkYhiE3yI7F99sQ6+q7cAMYkw2f9UBt?= =?utf-8?q?uVvzVn5FHGQa0LMhqHZlpHuEEEh1eKVu4am07i0FBXPGPVq7GfxdWWw4fgreDJ/+H?= =?utf-8?q?szo4vCo3ep4Y?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3bb8b581-9aa1-4aec-3ee4-08dd4aae0db8 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:17.3197 (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: ZkvHlpXmpNnx6WrkMe6QAeDKIPhTYWAVN6iBpRpP/pOWE73ECz6QQ0NaBDS/3HFtLhG04SUIZCLtPjqOhQcYpQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8357 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 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 clocks: Store file pointer in 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(-) Acked-by: Richard Cochran Reviewed-by: Vadim Fedorenko