From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D89F7C10F14 for ; Tue, 23 Apr 2019 07:43:35 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 859FE20645 for ; Tue, 23 Apr 2019 07:43:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="SlzI+IOd" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726336AbfDWHne (ORCPT ); Tue, 23 Apr 2019 03:43:34 -0400 Received: from mail-eopbgr50049.outbound.protection.outlook.com ([40.107.5.49]:32043 "EHLO EUR03-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725888AbfDWHnd (ORCPT ); Tue, 23 Apr 2019 03:43:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=E+YVxIor7760sjJY/dLVRD1Twc5NNJmDos5jlvtFxxA=; b=SlzI+IOdsqKzv2ZjnKtbf2R8WPMOlJkkeVkCQrO0hqlrS47RBj76bElN8Dtc55w5JcO1Pm3vkglwkWve33j+KjmAkKY/+SOu/XIGjhceo9Auk/Orup2kQGYQYv3i1bXltpaqgyQh87PwvPcBpdTosP/sf6RMX1fuoLXCORMizrE= Received: from HE1PR0502MB3641.eurprd05.prod.outlook.com (10.167.127.11) by HE1PR0502MB3866.eurprd05.prod.outlook.com (10.167.143.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.16; Tue, 23 Apr 2019 07:43:28 +0000 Received: from HE1PR0502MB3641.eurprd05.prod.outlook.com ([fe80::50cb:2948:19aa:a023]) by HE1PR0502MB3641.eurprd05.prod.outlook.com ([fe80::50cb:2948:19aa:a023%5]) with mapi id 15.20.1813.017; Tue, 23 Apr 2019 07:43:28 +0000 From: Vlad Buslov To: Saeed Mahameed CC: "netdev@vger.kernel.org" , Vlad Buslov , "jhs@mojatatu.com" , "davem@davemloft.net" , "jakub.kicinski@netronome.com" , "xiyou.wangcong@gmail.com" , "jiri@resnulli.us" Subject: Re: [PATCH net-next] net: sched: flower: refactor reoffload for concurrent access Thread-Topic: [PATCH net-next] net: sched: flower: refactor reoffload for concurrent access Thread-Index: AQHU+NwU0yiZNjiB30CuaaLcYjGQcaZIo+yAgAC60IA= Date: Tue, 23 Apr 2019 07:43:28 +0000 Message-ID: References: <20190422072135.4176-1-vladbu@mellanox.com> <19ac9266d24379b11294a50fa4e702dca296109d.camel@mellanox.com> In-Reply-To: <19ac9266d24379b11294a50fa4e702dca296109d.camel@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: LO2P265CA0376.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a3::28) To HE1PR0502MB3641.eurprd05.prod.outlook.com (2603:10a6:7:85::11) authentication-results: spf=none (sender IP is ) smtp.mailfrom=vladbu@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [37.142.13.130] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ce80f8c3-993e-4658-11df-08d6c7bf5faa x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020);SRVR:HE1PR0502MB3866; x-ms-traffictypediagnostic: HE1PR0502MB3866: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(136003)(396003)(346002)(376002)(366004)(189003)(199004)(5660300002)(66446008)(37006003)(8936002)(6246003)(64756008)(66476007)(6636002)(81156014)(316002)(6512007)(68736007)(81166006)(7736002)(305945005)(73956011)(66556008)(71190400001)(8676002)(54906003)(229853002)(6486002)(6436002)(66946007)(66066001)(6862004)(4326008)(71200400001)(99286004)(25786009)(386003)(14444005)(6506007)(5024004)(186003)(26005)(14454004)(86362001)(102836004)(76176011)(52116002)(478600001)(36756003)(53936002)(2906002)(11346002)(3846002)(6116002)(97736004)(446003)(2616005)(476003)(486006)(256004);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR0502MB3866;H:HE1PR0502MB3641.eurprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: alAE/DA0nFep6/1OPebjPr3jks/IPmyU5+oWkTvfjjEt9ywLs/5jDHwby/R2MFFV4AU9Q+1MGbKqd8pnh2N1o6WXyDtD7I996GMz34sydBPMBzSLRmr48c7PUOoJl4OHv+gYu4hN8/RnRsf4VJz04TKIMIN4Wf2ArSaGKCT19vSQNVH7tlEZGwiGv4uyUbgsxwXzuMP19DgnjXvmVIAgB+0jT77jobVTndrgf/rTYqogM0f9mTlkjMLfw3MI/PKIXSSCl+kJXIEt6DIR6w2/Be+rGiK6mVKgDxH4BNWn8TzIvuvx0zl9f2jzGGRFGyCzBWxuoCNdkpGG6ebcecZisv/S9vB+JTbve4XQnGzE681tv6fZfm4XWNBelbN3EDz/SqXY8ZjAq4Kn5Savw4Dkf+dFTCfTOZnmfdlmShGESX8= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: ce80f8c3-993e-4658-11df-08d6c7bf5faa X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 07:43:28.0238 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0502MB3866 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org DQpPbiBNb24gMjIgQXByIDIwMTkgYXQgMjM6MzQsIFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVs bGFub3guY29tPiB3cm90ZToNCj4gT24gTW9uLCAyMDE5LTA0LTIyIGF0IDEwOjIxICswMzAwLCBW bGFkIEJ1c2xvdiB3cm90ZToNCj4+IFJlY2VudCBjaGFuZ2VzIHRoYXQgaW50cm9kdWNlZCB1bmxv Y2tlZCBmbG93ZXIgZGlkIG5vdCBwcm9wZXJseQ0KPj4gYWNjb3VudCBmb3INCj4+IGNhc2Ugd2hl biByZW9mZmxvYWQgaXMgaW5pdGlhdGVkIGNvbmN1cnJlbnRseSB3aXRoIGZpbHRlciB1cGRhdGVz LiBUbw0KPj4gZml4DQo+PiB0aGUgaXNzdWUsIGV4dGVuZCBmbG93ZXIgd2l0aCAnaHdfZmlsdGVy cycgbGlzdCB0aGF0IGlzIHVzZWQgdG8gc3RvcmUNCj4+IGZpbHRlcnMgdGhhdCBkb24ndCBoYXZl ICdza2lwX2h3JyBmbGFnIHNldC4gRmlsdGVyIGlzIGFkZGVkIHRvIHRoZQ0KPj4gbGlzdA0KPj4g d2hlbiBpdCBpcyBpbnNlcnRlZCB0byBoYXJkd2FyZSBhbmQgb25seSByZW1vdmVkIGZyb20gaXQg YWZ0ZXIgYmVpbmcNCj4+IHVub2ZmbG9hZGVkIGZyb20gYWxsIGRyaXZlcnMgdGhhdCBwYXJlbnQg YmxvY2sgaXMgYXR0YWNoZWQgdG8uIFRoaXMNCj4+IGVuc3VyZXMNCj4+IHRoYXQgY29uY3VycmVu dCByZW9mZmxvYWQgY2FuIHN0aWxsIGFjY2VzcyBmaWx0ZXIgdGhhdCBpcyBiZWluZw0KPj4gZGVs ZXRlZCBhbmQNCj4+IHByZXZlbnRzIHJhY2UgY29uZGl0aW9uIHdoZW4gZHJpdmVyIGNhbGxiYWNr IGNhbiBiZSByZW1vdmVkIHdoZW4NCj4+IGZpbHRlciBpcw0KPj4gbm8gbG9uZ2VyIGFjY2Vzc2li bGUgdHJvdWdoIGlkciwgYnV0IGlzIHN0aWxsIHByZXNlbnQgaW4gaGFyZHdhcmUuDQo+Pg0KPj4g UmVmYWN0b3IgZmxfY2hhbmdlKCkgdG8gcmVzcGVjdCBuZXcgZmlsdGVyIHJlZmVyZW5jZSBjb3Vu dGVyIGFuZCB0bw0KPj4gcmVsZWFzZQ0KPj4gZmlsdGVyIHJlZmVyZW5jZSB3aXRoIF9fZmxfcHV0 KCkgaW4gY2FzZSBvZiBlcnJvciwgaW5zdGVhZCBvZg0KPj4gZGlyZWN0bHkNCj4+IGRlYWxsb2Nh dGluZyBmaWx0ZXIgbWVtb3J5LiBUaGlzIGFsbG93cyBmb3IgY29uY3VycmVudCBhY2Nlc3MgdG8N Cj4+IGZpbHRlcg0KPj4gZnJvbSBmbF9yZW9mZmxvYWQoKSBhbmQgcHJvdGVjdHMgaXQgd2l0aCBy ZWZlcmVuY2UgY291bnRpbmcuIFJlZmFjdG9yDQo+PiBmbF9yZW9mZmxvYWQoKSB0byBpdGVyYXRl IG92ZXIgaHdfZmlsdGVycyBsaXN0IGluc3RlYWQgb2YgaWRyLg0KPj4gSW1wbGVtZW50DQo+PiBm bF9nZXRfbmV4dF9od19maWx0ZXIoKSBoZWxwZXIgZnVuY3Rpb24gdGhhdCBpcyB1c2VkIHRvIGl0 ZXJhdGUgb3Zlcg0KPj4gaHdfZmlsdGVycyBsaXN0IHdpdGggcmVmZXJlbmNlIGNvdW50aW5nIGFu ZCBza2lwcyBmaWx0ZXJzIHRoYXQgYXJlDQo+PiBiZWluZw0KPj4gY29uY3VycmVudGx5IGRlbGV0 ZWQuDQo+Pg0KPj4gRml4ZXM6IDkyMTQ5MTkwMDY3ZCAoIm5ldDogc2NoZWQ6IGZsb3dlcjogc2V0 IHVubG9ja2VkIGZsYWcgZm9yDQo+PiBmbG93ZXIgcHJvdG8gb3BzIikNCj4+IFNpZ25lZC1vZmYt Ynk6IFZsYWQgQnVzbG92IDx2bGFkYnVAbWVsbGFub3guY29tPg0KPj4gUmVwb3J0ZWQtYnk6IEph a3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPg0KPj4gLS0tDQo+PiAg bmV0L3NjaGVkL2Nsc19mbG93ZXIuYyB8IDc3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0NCj4+IC0tDQo+PiAgMSBmaWxlIGNoYW5nZWQsIDU3IGluc2VydGlvbnMoKyks IDIwIGRlbGV0aW9ucygtKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS9uZXQvc2NoZWQvY2xzX2Zsb3dl ci5jIGIvbmV0L3NjaGVkL2Nsc19mbG93ZXIuYw0KPj4gaW5kZXggNGI1NTg1MzU4Njk5Li41MjRi ODY1NjBhZjMgMTAwNjQ0DQo+PiAtLS0gYS9uZXQvc2NoZWQvY2xzX2Zsb3dlci5jDQo+PiArKysg Yi9uZXQvc2NoZWQvY2xzX2Zsb3dlci5jDQo+PiBAQCAtOTAsNiArOTAsNyBAQCBzdHJ1Y3QgY2xz X2ZsX2hlYWQgew0KPj4gIAlzdHJ1Y3Qgcmhhc2h0YWJsZSBodDsNCj4+ICAJc3BpbmxvY2tfdCBt YXNrc19sb2NrOyAvKiBQcm90ZWN0IG1hc2tzIGxpc3QgKi8NCj4+ICAJc3RydWN0IGxpc3RfaGVh ZCBtYXNrczsNCj4+ICsJc3RydWN0IGxpc3RfaGVhZCBod19maWx0ZXJzOw0KPj4gIAlzdHJ1Y3Qg cmN1X3dvcmsgcndvcms7DQo+PiAgCXN0cnVjdCBpZHIgaGFuZGxlX2lkcjsNCj4+ICB9Ow0KPj4g QEAgLTEwMiw2ICsxMDMsNyBAQCBzdHJ1Y3QgY2xzX2ZsX2ZpbHRlciB7DQo+PiAgCXN0cnVjdCB0 Y2ZfcmVzdWx0IHJlczsNCj4+ICAJc3RydWN0IGZsX2Zsb3dfa2V5IGtleTsNCj4+ICAJc3RydWN0 IGxpc3RfaGVhZCBsaXN0Ow0KPj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIGh3X2xpc3Q7DQo+PiAgCXUz MiBoYW5kbGU7DQo+PiAgCXUzMiBmbGFnczsNCj4+ICAJdTMyIGluX2h3X2NvdW50Ow0KPj4gQEAg LTMxNSw2ICszMTcsNyBAQCBzdGF0aWMgaW50IGZsX2luaXQoc3RydWN0IHRjZl9wcm90byAqdHAp DQo+Pg0KPj4gIAlzcGluX2xvY2tfaW5pdCgmaGVhZC0+bWFza3NfbG9jayk7DQo+PiAgCUlOSVRf TElTVF9IRUFEX1JDVSgmaGVhZC0+bWFza3MpOw0KPj4gKwlJTklUX0xJU1RfSEVBRCgmaGVhZC0+ aHdfZmlsdGVycyk7DQo+PiAgCXJjdV9hc3NpZ25fcG9pbnRlcih0cC0+cm9vdCwgaGVhZCk7DQo+ PiAgCWlkcl9pbml0KCZoZWFkLT5oYW5kbGVfaWRyKTsNCj4+DQo+PiBAQCAtMzUyLDYgKzM1NSwx NiBAQCBzdGF0aWMgYm9vbCBmbF9tYXNrX3B1dChzdHJ1Y3QgY2xzX2ZsX2hlYWQNCj4+ICpoZWFk LCBzdHJ1Y3QgZmxfZmxvd19tYXNrICptYXNrKQ0KPj4gIAlyZXR1cm4gdHJ1ZTsNCj4+ICB9DQo+ Pg0KPj4gK3N0YXRpYyBzdHJ1Y3QgY2xzX2ZsX2hlYWQgKmZsX2hlYWRfZGVyZWZlcmVuY2Uoc3Ry dWN0IHRjZl9wcm90byAqdHApDQo+PiArew0KPj4gKwkvKiBGbG93ZXIgY2xhc3NpZmllciBvbmx5 IGNoYW5nZXMgcm9vdCBwb2ludGVyIGR1cmluZyBpbml0IGFuZA0KPj4gZGVzdHJveS4NCj4+ICsJ ICogVXNlcnMgbXVzdCBvYnRhaW4gcmVmZXJlbmNlIHRvIHRjZl9wcm90byBpbnN0YW5jZSBiZWZv cmUNCj4+IGNhbGxpbmcgaXRzDQo+PiArCSAqIEFQSSwgc28gdHAtPnJvb3QgcG9pbnRlciBpcyBw cm90ZWN0ZWQgZnJvbSBjb25jdXJyZW50IGNhbGwNCj4+IHRvDQo+PiArCSAqIGZsX2Rlc3Ryb3ko KSBieSByZWZlcmVuY2UgY291bnRpbmcuDQo+PiArCSAqLw0KPj4gKwlyZXR1cm4gcmN1X2RlcmVm ZXJlbmNlX3Jhdyh0cC0+cm9vdCk7DQo+PiArfQ0KPj4gKw0KPj4gIHN0YXRpYyB2b2lkIF9fZmxf ZGVzdHJveV9maWx0ZXIoc3RydWN0IGNsc19mbF9maWx0ZXIgKmYpDQo+PiAgew0KPj4gIAl0Y2Zf ZXh0c19kZXN0cm95KCZmLT5leHRzKTsNCj4+IEBAIC0zODIsNiArMzk1LDggQEAgc3RhdGljIHZv aWQgZmxfaHdfZGVzdHJveV9maWx0ZXIoc3RydWN0IHRjZl9wcm90bw0KPj4gKnRwLCBzdHJ1Y3Qg Y2xzX2ZsX2ZpbHRlciAqZiwNCj4+DQo+PiAgCXRjX3NldHVwX2NiX2NhbGwoYmxvY2ssIFRDX1NF VFVQX0NMU0ZMT1dFUiwgJmNsc19mbG93ZXIsDQo+PiBmYWxzZSk7DQo+PiAgCXNwaW5fbG9jaygm dHAtPmxvY2spOw0KPj4gKwlpZiAoIWxpc3RfZW1wdHkoJmYtPmh3X2xpc3QpKQ0KPj4gKwkJbGlz dF9kZWxfaW5pdCgmZi0+aHdfbGlzdCk7DQo+PiAgCXRjZl9ibG9ja19vZmZsb2FkX2RlYyhibG9j aywgJmYtPmZsYWdzKTsNCj4+ICAJc3Bpbl91bmxvY2soJnRwLT5sb2NrKTsNCj4+DQo+PiBAQCAt MzkzLDYgKzQwOCw3IEBAIHN0YXRpYyBpbnQgZmxfaHdfcmVwbGFjZV9maWx0ZXIoc3RydWN0IHRj Zl9wcm90bw0KPj4gKnRwLA0KPj4gIAkJCQlzdHJ1Y3QgY2xzX2ZsX2ZpbHRlciAqZiwgYm9vbA0K Pj4gcnRubF9oZWxkLA0KPj4gIAkJCQlzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spDQo+ PiAgew0KPj4gKwlzdHJ1Y3QgY2xzX2ZsX2hlYWQgKmhlYWQgPSBmbF9oZWFkX2RlcmVmZXJlbmNl KHRwKTsNCj4+ICAJc3RydWN0IHRjX2Nsc19mbG93ZXJfb2ZmbG9hZCBjbHNfZmxvd2VyID0ge307 DQo+PiAgCXN0cnVjdCB0Y2ZfYmxvY2sgKmJsb2NrID0gdHAtPmNoYWluLT5ibG9jazsNCj4+ICAJ Ym9vbCBza2lwX3N3ID0gdGNfc2tpcF9zdyhmLT5mbGFncyk7DQo+PiBAQCAtNDQ0LDYgKzQ2MCw5 IEBAIHN0YXRpYyBpbnQgZmxfaHdfcmVwbGFjZV9maWx0ZXIoc3RydWN0IHRjZl9wcm90bw0KPj4g KnRwLA0KPj4gIAkJZ290byBlcnJvdXQ7DQo+PiAgCX0NCj4+DQo+PiArCXNwaW5fbG9jaygmdHAt PmxvY2spOw0KPj4gKwlsaXN0X2FkZCgmZi0+aHdfbGlzdCwgJmhlYWQtPmh3X2ZpbHRlcnMpOw0K Pj4gKwlzcGluX3VubG9jaygmdHAtPmxvY2spOw0KPj4gIGVycm91dDoNCj4+ICAJaWYgKCFydG5s X2hlbGQpDQo+PiAgCQlydG5sX3VubG9jaygpOw0KPj4gQEAgLTQ3NSwyMyArNDk0LDExIEBAIHN0 YXRpYyB2b2lkIGZsX2h3X3VwZGF0ZV9zdGF0cyhzdHJ1Y3QgdGNmX3Byb3RvDQo+PiAqdHAsIHN0 cnVjdCBjbHNfZmxfZmlsdGVyICpmLA0KPj4gIAkJcnRubF91bmxvY2soKTsNCj4+ICB9DQo+Pg0K Pj4gLXN0YXRpYyBzdHJ1Y3QgY2xzX2ZsX2hlYWQgKmZsX2hlYWRfZGVyZWZlcmVuY2Uoc3RydWN0 IHRjZl9wcm90byAqdHApDQo+PiAtew0KPj4gLQkvKiBGbG93ZXIgY2xhc3NpZmllciBvbmx5IGNo YW5nZXMgcm9vdCBwb2ludGVyIGR1cmluZyBpbml0IGFuZA0KPj4gZGVzdHJveS4NCj4+IC0JICog VXNlcnMgbXVzdCBvYnRhaW4gcmVmZXJlbmNlIHRvIHRjZl9wcm90byBpbnN0YW5jZSBiZWZvcmUN Cj4+IGNhbGxpbmcgaXRzDQo+PiAtCSAqIEFQSSwgc28gdHAtPnJvb3QgcG9pbnRlciBpcyBwcm90 ZWN0ZWQgZnJvbSBjb25jdXJyZW50IGNhbGwNCj4+IHRvDQo+PiAtCSAqIGZsX2Rlc3Ryb3koKSBi eSByZWZlcmVuY2UgY291bnRpbmcuDQo+PiAtCSAqLw0KPj4gLQlyZXR1cm4gcmN1X2RlcmVmZXJl bmNlX3Jhdyh0cC0+cm9vdCk7DQo+PiAtfQ0KPj4gLQ0KPj4gIHN0YXRpYyB2b2lkIF9fZmxfcHV0 KHN0cnVjdCBjbHNfZmxfZmlsdGVyICpmKQ0KPj4gIHsNCj4+ICAJaWYgKCFyZWZjb3VudF9kZWNf YW5kX3Rlc3QoJmYtPnJlZmNudCkpDQo+PiAgCQlyZXR1cm47DQo+Pg0KPj4gLQlXQVJOX09OKCFm LT5kZWxldGVkKTsNCj4+IC0NCj4+ICAJaWYgKHRjZl9leHRzX2dldF9uZXQoJmYtPmV4dHMpKQ0K Pj4gIAkJdGNmX3F1ZXVlX3dvcmsoJmYtPnJ3b3JrLCBmbF9kZXN0cm95X2ZpbHRlcl93b3JrKTsN Cj4+ICAJZWxzZQ0KPj4gQEAgLTE1MjIsNiArMTUyOSw3IEBAIHN0YXRpYyBpbnQgZmxfY2hhbmdl KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0DQo+PiBza19idWZmICppbl9za2IsDQo+PiAgCQllcnIg PSAtRU5PQlVGUzsNCj4+ICAJCWdvdG8gZXJyb3V0X3RiOw0KPj4gIAl9DQo+PiArCUlOSVRfTElT VF9IRUFEKCZmbmV3LT5od19saXN0KTsNCj4+ICAJcmVmY291bnRfc2V0KCZmbmV3LT5yZWZjbnQs IDEpOw0KPj4NCj4+ICAJZXJyID0gdGNmX2V4dHNfaW5pdCgmZm5ldy0+ZXh0cywgbmV0LCBUQ0Ff RkxPV0VSX0FDVCwgMCk7DQo+PiBAQCAtMTU2OSw3ICsxNTc3LDYgQEAgc3RhdGljIGludCBmbF9j aGFuZ2Uoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QNCj4+IHNrX2J1ZmYgKmluX3NrYiwNCj4+ICAJ CWdvdG8gZXJyb3V0X2h3Ow0KPj4gIAl9DQo+Pg0KPj4gLQlyZWZjb3VudF9pbmMoJmZuZXctPnJl ZmNudCk7DQo+PiAgCWlmIChmb2xkKSB7DQo+PiAgCQkvKiBGb2xkIGZpbHRlciB3YXMgZGVsZXRl ZCBjb25jdXJyZW50bHkuIFJldHJ5IGxvb2t1cC4NCj4+ICovDQo+PiAgCQlpZiAoZm9sZC0+ZGVs ZXRlZCkgew0KPj4gQEAgLTE1OTEsNiArMTU5OCw3IEBAIHN0YXRpYyBpbnQgZmxfY2hhbmdlKHN0 cnVjdCBuZXQgKm5ldCwgc3RydWN0DQo+PiBza19idWZmICppbl9za2IsDQo+PiAgCQkJaW5faHQg PSB0cnVlOw0KPj4gIAkJfQ0KPj4NCj4+ICsJCXJlZmNvdW50X2luYygmZm5ldy0+cmVmY250KTsN Cj4+ICAJCXJoYXNodGFibGVfcmVtb3ZlX2Zhc3QoJmZvbGQtPm1hc2stPmh0LA0KPj4gIAkJCQkg ICAgICAgJmZvbGQtPmh0X25vZGUsDQo+PiAgCQkJCSAgICAgICBmb2xkLT5tYXNrLT5maWx0ZXJf aHRfcGFyYW1zKTsNCj4+IEBAIC0xNjMxLDYgKzE2MzksNyBAQCBzdGF0aWMgaW50IGZsX2NoYW5n ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdA0KPj4gc2tfYnVmZiAqaW5fc2tiLA0KPj4gIAkJaWYg KGVycikNCj4+ICAJCQlnb3RvIGVycm91dF9odzsNCj4+DQo+PiArCQlyZWZjb3VudF9pbmMoJmZu ZXctPnJlZmNudCk7DQo+PiAgCQlmbmV3LT5oYW5kbGUgPSBoYW5kbGU7DQo+PiAgCQlsaXN0X2Fk ZF90YWlsX3JjdSgmZm5ldy0+bGlzdCwgJmZuZXctPm1hc2stPmZpbHRlcnMpOw0KPj4gIAkJc3Bp bl91bmxvY2soJnRwLT5sb2NrKTsNCj4+IEBAIC0xNjQyLDE5ICsxNjUxLDIwIEBAIHN0YXRpYyBp bnQgZmxfY2hhbmdlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0DQo+PiBza19idWZmICppbl9za2Is DQo+PiAgCWtmcmVlKG1hc2spOw0KPj4gIAlyZXR1cm4gMDsNCj4+DQo+PiArZXJyb3V0X2h0Og0K Pj4gKwlzcGluX2xvY2soJnRwLT5sb2NrKTsNCj4+ICBlcnJvdXRfaHc6DQo+PiArCWZuZXctPmRl bGV0ZWQgPSB0cnVlOw0KPj4gIAlzcGluX3VubG9jaygmdHAtPmxvY2spOw0KPj4gIAlpZiAoIXRj X3NraXBfaHcoZm5ldy0+ZmxhZ3MpKQ0KPj4gIAkJZmxfaHdfZGVzdHJveV9maWx0ZXIodHAsIGZu ZXcsIHJ0bmxfaGVsZCwgTlVMTCk7DQo+PiAtZXJyb3V0X2h0Og0KPj4gIAlpZiAoaW5faHQpDQo+ PiAgCQlyaGFzaHRhYmxlX3JlbW92ZV9mYXN0KCZmbmV3LT5tYXNrLT5odCwgJmZuZXctPmh0X25v ZGUsDQo+PiAgCQkJCSAgICAgICBmbmV3LT5tYXNrLT5maWx0ZXJfaHRfcGFyYW1zKTsNCj4+ICBl cnJvdXRfbWFzazoNCj4+ICAJZmxfbWFza19wdXQoaGVhZCwgZm5ldy0+bWFzayk7DQo+PiAgZXJy b3V0Og0KPj4gLQl0Y2ZfZXh0c19nZXRfbmV0KCZmbmV3LT5leHRzKTsNCj4+IC0JdGNmX3F1ZXVl X3dvcmsoJmZuZXctPnJ3b3JrLCBmbF9kZXN0cm95X2ZpbHRlcl93b3JrKTsNCj4+ICsJX19mbF9w dXQoZm5ldyk7DQo+PiAgZXJyb3V0X3RiOg0KPj4gIAlrZnJlZSh0Yik7DQo+PiAgZXJyb3V0X21h c2tfYWxsb2M6DQo+PiBAQCAtMTY5OSwxNiArMTcwOSw0NCBAQCBzdGF0aWMgdm9pZCBmbF93YWxr KHN0cnVjdCB0Y2ZfcHJvdG8gKnRwLA0KPj4gc3RydWN0IHRjZl93YWxrZXIgKmFyZywNCj4+ICAJ fQ0KPj4gIH0NCj4+DQo+PiArc3RhdGljIHN0cnVjdCBjbHNfZmxfZmlsdGVyICoNCj4+ICtmbF9n ZXRfbmV4dF9od19maWx0ZXIoc3RydWN0IHRjZl9wcm90byAqdHAsIHN0cnVjdCBjbHNfZmxfZmls dGVyICpmLA0KPj4gYm9vbCBhZGQpDQo+PiArew0KPj4gKwlzdHJ1Y3QgY2xzX2ZsX2hlYWQgKmhl YWQgPSBmbF9oZWFkX2RlcmVmZXJlbmNlKHRwKTsNCj4+ICsNCj4+ICsJc3Bpbl9sb2NrKCZ0cC0+ bG9jayk7DQo+PiArCWlmICghZikgew0KPj4gKwkJaWYgKGxpc3RfZW1wdHkoJmhlYWQtPmh3X2Zp bHRlcnMpKSB7DQo+PiArCQkJc3Bpbl91bmxvY2soJnRwLT5sb2NrKTsNCj4+ICsJCQlyZXR1cm4g TlVMTDsNCj4+ICsJCX0NCj4NCj4gU2hvdWxkbid0IHRoaXMgYmUgYSBwcmUtY29uZGl0aW9uIHRv IHRoZSB3aG9sZSBmdW5jdGlvbiA/IGkgbWVhbg0KPiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgJ2Yn IGlzIE5VTEwgb3Igbm90ID8NCg0KTGlzdCBjYW4ndCBiZSBlbXB0eSBpZiB3ZSBhbHJlYWR5IGhh dmUgYW4gZWxlbWVudCBvZiB0aGUgbGlzdCAoZiksIHNvDQp3aHkgY2hlY2sgdGhpcyBvbiBldmVy eSBpdGVyYXRpb24/DQoNCj4NCj4+ICsNCj4+ICsJCWYgPSBsaXN0X2ZpcnN0X2VudHJ5KCZoZWFk LT5od19maWx0ZXJzLCBzdHJ1Y3QNCj4+IGNsc19mbF9maWx0ZXIsDQo+PiArCQkJCSAgICAgaHdf bGlzdCk7DQo+PiArCX0gZWxzZSB7DQo+PiArCQlmID0gbGlzdF9uZXh0X2VudHJ5KGYsIGh3X2xp c3QpOw0KPj4gKwl9DQo+PiArDQo+DQo+IE1heWJlIGlmIHlvdSB1c2UgIGxpc3RfZm9yX2VhY2hf ZW50cnlfY29udGludWUgYmVsb3csIG1pZ2h0IHNpbXBsaWZ5DQo+IHRoZSBhYm92ZSBsb2dpYy4g aXQgaXMgd2VpcmQgdGhhdCB5b3UgbmVlZCB0byBmaWd1cmUgb3V0IG5leHQgZW50cnkNCj4gdGhl biBjYWxsIGxpc3RfZm9yX2VhY2hfZnJvbSwgbGlzdCAnY29udGludWUnIHZhcmlhdGlvbiBpcyBt YWRlIGZvcg0KPiBzdWNoIHVzZSBjYXNlcy4NCg0KbGlzdF9mb3JfZWFjaF9lbnRyeV9jb250aW51 ZSByZXF1aXJlcyBpbml0aWFsaXplZCBjdXJzb3IgYW5kIHdpbGwgc2tpcA0KZmlyc3QgZWxlbWVu dCBpZiB3ZSBvYnRhaW4gaW5pdGlhbCBjdXJzb3Igd2l0aCBsaXN0X2ZpcnN0X2VudHJ5KCkuIFdl DQpjYW4gaGF2ZSB0d28gbG9vcHMgLSBvbmUgdGhhdCB1c2VzIGxpc3RfZm9yX2VhY2hfZW50cnkg Zm9yIGluaXRpYWwNCml0ZXJhdGlvbiwgYW5kIGFub3RoZXIgb25lIHRoYXQgdXNlcyBsaXN0X2Zv cl9lYWNoX2VudHJ5X2NvbnRpbnVlIGZvcg0KY2FzZSB3aGVuIGYhPU5VTEwsIGJ1dCBJIGRvbid0 IHNlZSBob3cgdGhhdCB3b3VsZCBiZSBhbnkgc2ltcGxlci4NCg0KPg0KPj4gKwlsaXN0X2Zvcl9l YWNoX2VudHJ5X2Zyb20oZiwgJmhlYWQtPmh3X2ZpbHRlcnMsIGh3X2xpc3QpIHsNCj4+ICsJCWlm ICghKGFkZCAmJiBmLT5kZWxldGVkKSAmJiByZWZjb3VudF9pbmNfbm90X3plcm8oJmYtDQo+PiA+ cmVmY250KSkgew0KPj4gKwkJCXNwaW5fdW5sb2NrKCZ0cC0+bG9jayk7DQo+PiArCQkJcmV0dXJu IGY7DQo+PiArCQl9DQo+PiArCX0NCj4+ICsNCj4+ICsJc3Bpbl91bmxvY2soJnRwLT5sb2NrKTsN Cj4+ICsJcmV0dXJuIE5VTEw7DQo+PiArfQ0KPj4gKw0KPj4gIHN0YXRpYyBpbnQgZmxfcmVvZmZs b2FkKHN0cnVjdCB0Y2ZfcHJvdG8gKnRwLCBib29sIGFkZCwNCj4+IHRjX3NldHVwX2NiX3QgKmNi LA0KPj4gIAkJCXZvaWQgKmNiX3ByaXYsIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaykN Cj4+ICB7DQo+PiAgCXN0cnVjdCB0Y19jbHNfZmxvd2VyX29mZmxvYWQgY2xzX2Zsb3dlciA9IHt9 Ow0KPj4gIAlzdHJ1Y3QgdGNmX2Jsb2NrICpibG9jayA9IHRwLT5jaGFpbi0+YmxvY2s7DQo+PiAt CXVuc2lnbmVkIGxvbmcgaGFuZGxlID0gMDsNCj4+IC0Jc3RydWN0IGNsc19mbF9maWx0ZXIgKmY7 DQo+PiArCXN0cnVjdCBjbHNfZmxfZmlsdGVyICpmID0gTlVMTDsNCj4+ICAJaW50IGVycjsNCj4+ DQo+PiAtCXdoaWxlICgoZiA9IGZsX2dldF9uZXh0X2ZpbHRlcih0cCwgJmhhbmRsZSkpKSB7DQo+ PiArCXdoaWxlICgoZiA9IGZsX2dldF9uZXh0X2h3X2ZpbHRlcih0cCwgZiwgYWRkKSkpIHsNCj4+ ICAJCWlmICh0Y19za2lwX2h3KGYtPmZsYWdzKSkNCj4+ICAJCQlnb3RvIG5leHRfZmxvdzsNCj4N Cj4gdGhpcyBjYW4gbmV2ZXIgYmUgdHJ1ZSBhcyBpdCBpcyBhbHJlYWR5IGEgcHJlLWNvbmRpdGlv biBmb3INCj4gZmxfaHdfcmVwbGFjZV9maWx0ZXIgd2hpY2ggYWN0dWFsbHkgYWRkcyAgdG8gdGhl IGh3X2ZpbHRlcnMgbGlzdCwgaQ0KPiB0aGluayBpdCBuZWVkcyB0byBiZSByZW1vdmVkLiBpZiBp dCBpcywgdGhlbiBpIHRoaW5rIGl0IHNob3VsZCBiZSBwYXJ0DQo+IG9mIGZsX2dldF9uZXh0X2h3 X2ZpbHRlciBhbmQgbm90IHRoZSBjYWxsZXIgcmVzcG9uc2liaWxpdHkuDQoNCkdvb2QgY2F0Y2gu DQoNCj4NCj4+DQo+PiBAQCAtMTc1Nyw3ICsxNzk1LDYgQEAgc3RhdGljIGludCBmbF9yZW9mZmxv YWQoc3RydWN0IHRjZl9wcm90byAqdHAsDQo+PiBib29sIGFkZCwgdGNfc2V0dXBfY2JfdCAqY2Is DQo+PiAgCQkJCQkgIGFkZCk7DQo+PiAgCQlzcGluX3VubG9jaygmdHAtPmxvY2spOw0KPj4gIG5l eHRfZmxvdzoNCj4+IC0JCWhhbmRsZSsrOw0KPj4gIAkJX19mbF9wdXQoZik7DQo+PiAgCX0NCj4+ DQo=