Date: Sun, 12 Jan 2014 06:10:01 GMT From: Alex Goncharov <alex_goncharov_usa@yahoo.com> To: freebsd-usb@FreeBSD.org Subject: Re: usb/185628: usbd_req_re_enumerate set address failed USB_ERR_STALLED for Seagate USB drives between r259425 and r260321 Message-ID: <201401120610.s0C6A1Fx064199@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR usb/185628; it has been noted by GNATS. From: Alex Goncharov <alex_goncharov_usa@yahoo.com> To: "freebsd-gnats-submit@FreeBSD.org" <freebsd-gnats-submit@FreeBSD.org>, Hans Petter Selasky <hps@bitfrost.no>, freebsd-usb@FreeBSD.org Cc: Subject: Re: usb/185628: usbd_req_re_enumerate set address failed USB_ERR_STALLED for Seagate USB drives between r259425 and r260321 Date: Sat, 11 Jan 2014 21:58:02 -0800 (PST) --2120775178-1643984294-1389506282=:33519 Content-Type: text/plain; charset=us-ascii ,-- On Fri, 1/10/14, Hans Petter Selasky <hps@bitfrost.no> wrote: ,-- On 01/10/14 12:49, Alex Goncharov wrote: >> Maybe; but think about the fact correlations: the fact of the two >> system's upgrade, two identical Seagate units, and other HDDs being >> non-stalled. > > If you are running EHCI, there has been no changes in the USB stack, Apparently, there have been; this is what causes the bogus error: ------------------------------------------------------------------------ r259454 | hselasky | 2013-12-16 03:51:58 -0500 (Mon, 16 Dec 2013) | 11 lines MFC r244503 and r246565: Make sure all USB drivers allocate buffer memory through the USB API and/or busdma. The following assumptions have been made: umass - buffers passed from CAM/SCSI layer are OK network - mbufs are OK. Some other nits while at it. ------------------------------------------------------------------------ I am attaching the code difference for the two relevant files ---------------------------------------- M sys/dev/usb/storage/ustorage_fs.c M sys/dev/usb/usb_msctest.c ---------------------------------------- in this change set, skipping the irrelevant 'sys/dev/usb/wlan' ones. Can this be fixed reasonably soon, please? (I miss my HDDs :) -- Alex --2120775178-1643984294-1389506282=:33519 Content-Type: text/x-patch; name="sys-dev-usb-2013-12-16-2013-12-17.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="sys-dev-usb-2013-12-16-2013-12-17.diff" SW5kZXg6IHN5cy9kZXYvdXNiL3N0b3JhZ2UvdXN0b3JhZ2VfZnMuYwo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvZGV2L3VzYi9zdG9yYWdlL3Vz dG9yYWdlX2ZzLmMJKHJldmlzaW9uIDI1OTQ0OSkKKysrIHN5cy9kZXYvdXNi L3N0b3JhZ2UvdXN0b3JhZ2VfZnMuYwkocmV2aXNpb24gMjU5NDk0KQpAQCAt NzQsNyArNzQsNyBAQAogLyogRGVmaW5lIHNvbWUgbGltaXRzICovCiAKICNp Zm5kZWYgVVNUT1JBR0VfRlNfQlVMS19TSVpFIAotI2RlZmluZQlVU1RPUkFH RV9GU19CVUxLX1NJWkUgKDFVTCA8PCAxNykJLyogYnl0ZXMgKi8KKyNkZWZp bmUJVVNUT1JBR0VfRlNfQlVMS19TSVpFCSgxVSA8PCAxNykJLyogYnl0ZXMg Ki8KICNlbmRpZgogCiAjaWZuZGVmCVVTVE9SQUdFX0ZTX01BWF9MVU4KQEAg LTg1LDggKzg1LDYgQEAKICNkZWZpbmUJVVNUT1JBR0VfUURBVEFfTUFYCTQw CS8qIGJ5dGVzICovCiAjZW5kaWYKIAotI2RlZmluZSBzY19jbWRfZGF0YSBz Y19jYncuQ0JXQ0RCCi0KIC8qCiAgKiBUaGUgU0NTSSBJRCBzdHJpbmcgbXVz dCBiZSBleGFjdGx5IDI4IGNoYXJhY3RlcnMgbG9uZwogICogZXhsdWRpbmcg dGhlIHRlcm1pbmF0aW5nIHplcm8uCkBAIC0xNzYsOCArMTc0LDkgQEAKIAog c3RydWN0IHVzdG9yYWdlX2ZzX3NvZnRjIHsKIAotCXVzdG9yYWdlX2ZzX2Ji Yl9jYndfdCBzY19jYnc7CS8qIENvbW1hbmQgV3JhcHBlciBCbG9jayAqLwot CXVzdG9yYWdlX2ZzX2JiYl9jc3dfdCBzY19jc3c7CS8qIENvbW1hbmQgU3Rh dHVzIEJsb2NrICovCisJdXN0b3JhZ2VfZnNfYmJiX2Nid190ICpzY19jYnc7 CS8qIENvbW1hbmQgV3JhcHBlciBCbG9jayAqLworCXVzdG9yYWdlX2ZzX2Ji Yl9jc3dfdCAqc2NfY3N3OwkvKiBDb21tYW5kIFN0YXR1cyBCbG9jayAqLwor CXZvaWQgKnNjX2RtYV9wdHI7CQkvKiBNYWluIGRhdGEgYnVmZmVyICovCiAK IAlzdHJ1Y3QgbXR4IHNjX210eDsKIApAQCAtMjc1LDcgKzI3NCw2IEBACiAJ CS5lbmRwb2ludCA9IFVFX0FERFJfQU5ZLAogCQkuZGlyZWN0aW9uID0gVUVf RElSX09VVCwKIAkJLmJ1ZnNpemUgPSBzaXplb2YodXN0b3JhZ2VfZnNfYmJi X2Nid190KSwKLQkJLmZsYWdzID0gey5leHRfYnVmZmVyID0gMSx9LAogCQku Y2FsbGJhY2sgPSAmdXN0b3JhZ2VfZnNfdF9iYmJfY29tbWFuZF9jYWxsYmFj aywKIAkJLnVzYl9tb2RlID0gVVNCX01PREVfREVWSUNFLAogCX0sCkBAIC0y OTUsNyArMjkzLDcgQEAKIAkJLmVuZHBvaW50ID0gVUVfQUREUl9BTlksCiAJ CS5kaXJlY3Rpb24gPSBVRV9ESVJfT1VULAogCQkuYnVmc2l6ZSA9IFVTVE9S QUdFX0ZTX0JVTEtfU0laRSwKLQkJLmZsYWdzID0gey5wcm94eV9idWZmZXIg PSAxLC5zaG9ydF94ZmVyX29rID0gMSwuZXh0X2J1ZmZlciA9IDF9LAorCQku ZmxhZ3MgPSB7LnByb3h5X2J1ZmZlciA9IDEsLnNob3J0X3hmZXJfb2sgPSAx fSwKIAkJLmNhbGxiYWNrID0gJnVzdG9yYWdlX2ZzX3RfYmJiX2RhdGFfcmVh ZF9jYWxsYmFjaywKIAkJLnVzYl9tb2RlID0gVVNCX01PREVfREVWSUNFLAog CX0sCkBAIC0zMTUsNyArMzEzLDcgQEAKIAkJLmVuZHBvaW50ID0gVUVfQURE Ul9BTlksCiAJCS5kaXJlY3Rpb24gPSBVRV9ESVJfSU4sCiAJCS5idWZzaXpl ID0gc2l6ZW9mKHVzdG9yYWdlX2ZzX2JiYl9jc3dfdCksCi0JCS5mbGFncyA9 IHsuc2hvcnRfeGZlcl9vayA9IDEsLmV4dF9idWZmZXIgPSAxLH0sCisJCS5m bGFncyA9IHsuc2hvcnRfeGZlcl9vayA9IDF9LAogCQkuY2FsbGJhY2sgPSAm dXN0b3JhZ2VfZnNfdF9iYmJfc3RhdHVzX2NhbGxiYWNrLAogCQkudXNiX21v ZGUgPSBVU0JfTU9ERV9ERVZJQ0UsCiAJfSwKQEAgLTQwOSw2ICs0MDcsMTQg QEAKIAkJICAgICJ0cmFuc2ZlcnMsICVzXG4iLCB1c2JkX2VycnN0cihlcnIp KTsKIAkJZ290byBkZXRhY2g7CiAJfQorCisJc2MtPnNjX2NidyA9IHVzYmRf eGZlcl9nZXRfZnJhbWVfYnVmZmVyKHNjLT5zY194ZmVyWworCSAgICBVU1RP UkFHRV9GU19UX0JCQl9DT01NQU5EXSwgMCk7CisJc2MtPnNjX2NzdyA9IHVz YmRfeGZlcl9nZXRfZnJhbWVfYnVmZmVyKHNjLT5zY194ZmVyWworCSAgICBV U1RPUkFHRV9GU19UX0JCQl9TVEFUVVNdLCAwKTsKKyAJc2MtPnNjX2RtYV9w dHIgPSB1c2JkX3hmZXJfZ2V0X2ZyYW1lX2J1ZmZlcihzYy0+c2NfeGZlclsK KwkgICAgVVNUT1JBR0VfRlNfVF9CQkJfREFUQV9SRUFEXSwgMCk7CisKIAkv KiBzdGFydCBNYXNzIFN0b3JhZ2UgU3RhdGUgTWFjaGluZSAqLwogCiAJbXR4 X2xvY2soJnNjLT5zY19tdHgpOwpAQCAtNTE4LDcgKzUyNCw3IEBACiAJc3dp dGNoIChVU0JfR0VUX1NUQVRFKHhmZXIpKSB7CiAJY2FzZSBVU0JfU1RfVFJB TlNGRVJSRUQ6CiAKLQkJdGFnID0gVUdFVERXKHNjLT5zY19jYncuZENCV1Np Z25hdHVyZSk7CisJCXRhZyA9IFVHRVREVyhzYy0+c2NfY2J3LT5kQ0JXU2ln bmF0dXJlKTsKIAogCQlpZiAodGFnICE9IENCV1NJR05BVFVSRSkgewogCQkJ LyogZG8gbm90aGluZyAqLwpAQCAtNTI1LDI5ICs1MzEsMjkgQEAKIAkJCURQ UklOVEYoImludmFsaWQgc2lnbmF0dXJlIDB4JTA4eFxuIiwgdGFnKTsKIAkJ CWJyZWFrOwogCQl9Ci0JCXRhZyA9IFVHRVREVyhzYy0+c2NfY2J3LmRDQldU YWcpOworCQl0YWcgPSBVR0VURFcoc2MtPnNjX2Nidy0+ZENCV1RhZyk7CiAK IAkJLyogZWNobyBiYWNrIHRhZyAqLwotCQlVU0VURFcoc2MtPnNjX2Nzdy5k Q1NXVGFnLCB0YWcpOworCQlVU0VURFcoc2MtPnNjX2Nzdy0+ZENTV1RhZywg dGFnKTsKIAogCQkvKiByZXNldCBzdGF0dXMgKi8KLQkJc2MtPnNjX2Nzdy5i Q1NXU3RhdHVzID0gMDsKKwkJc2MtPnNjX2Nzdy0+YkNTV1N0YXR1cyA9IDA7 CiAKIAkJLyogcmVzZXQgZGF0YSBvZmZzZXQsIGRhdGEgbGVuZ3RoIGFuZCBk YXRhIHJlbWFpbmRlciAqLwogCQlzYy0+c2NfdHJhbnNmZXIub2Zmc2V0ID0g MDsKIAkJc2MtPnNjX3RyYW5zZmVyLmRhdGFfcmVtID0KLQkJICAgIFVHRVRE VyhzYy0+c2NfY2J3LmRDQldEYXRhVHJhbnNmZXJMZW5ndGgpOworCQkgICAg VUdFVERXKHNjLT5zY19jYnctPmRDQldEYXRhVHJhbnNmZXJMZW5ndGgpOwog CiAJCS8qIHJlc2V0IGRhdGEgZmxhZ3MgKi8KIAkJc2MtPnNjX3RyYW5zZmVy LmRhdGFfc2hvcnQgPSAwOwogCiAJCS8qIGV4dHJhY3QgTFVOICovCi0JCXNj LT5zY190cmFuc2Zlci5sdW4gPSBzYy0+c2NfY2J3LmJDQldMVU47CisJCXNj LT5zY190cmFuc2Zlci5sdW4gPSBzYy0+c2NfY2J3LT5iQ0JXTFVOOwogCiAJ CWlmIChzYy0+c2NfdHJhbnNmZXIuZGF0YV9yZW0gPT0gMCkgewogCQkJc2Mt PnNjX3RyYW5zZmVyLmNid19kaXIgPSBESVJfTk9ORTsKIAkJfSBlbHNlIHsK LQkJCWlmIChzYy0+c2NfY2J3LmJDQldGbGFncyAmIENCV0ZMQUdTX0lOKSB7 CisJCQlpZiAoc2MtPnNjX2Nidy0+YkNCV0ZsYWdzICYgQ0JXRkxBR1NfSU4p IHsKIAkJCQlzYy0+c2NfdHJhbnNmZXIuY2J3X2RpciA9IERJUl9XUklURTsK IAkJCX0gZWxzZSB7CiAJCQkJc2MtPnNjX3RyYW5zZmVyLmNid19kaXIgPSBE SVJfUkVBRDsKQEAgLTU1NCw4ICs1NjAsOCBAQAogCQkJfQogCQl9CiAKLQkJ c2MtPnNjX3RyYW5zZmVyLmNtZF9sZW4gPSBzYy0+c2NfY2J3LmJDREJMZW5n dGg7Ci0JCWlmICgoc2MtPnNjX3RyYW5zZmVyLmNtZF9sZW4gPiBzaXplb2Yo c2MtPnNjX2Nidy5DQldDREIpKSB8fAorCQlzYy0+c2NfdHJhbnNmZXIuY21k X2xlbiA9IHNjLT5zY19jYnctPmJDREJMZW5ndGg7CisJCWlmICgoc2MtPnNj X3RyYW5zZmVyLmNtZF9sZW4gPiBzaXplb2Yoc2MtPnNjX2Nidy0+Q0JXQ0RC KSkgfHwKIAkJICAgIChzYy0+c2NfdHJhbnNmZXIuY21kX2xlbiA9PSAwKSkg ewogCQkJLyoganVzdCBoYWx0IC0gdGhpcyBpcyBpbnZhbGlkICovCiAJCQlE UFJJTlRGKCJpbnZhbGlkIGNvbW1hbmQgbGVuZ3RoICVkIGJ5dGVzXG4iLApA QCAtNTk3LDkgKzYwMyw2IEBACiAJCQl1c2JkX3hmZXJfc2V0X3N0YWxsKHhm ZXIpOwogCQkJRFBSSU5URigic3RhbGwgcGlwZVxuIik7CiAJCX0KLQotCQl1 c2JkX3hmZXJfc2V0X2ZyYW1lX2RhdGEoeGZlciwgMCwgJnNjLT5zY19jYncs Ci0JCSAgICBzaXplb2Yoc2MtPnNjX2NidykpOwogCQl1c2JkX3RyYW5zZmVy X3N1Ym1pdCh4ZmVyKTsKIAkJYnJlYWs7CiAKQEAgLTYxNiw5ICs2MTksOSBA QAogCQlnb3RvIHRyX3NldHVwOwogCX0KIAlpZiAoZXJyKSB7Ci0JCWlmIChz Yy0+c2NfY3N3LmJDU1dTdGF0dXMgPT0gMCkgeworCQlpZiAoc2MtPnNjX2Nz dy0+YkNTV1N0YXR1cyA9PSAwKSB7CiAJCQkvKiBzZXQgc29tZSBkZWZhdWx0 IGVycm9yIGNvZGUgKi8KLQkJCXNjLT5zY19jc3cuYkNTV1N0YXR1cyA9IENT V1NUQVRVU19GQUlMRUQ7CisJCQlzYy0+c2NfY3N3LT5iQ1NXU3RhdHVzID0g Q1NXU1RBVFVTX0ZBSUxFRDsKIAkJfQogCQlpZiAoc2MtPnNjX3RyYW5zZmVy LmNid19kaXIgPT0gRElSX1JFQUQpIHsKIAkJCS8qIGR1bXAgYWxsIGRhdGEg Ki8KQEAgLTY5OSw2ICs3MDIsOSBAQAogCiAJc3dpdGNoIChVU0JfR0VUX1NU QVRFKHhmZXIpKSB7CiAJY2FzZSBVU0JfU1RfVFJBTlNGRVJSRUQ6CisJCS8q IFhYWCBjb3B5IGRhdGEgZnJvbSBETUEgYnVmZmVyICovCisJCW1lbWNweShz Yy0+c2NfdHJhbnNmZXIuZGF0YV9wdHIsIHNjLT5zY19kbWFfcHRyLCBhY3Rs ZW4pOworCiAJCXNjLT5zY190cmFuc2Zlci5kYXRhX3JlbSAtPSBhY3RsZW47 CiAJCXNjLT5zY190cmFuc2Zlci5kYXRhX3B0ciArPSBhY3RsZW47CiAJCXNj LT5zY190cmFuc2Zlci5vZmZzZXQgKz0gYWN0bGVuOwpAQCAtNzIxLDggKzcy Nyw3IEBACiAJCQl1c2JkX3hmZXJfc2V0X3N0YWxsKHhmZXIpOwogCQl9CiAK LQkJdXNiZF94ZmVyX3NldF9mcmFtZV9kYXRhKHhmZXIsIDAsIHNjLT5zY190 cmFuc2Zlci5kYXRhX3B0ciwKLQkJICAgIG1heF9idWxrKTsKKwkJdXNiZF94 ZmVyX3NldF9mcmFtZV9kYXRhKHhmZXIsIDAsIHNjLT5zY19kbWFfcHRyLCBt YXhfYnVsayk7CiAJCXVzYmRfdHJhbnNmZXJfc3VibWl0KHhmZXIpOwogCQli cmVhazsKIApAQCAtNzc4LDggKzc4MywxMCBAQAogCQkJdXNiZF94ZmVyX3Nl dF9zdGFsbCh4ZmVyKTsKIAkJfQogCi0JCXVzYmRfeGZlcl9zZXRfZnJhbWVf ZGF0YSh4ZmVyLCAwLCBzYy0+c2NfdHJhbnNmZXIuZGF0YV9wdHIsCi0JCSAg ICBtYXhfYnVsayk7CisJCS8qIFhYWCBjb3B5IGRhdGEgdG8gRE1BIGJ1ZmZl ciAqLworCQltZW1jcHkoc2MtPnNjX2RtYV9wdHIsIHNjLT5zY190cmFuc2Zl ci5kYXRhX3B0ciwgbWF4X2J1bGspOworCisJCXVzYmRfeGZlcl9zZXRfZnJh bWVfZGF0YSh4ZmVyLCAwLCBzYy0+c2NfZG1hX3B0ciwgbWF4X2J1bGspOwog CQl1c2JkX3RyYW5zZmVyX3N1Ym1pdCh4ZmVyKTsKIAkJYnJlYWs7CiAKQEAg LTgxMywxNiArODIwLDEzIEBACiAKIAljYXNlIFVTQl9TVF9TRVRVUDoKIHRy X3NldHVwOgotCQlVU0VURFcoc2MtPnNjX2Nzdy5kQ1NXU2lnbmF0dXJlLCBD U1dTSUdOQVRVUkUpOwotCQlVU0VURFcoc2MtPnNjX2Nzdy5kQ1NXRGF0YVJl c2lkdWUsIHNjLT5zY190cmFuc2Zlci5kYXRhX3JlbSk7CisJCVVTRVREVyhz Yy0+c2NfY3N3LT5kQ1NXU2lnbmF0dXJlLCBDU1dTSUdOQVRVUkUpOworCQlV U0VURFcoc2MtPnNjX2Nzdy0+ZENTV0RhdGFSZXNpZHVlLCBzYy0+c2NfdHJh bnNmZXIuZGF0YV9yZW0pOwogCiAJCWlmIChzYy0+c2NfdHJhbnNmZXIuZGF0 YV9lcnJvcikgewogCQkJc2MtPnNjX3RyYW5zZmVyLmRhdGFfZXJyb3IgPSAw OwogCQkJdXNiZF94ZmVyX3NldF9zdGFsbCh4ZmVyKTsKIAkJfQotCi0JCXVz YmRfeGZlcl9zZXRfZnJhbWVfZGF0YSh4ZmVyLCAwLCAmc2MtPnNjX2NzdywK LQkJICAgIHNpemVvZihzYy0+c2NfY3N3KSk7CiAJCXVzYmRfdHJhbnNmZXJf c3VibWl0KHhmZXIpOwogCQlicmVhazsKIApAQCAtOTM0LDE3ICs5MzgsMTcg QEAKIAkvKgogCSAqIEdldCB0aGUgc3RhcnRpbmcgTG9naWNhbCBCbG9jayBB ZGRyZXNzCiAJICovCi0JbGJhID0gZ2V0X2JlMzIoJnNjLT5zY19jbWRfZGF0 YVsyXSk7CisJbGJhID0gZ2V0X2JlMzIoJnNjLT5zY19jYnctPkNCV0NEQlsy XSk7CiAKIAkvKgogCSAqIFdlIGFsbG93IERQTyAoRGlzYWJsZSBQYWdlIE91 dCA9IGRvbid0IHNhdmUgZGF0YSBpbiB0aGUgY2FjaGUpCiAJICogYnV0IHdl IGRvbid0IGltcGxlbWVudCBpdC4KIAkgKi8KLQlpZiAoKHNjLT5zY19jbWRf ZGF0YVsxXSAmIH4weDEwKSAhPSAwKSB7CisJaWYgKChzYy0+c2NfY2J3LT5D QldDREJbMV0gJiB+MHgxMCkgIT0gMCkgewogCQljdXJybHVuLT5zZW5zZV9k YXRhID0gU1NfSU5WQUxJRF9GSUVMRF9JTl9DREI7CiAJCXJldHVybiAoMSk7 CiAJfQotCXZsZW4gPSBnZXRfYmUxNigmc2MtPnNjX2NtZF9kYXRhWzddKTsK Kwl2bGVuID0gZ2V0X2JlMTYoJnNjLT5zY19jYnctPkNCV0NEQls3XSk7CiAJ aWYgKHZsZW4gPT0gMCkgewogCQlnb3RvIGRvbmU7CiAJfQpAQCAtMTA5Miw4 ICsxMDk2LDggQEAKIHsKIAl1aW50OF90ICpidWYgPSBzYy0+c2NfdHJhbnNm ZXIuZGF0YV9wdHI7CiAJc3RydWN0IHVzdG9yYWdlX2ZzX2x1biAqY3Vycmx1 biA9IHNjLT5zY190cmFuc2Zlci5jdXJybHVuOwotCXVpbnQzMl90IGxiYSA9 IGdldF9iZTMyKCZzYy0+c2NfY21kX2RhdGFbMl0pOwotCXVpbnQ4X3QgcG1p ID0gc2MtPnNjX2NtZF9kYXRhWzhdOworCXVpbnQzMl90IGxiYSA9IGdldF9i ZTMyKCZzYy0+c2NfY2J3LT5DQldDREJbMl0pOworCXVpbnQ4X3QgcG1pID0g c2MtPnNjX2Nidy0+Q0JXQ0RCWzhdOwogCiAJLyogQ2hlY2sgdGhlIFBNSSBh bmQgTEJBIGZpZWxkcyAqLwogCWlmICgocG1pID4gMSkgfHwgKChwbWkgPT0g MCkgJiYgKGxiYSAhPSAwKSkpIHsKQEAgLTExMjYsNyArMTEzMCw3IEBACiAJ dWludDhfdCAqYnVmMDsKIAl1aW50MTZfdCBsZW47CiAJdWludDE2X3QgbGlt aXQ7Ci0JdWludDhfdCBtc2NtbmQgPSBzYy0+c2NfY21kX2RhdGFbMF07CisJ dWludDhfdCBtc2NtbmQgPSBzYy0+c2NfY2J3LT5DQldDREJbMF07CiAJdWlu dDhfdCBwYzsKIAl1aW50OF90IHBhZ2VfY29kZTsKIAl1aW50OF90IGNoYW5n ZWFibGVfdmFsdWVzOwpAQCAtMTEzNCwxMyArMTEzOCwxMyBAQAogCiAJYnVm MCA9IGJ1ZjsKIAotCWlmICgoc2MtPnNjX2NtZF9kYXRhWzFdICYgfjB4MDgp ICE9IDApIHsKKwlpZiAoKHNjLT5zY19jYnctPkNCV0NEQlsxXSAmIH4weDA4 KSAhPSAwKSB7CiAJCS8qIE1hc2sgYXdheSBEQkQgKi8KIAkJY3Vycmx1bi0+ c2Vuc2VfZGF0YSA9IFNTX0lOVkFMSURfRklFTERfSU5fQ0RCOwogCQlyZXR1 cm4gKDEpOwogCX0KLQlwYyA9IHNjLT5zY19jbWRfZGF0YVsyXSA+PiA2Owot CXBhZ2VfY29kZSA9IHNjLT5zY19jbWRfZGF0YVsyXSAmIDB4M2Y7CisJcGMg PSBzYy0+c2NfY2J3LT5DQldDREJbMl0gPj4gNjsKKwlwYWdlX2NvZGUgPSBz Yy0+c2NfY2J3LT5DQldDREJbMl0gJiAweDNmOwogCWlmIChwYyA9PSAzKSB7 CiAJCWN1cnJsdW4tPnNlbnNlX2RhdGEgPSBTU19TQVZJTkdfUEFSQU1FVEVS U19OT1RfU1VQUE9SVEVEOwogCQlyZXR1cm4gKDEpOwpAQCAtMTIzNyw5ICsx MjQxLDkgQEAKIAkJY3Vycmx1bi0+c2Vuc2VfZGF0YSA9IFNTX0lOVkFMSURf Q09NTUFORDsKIAkJcmV0dXJuICgxKTsKIAl9Ci0JaW1tZWQgPSBzYy0+c2Nf Y21kX2RhdGFbMV0gJiAweDAxOwotCWxvZWogPSBzYy0+c2NfY21kX2RhdGFb NF0gJiAweDAyOwotCXN0YXJ0ID0gc2MtPnNjX2NtZF9kYXRhWzRdICYgMHgw MTsKKwlpbW1lZCA9IHNjLT5zY19jYnctPkNCV0NEQlsxXSAmIDB4MDE7CisJ bG9laiA9IHNjLT5zY19jYnctPkNCV0NEQls0XSAmIDB4MDI7CisJc3RhcnQg PSBzYy0+c2NfY2J3LT5DQldDREJbNF0gJiAweDAxOwogCiAJaWYgKGltbWVk IHx8IGxvZWogfHwgc3RhcnQpIHsKIAkJLyogY29tcGlsZSBmaXggKi8KQEAg LTEyNjQsOCArMTI2OCw4IEBACiAJCWN1cnJsdW4tPnNlbnNlX2RhdGEgPSBT U19JTlZBTElEX0NPTU1BTkQ7CiAJCXJldHVybiAoMSk7CiAJfQotCXByZXZl bnQgPSBzYy0+c2NfY21kX2RhdGFbNF0gJiAweDAxOwotCWlmICgoc2MtPnNj X2NtZF9kYXRhWzRdICYgfjB4MDEpICE9IDApIHsKKwlwcmV2ZW50ID0gc2Mt PnNjX2Nidy0+Q0JXQ0RCWzRdICYgMHgwMTsKKwlpZiAoKHNjLT5zY19jYnct PkNCV0NEQls0XSAmIH4weDAxKSAhPSAwKSB7CiAJCS8qIE1hc2sgYXdheSBQ cmV2ZW50ICovCiAJCWN1cnJsdW4tPnNlbnNlX2RhdGEgPSBTU19JTlZBTElE X0ZJRUxEX0lOX0NEQjsKIAkJcmV0dXJuICgxKTsKQEAgLTEzNjksMTEgKzEz NzMsMTEgQEAKIAkgKiBHZXQgdGhlIHN0YXJ0aW5nIExvZ2ljYWwgQmxvY2sg QWRkcmVzcyBhbmQgY2hlY2sgdGhhdCBpdCdzIG5vdAogCSAqIHRvbyBiaWcK IAkgKi8KLQlpZiAoc2MtPnNjX2NtZF9kYXRhWzBdID09IFNDX1JFQURfNikg ewotCQlsYmEgPSAoKCh1aW50MzJfdClzYy0+c2NfY21kX2RhdGFbMV0pIDw8 IDE2KSB8Ci0JCSAgICBnZXRfYmUxNigmc2MtPnNjX2NtZF9kYXRhWzJdKTsK KwlpZiAoc2MtPnNjX2Nidy0+Q0JXQ0RCWzBdID09IFNDX1JFQURfNikgewor CQlsYmEgPSAoKCh1aW50MzJfdClzYy0+c2NfY2J3LT5DQldDREJbMV0pIDw8 IDE2KSB8CisJCSAgICBnZXRfYmUxNigmc2MtPnNjX2Nidy0+Q0JXQ0RCWzJd KTsKIAl9IGVsc2UgewotCQlsYmEgPSBnZXRfYmUzMigmc2MtPnNjX2NtZF9k YXRhWzJdKTsKKwkJbGJhID0gZ2V0X2JlMzIoJnNjLT5zY19jYnctPkNCV0NE QlsyXSk7CiAKIAkJLyoKIAkJICogV2UgYWxsb3cgRFBPIChEaXNhYmxlIFBh Z2UgT3V0ID0gZG9uJ3Qgc2F2ZSBkYXRhIGluIHRoZQpAQCAtMTM4MCw3ICsx Mzg0LDcgQEAKIAkJICogY2FjaGUpIGFuZCBGVUEgKEZvcmNlIFVuaXQgQWNj ZXNzID0gZG9uJ3QgcmVhZCBmcm9tIHRoZQogCQkgKiBjYWNoZSksIGJ1dCB3 ZSBkb24ndCBpbXBsZW1lbnQgdGhlbS4KIAkJICovCi0JCWlmICgoc2MtPnNj X2NtZF9kYXRhWzFdICYgfjB4MTgpICE9IDApIHsKKwkJaWYgKChzYy0+c2Nf Y2J3LT5DQldDREJbMV0gJiB+MHgxOCkgIT0gMCkgewogCQkJY3Vycmx1bi0+ c2Vuc2VfZGF0YSA9IFNTX0lOVkFMSURfRklFTERfSU5fQ0RCOwogCQkJcmV0 dXJuICgxKTsKIAkJfQpAQCAtMTQyNywxMSArMTQzMSwxMSBAQAogCSAqIEdl dCB0aGUgc3RhcnRpbmcgTG9naWNhbCBCbG9jayBBZGRyZXNzIGFuZCBjaGVj ayB0aGF0IGl0J3Mgbm90CiAJICogdG9vIGJpZy4KIAkgKi8KLQlpZiAoc2Mt PnNjX2NtZF9kYXRhWzBdID09IFNDX1dSSVRFXzYpCi0JCWxiYSA9ICgoKHVp bnQzMl90KXNjLT5zY19jbWRfZGF0YVsxXSkgPDwgMTYpIHwKLQkJICAgIGdl dF9iZTE2KCZzYy0+c2NfY21kX2RhdGFbMl0pOworCWlmIChzYy0+c2NfY2J3 LT5DQldDREJbMF0gPT0gU0NfV1JJVEVfNikKKwkJbGJhID0gKCgodWludDMy X3Qpc2MtPnNjX2Nidy0+Q0JXQ0RCWzFdKSA8PCAxNikgfAorCQkgICAgZ2V0 X2JlMTYoJnNjLT5zY19jYnctPkNCV0NEQlsyXSk7CiAJZWxzZSB7Ci0JCWxi YSA9IGdldF9iZTMyKCZzYy0+c2NfY21kX2RhdGFbMl0pOworCQlsYmEgPSBn ZXRfYmUzMigmc2MtPnNjX2Nidy0+Q0JXQ0RCWzJdKTsKIAogCQkvKgogCQkg KiBXZSBhbGxvdyBEUE8gKERpc2FibGUgUGFnZSBPdXQgPSBkb24ndCBzYXZl IGRhdGEgaW4gdGhlCkBAIC0xNDM5LDExICsxNDQzLDExIEBACiAJCSAqIG1l ZGl1bSkuICBXZSBkb24ndCBpbXBsZW1lbnQgRFBPOyB3ZSBpbXBsZW1lbnQg RlVBIGJ5CiAJCSAqIHBlcmZvcm1pbmcgc3luY2hyb25vdXMgb3V0cHV0Lgog CQkgKi8KLQkJaWYgKChzYy0+c2NfY21kX2RhdGFbMV0gJiB+MHgxOCkgIT0g MCkgeworCQlpZiAoKHNjLT5zY19jYnctPkNCV0NEQlsxXSAmIH4weDE4KSAh PSAwKSB7CiAJCQljdXJybHVuLT5zZW5zZV9kYXRhID0gU1NfSU5WQUxJRF9G SUVMRF9JTl9DREI7CiAJCQlyZXR1cm4gKDEpOwogCQl9Ci0JCWlmIChzYy0+ c2NfY21kX2RhdGFbMV0gJiAweDA4KSB7CisJCWlmIChzYy0+c2NfY2J3LT5D QldDREJbMV0gJiAweDA4KSB7CiAJCQkvKiBGVUEgKi8KIAkJCS8qIFhYWCBz ZXQgU1lOQyBmbGFnIGhlcmUgKi8KIAkJfQpAQCAtMTQ4Myw3ICsxNDg3LDcg QEAKIAkJCSAqIHRoZXJlIG11c3QgYmUgc29tZXRoaW5nIHdyb25nIGFib3V0 IHRoaXMgU0NTSQogCQkJICogY29tbWFuZAogCQkJICovCi0JCQlzYy0+c2Nf Y3N3LmJDU1dTdGF0dXMgPSBDU1dTVEFUVVNfUEhBU0U7CisJCQlzYy0+c2Nf Y3N3LT5iQ1NXU3RhdHVzID0gQ1NXU1RBVFVTX1BIQVNFOwogCQkJcmV0dXJu ICgxKTsKIAkJfQogCQkvKiBjb21wdXRlIHRoZSBtaW5pbXVtIGxlbmd0aCAq LwpAQCAtMTUxOSw3ICsxNTIzLDcgQEAKICAgICB1aW50MTZfdCBtYXNrLCB1 aW50OF90IG5lZWRzX21lZGl1bSkKIHsKIAlzdHJ1Y3QgdXN0b3JhZ2VfZnNf bHVuICpjdXJybHVuOwotCXVpbnQ4X3QgbHVuID0gKHNjLT5zY19jbWRfZGF0 YVsxXSA+PiA1KTsKKwl1aW50OF90IGx1biA9IChzYy0+c2NfY2J3LT5DQldD REJbMV0gPj4gNSk7CiAJdWludDhfdCBpOwogCiAJLyogVmVyaWZ5IHRoZSBs ZW5ndGggb2YgdGhlIGNvbW1hbmQgaXRzZWxmICovCkBAIC0xNTI2LDExICsx NTMwLDExIEBACiAJaWYgKG1pbl9jbWRfc2l6ZSA+IHNjLT5zY190cmFuc2Zl ci5jbWRfbGVuKSB7CiAJCURQUklOVEYoIiV1ID4gJXVcbiIsCiAJCSAgICBt aW5fY21kX3NpemUsIHNjLT5zY190cmFuc2Zlci5jbWRfbGVuKTsKLQkJc2Mt PnNjX2Nzdy5iQ1NXU3RhdHVzID0gQ1NXU1RBVFVTX1BIQVNFOworCQlzYy0+ c2NfY3N3LT5iQ1NXU3RhdHVzID0gQ1NXU1RBVFVTX1BIQVNFOwogCQlyZXR1 cm4gKDEpOwogCX0KIAkvKiBNYXNrIGF3YXkgdGhlIExVTiAqLwotCXNjLT5z Y19jbWRfZGF0YVsxXSAmPSAweDFmOworCXNjLT5zY19jYnctPkNCV0NEQlsx XSAmPSAweDFmOwogCiAJLyogQ2hlY2sgaWYgTFVOIGlzIGNvcnJlY3QgKi8K IAlpZiAobHVuICE9IHNjLT5zY190cmFuc2Zlci5sdW4pIHsKQEAgLTE1NDAs NyArMTU0NCw3IEBACiAJaWYgKHNjLT5zY190cmFuc2Zlci5sdW4gPD0gc2Mt PnNjX2xhc3RfbHVuKSB7CiAJCXNjLT5zY190cmFuc2Zlci5jdXJybHVuID0g Y3Vycmx1biA9CiAJCSAgICBzYy0+c2NfbHVuICsgc2MtPnNjX3RyYW5zZmVy Lmx1bjsKLQkJaWYgKHNjLT5zY19jbWRfZGF0YVswXSAhPSBTQ19SRVFVRVNU X1NFTlNFKSB7CisJCWlmIChzYy0+c2NfY2J3LT5DQldDREJbMF0gIT0gU0Nf UkVRVUVTVF9TRU5TRSkgewogCQkJY3Vycmx1bi0+c2Vuc2VfZGF0YSA9IFNT X05PX1NFTlNFOwogCQkJY3Vycmx1bi0+c2Vuc2VfZGF0YV9pbmZvID0gMDsK IAkJCWN1cnJsdW4tPmluZm9fdmFsaWQgPSAwOwpAQCAtMTU1MSw4ICsxNTU1 LDggQEAKIAkJICogZWxzZSBtdXN0IGZhaWwhCiAJCSAqLwogCQlpZiAoKGN1 cnJsdW4tPnVuaXRfYXR0ZW50aW9uX2RhdGEgIT0gU1NfTk9fU0VOU0UpICYm Ci0JCSAgICAoc2MtPnNjX2NtZF9kYXRhWzBdICE9IFNDX0lOUVVJUlkpICYm Ci0JCSAgICAoc2MtPnNjX2NtZF9kYXRhWzBdICE9IFNDX1JFUVVFU1RfU0VO U0UpKSB7CisJCSAgICAoc2MtPnNjX2Nidy0+Q0JXQ0RCWzBdICE9IFNDX0lO UVVJUlkpICYmCisJCSAgICAoc2MtPnNjX2Nidy0+Q0JXQ0RCWzBdICE9IFND X1JFUVVFU1RfU0VOU0UpKSB7CiAJCQljdXJybHVuLT5zZW5zZV9kYXRhID0g Y3Vycmx1bi0+dW5pdF9hdHRlbnRpb25fZGF0YTsKIAkJCWN1cnJsdW4tPnVu aXRfYXR0ZW50aW9uX2RhdGEgPSBTU19OT19TRU5TRTsKIAkJCXJldHVybiAo MSk7CkBAIC0xNTY0LDggKzE1NjgsOCBAQAogCQkgKiBJTlFVSVJZIGFuZCBS RVFVRVNUIFNFTlNFIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IGFsbG93ZWQK IAkJICogdG8gdXNlIHVuc3VwcG9ydGVkIExVTnM7IGFsbCBvdGhlcnMgbWF5 IG5vdC4KIAkJICovCi0JCWlmICgoc2MtPnNjX2NtZF9kYXRhWzBdICE9IFND X0lOUVVJUlkpICYmCi0JCSAgICAoc2MtPnNjX2NtZF9kYXRhWzBdICE9IFND X1JFUVVFU1RfU0VOU0UpKSB7CisJCWlmICgoc2MtPnNjX2Nidy0+Q0JXQ0RC WzBdICE9IFNDX0lOUVVJUlkpICYmCisJCSAgICAoc2MtPnNjX2Nidy0+Q0JX Q0RCWzBdICE9IFNDX1JFUVVFU1RfU0VOU0UpKSB7CiAJCQlyZXR1cm4gKDEp OwogCQl9CiAJfQpAQCAtMTU3NSw3ICsxNTc5LDcgQEAKIAkgKiBub24temVy by4KIAkgKi8KIAlmb3IgKGkgPSAwOyBpICE9IG1pbl9jbWRfc2l6ZTsgaSsr KSB7Ci0JCWlmIChzYy0+c2NfY21kX2RhdGFbaV0gJiYgIShtYXNrICYgKDFV TCA8PCBpKSkpIHsKKwkJaWYgKHNjLT5zY19jYnctPkNCV0NEQltpXSAmJiAh KG1hc2sgJiAoMVVMIDw8IGkpKSkgewogCQkJaWYgKGN1cnJsdW4pIHsKIAkJ CQljdXJybHVuLT5zZW5zZV9kYXRhID0gU1NfSU5WQUxJRF9GSUVMRF9JTl9D REI7CiAJCQl9CkBAIC0xNjEzLDEyICsxNjE3LDEyIEBACiAJc2MtPnNjX3Ry YW5zZmVyLmRhdGFfcHRyID0gc2MtPnNjX3FkYXRhOwogCiAJRFBSSU5URigi Y21kX2RhdGFbMF09MHglMDJ4LCBkYXRhX3JlbT0weCUwOHhcbiIsCi0JICAg IHNjLT5zY19jbWRfZGF0YVswXSwgc2MtPnNjX3RyYW5zZmVyLmRhdGFfcmVt KTsKKwkgICAgc2MtPnNjX2Nidy0+Q0JXQ0RCWzBdLCBzYy0+c2NfdHJhbnNm ZXIuZGF0YV9yZW0pOwogCi0Jc3dpdGNoIChzYy0+c2NfY21kX2RhdGFbMF0p IHsKKwlzd2l0Y2ggKHNjLT5zY19jYnctPkNCV0NEQlswXSkgewogCWNhc2Ug U0NfSU5RVUlSWToKIAkJc2MtPnNjX3RyYW5zZmVyLmNtZF9kaXIgPSBESVJf V1JJVEU7Ci0JCWVycm9yID0gdXN0b3JhZ2VfZnNfbWluX2xlbihzYywgc2Mt PnNjX2NtZF9kYXRhWzRdLCAtMVUpOworCQllcnJvciA9IHVzdG9yYWdlX2Zz X21pbl9sZW4oc2MsIHNjLT5zY19jYnctPkNCV0NEQls0XSwgLTFVKTsKIAkJ aWYgKGVycm9yKSB7CiAJCQlicmVhazsKIAkJfQpAQCAtMTYzMyw3ICsxNjM3 LDcgQEAKIAogCWNhc2UgU0NfTU9ERV9TRUxFQ1RfNjoKIAkJc2MtPnNjX3Ry YW5zZmVyLmNtZF9kaXIgPSBESVJfUkVBRDsKLQkJZXJyb3IgPSB1c3RvcmFn ZV9mc19taW5fbGVuKHNjLCBzYy0+c2NfY21kX2RhdGFbNF0sIC0xVSk7CisJ CWVycm9yID0gdXN0b3JhZ2VfZnNfbWluX2xlbihzYywgc2MtPnNjX2Nidy0+ Q0JXQ0RCWzRdLCAtMVUpOwogCQlpZiAoZXJyb3IpIHsKIAkJCWJyZWFrOwog CQl9CkBAIC0xNjQ5LDcgKzE2NTMsNyBAQAogCWNhc2UgU0NfTU9ERV9TRUxF Q1RfMTA6CiAJCXNjLT5zY190cmFuc2Zlci5jbWRfZGlyID0gRElSX1JFQUQ7 CiAJCWVycm9yID0gdXN0b3JhZ2VfZnNfbWluX2xlbihzYywKLQkJICAgIGdl dF9iZTE2KCZzYy0+c2NfY21kX2RhdGFbN10pLCAtMVUpOworCQkgICAgZ2V0 X2JlMTYoJnNjLT5zY19jYnctPkNCV0NEQls3XSksIC0xVSk7CiAJCWlmIChl cnJvcikgewogCQkJYnJlYWs7CiAJCX0KQEAgLTE2NjQsNyArMTY2OCw3IEBA CiAKIAljYXNlIFNDX01PREVfU0VOU0VfNjoKIAkJc2MtPnNjX3RyYW5zZmVy LmNtZF9kaXIgPSBESVJfV1JJVEU7Ci0JCWVycm9yID0gdXN0b3JhZ2VfZnNf bWluX2xlbihzYywgc2MtPnNjX2NtZF9kYXRhWzRdLCAtMVUpOworCQllcnJv ciA9IHVzdG9yYWdlX2ZzX21pbl9sZW4oc2MsIHNjLT5zY19jYnctPkNCV0NE Qls0XSwgLTFVKTsKIAkJaWYgKGVycm9yKSB7CiAJCQlicmVhazsKIAkJfQpA QCAtMTY4MCw3ICsxNjg0LDcgQEAKIAljYXNlIFNDX01PREVfU0VOU0VfMTA6 CiAJCXNjLT5zY190cmFuc2Zlci5jbWRfZGlyID0gRElSX1dSSVRFOwogCQll cnJvciA9IHVzdG9yYWdlX2ZzX21pbl9sZW4oc2MsCi0JCSAgICBnZXRfYmUx Nigmc2MtPnNjX2NtZF9kYXRhWzddKSwgLTFVKTsKKwkJICAgIGdldF9iZTE2 KCZzYy0+c2NfY2J3LT5DQldDREJbN10pLCAtMVUpOwogCQlpZiAoZXJyb3Ip IHsKIAkJCWJyZWFrOwogCQl9CkBAIC0xNzA4LDcgKzE3MTIsNyBAQAogCQli cmVhazsKIAogCWNhc2UgU0NfUkVBRF82OgotCQlpID0gc2MtPnNjX2NtZF9k YXRhWzRdOworCQlpID0gc2MtPnNjX2Nidy0+Q0JXQ0RCWzRdOwogCQlzYy0+ c2NfdHJhbnNmZXIuY21kX2RpciA9IERJUl9XUklURTsKIAkJdGVtcCA9ICgo aSA9PSAwKSA/IDI1NlVMIDogaSk7CiAJCWVycm9yID0gdXN0b3JhZ2VfZnNf bWluX2xlbihzYywgdGVtcCA8PCA5LCBtYXNrOSk7CkBAIC0xNzI2LDcgKzE3 MzAsNyBAQAogCiAJY2FzZSBTQ19SRUFEXzEwOgogCQlzYy0+c2NfdHJhbnNm ZXIuY21kX2RpciA9IERJUl9XUklURTsKLQkJdGVtcCA9IGdldF9iZTE2KCZz Yy0+c2NfY21kX2RhdGFbN10pOworCQl0ZW1wID0gZ2V0X2JlMTYoJnNjLT5z Y19jYnctPkNCV0NEQls3XSk7CiAJCWVycm9yID0gdXN0b3JhZ2VfZnNfbWlu X2xlbihzYywgdGVtcCA8PCA5LCBtYXNrOSk7CiAJCWlmIChlcnJvcikgewog CQkJYnJlYWs7CkBAIC0xNzQyLDEwICsxNzQ2LDEwIEBACiAKIAljYXNlIFND X1JFQURfMTI6CiAJCXNjLT5zY190cmFuc2Zlci5jbWRfZGlyID0gRElSX1dS SVRFOwotCQl0ZW1wID0gZ2V0X2JlMzIoJnNjLT5zY19jbWRfZGF0YVs2XSk7 CisJCXRlbXAgPSBnZXRfYmUzMigmc2MtPnNjX2Nidy0+Q0JXQ0RCWzZdKTsK IAkJaWYgKHRlbXAgPj0gKDFVTCA8PCAoMzIgLSA5KSkpIHsKIAkJCS8qIG51 bWVyaWNhbCBvdmVyZmxvdyAqLwotCQkJc2MtPnNjX2Nzdy5iQ1NXU3RhdHVz ID0gQ1NXU1RBVFVTX0ZBSUxFRDsKKwkJCXNjLT5zY19jc3ctPmJDU1dTdGF0 dXMgPSBDU1dTVEFUVVNfRkFJTEVEOwogCQkJZXJyb3IgPSAxOwogCQkJYnJl YWs7CiAJCX0KQEAgLTE3NzYsNyArMTc4MCw3IEBACiAJY2FzZSBTQ19SRUFE X0ZPUk1BVF9DQVBBQ0lUSUVTOgogCQlzYy0+c2NfdHJhbnNmZXIuY21kX2Rp ciA9IERJUl9XUklURTsKIAkJZXJyb3IgPSB1c3RvcmFnZV9mc19taW5fbGVu KHNjLAotCQkgICAgZ2V0X2JlMTYoJnNjLT5zY19jbWRfZGF0YVs3XSksIC0x VSk7CisJCSAgICBnZXRfYmUxNigmc2MtPnNjX2Nidy0+Q0JXQ0RCWzddKSwg LTFVKTsKIAkJaWYgKGVycm9yKSB7CiAJCQlicmVhazsKIAkJfQpAQCAtMTc5 MSw3ICsxNzk1LDcgQEAKIAogCWNhc2UgU0NfUkVRVUVTVF9TRU5TRToKIAkJ c2MtPnNjX3RyYW5zZmVyLmNtZF9kaXIgPSBESVJfV1JJVEU7Ci0JCWVycm9y ID0gdXN0b3JhZ2VfZnNfbWluX2xlbihzYywgc2MtPnNjX2NtZF9kYXRhWzRd LCAtMVUpOworCQllcnJvciA9IHVzdG9yYWdlX2ZzX21pbl9sZW4oc2MsIHNj LT5zY19jYnctPkNCV0NEQls0XSwgLTFVKTsKIAkJaWYgKGVycm9yKSB7CiAJ CQlicmVhazsKIAkJfQpAQCAtMTg2MCw3ICsxODY0LDcgQEAKIAkJYnJlYWs7 CiAKIAljYXNlIFNDX1dSSVRFXzY6Ci0JCWkgPSBzYy0+c2NfY21kX2RhdGFb NF07CisJCWkgPSBzYy0+c2NfY2J3LT5DQldDREJbNF07CiAJCXNjLT5zY190 cmFuc2Zlci5jbWRfZGlyID0gRElSX1JFQUQ7CiAJCXRlbXAgPSAoKGkgPT0g MCkgPyAyNTZVTCA6IGkpOwogCQllcnJvciA9IHVzdG9yYWdlX2ZzX21pbl9s ZW4oc2MsIHRlbXAgPDwgOSwgbWFzazkpOwpAQCAtMTg3OCw3ICsxODgyLDcg QEAKIAogCWNhc2UgU0NfV1JJVEVfMTA6CiAJCXNjLT5zY190cmFuc2Zlci5j bWRfZGlyID0gRElSX1JFQUQ7Ci0JCXRlbXAgPSBnZXRfYmUxNigmc2MtPnNj X2NtZF9kYXRhWzddKTsKKwkJdGVtcCA9IGdldF9iZTE2KCZzYy0+c2NfY2J3 LT5DQldDREJbN10pOwogCQllcnJvciA9IHVzdG9yYWdlX2ZzX21pbl9sZW4o c2MsIHRlbXAgPDwgOSwgbWFzazkpOwogCQlpZiAoZXJyb3IpIHsKIAkJCWJy ZWFrOwpAQCAtMTg5NCwxMCArMTg5OCwxMCBAQAogCiAJY2FzZSBTQ19XUklU RV8xMjoKIAkJc2MtPnNjX3RyYW5zZmVyLmNtZF9kaXIgPSBESVJfUkVBRDsK LQkJdGVtcCA9IGdldF9iZTMyKCZzYy0+c2NfY21kX2RhdGFbNl0pOworCQl0 ZW1wID0gZ2V0X2JlMzIoJnNjLT5zY19jYnctPkNCV0NEQls2XSk7CiAJCWlm ICh0ZW1wID4gKG1hc2s5ID4+IDkpKSB7CiAJCQkvKiBudW1lcmljYWwgb3Zl cmZsb3cgKi8KLQkJCXNjLT5zY19jc3cuYkNTV1N0YXR1cyA9IENTV1NUQVRV U19GQUlMRUQ7CisJCQlzYy0+c2NfY3N3LT5iQ1NXU3RhdHVzID0gQ1NXU1RB VFVTX0ZBSUxFRDsKIAkJCWVycm9yID0gMTsKIAkJCWJyZWFrOwogCQl9Cklu ZGV4OiBzeXMvZGV2L3VzYi91c2JfbXNjdGVzdC5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIHN5cy9kZXYvdXNiL3VzYl9tc2N0ZXN0LmMJKHJldmlz aW9uIDI1OTQ0OSkKKysrIHN5cy9kZXYvdXNiL3VzYl9tc2N0ZXN0LmMJKHJl dmlzaW9uIDI1OTQ5NCkKQEAgLTEzOSw4ICsxMzksOCBAQAogc3RydWN0IGJi Yl90cmFuc2ZlciB7CiAJc3RydWN0IG10eCBtdHg7CiAJc3RydWN0IGN2IGN2 OwotCXN0cnVjdCBiYmJfY2J3IGNidzsKLQlzdHJ1Y3QgYmJiX2NzdyBjc3c7 CisJc3RydWN0IGJiYl9jYncgKmNidzsKKwlzdHJ1Y3QgYmJiX2NzdyAqY3N3 OwogCiAJc3RydWN0IHVzYl94ZmVyICp4ZmVyW1NUX01BWF07CiAKQEAgLTE1 OCw3ICsxNTgsNyBAQAogCXVpbnQ4X3QJc3RhdHVzX3RyeTsKIAlpbnQJZXJy b3I7CiAKLQl1aW50OF90CWJ1ZmZlcltTQ1NJX01BWF9MRU5dIF9fYWxpZ25l ZCg0KTsKKwl1aW50OF90CSpidWZmZXI7CiB9OwogCiBzdGF0aWMgdXNiX2Nh bGxiYWNrX3QgYmJiX2NvbW1hbmRfY2FsbGJhY2s7CkBAIC0xODQsNyArMTg0 LDYgQEAKIAkJLmVuZHBvaW50ID0gVUVfQUREUl9BTlksCiAJCS5kaXJlY3Rp b24gPSBVRV9ESVJfT1VULAogCQkuYnVmc2l6ZSA9IHNpemVvZihzdHJ1Y3Qg YmJiX2NidyksCi0JCS5mbGFncyA9IHsuZXh0X2J1ZmZlciA9IDEsfSwKIAkJ LmNhbGxiYWNrID0gJmJiYl9jb21tYW5kX2NhbGxiYWNrLAogCQkudGltZW91 dCA9IDQgKiBVU0JfTVNfSFosCS8qIDQgc2Vjb25kcyAqLwogCX0sCkBAIC0x OTMsOCArMTkyLDggQEAKIAkJLnR5cGUgPSBVRV9CVUxLLAogCQkuZW5kcG9p bnQgPSBVRV9BRERSX0FOWSwKIAkJLmRpcmVjdGlvbiA9IFVFX0RJUl9JTiwK LQkJLmJ1ZnNpemUgPSBCVUxLX1NJWkUsCi0JCS5mbGFncyA9IHsuZXh0X2J1 ZmZlciA9IDEsLnByb3h5X2J1ZmZlciA9IDEsLnNob3J0X3hmZXJfb2sgPSAx LH0sCisJCS5idWZzaXplID0gTUFYKFNDU0lfTUFYX0xFTiwgQlVMS19TSVpF KSwKKwkJLmZsYWdzID0gey5wcm94eV9idWZmZXIgPSAxLC5zaG9ydF94ZmVy X29rID0gMSx9LAogCQkuY2FsbGJhY2sgPSAmYmJiX2RhdGFfcmVhZF9jYWxs YmFjaywKIAkJLnRpbWVvdXQgPSA0ICogVVNCX01TX0haLAkvKiA0IHNlY29u ZHMgKi8KIAl9LApAQCAtMjMyLDcgKzIzMSw3IEBACiAJCS5lbmRwb2ludCA9 IFVFX0FERFJfQU5ZLAogCQkuZGlyZWN0aW9uID0gVUVfRElSX0lOLAogCQku YnVmc2l6ZSA9IHNpemVvZihzdHJ1Y3QgYmJiX2NzdyksCi0JCS5mbGFncyA9 IHsuZXh0X2J1ZmZlciA9IDEsLnNob3J0X3hmZXJfb2sgPSAxLH0sCisJCS5m bGFncyA9IHsuc2hvcnRfeGZlcl9vayA9IDEsfSwKIAkJLmNhbGxiYWNrID0g JmJiYl9zdGF0dXNfY2FsbGJhY2ssCiAJCS50aW1lb3V0ID0gMSAqIFVTQl9N U19IWiwJLyogMSBzZWNvbmQgICovCiAJfSwKQEAgLTI0MSw3ICsyNDAsNiBA QAogc3RhdGljIHZvaWQKIGJiYl9kb25lKHN0cnVjdCBiYmJfdHJhbnNmZXIg KnNjLCBpbnQgZXJyb3IpCiB7Ci0KIAlzYy0+ZXJyb3IgPSBlcnJvcjsKIAlz Yy0+c3RhdGUgPSBTVF9DT01NQU5EOwogCXNjLT5zdGF0dXNfdHJ5ID0gMTsK QEAgLTI5MCwxOCArMjg4LDE3IEBACiAKIAljYXNlIFVTQl9TVF9TRVRVUDoK IAkJc2MtPnN0YXR1c190cnkgPSAwOwotCQl0YWcgPSBVR0VURFcoc2MtPmNi dy5kQ0JXVGFnKSArIDE7Ci0JCVVTRVREVyhzYy0+Y2J3LmRDQldTaWduYXR1 cmUsIENCV1NJR05BVFVSRSk7Ci0JCVVTRVREVyhzYy0+Y2J3LmRDQldUYWcs IHRhZyk7Ci0JCVVTRVREVyhzYy0+Y2J3LmRDQldEYXRhVHJhbnNmZXJMZW5n dGgsICh1aW50MzJfdClzYy0+ZGF0YV9sZW4pOwotCQlzYy0+Y2J3LmJDQldG bGFncyA9ICgoc2MtPmRpciA9PSBESVJfSU4pID8gQ0JXRkxBR1NfSU4gOiBD QldGTEFHU19PVVQpOwotCQlzYy0+Y2J3LmJDQldMVU4gPSBzYy0+bHVuOwot CQlzYy0+Y2J3LmJDREJMZW5ndGggPSBzYy0+Y21kX2xlbjsKLQkJaWYgKHNj LT5jYncuYkNEQkxlbmd0aCA+IHNpemVvZihzYy0+Y2J3LkNCV0NEQikpIHsK LQkJCXNjLT5jYncuYkNEQkxlbmd0aCA9IHNpemVvZihzYy0+Y2J3LkNCV0NE Qik7CisJCXRhZyA9IFVHRVREVyhzYy0+Y2J3LT5kQ0JXVGFnKSArIDE7CisJ CVVTRVREVyhzYy0+Y2J3LT5kQ0JXU2lnbmF0dXJlLCBDQldTSUdOQVRVUkUp OworCQlVU0VURFcoc2MtPmNidy0+ZENCV1RhZywgdGFnKTsKKwkJVVNFVERX KHNjLT5jYnctPmRDQldEYXRhVHJhbnNmZXJMZW5ndGgsICh1aW50MzJfdClz Yy0+ZGF0YV9sZW4pOworCQlzYy0+Y2J3LT5iQ0JXRmxhZ3MgPSAoKHNjLT5k aXIgPT0gRElSX0lOKSA/IENCV0ZMQUdTX0lOIDogQ0JXRkxBR1NfT1VUKTsK KwkJc2MtPmNidy0+YkNCV0xVTiA9IHNjLT5sdW47CisJCXNjLT5jYnctPmJD REJMZW5ndGggPSBzYy0+Y21kX2xlbjsKKwkJaWYgKHNjLT5jYnctPmJDREJM ZW5ndGggPiBzaXplb2Yoc2MtPmNidy0+Q0JXQ0RCKSkgeworCQkJc2MtPmNi dy0+YkNEQkxlbmd0aCA9IHNpemVvZihzYy0+Y2J3LT5DQldDREIpOwogCQkJ RFBSSU5URk4oMCwgIlRydW5jYXRpbmcgbG9uZyBjb21tYW5kXG4iKTsKIAkJ fQotCQl1c2JkX3hmZXJfc2V0X2ZyYW1lX2RhdGEoeGZlciwgMCwgJnNjLT5j YncsIHNpemVvZihzYy0+Y2J3KSk7CiAJCXVzYmRfdHJhbnNmZXJfc3VibWl0 KHhmZXIpOwogCQlicmVhazsKIApAQCAtNDMwLDkgKzQyNyw5IEBACiAKIAkJ LyogdmVyeSBzaW1wbGUgc3RhdHVzIGNoZWNrICovCiAKLQkJaWYgKGFjdGxl biA8IChpbnQpc2l6ZW9mKHNjLT5jc3cpKSB7CisJCWlmIChhY3RsZW4gPCAo aW50KXNpemVvZihzdHJ1Y3QgYmJiX2NzdykpIHsKIAkJCWJiYl9kb25lKHNj LCBVU0JfRVJSX1NIT1JUX1hGRVIpOwotCQl9IGVsc2UgaWYgKHNjLT5jc3cu YkNTV1N0YXR1cyA9PSBDU1dTVEFUVVNfR09PRCkgeworCQl9IGVsc2UgaWYg KHNjLT5jc3ctPmJDU1dTdGF0dXMgPT0gQ1NXU1RBVFVTX0dPT0QpIHsKIAkJ CWJiYl9kb25lKHNjLCAwKTsJLyogc3VjY2VzcyAqLwogCQl9IGVsc2Ugewog CQkJYmJiX2RvbmUoc2MsIEVSUl9DU1dfRkFJTEVEKTsJLyogZXJyb3IgKi8K QEAgLTQ0MCw3ICs0MzcsNiBAQAogCQlicmVhazsKIAogCWNhc2UgVVNCX1NU X1NFVFVQOgotCQl1c2JkX3hmZXJfc2V0X2ZyYW1lX2RhdGEoeGZlciwgMCwg JnNjLT5jc3csIHNpemVvZihzYy0+Y3N3KSk7CiAJCXVzYmRfdHJhbnNmZXJf c3VibWl0KHhmZXIpOwogCQlicmVhazsKIApAQCAtNDc4LDkgKzQ3NCw5IEBA CiAJc2MtPmRhdGFfdGltZW91dCA9IChkYXRhX3RpbWVvdXQgKyBVU0JfTVNf SFopOwogCXNjLT5hY3RsZW4gPSAwOwogCXNjLT5jbWRfbGVuID0gY21kX2xl bjsKLQltZW1zZXQoJnNjLT5jYncuQ0JXQ0RCLCAwLCBzaXplb2Yoc2MtPmNi dy5DQldDREIpKTsKLQltZW1jcHkoJnNjLT5jYncuQ0JXQ0RCLCBjbWRfcHRy LCBjbWRfbGVuKTsKLQlEUFJJTlRGTigxLCAiU0NTSSBjbWQgPSAlKkRcbiIs IChpbnQpY21kX2xlbiwgKGNoYXIgKilzYy0+Y2J3LkNCV0NEQiwgIjoiKTsK KwltZW1zZXQoJnNjLT5jYnctPkNCV0NEQiwgMCwgc2l6ZW9mKHNjLT5jYnct PkNCV0NEQikpOworCW1lbWNweSgmc2MtPmNidy0+Q0JXQ0RCLCBjbWRfcHRy LCBjbWRfbGVuKTsKKwlEUFJJTlRGTigxLCAiU0NTSSBjbWQgPSAlKkRcbiIs IChpbnQpY21kX2xlbiwgKGNoYXIgKilzYy0+Y2J3LT5DQldDREIsICI6Iik7 CiAKIAltdHhfbG9jaygmc2MtPm10eCk7CiAJdXNiZF90cmFuc2Zlcl9zdGFy dChzYy0+eGZlcltzYy0+c3RhdGVdKTsKQEAgLTU0OSw2ICs1NDUsMTQgQEAK IAkJYmJiX2RldGFjaChzYyk7CiAJCXJldHVybiAoTlVMTCk7CiAJfQorCS8q IHN0b3JlIHBvaW50ZXIgdG8gRE1BIGJ1ZmZlcnMgKi8KKwlzYy0+YnVmZmVy ID0gdXNiZF94ZmVyX2dldF9mcmFtZV9idWZmZXIoCisJICAgIHNjLT54ZmVy W1NUX0RBVEFfUkRdLCAwKTsKKwlzYy0+Y2J3ID0gdXNiZF94ZmVyX2dldF9m cmFtZV9idWZmZXIoCisJICAgIHNjLT54ZmVyW1NUX0NPTU1BTkRdLCAwKTsK KwlzYy0+Y3N3ID0gdXNiZF94ZmVyX2dldF9mcmFtZV9idWZmZXIoCisJICAg IHNjLT54ZmVyW1NUX1NUQVRVU10sIDApOworCiAJcmV0dXJuIChzYyk7CiB9 CiAK --2120775178-1643984294-1389506282=:33519--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201401120610.s0C6A1Fx064199>