Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp237422iob; Mon, 2 May 2022 18:07:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyCItpNbm5q2a8KL8d1NaFB2n5hONcL6BOd73ujw/HiSFlF6cFLhW/3WjWUdDlbGOXbB2JX X-Received: by 2002:a17:902:f70f:b0:153:ebfe:21b3 with SMTP id h15-20020a170902f70f00b00153ebfe21b3mr14333238plo.119.1651540039681; Mon, 02 May 2022 18:07:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651540039; cv=none; d=google.com; s=arc-20160816; b=kPhWlHHpynejbIMUQiLn4UpUUEDjOPfO0X++wt2RJ53El3OBj94EWrV6xSN75UH/NY U3rzmi3R+0cCx1vP7rMve8NbLZHeo53F9n4jsJHJgjNAnLEDGTQQcxu/4WD9AtYEuBBm DKnzZZucZJ2DMAN1gjeJcxzBw8VSgY9Nmogs+ADfK6txLz2htfFm8hfudZfPvpT8kg4c 6JuZpKCd7vDC/VB6yQLqh/J4BAdVFy9NKNO+eMB9e9dDsAU7giB5GVZxuo3Ss+pjfllE Lqi6dd+nHQ1k1rklJ4wjk2QMF6AvJv6vLaTCCz0pXryzFgjuJ+wZYj9Q9qffBM0wORro 2O8A== 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; bh=hFJt0UTjxl8+qea05rP1Wck3iGPt8LwaF/zVm4Y/vIA=; b=g9MwtsSeufnNF+uzS2/z2RrBzVB/iJ1IVHAZKC82zYL9Wc+Tf64WrfY0k+r7g8Hsen nWytTVCLmRrbfxz1mdchA60q81o6b2KHq3it6e7t/0FsniP7ltYg1CyI9ySB35ci6NPo QhR5DwJ4XBLTHvB7Vs7ls3lbU8nxE1PJuoyej1CE54/QKTm16WgOX5/AZitmEN7i/pW+ AYAeYjJoobC+W6tF2HP63QLRqKYld50gz8MscUyjnsYmMydh+nrRoHA4s/mTJzitG91R xOBRElARbbvk7YCS7Isp6GrTns169vNDDUT8i0FMIBffrB3WGAlGPaTgMlgQC1Kz+qrl nMcg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id l7-20020a170903120700b00153b2d16615si19565084plh.541.2022.05.02.18.07.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 May 2022 18:07:19 -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; 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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 8DC7E59968; Mon, 2 May 2022 17:50:00 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356437AbiD2JXI (ORCPT + 99 others); Fri, 29 Apr 2022 05:23:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237484AbiD2JXG (ORCPT ); Fri, 29 Apr 2022 05:23:06 -0400 Received: from zju.edu.cn (spam.zju.edu.cn [61.164.42.155]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 4DB26C4038; Fri, 29 Apr 2022 02:19:47 -0700 (PDT) Received: by ajax-webmail-mail-app4 (Coremail) ; Fri, 29 Apr 2022 17:18:36 +0800 (GMT+08:00) X-Originating-IP: [10.190.70.197] Date: Fri, 29 Apr 2022 17:18:36 +0800 (GMT+08:00) X-CM-HeaderCharset: UTF-8 From: duoming@zju.edu.cn To: "Krzysztof Kozlowski" Cc: linux-kernel@vger.kernel.org, kuba@kernel.org, gregkh@linuxfoundation.org, davem@davemloft.net, edumazet@google.com, pabeni@redhat.com, alexander.deucher@amd.com, akpm@linux-foundation.org, broonie@kernel.org, netdev@vger.kernel.org, linma@zju.edu.cn Subject: Re: Re: [PATCH net v5 1/2] nfc: replace improper check device_is_registered() in netlink related functions X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.13 build 20210104(ab8c30b6) Copyright (c) 2002-2022 www.mailtech.cn zju.edu.cn In-Reply-To: References: <33a282a82c18f942f1f5f9ee0ffcb16c2c7b0ece.1651194245.git.duoming@zju.edu.cn> Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=UTF-8 MIME-Version: 1.0 Message-ID: <372ba741.6a64.180749d7078.Coremail.duoming@zju.edu.cn> X-Coremail-Locale: zh_CN X-CM-TRANSID: cS_KCgBXX6dsrWticN8JAg--.1802W X-CM-SenderInfo: qssqjiasttq6lmxovvfxof0/1tbiAgoPAVZdtZdqKgADss X-Coremail-Antispam: 1Ur529EdanIXcx71UUUUU7IcSsGvfJ3iIAIbVAYjsxI4VWxJw CS07vEb4IE77IF4wCS07vE1I0E4x80FVAKz4kxMIAIbVAFxVCaYxvI4VCIwcAKzIAtYxBI daVFxhVjvjDU= X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,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 SGVsbG8sCgpPbiBGcmksIDI5IEFwciAyMDIyIDA5OjE5OjM2ICswMjAwIEtyenlzenRvZiB3cm90 ZToKCj4gPiBUaGUgZGV2aWNlX2lzX3JlZ2lzdGVyZWQoKSBpbiBuZmMgY29yZSBpcyB1c2VkIHRv IGNoZWNrIHdoZXRoZXIKPiA+IG5mYyBkZXZpY2UgaXMgcmVnaXN0ZXJlZCBpbiBuZXRsaW5rIHJl bGF0ZWQgZnVuY3Rpb25zIHN1Y2ggYXMKPiA+IG5mY19md19kb3dubG9hZCgpLCBuZmNfZGV2X3Vw KCkgYW5kIHNvIG9uLiBBbHRob3VnaCBkZXZpY2VfaXNfcmVnaXN0ZXJlZCgpCj4gPiBpcyBwcm90 ZWN0ZWQgYnkgZGV2aWNlX2xvY2ssIHRoZXJlIGlzIHN0aWxsIGEgcmFjZSBjb25kaXRpb24gYmV0 d2Vlbgo+ID4gZGV2aWNlX2RlbCgpIGFuZCBkZXZpY2VfaXNfcmVnaXN0ZXJlZCgpLiBUaGUgcm9v dCBjYXVzZSBpcyB0aGF0Cj4gPiBrb2JqZWN0X2RlbCgpIGluIGRldmljZV9kZWwoKSBpcyBub3Qg cHJvdGVjdGVkIGJ5IGRldmljZV9sb2NrLgo+ID4gCj4gPiAgICAoY2xlYW51cCB0YXNrKSAgICAg ICAgIHwgICAgIChuZXRsaW5rIHRhc2spCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK PiA+IG5mY191bnJlZ2lzdGVyX2RldmljZSAgICAgfCBuZmNfZndfZG93bmxvYWQKPiA+ICBkZXZp Y2VfZGVsICAgICAgICAgICAgICAgfCAgZGV2aWNlX2xvY2sKPiA+ICAgLi4uICAgICAgICAgICAg ICAgICAgICAgfCAgIGlmICghZGV2aWNlX2lzX3JlZ2lzdGVyZWQpLy8oMSkKPiA+ICAga29iamVj dF9kZWwvLygyKSAgICAgICAgfCAgIC4uLgo+ID4gIC4uLiAgICAgICAgICAgICAgICAgICAgICB8 ICBkZXZpY2VfdW5sb2NrCj4gPiAKPiA+IFRoZSBkZXZpY2VfaXNfcmVnaXN0ZXJlZCgpIHJldHVy bnMgdGhlIHZhbHVlIG9mIHN0YXRlX2luX3N5c2ZzIGFuZAo+ID4gdGhlIHN0YXRlX2luX3N5c2Zz IGlzIHNldCB0byB6ZXJvIGluIGtvYmplY3RfZGVsKCkuIElmIHdlIHBhc3MgY2hlY2sgaW4KPiA+ IHBvc2l0aW9uICgxKSwgdGhlbiBzZXQgemVybyBpbiBwb3NpdGlvbiAoMikuIEFzIGEgcmVzdWx0 LCB0aGUgY2hlY2sKPiA+IGluIHBvc2l0aW9uICgxKSBpcyB1c2VsZXNzLgo+ID4gCj4gPiBUaGlz IHBhdGNoIHVzZXMgYm9vbCB2YXJpYWJsZSBpbnN0ZWFkIG9mIGRldmljZV9pc19yZWdpc3RlcmVk KCkgdG8ganVkZ2UKPiA+IHdoZXRoZXIgdGhlIG5mYyBkZXZpY2UgaXMgcmVnaXN0ZXJlZCwgd2hp Y2ggaXMgd2VsbCBzeW5jaHJvbml6ZWQuCj4gPiAKPiA+IEZpeGVzOiAzZTI1NmI4ZjhkZmEgKCJO RkM6IGFkZCBuZmMgc3Vic3lzdGVtIGNvcmUiKQo+ID4gU2lnbmVkLW9mZi1ieTogRHVvbWluZyBa aG91IDxkdW9taW5nQHpqdS5lZHUuY24+Cj4gPiAtLS0KPiA+IENoYW5nZXMgaW4gdjU6Cj4gPiAg IC0gUmVwbGFjZSBkZXZpY2VfaXNfcmVnaXN0ZXJlZCgpIHRvIGJvb2wgdmFyaWFibGUuCj4gPiAK PiA+ICBpbmNsdWRlL25ldC9uZmMvbmZjLmggfCAgMSArCj4gPiAgbmV0L25mYy9jb3JlLmMgICAg ICAgIHwgMjYgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KPiA+ICAyIGZpbGVzIGNoYW5nZWQs IDE1IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9uZXQvbmZjL25mYy5oIGIvaW5jbHVkZS9uZXQvbmZjL25mYy5oCj4gPiBpbmRleCA1 ZGVlNTc1ZmJlOC4uN2JiNGNjYjE4MzAgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL25ldC9uZmMv bmZjLmgKPiA+ICsrKyBiL2luY2x1ZGUvbmV0L25mYy9uZmMuaAo+ID4gQEAgLTE2Nyw2ICsxNjcs NyBAQCBzdHJ1Y3QgbmZjX2RldiB7Cj4gPiAgCWludCBuX3RhcmdldHM7Cj4gPiAgCWludCB0YXJn ZXRzX2dlbmVyYXRpb247Cj4gPiAgCXN0cnVjdCBkZXZpY2UgZGV2Owo+ID4gKwlib29sIGRldl9y ZWdpc3RlcjsKPiA+ICAJYm9vbCBkZXZfdXA7Cj4gPiAgCWJvb2wgZndfZG93bmxvYWRfaW5fcHJv Z3Jlc3M7Cj4gPiAgCXU4IHJmX21vZGU7Cj4gPiBkaWZmIC0tZ2l0IGEvbmV0L25mYy9jb3JlLmMg Yi9uZXQvbmZjL2NvcmUuYwo+ID4gaW5kZXggZGM3YTI0MDRlZmQuLjUyMTQ3ZGEyMjg2IDEwMDY0 NAo+ID4gLS0tIGEvbmV0L25mYy9jb3JlLmMKPiA+ICsrKyBiL25ldC9uZmMvY29yZS5jCj4gPiBA QCAtMzgsNyArMzgsNyBAQCBpbnQgbmZjX2Z3X2Rvd25sb2FkKHN0cnVjdCBuZmNfZGV2ICpkZXYs IGNvbnN0IGNoYXIgKmZpcm13YXJlX25hbWUpCj4gPiAgCj4gPiAgCWRldmljZV9sb2NrKCZkZXYt PmRldik7Cj4gPiAgCj4gPiAtCWlmICghZGV2aWNlX2lzX3JlZ2lzdGVyZWQoJmRldi0+ZGV2KSkg ewo+ID4gKwlpZiAoIWRldi0+ZGV2X3JlZ2lzdGVyKSB7Cj4gPiAgCQlyYyA9IC1FTk9ERVY7Cj4g PiAgCQlnb3RvIGVycm9yOwo+ID4gIAl9Cj4gPiBAQCAtOTQsNyArOTQsNyBAQCBpbnQgbmZjX2Rl dl91cChzdHJ1Y3QgbmZjX2RldiAqZGV2KQo+ID4gIAo+ID4gIAlkZXZpY2VfbG9jaygmZGV2LT5k ZXYpOwo+ID4gIAo+ID4gLQlpZiAoIWRldmljZV9pc19yZWdpc3RlcmVkKCZkZXYtPmRldikpIHsK PiA+ICsJaWYgKCFkZXYtPmRldl9yZWdpc3Rlcikgewo+ID4gIAkJcmMgPSAtRU5PREVWOwo+ID4g IAkJZ290byBlcnJvcjsKPiA+ICAJfQo+ID4gQEAgLTE0Miw3ICsxNDIsNyBAQCBpbnQgbmZjX2Rl dl9kb3duKHN0cnVjdCBuZmNfZGV2ICpkZXYpCj4gPiAgCj4gPiAgCWRldmljZV9sb2NrKCZkZXYt PmRldik7Cj4gPiAgCj4gPiAtCWlmICghZGV2aWNlX2lzX3JlZ2lzdGVyZWQoJmRldi0+ZGV2KSkg ewo+ID4gKwlpZiAoIWRldi0+ZGV2X3JlZ2lzdGVyKSB7Cj4gPiAgCQlyYyA9IC1FTk9ERVY7Cj4g PiAgCQlnb3RvIGVycm9yOwo+ID4gIAl9Cj4gPiBAQCAtMjA3LDcgKzIwNyw3IEBAIGludCBuZmNf c3RhcnRfcG9sbChzdHJ1Y3QgbmZjX2RldiAqZGV2LCB1MzIgaW1fcHJvdG9jb2xzLCB1MzIgdG1f cHJvdG9jb2xzKQo+ID4gIAo+ID4gIAlkZXZpY2VfbG9jaygmZGV2LT5kZXYpOwo+ID4gIAo+ID4g LQlpZiAoIWRldmljZV9pc19yZWdpc3RlcmVkKCZkZXYtPmRldikpIHsKPiA+ICsJaWYgKCFkZXYt PmRldl9yZWdpc3Rlcikgewo+ID4gIAkJcmMgPSAtRU5PREVWOwo+ID4gIAkJZ290byBlcnJvcjsK PiA+ICAJfQo+ID4gQEAgLTI0Niw3ICsyNDYsNyBAQCBpbnQgbmZjX3N0b3BfcG9sbChzdHJ1Y3Qg bmZjX2RldiAqZGV2KQo+ID4gIAo+ID4gIAlkZXZpY2VfbG9jaygmZGV2LT5kZXYpOwo+ID4gIAo+ ID4gLQlpZiAoIWRldmljZV9pc19yZWdpc3RlcmVkKCZkZXYtPmRldikpIHsKPiA+ICsJaWYgKCFk ZXYtPmRldl9yZWdpc3Rlcikgewo+ID4gIAkJcmMgPSAtRU5PREVWOwo+ID4gIAkJZ290byBlcnJv cjsKPiA+ICAJfQo+ID4gQEAgLTI5MSw3ICsyOTEsNyBAQCBpbnQgbmZjX2RlcF9saW5rX3VwKHN0 cnVjdCBuZmNfZGV2ICpkZXYsIGludCB0YXJnZXRfaW5kZXgsIHU4IGNvbW1fbW9kZSkKPiA+ICAK PiA+ICAJZGV2aWNlX2xvY2soJmRldi0+ZGV2KTsKPiA+ICAKPiA+IC0JaWYgKCFkZXZpY2VfaXNf cmVnaXN0ZXJlZCgmZGV2LT5kZXYpKSB7Cj4gPiArCWlmICghZGV2LT5kZXZfcmVnaXN0ZXIpIHsK PiA+ICAJCXJjID0gLUVOT0RFVjsKPiA+ICAJCWdvdG8gZXJyb3I7Cj4gPiAgCX0KPiA+IEBAIC0z MzUsNyArMzM1LDcgQEAgaW50IG5mY19kZXBfbGlua19kb3duKHN0cnVjdCBuZmNfZGV2ICpkZXYp Cj4gPiAgCj4gPiAgCWRldmljZV9sb2NrKCZkZXYtPmRldik7Cj4gPiAgCj4gPiAtCWlmICghZGV2 aWNlX2lzX3JlZ2lzdGVyZWQoJmRldi0+ZGV2KSkgewo+ID4gKwlpZiAoIWRldi0+ZGV2X3JlZ2lz dGVyKSB7Cj4gPiAgCQlyYyA9IC1FTk9ERVY7Cj4gPiAgCQlnb3RvIGVycm9yOwo+ID4gIAl9Cj4g PiBAQCAtNDAxLDcgKzQwMSw3IEBAIGludCBuZmNfYWN0aXZhdGVfdGFyZ2V0KHN0cnVjdCBuZmNf ZGV2ICpkZXYsIHUzMiB0YXJnZXRfaWR4LCB1MzIgcHJvdG9jb2wpCj4gPiAgCj4gPiAgCWRldmlj ZV9sb2NrKCZkZXYtPmRldik7Cj4gPiAgCj4gPiAtCWlmICghZGV2aWNlX2lzX3JlZ2lzdGVyZWQo JmRldi0+ZGV2KSkgewo+ID4gKwlpZiAoIWRldi0+ZGV2X3JlZ2lzdGVyKSB7Cj4gPiAgCQlyYyA9 IC1FTk9ERVY7Cj4gPiAgCQlnb3RvIGVycm9yOwo+ID4gIAl9Cj4gPiBAQCAtNDQ4LDcgKzQ0OCw3 IEBAIGludCBuZmNfZGVhY3RpdmF0ZV90YXJnZXQoc3RydWN0IG5mY19kZXYgKmRldiwgdTMyIHRh cmdldF9pZHgsIHU4IG1vZGUpCj4gPiAgCj4gPiAgCWRldmljZV9sb2NrKCZkZXYtPmRldik7Cj4g PiAgCj4gPiAtCWlmICghZGV2aWNlX2lzX3JlZ2lzdGVyZWQoJmRldi0+ZGV2KSkgewo+ID4gKwlp ZiAoIWRldi0+ZGV2X3JlZ2lzdGVyKSB7Cj4gPiAgCQlyYyA9IC1FTk9ERVY7Cj4gPiAgCQlnb3Rv IGVycm9yOwo+ID4gIAl9Cj4gPiBAQCAtNDk1LDcgKzQ5NSw3IEBAIGludCBuZmNfZGF0YV9leGNo YW5nZShzdHJ1Y3QgbmZjX2RldiAqZGV2LCB1MzIgdGFyZ2V0X2lkeCwgc3RydWN0IHNrX2J1ZmYg KnNrYiwKPiA+ICAKPiA+ICAJZGV2aWNlX2xvY2soJmRldi0+ZGV2KTsKPiA+ICAKPiA+IC0JaWYg KCFkZXZpY2VfaXNfcmVnaXN0ZXJlZCgmZGV2LT5kZXYpKSB7Cj4gPiArCWlmICghZGV2LT5kZXZf cmVnaXN0ZXIpIHsKPiA+ICAJCXJjID0gLUVOT0RFVjsKPiA+ICAJCWtmcmVlX3NrYihza2IpOwo+ ID4gIAkJZ290byBlcnJvcjsKPiA+IEBAIC01NTIsNyArNTUyLDcgQEAgaW50IG5mY19lbmFibGVf c2Uoc3RydWN0IG5mY19kZXYgKmRldiwgdTMyIHNlX2lkeCkKPiA+ICAKPiA+ICAJZGV2aWNlX2xv Y2soJmRldi0+ZGV2KTsKPiA+ICAKPiA+IC0JaWYgKCFkZXZpY2VfaXNfcmVnaXN0ZXJlZCgmZGV2 LT5kZXYpKSB7Cj4gPiArCWlmICghZGV2LT5kZXZfcmVnaXN0ZXIpIHsKPiA+ICAJCXJjID0gLUVO T0RFVjsKPiA+ICAJCWdvdG8gZXJyb3I7Cj4gPiAgCX0KPiA+IEBAIC02MDEsNyArNjAxLDcgQEAg aW50IG5mY19kaXNhYmxlX3NlKHN0cnVjdCBuZmNfZGV2ICpkZXYsIHUzMiBzZV9pZHgpCj4gPiAg Cj4gPiAgCWRldmljZV9sb2NrKCZkZXYtPmRldik7Cj4gPiAgCj4gPiAtCWlmICghZGV2aWNlX2lz X3JlZ2lzdGVyZWQoJmRldi0+ZGV2KSkgewo+ID4gKwlpZiAoIWRldi0+ZGV2X3JlZ2lzdGVyKSB7 Cj4gPiAgCQlyYyA9IC1FTk9ERVY7Cj4gPiAgCQlnb3RvIGVycm9yOwo+ID4gIAl9Cj4gPiBAQCAt MTEzNCw2ICsxMTM0LDcgQEAgaW50IG5mY19yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG5mY19kZXYg KmRldikKPiA+ICAJCQlkZXYtPnJma2lsbCA9IE5VTEw7Cj4gPiAgCQl9Cj4gPiAgCX0KPiA+ICsJ ZGV2LT5kZXZfcmVnaXN0ZXIgPSB0cnVlOwo+ID4gIAlkZXZpY2VfdW5sb2NrKCZkZXYtPmRldik7 Cj4gPiAgCj4gPiAgCXJjID0gbmZjX2dlbmxfZGV2aWNlX2FkZGVkKGRldik7Cj4gPiBAQCAtMTE2 Niw2ICsxMTY3LDcgQEAgdm9pZCBuZmNfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG5mY19kZXYg KmRldikKPiA+ICAJCXJma2lsbF91bnJlZ2lzdGVyKGRldi0+cmZraWxsKTsKPiA+ICAJCXJma2ls bF9kZXN0cm95KGRldi0+cmZraWxsKTsKPiA+ICAJfQo+ID4gKwlkZXYtPmRldl9yZWdpc3RlciA9 IGZhbHNlOwo+IAo+IFdlIGFscmVhZHkgaGF2ZSBmbGFnIGZvciBpdCAtIGRldi0+c2h1dHRpbmdf ZG93bi4gQ3VycmVudGx5IGl0IGlzIHVzZWQKPiBvbmx5IGluIGlmIGRldmljZSBpbXBsZW1lbnRz IGNoZWNrX3ByZXNlbmNlIGJ1dCBJIHRoaW5rIGl0IGNhbiBiZSBlYXNpbHkKPiBtb3ZlZCB0byBj b21tb24gcGF0aC4KPiAKPiBIYXZpbmcgbXVsdGlwbGUgZmllbGRzIGZvciBzaW1pbGFyLCBidXQg c2xpZ2h0bHkgZGlmZmVyZW50IGNhc2VzLCBpcwo+IGdldHRpbmcgdXMgY2xvc2VyIGFuZCBjbG9z ZXIgdG8gc3BhZ2hldHRpIGNvZGUuCgpUaGFua3MgYSBsb3QgZm9yIHlvdXIgc3VnZ2VzdGlvbiwg SSB3aWxsIG1vdmUgZGV2LT5zaHV0dGluZ19kb3duIHRvCmNvbW1vbiBwYXRoLgoKQmVzdCByZWdh cmRzLApEdW9taW5nIFpob3UK