Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1297225yba; Sun, 5 May 2019 03:19:36 -0700 (PDT) X-Google-Smtp-Source: APXvYqx2ZG3yklT38u6wpkjxZLdGUQAnjyOI91nCaiEqsHTipOK7V4utPdSlatRCqD4LoWp3BX1d X-Received: by 2002:a63:117:: with SMTP id 23mr23521642pgb.34.1557051575942; Sun, 05 May 2019 03:19:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557051575; cv=none; d=google.com; s=arc-20160816; b=K5l0S330lroQEHOqNSiZHVdTIp481VkPy5/S2MD9H/Cs1V/VKWks6evxCdJ1UKH5p7 v6lkvn8JbISEo3Km82VMJOaZJ4OZgBmxGZW0WP+SQg0B1J9gc6DfFfrtNQKdjNBGrLfG dYzr0XNS7P7quveqlwN4ATR4bu82Tdx2XGeV6gSqtGVh+tgzQV0k8ZfGlWFKh+ynXI9A ky1uKHhSnrg8sJChFDbAaWXadL7D1w8so/LLgIfTlNV6VITK6Y5ETty4zbl7+8iLsiO7 lI0WKYAeT0PtuDXfgKue7qef6v2dga1uxe+bCUQxfZdGpRI/ZSq3dqGrpvnOyhCJqGHq QS8Q== 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:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=8luX/+4eRIExpqOaCskAuNourv0G7VSPHI0vPELCFt4=; b=iAMHjKQPX+S+4DrGDV1AD//5PfyYAV6MI0u9XHhZcuDOrHtecLsNMZ0d1oIODhAlmi qEo6mH8w/FY6yGu49ZFW/5TGZPFtsMN+kHxBc89gvui/ac5ERO0+y8/ErALg96QAiUF9 jgCdsGwxMgxfNAX0eRX65TIVrYqMHXwO1SzPg3OT1EWkbT3/0L5hYMw5qrKdyAWtWsjX oAVFwE5FGiHs3KOZL1uicHx0k9QFL2TlqdTjSVGKpfiXD99+Ru47IY2gu9CgQ+fo9vCe IAQwPDTvk7R+/HmqbsD6d20uqyrEeqLtMcV3fxOg68xX+yJQR5x9OQ51Cn/RbhaWJwJo Eykw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@darbyshire-bryant.me.uk header.s=selector1 header.b=wF2Ox11L; 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 w6si10365182pll.213.2019.05.05.03.18.41; Sun, 05 May 2019 03:19:35 -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=wF2Ox11L; 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 S1727479AbfEEKQA (ORCPT + 99 others); Sun, 5 May 2019 06:16:00 -0400 Received: from mail-eopbgr140074.outbound.protection.outlook.com ([40.107.14.74]:21790 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725873AbfEEKP7 (ORCPT ); Sun, 5 May 2019 06:15:59 -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=8luX/+4eRIExpqOaCskAuNourv0G7VSPHI0vPELCFt4=; b=wF2Ox11LsZfb+ffdb5XlwKFpNvF4XzcY74nmCslx9Ug3QMDhWSe0qoV5BoP12CTmdSxZI3UCCIfOgHZ7kAZh+rkNSHJ1v6+SWPCxbcz+/SJXIB9G1DD/gXWEuT37mPi02BN5jw+Zj6Lt2ZdpT941q13urjUNVXkakfTxWAI1t8Q= Received: from AM4PR0302MB2739.eurprd03.prod.outlook.com (10.171.85.142) by AM4PR0302MB2658.eurprd03.prod.outlook.com (10.171.84.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.12; Sun, 5 May 2019 10:15:44 +0000 Received: from AM4PR0302MB2739.eurprd03.prod.outlook.com ([fe80::ed44:f56b:72e1:f766]) by AM4PR0302MB2739.eurprd03.prod.outlook.com ([fe80::ed44:f56b:72e1:f766%5]) with mapi id 15.20.1856.012; Sun, 5 May 2019 10:15:44 +0000 From: Kevin 'ldir' Darbyshire-Bryant To: "xiyou.wangcong@gmail.com" CC: "davem@davemloft.net" , "jhs@mojatatu.com" , "jiri@resnulli.us" , Kevin 'ldir' Darbyshire-Bryant , "linux-kernel@vger.kernel.org" , "linux-kselftest@vger.kernel.org" , "netdev@vger.kernel.org" , "shuah@kernel.org" Subject: [net-next v2] net: sched: Introduce act_ctinfo action Thread-Topic: [net-next v2] net: sched: Introduce act_ctinfo action Thread-Index: AQHVAyt/SC3QmOI5f0a3vJokwFo61Q== Date: Sun, 5 May 2019 10:15:43 +0000 Message-ID: <20190505101523.48425-1-ldir@darbyshire-bryant.me.uk> References: In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: DB6PR0902CA0004.eurprd09.prod.outlook.com (2603:10a6:6:2::17) To AM4PR0302MB2739.eurprd03.prod.outlook.com (2603:10a6:200:94::14) 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: [2a02:c7f:1240:ee00::dc83] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f378f3e5-2d24-40e2-4856-08d6d142a145 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:AM4PR0302MB2658; x-ms-traffictypediagnostic: AM4PR0302MB2658: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-forefront-prvs: 00286C0CA6 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(346002)(136003)(376002)(39830400003)(396003)(189003)(199004)(316002)(6116002)(5640700003)(508600001)(53936002)(66446008)(64756008)(66556008)(66946007)(66476007)(6436002)(2351001)(2501003)(73956011)(14454004)(68736007)(25786009)(6512007)(4326008)(1361003)(6486002)(476003)(2616005)(11346002)(53946003)(446003)(86362001)(50226002)(14444005)(256004)(99286004)(30864003)(74482002)(36756003)(486006)(1076003)(54906003)(66574012)(6916009)(52116002)(186003)(7736002)(305945005)(46003)(71190400001)(71200400001)(102836004)(386003)(6506007)(8936002)(81156014)(5660300002)(81166006)(8676002)(76176011)(2906002)(2004002);DIR:OUT;SFP:1101;SCL:1;SRVR:AM4PR0302MB2658;H:AM4PR0302MB2739.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: tdlyTaFOyr3U2W2LdBVTRE45/hQYnutPfC6kSnHKY9O/2jr0vwhaKi73wKJFI14EgvTQIs2wO00ZfqOBslPeBkgARbnsQ0lYWtnkoFsFN2xPl5eeLoCH5NBD723jzz8an9lL4GIz5Ggps160A5uQrqL8svnSI2cyo03gX3Fz6z80amupWYu+oSfhBCwBB2sTyiAJpZgHd+sxVlzTvB+e5nQlZo1HXVv2shtw7LeLtGjK07LvMk55sgsaLsWXsQb46A/sffgz3LKBFnT4pJChKVvZ/Gwb+xKnRDcr9tuwZOM4E1Pc4RiXg4MMuNoel6WyGqNNRJLXcgFY5FMw8MxxgqYEZLNZw1GT4LfX2wXQxlFWyZ3cKDsjARNdA00M6TQXjE2ME89ewyzHbxDgAYBWOgD64aXy2Fm3mqqag3w9V3A= 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: f378f3e5-2d24-40e2-4856-08d6d142a145 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 May 2019 10:15:44.2458 (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: AM4PR0302MB2658 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Y3RpbmZvIGlzIGEgbmV3IHRjIGZpbHRlciBhY3Rpb24gbW9kdWxlLiAgSXQgaXMgZGVzaWduZWQg dG8gcmVzdG9yZQ0KaW5mb3JtYXRpb24gY29udGFpbmVkIGluIGNvbm50cmFjayBtYXJrcyB0byBv dGhlciBwbGFjZXMuICBBdCBwcmVzZW50IGl0DQpjYW4gcmVzdG9yZSBEU0NQIHZhbHVlcyB0byBJ UHY0LzYgZGlmZnNlcnYgZmllbGRzIGFuZCBhbHNvIGNvcHkNCmNvbm50cmFjayBtYXJrcyB0byBz a2IgbWFya3MuICBBcyBzdWNoIHRoZSAybmQgZnVuY3Rpb24gZWZmZWN0aXZlbHkNCnJlcGxhY2Vz IHRoZSBleGlzdGluZyBhY3RfY29ubm1hcmsgbW9kdWxlDQoNClRoZSBEU0NQIHJlc3RvcmF0aW9u IGlzIGludGVuZGVkIGZvciB1c2UgYW5kIGhhcyBiZWVuIGZvdW5kIHVzZWZ1bCBmb3INCnJlc3Rv cmluZyBpbmdyZXNzIGNsYXNzaWZpY2F0aW9ucyBiYXNlZCBvbiBlZ3Jlc3MgY2xhc3NpZmljYXRp b25zIGFjcm9zcw0KbGlua3MgdGhhdCBibGVhY2ggb3Igb3RoZXJ3aXNlIGNoYW5nZSBEU0NQLCB0 eXBpY2FsbHkgaG9tZSBJU1AgSW50ZXJuZXQNCmxpbmtzLiAgUmVzdG9yaW5nIERTQ1Agb24gaW5n cmVzcyBvbiB0aGUgV0FOIGxpbmsgYWxsb3dzIHFkaXNjcyBzdWNoIGFzDQpDQUtFIHRvIHNoYXBl IGluYm91bmQgcGFja2V0cyBhY2NvcmRpbmcgdG8gcG9saWNpZXMgdGhhdCBhcmUgZWFzaWVyIHRv DQppbmRpY2F0ZSBvbiBlZ3Jlc3MuDQoNCkluZ3Jlc3MgY2xhc3NpZmljYXRpb24gaXMgdHJhZGl0 aW9uYWxseSBhIGNoYWxsZW5naW5nIHRhc2sgc2luY2UNCmlwdGFibGVzIHJ1bGVzIGhhdmVuJ3Qg eWV0IHJ1biBhbmQgdGMgZmlsdGVyL2VCUEYgcHJvZ3JhbXMgYXJlIHByZS1OQVQNCmxvb2t1cHMs IGhlbmNlIGFyZSB1bmFibGUgdG8gc2VlIGludGVybmFsIElQdjQgYWRkcmVzc2VzIGFzIHVzZWQg b24gdGhlDQp0eXBpY2FsIGhvbWUgbWFzcXVlcmFkaW5nIGdhdGV3YXkuDQoNCmN0aW5mbyB1bmRl cnN0YW5kcyB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6DQoNCmRzY3AgZHNjcG1hc2tbL3N0YXRl bWFza10NCg0KZHNjcG1hc2sgLSBhIDMyIGJpdCBtYXNrIG9mIGF0IGxlYXN0IDYgY29udGlndW91 cyBiaXRzIGFuZCBpbmRpY2F0ZXMNCndoZXJlIGN0aW5mbyB3aWxsIGZpbmQgdGhlIERTQ1AgYml0 cyBzdG9yZWQgaW4gdGhlIGNvbm50cmFjayBtYXJrLg0KDQpzdGF0ZW1hc2sgLSBhIDMyIGJpdCBt YXNrIG9mICh1c3VhbGx5KSAxIGJpdCBsZW5ndGgsIG91dHNpZGUgdGhlIGFyZWENCnNwZWNpZmll ZCBieSBkc2NwbWFzay4gIFRoaXMgcmVwcmVzZW50cyBhIGNvbmRpdGlvbmFsIG9wZXJhdGlvbiBm bGFnDQp3aGVyZWJ5IHRoZSBEU0NQIGlzIG9ubHkgcmVzdG9yZWQgaWYgdGhlIGZsYWcgaXMgc2V0 LiAgVGhpcyBpcyB1c2VmdWwgdG8NCmltcGxlbWVudCBhICdvbmUgc2hvdCcgaXB0YWJsZXMgYmFz ZWQgY2xhc3NpZmljYXRpb24gd2hlcmUgdGhlDQonY29tcGxpY2F0ZWQnIGlwdGFibGVzIHJ1bGVz IGFyZSBvbmx5IHJ1biBvbmNlIHRvIGNsYXNzaWZ5IHRoZQ0KY29ubmVjdGlvbiBvbiBpbml0aWFs IChlZ3Jlc3MpIHBhY2tldCBhbmQgc3Vic2VxdWVudCBwYWNrZXRzIGFyZSBhbGwNCm1hcmtlZC9y ZXN0b3JlZCB3aXRoIHRoZSBzYW1lIERTQ1AuICBBIG1hc2sgb2YgemVybyBkaXNhYmxlcyB0aGUN CmNvbmRpdGlvbmFsIGJlaGF2aW91ciBpZS4gdGhlIGNvbm50cmFjayBtYXJrIERTQ1AgYml0cyBh cmUgYWx3YXlzDQpyZXN0b3JlZCB0byB0aGUgaXAgZGlmZnNlcnYgZmllbGQgKGFzc3VtaW5nIHRo ZSBjb25udHJhY2sgZW50cnkgaXMgZm91bmQNCiYgdGhlIHNrYiBpcyBhbiBpcHY0L2lwdjYgdHlw ZSkNCg0KbWFyayBbbWFza10NCg0KbWFyayAtIGVuYWJsZXMgY29weWluZyB0aGUgY29ubnRyYWNr IGNvbm5tYXJrIHZhbHVlIHRvIHRoZSBza2IgbWFyaw0KDQptYXNrIC0gYSAzMiBiaXQgbWFzayBh cHBsaWVkIHRvIHRoZSBtYXJrIHRvIG1hc2sgb3V0IGJpdCB1bndhbnRlZCBmb3INCnJlc3RvcmF0 aW9uLiAgVGhlIENBS0UgcWRpc2MgZm9yIGV4YW1wbGUgdW5kZXJzdGFuZHMgYm90aCBEU0NQIGFu ZCAndGluJw0KY2xhc3NpZmljYXRpb24gc3RvcmVkIHRoZSBtYXJrLCB0aHVzIGFjdF9jdGluZm8g bWF5IGJlIHVzZWQgdG8gcmVzdG9yZQ0KYm90aCBhc3BlY3RzIG9mIGNsYXNzaWZpY2F0aW9uIGZv ciBDQUtFIGluIG9uZSBhY3Rpb24uICBBIGRlZmF1bHQgbWFzaw0Kb2YgMHhmZmZmZmZmZiBpcyBh cHBsaWVkIGlmIG5vdCBzcGVjaWZpZWQuDQoNCnpvbmUgLSBjb25udHJhY2sgem9uZQ0KDQpjb250 cm9sIC0gYWN0aW9uIHJlbGF0ZWQgY29udHJvbCAocmVjbGFzc2lmeSB8IHBpcGUgfCBkcm9wIHwg Y29udGludWUgfA0Kb2sgfCBnb3RvIGNoYWluIDxDSEFJTl9JTkRFWD4pDQoNCmUuZy4gZHNjcCAw eGZjMDAwMDAwLzB4MDEwMDAwMDANCg0KfC0tLS0weEZDLS0tLWNvbm50cmFjayBtYXJrLS0tLTAw MDAwMC0tLXwNCnwgQml0cyAzMS0yNiB8IGJpdCAyNSB8IGJpdDI0IHx+fn4gQml0IDB8DQp8IERT Q1AgICAgICAgfCB1bnVzZWQgfCBmbGFnICB8dW51c2VkICAgfA0KfC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tMHgwMS0tLTAwMDAwMC0tLXwNCiAgICAgIHwgICAgICAgICAgICAgICAgICAgfA0KICAg ICAgfCAgICAgICAgICAgICAgICAgICB8DQogICAgICAtLS18ICAgICAgICAgICAgIENvbmRpdGlv bmFsIGZsYWcNCiAgICAgICAgIHYgICAgICAgICAgICAgb25seSByZXN0b3JlIGlmIHNldA0KfC1p cCBkaWZmc2Vydi18DQp8IDYgYml0cyAgICAgIHwNCnwtLS0tLS0tLS0tLS0tfA0KDQplLmcuIG1h cmsgMHgwMGZmZmZmZg0KDQp8LS0tLTB4MDAtLS0tY29ubnRyYWNrIG1hcmstLS0tZmZmZmZmLS0t fA0KfCBCaXRzIDMxLTI0IHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCnwgRFNDUCAmIGZs YWd8ICAgICAgICAgICAgICAgICAgICAgICAgICB8DQp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tfA0KCQkJfA0KCQkJfA0KCQkJdg0KfC0tLS0tLS0tLS0tLXNrYiBtYXJr LS0tLS0tLS0tLS0tLS0tLS0tLXwNCnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8DQp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KfC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwNCg0KU2lnbmVkLW9mZi1ieTogS2V2 aW4gRGFyYnlzaGlyZS1CcnlhbnQgPGxkaXJAZGFyYnlzaGlyZS1icnlhbnQubWUudWs+DQotLS0N Cg0KdjIgLSBhZGQgZXF1aXZhbGVudCBjb25ubWFyayBmdW5jdGlvbmFsaXR5IHdpdGggYW4gZW5o YW5jZW1lbnQNCiAgICAgdG8gYWNjZXB0IGEgbWFzaw0KICAgICBwYXNzIHN0YXRpc3RpY3MgZm9y IGVhY2ggc3ViLWZ1bmN0aW9uIGFzIGluZGl2aWR1YWwgbmV0bGluaw0KICAgICBhdHRyaWJ1dGVz IGFuZCBzdG9wIChhYil1c2luZyBvdmVybGltaXRzLCBkcm9wcw0KICAgICB1cGRhdGUgdGhlIHRl c3RpbmcgY29uZmlnIGNvcnJlY3RseQ0KDQogaW5jbHVkZS9uZXQvdGNfYWN0L3RjX2N0aW5mby5o ICAgICAgICAgICAgfCAgMjggKysNCiBpbmNsdWRlL3VhcGkvbGludXgvcGt0X2Nscy5oICAgICAg ICAgICAgICB8ICAgMSArDQogaW5jbHVkZS91YXBpL2xpbnV4L3RjX2FjdC90Y19jdGluZm8uaCAg ICAgfCAgNDMgKysrDQogbmV0L3NjaGVkL0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMTcgKw0KIG5ldC9zY2hlZC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx ICsNCiBuZXQvc2NoZWQvYWN0X2N0aW5mby5jICAgICAgICAgICAgICAgICAgICB8IDQwNyArKysr KysrKysrKysrKysrKysrKysrDQogdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvdGMtdGVzdGluZy9j b25maWcgfCAgIDEgKw0KIDcgZmlsZXMgY2hhbmdlZCwgNDk4IGluc2VydGlvbnMoKykNCiBjcmVh dGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9uZXQvdGNfYWN0L3RjX2N0aW5mby5oDQogY3JlYXRlIG1v ZGUgMTAwNjQ0IGluY2x1ZGUvdWFwaS9saW51eC90Y19hY3QvdGNfY3RpbmZvLmgNCiBjcmVhdGUg bW9kZSAxMDA2NDQgbmV0L3NjaGVkL2FjdF9jdGluZm8uYw0KDQpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9uZXQvdGNfYWN0L3RjX2N0aW5mby5oIGIvaW5jbHVkZS9uZXQvdGNfYWN0L3RjX2N0aW5mby5o DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi44NzMzNDEyMGRjYjYN Ci0tLSAvZGV2L251bGwNCisrKyBiL2luY2x1ZGUvbmV0L3RjX2FjdC90Y19jdGluZm8uaA0KQEAg LTAsMCArMSwyOCBAQA0KKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovDQor I2lmbmRlZiBfX05FVF9UQ19DVElORk9fSA0KKyNkZWZpbmUgX19ORVRfVENfQ1RJTkZPX0gNCisN CisjaW5jbHVkZSA8bmV0L2FjdF9hcGkuaD4NCisNCitzdHJ1Y3QgdGNmX2N0aW5mb19wYXJhbXMg ew0KKwlzdHJ1Y3QgbmV0ICpuZXQ7DQorCXUzMiBkc2NwbWFzazsNCisJdTMyIGRzY3BzdGF0ZW1h c2s7DQorCXUzMiBtYXJrbWFzazsNCisJdTE2IHpvbmU7DQorCXU4IG1vZGU7DQorCXU4IGRzY3Bt YXNrc2hpZnQ7DQorCXN0cnVjdCByY3VfaGVhZCByY3U7DQorfTsNCisNCitzdHJ1Y3QgdGNmX2N0 aW5mbyB7DQorCXN0cnVjdCB0Y19hY3Rpb24gY29tbW9uOw0KKwlzdHJ1Y3QgdGNmX2N0aW5mb19w YXJhbXMgX19yY3UgKnBhcmFtczsNCisJdTY0IHN0YXRzX2RzY3Bfc2V0Ow0KKwl1NjQgc3RhdHNf ZHNjcF9lcnJvcjsNCisJdTY0IHN0YXRzX21hcmtfc2V0Ow0KK307DQorDQorI2RlZmluZSB0b19j dGluZm8oYSkgKChzdHJ1Y3QgdGNmX2N0aW5mbyAqKWEpDQorDQorI2VuZGlmIC8qIF9fTkVUX1RD X0NUSU5GT19IICovDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L3BrdF9jbHMuaCBi L2luY2x1ZGUvdWFwaS9saW51eC9wa3RfY2xzLmgNCmluZGV4IDUxYTA0OTZmNzhlYS4uYTkzNjgw ZmM0YmZhIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3BrdF9jbHMuaA0KKysrIGIv aW5jbHVkZS91YXBpL2xpbnV4L3BrdF9jbHMuaA0KQEAgLTEwNSw2ICsxMDUsNyBAQCBlbnVtIHRj YV9pZCB7DQogCVRDQV9JRF9JRkUgPSBUQ0FfQUNUX0lGRSwNCiAJVENBX0lEX1NBTVBMRSA9IFRD QV9BQ1RfU0FNUExFLA0KIAkvKiBvdGhlciBhY3Rpb25zIGdvIGhlcmUgKi8NCisJVENBX0lEX0NU SU5GTywNCiAJX19UQ0FfSURfTUFYID0gMjU1DQogfTsNCiANCmRpZmYgLS1naXQgYS9pbmNsdWRl L3VhcGkvbGludXgvdGNfYWN0L3RjX2N0aW5mby5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L3RjX2Fj dC90Y19jdGluZm8uaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4u OGQyNTRiODIxNTFjDQotLS0gL2Rldi9udWxsDQorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvdGNf YWN0L3RjX2N0aW5mby5oDQpAQCAtMCwwICsxLDQzIEBADQorLyogU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi8NCisjaWZuZGVmIF9fVUFQ SV9UQ19DVElORk9fSA0KKyNkZWZpbmUgX19VQVBJX1RDX0NUSU5GT19IDQorDQorI2luY2x1ZGUg PGxpbnV4L3R5cGVzLmg+DQorI2luY2x1ZGUgPGxpbnV4L3BrdF9jbHMuaD4NCisNCitzdHJ1Y3Qg dGNfY3RpbmZvIHsNCisJdGNfZ2VuOw0KK307DQorDQorc3RydWN0IHRjX2N0aW5mb19kc2NwIHsN CisJX191MzIgbWFzazsNCisJX191MzIgc3RhdGVtYXNrOw0KK307DQorDQorc3RydWN0IHRjX2N0 aW5mb19zdGF0c19kc2NwIHsNCisJX191NjQgc2V0Ow0KKwlfX3U2NCBlcnJvcjsNCit9Ow0KKw0K K2VudW0gew0KKwlUQ0FfQ1RJTkZPX1VOU1BFQywNCisJVENBX0NUSU5GT19BQ1QsDQorCVRDQV9D VElORk9fWk9ORSwNCisJVENBX0NUSU5GT19EU0NQX1BBUk1TLA0KKwlUQ0FfQ1RJTkZPX01BUktf TUFTSywNCisJVENBX0NUSU5GT19NT0RFX0RTQ1AsDQorCVRDQV9DVElORk9fTU9ERV9NQVJLLA0K KwlUQ0FfQ1RJTkZPX1NUQVRTX0RTQ1AsDQorCVRDQV9DVElORk9fU1RBVFNfTUFSSywNCisJVENB X0NUSU5GT19UTSwNCisJVENBX0NUSU5GT19QQUQsDQorCV9fVENBX0NUSU5GT19NQVgNCit9Ow0K KyNkZWZpbmUgVENBX0NUSU5GT19NQVggKF9fVENBX0NUSU5GT19NQVggLSAxKQ0KKw0KK2VudW0g ew0KKwlDVElORk9fTU9ERV9TRVREU0NQCT0gQklUKDApLA0KKwlDVElORk9fTU9ERV9TRVRNQVJL CT0gQklUKDEpDQorfTsNCisNCisjZW5kaWYNCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvS2NvbmZp ZyBiL25ldC9zY2hlZC9LY29uZmlnDQppbmRleCA1YzAyYWQ5N2VmMjMuLmY1NzczZWZmY2ZkYyAx MDA2NDQNCi0tLSBhL25ldC9zY2hlZC9LY29uZmlnDQorKysgYi9uZXQvc2NoZWQvS2NvbmZpZw0K QEAgLTg3Niw2ICs4NzYsMjMgQEAgY29uZmlnIE5FVF9BQ1RfQ09OTk1BUksNCiAJICBUbyBjb21w aWxlIHRoaXMgY29kZSBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlDQogCSAgbW9kdWxl IHdpbGwgYmUgY2FsbGVkIGFjdF9jb25ubWFyay4NCiANCitjb25maWcgTkVUX0FDVF9DVElORk8N CisgICAgICAgIHRyaXN0YXRlICJOZXRmaWx0ZXIgQ29ubmVjdGlvbiBNYXJrIEFjdGlvbnMiDQor ICAgICAgICBkZXBlbmRzIG9uIE5FVF9DTFNfQUNUICYmIE5FVEZJTFRFUiAmJiBJUF9ORl9JUFRB QkxFUw0KKyAgICAgICAgZGVwZW5kcyBvbiBORl9DT05OVFJBQ0sgJiYgTkZfQ09OTlRSQUNLX01B UksNCisgICAgICAgIGhlbHANCisJICBTYXkgWSBoZXJlIHRvIGFsbG93IHRyYW5zZmVyIG9mIGEg Y29ubm1hcmsgc3RvcmVkIGluZm9ybWF0aW9uLg0KKwkgIEN1cnJlbnQgYWN0aW9ucyB0cmFuc2Zl ciBjb25ubWFyayBzdG9yZWQgRFNDUCBpbnRvDQorCSAgaXB2NC92NiBkaWZmc2VydiBhbmQvb3Ig dG8gdHJhbnNmZXIgY29ubm1hcmsgdG8gcGFja2V0DQorCSAgbWFyay4gIEJvdGggYXJlIHVzZWZ1 bCBmb3IgcmVzdG9yaW5nIGVncmVzcyBiYXNlZCBtYXJrcw0KKwkgIGJhY2sgb250byBpbmdyZXNz IGNvbm5lY3Rpb25zIGZvciBxZGlzYyBwcmlvcml0eSBtYXBwaW5nDQorCSAgcHVycG9zZXMuDQor DQorCSAgSWYgdW5zdXJlLCBzYXkgTi4NCisNCisJICBUbyBjb21waWxlIHRoaXMgY29kZSBhcyBh IG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlDQorCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGFj dF9jdGluZm8uDQorDQogY29uZmlnIE5FVF9BQ1RfU0tCTU9EDQogICAgICAgICB0cmlzdGF0ZSAi c2tiIGRhdGEgbW9kaWZpY2F0aW9uIGFjdGlvbiINCiAgICAgICAgIGRlcGVuZHMgb24gTkVUX0NM U19BQ1QNCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvTWFrZWZpbGUgYi9uZXQvc2NoZWQvTWFrZWZp bGUNCmluZGV4IDhhNDA0MzFkN2I1Yy4uZDU0YmZjYmQ3OTgxIDEwMDY0NA0KLS0tIGEvbmV0L3Nj aGVkL01ha2VmaWxlDQorKysgYi9uZXQvc2NoZWQvTWFrZWZpbGUNCkBAIC0yMSw2ICsyMSw3IEBA IG9iai0kKENPTkZJR19ORVRfQUNUX0NTVU0pCSs9IGFjdF9jc3VtLm8NCiBvYmotJChDT05GSUdf TkVUX0FDVF9WTEFOKQkrPSBhY3Rfdmxhbi5vDQogb2JqLSQoQ09ORklHX05FVF9BQ1RfQlBGKQkr PSBhY3RfYnBmLm8NCiBvYmotJChDT05GSUdfTkVUX0FDVF9DT05OTUFSSykJKz0gYWN0X2Nvbm5t YXJrLm8NCitvYmotJChDT05GSUdfTkVUX0FDVF9DVElORk8pCSs9IGFjdF9jdGluZm8ubw0KIG9i ai0kKENPTkZJR19ORVRfQUNUX1NLQk1PRCkJKz0gYWN0X3NrYm1vZC5vDQogb2JqLSQoQ09ORklH X05FVF9BQ1RfSUZFKQkrPSBhY3RfaWZlLm8NCiBvYmotJChDT05GSUdfTkVUX0lGRV9TS0JNQVJL KQkrPSBhY3RfbWV0YV9tYXJrLm8NCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X2N0aW5mby5j IGIvbmV0L3NjaGVkL2FjdF9jdGluZm8uYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw MDAwMDAwMDAwMC4uN2JlYWIwMGNjOWE3DQotLS0gL2Rldi9udWxsDQorKysgYi9uZXQvc2NoZWQv YWN0X2N0aW5mby5jDQpAQCAtMCwwICsxLDQwNyBAQA0KKy8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlDQorLyogbmV0L3NjaGVkL2FjdF9j dGluZm8uYyAgbmV0ZmlsdGVyIGN0aW5mbyBjb25ubWFyay0+RFNDUCBhY3Rpb24NCisgKg0KKyAq IENvcHlyaWdodCAoYykgMjAxOSBLZXZpbiBEYXJieXNoaXJlLUJyeWFudCA8bGRpckBkYXJieXNo aXJlLWJyeWFudC5tZS51az4NCisgKg0KKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQorICogaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkN CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRo ZSBMaWNlbnNlLCBvcg0KKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQor ICovDQorDQorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9pbml0 Lmg+DQorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPg0KKyNpbmNsdWRlIDxsaW51eC9za2J1ZmYu aD4NCisjaW5jbHVkZSA8bGludXgvcnRuZXRsaW5rLmg+DQorI2luY2x1ZGUgPGxpbnV4L3BrdF9j bHMuaD4NCisjaW5jbHVkZSA8bGludXgvaXAuaD4NCisjaW5jbHVkZSA8bGludXgvaXB2Ni5oPg0K KyNpbmNsdWRlIDxuZXQvbmV0bGluay5oPg0KKyNpbmNsdWRlIDxuZXQvcGt0X3NjaGVkLmg+DQor I2luY2x1ZGUgPG5ldC9hY3RfYXBpLmg+DQorI2luY2x1ZGUgPG5ldC9wa3RfY2xzLmg+DQorI2lu Y2x1ZGUgPHVhcGkvbGludXgvdGNfYWN0L3RjX2N0aW5mby5oPg0KKyNpbmNsdWRlIDxuZXQvdGNf YWN0L3RjX2N0aW5mby5oPg0KKw0KKyNpbmNsdWRlIDxuZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFj ay5oPg0KKyNpbmNsdWRlIDxuZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19jb3JlLmg+DQorI2lu Y2x1ZGUgPG5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2VjYWNoZS5oPg0KKyNpbmNsdWRlIDxu ZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja196b25lcy5oPg0KKw0KK3N0YXRpYyB1bnNpZ25lZCBp bnQgY3RpbmZvX25ldF9pZDsNCitzdGF0aWMgc3RydWN0IHRjX2FjdGlvbl9vcHMgYWN0X2N0aW5m b19vcHM7DQorDQorc3RhdGljIHZvaWQgdGNmX2N0aW5mb19kc2NwX3NldChzdHJ1Y3QgbmZfY29u biAqY3QsIHN0cnVjdCB0Y2ZfY3RpbmZvICpjYSwNCisJCQkJc3RydWN0IHRjZl9jdGluZm9fcGFy YW1zICpjcCwNCisJCQkJc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IHdsZW4sIGludCBwcm90bykN Cit7DQorCXU4IGRzY3AsIG5ld2RzY3A7DQorDQorCW5ld2RzY3AgPSAoKChjdC0+bWFyayAmIGNw LT5kc2NwbWFzaykgPj4gY3AtPmRzY3BtYXNrc2hpZnQpIDw8IDIpICYNCisJCSAgICAgfklORVRf RUNOX01BU0s7DQorDQorCXN3aXRjaCAocHJvdG8pIHsNCisJY2FzZSBORlBST1RPX0lQVjQ6DQor CQlkc2NwID0gaXB2NF9nZXRfZHNmaWVsZChpcF9oZHIoc2tiKSkgJiB+SU5FVF9FQ05fTUFTSzsN CisJCWlmIChkc2NwICE9IG5ld2RzY3ApIHsNCisJCQlpZiAobGlrZWx5KCFza2JfdHJ5X21ha2Vf d3JpdGFibGUoc2tiLCB3bGVuKSkpIHsNCisJCQkJaXB2NF9jaGFuZ2VfZHNmaWVsZChpcF9oZHIo c2tiKSwNCisJCQkJCQkgICAgSU5FVF9FQ05fTUFTSywNCisJCQkJCQkgICAgbmV3ZHNjcCk7DQor CQkJCWNhLT5zdGF0c19kc2NwX3NldCsrOw0KKwkJCX0gZWxzZSB7DQorCQkJCWNhLT5zdGF0c19k c2NwX2Vycm9yKys7DQorCQkJfQ0KKwkJfQ0KKwkJYnJlYWs7DQorCWNhc2UgTkZQUk9UT19JUFY2 Og0KKwkJZHNjcCA9IGlwdjZfZ2V0X2RzZmllbGQoaXB2Nl9oZHIoc2tiKSkgJiB+SU5FVF9FQ05f TUFTSzsNCisJCWlmIChkc2NwICE9IG5ld2RzY3ApIHsNCisJCQlpZiAobGlrZWx5KCFza2JfdHJ5 X21ha2Vfd3JpdGFibGUoc2tiLCB3bGVuKSkpIHsNCisJCQkJaXB2Nl9jaGFuZ2VfZHNmaWVsZChp cHY2X2hkcihza2IpLA0KKwkJCQkJCSAgICBJTkVUX0VDTl9NQVNLLA0KKwkJCQkJCSAgICBuZXdk c2NwKTsNCisJCQkJY2EtPnN0YXRzX2RzY3Bfc2V0Kys7DQorCQkJfSBlbHNlIHsNCisJCQkJY2Et PnN0YXRzX2RzY3BfZXJyb3IrKzsNCisJCQl9DQorCQl9DQorCQlicmVhazsNCisJZGVmYXVsdDoN CisJCWJyZWFrOw0KKwl9DQorfQ0KKw0KK3N0YXRpYyB2b2lkIHRjZl9jdGluZm9fbWFya19zZXQo c3RydWN0IG5mX2Nvbm4gKmN0LCBzdHJ1Y3QgdGNmX2N0aW5mbyAqY2EsDQorCQkJCXN0cnVjdCB0 Y2ZfY3RpbmZvX3BhcmFtcyAqY3AsDQorCQkJCXN0cnVjdCBza19idWZmICpza2IpDQorew0KKwlj YS0+c3RhdHNfbWFya19zZXQrKzsNCisJc2tiLT5tYXJrID0gY3QtPm1hcmsgJiBjcC0+bWFya21h c2s7DQorfQ0KKw0KK3N0YXRpYyBpbnQgdGNmX2N0aW5mb19hY3Qoc3RydWN0IHNrX2J1ZmYgKnNr YiwgY29uc3Qgc3RydWN0IHRjX2FjdGlvbiAqYSwNCisJCQkgIHN0cnVjdCB0Y2ZfcmVzdWx0ICpy ZXMpDQorew0KKwljb25zdCBzdHJ1Y3QgbmZfY29ubnRyYWNrX3R1cGxlX2hhc2ggKnRoYXNoID0g TlVMTDsNCisJc3RydWN0IG5mX2Nvbm50cmFja190dXBsZSB0dXBsZTsNCisJZW51bSBpcF9jb25u dHJhY2tfaW5mbyBjdGluZm87DQorCXN0cnVjdCB0Y2ZfY3RpbmZvICpjYSA9IHRvX2N0aW5mbyhh KTsNCisJc3RydWN0IHRjZl9jdGluZm9fcGFyYW1zICpjcDsNCisJc3RydWN0IG5mX2Nvbm50cmFj a196b25lIHpvbmU7DQorCXN0cnVjdCBuZl9jb25uICpjdDsNCisJaW50IHByb3RvLCB3bGVuOw0K KwlpbnQgYWN0aW9uOw0KKw0KKwljcCA9IHJjdV9kZXJlZmVyZW5jZV9iaChjYS0+cGFyYW1zKTsN CisNCisJdGNmX2xhc3R1c2VfdXBkYXRlKCZjYS0+dGNmX3RtKTsNCisJYnN0YXRzX3VwZGF0ZSgm Y2EtPnRjZl9ic3RhdHMsIHNrYik7DQorCWFjdGlvbiA9IFJFQURfT05DRShjYS0+dGNmX2FjdGlv bik7DQorDQorCXdsZW4gPSBza2JfbmV0d29ya19vZmZzZXQoc2tiKTsNCisJaWYgKHRjX3NrYl9w cm90b2NvbChza2IpID09IGh0b25zKEVUSF9QX0lQKSkgew0KKwkJd2xlbiArPSBzaXplb2Yoc3Ry dWN0IGlwaGRyKTsNCisJCWlmICghcHNrYl9tYXlfcHVsbChza2IsIHdsZW4pKQ0KKwkJCWdvdG8g b3V0Ow0KKw0KKwkJcHJvdG8gPSBORlBST1RPX0lQVjQ7DQorCX0gZWxzZSBpZiAodGNfc2tiX3By b3RvY29sKHNrYikgPT0gaHRvbnMoRVRIX1BfSVBWNikpIHsNCisJCXdsZW4gKz0gc2l6ZW9mKHN0 cnVjdCBpcHY2aGRyKTsNCisJCWlmICghcHNrYl9tYXlfcHVsbChza2IsIHdsZW4pKQ0KKwkJCWdv dG8gb3V0Ow0KKw0KKwkJcHJvdG8gPSBORlBST1RPX0lQVjY7DQorCX0gZWxzZSB7DQorCQlnb3Rv IG91dDsNCisJfQ0KKw0KKwljdCA9IG5mX2N0X2dldChza2IsICZjdGluZm8pOw0KKwlpZiAoIWN0 KSB7IC8qIGxvb2sgaGFyZGVyLCB1c3VhbGx5IGluZ3Jlc3MgKi8NCisJCWlmICghbmZfY3RfZ2V0 X3R1cGxlcHIoc2tiLCBza2JfbmV0d29ya19vZmZzZXQoc2tiKSwNCisJCQkJICAgICAgIHByb3Rv LCBjcC0+bmV0LCAmdHVwbGUpKQ0KKwkJCWdvdG8gb3V0Ow0KKwkJem9uZS5pZCA9IGNwLT56b25l Ow0KKwkJem9uZS5kaXIgPSBORl9DVF9ERUZBVUxUX1pPTkVfRElSOw0KKw0KKwkJdGhhc2ggPSBu Zl9jb25udHJhY2tfZmluZF9nZXQoY3AtPm5ldCwgJnpvbmUsICZ0dXBsZSk7DQorCQlpZiAoIXRo YXNoKQ0KKwkJCWdvdG8gb3V0Ow0KKw0KKwkJY3QgPSBuZl9jdF90dXBsZWhhc2hfdG9fY3RyYWNr KHRoYXNoKTsNCisJfQ0KKw0KKwlpZiAoY3AtPm1vZGUgJiBDVElORk9fTU9ERV9TRVREU0NQKQ0K KwkJaWYgKCFjcC0+ZHNjcHN0YXRlbWFzayB8fCAoY3QtPm1hcmsgJiBjcC0+ZHNjcHN0YXRlbWFz aykpDQorCQkJdGNmX2N0aW5mb19kc2NwX3NldChjdCwgY2EsIGNwLCBza2IsIHdsZW4sIHByb3Rv KTsNCisNCisJaWYgKGNwLT5tb2RlICYgQ1RJTkZPX01PREVfU0VUTUFSSykNCisJCXRjZl9jdGlu Zm9fbWFya19zZXQoY3QsIGNhLCBjcCwgc2tiKTsNCisNCisJaWYgKHRoYXNoKQ0KKwkJbmZfY3Rf cHV0KGN0KTsNCitvdXQ6DQorCXJldHVybiBhY3Rpb247DQorfQ0KKw0KK3N0YXRpYyBjb25zdCBz dHJ1Y3QgbmxhX3BvbGljeSBjdGluZm9fcG9saWN5W1RDQV9DVElORk9fTUFYICsgMV0gPSB7DQor CVtUQ0FfQ1RJTkZPX0FDVF0gPSB7IC5sZW4gPSBzaXplb2Yoc3RydWN0IHRjX2N0aW5mbykgfSwN CisJW1RDQV9DVElORk9fWk9ORV0gPSB7IC50eXBlID0gTkxBX1UxNiB9LA0KKwlbVENBX0NUSU5G T19NT0RFX0RTQ1BdID0geyAudHlwZSA9IE5MQV9GTEFHIH0sDQorCVtUQ0FfQ1RJTkZPX01PREVf TUFSS10gPSB7IC50eXBlID0gTkxBX0ZMQUcgfSwNCisJW1RDQV9DVElORk9fRFNDUF9QQVJNU10g PSB7IC5sZW4gPSBzaXplb2Yoc3RydWN0IHRjX2N0aW5mb19kc2NwKSB9LA0KK307DQorDQorc3Rh dGljIGludCB0Y2ZfY3RpbmZvX2luaXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICpu bGEsDQorCQkJICAgc3RydWN0IG5sYXR0ciAqZXN0LCBzdHJ1Y3QgdGNfYWN0aW9uICoqYSwNCisJ CQkgICBpbnQgb3ZyLCBpbnQgYmluZCwgYm9vbCBydG5sX2hlbGQsDQorCQkJICAgc3RydWN0IHRj Zl9wcm90byAqdHAsDQorCQkJICAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKQ0KK3sN CisJc3RydWN0IHRjX2FjdGlvbl9uZXQgKnRuID0gbmV0X2dlbmVyaWMobmV0LCBjdGluZm9fbmV0 X2lkKTsNCisJc3RydWN0IHRjZl9jdGluZm9fcGFyYW1zICpjcF9uZXc7DQorCXN0cnVjdCBubGF0 dHIgKnRiW1RDQV9DVElORk9fTUFYICsgMV07DQorCXN0cnVjdCB0Y2ZfY2hhaW4gKmdvdG9fY2gg PSBOVUxMOw0KKwlzdHJ1Y3QgdGNmX2N0aW5mbyAqY2k7DQorCXN0cnVjdCB0Y19jdGluZm8gKmFj dHBhcm07DQorCXN0cnVjdCB0Y19jdGluZm9fZHNjcCAqZHNjcHBhcm07DQorCWludCByZXQgPSAw LCBlcnIsIGk7DQorDQorCWlmICghbmxhKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCWVyciA9 IG5sYV9wYXJzZV9uZXN0ZWQodGIsIFRDQV9DVElORk9fTUFYLCBubGEsIGN0aW5mb19wb2xpY3ks IE5VTEwpOw0KKwlpZiAoZXJyIDwgMCkNCisJCXJldHVybiBlcnI7DQorDQorCWlmICghdGJbVENB X0NUSU5GT19BQ1RdKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCWlmICh0YltUQ0FfQ1RJTkZP X01PREVfRFNDUF0gJiYgIXRiW1RDQV9DVElORk9fRFNDUF9QQVJNU10pDQorCQlyZXR1cm4gLUVJ TlZBTDsNCisNCisJYWN0cGFybSA9IG5sYV9kYXRhKHRiW1RDQV9DVElORk9fQUNUXSk7DQorCWRz Y3BwYXJtID0gbmxhX2RhdGEodGJbVENBX0NUSU5GT19EU0NQX1BBUk1TXSk7DQorDQorCWlmIChk c2NwcGFybSkgew0KKwkJLyogbmVlZCBhdCBsZWFzdCBjb250aWd1b3VzIDYgYml0IG1hc2sgKi8N CisJCWkgPSBkc2NwcGFybS0+bWFzayA/IF9fZmZzKGRzY3BwYXJtLT5tYXNrKSA6IDA7DQorCQlp ZiAoKDB4M2YgJiAoZHNjcHBhcm0tPm1hc2sgPj4gaSkpICE9IDB4M2YpDQorCQkJcmV0dXJuIC1F SU5WQUw7DQorCQkvKiBtYXNrICYgc3RhdGVtYXNrIG11c3Qgbm90IG92ZXJsYXAgKi8NCisJCWlm IChkc2NwcGFybS0+bWFzayAmIGRzY3BwYXJtLT5zdGF0ZW1hc2spDQorCQkJcmV0dXJuIC1FSU5W QUw7DQorCX0NCisNCisJLyogZG9uZSB0aGUgdmFsaWRhdGlvbjpub3cgdG8gdGhlIGFjdHVhbCBh Y3Rpb24gYWxsb2NhdGlvbiAqLw0KKwllcnIgPSB0Y2ZfaWRyX2NoZWNrX2FsbG9jKHRuLCAmYWN0 cGFybS0+aW5kZXgsIGEsIGJpbmQpOw0KKwlpZiAoIWVycikgew0KKwkJcmV0ID0gdGNmX2lkcl9j cmVhdGUodG4sIGFjdHBhcm0tPmluZGV4LCBlc3QsIGEsDQorCQkJCSAgICAgJmFjdF9jdGluZm9f b3BzLCBiaW5kLCBmYWxzZSk7DQorCQlpZiAocmV0KSB7DQorCQkJdGNmX2lkcl9jbGVhbnVwKHRu LCBhY3RwYXJtLT5pbmRleCk7DQorCQkJcmV0dXJuIHJldDsNCisJCX0NCisJfSBlbHNlIGlmIChl cnIgPiAwKSB7DQorCQlpZiAoYmluZCkgLyogZG9uJ3Qgb3ZlcnJpZGUgZGVmYXVsdHMgKi8NCisJ CQlyZXR1cm4gMDsNCisJCWlmICghb3ZyKSB7DQorCQkJdGNmX2lkcl9yZWxlYXNlKCphLCBiaW5k KTsNCisJCQlyZXR1cm4gLUVFWElTVDsNCisJCX0NCisJfSBlbHNlIHsNCisJCXJldHVybiBlcnI7 DQorCX0NCisNCisJZXJyID0gdGNmX2FjdGlvbl9jaGVja19jdHJsYWN0KGFjdHBhcm0tPmFjdGlv biwgdHAsICZnb3RvX2NoLCBleHRhY2spOw0KKwlpZiAoZXJyIDwgMCkNCisJCWdvdG8gcmVsZWFz ZV9pZHI7DQorDQorCWNpID0gdG9fY3RpbmZvKCphKTsNCisNCisJY3BfbmV3ID0ga3phbGxvYyhz aXplb2YoKmNwX25ldyksIEdGUF9LRVJORUwpOw0KKwlpZiAodW5saWtlbHkoIWNwX25ldykpIHsN CisJCWVyciA9IC1FTk9NRU07DQorCQlnb3RvIHB1dF9jaGFpbjsNCisJfQ0KKw0KKwljcF9uZXct Pm5ldCA9IG5ldDsNCisJY3BfbmV3LT56b25lID0gdGJbVENBX0NUSU5GT19aT05FXSA/DQorCQkJ bmxhX2dldF91MTYodGJbVENBX0NUSU5GT19aT05FXSkgOiAwOw0KKwlpZiAoZHNjcHBhcm0pIHsN CisJCWNwX25ldy0+ZHNjcG1hc2sgPSBkc2NwcGFybS0+bWFzazsNCisJCWNwX25ldy0+ZHNjcG1h c2tzaGlmdCA9IGNwX25ldy0+ZHNjcG1hc2sgPw0KKwkJCQlfX2ZmcyhjcF9uZXctPmRzY3BtYXNr KSA6IDA7DQorCQljcF9uZXctPmRzY3BzdGF0ZW1hc2sgPSBkc2NwcGFybS0+c3RhdGVtYXNrOw0K Kwl9DQorCWNwX25ldy0+bWFya21hc2sgPSB0YltUQ0FfQ1RJTkZPX01BUktfTUFTS10gPw0KKwkJ CW5sYV9nZXRfdTMyKHRiW1RDQV9DVElORk9fTUFSS19NQVNLXSkgOiB+MDsNCisNCisJaWYgKHRi W1RDQV9DVElORk9fTU9ERV9EU0NQXSkNCisJCWNwX25ldy0+bW9kZSB8PSBDVElORk9fTU9ERV9T RVREU0NQOw0KKwllbHNlDQorCQljcF9uZXctPm1vZGUgJj0gfkNUSU5GT19NT0RFX1NFVERTQ1A7 DQorDQorCWlmICh0YltUQ0FfQ1RJTkZPX01PREVfTUFSS10pDQorCQljcF9uZXctPm1vZGUgfD0g Q1RJTkZPX01PREVfU0VUTUFSSzsNCisJZWxzZQ0KKwkJY3BfbmV3LT5tb2RlICY9IH5DVElORk9f TU9ERV9TRVRNQVJLOw0KKw0KKwlzcGluX2xvY2tfYmgoJmNpLT50Y2ZfbG9jayk7DQorCWdvdG9f Y2ggPSB0Y2ZfYWN0aW9uX3NldF9jdHJsYWN0KCphLCBhY3RwYXJtLT5hY3Rpb24sIGdvdG9fY2gp Ow0KKwlyY3Vfc3dhcF9wcm90ZWN0ZWQoY2ktPnBhcmFtcywgY3BfbmV3LA0KKwkJCSAgIGxvY2tk ZXBfaXNfaGVsZCgmY2ktPnRjZl9sb2NrKSk7DQorCXNwaW5fdW5sb2NrX2JoKCZjaS0+dGNmX2xv Y2spOw0KKw0KKwlpZiAoZ290b19jaCkNCisJCXRjZl9jaGFpbl9wdXRfYnlfYWN0KGdvdG9fY2gp Ow0KKwlpZiAoY3BfbmV3KQ0KKwkJa2ZyZWVfcmN1KGNwX25ldywgcmN1KTsNCisNCisJaWYgKHJl dCA9PSBBQ1RfUF9DUkVBVEVEKQ0KKwkJdGNmX2lkcl9pbnNlcnQodG4sICphKTsNCisNCisJcmV0 dXJuIHJldDsNCisNCitwdXRfY2hhaW46DQorCWlmIChnb3RvX2NoKQ0KKwkJdGNmX2NoYWluX3B1 dF9ieV9hY3QoZ290b19jaCk7DQorcmVsZWFzZV9pZHI6DQorCXRjZl9pZHJfcmVsZWFzZSgqYSwg YmluZCk7DQorCXJldHVybiBlcnI7DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgaW50IHRjZl9jdGlu Zm9fZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgdGNfYWN0aW9uICphLA0KKwkJCQkg IGludCBiaW5kLCBpbnQgcmVmKQ0KK3sNCisJdW5zaWduZWQgY2hhciAqYiA9IHNrYl90YWlsX3Bv aW50ZXIoc2tiKTsNCisJc3RydWN0IHRjZl9jdGluZm8gKmNpID0gdG9fY3RpbmZvKGEpOw0KKwlz dHJ1Y3QgdGNmX2N0aW5mb19wYXJhbXMgKmNwOw0KKwlzdHJ1Y3QgdGNfY3RpbmZvIG9wdCA9IHsN CisJCS5pbmRleCAgID0gY2ktPnRjZl9pbmRleCwNCisJCS5yZWZjbnQgID0gcmVmY291bnRfcmVh ZCgmY2ktPnRjZl9yZWZjbnQpIC0gcmVmLA0KKwkJLmJpbmRjbnQgPSBhdG9taWNfcmVhZCgmY2kt PnRjZl9iaW5kY250KSAtIGJpbmQsDQorCX07DQorCXN0cnVjdCB0Y2ZfdCB0Ow0KKwlzdHJ1Y3Qg dGNfY3RpbmZvX2RzY3AgZHNjcHBhcm07DQorCXN0cnVjdCB0Y19jdGluZm9fc3RhdHNfZHNjcCBk c2Nwc3RhdHM7DQorDQorCXNwaW5fbG9ja19iaCgmY2ktPnRjZl9sb2NrKTsNCisJY3AgPSByY3Vf ZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGNpLT5wYXJhbXMsDQorCQkJCSAgICAgICBsb2NrZGVwX2lz X2hlbGQoJmNpLT50Y2ZfbG9jaykpOw0KKwlvcHQuYWN0aW9uID0gY2ktPnRjZl9hY3Rpb247DQor DQorCWlmIChubGFfcHV0KHNrYiwgVENBX0NUSU5GT19BQ1QsIHNpemVvZihvcHQpLCAmb3B0KSkN CisJCWdvdG8gbmxhX3B1dF9mYWlsdXJlOw0KKw0KKwlpZiAoY3AtPm1vZGUgJiBDVElORk9fTU9E RV9TRVREU0NQKSB7DQorCQlkc2NwcGFybS5tYXNrID0gY3AtPmRzY3BtYXNrOw0KKwkJZHNjcHBh cm0uc3RhdGVtYXNrID0gY3AtPmRzY3BzdGF0ZW1hc2s7DQorCQlpZiAobmxhX3B1dChza2IsIFRD QV9DVElORk9fRFNDUF9QQVJNUywgc2l6ZW9mKGRzY3BwYXJtKSwNCisJCQkgICAgJmRzY3BwYXJt KSkNCisJCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsNCisNCisJCWlmIChubGFfcHV0X2ZsYWcoc2ti LCBUQ0FfQ1RJTkZPX01PREVfRFNDUCkpDQorCQkJZ290byBubGFfcHV0X2ZhaWx1cmU7DQorDQor CQlkc2Nwc3RhdHMuc2V0ID0gY2ktPnN0YXRzX2RzY3Bfc2V0Ow0KKwkJZHNjcHN0YXRzLmVycm9y ID0gY2ktPnN0YXRzX2RzY3BfZXJyb3I7DQorCQlpZiAobmxhX3B1dChza2IsIFRDQV9DVElORk9f U1RBVFNfRFNDUCwgc2l6ZW9mKGRzY3BzdGF0cyksDQorCQkJICAgICZkc2Nwc3RhdHMpKQ0KKwkJ CWdvdG8gbmxhX3B1dF9mYWlsdXJlOw0KKwl9DQorDQorCWlmIChjcC0+bW9kZSAmIENUSU5GT19N T0RFX1NFVE1BUkspIHsNCisJCWlmIChubGFfcHV0X3UzMihza2IsIFRDQV9DVElORk9fTUFSS19N QVNLLCBjcC0+bWFya21hc2spKQ0KKwkJCWdvdG8gbmxhX3B1dF9mYWlsdXJlOw0KKw0KKwkJaWYg KG5sYV9wdXRfZmxhZyhza2IsIFRDQV9DVElORk9fTU9ERV9NQVJLKSkNCisJCQlnb3RvIG5sYV9w dXRfZmFpbHVyZTsNCisNCisJCWlmIChubGFfcHV0X3U2NF82NGJpdChza2IsIFRDQV9DVElORk9f U1RBVFNfTUFSSywNCisJCQkJICAgICAgY2ktPnN0YXRzX21hcmtfc2V0LCBUQ0FfQ1RJTkZPX1BB RCkpDQorCQkJZ290byBubGFfcHV0X2ZhaWx1cmU7DQorCX0NCisNCisJaWYgKGNwLT56b25lKSB7 DQorCQlpZiAobmxhX3B1dF91MTYoc2tiLCBUQ0FfQ1RJTkZPX1pPTkUsIGNwLT56b25lKSkNCisJ CQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsNCisJfQ0KKw0KKwl0Y2ZfdG1fZHVtcCgmdCwgJmNpLT50 Y2ZfdG0pOw0KKwlpZiAobmxhX3B1dF82NGJpdChza2IsIFRDQV9DVElORk9fVE0sIHNpemVvZih0 KSwgJnQsIFRDQV9DVElORk9fUEFEKSkNCisJCWdvdG8gbmxhX3B1dF9mYWlsdXJlOw0KKw0KKwlz cGluX3VubG9ja19iaCgmY2ktPnRjZl9sb2NrKTsNCisJcmV0dXJuIHNrYi0+bGVuOw0KKw0KK25s YV9wdXRfZmFpbHVyZToNCisJc3Bpbl91bmxvY2tfYmgoJmNpLT50Y2ZfbG9jayk7DQorCW5sbXNn X3RyaW0oc2tiLCBiKTsNCisJcmV0dXJuIC0xOw0KK30NCisNCitzdGF0aWMgaW50IHRjZl9jdGlu Zm9fd2Fsa2VyKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwNCisJCQkgICAg IHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYiwgaW50IHR5cGUsDQorCQkJICAgICBjb25zdCBz dHJ1Y3QgdGNfYWN0aW9uX29wcyAqb3BzLA0KKwkJCSAgICAgc3RydWN0IG5ldGxpbmtfZXh0X2Fj ayAqZXh0YWNrKQ0KK3sNCisJc3RydWN0IHRjX2FjdGlvbl9uZXQgKnRuID0gbmV0X2dlbmVyaWMo bmV0LCBjdGluZm9fbmV0X2lkKTsNCisNCisJcmV0dXJuIHRjZl9nZW5lcmljX3dhbGtlcih0biwg c2tiLCBjYiwgdHlwZSwgb3BzLCBleHRhY2spOw0KK30NCisNCitzdGF0aWMgaW50IHRjZl9jdGlu Zm9fc2VhcmNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRjX2FjdGlvbiAqKmEsIHUzMiBpbmRl eCkNCit7DQorCXN0cnVjdCB0Y19hY3Rpb25fbmV0ICp0biA9IG5ldF9nZW5lcmljKG5ldCwgY3Rp bmZvX25ldF9pZCk7DQorDQorCXJldHVybiB0Y2ZfaWRyX3NlYXJjaCh0biwgYSwgaW5kZXgpOw0K K30NCisNCitzdGF0aWMgc3RydWN0IHRjX2FjdGlvbl9vcHMgYWN0X2N0aW5mb19vcHMgPSB7DQor CS5raW5kCQk9CSJjdGluZm8iLA0KKwkuaWQJCT0JVENBX0lEX0NUSU5GTywNCisJLm93bmVyCQk9 CVRISVNfTU9EVUxFLA0KKwkuYWN0CQk9CXRjZl9jdGluZm9fYWN0LA0KKwkuZHVtcAkJPQl0Y2Zf Y3RpbmZvX2R1bXAsDQorCS5pbml0CQk9CXRjZl9jdGluZm9faW5pdCwNCisJLndhbGsJCT0JdGNm X2N0aW5mb193YWxrZXIsDQorCS5sb29rdXAJCT0JdGNmX2N0aW5mb19zZWFyY2gsDQorCS5zaXpl CQk9CXNpemVvZihzdHJ1Y3QgdGNmX2N0aW5mbyksDQorfTsNCisNCitzdGF0aWMgX19uZXRfaW5p dCBpbnQgY3RpbmZvX2luaXRfbmV0KHN0cnVjdCBuZXQgKm5ldCkNCit7DQorCXN0cnVjdCB0Y19h Y3Rpb25fbmV0ICp0biA9IG5ldF9nZW5lcmljKG5ldCwgY3RpbmZvX25ldF9pZCk7DQorDQorCXJl dHVybiB0Y19hY3Rpb25fbmV0X2luaXQodG4sICZhY3RfY3RpbmZvX29wcyk7DQorfQ0KKw0KK3N0 YXRpYyB2b2lkIF9fbmV0X2V4aXQgY3RpbmZvX2V4aXRfbmV0KHN0cnVjdCBsaXN0X2hlYWQgKm5l dF9saXN0KQ0KK3sNCisJdGNfYWN0aW9uX25ldF9leGl0KG5ldF9saXN0LCBjdGluZm9fbmV0X2lk KTsNCit9DQorDQorc3RhdGljIHN0cnVjdCBwZXJuZXRfb3BlcmF0aW9ucyBjdGluZm9fbmV0X29w cyA9IHsNCisJLmluaXQgPSBjdGluZm9faW5pdF9uZXQsDQorCS5leGl0X2JhdGNoID0gY3RpbmZv X2V4aXRfbmV0LA0KKwkuaWQgICA9ICZjdGluZm9fbmV0X2lkLA0KKwkuc2l6ZSA9IHNpemVvZihz dHJ1Y3QgdGNfYWN0aW9uX25ldCksDQorfTsNCisNCitzdGF0aWMgaW50IF9faW5pdCBjdGluZm9f aW5pdF9tb2R1bGUodm9pZCkNCit7DQorCXJldHVybiB0Y2ZfcmVnaXN0ZXJfYWN0aW9uKCZhY3Rf Y3RpbmZvX29wcywgJmN0aW5mb19uZXRfb3BzKTsNCit9DQorDQorc3RhdGljIHZvaWQgX19leGl0 IGN0aW5mb19jbGVhbnVwX21vZHVsZSh2b2lkKQ0KK3sNCisJdGNmX3VucmVnaXN0ZXJfYWN0aW9u KCZhY3RfY3RpbmZvX29wcywgJmN0aW5mb19uZXRfb3BzKTsNCit9DQorDQorbW9kdWxlX2luaXQo Y3RpbmZvX2luaXRfbW9kdWxlKTsNCittb2R1bGVfZXhpdChjdGluZm9fY2xlYW51cF9tb2R1bGUp Ow0KK01PRFVMRV9BVVRIT1IoIktldmluIERhcmJ5c2hpcmUtQnJ5YW50IDxsZGlyQGRhcmJ5c2hp cmUtYnJ5YW50Lm1lLnVrPiIpOw0KK01PRFVMRV9ERVNDUklQVElPTigiQ29ubmVjdGlvbiB0cmFj a2luZyBtYXJrIGFjdGlvbnMiKTsNCitNT0RVTEVfTElDRU5TRSgiR1BMIik7DQpkaWZmIC0tZ2l0 IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvdGMtdGVzdGluZy9jb25maWcgYi90b29scy90ZXN0 aW5nL3NlbGZ0ZXN0cy90Yy10ZXN0aW5nL2NvbmZpZw0KaW5kZXggMjAzMzAyMDY1NDU4Li5iMjM1 ZWZkNTUzNjcgMTAwNjQ0DQotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy90Yy10ZXN0aW5n L2NvbmZpZw0KKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvdGMtdGVzdGluZy9jb25maWcN CkBAIC0zOCw2ICszOCw3IEBAIENPTkZJR19ORVRfQUNUX0NTVU09bQ0KIENPTkZJR19ORVRfQUNU X1ZMQU49bQ0KIENPTkZJR19ORVRfQUNUX0JQRj1tDQogQ09ORklHX05FVF9BQ1RfQ09OTk1BUks9 bQ0KK0NPTkZJR19ORVRfQUNUX0NUSU5GTz1tDQogQ09ORklHX05FVF9BQ1RfU0tCTU9EPW0NCiBD T05GSUdfTkVUX0FDVF9JRkU9bQ0KIENPTkZJR19ORVRfQUNUX1RVTk5FTF9LRVk9bQ0KLS0gDQoy LjIwLjEgKEFwcGxlIEdpdC0xMTcpDQoNCg==