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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 38E61C433F5 for ; Thu, 28 Apr 2022 03:07:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242014AbiD1DKq (ORCPT ); Wed, 27 Apr 2022 23:10:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37900 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232847AbiD1DKk (ORCPT ); Wed, 27 Apr 2022 23:10:40 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id E8C1E50E07 for ; Wed, 27 Apr 2022 20:07:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1651115246; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TvU+ADphMHmXkpmACAoIK7qVjhSn7tp2TJRJg05m6I4=; b=MlDmM5Wn9fa+RyKhZNmu/gJy3tnBjhVabsz/1mfRjZ/ogr7c7pgYMg+pQuT4MV2GHbdkyp cRxuM8ppnekcu/c/GbYlZAM/MiCzh2RqUjn7bAMxoJY5F6cpcAC/D7v6E57ByuUxmj3Vm2 He0chOL3B7Xf0lkkRq+UUoIuK29Ge3U= Received: from mail-lf1-f70.google.com (mail-lf1-f70.google.com [209.85.167.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-207-9ZiOPzWMO26xUE3XzlijSA-1; Wed, 27 Apr 2022 23:07:24 -0400 X-MC-Unique: 9ZiOPzWMO26xUE3XzlijSA-1 Received: by mail-lf1-f70.google.com with SMTP id bq38-20020a056512152600b0047214ad540dso1427998lfb.13 for ; Wed, 27 Apr 2022 20:07:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=TvU+ADphMHmXkpmACAoIK7qVjhSn7tp2TJRJg05m6I4=; b=ENG4Zi2ksN5dNeEDKFerGWs8JmkC8gaFLuZ3wVakq+/14/vmdx1i938RM1VVHfeHqt 8Dw8E2cvZa45dEgs66GnEN8eftfW5Um+xp3Ic/7XEj9WqpRcx2sAI/1C3q3YNcSbfg1r prRz7C+h976Xjk8zrpeFbuee9hscck7ue8ezvCmpz/UFBhyshOl1TciUhYuCvriP5h78 UQO+Jts2lFAZlfpBa784fQYo2KqAmfnC3KLho7CvxFY73NjX/Qg3K94CaeovfdOIUZNl XPLNa+3xZ/i6C9XptBWCIF5dDdTC9s1jKox0IHr6rJyqbPhyRH/HYH4Z9FJQYhP/7eAS rkPQ== X-Gm-Message-State: AOAM530/eX+bf6RfKqbwTpIhgJtT7G49w332wmBAot81phuztsCr7w89 FoZHkjpVPZCQILLWf19TaJFBWwfy3BUMEgK0UaIDxxLFQAdHVjo3Fos3hTrpEM28M+wM9c3zH2H 59E8tsLVx6jNqTk94ZuNutNgV4Q/e3w2f0Y7Zyt5F X-Received: by 2002:a05:6512:33c2:b0:472:33dd:9f46 with SMTP id d2-20020a05651233c200b0047233dd9f46mr2359739lfg.98.1651115242950; Wed, 27 Apr 2022 20:07:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw8yMqQeXm0E0kg5h+lxPojpYyv2bDl4nXCwoI/TLwDC/R/01jvRHOvf69oY3waWTTt+1EpXJ4YjqEow7KB2bM= X-Received: by 2002:a05:6512:33c2:b0:472:33dd:9f46 with SMTP id d2-20020a05651233c200b0047233dd9f46mr2359731lfg.98.1651115242769; Wed, 27 Apr 2022 20:07:22 -0700 (PDT) MIME-Version: 1.0 References: <20220425062735.172576-1-lulu@redhat.com> <46c9f96a-8fcf-fae8-5fd7-53557d59c324@redhat.com> In-Reply-To: From: Jason Wang Date: Thu, 28 Apr 2022 11:07:11 +0800 Message-ID: Subject: Re: [PATCH v2 1/2] vdpa: add the check for id_table in struct vdpa_mgmt_dev To: Cindy Lu Cc: mst , virtualization , linux-kernel Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Apr 28, 2022 at 9:56 AM Cindy Lu wrote: > > On Wed, Apr 27, 2022 at 12:04 PM Jason Wang wrote: > > > > > > =E5=9C=A8 2022/4/27 10:01, Cindy Lu =E5=86=99=E9=81=93: > > > On Mon, Apr 25, 2022 at 5:00 PM Jason Wang wrot= e: > > >> On Mon, Apr 25, 2022 at 2:27 PM Cindy Lu wrote: > > >>> To support the dynamic ids in vp_vdpa, we need to add the check for > > >>> id table. If the id table is NULL, will not set the device type > > >>> > > >>> Signed-off-by: Cindy Lu > > >>> --- > > >>> drivers/vdpa/vdpa.c | 11 +++++++---- > > >>> 1 file changed, 7 insertions(+), 4 deletions(-) > > >>> > > >>> diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c > > >>> index 1ea525433a5c..09edd92cede0 100644 > > >>> --- a/drivers/vdpa/vdpa.c > > >>> +++ b/drivers/vdpa/vdpa.c > > >>> @@ -492,10 +492,13 @@ static int vdpa_mgmtdev_fill(const struct vdp= a_mgmt_dev *mdev, struct sk_buff *m > > >>> if (err) > > >>> goto msg_err; > > >>> > > >>> - while (mdev->id_table[i].device) { > > >>> - if (mdev->id_table[i].device <=3D 63) > > >>> - supported_classes |=3D BIT_ULL(mdev->id_tab= le[i].device); > > >>> - i++; > > >>> + if (mdev->id_table !=3D NULL) { > > >>> + while (mdev->id_table[i].device) { > > >>> + if (mdev->id_table[i].device <=3D 63) > > >>> + supported_classes |=3D > > >>> + BIT_ULL(mdev->id_table[i].d= evice); > > >>> + i++; > > >>> + } > > >>> } > > >> This will cause 0 to be advertised as the supported classes. > > >> > > >> I wonder if we can simply use VIRTIO_DEV_ANY_ID here (and need to > > >> export it to via uAPI probably). > > >> > > >> Thanks > > >> > > > like the below one? not sure if this ok to use like this? > > > static struct virtio_device_id vp_vdpa_id_table[] =3D { > > > { VIRTIO_DEV_ANY_ID, VIRTIO_DEV_ANY_ID }, > > > { 0 }, > > > }; > > > > > > Something like this. > > > > Thanks > > > > > I have checked the code, this maybe can not work, because the > #define VIRTIO_DEV_ANY_ID 0xffffffff > it want't work in > supported_classes |=3D BIT_ULL(mdev->id_table[i].device); > if we chane to > supported_classes |=3D VIRTIO_DEV_ANY_ID; > the vdpa dev show will be > pci/0000:00:04.0: > supported_classes net block < unknown class > < unknown class > < > unknown class > < unknown class > < unknown class > < unknow> > max_supported_vqs 3 That's why I suggest exporting the ANY_ID via uAPI and then we can fix the userspace. > dev_features CSUM GUEST_CSUM CTRL_GUEST_OFFLOADS MAC GUEST_TSO4 > GUEST_TSO6 GUEST_ECN GUEST_UFO HOST_TSO4 HOST_TSO6 HOST_ > I think we can use > static struct virtio_device_id id_table[] =3D { > { VIRTIO_ID_NET, VIRTIO_DEV_ANY_ID }, > { 0 }, > }; > if we need to add another type of device, we can add the device id at th= at type > My point is that, we have supported any virtio devices before. But after this change, we only support virtio-net. So if we choose to use id arrays, let's just add all possible virtio devices that are supported by the kernel here. Thanks > Thanks > cindy > > > > > > > > > > > >>> if (nla_put_u64_64bit(msg, VDPA_ATTR_MGMTDEV_SUPPORTED_CLA= SSES, > > >>> -- > > >>> 2.34.1 > > >>> > > > 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 Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EDBDEC433FE for ; Thu, 28 Apr 2022 03:07:30 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 9D71B40528; Thu, 28 Apr 2022 03:07:30 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gBoffsmGAms7; Thu, 28 Apr 2022 03:07:29 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp2.osuosl.org (Postfix) with ESMTPS id 199334010D; Thu, 28 Apr 2022 03:07:29 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id E2A39C0039; Thu, 28 Apr 2022 03:07:28 +0000 (UTC) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id B8752C002D for ; Thu, 28 Apr 2022 03:07:27 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id B3FE740159 for ; Thu, 28 Apr 2022 03:07:27 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Keerq0ZYQ-IK for ; Thu, 28 Apr 2022 03:07:27 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by smtp2.osuosl.org (Postfix) with ESMTPS id F14D14010D for ; Thu, 28 Apr 2022 03:07:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1651115245; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TvU+ADphMHmXkpmACAoIK7qVjhSn7tp2TJRJg05m6I4=; b=c0PbJLG0nE6x8exUOo3pOe5W5W3/YmgXDNwLOn18rvjdb2tqQFgpN9dvAhqGFH6X84Z0L3 wn8WhKRrkrWvS6WC0gNlL/Klqk51DWs2a2NNesdol405z5rFPbGP6jNHduPmzInaSS0e56 UtEc8jWKJT2HnWbpqW+8OH6HQx1cHoE= Received: from mail-lf1-f72.google.com (mail-lf1-f72.google.com [209.85.167.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-493-hS1CTnk7PF2Nn3CJVmKXIQ-1; Wed, 27 Apr 2022 23:07:24 -0400 X-MC-Unique: hS1CTnk7PF2Nn3CJVmKXIQ-1 Received: by mail-lf1-f72.google.com with SMTP id c11-20020a056512104b00b00471f86be758so1435296lfb.1 for ; Wed, 27 Apr 2022 20:07:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=TvU+ADphMHmXkpmACAoIK7qVjhSn7tp2TJRJg05m6I4=; b=wEOZw58U3cxzQ1ewIZ3JMyYUief5/rC4g2YMz8FLlfCl4ujafOR0K6QN9US0HNp5GM RPncgUAnpdauKL4rvJ3ydSi5xO87xksgQxW6861zBNpU47o93oULw3PeVF1gkGA3p6Vf oGzzYvBjJCUw7gaCNAaaf+ylBJ+zewxVZF0jR7xwBBwLKNO+NN4f6sQvgV6RDit0uvDX MSctTDkm65qvBjLyw5mz2rNelVuIzn7cVEIvfdlgrCkpEUMsGZJeWj1k7//uSw79ENYc aRqhVQItRWzpwrPsvOZ+5c9XUYTl8xyM1bzh5SJqz1FA9nhDG1/ZICx5SlIQIsiAOEPq VbKA== X-Gm-Message-State: AOAM53221JDmLxSFiqR7ojJYPQVPGiE6XmYDGM5nD9jQWJlVGygn00EF HRFvgvCv1MjouKJ4H+nND0jDFzjskJJSvKnmQCiQ+IJu5NSlbSYZquNAfMVzQ+c/v4ZfxXxmR6g fTS+3Qx9bZFD9vx0FLuAy+UgENL+uwUGZUAe0DOEtO2/2OZOU3Cfp7AiCUw== X-Received: by 2002:a05:6512:33c2:b0:472:33dd:9f46 with SMTP id d2-20020a05651233c200b0047233dd9f46mr2359737lfg.98.1651115242949; Wed, 27 Apr 2022 20:07:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw8yMqQeXm0E0kg5h+lxPojpYyv2bDl4nXCwoI/TLwDC/R/01jvRHOvf69oY3waWTTt+1EpXJ4YjqEow7KB2bM= X-Received: by 2002:a05:6512:33c2:b0:472:33dd:9f46 with SMTP id d2-20020a05651233c200b0047233dd9f46mr2359731lfg.98.1651115242769; Wed, 27 Apr 2022 20:07:22 -0700 (PDT) MIME-Version: 1.0 References: <20220425062735.172576-1-lulu@redhat.com> <46c9f96a-8fcf-fae8-5fd7-53557d59c324@redhat.com> In-Reply-To: From: Jason Wang Date: Thu, 28 Apr 2022 11:07:11 +0800 Message-ID: Subject: Re: [PATCH v2 1/2] vdpa: add the check for id_table in struct vdpa_mgmt_dev To: Cindy Lu Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jasowang@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Cc: virtualization , linux-kernel , mst X-BeenThere: virtualization@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux virtualization List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" T24gVGh1LCBBcHIgMjgsIDIwMjIgYXQgOTo1NiBBTSBDaW5keSBMdSA8bHVsdUByZWRoYXQuY29t PiB3cm90ZToKPgo+IE9uIFdlZCwgQXByIDI3LCAyMDIyIGF0IDEyOjA0IFBNIEphc29uIFdhbmcg PGphc293YW5nQHJlZGhhdC5jb20+IHdyb3RlOgo+ID4KPiA+Cj4gPiDlnKggMjAyMi80LzI3IDEw OjAxLCBDaW5keSBMdSDlhpnpgZM6Cj4gPiA+IE9uIE1vbiwgQXByIDI1LCAyMDIyIGF0IDU6MDAg UE0gSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4gd3JvdGU6Cj4gPiA+PiBPbiBNb24s IEFwciAyNSwgMjAyMiBhdCAyOjI3IFBNIENpbmR5IEx1IDxsdWx1QHJlZGhhdC5jb20+IHdyb3Rl Ogo+ID4gPj4+IFRvIHN1cHBvcnQgdGhlIGR5bmFtaWMgaWRzIGluIHZwX3ZkcGEsIHdlIG5lZWQg dG8gYWRkIHRoZSBjaGVjayBmb3IKPiA+ID4+PiBpZCB0YWJsZS4gSWYgdGhlIGlkIHRhYmxlIGlz IE5VTEwsIHdpbGwgbm90IHNldCB0aGUgZGV2aWNlIHR5cGUKPiA+ID4+Pgo+ID4gPj4+IFNpZ25l ZC1vZmYtYnk6IENpbmR5IEx1IDxsdWx1QHJlZGhhdC5jb20+Cj4gPiA+Pj4gLS0tCj4gPiA+Pj4g ICBkcml2ZXJzL3ZkcGEvdmRwYS5jIHwgMTEgKysrKysrKy0tLS0KPiA+ID4+PiAgIDEgZmlsZSBj aGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4gPiA+Pj4KPiA+ID4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy92ZHBhL3ZkcGEuYyBiL2RyaXZlcnMvdmRwYS92ZHBhLmMKPiA+ ID4+PiBpbmRleCAxZWE1MjU0MzNhNWMuLjA5ZWRkOTJjZWRlMCAxMDA2NDQKPiA+ID4+PiAtLS0g YS9kcml2ZXJzL3ZkcGEvdmRwYS5jCj4gPiA+Pj4gKysrIGIvZHJpdmVycy92ZHBhL3ZkcGEuYwo+ ID4gPj4+IEBAIC00OTIsMTAgKzQ5MiwxMyBAQCBzdGF0aWMgaW50IHZkcGFfbWdtdGRldl9maWxs KGNvbnN0IHN0cnVjdCB2ZHBhX21nbXRfZGV2ICptZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqbQo+ID4g Pj4+ICAgICAgICAgIGlmIChlcnIpCj4gPiA+Pj4gICAgICAgICAgICAgICAgICBnb3RvIG1zZ19l cnI7Cj4gPiA+Pj4KPiA+ID4+PiAtICAgICAgIHdoaWxlIChtZGV2LT5pZF90YWJsZVtpXS5kZXZp Y2UpIHsKPiA+ID4+PiAtICAgICAgICAgICAgICAgaWYgKG1kZXYtPmlkX3RhYmxlW2ldLmRldmlj ZSA8PSA2MykKPiA+ID4+PiAtICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRfY2xhc3Nl cyB8PSBCSVRfVUxMKG1kZXYtPmlkX3RhYmxlW2ldLmRldmljZSk7Cj4gPiA+Pj4gLSAgICAgICAg ICAgICAgIGkrKzsKPiA+ID4+PiArICAgICAgIGlmIChtZGV2LT5pZF90YWJsZSAhPSBOVUxMKSB7 Cj4gPiA+Pj4gKyAgICAgICAgICAgICAgIHdoaWxlIChtZGV2LT5pZF90YWJsZVtpXS5kZXZpY2Up IHsKPiA+ID4+PiArICAgICAgICAgICAgICAgICAgICAgICBpZiAobWRldi0+aWRfdGFibGVbaV0u ZGV2aWNlIDw9IDYzKQo+ID4gPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vw cG9ydGVkX2NsYXNzZXMgfD0KPiA+ID4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQklUX1VMTChtZGV2LT5pZF90YWJsZVtpXS5kZXZpY2UpOwo+ID4gPj4+ICsgICAg ICAgICAgICAgICAgICAgICAgIGkrKzsKPiA+ID4+PiArICAgICAgICAgICAgICAgfQo+ID4gPj4+ ICAgICAgICAgIH0KPiA+ID4+IFRoaXMgd2lsbCBjYXVzZSAwIHRvIGJlIGFkdmVydGlzZWQgYXMg dGhlIHN1cHBvcnRlZCBjbGFzc2VzLgo+ID4gPj4KPiA+ID4+IEkgd29uZGVyIGlmIHdlIGNhbiBz aW1wbHkgdXNlIFZJUlRJT19ERVZfQU5ZX0lEIGhlcmUgKGFuZCBuZWVkIHRvCj4gPiA+PiBleHBv cnQgaXQgdG8gdmlhIHVBUEkgcHJvYmFibHkpLgo+ID4gPj4KPiA+ID4+IFRoYW5rcwo+ID4gPj4K PiA+ID4gbGlrZSB0aGUgYmVsb3cgb25lPyBub3Qgc3VyZSBpZiB0aGlzIG9rIHRvIHVzZSBsaWtl IHRoaXM/Cj4gPiA+IHN0YXRpYyBzdHJ1Y3QgdmlydGlvX2RldmljZV9pZCB2cF92ZHBhX2lkX3Rh YmxlW10gPSB7Cj4gPiA+IHsgVklSVElPX0RFVl9BTllfSUQsIFZJUlRJT19ERVZfQU5ZX0lEIH0s Cj4gPiA+IHsgMCB9LAo+ID4gPiB9Owo+ID4KPiA+Cj4gPiBTb21ldGhpbmcgbGlrZSB0aGlzLgo+ ID4KPiA+IFRoYW5rcwo+ID4KPiA+Cj4gSSBoYXZlIGNoZWNrZWQgdGhlIGNvZGUsIHRoaXMgbWF5 YmUgY2FuIG5vdCB3b3JrLCBiZWNhdXNlIHRoZQo+ICNkZWZpbmUgVklSVElPX0RFVl9BTllfSUQg MHhmZmZmZmZmZgo+ICBpdCB3YW50J3Qgd29yayBpbgo+ICAgICAgICAgICAgICAgICBzdXBwb3J0 ZWRfY2xhc3NlcyB8PSBCSVRfVUxMKG1kZXYtPmlkX3RhYmxlW2ldLmRldmljZSk7Cj4gaWYgd2Ug Y2hhbmUgdG8KPiAgICAgICAgICAgICBzdXBwb3J0ZWRfY2xhc3NlcyB8PSBWSVJUSU9fREVWX0FO WV9JRDsKPiB0aGUgdmRwYSBkZXYgc2hvdyB3aWxsIGJlCj4gcGNpLzAwMDA6MDA6MDQuMDoKPiAg IHN1cHBvcnRlZF9jbGFzc2VzIG5ldCBibG9jayA8IHVua25vd24gY2xhc3MgPiA8IHVua25vd24g Y2xhc3MgPiA8Cj4gdW5rbm93biBjbGFzcyA+IDwgdW5rbm93biBjbGFzcyA+IDwgdW5rbm93biBj bGFzcyA+IDwgdW5rbm93Pgo+ICAgbWF4X3N1cHBvcnRlZF92cXMgMwoKVGhhdCdzIHdoeSBJIHN1 Z2dlc3QgZXhwb3J0aW5nIHRoZSBBTllfSUQgdmlhIHVBUEkgYW5kIHRoZW4gd2UgY2FuIGZpeAp0 aGUgdXNlcnNwYWNlLgoKPiAgIGRldl9mZWF0dXJlcyBDU1VNIEdVRVNUX0NTVU0gQ1RSTF9HVUVT VF9PRkZMT0FEUyBNQUMgR1VFU1RfVFNPNAo+IEdVRVNUX1RTTzYgR1VFU1RfRUNOIEdVRVNUX1VG TyBIT1NUX1RTTzQgSE9TVF9UU082IEhPU1RfCj4gIEkgdGhpbmsgd2UgY2FuIHVzZQo+IHN0YXRp YyBzdHJ1Y3QgdmlydGlvX2RldmljZV9pZCBpZF90YWJsZVtdID0gewo+IHsgVklSVElPX0lEX05F VCwgVklSVElPX0RFVl9BTllfSUQgfSwKPiB7IDAgfSwKPiB9Owo+ICBpZiB3ZSBuZWVkIHRvIGFk ZCBhbm90aGVyIHR5cGUgb2YgZGV2aWNlLCB3ZSBjYW4gYWRkIHRoZSBkZXZpY2UgaWQgYXQgdGhh dCB0eXBlCj4KCk15IHBvaW50IGlzIHRoYXQsIHdlIGhhdmUgc3VwcG9ydGVkIGFueSB2aXJ0aW8g ZGV2aWNlcyBiZWZvcmUuIEJ1dAphZnRlciB0aGlzIGNoYW5nZSwgd2Ugb25seSBzdXBwb3J0IHZp cnRpby1uZXQuCgpTbyBpZiB3ZSBjaG9vc2UgdG8gdXNlIGlkIGFycmF5cywgbGV0J3MganVzdCBh ZGQgYWxsIHBvc3NpYmxlIHZpcnRpbwpkZXZpY2VzIHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGUg a2VybmVsIGhlcmUuCgpUaGFua3MKCj4gVGhhbmtzCj4gY2luZHkKPgo+Cj4KPiA+ID4KPiA+ID4K PiA+ID4+PiAgICAgICAgICBpZiAobmxhX3B1dF91NjRfNjRiaXQobXNnLCBWRFBBX0FUVFJfTUdN VERFVl9TVVBQT1JURURfQ0xBU1NFUywKPiA+ID4+PiAtLQo+ID4gPj4+IDIuMzQuMQo+ID4gPj4+ Cj4gPgo+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpW aXJ0dWFsaXphdGlvbiBtYWlsaW5nIGxpc3QKVmlydHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91 bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlz dGluZm8vdmlydHVhbGl6YXRpb24=