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=-9.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,USER_AGENT_GIT 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 4E05EC10F14 for ; Fri, 12 Apr 2019 08:36:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0C1E82184B for ; Fri, 12 Apr 2019 08:36:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="eu53ifXi" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726926AbfDLIgQ (ORCPT ); Fri, 12 Apr 2019 04:36:16 -0400 Received: from mail-eopbgr80053.outbound.protection.outlook.com ([40.107.8.53]:4153 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726875AbfDLIgP (ORCPT ); Fri, 12 Apr 2019 04:36:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gp9YtnB4iUaVXUZLhRjAvu+m7Z2jChTox4X626rKerQ=; b=eu53ifXisaS6+MazwSJN6oKjl2KMN1dHoQmq1JVOmeTfuugFsjwkGr7bFQaDMiYhK3iIEbHWBsi2Y1kUpxET15n3CNH3GAHlaYwBuY4oAv373HMmDFJ7drrV2FJ/BRW63x+aDqMz4Aov1WZ30eJ54EGCEi3LsAMiJ8XijKmogf8= Received: from AM6PR04MB5781.eurprd04.prod.outlook.com (20.179.3.19) by AM6PR04MB5846.eurprd04.prod.outlook.com (20.179.3.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1792.18; Fri, 12 Apr 2019 08:36:06 +0000 Received: from AM6PR04MB5781.eurprd04.prod.outlook.com ([fe80::f9db:ed86:614e:460]) by AM6PR04MB5781.eurprd04.prod.outlook.com ([fe80::f9db:ed86:614e:460%4]) with mapi id 15.20.1792.009; Fri, 12 Apr 2019 08:36:06 +0000 From: "Z.q. Hou" To: "linux-pci@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "bhelgaas@google.com" , "robh+dt@kernel.org" , "mark.rutland@arm.com" , "l.subrahmanya@mobiveil.co.in" , "shawnguo@kernel.org" , Leo Li , "lorenzo.pieralisi@arm.com" , "catalin.marinas@arm.com" , "will.deacon@arm.com" CC: Mingkai Hu , "M.h. Lian" , Xiaowei Bao , "Z.q. Hou" Subject: [PATCHv5 09/20] PCI: mobiveil: Correct inbound/outbound window setup routines Thread-Topic: [PATCHv5 09/20] PCI: mobiveil: Correct inbound/outbound window setup routines Thread-Index: AQHU8QrFfxj3itSLU0yAx2so+j68jQ== Date: Fri, 12 Apr 2019 08:36:06 +0000 Message-ID: <20190412083635.33626-10-Zhiqiang.Hou@nxp.com> References: <20190412083635.33626-1-Zhiqiang.Hou@nxp.com> In-Reply-To: <20190412083635.33626-1-Zhiqiang.Hou@nxp.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: HK2PR06CA0011.apcprd06.prod.outlook.com (2603:1096:202:2e::23) To AM6PR04MB5781.eurprd04.prod.outlook.com (2603:10a6:20b:ad::19) authentication-results: spf=none (sender IP is ) smtp.mailfrom=zhiqiang.hou@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [119.31.174.73] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 92de0ac2-1796-437a-bbf9-08d6bf21e7bc x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600139)(711020)(4605104)(4618075)(2017052603328)(7193020);SRVR:AM6PR04MB5846; x-ms-traffictypediagnostic: AM6PR04MB5846: x-microsoft-antispam-prvs: x-forefront-prvs: 0005B05917 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(366004)(376002)(396003)(346002)(136003)(189003)(199004)(54534003)(486006)(478600001)(2616005)(476003)(316002)(446003)(11346002)(305945005)(7736002)(81166006)(25786009)(81156014)(256004)(14454004)(8676002)(7416002)(4326008)(186003)(50226002)(26005)(8936002)(68736007)(2906002)(53936002)(102836004)(6512007)(66066001)(86362001)(99286004)(106356001)(6116002)(3846002)(6436002)(97736004)(1076003)(6506007)(386003)(52116002)(2201001)(105586002)(6486002)(36756003)(71200400001)(110136005)(54906003)(5660300002)(2501003)(71190400001)(76176011)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:AM6PR04MB5846;H:AM6PR04MB5781.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: rDOr7VCltQ0PRoI4+XQuPlX/rrvxifIDa3HIDUR+hWb/U7it84KolGUpwZHRjWr0piHXOmDC+8E9kAgmKSsoswTBhS8bFAGHpfMHK/H1cB89+W8cBc1BFYJnszHhTqpOQPqw6Jn9gRZKQv/sUeOlQPv2z7DCFRtxgMe8Qx6KV7REwthq8IPG5/i4pMIoqQyNXDBf9aWX7V76RKG+vKTVkGDWpSJAxrFOMm9pz/LH/+GQcHRsqClVI0iz7M3gicDbCScrIAgqHMVyreki8TGvj8IiUvnmcWqD+PexbOMMuM43VT/suZ6bvEUkuxr73VNSyWzz43kASZsSz5pgmTfRYE0iQAlvhTLD/5y/w+5GrMOA5fCkgNBMPhaR8SKOoBypFAu+9MiSHLtX312nEq085T7rQDnZ2GXp0qBhbr8aDL8= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 92de0ac2-1796-437a-bbf9-08d6bf21e7bc X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Apr 2019 08:36:06.6618 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB5846 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org RnJvbTogSG91IFpoaXFpYW5nIDxaaGlxaWFuZy5Ib3VAbnhwLmNvbT4NCg0KT3V0Ym91bmQgd2lu ZG93IHJvdXRpbmU6DQogLSBSZW1vdmUgdW51c2VkIHZhciBkZWZpbml0aW9ucyBhbmQgcmVnaXN0 ZXIgcmVhZCBvcGVyYXRpb25zLg0KIC0gQWRkIHRoZSB1cHBlciAzMi1iaXQgY3B1IGFkZHJlc3Mg c2V0dXAgb2YgdGhlIHdpbmRvdy4NCiAtIEluc3RlYWQgb2YgYmxpbmRseSB3cml0ZSwgb25seSBj aGFuZ2UgdGhlIGZpZWxkcyBzcGVjaWZpZWQuDQogLSBNYXNrIHRoZSBsb3dlciBiaXRzIG9mIHdp bmRvdyBzaXplIGluIGNhc2Ugb3ZlcnJpZGUgdGhlDQogICBjb250cm9sIGJpdHMuDQogLSBDaGVj ayBpZiB0aGUgcGFzc2luZyB3aW5kb3cgbnVtYmVyIGlzIGF2YWlsYWJsZSwgaW5zdGVhZCBvZg0K ICAgdGhlIHRvdGFsIG51bWJlciBvZiB0aGUgaW5pdGlhbGl6ZWQgd2luZG93cy4NCg0KSW5ib3Vu ZCB3aW5kb3cgcm91dGluZToNCiAtIEFkZCBwYXJhbWV0ZXIgJ3U2NCBjcHVfYWRkcicgdG8gc3Bl Y2lmeSB0aGUgY3B1IGFkZHJlc3MNCiAgIG9mIHRoZSB3aW5kb3cgaW5zdGVhZCBvZiB1c2luZyAn cGNpX2FkZHInLg0KIC0gQ2hhbmdlICdpbnQgcGNpX2FkZHInIHRvICd1NjQgcGNpX2FkZHInLCBh bmQgYWRkIHNldHVwDQogICBvZiB0aGUgdXBwZXIgMzItYml0IFBDSSBhZGRyZXNzIG9mIHRoZSB3 aW5kb3cuDQogLSBNb3ZlIHRoZSBQQ0llIFBJTyBtYXN0ZXIgZW5hYmxlbWVudCB0byBtb2JpdmVp bF9ob3N0X2luaXQoKS4NCiAtIEluc3RlYWQgb2YgYmxpbmRseSB3cml0ZSwgb25seSBjaGFuZ2Ug dGhlIGZpZWxkcyBzcGVjaWZpZWQuDQogLSBNYXNrIHRoZSBsb3dlciBiaXRzIG9mIHdpbmRvdyBz aXplIGluIGNhc2Ugb3ZlcnJpZGUgdGhlDQogICBjb250cm9sIGJpdHMuDQogLSBDaGVjayBpZiB0 aGUgcGFzc2luZyB3aW5kb3cgbnVtYmVyIGlzIGF2YWlsYWJsZSwgaW5zdGVhZCBvZg0KICAgdGhl IHRvdGFsIG51bWJlciBvZiB0aGUgaW5pdGlhbGl6ZWQgd2luZG93cy4NCiAtIEFuZCBhZGQgdGhl IHN0YXRpc3RpYyBvZiBpbml0aWFsaXplZCBpbmJvdW5kIHdpbmRvd3MuDQoNCkZpeGVzOiA5YWY2 YmNiMTFlMTIgKCJQQ0k6IG1vYml2ZWlsOiBBZGQgTW9iaXZlaWwgUENJZSBIb3N0IEJyaWRnZSBJ UCBkcml2ZXIiKQ0KU2lnbmVkLW9mZi1ieTogSG91IFpoaXFpYW5nIDxaaGlxaWFuZy5Ib3VAbnhw LmNvbT4NClJldmlld2VkLWJ5OiBNaW5naHVhbiBMaWFuIDxNaW5naHVhbi5MaWFuQG54cC5jb20+ DQpSZXZpZXdlZC1ieTogU3VicmFobWFueWEgTGluZ2FwcGEgPGwuc3VicmFobWFueWFAbW9iaXZl aWwuY28uaW4+DQotLS0NClY1Og0KIC0gQ29ycmVjdGVkIGFuZCByZXRvdWNoZWQgdGhlIHN1Ympl Y3QgYW5kIGNoYW5nZWxvZy4NCg0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1tb2JpdmVp bC5jIHwgNzAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0NCiAxIGZpbGUgY2hhbmdlZCwgNDIg aW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL3BjaWUtbW9iaXZlaWwuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNp ZS1tb2JpdmVpbC5jDQppbmRleCBlODhhZmM3OTJhNWMuLjRiYTQ1ODQ3NGU0MiAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1tb2JpdmVpbC5jDQorKysgYi9kcml2ZXJz L3BjaS9jb250cm9sbGVyL3BjaWUtbW9iaXZlaWwuYw0KQEAgLTY1LDkgKzY1LDEzIEBADQogI2Rl ZmluZSBQQUJfQVhJX0FNQVBfQ1RSTCh3aW4pCQlQQUJfUkVHX0FERFIoMHgwYmEwLCB3aW4pDQog I2RlZmluZSAgV0lOX0VOQUJMRV9TSElGVAkJMA0KICNkZWZpbmUgIFdJTl9UWVBFX1NISUZUCQkJ MQ0KKyNkZWZpbmUgIFdJTl9UWVBFX01BU0sJCQkweDMNCisjZGVmaW5lICBXSU5fU0laRV9TSElG VAkJCTEwDQorI2RlZmluZSAgV0lOX1NJWkVfTUFTSwkJCTB4M2ZmZmZmDQogDQogI2RlZmluZSBQ QUJfRVhUX0FYSV9BTUFQX1NJWkUod2luKQlQQUJfRVhUX1JFR19BRERSKDB4YmFmMCwgd2luKQ0K IA0KKyNkZWZpbmUgUEFCX0VYVF9BWElfQU1BUF9BWElfV0lOKHdpbikJUEFCX0VYVF9SRUdfQURE UigweDgwYTAsIHdpbikNCiAjZGVmaW5lIFBBQl9BWElfQU1BUF9BWElfV0lOKHdpbikJUEFCX1JF R19BRERSKDB4MGJhNCwgd2luKQ0KICNkZWZpbmUgIEFYSV9XSU5ET1dfQUxJR05fTUFTSwkJMw0K IA0KQEAgLTgyLDggKzg2LDEwIEBADQogI2RlZmluZSBQQUJfUEVYX0FNQVBfQ1RSTCh3aW4pCQlQ QUJfUkVHX0FERFIoMHg0YmEwLCB3aW4pDQogI2RlZmluZSAgQU1BUF9DVFJMX0VOX1NISUZUCQkw DQogI2RlZmluZSAgQU1BUF9DVFJMX1RZUEVfU0hJRlQJCTENCisjZGVmaW5lICBBTUFQX0NUUkxf VFlQRV9NQVNLCQkzDQogDQogI2RlZmluZSBQQUJfRVhUX1BFWF9BTUFQX1NJWkVOKHdpbikJUEFC X0VYVF9SRUdfQUREUigweGJlZjAsIHdpbikNCisjZGVmaW5lIFBBQl9FWFRfUEVYX0FNQVBfQVhJ X1dJTih3aW4pCVBBQl9FWFRfUkVHX0FERFIoMHhiNGEwLCB3aW4pDQogI2RlZmluZSBQQUJfUEVY X0FNQVBfQVhJX1dJTih3aW4pCVBBQl9SRUdfQUREUigweDRiYTQsIHdpbikNCiAjZGVmaW5lIFBB Ql9QRVhfQU1BUF9QRVhfV0lOX0wod2luKQlQQUJfUkVHX0FERFIoMHg0YmE4LCB3aW4pDQogI2Rl ZmluZSBQQUJfUEVYX0FNQVBfUEVYX1dJTl9IKHdpbikJUEFCX1JFR19BRERSKDB4NGJhYywgd2lu KQ0KQEAgLTQ1NSw0OSArNDYxLDUxIEBAIHN0YXRpYyBpbnQgbW9iaXZlaWxfcGNpZV9wYXJzZV9k dChzdHJ1Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSkNCiB9DQogDQogc3RhdGljIHZvaWQgcHJvZ3Jh bV9pYl93aW5kb3dzKHN0cnVjdCBtb2JpdmVpbF9wY2llICpwY2llLCBpbnQgd2luX251bSwNCi0J CQkgICAgICAgaW50IHBjaV9hZGRyLCB1MzIgdHlwZSwgdTY0IHNpemUpDQorCQkJICAgICAgIHU2 NCBjcHVfYWRkciwgdTY0IHBjaV9hZGRyLCB1MzIgdHlwZSwgdTY0IHNpemUpDQogew0KLQlpbnQg cGlvX2N0cmxfdmFsOw0KLQlpbnQgYW1hcF9jdHJsX2R3Ow0KKwl1MzIgdmFsdWU7DQogCXU2NCBz aXplNjQgPSB+KHNpemUgLSAxKTsNCiANCi0JaWYgKChwY2llLT5pYl93aW5zX2NvbmZpZ3VyZWQg KyAxKSA+IHBjaWUtPnBwaW9fd2lucykgew0KKwlpZiAod2luX251bSA+PSBwY2llLT5wcGlvX3dp bnMpIHsNCiAJCWRldl9lcnIoJnBjaWUtPnBkZXYtPmRldiwNCiAJCQkiRVJST1I6IG1heCBpbmJv dW5kIHdpbmRvd3MgcmVhY2hlZCAhXG4iKTsNCiAJCXJldHVybjsNCiAJfQ0KIA0KLQlwaW9fY3Ry bF92YWwgPSBjc3JfcmVhZGwocGNpZSwgUEFCX1BFWF9QSU9fQ1RSTCk7DQotCXBpb19jdHJsX3Zh bCB8PSAxIDw8IFBJT19FTkFCTEVfU0hJRlQ7DQotCWNzcl93cml0ZWwocGNpZSwgcGlvX2N0cmxf dmFsLCBQQUJfUEVYX1BJT19DVFJMKTsNCi0NCi0JYW1hcF9jdHJsX2R3ID0gY3NyX3JlYWRsKHBj aWUsIFBBQl9QRVhfQU1BUF9DVFJMKHdpbl9udW0pKTsNCi0JYW1hcF9jdHJsX2R3IHw9ICh0eXBl IDw8IEFNQVBfQ1RSTF9UWVBFX1NISUZUKSB8DQotCQkJKDEgPDwgQU1BUF9DVFJMX0VOX1NISUZU KSB8DQotCQkJbG93ZXJfMzJfYml0cyhzaXplNjQpOw0KLQljc3Jfd3JpdGVsKHBjaWUsIGFtYXBf Y3RybF9kdywgUEFCX1BFWF9BTUFQX0NUUkwod2luX251bSkpOw0KKwl2YWx1ZSA9IGNzcl9yZWFk bChwY2llLCBQQUJfUEVYX0FNQVBfQ1RSTCh3aW5fbnVtKSk7DQorCXZhbHVlICY9IH4oQU1BUF9D VFJMX1RZUEVfTUFTSyA8PCBBTUFQX0NUUkxfVFlQRV9TSElGVCB8DQorCQkgV0lOX1NJWkVfTUFT SyA8PCBXSU5fU0laRV9TSElGVCk7DQorCXZhbHVlIHw9ICh0eXBlIDw8IEFNQVBfQ1RSTF9UWVBF X1NISUZUKSB8ICgxIDw8IEFNQVBfQ1RSTF9FTl9TSElGVCkgfA0KKwkJIChsb3dlcl8zMl9iaXRz KHNpemU2NCkgJiBXSU5fU0laRV9NQVNLIDw8IFdJTl9TSVpFX1NISUZUKTsNCisJY3NyX3dyaXRl bChwY2llLCB2YWx1ZSwgUEFCX1BFWF9BTUFQX0NUUkwod2luX251bSkpOw0KIA0KIAljc3Jfd3Jp dGVsKHBjaWUsIHVwcGVyXzMyX2JpdHMoc2l6ZTY0KSwNCiAJCSAgIFBBQl9FWFRfUEVYX0FNQVBf U0laRU4od2luX251bSkpOw0KIA0KLQljc3Jfd3JpdGVsKHBjaWUsIHBjaV9hZGRyLCBQQUJfUEVY X0FNQVBfQVhJX1dJTih3aW5fbnVtKSk7DQorCWNzcl93cml0ZWwocGNpZSwgbG93ZXJfMzJfYml0 cyhjcHVfYWRkciksDQorCQkgICBQQUJfUEVYX0FNQVBfQVhJX1dJTih3aW5fbnVtKSk7DQorCWNz cl93cml0ZWwocGNpZSwgdXBwZXJfMzJfYml0cyhjcHVfYWRkciksDQorCQkgICBQQUJfRVhUX1BF WF9BTUFQX0FYSV9XSU4od2luX251bSkpOw0KKw0KKwljc3Jfd3JpdGVsKHBjaWUsIGxvd2VyXzMy X2JpdHMocGNpX2FkZHIpLA0KKwkJICAgUEFCX1BFWF9BTUFQX1BFWF9XSU5fTCh3aW5fbnVtKSk7 DQorCWNzcl93cml0ZWwocGNpZSwgdXBwZXJfMzJfYml0cyhwY2lfYWRkciksDQorCQkgICBQQUJf UEVYX0FNQVBfUEVYX1dJTl9IKHdpbl9udW0pKTsNCiANCi0JY3NyX3dyaXRlbChwY2llLCBwY2lf YWRkciwgUEFCX1BFWF9BTUFQX1BFWF9XSU5fTCh3aW5fbnVtKSk7DQotCWNzcl93cml0ZWwocGNp ZSwgMCwgUEFCX1BFWF9BTUFQX1BFWF9XSU5fSCh3aW5fbnVtKSk7DQorCXBjaWUtPmliX3dpbnNf Y29uZmlndXJlZCsrOw0KIH0NCiANCiAvKg0KICAqIHJvdXRpbmUgdG8gcHJvZ3JhbSB0aGUgb3V0 Ym91bmQgd2luZG93cw0KICAqLw0KIHN0YXRpYyB2b2lkIHByb2dyYW1fb2Jfd2luZG93cyhzdHJ1 Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSwgaW50IHdpbl9udW0sDQotCQkJICAgICAgIHU2NCBjcHVf YWRkciwgdTY0IHBjaV9hZGRyLA0KLQkJCSAgICAgICB1MzIgY29uZmlnX2lvX2JpdCwgdTY0IHNp emUpDQorCQkJICAgICAgIHU2NCBjcHVfYWRkciwgdTY0IHBjaV9hZGRyLCB1MzIgdHlwZSwgdTY0 IHNpemUpDQogew0KIA0KLQl1MzIgdmFsdWUsIHR5cGU7DQorCXUzMiB2YWx1ZTsNCiAJdTY0IHNp emU2NCA9IH4oc2l6ZSAtIDEpOw0KIA0KLQlpZiAoKHBjaWUtPm9iX3dpbnNfY29uZmlndXJlZCAr IDEpID4gcGNpZS0+YXBpb193aW5zKSB7DQorCWlmICh3aW5fbnVtID49IHBjaWUtPmFwaW9fd2lu cykgew0KIAkJZGV2X2VycigmcGNpZS0+cGRldi0+ZGV2LA0KIAkJCSJFUlJPUjogbWF4IG91dGJv dW5kIHdpbmRvd3MgcmVhY2hlZCAhXG4iKTsNCiAJCXJldHVybjsNCkBAIC01MDcsMTAgKzUxNSwx MiBAQCBzdGF0aWMgdm9pZCBwcm9ncmFtX29iX3dpbmRvd3Moc3RydWN0IG1vYml2ZWlsX3BjaWUg KnBjaWUsIGludCB3aW5fbnVtLA0KIAkgKiBwcm9ncmFtIEVuYWJsZSBCaXQgdG8gMSwgVHlwZSBC aXQgdG8gKDAwKSBiYXNlIDIsIEFYSSBXaW5kb3cgU2l6ZSBCaXQNCiAJICogdG8gNCBLQiBpbiBQ QUJfQVhJX0FNQVBfQ1RSTCByZWdpc3Rlcg0KIAkgKi8NCi0JdHlwZSA9IGNvbmZpZ19pb19iaXQ7 DQogCXZhbHVlID0gY3NyX3JlYWRsKHBjaWUsIFBBQl9BWElfQU1BUF9DVFJMKHdpbl9udW0pKTsN Ci0JY3NyX3dyaXRlbChwY2llLCAxIDw8IFdJTl9FTkFCTEVfU0hJRlQgfCB0eXBlIDw8IFdJTl9U WVBFX1NISUZUIHwNCi0JCSAgIGxvd2VyXzMyX2JpdHMoc2l6ZTY0KSwgUEFCX0FYSV9BTUFQX0NU Ukwod2luX251bSkpOw0KKwl2YWx1ZSAmPSB+KFdJTl9UWVBFX01BU0sgPDwgV0lOX1RZUEVfU0hJ RlQgfA0KKwkJIFdJTl9TSVpFX01BU0sgPDwgV0lOX1NJWkVfU0hJRlQpOw0KKwl2YWx1ZSB8PSAx IDw8IFdJTl9FTkFCTEVfU0hJRlQgfCB0eXBlIDw8IFdJTl9UWVBFX1NISUZUIHwNCisJCSAobG93 ZXJfMzJfYml0cyhzaXplNjQpICYgV0lOX1NJWkVfTUFTSyA8PCBXSU5fU0laRV9TSElGVCk7DQor CWNzcl93cml0ZWwocGNpZSwgdmFsdWUsIFBBQl9BWElfQU1BUF9DVFJMKHdpbl9udW0pKTsNCiAN CiAJY3NyX3dyaXRlbChwY2llLCB1cHBlcl8zMl9iaXRzKHNpemU2NCksIFBBQl9FWFRfQVhJX0FN QVBfU0laRSh3aW5fbnVtKSk7DQogDQpAQCAtNTE4LDExICs1MjgsMTAgQEAgc3RhdGljIHZvaWQg cHJvZ3JhbV9vYl93aW5kb3dzKHN0cnVjdCBtb2JpdmVpbF9wY2llICpwY2llLCBpbnQgd2luX251 bSwNCiAJICogcHJvZ3JhbSBBWEkgd2luZG93IGJhc2Ugd2l0aCBhcHByb3ByaWF0ZSB2YWx1ZSBp bg0KIAkgKiBQQUJfQVhJX0FNQVBfQVhJX1dJTjAgcmVnaXN0ZXINCiAJICovDQotCXZhbHVlID0g Y3NyX3JlYWRsKHBjaWUsIFBBQl9BWElfQU1BUF9BWElfV0lOKHdpbl9udW0pKTsNCi0JY3NyX3dy aXRlbChwY2llLCBjcHVfYWRkciAmICh+QVhJX1dJTkRPV19BTElHTl9NQVNLKSwNCisJY3NyX3dy aXRlbChwY2llLCBsb3dlcl8zMl9iaXRzKGNwdV9hZGRyKSAmICh+QVhJX1dJTkRPV19BTElHTl9N QVNLKSwNCiAJCSAgIFBBQl9BWElfQU1BUF9BWElfV0lOKHdpbl9udW0pKTsNCi0NCi0JdmFsdWUg PSBjc3JfcmVhZGwocGNpZSwgUEFCX0FYSV9BTUFQX1BFWF9XSU5fSCh3aW5fbnVtKSk7DQorCWNz cl93cml0ZWwocGNpZSwgdXBwZXJfMzJfYml0cyhjcHVfYWRkciksDQorCQkgICBQQUJfRVhUX0FY SV9BTUFQX0FYSV9XSU4od2luX251bSkpOw0KIA0KIAljc3Jfd3JpdGVsKHBjaWUsIGxvd2VyXzMy X2JpdHMocGNpX2FkZHIpLA0KIAkJICAgUEFCX0FYSV9BTUFQX1BFWF9XSU5fTCh3aW5fbnVtKSk7 DQpAQCAtNjA0LDYgKzYxMywxMSBAQCBzdGF0aWMgaW50IG1vYml2ZWlsX2hvc3RfaW5pdChzdHJ1 Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSkNCiAJdmFsdWUgfD0gQVBJT19FTl9NQVNLOw0KIAljc3Jf d3JpdGVsKHBjaWUsIHZhbHVlLCBQQUJfQVhJX1BJT19DVFJMKTsNCiANCisJLyogRW5hYmxlIFBD SWUgUElPIG1hc3RlciAqLw0KKwl2YWx1ZSA9IGNzcl9yZWFkbChwY2llLCBQQUJfUEVYX1BJT19D VFJMKTsNCisJdmFsdWUgfD0gMSA8PCBQSU9fRU5BQkxFX1NISUZUOw0KKwljc3Jfd3JpdGVsKHBj aWUsIHZhbHVlLCBQQUJfUEVYX1BJT19DVFJMKTsNCisNCiAJLyoNCiAJICogd2UnbGwgcHJvZ3Jh bSBvbmUgb3V0Ym91bmQgd2luZG93IGZvciBjb25maWcgcmVhZHMgYW5kDQogCSAqIGFub3RoZXIg ZGVmYXVsdCBpbmJvdW5kIHdpbmRvdyBmb3IgYWxsIHRoZSB1cHN0cmVhbSB0cmFmZmljDQpAQCAt NjE2LDcgKzYzMCw3IEBAIHN0YXRpYyBpbnQgbW9iaXZlaWxfaG9zdF9pbml0KHN0cnVjdCBtb2Jp dmVpbF9wY2llICpwY2llKQ0KIAkJCSAgIENGR19XSU5ET1dfVFlQRSwgcmVzb3VyY2Vfc2l6ZShw Y2llLT5vYl9pb19yZXMpKTsNCiANCiAJLyogbWVtb3J5IGluYm91bmQgdHJhbnNsYXRpb24gd2lu ZG93ICovDQotCXByb2dyYW1faWJfd2luZG93cyhwY2llLCBXSU5fTlVNXzAsIDAsIE1FTV9XSU5E T1dfVFlQRSwgSUJfV0lOX1NJWkUpOw0KKwlwcm9ncmFtX2liX3dpbmRvd3MocGNpZSwgV0lOX05V TV8wLCAwLCAwLCBNRU1fV0lORE9XX1RZUEUsIElCX1dJTl9TSVpFKTsNCiANCiAJLyogR2V0IHRo ZSBJL08gYW5kIG1lbW9yeSByYW5nZXMgZnJvbSBEVCAqLw0KIAlyZXNvdXJjZV9saXN0X2Zvcl9l YWNoX2VudHJ5KHdpbiwgJnBjaWUtPnJlc291cmNlcykgew0KLS0gDQoyLjE3LjENCg0K