Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Jan 2017 17:46:38 +0100
From:      Vincenzo Maffione <v.maffione@gmail.com>
To:        Luiz Otavio O Souza <lists.br@gmail.com>
Cc:        FreeBSD Net <freebsd-net@freebsd.org>,  Giuseppe Lettieri <giuseppe.lettieri73@gmail.com>, Luigi Rizzo <luigi@freebsd.org>
Subject:   Re: Fix netmap emulated mode for FreeBSD 11 versions
Message-ID:  <CA%2B_eA9jCCD4uadW6%2B8Jhht=v1YGZRKEFfZ8ds%2BtAp%2ByzedNjrg@mail.gmail.com>
In-Reply-To: <CAB=2f8wHfRmkWn99UAVVZoJo4nS-CowA0_Gfar0GiOyRfX6bqA@mail.gmail.com>
References:  <CA%2B_eA9hBhfRfeyQ=z5u--LFaD8xLJrCwFhZdNTOcSaOhKwGWFg@mail.gmail.com> <CAB=2f8wHfRmkWn99UAVVZoJo4nS-CowA0_Gfar0GiOyRfX6bqA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--001a114152c2f51c52054675462a
Content-Type: text/plain; charset=UTF-8

Hi Luiz,

  I attached the patch, to be applied to the source code contained in this
image:
ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/amd64/amd64/ISO-IMAGES/11.0/FreeBSD-11.0-STABLE-amd64-20170105-r311441-disc1.iso.xz

The patch is simply a backport from -head of some modifications involving
the emulated netmap mode.
I tried the minimize the changes to only (1) fix the crash and (2) fix
another synchronization problem.

I did different tests on em and vtnet interfaces, and the thing seems to
work.

Thanks,
  Vincenzo

2017-01-19 14:24 GMT+01:00 Luiz Otavio O Souza <lists.br@gmail.com>:

> On 19 January 2017 at 09:11, Vincenzo Maffione wrote:
> > Hi,
> >
> >   A change in mb_free_ext() introduced in FreeBSD 11 versions broke the
> > transmission support for netmap in emulated mode. This means immediate
> > kernel crashes for netmap users in non-native (emulated) mode.
> >
> > This problem has been fixed in FreeBSD-12-CURRENT, which contains a
> recent
> > version of Netmap. However, FreeBSD 11 versions (release, stable) are
> still
> > affected, as they contain old Netmap versions.
> > Is it possible to push the fix (provided by me) to the relevant
> > release/stable branches? What is the procedure (I'm not familiar with the
> > FreeBSD release engineering process)?
>
> Hi Vincenzo,
>
> Yeah, I saw that trying netmap on ARM (running with emulated drivers)
> and I can confirm that it is fixed on -head.
>
> Please, send me the fix and I'll get it committed on stable/11 (this
> is a common situation and the fix can be committed directly into the
> affected branch).
>
> Thanks!
> Luiz
>



-- 
Vincenzo Maffione

--001a114152c2f51c52054675462a
Content-Type: text/x-patch; charset=US-ASCII; name="11-stable-fix-netmap.patch"
Content-Disposition: attachment; filename="11-stable-fix-netmap.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_iy4lthgp0

ZGlmZiAtLWdpdCBhL3N5cy9kZXYvbmV0bWFwL25ldG1hcF9mcmVlYnNkLmMgYi9zeXMvZGV2L25l
dG1hcC9uZXRtYXBfZnJlZWJzZC5jCmluZGV4IDI1YzljNWMuLjA0MGQxYWMgMTAwNjQ0Ci0tLSBh
L3N5cy9kZXYvbmV0bWFwL25ldG1hcF9mcmVlYnNkLmMKKysrIGIvc3lzL2Rldi9uZXRtYXAvbmV0
bWFwX2ZyZWVic2QuYwpAQCAtMjE4LDMwICsyMTgsMTYgQEAgZ2VuZXJpY194bWl0X2ZyYW1lKHN0
cnVjdCBpZm5ldCAqaWZwLCBzdHJ1Y3QgbWJ1ZiAqbSwKIHsKIAlpbnQgcmV0OwogCi0JLyoKLQkg
KiBUaGUgbWJ1ZiBzaG91bGQgYmUgYSBjbHVzdGVyIGZyb20gb3VyIHNwZWNpYWwgcG9vbCwKLQkg
KiBzbyB3ZSBkbyBub3QgbmVlZCB0byBkbyBhbiBtX2NvcHliYWNrIGJ1dCBqdXN0IGNvcHkKLQkg
KiAoYW5kIGV2ZW50dWFsbHksIGp1c3QgcmVmZXJlbmNlIHRoZSBuZXRtYXAgYnVmZmVyKQotCSAq
LworCS8qIExpbmsgdGhlIGV4dGVybmFsIHN0b3JhZ2UgdG8gdGhlIG5ldG1hcCBidWZmZXIsIHNv
IHRoYXQKKwkgKiBubyBjb3B5IGlzIG5lY2Vzc2FyeS4gKi8KKwltLT5tX2V4dC5leHRfYnVmID0g
bS0+bV9kYXRhID0gYWRkcjsKKwltLT5tX2V4dC5leHRfc2l6ZSA9IGxlbjsKIAotCWlmIChHRVRf
TUJVRl9SRUZDTlQobSkgIT0gMSkgewotCQlEKCJpbnZhbGlkIHJlZmNudCAlZCBmb3IgJXAiLAot
CQkJR0VUX01CVUZfUkVGQ05UKG0pLCBtKTsKLQkJcGFuaWMoImluIGdlbmVyaWNfeG1pdF9mcmFt
ZSIpOwotCX0KLQkvLyBYWFggdGhlIGV4dF9zaXplIGNoZWNrIGlzIHVubmVjZXNzYXJ5IGlmIHdl
IGxpbmsgdGhlIG5ldG1hcCBidWYKLQlpZiAobS0+bV9leHQuZXh0X3NpemUgPCBsZW4pIHsKLQkJ
UkQoNSwgInNpemUgJWQgPCBsZW4gJWQiLCBtLT5tX2V4dC5leHRfc2l6ZSwgbGVuKTsKLQkJbGVu
ID0gbS0+bV9leHQuZXh0X3NpemU7Ci0JfQotCWlmICgwKSB7IC8qIFhYWCBzZWVtcyB0byBoYXZl
IG5lZ2xpZ2libGUgYmVuZWZpdHMgKi8KLQkJbS0+bV9leHQuZXh0X2J1ZiA9IG0tPm1fZGF0YSA9
IGFkZHI7Ci0JfSBlbHNlIHsKLQkJYmNvcHkoYWRkciwgbS0+bV9kYXRhLCBsZW4pOwotCX0KIAlt
LT5tX2xlbiA9IG0tPm1fcGt0aGRyLmxlbiA9IGxlbjsKLQkvLyBpbmMgcmVmY291bnQuIEFsbCBv
dXJzLCB3ZSBjb3VsZCBza2lwIHRoZSBhdG9taWMKLQlhdG9taWNfZmV0Y2hhZGRfaW50KFBOVF9N
QlVGX1JFRkNOVChtKSwgMSk7CisKKwkvKiBtYnVmIHJlZmNudCBpcyBub3QgY29udGVuZGVkLCBu
byBuZWVkIHRvIHVzZSBhdG9taWMKKwkgKiAoYSBtZW1vcnkgYmFycmllciBpcyBlbm91Z2gpLiAq
LworCVNFVF9NQlVGX1JFRkNOVChtLCAyKTsKIAlNX0hBU0hUWVBFX1NFVChtLCBNX0hBU0hUWVBF
X09QQVFVRSk7CiAJbS0+bV9wa3RoZHIuZmxvd2lkID0gcmluZ19ucjsKIAltLT5tX3BrdGhkci5y
Y3ZpZiA9IGlmcDsgLyogdXNlZCBmb3IgdHggbm90aWZpY2F0aW9uICovCmRpZmYgLS1naXQgYS9z
eXMvZGV2L25ldG1hcC9uZXRtYXBfZ2VuZXJpYy5jIGIvc3lzL2Rldi9uZXRtYXAvbmV0bWFwX2dl
bmVyaWMuYwppbmRleCA3MjU0Nzg3Li4zMjBmN2IyIDEwMDY0NAotLS0gYS9zeXMvZGV2L25ldG1h
cC9uZXRtYXBfZ2VuZXJpYy5jCisrKyBiL3N5cy9kZXYvbmV0bWFwL25ldG1hcF9nZW5lcmljLmMK
QEAgLTkwLDUzICs5MCw0MCBAQCBfX0ZCU0RJRCgiJEZyZWVCU0Q6IHN0YWJsZS8xMS9zeXMvZGV2
L25ldG1hcC9uZXRtYXBfZ2VuZXJpYy5jIDI5ODk1NSAyMDE2LTA1LTAzCiAvKgogICogRnJlZUJT
RCBtYnVmIGFsbG9jYXRvci9kZWFsbG9jYXRvciBpbiBlbXVsYXRpb24gbW9kZToKICAqCi0gKiBX
ZSBhbGxvY2F0ZSBFWFRfUEFDS0VUIG1idWYrY2x1c3RlcnMsIGJ1dCBuZWVkIHRvIHNldCBNX05P
RlJFRQotICogc28gdGhhdCB0aGUgZGVzdHJ1Y3RvciwgaWYgaW52b2tlZCwgd2lsbCBub3QgZnJl
ZSB0aGUgcGFja2V0LgotICogICAgSW4gcHJpbmNpcGxlIHdlIHNob3VsZCBzZXQgdGhlIGRlc3Ry
dWN0b3Igb25seSBvbiBkZW1hbmQsCi0gKiBidXQgc2luY2UgdGhlcmUgbWlnaHQgYmUgYSByYWNl
IHdlIGJldHRlciBkbyBpdCBvbiBhbGxvY2F0aW9uLgotICogQXMgYSBjb25zZXF1ZW5jZSwgd2Ug
YWxzbyBuZWVkIHRvIHNldCB0aGUgZGVzdHJ1Y3RvciBvciB3ZQotICogd291bGQgbGVhayBidWZm
ZXJzLgotICovCi0KLS8qCi0gKiBtYnVmIHdyYXBwZXJzCisgKiBXZSBhbGxvY2F0ZSBtYnVmcyB3
aXRoIG1fZ2V0aGRyKCksIHNpbmNlIHRoZSBtYnVmIGhlYWRlciBpcyBuZWVkZWQKKyAqIGJ5IHRo
ZSBkcml2ZXIuIFdlIGFsc28gYXR0YWNoIGEgY3VzdG9tbHktcHJvdmlkZWQgZXh0ZXJuYWwgc3Rv
cmFnZSwKKyAqIHdoaWNoIGluIHRoaXMgY2FzZSBpcyBhIG5ldG1hcCBidWZmZXIuIFdoZW4gY2Fs
bGluZyBtX2V4dGFkZCgpLCBob3dldmVyCisgKiB3ZSBwYXNzIGEgTlVMTCBhZGRyZXNzLCBzaW5j
ZSB0aGUgcmVhbCBhZGRyZXNzIChhbmQgbGVuZ3RoKSB3aWxsIGJlCisgKiBmaWxsZWQgaW4gYnkg
bm1fb3NfZ2VuZXJpY194bWl0X2ZyYW1lKCkgcmlnaHQgYmVmb3JlIGNhbGxpbmcKKyAqIGlmX3Ry
YW5zbWl0KCkuCisgKgorICogVGhlIGR0b3IgZnVuY3Rpb24gZG9lcyBub3RoaW5nLCBob3dldmVy
IHdlIG5lZWQgaXQgc2luY2UgbWJfZnJlZV9leHQoKQorICogaGFzIGEgS0FTU0VSVCgpLCBjaGVj
a2luZyB0aGF0IHRoZSBtYnVmIGR0b3IgZnVuY3Rpb24gaXMgbm90IE5VTEwuCiAgKi8KIAotLyog
bWJ1ZiBkZXN0cnVjdG9yLCBhbHNvIG5lZWQgdG8gY2hhbmdlIHRoZSB0eXBlIHRvIEVYVF9FWFRS
RUYsCi0gKiBhZGQgYW4gTV9OT0ZSRUUgZmxhZywgYW5kIHRoZW4gY2xlYXIgdGhlIGZsYWcgYW5k
Ci0gKiBjaGFpbiBpbnRvIHVtYV96ZnJlZSh6b25lX3BhY2ssIG1mKQotICogKG9yIHJlaW5zdGFs
bCB0aGUgYnVmZmVyID8pCi0gKi8KLSNkZWZpbmUgU0VUX01CVUZfREVTVFJVQ1RPUihtLCBmbikJ
ZG8gewkJXAotCShtKS0+bV9leHQuZXh0X2ZyZWUgPSAodm9pZCAqKWZuOwlcCi0JKG0pLT5tX2V4
dC5leHRfdHlwZSA9IEVYVF9FWFRSRUY7CVwKLX0gd2hpbGUgKDApCitzdGF0aWMgdm9pZCB2b2lk
X21idWZfZHRvcihzdHJ1Y3QgbWJ1ZiAqbSwgdm9pZCAqYXJnMSwgdm9pZCAqYXJnMikgeyB9CiAK
LXN0YXRpYyB2b2lkCi1uZXRtYXBfZGVmYXVsdF9tYnVmX2Rlc3RydWN0b3Ioc3RydWN0IG1idWYg
Km0pCitzdGF0aWMgaW5saW5lIHZvaWQKK1NFVF9NQlVGX0RFU1RSVUNUT1Ioc3RydWN0IG1idWYg
Km0sIHZvaWQgKmZuKQogewotCS8qIHJlc3RvcmUgb3JpZ2luYWwgbWJ1ZiAqLwotCW0tPm1fZXh0
LmV4dF9idWYgPSBtLT5tX2RhdGEgPSBtLT5tX2V4dC5leHRfYXJnMTsKLQltLT5tX2V4dC5leHRf
YXJnMSA9IE5VTEw7Ci0JbS0+bV9leHQuZXh0X3R5cGUgPSBFWFRfUEFDS0VUOwotCW0tPm1fZXh0
LmV4dF9mcmVlID0gTlVMTDsKLQlpZiAoR0VUX01CVUZfUkVGQ05UKG0pID09IDApCi0JCVNFVF9N
QlVGX1JFRkNOVChtLCAxKTsKLQl1bWFfemZyZWUoem9uZV9wYWNrLCBtKTsKKwltLT5tX2V4dC5l
eHRfZnJlZSA9IGZuID8gZm4gOiAodm9pZCAqKXZvaWRfbWJ1Zl9kdG9yOwogfQogCiBzdGF0aWMg
aW5saW5lIHN0cnVjdCBtYnVmICoKIG5ldG1hcF9nZXRfbWJ1ZihpbnQgbGVuKQogewogCXN0cnVj
dCBtYnVmICptOwotCW0gPSBtX2dldGNsKE1fTk9XQUlULCBNVF9EQVRBLCBNX1BLVEhEUik7Ci0J
aWYgKG0pIHsKLQkJbS0+bV9mbGFncyB8PSBNX05PRlJFRTsJLyogWFhYTlA6IEFsbW9zdCBjZXJ0
YWlubHkgaW5jb3JyZWN0LiAqLwotCQltLT5tX2V4dC5leHRfYXJnMSA9IG0tPm1fZXh0LmV4dF9i
dWY7IC8vIFhYWCBzYXZlCi0JCW0tPm1fZXh0LmV4dF9mcmVlID0gKHZvaWQgKiluZXRtYXBfZGVm
YXVsdF9tYnVmX2Rlc3RydWN0b3I7Ci0JCW0tPm1fZXh0LmV4dF90eXBlID0gRVhUX0VYVFJFRjsK
LQkJTkQoNSwgImNyZWF0ZSBtICVwIHJlZmNudCAlZCIsIG0sIEdFVF9NQlVGX1JFRkNOVChtKSk7
CisKKwkodm9pZClsZW47CisKKwltID0gbV9nZXRoZHIoTV9OT1dBSVQsIE1UX0RBVEEpOworCWlm
IChtID09IE5VTEwpIHsKKwkJcmV0dXJuIG07CiAJfQorCisJbV9leHRhZGQobSwgTlVMTCAvKiBi
dWYgKi8sIDAgLyogc2l6ZSAqLywgdm9pZF9tYnVmX2R0b3IsCisJCSBOVUxMLCBOVUxMLCAwLCBF
WFRfTkVUX0RSVik7CisKIAlyZXR1cm4gbTsKIH0KIApAQCAtNDEyLDExICszOTksNiBAQCBzdGF0
aWMgdm9pZAogZ2VuZXJpY19tYnVmX2Rlc3RydWN0b3Ioc3RydWN0IG1idWYgKm0pCiB7CiAJbmV0
bWFwX2dlbmVyaWNfaXJxKE1CVUZfSUZQKG0pLCBNQlVGX1RYUShtKSwgTlVMTCk7Ci0jaWZkZWYg
X19GcmVlQlNEX18KLQlpZiAobmV0bWFwX3ZlcmJvc2UpCi0JCVJEKDUsICJUeCBpcnEgKCVwKSBx
dWV1ZSAlZCBpbmRleCAlZCIgLCBtLCBNQlVGX1RYUShtKSwgKGludCkodWludHB0cl90KW0tPm1f
ZXh0LmV4dF9hcmcxKTsKLQluZXRtYXBfZGVmYXVsdF9tYnVmX2Rlc3RydWN0b3IobSk7Ci0jZW5k
aWYgLyogX19GcmVlQlNEX18gKi8KIAlJRlJBVEUocmF0ZV9jdHgubmV3LnR4aXJxKyspOwogfQog
CkBAIC00NDcsNyArNDI5LDcgQEAgZ2VuZXJpY19uZXRtYXBfdHhfY2xlYW4oc3RydWN0IG5ldG1h
cF9rcmluZyAqa3JpbmcpCiAJCQkJLy8gWFhYIGhvdyBkbyB3ZSBwcm9jZWVkID8gYnJlYWsgPwog
CQkJCXJldHVybiAtRU5PTUVNOwogCQkJfQotCQl9IGVsc2UgaWYgKEdFVF9NQlVGX1JFRkNOVCht
KSAhPSAxKSB7CisJCX0gZWxzZSBpZiAoTUJVRl9SRUZDTlQobSkgIT0gMSkgewogCQkJYnJlYWs7
IC8qIFRoaXMgbWJ1ZiBpcyBzdGlsbCBidXN5OiBpdHMgcmVmY250IGlzIDIuICovCiAJCX0KIAkJ
bisrOwpAQCAtNDc2LDYyICs0NTgsMzkgQEAgZ2VuZXJpY19uZXRtYXBfdHhfY2xlYW4oc3RydWN0
IG5ldG1hcF9rcmluZyAqa3JpbmcpCiAJcmV0dXJuIG47CiB9CiAKLQotLyoKLSAqIFdlIGhhdmUg
cGVuZGluZyBwYWNrZXRzIGluIHRoZSBkcml2ZXIgYmV0d2VlbiBucl9od3RhaWwgKzEgYW5kIGh3
Y3VyLgotICogQ29tcHV0ZSBhIHBvc2l0aW9uIGluIHRoZSBtaWRkbGUsIHRvIGJlIHVzZWQgdG8g
Z2VuZXJhdGUKLSAqIGEgbm90aWZpY2F0aW9uLgotICovCi1zdGF0aWMgaW5saW5lIHVfaW50Ci1n
ZW5lcmljX3R4X2V2ZW50X21pZGRsZShzdHJ1Y3QgbmV0bWFwX2tyaW5nICprcmluZywgdV9pbnQg
aHdjdXIpCi17Ci0JdV9pbnQgbiA9IGtyaW5nLT5ua3JfbnVtX3Nsb3RzOwotCXVfaW50IG50YyA9
IG5tX25leHQoa3JpbmctPm5yX2h3dGFpbCwgbi0xKTsKLQl1X2ludCBlOwotCi0JaWYgKGh3Y3Vy
ID49IG50YykgewotCQllID0gKGh3Y3VyICsgbnRjKSAvIDI7Ci0JfSBlbHNlIHsgLyogd3JhcCBh
cm91bmQgKi8KLQkJZSA9IChod2N1ciArIG4gKyBudGMpIC8gMjsKLQkJaWYgKGUgPj0gbikgewot
CQkJZSAtPSBuOwotCQl9Ci0JfQotCi0JaWYgKHVubGlrZWx5KGUgPj0gbikpIHsKLQkJRCgiVGhp
cyBjYW5ub3QgaGFwcGVuIik7Ci0JCWUgPSAwOwotCX0KLQotCXJldHVybiBlOwotfQotCi0vKgot
ICogV2UgaGF2ZSBwZW5kaW5nIHBhY2tldHMgaW4gdGhlIGRyaXZlciBiZXR3ZWVuIG5yX2h3dGFp
bCsxIGFuZCBod2N1ci4KLSAqIFNjaGVkdWxlIGEgbm90aWZpY2F0aW9uIGFwcHJveGltYXRlbHkg
aW4gdGhlIG1pZGRsZSBvZiB0aGUgdHdvLgotICogVGhlcmUgaXMgYSByYWNlIGJ1dCB0aGlzIGlz
IG9ubHkgY2FsbGVkIHdpdGhpbiB0eHN5bmMgd2hpY2ggZG9lcwotICogYSBkb3VibGUgY2hlY2su
Ci0gKi8KIHN0YXRpYyB2b2lkCiBnZW5lcmljX3NldF90eF9ldmVudChzdHJ1Y3QgbmV0bWFwX2ty
aW5nICprcmluZywgdV9pbnQgaHdjdXIpCiB7CisJdV9pbnQgbGltID0ga3JpbmctPm5rcl9udW1f
c2xvdHMgLSAxOwogCXN0cnVjdCBtYnVmICptOwogCXVfaW50IGU7CisJdV9pbnQgbnRjID0gbm1f
bmV4dChrcmluZy0+bnJfaHd0YWlsLCBsaW0pOyAvKiBuZXh0IHRvIGNsZWFuICovCiAKLQlpZiAo
bm1fbmV4dChrcmluZy0+bnJfaHd0YWlsLCBrcmluZy0+bmtyX251bV9zbG90cyAtMSkgPT0gaHdj
dXIpIHsKKwlpZiAobnRjID09IGh3Y3VyKSB7CiAJCXJldHVybjsgLyogYWxsIGJ1ZmZlcnMgYXJl
IGZyZWUgKi8KIAl9Ci0JZSA9IGdlbmVyaWNfdHhfZXZlbnRfbWlkZGxlKGtyaW5nLCBod2N1cik7
CisKKwkvKgorCSAqIFdlIGhhdmUgcGVuZGluZyBwYWNrZXRzIGluIHRoZSBkcml2ZXIgYmV0d2Vl
biBod3RhaWwrMQorCSAqIGFuZCBod2N1ciwgYW5kIHdlIGhhdmUgdG8gY2hvc2Ugb25lIG9mIHRo
ZXNlIHNsb3QgdG8KKwkgKiBnZW5lcmF0ZSBhIG5vdGlmaWNhdGlvbi4KKwkgKiBUaGVyZSBpcyBh
IHJhY2UgYnV0IHRoaXMgaXMgb25seSBjYWxsZWQgd2l0aGluIHR4c3luYyB3aGljaAorCSAqIGRv
ZXMgYSBkb3VibGUgY2hlY2suCisJICovCisKKwkvKiBDaG9vc2UgdGhlIGZpcnN0IHBlbmRpbmcg
c2xvdCwgdG8gYmUgc2FmZSBhZ2FpbnN0IGRyaXZlcgorCSAqIHJlb3JkZXJpbmcgbWJ1ZiB0cmFu
c21pc3Npb25zLiAqLworCWUgPSBudGM7CiAKIAltID0ga3JpbmctPnR4X3Bvb2xbZV07Ci0JTkQo
NSwgIlJlcXVlc3QgRXZlbnQgYXQgJWQgbWJ1ZiAlcCByZWZjbnQgJWQiLCBlLCBtLCBtID8gR0VU
X01CVUZfUkVGQ05UKG0pIDogLTIgKTsKKwlORCg1LCAiUmVxdWVzdCBFdmVudCBhdCAlZCBtYnVm
ICVwIHJlZmNudCAlZCIsIGUsIG0sIG0gPyBNQlVGX1JFRkNOVChtKSA6IC0yICk7CiAJaWYgKG0g
PT0gTlVMTCkgewogCQkvKiBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlcmUgaXMgYWxyZWFkeSBhbiBl
dmVudCBvbiB0aGUgbmV0bWFwCiAJCSAgIHNsb3QgJ2UnOiBUaGVyZSBpcyBub3RoaW5nIHRvIGRv
LiAqLwogCQlyZXR1cm47CiAJfQogCWtyaW5nLT50eF9wb29sW2VdID0gTlVMTDsKLQlTRVRfTUJV
Rl9ERVNUUlVDVE9SKG0sIGdlbmVyaWNfbWJ1Zl9kZXN0cnVjdG9yKTsKKwlTRVRfTUJVRl9ERVNU
UlVDVE9SKG0sICh2b2lkICopZ2VuZXJpY19tYnVmX2Rlc3RydWN0b3IpOwogCiAJLy8gWFhYIHdt
YigpID8KIAkvKiBEZWNyZW1lbnQgdGhlIHJlZmNvdW50IGFuIGZyZWUgaXQgaWYgd2UgaGF2ZSB0
aGUgbGFzdCBvbmUuICovCmRpZmYgLS1naXQgYS9zeXMvZGV2L25ldG1hcC9uZXRtYXBfa2Vybi5o
IGIvc3lzL2Rldi9uZXRtYXAvbmV0bWFwX2tlcm4uaAppbmRleCAzZDBmOWQ5Li45ODUxOGRlIDEw
MDY0NAotLS0gYS9zeXMvZGV2L25ldG1hcC9uZXRtYXBfa2Vybi5oCisrKyBiL3N5cy9kZXYvbmV0
bWFwL25ldG1hcF9rZXJuLmgKQEAgLTk3LDEzICs5NywxMSBAQCBzdHJ1Y3QgbmV0bWFwX2FkYXB0
ZXIgKm5ldG1hcF9nZXRuYShpZl90IGlmcCk7CiAjZW5kaWYKIAogI2lmIF9fRnJlZUJTRF92ZXJz
aW9uID49IDExMDAwMjcKLSNkZWZpbmUgR0VUX01CVUZfUkVGQ05UKG0pICAgICAgKChtKS0+bV9l
eHQuZXh0X2NudCA/ICooKG0pLT5tX2V4dC5leHRfY250KSA6IC0xKQotI2RlZmluZSBTRVRfTUJV
Rl9SRUZDTlQobSwgeCkgICAqKChtKS0+bV9leHQuZXh0X2NudCkgPSB4Ci0jZGVmaW5lIFBOVF9N
QlVGX1JFRkNOVChtKSAgICAgICgobSktPm1fZXh0LmV4dF9jbnQpCisjZGVmaW5lIE1CVUZfUkVG
Q05UKG0pCQkoKG0pLT5tX2V4dC5leHRfY291bnQpCisjZGVmaW5lIFNFVF9NQlVGX1JFRkNOVCht
LCB4KSAgIChtKS0+bV9leHQuZXh0X2NvdW50ID0geAogI2Vsc2UKLSNkZWZpbmUgR0VUX01CVUZf
UkVGQ05UKG0pICAgICAgKChtKS0+bV9leHQucmVmX2NudCA/ICooKG0pLT5tX2V4dC5yZWZfY250
KSA6IC0xKQorI2RlZmluZSBNQlVGX1JFRkNOVChtKQkJKChtKS0+bV9leHQucmVmX2NudCA/ICoo
KG0pLT5tX2V4dC5yZWZfY250KSA6IC0xKQogI2RlZmluZSBTRVRfTUJVRl9SRUZDTlQobSwgeCkg
ICAqKChtKS0+bV9leHQucmVmX2NudCkgPSB4Ci0jZGVmaW5lIFBOVF9NQlVGX1JFRkNOVChtKSAg
ICAgICgobSktPm1fZXh0LnJlZl9jbnQpCiAjZW5kaWYKIAogTUFMTE9DX0RFQ0xBUkUoTV9ORVRN
QVApOwo=
--001a114152c2f51c52054675462a--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2B_eA9jCCD4uadW6%2B8Jhht=v1YGZRKEFfZ8ds%2BtAp%2ByzedNjrg>