Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1752787yba; Sat, 27 Apr 2019 06:25:10 -0700 (PDT) X-Google-Smtp-Source: APXvYqwpeMiYu88kZjI71dGzcgdz/YE+R6vvKxIGGvvkEFq1odfF0It6e75YWBNExF2FyHddXxh3 X-Received: by 2002:a62:fb0a:: with SMTP id x10mr19126353pfm.179.1556371509932; Sat, 27 Apr 2019 06:25:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556371509; cv=none; d=google.com; s=arc-20160816; b=FGNdcDGrYDdwIwzSzoaNDes06FkqezO2DYo+EiZTMZx12BGi9Tgauc7lI34MffDWCZ vFfgEvnmTQE0n5egw4/d9It0C7j7ZJ8/MNp38rQK6EMJRpokBdd3FtMEgxcBXnGB9E1g JX7cLuA3gHzc/GMEEXwIwFUqU6mYBtZeC6yhvvSS6KSQCv0/SaxBT/HAJwLT4TeeyVcD vMI581QvnirkW3b7Ao4LS2dITQ3Z9a9aIJ3zLmxC1Zz0GPNMyxkyi5C6A0loyYKF08n5 TYZKmHxxMVhOJAvxjX7yCmtQS4aKZ1y5nPMEKffZKYZr9PD6+icHRhy0EQB2zyYfLGQp NfoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature; bh=+L+0WKDCU5bMXahL/VDIEXArHz07lWEp4nUTjIflNxE=; b=MFkm16JbGHwTxbyYuEzECV0G1BojQxNLJssdunyLBGw8vo29XE5C0Cy2dZ7/ZF7J5z +hAu2AmxpA5cJhFVQ4lBZ53wOyaIGjlFcbfnnzaHy/INnITRmdLCYai+PG0oJDxqkX/C 4NsfcWrMy55LmAUWwa+yyKdJea/7f9tT/hcamuq8b5WXRvxT0NlQz8h5+bE6C9RvhIUE NnBxFPqneYdUooZSZ9OUkeJaqA9+UsclN4GVetA+g2zxXK7D3SKheOK3NLxJ4rOTeezf vVax+fCdD0k4TJTNRXD2jMxcwPP7+L8OqUSWvPbu03JOjVrFd/TZ2+4Wt0u/fv/bVqwt qhpA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@darbyshire-bryant.me.uk header.s=selector1 header.b=U2woQauo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=REJECT dis=NONE) header.from=darbyshire-bryant.me.uk Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d1si21106913plo.9.2019.04.27.06.24.54; Sat, 27 Apr 2019 06:25:09 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@darbyshire-bryant.me.uk header.s=selector1 header.b=U2woQauo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=REJECT dis=NONE) header.from=darbyshire-bryant.me.uk Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726688AbfD0NIX (ORCPT + 99 others); Sat, 27 Apr 2019 09:08:23 -0400 Received: from mail-eopbgr10056.outbound.protection.outlook.com ([40.107.1.56]:17984 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726345AbfD0NIX (ORCPT ); Sat, 27 Apr 2019 09:08:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=darbyshire-bryant.me.uk; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+L+0WKDCU5bMXahL/VDIEXArHz07lWEp4nUTjIflNxE=; b=U2woQauohbw8TXkQqyQ2SemopjgmQ/b1zptjK699m/uPFDEYQrHc/CeAb2T0S+zroqfidX+Kz7x1GhxqnEJZgMp8nvJU1q/Ir+HdMvfzAQONAA/v6tzb8YZo5OoODVmiKNEQTmIkjQeR/HrK1udPs5hOXIKLxqaJXRH0cPhc/7U= Received: from VI1PR0302MB2750.eurprd03.prod.outlook.com (10.171.105.143) by VI1PR0302MB2607.eurprd03.prod.outlook.com (10.171.104.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.13; Sat, 27 Apr 2019 13:08:13 +0000 Received: from VI1PR0302MB2750.eurprd03.prod.outlook.com ([fe80::b584:8ced:9d52:d88e]) by VI1PR0302MB2750.eurprd03.prod.outlook.com ([fe80::b584:8ced:9d52:d88e%6]) with mapi id 15.20.1835.015; Sat, 27 Apr 2019 13:08:13 +0000 From: Kevin 'ldir' Darbyshire-Bryant To: Jamal Hadi Salim , Cong Wang , Jiri Pirko , "David S. Miller" , Shuah Khan , "linux-kernel@vger.kernel.org" , "netdev@vger.kernel.org" , "linux-kselftest@vger.kernel.org" CC: Kevin 'ldir' Darbyshire-Bryant Subject: [PATCH net-next] net: sched: Introduce act_ctinfo action Thread-Topic: [PATCH net-next] net: sched: Introduce act_ctinfo action Thread-Index: AQHU/PpFKlFqg3WFM0Ghoph4kvG8Kg== Date: Sat, 27 Apr 2019 13:08:13 +0000 Message-ID: <20190427130739.44614-1-ldir@darbyshire-bryant.me.uk> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: LO2P265CA0436.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:e::16) To VI1PR0302MB2750.eurprd03.prod.outlook.com (2603:10a6:800:e2::15) authentication-results: spf=none (sender IP is ) smtp.mailfrom=ldir@darbyshire-bryant.me.uk; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 (Apple Git-117) x-originating-ip: [193.240.142.133] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d279ec48-f2ec-4dd2-9491-08d6cb11674b x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(7021145)(8989299)(4534185)(7022145)(4603075)(4627221)(201702281549075)(8990200)(7048125)(7024125)(7027125)(7023125)(5600141)(711020)(4605104)(2017052603328)(7193020);SRVR:VI1PR0302MB2607; x-ms-traffictypediagnostic: VI1PR0302MB2607: x-microsoft-antispam-prvs: x-forefront-prvs: 0020414413 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(136003)(39830400003)(346002)(376002)(396003)(366004)(189003)(199004)(2616005)(476003)(97736004)(486006)(1076003)(68736007)(71200400001)(71190400001)(50226002)(66574012)(36756003)(386003)(6506007)(102836004)(30864003)(8676002)(186003)(8936002)(5660300002)(26005)(81156014)(81166006)(2501003)(66066001)(99286004)(53946003)(52116002)(6512007)(66556008)(73956011)(66476007)(110136005)(2906002)(3846002)(6116002)(4326008)(14444005)(256004)(6436002)(25786009)(508600001)(14454004)(2201001)(305945005)(86362001)(53936002)(74482002)(6486002)(7736002)(64756008)(316002)(107886003)(66446008)(66946007)(2004002);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0302MB2607;H:VI1PR0302MB2750.eurprd03.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: darbyshire-bryant.me.uk does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: XXxwiFMcSKFd2a860CvcONXP2hL7kkKUTf5S7j0MN4z+NFnnOCIORxmNZUfZoTyXsenyKuywG5VT7Ctd/Ure375Cn2l+37kNZFsLiVutBVKt3IjR5jZRHB55zWuEjiC3kxVa6Sy2k6FTJoBJb0fVt5hoZgT+xIohu3Eu9E1HS+c+CPrkmNGH++jD3CgW5IioPXiIq88QlDqF5a5Dx8gquU0WJWP6z63NCJ43GbmNp35MZ2Cq9mV/Vi0s08p+ONGIuNaDESYeabqj0XSlTOHgDHuKjOiyhouSEfQGEBEntEaO8BnJr9Zo4QX7hgm1zQGaveh4SLqDQWF58ubpUzn7TtyB3Se6Dcd4uvcG7CxCMeUCyQZKw1BCfNuNVuQmprULoFHJQyjI1gwxEWpORcuIGef9MtZtOZJO8GlAc9cMV/8= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: darbyshire-bryant.me.uk X-MS-Exchange-CrossTenant-Network-Message-Id: d279ec48-f2ec-4dd2-9491-08d6cb11674b X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Apr 2019 13:08:13.6120 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9151708b-c553-406f-8e56-694f435154a4 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0302MB2607 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Y3RpbmZvIGlzIGEgbmV3IHRjIGZpbHRlciBhY3Rpb24gbW9kdWxlLiAgSXQgaXMgZGVzaWduZWQg dG8gcmVzdG9yZSBEU0NQcw0Kc3RvcmVkIGluIGNvbm50cmFjayBtYXJrcyBpbnRvIHRoZSBpcHY0 L3Y2IGRpZmZzZXJ2IGZpZWxkLg0KDQpUaGUgZmVhdHVyZSBpcyBpbnRlbmRlZCBmb3IgdXNlIGFu ZCBoYXMgYmVlbiBmb3VuZCB1c2VmdWwgZm9yIHJlc3RvcmluZw0KaW5ncmVzcyBjbGFzc2lmaWNh dGlvbnMgYmFzZWQgb24gZWdyZXNzIGNsYXNzaWZpY2F0aW9ucyBhY3Jvc3MgbGlua3MNCnRoYXQg YmxlYWNoIG9yIG90aGVyd2lzZSBjaGFuZ2UgRFNDUCwgdHlwaWNhbGx5IGhvbWUgSVNQIEludGVy bmV0IGxpbmtzLg0KUmVzdG9yaW5nIERTQ1Agb24gaW5ncmVzcyBvbiB0aGUgV0FOIGxpbmsgYWxs b3dzIHFkaXNjcyBzdWNoIGFzIENBS0UgdG8NCnNoYXBlIGluYm91bmQgcGFja2V0cyBhY2NvcmRp bmcgdG8gcG9saWNpZXMgdGhhdCBhcmUgZWFzaWVyIHRvIGluZGljYXRlDQpvbiBlZ3Jlc3MuDQoN CkluZ3Jlc3MgY2xhc3NpZmljYXRpb24gaXMgdHJhZGl0aW9uYWxseSBhIGNoYWxsZW5naW5nIHRh c2sgc2luY2UNCmlwdGFibGVzIHJ1bGVzIGhhdmVuJ3QgeWV0IHJ1biBhbmQgdGMgZmlsdGVyL2VC UEYgcHJvZ3JhbXMgYXJlIHByZS1OQVQNCmxvb2t1cHMsIGhlbmNlIGFyZSB1bmFibGUgdG8gc2Vl IGludGVybmFsIElQdjQgYWRkcmVzc2VzIGFzIHVzZWQgb24gdGhlDQp0eXBpY2FsIGhvbWUgbWFz cXVlcmFkaW5nIGdhdGV3YXkuDQoNCmN0aW5mbyB1bmRlcnN0YW5kcyB0aGUgZm9sbG93aW5nIHBh cmFtZXRlcnM6DQoNCmRzY3AgZHNjcG1hc2tbL3N0YXRlbWFza10NCg0KZHNjcG1hc2sgLSBhIDMy IGJpdCBtYXNrIG9mIGF0IGxlYXN0IDYgY29udGlndW91cyBiaXRzIGFuZCBpbmRpY2F0ZXMNCndo ZXJlIGN0aW5mbyB3aWxsIGZpbmQgdGhlIERTQ1AgYml0cyBzdG9yZWQgaW4gdGhlIGNvbm50cmFj ayBtYXJrLg0KDQpzdGF0ZW1hc2sgLSBhIDMyIGJpdCBtYXNrIG9mICh1c3VhbGx5KSAxIGJpdCBs ZW5ndGgsIG91dHNpZGUgdGhlIGFyZWENCnNwZWNpZmllZCBieSBkc2NwbWFzay4gIFRoaXMgcmVw cmVzZW50cyBhIGNvbmRpdGlvbmFsIG9wZXJhdGlvbiBmbGFnDQp3aGVyZWJ5IHRoZSBEU0NQIGlz IG9ubHkgcmVzdG9yZWQgaWYgdGhlIGZsYWcgaXMgc2V0LiAgVGhpcyBpcyB1c2VmdWwgdG8NCmlt cGxlbWVudCBhICdvbmUgc2hvdCcgaXB0YWJsZXMgYmFzZWQgY2xhc3NpZmljYXRpb24gd2hlcmUg dGhlDQonY29tcGxpY2F0ZWQnIGlwdGFibGVzIHJ1bGVzIGFyZSBvbmx5IHJ1biBvbmNlIHRvIGNs YXNzaWZ5IHRoZQ0KY29ubmVjdGlvbiBvbiBpbml0aWFsIChlZ3Jlc3MpIHBhY2tldCBhbmQgc3Vi c2VxdWVudCBwYWNrZXRzIGFyZSBhbGwNCm1hcmtlZC9yZXN0b3JlZCB3aXRoIHRoZSBzYW1lIERT Q1AuICBBIG1hc2sgb2YgemVybyBkaXNhYmxlcyB0aGUNCmNvbmRpdGlvbmFsIGJlaGF2aW91ciBp ZS4gdGhlIGNvbm50cmFjayBtYXJrIERTQ1AgYml0cyBhcmUgYWx3YXlzDQpyZXN0b3JlZCB0byB0 aGUgaXAgZGlmZnNlcnYgZmllbGQgKGFzc3VtaW5nIHRoZSBjb25udHJhY2sgZW50cnkgaXMgZm91 bmQNCiYgdGhlIHNrYiBpcyBhbiBpcHY0L2lwdjYgdHlwZSkNCg0Kb3B0aW9uYWwgcGFyYW1ldGVy czoNCg0Kem9uZSAtIGNvbm50cmFjayB6b25lDQoNCmNvbnRyb2wgLSBhY3Rpb24gcmVsYXRlZCBj b250cm9sIChyZWNsYXNzaWZ5IHwgcGlwZSB8IGRyb3AgfCBjb250aW51ZSB8DQpvayB8IGdvdG8g Y2hhaW4gPENIQUlOX0lOREVYPikNCg0KZS5nLiBkc2NwIDB4ZmMwMDAwMDAvMHgwMTAwMDAwMA0K DQp8LS0tLTB4RkMtLS0tY29ubnRyYWNrIG1hcmstLS0tMDAwMDAwLS0tfA0KfCBCaXRzIDMxLTI2 IHwgYml0IDI1IHwgYml0MjQgfH5+fiBCaXQgMHwNCnwgRFNDUCAgICAgICB8IHVudXNlZCB8IGZs YWcgIHx1bnVzZWQgICB8DQp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0weDAxLS0tMDAwMDAwLS0t fA0KICAgICAgfCAgICAgICAgICAgICAgICAgICB8DQogICAgICB8ICAgICAgICAgICAgICAgICAg IHwNCiAgICAgIC0tLXwgICAgICAgICAgICAgQ29uZGl0aW9uYWwgZmxhZw0KICAgICAgICAgdiAg ICAgICAgICAgICBvbmx5IHJlc3RvcmUgaWYgc2V0DQp8LWlwIGRpZmZzZXJ2LXwNCnwgNiBiaXRz ICAgICAgfA0KfC0tLS0tLS0tLS0tLS18DQoNClNpZ25lZC1vZmYtYnk6IEtldmluIERhcmJ5c2hp cmUtQnJ5YW50IDxsZGlyQGRhcmJ5c2hpcmUtYnJ5YW50Lm1lLnVrPg0KLS0tDQogaW5jbHVkZS9u ZXQvdGNfYWN0L3RjX2N0aW5mby5oICAgICAgICAgICAgfCAgMjQgKysNCiBpbmNsdWRlL3VhcGkv bGludXgvcGt0X2Nscy5oICAgICAgICAgICAgICB8ICAgMSArDQogaW5jbHVkZS91YXBpL2xpbnV4 L3RjX2FjdC90Y19jdGluZm8uaCAgICAgfCAgMzMgKysNCiBuZXQvc2NoZWQvS2NvbmZpZyAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAxMyArDQogbmV0L3NjaGVkL01ha2VmaWxlICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDEgKw0KIG5ldC9zY2hlZC9hY3RfY3RpbmZvLmMgICAgICAgICAg ICAgICAgICAgIHwgMzc1ICsrKysrKysrKysrKysrKysrKysrKysNCiB0b29scy90ZXN0aW5nL3Nl bGZ0ZXN0cy90Yy10ZXN0aW5nL2NvbmZpZyB8ICAgMSArDQogNyBmaWxlcyBjaGFuZ2VkLCA0NDgg aW5zZXJ0aW9ucygrKQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL25ldC90Y19hY3QvdGNf Y3RpbmZvLmgNCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS91YXBpL2xpbnV4L3RjX2FjdC90 Y19jdGluZm8uaA0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBuZXQvc2NoZWQvYWN0X2N0aW5mby5jDQoN CmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC90Y19hY3QvdGNfY3RpbmZvLmggYi9pbmNsdWRlL25l dC90Y19hY3QvdGNfY3RpbmZvLmgNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw MDAwMDAuLmJiMzNlNjZkM2VhNQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvaW5jbHVkZS9uZXQvdGNf YWN0L3RjX2N0aW5mby5oDQpAQCAtMCwwICsxLDI0IEBADQorLyogU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAgKi8NCisjaWZuZGVmIF9fTkVUX1RDX0NUSU5GT19IDQorI2RlZmluZSBf X05FVF9UQ19DVElORk9fSA0KKw0KKyNpbmNsdWRlIDxuZXQvYWN0X2FwaS5oPg0KKw0KK3N0cnVj dCB0Y2ZfY3RpbmZvX3BhcmFtcyB7DQorCXN0cnVjdCBuZXQgKm5ldDsNCisJdTMyIGRzY3BtYXNr Ow0KKwl1MzIgZHNjcHN0YXRlbWFzazsNCisJdTE2IHpvbmU7DQorCXU4IG1vZGU7DQorCXU4IGRz Y3BtYXNrc2hpZnQ7DQorCXN0cnVjdCByY3VfaGVhZCByY3U7DQorfTsNCisNCitzdHJ1Y3QgdGNm X2N0aW5mbyB7DQorCXN0cnVjdCB0Y19hY3Rpb24gY29tbW9uOw0KKwlzdHJ1Y3QgdGNmX2N0aW5m b19wYXJhbXMgX19yY3UgKnBhcmFtczsNCit9Ow0KKw0KKyNkZWZpbmUgdG9fY3RpbmZvKGEpICgo c3RydWN0IHRjZl9jdGluZm8gKilhKQ0KKw0KKyNlbmRpZiAvKiBfX05FVF9UQ19DVElORk9fSCAq Lw0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9wa3RfY2xzLmggYi9pbmNsdWRlL3Vh cGkvbGludXgvcGt0X2Nscy5oDQppbmRleCA1MWEwNDk2Zjc4ZWEuLmE5MzY4MGZjNGJmYSAxMDA2 NDQNCi0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9wa3RfY2xzLmgNCisrKyBiL2luY2x1ZGUvdWFw aS9saW51eC9wa3RfY2xzLmgNCkBAIC0xMDUsNiArMTA1LDcgQEAgZW51bSB0Y2FfaWQgew0KIAlU Q0FfSURfSUZFID0gVENBX0FDVF9JRkUsDQogCVRDQV9JRF9TQU1QTEUgPSBUQ0FfQUNUX1NBTVBM RSwNCiAJLyogb3RoZXIgYWN0aW9ucyBnbyBoZXJlICovDQorCVRDQV9JRF9DVElORk8sDQogCV9f VENBX0lEX01BWCA9IDI1NQ0KIH07DQogDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4 L3RjX2FjdC90Y19jdGluZm8uaCBiL2luY2x1ZGUvdWFwaS9saW51eC90Y19hY3QvdGNfY3RpbmZv LmgNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAuLmI4NDkwMmI1ZTNi MQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L3RjX2FjdC90Y19jdGlu Zm8uaA0KQEAgLTAsMCArMSwzMyBAQA0KKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlICovDQorI2lmbmRlZiBfX1VBUElfVENfQ1RJTkZP X0gNCisjZGVmaW5lIF9fVUFQSV9UQ19DVElORk9fSA0KKw0KKyNpbmNsdWRlIDxsaW51eC90eXBl cy5oPg0KKyNpbmNsdWRlIDxsaW51eC9wa3RfY2xzLmg+DQorDQorc3RydWN0IHRjX2N0aW5mbyB7 DQorCXRjX2dlbjsNCit9Ow0KKw0KK3N0cnVjdCB0Y19jdGluZm9fZHNjcCB7DQorCV9fdTMyIG1h c2s7DQorCV9fdTMyIHN0YXRlbWFzazsNCit9Ow0KKw0KK2VudW0gew0KKwlUQ0FfQ1RJTkZPX1VO U1BFQywNCisJVENBX0NUSU5GT19BQ1QsDQorCVRDQV9DVElORk9fWk9ORSwNCisJVENBX0NUSU5G T19EU0NQX1BBUk1TLA0KKwlUQ0FfQ1RJTkZPX01PREVfRFNDUCwNCisJVENBX0NUSU5GT19UTSwN CisJVENBX0NUSU5GT19QQUQsDQorCV9fVENBX0NUSU5GT19NQVgNCit9Ow0KKyNkZWZpbmUgVENB X0NUSU5GT19NQVggKF9fVENBX0NUSU5GT19NQVggLSAxKQ0KKw0KK2VudW0gew0KKwlDVElORk9f TU9ERV9TRVREU0NQCT0gQklUKDApDQorfTsNCisNCisjZW5kaWYNCmRpZmYgLS1naXQgYS9uZXQv c2NoZWQvS2NvbmZpZyBiL25ldC9zY2hlZC9LY29uZmlnDQppbmRleCA1YzAyYWQ5N2VmMjMuLjVh YzAxYzVlYmFlOSAxMDA2NDQNCi0tLSBhL25ldC9zY2hlZC9LY29uZmlnDQorKysgYi9uZXQvc2No ZWQvS2NvbmZpZw0KQEAgLTg3Niw2ICs4NzYsMTkgQEAgY29uZmlnIE5FVF9BQ1RfQ09OTk1BUksN CiAJICBUbyBjb21waWxlIHRoaXMgY29kZSBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhl DQogCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGFjdF9jb25ubWFyay4NCiANCitjb25maWcgTkVU X0FDVF9DVElORk8NCisgICAgICAgIHRyaXN0YXRlICJOZXRmaWx0ZXIgQ29ubm1hcmsgdG8gRFND UCBSZXRyaWV2ZXIiDQorICAgICAgICBkZXBlbmRzIG9uIE5FVF9DTFNfQUNUICYmIE5FVEZJTFRF UiAmJiBJUF9ORl9JUFRBQkxFUw0KKyAgICAgICAgZGVwZW5kcyBvbiBORl9DT05OVFJBQ0sgJiYg TkZfQ09OTlRSQUNLX01BUksNCisgICAgICAgIGhlbHANCisJICBTYXkgWSBoZXJlIHRvIGFsbG93 IHRyYW5zZmVyIG9mIGEgY29ubm1hcmsgc3RvcmVkIERTQ1AgaW50bw0KKwkgIGlwdjQvdjYgZGlm ZnNlcnYNCisNCisJICBJZiB1bnN1cmUsIHNheSBOLg0KKw0KKwkgIFRvIGNvbXBpbGUgdGhpcyBj b2RlIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUNCisJICBtb2R1bGUgd2lsbCBiZSBj YWxsZWQgYWN0X2N0aW5mby4NCisNCiBjb25maWcgTkVUX0FDVF9TS0JNT0QNCiAgICAgICAgIHRy aXN0YXRlICJza2IgZGF0YSBtb2RpZmljYXRpb24gYWN0aW9uIg0KICAgICAgICAgZGVwZW5kcyBv biBORVRfQ0xTX0FDVA0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9NYWtlZmlsZSBiL25ldC9zY2hl ZC9NYWtlZmlsZQ0KaW5kZXggOGE0MDQzMWQ3YjVjLi5kNTRiZmNiZDc5ODEgMTAwNjQ0DQotLS0g YS9uZXQvc2NoZWQvTWFrZWZpbGUNCisrKyBiL25ldC9zY2hlZC9NYWtlZmlsZQ0KQEAgLTIxLDYg KzIxLDcgQEAgb2JqLSQoQ09ORklHX05FVF9BQ1RfQ1NVTSkJKz0gYWN0X2NzdW0ubw0KIG9iai0k KENPTkZJR19ORVRfQUNUX1ZMQU4pCSs9IGFjdF92bGFuLm8NCiBvYmotJChDT05GSUdfTkVUX0FD VF9CUEYpCSs9IGFjdF9icGYubw0KIG9iai0kKENPTkZJR19ORVRfQUNUX0NPTk5NQVJLKQkrPSBh Y3RfY29ubm1hcmsubw0KK29iai0kKENPTkZJR19ORVRfQUNUX0NUSU5GTykJKz0gYWN0X2N0aW5m by5vDQogb2JqLSQoQ09ORklHX05FVF9BQ1RfU0tCTU9EKQkrPSBhY3Rfc2tibW9kLm8NCiBvYmot JChDT05GSUdfTkVUX0FDVF9JRkUpCSs9IGFjdF9pZmUubw0KIG9iai0kKENPTkZJR19ORVRfSUZF X1NLQk1BUkspCSs9IGFjdF9tZXRhX21hcmsubw0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9hY3Rf Y3RpbmZvLmMgYi9uZXQvc2NoZWQvYWN0X2N0aW5mby5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMDAwMDAwMDAwMDAwLi4wMWE4Njk0NjUxZWENCi0tLSAvZGV2L251bGwNCisrKyBiL25l dC9zY2hlZC9hY3RfY3RpbmZvLmMNCkBAIC0wLDAgKzEsMzc1IEBADQorLy8gU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUNCisvKiBuZXQvc2No ZWQvYWN0X2N0aW5mby5jICBuZXRmaWx0ZXIgY3RpbmZvIGNvbm5tYXJrLT5EU0NQIGFjdGlvbg0K KyAqDQorICogQ29weXJpZ2h0IChjKSAyMDE5IEtldmluIERhcmJ5c2hpcmUtQnJ5YW50IDxsZGly QGRhcmJ5c2hpcmUtYnJ5YW50Lm1lLnVrPg0KKyAqDQorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCisgKiBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQ0KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDIgb2YgdGhlIExpY2Vuc2UsIG9yDQorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4NCisgKi8NCisNCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQorI2luY2x1ZGUgPGxp bnV4L2luaXQuaD4NCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+DQorI2luY2x1ZGUgPGxpbnV4 L3NrYnVmZi5oPg0KKyNpbmNsdWRlIDxsaW51eC9ydG5ldGxpbmsuaD4NCisjaW5jbHVkZSA8bGlu dXgvcGt0X2Nscy5oPg0KKyNpbmNsdWRlIDxsaW51eC9pcC5oPg0KKyNpbmNsdWRlIDxsaW51eC9p cHY2Lmg+DQorI2luY2x1ZGUgPG5ldC9uZXRsaW5rLmg+DQorI2luY2x1ZGUgPG5ldC9wa3Rfc2No ZWQuaD4NCisjaW5jbHVkZSA8bmV0L2FjdF9hcGkuaD4NCisjaW5jbHVkZSA8bmV0L3BrdF9jbHMu aD4NCisjaW5jbHVkZSA8dWFwaS9saW51eC90Y19hY3QvdGNfY3RpbmZvLmg+DQorI2luY2x1ZGUg PG5ldC90Y19hY3QvdGNfY3RpbmZvLmg+DQorDQorI2luY2x1ZGUgPG5ldC9uZXRmaWx0ZXIvbmZf Y29ubnRyYWNrLmg+DQorI2luY2x1ZGUgPG5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2NvcmUu aD4NCisjaW5jbHVkZSA8bmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfZWNhY2hlLmg+DQorI2lu Y2x1ZGUgPG5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3pvbmVzLmg+DQorDQorc3RhdGljIHVu c2lnbmVkIGludCBjdGluZm9fbmV0X2lkOw0KK3N0YXRpYyBzdHJ1Y3QgdGNfYWN0aW9uX29wcyBh Y3RfY3RpbmZvX29wczsNCisNCitzdGF0aWMgdm9pZCB0Y2ZfY3RpbmZvX2RzY3Bfc2V0KHN0cnVj dCBuZl9jb25uICpjdCwgc3RydWN0IHRjZl9jdGluZm8gKmNhLA0KKwkJCQlzdHJ1Y3QgdGNmX2N0 aW5mb19wYXJhbXMgKmNwLA0KKwkJCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgd2xlbiwgaW50 IHByb3RvKQ0KK3sNCisJdTggZHNjcCwgbmV3ZHNjcDsNCisNCisJbmV3ZHNjcCA9ICgoKGN0LT5t YXJrICYgY3AtPmRzY3BtYXNrKSA+PiBjcC0+ZHNjcG1hc2tzaGlmdCkgPDwgMikgJg0KKwkJICAg ICB+SU5FVF9FQ05fTUFTSzsNCisNCisJLyogbWFyayBjb250YWlucyBEU0NQIHNvIHJlc3RvcmUg RFNDUCBiaXRzIGZyb20gYy0+bWFyayBpbnRvIGRpZmZzZXJ2ICovDQorCS8qIHVzaW5nIG92ZXJs aW1pdHMgc3RhdHMgdG8gY291bnQgaG93IG1hbnkgRFNDUCB1cGRhdGVzICovDQorCXN3aXRjaCAo cHJvdG8pIHsNCisJY2FzZSBORlBST1RPX0lQVjQ6DQorCQlkc2NwID0gaXB2NF9nZXRfZHNmaWVs ZChpcF9oZHIoc2tiKSkgJiB+SU5FVF9FQ05fTUFTSzsNCisJCWlmIChkc2NwICE9IG5ld2RzY3Ap IHsNCisJCQlpZiAoIXNrYl90cnlfbWFrZV93cml0YWJsZShza2IsIHdsZW4pKSB7DQorCQkJCWlw djRfY2hhbmdlX2RzZmllbGQoaXBfaGRyKHNrYiksDQorCQkJCQkJICAgIElORVRfRUNOX01BU0ss DQorCQkJCQkJICAgIG5ld2RzY3ApOw0KKwkJCQljYS0+dGNmX3FzdGF0cy5vdmVybGltaXRzKys7 DQorCQkJfSBlbHNlIHsNCisJCQkJY2EtPnRjZl9xc3RhdHMuZHJvcHMrKzsNCisJCQl9DQorCQl9 DQorCQlicmVhazsNCisJY2FzZSBORlBST1RPX0lQVjY6DQorCQlkc2NwID0gaXB2Nl9nZXRfZHNm aWVsZChpcHY2X2hkcihza2IpKSAmIH5JTkVUX0VDTl9NQVNLOw0KKwkJaWYgKGRzY3AgIT0gbmV3 ZHNjcCkgew0KKwkJCWlmICghc2tiX3RyeV9tYWtlX3dyaXRhYmxlKHNrYiwgd2xlbikpIHsNCisJ CQkJaXB2Nl9jaGFuZ2VfZHNmaWVsZChpcHY2X2hkcihza2IpLA0KKwkJCQkJCSAgICBJTkVUX0VD Tl9NQVNLLA0KKwkJCQkJCSAgICBuZXdkc2NwKTsNCisJCQkJY2EtPnRjZl9xc3RhdHMub3Zlcmxp bWl0cysrOw0KKwkJCX0gZWxzZSB7DQorCQkJCWNhLT50Y2ZfcXN0YXRzLmRyb3BzKys7DQorCQkJ fQ0KKwkJfQ0KKwkJYnJlYWs7DQorCWRlZmF1bHQ6DQorCQlicmVhazsNCisJfQ0KK30NCisNCitz dGF0aWMgaW50IHRjZl9jdGluZm9fYWN0KHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVj dCB0Y19hY3Rpb24gKmEsDQorCQkJICBzdHJ1Y3QgdGNmX3Jlc3VsdCAqcmVzKQ0KK3sNCisJY29u c3Qgc3RydWN0IG5mX2Nvbm50cmFja190dXBsZV9oYXNoICp0aGFzaCA9IE5VTEw7DQorCXN0cnVj dCBuZl9jb25udHJhY2tfdHVwbGUgdHVwbGU7DQorCWVudW0gaXBfY29ubnRyYWNrX2luZm8gY3Rp bmZvOw0KKwlzdHJ1Y3QgdGNmX2N0aW5mbyAqY2EgPSB0b19jdGluZm8oYSk7DQorCXN0cnVjdCB0 Y2ZfY3RpbmZvX3BhcmFtcyAqY3A7DQorCXN0cnVjdCBuZl9jb25udHJhY2tfem9uZSB6b25lOw0K KwlzdHJ1Y3QgbmZfY29ubiAqY3Q7DQorCWludCBwcm90bywgd2xlbjsNCisJaW50IGFjdGlvbjsN CisNCisJY3AgPSByY3VfZGVyZWZlcmVuY2VfYmgoY2EtPnBhcmFtcyk7DQorDQorCXRjZl9sYXN0 dXNlX3VwZGF0ZSgmY2EtPnRjZl90bSk7DQorCWJzdGF0c191cGRhdGUoJmNhLT50Y2ZfYnN0YXRz LCBza2IpOw0KKwlhY3Rpb24gPSBSRUFEX09OQ0UoY2EtPnRjZl9hY3Rpb24pOw0KKw0KKwkvKiBj dXJyZW50bHkgdGhlIG9ubHkgbW9kZSB3ZSBrbm93IGJ1dCBpbiBmdXR1cmUuLi4qLw0KKwlpZiAo dW5saWtlbHkoIShjcC0+bW9kZSAmIENUSU5GT19NT0RFX1NFVERTQ1ApKSkNCisJCWdvdG8gb3V0 Ow0KKw0KKwl3bGVuID0gc2tiX25ldHdvcmtfb2Zmc2V0KHNrYik7DQorCWlmICh0Y19za2JfcHJv dG9jb2woc2tiKSA9PSBodG9ucyhFVEhfUF9JUCkpIHsNCisJCXdsZW4gKz0gc2l6ZW9mKHN0cnVj dCBpcGhkcik7DQorCQlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCB3bGVuKSkNCisJCQlnb3RvIG91 dDsNCisNCisJCXByb3RvID0gTkZQUk9UT19JUFY0Ow0KKwl9IGVsc2UgaWYgKHRjX3NrYl9wcm90 b2NvbChza2IpID09IGh0b25zKEVUSF9QX0lQVjYpKSB7DQorCQl3bGVuICs9IHNpemVvZihzdHJ1 Y3QgaXB2Nmhkcik7DQorCQlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCB3bGVuKSkNCisJCQlnb3Rv IG91dDsNCisNCisJCXByb3RvID0gTkZQUk9UT19JUFY2Ow0KKwl9IGVsc2Ugew0KKwkJZ290byBv dXQ7DQorCX0NCisNCisJY3QgPSBuZl9jdF9nZXQoc2tiLCAmY3RpbmZvKTsNCisJaWYgKCFjdCkg eyAvKiBsb29rIGhhcmRlciB1c3VhbGx5IGluZ3Jlc3MgKi8NCisJCWlmICghbmZfY3RfZ2V0X3R1 cGxlcHIoc2tiLCBza2JfbmV0d29ya19vZmZzZXQoc2tiKSwNCisJCQkJICAgICAgIHByb3RvLCBj cC0+bmV0LCAmdHVwbGUpKQ0KKwkJCWdvdG8gb3V0Ow0KKwkJem9uZS5pZCA9IGNwLT56b25lOw0K KwkJem9uZS5kaXIgPSBORl9DVF9ERUZBVUxUX1pPTkVfRElSOw0KKw0KKwkJdGhhc2ggPSBuZl9j b25udHJhY2tfZmluZF9nZXQoY3AtPm5ldCwgJnpvbmUsICZ0dXBsZSk7DQorCQlpZiAoIXRoYXNo KQ0KKwkJCWdvdG8gb3V0Ow0KKw0KKwkJY3QgPSBuZl9jdF90dXBsZWhhc2hfdG9fY3RyYWNrKHRo YXNoKTsNCisJfQ0KKw0KKwlpZiAoIWNwLT5kc2Nwc3RhdGVtYXNrIHx8IChjdC0+bWFyayAmIGNw LT5kc2Nwc3RhdGVtYXNrKSkNCisJCXRjZl9jdGluZm9fZHNjcF9zZXQoY3QsIGNhLCBjcCwgc2ti LCB3bGVuLCBwcm90byk7DQorDQorCWlmICh0aGFzaCkNCisJCW5mX2N0X3B1dChjdCk7DQorb3V0 Og0KKwlyZXR1cm4gYWN0aW9uOw0KK30NCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xp Y3kgY3RpbmZvX3BvbGljeVtUQ0FfQ1RJTkZPX01BWCArIDFdID0gew0KKwlbVENBX0NUSU5GT19B Q1RdID0geyAubGVuID0gc2l6ZW9mKHN0cnVjdCB0Y19jdGluZm8pIH0sDQorCVtUQ0FfQ1RJTkZP X1pPTkVdID0geyAudHlwZSA9IE5MQV9VMTYgfSwNCisJW1RDQV9DVElORk9fTU9ERV9EU0NQXSA9 IHsgLnR5cGUgPSBOTEFfRkxBRyB9LA0KKwlbVENBX0NUSU5GT19EU0NQX1BBUk1TXSA9IHsgLmxl biA9IHNpemVvZihzdHJ1Y3QgdGNfY3RpbmZvX2RzY3ApIH0sDQorfTsNCisNCitzdGF0aWMgaW50 IHRjZl9jdGluZm9faW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwNCisJ CQkgICBzdHJ1Y3QgbmxhdHRyICplc3QsIHN0cnVjdCB0Y19hY3Rpb24gKiphLA0KKwkJCSAgIGlu dCBvdnIsIGludCBiaW5kLCBib29sIHJ0bmxfaGVsZCwNCisJCQkgICBzdHJ1Y3QgdGNmX3Byb3Rv ICp0cCwNCisJCQkgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spDQorew0KKwlzdHJ1 Y3QgdGNfYWN0aW9uX25ldCAqdG4gPSBuZXRfZ2VuZXJpYyhuZXQsIGN0aW5mb19uZXRfaWQpOw0K KwlzdHJ1Y3QgdGNmX2N0aW5mb19wYXJhbXMgKmNwX25ldzsNCisJc3RydWN0IG5sYXR0ciAqdGJb VENBX0NUSU5GT19NQVggKyAxXTsNCisJc3RydWN0IHRjZl9jaGFpbiAqZ290b19jaCA9IE5VTEw7 DQorCXN0cnVjdCB0Y2ZfY3RpbmZvICpjaTsNCisJc3RydWN0IHRjX2N0aW5mbyAqYWN0cGFybTsN CisJc3RydWN0IHRjX2N0aW5mb19kc2NwICpkc2NwcGFybTsNCisJaW50IHJldCA9IDAsIGVyciwg aTsNCisNCisJaWYgKCFubGEpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJZXJyID0gbmxhX3Bh cnNlX25lc3RlZCh0YiwgVENBX0NUSU5GT19NQVgsIG5sYSwgY3RpbmZvX3BvbGljeSwgTlVMTCk7 DQorCWlmIChlcnIgPCAwKQ0KKwkJcmV0dXJuIGVycjsNCisNCisJaWYgKCF0YltUQ0FfQ1RJTkZP X0FDVF0pDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJaWYgKHRiW1RDQV9DVElORk9fTU9ERV9E U0NQXSAmJiAhdGJbVENBX0NUSU5GT19EU0NQX1BBUk1TXSkNCisJCXJldHVybiAtRUlOVkFMOw0K Kw0KKwlhY3RwYXJtID0gbmxhX2RhdGEodGJbVENBX0NUSU5GT19BQ1RdKTsNCisJZHNjcHBhcm0g PSBubGFfZGF0YSh0YltUQ0FfQ1RJTkZPX0RTQ1BfUEFSTVNdKTsNCisNCisJaWYgKGRzY3BwYXJt KSB7DQorCQkvKiBuZWVkIGF0IGxlYXN0IGNvbnRpZ3VvdXMgNiBiaXQgbWFzayAqLw0KKwkJaSA9 IGRzY3BwYXJtLT5tYXNrID8gX19mZnMoZHNjcHBhcm0tPm1hc2spIDogMDsNCisJCWlmICgoMHgz ZiAmIChkc2NwcGFybS0+bWFzayA+PiBpKSkgIT0gMHgzZikNCisJCQlyZXR1cm4gLUVJTlZBTDsN CisJCS8qIG1hc2sgJiBzdGF0ZW1hc2sgbXVzdCBub3Qgb3ZlcmxhcCAqLw0KKwkJaWYgKGRzY3Bw YXJtLT5tYXNrICYgZHNjcHBhcm0tPnN0YXRlbWFzaykNCisJCQlyZXR1cm4gLUVJTlZBTDsNCisJ fQ0KKy8vZG9uZSB0aGUgdmFsaWRhdGlvbjpub3cgdG8gdGhlIGFjdHVhbCBhY3Rpb24gYWxsb2Nh dGlvbg0KKwllcnIgPSB0Y2ZfaWRyX2NoZWNrX2FsbG9jKHRuLCAmYWN0cGFybS0+aW5kZXgsIGEs IGJpbmQpOw0KKwlpZiAoIWVycikgew0KKwkJcmV0ID0gdGNmX2lkcl9jcmVhdGUodG4sIGFjdHBh cm0tPmluZGV4LCBlc3QsIGEsDQorCQkJCSAgICAgJmFjdF9jdGluZm9fb3BzLCBiaW5kLCBmYWxz ZSk7DQorCQlpZiAocmV0KSB7DQorCQkJdGNmX2lkcl9jbGVhbnVwKHRuLCBhY3RwYXJtLT5pbmRl eCk7DQorCQkJcmV0dXJuIHJldDsNCisJCX0NCisJfSBlbHNlIGlmIChlcnIgPiAwKSB7DQorCQlp ZiAoYmluZCkgLyogZG9uJ3Qgb3ZlcnJpZGUgZGVmYXVsdHMgKi8NCisJCQlyZXR1cm4gMDsNCisJ CWlmICghb3ZyKSB7DQorCQkJdGNmX2lkcl9yZWxlYXNlKCphLCBiaW5kKTsNCisJCQlyZXR1cm4g LUVFWElTVDsNCisJCX0NCisJfSBlbHNlIHsNCisJCXJldHVybiBlcnI7DQorCX0NCisNCisJZXJy ID0gdGNmX2FjdGlvbl9jaGVja19jdHJsYWN0KGFjdHBhcm0tPmFjdGlvbiwgdHAsICZnb3RvX2No LCBleHRhY2spOw0KKwlpZiAoZXJyIDwgMCkNCisJCWdvdG8gcmVsZWFzZV9pZHI7DQorDQorCWNp ID0gdG9fY3RpbmZvKCphKTsNCisNCisJY3BfbmV3ID0ga3phbGxvYyhzaXplb2YoKmNwX25ldyks IEdGUF9LRVJORUwpOw0KKwlpZiAodW5saWtlbHkoIWNwX25ldykpIHsNCisJCWVyciA9IC1FTk9N RU07DQorCQlnb3RvIHB1dF9jaGFpbjsNCisJfQ0KKw0KKwljcF9uZXctPm5ldCA9IG5ldDsNCisJ Y3BfbmV3LT56b25lID0gdGJbVENBX0NUSU5GT19aT05FXSA/DQorCQkJbmxhX2dldF91MTYodGJb VENBX0NUSU5GT19aT05FXSkgOiAwOw0KKwlpZiAoZHNjcHBhcm0pIHsNCisJCWNwX25ldy0+ZHNj cG1hc2sgPSBkc2NwcGFybS0+bWFzazsNCisJCWNwX25ldy0+ZHNjcG1hc2tzaGlmdCA9IGNwX25l dy0+ZHNjcG1hc2sgPw0KKwkJCQlfX2ZmcyhjcF9uZXctPmRzY3BtYXNrKSA6IDA7DQorCQljcF9u ZXctPmRzY3BzdGF0ZW1hc2sgPSBkc2NwcGFybS0+c3RhdGVtYXNrOw0KKwl9DQorDQorCWlmICh0 YltUQ0FfQ1RJTkZPX01PREVfRFNDUF0pDQorCQljcF9uZXctPm1vZGUgfD0gQ1RJTkZPX01PREVf U0VURFNDUDsNCisJZWxzZQ0KKwkJY3BfbmV3LT5tb2RlICY9IH5DVElORk9fTU9ERV9TRVREU0NQ Ow0KKw0KKwlzcGluX2xvY2tfYmgoJmNpLT50Y2ZfbG9jayk7DQorCWdvdG9fY2ggPSB0Y2ZfYWN0 aW9uX3NldF9jdHJsYWN0KCphLCBhY3RwYXJtLT5hY3Rpb24sIGdvdG9fY2gpOw0KKwlyY3Vfc3dh cF9wcm90ZWN0ZWQoY2ktPnBhcmFtcywgY3BfbmV3LA0KKwkJCSAgIGxvY2tkZXBfaXNfaGVsZCgm Y2ktPnRjZl9sb2NrKSk7DQorCXNwaW5fdW5sb2NrX2JoKCZjaS0+dGNmX2xvY2spOw0KKw0KKwlp ZiAoZ290b19jaCkNCisJCXRjZl9jaGFpbl9wdXRfYnlfYWN0KGdvdG9fY2gpOw0KKwlpZiAoY3Bf bmV3KQ0KKwkJa2ZyZWVfcmN1KGNwX25ldywgcmN1KTsNCisNCisJaWYgKHJldCA9PSBBQ1RfUF9D UkVBVEVEKQ0KKwkJdGNmX2lkcl9pbnNlcnQodG4sICphKTsNCisNCisJcmV0dXJuIHJldDsNCisN CitwdXRfY2hhaW46DQorCWlmIChnb3RvX2NoKQ0KKwkJdGNmX2NoYWluX3B1dF9ieV9hY3QoZ290 b19jaCk7DQorcmVsZWFzZV9pZHI6DQorCXRjZl9pZHJfcmVsZWFzZSgqYSwgYmluZCk7DQorCXJl dHVybiBlcnI7DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgaW50IHRjZl9jdGluZm9fZHVtcChzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgdGNfYWN0aW9uICphLA0KKwkJCQkgIGludCBiaW5kLCBp bnQgcmVmKQ0KK3sNCisJdW5zaWduZWQgY2hhciAqYiA9IHNrYl90YWlsX3BvaW50ZXIoc2tiKTsN CisJc3RydWN0IHRjZl9jdGluZm8gKmNpID0gdG9fY3RpbmZvKGEpOw0KKwlzdHJ1Y3QgdGNmX2N0 aW5mb19wYXJhbXMgKmNwOw0KKwlzdHJ1Y3QgdGNfY3RpbmZvIG9wdCA9IHsNCisJCS5pbmRleCAg ID0gY2ktPnRjZl9pbmRleCwNCisJCS5yZWZjbnQgID0gcmVmY291bnRfcmVhZCgmY2ktPnRjZl9y ZWZjbnQpIC0gcmVmLA0KKwkJLmJpbmRjbnQgPSBhdG9taWNfcmVhZCgmY2ktPnRjZl9iaW5kY250 KSAtIGJpbmQsDQorCX07DQorCXN0cnVjdCB0Y2ZfdCB0Ow0KKwlzdHJ1Y3QgdGNfY3RpbmZvX2Rz Y3AgZHNjcHBhcm07DQorDQorCXNwaW5fbG9ja19iaCgmY2ktPnRjZl9sb2NrKTsNCisJY3AgPSBy Y3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGNpLT5wYXJhbXMsDQorCQkJCSAgICAgICBsb2NrZGVw X2lzX2hlbGQoJmNpLT50Y2ZfbG9jaykpOw0KKwlvcHQuYWN0aW9uID0gY2ktPnRjZl9hY3Rpb247 DQorDQorCWlmIChubGFfcHV0KHNrYiwgVENBX0NUSU5GT19BQ1QsIHNpemVvZihvcHQpLCAmb3B0 KSkNCisJCWdvdG8gbmxhX3B1dF9mYWlsdXJlOw0KKw0KKwlpZiAoY3AtPm1vZGUgJiBDVElORk9f TU9ERV9TRVREU0NQKSB7DQorCQlkc2NwcGFybS5tYXNrID0gY3AtPmRzY3BtYXNrOw0KKwkJZHNj cHBhcm0uc3RhdGVtYXNrID0gY3AtPmRzY3BzdGF0ZW1hc2s7DQorCQlpZiAobmxhX3B1dChza2Is IFRDQV9DVElORk9fRFNDUF9QQVJNUywgc2l6ZW9mKGRzY3BwYXJtKSwNCisJCQkgICAgJmRzY3Bw YXJtKSkNCisJCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsNCisNCisJCWlmIChubGFfcHV0X2ZsYWco c2tiLCBUQ0FfQ1RJTkZPX01PREVfRFNDUCkpDQorCQkJZ290byBubGFfcHV0X2ZhaWx1cmU7DQor CX0NCisNCisJaWYgKGNwLT56b25lKSB7DQorCQlpZiAobmxhX3B1dF91MTYoc2tiLCBUQ0FfQ1RJ TkZPX1pPTkUsIGNwLT56b25lKSkNCisJCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsNCisJfQ0KKw0K Kwl0Y2ZfdG1fZHVtcCgmdCwgJmNpLT50Y2ZfdG0pOw0KKwlpZiAobmxhX3B1dF82NGJpdChza2Is IFRDQV9DVElORk9fVE0sIHNpemVvZih0KSwgJnQsDQorCQkJICBUQ0FfQ1RJTkZPX1BBRCkpDQor CQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsNCisNCisJc3Bpbl91bmxvY2tfYmgoJmNpLT50Y2ZfbG9j ayk7DQorDQorCXJldHVybiBza2ItPmxlbjsNCisNCitubGFfcHV0X2ZhaWx1cmU6DQorCXNwaW5f dW5sb2NrX2JoKCZjaS0+dGNmX2xvY2spOw0KKwlubG1zZ190cmltKHNrYiwgYik7DQorCXJldHVy biAtMTsNCit9DQorDQorc3RhdGljIGludCB0Y2ZfY3RpbmZvX3dhbGtlcihzdHJ1Y3QgbmV0ICpu ZXQsIHN0cnVjdCBza19idWZmICpza2IsDQorCQkJICAgICBzdHJ1Y3QgbmV0bGlua19jYWxsYmFj ayAqY2IsIGludCB0eXBlLA0KKwkJCSAgICAgY29uc3Qgc3RydWN0IHRjX2FjdGlvbl9vcHMgKm9w cywNCisJCQkgICAgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaykNCit7DQorCXN0cnVj dCB0Y19hY3Rpb25fbmV0ICp0biA9IG5ldF9nZW5lcmljKG5ldCwgY3RpbmZvX25ldF9pZCk7DQor DQorCXJldHVybiB0Y2ZfZ2VuZXJpY193YWxrZXIodG4sIHNrYiwgY2IsIHR5cGUsIG9wcywgZXh0 YWNrKTsNCit9DQorDQorc3RhdGljIGludCB0Y2ZfY3RpbmZvX3NlYXJjaChzdHJ1Y3QgbmV0ICpu ZXQsIHN0cnVjdCB0Y19hY3Rpb24gKiphLCB1MzIgaW5kZXgpDQorew0KKwlzdHJ1Y3QgdGNfYWN0 aW9uX25ldCAqdG4gPSBuZXRfZ2VuZXJpYyhuZXQsIGN0aW5mb19uZXRfaWQpOw0KKw0KKwlyZXR1 cm4gdGNmX2lkcl9zZWFyY2godG4sIGEsIGluZGV4KTsNCit9DQorDQorc3RhdGljIHN0cnVjdCB0 Y19hY3Rpb25fb3BzIGFjdF9jdGluZm9fb3BzID0gew0KKwkua2luZAkJPQkiY3RpbmZvIiwNCisJ LmlkCQk9CVRDQV9JRF9DVElORk8sDQorCS5vd25lcgkJPQlUSElTX01PRFVMRSwNCisJLmFjdAkJ PQl0Y2ZfY3RpbmZvX2FjdCwNCisJLmR1bXAJCT0JdGNmX2N0aW5mb19kdW1wLA0KKwkuaW5pdAkJ PQl0Y2ZfY3RpbmZvX2luaXQsDQorCS53YWxrCQk9CXRjZl9jdGluZm9fd2Fsa2VyLA0KKwkubG9v a3VwCQk9CXRjZl9jdGluZm9fc2VhcmNoLA0KKwkuc2l6ZQkJPQlzaXplb2Yoc3RydWN0IHRjZl9j dGluZm8pLA0KK307DQorDQorc3RhdGljIF9fbmV0X2luaXQgaW50IGN0aW5mb19pbml0X25ldChz dHJ1Y3QgbmV0ICpuZXQpDQorew0KKwlzdHJ1Y3QgdGNfYWN0aW9uX25ldCAqdG4gPSBuZXRfZ2Vu ZXJpYyhuZXQsIGN0aW5mb19uZXRfaWQpOw0KKw0KKwlyZXR1cm4gdGNfYWN0aW9uX25ldF9pbml0 KHRuLCAmYWN0X2N0aW5mb19vcHMpOw0KK30NCisNCitzdGF0aWMgdm9pZCBfX25ldF9leGl0IGN0 aW5mb19leGl0X25ldChzdHJ1Y3QgbGlzdF9oZWFkICpuZXRfbGlzdCkNCit7DQorCXRjX2FjdGlv bl9uZXRfZXhpdChuZXRfbGlzdCwgY3RpbmZvX25ldF9pZCk7DQorfQ0KKw0KK3N0YXRpYyBzdHJ1 Y3QgcGVybmV0X29wZXJhdGlvbnMgY3RpbmZvX25ldF9vcHMgPSB7DQorCS5pbml0ID0gY3RpbmZv X2luaXRfbmV0LA0KKwkuZXhpdF9iYXRjaCA9IGN0aW5mb19leGl0X25ldCwNCisJLmlkICAgPSAm Y3RpbmZvX25ldF9pZCwNCisJLnNpemUgPSBzaXplb2Yoc3RydWN0IHRjX2FjdGlvbl9uZXQpLA0K K307DQorDQorc3RhdGljIGludCBfX2luaXQgY3RpbmZvX2luaXRfbW9kdWxlKHZvaWQpDQorew0K KwlyZXR1cm4gdGNmX3JlZ2lzdGVyX2FjdGlvbigmYWN0X2N0aW5mb19vcHMsICZjdGluZm9fbmV0 X29wcyk7DQorfQ0KKw0KK3N0YXRpYyB2b2lkIF9fZXhpdCBjdGluZm9fY2xlYW51cF9tb2R1bGUo dm9pZCkNCit7DQorCXRjZl91bnJlZ2lzdGVyX2FjdGlvbigmYWN0X2N0aW5mb19vcHMsICZjdGlu Zm9fbmV0X29wcyk7DQorfQ0KKw0KK21vZHVsZV9pbml0KGN0aW5mb19pbml0X21vZHVsZSk7DQor bW9kdWxlX2V4aXQoY3RpbmZvX2NsZWFudXBfbW9kdWxlKTsNCitNT0RVTEVfQVVUSE9SKCJLZXZp biBEYXJieXNoaXJlLUJyeWFudCA8bGRpckBkYXJieXNoaXJlLWJyeWFudC5tZS51az4iKTsNCitN T0RVTEVfREVTQ1JJUFRJT04oIkNvbm50cmFjayBtYXJrIHRvIERTQ1AgcmVzdG9yaW5nIik7DQor TU9EVUxFX0xJQ0VOU0UoIkdQTCIpOw0KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRl c3RzL3RjLXRlc3RpbmcvY29uZmlnIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvdGMtdGVzdGlu Zy9jb25maWcNCmluZGV4IDIwMzMwMjA2NTQ1OC4uOWQxZmRkY2ZiODg3IDEwMDY0NA0KLS0tIGEv dG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvdGMtdGVzdGluZy9jb25maWcNCisrKyBiL3Rvb2xzL3Rl c3Rpbmcvc2VsZnRlc3RzL3RjLXRlc3RpbmcvY29uZmlnDQpAQCAtMzcsNiArMzcsNyBAQCBDT05G SUdfTkVUX0FDVF9TS0JFRElUPW0NCiBDT05GSUdfTkVUX0FDVF9DU1VNPW0NCiBDT05GSUdfTkVU X0FDVF9WTEFOPW0NCiBDT05GSUdfTkVUX0FDVF9CUEY9bQ0KK0NPTkZJR19ORVRfQUNUX0NPTk5E U0NQPW0NCiBDT05GSUdfTkVUX0FDVF9DT05OTUFSSz1tDQogQ09ORklHX05FVF9BQ1RfU0tCTU9E PW0NCiBDT05GSUdfTkVUX0FDVF9JRkU9bQ0KLS0gDQoyLjIwLjEgKEFwcGxlIEdpdC0xMTcpDQoN Cg==