From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id DC3EFA0C45 for ; Wed, 6 Oct 2021 00:59:04 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CCFAB40685; Wed, 6 Oct 2021 00:59:04 +0200 (CEST) Received: from mail-ot1-f99.google.com (mail-ot1-f99.google.com [209.85.210.99]) by mails.dpdk.org (Postfix) with ESMTP id A1BD94014F for ; Wed, 6 Oct 2021 00:59:03 +0200 (CEST) Received: by mail-ot1-f99.google.com with SMTP id c26-20020a056830349a00b0054d96d25c1eso819641otu.9 for ; Tue, 05 Oct 2021 15:59:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; h=mime-version:subject:from:to:cc:message-id:date; bh=eQS38wwL+wDAfQUyncDzj6vBFQUW8mA+/xf2Ad44Nyo=; b=LL3u/Zh/Nio1lDcFzcT0h93gakzYUU8JbSiCcSOxVLZXcp+zGQ2IfBOq6ILybOIPRo pnjBBROBSDhrsB9cGCsvsxgf2BZJy2kdtj9TM02VzaygWj803L8bAicvcGT5mNbqN/ZM VtDQfq6TYY3KdoMoM26enUhL3+n/o3ti44M4I= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:to:cc:message-id:date; bh=eQS38wwL+wDAfQUyncDzj6vBFQUW8mA+/xf2Ad44Nyo=; b=Ioopn2T12uOTSe7O69BBKypv3kInfPf/zIyPh2L7LUosR2cr10kd1eVmG0eJc4WVHT Yl47RQ1e+QX8qEeB1etldD8gjHyy7OpbmNj5OULPH0Wl2wIPTcSkfgiyG94wHeEQGDZU kVcxbyy/naNYLnHS04iqC0tMyxCvYT2M2+UvguJ8t57mZ5ptcaO72nPVl2KQqpcmQYwN uB66ROmMXDBi2ipVz5FbIuk4VTP7MqDk3L+hrkpSAE+V73/EmG702j8xkJzg3Db9yQaV PiEDsc9k8jRUZKz0skSsQDJha4aMYlhfQHJHiQesekIxsI7saXvNJNklUpbXiHpLHlAA ZHYg== X-Gm-Message-State: AOAM533mrD025wEGBl7AsCkdR4mYU2FUySaq8UMgIiV/jNniLuXOZQQw IMmUqNYcirlbHE7j1qrxg5j121/e3/YTIdOFhTZ8BSpkdSqb0OcPsmk+M4vayd7vsw== X-Google-Smtp-Source: ABdhPJxT2l9wzttvDp7TM82GcZHSLNuyRIAHSuaHPCl9wgbwZcewn8Sz4++kNGXi2BTdk/WqZmKtz+q9hM5t X-Received: by 2002:a05:6830:1098:: with SMTP id y24mr15924928oto.368.1633474743082; Tue, 05 Oct 2021 15:59:03 -0700 (PDT) Received: from postal.iol.unh.edu (postal.iol.unh.edu. [2606:4100:3880:1234::84]) by smtp-relay.gmail.com with ESMTPS id s14sm5853726oos.13.2021.10.05.15.59.02 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Oct 2021 15:59:03 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Received: from noxus.dpdklab.iol.unh.edu (unknown [IPv6:2606:4100:3880:1722::4]) by postal.iol.unh.edu (Postfix) with ESMTP id 91756605247D; Tue, 5 Oct 2021 18:59:02 -0400 (EDT) Received: from noxus.dpdklab.iol.unh.edu (localhost [IPv6:::1]) by noxus.dpdklab.iol.unh.edu (Postfix) with ESMTP id 8CE766D535; Tue, 5 Oct 2021 18:59:02 -0400 (EDT) Content-Type: multipart/mixed; boundary="===============6107327038112086734==" MIME-Version: 1.0 From: dpdklab@iol.unh.edu To: test-report@dpdk.org Cc: dpdk-test-reports@iol.unh.edu Message-Id: <20211005225902.8CE766D535@noxus.dpdklab.iol.unh.edu> Date: Tue, 5 Oct 2021 18:59:02 -0400 (EDT) Subject: [dpdk-test-report] |WARNING| pw99870 [PATCH] [v2] net/virtio: fix virtio-user init when using existing tap X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: test-report-bounces@dpdk.org Sender: "test-report" --===============6107327038112086734== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogaW9sLXRlc3RpbmcKVGVzdC1TdGF0dXM6IFdBUk5JTkcKaHR0cDovL2RwZGsu b3JnL3BhdGNoLzk5ODcwCgpfYXBwbHkgcGF0Y2ggZmFpbHVyZV8KClN1Ym1pdHRlcjogRGF2aWQg TWFyY2hhbmQgPGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20+CkRhdGU6IFR1ZXNkYXksIFNlcHRl bWJlciAyOCAyMDIxIDA4OjUxOjE0IApBcHBsaWVkIG9uOiBDb21taXRJRDoyNzAwMzI2MDg1MDMz ZmQxMzMzOWE4ZGUzMWY1OGE5NWQxZWU5YzNmCkFwcGx5IHBhdGNoIHNldCA5OTg3MCBmYWlsZWQ6 CgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2Vy bmVsLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CnN0YXRpYyBpbnQKdmhvc3Rfa2Vy bmVsX2dldF9mZWF0dXJlcyhzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHVpbnQ2NF90ICpm ZWF0dXJlcykKewoJaW50IHJldDsKCXVuc2lnbmVkIGludCB0YXBfZmVhdHVyZXM7CglzdHJ1Y3Qg dmhvc3Rfa2VybmVsX2RhdGEgKmRhdGEgPSBkZXYtPmJhY2tlbmRfZGF0YTsKCglyZXQgPSB2aG9z dF9rZXJuZWxfaW9jdGwoZGF0YS0+dmhvc3RmZHNbMF0sIFZIT1NUX0dFVF9GRUFUVVJFUywgZmVh dHVyZXMpOwoJaWYgKHJldCA8IDApIHsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0 L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWwuYzoxMjAKZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CgkJcmV0dXJuIC0xOwoJfQoKCXJldCA9IHRhcF9zdXBwb3J0X2ZlYXR1cmVzKCZ0 YXBfZmVhdHVyZXMpOwoJaWYgKHJldCA8IDApIHsKCQlQTURfRFJWX0xPRyhFUlIsICJGYWlsZWQg dG8gZ2V0IFRBUCBmZWF0dXJlcyIpOwoJCXJldHVybiAtMTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWwuYzoxMzAKZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkgKiBidXQgbm90IGNsYWltZWQgYnkgdmhvc3QtbmV0LCBz byB3ZSBhZGQgdGhlbSBiYWNrIHdoZW4KCSAqIHJlcG9ydGluZyB0byB1cHBlciBsYXllci4KCSAq LwoJaWYgKHRhcF9mZWF0dXJlcyAmIElGRl9WTkVUX0hEUikgewoJCSpmZWF0dXJlcyB8PSBWSE9T VF9LRVJORUxfR1VFU1RfT0ZGTE9BRFNfTUFTSzsKCQkqZmVhdHVyZXMgfD0gVkhPU1RfS0VSTkVM X0hPU1RfT0ZGTE9BRFNfTUFTSzsKCX0KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0 L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWwuYzoxNDAKZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CgkvKiB2aG9zdF9rZXJuZWwgd2lsbCBub3QgZGVjbGFyZSB0aGlzIGZlYXR1cmUs IGJ1dCBpdCBkb2VzCgkgKiBzdXBwb3J0IG11bHRpLXF1ZXVlLgoJICovCglpZiAodGFwX2ZlYXR1 cmVzICYgSUZGX01VTFRJX1FVRVVFKQoJCSpmZWF0dXJlcyB8PSAoMXVsbCA8PCBWSVJUSU9fTkVU X0ZfTVEpOwoKCXJldHVybiAwOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvdmly dGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbC5jOjE0OAplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKc3RhdGljIGludAp2aG9zdF9rZXJuZWxfc2V0dXAoc3RydWN0IHZpcnRpb191c2VyX2Rl diAqZGV2KQp7CglpbnQgdmhvc3RmZDsKCXVpbnQzMl90IHEsIGk7CglzdHJ1Y3Qgdmhvc3Rfa2Vy bmVsX2RhdGEgKmRhdGE7CgoJZGF0YSA9IG1hbGxvYyhzaXplb2YoKmRhdGEpKTsKCWlmICghZGF0 YSkgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2Vy L3Zob3N0X2tlcm5lbC5jOjM4MAplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJUE1EX0RS Vl9MT0coRVJSLCAiZmFpbCB0byBvcGVuICVzLCAlcyIsIGRldi0+cGF0aCwgc3RyZXJyb3IoZXJy bm8pKTsKCQkJZ290byBlcnJfdGFwZmRzOwoJCX0KCgkJZGF0YS0+dmhvc3RmZHNbaV0gPSB2aG9z dGZkOwoJfQoKCWRldi0+YmFja2VuZF9kYXRhID0gZGF0YTsKCglyZXR1cm4gMDsKCmVycl90YXBm ZHM6Cglmb3IgKGkgPSAwOyBpIDwgZGV2LT5tYXhfcXVldWVfcGFpcnM7IGkrKykKCQlpZiAoZGF0 YS0+dmhvc3RmZHNbaV0gPj0gMCkKCQkJY2xvc2UoZGF0YS0+dmhvc3RmZHNbaV0pOwoKCWZyZWUo ZGF0YS0+dGFwZmRzKTsKZXJyX3Zob3N0ZmRzOgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVy cy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbC5jOjQxNAplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCQkJICAgICAgIHVpbnQxNl90IHBhaXJfaWR4LAoJCQkgICAgICAgaW50 IGVuYWJsZSkKewoJaW50IGhkcl9zaXplOwoJaW50IHZob3N0ZmQ7CglpbnQgdGFwZmQ7CglpbnQg cmVxX21xID0gKGRldi0+bWF4X3F1ZXVlX3BhaXJzID4gMSk7CglzdHJ1Y3Qgdmhvc3Rfa2VybmVs X2RhdGEgKmRhdGEgPSBkZXYtPmJhY2tlbmRfZGF0YTsKCgl2aG9zdGZkID0gZGF0YS0+dmhvc3Rm ZHNbcGFpcl9pZHhdOwoKCWlmIChkZXYtPnFwX2VuYWJsZWRbcGFpcl9pZHhdID09IGVuYWJsZSkK CQlyZXR1cm4gMDsKCglpZiAoIWVuYWJsZSkgewoJCXRhcGZkID0gZGF0YS0+dGFwZmRzW3BhaXJf aWR4XTsKCQlpZiAodmhvc3Rfa2VybmVsX3NldF9iYWNrZW5kKHZob3N0ZmQsIC0xKSA8IDApIHsK CQkJUE1EX0RSVl9MT0coRVJSLCAiZmFpbCB0byBzZXQgYmFja2VuZCBmb3Igdmhvc3Qga2VybmVs Iik7CgkJCXJldHVybiAtMTsKCQl9CgkJaWYgKHJlcV9tcSAmJiB2aG9zdF9rZXJuZWxfdGFwX3Nl dF9xdWV1ZSh0YXBmZCwgZmFsc2UpIDwgMCkgewoJCQlQTURfRFJWX0xPRyhFUlIsICJmYWlsIHRv IGRpc2FibGUgdGFwIGZvciB2aG9zdCBrZXJuZWwiKTsKCQkJcmV0dXJuIC0xOwoJCX0KCQlkZXYt PnFwX2VuYWJsZWRbcGFpcl9pZHhdID0gZmFsc2U7CgkJcmV0dXJuIDA7Cgl9CgoJaWYgKGRhdGEt PnRhcGZkc1twYWlyX2lkeF0gPj0gMCkgewoJCXRhcGZkID0gZGF0YS0+dGFwZmRzW3BhaXJfaWR4 XTsKCQlpZiAodmhvc3Rfa2VybmVsX3RhcF9zZXRfb2ZmbG9hZCh0YXBmZCwgZGV2LT5mZWF0dXJl cykgPT0gLTEpCgkJCXJldHVybiAtMTsKCQlpZiAocmVxX21xICYmIHZob3N0X2tlcm5lbF90YXBf c2V0X3F1ZXVlKHRhcGZkLCB0cnVlKSA8IDApIHsKCQkJUE1EX0RSVl9MT0coRVJSLCAiZmFpbCB0 byBlbmFibGUgdGFwIGZvciB2aG9zdCBrZXJuZWwiKTsKCQkJcmV0dXJuIC0xOwoJCX0KCQlnb3Rv IHNldF9iYWNrZW5kOwoJfQoKCWlmICgoZGV2LT5mZWF0dXJlcyAmICgxVUxMIDw8IFZJUlRJT19O RVRfRl9NUkdfUlhCVUYpKSB8fAoJICAgIChkZXYtPmZlYXR1cmVzICYgKDFVTEwgPDwgVklSVElP X0ZfVkVSU0lPTl8xKSkpCgkJaGRyX3NpemUgPSBzaXplb2Yoc3RydWN0IHZpcnRpb19uZXRfaGRy X21yZ19yeGJ1Zik7CgllbHNlCgkJaGRyX3NpemUgPSBzaXplb2Yoc3RydWN0IHZpcnRpb19uZXRf aGRyKTsKCgl0YXBmZCA9IHZob3N0X2tlcm5lbF9vcGVuX3RhcCgmZGV2LT5pZm5hbWUsIGhkcl9z aXplLCByZXFfbXEsCgkJCSAoY2hhciAqKWRldi0+bWFjX2FkZHIsIGRldi0+ZmVhdHVyZXMpOwoJ aWYgKHRhcGZkIDwgMCkgewoJCVBNRF9EUlZfTE9HKEVSUiwgImZhaWwgdG8gb3BlbiB0YXAgZm9y IHZob3N0IGtlcm5lbCIpOwoJCXJldHVybiAtMTsKCX0KCglkYXRhLT50YXBmZHNbcGFpcl9pZHhd ID0gdGFwZmQ7CgpzZXRfYmFja2VuZDoKCWlmICh2aG9zdF9rZXJuZWxfc2V0X2JhY2tlbmQodmhv c3RmZCwgdGFwZmQpIDwgMCkgewoJCVBNRF9EUlZfTE9HKEVSUiwgImZhaWwgdG8gc2V0IGJhY2tl bmQgZm9yIHZob3N0IGtlcm5lbCIpOwoJCXJldHVybiAtMTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWwuYzo0ODgKQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbF90YXAu Yy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKfQoKaW50CnZob3N0X2tlcm5lbF90YXBf c2V0X29mZmxvYWQoaW50IGZkLCB1aW50NjRfdCBmZWF0dXJlcykKewoJdW5zaWduZWQgaW50IG9m ZmxvYWQgPSAwOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRp b191c2VyL3Zob3N0X2tlcm5lbF90YXAuYzo0MgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK fQoKaW50CnZob3N0X2tlcm5lbF90YXBfc2V0X3F1ZXVlKGludCBmZCwgYm9vbCBhdHRhY2gpCnsK CXN0cnVjdCBpZnJlcSBpZnIgPSB7CgkJLmlmcl9mbGFncyA9IGF0dGFjaCA/IElGRl9BVFRBQ0hf UVVFVUUgOiBJRkZfREVUQUNIX1FVRVVFLAoJfTsKCglyZXR1cm4gaW9jdGwoZmQsIFRVTlNFVFFV RVVFLCAmaWZyKTsKfQoKaW50CnZob3N0X2tlcm5lbF9vcGVuX3RhcChjaGFyICoqcF9pZm5hbWUs IGludCBoZHJfc2l6ZSwgaW50IHJlcV9tcSwKCQkJIGNvbnN0IGNoYXIgKm1hYywgdWludDY0X3Qg ZmVhdHVyZXMpCnsKCXVuc2lnbmVkIGludCB0YXBfZmVhdHVyZXM7CgljaGFyICp0YXBfbmFtZSA9 IE5VTEw7CglpbnQgc25kYnVmID0gSU5UX01BWDsKCXN0cnVjdCBpZnJlcSBpZnI7CglpbnQgdGFw ZmQ7CglpbnQgcmV0OwoKCS8qIFRPRE86CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25l dC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2VybmVsX3RhcC5jOjc5CmVycm9yOiB3aGlsZSBz ZWFyY2hpbmcgZm9yOgoJICogMi4gZ2V0IG51bWJlciBvZiBtZW1vcnkgcmVnaW9ucyBmcm9tIHZo b3N0IG1vZHVsZSBwYXJhbWV0ZXIKCSAqIG1heF9tZW1fcmVnaW9ucywgc3VwcG9ydGVkIGluIG5l d2VyIHZlcnNpb24gbGludXgga2VybmVsCgkgKi8KCXRhcGZkID0gb3BlbihQQVRIX05FVF9UVU4s IE9fUkRXUik7CglpZiAodGFwZmQgPCAwKSB7CgkJUE1EX0RSVl9MT0coRVJSLCAiZmFpbCB0byBv cGVuICVzOiAlcyIsCgkJCSAgICBQQVRIX05FVF9UVU4sIHN0cmVycm9yKGVycm5vKSk7CgkJcmV0 dXJuIC0xOwoJfQoKCS8qIENvbnN0cnVjdCBpZnIgKi8KCW1lbXNldCgmaWZyLCAwLCBzaXplb2Yo aWZyKSk7CglpZnIuaWZyX2ZsYWdzID0gSUZGX1RBUCB8IElGRl9OT19QSTsKCglpZiAoaW9jdGwo dGFwZmQsIFRVTkdFVEZFQVRVUkVTLCAmdGFwX2ZlYXR1cmVzKSA9PSAtMSkgewoJCVBNRF9EUlZf TE9HKEVSUiwgIlRVTkdFVEZFQVRVUkVTIGZhaWxlZDogJXMiLCBzdHJlcnJvcihlcnJubykpOwoJ CWdvdG8gZXJyb3I7Cgl9CglpZiAodGFwX2ZlYXR1cmVzICYgSUZGX09ORV9RVUVVRSkKCQlpZnIu aWZyX2ZsYWdzIHw9IElGRl9PTkVfUVVFVUU7CgoJLyogTGV0IHRhcCBpbnN0ZWFkIG9mIHZob3N0 LW5ldCBoYW5kbGUgdm5ldCBoZWFkZXIsIGFzIHRoZSBsYXR0ZXIgZG9lcwoJICogbm90IHN1cHBv cnQgb2ZmbG9hZGluZy4gQW5kIGluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIG5vdCBzZXQgZmVhdHVy ZQoJICogYml0IFZIT1NUX05FVF9GX1ZJUlRJT19ORVRfSERSLgoJICovCglpZiAodGFwX2ZlYXR1 cmVzICYgSUZGX1ZORVRfSERSKSB7CgkJaWZyLmlmcl9mbGFncyB8PSBJRkZfVk5FVF9IRFI7Cgl9 IGVsc2UgewoJCVBNRF9EUlZfTE9HKEVSUiwgIlRBUCBkb2VzIG5vdCBzdXBwb3J0IElGRl9WTkVU X0hEUiIpOwoJCWdvdG8gZXJyb3I7Cgl9CgoJaWYgKHJlcV9tcSkKCQlpZnIuaWZyX2ZsYWdzIHw9 IElGRl9NVUxUSV9RVUVVRTsKCglpZiAoKnBfaWZuYW1lKQoJCXN0cm5jcHkoaWZyLmlmcl9uYW1l LCAqcF9pZm5hbWUsIElGTkFNU0laIC0gMSk7CgllbHNlCgkJc3RybmNweShpZnIuaWZyX25hbWUs ICJ0YXAlZCIsIElGTkFNU0laIC0gMSk7CglpZiAoaW9jdGwodGFwZmQsIFRVTlNFVElGRiwgKHZv aWQgKikmaWZyKSA9PSAtMSkgewoJCVBNRF9EUlZfTE9HKEVSUiwgIlRVTlNFVElGRiBmYWlsZWQ6 ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKCQlnb3RvIGVycm9yOwoJfQoKCXRhcF9uYW1lID0gc3Ry ZHVwKGlmci5pZnJfbmFtZSk7CglpZiAoIXRhcF9uYW1lKSB7CgkJUE1EX0RSVl9MT0coRVJSLCAi c3RyZHVwIGlmbmFtZSBmYWlsZWQ6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKCQlnb3RvIGVycm9y OwoJfQoKCWlmIChmY250bCh0YXBmZCwgRl9TRVRGTCwgT19OT05CTE9DSykgPCAwKSB7CgkJUE1E X0RSVl9MT0coRVJSLCAiZmNudGwgdGFwZmQgZmFpbGVkOiAlcyIsIHN0cmVycm9yKGVycm5vKSk7 CgkJZ290byBlcnJvcjsKCX0KCglpZiAoaW9jdGwodGFwZmQsIFRVTlNFVFZORVRIRFJTWiwgJmhk cl9zaXplKSA8IDApIHsKCQlQTURfRFJWX0xPRyhFUlIsICJUVU5TRVRWTkVUSERSU1ogZmFpbGVk OiAlcyIsIHN0cmVycm9yKGVycm5vKSk7CgkJZ290byBlcnJvcjsKCX0KCglpZiAoaW9jdGwodGFw ZmQsIFRVTlNFVFNOREJVRiwgJnNuZGJ1ZikgPCAwKSB7CgkJUE1EX0RSVl9MT0coRVJSLCAiVFVO U0VUU05EQlVGIGZhaWxlZDogJXMiLCBzdHJlcnJvcihlcnJubykpOwoJCWdvdG8gZXJyb3I7Cgl9 CgoJcmV0ID0gdmhvc3Rfa2VybmVsX3RhcF9zZXRfb2ZmbG9hZCh0YXBmZCwgZmVhdHVyZXMpOwoJ aWYgKHJldCA8IDAgJiYgcmV0ICE9IC1FTk9UU1VQKQoJCWdvdG8gZXJyb3I7CgoJbWVtc2V0KCZp ZnIsIDAsIHNpemVvZihpZnIpKTsKCWlmci5pZnJfaHdhZGRyLnNhX2ZhbWlseSA9IEFSUEhSRF9F VEhFUjsKCW1lbWNweShpZnIuaWZyX2h3YWRkci5zYV9kYXRhLCBtYWMsIFJURV9FVEhFUl9BRERS X0xFTik7CglpZiAoaW9jdGwodGFwZmQsIFNJT0NTSUZIV0FERFIsICh2b2lkICopJmlmcikgPT0g LTEpIHsKCQlQTURfRFJWX0xPRyhFUlIsICJTSU9DU0lGSFdBRERSIGZhaWxlZDogJXMiLCBzdHJl cnJvcihlcnJubykpOwoJCWdvdG8gZXJyb3I7Cgl9CgoJZnJlZSgqcF9pZm5hbWUpOwoJKnBfaWZu YW1lID0gdGFwX25hbWU7CgoJcmV0dXJuIHRhcGZkOwplcnJvcjoKCWZyZWUodGFwX25hbWUpOwoJ Y2xvc2UodGFwZmQpOwoJcmV0dXJuIC0xOwp9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2VybmVsX3RhcC5jOjEwNApDaGVja2luZyBw YXRjaCBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2VybmVsX3RhcC5oLi4u CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgojZGVmaW5lIFRVTlNFVFNOREJVRiAgIF9JT1co J1QnLCAyMTIsIGludCkKI2RlZmluZSBUVU5HRVRWTkVUSERSU1ogX0lPUignVCcsIDIxNSwgaW50 KQojZGVmaW5lIFRVTlNFVFZORVRIRFJTWiBfSU9XKCdUJywgMjE2LCBpbnQpCiNkZWZpbmUgVFVO U0VUUVVFVUUgIF9JT1coJ1QnLCAyMTcsIGludCkKI2RlZmluZSBUVU5TRVRWTkVUTEUgX0lPVygn VCcsIDIyMCwgaW50KQojZGVmaW5lIFRVTlNFVFZORVRCRSBfSU9XKCdUJywgMjIyLCBpbnQpCgov KiBUVU5TRVRJRkYgaWZyIGZsYWdzICovCiNkZWZpbmUgSUZGX1RBUCAgICAgICAgICAweDAwMDIK I2RlZmluZSBJRkZfTk9fUEkgICAgICAgIDB4MTAwMAojZGVmaW5lIElGRl9PTkVfUVVFVUUgICAg MHgyMDAwCiNkZWZpbmUgSUZGX1ZORVRfSERSICAgICAweDQwMDAKI2RlZmluZSBJRkZfTVVMVElf UVVFVUUgIDB4MDEwMAojZGVmaW5lIElGRl9BVFRBQ0hfUVVFVUUgMHgwMjAwCiNkZWZpbmUgSUZG X0RFVEFDSF9RVUVVRSAweDA0MDAKCi8qIEZlYXR1cmVzIGZvciBHU08gKFRVTlNFVE9GRkxPQUQp LiAqLwojZGVmaW5lIFRVTl9GX0NTVU0JMHgwMQkvKiBZb3UgY2FuIGhhbmQgbWUgdW5jaGVja3N1 bW1lZCBwYWNrZXRzLiAqLwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvdmlydGlv L3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbF90YXAuaDoxNgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKLyogQ29uc3RhbnRzICovCiNkZWZpbmUgUEFUSF9ORVRfVFVOCSIvZGV2L25ldC90dW4i CgppbnQgdmhvc3Rfa2VybmVsX29wZW5fdGFwKGNoYXIgKipwX2lmbmFtZSwgaW50IGhkcl9zaXpl LCBpbnQgcmVxX21xLAoJCQkgY29uc3QgY2hhciAqbWFjLCB1aW50NjRfdCBmZWF0dXJlcyk7Cmlu dCB2aG9zdF9rZXJuZWxfdGFwX3NldF9vZmZsb2FkKGludCBmZCwgdWludDY0X3QgZmVhdHVyZXMp OwppbnQgdmhvc3Rfa2VybmVsX3RhcF9zZXRfcXVldWUoaW50IGZkLCBib29sIGF0dGFjaCk7Cmlu dCB0YXBfc3VwcG9ydF9mZWF0dXJlcyh1bnNpZ25lZCBpbnQgKnRhcF9mZWF0dXJlcyk7CgojZW5k aWYKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92 aG9zdF9rZXJuZWxfdGFwLmg6MzkKQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdmlydGlvL3Zp cnRpb191c2VyL3Zob3N0X2tlcm5lbC5jIHdpdGggNyByZWplY3RzLi4uClJlamVjdGVkIGh1bmsg IzEuClJlamVjdGVkIGh1bmsgIzIuClJlamVjdGVkIGh1bmsgIzMuClJlamVjdGVkIGh1bmsgIzQu ClJlamVjdGVkIGh1bmsgIzUuClJlamVjdGVkIGh1bmsgIzYuClJlamVjdGVkIGh1bmsgIzcuCkFw cGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWxf dGFwLmMgd2l0aCAzIHJlamVjdHMuLi4KUmVqZWN0ZWQgaHVuayAjMS4KUmVqZWN0ZWQgaHVuayAj Mi4KUmVqZWN0ZWQgaHVuayAjMy4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdmlydGlvL3Zp cnRpb191c2VyL3Zob3N0X2tlcm5lbF90YXAuaCB3aXRoIDIgcmVqZWN0cy4uLgpSZWplY3RlZCBo dW5rICMxLgpSZWplY3RlZCBodW5rICMyLgpkaWZmIGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRp b191c2VyL3Zob3N0X2tlcm5lbC5jIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zo b3N0X2tlcm5lbC5jCShyZWplY3RlZCBodW5rcykKQEAgLTEyMCw5ICsxMjAsOSBAQCB2aG9zdF9r ZXJuZWxfc2V0X293bmVyKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldikKIHN0YXRpYyBpbnQK IHZob3N0X2tlcm5lbF9nZXRfZmVhdHVyZXMoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCB1 aW50NjRfdCAqZmVhdHVyZXMpCiB7Ci0JaW50IHJldDsKLQl1bnNpZ25lZCBpbnQgdGFwX2ZlYXR1 cmVzOwogCXN0cnVjdCB2aG9zdF9rZXJuZWxfZGF0YSAqZGF0YSA9IGRldi0+YmFja2VuZF9kYXRh OworCXVuc2lnbmVkIGludCB0YXBfZmxhZ3M7CisJaW50IHJldDsKIAogCXJldCA9IHZob3N0X2tl cm5lbF9pb2N0bChkYXRhLT52aG9zdGZkc1swXSwgVkhPU1RfR0VUX0ZFQVRVUkVTLCBmZWF0dXJl cyk7CiAJaWYgKHJldCA8IDApIHsKQEAgLTEzMCw3ICsxMzAsNyBAQCB2aG9zdF9rZXJuZWxfZ2V0 X2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgdWludDY0X3QgKmZlYXR1cmVz KQogCQlyZXR1cm4gLTE7CiAJfQogCi0JcmV0ID0gdGFwX3N1cHBvcnRfZmVhdHVyZXMoJnRhcF9m ZWF0dXJlcyk7CisJcmV0ID0gdGFwX2dldF9mbGFncyhkYXRhLT50YXBmZHNbMF0sICZ0YXBfZmxh Z3MpOwogCWlmIChyZXQgPCAwKSB7CiAJCVBNRF9EUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBnZXQg VEFQIGZlYXR1cmVzIik7CiAJCXJldHVybiAtMTsKQEAgLTE0MCw3ICsxNDAsNyBAQCB2aG9zdF9r ZXJuZWxfZ2V0X2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgdWludDY0X3Qg KmZlYXR1cmVzKQogCSAqIGJ1dCBub3QgY2xhaW1lZCBieSB2aG9zdC1uZXQsIHNvIHdlIGFkZCB0 aGVtIGJhY2sgd2hlbgogCSAqIHJlcG9ydGluZyB0byB1cHBlciBsYXllci4KIAkgKi8KLQlpZiAo dGFwX2ZlYXR1cmVzICYgSUZGX1ZORVRfSERSKSB7CisJaWYgKHRhcF9mbGFncyAmIElGRl9WTkVU X0hEUikgewogCQkqZmVhdHVyZXMgfD0gVkhPU1RfS0VSTkVMX0dVRVNUX09GRkxPQURTX01BU0s7 CiAJCSpmZWF0dXJlcyB8PSBWSE9TVF9LRVJORUxfSE9TVF9PRkZMT0FEU19NQVNLOwogCX0KQEAg LTE0OCw3ICsxNDgsNyBAQCB2aG9zdF9rZXJuZWxfZ2V0X2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9f dXNlcl9kZXYgKmRldiwgdWludDY0X3QgKmZlYXR1cmVzKQogCS8qIHZob3N0X2tlcm5lbCB3aWxs IG5vdCBkZWNsYXJlIHRoaXMgZmVhdHVyZSwgYnV0IGl0IGRvZXMKIAkgKiBzdXBwb3J0IG11bHRp LXF1ZXVlLgogCSAqLwotCWlmICh0YXBfZmVhdHVyZXMgJiBJRkZfTVVMVElfUVVFVUUpCisJaWYg KHRhcF9mbGFncyAmIElGRl9NVUxUSV9RVUVVRSkKIAkJKmZlYXR1cmVzIHw9ICgxdWxsIDw8IFZJ UlRJT19ORVRfRl9NUSk7CiAKIAlyZXR1cm4gMDsKQEAgLTM4MCw5ICszODAsMjAgQEAgdmhvc3Rf a2VybmVsX3NldF9zdGF0dXMoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2IF9fcnRlX3VudXNl ZCwgdWludDhfdCBzdGF0dXMKIHN0YXRpYyBpbnQKIHZob3N0X2tlcm5lbF9zZXR1cChzdHJ1Y3Qg dmlydGlvX3VzZXJfZGV2ICpkZXYpCiB7Ci0JaW50IHZob3N0ZmQ7Ci0JdWludDMyX3QgcSwgaTsK IAlzdHJ1Y3Qgdmhvc3Rfa2VybmVsX2RhdGEgKmRhdGE7CisJdW5zaWduZWQgaW50IHRhcF9mZWF0 dXJlczsKKwl1bnNpZ25lZCBpbnQgdGFwX2ZsYWdzOworCWNvbnN0IGNoYXIgKmlmbmFtZTsKKwl1 aW50MzJfdCBxLCBpOworCWludCB2aG9zdGZkOworCisJaWYgKHRhcF9zdXBwb3J0X2ZlYXR1cmVz KCZ0YXBfZmVhdHVyZXMpIDwgMCkKKwkJcmV0dXJuIC0xOworCisJaWYgKCh0YXBfZmVhdHVyZXMg JiBJRkZfVk5FVF9IRFIpID09IDApIHsKKwkJUE1EX0lOSVRfTE9HKEVSUiwgIlRBUCBkb2VzIG5v dCBzdXBwb3J0IElGRl9WTkVUX0hEUiIpOworCQlyZXR1cm4gLTE7CisJfQogCiAJZGF0YSA9IG1h bGxvYyhzaXplb2YoKmRhdGEpKTsKIAlpZiAoIWRhdGEpIHsKQEAgLTQxNCwxOCArNDI1LDQzIEBA IHZob3N0X2tlcm5lbF9zZXR1cChzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYpCiAJCQlQTURf RFJWX0xPRyhFUlIsICJmYWlsIHRvIG9wZW4gJXMsICVzIiwgZGV2LT5wYXRoLCBzdHJlcnJvcihl cnJubykpOwogCQkJZ290byBlcnJfdGFwZmRzOwogCQl9Ci0KIAkJZGF0YS0+dmhvc3RmZHNbaV0g PSB2aG9zdGZkOwogCX0KIAorCWlmbmFtZSA9IGRldi0+aWZuYW1lICE9IE5VTEwgPyBkZXYtPmlm bmFtZSA6ICJ0YXAlZCI7CisJZGF0YS0+dGFwZmRzWzBdID0gdGFwX29wZW4oaWZuYW1lLCAodGFw X2ZlYXR1cmVzICYgSUZGX01VTFRJX1FVRVVFKSAhPSAwKTsKKwlpZiAoZGF0YS0+dGFwZmRzWzBd IDwgMCkKKwkJZ290byBlcnJfdGFwZmRzOworCWlmIChkZXYtPmlmbmFtZSA9PSBOVUxMICYmIHRh cF9nZXRfbmFtZShkYXRhLT50YXBmZHNbMF0sICZkZXYtPmlmbmFtZSkgPCAwKSB7CisJCVBNRF9E UlZfTE9HKEVSUiwgImZhaWwgdG8gZ2V0IHRhcCBuYW1lICglZCkiLCBkYXRhLT50YXBmZHNbMF0p OworCQlnb3RvIGVycl90YXBmZHM7CisJfQorCWlmICh0YXBfZ2V0X2ZsYWdzKGRhdGEtPnRhcGZk c1swXSwgJnRhcF9mbGFncykgPCAwKSB7CisJCVBNRF9EUlZfTE9HKEVSUiwgImZhaWwgdG8gZ2V0 IHRhcCBmbGFncyBmb3IgdGFwICVzIiwgZGV2LT5pZm5hbWUpOworCQlnb3RvIGVycl90YXBmZHM7 CisJfQorCWlmICgodGFwX2ZsYWdzICYgSUZGX01VTFRJX1FVRVVFKSA9PSAwICYmIGRldi0+bWF4 X3F1ZXVlX3BhaXJzID4gMSkgeworCQlQTURfRFJWX0xPRyhFUlIsICJ0YXAgJXMgZG9lcyBub3Qg c3VwcG9ydCBtdWx0aSBxdWV1ZSIsIGRldi0+aWZuYW1lKTsKKwkJZ290byBlcnJfdGFwZmRzOwor CX0KKworCWZvciAoaSA9IDE7IGkgPCBkZXYtPm1heF9xdWV1ZV9wYWlyczsgaSsrKSB7CisJCWRh dGEtPnRhcGZkc1tpXSA9IHRhcF9vcGVuKGRldi0+aWZuYW1lLCB0cnVlKTsKKwkJaWYgKGRhdGEt PnRhcGZkc1tpXSA8IDApCisJCQlnb3RvIGVycl90YXBmZHM7CisJfQorCiAJZGV2LT5iYWNrZW5k X2RhdGEgPSBkYXRhOwogCiAJcmV0dXJuIDA7CiAKIGVycl90YXBmZHM6Ci0JZm9yIChpID0gMDsg aSA8IGRldi0+bWF4X3F1ZXVlX3BhaXJzOyBpKyspCisJZm9yIChpID0gMDsgaSA8IGRldi0+bWF4 X3F1ZXVlX3BhaXJzOyBpKyspIHsKIAkJaWYgKGRhdGEtPnZob3N0ZmRzW2ldID49IDApCiAJCQlj bG9zZShkYXRhLT52aG9zdGZkc1tpXSk7CisJCWlmIChkYXRhLT50YXBmZHNbaV0gPj0gMCkKKwkJ CWNsb3NlKGRhdGEtPnRhcGZkc1tpXSk7CisJfQogCiAJZnJlZShkYXRhLT50YXBmZHMpOwogZXJy X3Zob3N0ZmRzOgpAQCAtNDg4LDU4ICs1MjQsNDIgQEAgdmhvc3Rfa2VybmVsX2VuYWJsZV9xdWV1 ZV9wYWlyKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwKIAkJCSAgICAgICB1aW50MTZfdCBw YWlyX2lkeCwKIAkJCSAgICAgICBpbnQgZW5hYmxlKQogeworCXN0cnVjdCB2aG9zdF9rZXJuZWxf ZGF0YSAqZGF0YSA9IGRldi0+YmFja2VuZF9kYXRhOwogCWludCBoZHJfc2l6ZTsKIAlpbnQgdmhv c3RmZDsKIAlpbnQgdGFwZmQ7Ci0JaW50IHJlcV9tcSA9IChkZXYtPm1heF9xdWV1ZV9wYWlycyA+ IDEpOwotCXN0cnVjdCB2aG9zdF9rZXJuZWxfZGF0YSAqZGF0YSA9IGRldi0+YmFja2VuZF9kYXRh OwotCi0Jdmhvc3RmZCA9IGRhdGEtPnZob3N0ZmRzW3BhaXJfaWR4XTsKIAogCWlmIChkZXYtPnFw X2VuYWJsZWRbcGFpcl9pZHhdID09IGVuYWJsZSkKIAkJcmV0dXJuIDA7CiAKKwl2aG9zdGZkID0g ZGF0YS0+dmhvc3RmZHNbcGFpcl9pZHhdOworCXRhcGZkID0gZGF0YS0+dGFwZmRzW3BhaXJfaWR4 XTsKKwogCWlmICghZW5hYmxlKSB7Ci0JCXRhcGZkID0gZGF0YS0+dGFwZmRzW3BhaXJfaWR4XTsK IAkJaWYgKHZob3N0X2tlcm5lbF9zZXRfYmFja2VuZCh2aG9zdGZkLCAtMSkgPCAwKSB7CiAJCQlQ TURfRFJWX0xPRyhFUlIsICJmYWlsIHRvIHNldCBiYWNrZW5kIGZvciB2aG9zdCBrZXJuZWwiKTsK IAkJCXJldHVybiAtMTsKIAkJfQotCQlpZiAocmVxX21xICYmIHZob3N0X2tlcm5lbF90YXBfc2V0 X3F1ZXVlKHRhcGZkLCBmYWxzZSkgPCAwKSB7Ci0JCQlQTURfRFJWX0xPRyhFUlIsICJmYWlsIHRv IGRpc2FibGUgdGFwIGZvciB2aG9zdCBrZXJuZWwiKTsKLQkJCXJldHVybiAtMTsKLQkJfQogCQlk ZXYtPnFwX2VuYWJsZWRbcGFpcl9pZHhdID0gZmFsc2U7CiAJCXJldHVybiAwOwogCX0KIAotCWlm IChkYXRhLT50YXBmZHNbcGFpcl9pZHhdID49IDApIHsKLQkJdGFwZmQgPSBkYXRhLT50YXBmZHNb cGFpcl9pZHhdOwotCQlpZiAodmhvc3Rfa2VybmVsX3RhcF9zZXRfb2ZmbG9hZCh0YXBmZCwgZGV2 LT5mZWF0dXJlcykgPT0gLTEpCi0JCQlyZXR1cm4gLTE7Ci0JCWlmIChyZXFfbXEgJiYgdmhvc3Rf a2VybmVsX3RhcF9zZXRfcXVldWUodGFwZmQsIHRydWUpIDwgMCkgewotCQkJUE1EX0RSVl9MT0co RVJSLCAiZmFpbCB0byBlbmFibGUgdGFwIGZvciB2aG9zdCBrZXJuZWwiKTsKLQkJCXJldHVybiAt MTsKLQkJfQotCQlnb3RvIHNldF9iYWNrZW5kOwotCX0KLQogCWlmICgoZGV2LT5mZWF0dXJlcyAm ICgxVUxMIDw8IFZJUlRJT19ORVRfRl9NUkdfUlhCVUYpKSB8fAogCSAgICAoZGV2LT5mZWF0dXJl cyAmICgxVUxMIDw8IFZJUlRJT19GX1ZFUlNJT05fMSkpKQogCQloZHJfc2l6ZSA9IHNpemVvZihz dHJ1Y3QgdmlydGlvX25ldF9oZHJfbXJnX3J4YnVmKTsKIAllbHNlCiAJCWhkcl9zaXplID0gc2l6 ZW9mKHN0cnVjdCB2aXJ0aW9fbmV0X2hkcik7CiAKLQl0YXBmZCA9IHZob3N0X2tlcm5lbF9vcGVu X3RhcCgmZGV2LT5pZm5hbWUsIGhkcl9zaXplLCByZXFfbXEsCi0JCQkgKGNoYXIgKilkZXYtPm1h Y19hZGRyLCBkZXYtPmZlYXR1cmVzKTsKLQlpZiAodGFwZmQgPCAwKSB7Ci0JCVBNRF9EUlZfTE9H KEVSUiwgImZhaWwgdG8gb3BlbiB0YXAgZm9yIHZob3N0IGtlcm5lbCIpOworCS8qIFNldCBtYWMg b24gdGFwIG9ubHkgb25jZSB3aGVuIHN0YXJ0aW5nICovCisJaWYgKCFkZXYtPnN0YXJ0ZWQgJiYg cGFpcl9pZHggPT0gMCAmJgorCQkJdGFwX3NldF9tYWMoZGF0YS0+dGFwZmRzW3BhaXJfaWR4XSwg ZGV2LT5tYWNfYWRkcikgPCAwKQogCQlyZXR1cm4gLTE7Ci0JfQogCi0JZGF0YS0+dGFwZmRzW3Bh aXJfaWR4XSA9IHRhcGZkOworCWlmICh2aG9zdF9rZXJuZWxfdGFwX3NldHVwKHRhcGZkLCBoZHJf c2l6ZSwgZGV2LT5mZWF0dXJlcykgPCAwKSB7CisJCVBNRF9EUlZfTE9HKEVSUiwgImZhaWwgdG8g c2V0dXAgdGFwIGZvciB2aG9zdCBrZXJuZWwiKTsKKwkJcmV0dXJuIC0xOworCX0KIAotc2V0X2Jh Y2tlbmQ6CiAJaWYgKHZob3N0X2tlcm5lbF9zZXRfYmFja2VuZCh2aG9zdGZkLCB0YXBmZCkgPCAw KSB7CiAJCVBNRF9EUlZfTE9HKEVSUiwgImZhaWwgdG8gc2V0IGJhY2tlbmQgZm9yIHZob3N0IGtl cm5lbCIpOwogCQlyZXR1cm4gLTE7CmRpZmYgYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3Vz ZXIvdmhvc3Rfa2VybmVsX3RhcC5jIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zo b3N0X2tlcm5lbF90YXAuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC00Miw2ICs0Miw5MSBAQCB0YXBf c3VwcG9ydF9mZWF0dXJlcyh1bnNpZ25lZCBpbnQgKnRhcF9mZWF0dXJlcykKIH0KIAogaW50Cit0 YXBfb3Blbihjb25zdCBjaGFyICppZm5hbWUsIGJvb2wgbXVsdGlfcXVldWUpCit7CisJc3RydWN0 IGlmcmVxIGlmcjsKKwlpbnQgdGFwZmQ7CisKKwl0YXBmZCA9IG9wZW4oUEFUSF9ORVRfVFVOLCBP X1JEV1IpOworCWlmICh0YXBmZCA8IDApIHsKKwkJUE1EX0RSVl9MT0coRVJSLCAiZmFpbCB0byBv cGVuICVzOiAlcyIsIFBBVEhfTkVUX1RVTiwgc3RyZXJyb3IoZXJybm8pKTsKKwkJcmV0dXJuIC0x OworCX0KKwlpZiAoZmNudGwodGFwZmQsIEZfU0VURkwsIE9fTk9OQkxPQ0spIDwgMCkgeworCQlQ TURfRFJWX0xPRyhFUlIsICJmY250bCB0YXBmZCBmYWlsZWQ6ICVzIiwgc3RyZXJyb3IoZXJybm8p KTsKKwkJY2xvc2UodGFwZmQpOworCQlyZXR1cm4gLTE7CisJfQorCityZXRyeV9tb25vX3E6CisJ bWVtc2V0KCZpZnIsIDAsIHNpemVvZihpZnIpKTsKKwlzdHJuY3B5KGlmci5pZnJfbmFtZSwgaWZu YW1lLCBJRk5BTVNJWiAtIDEpOworCWlmci5pZnJfZmxhZ3MgPSBJRkZfVEFQIHwgSUZGX05PX1BJ IHwgSUZGX1ZORVRfSERSOworCWlmIChtdWx0aV9xdWV1ZSkKKwkJaWZyLmlmcl9mbGFncyB8PSBJ RkZfTVVMVElfUVVFVUU7CisJaWYgKGlvY3RsKHRhcGZkLCBUVU5TRVRJRkYsICh2b2lkICopJmlm cikgPT0gLTEpIHsKKwkJaWYgKG11bHRpX3F1ZXVlKSB7CisJCQlQTURfRFJWX0xPRyhERUJVRywK KwkJCQkiVFVOU0VUSUZGIGZhaWxlZCAod2lsbCByZXRyeSB3aXRob3V0IElGRl9NVUxUSV9RVUVV RSk6ICVzIiwKKwkJCQlzdHJlcnJvcihlcnJubykpOworCQkJbXVsdGlfcXVldWUgPSBmYWxzZTsK KwkJCWdvdG8gcmV0cnlfbW9ub19xOworCQl9CisKKwkJUE1EX0RSVl9MT0coRVJSLCAiVFVOU0VU SUZGIGZhaWxlZDogJXMiLCBzdHJlcnJvcihlcnJubykpOworCQljbG9zZSh0YXBmZCk7CisJCXRh cGZkID0gLTE7CisJfQorCXJldHVybiB0YXBmZDsKK30KKworaW50Cit0YXBfZ2V0X25hbWUoaW50 IHRhcGZkLCBjaGFyICoqbmFtZSkKK3sKKwlzdHJ1Y3QgaWZyZXEgaWZyOworCWludCByZXQ7CisK KwltZW1zZXQoJmlmciwgMCwgc2l6ZW9mKGlmcikpOworCWlmIChpb2N0bCh0YXBmZCwgVFVOR0VU SUZGLCAodm9pZCAqKSZpZnIpID09IC0xKSB7CisJCVBNRF9EUlZfTE9HKEVSUiwgIlRVTkdFVElG RiBmYWlsZWQ6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKKwkJcmV0dXJuIC0xOworCX0KKwlyZXQg PSBhc3ByaW50ZihuYW1lLCAiJXMiLCBpZnIuaWZyX25hbWUpOworCWlmIChyZXQgIT0gLTEpCisJ CXJldCA9IDA7CisJcmV0dXJuIHJldDsKK30KKworaW50Cit0YXBfZ2V0X2ZsYWdzKGludCB0YXBm ZCwgdW5zaWduZWQgaW50ICp0YXBfZmxhZ3MpCit7CisJc3RydWN0IGlmcmVxIGlmcjsKKworCW1l bXNldCgmaWZyLCAwLCBzaXplb2YoaWZyKSk7CisJaWYgKGlvY3RsKHRhcGZkLCBUVU5HRVRJRkYs ICh2b2lkICopJmlmcikgPT0gLTEpIHsKKwkJUE1EX0RSVl9MT0coRVJSLCAiVFVOR0VUSUZGIGZh aWxlZDogJXMiLCBzdHJlcnJvcihlcnJubykpOworCQlyZXR1cm4gLTE7CisJfQorCSp0YXBfZmxh Z3MgPSBpZnIuaWZyX2ZsYWdzOworCXJldHVybiAwOworfQorCitpbnQKK3RhcF9zZXRfbWFjKGlu dCB0YXBmZCwgdWludDhfdCAqbWFjKQoreworCXN0cnVjdCBpZnJlcSBpZnI7CisKKwltZW1zZXQo JmlmciwgMCwgc2l6ZW9mKGlmcikpOworCWlmci5pZnJfaHdhZGRyLnNhX2ZhbWlseSA9IEFSUEhS RF9FVEhFUjsKKwltZW1jcHkoaWZyLmlmcl9od2FkZHIuc2FfZGF0YSwgbWFjLCBSVEVfRVRIRVJf QUREUl9MRU4pOworCWlmIChpb2N0bCh0YXBmZCwgU0lPQ1NJRkhXQUREUiwgKHZvaWQgKikmaWZy KSA9PSAtMSkgeworCQlQTURfRFJWX0xPRyhFUlIsICJTSU9DU0lGSFdBRERSIGZhaWxlZDogJXMi LCBzdHJlcnJvcihlcnJubykpOworCQlyZXR1cm4gLTE7CisJfQorCXJldHVybiAwOworfQorCitz dGF0aWMgaW50CiB2aG9zdF9rZXJuZWxfdGFwX3NldF9vZmZsb2FkKGludCBmZCwgdWludDY0X3Qg ZmVhdHVyZXMpCiB7CiAJdW5zaWduZWQgaW50IG9mZmxvYWQgPSAwOwpAQCAtNzksMjQgKzE2NCw5 IEBAIHZob3N0X2tlcm5lbF90YXBfc2V0X29mZmxvYWQoaW50IGZkLCB1aW50NjRfdCBmZWF0dXJl cykKIH0KIAogaW50Ci12aG9zdF9rZXJuZWxfdGFwX3NldF9xdWV1ZShpbnQgZmQsIGJvb2wgYXR0 YWNoKQotewotCXN0cnVjdCBpZnJlcSBpZnIgPSB7Ci0JCS5pZnJfZmxhZ3MgPSBhdHRhY2ggPyBJ RkZfQVRUQUNIX1FVRVVFIDogSUZGX0RFVEFDSF9RVUVVRSwKLQl9OwotCi0JcmV0dXJuIGlvY3Rs KGZkLCBUVU5TRVRRVUVVRSwgJmlmcik7Ci19Ci0KLWludAotdmhvc3Rfa2VybmVsX29wZW5fdGFw KGNoYXIgKipwX2lmbmFtZSwgaW50IGhkcl9zaXplLCBpbnQgcmVxX21xLAotCQkJIGNvbnN0IGNo YXIgKm1hYywgdWludDY0X3QgZmVhdHVyZXMpCit2aG9zdF9rZXJuZWxfdGFwX3NldHVwKGludCB0 YXBmZCwgaW50IGhkcl9zaXplLCB1aW50NjRfdCBmZWF0dXJlcykKIHsKLQl1bnNpZ25lZCBpbnQg dGFwX2ZlYXR1cmVzOwotCWNoYXIgKnRhcF9uYW1lID0gTlVMTDsKIAlpbnQgc25kYnVmID0gSU5U X01BWDsKLQlzdHJ1Y3QgaWZyZXEgaWZyOwotCWludCB0YXBmZDsKIAlpbnQgcmV0OwogCiAJLyog VE9ETzoKQEAgLTEwNCw4NiArMTc0LDE4IEBAIHZob3N0X2tlcm5lbF9vcGVuX3RhcChjaGFyICoq cF9pZm5hbWUsIGludCBoZHJfc2l6ZSwgaW50IHJlcV9tcSwKIAkgKiAyLiBnZXQgbnVtYmVyIG9m IG1lbW9yeSByZWdpb25zIGZyb20gdmhvc3QgbW9kdWxlIHBhcmFtZXRlcgogCSAqIG1heF9tZW1f cmVnaW9ucywgc3VwcG9ydGVkIGluIG5ld2VyIHZlcnNpb24gbGludXgga2VybmVsCiAJICovCi0J dGFwZmQgPSBvcGVuKFBBVEhfTkVUX1RVTiwgT19SRFdSKTsKLQlpZiAodGFwZmQgPCAwKSB7Ci0J CVBNRF9EUlZfTE9HKEVSUiwgImZhaWwgdG8gb3BlbiAlczogJXMiLAotCQkJICAgIFBBVEhfTkVU X1RVTiwgc3RyZXJyb3IoZXJybm8pKTsKLQkJcmV0dXJuIC0xOwotCX0KLQotCS8qIENvbnN0cnVj dCBpZnIgKi8KLQltZW1zZXQoJmlmciwgMCwgc2l6ZW9mKGlmcikpOwotCWlmci5pZnJfZmxhZ3Mg PSBJRkZfVEFQIHwgSUZGX05PX1BJOwotCi0JaWYgKGlvY3RsKHRhcGZkLCBUVU5HRVRGRUFUVVJF UywgJnRhcF9mZWF0dXJlcykgPT0gLTEpIHsKLQkJUE1EX0RSVl9MT0coRVJSLCAiVFVOR0VURkVB VFVSRVMgZmFpbGVkOiAlcyIsIHN0cmVycm9yKGVycm5vKSk7Ci0JCWdvdG8gZXJyb3I7Ci0JfQot CWlmICh0YXBfZmVhdHVyZXMgJiBJRkZfT05FX1FVRVVFKQotCQlpZnIuaWZyX2ZsYWdzIHw9IElG Rl9PTkVfUVVFVUU7Ci0KLQkvKiBMZXQgdGFwIGluc3RlYWQgb2Ygdmhvc3QtbmV0IGhhbmRsZSB2 bmV0IGhlYWRlciwgYXMgdGhlIGxhdHRlciBkb2VzCi0JICogbm90IHN1cHBvcnQgb2ZmbG9hZGlu Zy4gQW5kIGluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIG5vdCBzZXQgZmVhdHVyZQotCSAqIGJpdCBW SE9TVF9ORVRfRl9WSVJUSU9fTkVUX0hEUi4KLQkgKi8KLQlpZiAodGFwX2ZlYXR1cmVzICYgSUZG X1ZORVRfSERSKSB7Ci0JCWlmci5pZnJfZmxhZ3MgfD0gSUZGX1ZORVRfSERSOwotCX0gZWxzZSB7 Ci0JCVBNRF9EUlZfTE9HKEVSUiwgIlRBUCBkb2VzIG5vdCBzdXBwb3J0IElGRl9WTkVUX0hEUiIp OwotCQlnb3RvIGVycm9yOwotCX0KLQotCWlmIChyZXFfbXEpCi0JCWlmci5pZnJfZmxhZ3MgfD0g SUZGX01VTFRJX1FVRVVFOwotCi0JaWYgKCpwX2lmbmFtZSkKLQkJc3RybmNweShpZnIuaWZyX25h bWUsICpwX2lmbmFtZSwgSUZOQU1TSVogLSAxKTsKLQllbHNlCi0JCXN0cm5jcHkoaWZyLmlmcl9u YW1lLCAidGFwJWQiLCBJRk5BTVNJWiAtIDEpOwotCWlmIChpb2N0bCh0YXBmZCwgVFVOU0VUSUZG LCAodm9pZCAqKSZpZnIpID09IC0xKSB7Ci0JCVBNRF9EUlZfTE9HKEVSUiwgIlRVTlNFVElGRiBm YWlsZWQ6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKLQkJZ290byBlcnJvcjsKLQl9Ci0KLQl0YXBf bmFtZSA9IHN0cmR1cChpZnIuaWZyX25hbWUpOwotCWlmICghdGFwX25hbWUpIHsKLQkJUE1EX0RS Vl9MT0coRVJSLCAic3RyZHVwIGlmbmFtZSBmYWlsZWQ6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsK LQkJZ290byBlcnJvcjsKLQl9Ci0KLQlpZiAoZmNudGwodGFwZmQsIEZfU0VURkwsIE9fTk9OQkxP Q0spIDwgMCkgewotCQlQTURfRFJWX0xPRyhFUlIsICJmY250bCB0YXBmZCBmYWlsZWQ6ICVzIiwg c3RyZXJyb3IoZXJybm8pKTsKLQkJZ290byBlcnJvcjsKLQl9Ci0KIAlpZiAoaW9jdGwodGFwZmQs IFRVTlNFVFZORVRIRFJTWiwgJmhkcl9zaXplKSA8IDApIHsKIAkJUE1EX0RSVl9MT0coRVJSLCAi VFVOU0VUVk5FVEhEUlNaIGZhaWxlZDogJXMiLCBzdHJlcnJvcihlcnJubykpOwotCQlnb3RvIGVy cm9yOworCQlyZXR1cm4gLTE7CiAJfQogCiAJaWYgKGlvY3RsKHRhcGZkLCBUVU5TRVRTTkRCVUYs ICZzbmRidWYpIDwgMCkgewogCQlQTURfRFJWX0xPRyhFUlIsICJUVU5TRVRTTkRCVUYgZmFpbGVk OiAlcyIsIHN0cmVycm9yKGVycm5vKSk7Ci0JCWdvdG8gZXJyb3I7CisJCXJldHVybiAtMTsKIAl9 CiAKIAlyZXQgPSB2aG9zdF9rZXJuZWxfdGFwX3NldF9vZmZsb2FkKHRhcGZkLCBmZWF0dXJlcyk7 Ci0JaWYgKHJldCA8IDAgJiYgcmV0ICE9IC1FTk9UU1VQKQotCQlnb3RvIGVycm9yOwotCi0JbWVt c2V0KCZpZnIsIDAsIHNpemVvZihpZnIpKTsKLQlpZnIuaWZyX2h3YWRkci5zYV9mYW1pbHkgPSBB UlBIUkRfRVRIRVI7Ci0JbWVtY3B5KGlmci5pZnJfaHdhZGRyLnNhX2RhdGEsIG1hYywgUlRFX0VU SEVSX0FERFJfTEVOKTsKLQlpZiAoaW9jdGwodGFwZmQsIFNJT0NTSUZIV0FERFIsICh2b2lkICop JmlmcikgPT0gLTEpIHsKLQkJUE1EX0RSVl9MT0coRVJSLCAiU0lPQ1NJRkhXQUREUiBmYWlsZWQ6 ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKLQkJZ290byBlcnJvcjsKLQl9Ci0KLQlmcmVlKCpwX2lm bmFtZSk7Ci0JKnBfaWZuYW1lID0gdGFwX25hbWU7Ci0KLQlyZXR1cm4gdGFwZmQ7Ci1lcnJvcjoK LQlmcmVlKHRhcF9uYW1lKTsKLQljbG9zZSh0YXBmZCk7Ci0JcmV0dXJuIC0xOworCWlmIChyZXQg PT0gLUVOT1RTVVApCisJCXJldCA9IDA7CisJcmV0dXJuIHJldDsKIH0KZGlmZiBhL2RyaXZlcnMv bmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWxfdGFwLmggYi9kcml2ZXJzL25ldC92 aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2VybmVsX3RhcC5oCShyZWplY3RlZCBodW5rcykKQEAg LTE2LDE4ICsxNiwxMiBAQAogI2RlZmluZSBUVU5TRVRTTkRCVUYgICBfSU9XKCdUJywgMjEyLCBp bnQpCiAjZGVmaW5lIFRVTkdFVFZORVRIRFJTWiBfSU9SKCdUJywgMjE1LCBpbnQpCiAjZGVmaW5l IFRVTlNFVFZORVRIRFJTWiBfSU9XKCdUJywgMjE2LCBpbnQpCi0jZGVmaW5lIFRVTlNFVFFVRVVF ICBfSU9XKCdUJywgMjE3LCBpbnQpCi0jZGVmaW5lIFRVTlNFVFZORVRMRSBfSU9XKCdUJywgMjIw LCBpbnQpCi0jZGVmaW5lIFRVTlNFVFZORVRCRSBfSU9XKCdUJywgMjIyLCBpbnQpCiAKIC8qIFRV TlNFVElGRiBpZnIgZmxhZ3MgKi8KICNkZWZpbmUgSUZGX1RBUCAgICAgICAgICAweDAwMDIKICNk ZWZpbmUgSUZGX05PX1BJICAgICAgICAweDEwMDAKLSNkZWZpbmUgSUZGX09ORV9RVUVVRSAgICAw eDIwMDAKICNkZWZpbmUgSUZGX1ZORVRfSERSICAgICAweDQwMDAKICNkZWZpbmUgSUZGX01VTFRJ X1FVRVVFICAweDAxMDAKLSNkZWZpbmUgSUZGX0FUVEFDSF9RVUVVRSAweDAyMDAKLSNkZWZpbmUg SUZGX0RFVEFDSF9RVUVVRSAweDA0MDAKIAogLyogRmVhdHVyZXMgZm9yIEdTTyAoVFVOU0VUT0ZG TE9BRCkuICovCiAjZGVmaW5lIFRVTl9GX0NTVU0JMHgwMQkvKiBZb3UgY2FuIGhhbmQgbWUgdW5j aGVja3N1bW1lZCBwYWNrZXRzLiAqLwpAQCAtMzksMTAgKzMzLDEyIEBACiAvKiBDb25zdGFudHMg Ki8KICNkZWZpbmUgUEFUSF9ORVRfVFVOCSIvZGV2L25ldC90dW4iCiAKLWludCB2aG9zdF9rZXJu ZWxfb3Blbl90YXAoY2hhciAqKnBfaWZuYW1lLCBpbnQgaGRyX3NpemUsIGludCByZXFfbXEsCi0J CQkgY29uc3QgY2hhciAqbWFjLCB1aW50NjRfdCBmZWF0dXJlcyk7Ci1pbnQgdmhvc3Rfa2VybmVs X3RhcF9zZXRfb2ZmbG9hZChpbnQgZmQsIHVpbnQ2NF90IGZlYXR1cmVzKTsKLWludCB2aG9zdF9r ZXJuZWxfdGFwX3NldF9xdWV1ZShpbnQgZmQsIGJvb2wgYXR0YWNoKTsKK2ludCB2aG9zdF9rZXJu ZWxfdGFwX3NldHVwKGludCB0YXBmZCwgaW50IGhkcl9zaXplLCB1aW50NjRfdCBmZWF0dXJlcyk7 CisKIGludCB0YXBfc3VwcG9ydF9mZWF0dXJlcyh1bnNpZ25lZCBpbnQgKnRhcF9mZWF0dXJlcyk7 CitpbnQgdGFwX29wZW4oY29uc3QgY2hhciAqaWZuYW1lLCBib29sIG11bHRpX3F1ZXVlKTsKK2lu dCB0YXBfZ2V0X25hbWUoaW50IHRhcGZkLCBjaGFyICoqaWZuYW1lKTsKK2ludCB0YXBfZ2V0X2Zs YWdzKGludCB0YXBmZCwgdW5zaWduZWQgaW50ICp0YXBfZmxhZ3MpOworaW50IHRhcF9zZXRfbWFj KGludCB0YXBmZCwgdWludDhfdCAqbWFjKTsKIAogI2VuZGlmCgpodHRwczovL2xhYi5kcGRrLm9y Zy9yZXN1bHRzL2Rhc2hib2FyZC9wYXRjaHNldHMvMTkwMTEvCgpVTkgtSU9MIERQREsgQ29tbXVu aXR5IExhYgo= --===============6107327038112086734==--