From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=162.243.164.118 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1792676566; b=DcX0z6ZxQsKxzRZUSLq8Sjt7eGQSvdvYSlzEFInvG/aRxLMyd1NHPnJacan/pGclWbG5 BlC/EZAlTCa52UlWBua4jEhgEoXTqtLWpMd4xGT0LGdY8b6d3/COF14/m1E6BKgR8mGao EdW6vOKvhJa8KDqyNVtkE1POAePzvCwfzUz6hUkr8B1ZDwfqLq67j300v73V8pkaxH2Jz HyRpp03el1wQYlCeVGxhy85HlIIJLW6TZ/LE09JpuohF86LInvua2JsbbPwow3lRv91Po /F76W87j0+UNr4KuJg9Oo97qp/4xzVaSjbKqENC5wXZj6eUZJRC7EqPKAQnO/qTZAjQ== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1792676566; h=DMARC-Filter:Received:X-Originating-IP:Date:X-CM-HeaderCharset:From: To:Cc:Subject:X-Priority:X-Mailer:X-CM-CTRLMSGS:Content-Type: MIME-Version:Message-ID:X-Coremail-Locale:X-CM-TRANSID: X-CM-SenderInfo:X-Coremail-Antispam; bh=M98ig9m4gnd93YBSYnDo62LwhCgUC4G+4YV7DeEhtDk=; b=AETdbU5mh3t/afUJfbNG9m8ARZS+JbcA7vDbxEBHlWIF44t4dP0WBpnKwK4olnl0mMpp u/aUHsHLAtVFQmv9oyMbhnGXLOjhrQLunLHWDBb2sF2VU8QZ90aq/5iMVGEM2A0bFmHE4 yYfVBksg03Qb6KE/To0kbGvLJhPzULz0PtPSVnRs1drQdEaJT+rIpVK9JNCa5dWfOkge6 EAWUMZGuMTZ1LP7W2KQY+m8qa4tFX++flgcMEqltDulHCYyuSvBG1FHzypGMSC70N6Jfv d+3P1cu5Sh8+DkLNoXS/aNmEZKw5cYCwIwbF4ldeYxyrYvQjO4NLfiYiLvqWXUyRepw== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none header.from=hust.edu.cn; spf=pass smtp.mailfrom=hust.edu.cn; arc=none smtp.remote-ip=162.243.164.118 Received: from zg8tmtyylji0my4xnjqumte4.icoremail.net (zg8tmtyylji0my4xnjqumte4.icoremail.net [162.243.164.118]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 33FF660A2626 for ; Thu, 22 Oct 2026 13:42:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 33FF660A2626 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=hust.edu.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=hust.edu.cn Received: from xuhx$hust.edu.cn ( [10.12.190.107] ) by ajax-webmail-app2 (Coremail) ; Thu, 22 Oct 2026 21:42:32 +0800 (GMT+08:00) Date: Thu, 22 Oct 2026 21:42:32 +0800 (GMT+08:00) X-CM-HeaderCharset: UTF-8 From: =?UTF-8?B?5b6Q5pmX57+U?= To: joro@8bytes.org, will@kernel.org Cc: iommu@lists.linux.dev, linux-kernel@vger.kernel.org Subject: iommu: client probe racing iommu_device_unregister() gets its dev->iommu param (and possibly its group) freed mid-probe X-Priority: 3 X-Mailer: Coremail Webmail Server Version 2025.3-cmXT6 build 20260810(6c94e3b5) Copyright (c) 2002-2026 www.mailtech.cn hust X-CM-CTRLMSGS: =?B?k3Q89ziH6nJ5xwDR7hwMki1N8jM= Content-Type: multipart/mixed; boundary="----=_Part_283600_219387960.1792676552982" X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Message-ID: <43bd439.14bca.1a163d96116.Coremail.xuhx@hust.edu.cn> X-Coremail-Locale: zh_CN X-CM-TRANSID:IQEQrMBGb3jJEtpqP3BUAA--.61052W X-CM-SenderInfo: bgsqjkayqyjmo6kx23oohg3hdfq/1tbiAgQIB2rY5eyoZwAAs9 X-Coremail-Antispam: 1Ur529EdanIXcx71UUUUU7IcSsGvfJ3iIAIbVAYjsxI4VWkKw CS07vEb4IE77IF4wCS07vE1I0E4x80FVAKz4kxMIAIbVAFxVCaYxvI4VCIwcAKzIAtYxBI daVFxhVjvjDU= ------=_Part_283600_219387960.1792676552982 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 QSBkZXZpY2UgYmVjb21lcyB2aXNpYmxlIHRvIHRoZSBpb21tdV9kZXZpY2VfdW5yZWdpc3Rlcigp IHRyYXZlcnNhbApiZWZvcmUgaXRzIElPTU1VIHByb2JlIGhhcyBmaW5pc2hlZCwgYW5kIHRoZSBy ZWxlYXNlIHBhdGggLS0gd2hpY2ggdGFrZXMKbm9uZSBvZiB0aGUgbG9ja3MgdGhlIHByb2JlIHNp ZGUgaG9sZHMgLS0gY2Fubm90IHRlbGwgIm1pZC1wcm9iZSIgZnJvbQoibmV2ZXIgcHJvYmVkIiBv ciAiYWxyZWFkeSByZW1vdmVkIiwgc28gdW5yZWdpc3RlcmluZyBhbiBJT01NVSBpbnN0YW5jZQp3 aGlsZSBjbGllbnQgZGV2aWNlcyBhcmUgcHJvYmluZyBmcmVlcyB0aGUgcHJvYmluZyBkZXZpY2Un cyBpb21tdSBwYXJhbQp1bmRlciBpdHMgZmVldCBhbmQgY2FuIGRyb3AgdGhlIGxhc3QgZ3JvdXAg cmVmZXJlbmNlIHdoaWxlIHRoZSBwcm9iZQp0aHJlYWQgaXMgYWJvdXQgdG8gbG9jayB0aGF0IGdy b3VwLiAgQ29uZmlybWVkIHdpdGggS0FTQU4gb24gbWFpbmxpbmUKNy4zOiBwcm9iZS1zaWRlIE5V TEwgZGVyZWZlcmVuY2VzIGNvbnN1bWluZyB0aGUgaGFsZi10b3JuIHN0YXRlLCBwcm9iZQp0aHJl YWRzIG9wZXJhdGluZyBvbiBhIGdyb3VwIGZyZWVkIGJ5IHRoZSBjb25jdXJyZW50IHVucmVnaXN0 ZXIsIGFuZCBhCnBlcnNpc3RlbnQgbW9kdWxlLXJlZmVyZW5jZSBsZWFrIGZyb20gdGhlIHBvaXNv bmVkIGVuZCBzdGF0ZS4KClRoZSBwcm9iZSBzaWRlIHNlcmlhbGl6ZXMgaXRzZWxmIHdpdGggaW9t bXVfcHJvYmVfZGV2aWNlX2xvY2sKKGRyaXZlcnMvaW9tbXUvaW9tbXUuYzo2MjYpIGFuZCBwdWJs aXNoZXMgZGV2LT5pb21tdSBzdGF0ZSBpbiB0aHJlZQpzdGVwcyAocGFyYW0gYXQgOjQxMywgdGhl IHRyYXZlcnNhbCdzIG1hdGNoIGtleSBhdCA6NTE2LCBncm91cAptZW1iZXJzaGlwIG9ubHkgYXQg OjY2NyBhZnRlciB0YWtpbmcgdGhlIGdyb3VwIGxvY2sgYXQgOjY1OCkgLS0gYnV0CmlvbW11X2Rl dmljZV91bnJlZ2lzdGVyKCkgYW5kIGlvbW11X3JlbGVhc2VfZGV2aWNlKCkgbmV2ZXIgdGFrZSB0 aGF0CmxvY2ssIGFuZCB0aGVpciBwcmVkaWNhdGVzIHJlYWQgZXhhY3RseSB0aGUgZmllbGRzIHRo YXQgYXJlIG1pZC0KcHVibGljYXRpb24uICBBIHJlbGVhc2UgbGFuZGluZyBiZXR3ZWVuIHRoZSBz dGVwcyBlaXRoZXIgZnJlZXMgdGhlCnBhcmFtIHRoZSBwcm9iZSB0aHJlYWQgaXMgc3RhbmRpbmcg b24gKGlvbW11LmM6Nzg3LTc4OCB0cmVhdHMKImdyb3VwID09IE5VTEwiIGFzICJuZXZlciBwcm9i ZWQiLCBpbmNsdWRpbmcgdGhlIHN0YXRlICJwcm9iZSBpcwpiZXR3ZWVuIDo1MTYgYW5kIDo1Mjki KSwgb3IgcnVucyBpdHMgZ3JvdXAgZmluZC1sb29wIGJlZm9yZSB0aGUgcHJvYmUKYWRkZWQgdGhl IGRldmljZSAoOjY2NyksIGZpbmRzIG5vdGhpbmcsIGFuZCBzdGlsbCBjb25zdW1lcyBhIGdyb3Vw CnJlZmVyZW5jZSB3aXRoIHRoZSB1bmNvbmRpdGlvbmFsIGlvbW11X2dyb3VwX3B1dCgpIGF0IDo3 NzUgLS0gd2hpY2ggaXMKdGhlIHJlZmVyZW5jZSB0aGUgcHJvYmUganVzdCB0b29rIGF0IDo1MjIu ICBUaGUgd2luZG93cyBhcmUgd2lkZToKYm90aCBjb250YWluIHN5c2ZzIHNsb3cgcGF0aHMgKGlv bW11X2RldmljZV9saW5rKCkgYXQgOjUxODsKaW9tbXVfZ3JvdXBfYWxsb2NfZGV2aWNlKCkgYXQg OjY1NSB3aXRoIGthc3ByaW50ZiBhbmQgdHdvCnN5c2ZzX2NyZWF0ZV9saW5rIGNhbGxzKSwgdGVu cyBvZiBtaWNyb3NlY29uZHMgdG8gbWlsbGlzZWNvbmRzIGVhY2guClRyaWdnZXJpbmcgbmVlZHMg YSBydW50aW1lLXVucmVnaXN0cmFibGUgSU9NTVUgaW5zdGFuY2UgcGx1cyBhCmNvbmN1cnJlbnQg Y2xpZW50IGRldmljZV9hZGQvcHJvYmUgc3Rvcm0gKFBDSSByZXNjYW4sIGhvdHBsdWcsIGxhdGUK cHJvYmUpIC0tIGFkbWluaXN0cmF0b3IgYWN0aW9ucyBwbHVzIGV2ZW50cyBob3RwbHVnIHN0b3Jt cyBwcm9kdWNlIG9uCnRoZWlyIG93bi4KClRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbjoKCiogVGVz dCBlbnZpcm9ubWVudCAvIGFmZmVjdGVkIHZlcnNpb24KCiAgTGludXggdmVyc2lvbiA3LjMuMCAo Z2NjIDEzLjMuMCwgR05VIGxkIDIuNDIpICMxIFNNUCBQUkVFTVBUX0RZTkFNSUMKICAtLSB2YW5p bGxhIG1haW5saW5lIDcuMyByZWxlYXNlIHRhcmJhbGwgKGtlcm5lbC5vcmcsIHVubW9kaWZpZWQp LAogIHJlYnVpbHQgd2l0aCBDT05GSUdfS0FTQU5fR0VORVJJQz15LCBDT05GSUdfSU9NTVVfU1VQ UE9SVD15LAogIENPTkZJR19JT01NVV9BUEk9eSwgUUVNVS9LVk0geDg2XzY0IGd1ZXN0LiAgQWxs IGZ1bmN0aW9ucyBjaXRlZAogIGJlbG93IGFyZSBieXRlLWlkZW50aWNhbCBpbiA3LjEuNSBhbmQg Ny4zOyBsaW5lIG51bWJlcnMgYXJlIGZyb20KICA3LjMuCgoqIFdoeSB0aGUgdHJhdmVyc2FsIGNh biBtZWV0IGEgaGFsZi1wcm9iZWQgZGV2aWNlCgogIGRldmljZV9hZGQoKSBtYWtlcyB0aGUgZGV2 aWNlIHZpc2libGUgdG8gYnVzX2Zvcl9lYWNoX2RldigpIGF0CiAgYnVzX2FkZF9kZXZpY2UoKSAo ZHJpdmVycy9iYXNlL2NvcmUuYzozNzE4LCB3aG9zZSBsYXN0IHN0ZXAgaXMgdGhlCiAga2xpc3Qg YWRkKSBCRUZPUkUgdGhlIEFERCBub3RpZmljYXRpb24gdGhhdCBzdGFydHMgdGhlIElPTU1VIHBy b2JlCiAgZmlyZXMgKGNvcmUuYzozNzQxIC0+IGlvbW11X2J1c19ub3RpZmllciAtPiBpb21tdV9w cm9iZV9kZXZpY2UgLT4KICBfX2lvbW11X3Byb2JlX2RldmljZSwgaW9tbXUuYzo2MjcpLiAgVGhl IHByb2JlIHBhdGggaG9sZHMKICBpb21tdV9wcm9iZV9kZXZpY2VfbG9jayBlbmQgdG8gZW5kOyB0 aGUgdW5yZWdpc3RlciB0cmF2ZXJzYWwgYW5kCiAgaW9tbXVfcmVsZWFzZV9kZXZpY2UoKSAoaW9t bXUuYzo3NzgpIHRha2UgaXQgbmV2ZXIuICBUaGUgZndzcGVjCiAgbG9va3VwIHRoZSBwcm9iZSB1 c2VzIHRvIG1hdGNoIHRoZSBpbnN0YW5jZSBzdGlsbCByZXNvbHZlcyBkdXJpbmcKICB1bnJlZ2lz dHJhdGlvbiAodGhlIGluc3RhbmNlIGxlYXZlcyBpb21tdV9kZXZpY2VfbGlzdCBvbmx5IGFmdGVy CiAgdGhlIHRyYXZlcnNhbCwgaW9tbXUuYzozMjEtMzIzKSwgc28gYSBwcm9iZSBzdGFydGVkIGp1 c3QgYmVmb3JlIGNhbgogIHN0aWxsIGF0dGFjaCB0byB0aGUgZHlpbmcgaW5zdGFuY2UgYW5kICJz dWNjZWVkIi4KCiogVGhlIHRocmVlLXBoYXNlIHB1YmxpY2F0aW9uIGFuZCB0aGUgdHdvIHdpbmRv d3MKCiAgaW9tbXVfaW5pdF9kZXZpY2UoKSAoaW9tbXUuYzo0NjkpIHB1Ymxpc2hlcyBpbiBzdGVw czoKCiAgICAgIGRldi0+aW9tbXUgPSBwYXJhbTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDo0MTMgKi8KICAgICAgaW9tbXVfZGV2ID0gb3BzLT5wcm9iZV9kZXZpY2UoZGV2KTsgICAgICAg ICAgLyogOjUxMSAqLwogICAgICBkZXYtPmlvbW11LT5pb21tdV9kZXYgPSBpb21tdV9kZXY7ICAg ICAgICAgICAvKiA6NTE2ICBtYXRjaCBrZXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciByZW1vdmVfaW9tbXVfCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cCAoOjI3NSkgKi8K ICAgICAgaW9tbXVfZGV2aWNlX2xpbmsoaW9tbXVfZGV2LCBkZXYpOyAgICAgICAgICAgLyogOjUx OCAgdHdvIHN5c2ZzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvcHMsIHNsZWVwYWJsZSAqLwogICAgICBncm91cCA9IG9wcy0+ZGV2aWNlX2dy b3VwKGRldik7ICAgICAgICAgICAgICAvKiA6NTIyICB0YWtlcyB0aGUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwIHJlZiBzdG9yZWQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRv IGRldi0+aW9tbXVfZ3JvdXAgKi8KICAgICAgZGV2LT5pb21tdV9ncm91cCA9IGdyb3VwOyAgICAg ICAgICAgICAgICAgICAgLyogOjUyOSAgcmVsZWFzZSBwYXRoJ3MKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlIHByZWRpY2F0ZSAqLwog ICAgICBkZXYtPmlvbW11LT5tYXhfcGFzaWRzID0gLi4uOyAgICAgICAgICAgICAgICAvKiA6NTMx ICBkcml2ZXItCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbmRlcGVuZGVudCBsYXRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzIHRvIHBhcmFtICovCiAgICAgIC4uLgogICAg ICAvKiBsYXRlciwgaW4gaW9tbXVfZ3JvdXBfYWRkX2RldmljZSgpOiAqLwogICAgICBnZGV2ID0g aW9tbXVfZ3JvdXBfYWxsb2NfZGV2aWNlKGdyb3VwLCBkZXYpOyAvKiA6NjU1ICBrYXNwcmludGYg KwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3lzZnMgbGlua3MgKi8KICAgICAgbXV0ZXhfbG9jaygmZ3JvdXAtPm11dGV4KTsgICAgICAgICAg ICAgICAgICAgLyogOjY1OCAqLwogICAgICBsaXN0X2FkZF90YWlsKCZnZGV2LT5saXN0LCAmZ3Jv dXAtPmRldmljZXMpOyAvKiA6NjY3ICovCgogIFdpbmRvdyBXMSA9IFs6NTE2IC4uIDo1MjkpOiBk ZXYtPmlvbW11X2dyb3VwIG5vdCB5ZXQgc2V0LgogICAgaW9tbXVfcmVsZWFzZV9kZXZpY2UoKSBy ZWFkcyBncm91cCA9PSBOVUxMLCBjb25jbHVkZXMgIm5ldmVyCiAgICBwcm9iZWQiLCBhbmQgY2Fs bHMgZGV2X2lvbW11X2ZyZWUoKSBhdCA6Nzg3LTc4OCAtLSBmcmVlaW5nIHRoZQogICAgcGFyYW0g dGhlIHByb2JlIHRocmVhZCBpcyBzdGFuZGluZyBvbi4gIFRoZSBwcm9iZSB0aGVuIHRvdWNoZXMK ICAgIGZyZWVkIG1lbW9yeSBhdCA6NTMxIChtYXhfcGFzaWRzLCByZWFkIGFuZCB3cml0ZSAtLSBk cml2ZXItCiAgICBpbmRlcGVuZGVudCksIHNvbWUgZHJpdmVycycgLT5kZXZpY2VfZ3JvdXAgYXQg OjUyMiByZWFkcyBwYXJhbQogICAgZmllbGRzLCBhbmQgdGhlIHByb2JlIHRhaWwgcmVhZHMgZGV2 X2lvbW11X29wcyhkZXYpIGF0IDo3MjAuCgogIFdpbmRvdyBXMiA9IFs6NTI5IC4uIDo2NjcpOiBn cm91cCBwdWJsaXNoZWQsIGdkZXYgbm90IHlldCBsaXN0ZWQuCiAgICBBJ3MgX19pb21tdV9ncm91 cF9yZW1vdmVfZGV2aWNlKCkgdGFrZXMgdGhlIGdyb3VwIGxvY2sgKDo3NTYpCiAgICBiZWZvcmUg dGhlIHByb2JlJ3MgOjY1OCwgd2Fsa3MgdGhlIG1lbWJlciBsaXN0LCBmaW5kcyBub3RoaW5nLAog ICAgYW5kIGZhbGxzIHRocm91Z2ggdG8gdGhlIHVuY29uZGl0aW9uYWwgaW9tbXVfZ3JvdXBfcHV0 KCkgYXQgOjc3NQogICAgLS0gY29uc3VtaW5nIHRoZSByZWZlcmVuY2UgdGhlIHByb2JlIG9idGFp bmVkIGF0IDo1MjIgLS0gYW5kIHRoZW4KICAgIGZyZWVzIHRoZSBwYXJhbSBhdCA6Nzg3LTc4OCBh bnl3YXkuICBJZiB0aGF0IHB1dCB3YXMgdGhlIGxhc3QKICAgIHJlZmVyZW5jZSwgdGhlIHByb2Jl J3MgOjY1OCBtdXRleF9sb2NrKCkgb3BlcmF0ZXMgb24gZnJlZWQgbWVtb3J5OwogICAgb3RoZXJ3 aXNlIHRoZSBwcm9iZSBjb21wbGV0ZXMgYW5kIGNyZWF0ZXMgYSBkdXJhYmxlIHBvaXNvbmVkCiAg ICBzdGF0ZTogZ2RldiBpbiB0aGUgZ3JvdXAsIGRldi0+aW9tbXUgZnJlZWQvTlVMTC4KCiAgQ29u c2VxdWVuY2VzIG9mIHRoZSBwb2lzb25lZCBzdGF0ZTogdGhlIGRldmljZSdzIGxhdGVyIHJlbW92 YWwgc2VlcwogIGRldl9oYXNfaW9tbXUoKSBmYWxzZSBhbmQgc2tpcHMgaW9tbXVfZGVpbml0X2Rl dmljZSgpIC0tIGxlYWtpbmcKICB0aGUgbW9kdWxlIHJlZmVyZW5jZSB0aGUgcHJvYmUgdG9vayAo dHJ5X21vZHVsZV9nZXQgYXQgOjUwNikgYW5kCiAgdGhlIGdyb3VwIGRvbWFpbiAoV0FSTiBjaGFp biksIG9yIGEgbGF0ZXIgZGVpbml0IGRlcmVmZXJlbmNlcyB0aGUKICBOVUxMIHBhcmFtLgoKKiBF dmlkZW5jZSAoNy4zLCBLQVNBTikKCiAgUmVwcm9kdWNlciBhdHRhY2hlZCAoaW9tbXVyYWNlLmMs IHNhbWUgbW9kdWxlIGFzIGluIG15IHJlbGVhc2Utc2lkZQogIHJlcG9ydCk6IGt0aHJlYWQgQSBs b29wcyBpb21tdV9kZXZpY2VfcmVnaXN0ZXIvdW5yZWdpc3Rlciwga3RocmVhZAogIEMgbG9vcHMg Y2xpZW50IHBsYXRmb3JtX2RldmljZV9hZGQgKGRyaXZpbmcgdGhlIHJlYWwgQUREIG5vdGlmaWVy CiAgcHJvYmUpLiAgVXNhZ2U6CgogICAgaW5zbW9kIGlvbW11cmFjZS5rbwogICAgZWNobyBzZXR1 cCA+IC9zeXMvbW9kdWxlL2lvbW11cmFjZS9wYXJhbWV0ZXJzL2FjdGlvbgogICAgZWNobyAiYWMg MzAwMCIgID4gL3N5cy9tb2R1bGUvaW9tbXVyYWNlL3BhcmFtZXRlcnMvYWN0aW9uCiAgICBlY2hv ICJhYzEgMzAwMCIgPiAvc3lzL21vZHVsZS9pb21tdXJhY2UvcGFyYW1ldGVycy9hY3Rpb24KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIF4gc2luZ2xldG9uIHZh cmlhbnQKICAgIGVjaG8gc3RhdHVzID4gL3N5cy9tb2R1bGUvaW9tbXVyYWNlL3BhcmFtZXRlcnMv YWN0aW9uCgogIC0gImFjIiBydW46IHR3byBLQVNBTiBudWxsLXB0ci1kZXJlZiByZXBvcnRzIGF0 CiAgICBpb21tdV9kZWluaXRfZGV2aWNlKzB4NzYgKHJlYWQgYXQgTlVMTCsweDNjLCB0YXNrIGlv bW11cmFjZV9jIC0tCiAgICB0aGUgcHJvYmUgdGhyZWFkKSAtLSB0aGUgcHJvYmUvY29uc3VtZXIg d2Fsa2luZyB0aGUgaGFsZi10b3JuCiAgICBzdGF0ZSAtLSBhbmQgdGhlIG1vZHVsZSByZWZlcmVu Y2UgY291bnQgcGlubmVkIGF0IDEgYWZ0ZXIKICAgIGNsZWFudXA6IGV4YWN0bHkgdGhlIHNraXAt ZGVpbml0IGxlYWsgcHJlZGljdGVkIGFib3ZlLgogIC0gImFjMSIgcnVuIChkZXZpY2VfZ3JvdXAg PSBnZW5lcmljX3NpbmdsZV9kZXZpY2VfZ3JvdXAsIHdoaWNoCiAgICByb3V0ZXMgZ3JvdXAgcmVs ZWFzZSB0aHJvdWdoIHRoZSB1bnJlZ2lzdGVyIHRhaWwpOiBwcm9iZS10aHJlYWQKICAgIHNsYWIt dXNlLWFmdGVyLWZyZWUgcmVwb3J0cyBpbiBtdXRleF9sb2NrICh4MiwgbG9ja2luZyB0aGUgZ3Jv dXAKICAgIGZyZWVkIGJ5IHRoZSBjb25jdXJyZW50IHVucmVnaXN0ZXIpLAogICAgaW9tbXVfZ3Jv dXBfYWxsb2NfZGV2aWNlICh4MiksIHN5c2ZzX2NyZWF0ZV9saW5rX25vd2FybiAoeDIpLAogICAg cGx1cyB0aGUgc2FtZSBkZWluaXQgTlVMTCBmb3JtIGFuZCByZWZjb3VudCBwaW4uICBUaHJlZS1z dGFjawogICAgd2l0bmVzcyBmb3IgdGhlIG11dGV4X2xvY2sgcmVwb3J0OgoKICAgICAgYWNjZXNz OiAgc2xhYi11c2UtYWZ0ZXItZnJlZSBpbiBtdXRleF9sb2NrICh3cml0ZSkKICAgICAgICAgICAg ICAgYnkgdGFzayBpb21tdXJhY2VfYyAocHJvYmUgdGhyZWFkKQogICAgICBhbGxvY2F0ZWQ6IGlv bW11X2dyb3VwX2FsbG9jIDwtIGdlbmVyaWNfc2luZ2xlX2RldmljZV9ncm91cAogICAgICAgICAg ICAgICAgIDwtIF9faW9tbXVfcHJvYmVfZGV2aWNlIDwtIGlvbW11X3Byb2JlX2RldmljZQogICAg ICBmcmVlZDogICAgIGtmcmVlIDwtIGtvYmplY3RfcHV0CiAgICAgICAgICAgICAgICAgPC0gaW9t bXVfZGV2aWNlX3VucmVnaXN0ZXIgKHRyYXZlcnNhbC90YWlsIHNpZGUpCgogIE9uIHRoZSBpZGVu dGljYWxseS1jb2RlZCA3LjEuNSB0cmVlIHRoZSBzYW1lIGhhcm5lc3MgYWRkaXRpb25hbGx5CiAg Y2F1Z2h0IHRoZSBwcm9iZSB0aHJlYWQgcmVhZGluZyB0aGUgYWxyZWFkeS1mcmVlZCBwYXJhbSBk aXJlY3RseQogICh1c2UtYWZ0ZXItZnJlZSBpbiBfX2lvbW11X3Byb2JlX2RldmljZSBhbmQKICBp b21tdV9zZXR1cF9kZWZhdWx0X2RvbWFpbiwgaS5lLiB0aGUgVzEgOjUyMi01MzEgYWNjZXNzZXMp OyBpbiB0aGUKICA3LjMgcnVucyB0aGUgcHJvYmUgdGhyZWFkcyBkaWVkIG9uIHRoZSBXMiBmb3Jt cyBmaXJzdC4gIChMZWF2ZSB0aGUKICBtb2R1bGUgbG9hZGVkIGFmdGVyIHRoZSByYWNlIGFjdGlv bnM7IHRoZSBwaW5uZWQgcmVmY291bnQgaXMgcGFydAogIG9mIHRoZSBvYnNlcnZlZCBzdGF0ZSwg YW5kIHRoZSBtb2R1bGUncyBvd24gcm1tb2QgcGF0aCBoYXMgYW4KICB1bnJlbGF0ZWQgc29mdHdh cmUtbm9kZSB0ZWFyZG93biBzcGxhdCBvbiA3LjMuKQoKKiBUcmlnZ2VyIG1vZGVsIC8gYWZmZWN0 ZWQgY29uZmlndXJhdGlvbnMKCiAgU2FtZSBhcyB0aGUgcmVsZWFzZS1zaWRlIHJlcG9ydDogcnVu dGltZS11bnJlZ2lzdHJhYmxlIGluc3RhbmNlcwogICh2aXJ0aW8taW9tbXUgdW5iaW5kLCBwbGF0 Zm9ybSBJT01NVXMpIHRpbWVzIGNsaWVudCBwcm9iZSBjaHVybgogIChQQ0kgcmVzY2FuLCBob3Rw bHVnLCBEVCBvdmVybGF5LCBsYXRlIHByb2JlcykuICBUaGUgd2luZG93cyBoZXJlCiAgYXJlIG9y ZGVycyBvZiBtYWduaXR1ZGUgd2lkZXIgdGhhbiBpbnN0cnVjdGlvbi1sZXZlbCBpbnRlcmxlYXZp bmdzCiAgYmVjYXVzZSBvZiB0aGUgc3lzZnMgc2xvdyBwYXRocyBpbnNpZGUgdGhlbS4KCgpUaGFu a3MgZm9yIHRha2luZyBhIGxvb2suCgpSZWdhcmRzLApIYW54aWFuZyBYdQp4dWh4QGh1c3QuZWR1 LmNuCgoK ------=_Part_283600_219387960.1792676552982 Content-Type: text/plain; name=iommurace.c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="iommurace.c" Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLyoKICogaW9tbXVyYWNlLmMgLSBk eW5hbWljIHZlcmlmaWNhdGlvbiBkcml2ZXIgZm9yIHRoZSBJT01NVSBsaWZlY3ljbGUgcmFjZQog KiBhdWRpdCAoSFYtMyAvIEhWLTQgaW4gZG9jcy9tYW51YWwtcmV2aWV3LWRyaXZlcnMtYmFzZS0y MDI2LTEwLTIwLm1kKS4KICoKICogUmVnaXN0ZXJzIGEgRkFLRSBJT01NVSBpbnN0YW5jZSAoc3Ry dWN0IGlvbW11X2RldmljZSArIHN0cnVjdCBpb21tdV9vcHMpCiAqIHRocm91Z2ggdGhlIHJlYWwg RVhQT1JUX1NZTUJPTF9HUEwgY29yZSBBUElzLCBhbmQgZHJpdmVzIHRoZSBSRUFMIGNvcmUKICog Y29kZSBwYXRocyBvZiBkcml2ZXJzL2lvbW11L2lvbW11LmMgd2l0aCBSRUFMIHBsYXRmb3JtLWJ1 cyBkZXZpY2VzOgogKgogKiAgIGVudHJ5IEEgKGluc3RhbmNlIHVucmVnaXN0ZXIgdHJhdmVyc2Fs KToKICogICAgICAgaW9tbXVfZGV2aWNlX3VucmVnaXN0ZXIoKSAtPiBidXNfZm9yX2VhY2hfZGV2 IC0+IHJlbW92ZV9pb21tdV9ncm91cAogKiAgIGVudHJ5IEIgKGNsaWVudCByZW1vdmFsKToKICog ICAgICAgcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIoKSAtPiBkZXZpY2VfZGVsIC0+CiAqICAg ICAgIEJVU19OT1RJRllfUkVNT1ZFRF9ERVZJQ0UgLT4gaW9tbXVfYnVzX25vdGlmaWVyIC0+IGlv bW11X3JlbGVhc2VfZGV2aWNlCiAqICAgZW50cnkgQyAoY2xpZW50IHByb2JlKToKICogICAgICAg cGxhdGZvcm1fZGV2aWNlX2FkZCgpIC0+IGRldmljZV9hZGQgLT4gQlVTX05PVElGWV9BRERfREVW SUNFIC0+CiAqICAgICAgIGlvbW11X2J1c19ub3RpZmllciAtPiBpb21tdV9wcm9iZV9kZXZpY2Ug LT4gaW9tbXVfaW5pdF9kZXZpY2UKICoKICogQ2xpZW50cyBhcmUgYm91bmQgdG8gdGhlIGZha2Ug aW5zdGFuY2UgYnkgY2FsbGluZyBpb21tdV9md3NwZWNfaW5pdCgpCiAqIChFWFBPUlRfU1lNQk9M X0dQTCkgYmV0d2VlbiBwbGF0Zm9ybV9kZXZpY2VfYWxsb2MoKSBhbmQKICogcGxhdGZvcm1fZGV2 aWNlX2FkZCgpLCBzbyB0aGUgQUREIG5vdGlmaWVyJ3MgcHJvYmUgbWF0Y2hlcyB0aGUgZmFrZSBv cHMKICogdmlhIGlvbW11X2Z3c3BlY19vcHMoKSBvbiB0aGUgc2hhcmVkIHNvZnR3YXJlIGZ3bm9k ZS4KICoKICogYWN0aW9ucyAoZWNobyA8Y21kPiA+IC9zeXMvbW9kdWxlL2lvbW11cmFjZS9wYXJh bWV0ZXJzL2FjdGlvbik6CiAqICAgc2V0dXAgICAgICAgICAgIC0gY2FycmllciBkZXZpY2UgKyBz b2Z0d2FyZSBmd25vZGUgKyBpb21tdV9kZXZpY2Vfc3lzZnNfYWRkCiAqICAgICAgICAgICAgICAg ICAgICAgKyBpb21tdV9kZXZpY2VfcmVnaXN0ZXIgKHJlYWwgYnVzX2lvbW11X3Byb2JlIHN3ZWVw KQogKiAgIHVucmVnICAgICAgICAgICAtIG9uZSBpb21tdV9kZXZpY2VfdW5yZWdpc3RlciAocmVh bCB0cmF2ZXJzYWwpCiAqICAgcmVnICAgICAgICAgICAgIC0gb25lIGlvbW11X2RldmljZV9yZWdp c3RlcgogKiAgIHJlZ2xvb3AgTiAgICAgICAtIE4gc2VxdWVudGlhbCByZWdpc3Rlcit1bnJlZ2lz dGVyIHJvdW5kcyAoYmFzZWxpbmUpCiAqICAgY2xpZW50IE4gICAgICAgIC0gTiBjbGllbnRzIGFk ZGVkIHRoZW4gcmVtb3ZlZCBzZXF1ZW50aWFsbHkgKGJhc2VsaW5lOwogKiAgICAgICAgICAgICAg ICAgICAgIGV4cGVjdCB6ZXJvIHNwbGF0cyB3aXRoIGEgc3RhYmxlIHJlZ2lzdGVyZWQgaW5zdGFu Y2UpCiAqICAgYWIgTiAgICAgICAgICAgIC0gSFYtMyBBIHggQjoga3RocmVhZCBBIGxvb3BzIHJl Z2lzdGVyK3VucmVnaXN0ZXIsCiAqICAgICAgICAgICAgICAgICAgICAga3RocmVhZCBCIGxvb3Bz IGNsaWVudCBhZGQrZGVsOyByZWFsIHBhdGhzIG9uIGJvdGggc2lkZXMKICogICBhYyBOICAgICAg ICAgICAgLSBIVi00IEEgeCBDOiBrdGhyZWFkIEEgbG9vcHMgcmVnaXN0ZXIrdW5yZWdpc3RlciwK ICogICAgICAgICAgICAgICAgICAgICBrdGhyZWFkIEMgbG9vcHMgY2xpZW50IGFkZCBvbmx5IChX MS9XMiB3aW5kb3dzLAogKiAgICAgICAgICAgICAgICAgICAgIGNsaWVudHMga2VwdCBmb3IgcG9z dC1tb3J0ZW0gaW5zcGVjdGlvbikKICogICBhYzEgTiAgICAgICAgICAgLSBzYW1lIGFzIGFjIGJ1 dCBkZXZpY2VfZ3JvdXAgPSBnZW5lcmljX3NpbmdsZV9kZXZpY2VfZ3JvdXAKICogICAgICAgICAg ICAgICAgICAgICAoVzM6IHVucmVnaXN0ZXIgdGFpbCBzaW5nbGV0b25fZ3JvdXAgcmFjZSBzdXJm YWNlKQogKiAgIGNsZWFudXAgICAgICAgICAtIGJlc3QtZWZmb3J0IHRlYXJkb3duICh1bnJlZ2lz dGVyLCBkcm9wIGNsaWVudHMsIHN5c2ZzKQogKiAgIHN0YXR1cyAgICAgICAgICAtIGxvZyBzdGF0 cwogKgogKiBLZXJuZWwgc291cmNlIGlzIE5PVCBtb2RpZmllZDsgZXZlcnl0aGluZyBpcyBkcml2 ZW4gdGhyb3VnaCBleHBvcnRlZAogKiBpb21tdSBjb3JlIEFQSXMsIG1hdGNoaW5nIHRoZSBtZXRo b2RvbG9neSBvZiBwbXVfcmFjZS9tY3JzaW0vcmVnbWFwX3JhY2UuCiAqCiAqIE5PVEU6IGFiL2Fj L2FjMSBtYXkgbGVhayBtb2R1bGUgcmVmZXJlbmNlcyB3aGVuIHRoZSBhdWRpdCdzICJXMiBkZWZl Y3RpdmUKICogc3RhdGUiIGhpdHMgKHByb2JlIHN1Y2NlZWRlZCAtPiB0cnlfbW9kdWxlX2dldCwg bGF0ZXIgcmVtb3ZhbCBza2lwcwogKiBpb21tdV9kZWluaXRfZGV2aWNlIC0+IG5vIG1vZHVsZV9w dXQpLiBybW1vZCB0aGVuIGZhaWxzIHdpdGggRUJVU1k7IHRoZQogKiBwbGFucyB0aGVyZWZvcmUg ZG8gbm90IHJtbW9kIGFmdGVyIHJhY2UgYWN0aW9ucyAtIHRoZSBsZWFrIGl0c2VsZiBpcyBhCiAq IHZlcmlmaWVkIHByZWRpY3Rpb24gb2YgdGhlIHJlcG9ydC4KICovCiNkZWZpbmUgcHJfZm10KGZt dCkgIklPTU1VUkFDRTogIiBmbXQKCiNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KI2luY2x1ZGUg PGxpbnV4L2tlcm5lbC5oPgojaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgojaW5jbHVkZSA8bGlu dXgvZGVsYXkuaD4KI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgojaW5jbHVkZSA8bGludXgvc3RyaW5n Lmg+CiNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+ CiNpbmNsdWRlIDxsaW51eC9hdG9taWMuaD4KI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2Rldmlj ZS5oPgojaW5jbHVkZSA8bGludXgvaW9tbXUuaD4KI2luY2x1ZGUgPGxpbnV4L3Byb3BlcnR5Lmg+ CgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gKi8KLyogZmFrZSBJT01NVSBpbnN0YW5jZSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwoKc3RhdGljIHN0cnVjdCBpb21tdV9k ZXZpY2UgZm9tX2lvbW11OwpzdGF0aWMgc3RydWN0IGlvbW11X29wcyBmb21fb3BzOwpzdGF0aWMg c3RydWN0IHBsYXRmb3JtX2RldmljZSAqY2FycmllcjsKc3RhdGljIHN0cnVjdCBmd25vZGVfaGFu ZGxlICpzd19ub2RlOwpzdGF0aWMgYXRvbWljX3QgcmVnX3N0YXRlID0gQVRPTUlDX0lOSVQoMCk7 IC8qIDEgPSByZWdpc3RlcmVkICovCnN0YXRpYyBpbnQgdXNlX3NpbmdsZXRvbjsKCi8qIHN0YXRz ICovCnN0YXRpYyB1bnNpZ25lZCBsb25nIHN0YXRfcmVnLCBzdGF0X3VucmVnLCBzdGF0X3JlZ19m YWlsOwpzdGF0aWMgdW5zaWduZWQgbG9uZyBzdGF0X2FkZF9vaywgc3RhdF9hZGRfZmFpbCwgc3Rh dF9md19mYWlsLCBzdGF0X2RlbDsKc3RhdGljIHVuc2lnbmVkIGxvbmcgc3RhdF9iX2RvbmUsIHN0 YXRfY19kb25lLCBzdGF0X2FfZG9uZTsKCi8qIGZha2Ugc3RhdGljIGlkZW50aXR5IGRvbWFpbjog YXR0YWNoIGlzIGEgbm8tb3AsIGZyZWUgbXVzdCBub3Qga2ZyZWUgKi8Kc3RhdGljIGludCBmb21f YXR0YWNoX2RldihzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb20sIHN0cnVjdCBkZXZpY2UgKmRldiwK CQkJICBzdHJ1Y3QgaW9tbXVfZG9tYWluICpvbGQpCnsKCXJldHVybiAwOwp9CgpzdGF0aWMgdm9p ZCBmb21fZG9tX2ZyZWUoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tKQp7Cglwcl9pbmZvKCJmb21f ZG9tX2ZyZWUgb24gc3RhdGljIGlkZW50aXR5IGRvbWFpbiAoaWdub3JlZClcbiIpOwp9CgpzdGF0 aWMgY29uc3Qgc3RydWN0IGlvbW11X2RvbWFpbl9vcHMgZm9tX2RvbV9vcHMgPSB7CgkuYXR0YWNo X2RldiA9IGZvbV9hdHRhY2hfZGV2LAoJLmZyZWUgPSBmb21fZG9tX2ZyZWUsCn07CgpzdGF0aWMg c3RydWN0IGlvbW11X2RvbWFpbiBmb21faWRlbnRpdHlfZG9tID0gewoJLnR5cGUgPSBJT01NVV9E T01BSU5fSURFTlRJVFksCgkub3BzID0gJmZvbV9kb21fb3BzLAoJLm93bmVyID0gJmZvbV9vcHMs CgkucGdzaXplX2JpdG1hcCA9IDAsCgkuZ2VvbWV0cnkgPSB7CgkJLmFwZXJ0dXJlX3N0YXJ0ID0g MCwKCQkuYXBlcnR1cmVfZW5kID0gfjBVTCwKCQkuZm9yY2VfYXBlcnR1cmUgPSBmYWxzZSwKCX0s Cn07CgpzdGF0aWMgc3RydWN0IGlvbW11X2RldmljZSAqZm9tX3Byb2JlX2RldmljZShzdHJ1Y3Qg ZGV2aWNlICpkZXYpCnsKCXJldHVybiAmZm9tX2lvbW11Owp9CgpzdGF0aWMgdm9pZCBmb21fcmVs ZWFzZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQp7Cn0KCnN0YXRpYyBpbnQgZm9tX2RlZl9k b21haW5fdHlwZShzdHJ1Y3QgZGV2aWNlICpkZXYpCnsKCXJldHVybiBJT01NVV9ET01BSU5fSURF TlRJVFk7Cn0KCnN0YXRpYyBpbnQgZm9tX3JlZ2lzdGVyKHZvaWQpCnsKCWludCByZXQ7CgoJaWYg KGF0b21pY194Y2hnKCZyZWdfc3RhdGUsIDEpICE9IDApCgkJcmV0dXJuIDA7IC8qIGFscmVhZHkg cmVnaXN0ZXJlZCAqLwoKCWZvbV9vcHMgPSAoc3RydWN0IGlvbW11X29wcyl7CgkJLm93bmVyCQkJ PSBUSElTX01PRFVMRSwKCQkucHJvYmVfZGV2aWNlCQk9IGZvbV9wcm9iZV9kZXZpY2UsCgkJLnJl bGVhc2VfZGV2aWNlCQk9IGZvbV9yZWxlYXNlX2RldmljZSwKCQkuZGV2aWNlX2dyb3VwCQk9IHVz ZV9zaW5nbGV0b24gPwoJCQkJCSAgZ2VuZXJpY19zaW5nbGVfZGV2aWNlX2dyb3VwIDoKCQkJCQkg IGdlbmVyaWNfZGV2aWNlX2dyb3VwLAoJCS5kZWZfZG9tYWluX3R5cGUJPSBmb21fZGVmX2RvbWFp bl90eXBlLAoJCS5pZGVudGl0eV9kb21haW4JPSAmZm9tX2lkZW50aXR5X2RvbSwKCX07CgoJcmV0 ID0gaW9tbXVfZGV2aWNlX3JlZ2lzdGVyKCZmb21faW9tbXUsICZmb21fb3BzLCAmY2Fycmllci0+ ZGV2KTsKCWlmIChyZXQpIHsKCQlhdG9taWNfc2V0KCZyZWdfc3RhdGUsIDApOwoJCXN0YXRfcmVn X2ZhaWwrKzsKCQlyZXR1cm4gcmV0OwoJfQoJc3RhdF9yZWcrKzsKCXJldHVybiAwOwp9CgpzdGF0 aWMgdm9pZCBmb21fdW5yZWdpc3Rlcih2b2lkKQp7CglpZiAoYXRvbWljX3hjaGcoJnJlZ19zdGF0 ZSwgMCkgIT0gMSkKCQlyZXR1cm47IC8qIG5vdCByZWdpc3RlcmVkICovCglpb21tdV9kZXZpY2Vf dW5yZWdpc3RlcigmZm9tX2lvbW11KTsKCXN0YXRfdW5yZWcrKzsKfQoKLyogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICov Ci8qIGZha2UgY2xpZW50IGRldmljZXMgKHJlYWwgcGxhdGZvcm0gYnVzIGRldmljZXMpICAgICAg ICAgICAgICAgICAgICAgKi8KCiNkZWZpbmUgTUFYX0NMSSA1MTIKc3RhdGljIHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKmNsaVtNQVhfQ0xJXTsKc3RhdGljIGludCBucl9jbGk7CgpzdGF0aWMgaW50 IGZvbV9uZXdfY2xpZW50KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKipvdXQpCnsKCXN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXY7CglpbnQgcmV0OwoKCXBkZXYgPSBwbGF0Zm9ybV9kZXZpY2Vf YWxsb2MoImZvbWNsaSIsIFBMQVRGT1JNX0RFVklEX0FVVE8pOwoJaWYgKCFwZGV2KQoJCXJldHVy biAtRU5PTUVNOwoKCS8qCgkgKiBCaW5kIHRoZSBjbGllbnQncyBmd3NwZWMgdG8gdGhlIGZha2Ug aW5zdGFuY2UgQkVGT1JFIGRldmljZV9hZGQgc28KCSAqIHRoZSBBREQgbm90aWZpZXIncyBpb21t dV9wcm9iZV9kZXZpY2UoKSBtYXRjaGVzIG91ciBmYWtlIG9wcy4KCSAqIEZhaWxzIHdpdGggLUVO T0RFVi8tRVBST0JFX0RFRkVSIHdoZW4gdGhlIGluc3RhbmNlIGlzIGN1cnJlbnRseQoJICogdW5y ZWdpc3RlcmVkIC8gbWlkLXJlZ2lzdHJhdGlvbjogdGhlIG5hdHVyYWwgbm9uLXJhY3kgYnJhbmNo LgoJICovCglyZXQgPSBpb21tdV9md3NwZWNfaW5pdCgmcGRldi0+ZGV2LCBzd19ub2RlKTsKCWlm IChyZXQpIHsKCQlzdGF0X2Z3X2ZhaWwrKzsKCQlwbGF0Zm9ybV9kZXZpY2VfcHV0KHBkZXYpOwoJ CXJldHVybiByZXQ7Cgl9CgoJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChwZGV2KTsKCWlmIChy ZXQpIHsKCQlzdGF0X2FkZF9mYWlsKys7CgkJcGxhdGZvcm1fZGV2aWNlX3B1dChwZGV2KTsKCQly ZXR1cm4gcmV0OwoJfQoJc3RhdF9hZGRfb2srKzsKCSpvdXQgPSBwZGV2OwoJcmV0dXJuIDA7Cn0K CnN0YXRpYyB2b2lkIGZvbV9kZWxfY2xpZW50KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp CnsKCXBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKHBkZXYpOwoJc3RhdF9kZWwrKzsKfQoKLyog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tICovCi8qIHJhY2UgdGhyZWFkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KCnN0cnVjdCByYXJncyB7CglpbnQgcm91bmRz Owp9OwoKc3RhdGljIHN0cnVjdCByYXJncyByYSwgcmI7CgpzdGF0aWMgaW50IHRocmVhZF9hKHZv aWQgKmRhdGEpIC8qIGVudHJ5IEE6IHJlZ2lzdGVyL3VucmVnaXN0ZXIgcm91bmRzICovCnsKCXN0 cnVjdCByYXJncyAqYSA9IGRhdGE7CglpbnQgaTsKCglmb3IgKGkgPSAwOyBpIDwgYS0+cm91bmRz OyBpKyspIHsKCQlmb21fcmVnaXN0ZXIoKTsKCQlmb21fdW5yZWdpc3RlcigpOwoJCWlmICgoaSAl IDUwMCkgPT0gNDk5KQoJCQlwcl9pbmZvKCJ0aHJlYWRfYSByb3VuZCAlZFxuIiwgaSArIDEpOwoJ CS8qCgkJICogTm8gc2xlZXA6IG1heGltaXplIG92ZXJsYXAgb2YgdGhlIHVucmVnaXN0ZXIgdHJh dmVyc2FsCgkJICogd2l0aCBjb25jdXJyZW50IGNsaWVudCBhZGQvZGVsL3Byb2JlIG9uIG90aGVy IENQVXMuCgkJICovCgl9CglzdGF0X2FfZG9uZSsrOwoJcHJfaW5mbygidGhyZWFkX2EgZmluaXNo ZWQgJWQgcm91bmRzXG4iLCBhLT5yb3VuZHMpOwoJcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbnQgdGhy ZWFkX2Iodm9pZCAqZGF0YSkgLyogZW50cnkgQjogY2xpZW50IGFkZCtkZWwgY2h1cm4gKi8KewoJ c3RydWN0IHJhcmdzICphID0gZGF0YTsKCWludCBpOwoJc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldjsKCglmb3IgKGkgPSAwOyBpIDwgYS0+cm91bmRzOyBpKyspIHsKCQlpZiAoZm9tX25ld19j bGllbnQoJnBkZXYpKQoJCQljb250aW51ZTsKCQlmb21fZGVsX2NsaWVudChwZGV2KTsKCQlpZiAo KGkgJSA1MDApID09IDQ5OSkKCQkJcHJfaW5mbygidGhyZWFkX2Igcm91bmQgJWRcbiIsIGkgKyAx KTsKCX0KCXN0YXRfYl9kb25lKys7Cglwcl9pbmZvKCJ0aHJlYWRfYiBmaW5pc2hlZCAlZCByb3Vu ZHMgKGFkZF9vaz0lbHUgZndfZmFpbD0lbHUpXG4iLAoJCWEtPnJvdW5kcywgc3RhdF9hZGRfb2ss IHN0YXRfZndfZmFpbCk7CglyZXR1cm4gMDsKfQoKc3RhdGljIGludCB0aHJlYWRfYyh2b2lkICpk YXRhKSAvKiBlbnRyeSBDOiBjbGllbnQgYWRkIG9ubHkgKEhWLTQpICovCnsKCXN0cnVjdCByYXJn cyAqYSA9IGRhdGE7CglpbnQgaTsKCglmb3IgKGkgPSAwOyBpIDwgYS0+cm91bmRzOyBpKyspIHsK CQlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2OwoKCQlpZiAobnJfY2xpIDwgTUFYX0NMSSkg ewoJCQlpZiAoZm9tX25ld19jbGllbnQoJnBkZXYpID09IDApCgkJCQljbGlbbnJfY2xpKytdID0g cGRldjsKCQl9CgkJaWYgKChpICUgNTAwKSA9PSA0OTkpCgkJCXByX2luZm8oInRocmVhZF9jIHJv dW5kICVkXG4iLCBpICsgMSk7Cgl9CglzdGF0X2NfZG9uZSsrOwoJcHJfaW5mbygidGhyZWFkX2Mg ZmluaXNoZWQgJWQgcm91bmRzIChhZGRlZD0lZClcbiIsIGEtPnJvdW5kcywgbnJfY2xpKTsKCXJl dHVybiAwOwp9CgpzdGF0aWMgdm9pZCBydW5fcmFjZShjb25zdCBjaGFyICpraW5kLCBpbnQgcm91 bmRzKQp7CglzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhLCAqdGI7CgoJcmEucm91bmRzID0gcm91bmRz OwoJcmIucm91bmRzID0gcm91bmRzOwoKCWlmIChzdHJjbXAoa2luZCwgImFiIikgPT0gMCkKCQl0 YiA9IGt0aHJlYWRfcnVuKHRocmVhZF9iLCAmcmIsICJpb21tdXJhY2VfYiIpOwoJZWxzZQoJCXRi ID0ga3RocmVhZF9ydW4odGhyZWFkX2MsICZyYiwgImlvbW11cmFjZV9jIik7Cgl0YSA9IGt0aHJl YWRfcnVuKHRocmVhZF9hLCAmcmEsICJpb21tdXJhY2VfYSIpOwoJaWYgKElTX0VSUih0YSkgfHwg SVNfRVJSKHRiKSkgewoJCXByX2Vycigia3RocmVhZCBjcmVhdGlvbiBmYWlsZWRcbiIpOwoJCXJl dHVybjsKCX0KCS8qIGJsb2NrIHVudGlsIGJvdGggc2lkZXMgY29tcGxldGUgKGJvdW5kZWQ6IGEg Y3Jhc2hlZCB0aHJlYWQgbmV2ZXIKCSAqIGluY3JlbWVudHMgaXRzIGRvbmUgY291bnRlciAtIGJh aWwgb3V0IGFmdGVyIDE1MHMgYW5kIGxldCB0aGUKCSAqIHBsYW4gY29udGludWU7IHRoZSBLQVNB TiByZXBvcnQgaW4gZG1lc2cgaXMgdGhlIGV2aWRlbmNlKSAqLwoJewoJCWludCB3YWl0ZWQgPSAw OwoKCQl3aGlsZSAoc3RhdF9hX2RvbmUgKyBzdGF0X2JfZG9uZSArIHN0YXRfY19kb25lIDwgMiAm JgoJCSAgICAgICB3YWl0ZWQgPCAxNTAwMDApIHsKCQkJbXNsZWVwKDIwMCk7CgkJCXdhaXRlZCAr PSAyMDA7CgkJfQoJfQoJcHJfaW5mbygicmFjZSAlcyByb3VuZHM9JWQgY29tcGxldGVcbiIsIGtp bmQsIHJvdW5kcyk7Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwovKiBhY3Rpb24gcGFyYW1ldGVyICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCgpzdGF0aWMg Y2hhciBhY3Rpb25fYnVmWzY0XTsKCnN0YXRpYyBpbnQgYWN0aW9uX3NldChjb25zdCBjaGFyICp2 YWwsIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW0gKmtwKQp7CgljaGFyIGNtZFsxNl07Cglsb25n IG4gPSAwOwoJaW50IGdvdDsKCglzdHJzY3B5KGFjdGlvbl9idWYsIHZhbCwgc2l6ZW9mKGFjdGlv bl9idWYpKTsKCWdvdCA9IHNzY2FuZih2YWwsICIlMTVzICVsZCIsIGNtZCwgJm4pOwoJaWYgKGdv dCA8IDEpCgkJcmV0dXJuIC1FSU5WQUw7CgoJaWYgKHN0cmNtcChjbWQsICJzZXR1cCIpID09IDAp IHsKCQlpbnQgcmV0OwoKCQlpZiAoY2FycmllcikgewoJCQlwcl9pbmZvKCJzZXR1cDogYWxyZWFk eSBkb25lXG4iKTsKCQkJcmV0dXJuIDA7CgkJfQoJCXN3X25vZGUgPSBmd25vZGVfY3JlYXRlX3Nv ZnR3YXJlX25vZGUoTlVMTCwgTlVMTCk7CgkJaWYgKElTX0VSUihzd19ub2RlKSkgewoJCQlzd19u b2RlID0gTlVMTDsKCQkJcmV0dXJuIFBUUl9FUlIoc3dfbm9kZSk7CgkJfQoJCWNhcnJpZXIgPSBw bGF0Zm9ybV9kZXZpY2VfYWxsb2MoImZvbWh3IiwgUExBVEZPUk1fREVWSURfQVVUTyk7CgkJaWYg KCFjYXJyaWVyKSB7CgkJCWZ3bm9kZV9yZW1vdmVfc29mdHdhcmVfbm9kZShzd19ub2RlKTsKCQkJ c3dfbm9kZSA9IE5VTEw7CgkJCXJldHVybiAtRU5PTUVNOwoJCX0KCQlkZXZpY2Vfc2V0X25vZGUo JmNhcnJpZXItPmRldiwgc3dfbm9kZSk7CgkJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChjYXJy aWVyKTsKCQlpZiAocmV0KSB7CgkJCXBsYXRmb3JtX2RldmljZV9wdXQoY2Fycmllcik7CgkJCWNh cnJpZXIgPSBOVUxMOwoJCQlmd25vZGVfcmVtb3ZlX3NvZnR3YXJlX25vZGUoc3dfbm9kZSk7CgkJ CXN3X25vZGUgPSBOVUxMOwoJCQlyZXR1cm4gcmV0OwoJCX0KCQlyZXQgPSBpb21tdV9kZXZpY2Vf c3lzZnNfYWRkKCZmb21faW9tbXUsICZjYXJyaWVyLT5kZXYsIE5VTEwsCgkJCQkJICAgICAiZm9t X2lvbW11MCIpOwoJCWlmIChyZXQpIHsKCQkJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIoY2Fy cmllcik7CgkJCWNhcnJpZXIgPSBOVUxMOwoJCQlmd25vZGVfcmVtb3ZlX3NvZnR3YXJlX25vZGUo c3dfbm9kZSk7CgkJCXN3X25vZGUgPSBOVUxMOwoJCQlyZXR1cm4gcmV0OwoJCX0KCQlyZXQgPSBm b21fcmVnaXN0ZXIoKTsKCQlwcl9pbmZvKCJzZXR1cCBkb25lIChyZWdpc3RlciByZXQ9JWQpXG4i LCByZXQpOwoJCXJldHVybiByZXQ7Cgl9CgoJaWYgKHN0cmNtcChjbWQsICJ1bnJlZyIpID09IDAp IHsKCQlmb21fdW5yZWdpc3RlcigpOwoJCXByX2luZm8oInVucmVnIGRvbmVcbiIpOwoJCXJldHVy biAwOwoJfQoJaWYgKHN0cmNtcChjbWQsICJyZWciKSA9PSAwKSB7CgkJaW50IHJldCA9IGZvbV9y ZWdpc3RlcigpOwoKCQlwcl9pbmZvKCJyZWcgcmV0PSVkXG4iLCByZXQpOwoJCXJldHVybiByZXQ7 Cgl9CglpZiAoc3RyY21wKGNtZCwgInJlZ2xvb3AiKSA9PSAwICYmIGdvdCA9PSAyKSB7CgkJbG9u ZyBpOwoKCQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CgkJCWZvbV9yZWdpc3RlcigpOwoJCQlm b21fdW5yZWdpc3RlcigpOwoJCX0KCQlwcl9pbmZvKCJyZWdsb29wICVsZCBkb25lXG4iLCBuKTsK CQlyZXR1cm4gMDsKCX0KCWlmIChzdHJjbXAoY21kLCAiY2xpZW50IikgPT0gMCAmJiBnb3QgPT0g MikgewoJCWxvbmcgaTsKCQlpbnQgZXJyID0gMDsKCgkJaWYgKG4gPiBNQVhfQ0xJKQoJCQluID0g TUFYX0NMSTsKCQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CgkJCWlmIChmb21fbmV3X2NsaWVu dCgmY2xpW25yX2NsaV0pKSB7CgkJCQllcnIgPSAxOwoJCQkJYnJlYWs7CgkJCX0KCQkJbnJfY2xp Kys7CgkJfQoJCW1zbGVlcCg1MDApOyAvKiBsZXQgcHJvYmVzIHNldHRsZSAqLwoJCWZvciAoaSA9 IDA7IGkgPCBucl9jbGk7IGkrKykKCQkJZm9tX2RlbF9jbGllbnQoY2xpW2ldKTsKCQlucl9jbGkg PSAwOwoJCXByX2luZm8oImNsaWVudCAlbGQgZG9uZSAoZXJyPSVkKVxuIiwgbiwgZXJyKTsKCQly ZXR1cm4gMDsKCX0KCWlmICgoc3RyY21wKGNtZCwgImFiIikgPT0gMCB8fCBzdHJjbXAoY21kLCAi YWMiKSA9PSAwIHx8CgkgICAgIHN0cmNtcChjbWQsICJhYzEiKSA9PSAwKSAmJiBnb3QgPT0gMikg ewoJCXVzZV9zaW5nbGV0b24gPSAoY21kWzJdID09ICcxJyk7CgkJc3RhdF9hX2RvbmUgPSBzdGF0 X2JfZG9uZSA9IHN0YXRfY19kb25lID0gMDsKCQlydW5fcmFjZShjbWQsIChpbnQpbik7CgkJcmV0 dXJuIDA7Cgl9CglpZiAoc3RyY21wKGNtZCwgImNsZWFudXAiKSA9PSAwKSB7CgkJaW50IGk7CgoJ CWZvbV91bnJlZ2lzdGVyKCk7CgkJZm9yIChpID0gMDsgaSA8IG5yX2NsaTsgaSsrKQoJCQlpZiAo Y2xpW2ldKQoJCQkJZm9tX2RlbF9jbGllbnQoY2xpW2ldKTsKCQlucl9jbGkgPSAwOwoJCXByX2lu Zm8oImNsZWFudXAgZG9uZSAobW9kdWxlIHJlZmNvdW50IGxlYWsgPT4gcm1tb2QgRUJVU1kgaXMg ZXhwZWN0ZWQgYWZ0ZXIgcmFjZXMpXG4iKTsKCQlyZXR1cm4gMDsKCX0KCWlmIChzdHJjbXAoY21k LCAic3RhdHVzIikgPT0gMCkgewoJCXByX2luZm8oInN0YXRzOiByZWc9JWx1IHVucmVnPSVsdSBy ZWdfZmFpbD0lbHUgYWRkX29rPSVsdSBhZGRfZmFpbD0lbHUgZndfZmFpbD0lbHUgZGVsPSVsdVxu IiwKCQkJc3RhdF9yZWcsIHN0YXRfdW5yZWcsIHN0YXRfcmVnX2ZhaWwsIHN0YXRfYWRkX29rLAoJ CQlzdGF0X2FkZF9mYWlsLCBzdGF0X2Z3X2ZhaWwsIHN0YXRfZGVsKTsKCQlwcl9pbmZvKCJjbGll bnRzIHRyYWNrZWQ9JWQgc2luZ2xldG9uPSVkXG4iLCBucl9jbGksIHVzZV9zaW5nbGV0b24pOwoJ CXJldHVybiAwOwoJfQoKCXJldHVybiAtRUlOVkFMOwp9CgpzdGF0aWMgY29uc3Qgc3RydWN0IGtl cm5lbF9wYXJhbV9vcHMgYWN0aW9uX29wcyA9IHsKCS5zZXQgPSBhY3Rpb25fc2V0LAoJLmdldCA9 IHBhcmFtX2dldF9zdHJpbmcsCn07Cm1vZHVsZV9wYXJhbV9jYihhY3Rpb24sICZhY3Rpb25fb3Bz LCAmYWN0aW9uX2J1ZiwgMDYwMCk7Ck1PRFVMRV9QQVJNX0RFU0MoYWN0aW9uLCAic2V0dXB8dW5y ZWd8cmVnfHJlZ2xvb3AgTnxjbGllbnQgTnxhYiBOfGFjIE58YWMxIE58Y2xlYW51cHxzdGF0dXMi KTsKCnN0YXRpYyBpbnQgX19pbml0IGlvbW11cmFjZV9pbml0KHZvaWQpCnsKCXByX2luZm8oImxv YWRlZCAoa2VybmVsIGhhcyBJT01NVV9BUEkpXG4iKTsKCXJldHVybiAwOwp9CgpzdGF0aWMgdm9p ZCBfX2V4aXQgaW9tbXVyYWNlX2V4aXQodm9pZCkKewoJaW50IGk7CgoJZm9tX3VucmVnaXN0ZXIo KTsKCWZvciAoaSA9IDA7IGkgPCBucl9jbGk7IGkrKykKCQlpZiAoY2xpW2ldKQoJCQlmb21fZGVs X2NsaWVudChjbGlbaV0pOwoJbnJfY2xpID0gMDsKCWlmIChjYXJyaWVyKSB7CgkJaW9tbXVfZGV2 aWNlX3N5c2ZzX3JlbW92ZSgmZm9tX2lvbW11KTsKCQlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3Rl cihjYXJyaWVyKTsKCQlmd25vZGVfcmVtb3ZlX3NvZnR3YXJlX25vZGUoc3dfbm9kZSk7Cgl9Cglw cl9pbmZvKCJ1bmxvYWRlZFxuIik7Cn0KCm1vZHVsZV9pbml0KGlvbW11cmFjZV9pbml0KTsKbW9k dWxlX2V4aXQoaW9tbXVyYWNlX2V4aXQpOwoKTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpNT0RVTEVf REVTQ1JJUFRJT04oIklPTU1VIGxpZmVjeWNsZSByYWNlIHZlcmlmaWNhdGlvbiBkcml2ZXIgKEhW LTMvSFYtNCkiKTsK ------=_Part_283600_219387960.1792676552982 Content-Type: application/octet-stream; name=Makefile Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Makefile" IyBDb21tb24gdmVyaWZpY2F0aW9uIG1vZHVsZXMgKG5vIFNQSSBkZXBlbmRlbmN5KQojIExpbnV4 IDcuMyBleHRtb2QgcHJvdG9jb2w6IHBsYWluIG9iai1tIE1ha2VmaWxlOyBidWlsZCB3aXRoCiMg ICBtYWtlIC1DIDxrZXJuZWwtb3V0cHV0LWRpcj4gTT08dGhpcy1kaXI+IG1vZHVsZXMKIyBtY3Jz aW0gbmVlZHMgQ09ORklHX1NQST15IChidWlsZC1rYXNhbi1zcGktNy4zKToKIyAgIG1ha2UgTUNS U0lNPTEgLUMgPHNwaS1vdXRwdXQtZGlyPiBNPTx0aGlzLWRpcj4gbW9kdWxlcwpvYmotbSArPSBw bXVfcmFjZS5vIHI0X3N0YWxsLm8gcmVnbWFwX3JhY2UubyBpb21tdXJhY2UubyBmaWJyYWNlLm8K CmlmZXEgKCQoTUNSU0lNKSwxKQpvYmotbSArPSBtY3JzaW0ubwplbmRpZgoKIyB1c2Vyc3BhY2Ug c3RhdGljIGhlbHBlciBmb3IgdGhlIGZpYiB2ZXJpZmljYXRpb24gKGtlcm5lbC1pbmRlcGVuZGVu dCkKZmlid3I6IGZpYndyLmMKCSQoQ0MpIC1zdGF0aWMgLU8yIC1vICRAICQ8Cg== ------=_Part_283600_219387960.1792676552982--