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=-10.6 required=3.0 tests=BAYES_00, CHARSET_FARAWAY_HEADER,DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 5DE3AC433F5 for ; Tue, 14 Sep 2021 06:04:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4057960F6D for ; Tue, 14 Sep 2021 06:04:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239906AbhINGFt (ORCPT ); Tue, 14 Sep 2021 02:05:49 -0400 Received: from esa16.fujitsucc.c3s2.iphmx.com ([216.71.158.33]:29430 "EHLO esa16.fujitsucc.c3s2.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239916AbhINGFr (ORCPT ); Tue, 14 Sep 2021 02:05:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1631599470; x=1663135470; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=yrp8ACuZPn4Si8IaoRvphq28Rm0l+ahYWnXF4VV2aUs=; b=towd3Qy/v5SasJcARgbXlmqdjshlJ5vmd8mCNncY11QsWReWKoU5JFpJ E3CnhmHzs2imsmCVJpz/VUcIqtWltJVt0U2GKkuJOCsMDeUhpX2YWf+a3 LEhBH9wOuMPBFsK1LGAHkiwuhV0LYjpMJjtxcs9maRZWElXad2LLFcvtw p+pnoozSjdC4sGaylTJBuBN53w6PCU8iwesB8wmOxL6A7qqYvMp99gY3u Jk7NUHKKbRY4u6E3DUzhQhLtmYpjwTFhlqyRbZEidPc8y3GBEwIu/F+Jc vTtr44a2K4aaJpVVXYwOZOY595xot7KLsKSxqBU629dV1EzOVfy8LGkZt A==; X-IronPort-AV: E=McAfee;i="6200,9189,10106"; a="39073787" X-IronPort-AV: E=Sophos;i="5.85,291,1624287600"; d="scan'208";a="39073787" Received: from mail-os2jpn01lp2057.outbound.protection.outlook.com (HELO JPN01-OS2-obe.outbound.protection.outlook.com) ([104.47.92.57]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Sep 2021 15:04:27 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fNO62l1MdqeZs1l1PheMh2RvNc332gfHIC9jSjhVasu4dyLwV2YG5m4qufkDvxS2z3uujEpconqQ3NHAqjYU37gVRaMjKPQuIV/tDC8UROEPZlIX6mtD80X15p9nUifMn6j4enTrLTPN1KRrhFQ+Kag/Av3i+20tjMROqBoy2haBfCd7cxWHsWd18lddsJtuXrVahTKY2+uncGHvwyHDu8ydh00aeOdEI/u8wty2FzbGjvVhFNkj48/s1yajN2ziHIKE0xFOgWdWYRwbk6TUylK7OuNNfKNLFoGz0WfFKZkRx4d43OAupJNwlx/vJWWmZBo2bhESSkZ0jRBWffTDTA== 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; bh=yrp8ACuZPn4Si8IaoRvphq28Rm0l+ahYWnXF4VV2aUs=; b=QkMe4SW3JTi+5w254Lns4EIXNgyhYgGjQ2VK8cgzcpeQV4+p7fEie8c2B8mf5e3pFgn/rcvv1PLWRd2Aqa/NrZgfSWyYqMBhIuqRIO4f84YDXzyLIhGNQsz6JZRwpjoI26JEjBuNMtD37+aRZLTEna1GwkdfgZhSDKEgS/fR75LB2nwEmvLw3bd6iswKO8HJWbB1sV4YqyQbRNiQXp+tXE4pLE6rTAigvrkuTB1zbwm2Dlwz13THapXENipS0WTNlhXdYXda8cE8XERHVjQ11TMyl6ebLRP+z3/T/qY9hB0lCFuDXtyH59+ABV4C/S9ZmiueY73a3TSWf37TE2jU+A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fujitsu.com; dmarc=pass action=none header.from=fujitsu.com; dkim=pass header.d=fujitsu.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.onmicrosoft.com; s=selector2-fujitsu-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yrp8ACuZPn4Si8IaoRvphq28Rm0l+ahYWnXF4VV2aUs=; b=nXz7rx4j3o0Q/z44kvUjhCQFqFGDDKzcA65BixHskgqKNNGtGW4fw3Sv7XVzHP+etee2Mj0fxBpquZ8ixDBy47nseAiH6elJf0XycppaXZCqqTDYOM7jakenZuO78gkXr/NxxA8dDcOwhCkBe7FNuDcK1dG62wvqj4ruGjjGOwQ= Received: from OS0PR01MB6371.jpnprd01.prod.outlook.com (2603:1096:604:104::9) by OSAPR01MB2547.jpnprd01.prod.outlook.com (2603:1096:603:3d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.18; Tue, 14 Sep 2021 06:04:18 +0000 Received: from OS0PR01MB6371.jpnprd01.prod.outlook.com ([fe80::8d8:e27f:4b5e:fa27]) by OS0PR01MB6371.jpnprd01.prod.outlook.com ([fe80::8d8:e27f:4b5e:fa27%5]) with mapi id 15.20.4500.019; Tue, 14 Sep 2021 06:04:18 +0000 From: "yangx.jy@fujitsu.com" To: Bob Pearson , "jgg@nvidia.com" , "zyjzyj2000@gmail.com" , "linux-rdma@vger.kernel.org" , "mie@igel.co.jp" , "bvanassche@acm.org" Subject: =?gb2312?B?u9i4tDogW1BBVENIIGZvci1yYyB2MyAxLzZdIFJETUEvcnhlOiBBZGQgbWVt?= =?gb2312?Q?ory_barriers_to_kernel_queues?= Thread-Topic: [PATCH for-rc v3 1/6] RDMA/rxe: Add memory barriers to kernel queues Thread-Index: AQHXpbvJcgg9K30mSkyNF5ndLfAOLqujEGSw Date: Tue, 14 Sep 2021 06:04:18 +0000 Message-ID: References: <20210909204456.7476-1-rpearsonhpe@gmail.com> <20210909204456.7476-2-rpearsonhpe@gmail.com> In-Reply-To: <20210909204456.7476-2-rpearsonhpe@gmail.com> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e5d2938b-bc0b-43b8-8d28-08d977457cea x-ms-traffictypediagnostic: OSAPR01MB2547: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7219; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: P17nj2gIror0WFv8hJPTm19I5M6htKSULeZVI1KRPL+Z/Mot0fPUmw4xIHfPHgwCikPC5+4U+ZFX7tK75doiRpjzprc1+wUe9+lyrg/CVnj2KqeFvJx2Nad/6LtAqRL1nWYAi9D/7OmJtwaY5e8DPC/w+WpLtLl6UUrVKyxg0AYuex7yO13d4aKyJOUDueoLo1l5yewoLj1TarLpXklJvPa/1N7mCf+ZVqKdoa026QeKuZtRi+jUqq3s8nIufleZu0yTholyDpha88f8zb/j5iJwSq6rvUH7eNxfm8cZ7nVOYzy7FBVGyNnMTszeE3NIKeigtShJNmQ+AJzixTc4mB/OxZ8ebaf6WB+5kzp3YmCUo8yLf56QQT5YW/thU98hyKAn843cKTIpwoNQBagvo/NixA7ZJ8Mo1ljOs/fv4WCSvmyozW1hOgIpydu/JTNlTEk+XnuiROtn7mffRL1Hmi7jw3tRVk8wnf2yEJwzOn4u5pG4ZiE03N861BuuVptUbnTXEWLBxCxbjcppQIirwp8dX4OnnqMbc0VqUcXFT8IslbPNHSOo87pltj7Bhw0g3FGdYUR0jlS+AT40d8dRkRdabSDip5085IuPo8/11y0D1CkOBPmVoNFphaFxrG2LpBywaC0YK6tqXb80J6rMAmuH1D1cwd4Dz8CeqGR5XcS8FlmlfJh/vsCjeU47eau9LSYsf4xYU/ZLdDhS/GDShA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS0PR01MB6371.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(122000001)(66476007)(83380400001)(7696005)(66556008)(64756008)(316002)(508600001)(110136005)(66446008)(71200400001)(66946007)(33656002)(26005)(6506007)(8936002)(38070700005)(38100700002)(186003)(52536014)(85182001)(9686003)(224303003)(55016002)(2906002)(5660300002)(86362001)(76116006)(30864003)(579004)(559001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?gb2312?B?SUVZdy93VEl0TWNkY1gvakMvM3FQK1pYL1Rpc0FodGFHcU8rVGs2RXc0aFZq?= =?gb2312?B?ZXVVMUZ2QmRjNm1sZ25zQVloTG5yV09xYkhRYnozcDRRYnY3NFdDenhvS2J3?= =?gb2312?B?Tm94dFFiRUg0cXZ6MHVhSU9PQytVU010WVBkRHVFOUlGRzBWN1IwcWIyQW1y?= =?gb2312?B?S3pZK3ZZVGlhb2E2RDE3eExDWFlZVlFOa3laN2d0TmtseGJmS0x6NGExbjZ1?= =?gb2312?B?aGh3eUQzKzJpMXVEdjdxeVV5RE9SVDBIc3lFVCtFTnk0L3ZscWZ3blVIaUhh?= =?gb2312?B?d2ZIdngyS1hVd0pvVnRaY2llVVRqNVVqOVBleVJUdjNmOU1MWm9OMHR3QUxX?= =?gb2312?B?RkhLUGtuL0ZPalNrWGo0SHpRcFRLWW1Pa2RqWFB4RDRMdys2cjhqUEJRUnVL?= =?gb2312?B?T1dnaGtBUXAzSktRSS9Wa1MwcW9KRnVNL1dmcFZySVNsUk9hYnBTajF5d1Nw?= =?gb2312?B?UTRPQ3VxaURNNkVtdURtL1JJRmlVdTA1K1VlOWVEUFpMQVB2Z1ZncmlqVzlr?= =?gb2312?B?S3QxMjg3aUJ3UXRseGtEUjR1aitvR3l0MEpiTmoyTGNQL1hhMFNNOHUyUUt3?= =?gb2312?B?R2RxUFZIWi9tWFQyK0F5bG9IWkpSeVkxMjY5dFYzWmpCN1UwVVBLOHJnRW85?= =?gb2312?B?QlNDVTNBK3BZR1hjaXNHV3lsOEJhVnNuSFQ2UnVyWm9qUlhPUWo5b2ZlQmRh?= =?gb2312?B?T2JzV25wczgvN0Q1ZW4xMUN2V3d6YjNWa3BQL2RVSmkxYzRkTThianRHUkpD?= =?gb2312?B?WGMyZmg2YmpoL1RPa0VibTVlcU83VzNEZ0ZHaE9BRStidUNsamRoOXBEN0Iz?= =?gb2312?B?cDdvNUJVL3dVSDVVekp5YzJaNEtWYzlNOXd6VU9Uclh5K3l2am9DeHRaR3lS?= =?gb2312?B?L1JxY1VXWWp6cERFYS9JOGNwR0FaS29hQ3VnL3YrdVlZQzB1cHJZdmFPRE1G?= =?gb2312?B?QU8zcHpaZkJucWFQcGsvWlJmQWpxa1RyS0p2M1AxdDFsYVZjU1FZL2ppdGtK?= =?gb2312?B?eVl3SFlqQmFudlY1eWNjb2piS3YxOU1EQXRPMytaMG0xcDhpTlhIQWEwLyt3?= =?gb2312?B?NElIcHJxK0plUGJkVFg4dm9DZTIwM1EzaTFnZW52ZWJvdUp3NzloSGRsSmxv?= =?gb2312?B?V0RCNkhsTHRJOHRrTkpHU0hWTmdSaklOaGxmb0ZBdnpxWTlONGsvdWJGQUsr?= =?gb2312?B?OVh0MHI4M3c2NHNWM0FoQ1E1dlN5SUNLdGpvMG1JMFJoblJROWVvbTFqYThG?= =?gb2312?B?M1I5M3lQd3gvVVgyYTFRZEFQZnVUSm40M0xmcTl6TlIvRldXYkNGeFR2Rmtr?= =?gb2312?B?WWxwdDN1QXhtTmFPVmVDYUF6ZXhNamFhNDZjRktHeWExamJUWVJZZkJtYjZt?= =?gb2312?B?dmFuaGFzSTZ5T1hvZXBINnRPdS9hZVl0WFkxVTJ0QTN1WTE0N0J1dnRKYW9U?= =?gb2312?B?cllWU1Y3U1NZTDJrOTh2M0dhVVlqWEpYOEt5VDJHRFJSUzI0d2FJdlNCLzla?= =?gb2312?B?UC9jWitlYTQ4NW9WWFA2TENpL05OcmN3QVVubE1kYzYvTlROcWNwMzFLVGlK?= =?gb2312?B?cldnWlRXTTVjOTQvN0VkQ3FCbnhMNWkwenBmd3J6YkhrQ3ZSODJKRTVQRElQ?= =?gb2312?B?aklQeEVHY0lFOEVucEtadzB6ZmNWQ0Y5bjZ2eFFMNFRSMkpxM0ppdjZxUk5Z?= =?gb2312?B?T0J5VlZRMHY2SnFoa2Z4K3pQcVdhZm11RE8yUVZRM3lkT3p0cEVhWEI4SXJC?= =?gb2312?Q?mFo9eq4+UpkPdpLUsWwTV08osdQPIzrGFtJNXql?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OS0PR01MB6371.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e5d2938b-bc0b-43b8-8d28-08d977457cea X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Sep 2021 06:04:18.1203 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a19f121d-81e1-4858-a9d8-736e267fd4c7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: V3xFmMRpBAttVj1L1pem98FkXpsMT6p2nFGICXmvkQIlhhAt2Tb1MNEL/EshcEHrF4dNc4o4fzxaeedceipzjQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSAPR01MB2547 Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org SGkgQm9iLA0KDQpXaHkgZG8geW91IHdhbnQgdG8gdXNlIEZST01fQ0xJRU5UIGFuZCBUT19DTElF TlQgc3VmZml4Pw0KSXQgc2VlbXMgcmVhZGFibGUgdG8gdXNlIEZST01fVVNFUiBhbmQgVE9fVVNF UiBzdWZmaXggKGkuZS4gYmV0d2VlbiB1c2VyIHNwYWNlIGFuZCBrZXJuZWwgc3BhY2UpLg0KDQpC ZXN0IFJlZ2FyZHMsDQpYaWFvIFlhbmcNCg0KLS0tLS3Tyrz+1K28/i0tLS0tDQq3orz+yMs6IEJv YiBQZWFyc29uIDxycGVhcnNvbmhwZUBnbWFpbC5jb20+IA0Kt6LLzcqxvOQ6IDIwMjHE6jnUwjEw yNUgNDo0NQ0KytW8/sjLOiBqZ2dAbnZpZGlhLmNvbTsgenlqenlqMjAwMEBnbWFpbC5jb207IGxp bnV4LXJkbWFAdmdlci5rZXJuZWwub3JnOyBtaWVAaWdlbC5jby5qcDsgYnZhbmFzc2NoZUBhY20u b3JnDQqzrcvNOiBCb2IgUGVhcnNvbiA8cnBlYXJzb25ocGVAZ21haWwuY29tPg0K1vfM4jogW1BB VENIIGZvci1yYyB2MyAxLzZdIFJETUEvcnhlOiBBZGQgbWVtb3J5IGJhcnJpZXJzIHRvIGtlcm5l bCBxdWV1ZXMNCg0KRWFybGllciBwYXRjaGVzIGFkZGVkIG1lbW9yeSBiYXJyaWVycyB0byBwcm90 ZWN0IHVzZXIgc3BhY2UgdG8ga2VybmVsIHNwYWNlIGNvbW11bmljYXRpb25zLiBUaGUgdXNlciBz cGFjZSBxdWV1ZXMgd2VyZSBwcmV2aW91c2x5IHNob3duIHRvIGhhdmUgb2NjYXNpb25hbCBtZW1v cnkgc3luY2hvbml6YXRpb24gZXJyb3JzIHdoaWNoIHdlcmUgcmVtb3ZlZCBieSBhZGRpbmcgc21w X2xvYWRfYWNxdWlyZSwgc21wX3N0b3JlX3JlbGVhc2UgYmFycmllcnMuIA0KDQpUaGlzIHBhdGNo IGV4dGVuZHMgdGhhdCB0byB0aGUgY2FzZSB3aGVyZSBxdWV1ZXMgYXJlIHVzZWQgYmV0d2VlbiBr ZXJuZWwgc3BhY2UgdGhyZWFkcy4NCg0KU2lnbmVkLW9mZi1ieTogQm9iIFBlYXJzb24gPHJwZWFy c29uaHBlQGdtYWlsLmNvbT4NCi0tLQ0KIGRyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX2Nv bXAuYyAgfCAxMCArLS0tDQogZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfY3EuYyAgICB8 IDI1ICsrLS0tLS0tLQ0KIGRyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX3FwLmMgICAgfCAx MCArKy0tDQogZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfcXVldWUuaCB8IDczICsrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIGRyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX3Jl cS5jICAgfCAyMSArKy0tLS0tLQ0KIGRyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX3Jlc3Au YyAgfCAzOCArKysrLS0tLS0tLS0tLQ0KIGRyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX3Ny cS5jICAgfCAgMiArLQ0KIGRyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX3ZlcmJzLmMgfCA1 MyArKysrLS0tLS0tLS0tLS0tLS0tDQogOCBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCsp LCAxNzcgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvc3cv cnhlL3J4ZV9jb21wLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9jb21wLmMNCmlu ZGV4IGQyZDgwMmM3NzZmZC4uZWQ0ZTNmMjliZDY1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9pbmZp bmliYW5kL3N3L3J4ZS9yeGVfY29tcC5jDQorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhl L3J4ZV9jb21wLmMNCkBAIC0xNDIsMTAgKzE0Miw3IEBAIHN0YXRpYyBpbmxpbmUgZW51bSBjb21w X3N0YXRlIGdldF93cWUoc3RydWN0IHJ4ZV9xcCAqcXAsDQogCS8qIHdlIGNvbWUgaGVyZSB3aGV0 aGVyIG9yIG5vdCB3ZSBmb3VuZCBhIHJlc3BvbnNlIHBhY2tldCB0byBzZWUgaWYNCiAJICogdGhl cmUgYXJlIGFueSBwb3N0ZWQgV1FFcw0KIAkgKi8NCi0JaWYgKHFwLT5pc191c2VyKQ0KLQkJd3Fl ID0gcXVldWVfaGVhZChxcC0+c3EucXVldWUsIFFVRVVFX1RZUEVfRlJPTV9VU0VSKTsNCi0JZWxz ZQ0KLQkJd3FlID0gcXVldWVfaGVhZChxcC0+c3EucXVldWUsIFFVRVVFX1RZUEVfS0VSTkVMKTsN CisJd3FlID0gcXVldWVfaGVhZChxcC0+c3EucXVldWUsIFFVRVVFX1RZUEVfRlJPTV9DTElFTlQp Ow0KIAkqd3FlX3AgPSB3cWU7DQogDQogCS8qIG5vIFdRRSBvciByZXF1ZXN0ZXIgaGFzIG5vdCBz dGFydGVkIGl0IHlldCAqLyBAQCAtNDMyLDEwICs0MjksNyBAQCBzdGF0aWMgdm9pZCBkb19jb21w bGV0ZShzdHJ1Y3QgcnhlX3FwICpxcCwgc3RydWN0IHJ4ZV9zZW5kX3dxZSAqd3FlKQ0KIAlpZiAo cG9zdCkNCiAJCW1ha2Vfc2VuZF9jcWUocXAsIHdxZSwgJmNxZSk7DQogDQotCWlmIChxcC0+aXNf dXNlcikNCi0JCWFkdmFuY2VfY29uc3VtZXIocXAtPnNxLnF1ZXVlLCBRVUVVRV9UWVBFX0ZST01f VVNFUik7DQotCWVsc2UNCi0JCWFkdmFuY2VfY29uc3VtZXIocXAtPnNxLnF1ZXVlLCBRVUVVRV9U WVBFX0tFUk5FTCk7DQorCWFkdmFuY2VfY29uc3VtZXIocXAtPnNxLnF1ZXVlLCBRVUVVRV9UWVBF X0ZST01fQ0xJRU5UKTsNCiANCiAJaWYgKHBvc3QpDQogCQlyeGVfY3FfcG9zdChxcC0+c2NxLCAm Y3FlLCAwKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9jcS5j IGIvZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfY3EuYw0KaW5kZXggYWVmMjg4ZjE2NGZk Li40ZTI2YzJlYTRhNTkgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4 ZV9jcS5jDQorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9jcS5jDQpAQCAtMjUs MTEgKzI1LDcgQEAgaW50IHJ4ZV9jcV9jaGtfYXR0cihzdHJ1Y3QgcnhlX2RldiAqcnhlLCBzdHJ1 Y3QgcnhlX2NxICpjcSwNCiAJfQ0KIA0KIAlpZiAoY3EpIHsNCi0JCWlmIChjcS0+aXNfdXNlcikN Ci0JCQljb3VudCA9IHF1ZXVlX2NvdW50KGNxLT5xdWV1ZSwgUVVFVUVfVFlQRV9UT19VU0VSKTsN Ci0JCWVsc2UNCi0JCQljb3VudCA9IHF1ZXVlX2NvdW50KGNxLT5xdWV1ZSwgUVVFVUVfVFlQRV9L RVJORUwpOw0KLQ0KKwkJY291bnQgPSBxdWV1ZV9jb3VudChjcS0+cXVldWUsIFFVRVVFX1RZUEVf VE9fQ0xJRU5UKTsNCiAJCWlmIChjcWUgPCBjb3VudCkgew0KIAkJCXByX3dhcm4oImNxZSglZCkg PCBjdXJyZW50ICMgZWxlbWVudHMgaW4gcXVldWUgKCVkKSIsDQogCQkJCWNxZSwgY291bnQpOw0K QEAgLTY1LDcgKzYxLDcgQEAgaW50IHJ4ZV9jcV9mcm9tX2luaXQoc3RydWN0IHJ4ZV9kZXYgKnJ4 ZSwgc3RydWN0IHJ4ZV9jcSAqY3EsIGludCBjcWUsDQogCWludCBlcnI7DQogCWVudW0gcXVldWVf dHlwZSB0eXBlOw0KIA0KLQl0eXBlID0gdXJlc3AgPyBRVUVVRV9UWVBFX1RPX1VTRVIgOiBRVUVV RV9UWVBFX0tFUk5FTDsNCisJdHlwZSA9IFFVRVVFX1RZUEVfVE9fQ0xJRU5UOw0KIAljcS0+cXVl dWUgPSByeGVfcXVldWVfaW5pdChyeGUsICZjcWUsDQogCQkJc2l6ZW9mKHN0cnVjdCByeGVfY3Fl KSwgdHlwZSk7DQogCWlmICghY3EtPnF1ZXVlKSB7DQpAQCAtMTE3LDExICsxMTMsNyBAQCBpbnQg cnhlX2NxX3Bvc3Qoc3RydWN0IHJ4ZV9jcSAqY3EsIHN0cnVjdCByeGVfY3FlICpjcWUsIGludCBz b2xpY2l0ZWQpDQogDQogCXNwaW5fbG9ja19pcnFzYXZlKCZjcS0+Y3FfbG9jaywgZmxhZ3MpOw0K IA0KLQlpZiAoY3EtPmlzX3VzZXIpDQotCQlmdWxsID0gcXVldWVfZnVsbChjcS0+cXVldWUsIFFV RVVFX1RZUEVfVE9fVVNFUik7DQotCWVsc2UNCi0JCWZ1bGwgPSBxdWV1ZV9mdWxsKGNxLT5xdWV1 ZSwgUVVFVUVfVFlQRV9LRVJORUwpOw0KLQ0KKwlmdWxsID0gcXVldWVfZnVsbChjcS0+cXVldWUs IFFVRVVFX1RZUEVfVE9fQ0xJRU5UKTsNCiAJaWYgKHVubGlrZWx5KGZ1bGwpKSB7DQogCQlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZjcS0+Y3FfbG9jaywgZmxhZ3MpOw0KIAkJaWYgKGNxLT5pYmNx LmV2ZW50X2hhbmRsZXIpIHsNCkBAIC0xMzQsMTcgKzEyNiwxMCBAQCBpbnQgcnhlX2NxX3Bvc3Qo c3RydWN0IHJ4ZV9jcSAqY3EsIHN0cnVjdCByeGVfY3FlICpjcWUsIGludCBzb2xpY2l0ZWQpDQog CQlyZXR1cm4gLUVCVVNZOw0KIAl9DQogDQotCWlmIChjcS0+aXNfdXNlcikNCi0JCWFkZHIgPSBw cm9kdWNlcl9hZGRyKGNxLT5xdWV1ZSwgUVVFVUVfVFlQRV9UT19VU0VSKTsNCi0JZWxzZQ0KLQkJ YWRkciA9IHByb2R1Y2VyX2FkZHIoY3EtPnF1ZXVlLCBRVUVVRV9UWVBFX0tFUk5FTCk7DQotDQor CWFkZHIgPSBwcm9kdWNlcl9hZGRyKGNxLT5xdWV1ZSwgUVVFVUVfVFlQRV9UT19DTElFTlQpOw0K IAltZW1jcHkoYWRkciwgY3FlLCBzaXplb2YoKmNxZSkpOw0KIA0KLQlpZiAoY3EtPmlzX3VzZXIp DQotCQlhZHZhbmNlX3Byb2R1Y2VyKGNxLT5xdWV1ZSwgUVVFVUVfVFlQRV9UT19VU0VSKTsNCi0J ZWxzZQ0KLQkJYWR2YW5jZV9wcm9kdWNlcihjcS0+cXVldWUsIFFVRVVFX1RZUEVfS0VSTkVMKTsN CisJYWR2YW5jZV9wcm9kdWNlcihjcS0+cXVldWUsIFFVRVVFX1RZUEVfVE9fQ0xJRU5UKTsNCiAN CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3EtPmNxX2xvY2ssIGZsYWdzKTsNCiANCmRpZmYg LS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9xcC5jIGIvZHJpdmVycy9pbmZp bmliYW5kL3N3L3J4ZS9yeGVfcXAuYw0KaW5kZXggMWFiNmFmN2RkYjI1Li4yZTkyM2FmNjQyZjgg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9xcC5jDQorKysgYi9k cml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9xcC5jDQpAQCAtMjMxLDcgKzIzMSw3IEBAIHN0 YXRpYyBpbnQgcnhlX3FwX2luaXRfcmVxKHN0cnVjdCByeGVfZGV2ICpyeGUsIHN0cnVjdCByeGVf cXAgKnFwLA0KIAlxcC0+c3EubWF4X2lubGluZSA9IGluaXQtPmNhcC5tYXhfaW5saW5lX2RhdGEg PSB3cWVfc2l6ZTsNCiAJd3FlX3NpemUgKz0gc2l6ZW9mKHN0cnVjdCByeGVfc2VuZF93cWUpOw0K IA0KLQl0eXBlID0gdXJlc3AgPyBRVUVVRV9UWVBFX0ZST01fVVNFUiA6IFFVRVVFX1RZUEVfS0VS TkVMOw0KKwl0eXBlID0gUVVFVUVfVFlQRV9GUk9NX0NMSUVOVDsNCiAJcXAtPnNxLnF1ZXVlID0g cnhlX3F1ZXVlX2luaXQocnhlLCAmcXAtPnNxLm1heF93ciwNCiAJCQkJd3FlX3NpemUsIHR5cGUp Ow0KIAlpZiAoIXFwLT5zcS5xdWV1ZSkNCkBAIC0yNDgsMTIgKzI0OCw4IEBAIHN0YXRpYyBpbnQg cnhlX3FwX2luaXRfcmVxKHN0cnVjdCByeGVfZGV2ICpyeGUsIHN0cnVjdCByeGVfcXAgKnFwLA0K IAkJcmV0dXJuIGVycjsNCiAJfQ0KIA0KLQlpZiAocXAtPmlzX3VzZXIpDQogCQlxcC0+cmVxLndx ZV9pbmRleCA9IHByb2R1Y2VyX2luZGV4KHFwLT5zcS5xdWV1ZSwNCi0JCQkJCQlRVUVVRV9UWVBF X0ZST01fVVNFUik7DQotCWVsc2UNCi0JCXFwLT5yZXEud3FlX2luZGV4ID0gcHJvZHVjZXJfaW5k ZXgocXAtPnNxLnF1ZXVlLA0KLQkJCQkJCVFVRVVFX1RZUEVfS0VSTkVMKTsNCisJCQkJCVFVRVVF X1RZUEVfRlJPTV9DTElFTlQpOw0KIA0KIAlxcC0+cmVxLnN0YXRlCQk9IFFQX1NUQVRFX1JFU0VU Ow0KIAlxcC0+cmVxLm9wY29kZQkJPSAtMTsNCkBAIC0yOTMsNyArMjg5LDcgQEAgc3RhdGljIGlu dCByeGVfcXBfaW5pdF9yZXNwKHN0cnVjdCByeGVfZGV2ICpyeGUsIHN0cnVjdCByeGVfcXAgKnFw LA0KIAkJcHJfZGVidWcoInFwIyVkIG1heF93ciA9ICVkLCBtYXhfc2dlID0gJWQsIHdxZV9zaXpl ID0gJWRcbiIsDQogCQkJIHFwX251bShxcCksIHFwLT5ycS5tYXhfd3IsIHFwLT5ycS5tYXhfc2dl LCB3cWVfc2l6ZSk7DQogDQotCQl0eXBlID0gdXJlc3AgPyBRVUVVRV9UWVBFX0ZST01fVVNFUiA6 IFFVRVVFX1RZUEVfS0VSTkVMOw0KKwkJdHlwZSA9IFFVRVVFX1RZUEVfRlJPTV9DTElFTlQ7DQog CQlxcC0+cnEucXVldWUgPSByeGVfcXVldWVfaW5pdChyeGUsICZxcC0+cnEubWF4X3dyLA0KIAkJ CQkJd3FlX3NpemUsIHR5cGUpOw0KIAkJaWYgKCFxcC0+cnEucXVldWUpDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfcXVldWUuaCBiL2RyaXZlcnMvaW5maW5pYmFu ZC9zdy9yeGUvcnhlX3F1ZXVlLmgNCmluZGV4IDI3MDJiMGU1NWZjMy4uZDQ2NWFhOTM0MmUxIDEw MDY0NA0KLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfcXVldWUuaA0KKysrIGIv ZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfcXVldWUuaA0KQEAgLTM1LDkgKzM1LDggQEAN CiANCiAvKiB0eXBlIG9mIHF1ZXVlICovDQogZW51bSBxdWV1ZV90eXBlIHsNCi0JUVVFVUVfVFlQ RV9LRVJORUwsDQotCVFVRVVFX1RZUEVfVE9fVVNFUiwNCi0JUVVFVUVfVFlQRV9GUk9NX1VTRVIs DQorCVFVRVVFX1RZUEVfVE9fQ0xJRU5ULA0KKwlRVUVVRV9UWVBFX0ZST01fQ0xJRU5ULA0KIH07 DQogDQogc3RydWN0IHJ4ZV9xdWV1ZSB7DQpAQCAtODcsMjAgKzg2LDE2IEBAIHN0YXRpYyBpbmxp bmUgaW50IHF1ZXVlX2VtcHR5KHN0cnVjdCByeGVfcXVldWUgKnEsIGVudW0gcXVldWVfdHlwZSB0 eXBlKQ0KIAl1MzIgY29uczsNCiANCiAJc3dpdGNoICh0eXBlKSB7DQotCWNhc2UgUVVFVUVfVFlQ RV9GUk9NX1VTRVI6DQorCWNhc2UgUVVFVUVfVFlQRV9GUk9NX0NMSUVOVDoNCiAJCS8qIHByb3Rl Y3QgdXNlciBzcGFjZSBpbmRleCAqLw0KIAkJcHJvZCA9IHNtcF9sb2FkX2FjcXVpcmUoJnEtPmJ1 Zi0+cHJvZHVjZXJfaW5kZXgpOw0KIAkJY29ucyA9IHEtPmluZGV4Ow0KIAkJYnJlYWs7DQotCWNh c2UgUVVFVUVfVFlQRV9UT19VU0VSOg0KKwljYXNlIFFVRVVFX1RZUEVfVE9fQ0xJRU5UOg0KIAkJ cHJvZCA9IHEtPmluZGV4Ow0KIAkJLyogcHJvdGVjdCB1c2VyIHNwYWNlIGluZGV4ICovDQogCQlj b25zID0gc21wX2xvYWRfYWNxdWlyZSgmcS0+YnVmLT5jb25zdW1lcl9pbmRleCk7DQogCQlicmVh azsNCi0JY2FzZSBRVUVVRV9UWVBFX0tFUk5FTDoNCi0JCXByb2QgPSBxLT5idWYtPnByb2R1Y2Vy X2luZGV4Ow0KLQkJY29ucyA9IHEtPmJ1Zi0+Y29uc3VtZXJfaW5kZXg7DQotCQlicmVhazsNCiAJ fQ0KIA0KIAlyZXR1cm4gKChwcm9kIC0gY29ucykgJiBxLT5pbmRleF9tYXNrKSA9PSAwOyBAQCAt MTEyLDIwICsxMDcsMTYgQEAgc3RhdGljIGlubGluZSBpbnQgcXVldWVfZnVsbChzdHJ1Y3Qgcnhl X3F1ZXVlICpxLCBlbnVtIHF1ZXVlX3R5cGUgdHlwZSkNCiAJdTMyIGNvbnM7DQogDQogCXN3aXRj aCAodHlwZSkgew0KLQljYXNlIFFVRVVFX1RZUEVfRlJPTV9VU0VSOg0KKwljYXNlIFFVRVVFX1RZ UEVfRlJPTV9DTElFTlQ6DQogCQkvKiBwcm90ZWN0IHVzZXIgc3BhY2UgaW5kZXggKi8NCiAJCXBy b2QgPSBzbXBfbG9hZF9hY3F1aXJlKCZxLT5idWYtPnByb2R1Y2VyX2luZGV4KTsNCiAJCWNvbnMg PSBxLT5pbmRleDsNCiAJCWJyZWFrOw0KLQljYXNlIFFVRVVFX1RZUEVfVE9fVVNFUjoNCisJY2Fz ZSBRVUVVRV9UWVBFX1RPX0NMSUVOVDoNCiAJCXByb2QgPSBxLT5pbmRleDsNCiAJCS8qIHByb3Rl Y3QgdXNlciBzcGFjZSBpbmRleCAqLw0KIAkJY29ucyA9IHNtcF9sb2FkX2FjcXVpcmUoJnEtPmJ1 Zi0+Y29uc3VtZXJfaW5kZXgpOw0KIAkJYnJlYWs7DQotCWNhc2UgUVVFVUVfVFlQRV9LRVJORUw6 DQotCQlwcm9kID0gcS0+YnVmLT5wcm9kdWNlcl9pbmRleDsNCi0JCWNvbnMgPSBxLT5idWYtPmNv bnN1bWVyX2luZGV4Ow0KLQkJYnJlYWs7DQogCX0NCiANCiAJcmV0dXJuICgocHJvZCArIDEgLSBj b25zKSAmIHEtPmluZGV4X21hc2spID09IDA7IEBAIC0xMzgsMjAgKzEyOSwxNiBAQCBzdGF0aWMg aW5saW5lIHVuc2lnbmVkIGludCBxdWV1ZV9jb3VudChjb25zdCBzdHJ1Y3QgcnhlX3F1ZXVlICpx LA0KIAl1MzIgY29uczsNCiANCiAJc3dpdGNoICh0eXBlKSB7DQotCWNhc2UgUVVFVUVfVFlQRV9G Uk9NX1VTRVI6DQorCWNhc2UgUVVFVUVfVFlQRV9GUk9NX0NMSUVOVDoNCiAJCS8qIHByb3RlY3Qg dXNlciBzcGFjZSBpbmRleCAqLw0KIAkJcHJvZCA9IHNtcF9sb2FkX2FjcXVpcmUoJnEtPmJ1Zi0+ cHJvZHVjZXJfaW5kZXgpOw0KIAkJY29ucyA9IHEtPmluZGV4Ow0KIAkJYnJlYWs7DQotCWNhc2Ug UVVFVUVfVFlQRV9UT19VU0VSOg0KKwljYXNlIFFVRVVFX1RZUEVfVE9fQ0xJRU5UOg0KIAkJcHJv ZCA9IHEtPmluZGV4Ow0KIAkJLyogcHJvdGVjdCB1c2VyIHNwYWNlIGluZGV4ICovDQogCQljb25z ID0gc21wX2xvYWRfYWNxdWlyZSgmcS0+YnVmLT5jb25zdW1lcl9pbmRleCk7DQogCQlicmVhazsN Ci0JY2FzZSBRVUVVRV9UWVBFX0tFUk5FTDoNCi0JCXByb2QgPSBxLT5idWYtPnByb2R1Y2VyX2lu ZGV4Ow0KLQkJY29ucyA9IHEtPmJ1Zi0+Y29uc3VtZXJfaW5kZXg7DQotCQlicmVhazsNCiAJfQ0K IA0KIAlyZXR1cm4gKHByb2QgLSBjb25zKSAmIHEtPmluZGV4X21hc2s7DQpAQCAtMTYyLDcgKzE0 OSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZHZhbmNlX3Byb2R1Y2VyKHN0cnVjdCByeGVfcXVl dWUgKnEsIGVudW0gcXVldWVfdHlwZSB0eXBlKQ0KIAl1MzIgcHJvZDsNCiANCiAJc3dpdGNoICh0 eXBlKSB7DQotCWNhc2UgUVVFVUVfVFlQRV9GUk9NX1VTRVI6DQorCWNhc2UgUVVFVUVfVFlQRV9G Uk9NX0NMSUVOVDoNCiAJCXByX3dhcm5fb25jZSgiTm9ybWFsbHkga2VybmVsIHNob3VsZCBub3Qg d3JpdGUgdXNlciBzcGFjZSBpbmRleFxuIik7DQogCQkvKiBwcm90ZWN0IHVzZXIgc3BhY2UgaW5k ZXggKi8NCiAJCXByb2QgPSBzbXBfbG9hZF9hY3F1aXJlKCZxLT5idWYtPnByb2R1Y2VyX2luZGV4 KTsNCkBAIC0xNzAsMTUgKzE1NywxMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWR2YW5jZV9wcm9k dWNlcihzdHJ1Y3QgcnhlX3F1ZXVlICpxLCBlbnVtIHF1ZXVlX3R5cGUgdHlwZSkNCiAJCS8qIHNh bWUgKi8NCiAJCXNtcF9zdG9yZV9yZWxlYXNlKCZxLT5idWYtPnByb2R1Y2VyX2luZGV4LCBwcm9k KTsNCiAJCWJyZWFrOw0KLQljYXNlIFFVRVVFX1RZUEVfVE9fVVNFUjoNCisJY2FzZSBRVUVVRV9U WVBFX1RPX0NMSUVOVDoNCiAJCXByb2QgPSBxLT5pbmRleDsNCiAJCXEtPmluZGV4ID0gKHByb2Qg KyAxKSAmIHEtPmluZGV4X21hc2s7DQogCQlxLT5idWYtPnByb2R1Y2VyX2luZGV4ID0gcS0+aW5k ZXg7DQogCQlicmVhazsNCi0JY2FzZSBRVUVVRV9UWVBFX0tFUk5FTDoNCi0JCXByb2QgPSBxLT5i dWYtPnByb2R1Y2VyX2luZGV4Ow0KLQkJcS0+YnVmLT5wcm9kdWNlcl9pbmRleCA9IChwcm9kICsg MSkgJiBxLT5pbmRleF9tYXNrOw0KLQkJYnJlYWs7DQogCX0NCiB9DQogDQpAQCAtMTg3LDEyICsx NzAsMTIgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkdmFuY2VfY29uc3VtZXIoc3RydWN0IHJ4ZV9x dWV1ZSAqcSwgZW51bSBxdWV1ZV90eXBlIHR5cGUpDQogCXUzMiBjb25zOw0KIA0KIAlzd2l0Y2gg KHR5cGUpIHsNCi0JY2FzZSBRVUVVRV9UWVBFX0ZST01fVVNFUjoNCisJY2FzZSBRVUVVRV9UWVBF X0ZST01fQ0xJRU5UOg0KIAkJY29ucyA9IHEtPmluZGV4Ow0KIAkJcS0+aW5kZXggPSAoY29ucyAr IDEpICYgcS0+aW5kZXhfbWFzazsNCiAJCXEtPmJ1Zi0+Y29uc3VtZXJfaW5kZXggPSBxLT5pbmRl eDsNCiAJCWJyZWFrOw0KLQljYXNlIFFVRVVFX1RZUEVfVE9fVVNFUjoNCisJY2FzZSBRVUVVRV9U WVBFX1RPX0NMSUVOVDoNCiAJCXByX3dhcm5fb25jZSgiTm9ybWFsbHkga2VybmVsIHNob3VsZCBu b3Qgd3JpdGUgdXNlciBzcGFjZSBpbmRleFxuIik7DQogCQkvKiBwcm90ZWN0IHVzZXIgc3BhY2Ug aW5kZXggKi8NCiAJCWNvbnMgPSBzbXBfbG9hZF9hY3F1aXJlKCZxLT5idWYtPmNvbnN1bWVyX2lu ZGV4KTsNCkBAIC0yMDAsMTAgKzE4Myw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZHZhbmNlX2Nv bnN1bWVyKHN0cnVjdCByeGVfcXVldWUgKnEsIGVudW0gcXVldWVfdHlwZSB0eXBlKQ0KIAkJLyog c2FtZSAqLw0KIAkJc21wX3N0b3JlX3JlbGVhc2UoJnEtPmJ1Zi0+Y29uc3VtZXJfaW5kZXgsIGNv bnMpOw0KIAkJYnJlYWs7DQotCWNhc2UgUVVFVUVfVFlQRV9LRVJORUw6DQotCQljb25zID0gcS0+ YnVmLT5jb25zdW1lcl9pbmRleDsNCi0JCXEtPmJ1Zi0+Y29uc3VtZXJfaW5kZXggPSAoY29ucyAr IDEpICYgcS0+aW5kZXhfbWFzazsNCi0JCWJyZWFrOw0KIAl9DQogfQ0KIA0KQEAgLTIxMiwxNyAr MTkxLDE0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCAqcHJvZHVjZXJfYWRkcihzdHJ1Y3QgcnhlX3F1 ZXVlICpxLCBlbnVtIHF1ZXVlX3R5cGUgdHlwZSkNCiAJdTMyIHByb2Q7DQogDQogCXN3aXRjaCAo dHlwZSkgew0KLQljYXNlIFFVRVVFX1RZUEVfRlJPTV9VU0VSOg0KKwljYXNlIFFVRVVFX1RZUEVf RlJPTV9DTElFTlQ6DQogCQkvKiBwcm90ZWN0IHVzZXIgc3BhY2UgaW5kZXggKi8NCiAJCXByb2Qg PSBzbXBfbG9hZF9hY3F1aXJlKCZxLT5idWYtPnByb2R1Y2VyX2luZGV4KTsNCiAJCXByb2QgJj0g cS0+aW5kZXhfbWFzazsNCiAJCWJyZWFrOw0KLQljYXNlIFFVRVVFX1RZUEVfVE9fVVNFUjoNCisJ Y2FzZSBRVUVVRV9UWVBFX1RPX0NMSUVOVDoNCiAJCXByb2QgPSBxLT5pbmRleDsNCiAJCWJyZWFr Ow0KLQljYXNlIFFVRVVFX1RZUEVfS0VSTkVMOg0KLQkJcHJvZCA9IHEtPmJ1Zi0+cHJvZHVjZXJf aW5kZXg7DQotCQlicmVhazsNCiAJfQ0KIA0KIAlyZXR1cm4gcS0+YnVmLT5kYXRhICsgKHByb2Qg PDwgcS0+bG9nMl9lbGVtX3NpemUpOyBAQCAtMjMzLDE3ICsyMDksMTQgQEAgc3RhdGljIGlubGlu ZSB2b2lkICpjb25zdW1lcl9hZGRyKHN0cnVjdCByeGVfcXVldWUgKnEsIGVudW0gcXVldWVfdHlw ZSB0eXBlKQ0KIAl1MzIgY29uczsNCiANCiAJc3dpdGNoICh0eXBlKSB7DQotCWNhc2UgUVVFVUVf VFlQRV9GUk9NX1VTRVI6DQorCWNhc2UgUVVFVUVfVFlQRV9GUk9NX0NMSUVOVDoNCiAJCWNvbnMg PSBxLT5pbmRleDsNCiAJCWJyZWFrOw0KLQljYXNlIFFVRVVFX1RZUEVfVE9fVVNFUjoNCisJY2Fz ZSBRVUVVRV9UWVBFX1RPX0NMSUVOVDoNCiAJCS8qIHByb3RlY3QgdXNlciBzcGFjZSBpbmRleCAq Lw0KIAkJY29ucyA9IHNtcF9sb2FkX2FjcXVpcmUoJnEtPmJ1Zi0+Y29uc3VtZXJfaW5kZXgpOw0K IAkJY29ucyAmPSBxLT5pbmRleF9tYXNrOw0KIAkJYnJlYWs7DQotCWNhc2UgUVVFVUVfVFlQRV9L RVJORUw6DQotCQljb25zID0gcS0+YnVmLT5jb25zdW1lcl9pbmRleDsNCi0JCWJyZWFrOw0KIAl9 DQogDQogCXJldHVybiBxLT5idWYtPmRhdGEgKyAoY29ucyA8PCBxLT5sb2cyX2VsZW1fc2l6ZSk7 IEBAIC0yNTUsMTcgKzIyOCwxNCBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBwcm9kdWNl cl9pbmRleChzdHJ1Y3QgcnhlX3F1ZXVlICpxLA0KIAl1MzIgcHJvZDsNCiANCiAJc3dpdGNoICh0 eXBlKSB7DQotCWNhc2UgUVVFVUVfVFlQRV9GUk9NX1VTRVI6DQorCWNhc2UgUVVFVUVfVFlQRV9G Uk9NX0NMSUVOVDoNCiAJCS8qIHByb3RlY3QgdXNlciBzcGFjZSBpbmRleCAqLw0KIAkJcHJvZCA9 IHNtcF9sb2FkX2FjcXVpcmUoJnEtPmJ1Zi0+cHJvZHVjZXJfaW5kZXgpOw0KIAkJcHJvZCAmPSBx LT5pbmRleF9tYXNrOw0KIAkJYnJlYWs7DQotCWNhc2UgUVVFVUVfVFlQRV9UT19VU0VSOg0KKwlj YXNlIFFVRVVFX1RZUEVfVE9fQ0xJRU5UOg0KIAkJcHJvZCA9IHEtPmluZGV4Ow0KIAkJYnJlYWs7 DQotCWNhc2UgUVVFVUVfVFlQRV9LRVJORUw6DQotCQlwcm9kID0gcS0+YnVmLT5wcm9kdWNlcl9p bmRleDsNCi0JCWJyZWFrOw0KIAl9DQogDQogCXJldHVybiBwcm9kOw0KQEAgLTI3NywxNyArMjQ3 LDE0IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGNvbnN1bWVyX2luZGV4KHN0cnVjdCBy eGVfcXVldWUgKnEsDQogCXUzMiBjb25zOw0KIA0KIAlzd2l0Y2ggKHR5cGUpIHsNCi0JY2FzZSBR VUVVRV9UWVBFX0ZST01fVVNFUjoNCisJY2FzZSBRVUVVRV9UWVBFX0ZST01fQ0xJRU5UOg0KIAkJ Y29ucyA9IHEtPmluZGV4Ow0KIAkJYnJlYWs7DQotCWNhc2UgUVVFVUVfVFlQRV9UT19VU0VSOg0K KwljYXNlIFFVRVVFX1RZUEVfVE9fQ0xJRU5UOg0KIAkJLyogcHJvdGVjdCB1c2VyIHNwYWNlIGlu ZGV4ICovDQogCQljb25zID0gc21wX2xvYWRfYWNxdWlyZSgmcS0+YnVmLT5jb25zdW1lcl9pbmRl eCk7DQogCQljb25zICY9IHEtPmluZGV4X21hc2s7DQogCQlicmVhazsNCi0JY2FzZSBRVUVVRV9U WVBFX0tFUk5FTDoNCi0JCWNvbnMgPSBxLT5idWYtPmNvbnN1bWVyX2luZGV4Ow0KLQkJYnJlYWs7 DQogCX0NCiANCiAJcmV0dXJuIGNvbnM7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5k L3N3L3J4ZS9yeGVfcmVxLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9yZXEuYw0K aW5kZXggMzg5NDE5N2E4MmY2Li4yMmMzZWRiMjg5NDUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2lu ZmluaWJhbmQvc3cvcnhlL3J4ZV9yZXEuYw0KKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4 ZS9yeGVfcmVxLmMNCkBAIC00OSwxMyArNDksOCBAQCBzdGF0aWMgdm9pZCByZXFfcmV0cnkoc3Ry dWN0IHJ4ZV9xcCAqcXApDQogCXVuc2lnbmVkIGludCBjb25zOw0KIAl1bnNpZ25lZCBpbnQgcHJv ZDsNCiANCi0JaWYgKHFwLT5pc191c2VyKSB7DQotCQljb25zID0gY29uc3VtZXJfaW5kZXgocSwg UVVFVUVfVFlQRV9GUk9NX1VTRVIpOw0KLQkJcHJvZCA9IHByb2R1Y2VyX2luZGV4KHEsIFFVRVVF X1RZUEVfRlJPTV9VU0VSKTsNCi0JfSBlbHNlIHsNCi0JCWNvbnMgPSBjb25zdW1lcl9pbmRleChx LCBRVUVVRV9UWVBFX0tFUk5FTCk7DQotCQlwcm9kID0gcHJvZHVjZXJfaW5kZXgocSwgUVVFVUVf VFlQRV9LRVJORUwpOw0KLQl9DQorCWNvbnMgPSBjb25zdW1lcl9pbmRleChxLCBRVUVVRV9UWVBF X0ZST01fQ0xJRU5UKTsNCisJcHJvZCA9IHByb2R1Y2VyX2luZGV4KHEsIFFVRVVFX1RZUEVfRlJP TV9DTElFTlQpOw0KIA0KIAlxcC0+cmVxLndxZV9pbmRleAk9IGNvbnM7DQogCXFwLT5yZXEucHNu CQk9IHFwLT5jb21wLnBzbjsNCkBAIC0xMjEsMTUgKzExNiw5IEBAIHN0YXRpYyBzdHJ1Y3Qgcnhl X3NlbmRfd3FlICpyZXFfbmV4dF93cWUoc3RydWN0IHJ4ZV9xcCAqcXApDQogCXVuc2lnbmVkIGlu dCBjb25zOw0KIAl1bnNpZ25lZCBpbnQgcHJvZDsNCiANCi0JaWYgKHFwLT5pc191c2VyKSB7DQot CQl3cWUgPSBxdWV1ZV9oZWFkKHEsIFFVRVVFX1RZUEVfRlJPTV9VU0VSKTsNCi0JCWNvbnMgPSBj b25zdW1lcl9pbmRleChxLCBRVUVVRV9UWVBFX0ZST01fVVNFUik7DQotCQlwcm9kID0gcHJvZHVj ZXJfaW5kZXgocSwgUVVFVUVfVFlQRV9GUk9NX1VTRVIpOw0KLQl9IGVsc2Ugew0KLQkJd3FlID0g cXVldWVfaGVhZChxLCBRVUVVRV9UWVBFX0tFUk5FTCk7DQotCQljb25zID0gY29uc3VtZXJfaW5k ZXgocSwgUVVFVUVfVFlQRV9LRVJORUwpOw0KLQkJcHJvZCA9IHByb2R1Y2VyX2luZGV4KHEsIFFV RVVFX1RZUEVfS0VSTkVMKTsNCi0JfQ0KKwl3cWUgPSBxdWV1ZV9oZWFkKHEsIFFVRVVFX1RZUEVf RlJPTV9DTElFTlQpOw0KKwljb25zID0gY29uc3VtZXJfaW5kZXgocSwgUVVFVUVfVFlQRV9GUk9N X0NMSUVOVCk7DQorCXByb2QgPSBwcm9kdWNlcl9pbmRleChxLCBRVUVVRV9UWVBFX0ZST01fQ0xJ RU5UKTsNCiANCiAJaWYgKHVubGlrZWx5KHFwLT5yZXEuc3RhdGUgPT0gUVBfU1RBVEVfRFJBSU4p KSB7DQogCQkvKiBjaGVjayB0byBzZWUgaWYgd2UgYXJlIGRyYWluZWQ7DQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfcmVzcC5jIGIvZHJpdmVycy9pbmZpbmliYW5k L3N3L3J4ZS9yeGVfcmVzcC5jDQppbmRleCA1NTAxMjI3ZGRjNjUuLjU5NmJlMDAyZDMzZCAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX3Jlc3AuYw0KKysrIGIvZHJp dmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfcmVzcC5jDQpAQCAtMzAzLDEwICszMDMsNyBAQCBz dGF0aWMgZW51bSByZXNwX3N0YXRlcyBnZXRfc3JxX3dxZShzdHJ1Y3QgcnhlX3FwICpxcCkNCiAN CiAJc3Bpbl9sb2NrX2JoKCZzcnEtPnJxLmNvbnN1bWVyX2xvY2spOw0KIA0KLQlpZiAocXAtPmlz X3VzZXIpDQotCQl3cWUgPSBxdWV1ZV9oZWFkKHEsIFFVRVVFX1RZUEVfRlJPTV9VU0VSKTsNCi0J ZWxzZQ0KLQkJd3FlID0gcXVldWVfaGVhZChxLCBRVUVVRV9UWVBFX0tFUk5FTCk7DQorCXdxZSA9 IHF1ZXVlX2hlYWQocSwgUVVFVUVfVFlQRV9GUk9NX0NMSUVOVCk7DQogCWlmICghd3FlKSB7DQog CQlzcGluX3VubG9ja19iaCgmc3JxLT5ycS5jb25zdW1lcl9sb2NrKTsNCiAJCXJldHVybiBSRVNQ U1RfRVJSX1JOUjsNCkBAIC0zMjIsMTMgKzMxOSw4IEBAIHN0YXRpYyBlbnVtIHJlc3Bfc3RhdGVz IGdldF9zcnFfd3FlKHN0cnVjdCByeGVfcXAgKnFwKQ0KIAltZW1jcHkoJnFwLT5yZXNwLnNycV93 cWUsIHdxZSwgc2l6ZSk7DQogDQogCXFwLT5yZXNwLndxZSA9ICZxcC0+cmVzcC5zcnFfd3FlLndx ZTsNCi0JaWYgKHFwLT5pc191c2VyKSB7DQotCQlhZHZhbmNlX2NvbnN1bWVyKHEsIFFVRVVFX1RZ UEVfRlJPTV9VU0VSKTsNCi0JCWNvdW50ID0gcXVldWVfY291bnQocSwgUVVFVUVfVFlQRV9GUk9N X1VTRVIpOw0KLQl9IGVsc2Ugew0KLQkJYWR2YW5jZV9jb25zdW1lcihxLCBRVUVVRV9UWVBFX0tF Uk5FTCk7DQotCQljb3VudCA9IHF1ZXVlX2NvdW50KHEsIFFVRVVFX1RZUEVfS0VSTkVMKTsNCi0J fQ0KKwlhZHZhbmNlX2NvbnN1bWVyKHEsIFFVRVVFX1RZUEVfRlJPTV9DTElFTlQpOw0KKwljb3Vu dCA9IHF1ZXVlX2NvdW50KHEsIFFVRVVFX1RZUEVfRlJPTV9DTElFTlQpOw0KIA0KIAlpZiAoc3Jx LT5saW1pdCAmJiBzcnEtPmlic3JxLmV2ZW50X2hhbmRsZXIgJiYgKGNvdW50IDwgc3JxLT5saW1p dCkpIHsNCiAJCXNycS0+bGltaXQgPSAwOw0KQEAgLTM1NywxMiArMzQ5LDggQEAgc3RhdGljIGVu dW0gcmVzcF9zdGF0ZXMgY2hlY2tfcmVzb3VyY2Uoc3RydWN0IHJ4ZV9xcCAqcXAsDQogCQkJcXAt PnJlc3Auc3RhdHVzID0gSUJfV0NfV1JfRkxVU0hfRVJSOw0KIAkJCXJldHVybiBSRVNQU1RfQ09N UExFVEU7DQogCQl9IGVsc2UgaWYgKCFzcnEpIHsNCi0JCQlpZiAocXAtPmlzX3VzZXIpDQotCQkJ CXFwLT5yZXNwLndxZSA9IHF1ZXVlX2hlYWQocXAtPnJxLnF1ZXVlLA0KLQkJCQkJCVFVRVVFX1RZ UEVfRlJPTV9VU0VSKTsNCi0JCQllbHNlDQotCQkJCXFwLT5yZXNwLndxZSA9IHF1ZXVlX2hlYWQo cXAtPnJxLnF1ZXVlLA0KLQkJCQkJCVFVRVVFX1RZUEVfS0VSTkVMKTsNCisJCQlxcC0+cmVzcC53 cWUgPSBxdWV1ZV9oZWFkKHFwLT5ycS5xdWV1ZSwNCisJCQkJCVFVRVVFX1RZUEVfRlJPTV9DTElF TlQpOw0KIAkJCWlmIChxcC0+cmVzcC53cWUpIHsNCiAJCQkJcXAtPnJlc3Auc3RhdHVzID0gSUJf V0NfV1JfRkxVU0hfRVJSOw0KIAkJCQlyZXR1cm4gUkVTUFNUX0NPTVBMRVRFOw0KQEAgLTM4OSwx MiArMzc3LDggQEAgc3RhdGljIGVudW0gcmVzcF9zdGF0ZXMgY2hlY2tfcmVzb3VyY2Uoc3RydWN0 IHJ4ZV9xcCAqcXAsDQogCQlpZiAoc3JxKQ0KIAkJCXJldHVybiBnZXRfc3JxX3dxZShxcCk7DQog DQotCQlpZiAocXAtPmlzX3VzZXIpDQotCQkJcXAtPnJlc3Aud3FlID0gcXVldWVfaGVhZChxcC0+ cnEucXVldWUsDQotCQkJCQlRVUVVRV9UWVBFX0ZST01fVVNFUik7DQotCQllbHNlDQotCQkJcXAt PnJlc3Aud3FlID0gcXVldWVfaGVhZChxcC0+cnEucXVldWUsDQotCQkJCQlRVUVVRV9UWVBFX0tF Uk5FTCk7DQorCQlxcC0+cmVzcC53cWUgPSBxdWV1ZV9oZWFkKHFwLT5ycS5xdWV1ZSwNCisJCQkJ UVVFVUVfVFlQRV9GUk9NX0NMSUVOVCk7DQogCQlyZXR1cm4gKHFwLT5yZXNwLndxZSkgPyBSRVNQ U1RfQ0hLX0xFTkdUSCA6IFJFU1BTVF9FUlJfUk5SOw0KIAl9DQogDQpAQCAtOTM2LDEyICs5MjAs OCBAQCBzdGF0aWMgZW51bSByZXNwX3N0YXRlcyBkb19jb21wbGV0ZShzdHJ1Y3QgcnhlX3FwICpx cCwNCiAJfQ0KIA0KIAkvKiBoYXZlIGNvcHkgZm9yIHNycSBhbmQgcmVmZXJlbmNlIGZvciAhc3Jx ICovDQotCWlmICghcXAtPnNycSkgew0KLQkJaWYgKHFwLT5pc191c2VyKQ0KLQkJCWFkdmFuY2Vf Y29uc3VtZXIocXAtPnJxLnF1ZXVlLCBRVUVVRV9UWVBFX0ZST01fVVNFUik7DQotCQllbHNlDQot CQkJYWR2YW5jZV9jb25zdW1lcihxcC0+cnEucXVldWUsIFFVRVVFX1RZUEVfS0VSTkVMKTsNCi0J fQ0KKwlpZiAoIXFwLT5zcnEpDQorCQlhZHZhbmNlX2NvbnN1bWVyKHFwLT5ycS5xdWV1ZSwgUVVF VUVfVFlQRV9GUk9NX0NMSUVOVCk7DQogDQogCXFwLT5yZXNwLndxZSA9IE5VTEw7DQogDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfc3JxLmMgYi9kcml2ZXJzL2lu ZmluaWJhbmQvc3cvcnhlL3J4ZV9zcnEuYw0KaW5kZXggNjEwYzk4ZDI0YjVjLi5hOWU3ODE3ZTI3 MzIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9zcnEuYw0KKysr IGIvZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfc3JxLmMNCkBAIC05Myw3ICs5Myw3IEBA IGludCByeGVfc3JxX2Zyb21faW5pdChzdHJ1Y3QgcnhlX2RldiAqcnhlLCBzdHJ1Y3QgcnhlX3Ny cSAqc3JxLA0KIAlzcGluX2xvY2tfaW5pdCgmc3JxLT5ycS5wcm9kdWNlcl9sb2NrKTsNCiAJc3Bp bl9sb2NrX2luaXQoJnNycS0+cnEuY29uc3VtZXJfbG9jayk7DQogDQotCXR5cGUgPSB1cmVzcCA/ IFFVRVVFX1RZUEVfRlJPTV9VU0VSIDogUVVFVUVfVFlQRV9LRVJORUw7DQorCXR5cGUgPSBRVUVV RV9UWVBFX0ZST01fQ0xJRU5UOw0KIAlxID0gcnhlX3F1ZXVlX2luaXQocnhlLCAmc3JxLT5ycS5t YXhfd3IsDQogCQkJc3JxX3dxZV9zaXplLCB0eXBlKTsNCiAJaWYgKCFxKSB7DQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfdmVyYnMuYyBiL2RyaXZlcnMvaW5maW5p YmFuZC9zdy9yeGUvcnhlX3ZlcmJzLmMNCmluZGV4IDI2N2I1YTljMzQ1ZC4uZGM3MGUzZWRlYmE2 IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfdmVyYnMuYw0KKysr IGIvZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfdmVyYnMuYw0KQEAgLTIxOCwxMSArMjE4 LDcgQEAgc3RhdGljIGludCBwb3N0X29uZV9yZWN2KHN0cnVjdCByeGVfcnEgKnJxLCBjb25zdCBz dHJ1Y3QgaWJfcmVjdl93ciAqaWJ3cikNCiAJaW50IG51bV9zZ2UgPSBpYndyLT5udW1fc2dlOw0K IAlpbnQgZnVsbDsNCiANCi0JaWYgKHJxLT5pc191c2VyKQ0KLQkJZnVsbCA9IHF1ZXVlX2Z1bGwo cnEtPnF1ZXVlLCBRVUVVRV9UWVBFX0ZST01fVVNFUik7DQotCWVsc2UNCi0JCWZ1bGwgPSBxdWV1 ZV9mdWxsKHJxLT5xdWV1ZSwgUVVFVUVfVFlQRV9LRVJORUwpOw0KLQ0KKwlmdWxsID0gcXVldWVf ZnVsbChycS0+cXVldWUsIFFVRVVFX1RZUEVfRlJPTV9DTElFTlQpOw0KIAlpZiAodW5saWtlbHko ZnVsbCkpIHsNCiAJCWVyciA9IC1FTk9NRU07DQogCQlnb3RvIGVycjE7DQpAQCAtMjM3LDExICsy MzMsNyBAQCBzdGF0aWMgaW50IHBvc3Rfb25lX3JlY3Yoc3RydWN0IHJ4ZV9ycSAqcnEsIGNvbnN0 IHN0cnVjdCBpYl9yZWN2X3dyICppYndyKQ0KIAlmb3IgKGkgPSAwOyBpIDwgbnVtX3NnZTsgaSsr KQ0KIAkJbGVuZ3RoICs9IGlid3ItPnNnX2xpc3RbaV0ubGVuZ3RoOw0KIA0KLQlpZiAocnEtPmlz X3VzZXIpDQotCQlyZWN2X3dxZSA9IHByb2R1Y2VyX2FkZHIocnEtPnF1ZXVlLCBRVUVVRV9UWVBF X0ZST01fVVNFUik7DQotCWVsc2UNCi0JCXJlY3Zfd3FlID0gcHJvZHVjZXJfYWRkcihycS0+cXVl dWUsIFFVRVVFX1RZUEVfS0VSTkVMKTsNCi0NCisJcmVjdl93cWUgPSBwcm9kdWNlcl9hZGRyKHJx LT5xdWV1ZSwgUVVFVUVfVFlQRV9GUk9NX0NMSUVOVCk7DQogCXJlY3Zfd3FlLT53cl9pZCA9IGli d3ItPndyX2lkOw0KIAlyZWN2X3dxZS0+bnVtX3NnZSA9IG51bV9zZ2U7DQogDQpAQCAtMjU0LDEw ICsyNDYsNyBAQCBzdGF0aWMgaW50IHBvc3Rfb25lX3JlY3Yoc3RydWN0IHJ4ZV9ycSAqcnEsIGNv bnN0IHN0cnVjdCBpYl9yZWN2X3dyICppYndyKQ0KIAlyZWN2X3dxZS0+ZG1hLmN1cl9zZ2UJCT0g MDsNCiAJcmVjdl93cWUtPmRtYS5zZ2Vfb2Zmc2V0CT0gMDsNCiANCi0JaWYgKHJxLT5pc191c2Vy KQ0KLQkJYWR2YW5jZV9wcm9kdWNlcihycS0+cXVldWUsIFFVRVVFX1RZUEVfRlJPTV9VU0VSKTsN Ci0JZWxzZQ0KLQkJYWR2YW5jZV9wcm9kdWNlcihycS0+cXVldWUsIFFVRVVFX1RZUEVfS0VSTkVM KTsNCisJYWR2YW5jZV9wcm9kdWNlcihycS0+cXVldWUsIFFVRVVFX1RZUEVfRlJPTV9DTElFTlQp Ow0KIA0KIAlyZXR1cm4gMDsNCiANCkBAIC02MzMsMjcgKzYyMiwxNyBAQCBzdGF0aWMgaW50IHBv c3Rfb25lX3NlbmQoc3RydWN0IHJ4ZV9xcCAqcXAsIGNvbnN0IHN0cnVjdCBpYl9zZW5kX3dyICpp YndyLA0KIA0KIAlzcGluX2xvY2tfaXJxc2F2ZSgmcXAtPnNxLnNxX2xvY2ssIGZsYWdzKTsNCiAN Ci0JaWYgKHFwLT5pc191c2VyKQ0KLQkJZnVsbCA9IHF1ZXVlX2Z1bGwoc3EtPnF1ZXVlLCBRVUVV RV9UWVBFX0ZST01fVVNFUik7DQotCWVsc2UNCi0JCWZ1bGwgPSBxdWV1ZV9mdWxsKHNxLT5xdWV1 ZSwgUVVFVUVfVFlQRV9LRVJORUwpOw0KKwlmdWxsID0gcXVldWVfZnVsbChzcS0+cXVldWUsIFFV RVVFX1RZUEVfRlJPTV9DTElFTlQpOw0KIA0KIAlpZiAodW5saWtlbHkoZnVsbCkpIHsNCiAJCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJnFwLT5zcS5zcV9sb2NrLCBmbGFncyk7DQogCQlyZXR1cm4g LUVOT01FTTsNCiAJfQ0KIA0KLQlpZiAocXAtPmlzX3VzZXIpDQotCQlzZW5kX3dxZSA9IHByb2R1 Y2VyX2FkZHIoc3EtPnF1ZXVlLCBRVUVVRV9UWVBFX0ZST01fVVNFUik7DQotCWVsc2UNCi0JCXNl bmRfd3FlID0gcHJvZHVjZXJfYWRkcihzcS0+cXVldWUsIFFVRVVFX1RZUEVfS0VSTkVMKTsNCi0N CisJc2VuZF93cWUgPSBwcm9kdWNlcl9hZGRyKHNxLT5xdWV1ZSwgUVVFVUVfVFlQRV9GUk9NX0NM SUVOVCk7DQogCWluaXRfc2VuZF93cWUocXAsIGlid3IsIG1hc2ssIGxlbmd0aCwgc2VuZF93cWUp Ow0KIA0KLQlpZiAocXAtPmlzX3VzZXIpDQotCQlhZHZhbmNlX3Byb2R1Y2VyKHNxLT5xdWV1ZSwg UVVFVUVfVFlQRV9GUk9NX1VTRVIpOw0KLQllbHNlDQotCQlhZHZhbmNlX3Byb2R1Y2VyKHNxLT5x dWV1ZSwgUVVFVUVfVFlQRV9LRVJORUwpOw0KKwlhZHZhbmNlX3Byb2R1Y2VyKHNxLT5xdWV1ZSwg UVVFVUVfVFlQRV9GUk9NX0NMSUVOVCk7DQogDQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnFw LT5zcS5zcV9sb2NrLCBmbGFncyk7DQogDQpAQCAtODQ1LDE4ICs4MjQsMTIgQEAgc3RhdGljIGlu dCByeGVfcG9sbF9jcShzdHJ1Y3QgaWJfY3EgKmliY3EsIGludCBudW1fZW50cmllcywgc3RydWN0 IGliX3djICp3YykNCiANCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmNxLT5jcV9sb2NrLCBmbGFncyk7 DQogCWZvciAoaSA9IDA7IGkgPCBudW1fZW50cmllczsgaSsrKSB7DQotCQlpZiAoY3EtPmlzX3Vz ZXIpDQotCQkJY3FlID0gcXVldWVfaGVhZChjcS0+cXVldWUsIFFVRVVFX1RZUEVfVE9fVVNFUik7 DQotCQllbHNlDQotCQkJY3FlID0gcXVldWVfaGVhZChjcS0+cXVldWUsIFFVRVVFX1RZUEVfS0VS TkVMKTsNCisJCWNxZSA9IHF1ZXVlX2hlYWQoY3EtPnF1ZXVlLCBRVUVVRV9UWVBFX1RPX0NMSUVO VCk7DQogCQlpZiAoIWNxZSkNCiAJCQlicmVhazsNCiANCiAJCW1lbWNweSh3YysrLCAmY3FlLT5p YndjLCBzaXplb2YoKndjKSk7DQotCQlpZiAoY3EtPmlzX3VzZXIpDQotCQkJYWR2YW5jZV9jb25z dW1lcihjcS0+cXVldWUsIFFVRVVFX1RZUEVfVE9fVVNFUik7DQotCQllbHNlDQotCQkJYWR2YW5j ZV9jb25zdW1lcihjcS0+cXVldWUsIFFVRVVFX1RZUEVfS0VSTkVMKTsNCisJCWFkdmFuY2VfY29u c3VtZXIoY3EtPnF1ZXVlLCBRVUVVRV9UWVBFX1RPX0NMSUVOVCk7DQogCX0NCiAJc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmY3EtPmNxX2xvY2ssIGZsYWdzKTsNCiANCkBAIC04NjgsMTAgKzg0MSw3 IEBAIHN0YXRpYyBpbnQgcnhlX3BlZWtfY3Eoc3RydWN0IGliX2NxICppYmNxLCBpbnQgd2NfY250 KQ0KIAlzdHJ1Y3QgcnhlX2NxICpjcSA9IHRvX3JjcShpYmNxKTsNCiAJaW50IGNvdW50Ow0KIA0K LQlpZiAoY3EtPmlzX3VzZXIpDQotCQljb3VudCA9IHF1ZXVlX2NvdW50KGNxLT5xdWV1ZSwgUVVF VUVfVFlQRV9UT19VU0VSKTsNCi0JZWxzZQ0KLQkJY291bnQgPSBxdWV1ZV9jb3VudChjcS0+cXVl dWUsIFFVRVVFX1RZUEVfS0VSTkVMKTsNCisJY291bnQgPSBxdWV1ZV9jb3VudChjcS0+cXVldWUs IFFVRVVFX1RZUEVfVE9fQ0xJRU5UKTsNCiANCiAJcmV0dXJuIChjb3VudCA+IHdjX2NudCkgPyB3 Y19jbnQgOiBjb3VudDsgIH0gQEAgLTg4NywxMCArODU3LDcgQEAgc3RhdGljIGludCByeGVfcmVx X25vdGlmeV9jcShzdHJ1Y3QgaWJfY3EgKmliY3EsIGVudW0gaWJfY3Ffbm90aWZ5X2ZsYWdzIGZs YWdzKQ0KIAlpZiAoY3EtPm5vdGlmeSAhPSBJQl9DUV9ORVhUX0NPTVApDQogCQljcS0+bm90aWZ5 ID0gZmxhZ3MgJiBJQl9DUV9TT0xJQ0lURURfTUFTSzsNCiANCi0JaWYgKGNxLT5pc191c2VyKQ0K LQkJZW1wdHkgPSBxdWV1ZV9lbXB0eShjcS0+cXVldWUsIFFVRVVFX1RZUEVfVE9fVVNFUik7DQot CWVsc2UNCi0JCWVtcHR5ID0gcXVldWVfZW1wdHkoY3EtPnF1ZXVlLCBRVUVVRV9UWVBFX0tFUk5F TCk7DQorCWVtcHR5ID0gcXVldWVfZW1wdHkoY3EtPnF1ZXVlLCBRVUVVRV9UWVBFX1RPX0NMSUVO VCk7DQogDQogCWlmICgoZmxhZ3MgJiBJQl9DUV9SRVBPUlRfTUlTU0VEX0VWRU5UUykgJiYgIWVt cHR5KQ0KIAkJcmV0ID0gMTsNCi0tDQoyLjMwLjINCg0KDQoNCg==