From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by dpdk.org (Postfix) with ESMTP id 254F5F04 for ; Tue, 18 Sep 2018 20:29:44 +0200 (CEST) Received: by mail-wm1-f68.google.com with SMTP id y139-v6so3549277wmc.2 for ; Tue, 18 Sep 2018 11:29:44 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:content-transfer-encoding:mime-version; bh=Xrdn8hNdJ2jQHtu27wRIgWYm1Qf7cBSL3HeKjqhAcmA=; b=UVLyZUlJfubwwhTxfsz+9vTF2PVBZjFKFRLOZ+Hb5BcrIwYA4JnGwYpfp2+yGhYrtc 97OhKHHAZjQEvvtV7PPMEKK3TeqpQAJkjeenqFvnkXA5PNuhrfbxs26tj4nBZ9W6tTAy /Cw2alCobjlo0JBXoPIGoMM2+aR8jxC5CS8DC6sCDVlfleOf1BgzwXzbah8hxRMJVNh0 tx1YhEf8zjTDrdUc1sJv3V0DleBg9EItEA3wSu3yAQS8GD4BUkyMMD8Km/BxmgkATjHa 81dvJhin13Rzj8bhY7H9NZr3c7tQh3BQ6PWBweYQbr1LFdbhw3salJAJcPBFvx7rkQ6d wpxQ== X-Gm-Message-State: APzg51BUXBNg2aoxRc2c4dWC85KAxOk+OM1St+ohpWpaxN66G6IUmIKS PL8QMYTwqdQH/gu/g8CubGA= X-Google-Smtp-Source: ANB0Vdb1MweJK+Uh4kB3O08xB0X/efixJrH4HP4n//Fv61SfIlFRKd+TPGZ3jpBGdvMXWu6QMtIJew== X-Received: by 2002:a1c:1584:: with SMTP id 126-v6mr17235871wmv.24.1537295383492; Tue, 18 Sep 2018 11:29:43 -0700 (PDT) Received: from localhost ([2a01:4b00:f419:6f00:8361:8946:ba2b:d556]) by smtp.gmail.com with ESMTPSA id z11-v6sm20346327wrm.94.2018.09.18.11.29.41 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 18 Sep 2018 11:29:42 -0700 (PDT) Message-ID: <1537295381.10481.15.camel@debian.org> From: Luca Boccassi To: Louis Luo , "dev@dpdk.org" Cc: brussell@vyatta.att-mail.com Date: Tue, 18 Sep 2018 19:29:41 +0100 In-Reply-To: <17F07836-30C0-4B16-A0A8-00CCFC2D715B@vmware.com> References: <20180816135032.28283-1-bluca@debian.org> <20180816135032.28283-3-bluca@debian.org> <1537276494.10481.7.camel@debian.org> <17F07836-30C0-4B16-A0A8-00CCFC2D715B@vmware.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-Mailer: Evolution 3.22.6-1+deb9u1 Mime-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 2/3] net/vmxnet3: fix vmxnet3 dev_uninit() hot-unplug X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Sep 2018 18:29:44 -0000 T24gVHVlLCAyMDE4LTA5LTE4IGF0IDE4OjE0ICswMDAwLCBMb3VpcyBMdW8gd3JvdGU6Cj4gSGkg THVjYSwKPiAKPiBUaGFua3MgZm9yIHBvaW50aW5nIHRvIHRoZSBkb2N1bWVudCEgVGhpcyAiYmFz aWMgcmVxdWlyZW1lbnRzIiBzZWVtcwo+IHRvIGxheSB0aGUgYnVyZGVuIG9uIGFwcGxpY2F0aW9u IGRldmVsb3BlcnMgdG8gY29ycmVjdGx5IGZvbGxvdyB0aGUKPiBob3QtcGx1ZyBmcmFtZXdvcmsn cyBydWxlcywgYnV0IHRoZXJlIHNlZW1zIG5vIG1lY2hhbmlzbSB0byBlbmZvcmNlCj4gdGhpcyBw cm9jZWR1cmUgKGNvcnJlY3QgbWUgaWYgSSdtIHdyb25nKS4gV2hhdCBpZiBhIGJ1Z2d5IGFwcGxp Y2F0aW9uCj4gZG9lc24ndCBjYWxsIHN0b3AvY2xvc2UgYmVmb3JlIGRldGFjaGluZz/CoAoKV2Vs bCBEUERLIGluIGdlbmVyYWwgZG9lcyBub3QgaGF2ZSB0aGUgc2ltcGxlc3QgQVBJIHRvIHVzZSwg dGhlcmUncyBubwpkZW55aW5nIHRoYXQuIFRoYXQncyBiZWNhdXNlIHdoYXQgaXQgZG9lcyBpcyB2 ZXJ5IG11Y2ggbW9yZSBjb21wbGljYXRlZAp0aGFuIHRoZSBhdmVyYWdlIGxpYnJhcnkuClNvIGlm IGFuIGFwcGxpY2F0aW9uIGlnbm9yZXMgdGhlIGRldmVsb3BtZW50IGd1aWRlcyBhbmQgZG9lcyBu b3QgZm9sbG93CnRoZSByZWNvbW1lbmRhdGlvbiBiYWQgdGhpbmdzIHdpbGwgaGFwcGVuIDotKSBC dXQgaXQgd2lsbCBoYXBwZW4KcmVnYXJkbGVzcyBvZiB0aGUgUE1EIHVzZWQuIFRoYXQncyBhbHJl YWR5IHRoZSBjYXNlLgoKPiBJbiBhZGRpdGlvbiwgaW4geW91ciBjb21taXQgZGVzY3JpcHRpb24s IHlvdSBzYWlkICIgVGhlIHZteG5ldDMKPiBkcml2ZXIgY2FuJ3QgY2FsbCBiYWNrIGludG8gZGV2 X2Nsb3NlKCksIGFuZCBwb3NzaWJseSBkZXZfc3RvcCgpLCBpbgo+IGRldl91bmluaXQoKS4iIEJ1 dCBhY3R1YWxseSBpbiB2bXhuZXQzX2Rldl9jbG9zZSgpLCB3ZSBzZXQgaHctCj4gPmFkYXB0ZXJf c3RvcHBlZCA9IDEsIGFuZCBpbiBldGhfdm14bmV0M19kZXZfdW5pbml0KCkgd2UgY2FsbCBpbnRv Cj4gdm14bmV0M19kZXZfY2xvc2UoKSBPTkxZIHdoZW4gaHctPmFkYXB0ZXJfc3RvcHBlZCA9PSAw LiBTbyBpZiB0aGUKPiBhcHBsaWNhdGlvbiBkb2VzIG1lZXQgdGhlIGhvdC1wbHVnIGZyYW1ld29y ayByZXF1aXJlbWVudCBhbmQgY2FsbHMKPiBkZXZfY2xvc2UgYmVmb3JlIGNhbGxpbmcgdW5pbml0 LCBldGhfdm14bmV0M19kZXZfdW5pbml0KCkgc2hvdWxkIG5vdAo+IGNhbGwgaW50byB2bXhuZXQz X2Rldl9jbG9zZSgpIGFnYWluLCByaWdodD8gSWYgc28sIHdoeSBib3RoZXIKPiByZW1vdmluZyB0 aGlzIGNoZWNrP8KgCj4gCj4gT3IgbGV0IG1lIGFzayB0aGlzIHdheS4gSWYgYSBidWdneSBhcHBs aWNhdGlvbiBET0VTIE5PVCBjYWxsCj4gZGV2X2Nsb3NlIGJlZm9yZSBjYWxsaW5nIGV0aF92bXhu ZXQzX2Rldl91bmluaXQoKSwgd291bGQgY2FsbGluZwo+IHZteG5ldDNfZGV2X2Nsb3NlKCkgaW5z aWRlIGV0aF92bXhuZXQzX2Rldl91bmluaXQoKSBjYXVzZSBhbnkKPiB0cm91YmxlPyBBbmQgaWYg YW4gYXBwbGljYXRpb24gRE9FUyBjYWxsIGRldl9jbG9zZSBiZWZvcmUgY2FsbGluZwo+IGV0aF92 bXhuZXQzX2Rldl91bmluaXQoKSwgaGF2ZSB5b3UgZXZlciBzZWVuIHZteG5ldDNfZGV2X2Nsb3Nl KCkKPiBiZWluZyBjYWxsZWQgYWdhaW4gYW5kIHRyaWdnZXIgY3Jhc2hlcyBsaWtlIGRvdWJsZS1m cmVlIG9yIHNvbWV0aGluZwo+IGVsc2U/IElmIHllcywgdGhlbiB3ZSBuZWVkIHRvIGludmVzdGln YXRlLgo+IAo+IFRoYW5rcwo+IExvdWlzCgpUaGUgcHJvYmxlbSBpcyB0aGF0IHRoZXJlIGFyZSBt YW55IFBNRHMsIHNvIHRoZSBndWlkZWxpbmVzIGhhdmUgdG8gYmUKZm9sbG93ZWQgLSBzbyBzdG9w IGFuZCBjbG9zZSBoYXZlIHRvIGJlIGNhbGxlZCBhbnl3YXkgYmVmb3JlIGRldGFjaC4KT3RoZXJ3 aXNlIHJ1bm5pbmcgd2l0aCBvdGhlciBQTURzIHdpbGwgYnJlYWsgdGhlIGFwcGxpY2F0aW9uLiBT byBub3QKY2FsbGluZyBjbG9zZSBpcyBub3QgcmVhbGx5IGFuIG9wdGlvbiBmb3IgYW4gYXBwbGlj YXRpb24uCgpCdXQgdGhlIG1haW4gaXNzdWUgaGVyZSBpcyB0aGUgbGVha2luZyBvZiB0aGUgcXVl dWVzLCB3aGljaCB0aGlzIHBhdGNoCmZpeGVzLiBCeSByZS1hcnJhbmdpbmcgdGhlIHN0b3AvY2xv c2UvdW5pbml0IGxpa2UgdGhpcywgcXVldWVzIGNhbiBiZQpjb3JyZWN0bHkgZnJlZWQgYW5kIHRo dXMgd2UgY2FuIGhvdHBsdWcvdW5wbHVnIGRldmljZXMgd2l0aG91dCBsZWFraW5nCm1hc3NpdmUg YW1vdW50cyBvZiBtZW1vcnkuCgpNeSBjb2xsZWFndWUgQnJpYW4sIHdobyB3cm90ZSB0aGUgcGF0 Y2ggYW5kIEkgQ0MnZWQsIG1pZ2h0IGhhdmUgbW9yZQppbmZvcm1hdGlvbiBpZiB5b3UgbmVlZCBp dC4KCj4g77u/T24gOS8xOC8xOCwgNjoxNSBBTSwgIkx1Y2EgQm9jY2Fzc2kiIDxibHVjYUBkZWJp YW4ub3JnPiB3cm90ZToKPiAKPiDCoMKgwqDCoEhpLAo+IMKgwqDCoMKgCj4gwqDCoMKgwqBUaGUg YXBwbGljYXRpb24gbXVzdCBhbHJlYWR5IHN0b3AgYW5kIGNsb3NlIGJlZm9yZSBkZXRhY2hpbmcK PiAod2hpY2gKPiDCoMKgwqDCoHdpbGwgY2FsbCB1bmluaXQpLiBRdW90aW5nIGZyb20gdGhlIGRv Y3VtZW50YXRpb246Cj4gwqDCoMKgwqAKPiDCoMKgwqDCoCIqwqDCoEJlZm9yZSBkZXRhY2hpbmcs IHRoZXkgbXVzdCBiZSBzdG9wcGVkIGFuZCBjbG9zZWQuCj4gwqDCoMKgwqAKPiDCoMKgwqDCoMKg wqDCoMKgRFBESyBhcHBsaWNhdGlvbnMgbXVzdCBjYWxsICJydGVfZXRoX2Rldl9zdG9wKCkiIGFu ZAo+IMKgwqDCoMKgwqDCoMKgwqAicnRlX2V0aF9kZXZfY2xvc2UoKSIgQVBJcyBiZWZvcmUgZGV0 YWNoaW5nIHBvcnRzLiBUaGVzZQo+IGZ1bmN0aW9ucyB3aWxsCj4gwqDCoMKgwqDCoMKgwqDCoHN0 YXJ0IGZpbmFsaXphdGlvbiBzZXF1ZW5jZSBvZiB0aGUgUE1Ecy4iCj4gwqDCoMKgwqAKPiDCoMKg wqDCoGh0dHBzOi8vbmEwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0 dHAlM0ElMkYlMkZkCj4gb2MuZHBkay5vcmclMkZndWlkZXMlMkZwcm9nX2d1aWRlJTJGcG9ydF9o b3RwbHVnX2ZyYW1ld29yay5odG1sJmFtcDtkCj4gYXRhPTAyJTdDMDElN0NsbG91aXMlNDB2bXdh cmUuY29tJTdDM2Q4N2E1NDgyY2QwNDY2NzlkNzYwOGQ2MWQ2OGJmOWElCj4gN0NiMzkxMzhjYTNj ZWU0YjRhYTRkNmNkODNkOWRkNjJmMCU3QzElN0MwJTdDNjM2NzI4NzMzMDc4NzAwOTExJmFtcDtz Cj4gZGF0YT1xQng3enlPSmhUbVZIMGMyWkVCb2htSUhMNlBrWXdCNlhQYXcyZXBnUzBFJTNEJmFt cDtyZXNlcnZlZD0wCj4gwqDCoMKgwqAKPiDCoMKgwqDCoE9uIE1vbiwgMjAxOC0wOS0xNyBhdCAx OTowNiArMDAwMCwgTG91aXMgTHVvIHdyb3RlOgo+IMKgwqDCoMKgPiBIaSBMdWNhLAo+IMKgwqDC oMKgPsKgCj4gwqDCoMKgwqA+IFdoZW4gZXRoX3ZteG5ldDNfZGV2X3VuaW5pdCgpIGlzIGNhbGxl ZCwgaXMgaXQgZ3VhcmFudGVlZCB0aGF0Cj4gwqDCoMKgwqA+IHZteG5ldDNfZGV2X2Nsb3NlLyB2 bXhuZXQzX2Rldl9zdG9wIG11c3QgaGF2ZSBiZWVuIGNhbGxlZD8gSSdtCj4gbm90Cj4gwqDCoMKg wqA+IGZhbWlsaWFyIHdpdGggdGhlIGhvdC1wbHVnIHByb2NlZHVyZSwgc28ganVzdCB3b25kZXIg aWYgdGhlcmUKPiBpcyBhbnkKPiDCoMKgwqDCoD4gY2hhbmNlIHRoYXQgZXRoX3ZteG5ldDNfZGV2 X3VuaW5pdCgpIGlzIGNhbGxlZCB3aXRob3V0IGNhbGxpbmcKPiDCoMKgwqDCoD4gdm14bmV0M19k ZXZfY2xvc2UvIHZteG5ldDNfZGV2X3N0b3AuCj4gwqDCoMKgwqA+wqAKPiDCoMKgwqDCoD4gVGhh bmtzLAo+IMKgwqDCoMKgPiBMb3Vpcwo+IMKgwqDCoMKgPsKgCj4gwqDCoMKgwqA+IE9uIDgvMTYv MTgsIDY6NTEgQU0sICJkZXYgb24gYmVoYWxmIG9mIEx1Y2EgQm9jY2Fzc2kiIDxkZXYtYm91bgo+ IGNlc0BkCj4gwqDCoMKgwqA+IHBkay5vcmcgb24gYmVoYWxmIG9mIGJsdWNhQGRlYmlhbi5vcmc+ IHdyb3RlOgo+IMKgwqDCoMKgPsKgCj4gwqDCoMKgwqA+wqDCoMKgwqDCoFRoZSB2bXhuZXQzIGRy aXZlciBjYW4ndCBjYWxsIGJhY2sgaW50byBkZXZfY2xvc2UoKSwgYW5kCj4gcG9zc2libHkKPiDC oMKgwqDCoD7CoMKgwqDCoMKgZGV2X3N0b3AoKSwgaW4gZGV2X3VuaW5pdCgpLsKgwqBXaGVuIGRl dl91bmluaXQoKSBpcyBjYWxsZWQsCj4gwqDCoMKgwqA+IGFueXRoaW5nCj4gwqDCoMKgwqA+wqDC oMKgwqDCoHRoYXQgdGhvc2Ugcm91dGluZXMgd291bGQgd2FudCB0byBjbGVhbiB1cCBoYXMgYWxy ZWFkeSBiZWVuCj4gwqDCoMKgwqA+IHJlbGVhc2VkLgo+IMKgwqDCoMKgPsKgwqDCoMKgwqBGdXJ0 aGVyLCBmb3IgY29tcGxldGUgY2xlYW51cCwgaXQgaXMgbmVjZXNzYXJ5IHRvIHJlbGVhc2UKPiBh bnkgb2YKPiDCoMKgwqDCoD4gdGhlCj4gwqDCoMKgwqA+wqDCoMKgwqDCoHF1ZXVlIHJlc291cmNl cyBkdXJpbmcgZGV2X2Nsb3NlKCkuCj4gwqDCoMKgwqA+wqDCoMKgwqDCoFRoaXMgYWxsb3dzIGEg dm14bmV0MyBkZXZpY2UgdG8gYmUgaG90LXVucGx1Z2dlZCB3aXRob3V0Cj4gbGVha2luZwo+IMKg wqDCoMKgPsKgwqDCoMKgwqBxdWV1ZXMuCj4gwqDCoMKgwqA+wqDCoMKgwqDCoAo+IMKgwqDCoMKg PsKgwqDCoMKgwqBGaXhlczogZGZhZmYzN2ZjNDZkICgidm14bmV0MzogaW1wb3J0IG5ldyB2bXhu ZXQzIHBvbGwgbW9kZQo+IMKgwqDCoMKgPiBkcml2ZXIgaW1wbGVtZW50YXRpb24iKQo+IMKgwqDC oMKgPsKgwqDCoMKgwqBDYzogc3RhYmxlQGRwZGsub3JnCj4gwqDCoMKgwqA+wqDCoMKgwqDCoAo+ IMKgwqDCoMKgPsKgwqDCoMKgwqBTaWduZWQtb2ZmLWJ5OiBCcmlhbiBSdXNzZWxsIDxicnVzc2Vs bEBicm9jYWRlLmNvbT4KPiDCoMKgwqDCoD7CoMKgwqDCoMKgU2lnbmVkLW9mZi1ieTogTHVjYSBC b2NjYXNzaSA8Ymx1Y2FAZGViaWFuLm9yZz4KPiDCoMKgwqDCoD7CoMKgwqDCoMKgLS0tCj4gwqDC oMKgwqA+wqDCoMKgwqDCoMKgZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5jIHwg MzYKPiArKysrKysrKysrKysrKysrKysrKwo+IMKgwqDCoMKgPiAtLS0tLS0tLQo+IMKgwqDCoMKg PsKgwqDCoMKgwqDCoDEgZmlsZSBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlv bnMoLSkKPiDCoMKgwqDCoD7CoMKgwqDCoMKgCj4gwqDCoMKgwqA+wqDCoMKgwqDCoGRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMKPiDCoMKgwqDCoD4gYi9k cml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMKPiDCoMKgwqDCoD7CoMKgwqDCoMKg aW5kZXggMjYxM2NkMTM1OC4uYjVkNGJlNWUyNCAxMDA2NDQKPiDCoMKgwqDCoD7CoMKgwqDCoMKg LS0tIGEvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5jCj4gwqDCoMKgwqA+wqDC oMKgwqDCoCsrKyBiL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19ldGhkZXYuYwo+IMKgwqDC oMKgPsKgwqDCoMKgwqBAQCAtMzQ4LDE2ICszNDgsMTEgQEAgZXRoX3ZteG5ldDNfZGV2X2luaXQo c3RydWN0Cj4gcnRlX2V0aF9kZXYKPiDCoMKgwqDCoD4gKmV0aF9kZXYpCj4gwqDCoMKgwqA+wqDC oMKgwqDCoMKgc3RhdGljIGludAo+IMKgwqDCoMKgPsKgwqDCoMKgwqDCoGV0aF92bXhuZXQzX2Rl dl91bmluaXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KQo+IMKgwqDCoMKgPsKgwqDCoMKg wqDCoHsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgLQlzdHJ1Y3Qgdm14bmV0M19odyAqaHcgPSBldGhf ZGV2LT5kYXRhLQo+ID5kZXZfcHJpdmF0ZTsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgLQo+IMKgwqDC oMKgPsKgwqDCoMKgwqDCoAlQTURfSU5JVF9GVU5DX1RSQUNFKCk7Cj4gwqDCoMKgwqA+wqDCoMKg wqDCoMKgCj4gwqDCoMKgwqA+wqDCoMKgwqDCoMKgCWlmIChydGVfZWFsX3Byb2Nlc3NfdHlwZSgp ICE9IFJURV9QUk9DX1BSSU1BUlkpCj4gwqDCoMKgwqA+wqDCoMKgwqDCoMKgCQlyZXR1cm4gMDsK PiDCoMKgwqDCoD7CoMKgwqDCoMKgwqAKPiDCoMKgwqDCoD7CoMKgwqDCoMKgLQlpZiAoaHctPmFk YXB0ZXJfc3RvcHBlZCA9PSAwKQo+IMKgwqDCoMKgPsKgwqDCoMKgwqAtCQl2bXhuZXQzX2Rldl9j bG9zZShldGhfZGV2KTsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgLQo+IMKgwqDCoMKgPsKgwqDCoMKg wqDCoAlldGhfZGV2LT5kZXZfb3BzID0gTlVMTDsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgwqAJZXRo X2Rldi0+cnhfcGt0X2J1cnN0ID0gTlVMTDsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgwqAJZXRoX2Rl di0+dHhfcGt0X2J1cnN0ID0gTlVMTDsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgQEAgLTgwMyw3ICs3 OTgsNyBAQCB2bXhuZXQzX2Rldl9zdG9wKHN0cnVjdCBydGVfZXRoX2Rldgo+ICpkZXYpCj4gwqDC oMKgwqA+wqDCoMKgwqDCoMKgCVBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsKPiDCoMKgwqDCoD7CoMKg wqDCoMKgwqAKPiDCoMKgwqDCoD7CoMKgwqDCoMKgwqAJaWYgKGh3LT5hZGFwdGVyX3N0b3BwZWQg PT0gMSkgewo+IMKgwqDCoMKgPsKgwqDCoMKgwqAtCQlQTURfSU5JVF9MT0coREVCVUcsICJEZXZp Y2UgYWxyZWFkeQo+IGNsb3NlZC4iKTsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgKwkJUE1EX0lOSVRf TE9HKERFQlVHLCAiRGV2aWNlIGFscmVhZHkKPiBzdG9wcGVkLiIpOwo+IMKgwqDCoMKgPsKgwqDC oMKgwqDCoAkJcmV0dXJuOwo+IMKgwqDCoMKgPsKgwqDCoMKgwqDCoAl9Cj4gwqDCoMKgwqA+wqDC oMKgwqDCoMKgCj4gwqDCoMKgwqA+wqDCoMKgwqDCoEBAIC04MjcsNyArODIyLDYgQEAgdm14bmV0 M19kZXZfc3RvcChzdHJ1Y3QgcnRlX2V0aF9kZXYKPiAqZGV2KQo+IMKgwqDCoMKgPsKgwqDCoMKg wqDCoAkvKiByZXNldCB0aGUgZGV2aWNlICovCj4gwqDCoMKgwqA+wqDCoMKgwqDCoMKgCVZNWE5F VDNfV1JJVEVfQkFSMV9SRUcoaHcsIFZNWE5FVDNfUkVHX0NNRCwKPiDCoMKgwqDCoD4gVk1YTkVU M19DTURfUkVTRVRfREVWKTsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgwqAJUE1EX0lOSVRfTE9HKERF QlVHLCAiRGV2aWNlIHJlc2V0LiIpOwo+IMKgwqDCoMKgPsKgwqDCoMKgwqAtCWh3LT5hZGFwdGVy X3N0b3BwZWQgPSAwOwo+IMKgwqDCoMKgPsKgwqDCoMKgwqDCoAo+IMKgwqDCoMKgPsKgwqDCoMKg wqDCoAl2bXhuZXQzX2Rldl9jbGVhcl9xdWV1ZXMoZGV2KTsKPiDCoMKgwqDCoD7CoMKgwqDCoMKg wqAKPiDCoMKgwqDCoD7CoMKgwqDCoMKgQEAgLTgzNyw2ICs4MzEsMzAgQEAgdm14bmV0M19kZXZf c3RvcChzdHJ1Y3QgcnRlX2V0aF9kZXYKPiAqZGV2KQo+IMKgwqDCoMKgPsKgwqDCoMKgwqDCoAls aW5rLmxpbmtfc3BlZWQgPSBFVEhfU1BFRURfTlVNXzEwRzsKPiDCoMKgwqDCoD7CoMKgwqDCoMKg wqAJbGluay5saW5rX2F1dG9uZWcgPSBFVEhfTElOS19GSVhFRDsKPiDCoMKgwqDCoD7CoMKgwqDC oMKgwqAJcnRlX2V0aF9saW5rc3RhdHVzX3NldChkZXYsICZsaW5rKTsKPiDCoMKgwqDCoD7CoMKg wqDCoMKgKwo+IMKgwqDCoMKgPsKgwqDCoMKgwqArCWh3LT5hZGFwdGVyX3N0b3BwZWQgPSAxOwo+ IMKgwqDCoMKgPsKgwqDCoMKgwqArfQo+IMKgwqDCoMKgPsKgwqDCoMKgwqArCj4gwqDCoMKgwqA+ wqDCoMKgwqDCoCtzdGF0aWMgdm9pZAo+IMKgwqDCoMKgPsKgwqDCoMKgwqArdm14bmV0M19mcmVl X3F1ZXVlcyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKPiDCoMKgwqDCoD7CoMKgwqDCoMKgK3sK PiDCoMKgwqDCoD7CoMKgwqDCoMKgKwlpbnQgaTsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgKwo+IMKg wqDCoMKgPsKgwqDCoMKgwqArCVBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsKPiDCoMKgwqDCoD7CoMKg wqDCoMKgKwo+IMKgwqDCoMKgPsKgwqDCoMKgwqArCWZvciAoaSA9IDA7IGkgPCBkZXYtPmRhdGEt Pm5iX3J4X3F1ZXVlczsgaSsrKSB7Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoCsJCXZvaWQgKnJ4cSA9 IGRldi0+ZGF0YS0+cnhfcXVldWVzW2ldOwo+IMKgwqDCoMKgPsKgwqDCoMKgwqArCj4gwqDCoMKg wqA+wqDCoMKgwqDCoCsJCXZteG5ldDNfZGV2X3J4X3F1ZXVlX3JlbGVhc2UocnhxKTsKPiDCoMKg wqDCoD7CoMKgwqDCoMKgKwl9Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoCsJZGV2LT5kYXRhLT5uYl9y eF9xdWV1ZXMgPSAwOwo+IMKgwqDCoMKgPsKgwqDCoMKgwqArCj4gwqDCoMKgwqA+wqDCoMKgwqDC oCsJZm9yIChpID0gMDsgaSA8IGRldi0+ZGF0YS0+bmJfdHhfcXVldWVzOyBpKyspIHsKPiDCoMKg wqDCoD7CoMKgwqDCoMKgKwkJdm9pZCAqdHhxID0gZGV2LT5kYXRhLT50eF9xdWV1ZXNbaV07Cj4g wqDCoMKgwqA+wqDCoMKgwqDCoCsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgKwkJdm14bmV0M19kZXZf dHhfcXVldWVfcmVsZWFzZSh0eHEpOwo+IMKgwqDCoMKgPsKgwqDCoMKgwqArCX0KPiDCoMKgwqDC oD7CoMKgwqDCoMKgKwlkZXYtPmRhdGEtPm5iX3R4X3F1ZXVlcyA9IDA7Cj4gwqDCoMKgwqA+wqDC oMKgwqDCoMKgfQo+IMKgwqDCoMKgPsKgwqDCoMKgwqDCoAo+IMKgwqDCoMKgPsKgwqDCoMKgwqDC oC8qCj4gwqDCoMKgwqA+wqDCoMKgwqDCoEBAIC04NDUsMTIgKzg2MywxMCBAQCB2bXhuZXQzX2Rl dl9zdG9wKHN0cnVjdCBydGVfZXRoX2Rldgo+ICpkZXYpCj4gwqDCoMKgwqA+wqDCoMKgwqDCoMKg c3RhdGljIHZvaWQKPiDCoMKgwqDCoD7CoMKgwqDCoMKgwqB2bXhuZXQzX2Rldl9jbG9zZShzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmRldikKPiDCoMKgwqDCoD7CoMKgwqDCoMKgwqB7Cj4gwqDCoMKgwqA+ wqDCoMKgwqDCoC0Jc3RydWN0IHZteG5ldDNfaHcgKmh3ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0 ZTsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgLQo+IMKgwqDCoMKgPsKgwqDCoMKgwqDCoAlQTURfSU5J VF9GVU5DX1RSQUNFKCk7Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoMKgCj4gwqDCoMKgwqA+wqDCoMKg wqDCoMKgCXZteG5ldDNfZGV2X3N0b3AoZGV2KTsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgLQlody0+ YWRhcHRlcl9zdG9wcGVkID0gMTsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgKwl2bXhuZXQzX2ZyZWVf cXVldWVzKGRldik7Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoMKgfQo+IMKgwqDCoMKgPsKgwqDCoMKg wqDCoAo+IMKgwqDCoMKgPsKgwqDCoMKgwqDCoHN0YXRpYyB2b2lkCj4gwqDCoMKgwqA+wqDCoMKg wqDCoC0twqAKPiDCoMKgwqDCoD7CoMKgwqDCoMKgMi4xOC4wCj4gwqDCoMKgwqA+wqDCoMKgwqDC oAo+IMKgwqDCoMKgPsKgwqDCoMKgwqAKPiDCoMKgwqDCoD7CoAo+IMKgwqDCoMKgCj4gwqDCoMKg wqAtLcKgCj4gwqDCoMKgwqBLaW5kIHJlZ2FyZHMsCj4gwqDCoMKgwqBMdWNhIEJvY2Nhc3NpCj4g CgotLSAKS2luZCByZWdhcmRzLApMdWNhIEJvY2Nhc3Np