Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Nov 2012 11:44:57 -0800
From:      Jack Vogel <jfvogel@gmail.com>
To:        Gleb Smirnoff <glebius@freebsd.org>
Cc:        Karim Fodil-Lemelin <fodillemlinkarim@gmail.com>, jfv@freebsd.org, freebsd-net@freebsd.org
Subject:   Re: igb diver crashes in head@241037
Message-ID:  <CAFOYbc=NNF%2BgVHdd=g%2Bi13UnmZFAtX73KirWpiJWcdp6YgmyYA@mail.gmail.com>
In-Reply-To: <20121121062631.GJ67660@glebius.int.ru>
References:  <50AA8F24.7080604@gmail.com> <20121120111833.GC67660@FreeBSD.org> <CAFOYbckbEPr3B=Kj5kiW16QKj5a6hWeTo%2BiU=vRpfy2jqXvd4w@mail.gmail.com> <20121121062631.GJ67660@glebius.int.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
--047d7b5daf50ddb67504cf069572
Content-Type: text/plain; charset=ISO-8859-1

Gleb,

Here is a patch based on my latest igb internal code, I had not yet
committed this as I
was not completely confident about the start/queueing changes, I would love
to have a
wider testing base, so anyone that wishes to test this... Its against HEAD.

It does a few things: change mq_start to ALWAYS queue, hence
mq_start_locked no
longer takes an mbuf pointer arg.

Second, it gets rid of OACTIVE as far as the queues go, its still used only
in a device
wide up/down sense.

Last, there is a flow control display added, this follows what our linux
driver does, it
gives you the current flow control state when a link up event happens. I
was asked
to do this by my validation group, and it seemed kinda handy...

Let me know what you think,

Jack


On Tue, Nov 20, 2012 at 10:26 PM, Gleb Smirnoff <glebius@freebsd.org> wrote:

>   Jack,
>
> On Tue, Nov 20, 2012 at 09:19:54AM -0800, Jack Vogel wrote:
> J> > I'd suggest the following code:
> J> >
> J> >                 if (m)
> J> >                         drbr_enqueue(ifp, txr->br, m);
> J> >                 err = igb_mq_start_locked(ifp, txr, NULL);
> J> >
> J> > Which eventually leads us to all invocations of igb_mq_start_locked()
> J> > called
> J> > with third argument as NULL. This allows us to simplify this function.
> J> >
> J> > Patch for review attached.
> J> >
> J> >
> J> Yes Gleb, I already have code in my internal tree which simply removes
> an
> J> mbuf
> J> pointer form the start_locked call and ALWAYS does a dequeue, start
> J> similarly
> J> will always enqueue. I just have been busy with ixgbe for a bit and have
> J> not gotten
> J> it committed yet.
>
>   Since ixgbe work is performance tuning and this patch closes a kernel
> crash,
> I'd ask to preempt the ixgbe job with this patch. :)
>
>   Or you can approve my patch and I will check it in.
>
> --
> Totus tuus, Glebius.
>

--047d7b5daf50ddb67504cf069572
Content-Type: application/octet-stream; name="if_igb.patch"
Content-Disposition: attachment; filename="if_igb.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_h9sv1y400

LS0tIGlmX2lnYi5jCTIwMTItMTAtMzAgMDk6NDY6NTIuNDc4MTQ3MjIxIC0wNzAwCisrKyBpZl9p
Z2IubmV3LmMJMjAxMi0xMS0yMSAxMTozMjowMS4xNzU2MDU0NjEgLTA4MDAKQEAgLTEwMCw3ICsx
MDAsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgogICogIERyaXZlciB2ZXJzaW9uOgogICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
Ki8KLWNoYXIgaWdiX2RyaXZlcl92ZXJzaW9uW10gPSAidmVyc2lvbiAtIDIuMy41IjsKK2NoYXIg
aWdiX2RyaXZlcl92ZXJzaW9uW10gPSAidmVyc2lvbiAtIDIuMy44IjsKIAogCiAvKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCkBAIC0xODEsOCArMTgxLDcgQEAKIHN0YXRpYyBpbnQJaWdiX3Jlc3VtZShkZXZpY2VfdCk7
CiAjaWYgX19GcmVlQlNEX3ZlcnNpb24gPj0gODAwMDAwCiBzdGF0aWMgaW50CWlnYl9tcV9zdGFy
dChzdHJ1Y3QgaWZuZXQgKiwgc3RydWN0IG1idWYgKik7Ci1zdGF0aWMgaW50CWlnYl9tcV9zdGFy
dF9sb2NrZWQoc3RydWN0IGlmbmV0ICosCi0JCSAgICBzdHJ1Y3QgdHhfcmluZyAqLCBzdHJ1Y3Qg
bWJ1ZiAqKTsKK3N0YXRpYyBpbnQJaWdiX21xX3N0YXJ0X2xvY2tlZChzdHJ1Y3QgaWZuZXQgKiwg
c3RydWN0IHR4X3JpbmcgKik7CiBzdGF0aWMgdm9pZAlpZ2JfcWZsdXNoKHN0cnVjdCBpZm5ldCAq
KTsKIHN0YXRpYyB2b2lkCWlnYl9kZWZlcnJlZF9tcV9zdGFydCh2b2lkICosIGludCk7CiAjZWxz
ZQpAQCAtODQ1LDcgKzg0NCw3IEBACiAJCQkvKiBQcm9jZXNzIHRoZSBzdGFjayBxdWV1ZSBvbmx5
IGlmIG5vdCBkZXBsZXRlZCAqLwogCQkJaWYgKCgodHhyLT5xdWV1ZV9zdGF0dXMgJiBJR0JfUVVF
VUVfREVQTEVURUQpID09IDApICYmCiAJCQkgICAgIWRyYnJfZW1wdHkoaWZwLCB0eHItPmJyKSkK
LQkJCQlpZ2JfbXFfc3RhcnRfbG9ja2VkKGlmcCwgdHhyLCBOVUxMKTsKKwkJCQlpZ2JfbXFfc3Rh
cnRfbG9ja2VkKGlmcCwgdHhyKTsKICNlbHNlCiAJCQlpZiAoIUlGUV9EUlZfSVNfRU1QVFkoJmlm
cC0+aWZfc25kKSkKIAkJCQlpZ2Jfc3RhcnRfbG9ja2VkKHR4ciwgaWZwKTsKQEAgLTk1OSw2OCAr
OTU4LDQ3IEBACiAKIAl0eHIgPSAmYWRhcHRlci0+dHhfcmluZ3NbaV07CiAJcXVlID0gJmFkYXB0
ZXItPnF1ZXVlc1tpXTsKLQlpZiAoKCh0eHItPnF1ZXVlX3N0YXR1cyAmIElHQl9RVUVVRV9ERVBM
RVRFRCkgPT0gMCkgJiYKLQkgICAgSUdCX1RYX1RSWUxPQ0sodHhyKSkgewotCQlzdHJ1Y3QgbWJ1
ZiAqcG0gPSBOVUxMOwotCQkvKgotCQkqKiBUcnkgdG8gcXVldWUgZmlyc3QgdG8gYXZvaWQKLQkJ
Kiogb3V0LW9mLW9yZGVyIGRlbGl2ZXJ5LCBidXQgCi0JCSoqIHNldHRsZSBmb3IgaXQgaWYgdGhh
dCBmYWlscwotCQkqLwotCQlpZiAobSAmJiBkcmJyX2VucXVldWUoaWZwLCB0eHItPmJyLCBtKSkK
LQkJCXBtID0gbTsKLQkJZXJyID0gaWdiX21xX3N0YXJ0X2xvY2tlZChpZnAsIHR4ciwgcG0pOwot
CQlJR0JfVFhfVU5MT0NLKHR4cik7Ci0JfSBlbHNlIHsKLQkJZXJyID0gZHJicl9lbnF1ZXVlKGlm
cCwgdHhyLT5iciwgbSk7Ci0JCXRhc2txdWV1ZV9lbnF1ZXVlKHF1ZS0+dHEsICZ0eHItPnR4cV90
YXNrKTsKLQl9CisJdGFza3F1ZXVlX2VucXVldWUocXVlLT50cSwgJnR4ci0+dHhxX3Rhc2spOwog
CiAJcmV0dXJuIChlcnIpOwogfQogCiBzdGF0aWMgaW50Ci1pZ2JfbXFfc3RhcnRfbG9ja2VkKHN0
cnVjdCBpZm5ldCAqaWZwLCBzdHJ1Y3QgdHhfcmluZyAqdHhyLCBzdHJ1Y3QgbWJ1ZiAqbSkKK2ln
Yl9tcV9zdGFydF9sb2NrZWQoc3RydWN0IGlmbmV0ICppZnAsIHN0cnVjdCB0eF9yaW5nICp0eHIp
CiB7CiAJc3RydWN0IGFkYXB0ZXIgICphZGFwdGVyID0gdHhyLT5hZGFwdGVyOwotICAgICAgICBz
dHJ1Y3QgbWJ1ZiAgICAgKm5leHQ7Ci0gICAgICAgIGludCAgICAgICAgICAgICBlcnIgPSAwLCBl
bnE7CisgICAgICAgIHN0cnVjdCBtYnVmICAgICAqbTsKKyAgICAgICAgaW50ICAgICAgICAgICAg
IGVyciA9IDAsIGVucSA9IDA7CiAKIAlJR0JfVFhfTE9DS19BU1NFUlQodHhyKTsKIAogCWlmICgo
KGlmcC0+aWZfZHJ2X2ZsYWdzICYgSUZGX0RSVl9SVU5OSU5HKSA9PSAwKSB8fAotCSAgICAodHhy
LT5xdWV1ZV9zdGF0dXMgJiBJR0JfUVVFVUVfREVQTEVURUQpIHx8Ci0JICAgIGFkYXB0ZXItPmxp
bmtfYWN0aXZlID09IDApIHsKLQkJaWYgKG0gIT0gTlVMTCkKLQkJCWVyciA9IGRyYnJfZW5xdWV1
ZShpZnAsIHR4ci0+YnIsIG0pOwotCQlyZXR1cm4gKGVycik7Ci0JfQorCSAgICBhZGFwdGVyLT5s
aW5rX2FjdGl2ZSA9PSAwKQorCQlyZXR1cm4gKEVORVRET1dOKTsKIAotCWVucSA9IDA7Ci0JaWYg
KG0gPT0gTlVMTCkgewotCQluZXh0ID0gZHJicl9kZXF1ZXVlKGlmcCwgdHhyLT5icik7Ci0JfSBl
bHNlIGlmIChkcmJyX25lZWRzX2VucXVldWUoaWZwLCB0eHItPmJyKSkgewotCQlpZiAoKGVyciA9
IGRyYnJfZW5xdWV1ZShpZnAsIHR4ci0+YnIsIG0pKSAhPSAwKQotCQkJcmV0dXJuIChlcnIpOwot
CQluZXh0ID0gZHJicl9kZXF1ZXVlKGlmcCwgdHhyLT5icik7Ci0JfSBlbHNlCi0JCW5leHQgPSBt
OworCWlmICh0eHItPnF1ZXVlX3N0YXR1cyAmIElHQl9RVUVVRV9ERVBMRVRFRCkKKwkJaWdiX3R4
ZW9mKHR4cik7CisJaWYgKHR4ci0+dHhfYXZhaWwgPj0gSUdCX01BWF9TQ0FUVEVSKQorICAgICAg
ICAgICAgICAgIHR4ci0+cXVldWVfc3RhdHVzICY9IH5JR0JfUVVFVUVfREVQTEVURUQ7CisJZWxz
ZQorCQlyZXR1cm4gKEVJTyk7CiAKIAkvKiBQcm9jZXNzIHRoZSBxdWV1ZSAqLwotCXdoaWxlIChu
ZXh0ICE9IE5VTEwpIHsKLQkJaWYgKChlcnIgPSBpZ2JfeG1pdCh0eHIsICZuZXh0KSkgIT0gMCkg
ewotCQkJaWYgKG5leHQgIT0gTlVMTCkKLQkJCQllcnIgPSBkcmJyX2VucXVldWUoaWZwLCB0eHIt
PmJyLCBuZXh0KTsKKwltID0gZHJicl9kZXF1ZXVlKGlmcCwgdHhyLT5icik7CisJd2hpbGUgKG0g
IT0gTlVMTCkgeworCQlpZiAoKGVyciA9IGlnYl94bWl0KHR4ciwgJm0pKSAhPSAwKSB7CisJCQlp
ZiAobSAhPSBOVUxMKQorCQkJCWVyciA9IGRyYnJfZW5xdWV1ZShpZnAsIHR4ci0+YnIsIG0pOwog
CQkJYnJlYWs7CiAJCX0KIAkJZW5xKys7Ci0JCWlmcC0+aWZfb2J5dGVzICs9IG5leHQtPm1fcGt0
aGRyLmxlbjsKLQkJaWYgKG5leHQtPm1fZmxhZ3MgJiBNX01DQVNUKQorCQlpZnAtPmlmX29ieXRl
cyArPSBtLT5tX3BrdGhkci5sZW47CisJCWlmIChtLT5tX2ZsYWdzICYgTV9NQ0FTVCkKIAkJCWlm
cC0+aWZfb21jYXN0cysrOwotCQlFVEhFUl9CUEZfTVRBUChpZnAsIG5leHQpOworCQlFVEhFUl9C
UEZfTVRBUChpZnAsIG0pOwogCQlpZiAoKGlmcC0+aWZfZHJ2X2ZsYWdzICYgSUZGX0RSVl9SVU5O
SU5HKSA9PSAwKQogCQkJYnJlYWs7Ci0JCW5leHQgPSBkcmJyX2RlcXVldWUoaWZwLCB0eHItPmJy
KTsKKwkJbSA9IGRyYnJfZGVxdWV1ZShpZnAsIHR4ci0+YnIpOwogCX0KIAlpZiAoZW5xID4gMCkg
ewogCQkvKiBTZXQgdGhlIHdhdGNoZG9nICovCkBAIC0xMDQ2LDcgKzEwMjQsNyBAQAogCiAJSUdC
X1RYX0xPQ0sodHhyKTsKIAlpZiAoIWRyYnJfZW1wdHkoaWZwLCB0eHItPmJyKSkKLQkJaWdiX21x
X3N0YXJ0X2xvY2tlZChpZnAsIHR4ciwgTlVMTCk7CisJCWlnYl9tcV9zdGFydF9sb2NrZWQoaWZw
LCB0eHIpOwogCUlHQl9UWF9VTkxPQ0sodHhyKTsKIH0KIApAQCAtMTM5OCw3ICsxMzc2LDcgQEAK
IAkJLyogUHJvY2VzcyB0aGUgc3RhY2sgcXVldWUgb25seSBpZiBub3QgZGVwbGV0ZWQgKi8KIAkJ
aWYgKCgodHhyLT5xdWV1ZV9zdGF0dXMgJiBJR0JfUVVFVUVfREVQTEVURUQpID09IDApICYmCiAJ
CSAgICAhZHJicl9lbXB0eShpZnAsIHR4ci0+YnIpKQotCQkJaWdiX21xX3N0YXJ0X2xvY2tlZChp
ZnAsIHR4ciwgTlVMTCk7CisJCQlpZ2JfbXFfc3RhcnRfbG9ja2VkKGlmcCwgdHhyKTsKICNlbHNl
CiAJCWlmICghSUZRX0RSVl9JU19FTVBUWSgmaWZwLT5pZl9zbmQpKQogCQkJaWdiX3N0YXJ0X2xv
Y2tlZCh0eHIsIGlmcCk7CkBAIC0xNDQ5LDcgKzE0MjcsNyBAQAogCQkJLyogUHJvY2VzcyB0aGUg
c3RhY2sgcXVldWUgb25seSBpZiBub3QgZGVwbGV0ZWQgKi8KIAkJCWlmICgoKHR4ci0+cXVldWVf
c3RhdHVzICYgSUdCX1FVRVVFX0RFUExFVEVEKSA9PSAwKSAmJgogCQkJICAgICFkcmJyX2VtcHR5
KGlmcCwgdHhyLT5icikpCi0JCQkJaWdiX21xX3N0YXJ0X2xvY2tlZChpZnAsIHR4ciwgTlVMTCk7
CisJCQkJaWdiX21xX3N0YXJ0X2xvY2tlZChpZnAsIHR4cik7CiAjZWxzZQogCQkJaWYgKCFJRlFf
RFJWX0lTX0VNUFRZKCZpZnAtPmlmX3NuZCkpCiAJCQkJaWdiX3N0YXJ0X2xvY2tlZCh0eHIsIGlm
cCk7CkBAIC0xNTQ5LDcgKzE1MjcsNyBAQAogCQl9IHdoaWxlIChsb29wLS0gJiYgbW9yZSk7CiAj
aWYgX19GcmVlQlNEX3ZlcnNpb24gPj0gODAwMDAwCiAJCWlmICghZHJicl9lbXB0eShpZnAsIHR4
ci0+YnIpKQotCQkJaWdiX21xX3N0YXJ0X2xvY2tlZChpZnAsIHR4ciwgTlVMTCk7CisJCQlpZ2Jf
bXFfc3RhcnRfbG9ja2VkKGlmcCwgdHhyKTsKICNlbHNlCiAJCWlmICghSUZRX0RSVl9JU19FTVBU
WSgmaWZwLT5pZl9zbmQpKQogCQkJaWdiX3N0YXJ0X2xvY2tlZCh0eHIsIGlmcCk7CkBAIC0xNTg2
LDcgKzE1NjQsNyBAQAogCS8qIFByb2Nlc3MgdGhlIHN0YWNrIHF1ZXVlIG9ubHkgaWYgbm90IGRl
cGxldGVkICovCiAJaWYgKCgodHhyLT5xdWV1ZV9zdGF0dXMgJiBJR0JfUVVFVUVfREVQTEVURUQp
ID09IDApICYmCiAJICAgICFkcmJyX2VtcHR5KGlmcCwgdHhyLT5icikpCi0JCWlnYl9tcV9zdGFy
dF9sb2NrZWQoaWZwLCB0eHIsIE5VTEwpOworCQlpZ2JfbXFfc3RhcnRfbG9ja2VkKGlmcCwgdHhy
KTsKICNlbHNlCiAJaWYgKCFJRlFfRFJWX0lTX0VNUFRZKCZpZnAtPmlmX3NuZCkpCiAJCWlnYl9z
dGFydF9sb2NrZWQodHhyLCBpZnApOwpAQCAtMTY5NSw3ICsxNjczLDYgQEAKIGlnYl9tZWRpYV9z
dGF0dXMoc3RydWN0IGlmbmV0ICppZnAsIHN0cnVjdCBpZm1lZGlhcmVxICppZm1yKQogewogCXN0
cnVjdCBhZGFwdGVyICphZGFwdGVyID0gaWZwLT5pZl9zb2Z0YzsKLQl1X2NoYXIgZmliZXJfdHlw
ZSA9IElGTV8xMDAwX1NYOwogCiAJSU5JVF9ERUJVR09VVCgiaWdiX21lZGlhX3N0YXR1czogYmVn
aW4iKTsKIApAQCAtMTcxMiwyNiArMTY4OSwzMSBAQAogCiAJaWZtci0+aWZtX3N0YXR1cyB8PSBJ
Rk1fQUNUSVZFOwogCi0JaWYgKChhZGFwdGVyLT5ody5waHkubWVkaWFfdHlwZSA9PSBlMTAwMF9t
ZWRpYV90eXBlX2ZpYmVyKSB8fAotCSAgICAoYWRhcHRlci0+aHcucGh5Lm1lZGlhX3R5cGUgPT0g
ZTEwMDBfbWVkaWFfdHlwZV9pbnRlcm5hbF9zZXJkZXMpKQotCQlpZm1yLT5pZm1fYWN0aXZlIHw9
IGZpYmVyX3R5cGUgfCBJRk1fRkRYOwotCWVsc2UgewotCQlzd2l0Y2ggKGFkYXB0ZXItPmxpbmtf
c3BlZWQpIHsKLQkJY2FzZSAxMDoKLQkJCWlmbXItPmlmbV9hY3RpdmUgfD0gSUZNXzEwX1Q7Ci0J
CQlicmVhazsKLQkJY2FzZSAxMDA6Ci0JCQlpZm1yLT5pZm1fYWN0aXZlIHw9IElGTV8xMDBfVFg7
Ci0JCQlicmVhazsKLQkJY2FzZSAxMDAwOgotCQkJaWZtci0+aWZtX2FjdGl2ZSB8PSBJRk1fMTAw
MF9UOwotCQkJYnJlYWs7Ci0JCX0KLQkJaWYgKGFkYXB0ZXItPmxpbmtfZHVwbGV4ID09IEZVTExf
RFVQTEVYKQotCQkJaWZtci0+aWZtX2FjdGl2ZSB8PSBJRk1fRkRYOworCXN3aXRjaCAoYWRhcHRl
ci0+bGlua19zcGVlZCkgeworCWNhc2UgMTA6CisJCWlmbXItPmlmbV9hY3RpdmUgfD0gSUZNXzEw
X1Q7CisJCWJyZWFrOworCWNhc2UgMTAwOgorCQkvKgorCQkqKiBTdXBwb3J0IGZvciAxMDBNYiBT
RlAgLSB0aGVzZSBhcmUgRmliZXIgCisJCSoqIGJ1dCB0aGUgbWVkaWEgdHlwZSBhcHBlYXJzIGFz
IHNlcmRlcworCQkqLworCQlpZiAoYWRhcHRlci0+aHcucGh5Lm1lZGlhX3R5cGUgPT0KKwkJICAg
IGUxMDAwX21lZGlhX3R5cGVfaW50ZXJuYWxfc2VyZGVzKQorCQkJaWZtci0+aWZtX2FjdGl2ZSB8
PSBJRk1fMTAwX0ZYOwogCQllbHNlCi0JCQlpZm1yLT5pZm1fYWN0aXZlIHw9IElGTV9IRFg7CisJ
CQlpZm1yLT5pZm1fYWN0aXZlIHw9IElGTV8xMDBfVFg7CisJCWJyZWFrOworCWNhc2UgMTAwMDoK
KwkJaWZtci0+aWZtX2FjdGl2ZSB8PSBJRk1fMTAwMF9UOworCQlicmVhazsKIAl9CisKKwlpZiAo
YWRhcHRlci0+bGlua19kdXBsZXggPT0gRlVMTF9EVVBMRVgpCisJCWlmbXItPmlmbV9hY3RpdmUg
fD0gSUZNX0ZEWDsKKwllbHNlCisJCWlmbXItPmlmbV9hY3RpdmUgfD0gSUZNX0hEWDsKKwogCUlH
Ql9DT1JFX1VOTE9DSyhhZGFwdGVyKTsKIH0KIApAQCAtMjE4MCw3ICsyMTYyLDcgQEAKIAlzdHJ1
Y3QgaWZuZXQJCSppZnAgPSBhZGFwdGVyLT5pZnA7CiAJc3RydWN0IHR4X3JpbmcJCSp0eHIgPSBh
ZGFwdGVyLT50eF9yaW5nczsKIAlzdHJ1Y3QgaWdiX3F1ZXVlCSpxdWUgPSBhZGFwdGVyLT5xdWV1
ZXM7Ci0JaW50CQkJaHVuZyA9IDAsIGJ1c3kgPSAwOworCWludAkJCWh1bmcgPSAwOwogCiAKIAlJ
R0JfQ09SRV9MT0NLX0FTU0VSVChhZGFwdGVyKTsKQEAgLTIxOTAsMjYgKzIxNzIsMTYgQEAKIAog
ICAgICAgICAvKgogICAgICAgICAqKiBDaGVjayB0aGUgVFggcXVldWVzIHN0YXR1cwotCSoqCS0g
Y2VudHJhbCBsb2NrZWQgaGFuZGxpbmcgb2YgT0FDVElWRQotCSoqCS0gd2F0Y2hkb2cgb25seSBp
ZiBhbGwgcXVldWVzIHNob3cgaHVuZwogICAgICAgICAqLwogCWZvciAoaW50IGkgPSAwOyBpIDwg
YWRhcHRlci0+bnVtX3F1ZXVlczsgaSsrLCBxdWUrKywgdHhyKyspIHsKIAkJaWYgKCh0eHItPnF1
ZXVlX3N0YXR1cyAmIElHQl9RVUVVRV9IVU5HKSAmJgogCQkgICAgKGFkYXB0ZXItPnBhdXNlX2Zy
YW1lcyA9PSAwKSkKIAkJCSsraHVuZzsKLQkJaWYgKHR4ci0+cXVldWVfc3RhdHVzICYgSUdCX1FV
RVVFX0RFUExFVEVEKQotCQkJKytidXN5OwogCQlpZiAoKHR4ci0+cXVldWVfc3RhdHVzICYgSUdC
X1FVRVVFX0lETEUpID09IDApCiAJCQl0YXNrcXVldWVfZW5xdWV1ZShxdWUtPnRxLCAmcXVlLT5x
dWVfdGFzayk7CiAJfQogCWlmIChodW5nID09IGFkYXB0ZXItPm51bV9xdWV1ZXMpCiAJCWdvdG8g
dGltZW91dDsKLQlpZiAoYnVzeSA9PSBhZGFwdGVyLT5udW1fcXVldWVzKQotCQlpZnAtPmlmX2Ry
dl9mbGFncyB8PSBJRkZfRFJWX09BQ1RJVkU7Ci0JZWxzZSBpZiAoKGlmcC0+aWZfZHJ2X2ZsYWdz
ICYgSUZGX0RSVl9PQUNUSVZFKSAmJgotCSAgICAoYnVzeSA8IGFkYXB0ZXItPm51bV9xdWV1ZXMp
KQotCQlpZnAtPmlmX2Rydl9mbGFncyAmPSB+SUZGX0RSVl9PQUNUSVZFOwotCiAJYWRhcHRlci0+
cGF1c2VfZnJhbWVzID0gMDsKIAljYWxsb3V0X3Jlc2V0KCZhZGFwdGVyLT50aW1lciwgaHosIGln
Yl9sb2NhbF90aW1lciwgYWRhcHRlcik7CiAjaWZuZGVmIERFVklDRV9QT0xMSU5HCkBAIC0yMjM0
LDExICsyMjA2LDEzIEBACiBzdGF0aWMgdm9pZAogaWdiX3VwZGF0ZV9saW5rX3N0YXR1cyhzdHJ1
Y3QgYWRhcHRlciAqYWRhcHRlcikKIHsKLQlzdHJ1Y3QgZTEwMDBfaHcgKmh3ID0gJmFkYXB0ZXIt
Pmh3OwotCXN0cnVjdCBpZm5ldCAqaWZwID0gYWRhcHRlci0+aWZwOwotCWRldmljZV90IGRldiA9
IGFkYXB0ZXItPmRldjsKLQlzdHJ1Y3QgdHhfcmluZyAqdHhyID0gYWRhcHRlci0+dHhfcmluZ3M7
Ci0JdTMyIGxpbmtfY2hlY2ssIHRoc3RhdCwgY3RybDsKKwlzdHJ1Y3QgZTEwMDBfaHcJCSpodyA9
ICZhZGFwdGVyLT5odzsKKwlzdHJ1Y3QgZTEwMDBfZmNfaW5mbwkqZmMgPSAmaHctPmZjOworCXN0
cnVjdCBpZm5ldAkJKmlmcCA9IGFkYXB0ZXItPmlmcDsKKwlkZXZpY2VfdAkJZGV2ID0gYWRhcHRl
ci0+ZGV2OworCXN0cnVjdCB0eF9yaW5nCQkqdHhyID0gYWRhcHRlci0+dHhfcmluZ3M7CisJdTMy
CQkJbGlua19jaGVjaywgdGhzdGF0LCBjdHJsOworCWNoYXIJCQkqZmxvd2N0bCA9IE5VTEw7CiAK
IAlsaW5rX2NoZWNrID0gdGhzdGF0ID0gY3RybCA9IDA7CiAKQEAgLTIyNzYsMTUgKzIyNTAsMzMg
QEAKIAkJY3RybCA9IEUxMDAwX1JFQURfUkVHKGh3LCBFMTAwMF9DVFJMX0VYVCk7CiAJfQogCisJ
LyogR2V0IHRoZSBmbG93IGNvbnRyb2wgZm9yIGRpc3BsYXkgKi8KKwlzd2l0Y2ggKGZjLT5jdXJy
ZW50X21vZGUpIHsKKwljYXNlIGUxMDAwX2ZjX3J4X3BhdXNlOgorCQlmbG93Y3RsID0gIlJYIjsK
KwkJYnJlYWs7CQorCWNhc2UgZTEwMDBfZmNfdHhfcGF1c2U6CisJCWZsb3djdGwgPSAiVFgiOwor
CQlicmVhazsJCisJY2FzZSBlMTAwMF9mY19mdWxsOgorCQlmbG93Y3RsID0gIkZ1bGwiOworCQli
cmVhazsJCisJY2FzZSBlMTAwMF9mY19ub25lOgorCWRlZmF1bHQ6CisJCWZsb3djdGwgPSAiTm9u
ZSI7CisJCWJyZWFrOwkKKwl9CisKIAkvKiBOb3cgd2UgY2hlY2sgaWYgYSB0cmFuc2l0aW9uIGhh
cyBoYXBwZW5lZCAqLwogCWlmIChsaW5rX2NoZWNrICYmIChhZGFwdGVyLT5saW5rX2FjdGl2ZSA9
PSAwKSkgewogCQllMTAwMF9nZXRfc3BlZWRfYW5kX2R1cGxleCgmYWRhcHRlci0+aHcsIAogCQkg
ICAgJmFkYXB0ZXItPmxpbmtfc3BlZWQsICZhZGFwdGVyLT5saW5rX2R1cGxleCk7CiAJCWlmIChi
b290dmVyYm9zZSkKLQkJCWRldmljZV9wcmludGYoZGV2LCAiTGluayBpcyB1cCAlZCBNYnBzICVz
XG4iLAorCQkJZGV2aWNlX3ByaW50ZihkZXYsICJMaW5rIGlzIHVwICVkIE1icHMgJXMsIgorCQkJ
ICAgICIgRmxvdyBDb250cm9sOiAlc1xuIiwKIAkJCSAgICBhZGFwdGVyLT5saW5rX3NwZWVkLAog
CQkJICAgICgoYWRhcHRlci0+bGlua19kdXBsZXggPT0gRlVMTF9EVVBMRVgpID8KLQkJCSAgICAi
RnVsbCBEdXBsZXgiIDogIkhhbGYgRHVwbGV4IikpOworCQkJICAgICJGdWxsIER1cGxleCIgOiAi
SGFsZiBEdXBsZXgiKSwgZmxvd2N0bCk7CiAJCWFkYXB0ZXItPmxpbmtfYWN0aXZlID0gMTsKIAkJ
aWZwLT5pZl9iYXVkcmF0ZSA9IGFkYXB0ZXItPmxpbmtfc3BlZWQgKiAxMDAwMDAwOwogCQlpZiAo
KGN0cmwgJiBFMTAwMF9DVFJMX0VYVF9MSU5LX01PREVfR01JSSkgJiYK
--047d7b5daf50ddb67504cf069572--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFOYbc=NNF%2BgVHdd=g%2Bi13UnmZFAtX73KirWpiJWcdp6YgmyYA>