Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1465952yba; Sun, 5 May 2019 07:02:02 -0700 (PDT) X-Google-Smtp-Source: APXvYqx4Rzv4+4ulAQrtTRwjcHL4dyIW+eEPGrJEo3GX/VSoButSCth2phtx7+E8lrEHSuFlb9Vr X-Received: by 2002:a17:902:e58e:: with SMTP id cl14mr25330524plb.85.1557064922239; Sun, 05 May 2019 07:02:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557064922; cv=none; d=google.com; s=arc-20160816; b=0fZbZO4vR36s+BKDo3r7lZFrd9Z1PX4Fn1brZz4PmGy/hXZSwdmmTIf1WedWbU4Mcj UwZ1flWhogBlFGjly53ucjrAeECPSYir4v81aDZ87uZHMXwxvg4kiwUnTn2EL/PhT+th 2EoCHn7z2ljijghIgPc1W5izvW3DNGBBeyHzmKZ+OIPXRlunLmF//vMViPYD5nfPqo7y c7Pj72W7RgJY23/2KgheRYN0F11wFMIwCf96qm1Z+QDw4/ofhY+SDRMeV6gynWLkbqFU X7Wdk5MoLLPnAHOOXdEeA2I5qvLsVqypKe3JQXx2vCGjyzl12cTRqcAQ//7ckQYVEOtT y74g== 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=QMsTvr4mliO/glMNCaXgKPCVaAA4vriCiQ0h4q5q47s=; b=0BRDQ2kbfURPS4ZfcJ2SAqn5CGQULZWRxcxyHAm5K03iRzHMR3i0Xq8rOyBzuFduf3 SeC/mMb7rjKjc2lmO0VXtMTYJK4WzRRtDZEVjuXBcRZA5462rhszl5ynbWa6ONx3nhAc u/cHPoy9uOkH6so1XGNMeJDbL0oGZtmJAiDZWpcoTS2JZJKkL2DxXfyRlb2b9hrXGyAm BL+hbFRDKBxjZcbRQly4HRtOGRaL+UKYBPa5H00rHNTa4XdNDqqXBRDmxe+BlChNrT8J 6MBIur4+7ihk7DDVeUVZnVFrD4F56B5OaTMv9HEiHxa6MvUMG/TBytKwzAa4dbT5knvc YczQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@darbyshire-bryant.me.uk header.s=selector1 header.b=wxPR1eIh; 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 n13si10592194pgv.11.2019.05.05.07.01.46; Sun, 05 May 2019 07:02:02 -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=wxPR1eIh; 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 S1727847AbfEENUZ (ORCPT + 99 others); Sun, 5 May 2019 09:20:25 -0400 Received: from mail-eopbgr130050.outbound.protection.outlook.com ([40.107.13.50]:16871 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727616AbfEENUY (ORCPT ); Sun, 5 May 2019 09:20:24 -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=QMsTvr4mliO/glMNCaXgKPCVaAA4vriCiQ0h4q5q47s=; b=wxPR1eIha/v6qcsjhnUZ8lZB8bCAHduo/2mEiVZweGXjYnQXaznBheG2xPL5WKT3RIv62VLH2UqXwBHq6Mb6tVrAhSQbBJTSX/ThIe0zVoFNi/OMJSPvsHoWOilRLccSYFSG9nEj5ohlayoKWrPPs0kLv/Wga+0TwuqYOTdUYGQ= Received: from VI1PR0302MB2750.eurprd03.prod.outlook.com (10.171.105.143) by VI1PR0302MB2816.eurprd03.prod.outlook.com (10.171.106.17) 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 13:20:13 +0000 Received: from VI1PR0302MB2750.eurprd03.prod.outlook.com ([fe80::a096:fef7:568:7358]) by VI1PR0302MB2750.eurprd03.prod.outlook.com ([fe80::a096:fef7:568:7358%7]) with mapi id 15.20.1856.012; Sun, 5 May 2019 13:20:13 +0000 From: Kevin 'ldir' Darbyshire-Bryant To: Kevin 'ldir' Darbyshire-Bryant CC: "davem@davemloft.net" , "jhs@mojatatu.com" , "jiri@resnulli.us" , "linux-kernel@vger.kernel.org" , "linux-kselftest@vger.kernel.org" , "netdev@vger.kernel.org" , "shuah@kernel.org" , "xiyou.wangcong@gmail.com" Subject: [net-next v3] net: sched: Introduce act_ctinfo action Thread-Topic: [net-next v3] net: sched: Introduce act_ctinfo action Thread-Index: AQHVA0VFBCng6RnNCEC0SahM/hixhg== Date: Sun, 5 May 2019 13:20:13 +0000 Message-ID: <20190505131736.50496-1-ldir@darbyshire-bryant.me.uk> References: <20190505101523.48425-1-ldir@darbyshire-bryant.me.uk> In-Reply-To: <20190505101523.48425-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: LO2P265CA0421.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a0::25) 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: 3108d7e6-9060-4927-a6ff-08d6d15c67dd x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(7021145)(8989299)(4534185)(7022145)(4603075)(4627221)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020);SRVR:VI1PR0302MB2816; x-ms-traffictypediagnostic: VI1PR0302MB2816: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5516; x-forefront-prvs: 00286C0CA6 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(396003)(346002)(136003)(376002)(39830400003)(366004)(189003)(199004)(6436002)(66574012)(53946003)(6116002)(53936002)(6512007)(3846002)(305945005)(36756003)(476003)(68736007)(74482002)(7736002)(14454004)(2616005)(7049001)(81156014)(81166006)(66446008)(64756008)(86362001)(486006)(30864003)(66476007)(73956011)(6486002)(1076003)(71200400001)(66556008)(71190400001)(8936002)(66946007)(8676002)(99286004)(2906002)(4326008)(52116002)(478600001)(66066001)(256004)(14444005)(11346002)(446003)(50226002)(6862004)(25786009)(6200100001)(5660300002)(316002)(76176011)(102836004)(37006003)(54906003)(26005)(386003)(6506007)(186003);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0302MB2816;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: Xl+FVay5dqpbqSDw4bItj/r1CA2WJKNnLrETV1FLqjxvbjPBN+WdHohstwSDJWy561bIr8oAzDPyZUCzOvX/eUyMo0la8Ob4c6egi/NbsiINU9J31ZD5jH6iyzC2StQn68J6NPGhXKOkSPbEidpGGF10ybXSROy3lm9lxtztmlLr+4IfmAgtQkhl2JMf6goV1ZsUxxyE09G0WDoj/HnSPzHA+l8CX8lOchCvrt1PVYeYzmezcefWskVgFtSUcNVDc4RL5uKjW7NxlEAxhnn0YYA/upmzdtfzXoaLNA+rB7m28xI18pLxuo9+Fpczb7XX8iQWqJLB19cpKc7qEPnpk36sy4iCdmEpwM7WOy69WJH5r4lQsYf/DjDS2rptZ7UbCGNgDxofMPQkoaIOQ4OXmL9v0jZW/aSWDZ3HAbgBdK4= 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: 3108d7e6-9060-4927-a6ff-08d6d15c67dd X-MS-Exchange-CrossTenant-originalarrivaltime: 05 May 2019 13:20:13.6615 (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: VI1PR0302MB2816 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 CnYyIC0gYWRkIGVxdWl2YWxlbnQgY29ubm1hcmsgZnVuY3Rpb25hbGl0eSB3aXRoIGFuIGVuaGFu Y2VtZW50DQogICAgIHRvIGFjY2VwdCBhIG1hc2sNCiAgICAgcGFzcyBzdGF0aXN0aWNzIGZvciBl YWNoIHN1Yi1mdW5jdGlvbiBhcyBpbmRpdmlkdWFsIG5ldGxpbmsNCiAgICAgYXR0cmlidXRlcyBh bmQgc3RvcCAoYWIpdXNpbmcgb3ZlcmxpbWl0cywgZHJvcHMNCiAgICAgdXBkYXRlIHRoZSB0ZXN0 aW5nIGNvbmZpZyBjb3JyZWN0bHkNCnYzIC0gZml4IGEgbGljZW5zaW5nIHNpbGx5ICYgdGlkeSB1 cCBHUEwgYm9pbGVycGxhdGUNCg0KIGluY2x1ZGUvbmV0L3RjX2FjdC90Y19jdGluZm8uaCAgICAg ICAgICAgIHwgIDI4ICsrDQogaW5jbHVkZS91YXBpL2xpbnV4L3BrdF9jbHMuaCAgICAgICAgICAg ICAgfCAgIDEgKw0KIGluY2x1ZGUvdWFwaS9saW51eC90Y19hY3QvdGNfY3RpbmZvLmggICAgIHwg IDQzICsrKw0KIG5ldC9zY2hlZC9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE3 ICsNCiBuZXQvc2NoZWQvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArDQog bmV0L3NjaGVkL2FjdF9jdGluZm8uYyAgICAgICAgICAgICAgICAgICAgfCA0MDIgKysrKysrKysr KysrKysrKysrKysrKw0KIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3RjLXRlc3RpbmcvY29uZmln IHwgICAxICsNCiA3IGZpbGVzIGNoYW5nZWQsIDQ5MyBpbnNlcnRpb25zKCspDQogY3JlYXRlIG1v ZGUgMTAwNjQ0IGluY2x1ZGUvbmV0L3RjX2FjdC90Y19jdGluZm8uaA0KIGNyZWF0ZSBtb2RlIDEw MDY0NCBpbmNsdWRlL3VhcGkvbGludXgvdGNfYWN0L3RjX2N0aW5mby5oDQogY3JlYXRlIG1vZGUg MTAwNjQ0IG5ldC9zY2hlZC9hY3RfY3RpbmZvLmMNCg0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0 L3RjX2FjdC90Y19jdGluZm8uaCBiL2luY2x1ZGUvbmV0L3RjX2FjdC90Y19jdGluZm8uaA0KbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uODczMzQxMjBkY2I2DQotLS0g L2Rldi9udWxsDQorKysgYi9pbmNsdWRlL25ldC90Y19hY3QvdGNfY3RpbmZvLmgNCkBAIC0wLDAg KzEsMjggQEANCisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLw0KKyNpZm5k ZWYgX19ORVRfVENfQ1RJTkZPX0gNCisjZGVmaW5lIF9fTkVUX1RDX0NUSU5GT19IDQorDQorI2lu Y2x1ZGUgPG5ldC9hY3RfYXBpLmg+DQorDQorc3RydWN0IHRjZl9jdGluZm9fcGFyYW1zIHsNCisJ c3RydWN0IG5ldCAqbmV0Ow0KKwl1MzIgZHNjcG1hc2s7DQorCXUzMiBkc2Nwc3RhdGVtYXNrOw0K Kwl1MzIgbWFya21hc2s7DQorCXUxNiB6b25lOw0KKwl1OCBtb2RlOw0KKwl1OCBkc2NwbWFza3No aWZ0Ow0KKwlzdHJ1Y3QgcmN1X2hlYWQgcmN1Ow0KK307DQorDQorc3RydWN0IHRjZl9jdGluZm8g ew0KKwlzdHJ1Y3QgdGNfYWN0aW9uIGNvbW1vbjsNCisJc3RydWN0IHRjZl9jdGluZm9fcGFyYW1z IF9fcmN1ICpwYXJhbXM7DQorCXU2NCBzdGF0c19kc2NwX3NldDsNCisJdTY0IHN0YXRzX2RzY3Bf ZXJyb3I7DQorCXU2NCBzdGF0c19tYXJrX3NldDsNCit9Ow0KKw0KKyNkZWZpbmUgdG9fY3RpbmZv KGEpICgoc3RydWN0IHRjZl9jdGluZm8gKilhKQ0KKw0KKyNlbmRpZiAvKiBfX05FVF9UQ19DVElO Rk9fSCAqLw0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9wa3RfY2xzLmggYi9pbmNs dWRlL3VhcGkvbGludXgvcGt0X2Nscy5oDQppbmRleCA1MWEwNDk2Zjc4ZWEuLmE5MzY4MGZjNGJm YSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9wa3RfY2xzLmgNCisrKyBiL2luY2x1 ZGUvdWFwaS9saW51eC9wa3RfY2xzLmgNCkBAIC0xMDUsNiArMTA1LDcgQEAgZW51bSB0Y2FfaWQg ew0KIAlUQ0FfSURfSUZFID0gVENBX0FDVF9JRkUsDQogCVRDQV9JRF9TQU1QTEUgPSBUQ0FfQUNU X1NBTVBMRSwNCiAJLyogb3RoZXIgYWN0aW9ucyBnbyBoZXJlICovDQorCVRDQV9JRF9DVElORk8s DQogCV9fVENBX0lEX01BWCA9IDI1NQ0KIH07DQogDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBp L2xpbnV4L3RjX2FjdC90Y19jdGluZm8uaCBiL2luY2x1ZGUvdWFwaS9saW51eC90Y19hY3QvdGNf Y3RpbmZvLmgNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAuLjhkMjU0 YjgyMTUxYw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L3RjX2FjdC90 Y19jdGluZm8uaA0KQEAgLTAsMCArMSw0MyBAQA0KKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wIFdJVEggTGludXgtc3lzY2FsbC1ub3RlICovDQorI2lmbmRlZiBfX1VBUElfVENf Q1RJTkZPX0gNCisjZGVmaW5lIF9fVUFQSV9UQ19DVElORk9fSA0KKw0KKyNpbmNsdWRlIDxsaW51 eC90eXBlcy5oPg0KKyNpbmNsdWRlIDxsaW51eC9wa3RfY2xzLmg+DQorDQorc3RydWN0IHRjX2N0 aW5mbyB7DQorCXRjX2dlbjsNCit9Ow0KKw0KK3N0cnVjdCB0Y19jdGluZm9fZHNjcCB7DQorCV9f dTMyIG1hc2s7DQorCV9fdTMyIHN0YXRlbWFzazsNCit9Ow0KKw0KK3N0cnVjdCB0Y19jdGluZm9f c3RhdHNfZHNjcCB7DQorCV9fdTY0IHNldDsNCisJX191NjQgZXJyb3I7DQorfTsNCisNCitlbnVt IHsNCisJVENBX0NUSU5GT19VTlNQRUMsDQorCVRDQV9DVElORk9fQUNULA0KKwlUQ0FfQ1RJTkZP X1pPTkUsDQorCVRDQV9DVElORk9fRFNDUF9QQVJNUywNCisJVENBX0NUSU5GT19NQVJLX01BU0ss DQorCVRDQV9DVElORk9fTU9ERV9EU0NQLA0KKwlUQ0FfQ1RJTkZPX01PREVfTUFSSywNCisJVENB X0NUSU5GT19TVEFUU19EU0NQLA0KKwlUQ0FfQ1RJTkZPX1NUQVRTX01BUkssDQorCVRDQV9DVElO Rk9fVE0sDQorCVRDQV9DVElORk9fUEFELA0KKwlfX1RDQV9DVElORk9fTUFYDQorfTsNCisjZGVm aW5lIFRDQV9DVElORk9fTUFYIChfX1RDQV9DVElORk9fTUFYIC0gMSkNCisNCitlbnVtIHsNCisJ Q1RJTkZPX01PREVfU0VURFNDUAk9IEJJVCgwKSwNCisJQ1RJTkZPX01PREVfU0VUTUFSSwk9IEJJ VCgxKQ0KK307DQorDQorI2VuZGlmDQpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL0tjb25maWcgYi9u ZXQvc2NoZWQvS2NvbmZpZw0KaW5kZXggNWMwMmFkOTdlZjIzLi5mNTc3M2VmZmNmZGMgMTAwNjQ0 DQotLS0gYS9uZXQvc2NoZWQvS2NvbmZpZw0KKysrIGIvbmV0L3NjaGVkL0tjb25maWcNCkBAIC04 NzYsNiArODc2LDIzIEBAIGNvbmZpZyBORVRfQUNUX0NPTk5NQVJLDQogCSAgVG8gY29tcGlsZSB0 aGlzIGNvZGUgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQ0KIAkgIG1vZHVsZSB3aWxs IGJlIGNhbGxlZCBhY3RfY29ubm1hcmsuDQogDQorY29uZmlnIE5FVF9BQ1RfQ1RJTkZPDQorICAg ICAgICB0cmlzdGF0ZSAiTmV0ZmlsdGVyIENvbm5lY3Rpb24gTWFyayBBY3Rpb25zIg0KKyAgICAg ICAgZGVwZW5kcyBvbiBORVRfQ0xTX0FDVCAmJiBORVRGSUxURVIgJiYgSVBfTkZfSVBUQUJMRVMN CisgICAgICAgIGRlcGVuZHMgb24gTkZfQ09OTlRSQUNLICYmIE5GX0NPTk5UUkFDS19NQVJLDQor ICAgICAgICBoZWxwDQorCSAgU2F5IFkgaGVyZSB0byBhbGxvdyB0cmFuc2ZlciBvZiBhIGNvbm5t YXJrIHN0b3JlZCBpbmZvcm1hdGlvbi4NCisJICBDdXJyZW50IGFjdGlvbnMgdHJhbnNmZXIgY29u bm1hcmsgc3RvcmVkIERTQ1AgaW50bw0KKwkgIGlwdjQvdjYgZGlmZnNlcnYgYW5kL29yIHRvIHRy YW5zZmVyIGNvbm5tYXJrIHRvIHBhY2tldA0KKwkgIG1hcmsuICBCb3RoIGFyZSB1c2VmdWwgZm9y IHJlc3RvcmluZyBlZ3Jlc3MgYmFzZWQgbWFya3MNCisJICBiYWNrIG9udG8gaW5ncmVzcyBjb25u ZWN0aW9ucyBmb3IgcWRpc2MgcHJpb3JpdHkgbWFwcGluZw0KKwkgIHB1cnBvc2VzLg0KKw0KKwkg IElmIHVuc3VyZSwgc2F5IE4uDQorDQorCSAgVG8gY29tcGlsZSB0aGlzIGNvZGUgYXMgYSBtb2R1 bGUsIGNob29zZSBNIGhlcmU6IHRoZQ0KKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBhY3RfY3Rp bmZvLg0KKw0KIGNvbmZpZyBORVRfQUNUX1NLQk1PRA0KICAgICAgICAgdHJpc3RhdGUgInNrYiBk YXRhIG1vZGlmaWNhdGlvbiBhY3Rpb24iDQogICAgICAgICBkZXBlbmRzIG9uIE5FVF9DTFNfQUNU DQpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL01ha2VmaWxlIGIvbmV0L3NjaGVkL01ha2VmaWxlDQpp bmRleCA4YTQwNDMxZDdiNWMuLmQ1NGJmY2JkNzk4MSAxMDA2NDQNCi0tLSBhL25ldC9zY2hlZC9N YWtlZmlsZQ0KKysrIGIvbmV0L3NjaGVkL01ha2VmaWxlDQpAQCAtMjEsNiArMjEsNyBAQCBvYmot JChDT05GSUdfTkVUX0FDVF9DU1VNKQkrPSBhY3RfY3N1bS5vDQogb2JqLSQoQ09ORklHX05FVF9B Q1RfVkxBTikJKz0gYWN0X3ZsYW4ubw0KIG9iai0kKENPTkZJR19ORVRfQUNUX0JQRikJKz0gYWN0 X2JwZi5vDQogb2JqLSQoQ09ORklHX05FVF9BQ1RfQ09OTk1BUkspCSs9IGFjdF9jb25ubWFyay5v DQorb2JqLSQoQ09ORklHX05FVF9BQ1RfQ1RJTkZPKQkrPSBhY3RfY3RpbmZvLm8NCiBvYmotJChD T05GSUdfTkVUX0FDVF9TS0JNT0QpCSs9IGFjdF9za2Jtb2Qubw0KIG9iai0kKENPTkZJR19ORVRf QUNUX0lGRSkJKz0gYWN0X2lmZS5vDQogb2JqLSQoQ09ORklHX05FVF9JRkVfU0tCTUFSSykJKz0g YWN0X21ldGFfbWFyay5vDQpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2FjdF9jdGluZm8uYyBiL25l dC9zY2hlZC9hY3RfY3RpbmZvLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw MDAwMDAuLjI2MTgwN2IyMjJjYQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvbmV0L3NjaGVkL2FjdF9j dGluZm8uYw0KQEAgLTAsMCArMSw0MDIgQEANCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMCsNCisvKiBuZXQvc2NoZWQvYWN0X2N0aW5mby5jICBuZXRmaWx0ZXIgY3RpbmZvIGNv bm5tYXJrIGFjdGlvbnMNCisgKg0KKyAqIENvcHlyaWdodCAoYykgMjAxOSBLZXZpbiBEYXJieXNo aXJlLUJyeWFudCA8bGRpckBkYXJieXNoaXJlLWJyeWFudC5tZS51az4NCisgKi8NCisNCisjaW5j bHVkZSA8bGludXgvbW9kdWxlLmg+DQorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4NCisjaW5jbHVk ZSA8bGludXgva2VybmVsLmg+DQorI2luY2x1ZGUgPGxpbnV4L3NrYnVmZi5oPg0KKyNpbmNsdWRl IDxsaW51eC9ydG5ldGxpbmsuaD4NCisjaW5jbHVkZSA8bGludXgvcGt0X2Nscy5oPg0KKyNpbmNs dWRlIDxsaW51eC9pcC5oPg0KKyNpbmNsdWRlIDxsaW51eC9pcHY2Lmg+DQorI2luY2x1ZGUgPG5l dC9uZXRsaW5rLmg+DQorI2luY2x1ZGUgPG5ldC9wa3Rfc2NoZWQuaD4NCisjaW5jbHVkZSA8bmV0 L2FjdF9hcGkuaD4NCisjaW5jbHVkZSA8bmV0L3BrdF9jbHMuaD4NCisjaW5jbHVkZSA8dWFwaS9s aW51eC90Y19hY3QvdGNfY3RpbmZvLmg+DQorI2luY2x1ZGUgPG5ldC90Y19hY3QvdGNfY3RpbmZv Lmg+DQorDQorI2luY2x1ZGUgPG5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrLmg+DQorI2luY2x1 ZGUgPG5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2NvcmUuaD4NCisjaW5jbHVkZSA8bmV0L25l dGZpbHRlci9uZl9jb25udHJhY2tfZWNhY2hlLmg+DQorI2luY2x1ZGUgPG5ldC9uZXRmaWx0ZXIv bmZfY29ubnRyYWNrX3pvbmVzLmg+DQorDQorc3RhdGljIHVuc2lnbmVkIGludCBjdGluZm9fbmV0 X2lkOw0KK3N0YXRpYyBzdHJ1Y3QgdGNfYWN0aW9uX29wcyBhY3RfY3RpbmZvX29wczsNCisNCitz dGF0aWMgdm9pZCB0Y2ZfY3RpbmZvX2RzY3Bfc2V0KHN0cnVjdCBuZl9jb25uICpjdCwgc3RydWN0 IHRjZl9jdGluZm8gKmNhLA0KKwkJCQlzdHJ1Y3QgdGNmX2N0aW5mb19wYXJhbXMgKmNwLA0KKwkJ CQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgd2xlbiwgaW50IHByb3RvKQ0KK3sNCisJdTggZHNj cCwgbmV3ZHNjcDsNCisNCisJbmV3ZHNjcCA9ICgoKGN0LT5tYXJrICYgY3AtPmRzY3BtYXNrKSA+ PiBjcC0+ZHNjcG1hc2tzaGlmdCkgPDwgMikgJg0KKwkJICAgICB+SU5FVF9FQ05fTUFTSzsNCisN CisJc3dpdGNoIChwcm90bykgew0KKwljYXNlIE5GUFJPVE9fSVBWNDoNCisJCWRzY3AgPSBpcHY0 X2dldF9kc2ZpZWxkKGlwX2hkcihza2IpKSAmIH5JTkVUX0VDTl9NQVNLOw0KKwkJaWYgKGRzY3Ag IT0gbmV3ZHNjcCkgew0KKwkJCWlmIChsaWtlbHkoIXNrYl90cnlfbWFrZV93cml0YWJsZShza2Is IHdsZW4pKSkgew0KKwkJCQlpcHY0X2NoYW5nZV9kc2ZpZWxkKGlwX2hkcihza2IpLA0KKwkJCQkJ CSAgICBJTkVUX0VDTl9NQVNLLA0KKwkJCQkJCSAgICBuZXdkc2NwKTsNCisJCQkJY2EtPnN0YXRz X2RzY3Bfc2V0Kys7DQorCQkJfSBlbHNlIHsNCisJCQkJY2EtPnN0YXRzX2RzY3BfZXJyb3IrKzsN CisJCQl9DQorCQl9DQorCQlicmVhazsNCisJY2FzZSBORlBST1RPX0lQVjY6DQorCQlkc2NwID0g aXB2Nl9nZXRfZHNmaWVsZChpcHY2X2hkcihza2IpKSAmIH5JTkVUX0VDTl9NQVNLOw0KKwkJaWYg KGRzY3AgIT0gbmV3ZHNjcCkgew0KKwkJCWlmIChsaWtlbHkoIXNrYl90cnlfbWFrZV93cml0YWJs ZShza2IsIHdsZW4pKSkgew0KKwkJCQlpcHY2X2NoYW5nZV9kc2ZpZWxkKGlwdjZfaGRyKHNrYiks DQorCQkJCQkJICAgIElORVRfRUNOX01BU0ssDQorCQkJCQkJICAgIG5ld2RzY3ApOw0KKwkJCQlj YS0+c3RhdHNfZHNjcF9zZXQrKzsNCisJCQl9IGVsc2Ugew0KKwkJCQljYS0+c3RhdHNfZHNjcF9l cnJvcisrOw0KKwkJCX0NCisJCX0NCisJCWJyZWFrOw0KKwlkZWZhdWx0Og0KKwkJYnJlYWs7DQor CX0NCit9DQorDQorc3RhdGljIHZvaWQgdGNmX2N0aW5mb19tYXJrX3NldChzdHJ1Y3QgbmZfY29u biAqY3QsIHN0cnVjdCB0Y2ZfY3RpbmZvICpjYSwNCisJCQkJc3RydWN0IHRjZl9jdGluZm9fcGFy YW1zICpjcCwNCisJCQkJc3RydWN0IHNrX2J1ZmYgKnNrYikNCit7DQorCWNhLT5zdGF0c19tYXJr X3NldCsrOw0KKwlza2ItPm1hcmsgPSBjdC0+bWFyayAmIGNwLT5tYXJrbWFzazsNCit9DQorDQor c3RhdGljIGludCB0Y2ZfY3RpbmZvX2FjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1 Y3QgdGNfYWN0aW9uICphLA0KKwkJCSAgc3RydWN0IHRjZl9yZXN1bHQgKnJlcykNCit7DQorCWNv bnN0IHN0cnVjdCBuZl9jb25udHJhY2tfdHVwbGVfaGFzaCAqdGhhc2ggPSBOVUxMOw0KKwlzdHJ1 Y3QgbmZfY29ubnRyYWNrX3R1cGxlIHR1cGxlOw0KKwllbnVtIGlwX2Nvbm50cmFja19pbmZvIGN0 aW5mbzsNCisJc3RydWN0IHRjZl9jdGluZm8gKmNhID0gdG9fY3RpbmZvKGEpOw0KKwlzdHJ1Y3Qg dGNmX2N0aW5mb19wYXJhbXMgKmNwOw0KKwlzdHJ1Y3QgbmZfY29ubnRyYWNrX3pvbmUgem9uZTsN CisJc3RydWN0IG5mX2Nvbm4gKmN0Ow0KKwlpbnQgcHJvdG8sIHdsZW47DQorCWludCBhY3Rpb247 DQorDQorCWNwID0gcmN1X2RlcmVmZXJlbmNlX2JoKGNhLT5wYXJhbXMpOw0KKw0KKwl0Y2ZfbGFz dHVzZV91cGRhdGUoJmNhLT50Y2ZfdG0pOw0KKwlic3RhdHNfdXBkYXRlKCZjYS0+dGNmX2JzdGF0 cywgc2tiKTsNCisJYWN0aW9uID0gUkVBRF9PTkNFKGNhLT50Y2ZfYWN0aW9uKTsNCisNCisJd2xl biA9IHNrYl9uZXR3b3JrX29mZnNldChza2IpOw0KKwlpZiAodGNfc2tiX3Byb3RvY29sKHNrYikg PT0gaHRvbnMoRVRIX1BfSVApKSB7DQorCQl3bGVuICs9IHNpemVvZihzdHJ1Y3QgaXBoZHIpOw0K KwkJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgd2xlbikpDQorCQkJZ290byBvdXQ7DQorDQorCQlw cm90byA9IE5GUFJPVE9fSVBWNDsNCisJfSBlbHNlIGlmICh0Y19za2JfcHJvdG9jb2woc2tiKSA9 PSBodG9ucyhFVEhfUF9JUFY2KSkgew0KKwkJd2xlbiArPSBzaXplb2Yoc3RydWN0IGlwdjZoZHIp Ow0KKwkJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgd2xlbikpDQorCQkJZ290byBvdXQ7DQorDQor CQlwcm90byA9IE5GUFJPVE9fSVBWNjsNCisJfSBlbHNlIHsNCisJCWdvdG8gb3V0Ow0KKwl9DQor DQorCWN0ID0gbmZfY3RfZ2V0KHNrYiwgJmN0aW5mbyk7DQorCWlmICghY3QpIHsgLyogbG9vayBo YXJkZXIsIHVzdWFsbHkgaW5ncmVzcyAqLw0KKwkJaWYgKCFuZl9jdF9nZXRfdHVwbGVwcihza2Is IHNrYl9uZXR3b3JrX29mZnNldChza2IpLA0KKwkJCQkgICAgICAgcHJvdG8sIGNwLT5uZXQsICZ0 dXBsZSkpDQorCQkJZ290byBvdXQ7DQorCQl6b25lLmlkID0gY3AtPnpvbmU7DQorCQl6b25lLmRp ciA9IE5GX0NUX0RFRkFVTFRfWk9ORV9ESVI7DQorDQorCQl0aGFzaCA9IG5mX2Nvbm50cmFja19m aW5kX2dldChjcC0+bmV0LCAmem9uZSwgJnR1cGxlKTsNCisJCWlmICghdGhhc2gpDQorCQkJZ290 byBvdXQ7DQorDQorCQljdCA9IG5mX2N0X3R1cGxlaGFzaF90b19jdHJhY2sodGhhc2gpOw0KKwl9 DQorDQorCWlmIChjcC0+bW9kZSAmIENUSU5GT19NT0RFX1NFVERTQ1ApDQorCQlpZiAoIWNwLT5k c2Nwc3RhdGVtYXNrIHx8IChjdC0+bWFyayAmIGNwLT5kc2Nwc3RhdGVtYXNrKSkNCisJCQl0Y2Zf Y3RpbmZvX2RzY3Bfc2V0KGN0LCBjYSwgY3AsIHNrYiwgd2xlbiwgcHJvdG8pOw0KKw0KKwlpZiAo Y3AtPm1vZGUgJiBDVElORk9fTU9ERV9TRVRNQVJLKQ0KKwkJdGNmX2N0aW5mb19tYXJrX3NldChj dCwgY2EsIGNwLCBza2IpOw0KKw0KKwlpZiAodGhhc2gpDQorCQluZl9jdF9wdXQoY3QpOw0KK291 dDoNCisJcmV0dXJuIGFjdGlvbjsNCit9DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBubGFfcG9s aWN5IGN0aW5mb19wb2xpY3lbVENBX0NUSU5GT19NQVggKyAxXSA9IHsNCisJW1RDQV9DVElORk9f QUNUXSA9IHsgLmxlbiA9IHNpemVvZihzdHJ1Y3QgdGNfY3RpbmZvKSB9LA0KKwlbVENBX0NUSU5G T19aT05FXSA9IHsgLnR5cGUgPSBOTEFfVTE2IH0sDQorCVtUQ0FfQ1RJTkZPX01PREVfRFNDUF0g PSB7IC50eXBlID0gTkxBX0ZMQUcgfSwNCisJW1RDQV9DVElORk9fTU9ERV9NQVJLXSA9IHsgLnR5 cGUgPSBOTEFfRkxBRyB9LA0KKwlbVENBX0NUSU5GT19EU0NQX1BBUk1TXSA9IHsgLmxlbiA9IHNp emVvZihzdHJ1Y3QgdGNfY3RpbmZvX2RzY3ApIH0sDQorfTsNCisNCitzdGF0aWMgaW50IHRjZl9j dGluZm9faW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwNCisJCQkgICBz dHJ1Y3QgbmxhdHRyICplc3QsIHN0cnVjdCB0Y19hY3Rpb24gKiphLA0KKwkJCSAgIGludCBvdnIs IGludCBiaW5kLCBib29sIHJ0bmxfaGVsZCwNCisJCQkgICBzdHJ1Y3QgdGNmX3Byb3RvICp0cCwN CisJCQkgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spDQorew0KKwlzdHJ1Y3QgdGNf YWN0aW9uX25ldCAqdG4gPSBuZXRfZ2VuZXJpYyhuZXQsIGN0aW5mb19uZXRfaWQpOw0KKwlzdHJ1 Y3QgdGNmX2N0aW5mb19wYXJhbXMgKmNwX25ldzsNCisJc3RydWN0IG5sYXR0ciAqdGJbVENBX0NU SU5GT19NQVggKyAxXTsNCisJc3RydWN0IHRjZl9jaGFpbiAqZ290b19jaCA9IE5VTEw7DQorCXN0 cnVjdCB0Y2ZfY3RpbmZvICpjaTsNCisJc3RydWN0IHRjX2N0aW5mbyAqYWN0cGFybTsNCisJc3Ry dWN0IHRjX2N0aW5mb19kc2NwICpkc2NwcGFybTsNCisJaW50IHJldCA9IDAsIGVyciwgaTsNCisN CisJaWYgKCFubGEpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJZXJyID0gbmxhX3BhcnNlX25l c3RlZCh0YiwgVENBX0NUSU5GT19NQVgsIG5sYSwgY3RpbmZvX3BvbGljeSwgTlVMTCk7DQorCWlm IChlcnIgPCAwKQ0KKwkJcmV0dXJuIGVycjsNCisNCisJaWYgKCF0YltUQ0FfQ1RJTkZPX0FDVF0p DQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJaWYgKHRiW1RDQV9DVElORk9fTU9ERV9EU0NQXSAm JiAhdGJbVENBX0NUSU5GT19EU0NQX1BBUk1TXSkNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwlh Y3RwYXJtID0gbmxhX2RhdGEodGJbVENBX0NUSU5GT19BQ1RdKTsNCisJZHNjcHBhcm0gPSBubGFf ZGF0YSh0YltUQ0FfQ1RJTkZPX0RTQ1BfUEFSTVNdKTsNCisNCisJaWYgKGRzY3BwYXJtKSB7DQor CQkvKiBuZWVkIGF0IGxlYXN0IGNvbnRpZ3VvdXMgNiBiaXQgbWFzayAqLw0KKwkJaSA9IGRzY3Bw YXJtLT5tYXNrID8gX19mZnMoZHNjcHBhcm0tPm1hc2spIDogMDsNCisJCWlmICgoMHgzZiAmIChk c2NwcGFybS0+bWFzayA+PiBpKSkgIT0gMHgzZikNCisJCQlyZXR1cm4gLUVJTlZBTDsNCisJCS8q IG1hc2sgJiBzdGF0ZW1hc2sgbXVzdCBub3Qgb3ZlcmxhcCAqLw0KKwkJaWYgKGRzY3BwYXJtLT5t YXNrICYgZHNjcHBhcm0tPnN0YXRlbWFzaykNCisJCQlyZXR1cm4gLUVJTlZBTDsNCisJfQ0KKw0K KwkvKiBkb25lIHRoZSB2YWxpZGF0aW9uOm5vdyB0byB0aGUgYWN0dWFsIGFjdGlvbiBhbGxvY2F0 aW9uICovDQorCWVyciA9IHRjZl9pZHJfY2hlY2tfYWxsb2ModG4sICZhY3RwYXJtLT5pbmRleCwg YSwgYmluZCk7DQorCWlmICghZXJyKSB7DQorCQlyZXQgPSB0Y2ZfaWRyX2NyZWF0ZSh0biwgYWN0 cGFybS0+aW5kZXgsIGVzdCwgYSwNCisJCQkJICAgICAmYWN0X2N0aW5mb19vcHMsIGJpbmQsIGZh bHNlKTsNCisJCWlmIChyZXQpIHsNCisJCQl0Y2ZfaWRyX2NsZWFudXAodG4sIGFjdHBhcm0tPmlu ZGV4KTsNCisJCQlyZXR1cm4gcmV0Ow0KKwkJfQ0KKwl9IGVsc2UgaWYgKGVyciA+IDApIHsNCisJ CWlmIChiaW5kKSAvKiBkb24ndCBvdmVycmlkZSBkZWZhdWx0cyAqLw0KKwkJCXJldHVybiAwOw0K KwkJaWYgKCFvdnIpIHsNCisJCQl0Y2ZfaWRyX3JlbGVhc2UoKmEsIGJpbmQpOw0KKwkJCXJldHVy biAtRUVYSVNUOw0KKwkJfQ0KKwl9IGVsc2Ugew0KKwkJcmV0dXJuIGVycjsNCisJfQ0KKw0KKwll cnIgPSB0Y2ZfYWN0aW9uX2NoZWNrX2N0cmxhY3QoYWN0cGFybS0+YWN0aW9uLCB0cCwgJmdvdG9f Y2gsIGV4dGFjayk7DQorCWlmIChlcnIgPCAwKQ0KKwkJZ290byByZWxlYXNlX2lkcjsNCisNCisJ Y2kgPSB0b19jdGluZm8oKmEpOw0KKw0KKwljcF9uZXcgPSBremFsbG9jKHNpemVvZigqY3BfbmV3 KSwgR0ZQX0tFUk5FTCk7DQorCWlmICh1bmxpa2VseSghY3BfbmV3KSkgew0KKwkJZXJyID0gLUVO T01FTTsNCisJCWdvdG8gcHV0X2NoYWluOw0KKwl9DQorDQorCWNwX25ldy0+bmV0ID0gbmV0Ow0K KwljcF9uZXctPnpvbmUgPSB0YltUQ0FfQ1RJTkZPX1pPTkVdID8NCisJCQlubGFfZ2V0X3UxNih0 YltUQ0FfQ1RJTkZPX1pPTkVdKSA6IDA7DQorCWlmIChkc2NwcGFybSkgew0KKwkJY3BfbmV3LT5k c2NwbWFzayA9IGRzY3BwYXJtLT5tYXNrOw0KKwkJY3BfbmV3LT5kc2NwbWFza3NoaWZ0ID0gY3Bf bmV3LT5kc2NwbWFzayA/DQorCQkJCV9fZmZzKGNwX25ldy0+ZHNjcG1hc2spIDogMDsNCisJCWNw X25ldy0+ZHNjcHN0YXRlbWFzayA9IGRzY3BwYXJtLT5zdGF0ZW1hc2s7DQorCX0NCisJY3BfbmV3 LT5tYXJrbWFzayA9IHRiW1RDQV9DVElORk9fTUFSS19NQVNLXSA/DQorCQkJbmxhX2dldF91MzIo dGJbVENBX0NUSU5GT19NQVJLX01BU0tdKSA6IH4wOw0KKw0KKwlpZiAodGJbVENBX0NUSU5GT19N T0RFX0RTQ1BdKQ0KKwkJY3BfbmV3LT5tb2RlIHw9IENUSU5GT19NT0RFX1NFVERTQ1A7DQorCWVs c2UNCisJCWNwX25ldy0+bW9kZSAmPSB+Q1RJTkZPX01PREVfU0VURFNDUDsNCisNCisJaWYgKHRi W1RDQV9DVElORk9fTU9ERV9NQVJLXSkNCisJCWNwX25ldy0+bW9kZSB8PSBDVElORk9fTU9ERV9T RVRNQVJLOw0KKwllbHNlDQorCQljcF9uZXctPm1vZGUgJj0gfkNUSU5GT19NT0RFX1NFVE1BUks7 DQorDQorCXNwaW5fbG9ja19iaCgmY2ktPnRjZl9sb2NrKTsNCisJZ290b19jaCA9IHRjZl9hY3Rp b25fc2V0X2N0cmxhY3QoKmEsIGFjdHBhcm0tPmFjdGlvbiwgZ290b19jaCk7DQorCXJjdV9zd2Fw X3Byb3RlY3RlZChjaS0+cGFyYW1zLCBjcF9uZXcsDQorCQkJICAgbG9ja2RlcF9pc19oZWxkKCZj aS0+dGNmX2xvY2spKTsNCisJc3Bpbl91bmxvY2tfYmgoJmNpLT50Y2ZfbG9jayk7DQorDQorCWlm IChnb3RvX2NoKQ0KKwkJdGNmX2NoYWluX3B1dF9ieV9hY3QoZ290b19jaCk7DQorCWlmIChjcF9u ZXcpDQorCQlrZnJlZV9yY3UoY3BfbmV3LCByY3UpOw0KKw0KKwlpZiAocmV0ID09IEFDVF9QX0NS RUFURUQpDQorCQl0Y2ZfaWRyX2luc2VydCh0biwgKmEpOw0KKw0KKwlyZXR1cm4gcmV0Ow0KKw0K K3B1dF9jaGFpbjoNCisJaWYgKGdvdG9fY2gpDQorCQl0Y2ZfY2hhaW5fcHV0X2J5X2FjdChnb3Rv X2NoKTsNCityZWxlYXNlX2lkcjoNCisJdGNmX2lkcl9yZWxlYXNlKCphLCBiaW5kKTsNCisJcmV0 dXJuIGVycjsNCit9DQorDQorc3RhdGljIGlubGluZSBpbnQgdGNmX2N0aW5mb19kdW1wKHN0cnVj dCBza19idWZmICpza2IsIHN0cnVjdCB0Y19hY3Rpb24gKmEsDQorCQkJCSAgaW50IGJpbmQsIGlu dCByZWYpDQorew0KKwl1bnNpZ25lZCBjaGFyICpiID0gc2tiX3RhaWxfcG9pbnRlcihza2IpOw0K KwlzdHJ1Y3QgdGNmX2N0aW5mbyAqY2kgPSB0b19jdGluZm8oYSk7DQorCXN0cnVjdCB0Y2ZfY3Rp bmZvX3BhcmFtcyAqY3A7DQorCXN0cnVjdCB0Y19jdGluZm8gb3B0ID0gew0KKwkJLmluZGV4ICAg PSBjaS0+dGNmX2luZGV4LA0KKwkJLnJlZmNudCAgPSByZWZjb3VudF9yZWFkKCZjaS0+dGNmX3Jl ZmNudCkgLSByZWYsDQorCQkuYmluZGNudCA9IGF0b21pY19yZWFkKCZjaS0+dGNmX2JpbmRjbnQp IC0gYmluZCwNCisJfTsNCisJc3RydWN0IHRjZl90IHQ7DQorCXN0cnVjdCB0Y19jdGluZm9fZHNj cCBkc2NwcGFybTsNCisJc3RydWN0IHRjX2N0aW5mb19zdGF0c19kc2NwIGRzY3BzdGF0czsNCisN CisJc3Bpbl9sb2NrX2JoKCZjaS0+dGNmX2xvY2spOw0KKwljcCA9IHJjdV9kZXJlZmVyZW5jZV9w cm90ZWN0ZWQoY2ktPnBhcmFtcywNCisJCQkJICAgICAgIGxvY2tkZXBfaXNfaGVsZCgmY2ktPnRj Zl9sb2NrKSk7DQorCW9wdC5hY3Rpb24gPSBjaS0+dGNmX2FjdGlvbjsNCisNCisJaWYgKG5sYV9w dXQoc2tiLCBUQ0FfQ1RJTkZPX0FDVCwgc2l6ZW9mKG9wdCksICZvcHQpKQ0KKwkJZ290byBubGFf cHV0X2ZhaWx1cmU7DQorDQorCWlmIChjcC0+bW9kZSAmIENUSU5GT19NT0RFX1NFVERTQ1ApIHsN CisJCWRzY3BwYXJtLm1hc2sgPSBjcC0+ZHNjcG1hc2s7DQorCQlkc2NwcGFybS5zdGF0ZW1hc2sg PSBjcC0+ZHNjcHN0YXRlbWFzazsNCisJCWlmIChubGFfcHV0KHNrYiwgVENBX0NUSU5GT19EU0NQ X1BBUk1TLCBzaXplb2YoZHNjcHBhcm0pLA0KKwkJCSAgICAmZHNjcHBhcm0pKQ0KKwkJCWdvdG8g bmxhX3B1dF9mYWlsdXJlOw0KKw0KKwkJaWYgKG5sYV9wdXRfZmxhZyhza2IsIFRDQV9DVElORk9f TU9ERV9EU0NQKSkNCisJCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsNCisNCisJCWRzY3BzdGF0cy5z ZXQgPSBjaS0+c3RhdHNfZHNjcF9zZXQ7DQorCQlkc2Nwc3RhdHMuZXJyb3IgPSBjaS0+c3RhdHNf ZHNjcF9lcnJvcjsNCisJCWlmIChubGFfcHV0KHNrYiwgVENBX0NUSU5GT19TVEFUU19EU0NQLCBz aXplb2YoZHNjcHN0YXRzKSwNCisJCQkgICAgJmRzY3BzdGF0cykpDQorCQkJZ290byBubGFfcHV0 X2ZhaWx1cmU7DQorCX0NCisNCisJaWYgKGNwLT5tb2RlICYgQ1RJTkZPX01PREVfU0VUTUFSSykg ew0KKwkJaWYgKG5sYV9wdXRfdTMyKHNrYiwgVENBX0NUSU5GT19NQVJLX01BU0ssIGNwLT5tYXJr bWFzaykpDQorCQkJZ290byBubGFfcHV0X2ZhaWx1cmU7DQorDQorCQlpZiAobmxhX3B1dF9mbGFn KHNrYiwgVENBX0NUSU5GT19NT0RFX01BUkspKQ0KKwkJCWdvdG8gbmxhX3B1dF9mYWlsdXJlOw0K Kw0KKwkJaWYgKG5sYV9wdXRfdTY0XzY0Yml0KHNrYiwgVENBX0NUSU5GT19TVEFUU19NQVJLLA0K KwkJCQkgICAgICBjaS0+c3RhdHNfbWFya19zZXQsIFRDQV9DVElORk9fUEFEKSkNCisJCQlnb3Rv IG5sYV9wdXRfZmFpbHVyZTsNCisJfQ0KKw0KKwlpZiAoY3AtPnpvbmUpIHsNCisJCWlmIChubGFf cHV0X3UxNihza2IsIFRDQV9DVElORk9fWk9ORSwgY3AtPnpvbmUpKQ0KKwkJCWdvdG8gbmxhX3B1 dF9mYWlsdXJlOw0KKwl9DQorDQorCXRjZl90bV9kdW1wKCZ0LCAmY2ktPnRjZl90bSk7DQorCWlm IChubGFfcHV0XzY0Yml0KHNrYiwgVENBX0NUSU5GT19UTSwgc2l6ZW9mKHQpLCAmdCwgVENBX0NU SU5GT19QQUQpKQ0KKwkJZ290byBubGFfcHV0X2ZhaWx1cmU7DQorDQorCXNwaW5fdW5sb2NrX2Jo KCZjaS0+dGNmX2xvY2spOw0KKwlyZXR1cm4gc2tiLT5sZW47DQorDQorbmxhX3B1dF9mYWlsdXJl Og0KKwlzcGluX3VubG9ja19iaCgmY2ktPnRjZl9sb2NrKTsNCisJbmxtc2dfdHJpbShza2IsIGIp Ow0KKwlyZXR1cm4gLTE7DQorfQ0KKw0KK3N0YXRpYyBpbnQgdGNmX2N0aW5mb193YWxrZXIoc3Ry dWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLA0KKwkJCSAgICAgc3RydWN0IG5ldGxp bmtfY2FsbGJhY2sgKmNiLCBpbnQgdHlwZSwNCisJCQkgICAgIGNvbnN0IHN0cnVjdCB0Y19hY3Rp b25fb3BzICpvcHMsDQorCQkJICAgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spDQor ew0KKwlzdHJ1Y3QgdGNfYWN0aW9uX25ldCAqdG4gPSBuZXRfZ2VuZXJpYyhuZXQsIGN0aW5mb19u ZXRfaWQpOw0KKw0KKwlyZXR1cm4gdGNmX2dlbmVyaWNfd2Fsa2VyKHRuLCBza2IsIGNiLCB0eXBl LCBvcHMsIGV4dGFjayk7DQorfQ0KKw0KK3N0YXRpYyBpbnQgdGNmX2N0aW5mb19zZWFyY2goc3Ry dWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGNfYWN0aW9uICoqYSwgdTMyIGluZGV4KQ0KK3sNCisJc3Ry dWN0IHRjX2FjdGlvbl9uZXQgKnRuID0gbmV0X2dlbmVyaWMobmV0LCBjdGluZm9fbmV0X2lkKTsN CisNCisJcmV0dXJuIHRjZl9pZHJfc2VhcmNoKHRuLCBhLCBpbmRleCk7DQorfQ0KKw0KK3N0YXRp YyBzdHJ1Y3QgdGNfYWN0aW9uX29wcyBhY3RfY3RpbmZvX29wcyA9IHsNCisJLmtpbmQJCT0JImN0 aW5mbyIsDQorCS5pZAkJPQlUQ0FfSURfQ1RJTkZPLA0KKwkub3duZXIJCT0JVEhJU19NT0RVTEUs DQorCS5hY3QJCT0JdGNmX2N0aW5mb19hY3QsDQorCS5kdW1wCQk9CXRjZl9jdGluZm9fZHVtcCwN CisJLmluaXQJCT0JdGNmX2N0aW5mb19pbml0LA0KKwkud2FsawkJPQl0Y2ZfY3RpbmZvX3dhbGtl ciwNCisJLmxvb2t1cAkJPQl0Y2ZfY3RpbmZvX3NlYXJjaCwNCisJLnNpemUJCT0Jc2l6ZW9mKHN0 cnVjdCB0Y2ZfY3RpbmZvKSwNCit9Ow0KKw0KK3N0YXRpYyBfX25ldF9pbml0IGludCBjdGluZm9f aW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KQ0KK3sNCisJc3RydWN0IHRjX2FjdGlvbl9uZXQgKnRu ID0gbmV0X2dlbmVyaWMobmV0LCBjdGluZm9fbmV0X2lkKTsNCisNCisJcmV0dXJuIHRjX2FjdGlv bl9uZXRfaW5pdCh0biwgJmFjdF9jdGluZm9fb3BzKTsNCit9DQorDQorc3RhdGljIHZvaWQgX19u ZXRfZXhpdCBjdGluZm9fZXhpdF9uZXQoc3RydWN0IGxpc3RfaGVhZCAqbmV0X2xpc3QpDQorew0K Kwl0Y19hY3Rpb25fbmV0X2V4aXQobmV0X2xpc3QsIGN0aW5mb19uZXRfaWQpOw0KK30NCisNCitz dGF0aWMgc3RydWN0IHBlcm5ldF9vcGVyYXRpb25zIGN0aW5mb19uZXRfb3BzID0gew0KKwkuaW5p dCA9IGN0aW5mb19pbml0X25ldCwNCisJLmV4aXRfYmF0Y2ggPSBjdGluZm9fZXhpdF9uZXQsDQor CS5pZCAgID0gJmN0aW5mb19uZXRfaWQsDQorCS5zaXplID0gc2l6ZW9mKHN0cnVjdCB0Y19hY3Rp b25fbmV0KSwNCit9Ow0KKw0KK3N0YXRpYyBpbnQgX19pbml0IGN0aW5mb19pbml0X21vZHVsZSh2 b2lkKQ0KK3sNCisJcmV0dXJuIHRjZl9yZWdpc3Rlcl9hY3Rpb24oJmFjdF9jdGluZm9fb3BzLCAm Y3RpbmZvX25ldF9vcHMpOw0KK30NCisNCitzdGF0aWMgdm9pZCBfX2V4aXQgY3RpbmZvX2NsZWFu dXBfbW9kdWxlKHZvaWQpDQorew0KKwl0Y2ZfdW5yZWdpc3Rlcl9hY3Rpb24oJmFjdF9jdGluZm9f b3BzLCAmY3RpbmZvX25ldF9vcHMpOw0KK30NCisNCittb2R1bGVfaW5pdChjdGluZm9faW5pdF9t b2R1bGUpOw0KK21vZHVsZV9leGl0KGN0aW5mb19jbGVhbnVwX21vZHVsZSk7DQorTU9EVUxFX0FV VEhPUigiS2V2aW4gRGFyYnlzaGlyZS1CcnlhbnQgPGxkaXJAZGFyYnlzaGlyZS1icnlhbnQubWUu dWs+Iik7DQorTU9EVUxFX0RFU0NSSVBUSU9OKCJDb25uZWN0aW9uIHRyYWNraW5nIG1hcmsgYWN0 aW9ucyIpOw0KK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsNCmRpZmYgLS1naXQgYS90b29scy90ZXN0 aW5nL3NlbGZ0ZXN0cy90Yy10ZXN0aW5nL2NvbmZpZyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3Rz L3RjLXRlc3RpbmcvY29uZmlnDQppbmRleCAyMDMzMDIwNjU0NTguLmIyMzVlZmQ1NTM2NyAxMDA2 NDQNCi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3RjLXRlc3RpbmcvY29uZmlnDQorKysg Yi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy90Yy10ZXN0aW5nL2NvbmZpZw0KQEAgLTM4LDYgKzM4 LDcgQEAgQ09ORklHX05FVF9BQ1RfQ1NVTT1tDQogQ09ORklHX05FVF9BQ1RfVkxBTj1tDQogQ09O RklHX05FVF9BQ1RfQlBGPW0NCiBDT05GSUdfTkVUX0FDVF9DT05OTUFSSz1tDQorQ09ORklHX05F VF9BQ1RfQ1RJTkZPPW0NCiBDT05GSUdfTkVUX0FDVF9TS0JNT0Q9bQ0KIENPTkZJR19ORVRfQUNU X0lGRT1tDQogQ09ORklHX05FVF9BQ1RfVFVOTkVMX0tFWT1tDQotLSANCjIuMjAuMSAoQXBwbGUg R2l0LTExNykNCg0K