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=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 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 0653CC3F2D1 for ; Mon, 2 Mar 2020 17:54:11 +0000 (UTC) Received: from ml01.01.org (ml01.01.org [198.145.21.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D167222B48 for ; Mon, 2 Mar 2020 17:54:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D167222B48 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.ibm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-nvdimm-bounces@lists.01.org Received: from ml01.vlan13.01.org (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 03BC810FC35A0; Mon, 2 Mar 2020 09:55:02 -0800 (PST) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=148.163.158.5; helo=mx0a-001b2d01.pphosted.com; envelope-from=fbarrat@linux.ibm.com; receiver= Received: from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 0096C10FC33E9 for ; Mon, 2 Mar 2020 09:54:59 -0800 (PST) Received: from pps.filterd (m0098414.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 022Hrq2A037365 for ; Mon, 2 Mar 2020 12:54:07 -0500 Received: from e06smtp07.uk.ibm.com (e06smtp07.uk.ibm.com [195.75.94.103]) by mx0b-001b2d01.pphosted.com with ESMTP id 2yfmyqx7j1-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 02 Mar 2020 12:54:06 -0500 Received: from localhost by e06smtp07.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 2 Mar 2020 17:51:17 -0000 Received: from b06cxnps4075.portsmouth.uk.ibm.com (9.149.109.197) by e06smtp07.uk.ibm.com (192.168.101.137) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Mon, 2 Mar 2020 17:51:10 -0000 Received: from d06av22.portsmouth.uk.ibm.com (d06av22.portsmouth.uk.ibm.com [9.149.105.58]) by b06cxnps4075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 022Hp8EA36372512 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 2 Mar 2020 17:51:08 GMT Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8B71B4C04E; Mon, 2 Mar 2020 17:51:08 +0000 (GMT) Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7F86F4C046; Mon, 2 Mar 2020 17:51:07 +0000 (GMT) Received: from pic2.home (unknown [9.145.49.157]) by d06av22.portsmouth.uk.ibm.com (Postfix) with ESMTP; Mon, 2 Mar 2020 17:51:07 +0000 (GMT) Subject: Re: [PATCH v3 13/27] powerpc/powernv/pmem: Read the capability registers & wait for device ready To: "Alastair D'Silva" , alastair@d-silva.org References: <20200221032720.33893-1-alastair@au1.ibm.com> <20200221032720.33893-14-alastair@au1.ibm.com> From: Frederic Barrat Date: Mon, 2 Mar 2020 18:51:07 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <20200221032720.33893-14-alastair@au1.ibm.com> Content-Language: en-US X-TM-AS-GCONF: 00 x-cbid: 20030217-0028-0000-0000-000003E01506 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 20030217-0029-0000-0000-000024A53ED2 Message-Id: <3d2de7c1-ee95-ed6c-0346-4a1d20a0b75e@linux.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138,18.0.572 definitions=2020-03-02_06:2020-03-02,2020-03-02 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 clxscore=1015 priorityscore=1501 mlxlogscore=999 malwarescore=0 impostorscore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0 spamscore=0 adultscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2003020118 Message-ID-Hash: B7PGM363WR2O32BKS342OOVLEJTO7OP5 X-Message-ID-Hash: B7PGM363WR2O32BKS342OOVLEJTO7OP5 X-MailFrom: fbarrat@linux.ibm.com X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation CC: "Aneesh Kumar K . V" , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Andrew Donnellan , Arnd Bergmann , Greg Kroah-Hartman , Andrew Morton , Mauro Carvalho Chehab , "David S. Miller" , Rob Herring , Anton Blanchard , Krzysztof Kozlowski , Mahesh Salgaonkar , Madhavan Srinivasan , =?UTF-8?Q?C=c3=a9dric_Le_Goater?= , Anju T Sudhakar , Hari Bathini , Thomas Gleixner , Greg Kurz , Nicholas Piggin , Masahiro Yamada , Alexey Kardashevskiy , linux-kernel@vger.kernel.org, linuxppc-de v@lists.ozlabs.org, linux-nvdimm@lists.01.org, linux-mm@kvack.org X-Mailman-Version: 3.1.1 Precedence: list List-Id: "Linux-nvdimm developer list." Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 DQoNCkxlIDIxLzAyLzIwMjAgw6AgMDQ6MjcsIEFsYXN0YWlyIEQnU2lsdmEgYSDDqWNyaXTCoDoN Cj4gRnJvbTogQWxhc3RhaXIgRCdTaWx2YSA8YWxhc3RhaXJAZC1zaWx2YS5vcmc+DQo+IA0KPiBU aGlzIHBhdGNoIHJlYWRzIHRpbWVvdXRzICYgZmlybXdhcmUgdmVyc2lvbiBmcm9tIHRoZSBjb250 cm9sbGVyLCBhbmQNCj4gdXNlcyB0aG9zZSB0aW1lb3V0cyB0byB3YWl0IGZvciB0aGUgY29udHJv bGxlciB0byByZXBvcnQgdGhhdCBpdCBpcyByZWFkeQ0KPiBiZWZvcmUgaGFuZGluZyB0aGUgbWVt b3J5IG92ZXIgdG8gbGlibnZkaW1tLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogQWxhc3RhaXIgRCdT aWx2YSA8YWxhc3RhaXJAZC1zaWx2YS5vcmc+DQo+IC0tLQ0KPiAgIGFyY2gvcG93ZXJwYy9wbGF0 Zm9ybXMvcG93ZXJudi9wbWVtL01ha2VmaWxlICB8ICAyICstDQo+ICAgYXJjaC9wb3dlcnBjL3Bs YXRmb3Jtcy9wb3dlcm52L3BtZW0vb2N4bC5jICAgIHwgOTIgKysrKysrKysrKysrKysrKysrKw0K PiAgIC4uLi9wbGF0Zm9ybXMvcG93ZXJudi9wbWVtL29jeGxfaW50ZXJuYWwuYyAgICB8IDE5ICsr KysNCj4gICAuLi4vcGxhdGZvcm1zL3Bvd2VybnYvcG1lbS9vY3hsX2ludGVybmFsLmggICAgfCAy NCArKysrKw0KPiAgIDQgZmlsZXMgY2hhbmdlZCwgMTM2IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkNCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dl cm52L3BtZW0vb2N4bF9pbnRlcm5hbC5jDQo+IA0KPiBkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBj L3BsYXRmb3Jtcy9wb3dlcm52L3BtZW0vTWFrZWZpbGUgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1z L3Bvd2VybnYvcG1lbS9NYWtlZmlsZQ0KPiBpbmRleCAxYzU1YzQxOTMxNzUuLjRjZWRhMjU5MDdk NCAxMDA2NDQNCj4gLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3BtZW0vTWFr ZWZpbGUNCj4gKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3BtZW0vTWFrZWZp bGUNCj4gQEAgLTQsNCArNCw0IEBAIGNjZmxhZ3MtJChDT05GSUdfUFBDX1dFUlJPUikJKz0gLVdl cnJvcg0KPiAgIA0KPiAgIG9iai0kKENPTkZJR19PQ1hMX1BNRU0pICs9IG9jeGxwbWVtLm8NCj4g ICANCj4gLW9jeGxwbWVtLXkgOj0gb2N4bC5vDQo+ICtvY3hscG1lbS15IDo9IG9jeGwubyBvY3hs X2ludGVybmFsLm8NCj4gZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJu di9wbWVtL29jeGwuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wbWVtL29jeGwu Yw0KPiBpbmRleCAzYzRlZWI1ZGNjMGYuLjQzMTIxMmM5ZjBjYyAxMDA2NDQNCj4gLS0tIGEvYXJj aC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3BtZW0vb2N4bC5jDQo+ICsrKyBiL2FyY2gvcG93 ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wbWVtL29jeGwuYw0KPiBAQCAtOCw2ICs4LDcgQEANCj4g ICANCj4gICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQo+ICAgI2luY2x1ZGUgPG1pc2Mvb2N4 bC5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+DQo+ICAgI2luY2x1ZGUgPGxpbnV4L25k Y3RsLmg+DQo+ICAgI2luY2x1ZGUgPGxpbnV4L21tX3R5cGVzLmg+DQo+ICAgI2luY2x1ZGUgPGxp bnV4L21lbW9yeV9ob3RwbHVnLmg+DQo+IEBAIC0yMTUsNiArMjE2LDM2IEBAIHN0YXRpYyBpbnQg cmVnaXN0ZXJfbHBjX21lbShzdHJ1Y3Qgb2N4bHBtZW0gKm9jeGxwbWVtKQ0KPiAgIAlyZXR1cm4g MDsNCj4gICB9DQo+ICAgDQo+ICsvKioNCj4gKyAqIGlzX3VzYWJsZSgpIC0gSXMgYSBjb250cm9s bGVyIHVzYWJsZT8NCj4gKyAqIEBvY3hscG1lbTogdGhlIGRldmljZSBtZXRhZGF0YQ0KPiArICog QHZlcmJvc2U6IFRydWUgdG8gbG9nIGVycm9ycw0KPiArICogUmV0dXJuOiB0cnVlIGlmIHRoZSBj b250cm9sbGVyIGlzIHVzYWJsZQ0KPiArICovDQo+ICtzdGF0aWMgYm9vbCBpc191c2FibGUoY29u c3Qgc3RydWN0IG9jeGxwbWVtICpvY3hscG1lbSwgYm9vbCB2ZXJib3NlKQ0KPiArew0KPiArCXU2 NCBjaGkgPSAwOw0KPiArCWludCByYyA9IG9jeGxwbWVtX2NoaShvY3hscG1lbSwgJmNoaSk7DQo+ ICsNCj4gKwlpZiAocmMgPCAwKQ0KPiArCQlyZXR1cm4gZmFsc2U7DQo+ICsNCj4gKwlpZiAoIShj aGkgJiBHTE9CQUxfTU1JT19DSElfQ1JEWSkpIHsNCj4gKwkJaWYgKHZlcmJvc2UpDQo+ICsJCQlk ZXZfZXJyKCZvY3hscG1lbS0+ZGV2LCAiY29udHJvbGxlciBpcyBub3QgcmVhZHkuXG4iKTsNCj4g KwkJcmV0dXJuIGZhbHNlOw0KPiArCX0NCj4gKw0KPiArCWlmICghKGNoaSAmIEdMT0JBTF9NTUlP X0NISV9NQSkpIHsNCj4gKwkJaWYgKHZlcmJvc2UpDQo+ICsJCQlkZXZfZXJyKCZvY3hscG1lbS0+ ZGV2LA0KPiArCQkJCSJjb250cm9sbGVyIGRvZXMgbm90IGhhdmUgbWVtb3J5IGF2YWlsYWJsZS5c biIpOw0KPiArCQlyZXR1cm4gZmFsc2U7DQo+ICsJfQ0KPiArDQo+ICsJcmV0dXJuIHRydWU7DQo+ ICt9DQo+ICsNCj4gICAvKioNCj4gICAgKiBhbGxvY2F0ZV9taW5vcigpIC0gQWxsb2NhdGUgYSBt aW5vciBudW1iZXIgdG8gdXNlIGZvciBhbiBPcGVuQ0FQSSBwbWVtIGRldmljZQ0KPiAgICAqIEBv Y3hscG1lbTogdGhlIGRldmljZSBtZXRhZGF0YQ0KPiBAQCAtMzI4LDYgKzM1OSw0OCBAQCBzdGF0 aWMgdm9pZCBvY3hscG1lbV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+ICAgCX0NCj4g ICB9DQo+ICAgDQo+ICsvKioNCj4gKyAqIHJlYWRfZGV2aWNlX21ldGFkYXRhKCkgLSBSZXRyaWV2 ZSBjb25maWcgaW5mb3JtYXRpb24gZnJvbSB0aGUgQUZVIGFuZCBzYXZlIGl0IGZvciBmdXR1cmUg dXNlDQo+ICsgKiBAb2N4bHBtZW06IHRoZSBkZXZpY2UgbWV0YWRhdGENCj4gKyAqIFJldHVybjog MCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBvbiBmYWlsdXJlDQo+ICsgKi8NCj4gK3N0YXRpYyBpbnQg cmVhZF9kZXZpY2VfbWV0YWRhdGEoc3RydWN0IG9jeGxwbWVtICpvY3hscG1lbSkNCj4gK3sNCj4g Kwl1NjQgdmFsOw0KPiArCWludCByYzsNCj4gKw0KPiArCXJjID0gb2N4bF9nbG9iYWxfbW1pb19y ZWFkNjQob2N4bHBtZW0tPm9jeGxfYWZ1LCBHTE9CQUxfTU1JT19DQ0FQMCwNCj4gKwkJCQkgICAg IE9DWExfTElUVExFX0VORElBTiwgJnZhbCk7DQo+ICsJaWYgKHJjKQ0KPiArCQlyZXR1cm4gcmM7 DQo+ICsNCj4gKwlvY3hscG1lbS0+c2NtX3JldmlzaW9uID0gdmFsICYgMHhGRkZGOw0KPiArCW9j eGxwbWVtLT5yZWFkX2xhdGVuY3kgPSAodmFsID4+IDMyKSAmIDB4RkY7DQo+ICsJb2N4bHBtZW0t PnJlYWRpbmVzc190aW1lb3V0ID0gKHZhbCA+PiA0OCkgJiAweDBGOw0KPiArCW9jeGxwbWVtLT5t ZW1vcnlfYXZhaWxhYmxlX3RpbWVvdXQgPSB2YWwgPj4gNTI7DQo+ICsNCj4gKwlyYyA9IG9jeGxf Z2xvYmFsX21taW9fcmVhZDY0KG9jeGxwbWVtLT5vY3hsX2FmdSwgR0xPQkFMX01NSU9fQ0NBUDEs DQo+ICsJCQkJICAgICBPQ1hMX0xJVFRMRV9FTkRJQU4sICZ2YWwpOw0KPiArCWlmIChyYykNCj4g KwkJcmV0dXJuIHJjOw0KPiArDQo+ICsJb2N4bHBtZW0tPm1heF9jb250cm9sbGVyX2R1bXBfc2l6 ZSA9IHZhbCAmIDB4RkZGRkZGRkY7DQo+ICsNCj4gKwkvLyBFeHRyYWN0IGZpcm13YXJlIHZlcnNp b24gdGV4dA0KPiArCXJjID0gb2N4bF9nbG9iYWxfbW1pb19yZWFkNjQob2N4bHBtZW0tPm9jeGxf YWZ1LCBHTE9CQUxfTU1JT19GV1ZFUiwNCj4gKwkJCQkgICAgIE9DWExfSE9TVF9FTkRJQU4sICh1 NjQgKilvY3hscG1lbS0+ZndfdmVyc2lvbik7DQo+ICsJaWYgKHJjKQ0KPiArCQlyZXR1cm4gcmM7 DQo+ICsNCj4gKwlvY3hscG1lbS0+ZndfdmVyc2lvbls4XSA9ICdcMCc7DQo+ICsNCj4gKwlkZXZf aW5mbygmb2N4bHBtZW0tPmRldiwNCj4gKwkJICJGaXJtd2FyZSB2ZXJzaW9uICclcycgU0NNIHJl dmlzaW9uICVkOiVkXG4iLCBvY3hscG1lbS0+ZndfdmVyc2lvbiwNCj4gKwkJIG9jeGxwbWVtLT5z Y21fcmV2aXNpb24gPj4gNCwgb2N4bHBtZW0tPnNjbV9yZXZpc2lvbiAmIDB4MEYpOw0KPiArDQo+ ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gICAvKioNCj4gICAgKiBwcm9iZV9mdW5jdGlvbjAo KSAtIFNldCB1cCBmdW5jdGlvbiAwIGZvciBhbiBPcGVuQ0FQSSBwZXJzaXN0ZW50IG1lbW9yeSBk ZXZpY2UNCj4gICAgKiBUaGlzIGlzIGltcG9ydGFudCBhcyBpdCBlbmFibGVzIHRlbXBsYXRlcyBo aWdoZXIgdGhhbiAwIGFjcm9zcyBhbGwgb3RoZXIgZnVuY3Rpb25zLA0KPiBAQCAtMzY4LDYgKzQ0 MSw3IEBAIHN0YXRpYyBpbnQgcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVj dCBwY2lfZGV2aWNlX2lkICplbnQpDQo+ICAgew0KPiAgIAlzdHJ1Y3Qgb2N4bHBtZW0gKm9jeGxw bWVtOw0KPiAgIAlpbnQgcmM7DQo+ICsJdTE2IGVsYXBzZWQsIHRpbWVvdXQ7DQo+ICAgDQo+ICAg CWlmIChQQ0lfRlVOQyhwZGV2LT5kZXZmbikgPT0gMCkNCj4gICAJCXJldHVybiBwcm9iZV9mdW5j dGlvbjAocGRldik7DQo+IEBAIC00MjIsNiArNDk2LDI0IEBAIHN0YXRpYyBpbnQgcHJvYmUoc3Ry dWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpDQo+ICAg CQlnb3RvIGVycjsNCj4gICAJfQ0KPiAgIA0KPiArCWlmIChyZWFkX2RldmljZV9tZXRhZGF0YShv Y3hscG1lbSkpIHsNCj4gKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiQ291bGQgbm90IHJlYWQgbWV0 YWRhdGFcbiIpOw0KDQoNCg0KTmVlZCB0byBzZXQgcmMNCg0KDQoNCj4gKwkJZ290byBlcnI7DQo+ ICsJfQ0KPiArDQo+ICsJZWxhcHNlZCA9IDA7DQo+ICsJdGltZW91dCA9IG9jeGxwbWVtLT5yZWFk aW5lc3NfdGltZW91dCArIG9jeGxwbWVtLT5tZW1vcnlfYXZhaWxhYmxlX3RpbWVvdXQ7DQo+ICsJ d2hpbGUgKCFpc191c2FibGUob2N4bHBtZW0sIGZhbHNlKSkgew0KPiArCQlpZiAoZWxhcHNlZCsr ID4gdGltZW91dCkgew0KPiArCQkJZGV2X3dhcm4oJm9jeGxwbWVtLT5kZXYsICJPcGVuQ0FQSSBQ ZXJzaXN0ZW50IE1lbW9yeSByZWFkeSB0aW1lb3V0LlxuIik7DQo+ICsJCQkodm9pZClpc191c2Fi bGUob2N4bHBtZW0sIHRydWUpOw0KDQoNCkkgZ3Vlc3MgdGhhdCBleHRyYSBjYWxsIHRvIGlzX3Vz YWJsZSgpIGlzIGp1c3QgdG8gbG9nIHRoZSBjYXVzZSBvZiB0aGUgDQplcnJvci4gSG93ZXZlciwg d2l0aCBzb21lIGJhZCBsdWNrLCB0aGUgY2FsbCBjb3VsZCBub3cgc3VjY2VlZC4NCg0KDQogICBG cmVkDQoNCg0KPiArCQkJcmMgPSAtRU5YSU87DQo+ICsJCQlnb3RvIGVycjsNCj4gKwkJfQ0KPiAr DQo+ICsJCW1zbGVlcCgxMDAwKTsNCj4gKwl9DQo+ICsNCj4gICAJcmMgPSByZWdpc3Rlcl9scGNf bWVtKG9jeGxwbWVtKTsNCj4gICAJaWYgKHJjKSB7DQo+ICAgCQlkZXZfZXJyKCZwZGV2LT5kZXYs ICJDb3VsZCBub3QgcmVnaXN0ZXIgT3BlbkNBUEkgcGVyc2lzdGVudCBtZW1vcnkgd2l0aCBsaWJu dmRpbW1cbiIpOw0KPiBkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52 L3BtZW0vb2N4bF9pbnRlcm5hbC5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3Bt ZW0vb2N4bF9pbnRlcm5hbC5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAw MDAwMDAwMC4uNjE3Y2E5NDNiMWI4DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvYXJjaC9wb3dl cnBjL3BsYXRmb3Jtcy9wb3dlcm52L3BtZW0vb2N4bF9pbnRlcm5hbC5jDQo+IEBAIC0wLDAgKzEs MTkgQEANCj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKw0KPiArLy8gQ29w eXJpZ2h0IDIwMTkgSUJNIENvcnAuDQo+ICsNCj4gKyNpbmNsdWRlIDxtaXNjL29jeGwuaD4NCj4g KyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPg0KPiArI2luY2x1ZGUgIm9jeGxfaW50ZXJuYWwuaCIN Cj4gKw0KPiAraW50IG9jeGxwbWVtX2NoaShjb25zdCBzdHJ1Y3Qgb2N4bHBtZW0gKm9jeGxwbWVt LCB1NjQgKmNoaSkNCj4gK3sNCj4gKwl1NjQgdmFsOw0KPiArCWludCByYyA9IG9jeGxfZ2xvYmFs X21taW9fcmVhZDY0KG9jeGxwbWVtLT5vY3hsX2FmdSwgR0xPQkFMX01NSU9fQ0hJLA0KPiArCQkJ CQkgT0NYTF9MSVRUTEVfRU5ESUFOLCAmdmFsKTsNCj4gKwlpZiAocmMpDQo+ICsJCXJldHVybiBy YzsNCj4gKw0KPiArCSpjaGkgPSB2YWw7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gZGlm ZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wbWVtL29jeGxfaW50ZXJu YWwuaCBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wbWVtL29jeGxfaW50ZXJuYWwu aA0KPiBpbmRleCA5Y2YzZTQyNzUwZTcuLmJhMDMwMTUzM2QwMCAxMDA2NDQNCj4gLS0tIGEvYXJj aC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3BtZW0vb2N4bF9pbnRlcm5hbC5oDQo+ICsrKyBi L2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wbWVtL29jeGxfaW50ZXJuYWwuaA0KPiBA QCAtOTcsNCArOTcsMjggQEAgc3RydWN0IG9jeGxwbWVtIHsNCj4gICAJdm9pZCAqbWV0YWRhdGFf YWRkcjsNCj4gICAJc3RydWN0IHJlc291cmNlIHBtZW1fcmVzOw0KPiAgIAlzdHJ1Y3QgbmRfcmVn aW9uICpuZF9yZWdpb247DQo+ICsJY2hhciBmd192ZXJzaW9uWzgrMV07DQo+ICsNCj4gKwl1MzIg bWF4X2NvbnRyb2xsZXJfZHVtcF9zaXplOw0KPiArCXUxNiBzY21fcmV2aXNpb247IC8vIG1ham9y L21pbm9yDQo+ICsJdTggcmVhZGluZXNzX3RpbWVvdXQ7ICAvKiBUaGUgd29yc3QgY2FzZSB0aW1l IChpbiBzZWNvbmRzKSB0aGF0IHRoZSBob3N0IHNoYWxsDQo+ICsJCQkJKiB3YWl0IGZvciB0aGUg Y29udHJvbGxlciB0byBiZWNvbWUgb3BlcmF0aW9uYWwgZm9sbG93aW5nIGEgcmVzZXQgKENISS5D UkRZKS4NCj4gKwkJCQkqLw0KPiArCXU4IG1lbW9yeV9hdmFpbGFibGVfdGltZW91dDsgICAvKiBU aGUgd29yc3QgY2FzZSB0aW1lIChpbiBzZWNvbmRzKSB0aGF0IHRoZSBob3N0IHNoYWxsDQo+ICsJ CQkJCSogd2FpdCBmb3IgbWVtb3J5IHRvIGJlY29tZSBhdmFpbGFibGUgZm9sbG93aW5nIGEgcmVz ZXQgKENISS5NQSkuDQo+ICsJCQkJCSovDQo+ICsNCj4gKwl1MTYgcmVhZF9sYXRlbmN5OyAvKiBU aGUgbm9taW5hbCBtZWFzdXJlIG9mIGxhdGVuY3kgKGluIG5hbm9zZWNvbmRzKQ0KPiArCQkJICAg KiBhc3NvY2lhdGVkIHdpdGggYW4gdW5hc3Npc3RlZCByZWFkIG9mIGEgbWVtb3J5IGJsb2NrLg0K PiArCQkJICAgKiBUaGlzIHJlcHJlc2VudHMgdGhlIGNhcGFiaWxpdHkgb2YgdGhlIHJhdyBtZWRp YSB0ZWNobm9sb2d5IHdpdGhvdXQgYXNzaXN0YW5jZQ0KPiArCQkJICAgKi8NCj4gICB9Ow0KPiAr DQo+ICsvKioNCj4gKyAqIG9jeGxwbWVtX2NoaSgpIC0gR2V0IHRoZSB2YWx1ZSBvZiB0aGUgQ0hJ IHJlZ2lzdGVyDQo+ICsgKiBAb2N4bHBtZW06IHRoZSBkZXZpY2UgbWV0YWRhdGENCj4gKyAqIEBj aGk6IHJldHVybnMgdGhlIENISSB2YWx1ZQ0KPiArICoNCj4gKyAqIFJldHVybnMgMCBvbiBzdWNj ZXNzLCBuZWdhdGl2ZSBvbiBlcnJvcg0KPiArICovDQo+ICtpbnQgb2N4bHBtZW1fY2hpKGNvbnN0 IHN0cnVjdCBvY3hscG1lbSAqb2N4bHBtZW0sIHU2NCAqY2hpKTsNCj4gDQpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1udmRpbW0gbWFpbGluZyBs aXN0IC0tIGxpbnV4LW52ZGltbUBsaXN0cy4wMS5vcmcKVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBl bWFpbCB0byBsaW51eC1udmRpbW0tbGVhdmVAbGlzdHMuMDEub3JnCg==