Received: by 2002:a05:7412:d8a:b0:e2:908c:2ebd with SMTP id b10csp3601119rdg; Tue, 17 Oct 2023 23:22:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFAcrlnowNQ2UKyY6jW7evFzmgVP+1CX40B9UdnpGdTvG+TuLutJM4sPejNrzMtO8HbqnO2 X-Received: by 2002:a05:6a21:338e:b0:17b:1071:36cc with SMTP id yy14-20020a056a21338e00b0017b107136ccmr3211781pzb.53.1697610155584; Tue, 17 Oct 2023 23:22:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697610155; cv=none; d=google.com; s=arc-20160816; b=AseTPP8aT0nlKL+UDT9Gx4tR5ZQXyg+Yq/n1EFOJIfKhJDTriapHA7Y7LFzmQEn26g PuyXheHmnwmxxL6PIDlkZczhQFOWe8+J70jaXE2HstyROvk6+bAfxg9+3nGulgFgunWf 6c0wdOjG6ndF680X3EJadws0kM8qXgo8/n7R94lJ99lgZmZUikNC7LMDoghRTnlmTmUi RUAkKCYDHRu/o/Y1gDNAZnzMYMW+hIBCDFHGynlc7NBIfiJiCdcGwAUrR+Rv3Ib3f+gf PGEhyY09i80s1Hxq436o+FZUNG4L5r7ToL8aoTEG3RiRwKWKTqYmMxQpGJHtGFkUz/aO LlpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from; bh=frPHnGrfD/h140nJx7MPKJ+iKiAkd7gBSS+Oprbqedc=; fh=EbVdbZDJixuW9kxGzntxE2kKar7Oub7A1VgcNRfbz0E=; b=UOwcuFx129bmBX1effV5hv+lkOX0LTbwRm7tLuxvwgyZLyvit9vK9NolRD/TVSt7s5 5TNShSsNZLEVf015/QH+2IuUE5njdwunrVb7bMTX8RfjJP8vMoa6TdLws7GAkvZ7nkna 1k77jJ2IW8gsoOE9d9FozmUBVi/FUWHLOrigqO5NvkOsxYvhG5JIz9JrALfI1LdUIzpn Ws0SocXhJDk5gnWknE8MWVariAY/cy2PyqKGTzA7p99jCX1BVsT5WYQYO+qQEKzjeZ3T agX6QV37aenQmI9JJMMOz1k+uTg9hL4hyQ9hLu5CtPU38RKsZQyd2/T/XEVw8zENwF31 fxZg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from pete.vger.email (pete.vger.email. [2620:137:e000::3:6]) by mx.google.com with ESMTPS id ip11-20020a17090b314b00b00276c28cdd4fsi933158pjb.31.2023.10.17.23.22.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Oct 2023 23:22:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) client-ip=2620:137:e000::3:6; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id A1F018097A7C; Tue, 17 Oct 2023 23:22:20 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344564AbjJRGTs (ORCPT + 99 others); Wed, 18 Oct 2023 02:19:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60786 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344554AbjJRGSz (ORCPT ); Wed, 18 Oct 2023 02:18:55 -0400 Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BCD4E10D3; Tue, 17 Oct 2023 23:18:05 -0700 (PDT) X-SpamFilter-By: ArmorX SpamTrap 5.78 with qID 39I6HoBX21129348, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexh36505.realtek.com.tw[172.21.6.25]) by rtits2.realtek.com.tw (8.15.2/2.93/5.92) with ESMTPS id 39I6HoBX21129348 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 18 Oct 2023 14:17:50 +0800 Received: from RTEXMBS06.realtek.com.tw (172.21.6.99) by RTEXH36505.realtek.com.tw (172.21.6.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.32; Wed, 18 Oct 2023 14:17:50 +0800 Received: from RTEXMBS04.realtek.com.tw (172.21.6.97) by RTEXMBS06.realtek.com.tw (172.21.6.99) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Wed, 18 Oct 2023 14:17:17 +0800 Received: from RTEXMBS04.realtek.com.tw ([fe80::40c2:6c24:2df4:e6c7]) by RTEXMBS04.realtek.com.tw ([fe80::40c2:6c24:2df4:e6c7%5]) with mapi id 15.01.2375.007; Wed, 18 Oct 2023 14:17:17 +0800 From: =?utf-8?B?SnlhbiBDaG91IFvlkajoirflrold?= To: Adrian Hunter , "ulf.hansson@linaro.org" , "jh80.chung@samsung.com" CC: "linux-mmc@vger.kernel.org" , "linux-kernel@vger.kernel.org" , =?utf-8?B?SmFtZXMgVGFpIFvmiLTlv5fls7Bd?= , Ben Chuang Subject: RE: [PATCH 2/3] [02/03] mmc: Add Synopsys DesignWare mmc cmdq host driver Thread-Topic: [PATCH 2/3] [02/03] mmc: Add Synopsys DesignWare mmc cmdq host driver Thread-Index: AQHZ4KOYYC6NHs+QFkyYuq8rJlABHbBCSJcAgA0GRKA= Date: Wed, 18 Oct 2023 06:17:17 +0000 Message-ID: <1d50d8fa62cf4bdf969c468bd4ed9776@realtek.com> References: <9617f04133ba8b6907b253c4154083f75956a341.1693991785.git.jyanchou@realtek.com> In-Reply-To: Accept-Language: zh-TW, en-US Content-Language: zh-TW x-originating-ip: [172.21.190.236] x-kse-serverinfo: RTEXMBS06.realtek.com.tw, 9 x-kse-antispam-interceptor-info: fallback x-kse-antivirus-interceptor-info: fallback Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-KSE-AntiSpam-Interceptor-Info: fallback X-KSE-ServerInfo: RTEXH36505.realtek.com.tw, 9 X-KSE-AntiSpam-Interceptor-Info: fallback X-KSE-Antivirus-Interceptor-Info: fallback X-KSE-AntiSpam-Interceptor-Info: fallback X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Tue, 17 Oct 2023 23:22:21 -0700 (PDT) SGkgQWRyaWFuLA0KDQpUaGFua3MgZm9yIHlvdXIgcmV2aWV3IGFuZCBhZHZpY2UuIA0KDQpXZSBo YWQgdXBkYXRlZCBvdXIgbmV3IHZlcnNpb24gcGF0Y2hlcyBhbmQgY29ycmVjdGVkIG91ciBjb2Rl IHRvIHlvdXIgc3VnZ2VzdGlvbnMuDQoNCmh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcHJv amVjdC9saW51eC1tbWMvcGF0Y2gvMjAyMzEwMTgwNTUzMjYuMTgyNTYtMi1qeWFuY2hvdUByZWFs dGVrLmNvbS8NCmh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcHJvamVjdC9saW51eC1tbWMv cGF0Y2gvMjAyMzEwMTgwNTUzMjYuMTgyNTYtMy1qeWFuY2hvdUByZWFsdGVrLmNvbS8NCmh0dHBz Oi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcHJvamVjdC9saW51eC1tbWMvcGF0Y2gvMjAyMzEwMTgw NTUzMjYuMTgyNTYtNC1qeWFuY2hvdUByZWFsdGVrLmNvbS8NCmh0dHBzOi8vcGF0Y2h3b3JrLmtl cm5lbC5vcmcvcHJvamVjdC9saW51eC1tbWMvcGF0Y2gvMjAyMzEwMTgwNTUzMjYuMTgyNTYtNS1q eWFuY2hvdUByZWFsdGVrLmNvbS8NCg0KDQo+PiBQbGVhc2UgcHV0IHZlcnNpb24gbnVtYmVycyBp biB0aGUgcGF0Y2ggc3ViamVjdC4NCldlIG1vZGlmaWVkIHZlcnNpb24gbnVtYmVycyB0aGlzIHRp bWUsIHRoYW5rcy4NCg0KPiBSZWdpc3RlciBkaWZmZXJlbmNlcyBjYW4gYmUgYWJzdHJhY3RlZCBh d2F5LCBmb3IgZXhhbXBsZSBieSBwcm92aWRpbmcgY2FsbGJhY2tzIGZvciByZWFkaW5nIC8gd3Jp dGluZyByZWdpc3RlcnMuDQo+IFNvIHRoaXMgc3RpbGwgbmVlZHMgbXVjaCBtb3JlIGV4cGxhbmF0 aW9uLg0KV2UgaGFkIGFkZGVkIG1vcmUgZGVzY3JpcHRpb24gdG8gZXhwbGFpbi4NCg0KPiBJdCB3 b3VsZCBiZSBwcmVmZXJhYmxlIHRvIHVzZSBhIGNhbGxiYWNrIG9ubHkgZm9yIHNldHRpbmcgdGhl IGRlc2NyaXB0b3IuDQo+IFBsZWFzZSBzZWUgY29tbWVudHMgYWJvdXQgZHdjbXNoY19jcWhjaV9z ZXRfdHJhbl9kZXNjKCkgYW5kIGR3Y21zaGNfY3FoY2lfcHJlcF90cmFuX2Rlc2MoKSBtYWRlIGhl cmU6DQo+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LW1tYy8wOTMyYjEyNC0xNmRhLTQ5 NWMtOTcwNi1iYmFkYWRiM2IwNzZAaW50ZWwuY29tLw0KV2UgRVhQT1JUIGNxaGNpX3NldF90cmFu X2Rlc2MgYW5kIHVzZWQgaXQgdG8gcmVwbGFjZSBkd19tY2lfY3FlX3NldF90cmFuX2Rlc2MsIHRo YW5rcy4NCg0KPiBUaGlzIHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5LiAgSW5zdGVhZCwgcGxlYXNl IHRyeSB0byB1c2UNCj4gLT5wcmVfZW5hYmxlKCkgYW5kIC0+cG9zdF9kaXNhYmxlKCkgbGlrZSBp biBtdGstc2QuYw0KVGhhbmtzIGZvciB5b3VyIGFkdmljZSwgd2UgaGFkIHJlbW92ZWQgdW5uZWNl c3NhcnkgY2hlY2sgY29kZSBhbmQgYWRkZWQgY3FoY2lfaG9zdF9vcHMgY2FsbGJhY2sgZnVuY3Rp b24uDQoNCkJlc3QgUmVnYXJkcywNCkp5YW4NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N CkZyb206IEFkcmlhbiBIdW50ZXIgPGFkcmlhbi5odW50ZXJAaW50ZWwuY29tPiANClNlbnQ6IFR1 ZXNkYXksIE9jdG9iZXIgMTAsIDIwMjMgMzowNCBQTQ0KVG86IEp5YW4gQ2hvdSBb5ZGo6Iq35a6J XSA8anlhbmNob3VAcmVhbHRlay5jb20+OyB1bGYuaGFuc3NvbkBsaW5hcm8ub3JnOyBqaDgwLmNo dW5nQHNhbXN1bmcuY29tDQpDYzogbGludXgtbW1jQHZnZXIua2VybmVsLm9yZzsgbGludXgta2Vy bmVsQHZnZXIua2VybmVsLm9yZzsgSmFtZXMgVGFpIFvmiLTlv5fls7BdIDxqYW1lcy50YWlAcmVh bHRlay5jb20+DQpTdWJqZWN0OiBSZTogW1BBVENIIDIvM10gWzAyLzAzXSBtbWM6IEFkZCBTeW5v cHN5cyBEZXNpZ25XYXJlIG1tYyBjbWRxIGhvc3QgZHJpdmVyDQoNCg0KRXh0ZXJuYWwgbWFpbC4N Cg0KDQoNClBsZWFzZSBwdXQgdmVyc2lvbiBudW1iZXJzIGluIHRoZSBwYXRjaCBzdWJqZWN0LiAg UmVmZXIgdG86DQoNCmh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL2h0bWwvbGF0ZXN0L3Byb2Nl c3Mvc3VibWl0dGluZy1wYXRjaGVzLmh0bWwNCg0KT24gNi8wOS8yMyAxMjoyOCwgSnlhbiBDaG91 IHdyb3RlOg0KPiBXZSBpbXBsZW1lbnRlZCBjbWRxIGZlYXR1cmUgb24gU3lub3BzeXMgRGVzaWdu V2FyZSBtbWMgZHJpdmVyLg0KPiBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGR3X21tYy5jIGFuZCBk d19tbWNfY3FlLmMgd2VyZSBkaXN0aW5jdCANCj4gcmVnaXN0ZXIgZGVmaW5pdGlvbnMgYW5kIHRo ZSBhZGRpdGlvbiBvZiBjbWRxLg0KDQpSZWdpc3RlciBkaWZmZXJlbmNlcyBjYW4gYmUgYWJzdHJh Y3RlZCBhd2F5LCBmb3IgZXhhbXBsZSBieSBwcm92aWRpbmcgY2FsbGJhY2tzIGZvciByZWFkaW5n IC8gd3JpdGluZyByZWdpc3RlcnMuDQpTbyB0aGlzIHN0aWxsIG5lZWRzIG11Y2ggbW9yZSBleHBs YW5hdGlvbi4NCg0KPg0KPiBNb3JlIG92ZXIsIHRoZSBmbG93IG9mIGFib3J0IGNvbW1hbmQgc2Vx dWVuY2UgaGFkIGNoYW5nZS4NCj4gV2UgYWRkZWQgYSB3YWl0IHN0YXR1cyBmdW5jdGlvbiB0byBz YXRpc2Z5IHN5bm9wc3lzIHVzZXIgZ3VpZGUncyANCj4gZGVzY3JpcHRpb24sIHNpbmNlIHRoaXMg ZmxvdyBtaWdodCBiZSBzcGVjaWZpYyBpbiBzeW5vcHN5cyBob3N0IGRyaXZlciANCj4gb25seS4N Cj4NCj4gU2lnbmVkLW9mZi1ieTogSnlhbiBDaG91IDxqeWFuY2hvdUByZWFsdGVrLmNvbT4NCj4N Cj4g4oCUDQo+IHYwIHRvIHYxIGNoYW5nZToNCj4gMS4gU2VwZXJhdGUgZGlmZmVyZW50IHN1cHBv cnQgaW50byBzaW5nbGUgcGF0Y2guDQo+IDIuIEZpeCB0aGUgY29tcGlsZXIgY29tcGxhaW5zLg0K PiAtLS0NCj4gIGRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZyAgICAgIHwgICAxMyArDQo+ICBkcml2 ZXJzL21tYy9ob3N0L01ha2VmaWxlICAgICB8ICAgIDEgKw0KPiAgZHJpdmVycy9tbWMvaG9zdC9k d19tbWNfY3FlLmMgfCAxNjM0IA0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysg IGRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jX2NxZS5oIHwgIA0KPiA0NDMgKysrKysrKysrDQo+ICA0 IGZpbGVzIGNoYW5nZWQsIDIwOTEgaW5zZXJ0aW9ucygrKQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jX2NxZS5jICBjcmVhdGUgbW9kZSAxMDA2NDQgDQo+IGRy aXZlcnMvbW1jL2hvc3QvZHdfbW1jX2NxZS5oDQoNCk15IGNvbW1lbnRzIHBlcnRhaW4gb25seSB0 byB0aGUgdXNlIG9mIGNxaGNpLg0KDQpbU05JUF0NCg0KPiArc3RhdGljIHZvaWQgZHdfbWNpX2Nx ZV9zZXRfdHJhbl9kZXNjKHU4ICpkZXNjLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRtYV9hZGRyX3QgYWRkciwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgbGVuLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJvb2wgZW5kLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv b2wgZG1hNjQpIHsNCj4gKyAgICAgX19sZTMyICphdHRyID0gKF9fbGUzMiBfX2ZvcmNlICopZGVz YzsNCj4gKw0KPiArICAgICAqYXR0ciA9IChDUUhDSV9WQUxJRCgxKSB8DQo+ICsgICAgICAgICAg ICAgIENRSENJX0VORChlbmQgPyAxIDogMCkgfA0KPiArICAgICAgICAgICAgICBDUUhDSV9JTlQo MCkgfA0KPiArICAgICAgICAgICAgICBDUUhDSV9BQ1QoMHg0KSB8DQo+ICsgICAgICAgICAgICAg IENRSENJX0RBVF9MRU5HVEgobGVuKSk7DQo+ICsNCj4gKyAgICAgaWYgKGRtYTY0KSB7DQo+ICsg ICAgICAgICAgICAgX19sZTY0ICpkYXRhZGRyID0gKF9fbGU2NCBfX2ZvcmNlICopKGRlc2MgKyA0 KTsNCj4gKw0KPiArICAgICAgICAgICAgIGRhdGFkZHJbMF0gPSBjcHVfdG9fbGU2NChhZGRyKTsN Cj4gKyAgICAgfSBlbHNlIHsNCj4gKyAgICAgICAgICAgICBfX2xlMzIgKmRhdGFkZHIgPSAoX19s ZTMyIF9fZm9yY2UgKikoZGVzYyArIDQpOw0KPiArDQo+ICsgICAgICAgICAgICAgZGF0YWRkclsw XSA9IGNwdV90b19sZTMyKGFkZHIpOw0KPiArICAgICB9DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2 b2lkIGR3X21jaV9jcWVfc2V0dXBfdHJhbl9kZXNjKHN0cnVjdCBtbWNfZGF0YSAqZGF0YSwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNxaGNpX2hvc3QgKmNx X2hvc3QsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU4ICpkZXNjLA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2dfY291bnQpIHsNCj4g KyAgICAgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsNCj4gKyAgICAgdTMyIGN1cl9ibGtfY250LCBy ZW1haW5fYmxrX2NudDsNCj4gKyAgICAgdW5zaWduZWQgaW50IGJlZ2luLCBlbmQ7DQo+ICsgICAg IGludCBpLCBsZW47DQo+ICsgICAgIGJvb2wgbGFzdCA9IGZhbHNlOw0KPiArICAgICBib29sIGRt YTY0ID0gY3FfaG9zdC0+ZG1hNjQ7DQo+ICsgICAgIGRtYV9hZGRyX3QgYWRkcjsNCj4gKw0KPiAr ICAgICBmb3JfZWFjaF9zZyhkYXRhLT5zZywgc2csIHNnX2NvdW50LCBpKSB7DQo+ICsgICAgICAg ICAgICAgYWRkciA9IHNnX2RtYV9hZGRyZXNzKHNnKTsNCj4gKyAgICAgICAgICAgICBsZW4gPSBz Z19kbWFfbGVuKHNnKTsNCj4gKyAgICAgICAgICAgICByZW1haW5fYmxrX2NudCAgPSBsZW4gPj4g OTsNCj4gKw0KPiArICAgICAgICAgICAgIHdoaWxlIChyZW1haW5fYmxrX2NudCkgew0KPiArICAg ICAgICAgICAgICAgICAgICAgLypEV19NQ0lfTUFYX1NDUklQVF9CTEsgaXMgdGhhIG1heCBmb3Ig ZWFjaCBkZXNjcmlwdG9yIHJlY29yZCovDQo+ICsgICAgICAgICAgICAgICAgICAgICBpZiAocmVt YWluX2Jsa19jbnQgPiBEV19NQ0lfTUFYX1NDUklQVF9CTEspDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGN1cl9ibGtfY250ID0gRFdfTUNJX01BWF9TQ1JJUFRfQkxLOw0KPiArICAg ICAgICAgICAgICAgICAgICAgZWxzZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj dXJfYmxrX2NudCA9IHJlbWFpbl9ibGtfY250Ow0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAg ICAvKiBJbiBTeW5vcHN5cyBEZXNpZ25XYXJlIERhdGFib29rIFBhZ2UgODQsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgKiBUaGV5IG1lbnRpb25lZCB0aGUgRE1BIDEyOE1CIHJlc3RyaWN0aW9u DQo+ICsgICAgICAgICAgICAgICAgICAgICAgKi8NCj4gKyAgICAgICAgICAgICAgICAgICAgIGJl Z2luID0gYWRkciAvIFNaXzEyOE07DQo+ICsgICAgICAgICAgICAgICAgICAgICBlbmQgPSAoYWRk ciArIGN1cl9ibGtfY250ICogU1pfNTEyKSAvIFNaXzEyOE07DQo+ICsNCj4gKyAgICAgICAgICAg ICAgICAgICAgIGlmIChiZWdpbiAhPSBlbmQpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGN1cl9ibGtfY250ID0gKGVuZCAqIFNaXzEyOE0gLSBhZGRyKSAvIA0KPiArIFNaXzUxMjsN Cj4gKw0KPiArICAgICAgICAgICAgICAgICAgICAgaWYgKChpKzEpID09IHNnX2NvdW50ICYmIChy ZW1haW5fYmxrX2NudCA9PSBjdXJfYmxrX2NudCkpDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxhc3QgPSB0cnVlOw0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgICBkd19tY2lf Y3FlX3NldF90cmFuX2Rlc2MoZGVzYywgYWRkciwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoY3VyX2Jsa19jbnQgPDwgOSksIGxhc3QsIA0KPiArIGRtYTY0KTsNCj4g Kw0KPiArICAgICAgICAgICAgICAgICAgICAgYWRkciA9IGFkZHIgKyAoY3VyX2Jsa19jbnQgPDwg OSk7DQo+ICsgICAgICAgICAgICAgICAgICAgICByZW1haW5fYmxrX2NudCAtPSBjdXJfYmxrX2Nu dDsNCj4gKyAgICAgICAgICAgICAgICAgICAgIGRlc2MgKz0gY3FfaG9zdC0+dHJhbnNfZGVzY19s ZW47DQo+ICsgICAgICAgICAgICAgfQ0KPiArICAgICB9DQo+ICt9DQoNCkl0IHdvdWxkIGJlIHBy ZWZlcmFibGUgdG8gdXNlIGEgY2FsbGJhY2sgb25seSBmb3Igc2V0dGluZyB0aGUgZGVzY3JpcHRv ci4NClBsZWFzZSBzZWUgY29tbWVudHMgYWJvdXQgZHdjbXNoY19jcWhjaV9zZXRfdHJhbl9kZXNj KCkgYW5kIGR3Y21zaGNfY3FoY2lfcHJlcF90cmFuX2Rlc2MoKSBtYWRlIGhlcmU6DQpodHRwczov L2xvcmUua2VybmVsLm9yZy9saW51eC1tbWMvMDkzMmIxMjQtMTZkYS00OTVjLTk3MDYtYmJhZGFk YjNiMDc2QGludGVsLmNvbS8NCg0KW1NOSVBdDQoNCj4gK3N0YXRpYyB2b2lkIGR3X21jaV9jcWVf cmVxdWVzdChzdHJ1Y3QgbW1jX2hvc3QgKm1tYywgc3RydWN0IA0KPiArbW1jX3JlcXVlc3QgKm1y cSkgew0KPiArICAgICBzdHJ1Y3QgZHdfbWNpX3Nsb3QgKnNsb3QgPSBtbWNfcHJpdihtbWMpOw0K PiArICAgICBzdHJ1Y3QgZHdfbWNpICpob3N0ID0gc2xvdC0+aG9zdDsNCj4gKw0KPiArICAgICBX QVJOX09OKHNsb3QtPm1ycSk7DQo+ICsNCj4gKyAgICAgLyoNCj4gKyAgICAgICogVGhlIGNoZWNr IGZvciBjYXJkIHByZXNlbmNlIGFuZCBxdWV1ZWluZyBvZiB0aGUgcmVxdWVzdCBtdXN0IGJlDQo+ ICsgICAgICAqIGF0b21pYywgb3RoZXJ3aXNlIHRoZSBjYXJkIGNvdWxkIGJlIHJlbW92ZWQgaW4g YmV0d2VlbiBhbmQgdGhlDQo+ICsgICAgICAqIHJlcXVlc3Qgd291bGRuJ3QgZmFpbCB1bnRpbCBh bm90aGVyIGNhcmQgd2FzIGluc2VydGVkLg0KPiArICAgICAgKi8NCj4gKw0KPiArICAgICBpZiAo IWR3X21jaV9jcWVfZ2V0X2NkKG1tYykpIHsNCj4gKyAgICAgICAgICAgICBtcnEtPmNtZC0+ZXJy b3IgPSAtRU5PTUVESVVNOw0KPiArICAgICAgICAgICAgIG1tY19yZXF1ZXN0X2RvbmUobW1jLCBt cnEpOw0KPiArICAgICAgICAgICAgIHJldHVybjsNCj4gKyAgICAgfQ0KPiArDQo+ICsgICAgIGRv d25fd3JpdGUoJmhvc3QtPmNyX3J3X3NlbSk7DQo+ICsNCj4gKyAgICAgLypjbWRxIGNhc2UgbmVl ZHMgZXh0cmEgY2hlY2sqLw0KPiArICAgICBpZiAoaG9zdC0+cGRhdGEgJiYgKGhvc3QtPnBkYXRh LT5jYXBzMiAmIE1NQ19DQVAyX0NRRSkpIHsNCj4gKyAgICAgICAgICAgICBpZiAoKGhvc3QtPmNx ZSkgPT0gTlVMTCkgew0KPiArICAgICAgICAgICAgICAgICAgICAgZGV2X2Vycihob3N0LT5kZXYs ICJkd19tY2lfcmVxdWVzdF9jcWUgbm90IGRvbmUgeWV0XG4iKTsNCj4gKyAgICAgICAgICAgICAg ICAgICAgIG1kZWxheSgyKTsNCj4gKyAgICAgICAgICAgICB9DQo+ICsNCj4gKyAgICAgICAgICAg ICBpZiAobW1jLT5jcWVfb24gPT0gZmFsc2UgJiYgaG9zdC0+Y3FlLT5hY3RpdmF0ZWQgPT0gdHJ1 ZSkNCj4gKyAgICAgICAgICAgICAgICAgICAgIGNxaGNpX2RlYWN0aXZhdGUobW1jKTsNCg0KVGhp cyBzaG91bGQgbm90IGJlIG5lY2Vzc2FyeS4gIEluc3RlYWQsIHBsZWFzZSB0cnkgdG8gdXNlDQot PnByZV9lbmFibGUoKSBhbmQgLT5wb3N0X2Rpc2FibGUoKSBsaWtlIGluIG10ay1zZC5jDQoNCltT TklQXQ0K