Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp1038034iob; Fri, 13 May 2022 20:36:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx0QwyuiUuuXmgGgSukJ/E6Cbn8X9bw6NLZnjcHDkshp8R/Bed9ydqJRSGIbt8EJWR+Vn2j X-Received: by 2002:a05:6000:242:b0:20a:c4aa:d070 with SMTP id m2-20020a056000024200b0020ac4aad070mr6106465wrz.606.1652499406943; Fri, 13 May 2022 20:36:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652499406; cv=none; d=google.com; s=arc-20160816; b=L5UnkwmpL4XFdedSgtQOD6pBnp+GCAz15x7jj4zmgbSWNuyCQJvhLZCmLMj3SFRx+5 EXCuBLnTW1VyXN7KjAilQS5dV+bBXTMQe//L+AFVQvKb2Jws+cHTOpD6wzsTSzuBaiLT 8STlaqTN46jHN5qAek7L0+3rJEfwjEogu2xDPTvE09B7ssbElLQ+LG04vztLbbpciHca 1WawsEzDZg6L8ZMC4kVXfLSnxU/hzHvuS/s/R7m2KYkipnTNDuK32kNQcWBjggJxVW0k R/lTDn9b5Fesa4zAGXNXyCeOpK6JSRUBT8S/wXhGUcd9zVkAOnpA7ztN56ln2tyeHvPA pwpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:mime-version :content-transfer-encoding:references:in-reply-to:subject:cc:to:from :date:dkim-signature; bh=jkns/YI1h56hSeaNUg9E87IwvK7N+GEzFzKxPVnd7E0=; b=j7xvADbUX24cOHrGyroNgN5BC3xNF6sLUoNdM553A9V/KY27Yi9Sf2XeBHQv1j0r9L xADoSpwQtg8Huz07liTks1EEFvqfD5C3EIQZkiJ1Bs8ESmLiDEroIT44J1UtXOrXOnv8 OD8QFp+ntPf8cajgamvZ4EHl99/SWpJkDDhKEPcHEe+Dsrm7xxuz3q5q87RUB9vJXQJd 1c+DeTKVHIiW6INbITcHYLkdRZ3iY/+5nPE/CA0yDKOlxJkRny+KObVJkI1BWmlHQlmU +7XY5qnlTm/Wl4ym+pvjlGYd8g4tmF7h2XvWrw/iy4qkAVfV1OXyfnjQqjcv1vM/jUQf k+nw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@126.com header.s=s110527 header.b="O/Jr93P4"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=126.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id v8-20020adfe288000000b0020ada0060besi4108174wri.104.2022.05.13.20.36.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 May 2022 20:36:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@126.com header.s=s110527 header.b="O/Jr93P4"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=126.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id C56FA43F7FF; Fri, 13 May 2022 17:12:31 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349847AbiELBSU (ORCPT + 99 others); Wed, 11 May 2022 21:18:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58900 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348697AbiELBST (ORCPT ); Wed, 11 May 2022 21:18:19 -0400 Received: from m1522.mail.126.com (m1522.mail.126.com [220.181.15.22]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 6D669663F5; Wed, 11 May 2022 18:18:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=Date:From:Subject:MIME-Version:Message-ID; bh=TY4hf 9oZjRQcpUBwi+TDCUxkP/XLrKI2Cg97mkJRFgY=; b=O/Jr93P44meDWT9jD8dCF Ldnf87Qtvs0vgCNL/vNrjOxhY4tKiy7he/AYK0F/qVyb9CYyUvc/569FZV8vU1mM ea41XrPR4Y6qx58mtllA6cuPQP3SLb0opwTxHu2pigFlMAJcBpELV3hEcsikUdt/ +83OgJ0miJ5sXn4AQoMxpw= Received: from zhaojunkui2008$126.com ( [112.80.34.205] ) by ajax-webmail-wmsvr22 (Coremail) ; Thu, 12 May 2022 09:15:53 +0800 (CST) X-Originating-IP: [112.80.34.205] Date: Thu, 12 May 2022 09:15:53 +0800 (CST) From: z To: "Vincent MAILHOL" Cc: "Wolfgang Grandegger" , "Marc Kleine-Budde" , "David S. Miller" , "Jakub Kicinski" , "Paolo Abeni" , =?UTF-8?Q?Stefan_M=C3=A4tje?= , linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bernard@vivo.com Subject: Re:Re: [PATCH v2] usb/peak_usb: cleanup code X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.13 build 20220113(9671e152) Copyright (c) 2002-2022 www.mailtech.cn 126com In-Reply-To: References: <20220511130240.790771-1-zhaojunkui2008@126.com> Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=UTF-8 MIME-Version: 1.0 Message-ID: <4df6dfee.a5b.180b5d62b98.Coremail.zhaojunkui2008@126.com> X-Coremail-Locale: zh_CN X-CM-TRANSID: FsqowACntmLKX3xiYagpAA--.6818W X-CM-SenderInfo: p2kd0y5xqn3xasqqmqqrswhudrp/1tbiYAr+qlpEHVXu+QAAs- X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,SPOOFED_FREEMAIL_NO_RDNS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org CgpBdCAyMDIyLTA1LTExIDIyOjI4OjQ3LCAiVmluY2VudCBNQUlMSE9MIiA8bWFpbGhvbC52aW5j ZW50QHdhbmFkb28uZnI+IHdyb3RlOgo+T24gV2VkLiAxMSBNYXkgMjAyMiBhdCAyMjowMiwgQmVy bmFyZCBaaGFvIDx6aGFvanVua3VpMjAwOEAxMjYuY29tPiB3cm90ZToKPj4gVGhlIHZhcmlhYmxl IGZpIGFuZCBiaSBvbmx5IHVzZWQgaW4gYnJhbmNoIGlmICghZGV2LT5wcmV2X3NpYmxpbmdzKQo+ PiAsIGZpICYgYmkgbm90IGttYWxsb2MgaW4gZWxzZSBicmFuY2gsIHNvIG1vdmUga2ZyZWUgaW50 byBicmFuY2gKPj4gaWYgKCFkZXYtPnByZXZfc2libGluZ3MpLHRoaXMgY2hhbmdlIGlzIHRvIGNs ZWFudXAgdGhlIGNvZGUgYSBiaXQuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IEJlcm5hcmQgWmhhbyA8 emhhb2p1bmt1aTIwMDhAMTI2LmNvbT4KPj4KPj4gLS0tCj4+IENoYW5nZXMgc2luY2UgVjE6Cj4+ ICogbW92ZSBhbGwgdGhlIGNvbnRlbnQgb2YgdGhlIGlmICghZGV2LT5wcmV2X3NpYmxpbmdzKSB0 byBhIG5ldwo+PiBmdW5jdGlvbi4KPj4gLS0tCj4+ICBkcml2ZXJzL25ldC9jYW4vdXNiL3BlYWtf dXNiL3BjYW5fdXNiX3Byby5jIHwgNTcgKysrKysrKysrKysrKy0tLS0tLS0tCj4+ICAxIGZpbGUg Y2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9jYW4vdXNiL3BlYWtfdXNiL3BjYW5fdXNiX3Byby5jIGIvZHJpdmVy cy9uZXQvY2FuL3VzYi9wZWFrX3VzYi9wY2FuX3VzYl9wcm8uYwo+PiBpbmRleCBlYmUwODdmMjU4 ZTMuLjVlNDcyZmUwODZhOCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9uZXQvY2FuL3VzYi9wZWFr X3VzYi9wY2FuX3VzYl9wcm8uYwo+PiArKysgYi9kcml2ZXJzL25ldC9jYW4vdXNiL3BlYWtfdXNi L3BjYW5fdXNiX3Byby5jCj4+IEBAIC04NDEsMzIgKzg0MSwyOCBAQCBzdGF0aWMgaW50IHBjYW5f dXNiX3Byb19zdG9wKHN0cnVjdCBwZWFrX3VzYl9kZXZpY2UgKmRldikKPj4gICAgICAgICByZXR1 cm4gMDsKPj4gIH0KPj4KPj4gLS8qCj4+IC0gKiBjYWxsZWQgd2hlbiBwcm9iaW5nIHRvIGluaXRp YWxpemUgYSBkZXZpY2Ugb2JqZWN0Lgo+PiAtICovCj4+IC1zdGF0aWMgaW50IHBjYW5fdXNiX3By b19pbml0KHN0cnVjdCBwZWFrX3VzYl9kZXZpY2UgKmRldikKPj4gK3N0YXRpYyBpbnQgcGNhbl91 c2JfcHJvX2luaXRfZmlyc3RfY2hhbm5lbChzdHJ1Y3QgcGVha191c2JfZGV2aWNlICpkZXYsIHN0 cnVjdCBwY2FuX3VzYl9wcm9faW50ZXJmYWNlICoqdXNiX2lmKQo+PiAgewo+PiAtICAgICAgIHN0 cnVjdCBwY2FuX3VzYl9wcm9fZGV2aWNlICpwZGV2ID0KPj4gLSAgICAgICAgICAgICAgICAgICAg ICAgY29udGFpbmVyX29mKGRldiwgc3RydWN0IHBjYW5fdXNiX3Byb19kZXZpY2UsIGRldik7Cj4+ IC0gICAgICAgc3RydWN0IHBjYW5fdXNiX3Byb19pbnRlcmZhY2UgKnVzYl9pZiA9IE5VTEw7Cj4+ IC0gICAgICAgc3RydWN0IHBjYW5fdXNiX3Byb19md2luZm8gKmZpID0gTlVMTDsKPj4gLSAgICAg ICBzdHJ1Y3QgcGNhbl91c2JfcHJvX2JsaW5mbyAqYmkgPSBOVUxMOwo+PiArICAgICAgIHN0cnVj dCBwY2FuX3VzYl9wcm9faW50ZXJmYWNlICpwdXNiX2lmID0gTlVMTDsKPgo+Tml0cGljayBidXQg SSB3b3VsZCBleHBlY3QgdGhlIGFyZ3VtZW50IG9mIHRoZSBmdW5jdGlvbiB0byBiZSBuYW1lZCBw dXNiX2lmOgo+Cj5zdHJ1Y3QgcGNhbl91c2JfcHJvX2ludGVyZmFjZSAqKnB1c2JfaWYKPgo+QW5k IHRoaXMgdmFyaWFibGUgdG8gYmUgY2FsbCB1c2JfaWY6Cj4KPnN0cnVjdCBwY2FuX3VzYl9wcm9f aW50ZXJmYWNlICp1c2JfaWYgPSBOVUxMOwo+Cj5UaGlzIGlzIHRvIGJlIGNvbnNpc3RlbnQgd2l0 aCBwY2FuX3VzYl9wcm9faW5pdCgpIHdoZXJlIHRoZSBzaW5nbGUKPnBvaW50ZXIgaXMgYWxzbyBu YW1lZCB1c2JfaWYgKGFuZCBub3QgcHVzYl9pZikuCj4KPkFsc28sIHlvdSBtaWdodCBhcyB3ZWxs IGNvbnNpZGVyIG5vdCB1c2luZyBhbmQgaW50ZXJtZWRpYXRlIHZhcmlhYmxlCj5hbmQganVzdCBk byAqcHVzYl9pZiB0aHJvdWdob3V0IGFsbCB0aGlzIGhlbHBlciBmdW5jdGlvbiBpbnN0ZWFkLgo+ Cj4+ICAgICAgICAgaW50IGVycjsKPj4KPj4gICAgICAgICAvKiBkbyB0aGlzIGZvciAxc3QgY2hh bm5lbCBvbmx5ICovCj4+ICAgICAgICAgaWYgKCFkZXYtPnByZXZfc2libGluZ3MpIHsKPj4gKyAg ICAgICAgICAgICAgIHN0cnVjdCBwY2FuX3VzYl9wcm9fZndpbmZvICpmaSA9IE5VTEw7Cj4+ICsg ICAgICAgICAgICAgICBzdHJ1Y3QgcGNhbl91c2JfcHJvX2JsaW5mbyAqYmkgPSBOVUxMOwo+PiAr Cj4+ICAgICAgICAgICAgICAgICAvKiBhbGxvY2F0ZSBuZXRkZXZpY2VzIGNvbW1vbiBzdHJ1Y3R1 cmUgYXR0YWNoZWQgdG8gZmlyc3Qgb25lICovCj4+IC0gICAgICAgICAgICAgICB1c2JfaWYgPSBr emFsbG9jKHNpemVvZihzdHJ1Y3QgcGNhbl91c2JfcHJvX2ludGVyZmFjZSksCj4+ICsgICAgICAg ICAgICAgICBwdXNiX2lmID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHBjYW5fdXNiX3Byb19pbnRl cmZhY2UpLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRlBfS0VSTkVMKTsK Pj4gICAgICAgICAgICAgICAgIGZpID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHBjYW5fdXNiX3By b19md2luZm8pLCBHRlBfS0VSTkVMKTsKPj4gICAgICAgICAgICAgICAgIGJpID0ga21hbGxvYyhz aXplb2Yoc3RydWN0IHBjYW5fdXNiX3Byb19ibGluZm8pLCBHRlBfS0VSTkVMKTsKPj4gLSAgICAg ICAgICAgICAgIGlmICghdXNiX2lmIHx8ICFmaSB8fCAhYmkpIHsKPj4gKyAgICAgICAgICAgICAg IGlmICghcHVzYl9pZiB8fCAhZmkgfHwgIWJpKSB7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAg IGVyciA9IC1FTk9NRU07Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyX291dDsK Pgo+RGlkIHlvdSB0ZXN0IHRoYXQgY29kZT8gSGVyZSwgeW91IGFyZSBrZWVwaW5nIHRoZSBvcmln aW5hbCBlcnJfb3V0Cj5sYWJlbCwgY29ycmVjdD8gQXJlbid0IHRoZSB2YXJpYWJsZXMgZmkgYW5k IGJpIG91dCBvZiBzY29wZSBhZnRlciB0aGUKPmVycl9vdXQgbGFiZWw/Cj4KPj4gICAgICAgICAg ICAgICAgIH0KPj4KPj4gICAgICAgICAgICAgICAgIC8qIG51bWJlciBvZiB0cyBtc2dzIHRvIGln bm9yZSBiZWZvcmUgdGFraW5nIG9uZSBpbnRvIGFjY291bnQgKi8KPj4gLSAgICAgICAgICAgICAg IHVzYl9pZi0+Y21faWdub3JlX2NvdW50ID0gNTsKPj4gKyAgICAgICAgICAgICAgIHB1c2JfaWYt PmNtX2lnbm9yZV9jb3VudCA9IDU7Cj4+Cj4+ICAgICAgICAgICAgICAgICAvKgo+PiAgICAgICAg ICAgICAgICAgICogZXhwbGljaXQgdXNlIG9mIGRldl94eHgoKSBpbnN0ZWFkIG9mIG5ldGRldl94 eHgoKSBoZXJlOgo+PiBAQCAtOTAzLDE4ICs4OTksMTQgQEAgc3RhdGljIGludCBwY2FuX3VzYl9w cm9faW5pdChzdHJ1Y3QgcGVha191c2JfZGV2aWNlICpkZXYpCj4+ICAgICAgICAgICAgICAgICAg ICAgIHBjYW5fdXNiX3Byby5uYW1lLAo+PiAgICAgICAgICAgICAgICAgICAgICBiaS0+aHdfcmV2 LCBiaS0+c2VyaWFsX251bV9oaSwgYmktPnNlcmlhbF9udW1fbG8sCj4+ICAgICAgICAgICAgICAg ICAgICAgIHBjYW5fdXNiX3Byby5jdHJsX2NvdW50KTsKPj4gKwo+PiArICAgICAgICAgICAgICAg a2ZyZWUoYmkpOwo+PiArICAgICAgICAgICAgICAga2ZyZWUoZmkpOwo+PiAgICAgICAgIH0gZWxz ZSB7Cj4+IC0gICAgICAgICAgICAgICB1c2JfaWYgPSBwY2FuX3VzYl9wcm9fZGV2X2lmKGRldi0+ cHJldl9zaWJsaW5ncyk7Cj4+ICsgICAgICAgICAgICAgICBwdXNiX2lmID0gcGNhbl91c2JfcHJv X2Rldl9pZihkZXYtPnByZXZfc2libGluZ3MpOwo+PiAgICAgICAgIH0KPgo+U29ycnkgaWYgSSB3 YXMgbm90IGNsZWFyIGJ1dCBJIHdhcyB0aGlua2luZyBvZiBqdXN0IG1vdmluZyB0aGUgaWYKPmJs b2NrIGluIGEgbmV3IGZ1bmN0aW9uIGFuZCBsZWF2aW5nIHRoZSBlbHNlIHBhcnQgb2YgdGhlIG9y aWdpbmFsIG9uZQo+KGMuZi4gYmVsb3cpLiBUaGlzIHdheSwgeW91IGxvc2Ugb25lIGxldmVsIG9u IGluZGVudGF0aW9uIGFuZCB5b3UgY2FuCj5oYXZlIHRoZSBkZWNsYXJhdGlvbiwgdGhlIGttYWxs b2MoKSBhbmQgdGhlIGVycl9vdXQgbGFiZWwgYWxsIGF0IHRoZQo+c2FtZSBpbmRlbnRhdGlvbiBs ZXZlbCBpbiB0aGUgZnVuY3Rpb24ncyBtYWluIGJsb2NrLgo+Cj4+IC0gICAgICAgcGRldi0+dXNi X2lmID0gdXNiX2lmOwo+PiAtICAgICAgIHVzYl9pZi0+ZGV2W2Rldi0+Y3RybF9pZHhdID0gZGV2 Owo+PiAtCj4+IC0gICAgICAgLyogc2V0IExFRCBpbiBkZWZhdWx0IHN0YXRlIChlbmQgb2YgaW5p dCBwaGFzZSkgKi8KPj4gLSAgICAgICBwY2FuX3VzYl9wcm9fc2V0X2xlZChkZXYsIFBDQU5fVVNC UFJPX0xFRF9ERVZJQ0UsIDEpOwo+PiAtCj4+IC0gICAgICAga2ZyZWUoYmkpOwo+PiAtICAgICAg IGtmcmVlKGZpKTsKPj4gKyAgICAgICAqdXNiX2lmID0gcHVzYl9pZjsKPj4KPj4gICAgICAgICBy ZXR1cm4gMDsKPj4KPj4gQEAgLTkyNiw2ICs5MTgsMjkgQEAgc3RhdGljIGludCBwY2FuX3VzYl9w cm9faW5pdChzdHJ1Y3QgcGVha191c2JfZGV2aWNlICpkZXYpCj4+ICAgICAgICAgcmV0dXJuIGVy cjsKPj4gIH0KPj4KPj4gKy8qCj4+ICsgKiBjYWxsZWQgd2hlbiBwcm9iaW5nIHRvIGluaXRpYWxp emUgYSBkZXZpY2Ugb2JqZWN0Lgo+PiArICovCj4+ICtzdGF0aWMgaW50IHBjYW5fdXNiX3Byb19p bml0KHN0cnVjdCBwZWFrX3VzYl9kZXZpY2UgKmRldikKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3Qg cGNhbl91c2JfcHJvX2RldmljZSAqcGRldiA9Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGNv bnRhaW5lcl9vZihkZXYsIHN0cnVjdCBwY2FuX3VzYl9wcm9fZGV2aWNlLCBkZXYpOwo+PiArICAg ICAgIHN0cnVjdCBwY2FuX3VzYl9wcm9faW50ZXJmYWNlICp1c2JfaWYgPSBOVUxMOwo+PiArICAg ICAgIGludCBlcnI7Cj4+ICsKPj4gKyAgICAgICBlcnIgPSBwY2FuX3VzYl9wcm9faW5pdF9maXJz dF9jaGFubmVsKGRldiwgJnVzYl9pZik7Cj4+ICsgICAgICAgaWYgKGVycikKPj4gKyAgICAgICAg ICAgICAgIHJldHVybiBlcnI7Cj4KPkkgd2FzIHRoaW5raW5nIG9mIHRoaXM6Cj4KPiAgICAgICAg aWYgKCFkZXYtPnByZXZfc2libGluZ3MpIHsKPiAgICAgICAgICAgICAgZXJyID0gcGNhbl91c2Jf cHJvX2luaXRfZmlyc3RfY2hhbm5lbChkZXYsICZ1c2JfaWYpOwo+ICAgICAgICAgICAgICBpZiAo ZXJyKQo+ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycjsKPiAgICAgICB9IGVsc2Ugewo+ ICAgICAgICAgICAgICAgdXNiX2lmID0gcGNhbl91c2JfcHJvX2Rldl9pZihkZXYtPnByZXZfc2li bGluZ3MpOwo+ICAgICAgICB9CgpIaSBWaW5jZW50IE1haWxob2w6CgpTb3JyeSB0aGF0IEkgbWFk ZSBhIG1pc3Rha2UsIEkgd2lsbCB2ZXJpZnkgaXQgbG9jYWxseSwgYW5kIHRoZW4gdXBsb2FkIGl0 IGFnYWluIGFmdGVyIHRoZSB2ZXJpZmljYXRpb24gaXMgT0suClRoYW5rcyEKCkJSLy9CZXJuYXJk Cgo+PiArCj4+ICsgICAgICAgcGRldi0+dXNiX2lmID0gdXNiX2lmOwo+PiArICAgICAgIHVzYl9p Zi0+ZGV2W2Rldi0+Y3RybF9pZHhdID0gZGV2Owo+PiArCj4+ICsgICAgICAgLyogc2V0IExFRCBp biBkZWZhdWx0IHN0YXRlIChlbmQgb2YgaW5pdCBwaGFzZSkgKi8KPj4gKyAgICAgICBwY2FuX3Vz Yl9wcm9fc2V0X2xlZChkZXYsIFBDQU5fVVNCUFJPX0xFRF9ERVZJQ0UsIDEpOwo+PiArCj4+ICsg ICAgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gIHN0YXRpYyB2b2lkIHBjYW5fdXNiX3Byb19l eGl0KHN0cnVjdCBwZWFrX3VzYl9kZXZpY2UgKmRldikKPj4gIHsKPj4gICAgICAgICBzdHJ1Y3Qg cGNhbl91c2JfcHJvX2RldmljZSAqcGRldiA9Cj4+IC0tCj4+IDIuMzMuMQo+Pgo=