From nobody Sun Feb 8 18:24:31 2026 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12]) (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 26B7723D2A3 for ; Sun, 2 Nov 2025 10:12:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762078382; cv=fail; b=UJZy50/ZESgBi5nQgks02gd7l1ukBjI2wEWwq1SH4QEPdoNaMHtskX5KeMuM8t+1rTr4GGsxuQ+r/zeYADxFeoOQAUIvL2HOdjSkDoKpQyRkQHWaSTjPcOfRN47j/IHIzcAYM4wJSe33MizNmVAF9hp1pftlyrsmjjkNcGaZxkU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762078382; c=relaxed/simple; bh=c2Yz2ffqeS11bArodx0pzAI6CVH/dTFBLzpHN+J/wVM=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=NPbwCuQpqUQv1P+wExdNVjuYwTja5JrVgdOPyg3GkPovGByePpg9v1rlcL4ibfhmsj5I8020OySOHSmy06PVLD8qOsIGW9uAJm6Abm1KL7MNPZiNZjIq+kCj84LVOToNm3pA3BD9ogO8t/2zjX6WQE37TAnW3AuXMQrwQ3ocUbk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=k6gYv2/1; arc=fail smtp.client-ip=192.198.163.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="k6gYv2/1" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1762078380; x=1793614380; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=c2Yz2ffqeS11bArodx0pzAI6CVH/dTFBLzpHN+J/wVM=; b=k6gYv2/14dXci2ZPj7WI6IMadOnZl58EHXJbJGNx9VBT1g+fCOlZrahz VbZhvvBUjlXcpbjsqH9JZUJK68aqDPWRdYaFpBgPLKivD0ymATRGJVEXL NPIK1YYLxA8Kof+0woudyYgjR9xZu6kmrVQpuZjEzzaJeNa5UZDvnQRqW uobk5D1qjgWA8cnUIi4/hEPREmIxdf8dXtOZl6Cm7k3Cxp6s9wtsAjrz2 hUDliNWUAhnqWZxj/MIubCR6KjuccNDEd54ygyO3Mo82bapxCeH4SdSpH ezvQRKnDtB2hqFEoVNNKqrKd5NB82FOnnHSH/MEgeo5RFQfFUpnuxTw/h w==; X-CSE-ConnectionGUID: g+iuHXCxQFqYhAU3IYUgmg== X-CSE-MsgGUID: 4P8PQGTYS0m8Um9qtsdNYQ== X-IronPort-AV: E=McAfee;i="6800,10657,11600"; a="68039805" X-IronPort-AV: E=Sophos;i="6.19,273,1754982000"; d="scan'208";a="68039805" Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Nov 2025 02:12:59 -0800 X-CSE-ConnectionGUID: VOPaC+bkSAuBNxu70Wp8AQ== X-CSE-MsgGUID: 7MSbw7mTRu2MmOXdDIbW6w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.19,273,1754982000"; d="scan'208";a="191739106" Received: from orsmsx901.amr.corp.intel.com ([10.22.229.23]) by fmviesa004.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Nov 2025 02:12:59 -0800 Received: from ORSMSX902.amr.corp.intel.com (10.22.229.24) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27; Sun, 2 Nov 2025 02:12:58 -0800 Received: from ORSEDG903.ED.cps.intel.com (10.7.248.13) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27 via Frontend Transport; Sun, 2 Nov 2025 02:12:58 -0800 Received: from BL0PR03CU003.outbound.protection.outlook.com (52.101.53.9) by edgegateway.intel.com (134.134.137.113) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27; Sun, 2 Nov 2025 02:12:58 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=whGQAsgfjS/jRWOnX+qepNjAtRTNnXr4BVD+vnA6c/sEYewr9YkHhU2M3UFxgNsT0C40sqEHWEOb7M6/xpLwENWU2VlsLFzF8lFEqwBb4rDxaRUr2/LRsxUfqhHCyy1Y0vLKiWnhmYlzpOXszbnj9/s3lepIaj/k2A8/gFxrkag99oxGPsGOc+lFg0gxPIf4K/Gkn0Je/wm2dU5GynMB64hguE8Odj8ri92F7n7+b/W79wpC6pbBzCjFRCMC0LHD1+F/Th9hdAPYLMJGHGQy3VcPDKdUNc3Ag+icZPcRSBgMKCi7cEBxiQGJsFwwpPkzmhK9LDYyV0CbtWtorEmQCg== 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=c2Yz2ffqeS11bArodx0pzAI6CVH/dTFBLzpHN+J/wVM=; b=MTm69mlEenP5qkVWldN54uV5O0hTVU5Fm2eQRp+xuaRaoh3su9kIHdQ3r34e5rF5Vo4sEqJpCiGlzTl6T+VHBlz2PB715/6Ao+kp14EJKcccmR/ZscPpRzGJ0ZUjLonGgvm3gAncyg2JU/WY+nGkxkNn6KquFDP12uh6VsSj3t0SOXLE+WEMPhJi4YZoh2gsQJ0DScnUZwMFAAqTB0ugbZIKa214Jzw30fV9WnJ0twIcIMC/Rd5kV4qkAFsVQZFmu7FHD+smS2GIiW5DjYK+7M3o7EOHlKem8PJwfuVAt65bnC8IaCsoYbtAog33+QsFdeoLnnII5BrUNkCPF0rfsA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CY5PR11MB6366.namprd11.prod.outlook.com (2603:10b6:930:3a::8) by DS7PR11MB9451.namprd11.prod.outlook.com (2603:10b6:8:261::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.15; Sun, 2 Nov 2025 10:12:56 +0000 Received: from CY5PR11MB6366.namprd11.prod.outlook.com ([fe80::22af:c9c9:3681:5201]) by CY5PR11MB6366.namprd11.prod.outlook.com ([fe80::22af:c9c9:3681:5201%4]) with mapi id 15.20.9275.013; Sun, 2 Nov 2025 10:12:56 +0000 From: "Usyskin, Alexander" To: Guenter Roeck , =?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tp?= CC: Greg Kroah-Hartman , "Abliyev, Reuven" , "linux-kernel@vger.kernel.org" Subject: RE: [char-misc-next] mei: hook mei_device on class device Thread-Topic: [char-misc-next] mei: hook mei_device on class device Thread-Index: AQHcFoqi4aZDMh4730+PSyOfvRPXmrTeavEAgAEie6A= Date: Sun, 2 Nov 2025 10:12:56 +0000 Message-ID: References: <20250826125617.1166546-1-alexander.usyskin@intel.com> <8deef7c4-ac75-4db8-91b7-02cf0e39e371@roeck-us.net> In-Reply-To: <8deef7c4-ac75-4db8-91b7-02cf0e39e371@roeck-us.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CY5PR11MB6366:EE_|DS7PR11MB9451:EE_ x-ms-office365-filtering-correlation-id: 05c8ee55-28e2-48f9-89ac-08de19f8649d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|10070799003|376014|1800799024|366016|38070700021; x-microsoft-antispam-message-info: =?utf-8?B?ZE9jZ1o5MEgzUW5mSGg0ZlFPd3k4Vi8vS2hPUVE3c2owcVZQU01GZnVLZUpK?= =?utf-8?B?aHR2WC85UzloQ2lzY3lJeVBva1lpMlREd3ovaG9xeUNRZ1l2T1FaUUUwaTNT?= =?utf-8?B?UjQwa0JrL3BINGdvL1dqTlA4dXJSTkVXM1hDakRJc0lTRVB6VWIrYkVzc3BI?= =?utf-8?B?QWF2ejIrWnltaVJuaHFqdzgvWmgzMjloSldjdkpmTVpLNGhMT21kSTZhU0Rk?= =?utf-8?B?Y1NXRFNpL01JbWc1ZW83Lyt2TVZsZnJka05qZ3cyMUJNbkZua0JXemVSQk1S?= =?utf-8?B?ZWZnbFhKRkFRUkxsUFlLVEFYOW5EQWg2WkdOOGNrdkRvTG9JN1pEVWx2K1Jw?= =?utf-8?B?YnhpcTljLzY1dmIrUjFSNXQ2cWg2OUYvazlZcVpzZGdVdThJck5NRVBBL3Fp?= =?utf-8?B?OVdjWkhyQ3pLUFhCRExqZFFPbDROTm9DT3dsUzd2cmRqUFJFTitNb3FqdzRn?= =?utf-8?B?TzFTMHh0a2ExTmFibEdBYk1PV0FPalhvWXRiWUlpZUZHNGIyRm9BT1lGcWcx?= =?utf-8?B?RzUrS1VCSXVZS2hLQksvd1hRcFJmby8xcldGS2NZK09nNjNhOXRkMkZ4Ukt0?= =?utf-8?B?bG9HTUp1NGhWbldOZ2FuL0MyU2JXNGVoajNwK0FVekYvdlRmWWEzN3NJbG52?= =?utf-8?B?cDlFQ3lmUjJHdWowTzVnNlkxMHBMaldKNVFYSi8vNzRrZzR6cnY4amd3N09S?= =?utf-8?B?TTJ4YkNpZnhDUkIwN0RURElMeHB2NnpPSkM5K0VCZmVGV3dQRFUzSWN4Q1Vl?= =?utf-8?B?cTFJR1N4bHVHQU1RWXNsbHExN3U5d3VMdnFuYkhhQXBVbDBqOGUzM2toNHRQ?= =?utf-8?B?ZEtRM2FCRmxDdk13eEkrV2krd2Q1ZTBrZ0dLaElBemJyZ2cvcmxTN08yclJJ?= =?utf-8?B?RHRwbHVBOGtYd2RENElQd254MUI3enBkcktUWnFlVU11cTA2NC9FUDRQOWRE?= =?utf-8?B?MXJwM2ZjUlBucmRxcmpMRXpOS3V2ZENuRVB2UU5CcUMvTDBLd0YvYjFoTVE3?= =?utf-8?B?YlF6ekZpSkZqYVNZTFlqQWE5OVRhVkJ2YkdyMTN4MHVTWm1nNnBNeG1BU2NW?= =?utf-8?B?cVA0VG9rWXRiMU9jeWtYb1BaZFVzbXdTUEw1d1JHRE92eFZwTk13UExreHlG?= =?utf-8?B?c3dQUFZuR0tBVzNFendKcVZ0bXNyNk1FRlVjSG15enZtcTNCMGRqMWs0U0g2?= =?utf-8?B?d2d5cjdXVnA0Q0lKSUl4cVlyRmIzUnRDZWJXS3hFR2FpNG9BMEJ4WDBzcXNW?= =?utf-8?B?UDV4a3F6M2xyQ1R4V2tBazZEYXUrYUxhb01vOHEzVHg1UTVMZlBpc0tuVGl1?= =?utf-8?B?Yy9xUTFVQWpZdjhQQ2d1RmJBZG9WNWFEOUhqQ3k4WlhuTHpTWXVzSFIrV3ZG?= =?utf-8?B?QXRCMlNUdXc1c0tvMmgwT2xLODhzN2lITkxXOUlnYXNYZy90OGVrY0F3NWgx?= =?utf-8?B?eThhNUpHWk15TzZNS0RVeTduV0pSdkdDR2QwOU5hNVk1N2Q1UE5QWWl6YkNr?= =?utf-8?B?cGZYWnQyaiszWDNZNmk1KzQ5UU5rMFBIMWhNbWtwWjFGV1p5UFdDRUoyNWp1?= =?utf-8?B?dGFoY3VDY0FRbnZQYmdQQisraERCamFMOWZrT3dGTTdmYXI2eVY2cjFGU0dN?= =?utf-8?B?QWdkOEZ1ZnlKcWNraTNSd1pnS3Q3RnVqSTdZaGUyMVdDOERkeXpCTjExTjB0?= =?utf-8?B?MFBDczlBV1pxYm9Xc2E0b3FMMFJjRFMxaHhiakw1VkZQOXJiSFN3WE8wOTVL?= =?utf-8?B?YUZLNkd4cFBvTWUya05SVDYyeUFQMzVCRmhZZWtoK0pMZ3hhMzhnMjkrTHR3?= =?utf-8?B?ZHZyK2JISCtSMGZGNlBtcUlqSmNjSjFlUXllNVN1YVlHRkU3bHVYSk1SZ2x4?= =?utf-8?B?N25Xd3dLZW5FZUJqakQ0eUFOQURPVTNOaFFBSWZ4K05KQXdvZHI4SXRTdm9E?= =?utf-8?B?S1g4Tzh6Q3d4U1Z2YU81ZWhiaXVwMnBFTUtKTXNZanlkc0ZsWXdGdDJob0Na?= =?utf-8?B?Y2llNXVXWGhnPT0=?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY5PR11MB6366.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YWxweGlTOG44ZHFXamxmcHRVSkluVkQ2OFlSdUYvcmRzUWk3U2FhYVBsQm92?= =?utf-8?B?UklQcUYrRUltOFFYUHplRlBieGltUnpjVnFtcnZseHV0MkVFSWNVSHUyZkVC?= =?utf-8?B?eW1HMDI2ZXhxTnNMQ3U3T292RGJROFVJOTNNclMxb1pnT0JrN3BZcG9uaDMx?= =?utf-8?B?RDZMdVhDelg0NTRqbjVXZXhrVjJQUFRIRzQ3dFFYOWpRanlVMk1sZmozZnU3?= =?utf-8?B?ZG5tbUcyaVAwUWp6REpnVnBJKzYyTFJjZ2xIOTFJSElxM2V2M0l4WDJLY3E3?= =?utf-8?B?LzR4NjNZWU9XeS9VMmJhczhXdk5RUWhnSTluWmdDRldaZnRablZKZVl4ZHhL?= =?utf-8?B?OHpXajlTc1NocEVhMVV4SnNWNUlxTlpIWGhrS01teEJLREt4WEltNVBJUWd3?= =?utf-8?B?Mm9tc0N0ZDVwRXpUQThaRVdmdUtBRUNmMnZRaFU2NmluS3ZZeitUMjZJSnRG?= =?utf-8?B?L29OSWcwdjhvaTdDSTNZNWo3aW9yNlBhRUVZM3FNYUk3dS9INERwRHJVbkla?= =?utf-8?B?QVRoM1JqTEJlclF1TFE2REFUZnEwRlpERytUR0pRaG1VNTN2QWlSeVdabk1u?= =?utf-8?B?NHVTbnZWalUyNFl6OUQyTVp3RFpGRFdPNVlya1RzT215YzdBb3RLTVNVc1J1?= =?utf-8?B?WTFzTG9SWUpXK1NiMzd6YWdsb1lleE45RVNJRU56STgvLzh1N1FQem1JSnEz?= =?utf-8?B?UGg1QUJ3WUxLWksvNjJ0SzFSbnFod0huRVNTU3VQR0p2ZzQvYTJCbDJVT2cx?= =?utf-8?B?K3k2MENia1RiOWdhQzUvaXhwOGExaC92NGsweGhDMmlzM09RbktrT09nUzdW?= =?utf-8?B?eFdUeUF1dFdxRmJOSXBoUFY1NmUyRVl3SHFiWlREQnRaVkdzRWxDNnVPOWRk?= =?utf-8?B?MVVsVDVYWjkxejVnZlE1SGdUam4zSlNoWGMyZU5FMTdsbnVtVWhVTFBQVDVY?= =?utf-8?B?TVFMZk03eXY1VXp3TVBKSDVnWERwL0ZrSnhQTnNZdVJuUUNzSHJ1QnpiMi8v?= =?utf-8?B?amNFUjNkemxMdGFrQkRhQ2pNWE9mSEFnOE5OYlJrbEx2UGV5ai9zNnNDTE8x?= =?utf-8?B?cmhDWXBvRFRIU2RGT1R6WE9BZUI2a3Yza0Jud2ZUUGs3WXlWSkRDYWdiWktm?= =?utf-8?B?cUUrbDJPMDZQS1lYS3pkSTh5SFQ2aUtCVzJHb0FrNE9wUnFoQmhYQzVreG96?= =?utf-8?B?czd2NkNpUVRKUi9TYlhJRzdDY3lkQkhCZE00SzkwaFM2aUwxNUNFYmh4UVNk?= =?utf-8?B?VnUwT3NveGZmVm9yNjI0T2F1S0pJcHE5UnlHMnJ3YXg3UWMzcFlKL0xMTTcr?= =?utf-8?B?YWZoVG1LWTlINUFyN1l2blNzVzdQNWFoL0psR3VsVEVOSjRpdVdmVnZCNlFJ?= =?utf-8?B?a3BpdkFVbzhkNWpaU3hyU0NIZHI2WHBKZkhuY1ZTR0pUSHpWcnVxc0NYdld3?= =?utf-8?B?bjMrTnVBREFCZ0l0a0c1RElsUXczTk10QzVKNU51VzZKWWZxeHQ2Vys0ODRa?= =?utf-8?B?RU5pNDF6bnZIb0l4VVg4QWtJN3VXY2Q1RHJMRWdjRDRaaUYrWGpXb1RwZG5N?= =?utf-8?B?MTZBVXVPZzc3d1UxNUVVZ3ZoOUlSZzl1U2drTGJ1TkV1U1hpQTRTZzFCcmFJ?= =?utf-8?B?QWRFdkFER2Z5eG10dXhleTFzSEl3dm9OMjVkSFB1b3orbENDVHk1U3RhazlG?= =?utf-8?B?TnhnUHdTazBXMnJpaFBYL0lVK0pBMVJmUWU1U3p4djZaN2xvY2pqbndOV2k2?= =?utf-8?B?TzNVWlRjNzRxRFlBR25nQ2lJWXpOc3I2TGxyeXFqVElCV01wTVBwWmx2a1oy?= =?utf-8?B?bC9lQUdiNDhZeUZpRnhLR3VBU2xYWjFWYlA3ZVE1eGVMM1pBTktwbWhXYkxX?= =?utf-8?B?akVpWk45V05MTzNPU2xFMk5LVndDNnBielppWVVVWDM3WkIxVXV1K3M1eVVy?= =?utf-8?B?NXppZVoxNkFUVm5vc2ZVNnk1dDk5V2VIVlJPbjhBbHI1R0UweHVBS09Objla?= =?utf-8?B?K1p4RW9ZbTIyckkraW11c2dsWm45dVU1TktSRGpxWUtVM3hxT1BPVlNSRWpm?= =?utf-8?B?OFhBL0lQc0k1dThQMlV2SUJHZzZWYVlaSk1VNmhDSkdraGtHWnFMVkU5Vzho?= =?utf-8?B?S2xsTVVmY0lMQzZlSnJKUTljTFNLeTZ6dnYxRjFiNVc3dnM3Qlg4dnRpdjNp?= =?utf-8?B?N01CQlFIRnZlZXBhRzJocnhib0R2NGxOeFlSd0RaQ0F0MjRpbEJiQ0ZaTmpF?= =?utf-8?B?Z3BOU0VBZCtlZXI4SEJjVUpsWnRRPT0=?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY5PR11MB6366.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 05c8ee55-28e2-48f9-89ac-08de19f8649d X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2025 10:12:56.3613 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: zl6QAbuoO1oC434WD6BF9NXevEsrOgDTcTaQTl6ay6MUKDyhV8RhzrTw5PUN+fneU4zdH4vvb6IDjT4NDtHEpAQr5YYodFlmTj29VnIDyZQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB9451 X-OriginatorOrg: intel.com > Subject: Re: [char-misc-next] mei: hook mei_device on class device >=20 > Hi, >=20 > On Tue, Aug 26, 2025 at 03:56:17PM +0300, Alexander Usyskin wrote: > > mei_device lifetime was managed by devm procedure of parent device. > > But such memory is freed on device_del. > > Mei_device object is used by client object that may be alive after > > parent device is removed. > > It may lead to use-after-free if discrete graphics driver unloads > > mei_gsc auxiliary device while user-space holds open handle to mei > > character device. > > > > Connect mei_device structure lifteme to mei class device lifetime > > by adding mei_device free to class device remove callback. > > > > Move exising parent device pointer to separate field in mei_device > > to avoid misuse. > > > > Allocate character device dynamically and allow to control its own > > lifetime as it may outlive mei_device structure while character > > device closes after parent device is removed from the system. > > > > Leave power management on parent device as we overwrite pci runtime > > pm procedure and user-space is expecting it there. > > > > Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14201 > > Signed-off-by: Alexander Usyskin >=20 > This patch results in: >=20 > [ 20.260342] mei mei0: wait hw ready failed > [ 20.264530] mei mei0: hw_start failed ret =3D -62 fw status =3D 000703= 55 > 002F0006 00000000 00000000 00000000 00000000 > [ 22.308353] mei mei0: wait hw ready failed > [ 22.312489] mei mei0: hw_start failed ret =3D -62 fw status =3D 000703= 55 > 002F0006 00000000 00000000 00000000 00000000 > [ 24.356433] mei mei0: wait hw ready failed > [ 24.360577] mei mei0: hw_start failed ret =3D -62 fw status =3D 000703= 55 > 002F0006 00000000 00000000 00000000 00000000 > [ 24.370911] mei mei0: reset: reached maximal consecutive resets: disab= ling > the device > [ 24.378787] mei mei0: reset failed ret =3D -19 > [ 24.383079] mei mei0: link layer initialization failed. > [ 24.388329] mei_me 0000:00:16.0: init hw failure. > [ 51.219835] watchdog: BUG: soft lockup - CPU#0 stuck for 26s! > [kworker/0:4:838] > [ 79.219833] watchdog: BUG: soft lockup - CPU#0 stuck for 52s! > [kworker/0:4:838] > [ 107.219832] watchdog: BUG: soft lockup - CPU#0 stuck for 78s! > [kworker/0:4:838] > [ 135.219831] watchdog: BUG: soft lockup - CPU#0 stuck for 104s! > [kworker/0:4:838] >=20 > when trying to run v6.18-rc1/2/3 on a Skylaker server with non-functional > MEI support. > The problem is only seen if various debug options are enabled. Reverting = the > MEI > patches since 6.17 fixes the problem (reverting this patch alone is not > possible). >=20 > Bisect log and more verbose backtracec attached for reference. >=20 > Please let me know if there is anything I can do to help tracking down the > problem. >=20 > Thanks, > Guenter >=20 > ---- > Backtrace: >=20 > [ 93.187907] watchdog: BUG: soft lockup - CPU#0 stuck for 52s! > [kworker/0:2:834] > [ 93.187909] Modules linked in: > [ 93.187909] irq event stamp: 523739110 > [ 93.187910] hardirqs last enabled at (523739109): [] > work_grab_pending+0x1a7/0x360 > [ 93.187912] hardirqs last disabled at (523739110): [] > sysvec_apic_timer_interrupt+0xe/0x90 > [ 93.187914] softirqs last enabled at (523364938): [] > __irq_exit_rcu+0x6b/0x140 > [ 93.187916] softirqs last disabled at (523364933): [] > __irq_exit_rcu+0x6b/0x140 > [ 93.187918] CPU: 0 UID: 0 PID: 834 Comm: kworker/0:2 Tainted: G = L > 6.18.0-dbg-DEV #2 NONE > [ 93.187920] Tainted: [L]=3DSOFTLOCKUP > [ 93.187920] Hardware name: Google LLC Indus/Indus_QC_03, BIOS > 30.116.4 08/29/2025 > [ 93.187922] Workqueue: events work_for_cpu_fn > [ 93.187923] RIP: 0010:work_grab_pending+0x36/0x360 > [ 93.187925] Code: 41 54 53 48 83 ec 38 49 89 d7 89 34 24 48 89 fb 65 48 > 8b 05 cc eb 66 03 48 89 44 24 30 48 8d 47 48 48 89 44 24 08 eb 02 f3 90 > <9c> 8f 44 24 28 48 8b 44 24 28 fa 49 89 07 a9 00 02 00 00 74 05 e8 > [ 93.187927] RSP: 0000:ffffb51d9b59fc60 EFLAGS: 00000202 > [ 93.187928] RAX: 94f926a301ea6700 RBX: ffff9afc8231b418 RCX: > 0000000000000002 > [ 93.187928] RDX: 0000000000000006 RSI: ffff9afc81b70b20 RDI: > ffffffffa43975d7 > [ 93.187929] RBP: 0000000000000002 R08: 00000000000e00c8 R09: > ffffffffffffffff > [ 93.187930] R10: ffffffffa43974b2 R11: 0000000000000000 R12: > ffffffffa66e0848 > [ 93.187930] R13: ffffffffa439de1d R14: ffffffffa43974b2 R15: > ffffb51d9b59fcd0 > [ 93.187931] FS: 0000000000000000(0000) GS:ffff9b59d8812000(0000) > knlGS:0000000000000000 > [ 93.187932] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > [ 93.187932] CR2: ffff9bba9ffff000 CR3: 0000005c0b44c001 CR4: > 00000000007706f0 > [ 93.187933] PKRU: 55555554 > [ 93.187934] Call Trace: > [ 93.187934] > [ 93.187936] ? lock_release+0x100/0x340 > [ 93.187939] ? process_scheduled_works+0x26d/0x630 > [ 93.187941] __cancel_work+0x29/0xf0 > [ 93.187945] cancel_work_sync+0x18/0x80 > [ 93.187947] mei_cancel_work+0x19/0x40 > [ 93.187950] mei_me_probe+0x2bf/0x330 > [ 93.187952] ? process_scheduled_works+0x26d/0x630 > [ 93.187954] local_pci_probe+0x45/0x90 > [ 93.187957] work_for_cpu_fn+0x1b/0x30 > [ 93.187959] process_scheduled_works+0x2d3/0x630 > [ 93.187965] worker_thread+0x1e8/0x2f0 > [ 93.187969] kthread+0x21f/0x240 > [ 93.187972] ? __pfx_worker_thread+0x10/0x10 > [ 93.187974] ? lock_release+0x100/0x340 > [ 93.187975] ? ret_from_fork+0x2d/0x2b0 > [ 93.187979] ? __pfx_kthread+0x10/0x10 > [ 93.187982] ret_from_fork+0x197/0x2b0 > [ 93.187984] ? __pfx_kthread+0x10/0x10 > [ 93.187986] ret_from_fork_asm+0x1a/0x30 > [ 93.187994] >=20 > --- > Bisect log: >=20 > # bad: [3a8660878839faadb4f1a6dd72c3179c1df56787] Linux 6.18-rc1 > # good: [e5f0a698b34ed76002dc5cff3804a61c80233a7a] Linux 6.17 > git bisect start 'HEAD' 'v6.17' > # good: [58809f614e0e3f4e12b489bddf680bfeb31c0a20] Merge tag 'drm- > next-2025-10-01' of https://gitlab.freedesktop.org/drm/kernel > git bisect good 58809f614e0e3f4e12b489bddf680bfeb31c0a20 > # good: [bed0653fe2aacb0ca8196075cffc9e7062e74927] Merge tag 'iommu- > updates-v6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/lin= ux > git bisect good bed0653fe2aacb0ca8196075cffc9e7062e74927 > # bad: [6a74422b9710e987c7d6b85a1ade7330b1e61626] Merge tag > 'mips_6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux > git bisect bad 6a74422b9710e987c7d6b85a1ade7330b1e61626 > # good: [b66451723c45b791fd2824d1b8f62fe498989e23] Merge tag > 'platform-drivers-x86-v6.18-1' of > git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86 > git bisect good b66451723c45b791fd2824d1b8f62fe498989e23 > # good: [59697e061f6aec86d5738cd4752e16520f1d60dc] Merge tag > 'staging-6.18-rc1' of > git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging > git bisect good 59697e061f6aec86d5738cd4752e16520f1d60dc > # good: [561285d048053fec8a3d6d1e3ddc60df11c393a0] MAINTAINERS: > Support ROHM BD79112 ADC > git bisect good 561285d048053fec8a3d6d1e3ddc60df11c393a0 > # bad: [eafedbc7c050c44744fbdf80bdf3315e860b7513] rust_binder: add > Rust Binder driver > git bisect bad eafedbc7c050c44744fbdf80bdf3315e860b7513 > # good: [0c82fd9609a1e4bf1db84b0fd56bc3b2773da179] ibmasm: Replace > kzalloc() + copy_from_user() with memdup_user_nul() > git bisect good 0c82fd9609a1e4bf1db84b0fd56bc3b2773da179 > # bad: [ef509269d93d9832b366005f9626b44e38cc0ca7] Merge tag > 'counter-updates-for-6.18' of > ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/wbg/counter into char- > misc-next > git bisect bad ef509269d93d9832b366005f9626b44e38cc0ca7 > # bad: [ae0de6333368fd8c4535f5dbdfe1b2660438e089] slimbus: > messaging: fix "transfered"->"transferred" > git bisect bad ae0de6333368fd8c4535f5dbdfe1b2660438e089 > # bad: [7704e6be4ed2835832c445807cdcb2d56d8a8430] mei: hook > mei_device on class device > git bisect bad 7704e6be4ed2835832c445807cdcb2d56d8a8430 > # good: [ceda408c0d1d41094ad125332c6fb1d488e61c0c] misc: remove > ineffective WARN_ON() check from misc_deregister() > git bisect good ceda408c0d1d41094ad125332c6fb1d488e61c0c > # good: [76254bc489d39dae9a3427f0984fe64213d20548] cdx: Fix device > node reference leak in cdx_msi_domain_init > git bisect good 76254bc489d39dae9a3427f0984fe64213d20548 > # first bad commit: [7704e6be4ed2835832c445807cdcb2d56d8a8430] mei: > hook mei_device on class device Seems I've missed the error flow in probe (my test machines always have an = ME in a good state...). Below patch should fix the problem, can you confirm? From c58f311df60f26df2efe1e0f9fc523bfa4b93936 Mon Sep 17 00:00:00 2001 From: Alexander Usyskin Date: Sun, 2 Nov 2025 10:57:22 +0200 Subject: [PATCH] mei: fix error flow in probe MIME-Version: 1.0 Content-Type: text/plain; charset=3DUTF-8 Content-Transfer-Encoding: 8bit Dismantle class device last in probe error flow to avoid accessing freed me= mory like: [ 87.926774] WARNING: CPU: 9 PID: 518 at kernel/workqueue.c:4234 __flush_work+0x340/0x390 ... [ 87.926912] Workqueue: async async_run_entry_fn [ 87.926918] RIP: e030:__flush_work+0x340/0x390 [ 87.926923] Code: 26 9d 05 00 65 48 8b 15 26 3c ca 02 48 85 db 48 8b 04 24 48 89 54 24 58 0f 85 de fe ff ff e9 f6 fd ff ff 0f 0b e9 77 ff ff ff <0f> 0b e9 70 ff ff ff 0f 0b e9 19 ff ff ff e8 7d 8b 0e 01 48 89 de [ 87.926931] RSP: e02b:ffffc900412ebc00 EFLAGS: 00010246 [ 87.926936] RAX: 0000000000000000 RBX: ffff888103e55090 RCX: 00000000000= 00000 [ 87.926941] RDX: 000fffffffe00000 RSI: 0000000000000001 RDI: ffffc900412= ebc60 [ 87.926945] RBP: ffff888103e55090 R08: ffffffffc1266ec8 R09: ffff8881109= 076e8 [ 87.926949] R10: 0000000080040003 R11: 0000000000000000 R12: ffff888103e= 54000 [ 87.926953] R13: ffffc900412ebc18 R14: 0000000000000001 R15: 00000000000= 00000 [ 87.926962] FS: 0000000000000000(0000) GS:ffff888233238000(0000) knlGS:= 0000000000000000 [ 87.926967] CS: e030 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 87.926971] CR2: 00007e7923b32708 CR3: 00000001088df000 CR4: 00000000000= 50660 [ 87.926977] Call Trace: [ 87.926981] [ 87.926987] ? __call_rcu_common.constprop.0+0x11e/0x310 [ 87.926993] cancel_work_sync+0x5e/0x80 [ 87.926999] mei_cancel_work+0x19/0x40 [mei] [ 87.927051] mei_me_probe+0x273/0x2b0 [mei_me] [ 87.927060] local_pci_probe+0x45/0x90 [ 87.927066] pci_call_probe+0x5b/0x180 [ 87.927070] pci_device_probe+0x95/0x140 [ 87.927074] ? driver_sysfs_add+0x57/0xc0 [ 87.927079] really_probe+0xde/0x340 [ 87.927083] ? pm_runtime_barrier+0x54/0x90 [ 87.927087] __driver_probe_device+0x78/0x110 [ 87.927092] driver_probe_device+0x1f/0xa0 [ 87.927095] __driver_attach_async_helper+0x5e/0xe0 [ 87.927100] async_run_entry_fn+0x34/0x130 [ 87.927104] process_one_work+0x18d/0x340 [ 87.927108] worker_thread+0x256/0x3a0 [ 87.927111] ? __pfx_worker_thread+0x10/0x10 [ 87.927115] kthread+0xfc/0x240 [ 87.927120] ? __pfx_kthread+0x10/0x10 [ 87.927124] ? __pfx_kthread+0x10/0x10 [ 87.927127] ret_from_fork+0xf5/0x110 [ 87.927132] ? __pfx_kthread+0x10/0x10 [ 87.927136] ret_from_fork_asm+0x1a/0x30 [ 87.927141] Reported-by: Marek Marczykowski-G=C3=B3recki Reported-by: Guenter Roeck Fixes: 7704e6be4ed2 ("mei: hook mei_device on class device") Signed-off-by: Alexander Usyskin Tested-by: Guenter Roeck --- drivers/misc/mei/pci-me.c | 13 ++++++------- drivers/misc/mei/pci-txe.c | 13 ++++++------- drivers/misc/mei/platform-vsc.c | 11 +++++------ 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c index b017ff29dbd1..73cad914be9f 100644 --- a/drivers/misc/mei/pci-me.c +++ b/drivers/misc/mei/pci-me.c @@ -223,6 +223,10 @@ static int mei_me_probe(struct pci_dev *pdev, const st= ruct pci_device_id *ent) hw->mem_addr =3D pcim_iomap_table(pdev)[0]; hw->read_fws =3D mei_me_read_fws; =20 + err =3D mei_register(dev, &pdev->dev); + if (err) + goto end; + pci_enable_msi(pdev); =20 hw->irq =3D pdev->irq; @@ -237,13 +241,9 @@ static int mei_me_probe(struct pci_dev *pdev, const st= ruct pci_device_id *ent) if (err) { dev_err(&pdev->dev, "request_threaded_irq failure. irq =3D %d\n", pdev->irq); - goto end; + goto deregister; } =20 - err =3D mei_register(dev, &pdev->dev); - if (err) - goto release_irq; - if (mei_start(dev)) { dev_err(&pdev->dev, "init hw failure.\n"); err =3D -ENODEV; @@ -283,11 +283,10 @@ static int mei_me_probe(struct pci_dev *pdev, const s= truct pci_device_id *ent) return 0; =20 deregister: - mei_deregister(dev); -release_irq: mei_cancel_work(dev); mei_disable_interrupts(dev); free_irq(pdev->irq, dev); + mei_deregister(dev); end: dev_err(&pdev->dev, "initialization failed.\n"); return err; diff --git a/drivers/misc/mei/pci-txe.c b/drivers/misc/mei/pci-txe.c index 06b55a891c6b..98d1bc2c7f4b 100644 --- a/drivers/misc/mei/pci-txe.c +++ b/drivers/misc/mei/pci-txe.c @@ -87,6 +87,10 @@ static int mei_txe_probe(struct pci_dev *pdev, const str= uct pci_device_id *ent) hw =3D to_txe_hw(dev); hw->mem_addr =3D pcim_iomap_table(pdev); =20 + err =3D mei_register(dev, &pdev->dev); + if (err) + goto end; + pci_enable_msi(pdev); =20 /* clear spurious interrupts */ @@ -106,13 +110,9 @@ static int mei_txe_probe(struct pci_dev *pdev, const s= truct pci_device_id *ent) if (err) { dev_err(&pdev->dev, "mei: request_threaded_irq failure. irq =3D %d\n", pdev->irq); - goto end; + goto deregister; } =20 - err =3D mei_register(dev, &pdev->dev); - if (err) - goto release_irq; - if (mei_start(dev)) { dev_err(&pdev->dev, "init hw failure.\n"); err =3D -ENODEV; @@ -145,11 +145,10 @@ static int mei_txe_probe(struct pci_dev *pdev, const = struct pci_device_id *ent) return 0; =20 deregister: - mei_deregister(dev); -release_irq: mei_cancel_work(dev); mei_disable_interrupts(dev); free_irq(pdev->irq, dev); + mei_deregister(dev); end: dev_err(&pdev->dev, "initialization failed.\n"); return err; diff --git a/drivers/misc/mei/platform-vsc.c b/drivers/misc/mei/platform-vs= c.c index 288e7b72e942..9787b9cee71c 100644 --- a/drivers/misc/mei/platform-vsc.c +++ b/drivers/misc/mei/platform-vsc.c @@ -362,28 +362,27 @@ static int mei_vsc_probe(struct platform_device *pdev) =20 ret =3D mei_register(mei_dev, dev); if (ret) - goto err_dereg; + goto err; =20 ret =3D mei_start(mei_dev); if (ret) { dev_err_probe(dev, ret, "init hw failed\n"); - goto err_cancel; + goto err; } =20 pm_runtime_enable(mei_dev->parent); =20 return 0; =20 -err_dereg: - mei_deregister(mei_dev); - -err_cancel: +err: mei_cancel_work(mei_dev); =20 vsc_tp_register_event_cb(tp, NULL, NULL); =20 mei_disable_interrupts(mei_dev); =20 + mei_deregister(mei_dev); + return ret; } =20 --=20 2.43.0