From owner-freebsd-net@FreeBSD.ORG Sat Apr 7 22:06:45 2012 Return-Path: Delivered-To: net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9E0E8106564A; Sat, 7 Apr 2012 22:06:45 +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 45D7D8FC12; Sat, 7 Apr 2012 22:06:45 +0000 (UTC) Received: by obbwc18 with SMTP id wc18so5854066obb.13 for ; Sat, 07 Apr 2012 15:06:39 -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=TDvb5evkzNhRO2VK20OwHI26A3j9LXj+Ix8swXrAJxw=; b=Woc7fLaoQHl7MaorkA91bjtBlaJTi7YYXhCHPbmsshYTUZuw0TAFOnuB8zm11HgvxU ylFMytJKqLPk//IUTHn33XErzatCK7lkZQPWFjS9/MeGGEueeThSDUvJQTBHfbFlu/S9 1DSAAVXU8rzUrQYKXUC77ppjbVxP2c06DbCcm8Jek0ztw2MjTl9Ahh5imXoBLA6esZcJ jpNgmCEo40SEIbOpBFn5uj1Dbqn4nIouiQd7ZmM+KR/8+48bd0VBwAtHibXoG895MvSk MkrETyDy9liuHl9P4vMyw1e9qSr/n02VxLSl0XMCXHU47c3P/JOyyF/JGcl3v5lWevZV YelQ== MIME-Version: 1.0 Received: by 10.60.14.226 with SMTP id s2mr3501254oec.29.1333836399212; Sat, 07 Apr 2012 15:06:39 -0700 (PDT) Received: by 10.182.89.33 with HTTP; Sat, 7 Apr 2012 15:06:38 -0700 (PDT) In-Reply-To: <20120407133715.GU2358@deviant.kiev.zoral.com.ua> References: <20120407133715.GU2358@deviant.kiev.zoral.com.ua> Date: Sat, 7 Apr 2012 15:06:38 -0700 Message-ID: From: Jason Wolfe To: Konstantin Belousov Content-Type: multipart/mixed; boundary=e89a8fb1f9c4c3774204bd1dfc0a Cc: jfv@freebsd.org, jhb@freebsd.org, net@freebsd.org Subject: Re: 82574L hangs (with r233708 e1000 driver). 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: Sat, 07 Apr 2012 22:06:45 -0000 --e89a8fb1f9c4c3774204bd1dfc0a Content-Type: text/plain; charset=ISO-8859-1 On Sat, Apr 7, 2012 at 6:37 AM, Konstantin Belousov wrote: > I bought Intel Atom motherboard DN2800MT, which has integrated if_em > LOM, reported by pciconf as > em0@pci0:1:0:0: class=0x020000 card=0x20128086 chip=0x10d38086 rev=0x00 hdr=0x00 > 82574L Gigabit Network Connection > It seems that any non-trivial network activity on the interface causes > reliable interface hang, which can be temporary cured by ifconfig down/up. > This happens both with outdated stable/9 sys/dev/e1000 and with driver > from HEAD merged into stable/9. I currently use the copy of dev/e1000 > at rev. r233708. Disabling MSI-X makes the hand to occur slightly less > often. > > I can reproduce the hang in approximately a minute by scp'ing large > file from other machine to /dev/null on the DN2800MT. This makes the > board completely unusable for me. > > The driver reports itself as > em0: port 0x2000-0x201f mem 0xc0400000-0xc041ffff,0xc0000000-0xc03fffff,0xc0420000-0xc0423fff irq 16 at device 0.0 on pci1 > em0: attempting to allocate 3 MSI-X vectors (5 supported) > msi: routing MSI-X IRQ 258 to local APIC 0 vector 60 > msi: routing MSI-X IRQ 259 to local APIC 0 vector 61 > msi: routing MSI-X IRQ 260 to local APIC 0 vector 62 > em0: using IRQs 258-260 for MSI-X > em0: Using MSIX interrupts with 3 vectors > em0: bpf attached > em0: Ethernet address: 00:22:4d:7a:47:f6 > em0: Link is up 1000 Mbps Full Duplex > > The board is connected to ProCurve switch, there is no link flaps. > > When hang occur, dmesg output of # sysctl dev.em.0.debug=1 > dev.em.0.debug: Interface is RUNNING and ACTIVE > em0: hw tdh = 357, hw tdt = 357 > em0: hw rdh = 323, hw rdt = 273 > em0: Tx Queue Status = 0 > em0: TX descriptors avail = 1024 > em0: Tx Descriptors avail failure = 0 > em0: RX discarded packets = 0 > em0: RX Next to Check = 274 > em0: RX Next to Refresh = 273 > > [..snip..] > Any help ? Konstantin, It doesn't appear to be the exact issue I was seeing, but here is a patch that did resolve issues with my 82574L buffers filling and requiring a down/up to recover. It was the result of the 'Intel 82574L interface wedging - em7.3.2/8.2-STABLE' if you'd like to peruse that. Jason --e89a8fb1f9c4c3774204bd1dfc0a Content-Type: application/octet-stream; name="if_em7.2.3_fix.diff" Content-Disposition: attachment; filename="if_em7.2.3_fix.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h0r7pw0x2 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 --e89a8fb1f9c4c3774204bd1dfc0a--