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=-6.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,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 73AA4C433E0 for ; Mon, 18 May 2020 08:38:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id F287B20787 for ; Mon, 18 May 2020 08:38:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=synopsys.com header.i=@synopsys.com header.b="Wp/vv7h8"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=synopsys.com header.i=@synopsys.com header.b="lLhlwX/z" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726447AbgERIiy (ORCPT ); Mon, 18 May 2020 04:38:54 -0400 Received: from smtprelay-out1.synopsys.com ([149.117.73.133]:60664 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726040AbgERIix (ORCPT ); Mon, 18 May 2020 04:38:53 -0400 Received: from mailhost.synopsys.com (badc-mailhost2.synopsys.com [10.192.0.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 225DB400B0; Mon, 18 May 2020 08:38:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1589791133; bh=DBPMJiagukV4Yvi9P0HO4xsXMCA5DdtBsKzXIJHcfys=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=Wp/vv7h8RHti6KTYlKu7Yql7d52UXLOHbhvw30k8UhLi7LqszrdAyGYiUJ0CpFpmd +KMmr70pYo2dYQeiJanuNRHnEy14Mv06pu9RbjwsRVpZJzT1lZn+5Hh7+uV6KtqHdK l6Ls8tlKvp/vJHzvgMafNhe54QptjMYDnK+DiJSYTC3Ia+cG66+KY/0iTjG/dKq0iQ yOFQmHv0G7Gh5zdC2CL01sXMqixITTpn0+e0gYOQ0ZSYJYVkiV+m/rap4w4CuAx3cO NFIP9H2cGvgE+WmRZl4Cg01smpLDETb4XIQz6gw+0fSf42F5GVItPyHZ4Rtw+NWf/x Q02w/GPFJfkSw== Received: from US01WEHTC3.internal.synopsys.com (us01wehtc3.internal.synopsys.com [10.15.84.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id EA24DA006A; Mon, 18 May 2020 08:38:52 +0000 (UTC) Received: from us01hybrid1.internal.synopsys.com (10.200.27.51) by US01WEHTC3.internal.synopsys.com (10.15.84.232) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 18 May 2020 01:38:52 -0700 Received: from NAM04-BN3-obe.outbound.protection.outlook.com (10.202.3.67) by mrs.synopsys.com (10.200.27.51) with Microsoft SMTP Server (TLS) id 14.3.487.0; Mon, 18 May 2020 01:38:52 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JDYKELYygLp0iYG2+8AqABovM0af63Sb40rOO5gqLdC83JzTfhgIqclnQ/IsWsrDWKvmjIjaFPIv9tf9t6gwiRPVEYyqZuDDXHalaHpFXMN013/ug/HKU9pWyyOJICva6NkOJ1M2Acz8mYY9KnW1MsOqeCLUct5Bm1Hp2GfYUcT+vQ/zQYUrUqywJcqKNGkVQMPUQ/B14dwpfZ2XmzjfUDmBOkwtv5qDMq0sU9iLXHRCXuJk1MYF9MoYYesR5bdbpXN+IZbsbsh8jsBj7leQqyp32woWLOjydb7z+L778EOIJAedPLcmfvpcYumYmpSs6T9GjdCtQc24u7fYgeIdPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DBPMJiagukV4Yvi9P0HO4xsXMCA5DdtBsKzXIJHcfys=; b=f+zLPVHVsMaO4ZJIM/MdQGyT8nBppC98Q4/EgUrH9LuwkS0+y1I4ESvVHvpoGmBx9WIKCgLfV6K+qRYHKxLkdSlB4WhhFz5j6COhAHuDgWLFaw2pOJaiXPZn9n3es2Fiim7WzYz5ZUb66LjBVv2DOt/WLhUsT4XzOX/2ZiGT8ZlM7bSDY/bArzn2YZBkjgzM8yRAHxck43Q/uv+nrE5aMisO1FGVB7uxO2PTgi6C1pKpVxppgoDJTsNl7CM45joyDyz7MEnhNgNZMBMWkfwRpBu0ttZ2iFLXygvj6cYPyYdKelKyiJ6yBW2KQdpbAqE/1DrfvoGLYgZatB1coSVhBA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=synopsys.com; dmarc=pass action=none header.from=synopsys.com; dkim=pass header.d=synopsys.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synopsys.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DBPMJiagukV4Yvi9P0HO4xsXMCA5DdtBsKzXIJHcfys=; b=lLhlwX/z4QVOmyZqeMkG0hiTu3TANTZ1hsyrzkY81BxaxzlyYJdsONesy9InlQEUu2rmQi1Ft178+RgR4jA3f7y5o7pHUtjeORbbPneNH16CwfRvnUSeSbJ8kDls4HzO7CtGC4ryt5FgcfApu7qxfTsjawkJFL+VI0511FOQtS8= Received: from CH2PR12MB4311.namprd12.prod.outlook.com (2603:10b6:610:a8::21) by CH2PR12MB3992.namprd12.prod.outlook.com (2603:10b6:610:29::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.27; Mon, 18 May 2020 08:38:50 +0000 Received: from CH2PR12MB4311.namprd12.prod.outlook.com ([fe80::cd38:4727:1239:f467]) by CH2PR12MB4311.namprd12.prod.outlook.com ([fe80::cd38:4727:1239:f467%4]) with mapi id 15.20.3000.034; Mon, 18 May 2020 08:38:50 +0000 From: Tejas Joglekar To: Greg Kroah-Hartman , "linux-usb@vger.kernel.org" , Mathias Nyman CC: John Youn Subject: Re: [RFC PATCH v2 4/4] usb: xhci: Use temporary buffer to consolidate SG Thread-Topic: [RFC PATCH v2 4/4] usb: xhci: Use temporary buffer to consolidate SG Thread-Index: AQHWF8I9mzJAua+iDUCYnE0KWVGzAqitr/yA Date: Mon, 18 May 2020 08:38:50 +0000 Message-ID: References: <969b5c9f31807635785ecc74b2ae2559ddc3bbeb.1587461220.git.joglekar@synopsys.com> In-Reply-To: <969b5c9f31807635785ecc74b2ae2559ddc3bbeb.1587461220.git.joglekar@synopsys.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: linuxfoundation.org; dkim=none (message not signed) header.d=none;linuxfoundation.org; dmarc=none action=none header.from=synopsys.com; x-originating-ip: [49.207.49.82] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1749e6af-b2ff-414b-3b79-08d7fb06e3cf x-ms-traffictypediagnostic: CH2PR12MB3992: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 04073E895A x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: F+zx6f5M2J0h7tIupZN5i/Tu4BahyVeYPKUHw924tjLirUvqoA7mCQhLdy+zzGVL1zYOREyWI363ArKeLG4G7F7/xiIzqa/zeXbjS37MdPnp7wj3w9S9We3MAGS1cHqAGettMkm24UZ7ydthUR8hu8eOGl2+OGkUe/S2YbjjfF5U8ajGhxAnXqvdaSbQ3ELEI0y34MMRReJKYt1HKujrOw+B/9pO9eosqh+75huDH4gf3LTr0nmOf7M3VL+7jeMdU6bep77VEgqTMNbhi18nubHg5NJzsaF8g4y0DjqW9xhkaJm98fy8ZEUTZ9b97w7BcNt364oU1vLZtVxMT3nWAds/GyOmtXZAvnZ0or6HVQkbVuWcoaDblWg+6etBEtsqU56Y9HjRsATTLF08kamjoPC+QJPq3R8Z7u/dys81GDiyu/Msp4AwUKTC5hIAZltC x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB4311.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(376002)(136003)(39850400004)(396003)(346002)(366004)(66556008)(107886003)(66446008)(66476007)(66946007)(6486002)(86362001)(4326008)(316002)(31696002)(5660300002)(478600001)(91956017)(76116006)(8676002)(6512007)(64756008)(110136005)(8936002)(2906002)(36756003)(26005)(186003)(71200400001)(31686004)(2616005)(55236004)(6506007)(53546011);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: i/djhyg5xlZwp23BUd4H4H0yGa16RvqU794TKO7FBV1Vrw58mHGPUeCZYXYxKHsmMUQVDhacj0UVCNxaR/+O3XuS94lnZit7zsu2wpRpoeF9lrs6jDV9Nnzys1mDdM4LpLyLM3HHApdBKyDpskOy5DpfQRVvHerKQP6FWGgM+WfUF4qyOxoRsuv5vPOEUz6MaxSNCkpbWBWvqd3y8aeQyIJNRCe6UwAFlyfrCT6eMrXUi42ilFltxhu8Iva0tHYsOLT/az4crfQyU+HsCv6BOWJCHDGtwdYniaWY+lAlobu00rwWS8DqFAYnkqCi0kUzbJTXDPJrLoLGpCwucXmv3gPI1lCDYuIt/YFcEsjTdX4ihsd3b5PdUM+lF2rAfxR1E3QUnUd7pSBtiQo3szSeDKWPPgPsOpBV5XRbi7Fx3yCur7RWQtQ8FLGWlS5ZvO5Ax8paqauZw1KkTtd60kUDdS+RR6Rdtn3x75LxK6FDuGo= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 1749e6af-b2ff-414b-3b79-08d7fb06e3cf X-MS-Exchange-CrossTenant-originalarrivaltime: 18 May 2020 08:38:50.5304 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c33c9f88-1eb7-4099-9700-16013fd9e8aa X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: L7e+h7yf91ujQMfeyhm32k0iEshkVLY9BdoYOueCJVs2wOo2Ntdznv8aT5S8vUlacLpF3bzkh03WzKdwEG3ZKQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB3992 X-OriginatorOrg: synopsys.com Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org SGkgTWF0aGlhcywNCiBDYW4geW91IHBsZWFzZSByZXZpZXcgYW5kIGNvbW1lbnQ/DQpPbiA0LzIx LzIwMjAgMzoxOSBQTSwgVGVqYXMgSm9nbGVrYXIgd3JvdGU6DQo+IFRoZSBTeW5vcHN5cyB4SEMg aGFzIGFuIGludGVybmFsIFRSQiBjYWNoZSBvZiBzaXplIFRSQl9DQUNIRV9TSVpFIGZvcg0KPiBl YWNoIGVuZHBvaW50LiBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgVFJCX0NBQ0hFX1NJWkUgaXMgMTYg Zm9yIFNTIGFuZCA4DQo+IGZvciBIUy4gVGhlIGNvbnRyb2xsZXIgbG9hZHMgYW5kIHVwZGF0ZXMg dGhlIFRSQiBjYWNoZSBmcm9tIHRoZSB0cmFuc2Zlcg0KPiByaW5nIGluIHN5c3RlbSBtZW1vcnkg d2hlbmV2ZXIgdGhlIGRyaXZlciBpc3N1ZXMgYSBzdGFydCB0cmFuc2ZlciBvcg0KPiB1cGRhdGUg dHJhbnNmZXIgY29tbWFuZC4NCj4gDQo+IEZvciBjaGFpbmVkIFRSQnMsIHRoZSBTeW5vcHN5cyB4 SEMgcmVxdWlyZXMgdGhhdCB0aGUgdG90YWwgYW1vdW50IG9mDQo+IGJ5dGVzIGZvciBhbGwgVFJC cyBsb2FkZWQgaW4gdGhlIFRSQiBjYWNoZSBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMQ0K PiBNUFMuIE9yIHRoZSBjaGFpbiBlbmRzIHdpdGhpbiB0aGUgVFJCIGNhY2hlICh3aXRoIGEgbGFz dCBUUkIpLg0KPiANCj4gSWYgdGhpcyByZXF1aXJlbWVudCBpcyBub3QgbWV0LCB0aGUgY29udHJv bGxlciB3aWxsIG5vdCBiZSBhYmxlIHRvIHNlbmQNCj4gb3IgcmVjZWl2ZSBhIHBhY2tldCBhbmQg aXQgd2lsbCBoYW5nIGNhdXNpbmcgYSBkcml2ZXIgdGltZW91dCBhbmQgZXJyb3IuDQo+IA0KPiBU aGlzIGNhbiBiZSBhIHByb2JsZW0gaWYgYSBjbGFzcyBkcml2ZXIgcXVldWVzIFNHIHJlcXVlc3Rz IHdpdGggbWFueQ0KPiBzbWFsbC1idWZmZXIgZW50cmllcy4gVGhlIFhIQ0kgZHJpdmVyIHdpbGwg Y3JlYXRlIGEgY2hhaW5lZCBUUkIgZm9yIGVhY2gNCj4gZW50cnkgd2hpY2ggbWF5IHRyaWdnZXIg dGhpcyBpc3N1ZS4NCj4gDQo+IFRoaXMgcGF0Y2ggYWRkcyBsb2dpYyB0byB0aGUgWEhDSSBkcml2 ZXIgdG8gZGV0ZWN0IGFuZCBwcmV2ZW50IHRoaXMgZnJvbQ0KPiBoYXBwZW5pbmcuDQo+IA0KPiBG b3IgZXZlcnkgKFRSQl9DQUNIRV9TSVpFIC0gMiksIHdlIGNoZWNrIHRoZSB0b3RhbCBidWZmZXIg c2l6ZSBvZg0KPiB0aGUgU0cgbGlzdCBhbmQgaWYgdGhlIGxhc3Qgd2luZG93IG9mIChUUkJfQ0FD SEVfU0laRSAtIDIpIFNHIGxpc3QgbGVuZ3RoDQo+IGFuZCB3ZSBkb24ndCBtYWtlIHVwIGF0IGxl YXN0IDEgTVBTLCB3ZSBjcmVhdGUgYSB0ZW1wb3JhcnkgYnVmZmVyIHRvDQo+IGNvbnNvbGlkYXRl IGZ1bGwgU0cgbGlzdCBpbnRvIHRoZSBidWZmZXIuDQo+IA0KPiBXZSBjaGVjayBhdCAoVFJCX0NB Q0hFX1NJWkUgLSAyKSB3aW5kb3cgYmVjYXVzZSBpdCBpcyBwb3NzaWJsZSB0aGF0IHRoZXJlDQo+ IHdvdWxkIGJlIGEgbGluayBhbmQvb3IgZXZlbnQgZGF0YSBUUkIgdGhhdCB0YWtlIHVwIHRvIDIg b2YgdGhlIGNhY2hlDQo+IGVudHJpZXMuDQo+IA0KPiBXZSBkaXNjb3ZlcmVkIHRoaXMgaXNzdWUg d2l0aCBkZXZpY2VzIG9uIG90aGVyIHBsYXRmb3JtcyBidXQgaGF2ZSBub3QNCj4geWV0IGNvbWUg YWNyb3NzIGFueSBkZXZpY2UgdGhhdCB0cmlnZ2VycyB0aGlzIG9uIExpbnV4LiBCdXQgaXQgY291 bGQgYmUNCj4gYSByZWFsIHByb2JsZW0gbm93IG9yIGluIHRoZSBmdXR1cmUuIEFsbCBpdCB0YWtl cyBpcyBOIG51bWJlciBvZiBzbWFsbA0KPiBjaGFpbmVkIFRSQnMuIEFuZCBvdGhlciBpbnN0YW5j ZXMgb2YgdGhlIFN5bm9wc3lzIElQIG1heSBoYXZlIHNtYWxsZXINCj4gdmFsdWVzIGZvciB0aGUg VFJCX0NBQ0hFX1NJWkUgd2hpY2ggd291bGQgZXhhY2VyYmF0ZSB0aGUgcHJvYmxlbS4NCj4gDQo+ IFNpZ25lZC1vZmYtYnk6IFRlamFzIEpvZ2xla2FyIDxqb2dsZWthckBzeW5vcHN5cy5jb20+DQo+ IC0tLQ0KPiAgQ2hhbmdlcyBpbiB2MjoNCj4gIC0gUmVtb3ZlZCByZWR1bmRhbnQgZGVidWcgbWVz c2FnZXMNCj4gIC0gTW9kaWZpZWQgbG9naWMgdG8gcmVtb3ZlIHVubmVjZXNzYXJ5IGNoYW5nZXMg aW4gaGNkLmMNCj4gIC0gUmVuYW1lIHRoZSBxdWlyaw0KPiANCj4gIGRyaXZlcnMvdXNiL2hvc3Qv eGhjaS1yaW5nLmMgfCAgIDIgKy0NCj4gIGRyaXZlcnMvdXNiL2hvc3QveGhjaS5jICAgICAgfCAx MjUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgZHJpdmVy cy91c2IvaG9zdC94aGNpLmggICAgICB8ICAgNCArKw0KPiAgMyBmaWxlcyBjaGFuZ2VkLCAxMzAg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv dXNiL2hvc3QveGhjaS1yaW5nLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5jDQo+IGlu ZGV4IGE3ODc4N2JiNTEzMy4uMmZhZDk0NzQ5MTJhIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL3Vz Yi9ob3N0L3hoY2ktcmluZy5jDQo+ICsrKyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1yaW5nLmMN Cj4gQEAgLTMyOTEsNyArMzI5MSw3IEBAIGludCB4aGNpX3F1ZXVlX2J1bGtfdHgoc3RydWN0IHho Y2lfaGNkICp4aGNpLCBnZnBfdCBtZW1fZmxhZ3MsDQo+ICANCj4gIAlmdWxsX2xlbiA9IHVyYi0+ dHJhbnNmZXJfYnVmZmVyX2xlbmd0aDsNCj4gIAkvKiBJZiB3ZSBoYXZlIHNjYXR0ZXIvZ2F0aGVy IGxpc3QsIHdlIHVzZSBpdC4gKi8NCj4gLQlpZiAodXJiLT5udW1fc2dzKSB7DQo+ICsJaWYgKHVy Yi0+bnVtX3NncyAmJiAhKHVyYi0+dHJhbnNmZXJfZmxhZ3MgJiBVUkJfRE1BX01BUF9TSU5HTEUp KSB7DQo+ICAJCW51bV9zZ3MgPSB1cmItPm51bV9tYXBwZWRfc2dzOw0KPiAgCQlzZyA9IHVyYi0+ c2c7DQo+ICAJCWFkZHIgPSAodTY0KSBzZ19kbWFfYWRkcmVzcyhzZyk7DQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL3VzYi9ob3N0L3hoY2kuYyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5jDQo+IGlu ZGV4IGZlMzgyNzUzNjNlMC4uMTVmMDZiYzZiMWFkIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL3Vz Yi9ob3N0L3hoY2kuYw0KPiArKysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2kuYw0KPiBAQCAtMTI1 Niw2ICsxMjU2LDEwNiBAQCBFWFBPUlRfU1lNQk9MX0dQTCh4aGNpX3Jlc3VtZSk7DQo+ICANCj4g IC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSovDQo+ICANCj4gK3N0YXRpYyBpbnQgeGhjaV9tYXBfdGVtcF9i dWZmZXIoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiKQ0KPiArew0KPiArCXZv aWQgKnRlbXA7DQo+ICsJaW50IHJldCA9IDA7DQo+ICsJdW5zaWduZWQgaW50IGxlbjsNCj4gKwl1 bnNpZ25lZCBpbnQgYnVmX2xlbjsNCj4gKwllbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXI7DQo+ ICsJc3RydWN0IHhoY2lfaGNkICp4aGNpOw0KPiArDQo+ICsJeGhjaSA9IGhjZF90b194aGNpKGhj ZCk7DQo+ICsJZGlyID0gdXNiX3VyYl9kaXJfaW4odXJiKSA/IERNQV9GUk9NX0RFVklDRSA6IERN QV9UT19ERVZJQ0U7DQo+ICsJYnVmX2xlbiA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aDsN Cj4gKw0KPiArCXRlbXAgPSBremFsbG9jX25vZGUoYnVmX2xlbiwgR0ZQX0FUT01JQywNCj4gKwkJ CSAgICBkZXZfdG9fbm9kZShoY2QtPnNlbGYuc3lzZGV2KSk7DQo+ICsNCj4gKwlpZiAodXNiX3Vy Yl9kaXJfb3V0KHVyYikpDQo+ICsJCWxlbiA9IHNnX3Bjb3B5X3RvX2J1ZmZlcih1cmItPnNnLCB1 cmItPm51bV9zZ3MsDQo+ICsJCQkJCSB0ZW1wLCBidWZfbGVuLCAwKTsNCj4gKw0KPiArCXVyYi0+ dHJhbnNmZXJfYnVmZmVyID0gdGVtcDsNCj4gKwl1cmItPnRyYW5zZmVyX2RtYSA9IGRtYV9tYXBf c2luZ2xlKGhjZC0+c2VsZi5zeXNkZXYsDQo+ICsJCQkJCSAgIHVyYi0+dHJhbnNmZXJfYnVmZmVy LA0KPiArCQkJCQkgICB1cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGgsDQo+ICsJCQkJCSAgIGRp cik7DQo+ICsNCj4gKwlpZiAoZG1hX21hcHBpbmdfZXJyb3IoaGNkLT5zZWxmLnN5c2RldiwNCj4g KwkJCSAgICAgIHVyYi0+dHJhbnNmZXJfZG1hKSkgew0KPiArCQlyZXQgPSAtRUFHQUlOOw0KPiAr CQlrZnJlZSh0ZW1wKTsNCj4gKwl9IGVsc2Ugew0KPiArCQl1cmItPnRyYW5zZmVyX2ZsYWdzIHw9 IFVSQl9ETUFfTUFQX1NJTkdMRTsNCj4gKwl9DQo+ICsNCj4gKwlyZXR1cm4gcmV0Ow0KPiArfQ0K PiArDQo+ICtzdGF0aWMgYm9vbCB4aGNpX3VyYl90ZW1wX2J1ZmZlcl9yZXF1aXJlZChzdHJ1Y3Qg dXNiX2hjZCAqaGNkLA0KPiArCQkJCQkgIHN0cnVjdCB1cmIgKnVyYikNCj4gK3sNCj4gKwlib29s IHJldCA9IGZhbHNlOw0KPiArCXVuc2lnbmVkIGludCBpOw0KPiArCXVuc2lnbmVkIGludCBsZW4g PSAwOw0KPiArCXVuc2lnbmVkIGludCBidWZfbGVuOw0KPiArCXVuc2lnbmVkIGludCB0cmJfc2l6 ZTsNCj4gKwl1bnNpZ25lZCBpbnQgbWF4X3BrdDsNCj4gKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNn Ow0KPiArCXN0cnVjdCBzY2F0dGVybGlzdCAqdGFpbF9zZzsNCj4gKw0KPiArCXNnID0gdXJiLT5z ZzsNCj4gKwl0YWlsX3NnID0gdXJiLT5zZzsNCj4gKwlidWZfbGVuID0gdXJiLT50cmFuc2Zlcl9i dWZmZXJfbGVuZ3RoOw0KPiArCW1heF9wa3QgPSB1c2JfZW5kcG9pbnRfbWF4cCgmdXJiLT5lcC0+ ZGVzYyk7DQo+ICsNCj4gKwlpZiAoIXVyYi0+bnVtX3NncykNCj4gKwkJcmV0dXJuIHJldDsNCj4g Kw0KPiArCWlmICh1cmItPmRldi0+c3BlZWQgPj0gVVNCX1NQRUVEX1NVUEVSKQ0KPiArCQl0cmJf c2l6ZSA9IFRSQl9DQUNIRV9TSVpFX1NTOw0KPiArCWVsc2UNCj4gKwkJdHJiX3NpemUgPSBUUkJf Q0FDSEVfU0laRV9IUzsNCj4gKw0KPiArCWlmICh1cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGgg IT0gMCAmJg0KPiArCSAgICAhKHVyYi0+dHJhbnNmZXJfZmxhZ3MgJiBVUkJfTk9fVFJBTlNGRVJf RE1BX01BUCkpIHsNCj4gKwkJZm9yX2VhY2hfc2codXJiLT5zZywgc2csIHVyYi0+bnVtX3Nncywg aSkgew0KPiArCQkJbGVuID0gbGVuICsgc2ctPmxlbmd0aDsNCj4gKwkJCWlmIChpID4gdHJiX3Np emUgLSAyKSB7DQo+ICsJCQkJbGVuID0gbGVuIC0gdGFpbF9zZy0+bGVuZ3RoOw0KPiArCQkJCWlm IChsZW4gPCBtYXhfcGt0KSB7DQo+ICsJCQkJCXJldCA9IHRydWU7DQo+ICsJCQkJCWJyZWFrOw0K PiArCQkJCX0NCj4gKw0KPiArCQkJCXRhaWxfc2cgPSBzZ19uZXh0KHRhaWxfc2cpOw0KPiArCQkJ fQ0KPiArCQl9DQo+ICsJfQ0KPiArCXJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2 b2lkIHhoY2lfdW5tYXBfdGVtcF9idWYoc3RydWN0IHVyYiAqdXJiKQ0KPiArew0KPiArCXN0cnVj dCBzY2F0dGVybGlzdCAqc2c7DQo+ICsJdW5zaWduZWQgaW50IGxlbjsNCj4gKwl1bnNpZ25lZCBp bnQgYnVmX2xlbjsNCj4gKw0KPiArCXNnID0gdXJiLT5zZzsNCj4gKwlidWZfbGVuID0gdXJiLT50 cmFuc2Zlcl9idWZmZXJfbGVuZ3RoOw0KPiArDQo+ICsJaWYgKHVzYl91cmJfZGlyX2luKHVyYikp IHsNCj4gKwkJbGVuID0gc2dfcGNvcHlfZnJvbV9idWZmZXIodXJiLT5zZywgdXJiLT5udW1fc2dz LA0KPiArCQkJCQkgICB1cmItPnRyYW5zZmVyX2J1ZmZlciwNCj4gKwkJCQkJICAgYnVmX2xlbiwN Cj4gKwkJCQkJICAgMCk7DQo+ICsJfQ0KPiArDQo+ICsJa2ZyZWUodXJiLT50cmFuc2Zlcl9idWZm ZXIpOw0KPiArCXVyYi0+dHJhbnNmZXJfYnVmZmVyID0gTlVMTDsNCj4gK30NCj4gKw0KPiAgLyoN Cj4gICAqIEJ5cGFzcyB0aGUgRE1BIG1hcHBpbmcgaWYgVVJCIGlzIHN1aXRhYmxlIGZvciBJbW1l ZGlhdGUgVHJhbnNmZXIgKElEVCksDQo+ICAgKiB3ZSdsbCBjb3B5IHRoZSBhY3R1YWwgZGF0YSBp bnRvIHRoZSBUUkIgYWRkcmVzcyByZWdpc3Rlci4gVGhpcyBpcyBsaW1pdGVkIHRvDQo+IEBAIC0x MjY1LDEyICsxMzY1LDM2IEBAIEVYUE9SVF9TWU1CT0xfR1BMKHhoY2lfcmVzdW1lKTsNCj4gIHN0 YXRpYyBpbnQgeGhjaV9tYXBfdXJiX2Zvcl9kbWEoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0 IHVyYiAqdXJiLA0KPiAgCQkJCWdmcF90IG1lbV9mbGFncykNCj4gIHsNCj4gKwlzdHJ1Y3QgeGhj aV9oY2QgKnhoY2k7DQo+ICsNCj4gKwl4aGNpID0gaGNkX3RvX3hoY2koaGNkKTsNCj4gKw0KPiAg CWlmICh4aGNpX3VyYl9zdWl0YWJsZV9mb3JfaWR0KHVyYikpDQo+ICAJCXJldHVybiAwOw0KPiAg DQo+ICsJaWYgKHhoY2ktPnF1aXJrcyAmIFhIQ0lfU0dfVFJCX0NBQ0hFX1NJWkVfUVVJUkspIHsN Cj4gKwkJaWYgKHhoY2lfdXJiX3RlbXBfYnVmZmVyX3JlcXVpcmVkKGhjZCwgdXJiKSkNCj4gKwkJ CXJldHVybiB4aGNpX21hcF90ZW1wX2J1ZmZlcihoY2QsIHVyYik7DQo+ICsJfQ0KPiAgCXJldHVy biB1c2JfaGNkX21hcF91cmJfZm9yX2RtYShoY2QsIHVyYiwgbWVtX2ZsYWdzKTsNCj4gIH0NCj4g IA0KPiArc3RhdGljIHZvaWQgeGhjaV91bm1hcF91cmJfZm9yX2RtYShzdHJ1Y3QgdXNiX2hjZCAq aGNkLCBzdHJ1Y3QgdXJiICp1cmIpDQo+ICt7DQo+ICsJc3RydWN0IHhoY2lfaGNkICp4aGNpOw0K PiArCWJvb2wgdW5tYXBfdGVtcF9idWYgPSBmYWxzZTsNCj4gKw0KPiArCXhoY2kgPSBoY2RfdG9f eGhjaShoY2QpOw0KPiArDQo+ICsJaWYgKHVyYi0+bnVtX3NncyAmJiAodXJiLT50cmFuc2Zlcl9m bGFncyAmIFVSQl9ETUFfTUFQX1NJTkdMRSkpDQo+ICsJCXVubWFwX3RlbXBfYnVmID0gdHJ1ZTsN Cj4gKw0KPiArCXVzYl9oY2RfdW5tYXBfdXJiX2Zvcl9kbWEoaGNkLCB1cmIpOw0KPiArDQo+ICsJ aWYgKCh4aGNpLT5xdWlya3MgJiBYSENJX1NHX1RSQl9DQUNIRV9TSVpFX1FVSVJLKSAmJiB1bm1h cF90ZW1wX2J1ZikNCj4gKwkJeGhjaV91bm1hcF90ZW1wX2J1Zih1cmIpOw0KPiArfQ0KPiArDQo+ ICAvKioNCj4gICAqIHhoY2lfZ2V0X2VuZHBvaW50X2luZGV4IC0gVXNlZCBmb3IgcGFzc2luZyBl bmRwb2ludCBiaXRtYXNrcyBiZXR3ZWVuIHRoZSBjb3JlIGFuZA0KPiAgICogSENEcy4gIEZpbmQg dGhlIGluZGV4IGZvciBhbiBlbmRwb2ludCBnaXZlbiBpdHMgZGVzY3JpcHRvci4gIFVzZSB0aGUg cmV0dXJuDQo+IEBAIC01MzE1LDYgKzU0MzksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhjX2Ry aXZlciB4aGNpX2hjX2RyaXZlciA9IHsNCj4gIAkgKiBtYW5hZ2luZyBpL28gcmVxdWVzdHMgYW5k IGFzc29jaWF0ZWQgZGV2aWNlIHJlc291cmNlcw0KPiAgCSAqLw0KPiAgCS5tYXBfdXJiX2Zvcl9k bWEgPSAgICAgIHhoY2lfbWFwX3VyYl9mb3JfZG1hLA0KPiArCS51bm1hcF91cmJfZm9yX2RtYSA9 ICAgIHhoY2lfdW5tYXBfdXJiX2Zvcl9kbWEsDQo+ICAJLnVyYl9lbnF1ZXVlID0JCXhoY2lfdXJi X2VucXVldWUsDQo+ICAJLnVyYl9kZXF1ZXVlID0JCXhoY2lfdXJiX2RlcXVldWUsDQo+ICAJLmFs bG9jX2RldiA9CQl4aGNpX2FsbG9jX2RldiwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hv c3QveGhjaS5oIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLmgNCj4gaW5kZXggNGRiODI1NDU5YjQw Li4xNDYwMDIxNDE4OGYgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5oDQo+ ICsrKyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5oDQo+IEBAIC0xMzMwLDYgKzEzMzAsMTAgQEAg ZW51bSB4aGNpX3NldHVwX2RldiB7DQo+ICAjZGVmaW5lIFRSQl9TSUEJCQkoMTw8MzEpDQo+ICAj ZGVmaW5lIFRSQl9GUkFNRV9JRChwKQkJKCgocCkgJiAweDdmZikgPDwgMjApDQo+ICANCj4gKy8q IFRSQiBjYWNoZSBzaXplIGZvciB4SEMgd2l0aCBUUkIgY2FjaGUgKi8NCj4gKyNkZWZpbmUgVFJC X0NBQ0hFX1NJWkVfSFMJOA0KPiArI2RlZmluZSBUUkJfQ0FDSEVfU0laRV9TUwkxNg0KPiArDQo+ ICBzdHJ1Y3QgeGhjaV9nZW5lcmljX3RyYiB7DQo+ICAJX19sZTMyIGZpZWxkWzRdOw0KPiAgfTsN Cj4gDQoNClRoYW5rcyAmIFJlZ2FyZHMsDQogVGVqYXMgSm9nbGVrYXINCg==