From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from enterprise02.smtp.diehl.com (enterprise02.smtp.diehl.com [193.201.238.220]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4FA3D1CAA86 for ; Thu, 20 Feb 2025 16:45:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.201.238.220 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740069962; cv=none; b=uSNy4R60n2NQEaaC7eGOF92tvv5WSF9pe4PHPmxQxCvP1svzWQoKjmYix42Rk5XBLzZ4DwOK1wfNWVb5neUzlQUnGlegays7ebFVvDofeDZzt3RWf0BAAIepcZWCzmPDDesr6BDnCfPK6GFgPXfH2Vi8AddLmIMI+Rirxr7xZ+o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740069962; c=relaxed/simple; bh=z6dAeimBvxBVHVvMvowZryUjupj1ec3ZOb9n2rZvKZY=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=iKk3BBB8D2kldJt4km37bkCg0rhkOr9OS00yaLTmjokcpMdkiFFCUFeliSkefNi23C+xH4htwipqSjEiyirdXRjvc9G1gQs+M/T4/IwEw+ZaPyHcGjtkSFN8hYfdoEEFv0+ZCX0rHECWVaYK3V+2uORQ4UIV2bqNND7PwtzOaBw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=diehl.com; spf=pass smtp.mailfrom=diehl.com; dkim=pass (2048-bit key) header.d=diehl.com header.i=@diehl.com header.b=kvjJYLPs; arc=none smtp.client-ip=193.201.238.220 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=diehl.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=diehl.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=diehl.com header.i=@diehl.com header.b="kvjJYLPs" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=diehl.com; i=@diehl.com; q=dns/txt; s=default; t=1740069959; x=1771605959; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=z6dAeimBvxBVHVvMvowZryUjupj1ec3ZOb9n2rZvKZY=; b=kvjJYLPseb4dJKBrUZZ8BWKJubg8j5Y6ow1ATgcpZcmVlJHBaNazK04X CxMjT7K3rUpOPSLkwT9h0OFqVPofpsOZ1/1Wl/DcO5ZHFDtNzs8pY9kkF bJMHsnrp94luicL3se5O1JJdj93uf0ET8RfH8kT5UZpW54Jp1oqzevlGF VFsnkUWfuJSeIYAxDbR9kFD+QwEH68bbXA2jgjhaXLy739RatRhnxKw6G eepMo921UJTM6AKqUoihnM7ubBdn2L1Zz2h+3nmmvmgvfQLmSrAPOBCk+ h/bhYceXIQF96VtrZfarVy3rDzCZlqrMcLD7auqMMH14aSN4bf7vGjbeF w==; X-CSE-ConnectionGUID: nO4+9QtjTbaHC2lvlW0DFw== X-CSE-MsgGUID: gMlnnf+SQiu4F6PjwIrDKg== X-ThreatScanner-Verdict: Negative IronPort-Data: A9a23:mNiOQ6OOI0zeDILvrR3OlsFynXyQoLVcMsEvi/4bfWQNrUp00WcPy jceC2+HO/+DYGD0c9kkaY+1/BwHv5+DmIM1SwZtpSBmQkwRpJueD7x1DKtS0wC6c5efFhI3t 63yTvGacajYm1eF/k/F3oDJ9Cc6jefQAOKhVIYoAwgpLSd8UiAtlBl/rOAwh49skLCRDhiE0 T/Ii5S31GSNhXgtaQr414rZ8Eky5K6o4GtE1rADTasjUGH2xiB94K03dfnZw0vQGuF8AuO8T uDf+7C1lkux1wstEN6sjoHgeUQMRLPIVSDW4paBc/H/6vTqjnVaPpcTbJLwW28O49m6t4kZJ OF2iHCFYVxB0psgOggqe0Iw/ylWZcWq8VJcSJS1mZT7I0buKxMAzxjyZa2f0EJxFutfWAlzG fIkxD8laDffxLOP3LCHQOBMrZ4nMs3UZK8xpSQ1pd3ZJa5OrZHreY7mzpp99RYU3ZgIFvHEf 4wVaDdvaFLLZBgn1lU/Ucp4xbrzwCK5KmYAwL6WjfNfD2z7wAF30aOrN8HJd8aOTMNZtkqZq 2LCuW/+B3n2MfTGkWXYqyv03rCncSXTV6cWEru2tcVTgUDP6DIrCgI3T3eYrqzs4qK5c5cFQ 6AOwQIhrK83+VC3T/HwWRu1rXiCs1gXXN84O+k77hydj6nZ+QCUAkAaQTNbLt8rrsk7QXotz FDhoj/yLWU39uTIEjTGsO7P9VteJBQoEIPLXgdcJSNt3jUpiNhbYs7nJjq7LJOIsw== IronPort-HdrOrdr: A9a23:9qzG8Kz74aXIuu5ZBo5DKrPw1r1zdoMgy1knxilNoNJuA7alfq GV7YkmPHrP4gr5N0tQ/uxoVJPwJU80sKQFhLX5Xo3SPzUO2lHYVb2KhLGKq1bd8m/Fh4xgPM xbAtBD4bPLfCNHpPe/zw+iDd46zdWLtIyuj/zP1mpgQGhRB51I3kNWDkK1HkVqWBJLH/MCZf yhz/sCiT7lV3p/VKqG77o+MNQrZeenqHsrW3877tcciDWzsQ== X-Talos-CUID: =?us-ascii?q?9a23=3AcYObV2v8auMn9Vp/1n3GRr346IsjVSGenU7MIXO?= =?us-ascii?q?yAEZCErmLTWDI1I17xp8=3D?= X-Talos-MUID: 9a23:wrrIbgv3dtEkvWv+dM2nixRmMsFmoJ+XCV1Rv8s+udalLwBTNGLI X-IronPort-AV: E=Sophos;i="6.13,302,1732575600"; d="scan'208";a="107511007" From: Denis OSTERLAND-HEIM To: Rodolfo Giometti CC: "linux-kernel@vger.kernel.org" Subject: RE: Re: [PATCH] pps: add epoll support Thread-Topic: Re: [PATCH] pps: add epoll support Thread-Index: AQHbg7blg/Xn0W8Pv0aHl6Wb05bp5Q== Date: Thu, 20 Feb 2025 16:45:49 +0000 Message-ID: <456070491e3642e9a6017ff7d3bb982b@diehl.com> References: <8baae1732dfc47759687e7537cac57ad@diehl.com> <09e91710-c1db-415f-b010-b27a3712fb13@enneenne.com> In-Reply-To: <09e91710-c1db-415f-b010-b27a3712fb13@enneenne.com> Accept-Language: de-DE, en-US Content-Language: de-DE X-MS-Has-Attach: X-MS-TNEF-Correlator: x-disclaimerprocessed: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-GBS-PROC: ygQ48MzXEw9pRTxtaiHdsYiZgvHdJdSGaNWCvnvBPdngsZMFCXBsYV5LALRr9Zy3o8pV8kjeNQzctxDJimLrGMmswjSc75jKhhQ3E3/MVu8= X-GBS-PROCJOB: GRNDRZ0khfYEnE5FI2ztCorqhatbPsdgsnAcmbvV3tKC08HKqIAGRaC7ZSM0wfMl SGksDQoNClRoYW5rcyBmb3IgdGhlIGZhc3QgYW5zd2VyLg0KDQotLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KRnJvbTogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAZW5uZWVubmUuY29tPg0K U2VudDogVGh1cnNkYXksIEZlYnJ1YXJ5IDIwLCAyMDI1IDk6NTEgQU0NClRvOiBEZW5pcyBPU1RF UkxBTkQtSEVJTSA8ZGVuaXMub3N0ZXJsYW5kQGRpZWhsLmNvbT4NCkNjOiBsaW51eC1rZXJuZWxA dmdlci5rZXJuZWwub3JnDQpTdWJqZWN0OiBbRVhUXSBSZTogW1BBVENIXSBwcHM6IGFkZCBlcG9s bCBzdXBwb3J0DQoNCj4gQ2FuIHlvdSBleHBsYWluIGl0IGEgYml0IGJldHRlcj8NCkkgd2lsbCBk byBteSBiZXN0Lg0KDQpJbiBhbiBhcHBsaWNhdGlvbiwgdGhhdCBoYXMgbW9yZSB0byBkbyB0aGFu IGp1c3QgZGVhbGluZyB3aXRoIG9uZSBQUFMgZGV2aWNlLA0KdG8gdXNlIFBQU19GRVRDSCB3aXRo IGEgdGltZW91dCB1bnRpbCBuZXh0IGV2ZW50LCB5b3UgbmVlZCBhIHRocmVhZCB3aGljaCBjYW4g c2xlZXAuDQpJIHdvdWxkIHJlYWxseSBsaWtlIHRvIGF2b2lkIHRocmVhZHMgYW5kIHRoZSByZXN1 bHRpbmcgc3luY2hyb25pemF0aW9uIGNvbXBsZXhpdHkuDQoNCkFsdGVybmF0aXZlIGlzIHRvIGZl dGNoIHRoZSBjdXJyZW50IGFzc2VydCB2YWx1ZSBpbiBhdCBsZWFzdCB0d2ljZSB0aGUgZXhwZWN0 ZWQgZmVxdWVuY3kuDQpUaGlzIHdvdWxkIGRlZmluZXRseSB3b3JrLCBidXQgZXBvbGwgaXMgdGhl IG1vcmUgZWZmaWNlbnQgd2F5IHRvIGRvLg0KDQpXaXRob3V0IGVwb2xsIGluIG9uZSB0aHJlYWQ6 DQpgYGBjDQojaW5jbHVkZSA8c3RkbGliLmg+DQojaW5jbHVkZSA8c3RkaW8uaD4NCiNpbmNsdWRl IDxzdHJpbmcuaD4NCiNpbmNsdWRlIDxmY250bC5oPg0KI2luY2x1ZGUgPHVuaXN0ZC5oPg0KI2lu Y2x1ZGUgPHN5cy9pb2N0bC5oPg0KI2luY2x1ZGUgPGxpbnV4L3Bwcy5oPg0KDQpzdHJ1Y3QgcGVy X3BwcyB7DQogICAgaW50IGRldl9mZDsNCiAgICBzdHJ1Y3QgcHBzX2ZkYXRhIGZkYXRhOw0KICAg IHVuc2lnbmVkIGludCBsYXN0X2Fzc2VydDsNCn07DQoNCmludCBtYWluKGludCBhcmdjLCBjb25z dCBjaGFyKiBhcmd2W10pIHsNCiAgICBpbnQgcmV0ID0gMDsNCiAgICBzdHJ1Y3QgcGVyX3BwcyBp bnN0YW5jZXNbXSA9IHsNCiAgICAgICAgeyAuZGV2X2ZkID0gb3BlbigoYXJnYyA+IDEpID8gYXJn dlsxXSA6ICIvZGV2L3BwczAiLCBPX1JET05MWSkgfSwNCiAgICAgICAgeyAuZGV2X2ZkID0gb3Bl bigoYXJnYyA+IDIpID8gYXJndlsyXSA6ICIvZGV2L3BwczEiLCBPX1JET05MWSkgfQ0KICAgIH07 DQogICAgaWYgKGluc3RhbmNlc1swXS5kZXZfZmQgPCAwIHx8IGluc3RhbmNlc1sxXS5kZXZfZmQg PCAwKSB7DQogICAgICAgIHBlcnJvcigiZmFpbGVkIHRvIG9wZW4gZGV2Iik7DQogICAgICAgIHJl dCA9IDE7DQogICAgICAgIGdvdG8gb3V0Ow0KICAgIH0NCg0KICAgIGZvciAoaW50IGxvb3BzID0g MTA7IC0tbG9vcHM7KSB7DQogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjsgKytpKSB7DQog ICAgICAgICAgICBpZiAoaW9jdGwoaW5zdGFuY2VzW2ldLmRldl9mZCwgUFBTX0ZFVENILCAmaW5z dGFuY2VzW2ldLmZkYXRhKSA8IDApIHsNCiAgICAgICAgICAgICAgICBwZXJyb3IoImZhaWxlZCB0 byBmZXRjaCBkYXRhIik7DQogICAgICAgICAgICAgICAgcmV0ID0gMTsNCiAgICAgICAgICAgICAg ICBnb3RvIG91dDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGluc3RhbmNlc1tp XS5sYXN0X2Fzc2VydCAhPSBpbnN0YW5jZXNbaV0uZmRhdGEuaW5mby5hc3NlcnRfc2VxdWVuY2Up IHsNCiAgICAgICAgICAgICAgICBpbnN0YW5jZXNbaV0ubGFzdF9hc3NlcnQgPSBpbnN0YW5jZXNb aV0uZmRhdGEuaW5mby5hc3NlcnRfc2VxdWVuY2U7DQogICAgICAgICAgICAgICAgcHJpbnRmKA0K ICAgICAgICAgICAgICAgICAgICAiYXNzZXJ0OiAldVxudGltZTogJWxsZC4lMDlkXG4iLA0KICAg ICAgICAgICAgICAgICAgICBpbnN0YW5jZXNbaV0uZmRhdGEuaW5mby5hc3NlcnRfc2VxdWVuY2Us DQogICAgICAgICAgICAgICAgICAgIGluc3RhbmNlc1tpXS5mZGF0YS5pbmZvLmFzc2VydF90dS5z ZWMsDQogICAgICAgICAgICAgICAgICAgIGluc3RhbmNlc1tpXS5mZGF0YS5pbmZvLmFzc2VydF90 dS5uc2VjDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICB9DQog ICAgICAgIHVzbGVlcCgzMDAwMDApOw0KICAgIH0NCg0Kb3V0Og0KICAgIGlmIChpbnN0YW5jZXNb MF0uZGV2X2ZkID49IDApDQogICAgICAgIGNsb3NlKGluc3RhbmNlc1swXS5kZXZfZmQpOw0KICAg IGlmIChpbnN0YW5jZXNbMV0uZGV2X2ZkID49IDApDQogICAgICAgIGNsb3NlKGluc3RhbmNlc1sx XS5kZXZfZmQpOw0KICAgIHJldHVybiByZXQ7DQp9DQpgYGANCg0KU3lzY2FsbHMgYXJlIHByZXR0 eSBleHBlbnNpdmUgYW5kIGVwb2xsIGFsbG93cyB1c2UgdG8gcmVkdWNlIHRoZW0uDQoNCmBgYGMN CiNpbmNsdWRlIDxzdGRpby5oPg0KI2luY2x1ZGUgPHN0cmluZy5oPg0KI2luY2x1ZGUgPGZjbnRs Lmg+DQojaW5jbHVkZSA8dW5pc3RkLmg+DQojaW5jbHVkZSA8c3lzL2lvY3RsLmg+DQojaW5jbHVk ZSA8bGludXgvcHBzLmg+DQojaW5jbHVkZSA8cG9sbC5oPg0KDQppbnQgbWFpbihpbnQgYXJnYywg Y29uc3QgY2hhciogYXJndltdKSB7DQogICAgaW50IHJldCA9IDA7DQogICAgc3RydWN0IHBvbGxm ZCBpbnN0YW5jZXNbXSA9IHsNCiAgICAgICAgeyAuZmQgPSBvcGVuKChhcmdjID4gMSkgPyBhcmd2 WzFdIDogIi9kZXYvcHBzMCIsIE9fUkRPTkxZKSwgLmV2ZW50cyA9IFBPTExJTnxQT0xMRVJSICwg LnJldmVudHMgPSAwIH0sDQogICAgICAgIHsgLmZkID0gb3BlbigoYXJnYyA+IDIpID8gYXJndlsy XSA6ICIvZGV2L3BwczEiLCBPX1JET05MWSksIC5ldmVudHMgPSBQT0xMSU58UE9MTEVSUiAsIC5y ZXZlbnRzID0gMCB9DQogICAgfTsNCiAgICBpZiAoaW5zdGFuY2VzWzBdLmZkIDwgMCB8fCBpbnN0 YW5jZXNbMV0uZmQgPCAwKSB7DQogICAgICAgIHBlcnJvcigiZmFpbGVkIHRvIG9wZW4gZGV2Iik7 DQogICAgICAgIHJldCA9IDE7DQogICAgICAgIGdvdG8gb3V0Ow0KICAgIH0NCg0KICAgIGZvciAo aW50IGxvb3BzID0gNDsgLS1sb29wczspIHsNCiAgICAgICAgaWYocG9sbChpbnN0YW5jZXMsIDIs IDIwMDAvKm1zKi8pKSB7DQogICAgICAgICAgICBzdHJ1Y3QgcHBzX2ZkYXRhIGZkYXRhOw0KICAg ICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyArK2kpIHsNCiAgICAgICAgICAgICAgICBp ZiAoKGluc3RhbmNlc1tpXS5yZXZlbnRzICYgUE9MTElOKSAhPSBQT0xMSU4pDQogICAgICAgICAg ICAgICAgICAgIGNvbnRpbnVlOw0KDQogICAgICAgICAgICAgICAgaWYgKGlvY3RsKGluc3RhbmNl c1tpXS5mZCwgUFBTX0ZFVENILCAmZmRhdGEpIDwgMCkgew0KICAgICAgICAgICAgICAgICAgICBw ZXJyb3IoImZhaWxlZCB0byBmZXRjaCBkYXRhIik7DQogICAgICAgICAgICAgICAgICAgIHJldCA9 IDE7DQogICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Ow0KICAgICAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgICAgIHByaW50ZigNCiAgICAgICAgICAgICAgICAgICAgImFzc2VydDogJXVc bnRpbWU6ICVsbGQuJTA5ZFxuIiwNCiAgICAgICAgICAgICAgICAgICAgZmRhdGEuaW5mby5hc3Nl cnRfc2VxdWVuY2UsDQogICAgICAgICAgICAgICAgICAgIGZkYXRhLmluZm8uYXNzZXJ0X3R1LnNl YywNCiAgICAgICAgICAgICAgICAgICAgZmRhdGEuaW5mby5hc3NlcnRfdHUubnNlYw0KICAgICAg ICAgICAgICAgICk7DQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAg ICBwcmludGYoInRpbWUtb3V0XG4iKTsNCiAgICAgICAgfQ0KICAgIH0NCg0Kb3V0Og0KICAgIGlm IChpbnN0YW5jZXNbMF0uZmQgPj0gMCkNCiAgICAgICAgY2xvc2UoaW5zdGFuY2VzWzBdLmZkKTsN CiAgICBpZiAoaW5zdGFuY2VzWzFdLmZkID49IDApDQogICAgICAgIGNsb3NlKGluc3RhbmNlc1sx XS5mZCk7DQogICAgcmV0dXJuIHJldDsNCn0NCmBgYA0KDQo+IFJGQzI3ODMgc3RhdGVzIHRoYXQg dG8gYWNjZXNzIHRvIFBQUyB0aW1lc3RhbXBzIHdlIHNob3VsZCB1c2UgdGhlDQo+IHRpbWVfcHBz X2ZldGNoKCkgZnVuY3Rpb24sIHdoZXJlIHdlIG1heSByZWFkOg0KPg0KPiAzLjQuMyBOZXcgZnVu Y3Rpb25zOiBhY2Nlc3MgdG8gUFBTIHRpbWVzdGFtcHMNCj4NCj4gICAgVGhlIEFQSSBpbmNsdWRl cyBvbmUgZnVuY3Rpb24gdGhhdCBnaXZlcyBhcHBsaWNhdGlvbnMgYWNjZXNzIHRvIFBQUw0KPiAg ICB0aW1lc3RhbXBzLiAgQXMgYW4gaW1wbGVtZW50YXRpb24gb3B0aW9uLCB0aGUgYXBwbGljYXRp b24gbWF5IHJlcXVlc3QNCj4gICAgdGhlIEFQSSB0byBibG9jayB1bnRpbCB0aGUgbmV4dCB0aW1l c3RhbXAgaXMgY2FwdHVyZWQuICAoVGhlIEFQSSBkb2VzDQo+ICAgIG5vdCBkaXJlY3RseSBzdXBw b3J0IHRoZSB1c2Ugb2YgdGhlIHNlbGVjdCgpIG9yIHBvbGwoKSBzeXN0ZW0gY2FsbHMNCj4gICAg dG8gd2FpdCBmb3IgUFBTIGV2ZW50cy4pDQo+DQo+IEhvdyBkbyB5b3UgdGhpbmsgdG8gdXNlIHRo aXMgbmV3IHNlbGVjdCgpL3BvbGwoKSBzdXBwb3J0IHdpdGhvdXQgYnJlYWtpbmcgdGhlDQo+IFJG QzI3ODMgY29tcGxpYW5jZT8NClRvIG1lIFJGQyByZWFkcyBsaWtlIHRoZSBzcGNpZmljYXRpb24g b2YgcHBzLXRvb2xzL3RpbWVwcHMuaCBhbmQgbm90IHRoZSBvbmUgZm9yIHRoZSBjaGFyIGRldmlj ZS4NCg0KMy40LjEgTmV3IGZ1bmN0aW9uczogb2J0YWluaW5nIFBQUyBzb3VyY2VzDQouLi4NCiAg IFRoZSBkZWZpbml0aW9uIG9mIHdoYXQgc3BlY2lhbCBmaWxlcyBhcmUgYXBwcm9wcmlhdGUgZm9y IHVzZSB3aXRoIHRoZQ0KICAgUFBTIEFQSSBpcyBvdXRzaWRlIHRoZSBzY29wZSBvZiB0aGlzIHNw ZWNpZmljYXRpb24sIGFuZCBtYXkgdmFyeQ0KICAgYmFzZWQgb24gYm90aCBvcGVyYXRpbmcgc3lz dGVtIGltcGxlbWVudGF0aW9uLCBhbmQgbG9jYWwgc3lzdGVtDQogICBjb25maWd1cmF0aW9uLg0K DQpUbyBtZSAiVGhlIEFQSSBkb2VzIG5vdCBkaXJlY3RseSBzdXBwb3J0IHRoZSB1c2Ugb2YgdGhl IHNlbGVjdCgpIG9yIHBvbGwoKSBzeXN0ZW0gY2FsbHMiIHNpbXBseSBtZWFuczoNCiAgIHRoZXJl IGlzIG5vIHdyYXBwZXIgZnVuY3Rpb24gdGhhdCBjYWxscyBzZWxlY3QoKSBvciBwb2xsKCkgZm9y IHlvdQ0KDQpJIGRvIG5vdCBzZWUgd2h5IGFuIGFkZGl0aW9uYWwgZnVuY3Rpb24gb2YgdGhlIHVu ZGVybHlpbmcgY2hhcmFjdGVyIGRldmljZSB3b3VsZCBicmVhayB0aGUgQVBJLg0KWW91IG1heSBq dXN0IGRvIG5vdCB1c2UgaXQgYW5kIGV2ZXJ5dGhpbmcgd29ya3MgbGlrZSBiZWZvcmUuDQpCdXQg SSBzZWUgeW91ciBwb2ludC4NCklmIHRoZSBjaGFyIGRldiBpbnRlcmZhY2UgaXMgbWVudCB0byBi ZSB0aGUgUkZDIGludGVyZmFjZSBvbmx5LCB0aGVyZSBpcyBubyBuZWVkIHRvIHN1cHBvcnQgZXBv bGwuDQpNYXliZSBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gYWRkIGVwb2xsIHN1cHBvcnQgdG8gc3lz ZnMgYXNzZXJ0L2NsZWFyPw0KDQo+IEFsc28sIGlmIHdlIGRlY2lkZSB0byBhZGQgdGhpcyBzdXBw b3J0LCB3ZSBzaG91bGQgYWxzbyBjb25zaWRlciBhZGRpbmcgdGhlDQo+IFBQU19DQU5QT0xMIG1v ZGUgYml0IGRlZmluaXRpb24gKHNlZQ0KPiBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMv cmZjMjc4My5odG1sI3NlY3Rpb24tMy4zKSwgYW5kIHByb3ZpbmcgcHJvcGVyDQo+IGNvZGUgaW4g b3JkZXIgdG8gc2hvdyBob3cgd2UgY2FuIHVzZSBvciBub3QgdGhpcyBuZXcgZnVuY3Rpb25hbGl0 eS4NCg0KPiA+IEBAIC0zMDAsNyArMzEyLDEzIEBAIHN0YXRpYyBpbnQgcHBzX2NkZXZfb3Blbihz dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkNCj4gPiAgIHsNCj4gPiAgIHN0 cnVjdCBwcHNfZGV2aWNlICpwcHMgPSBjb250YWluZXJfb2YoaW5vZGUtPmlfY2RldiwNCj4gPiAg IHN0cnVjdCBwcHNfZGV2aWNlLCBjZGV2KTsNCj4gPiAtZmlsZS0+cHJpdmF0ZV9kYXRhID0gcHBz Ow0KPiA+ICtzdHJ1Y3QgcHBzX2NvbnRleHQgKmN0eCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBw cHNfY29udGV4dCksIEdGUF9LRVJORUwpOw0KPiA+ICsNCj4gPiAraWYgKHVubGlrZWx5KFpFUk9f T1JfTlVMTF9QVFIoY3R4KSkpDQo+ID4gK3JldHVybiAtRU5PTUVNOw0KPiA+ICtmaWxlLT5wcml2 YXRlX2RhdGEgPSBjdHg7DQo+ID4gK2N0eC0+cHBzID0gcHBzOw0KPiA+ICtjdHgtPmV2ID0gcHBz LT5sYXN0X2V2Ow0KPg0KPiBEb2luZyBzbywgd2UgYWx3YXlzIG1pc3MgdGhlIGZpcnN0IGV2ZW50 Li4uIG1heWJlIGNhbiB3ZSBkcm9wIHRoaXMgc2V0dGluZyBhbmQNCj4gbGVhdmluZyBjdHgtPmV2 IHNldCB0byB6ZXJvPw0KV2VsbCwgSSBzZWUgdHdvIHVzZSBjYXNlczoNCjEuIG9wZW4oKSwgaW9j dGwoKSB0byBnZXQgY3VycmVudCB2YWx1ZSwgZXBvbGwoKSB0byB3YWl0IGZvciBuZXh0IGV2ZW50 LCBpb2N0bCgpIHRvIGdldCB0aGUgbmV4dCB2YWx1ZQ0KMi4gb3BlbigpLCBlcG9sbCgpIHdhaXQg Zm9yIG5leHQgZXZlbnQgb3IgdGltZS1vdXQgdG8gc2VlIGlmIHBwcyBpcyAiYWxpdmUiDQpJIGRv IG5vdCBzZWUgdGhlIGNhc2UgdGhhdCB3ZSBjb21wbGV0ZWx5IG1pc3Mgb25lLg0KDQpSZWdhcmRz LCBEZW5pcw0KDQo+IENpYW8sDQo+DQo+IFJvZG9sZm8NCj4NCj4gLS0NCj4gR05VL0xpbnV4IFNv bHV0aW9ucyAgICAgICAgICAgICAgICAgIGUtbWFpbDogZ2lvbWV0dGlAZW5uZWVubmUuY29tDQo+ IExpbnV4IERldmljZSBEcml2ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIGdpb21ldHRpQGxp bnV4Lml0DQo+IEVtYmVkZGVkIFN5c3RlbXMgICAgICAgICAgICAgICAgICAgICBwaG9uZTogICsz OSAzNDkgMjQzMjEyNw0KPiBVTklYIHByb2dyYW1taW5nDQpEaWVobCBNZXRlcmluZyBHbWJILCBE b25hdXN0cmFzc2UgMTIwLCA5MDQ1MSBOdWVybmJlcmcNClNpdHogZGVyIEdlc2VsbHNjaGFmdDog QW5zYmFjaCwgUmVnaXN0ZXJnZXJpY2h0OiBBbnNiYWNoIEhSQiA2OQ0KR2VzY2hhZWZ0c2Z1ZWhy ZXI6IERyLiBDaHJpc3RvZiBCb3NiYWNoIChTcHJlY2hlciksIERpcGwuLURvbG0uIEFubmV0dGUg R2V1dGhlciwgRGlwbC4tS2ZtLiBSZWluZXIgRWRlbCwgSmVhbi1DbGF1ZGUgTHV0dHJpbmdlcg0K DQpCaXR0ZSBkZW5rZW4gU2llIGFuIGRpZSBVbXdlbHQsIGJldm9yIFNpZSBkaWVzZSBFLU1haWwg ZHJ1Y2tlbi4gRGllc2UgRS1NYWlsIGthbm4gdmVydHJhdWxpY2hlIEluZm9ybWF0aW9uZW4gZW50 aGFsdGVuLiBTb2xsdGVuIGRpZSBpbiBkaWVzZXIgRS1NYWlsIGVudGhhbHRlbmVuIEluZm9ybWF0 aW9uZW4gbmljaHQgZsO8ciBTaWUgYmVzdGltbXQgc2VpbiwgaW5mb3JtaWVyZW4gU2llIGJpdHRl IHVudmVyenVlZ2xpY2ggZGVuIEFic2VuZGVyIHBlciBFLU1haWwgdW5kIGxvZXNjaGVuIFNpZSBk aWVzZSBFLU1haWwgaW4gSWhyZW0gU3lzdGVtLiBKZWRlIHVuYmVyZWNodGlndGUgRm9ybSBkZXIg UmVwcm9kdWt0aW9uLCBCZWthbm50Z2FiZSwgQWVuZGVydW5nLCBWZXJ0ZWlsdW5nIHVuZC9vZGVy IFB1Ymxpa2F0aW9uIGRpZXNlciBFLU1haWwgaXN0IHN0cmVuZ3N0ZW5zIHVudGVyc2FndC4gSW5m b3JtYXRpb25lbiB6dW0gRGF0ZW5zY2h1dHogZmluZGVuIFNpZSBhdWYgdW5zZXJlciBIb21lcGFn ZTxodHRwczovL3d3dy5kaWVobC5jb20vbWV0ZXJpbmcvZGUvaW1wcmVzc3VtLXVuZC1yZWNodGxp Y2hlLWhpbndlaXNlLz4uDQoNCkJlZm9yZSBwcmludGluZywgdGhpbmsgYWJvdXQgZW52aXJvbm1l bnRhbCByZXNwb25zaWJpbGl0eS5UaGlzIG1lc3NhZ2UgbWF5IGNvbnRhaW4gY29uZmlkZW50aWFs IGluZm9ybWF0aW9uLiBJZiB5b3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHJlY2VpdmUgdGhpcyBp bmZvcm1hdGlvbiBwbGVhc2UgYWR2aXNlIHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkgYnkgcmVwbHkg ZS1tYWlsIGFuZCBkZWxldGUgdGhpcyBtZXNzYWdlIHdpdGhvdXQgbWFraW5nIGFueSBjb3BpZXMu IEFueSBmb3JtIG9mIHVuYXV0aG9yaXplZCB1c2UsIHB1YmxpY2F0aW9uLCByZXByb2R1Y3Rpb24s IGNvcHlpbmcgb3IgZGlzY2xvc3VyZSBvZiB0aGUgZS1tYWlsIGlzIG5vdCBwZXJtaXR0ZWQuIElu Zm9ybWF0aW9uIGFib3V0IGRhdGEgcHJvdGVjdGlvbiBjYW4gYmUgZm91bmQgb24gb3VyIGhvbWVw YWdlPGh0dHBzOi8vd3d3LmRpZWhsLmNvbS9tZXRlcmluZy9lbi9kYXRhLXByb3RlY3Rpb24vPi4N Cg==