From owner-freebsd-net@FreeBSD.ORG Fri Mar 23 18:38:30 2012 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E2C7F1065670; Fri, 23 Mar 2012 18:38:30 +0000 (UTC) (envelope-from nitroboost@gmail.com) Received: from mail-ob0-f182.google.com (mail-ob0-f182.google.com [209.85.214.182]) by mx1.freebsd.org (Postfix) with ESMTP id 844818FC08; Fri, 23 Mar 2012 18:38:30 +0000 (UTC) Received: by obbuo13 with SMTP id uo13so3473719obb.13 for ; Fri, 23 Mar 2012 11:38:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=rf4bdH6kX3f+uQhcm8bSF7Dt9YvbwOJeSstZOBEE3MI=; b=kbOxNJVmhepkQcJAtz+I9wBgmEL31vwHkldpvRR1yrIQR3uYJh1wHdAWPn8hano5T6 Nykmvp086wuKWxoRv59P8KZ9EZFEKJNSzIE7jDJ4PkWP4GvQU5ykhwE43q15xxKnsvHA 97bajjaRna8D5tzTDQmJx7PS6L4u1168GnG8Uaf6E2KEUgH5quEc13RLTbF1Il0UIx/D xfoC7G1dolN16kyj+8AnS5LQQ+JHM3nHYCr4xHq7p6ghHbLSElJJbAqHmQthfmycWvNF Bx/e8RuiTCjeJamn3xvNOMVbyK2NHGNkjAE56rh7kTcLonISKBxqQsx5ITDhJagULDps 4nsA== MIME-Version: 1.0 Received: by 10.182.108.97 with SMTP id hj1mr15885962obb.37.1332527903993; Fri, 23 Mar 2012 11:38:23 -0700 (PDT) Received: by 10.182.47.135 with HTTP; Fri, 23 Mar 2012 11:38:21 -0700 (PDT) In-Reply-To: <4F6CBC59.2060601@sentex.net> References: <201203151417.04507.jhb@freebsd.org> <201203201457.24776.jhb@freebsd.org> <4F6CBC59.2060601@sentex.net> Date: Fri, 23 Mar 2012 11:38:21 -0700 Message-ID: From: Jason Wolfe To: Mike Tancsa Content-Type: multipart/mixed; boundary=f46d04478b775eefcf04bbed54c9 Cc: freebsd-net@freebsd.org, Adrian Chadd , Hooman Fazaeli , John Baldwin Subject: Re: Intel 82574L interface wedging - em7.3.2/8.2-STABLE X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Mar 2012 18:38:31 -0000 --f46d04478b775eefcf04bbed54c9 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Fri, Mar 23, 2012 at 11:09 AM, Mike Tancsa wrote: > On 3/20/2012 2:57 PM, John Baldwin wrote: >>>> TX when link becomes active. =A0I've also updated it to fix resume for= em >>>> and igb to DTRT when buf_ring is used, and to not include old-style st= art >>>> routines at all when using multiq. =A0It is at >>>> http://www.freebsd.org/~jhb/patches/e1000_txeof2.patch >>> Thank for the patch sirs, so far it does look like it did the trick. >>> I'll know for certain here in a few days if I'm still in the clear. >>> I'm guessing after it goes through some more testing it'll be too late >>> to slip it into 8.3? >> >> Yes, this is too late for 8.3, but thanks for testing! > > Hi, > Is there a RELENG_8 version of this patch ? I have a server that used to > shows this issue quite a bit, but has not since 7.3.2. I would be happy > to stress it on the box. =A0The patch above does not apply cleanly due to > the netmap diffs, but I can manually merge if thats the only difference. > > em1: port 0x2000-0x201f mem > 0xb4100000-0xb411ffff,0xb4120000-0xb4123fff irq 16 at device 0.0 on pci11 > em1: Using MSIX interrupts with 3 vectors > em1: [ITHREAD] > em1: [ITHREAD] > em1: [ITHREAD] > em1: Ethernet address: 00:15:17:ed:68:a4 > > em1@pci0:11:0:0: =A0 =A0 =A0 =A0class=3D0x020000 card=3D0x34ec8086 chip= =3D0x10d38086 > rev=3D0x00 hdr=3D0x00 > =A0 =A0vendor =A0 =A0 =3D 'Intel Corporation' > =A0 =A0device =A0 =A0 =3D 'Intel 82574L Gigabit Ethernet Controller (8257= 4L)' > =A0 =A0class =A0 =A0 =A0=3D network > =A0 =A0subclass =A0 =3D ethernet > =A0 =A0bar =A0 [10] =3D type Memory, range 32, base 0xb4100000, size 1310= 72, > enabled > =A0 =A0bar =A0 [18] =3D type I/O Port, range 32, base 0x2000, size 32, en= abled > =A0 =A0bar =A0 [1c] =3D type Memory, range 32, base 0xb4120000, size 1638= 4, enabled > =A0 =A0cap 01[c8] =3D powerspec 2 =A0supports D0 D3 =A0current D0 > =A0 =A0cap 05[d0] =3D MSI supports 1 message, 64 bit > =A0 =A0cap 10[e0] =3D PCI-Express 1 endpoint max data 128(256) link x1(x1= ) > =A0 =A0cap 11[a0] =3D MSI-X supports 5 messages in map 0x1c enabled > ecap 0001[100] =3D AER 1 0 fatal 0 non-fatal 0 corrected > ecap 0003[140] =3D Serial 1 001517ffffed68a4 > > > -- > ------------------- > Mike Tancsa, tel +1 519 651 3400 > Sentex Communications, mike@sentex.net > Providing Internet services since 1994 www.sentex.net > Cambridge, Ontario Canada =A0 http://www.tancsa.com/ Mike, Attached is my patch with the small issues you mention cleaned up. It worked for me against RELENG_8 (8.3-PRERELEASE) as of 4 days ago. On the testing front, I've been stable for those 4 days across the pool of test machines. Prior I couldn't get past 48 hours without an interface 'wedge'. Thanks again! Jason --f46d04478b775eefcf04bbed54c9 Content-Type: application/octet-stream; name="if_em_fix-fbsd83.diff" Content-Disposition: attachment; filename="if_em_fix-fbsd83.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h05koxla0 ZGlmZiAtcnVOIHNyYy5zdG9jay9zeXMvZGV2L2UxMDAwL2lmX2VtLmMgc3JjL3N5cy9kZXYvZTEw MDAvaWZfZW0uYwotLS0gc3JjLnN0b2NrL3N5cy9kZXYvZTEwMDAvaWZfZW0uYwkyMDEyLTAxLTMx IDE1OjQ3OjEwLjAwMDAwMDAwMCAtMDcwMAorKysgc3JjL3N5cy9kZXYvZTEwMDAvaWZfZW0uYwky MDEyLTAzLTE4IDIzOjA4OjAzLjAwMDAwMDAwMCAtMDcwMApAQCAtMTkzLDEzICsxOTMsMTQgQEAK IHN0YXRpYyBpbnQJZW1fc2h1dGRvd24oZGV2aWNlX3QpOwogc3RhdGljIGludAllbV9zdXNwZW5k KGRldmljZV90KTsKIHN0YXRpYyBpbnQJZW1fcmVzdW1lKGRldmljZV90KTsKLXN0YXRpYyB2b2lk CWVtX3N0YXJ0KHN0cnVjdCBpZm5ldCAqKTsKLXN0YXRpYyB2b2lkCWVtX3N0YXJ0X2xvY2tlZChz dHJ1Y3QgaWZuZXQgKiwgc3RydWN0IHR4X3JpbmcgKik7CiAjaWZkZWYgRU1fTVVMVElRVUVVRQog c3RhdGljIGludAllbV9tcV9zdGFydChzdHJ1Y3QgaWZuZXQgKiwgc3RydWN0IG1idWYgKik7CiBz dGF0aWMgaW50CWVtX21xX3N0YXJ0X2xvY2tlZChzdHJ1Y3QgaWZuZXQgKiwKIAkJICAgIHN0cnVj dCB0eF9yaW5nICosIHN0cnVjdCBtYnVmICopOwogc3RhdGljIHZvaWQJZW1fcWZsdXNoKHN0cnVj dCBpZm5ldCAqKTsKKyNlbHNlCitzdGF0aWMgdm9pZAllbV9zdGFydChzdHJ1Y3QgaWZuZXQgKik7 CitzdGF0aWMgdm9pZAllbV9zdGFydF9sb2NrZWQoc3RydWN0IGlmbmV0ICosIHN0cnVjdCB0eF9y aW5nICopOwogI2VuZGlmCiBzdGF0aWMgaW50CWVtX2lvY3RsKHN0cnVjdCBpZm5ldCAqLCB1X2xv bmcsIGNhZGRyX3QpOwogc3RhdGljIHZvaWQJZW1faW5pdCh2b2lkICopOwpAQCAtMjM0LDcgKzIz NSw3IEBACiBzdGF0aWMgdm9pZAllbV9kaXNhYmxlX2ludHIoc3RydWN0IGFkYXB0ZXIgKik7CiBz dGF0aWMgdm9pZAllbV91cGRhdGVfc3RhdHNfY291bnRlcnMoc3RydWN0IGFkYXB0ZXIgKik7CiBz dGF0aWMgdm9pZAllbV9hZGRfaHdfc3RhdHMoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIpOwotc3Rh dGljIGJvb2wJZW1fdHhlb2Yoc3RydWN0IHR4X3JpbmcgKik7CitzdGF0aWMgdm9pZAllbV90eGVv ZihzdHJ1Y3QgdHhfcmluZyAqKTsKIHN0YXRpYyBib29sCWVtX3J4ZW9mKHN0cnVjdCByeF9yaW5n ICosIGludCwgaW50ICopOwogI2lmbmRlZiBfX05PX1NUUklDVF9BTElHTk1FTlQKIHN0YXRpYyBp bnQJZW1fZml4dXBfcngoc3RydWN0IHJ4X3JpbmcgKik7CkBAIC04MzYsNiArODM3LDcgQEAKIGVt X3Jlc3VtZShkZXZpY2VfdCBkZXYpCiB7CiAJc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIgPSBkZXZp Y2VfZ2V0X3NvZnRjKGRldik7CisJc3RydWN0IHR4X3JpbmcJKnR4ciA9IGFkYXB0ZXItPnR4X3Jp bmdzOwogCXN0cnVjdCBpZm5ldCAqaWZwID0gYWRhcHRlci0+aWZwOwogCiAJRU1fQ09SRV9MT0NL KGFkYXB0ZXIpOwpAQCAtODQzLDggKzg0NSwyMiBAQAogCQllMTAwMF9yZXN1bWVfd29ya2Fyb3Vu ZHNfcGNobGFuKCZhZGFwdGVyLT5odyk7CiAJZW1faW5pdF9sb2NrZWQoYWRhcHRlcik7CiAJZW1f aW5pdF9tYW5hZ2VhYmlsaXR5KGFkYXB0ZXIpOworCisJaWYgKChpZnAtPmlmX2ZsYWdzICYgSUZG X1VQKSAmJgorCSAgICAoaWZwLT5pZl9kcnZfZmxhZ3MgJiBJRkZfRFJWX1JVTk5JTkcpICYmIGFk YXB0ZXItPmxpbmtfYWN0aXZlKSB7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgYWRhcHRlci0+bnVt X3F1ZXVlczsgaSsrLCB0eHIrKykgeworCQkJRU1fVFhfTE9DSyh0eHIpOworI2lmZGVmIEVNX01V TFRJUVVFVUUKKwkJCWlmICghZHJicl9lbXB0eShpZnAsIHR4ci0+YnIpKQorCQkJCWVtX21xX3N0 YXJ0X2xvY2tlZChpZnAsIHR4ciwgTlVMTCk7CisjZWxzZQorCQkJaWYgKCFJRlFfRFJWX0lTX0VN UFRZKCZpZnAtPmlmX3NuZCkpCisJCQkJZW1fc3RhcnRfbG9ja2VkKGlmcCwgdHhyKTsKKyNlbmRp ZgorCQkJRU1fVFhfVU5MT0NLKHR4cik7CisJCX0KKwl9CiAJRU1fQ09SRV9VTkxPQ0soYWRhcHRl cik7Ci0JZW1fc3RhcnQoaWZwKTsKIAogCXJldHVybiBidXNfZ2VuZXJpY19yZXN1bWUoZGV2KTsK IH0KQEAgLTk0OCw3ICs5NjQsNyBAQAogCX0KIAlpZl9xZmx1c2goaWZwKTsKIH0KLSNlbmRpZiAv KiBFTV9NVUxUSVFVRVVFICovCisjZWxzZSAgLyogIUVNX01VTFRJUVVFVUUgKi8KIAogc3RhdGlj IHZvaWQKIGVtX3N0YXJ0X2xvY2tlZChzdHJ1Y3QgaWZuZXQgKmlmcCwgc3RydWN0IHR4X3Jpbmcg KnR4cikKQEAgLTEwMDksMTQgKzEwMjUsOSBAQAogCQllbV9zdGFydF9sb2NrZWQoaWZwLCB0eHIp OwogCQlFTV9UWF9VTkxPQ0sodHhyKTsKIAl9Ci0JLyoKLQkqKiBJZiB3ZSB3ZW50IGluYWN0aXZl IHNjaGVkdWxlCi0JKiogYSB0YXNrIHRvIGNsZWFuIHVwLgotCSovCi0JaWYgKGlmcC0+aWZfZHJ2 X2ZsYWdzICYgSUZGX0RSVl9PQUNUSVZFKQotCQl0YXNrcXVldWVfZW5xdWV1ZSh0eHItPnRxLCAm dHhyLT50eF90YXNrKTsKIAlyZXR1cm47CiB9CisjZW5kaWYgLyogRU1fTVVMVElRVUVVRSAqLwog CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCiAgKiAgSW9jdGwgZW50cnkgcG9pbnQKQEAgLTE0MTMsNyArMTQyNCw4 IEBACiAJaWYgKCFkcmJyX2VtcHR5KGlmcCwgdHhyLT5icikpCiAJCWVtX21xX3N0YXJ0X2xvY2tl ZChpZnAsIHR4ciwgTlVMTCk7CiAjZWxzZQotCWVtX3N0YXJ0X2xvY2tlZChpZnAsIHR4cik7CisJ aWYgKCFJRlFfRFJWX0lTX0VNUFRZKCZpZnAtPmlmX3NuZCkpCisJCWVtX3N0YXJ0X2xvY2tlZChp ZnAsIHR4cik7CiAjZW5kaWYKIAlFTV9UWF9VTkxPQ0sodHhyKTsKIApAQCAtMTQ4NiwxMCArMTQ5 OCwxMSBAQAogCQlpZiAoIWRyYnJfZW1wdHkoaWZwLCB0eHItPmJyKSkKIAkJCWVtX21xX3N0YXJ0 X2xvY2tlZChpZnAsIHR4ciwgTlVMTCk7CiAjZWxzZQotCQllbV9zdGFydF9sb2NrZWQoaWZwLCB0 eHIpOworCQlpZiAoIUlGUV9EUlZfSVNfRU1QVFkoJmlmcC0+aWZfc25kKSkKKwkJCWVtX3N0YXJ0 X2xvY2tlZChpZnAsIHR4cik7CiAjZW5kaWYKIAkJRU1fVFhfVU5MT0NLKHR4cik7Ci0JCWlmICht b3JlIHx8IChpZnAtPmlmX2Rydl9mbGFncyAmIElGRl9EUlZfT0FDVElWRSkpIHsKKwkJaWYgKG1v cmUpIHsKIAkJCXRhc2txdWV1ZV9lbnF1ZXVlKGFkYXB0ZXItPnRxLCAmYWRhcHRlci0+cXVlX3Rh c2spOwogCQkJcmV0dXJuOwogCQl9CkBAIC0xNTEwLDE3ICsxNTIzLDIxIEBACiB7CiAJc3RydWN0 IHR4X3JpbmcgKnR4ciA9IGFyZzsKIAlzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciA9IHR4ci0+YWRh cHRlcjsKLQlib29sCQltb3JlOworCXN0cnVjdCBpZm5ldAkqaWZwID0gYWRhcHRlci0+aWZwOwog CiAJKyt0eHItPnR4X2lycTsKIAlFTV9UWF9MT0NLKHR4cik7Ci0JbW9yZSA9IGVtX3R4ZW9mKHR4 cik7CisJZW1fdHhlb2YodHhyKTsKKyNpZmRlZiBFTV9NVUxUSVFVRVVFCisJaWYgKCFkcmJyX2Vt cHR5KGlmcCwgdHhyLT5icikpCisJCWVtX21xX3N0YXJ0X2xvY2tlZChpZnAsIHR4ciwgTlVMTCk7 CisjZWxzZQorCWlmICghSUZRX0RSVl9JU19FTVBUWSgmaWZwLT5pZl9zbmQpKQorCQllbV9zdGFy dF9sb2NrZWQoaWZwLCB0eHIpOworI2VuZGlmCisJLyogUmVlbmFibGUgdGhpcyBpbnRlcnJ1cHQg Ki8KKwlFMTAwMF9XUklURV9SRUcoJmFkYXB0ZXItPmh3LCBFMTAwMF9JTVMsIHR4ci0+aW1zKTsK IAlFTV9UWF9VTkxPQ0sodHhyKTsKLQlpZiAobW9yZSkKLQkJdGFza3F1ZXVlX2VucXVldWUodHhy LT50cSwgJnR4ci0+dHhfdGFzayk7Ci0JZWxzZQotCQkvKiBSZWVuYWJsZSB0aGlzIGludGVycnVw dCAqLwotCQlFMTAwMF9XUklURV9SRUcoJmFkYXB0ZXItPmh3LCBFMTAwMF9JTVMsIHR4ci0+aW1z KTsKIAlyZXR1cm47CiB9CiAKQEAgLTE1OTgsNyArMTYxNSw4IEBACiAJaWYgKCFkcmJyX2VtcHR5 KGlmcCwgdHhyLT5icikpCiAJCWVtX21xX3N0YXJ0X2xvY2tlZChpZnAsIHR4ciwgTlVMTCk7CiAj ZWxzZQotCWVtX3N0YXJ0X2xvY2tlZChpZnAsIHR4cik7CisJaWYgKCFJRlFfRFJWX0lTX0VNUFRZ KCZpZnAtPmlmX3NuZCkpCisJCWVtX3N0YXJ0X2xvY2tlZChpZnAsIHR4cik7CiAjZW5kaWYKIAlF MTAwMF9XUklURV9SRUcoJmFkYXB0ZXItPmh3LCBFMTAwMF9JTVMsIHR4ci0+aW1zKTsKIAlFTV9U WF9VTkxPQ0sodHhyKTsKQEAgLTE2MDgsNiArMTYyNiw3IEBACiBlbV9oYW5kbGVfbGluayh2b2lk ICpjb250ZXh0LCBpbnQgcGVuZGluZykKIHsKIAlzdHJ1Y3QgYWRhcHRlcgkqYWRhcHRlciA9IGNv bnRleHQ7CisJc3RydWN0IHR4X3JpbmcJKnR4ciA9IGFkYXB0ZXItPnR4X3JpbmdzOwogCXN0cnVj dCBpZm5ldCAqaWZwID0gYWRhcHRlci0+aWZwOwogCiAJaWYgKCEoaWZwLT5pZl9kcnZfZmxhZ3Mg JiBJRkZfRFJWX1JVTk5JTkcpKQpAQCAtMTYxOSw2ICsxNjM4LDE5IEBACiAJY2FsbG91dF9yZXNl dCgmYWRhcHRlci0+dGltZXIsIGh6LCBlbV9sb2NhbF90aW1lciwgYWRhcHRlcik7CiAJRTEwMDBf V1JJVEVfUkVHKCZhZGFwdGVyLT5odywgRTEwMDBfSU1TLAogCSAgICBFTV9NU0lYX0xJTksgfCBF MTAwMF9JTVNfTFNDKTsKKwlpZiAoYWRhcHRlci0+bGlua19hY3RpdmUpIHsKKwkJZm9yIChpbnQg aSA9IDA7IGkgPCBhZGFwdGVyLT5udW1fcXVldWVzOyBpKyssIHR4cisrKSB7CisJCQlFTV9UWF9M T0NLKHR4cik7CisjaWZkZWYgRU1fTVVMVElRVUVVRQorCQkJaWYgKCFkcmJyX2VtcHR5KGlmcCwg dHhyLT5icikpCisJCQkJZW1fbXFfc3RhcnRfbG9ja2VkKGlmcCwgdHhyLCBOVUxMKTsKKyNlbHNl CisJCQlpZiAoIUlGUV9EUlZfSVNfRU1QVFkoJmlmcC0+aWZfc25kKSkKKwkJCQllbV9zdGFydF9s b2NrZWQoaWZwLCB0eHIpOworI2VuZGlmCisJCQlFTV9UWF9VTkxPQ0sodHhyKTsKKwkJfQorCX0K IAlFTV9DT1JFX1VOTE9DSyhhZGFwdGVyKTsKIH0KIApAQCAtMjg5MSwyMCArMjkyMywyMSBAQAog CWlmcC0+aWZfc29mdGMgPSBhZGFwdGVyOwogCWlmcC0+aWZfZmxhZ3MgPSBJRkZfQlJPQURDQVNU IHwgSUZGX1NJTVBMRVggfCBJRkZfTVVMVElDQVNUOwogCWlmcC0+aWZfaW9jdGwgPSBlbV9pb2N0 bDsKKyNpZmRlZiBFTV9NVUxUSVFVRVVFCisJLyogTXVsdGlxdWV1ZSBzdGFjayBpbnRlcmZhY2Ug Ki8KKwlpZnAtPmlmX3RyYW5zbWl0ID0gZW1fbXFfc3RhcnQ7CisJaWZwLT5pZl9xZmx1c2ggPSBl bV9xZmx1c2g7CisjZWxzZQogCWlmcC0+aWZfc3RhcnQgPSBlbV9zdGFydDsKIAlJRlFfU0VUX01B WExFTigmaWZwLT5pZl9zbmQsIGFkYXB0ZXItPm51bV90eF9kZXNjIC0gMSk7CiAJaWZwLT5pZl9z bmQuaWZxX2Rydl9tYXhsZW4gPSBhZGFwdGVyLT5udW1fdHhfZGVzYyAtIDE7CiAJSUZRX1NFVF9S RUFEWSgmaWZwLT5pZl9zbmQpOworI2VuZGlmCQogCiAJZXRoZXJfaWZhdHRhY2goaWZwLCBhZGFw dGVyLT5ody5tYWMuYWRkcik7CiAKIAlpZnAtPmlmX2NhcGFiaWxpdGllcyA9IGlmcC0+aWZfY2Fw ZW5hYmxlID0gMDsKIAotI2lmZGVmIEVNX01VTFRJUVVFVUUKLQkvKiBNdWx0aXF1ZXVlIHN0YWNr IGludGVyZmFjZSAqLwotCWlmcC0+aWZfdHJhbnNtaXQgPSBlbV9tcV9zdGFydDsKLQlpZnAtPmlm X3FmbHVzaCA9IGVtX3FmbHVzaDsKLSNlbmRpZgkKIAogCWlmcC0+aWZfY2FwYWJpbGl0aWVzIHw9 IElGQ0FQX0hXQ1NVTSB8IElGQ0FQX1ZMQU5fSFdDU1VNOwogCWlmcC0+aWZfY2FwYWJpbGl0aWVz IHw9IElGQ0FQX1RTTzQ7CkBAIC0zNzEwLDcgKzM3NDMsNyBAQAogICogIHR4X2J1ZmZlciBpcyBw dXQgYmFjayBvbiB0aGUgZnJlZSBxdWV1ZS4KICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBi b29sCitzdGF0aWMgdm9pZAogZW1fdHhlb2Yoc3RydWN0IHR4X3JpbmcgKnR4cikKIHsKIAlzdHJ1 Y3QgYWRhcHRlcgkqYWRhcHRlciA9IHR4ci0+YWRhcHRlcjsKQEAgLTM3MjQsNyArMzc1Nyw3IEBA CiAJLyogTm8gd29yaywgbWFrZSBzdXJlIHdhdGNoZG9nIGlzIG9mZiAqLwogICAgICAgICBpZiAo dHhyLT50eF9hdmFpbCA9PSBhZGFwdGVyLT5udW1fdHhfZGVzYykgewogCQl0eHItPnF1ZXVlX3N0 YXR1cyA9IEVNX1FVRVVFX0lETEU7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIChGQUxTRSk7Cisg ICAgICAgICAgICAgICAgcmV0dXJuOwogCX0KIAogCXByb2Nlc3NlZCA9IDA7CkBAIC0zODEzLDEw ICszODQ2LDcgQEAKIAkvKiBEaXNhYmxlIHdhdGNoZG9nIGlmIGFsbCBjbGVhbiAqLwogCWlmICh0 eHItPnR4X2F2YWlsID09IGFkYXB0ZXItPm51bV90eF9kZXNjKSB7CiAJCXR4ci0+cXVldWVfc3Rh dHVzID0gRU1fUVVFVUVfSURMRTsKLQkJcmV0dXJuIChGQUxTRSk7CiAJfSAKLQotCXJldHVybiAo VFJVRSk7CiB9CiAKIApkaWZmIC1ydU4gc3JjLnN0b2NrL3N5cy9kZXYvZTEwMDAvaWZfaWdiLmMg c3JjL3N5cy9kZXYvZTEwMDAvaWZfaWdiLmMKLS0tIHNyYy5zdG9jay9zeXMvZGV2L2UxMDAwL2lm X2lnYi5jCTIwMTItMDEtMzEgMTU6NDc6MTAuMDAwMDAwMDAwIC0wNzAwCisrKyBzcmMvc3lzL2Rl di9lMTAwMC9pZl9pZ2IuYwkyMDEyLTAzLTE4IDIxOjQ1OjE1LjAwMDAwMDAwMCAtMDcwMApAQCAt MTcxLDEzICsxNzEsMTQgQEAKIHN0YXRpYyBpbnQJaWdiX3NodXRkb3duKGRldmljZV90KTsKIHN0 YXRpYyBpbnQJaWdiX3N1c3BlbmQoZGV2aWNlX3QpOwogc3RhdGljIGludAlpZ2JfcmVzdW1lKGRl dmljZV90KTsKLXN0YXRpYyB2b2lkCWlnYl9zdGFydChzdHJ1Y3QgaWZuZXQgKik7Ci1zdGF0aWMg dm9pZAlpZ2Jfc3RhcnRfbG9ja2VkKHN0cnVjdCB0eF9yaW5nICosIHN0cnVjdCBpZm5ldCAqaWZw KTsKICNpZiBfX0ZyZWVCU0RfdmVyc2lvbiA+PSA4MDAwMDAKIHN0YXRpYyBpbnQJaWdiX21xX3N0 YXJ0KHN0cnVjdCBpZm5ldCAqLCBzdHJ1Y3QgbWJ1ZiAqKTsKIHN0YXRpYyBpbnQJaWdiX21xX3N0 YXJ0X2xvY2tlZChzdHJ1Y3QgaWZuZXQgKiwKIAkJICAgIHN0cnVjdCB0eF9yaW5nICosIHN0cnVj dCBtYnVmICopOwogc3RhdGljIHZvaWQJaWdiX3FmbHVzaChzdHJ1Y3QgaWZuZXQgKik7CisjZWxz ZQorc3RhdGljIHZvaWQJaWdiX3N0YXJ0KHN0cnVjdCBpZm5ldCAqKTsKK3N0YXRpYyB2b2lkCWln Yl9zdGFydF9sb2NrZWQoc3RydWN0IHR4X3JpbmcgKiwgc3RydWN0IGlmbmV0ICppZnApOwogI2Vu ZGlmCiBzdGF0aWMgaW50CWlnYl9pb2N0bChzdHJ1Y3QgaWZuZXQgKiwgdV9sb25nLCBjYWRkcl90 KTsKIHN0YXRpYyB2b2lkCWlnYl9pbml0KHZvaWQgKik7CkBAIC0yNjEsNiArMjYyLDcgQEAKIHN0 YXRpYyB2b2lkCWlnYl9tc2l4X2xpbmsodm9pZCAqKTsKIHN0YXRpYyB2b2lkCWlnYl9oYW5kbGVf cXVlKHZvaWQgKmNvbnRleHQsIGludCBwZW5kaW5nKTsKIHN0YXRpYyB2b2lkCWlnYl9oYW5kbGVf bGluayh2b2lkICpjb250ZXh0LCBpbnQgcGVuZGluZyk7CitzdGF0aWMgdm9pZAlpZ2JfaGFuZGxl X2xpbmtfbG9ja2VkKHN0cnVjdCBhZGFwdGVyICopOwogCiBzdGF0aWMgdm9pZAlpZ2Jfc2V0X3N5 c2N0bF92YWx1ZShzdHJ1Y3QgYWRhcHRlciAqLCBjb25zdCBjaGFyICosCiAJCSAgICBjb25zdCBj aGFyICosIGludCAqLCBpbnQpOwpAQCAtNzk4LDYgKzgwMCw3IEBACiBpZ2JfcmVzdW1lKGRldmlj ZV90IGRldikKIHsKIAlzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciA9IGRldmljZV9nZXRfc29mdGMo ZGV2KTsKKwlzdHJ1Y3QgdHhfcmluZwkqdHhyID0gYWRhcHRlci0+dHhfcmluZ3M7CiAJc3RydWN0 IGlmbmV0ICppZnAgPSBhZGFwdGVyLT5pZnA7CiAKIAlJR0JfQ09SRV9MT0NLKGFkYXB0ZXIpOwpA QCAtODA1LDkgKzgwOCwyMSBAQAogCWlnYl9pbml0X21hbmFnZWFiaWxpdHkoYWRhcHRlcik7CiAK IAlpZiAoKGlmcC0+aWZfZmxhZ3MgJiBJRkZfVVApICYmCi0JICAgIChpZnAtPmlmX2Rydl9mbGFn cyAmIElGRl9EUlZfUlVOTklORykpCi0JCWlnYl9zdGFydChpZnApOwotCisJICAgIChpZnAtPmlm X2Rydl9mbGFncyAmIElGRl9EUlZfUlVOTklORykgJiYgYWRhcHRlci0+bGlua19hY3RpdmUpIHsK KwkJZm9yIChpbnQgaSA9IDA7IGkgPCBhZGFwdGVyLT5udW1fcXVldWVzOyBpKyssIHR4cisrKSB7 CisJCQlJR0JfVFhfTE9DSyh0eHIpOworI2lmIF9fRnJlZUJTRF92ZXJzaW9uID49IDgwMDAwMAor CQkJLyogUHJvY2VzcyB0aGUgc3RhY2sgcXVldWUgb25seSBpZiBub3QgZGVwbGV0ZWQgKi8KKwkJ CWlmICgoKHR4ci0+cXVldWVfc3RhdHVzICYgSUdCX1FVRVVFX0RFUExFVEVEKSA9PSAwKSAmJgor CQkJICAgICFkcmJyX2VtcHR5KGlmcCwgdHhyLT5icikpCisJCQkJaWdiX21xX3N0YXJ0X2xvY2tl ZChpZnAsIHR4ciwgTlVMTCk7CisjZWxzZQorCQkJaWYgKCFJRlFfRFJWX0lTX0VNUFRZKCZpZnAt PmlmX3NuZCkpCisJCQkJaWdiX3N0YXJ0X2xvY2tlZCh0eHIsIGlmcCk7CisjZW5kaWYKKwkJCUlH Ql9UWF9VTkxPQ0sodHhyKTsKKwkJfQorCX0KIAlJR0JfQ09SRV9VTkxPQ0soYWRhcHRlcik7CiAK IAlyZXR1cm4gYnVzX2dlbmVyaWNfcmVzdW1lKGRldik7CkBAIC0xMzIxLDE5ICsxMzM2LDE5IEBA CiAJCW1vcmUgPSBpZ2Jfcnhlb2YocXVlLCBhZGFwdGVyLT5yeF9wcm9jZXNzX2xpbWl0LCBOVUxM KTsKIAogCQlJR0JfVFhfTE9DSyh0eHIpOwotCQlpZiAoaWdiX3R4ZW9mKHR4cikpCi0JCQltb3Jl ID0gVFJVRTsKKwkJaWdiX3R4ZW9mKHR4cik7CiAjaWYgX19GcmVlQlNEX3ZlcnNpb24gPj0gODAw MDAwCiAJCS8qIFByb2Nlc3MgdGhlIHN0YWNrIHF1ZXVlIG9ubHkgaWYgbm90IGRlcGxldGVkICov CiAJCWlmICgoKHR4ci0+cXVldWVfc3RhdHVzICYgSUdCX1FVRVVFX0RFUExFVEVEKSA9PSAwKSAm JgogCQkgICAgIWRyYnJfZW1wdHkoaWZwLCB0eHItPmJyKSkKIAkJCWlnYl9tcV9zdGFydF9sb2Nr ZWQoaWZwLCB0eHIsIE5VTEwpOwogI2Vsc2UKLQkJaWdiX3N0YXJ0X2xvY2tlZCh0eHIsIGlmcCk7 CisJCWlmICghSUZRX0RSVl9JU19FTVBUWSgmaWZwLT5pZl9zbmQpKQorCQkJaWdiX3N0YXJ0X2xv Y2tlZCh0eHIsIGlmcCk7CiAjZW5kaWYKIAkJSUdCX1RYX1VOTE9DSyh0eHIpOwogCQkvKiBEbyB3 ZSBuZWVkIGFub3RoZXI/ICovCi0JCWlmIChtb3JlIHx8IChpZnAtPmlmX2Rydl9mbGFncyAmIElG Rl9EUlZfT0FDVElWRSkpIHsKKwkJaWYgKG1vcmUpIHsKIAkJCXRhc2txdWV1ZV9lbnF1ZXVlKHF1 ZS0+dHEsICZxdWUtPnF1ZV90YXNrKTsKIAkJCXJldHVybjsKIAkJfQpAQCAtMTM1Niw4ICsxMzcx LDM1IEBACiB7CiAJc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIgPSBjb250ZXh0OwogCisJSUdCX0NP UkVfTE9DSyhhZGFwdGVyKTsKKwlpZ2JfaGFuZGxlX2xpbmtfbG9ja2VkKGFkYXB0ZXIpOworCUlH Ql9DT1JFX1VOTE9DSyhhZGFwdGVyKTsKK30KKworc3RhdGljIHZvaWQKK2lnYl9oYW5kbGVfbGlu a19sb2NrZWQoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIpCit7CisJc3RydWN0IHR4X3JpbmcJKnR4 ciA9IGFkYXB0ZXItPnR4X3JpbmdzOworCXN0cnVjdCBpZm5ldCAqaWZwID0gYWRhcHRlci0+aWZw OworCisJSUdCX0NPUkVfTE9DS19BU1NFUlQoYWRhcHRlcik7CiAJYWRhcHRlci0+aHcubWFjLmdl dF9saW5rX3N0YXR1cyA9IDE7CiAJaWdiX3VwZGF0ZV9saW5rX3N0YXR1cyhhZGFwdGVyKTsKKwlp ZiAoKGlmcC0+aWZfZHJ2X2ZsYWdzICYgSUZGX0RSVl9SVU5OSU5HKSAmJiBhZGFwdGVyLT5saW5r X2FjdGl2ZSkgeworCQlmb3IgKGludCBpID0gMDsgaSA8IGFkYXB0ZXItPm51bV9xdWV1ZXM7IGkr KywgdHhyKyspIHsKKwkJCUlHQl9UWF9MT0NLKHR4cik7CisjaWYgX19GcmVlQlNEX3ZlcnNpb24g Pj0gODAwMDAwCisJCQkvKiBQcm9jZXNzIHRoZSBzdGFjayBxdWV1ZSBvbmx5IGlmIG5vdCBkZXBs ZXRlZCAqLworCQkJaWYgKCgodHhyLT5xdWV1ZV9zdGF0dXMgJiBJR0JfUVVFVUVfREVQTEVURUQp ID09IDApICYmCisJCQkgICAgIWRyYnJfZW1wdHkoaWZwLCB0eHItPmJyKSkKKwkJCQlpZ2JfbXFf c3RhcnRfbG9ja2VkKGlmcCwgdHhyLCBOVUxMKTsKKyNlbHNlCisJCQlpZiAoIUlGUV9EUlZfSVNf RU1QVFkoJmlmcC0+aWZfc25kKSkKKwkJCQlpZ2Jfc3RhcnRfbG9ja2VkKHR4ciwgaWZwKTsKKyNl bmRpZgorCQkJSUdCX1RYX1VOTE9DSyh0eHIpOworCQl9CisJfQogfQogCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CkBAIC0xNDM3LDcgKzE0NzksNyBAQAogCQlyZWdfaWNyID0gRTEwMDBfUkVBRF9SRUcoJmFkYXB0 ZXItPmh3LCBFMTAwMF9JQ1IpOwogCQkvKiBMaW5rIHN0YXR1cyBjaGFuZ2UgKi8KIAkJaWYgKHJl Z19pY3IgJiAoRTEwMDBfSUNSX1JYU0VRIHwgRTEwMDBfSUNSX0xTQykpCi0JCQlpZ2JfaGFuZGxl X2xpbmsoYWRhcHRlciwgMCk7CisJCQlpZ2JfaGFuZGxlX2xpbmtfbG9ja2VkKGFkYXB0ZXIpOwog CiAJCWlmIChyZWdfaWNyICYgRTEwMDBfSUNSX1JYTykKIAkJCWFkYXB0ZXItPnJ4X292ZXJydW5z Kys7CkBAIC0xNDU0LDcgKzE0OTYsOCBAQAogCWlmICghZHJicl9lbXB0eShpZnAsIHR4ci0+YnIp KQogCQlpZ2JfbXFfc3RhcnRfbG9ja2VkKGlmcCwgdHhyLCBOVUxMKTsKICNlbHNlCi0JaWdiX3N0 YXJ0X2xvY2tlZCh0eHIsIGlmcCk7CisJaWYgKCFJRlFfRFJWX0lTX0VNUFRZKCZpZnAtPmlmX3Nu ZCkpCisJCWlnYl9zdGFydF9sb2NrZWQodHhyLCBpZnApOwogI2VuZGlmCiAJSUdCX1RYX1VOTE9D Syh0eHIpOwogCXJldHVybiBQT0xMX1JFVFVSTl9DT1VOVChyeF9kb25lKTsKQEAgLTE0NzEsMTYg KzE1MTQsMjYgQEAKIHsKIAlzdHJ1Y3QgaWdiX3F1ZXVlICpxdWUgPSBhcmc7CiAJc3RydWN0IGFk YXB0ZXIgKmFkYXB0ZXIgPSBxdWUtPmFkYXB0ZXI7CisJc3RydWN0IGlmbmV0ICAgKmlmcCA9IGFk YXB0ZXItPmlmcDsKIAlzdHJ1Y3QgdHhfcmluZyAqdHhyID0gcXVlLT50eHI7CiAJc3RydWN0IHJ4 X3JpbmcgKnJ4ciA9IHF1ZS0+cnhyOwogCXUzMgkJbmV3aXRyID0gMDsKLQlib29sCQltb3JlX3R4 LCBtb3JlX3J4OworCWJvb2wJCW1vcmVfcng7CiAKIAlFMTAwMF9XUklURV9SRUcoJmFkYXB0ZXIt Pmh3LCBFMTAwMF9FSU1DLCBxdWUtPmVpbXMpOwogCSsrcXVlLT5pcnFzOwogCiAJSUdCX1RYX0xP Q0sodHhyKTsKLQltb3JlX3R4ID0gaWdiX3R4ZW9mKHR4cik7CisJaWdiX3R4ZW9mKHR4cik7Cisj aWYgX19GcmVlQlNEX3ZlcnNpb24gPj0gODAwMDAwCisJLyogUHJvY2VzcyB0aGUgc3RhY2sgcXVl dWUgb25seSBpZiBub3QgZGVwbGV0ZWQgKi8KKwlpZiAoKCh0eHItPnF1ZXVlX3N0YXR1cyAmIElH Ql9RVUVVRV9ERVBMRVRFRCkgPT0gMCkgJiYKKwkgICAgIWRyYnJfZW1wdHkoaWZwLCB0eHItPmJy KSkKKwkJaWdiX21xX3N0YXJ0X2xvY2tlZChpZnAsIHR4ciwgTlVMTCk7CisjZWxzZQorCWlmICgh SUZRX0RSVl9JU19FTVBUWSgmaWZwLT5pZl9zbmQpKQorCQlpZ2Jfc3RhcnRfbG9ja2VkKHR4ciwg aWZwKTsKKyNlbmRpZgogCUlHQl9UWF9VTkxPQ0sodHhyKTsKIAogCW1vcmVfcnggPSBpZ2Jfcnhl b2YocXVlLCBhZGFwdGVyLT5yeF9wcm9jZXNzX2xpbWl0LCBOVUxMKTsKQEAgLTE1MzgsNyArMTU5 MSw3IEBACiAKIG5vX2NhbGM6CiAJLyogU2NoZWR1bGUgYSBjbGVhbiB0YXNrIGlmIG5lZWRlZCov Ci0JaWYgKG1vcmVfdHggfHwgbW9yZV9yeCkKKwlpZiAobW9yZV9yeCkKIAkJdGFza3F1ZXVlX2Vu cXVldWUocXVlLT50cSwgJnF1ZS0+cXVlX3Rhc2spOwogCWVsc2UKIAkJLyogUmVlbmFibGUgdGhp cyBpbnRlcnJ1cHQgKi8K --f46d04478b775eefcf04bbed54c9--