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.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS autolearn=unavailable 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 33CC2C2D0BF for ; Mon, 16 Dec 2019 17:09:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D7D24206D7 for ; Mon, 16 Dec 2019 17:09:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.b="oXF5hMoA" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727810AbfLPRGz (ORCPT ); Mon, 16 Dec 2019 12:06:55 -0500 Received: from mail-dm6nam11on2044.outbound.protection.outlook.com ([40.107.223.44]:54496 "EHLO NAM11-DM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727756AbfLPRGx (ORCPT ); Mon, 16 Dec 2019 12:06:53 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HNB0wwzA4GmaSQVNBfSxgZMrvY7RJ6dfFGQ0bk7SU8xJCtS8+RpZTmaEmYpp4D1S0S9SGbwxDA3dpPFoDs3iZQPQEy0YsuMI8OWG3Kibp5RvigofJbLophJwmCNLPYN3O/m3VWW1Nu96ygp63FeyP3Ic8BlWseAcxOblSDEawZFi03+zjrLjq2r56e4oHfUnc4P31niSaX+kkE3xg7P1pjSiAVXxnvO0/gKs5lJXBDSyEMizdZlPhzvLP/tFAvtxfSkFebA/xOmDDAoSd1t3qmFphbDavNTp6qeSetjJMnwaOy6rCGq+Dvf/TYX8nNa4POHJ8fTnU4xTr7aWdPOn6w== 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=YFAgEQItYQd/LCeO8+E9tjXuYQALVNCOig07n5uWiLE=; b=FH5Hsq/3jDbs5BK/hGC7p+bRG5jB7ZwOmJCKkBcx2bA3+3zUn/kPIGRKXzQwaV6oOE4B53v6tyclcEZB7oMBSMIzSB1r4AO3eRToEKoPzoFZe84aSjPN4ibhby+QnZWmH4wbbJtp2HY7/JMafowFx5OKB2XPxkwwFdfdKgZBhgiUQtXfSWSj013AoCK78y/IOMDkTpCoGW45x/QxVU3pYTuoRN5CstFILSgpKsM4ijUv6KeRvnl1j8CQE7+0EATTctFSbOTLWG2Rros4mriuDB1kTZn1/TeNEE8XjBa1krFeeZD7mObRVjV+1HVs9qyK9gclCKiV/qUokNYmbPj0gg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YFAgEQItYQd/LCeO8+E9tjXuYQALVNCOig07n5uWiLE=; b=oXF5hMoAMeeI4rEsLLSbprpSU7Fz3iwS5u8Lyz9p1+HJe2v6ABaCPs3btu0/zqN3aYi2DuLCM+saZXJH87AdkQ4yuFc/ZJ0rAnjKV6UlNEmSK8ZJop4G3tiQb2MYQHUSOmzzKTHwqbfLIIUcx/yeQVf1hxWQYJFn4XVBegkkGJc= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (10.255.180.22) by MN2PR11MB4445.namprd11.prod.outlook.com (52.135.37.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2538.18; Mon, 16 Dec 2019 17:06:49 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::f46c:e5b4:2a85:f0bf]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::f46c:e5b4:2a85:f0bf%4]) with mapi id 15.20.2538.019; Mon, 16 Dec 2019 17:06:49 +0000 From: =?utf-8?B?SsOpcsO0bWUgUG91aWxsZXI=?= To: "devel@driverdev.osuosl.org" , "linux-wireless@vger.kernel.org" CC: "netdev@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?utf-8?B?SsOpcsO0bWUgUG91aWxsZXI=?= Subject: [PATCH 50/55] staging: wfx: rewrite wfx_hw_scan() Thread-Topic: [PATCH 50/55] staging: wfx: rewrite wfx_hw_scan() Thread-Index: AQHVtDLOZFMpESyNbk2dPzSFoITzOA== Date: Mon, 16 Dec 2019 17:03:59 +0000 Message-ID: <20191216170302.29543-51-Jerome.Pouiller@silabs.com> References: <20191216170302.29543-1-Jerome.Pouiller@silabs.com> In-Reply-To: <20191216170302.29543-1-Jerome.Pouiller@silabs.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Jerome.Pouiller@silabs.com; x-originating-ip: [37.71.187.125] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9e056f6e-a6d1-4640-c45e-08d7824a56d6 x-ms-traffictypediagnostic: MN2PR11MB4445: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5236; x-forefront-prvs: 02530BD3AA x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(376002)(346002)(366004)(39850400004)(396003)(136003)(189003)(199004)(110136005)(6486002)(30864003)(107886003)(36756003)(186003)(316002)(66946007)(54906003)(5660300002)(66574012)(66446008)(66556008)(85182001)(66476007)(76116006)(91956017)(64756008)(2616005)(6506007)(85202003)(2906002)(26005)(71200400001)(6512007)(4326008)(8936002)(81166006)(1076003)(478600001)(86362001)(81156014)(6666004)(8676002);DIR:OUT;SFP:1101;SCL:1;SRVR:MN2PR11MB4445;H:MN2PR11MB4063.namprd11.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: silabs.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: boO5TS5Sk/YUUNGOypIPfcIFXzgneFQ1UDkmC85+aA5GWOZjPu1XLc4EfhU+ukZdRqXTu3UX5b9mMXQBVN45QZCMQT7I8ZM+JjlmFrUHQIqHBt1oGDHLCKn+9iOLBFIHIF2N3GlebhgRTc57C2gfv0sg9DuupfW5wUBSMZZ2ocbKbTZbKMPrAQ/yayw65aKLvvO6zFCw1kuwv0TYUt78T/TGdw387j87wcNHzoo/ie5btoDrlYzaz+1EtCQmxTag+mKTOti704wCHMIHvC0O2cHBj7T8C4+OZ4P2272ZHUMoQkLLFiidZaKSIP0ARQQg5U6hUGB5zK6Fj/CF1RkFPKeuOyGTDJWpnB5yzsJBpIqz+VnP574anjMV3cY79A4W2xFVTBO95MNbCAvPlj5UjpK0YMgOnIaL32GuUSYjHq/zN0cyu24AJUBIGZsyqIC1 Content-Type: text/plain; charset="utf-8" Content-ID: <705BEDC513DB1E44BFB7BB31E9658520@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9e056f6e-a6d1-4640-c45e-08d7824a56d6 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Dec 2019 17:03:59.0465 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: x3jSmEfIpVgM237qXgkHe3Bz6CpxlL4211W60UbRUd8i1OCOlvbGn6iLY8c03tAeaT05o5PA+Nq9rY+F6KPnvQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4445 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPg0KDQpT Y2FuIHJlcXVlc3RzIGZyb20gbWFjODAyMTEgbXVzdCBiZSBzcGxpdHRlZCBpbiBhIGZldyBoYXJk d2FyZSByZXF1ZXN0cw0KKGl0IGlzIG5lY2Vzc2FyeSB0byBzcGxpdCBjaGFubmVscyB3aXRoIGFj dGl2ZSBzY2FuIGFuZCBjaGFubmVscyB3aXRoDQpwYXNzaXZlIHNjYW4pLiBDdXJyZW50IGNvZGUg c2NoZWR1bGVzIGEgd29ya19zdHJ1Y3QgZm9yIGVhY2ggaGFyZHdhcmUNCnJlcXVlc3QgYW5kIG9u ZSBkZWxheWVkX3dvcmsgdG8gaGFuZGxlIHNjYW4gdGltZW91dC4NCg0KSXQgaXMgZmFyIHNpbXBs ZXIgdG8gcnVuIHNlbmQgYWxsIHRoZSBoYXJkd2FyZSByZXF1ZXN0cyBzeW5jaHJvbm91c2x5DQph bmQgcmVwbGFjZSBkZWxheWVkX3dvcmsgd2l0aCBhIHNpbXBsZSB3YWl0X2Zvcl9jb21wbGV0aW9u X3RpbWVvdXQoKS4NCg0KU2lnbmVkLW9mZi1ieTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5w b3VpbGxlckBzaWxhYnMuY29tPg0KLS0tDQogZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfcnguYyB8 ICAgMiArLQ0KIGRyaXZlcnMvc3RhZ2luZy93Zngvc2Nhbi5jICAgfCAyMjUgKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L3NjYW4uaCAgIHwg IDIzICstLS0NCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L3N0YS5jICAgIHwgIDM5ICsrLS0tLQ0KIGRy aXZlcnMvc3RhZ2luZy93Zngvd2Z4LmggICAgfCAgIDQgKy0NCiA1IGZpbGVzIGNoYW5nZWQsIDgx IGluc2VydGlvbnMoKyksIDIxMiBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv c3RhZ2luZy93ZngvaGlmX3J4LmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9yeC5jDQppbmRl eCA4YTNjY2RjNjBiN2QuLjQwODk2N2E0YzQ1NyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2lu Zy93ZngvaGlmX3J4LmMNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlmX3J4LmMNCkBAIC0y MDYsNyArMjA2LDcgQEAgc3RhdGljIGludCBoaWZfc2Nhbl9jb21wbGV0ZV9pbmRpY2F0aW9uKHN0 cnVjdCB3ZnhfZGV2ICp3ZGV2LA0KIAljb25zdCBzdHJ1Y3QgaGlmX2luZF9zY2FuX2NtcGwgKmJv ZHkgPSBidWY7DQogDQogCVdBUk5fT04oIXd2aWYpOw0KLQl3Znhfc2Nhbl9jb21wbGV0ZV9jYih3 dmlmLCBib2R5KTsNCisJd2Z4X3NjYW5fY29tcGxldGUod3ZpZiwgYm9keSk7DQogDQogCXJldHVy biAwOw0KIH0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L3NjYW4uYyBiL2RyaXZl cnMvc3RhZ2luZy93Zngvc2Nhbi5jDQppbmRleCBjODJjMDRmZjVkMDYuLmI3M2U2MWU4ZGE0NiAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy93Zngvc2Nhbi5jDQorKysgYi9kcml2ZXJzL3N0 YWdpbmcvd2Z4L3NjYW4uYw0KQEAgLTIyLDMzICsyMiw2IEBAIHN0YXRpYyB2b2lkIF9faWVlZTgw MjExX3NjYW5fY29tcGxldGVkX2NvbXBhdChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywNCiAJaWVl ZTgwMjExX3NjYW5fY29tcGxldGVkKGh3LCAmaW5mbyk7DQogfQ0KIA0KLXN0YXRpYyB2b2lkIHdm eF9zY2FuX3Jlc3RhcnRfZGVsYXllZChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZikNCi17DQotCWlmICh3 dmlmLT5kZWxheWVkX3Vuam9pbikgew0KLQkJd3ZpZi0+ZGVsYXllZF91bmpvaW4gPSBmYWxzZTsN Ci0JCWlmICghc2NoZWR1bGVfd29yaygmd3ZpZi0+dW5qb2luX3dvcmspKQ0KLQkJCXdmeF90eF91 bmxvY2sod3ZpZi0+d2Rldik7DQotCX0gZWxzZSBpZiAod3ZpZi0+ZGVsYXllZF9saW5rX2xvc3Mp IHsNCi0JCXd2aWYtPmRlbGF5ZWRfbGlua19sb3NzID0gMDsNCi0JCXdmeF9jcW1fYnNzbG9zc19z bSh3dmlmLCAxLCAwLCAwKTsNCi0JfQ0KLX0NCi0NCi1zdGF0aWMgaW50IHdmeF9zY2FuX3N0YXJ0 KHN0cnVjdCB3ZnhfdmlmICp3dmlmLA0KLQkJCSAgaW50IGNoYW5fc3RhcnRfaWR4LCBpbnQgY2hh bl9udW0pDQotew0KLQlpbnQgdG1vOw0KLQ0KLQlpZiAod3ZpZi0+c3RhdGUgPT0gV0ZYX1NUQVRF X1BSRV9TVEEpDQotCQlyZXR1cm4gLUVCVVNZOw0KLQ0KLQlhdG9taWNfc2V0KCZ3dmlmLT5zY2Fu LmluX3Byb2dyZXNzLCAxKTsNCi0NCi0JdG1vID0gaGlmX3NjYW4od3ZpZiwgd3ZpZi0+c2Nhbi5y ZXEsIGNoYW5fc3RhcnRfaWR4LCBjaGFuX251bSk7DQotCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygm d3ZpZi0+c2Nhbi50aW1lb3V0LCB0bW8pOw0KLQlyZXR1cm4gMDsNCi19DQotDQogc3RhdGljIGlu dCB1cGRhdGVfcHJvYmVfdG1wbChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwNCiAJCQkgICAgIHN0cnVj dCBjZmc4MDIxMV9zY2FuX3JlcXVlc3QgKnJlcSkNCiB7DQpAQCAtNjUsMTUzICszOCw4MSBAQCBz dGF0aWMgaW50IHVwZGF0ZV9wcm9iZV90bXBsKHN0cnVjdCB3ZnhfdmlmICp3dmlmLA0KIAlyZXR1 cm4gMDsNCiB9DQogDQotaW50IHdmeF9od19zY2FuKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LA0K LQkJICAgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwNCi0JCSAgIHN0cnVjdCBpZWVlODAyMTFf c2Nhbl9yZXF1ZXN0ICpod19yZXEpDQorc3RhdGljIGludCBzZW5kX3NjYW5fcmVxKHN0cnVjdCB3 ZnhfdmlmICp3dmlmLA0KKwkJCSBzdHJ1Y3QgY2ZnODAyMTFfc2Nhbl9yZXF1ZXN0ICpyZXEsIGlu dCBzdGFydF9pZHgpDQorew0KKwlpbnQgaSwgcmV0LCB0aW1lb3V0Ow0KKwlzdHJ1Y3QgaWVlZTgw MjExX2NoYW5uZWwgKmNoX3N0YXJ0LCAqY2hfY3VyOw0KKw0KKwlmb3IgKGkgPSBzdGFydF9pZHg7 IGkgPCByZXEtPm5fY2hhbm5lbHM7IGkrKykgew0KKwkJY2hfc3RhcnQgPSByZXEtPmNoYW5uZWxz W3N0YXJ0X2lkeF07DQorCQljaF9jdXIgPSByZXEtPmNoYW5uZWxzW2ldOw0KKwkJV0FSTihjaF9j dXItPmJhbmQgIT0gTkw4MDIxMV9CQU5EXzJHSFosICJiYW5kIG5vdCBzdXBwb3J0ZWQiKTsNCisJ CWlmIChjaF9jdXItPm1heF9wb3dlciAhPSBjaF9zdGFydC0+bWF4X3Bvd2VyKQ0KKwkJCWJyZWFr Ow0KKwkJaWYgKChjaF9jdXItPmZsYWdzIF4gY2hfc3RhcnQtPmZsYWdzKSAmIElFRUU4MDIxMV9D SEFOX05PX0lSKQ0KKwkJCWJyZWFrOw0KKwl9DQorCXdmeF90eF9sb2NrX2ZsdXNoKHd2aWYtPndk ZXYpOw0KKwlyZWluaXRfY29tcGxldGlvbigmd3ZpZi0+c2Nhbl9jb21wbGV0ZSk7DQorCXJldCA9 IGhpZl9zY2FuKHd2aWYsIHJlcSwgc3RhcnRfaWR4LCBpIC0gc3RhcnRfaWR4KTsNCisJaWYgKHJl dCA8IDApDQorCQlyZXR1cm4gcmV0Ow0KKwl0aW1lb3V0ID0gcmV0Ow0KKwlyZXQgPSB3YWl0X2Zv cl9jb21wbGV0aW9uX3RpbWVvdXQoJnd2aWYtPnNjYW5fY29tcGxldGUsIHRpbWVvdXQpOw0KKwlp ZiAocmVxLT5jaGFubmVsc1tzdGFydF9pZHhdLT5tYXhfcG93ZXIgIT0gd3ZpZi0+d2Rldi0+b3V0 cHV0X3Bvd2VyKQ0KKwkJaGlmX3NldF9vdXRwdXRfcG93ZXIod3ZpZiwgd3ZpZi0+d2Rldi0+b3V0 cHV0X3Bvd2VyICogMTApOw0KKwl3ZnhfdHhfdW5sb2NrKHd2aWYtPndkZXYpOw0KKwlpZiAoIXJl dCkgew0KKwkJZGV2X25vdGljZSh3dmlmLT53ZGV2LT5kZXYsICJzY2FuIHRpbWVvdXRcbiIpOw0K KwkJaGlmX3N0b3Bfc2Nhbih3dmlmKTsNCisJCXJldHVybiAtRVRJTUVET1VUOw0KKwl9DQorCXJl dHVybiBpIC0gc3RhcnRfaWR4Ow0KK30NCisNCitpbnQgd2Z4X2h3X3NjYW4oc3RydWN0IGllZWU4 MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsDQorCQlzdHJ1Y3QgaWVlZTgw MjExX3NjYW5fcmVxdWVzdCAqaHdfcmVxKQ0KIHsNCiAJc3RydWN0IHdmeF9kZXYgKndkZXYgPSBo dy0+cHJpdjsNCiAJc3RydWN0IHdmeF92aWYgKnd2aWYgPSAoc3RydWN0IHdmeF92aWYgKikgdmlm LT5kcnZfcHJpdjsNCi0Jc3RydWN0IGNmZzgwMjExX3NjYW5fcmVxdWVzdCAqcmVxID0gJmh3X3Jl cS0+cmVxOw0KLQlpbnQgaSwgcmV0Ow0KKwlpbnQgY2hhbl9jdXIsIHJldDsNCiANCi0JaWYgKCF3 dmlmKQ0KLQkJcmV0dXJuIC1FSU5WQUw7DQorCVdBUk5fT04oaHdfcmVxLT5yZXEubl9jaGFubmVs cyA+IEhJRl9BUElfTUFYX05CX0NIQU5ORUxTKTsNCiANCi0JaWYgKHd2aWYtPnN0YXRlID09IFdG WF9TVEFURV9BUCkNCisJaWYgKHZpZi0+dHlwZSA9PSBOTDgwMjExX0lGVFlQRV9BUCkNCiAJCXJl dHVybiAtRU9QTk9UU1VQUDsNCiANCi0JaWYgKHJlcS0+bl9zc2lkcyA9PSAxICYmICFyZXEtPnNz aWRzWzBdLnNzaWRfbGVuKQ0KLQkJcmVxLT5uX3NzaWRzID0gMDsNCi0NCi0JaWYgKHJlcS0+bl9z c2lkcyA+IEhJRl9BUElfTUFYX05CX1NTSURTKQ0KLQkJcmV0dXJuIC1FSU5WQUw7DQorCWlmICh3 dmlmLT5zdGF0ZSA9PSBXRlhfU1RBVEVfUFJFX1NUQSkNCisJCXJldHVybiAtRUJVU1k7DQogDQor CW11dGV4X2xvY2soJnd2aWYtPnNjYW5fbG9jayk7DQogCW11dGV4X2xvY2soJndkZXYtPmNvbmZf bXV0ZXgpOw0KLQ0KLQlyZXQgPSB1cGRhdGVfcHJvYmVfdG1wbCh3dmlmLCByZXEpOw0KLQlpZiAo cmV0KQ0KLQkJZ290byBmYWlsZWQ7DQotDQotCXJldCA9IHdmeF9md2RfcHJvYmVfcmVxKHd2aWYs IHRydWUpOw0KLQlpZiAocmV0KQ0KLQkJZ290byBmYWlsZWQ7DQotDQotCXdmeF90eF9sb2NrX2Zs dXNoKHdkZXYpOw0KLQ0KLQlXQVJOKHd2aWYtPnNjYW4ucmVxLCAidW5leHBlY3RlZCBjb25jdXJy ZW50IHNjYW4iKTsNCi0Jd3ZpZi0+c2Nhbi5yZXEgPSByZXE7DQotCXd2aWYtPnNjYW4ubl9zc2lk cyA9IDA7DQotCXd2aWYtPnNjYW4uc3RhdHVzID0gMDsNCi0Jd3ZpZi0+c2Nhbi5iZWdpbiA9ICZy ZXEtPmNoYW5uZWxzWzBdOw0KLQl3dmlmLT5zY2FuLmN1cnIgPSB3dmlmLT5zY2FuLmJlZ2luOw0K LQl3dmlmLT5zY2FuLmVuZCA9ICZyZXEtPmNoYW5uZWxzW3JlcS0+bl9jaGFubmVsc107DQotCXd2 aWYtPnNjYW4ub3V0cHV0X3Bvd2VyID0gd2Rldi0+b3V0cHV0X3Bvd2VyOw0KLQ0KLQlmb3IgKGkg PSAwOyBpIDwgcmVxLT5uX3NzaWRzOyArK2kpIHsNCi0JCXN0cnVjdCBoaWZfc3NpZF9kZWYgKmRz dCA9ICZ3dmlmLT5zY2FuLnNzaWRzW3d2aWYtPnNjYW4ubl9zc2lkc107DQotDQotCQltZW1jcHko JmRzdC0+c3NpZFswXSwgcmVxLT5zc2lkc1tpXS5zc2lkLCBzaXplb2YoZHN0LT5zc2lkKSk7DQot CQlkc3QtPnNzaWRfbGVuZ3RoID0gcmVxLT5zc2lkc1tpXS5zc2lkX2xlbjsNCi0JCSsrd3ZpZi0+ c2Nhbi5uX3NzaWRzOw0KLQl9DQotCXNjaGVkdWxlX3dvcmsoJnd2aWYtPnNjYW4ud29yayk7DQot DQotZmFpbGVkOg0KKwl1cGRhdGVfcHJvYmVfdG1wbCh3dmlmLCAmaHdfcmVxLT5yZXEpOw0KKwl3 ZnhfZndkX3Byb2JlX3JlcSh3dmlmLCB0cnVlKTsNCisJY2hhbl9jdXIgPSAwOw0KKwlkbyB7DQor CQlyZXQgPSBzZW5kX3NjYW5fcmVxKHd2aWYsICZod19yZXEtPnJlcSwgY2hhbl9jdXIpOw0KKwkJ aWYgKHJldCA+IDApDQorCQkJY2hhbl9jdXIgKz0gcmV0Ow0KKwl9IHdoaWxlIChyZXQgPiAwICYm IGNoYW5fY3VyIDwgaHdfcmVxLT5yZXEubl9jaGFubmVscyk7DQorCV9faWVlZTgwMjExX3NjYW5f Y29tcGxldGVkX2NvbXBhdChodywgcmV0IDwgMCk7DQogCW11dGV4X3VubG9jaygmd2Rldi0+Y29u Zl9tdXRleCk7DQotCXJldHVybiByZXQ7DQotfQ0KLQ0KLXZvaWQgd2Z4X3NjYW5fd29yayhzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQotew0KLQlzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiA9IGNvbnRh aW5lcl9vZih3b3JrLCBzdHJ1Y3Qgd2Z4X3ZpZiwgc2Nhbi53b3JrKTsNCi0Jc3RydWN0IGllZWU4 MDIxMV9jaGFubmVsICoqaXQ7DQotCXN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqZmlyc3Q7DQot CWludCBpOw0KLQ0KLQlkb3duKCZ3dmlmLT5zY2FuLmxvY2spOw0KLQltdXRleF9sb2NrKCZ3dmlm LT53ZGV2LT5jb25mX211dGV4KTsNCi0NCi0NCi0JaWYgKCF3dmlmLT5zY2FuLnJlcSB8fCB3dmlm LT5zY2FuLmN1cnIgPT0gd3ZpZi0+c2Nhbi5lbmQpIHsNCi0JCWlmICh3dmlmLT5zY2FuLm91dHB1 dF9wb3dlciAhPSB3dmlmLT53ZGV2LT5vdXRwdXRfcG93ZXIpDQotCQkJaGlmX3NldF9vdXRwdXRf cG93ZXIod3ZpZiwNCi0JCQkJCSAgICAgd3ZpZi0+d2Rldi0+b3V0cHV0X3Bvd2VyICogMTApOw0K LQ0KLQkJaWYgKHd2aWYtPnNjYW4uc3RhdHVzIDwgMCkNCi0JCQlkZXZfd2Fybih3dmlmLT53ZGV2 LT5kZXYsICJzY2FuIGZhaWxlZFxuIik7DQotCQllbHNlIGlmICh3dmlmLT5zY2FuLnJlcSkNCi0J CQlkZXZfZGJnKHd2aWYtPndkZXYtPmRldiwgInNjYW4gY29tcGxldGVkXG4iKTsNCi0JCWVsc2UN Ci0JCQlkZXZfZGJnKHd2aWYtPndkZXYtPmRldiwgInNjYW4gY2FuY2VsZWRcbiIpOw0KLQ0KLQkJ d3ZpZi0+c2Nhbi5yZXEgPSBOVUxMOw0KLQkJd2Z4X3NjYW5fcmVzdGFydF9kZWxheWVkKHd2aWYp Ow0KLQkJd2Z4X3R4X3VubG9jayh3dmlmLT53ZGV2KTsNCi0JCW11dGV4X3VubG9jaygmd3ZpZi0+ d2Rldi0+Y29uZl9tdXRleCk7DQotCQlfX2llZWU4MDIxMV9zY2FuX2NvbXBsZXRlZF9jb21wYXQo d3ZpZi0+d2Rldi0+aHcsDQotCQkJCQkJICB3dmlmLT5zY2FuLnN0YXR1cyA/IDEgOiAwKTsNCi0J CXVwKCZ3dmlmLT5zY2FuLmxvY2spOw0KLQkJcmV0dXJuOw0KLQl9DQotCWZpcnN0ID0gKnd2aWYt PnNjYW4uY3VycjsNCi0NCi0JZm9yIChpdCA9IHd2aWYtPnNjYW4uY3VyciArIDEsIGkgPSAxOw0K LQkgICAgIGl0ICE9IHd2aWYtPnNjYW4uZW5kICYmIGkgPCBISUZfQVBJX01BWF9OQl9DSEFOTkVM UzsNCi0JICAgICArK2l0LCArK2kpIHsNCi0JCWlmICgoKml0KS0+YmFuZCAhPSBmaXJzdC0+YmFu ZCkNCi0JCQlicmVhazsNCi0JCWlmICgoKCppdCktPmZsYWdzIF4gZmlyc3QtPmZsYWdzKSAmDQot CQkJCUlFRUU4MDIxMV9DSEFOX05PX0lSKQ0KLQkJCWJyZWFrOw0KLQkJaWYgKCEoZmlyc3QtPmZs YWdzICYgSUVFRTgwMjExX0NIQU5fTk9fSVIpICYmDQotCQkgICAgKCppdCktPm1heF9wb3dlciAh PSBmaXJzdC0+bWF4X3Bvd2VyKQ0KLQkJCWJyZWFrOw0KLQl9DQotCWlmICghKGZpcnN0LT5mbGFn cyAmIElFRUU4MDIxMV9DSEFOX05PX0lSKSAmJg0KLQkgICAgd3ZpZi0+c2Nhbi5vdXRwdXRfcG93 ZXIgIT0gZmlyc3QtPm1heF9wb3dlcikgew0KLQkJd3ZpZi0+c2Nhbi5vdXRwdXRfcG93ZXIgPSBm aXJzdC0+bWF4X3Bvd2VyOw0KLQkJaGlmX3NldF9vdXRwdXRfcG93ZXIod3ZpZiwgd3ZpZi0+c2Nh bi5vdXRwdXRfcG93ZXIgKiAxMCk7DQorCW11dGV4X3VubG9jaygmd3ZpZi0+c2Nhbl9sb2NrKTsN CisJaWYgKHd2aWYtPmRlbGF5ZWRfdW5qb2luKSB7DQorCQl3dmlmLT5kZWxheWVkX3Vuam9pbiA9 IGZhbHNlOw0KKwkJd2Z4X3R4X2xvY2sod2Rldik7DQorCQlpZiAoIXNjaGVkdWxlX3dvcmsoJnd2 aWYtPnVuam9pbl93b3JrKSkNCisJCQl3ZnhfdHhfdW5sb2NrKHdkZXYpOw0KKwl9IGVsc2UgaWYg KHd2aWYtPmRlbGF5ZWRfbGlua19sb3NzKSB7DQorCQl3dmlmLT5kZWxheWVkX2xpbmtfbG9zcyA9 IGZhbHNlOw0KKwkJd2Z4X2NxbV9ic3Nsb3NzX3NtKHd2aWYsIDEsIDAsIDApOw0KIAl9DQotCXd2 aWYtPnNjYW4uc3RhdHVzID0gd2Z4X3NjYW5fc3RhcnQod3ZpZiwNCi0JCQkJCSAgIHd2aWYtPnNj YW4uY3VyciAtIHd2aWYtPnNjYW4uYmVnaW4sDQotCQkJCQkgICBpdCAtIHd2aWYtPnNjYW4uY3Vy cik7DQotCWlmICh3dmlmLT5zY2FuLnN0YXR1cykNCi0JCWdvdG8gZmFpbDsNCi0Jd3ZpZi0+c2Nh bi5jdXJyID0gaXQ7DQotCW11dGV4X3VubG9jaygmd3ZpZi0+d2Rldi0+Y29uZl9tdXRleCk7DQot CXJldHVybjsNCi0NCi1mYWlsOg0KLQl3dmlmLT5zY2FuLmN1cnIgPSB3dmlmLT5zY2FuLmVuZDsN Ci0JbXV0ZXhfdW5sb2NrKCZ3dmlmLT53ZGV2LT5jb25mX211dGV4KTsNCi0JdXAoJnd2aWYtPnNj YW4ubG9jayk7DQotCXNjaGVkdWxlX3dvcmsoJnd2aWYtPnNjYW4ud29yayk7DQorCXJldHVybiAw Ow0KIH0NCiANCi12b2lkIHdmeF9zY2FuX2NvbXBsZXRlX2NiKHN0cnVjdCB3ZnhfdmlmICp3dmlm LA0KLQkJCSAgY29uc3Qgc3RydWN0IGhpZl9pbmRfc2Nhbl9jbXBsICphcmcpDQordm9pZCB3Znhf c2Nhbl9jb21wbGV0ZShzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwNCisJCSAgICAgICBjb25zdCBzdHJ1 Y3QgaGlmX2luZF9zY2FuX2NtcGwgKmFyZykNCiB7DQotCWlmIChjYW5jZWxfZGVsYXllZF93b3Jr X3N5bmMoJnd2aWYtPnNjYW4udGltZW91dCkgPiAwKSB7DQotCQl3dmlmLT5zY2FuLnN0YXR1cyA9 IDE7DQotCQlzY2hlZHVsZV93b3JrKCZ3dmlmLT5zY2FuLnRpbWVvdXQud29yayk7DQotCX0NCi19 DQotDQotdm9pZCB3Znhfc2Nhbl90aW1lb3V0KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCi17 DQotCXN0cnVjdCB3ZnhfdmlmICp3dmlmID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCB3Znhf dmlmLA0KLQkJCQkJICAgIHNjYW4udGltZW91dC53b3JrKTsNCi0NCi0JaWYgKGF0b21pY194Y2hn KCZ3dmlmLT5zY2FuLmluX3Byb2dyZXNzLCAwKSkgew0KLQkJaWYgKHd2aWYtPnNjYW4uc3RhdHVz ID4gMCkgew0KLQkJCXd2aWYtPnNjYW4uc3RhdHVzID0gMDsNCi0JCX0gZWxzZSBpZiAoIXd2aWYt PnNjYW4uc3RhdHVzKSB7DQotCQkJZGV2X3dhcm4od3ZpZi0+d2Rldi0+ZGV2LCAidGltZW91dCB3 YWl0aW5nIGZvciBzY2FuIGNvbXBsZXRlIG5vdGlmaWNhdGlvblxuIik7DQotCQkJd3ZpZi0+c2Nh bi5zdGF0dXMgPSAtRVRJTUVET1VUOw0KLQkJCXd2aWYtPnNjYW4uY3VyciA9IHd2aWYtPnNjYW4u ZW5kOw0KLQkJCWhpZl9zdG9wX3NjYW4od3ZpZik7DQotCQl9DQotCQl1cCgmd3ZpZi0+c2Nhbi5s b2NrKTsNCi0JCXdmeF9zY2FuX3dvcmsoJnd2aWYtPnNjYW4ud29yayk7DQotCX0NCisJY29tcGxl dGUoJnd2aWYtPnNjYW5fY29tcGxldGUpOw0KIH0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdp bmcvd2Z4L3NjYW4uaCBiL2RyaXZlcnMvc3RhZ2luZy93Zngvc2Nhbi5oDQppbmRleCBlNzFlNWYw ZjUyMmUuLjAzYmM2YzdlNTYyZCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy93Zngvc2Nh bi5oDQorKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L3NjYW4uaA0KQEAgLTgsOCArOCw2IEBADQog I2lmbmRlZiBXRlhfU0NBTl9IDQogI2RlZmluZSBXRlhfU0NBTl9IDQogDQotI2luY2x1ZGUgPGxp bnV4L3NlbWFwaG9yZS5oPg0KLSNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4NCiAjaW5jbHVk ZSA8bmV0L21hYzgwMjExLmg+DQogDQogI2luY2x1ZGUgImhpZl9hcGlfY21kLmgiDQpAQCAtMTcs MjYgKzE1LDkgQEANCiBzdHJ1Y3Qgd2Z4X2RldjsNCiBzdHJ1Y3Qgd2Z4X3ZpZjsNCiANCi1zdHJ1 Y3Qgd2Z4X3NjYW4gew0KLQlzdHJ1Y3Qgc2VtYXBob3JlIGxvY2s7DQotCXN0cnVjdCB3b3JrX3N0 cnVjdCB3b3JrOw0KLQlzdHJ1Y3QgZGVsYXllZF93b3JrIHRpbWVvdXQ7DQotCXN0cnVjdCBjZmc4 MDIxMV9zY2FuX3JlcXVlc3QgKnJlcTsNCi0Jc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICoqYmVn aW47DQotCXN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqKmN1cnI7DQotCXN0cnVjdCBpZWVlODAy MTFfY2hhbm5lbCAqKmVuZDsNCi0Jc3RydWN0IGhpZl9zc2lkX2RlZiBzc2lkc1tISUZfQVBJX01B WF9OQl9TU0lEU107DQotCWludCBvdXRwdXRfcG93ZXI7DQotCWludCBuX3NzaWRzOw0KLQlpbnQg c3RhdHVzOw0KLQlhdG9taWNfdCBpbl9wcm9ncmVzczsNCi19Ow0KLQ0KIGludCB3ZnhfaHdfc2Nh bihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwNCiAJ CXN0cnVjdCBpZWVlODAyMTFfc2Nhbl9yZXF1ZXN0ICpyZXEpOw0KLXZvaWQgd2Z4X3NjYW5fd29y ayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOw0KLXZvaWQgd2Z4X3NjYW5fdGltZW91dChzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspOw0KLXZvaWQgd2Z4X3NjYW5fY29tcGxldGVfY2Ioc3RydWN0 IHdmeF92aWYgKnd2aWYsDQotCQkJICBjb25zdCBzdHJ1Y3QgaGlmX2luZF9zY2FuX2NtcGwgKmFy Zyk7DQordm9pZCB3Znhfc2Nhbl9jb21wbGV0ZShzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwNCisJCSAg ICAgICBjb25zdCBzdHJ1Y3QgaGlmX2luZF9zY2FuX2NtcGwgKmluZCk7DQogDQogI2VuZGlmIC8q IFdGWF9TQ0FOX0ggKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L3N0YS5jIGIv ZHJpdmVycy9zdGFnaW5nL3dmeC9zdGEuYw0KaW5kZXggYmEzZTgxZmQ0NzdiLi4xNmY1ZGI4NzMy NzUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L3N0YS5jDQorKysgYi9kcml2ZXJz L3N0YWdpbmcvd2Z4L3N0YS5jDQpAQCAtMjc3LDEzICsyNzcsMTMgQEAgdm9pZCB3ZnhfY29uZmln dXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywNCiAJKnRvdGFsX2ZsYWdzICY9IEZJ Rl9PVEhFUl9CU1MgfCBGSUZfRkNTRkFJTCB8IEZJRl9QUk9CRV9SRVE7DQogDQogCXdoaWxlICgo d3ZpZiA9IHd2aWZfaXRlcmF0ZSh3ZGV2LCB3dmlmKSkgIT0gTlVMTCkgew0KLQkJZG93bigmd3Zp Zi0+c2Nhbi5sb2NrKTsNCisJCW11dGV4X2xvY2soJnd2aWYtPnNjYW5fbG9jayk7DQogCQl3dmlm LT5maWx0ZXJfYnNzaWQgPSAoKnRvdGFsX2ZsYWdzICYNCiAJCQkJICAgICAgKEZJRl9PVEhFUl9C U1MgfCBGSUZfUFJPQkVfUkVRKSkgPyAwIDogMTsNCiAJCXd2aWYtPmRpc2FibGVfYmVhY29uX2Zp bHRlciA9ICEoKnRvdGFsX2ZsYWdzICYgRklGX1BST0JFX1JFUSk7DQogCQl3ZnhfZndkX3Byb2Jl X3JlcSh3dmlmLCB0cnVlKTsNCiAJCXdmeF91cGRhdGVfZmlsdGVyaW5nKHd2aWYpOw0KLQkJdXAo Jnd2aWYtPnNjYW4ubG9jayk7DQorCQltdXRleF91bmxvY2soJnd2aWYtPnNjYW5fbG9jayk7DQog CX0NCiB9DQogDQpAQCAtNDMzLDkgKzQzMyw5IEBAIHN0YXRpYyB2b2lkIHdmeF9ldmVudF9oYW5k bGVyX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0KIAkJc3dpdGNoIChldmVudC0+ZXZ0 LmV2ZW50X2lkKSB7DQogCQljYXNlIEhJRl9FVkVOVF9JTkRfQlNTTE9TVDoNCiAJCQljYW5jZWxf d29ya19zeW5jKCZ3dmlmLT51bmpvaW5fd29yayk7DQotCQkJaWYgKCFkb3duX3RyeWxvY2soJnd2 aWYtPnNjYW4ubG9jaykpIHsNCisJCQlpZiAobXV0ZXhfdHJ5bG9jaygmd3ZpZi0+c2Nhbl9sb2Nr KSkgew0KIAkJCQl3ZnhfY3FtX2Jzc2xvc3Nfc20od3ZpZiwgMSwgMCwgMCk7DQotCQkJCXVwKCZ3 dmlmLT5zY2FuLmxvY2spOw0KKwkJCQltdXRleF91bmxvY2soJnd2aWYtPnNjYW5fbG9jayk7DQog CQkJfSBlbHNlIHsNCiAJCQkJLyogU2NhbiBpcyBpbiBwcm9ncmVzcy4gRGVsYXkgcmVwb3J0aW5n Lg0KIAkJCQkgKiBTY2FuIGNvbXBsZXRlIHdpbGwgdHJpZ2dlciBic3NfbG9zc193b3JrDQpAQCAt NTAxLDcgKzUwMSw3IEBAIHN0YXRpYyB2b2lkIHdmeF9kb191bmpvaW4oc3RydWN0IHdmeF92aWYg Knd2aWYpDQogew0KIAltdXRleF9sb2NrKCZ3dmlmLT53ZGV2LT5jb25mX211dGV4KTsNCiANCi0J aWYgKGF0b21pY19yZWFkKCZ3dmlmLT5zY2FuLmluX3Byb2dyZXNzKSkgew0KKwlpZiAoIW11dGV4 X3RyeWxvY2soJnd2aWYtPnNjYW5fbG9jaykpIHsNCiAJCWlmICh3dmlmLT5kZWxheWVkX3Vuam9p bikNCiAJCQlkZXZfZGJnKHd2aWYtPndkZXYtPmRldiwNCiAJCQkJImRlbGF5ZWQgdW5qb2luIGlz IGFscmVhZHkgc2NoZWR1bGVkXG4iKTsNCkBAIC01MDksNiArNTA5LDcgQEAgc3RhdGljIHZvaWQg d2Z4X2RvX3Vuam9pbihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZikNCiAJCQl3dmlmLT5kZWxheWVkX3Vu am9pbiA9IHRydWU7DQogCQlnb3RvIGRvbmU7DQogCX0NCisJbXV0ZXhfdW5sb2NrKCZ3dmlmLT5z Y2FuX2xvY2spOw0KIA0KIAl3dmlmLT5kZWxheWVkX2xpbmtfbG9zcyA9IGZhbHNlOw0KIA0KQEAg LTYxMywxNCArNjE0LDYgQEAgc3RhdGljIHZvaWQgd2Z4X2RvX2pvaW4oc3RydWN0IHdmeF92aWYg Knd2aWYpDQogDQogCW11dGV4X2xvY2soJnd2aWYtPndkZXYtPmNvbmZfbXV0ZXgpOw0KIA0KLQkv KiBVbmRlciB0aGUgY29uZiBsb2NrOiBjaGVjayBzY2FuIHN0YXR1cyBhbmQNCi0JICogYmFpbCBv dXQgaWYgaXQgaXMgaW4gcHJvZ3Jlc3MuDQotCSAqLw0KLQlpZiAoYXRvbWljX3JlYWQoJnd2aWYt PnNjYW4uaW5fcHJvZ3Jlc3MpKSB7DQotCQl3ZnhfdHhfdW5sb2NrKHd2aWYtPndkZXYpOw0KLQkJ Z290byBkb25lX3B1dDsNCi0JfQ0KLQ0KIAkvKiBTYW5pdHkgY2hlY2sgYmFzaWMgcmF0ZXMgKi8N CiAJaWYgKCFqb2luLmJhc2ljX3JhdGVfc2V0KQ0KIAkJam9pbi5iYXNpY19yYXRlX3NldCA9IDc7 DQpAQCAtNjg0LDcgKzY3Nyw2IEBAIHN0YXRpYyB2b2lkIHdmeF9kb19qb2luKHN0cnVjdCB3Znhf dmlmICp3dmlmKQ0KIAl9DQogCXdmeF91cGRhdGVfZmlsdGVyaW5nKHd2aWYpOw0KIA0KLWRvbmVf cHV0Og0KIAltdXRleF91bmxvY2soJnd2aWYtPndkZXYtPmNvbmZfbXV0ZXgpOw0KIAlpZiAoYnNz KQ0KIAkJY2ZnODAyMTFfcHV0X2Jzcyh3dmlmLT53ZGV2LT5ody0+d2lwaHksIGJzcyk7DQpAQCAt MTM0Niw3ICsxMzM4LDcgQEAgaW50IHdmeF9jb25maWcoc3RydWN0IGllZWU4MDIxMV9odyAqaHcs IHUzMiBjaGFuZ2VkKQ0KIAkJcmV0dXJuIDA7DQogCX0NCiANCi0JZG93bigmd3ZpZi0+c2Nhbi5s b2NrKTsNCisJbXV0ZXhfbG9jaygmd3ZpZi0+c2Nhbl9sb2NrKTsNCiAJbXV0ZXhfbG9jaygmd2Rl di0+Y29uZl9tdXRleCk7DQogCWlmIChjaGFuZ2VkICYgSUVFRTgwMjExX0NPTkZfQ0hBTkdFX1BP V0VSKSB7DQogCQl3ZGV2LT5vdXRwdXRfcG93ZXIgPSBjb25mLT5wb3dlcl9sZXZlbDsNCkBAIC0x MzYxLDcgKzEzNTMsNyBAQCBpbnQgd2Z4X2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywg dTMyIGNoYW5nZWQpDQogCX0NCiANCiAJbXV0ZXhfdW5sb2NrKCZ3ZGV2LT5jb25mX211dGV4KTsN Ci0JdXAoJnd2aWYtPnNjYW4ubG9jayk7DQorCW11dGV4X3VubG9jaygmd3ZpZi0+c2Nhbl9sb2Nr KTsNCiAJcmV0dXJuIHJldDsNCiB9DQogDQpAQCAtMTQxOSwxMCArMTQxMSw2IEBAIGludCB3Znhf YWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92 aWYgKnZpZikNCiAJd3ZpZi0+d2VwX2RlZmF1bHRfa2V5X2lkID0gLTE7DQogCUlOSVRfV09SSygm d3ZpZi0+d2VwX2tleV93b3JrLCB3Znhfd2VwX2tleV93b3JrKTsNCiANCi0Jc2VtYV9pbml0KCZ3 dmlmLT5zY2FuLmxvY2ssIDEpOw0KLQlJTklUX1dPUksoJnd2aWYtPnNjYW4ud29yaywgd2Z4X3Nj YW5fd29yayk7DQotCUlOSVRfREVMQVlFRF9XT1JLKCZ3dmlmLT5zY2FuLnRpbWVvdXQsIHdmeF9z Y2FuX3RpbWVvdXQpOw0KLQ0KIAlzcGluX2xvY2tfaW5pdCgmd3ZpZi0+ZXZlbnRfcXVldWVfbG9j ayk7DQogCUlOSVRfTElTVF9IRUFEKCZ3dmlmLT5ldmVudF9xdWV1ZSk7DQogCUlOSVRfV09SSygm d3ZpZi0+ZXZlbnRfaGFuZGxlcl93b3JrLCB3ZnhfZXZlbnRfaGFuZGxlcl93b3JrKTsNCkBAIC0x NDM1LDggKzE0MjMsMTEgQEAgaW50IHdmeF9hZGRfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFf aHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKQ0KIAlJTklUX1dPUksoJnd2aWYtPmJz c19wYXJhbXNfd29yaywgd2Z4X2Jzc19wYXJhbXNfd29yayk7DQogCUlOSVRfV09SSygmd3ZpZi0+ c2V0X2N0c193b3JrLCB3Znhfc2V0X2N0c193b3JrKTsNCiAJSU5JVF9XT1JLKCZ3dmlmLT51bmpv aW5fd29yaywgd2Z4X3Vuam9pbl93b3JrKTsNCi0NCiAJSU5JVF9XT1JLKCZ3dmlmLT50eF9wb2xp Y3lfdXBsb2FkX3dvcmssIHdmeF90eF9wb2xpY3lfdXBsb2FkX3dvcmspOw0KKw0KKwltdXRleF9p bml0KCZ3dmlmLT5zY2FuX2xvY2spOw0KKwlpbml0X2NvbXBsZXRpb24oJnd2aWYtPnNjYW5fY29t cGxldGUpOw0KKw0KIAltdXRleF91bmxvY2soJndkZXYtPmNvbmZfbXV0ZXgpOw0KIA0KIAloaWZf c2V0X21hY2FkZHIod3ZpZiwgdmlmLT5hZGRyKTsNCkBAIC0xNDYyLDEwICsxNDUzLDYgQEAgdm9p ZCB3ZnhfcmVtb3ZlX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywNCiAJc3RydWN0 IHdmeF92aWYgKnd2aWYgPSAoc3RydWN0IHdmeF92aWYgKikgdmlmLT5kcnZfcHJpdjsNCiAJaW50 IGk7DQogDQotCS8vIElmIHNjYW4gaXMgaW4gcHJvZ3Jlc3MsIHN0b3AgaXQNCi0Jd2hpbGUgKGRv d25fdHJ5bG9jaygmd3ZpZi0+c2Nhbi5sb2NrKSkNCi0JCXNjaGVkdWxlKCk7DQotCXVwKCZ3dmlm LT5zY2FuLmxvY2spOw0KIAl3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJnd2aWYtPnNldF9w bV9tb2RlX2NvbXBsZXRlLCBtc2Vjc190b19qaWZmaWVzKDMwMCkpOw0KIA0KIAltdXRleF9sb2Nr KCZ3ZGV2LT5jb25mX211dGV4KTsNCkBAIC0xNTA1LDggKzE0OTIsNiBAQCB2b2lkIHdmeF9yZW1v dmVfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LA0KIAkvKiBGSVhNRTogSW4gYWRk IHRvIHJlc2V0IE1BQyBhZGRyZXNzLCB0cnkgdG8gcmVzZXQgaW50ZXJmYWNlICovDQogCWhpZl9z ZXRfbWFjYWRkcih3dmlmLCBOVUxMKTsNCiANCi0JY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZ3 dmlmLT5zY2FuLnRpbWVvdXQpOw0KLQ0KIAl3ZnhfY3FtX2Jzc2xvc3Nfc20od3ZpZiwgMCwgMCwg MCk7DQogCWNhbmNlbF93b3JrX3N5bmMoJnd2aWYtPnVuam9pbl93b3JrKTsNCiAJY2FuY2VsX2Rl bGF5ZWRfd29ya19zeW5jKCZ3dmlmLT5saW5rX2lkX2djX3dvcmspOw0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvc3RhZ2luZy93Zngvd2Z4LmggYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L3dmeC5oDQppbmRl eCAzNWY1ZGRjMmVlYjMuLjMzNTZkMGNiZjdhZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2lu Zy93Zngvd2Z4LmgNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93Zngvd2Z4LmgNCkBAIC0xMjUsNyAr MTI1LDkgQEAgc3RydWN0IHdmeF92aWYgew0KIAlib29sCQkJZGVsYXllZF91bmpvaW47DQogCXN0 cnVjdCB3b3JrX3N0cnVjdAl1bmpvaW5fd29yazsNCiANCi0Jc3RydWN0IHdmeF9zY2FuCQlzY2Fu Ow0KKwkvKiBhdm9pZCBzb21lIG9wZXJhdGlvbnMgaW4gcGFyYWxsZWwgd2l0aCBzY2FuICovDQor CXN0cnVjdCBtdXRleAkJc2Nhbl9sb2NrOw0KKwlzdHJ1Y3QgY29tcGxldGlvbglzY2FuX2NvbXBs ZXRlOw0KIA0KIAlzdHJ1Y3QgY29tcGxldGlvbglzZXRfcG1fbW9kZV9jb21wbGV0ZTsNCiANCi0t IA0KMi4yMC4xDQo=