Received: by 10.223.176.5 with SMTP id f5csp3795717wra; Mon, 29 Jan 2018 20:00:26 -0800 (PST) X-Google-Smtp-Source: AH8x227gNbr+K66V2nNCnpqIpsVLur8i6HQ8eiEGztNWrzCmIM8TLmxYW4MNsvp0bgyj+RXtP+vk X-Received: by 10.99.52.69 with SMTP id b66mr23455150pga.124.1517284826020; Mon, 29 Jan 2018 20:00:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517284825; cv=none; d=google.com; s=arc-20160816; b=FGOROOsv4Xq6YkKWj/jFHOjdxEHDOsAo9gAoE4RJ7up/Abj4inmAowpZpm1fmuTAid DlyOqDPcvEwC8cwvvll4QNG66IoFocaePKl7EqYmzt3/e+EtD2NN5E27mrjj7iEajWoP zDSUUYsPFuAwTdPFbPs+Vj8Hr9zvk6Qoj0KE2Cn6t6VLrVbg8XoFduEN7dfwMTWD1fcv C4fMREmZMsUoS609i4deGW7mF7fvU0fsBtvnEG/hifua57iL9MiMckejiX+6YT3en17q KtAScyHsjXPMFqqwtNi8BRtxxDB4D1AXSNlho6dYrXu/AhWF7B80yZS7YqBLyNfL1Mai Ih1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:references:message-id:date :thread-index:thread-topic:subject:cc:to:from :arc-authentication-results; bh=Dt2K5hHkjbQ3ruZva/GJ2xmepNHxj4HICbFq9H/9Mxk=; b=MwtIbGJpTwxaZszIe0jArg8gNYfyGxYjf0rlOiGucWOGUQL20lrOj/u/uajzox1MiT 8A5maC5L9qN+mvVe95pQoZT8pFa056BH2AOnqtTqytvvoHRRw8E1pa4udsAAequdUgEc cGmpIKPG1DnfQjup6QNlDMgxBC5x8nufNbAtdncbcQQT+S8LHW0ZNeRBs4b2aRrIS35w Q5L1SB1FXu+XV+l5KES+c1tJx9iWemq31a9qmUHQbCUU9KxwgfUD4B2EHAR8T90T0pjd RIRi12QUz86Ekh6DMwygE7IFKr8kTMrgWoKHDNto5fIOeqOTWMhYulXxXmTshce/46sz 57Jw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 64-v6si455725plb.472.2018.01.29.20.00.11; Mon, 29 Jan 2018 20:00:25 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752652AbeA3D7F (ORCPT + 99 others); Mon, 29 Jan 2018 22:59:05 -0500 Received: from szxga01-in.huawei.com ([45.249.212.187]:2446 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752596AbeA3D7E (ORCPT ); Mon, 29 Jan 2018 22:59:04 -0500 Received: from DGGEML404-HUB.china.huawei.com (unknown [172.30.72.54]) by Forcepoint Email with ESMTP id DECF89B2E86CC; Tue, 30 Jan 2018 11:59:00 +0800 (CST) Received: from DGGEML508-MBX.china.huawei.com ([169.254.3.22]) by DGGEML404-HUB.china.huawei.com ([fe80::b177:a243:7a69:5ab8%31]) with mapi id 14.03.0361.001; Tue, 30 Jan 2018 11:58:52 +0800 From: "zhangheng (AC)" To: "paulmck@linux.vnet.ibm.com" , "lianglihao@huawei.com" CC: "Guohanjun (Hanjun Guo)" , "Chenhaibo (Haibo, OS Lab)" , "lihao.liang@gmail.com" , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH RFC 01/16] prcu: Add PRCU implementation Thread-Topic: [PATCH RFC 01/16] prcu: Add PRCU implementation Thread-Index: AQHTlCFdZVEps8k4qEi1V4BR0MIw1qODmaYAgAJMvaCABe150A== Date: Tue, 30 Jan 2018 03:58:52 +0000 Message-ID: <3FF961283AE1E144A2F945F1AD5573FD014DDF57@dggeml508-mbx.china.huawei.com> References: <1516694381-20333-1-git-send-email-lianglihao@huawei.com> <1516694381-20333-2-git-send-email-lianglihao@huawei.com> <20180125061618.GU3741@linux.vnet.ibm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.142.78.241] Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org VmVyeSBzb3JyeSBmb3IgbGF0ZSByZXNwb25zZSwgSSBmb3VuZCB0aGlzIGVtYWlsIGhhcyBiZWVu IGJsb2NrZWQgYWZ0ZXIgTGloYW8gbWVudGlvbmVkIHRoaXMgbW9ybmluZy4NCg0KLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IHpoYW5naGVuZyAoQUMpIA0KU2VudDogMjAxOMTqMdTC MjbI1SAxODozMA0KVG86ICdwYXVsbWNrQGxpbnV4LnZuZXQuaWJtLmNvbScgPHBhdWxtY2tAbGlu dXgudm5ldC5pYm0uY29tPjsgbGlhbmdsaWhhb0BodWF3ZWkuY29tDQpDYzogR3VvaGFuanVuIChI YW5qdW4gR3VvKSA8Z3VvaGFuanVuQGh1YXdlaS5jb20+OyBDaGVuaGFpYm8gKEhhaWJvLCBPUyBM YWIpIDxoYi5jaGVuQGh1YXdlaS5jb20+OyBsaWhhby5saWFuZ0BnbWFpbC5jb207IGxpbnV4LWtl cm5lbEB2Z2VyLmtlcm5lbC5vcmcNClN1YmplY3Q6IFJFOiBbUEFUQ0ggUkZDIDAxLzE2XSBwcmN1 OiBBZGQgUFJDVSBpbXBsZW1lbnRhdGlvbg0KDQpIaSBQYXVsLCB0aGFua3MgYSBsb3QgZm9yIHBv aW50aW5nIG91dCB0aGUgcHJvYmxlbXMgb2YgdGhlIGltcGxlbWVudGF0aW9uLiBIZXJlJ3MgbXkg dW5kZXJzdGFuZGluZy4NCg0KQmVzdCBSZWdhcmRzLA0KSGVuZw0KDQotLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPkZyb206IFBhdWwgRS4gTWNLZW5uZXkgW21haWx0bzpwYXVsbWNrQGxpbnV4 LnZuZXQuaWJtLmNvbV0NCj5TZW50OiAyMDE4xOox1MIyNcjVIDE0OjE2DQo+VG86IGxpYW5nbGlo YW9AaHVhd2VpLmNvbQ0KPkNjOiBHdW9oYW5qdW4gKEhhbmp1biBHdW8pIDxndW9oYW5qdW5AaHVh d2VpLmNvbT47IHpoYW5naGVuZyAoQUMpIA0KPjxoZW5nLnpAaHVhd2VpLmNvbT47IENoZW5oYWli byAoSGFpYm8sIE9TIExhYikgPGhiLmNoZW5AaHVhd2VpLmNvbT47IA0KPmxpaGFvLmxpYW5nQGdt YWlsLmNvbTsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZw0KPlN1YmplY3Q6IFJlOiBbUEFU Q0ggUkZDIDAxLzE2XSBwcmN1OiBBZGQgUFJDVSBpbXBsZW1lbnRhdGlvbg0KDQo+T24gVHVlLCBK YW4gMjMsIDIwMTggYXQgMDM6NTk6MjZQTSArMDgwMCwgbGlhbmdsaWhhb0BodWF3ZWkuY29tIHdy b3RlOg0KPj4gRnJvbTogSGVuZyBaaGFuZyA8aGVuZy56QGh1YXdlaS5jb20+DQo+PiANCj4+IFRo aXMgUkNVIGltcGxlbWVudGF0aW9uIChQUkNVKSBpcyBiYXNlZCBvbiBhIGZhc3QgY29uc2Vuc3Vz IHByb3RvY29sIA0KPj4gcHVibGlzaGVkIGluIHRoZSBmb2xsb3dpbmcgcGFwZXI6DQo+PiANCj4+ IEZhc3QgQ29uc2Vuc3VzIFVzaW5nIEJvdW5kZWQgU3RhbGVuZXNzIGZvciBTY2FsYWJsZSBSZWFk LW1vc3RseSBTeW5jaHJvbml6YXRpb24uDQo+PiBIYWlibyBDaGVuLCBIZW5nIFpoYW5nLCBSYW4g TGl1LCBCaW55dSBaYW5nLCBhbmQgSGFpYmluZyBHdWFuLg0KPj4gSUVFRSBUcmFuc2FjdGlvbnMg b24gUGFyYWxsZWwgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXMgKFRQRFMpLCAyMDE2Lg0KPj4gaHR0 cHM6Ly9kbC5hY20ub3JnL2NpdGF0aW9uLmNmbT9pZD0zMDI0MTE0LjMwMjQxNDMNCj4+IA0KPj4g U2lnbmVkLW9mZi1ieTogSGVuZyBaaGFuZyA8aGVuZy56QGh1YXdlaS5jb20+DQo+PiBTaWduZWQt b2ZmLWJ5OiBMaWhhbyBMaWFuZyA8bGlhbmdsaWhhb0BodWF3ZWkuY29tPg0KDQo+QSBmZXcgY29t bWVudHMgYW5kIHF1ZXN0aW9ucyBpbnRlcnNwZXJzZWQuDQoNCj4JCQkJCQkJVGhhbngsIFBhdWwN Cg0KPj4gLS0tDQo+PiAgaW5jbHVkZS9saW51eC9wcmN1LmggfCAgMzcgKysrKysrKysrKysrKysr DQo+PiAga2VybmVsL3JjdS9NYWtlZmlsZSAgfCAgIDIgKy0NCj4+ICBrZXJuZWwvcmN1L3ByY3Uu YyAgICB8IDEyNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysNCj4+ICBrZXJuZWwvc2NoZWQvY29yZS5jICB8ICAgMiArDQo+PiAgNCBmaWxlcyBjaGFu Z2VkLCAxNjUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKSAgY3JlYXRlIG1vZGUgDQo+PiAx MDA2NDQgaW5jbHVkZS9saW51eC9wcmN1LmggIGNyZWF0ZSBtb2RlIDEwMDY0NCBrZXJuZWwvcmN1 L3ByY3UuYw0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wcmN1LmggYi9pbmNs dWRlL2xpbnV4L3ByY3UuaCBuZXcgZmlsZSANCj4+IG1vZGUNCj4+IDEwMDY0NCBpbmRleCAwMDAw MDAwMC4uNjUzYjQ2MzMNCj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL2luY2x1ZGUvbGludXgv cHJjdS5oDQo+PiBAQCAtMCwwICsxLDM3IEBADQo+PiArI2lmbmRlZiBfX0xJTlVYX1BSQ1VfSA0K Pj4gKyNkZWZpbmUgX19MSU5VWF9QUkNVX0gNCj4+ICsNCj4+ICsjaW5jbHVkZSA8bGludXgvYXRv bWljLmg+DQo+PiArI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+DQo+PiArI2luY2x1ZGUgPGxpbnV4 L3dhaXQuaD4NCj4+ICsNCj4+ICsjZGVmaW5lIENPTkZJR19QUkNVDQo+PiArDQo+PiArc3RydWN0 IHByY3VfbG9jYWxfc3RydWN0IHsNCj4+ICsJdW5zaWduZWQgaW50IGxvY2tlZDsNCj4+ICsJdW5z aWduZWQgaW50IG9ubGluZTsNCj4+ICsJdW5zaWduZWQgbG9uZyBsb25nIHZlcnNpb247DQo+PiAr fTsNCj4+ICsNCj4+ICtzdHJ1Y3QgcHJjdV9zdHJ1Y3Qgew0KPj4gKwlhdG9taWM2NF90IGdsb2Jh bF92ZXJzaW9uOw0KPj4gKwlhdG9taWNfdCBhY3RpdmVfY3RyOw0KPj4gKwlzdHJ1Y3QgbXV0ZXgg bXR4Ow0KPj4gKwl3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0X3E7DQo+PiArfTsNCj4+ICsNCj4+ICsj aWZkZWYgQ09ORklHX1BSQ1UNCj4+ICt2b2lkIHByY3VfcmVhZF9sb2NrKHZvaWQpOw0KPj4gK3Zv aWQgcHJjdV9yZWFkX3VubG9jayh2b2lkKTsNCj4+ICt2b2lkIHN5bmNocm9uaXplX3ByY3Uodm9p ZCk7DQo+PiArdm9pZCBwcmN1X25vdGVfY29udGV4dF9zd2l0Y2godm9pZCk7DQo+PiArDQo+PiAr I2Vsc2UgLyogI2lmZGVmIENPTkZJR19QUkNVICovDQo+PiArDQo+PiArI2RlZmluZSBwcmN1X3Jl YWRfbG9jaygpIGRvIHt9IHdoaWxlICgwKSAjZGVmaW5lIHByY3VfcmVhZF91bmxvY2soKSANCj4+ ICtkbyB7fSB3aGlsZSAoMCkgI2RlZmluZSBzeW5jaHJvbml6ZV9wcmN1KCkgZG8ge30gd2hpbGUg KDApICNkZWZpbmUNCj4+ICtwcmN1X25vdGVfY29udGV4dF9zd2l0Y2goKSBkbyB7fSB3aGlsZSAo MCkNCg0KPklmIENPTkZJR19QUkNVPW4gYW5kIHNvbWUgY29kZSBpcyBidWlsdCB0aGF0IHVzZXMg UFJDVSwgc2hvdWxkbid0IHlvdSBnZXQgYSBidWlsZCBlcnJvciByYXRoZXIgdGhhbiBhbiBlcnJv ci1mcmVlIGJ1dCBpbm9wZXJhdGl2ZSBQUkNVPw0KDQo+T2YgY291cnNlLCBQZXRlcidzIHF1ZXN0 aW9uIGFib3V0IHB1cnBvc2Ugb2YgdGhlIHBhdGNoIHNldCBhcHBsaWVzIGhlcmUgYXMgd2VsbC4N Cg0KWWVzLCB3ZSBzaG91bGQgaGFuZGxlIHRoaXMgY2FzZSBtb3JlIGNhcmVmdWxseS4NCkFuZCBp biBteSBwZXJzb25hbCBvcGluaW9uLCBwcmN1IGlzIGRlc2lnbmVkIGZvciBzb21lIG1vZHVsZXMg dGhhdCBoYXZlIGEgZmV3IHRocmVhZHMgYW5kIHJlcXVpcmUgbG93IHN5bmNocm9uaXphdGlvbiBs YXRlbmN5IChiZWNhdXNlIGl0IGp1c3Qgc2VuZHMgSVBJcyB0byBvbmxpbmUgcmVhZGVycykuIEkg dGhpbmsgaWYgYSBtb2R1bGUgdGhhdCB1c2VzIHN5bmNocm9uaXplX3JjdV9leHBlZGl0ZWQsIGl0 IG1heSBuZWVkIHByY3UuDQoNCj4+ICsNCj4+ICsjZW5kaWYgLyogI2lmZGVmIENPTkZJR19QUkNV ICovDQo+PiArI2VuZGlmIC8qIF9fTElOVVhfUFJDVV9IICovDQo+PiBkaWZmIC0tZ2l0IGEva2Vy bmVsL3JjdS9NYWtlZmlsZSBiL2tlcm5lbC9yY3UvTWFrZWZpbGUgaW5kZXggDQo+PiAyMzgwM2M3 ZC4uODc5MTQxOWMgMTAwNjQ0DQo+PiAtLS0gYS9rZXJuZWwvcmN1L01ha2VmaWxlDQo+PiArKysg Yi9rZXJuZWwvcmN1L01ha2VmaWxlDQo+PiBAQCAtMiw3ICsyLDcgQEANCj4+ICAjIGFuZCBpcyBn ZW5lcmFsbHkgbm90IGEgZnVuY3Rpb24gb2Ygc3lzdGVtIGNhbGwgaW5wdXRzLg0KPj4gIEtDT1Zf SU5TVFJVTUVOVCA6PSBuDQo+PiANCj4+IC1vYmoteSArPSB1cGRhdGUubyBzeW5jLm8NCj4+ICtv YmoteSArPSB1cGRhdGUubyBzeW5jLm8gcHJjdS5vDQo+PiAgb2JqLSQoQ09ORklHX0NMQVNTSUNf U1JDVSkgKz0gc3JjdS5vDQo+PiAgb2JqLSQoQ09ORklHX1RSRUVfU1JDVSkgKz0gc3JjdXRyZWUu bw0KPj4gIG9iai0kKENPTkZJR19USU5ZX1NSQ1UpICs9IHNyY3V0aW55Lm8gZGlmZiAtLWdpdCBh L2tlcm5lbC9yY3UvcHJjdS5jIA0KPj4gYi9rZXJuZWwvcmN1L3ByY3UuYyBuZXcgZmlsZSBtb2Rl IDEwMDY0NCBpbmRleCAwMDAwMDAwMC4uYTAwYjk0MjANCj4+IC0tLSAvZGV2L251bGwNCj4+ICsr KyBiL2tlcm5lbC9yY3UvcHJjdS5jDQo+PiBAQCAtMCwwICsxLDEyNSBAQA0KPj4gKyNpbmNsdWRl IDxsaW51eC9zbXAuaD4NCj4+ICsjaW5jbHVkZSA8bGludXgvcHJjdS5oPg0KPj4gKyNpbmNsdWRl IDxsaW51eC9wZXJjcHUuaD4NCj4+ICsjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4NCj4+ICsj aW5jbHVkZSA8bGludXgvc2NoZWQuaD4NCj4+ICsNCj4+ICsjaW5jbHVkZSA8YXNtL2JhcnJpZXIu aD4NCj4+ICsNCj4+ICtERUZJTkVfUEVSX0NQVV9TSEFSRURfQUxJR05FRChzdHJ1Y3QgcHJjdV9s b2NhbF9zdHJ1Y3QsIHByY3VfbG9jYWwpOw0KPj4gKw0KPj4gK3N0cnVjdCBwcmN1X3N0cnVjdCBn bG9iYWxfcHJjdSA9IHsNCj4+ICsJLmdsb2JhbF92ZXJzaW9uID0gQVRPTUlDNjRfSU5JVCgwKSwN Cj4+ICsJLmFjdGl2ZV9jdHIgPSBBVE9NSUNfSU5JVCgwKSwNCj4+ICsJLm10eCA9IF9fTVVURVhf SU5JVElBTElaRVIoZ2xvYmFsX3ByY3UubXR4KSwNCj4+ICsJLndhaXRfcSA9IF9fV0FJVF9RVUVV RV9IRUFEX0lOSVRJQUxJWkVSKGdsb2JhbF9wcmN1LndhaXRfcSkNCj4+ICt9Ow0KPj4gK3N0cnVj dCBwcmN1X3N0cnVjdCAqcHJjdSA9ICZnbG9iYWxfcHJjdTsNCj4+ICsNCj4+ICtzdGF0aWMgaW5s aW5lIHZvaWQgcHJjdV9yZXBvcnQoc3RydWN0IHByY3VfbG9jYWxfc3RydWN0ICpsb2NhbCkgew0K Pj4gKwl1bnNpZ25lZCBsb25nIGxvbmcgZ2xvYmFsX3ZlcnNpb247DQo+PiArCXVuc2lnbmVkIGxv bmcgbG9uZyBsb2NhbF92ZXJzaW9uOw0KPj4gKw0KPj4gKwlnbG9iYWxfdmVyc2lvbiA9IGF0b21p YzY0X3JlYWQoJnByY3UtPmdsb2JhbF92ZXJzaW9uKTsNCj4+ICsJbG9jYWxfdmVyc2lvbiA9IGxv Y2FsLT52ZXJzaW9uOw0KPj4gKwlpZiAoZ2xvYmFsX3ZlcnNpb24gPiBsb2NhbF92ZXJzaW9uKQ0K Pj4gKwkJY21weGNoZygmbG9jYWwtPnZlcnNpb24sIGxvY2FsX3ZlcnNpb24sIGdsb2JhbF92ZXJz aW9uKTsgfQ0KPj4gKw0KPj4gK3ZvaWQgcHJjdV9yZWFkX2xvY2sodm9pZCkNCj4+ICt7DQo+PiAr CXN0cnVjdCBwcmN1X2xvY2FsX3N0cnVjdCAqbG9jYWw7DQo+PiArDQo+PiArCWxvY2FsID0gZ2V0 X2NwdV9wdHIoJnByY3VfbG9jYWwpOw0KPj4gKwlpZiAoIWxvY2FsLT5vbmxpbmUpIHsNCj4+ICsJ CVdSSVRFX09OQ0UobG9jYWwtPm9ubGluZSwgMSk7DQo+PiArCQlzbXBfbWIoKTsNCj4+ICsJfQ0K Pj4gKw0KPj4gKwlsb2NhbC0+bG9ja2VkKys7DQo+PiArCXB1dF9jcHVfcHRyKCZwcmN1X2xvY2Fs KTsNCj4+ICt9DQo+PiArRVhQT1JUX1NZTUJPTChwcmN1X3JlYWRfbG9jayk7DQo+PiArDQo+PiAr dm9pZCBwcmN1X3JlYWRfdW5sb2NrKHZvaWQpDQo+PiArew0KPj4gKwlpbnQgbG9ja2VkOw0KPj4g KwlzdHJ1Y3QgcHJjdV9sb2NhbF9zdHJ1Y3QgKmxvY2FsOw0KPj4gKw0KPj4gKwliYXJyaWVyKCk7 DQo+PiArCWxvY2FsID0gZ2V0X2NwdV9wdHIoJnByY3VfbG9jYWwpOw0KPj4gKwlsb2NrZWQgPSBs b2NhbC0+bG9ja2VkOw0KPj4gKwlpZiAobG9ja2VkKSB7DQo+PiArCQlsb2NhbC0+bG9ja2VkLS07 DQo+PiArCQlpZiAobG9ja2VkID09IDEpDQo+PiArCQkJcHJjdV9yZXBvcnQobG9jYWwpOw0KDQo+ SXMgb3JkZXJpbmcgaW1wb3J0YW50IGhlcmU/ICBJdCBsb29rcyB0byBtZSB0aGF0IHRoZSBjb21w aWxlciBjb3VsZCByZWFycmFuZ2Ugc29tZSBvZiB0aGUgYWNjZXNzZXMgd2l0aGluIHByY3VfcmVw b3J0KCkgd2l0aCB0aGUgbG9jYWwtPmxvY2tlZCBkZWNyZW1lbnQuICBUaGVyZSBhcHBlYXJzIHRv IGJlIHNvbWUgcG90ZW50aWFsIGZvciBsb2FkIGFuZCBzdG9yZSB0ZWFyaW5nLCB0aG91Z2ggcGVy aGFwcyB5b3UgaGF2ZSB2ZXJpZmllZCB0aGF0IHlvdXIgY29tcGlsZXIgYXZvaWRzIHRoaXMgb24g dGhlIGFyY2hpdGVjdHVyZSB0aGF0IHlvdSBhcmUgdXNpbmcuDQoNCllvdSBhcmUgcmlnaHQuIEkg c2hvdWxkIGFkZCBhIGJhcnJpZXIoKSBoZXJlLiBJZiB0aGUgcHJjdV9yZXBvcnQoKSBkb2VzIGVm ZmVjdCAodXBkYXRlIGxvY2FsX3ZlcnNpb24pIHdoZW4gbG9ja2VkICE9IDEgYmVjYXVzZSBvZiB0 aGUgcmVhcnJhbmdlLCB0aGUgcHJjdSBtdXN0IGNhdXNlIHByb2JsZW0uDQoNCj4+ICsJCXB1dF9j cHVfcHRyKCZwcmN1X2xvY2FsKTsNCj4+ICsJfSBlbHNlIHsNCg0KPkhtbW0uLi4gIFdlIGdldCBo ZXJlIGlmIHRoZSBSQ1UgcmVhZC1zaWRlIGNyaXRpY2FsIHNlY3Rpb24gd2FzIHByZWVtcHRlZC4N Cj5JZiBub25lIG9mIHRoZW0gYXJlIHByZWVtcHRlZCwgLT5hY3RpdmVfY3RyIHJlbWFpbnMgemVy by4NCg0KWWVhaCwgdW5sZXNzIHRoZSB1c2VyIGNhbGxzIHByY3VfcmVhZF91bmxvY2sgd2l0aG91 dCBwcmN1X3JlYWRfbG9jaywgdGhlIGFjdGl2ZXJfY3RyIG11c3QgYmUgbm9uLXplcm8uDQoNCj4+ ICsJCXB1dF9jcHVfcHRyKCZwcmN1X2xvY2FsKTsNCj4+ICsJCWlmICghYXRvbWljX2RlY19yZXR1 cm4oJnByY3UtPmFjdGl2ZV9jdHIpKQ0KPj4gKwkJCXdha2VfdXAoJnByY3UtPndhaXRfcSk7DQo+ PiArCX0NCj4+ICt9DQo+PiArRVhQT1JUX1NZTUJPTChwcmN1X3JlYWRfdW5sb2NrKTsNCj4+ICsN Cj4+ICtzdGF0aWMgdm9pZCBwcmN1X2hhbmRsZXIodm9pZCAqaW5mbykgew0KPj4gKwlzdHJ1Y3Qg cHJjdV9sb2NhbF9zdHJ1Y3QgKmxvY2FsOw0KPj4gKw0KPj4gKwlsb2NhbCA9IHRoaXNfY3B1X3B0 cigmcHJjdV9sb2NhbCk7DQo+PiArCWlmICghbG9jYWwtPmxvY2tlZCkNCj4+ICsJCVdSSVRFX09O Q0UobG9jYWwtPnZlcnNpb24sIGF0b21pYzY0X3JlYWQoJnByY3UtPmdsb2JhbF92ZXJzaW9uKSk7 DQo+PiArfQ0KPj4gKw0KPj4gK3ZvaWQgc3luY2hyb25pemVfcHJjdSh2b2lkKQ0KPj4gK3sNCj4+ ICsJaW50IGNwdTsNCj4+ICsJY3B1bWFza190IGNwdXM7DQo+PiArCXVuc2lnbmVkIGxvbmcgbG9u ZyB2ZXJzaW9uOw0KPj4gKwlzdHJ1Y3QgcHJjdV9sb2NhbF9zdHJ1Y3QgKmxvY2FsOw0KPj4gKw0K Pj4gKwl2ZXJzaW9uID0gYXRvbWljNjRfYWRkX3JldHVybigxLCAmcHJjdS0+Z2xvYmFsX3ZlcnNp b24pOw0KPj4gKwltdXRleF9sb2NrKCZwcmN1LT5tdHgpOw0KPj4gKw0KPj4gKwlsb2NhbCA9IGdl dF9jcHVfcHRyKCZwcmN1X2xvY2FsKTsNCj4+ICsJbG9jYWwtPnZlcnNpb24gPSB2ZXJzaW9uOw0K Pj4gKwlwdXRfY3B1X3B0cigmcHJjdV9sb2NhbCk7DQo+PiArDQo+PiArCWNwdW1hc2tfY2xlYXIo JmNwdXMpOw0KPj4gKwlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KSB7DQo+PiArCQlsb2NhbCA9 IHBlcl9jcHVfcHRyKCZwcmN1X2xvY2FsLCBjcHUpOw0KPj4gKwkJaWYgKCFSRUFEX09OQ0UobG9j YWwtPm9ubGluZSkpDQo+PiArCQkJY29udGludWU7DQo+PiArCQlpZiAoUkVBRF9PTkNFKGxvY2Fs LT52ZXJzaW9uKSA8IHZlcnNpb24pIHsNCg0KPk9uIDMyLWJpdCBzeXN0ZW1zLCBnaXZlbiB0aGF0 IC0+dmVyc2lvbiBpcyBsb25nIGxvbmcsIHlvdSBtaWdodCBzZWUgbG9hZCB0ZWFyaW5nLiAgQW5k IG9uIHNvbWUgMzItYml0IHN5c3RlbXMsIHRoZSBjbXB4Y2hnKCkgaW4gcHJjdV9oYW5kZXIoKSBt aWdodCBub3QgYnVpbGQuDQoNCj5PciBpcyB0aGUgaWRlYSB0aGF0IG9ubHkgcHJjdV9oYW5kbGVy KCkgdXBkYXRlcyAtPnZlcnNpb24/ICBCdXQgaW4gdGhhdCBjYXNlLCB5b3Ugd291bGRuJ3QgbmVl ZCB0aGUgUkVBRF9PTkNFKCkgYWJvdmUuICBXaGF0IGFtIEkgbWlzc2luZyBoZXJlPw0KDQpUaGFu a3MsIEkgZGlkbid0IGNvbnNpZGVyIHRoZSBwcm9ibGVtcyBvbiAzMi1iaXQgc3lzdGVtcywgc28g dGhpcyBjb21tZW50cyBhcmUgcmVhbGx5IGhlbHBmdWwuDQpJIG11c3QgdXNlIDY0LWJpdCBjb3Vu dGVyIHRvIGF2b2lkIG92ZXJmbG93LiBTbyBpZiBpdCBkb2Vzbid0IHdvcmsgb24gMzItYml0IHN5 c3RlbSwgSSB0aGluayBJIHNob3VsZCBhZGQgYSBzcGlubG9jayBmb3IgZWFjaCBsb2NhbC0+dmVy c2lvbi4NCg0KPj4gKwkJCXNtcF9jYWxsX2Z1bmN0aW9uX3NpbmdsZShjcHUsIHByY3VfaGFuZGxl ciwgTlVMTCwgMCk7DQo+PiArCQkJY3B1bWFza19zZXRfY3B1KGNwdSwgJmNwdXMpOw0KPj4gKwkJ fQ0KPj4gKwl9DQo+PiArDQo+PiArCWZvcl9lYWNoX2NwdShjcHUsICZjcHVzKSB7DQo+PiArCQls b2NhbCA9IHBlcl9jcHVfcHRyKCZwcmN1X2xvY2FsLCBjcHUpOw0KPj4gKwkJd2hpbGUgKFJFQURf T05DRShsb2NhbC0+dmVyc2lvbikgPCB2ZXJzaW9uKQ0KDQo+VGhpcyAtPnZlcnNpb24gcmVhZCBj YW4gYWxzbyB0ZWFyIG9uIHNvbWUgMzItYml0IHN5c3RlbXMsIGFuZCB0aGlzIG9uZSBtb3N0IGRl ZmluaXRlbHkgY2FuIHJhY2Ugd2l0aCB0aGUgcHJjdV9oYW5kbGVyKCkgYWJvdmUuICBEb2VzIHRo ZSBhbGdvcml0aG0gb3BlcmF0ZSBjb3JyZWN0bHkgaW4gdGhhdCBjYXNlPyAgKEl0IGRvZXNuJ3Qg bG9vayB0aGF0IHdheSB0byBtZSwgYnV0IEkgbWlnaHQgYmUgbWlzc2luZyBzb21ldGhpbmcuKSBP ciBhcmUgMzItYml0IHN5c3RlbXMgZXhjbHVkZWQ/DQoNCj4+ICsJCQljcHVfcmVsYXgoKTsNCj4+ ICsJfQ0KDQo+SSBtaWdodCBiZSBtaXNzaW5nIHNvbWV0aGluZywgYnV0IEkgYmVsaWV2ZSB3ZSBu ZWVkIGEgbWVtb3J5IGJhcnJpZXIgaGVyZSBvbiBub24tVFNPIHN5c3RlbXMuICBXaXRob3V0IHRo YXQsIGNvdWxkbid0IHdlIG1pc3MgYSBwcmVlbXB0aW9uPw0KDQpZZXMsIGEgbWVtb3J5IGJhcnJp ZXIgaXMgcmVhc29uYWJsZSBoZXJlIGZvciBub24tVFNPLiBPdGhlcndpc2UgdGhlIGZvbGxvd2lu ZyBhdG9taWNfcmVhZCBtYXkgYmUgcmVvcmRlcmVkIGJlZm9yZSBhbGwgQ1BVcycgcmVwb3J0Lg0K DQo+PiArDQo+PiArCWlmIChhdG9taWNfcmVhZCgmcHJjdS0+YWN0aXZlX2N0cikpDQo+PiArCQl3 YWl0X2V2ZW50KHByY3UtPndhaXRfcSwgIWF0b21pY19yZWFkKCZwcmN1LT5hY3RpdmVfY3RyKSk7 DQo+PiArDQo+PiArCW11dGV4X3VubG9jaygmcHJjdS0+bXR4KTsNCj4+ICt9DQo+PiArRVhQT1JU X1NZTUJPTChzeW5jaHJvbml6ZV9wcmN1KTsNCj4+ICsNCj4+ICt2b2lkIHByY3Vfbm90ZV9jb250 ZXh0X3N3aXRjaCh2b2lkKQ0KPj4gK3sNCj4+ICsJc3RydWN0IHByY3VfbG9jYWxfc3RydWN0ICps b2NhbDsNCj4+ICsNCj4+ICsJbG9jYWwgPSBnZXRfY3B1X3B0cigmcHJjdV9sb2NhbCk7DQo+PiAr CWlmIChsb2NhbC0+bG9ja2VkKSB7DQo+PiArCQlhdG9taWNfYWRkKGxvY2FsLT5sb2NrZWQsICZw cmN1LT5hY3RpdmVfY3RyKTsNCj4+ICsJCWxvY2FsLT5sb2NrZWQgPSAwOw0KPj4gKwl9DQo+PiAr CWxvY2FsLT5vbmxpbmUgPSAwOw0KPj4gKwlwcmN1X3JlcG9ydChsb2NhbCk7DQo+PiArCXB1dF9j cHVfcHRyKCZwcmN1X2xvY2FsKTsNCj4+ICt9DQo+PiBkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVk L2NvcmUuYyBiL2tlcm5lbC9zY2hlZC9jb3JlLmMgaW5kZXggDQo+PiAzMjZkNGY4OC4uYTMwODU4 MWIgMTAwNjQ0DQo+PiAtLS0gYS9rZXJuZWwvc2NoZWQvY29yZS5jDQo+PiArKysgYi9rZXJuZWwv c2NoZWQvY29yZS5jDQo+PiBAQCAtMTUsNiArMTUsNyBAQA0KPj4gICNpbmNsdWRlIDxsaW51eC9p bml0X3Rhc2suaD4NCj4+ICAjaW5jbHVkZSA8bGludXgvY29udGV4dF90cmFja2luZy5oPg0KPj4g ICNpbmNsdWRlIDxsaW51eC9yY3VwZGF0ZV93YWl0Lmg+DQo+PiArI2luY2x1ZGUgPGxpbnV4L3By Y3UuaD4NCj4+IA0KPj4gICNpbmNsdWRlIDxsaW51eC9ibGtkZXYuaD4NCj4+ICAjaW5jbHVkZSA8 bGludXgva3Byb2Jlcy5oPg0KPj4gQEAgLTMzODMsNiArMzM4NCw3IEBAIHN0YXRpYyB2b2lkIF9f c2NoZWQgbm90cmFjZSBfX3NjaGVkdWxlKGJvb2wNCj4+IHByZWVtcHQpDQo+PiANCj4+ICAJbG9j YWxfaXJxX2Rpc2FibGUoKTsNCj4+ICAJcmN1X25vdGVfY29udGV4dF9zd2l0Y2gocHJlZW1wdCk7 DQo+PiArCXByY3Vfbm90ZV9jb250ZXh0X3N3aXRjaCgpOw0KPj4gDQo+PiAgCS8qDQo+PiAgCSAq IE1ha2Ugc3VyZSB0aGF0IHNpZ25hbF9wZW5kaW5nX3N0YXRlKCktPnNpZ25hbF9wZW5kaW5nKCkg YmVsb3cNCj4+IC0tDQo+PiAyLjE0LjEuNzI5Lmc1OWMwZWExODMNCj4+IA0KDQo=