From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Kosewski Subject: Re: [PATCH 2.6.14-rc1 2/3] Add disk hotswap support to libata RESEND #3 Date: Thu, 15 Sep 2005 01:09:32 -0400 Message-ID: <355e5e5e050914220931bb9c73@mail.gmail.com> References: <355e5e5e050914220865dfdf5a@mail.gmail.com> Reply-To: lkosewsk@gmail.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_5284_28912587.1126760972997" Return-path: Received: from zproxy.gmail.com ([64.233.162.197]:57508 "EHLO zproxy.gmail.com") by vger.kernel.org with ESMTP id S1030369AbVIOFJe (ORCPT ); Thu, 15 Sep 2005 01:09:34 -0400 Received: by zproxy.gmail.com with SMTP id i11so198329nzi for ; Wed, 14 Sep 2005 22:09:33 -0700 (PDT) In-Reply-To: <355e5e5e050914220865dfdf5a@mail.gmail.com> Sender: linux-ide-owner@vger.kernel.org List-Id: linux-ide@vger.kernel.org To: Jeff Garzik Cc: linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org ------=_Part_5284_28912587.1126760972997 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline ... And here's the actual patch... On 9/15/05, Lukasz Kosewski wrote: > Patch 2/3 for libata hotswapping. The libata hotswap infrastructure, > mark 3. More comments in patch header. >=20 > Luke Kosewski > ------=_Part_5284_28912587.1126760972997 Content-Type: text/x-patch; name="02-libata_hotswap_infrastructure-2.6.14-rc1.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="02-libata_hotswap_infrastructure-2.6.14-rc1.diff" MTUuMDkuMDUgICAgTHVrZSBLb3Nld3NraSAgIDxsa29zZXdza0BuaXQuY2E+CgoJKiBBIHBhdGNo IHRvIGFkZCBhIGdlbmVyYWwtcHVycG9zZSBob3Rzd2FwIGZyYW1ld29yayB0byBsaWJhdGEuICBU aGlzIGlzCgkgIHJlc2VuZCAjMyB3aGVyZWluIHdlIGhhdmUgYSBuZXcgQVBJISAgRHJpdmVyIHdy aXRlcnMgY2FsbAoJICBhdGFfaG90cGx1Z19wbHVnIG9yIGF0YV9ob3RwbHVnX3VucGx1ZyB3aGVu IGEgcGx1Zy91bnBsdWcgZXZlbnQKCSAgb2NjdXJzIC0gaXQgdGFrZXMgY2FyZSBvZiB0aGUgcmVz dC4gIFRoZSBpZGVhIGlzIHRvIG1ha2UgdGhlIHNlcXVlbmNlCgkgIG9mIGV2ZW50cyBhcyBzdHJh aWdodGZvcndhcmQgYXMgcG9zc2libGUgYW5kIG5vdCBjbHV0dGVyIHRoZSBjb2RlCgkgIHdpdGgg ZXhjZXB0aW9uczsgYXMgYSByZXN1bHQsIGEgc2VyaWVzIG9mICdob29rcycgY2FuIGJlIHByb3Zp ZGVkIGF0CgkgIHBvaW50cyBpbiB0aGUgY29kZSBmb3IgZHJpdmVycyB0aGF0IG5lZWQgaXQgKHN1 Y2ggYXMgdGhlIFNpbGljb24KCSAgSW1hZ2UgZHJpdmVycyB3aGljaCBuZWVkIGEgcmVzZXQgcGVy Zm9ybWVkIG9uIGRldmljZSByZW1vdmFsKS4gIFNlZQoJICAnaG90cGx1Z18odW4pcGx1Z19qYW5p dG9yJyBmb3IgbW9yZSBpbmZvLgoJKiBUaGlzIGVkaXRpb24gaXMgdmVyeSBzdHJlYW1saW5lZC4g IEkgbGlrZSBpdC4gIEFuIGFyZWEgZm9yIGltcHJvdmVtZW50CgkgIG1pZ2h0IGZhY2lsaXRhdGUg dGhlIHJlbW92YWwgb2YgdGhlIGF0YV9zY3NpX3ByZXBhcmVfcWNfYWJvcnQgZnVuY3Rpb24KCSAg aW4gZmF2b3VyIG9mIGNoYW5nZXMgdG8gYXRhX3FjX2NvbXBsZXRlLCBidXQgdGhhdCBjYW4gYmUg dXAgdG8gZGViYXRlLgoKZGlmZiAtcnB1TiBsaW51eC0yLjYuMTQtcmMxL2RyaXZlcnMvc2NzaS9s aWJhdGEtY29yZS5jIGxpbnV4LTIuNi4xNC1yYzEtbmV3L2RyaXZlcnMvc2NzaS9saWJhdGEtY29y ZS5jCi0tLSBsaW51eC0yLjYuMTQtcmMxL2RyaXZlcnMvc2NzaS9saWJhdGEtY29yZS5jCTIwMDUt MDktMTIgMjM6MTI6MDkuMDAwMDAwMDAwIC0wNDAwCisrKyBsaW51eC0yLjYuMTQtcmMxLW5ldy9k cml2ZXJzL3Njc2kvbGliYXRhLWNvcmUuYwkyMDA1LTA5LTE0IDIyOjEzOjMwLjAwMDAwMDAwMCAt MDQwMApAQCAtNzQsNiArNzQsNyBAQCBzdGF0aWMgdm9pZCBfX2F0YV9xY19jb21wbGV0ZShzdHJ1 Y3QgYXRhCiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgYXRhX3VuaXF1ZV9pZCA9IDE7CiBzdGF0aWMg c3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmF0YV93cTsKK3N0YXRpYyBzdHJ1Y3Qgd29ya3F1ZXVl X3N0cnVjdCAqYXRhX2hvdHBsdWdfd3E7CiAKIGludCBhdGFwaV9lbmFibGVkID0gMDsKIG1vZHVs ZV9wYXJhbShhdGFwaV9lbmFibGVkLCBpbnQsIDA0NDQpOwpAQCAtMTE0Nyw2ICsxMTQ4LDExIEBA IHN0YXRpYyB2b2lkIGF0YV9kZXZfaWRlbnRpZnkoc3RydWN0IGF0YV8KIAkJcmV0dXJuOwogCX0K IAorCS8qIE5lY2Vzc2FyeSBpZiB3ZSBoYWQgYW4gTEJBNDggZHJpdmUgaW4sIHdlIHB1bGxlZCBp dCBvdXQsIGFuZCBwdXQgYQorCSAqIG5vbi1MQkE0OCBkcml2ZSBvbiB0aGUgc2FtZSBhcC4KKwkg Ki8KKwlkZXYtPmZsYWdzICY9IH5BVEFfREZMQUdfTEJBNDg7CisKIAlpZiAoYXAtPmZsYWdzICYg KEFUQV9GTEFHX1NSU1QgfCBBVEFfRkxBR19TQVRBX1JFU0VUKSkKIAkJdXNpbmdfZWRkID0gMDsK IAllbHNlCkBAIC0zNjkyLDYgKzM2OTgsMTAyIEBAIGlkbGVfaXJxOgogCXJldHVybiAwOwkvKiBp cnEgbm90IGhhbmRsZWQgKi8KIH0KIAordm9pZCBhdGFfY2hlY2tfa2lsbF9xYyhzdHJ1Y3QgYXRh X3BvcnQgKmFwKQoreworCXN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMgPSBhdGFfcWNfZnJvbV90 YWcoYXAsIGFwLT5hY3RpdmVfdGFnKTsKKworCWlmICh1bmxpa2VseShxYykpIHsKKwkJLyogVGhp cyBpcyBTTyBiYWQuICBCdXQgd2UgY2FuJ3QganVzdCBydW4KKwkJICogYXRhX3FjX2NvbXBsZXRl IHdpdGhvdXQgZG9pbmcgdGhpcywgYmVjYXVzZQorCQkgKiBhdGFfc2NzaV9xY19jb21wbGV0ZSB3 YW50cyB0byB0YWxrIHRvIHRoZSBkZXZpY2UsCisJCSAqIGFuZCB3ZSBjYW4ndCBsZXQgaXQgZG8g dGhhdCBzaW5jZSBpdCBkb2Vzbid0IGV4aXN0CisJCSAqIGFueW1vcmUuCisJCSAqLworCQlhdGFf c2NzaV9wcmVwYXJlX3FjX2Fib3J0KHFjKTsKKwkJYXRhX3FjX2NvbXBsZXRlKHFjLCBBVEFfRVJS KTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGF0YV9ob3RwbHVnX3Rhc2sodm9pZCAqX2RhdGEpCit7 CisJc3RydWN0IGF0YV9wb3J0ICphcCA9IChzdHJ1Y3QgYXRhX3BvcnQgKilfZGF0YTsKKwllbnVt IGhvdHBsdWdfc3RhdGVzIGhvdHBsdWdfdG9kbzsKKworCXNwaW5fbG9jaygmYXAtPmhvc3Rfc2V0 LT5sb2NrKTsKKwlob3RwbHVnX3RvZG8gPSBhcC0+cGx1ZzsKKwlzcGluX3VubG9jaygmYXAtPmhv c3Rfc2V0LT5sb2NrKTsKKworCWlmIChob3RwbHVnX3RvZG8gPT0gQVRBX0hPVFBMVUdfUExVRykg eworCQlEUFJJTlRLKCJHb3QgYSBwbHVnIHJlcXVlc3Qgb24gcG9ydCAlZFxuIiwgYXAtPmlkKTsK KworCQkvKiBUaGlzIG1pZ2h0IGJlIG5lY2Vzc2FyeSBpZiB3ZSB1bnBsdWcgYW5kIHBsdWcgaW4g YSBkcml2ZQorCQkgKiB3aXRoaW4gQVRBX1RNT1VUX0hPVFNXQVAgLyBIWiBzZWNvbmRzLi4uIGR1 ZSB0byB0aGUgZGVib3VuY2UKKwkJICogdGltZXIsIG9uZSBldmVudCBpcyBnZW5lcmF0ZWQuICBT aW5jZSB0aGUgbGFzdCBldmVudCB3YXMgYQorCQkgKiBwbHVnLCB0aGUgdW5wbHVnIHJvdXRpbmUg bmV2ZXIgZ2V0cyBjYWxsZWQsIHNvIHdlIG5lZWQgdG8KKwkJICogY2xlYW4gdXAgdGhlIG1lc3Mg Zmlyc3QuICBJZiB0aGVyZSB3YXMgbmV2ZXIgYSBkcml2ZSBoZXJlIGluCisJCSAqIHRoZSBmaXJz dCBwbGFjZSwgdGhpcyB3aWxsIGp1c3QgZG8gbm90aGluZy4gIE90aGVyd2lzZSwgaXQKKwkJICog YmFzaWNhbGx5IHByZXZlbnRzICdwbHVnJyBmcm9tIGJlaW5nIGNhbGxlZCB0d2ljZSB3aXRoIG5v CisJCSAqIHVucGx1ZyBpbiBiZXR3ZWVuLgorCQkgKi8KKwkJYXRhX3Njc2lfaGFuZGxlX3VucGx1 ZyhhcCk7CisKKwkJLy8gVGhlIGZvbGxvd2luZyBmbGFnIGlzIG5lY2Vzc2FyeSBvbiBzb21lIFNl YWdhdGUgZHJpdmVzLgorCQlhcC0+ZmxhZ3MgfD0gQVRBX0ZMQUdfU0FUQV9SRVNFVDsgCisJCWFw LT51ZG1hX21hc2sgPSBhcC0+b3JpZ191ZG1hX21hc2s7CisKKwkJaWYgKCFhdGFfYnVzX3Byb2Jl KGFwKSkgIC8vRHJpdmUgZm91bmQhICBUZWxsIHRoZSBTQ1NJIGxheWVyIQorCQkJYXRhX3Njc2lf aGFuZGxlX3BsdWcoYXApOwkKKwl9IGVsc2UgaWYgKGhvdHBsdWdfdG9kbyA9PSBBVEFfSE9UUExV R19VTlBMVUcpIHsKKwkJRFBSSU5USygiR290IGFuIHVucGx1ZyByZXF1ZXN0IG9uIHBvcnQgJWRc biIsIGFwLT5pZCk7CisKKwkJYXRhX3Njc2lfaGFuZGxlX3VucGx1ZyhhcCk7CisJfSBlbHNlIC8q IFNvbWUga2luZCBvZiBlcnJvciBjb25kaXRpb24/ICovCisJCUJVRygpOworfQorCitzdGF0aWMg dm9pZCBhdGFfaG90cGx1Z190aW1lcl9mdW5jKHVuc2lnbmVkIGxvbmcgX2RhdGEpCit7CisJc3Ry dWN0IGF0YV9wb3J0ICphcCA9IChzdHJ1Y3QgYXRhX3BvcnQgKilfZGF0YTsKKworCXF1ZXVlX3dv cmsoYXRhX2hvdHBsdWdfd3EsICZhcC0+aG90cGx1Z190YXNrKTsKK30KKwordm9pZCBhdGFfaG90 cGx1Z19wbHVnKHN0cnVjdCBhdGFfcG9ydCAqYXApCit7CisJZGVsX3RpbWVyKCZhcC0+aG90cGx1 Z190aW1lcik7CisKKwlpZiAoYXAtPm9wcy0+aG90cGx1Z19wbHVnX2phbml0b3IpCisJCWFwLT5v cHMtPmhvdHBsdWdfcGx1Z19qYW5pdG9yKGFwKTsKKworCS8qIFRoaXMgbGluZSBzaG91bGQgYmUg cHJvdGVjdGVkIGJ5IGEgaG9zdF9zZXQtPmxvY2suICBJZiB3ZSBmb2xsb3cgdGhlCisJICogY2Fs bCBjaGFpbiB1cCBmcm9tIHRoaXMsIGl0IHNob3VsZCBiZSBjYWxsZWQgZnJvbSBhdGFfaG90cGx1 Z191bnBsdWcKKwkgKiBvciBhdGFfaG90cGx1Z19wbHVnLCB3aGljaCBzaG91bGQgYmUgY2FsbGVk IGZyb20gYW4gaW50ZXJydXB0CisJICogaGFuZGxlci4gIE1ha2Ugc3VyZSB0aGUgY2FsbCB0byBl aXRoZXIgb2YgdGhvc2UgZnVuY3Rpb25zIGlzCisJICogcHJvdGVjdGVkLgorCSAqLworCWFwLT5w bHVnID0gQVRBX0hPVFBMVUdfUExVRzsKKworCWFwLT5ob3RwbHVnX3RpbWVyLmV4cGlyZXMgPSBq aWZmaWVzICsgQVRBX1RNT1VUX0hPVFNXQVA7CisJYWRkX3RpbWVyKCZhcC0+aG90cGx1Z190aW1l cik7Cit9CisKK3ZvaWQgYXRhX2hvdHBsdWdfdW5wbHVnKHN0cnVjdCBhdGFfcG9ydCAqYXApCit7 CisJYXRhX3BvcnRfZGlzYWJsZShhcCk7ICAvL0dvbmUgZ29uZSBnb25lIQorCQorCWRlbF90aW1l cigmYXAtPmhvdHBsdWdfdGltZXIpOworCisJaWYgKGFwLT5vcHMtPmhvdHBsdWdfdW5wbHVnX2ph bml0b3IpCisJCWFwLT5vcHMtPmhvdHBsdWdfdW5wbHVnX2phbml0b3IoYXApOworCQorCS8qIFNl ZSBjb21tZW50IG5lYXIgc2ltaWxhciBsaW5lIGluIGF0YV9ob3RwbHVnX3BsdWcgZnVuY3Rpb24u CisJICovCisJYXAtPnBsdWcgPSBBVEFfSE9UUExVR19VTlBMVUc7CisKKwlhcC0+aG90cGx1Z190 aW1lci5leHBpcmVzID0gamlmZmllcyArIEFUQV9UTU9VVF9IT1RTV0FQOworCWFkZF90aW1lcigm YXAtPmhvdHBsdWdfdGltZXIpOworfQorCiAvKioKICAqCWF0YV9pbnRlcnJ1cHQgLSBEZWZhdWx0 IEFUQSBob3N0IGludGVycnVwdCBoYW5kbGVyCiAgKglAaXJxOiBpcnEgbGluZSAodW51c2VkKQpA QCAtMzkyNSw3ICs0MDI3LDEyIEBAIHN0YXRpYyB2b2lkIGF0YV9ob3N0X2luaXQoc3RydWN0IGF0 YV9wb3IKIAlhcC0+Y2JsID0gQVRBX0NCTF9OT05FOwogCWFwLT5hY3RpdmVfdGFnID0gQVRBX1RB R19QT0lTT047CiAJYXAtPmxhc3RfY3RsID0gMHhGRjsKKwlhcC0+b3JpZ191ZG1hX21hc2sgPSBl bnQtPnVkbWFfbWFzazsKIAorCWFwLT5ob3RwbHVnX3RpbWVyLmZ1bmN0aW9uID0gYXRhX2hvdHBs dWdfdGltZXJfZnVuYzsKKwlhcC0+aG90cGx1Z190aW1lci5kYXRhID0gKHVuc2lnbmVkIGludClh cDsKKwlpbml0X3RpbWVyKCZhcC0+aG90cGx1Z190aW1lcik7CisJSU5JVF9XT1JLKCZhcC0+aG90 cGx1Z190YXNrLCBhdGFfaG90cGx1Z190YXNrLCBhcCk7CiAJSU5JVF9XT1JLKCZhcC0+cGFja2V0 X3Rhc2ssIGF0YXBpX3BhY2tldF90YXNrLCBhcCk7CiAJSU5JVF9XT1JLKCZhcC0+cGlvX3Rhc2ss IGF0YV9waW9fdGFzaywgYXApOwogCkBAIC00NTQxLDYgKzQ2NDgsMTIgQEAgc3RhdGljIGludCBf X2luaXQgYXRhX2luaXQodm9pZCkKIAlhdGFfd3EgPSBjcmVhdGVfd29ya3F1ZXVlKCJhdGEiKTsK IAlpZiAoIWF0YV93cSkKIAkJcmV0dXJuIC1FTk9NRU07CisJYXRhX2hvdHBsdWdfd3EgPSBjcmVh dGVfd29ya3F1ZXVlKCJhdGFfaG90cGx1ZyIpOworCWlmICghYXRhX2hvdHBsdWdfd3EpCisJewor CQlkZXN0cm95X3dvcmtxdWV1ZShhdGFfd3EpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CiAKIAlw cmludGsoS0VSTl9ERUJVRyAibGliYXRhIHZlcnNpb24gIiBEUlZfVkVSU0lPTiAiIGxvYWRlZC5c biIpOwogCXJldHVybiAwOwpAQCAtNDU0OSw2ICs0NjYyLDcgQEAgc3RhdGljIGludCBfX2luaXQg YXRhX2luaXQodm9pZCkKIHN0YXRpYyB2b2lkIF9fZXhpdCBhdGFfZXhpdCh2b2lkKQogewogCWRl c3Ryb3lfd29ya3F1ZXVlKGF0YV93cSk7CisJZGVzdHJveV93b3JrcXVldWUoYXRhX2hvdHBsdWdf d3EpOwogfQogCiBtb2R1bGVfaW5pdChhdGFfaW5pdCk7CkBAIC00NjA0LDYgKzQ3MTgsOCBAQCBF WFBPUlRfU1lNQk9MX0dQTChhdGFfZGV2X2NsYXNzaWZ5KTsKIEVYUE9SVF9TWU1CT0xfR1BMKGF0 YV9kZXZfaWRfc3RyaW5nKTsKIEVYUE9SVF9TWU1CT0xfR1BMKGF0YV9kZXZfY29uZmlnKTsKIEVY UE9SVF9TWU1CT0xfR1BMKGF0YV9zY3NpX3NpbXVsYXRlKTsKK0VYUE9SVF9TWU1CT0xfR1BMKGF0 YV9ob3RwbHVnX3BsdWcpOworRVhQT1JUX1NZTUJPTF9HUEwoYXRhX2hvdHBsdWdfdW5wbHVnKTsK IAogI2lmZGVmIENPTkZJR19QQ0kKIEVYUE9SVF9TWU1CT0xfR1BMKHBjaV90ZXN0X2NvbmZpZ19i aXRzKTsKZGlmZiAtcnB1TiBsaW51eC0yLjYuMTQtcmMxL2RyaXZlcnMvc2NzaS9saWJhdGEuaCBs aW51eC0yLjYuMTQtcmMxLW5ldy9kcml2ZXJzL3Njc2kvbGliYXRhLmgKLS0tIGxpbnV4LTIuNi4x NC1yYzEvZHJpdmVycy9zY3NpL2xpYmF0YS5oCTIwMDUtMDktMTIgMjM6MTI6MDkuMDAwMDAwMDAw IC0wNDAwCisrKyBsaW51eC0yLjYuMTQtcmMxLW5ldy9kcml2ZXJzL3Njc2kvbGliYXRhLmgJMjAw NS0wOS0xNCAxOTo1Nzo1My4wMDAwMDAwMDAgLTA0MDAKQEAgLTQ0LDYgKzQ0LDcgQEAgZXh0ZXJu IHN0cnVjdCBhdGFfcXVldWVkX2NtZCAqYXRhX3FjX25ldwogZXh0ZXJuIHZvaWQgYXRhX3FjX2Zy ZWUoc3RydWN0IGF0YV9xdWV1ZWRfY21kICpxYyk7CiBleHRlcm4gaW50IGF0YV9xY19pc3N1ZShz dHJ1Y3QgYXRhX3F1ZXVlZF9jbWQgKnFjKTsKIGV4dGVybiBpbnQgYXRhX2NoZWNrX2F0YXBpX2Rt YShzdHJ1Y3QgYXRhX3F1ZXVlZF9jbWQgKnFjKTsKK2V4dGVybiB2b2lkIGF0YV9jaGVja19raWxs X3FjKHN0cnVjdCBhdGFfcG9ydCAqYXApOwogZXh0ZXJuIHZvaWQgYXRhX2Rldl9zZWxlY3Qoc3Ry dWN0IGF0YV9wb3J0ICphcCwgdW5zaWduZWQgaW50IGRldmljZSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCB3YWl0LCB1bnNpZ25lZCBpbnQgY2FuX3NsZWVwKTsKIGV4 dGVybiB2b2lkIGF0YV90Zl90b19ob3N0X25vbG9jayhzdHJ1Y3QgYXRhX3BvcnQgKmFwLCBzdHJ1 Y3QgYXRhX3Rhc2tmaWxlICp0Zik7CkBAIC03OSw2ICs4MCw5IEBAIGV4dGVybiB2b2lkIGF0YV9z Y3NpX2JhZGNtZChzdHJ1Y3Qgc2NzaV8KIGV4dGVybiB2b2lkIGF0YV9zY3NpX3JidWZfZmlsbChz dHJ1Y3QgYXRhX3Njc2lfYXJncyAqYXJncywKICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGludCAoKmFjdG9yKSAoc3RydWN0IGF0YV9zY3NpX2FyZ3MgKmFyZ3MsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTggKnJidWYsIHVuc2lnbmVkIGludCBi dWZsZW4pKTsKK2V4dGVybiB2b2lkIGF0YV9zY3NpX3ByZXBhcmVfcWNfYWJvcnQoc3RydWN0IGF0 YV9xdWV1ZWRfY21kICpxYyk7CitleHRlcm4gdm9pZCBhdGFfc2NzaV9oYW5kbGVfcGx1ZyhzdHJ1 Y3QgYXRhX3BvcnQgKmFwKTsKK2V4dGVybiB2b2lkIGF0YV9zY3NpX2hhbmRsZV91bnBsdWcoc3Ry dWN0IGF0YV9wb3J0ICphcCk7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhdGFfYmFkX3Njc2lvcChz dHJ1Y3Qgc2NzaV9jbW5kICpjbWQsIHZvaWQgKCpkb25lKShzdHJ1Y3Qgc2NzaV9jbW5kICopKQog ewpkaWZmIC1ycHVOIGxpbnV4LTIuNi4xNC1yYzEvZHJpdmVycy9zY3NpL2xpYmF0YS1zY3NpLmMg bGludXgtMi42LjE0LXJjMS1uZXcvZHJpdmVycy9zY3NpL2xpYmF0YS1zY3NpLmMKLS0tIGxpbnV4 LTIuNi4xNC1yYzEvZHJpdmVycy9zY3NpL2xpYmF0YS1zY3NpLmMJMjAwNS0wOS0xMiAyMzoxMjow OS4wMDAwMDAwMDAgLTA0MDAKKysrIGxpbnV4LTIuNi4xNC1yYzEtbmV3L2RyaXZlcnMvc2NzaS9s aWJhdGEtc2NzaS5jCTIwMDUtMDktMTQgMTk6NTc6NTMuMDAwMDAwMDAwIC0wNDAwCkBAIC03MTYs NiArNzE2LDUyIEBAIHN0YXRpYyBpbnQgYXRhX3Njc2lfcWNfY29tcGxldGUoc3RydWN0IGEKIAly ZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBhdGFfc2NzaV9xY19hYm9ydChzdHJ1Y3QgYXRhX3F1 ZXVlZF9jbWQgKnFjLCB1OCBkcnZfc3RhdCkKK3sKKwlzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQgPSBx Yy0+c2NzaWNtZDsKKworCWNtZC0+cmVzdWx0ID0gU0FNX1NUQVRfVEFTS19BQk9SVEVEOyAvL0ZJ WE1FOiAgSXMgdGhpcyB3aGF0IHdlIHdhbnQ/CisKKwlxYy0+c2NzaWRvbmUoY21kKTsKKworCXJl dHVybiAwOworfQorCit2b2lkIGF0YV9zY3NpX3ByZXBhcmVfcWNfYWJvcnQoc3RydWN0IGF0YV9x dWV1ZWRfY21kICpxYykKK3sKKwkvKiBGb3Igc29tZSByZWFzb24gb3IgYW5vdGhlciwgd2UgY2Fu J3QgYWxsb3cgYSBub3JtYWwgc2NzaV9xY19jb21wbGV0ZS4KKwkgKiBOb3RlIHRoYXQgYXQgdGhp cyBwb2ludCwgd2UgbXVzdCBiZSBTVVJFIHRoZSBjb21tYW5kIGlzIGdvaW5nIHRvIHRpbWUKKwkg KiBvdXQsIG9yIGVsc2Ugd2UgbWlnaHQgYmUgY2hhbmdpbmcgdGhpcyBhcyBpdCdzIGJlaW5nIGNh bGxlZC4gIE5ldmVyIGEKKwkgKiBnb29kIHRoaW5nLgorCSAqLworCWlmIChxYy0+Y29tcGxldGVf Zm4gPT0gYXRhX3Njc2lfcWNfY29tcGxldGUpOworCQlxYy0+Y29tcGxldGVfZm4gPSBhdGFfc2Nz aV9xY19hYm9ydDsKK30KKwordm9pZCBhdGFfc2NzaV9oYW5kbGVfcGx1ZyhzdHJ1Y3QgYXRhX3Bv cnQgKmFwKQoreworCS8vQ3VycmVudGx5IFNBVEEgb25seQorCXNjc2lfYWRkX2RldmljZShhcC0+ aG9zdCwgMCwgMCwgMCk7Cit9CisKK3ZvaWQgYXRhX3Njc2lfaGFuZGxlX3VucGx1ZyhzdHJ1Y3Qg YXRhX3BvcnQgKmFwKQoreworCS8vU0FUQSBvbmx5LCBubyBQQVRBCisJc3RydWN0IHNjc2lfZGV2 aWNlICpzY2QgPSBzY3NpX2RldmljZV9sb29rdXAoYXAtPmhvc3QsIDAsIDAsIDApOworCisJLy8g V2UgbWlnaHQgaGF2ZSBhIHBlbmRpbmcgcWMgb24gSS9PIHRvIGEgcmVtb3ZlZCBkZXZpY2UuCisJ YXRhX2NoZWNrX2tpbGxfcWMoYXApOworCS8qIHNjZCBtaWdodCBub3QgZXhpc3Q7IHNvbWVvbmUg ZGlkICdlY2hvICJzY3NpIHJlbW92ZS1zaW5nbGUtZGV2aWNlCisJICogLi4uICIgPiAvcHJvYy9z Y3NpL3Njc2knIG9yIHNvbWVib2R5ICB3YXMgdHVybmluZyB0aGUga2V5IGluIHRoZQorCSAqIGhv dHN3YXAgYmF5IGJldHdlZW4gb24gYW5kIG9mZiByZWFsbHkgcmVhbGx5IGZhc3QuCisJICovCisJ aWYgKHNjZCkgeworCQlzY3NpX2RldmljZV9zZXRfc3RhdGUoc2NkLCBTREVWX0NBTkNFTCk7CisJ CXNjc2lfcmVtb3ZlX2RldmljZShzY2QpOworCQlzY3NpX2RldmljZV9wdXQoc2NkKTsKKwl9Cit9 CisKIC8qKgogICoJYXRhX3Njc2lfdHJhbnNsYXRlIC0gVHJhbnNsYXRlIHRoZW4gaXNzdWUgU0NT SSBjb21tYW5kIHRvIEFUQSBkZXZpY2UKICAqCUBhcDogQVRBIHBvcnQgdG8gd2hpY2ggdGhlIGNv bW1hbmQgaXMgYWRkcmVzc2VkCmRpZmYgLXJwdU4gbGludXgtMi42LjE0LXJjMS9pbmNsdWRlL2xp bnV4L2xpYmF0YS5oIGxpbnV4LTIuNi4xNC1yYzEtbmV3L2luY2x1ZGUvbGludXgvbGliYXRhLmgK LS0tIGxpbnV4LTIuNi4xNC1yYzEvaW5jbHVkZS9saW51eC9saWJhdGEuaAkyMDA1LTA5LTEyIDIz OjEyOjA5LjAwMDAwMDAwMCAtMDQwMAorKysgbGludXgtMi42LjE0LXJjMS1uZXcvaW5jbHVkZS9s aW51eC9saWJhdGEuaAkyMDA1LTA5LTE0IDIyOjEyOjIwLjAwMDAwMDAwMCAtMDQwMApAQCAtMzIs NiArMzIsNyBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGxpbnV4L2F0YS5oPgog I2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CiAK IC8qCiAgKiBjb21waWxlLXRpbWUgb3B0aW9ucwpAQCAtMTMwLDYgKzEzMSw3IEBAIGVudW0gewog CUFUQV9UTU9VVF9CT09UX1FVSUNLCT0gNyAqIEhaLAkvKiBodWVyaXN0aWMgKi8KIAlBVEFfVE1P VVRfQ0RCCQk9IDMwICogSFosCiAJQVRBX1RNT1VUX0NEQl9RVUlDSwk9IDUgKiBIWiwKKwlBVEFf VE1PVVRfSE9UU1dBUAk9IEhaIC8gMiwJLyogRklYTUU6ICBHdWVzcyB2YWx1ZT8gKi8KIAogCS8q IEFUQSBidXMgc3RhdGVzICovCiAJQlVTX1VOS05PV04JCT0gMCwKQEAgLTE2Nyw2ICsxNjksMTEg QEAgZW51bSBwaW9fdGFza19zdGF0ZXMgewogCVBJT19TVF9FUlIsCiB9OwogCitlbnVtIGhvdHBs dWdfc3RhdGVzIHsKKwlBVEFfSE9UUExVR19QTFVHLAorCUFUQV9IT1RQTFVHX1VOUExVRywKK307 CisKIC8qIGZvcndhcmQgZGVjbGFyYXRpb25zICovCiBzdHJ1Y3Qgc2NzaV9kZXZpY2U7CiBzdHJ1 Y3QgYXRhX3BvcnRfb3BlcmF0aW9uczsKQEAgLTMxNiw2ICszMjMsOCBAQCBzdHJ1Y3QgYXRhX3Bv cnQgewogCXN0cnVjdCBhdGFfaG9zdF9zdGF0cwlzdGF0czsKIAlzdHJ1Y3QgYXRhX2hvc3Rfc2V0 CSpob3N0X3NldDsKIAorCXN0cnVjdCB0aW1lcl9saXN0CWhvdHBsdWdfdGltZXI7CisJc3RydWN0 IHdvcmtfc3RydWN0CWhvdHBsdWdfdGFzazsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QJcGFja2V0X3Rh c2s7CiAKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QJcGlvX3Rhc2s7CkBAIC0zMjMsNiArMzMyLDkgQEAg c3RydWN0IGF0YV9wb3J0IHsKIAl1bnNpZ25lZCBsb25nCQlwaW9fdGFza190aW1lb3V0OwogCiAJ dm9pZAkJCSpwcml2YXRlX2RhdGE7CisKKwl1bnNpZ25lZCBpbnQJCW9yaWdfdWRtYV9tYXNrOwor CWVudW0gaG90cGx1Z19zdGF0ZXMJcGx1ZzsKIH07CiAKIHN0cnVjdCBhdGFfcG9ydF9vcGVyYXRp b25zIHsKQEAgLTM2OSw2ICszODEsOCBAQCBzdHJ1Y3QgYXRhX3BvcnRfb3BlcmF0aW9ucyB7CiAK IAl2b2lkICgqYm1kbWFfc3RvcCkgKHN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMpOwogCXU4ICAg KCpibWRtYV9zdGF0dXMpIChzdHJ1Y3QgYXRhX3BvcnQgKmFwKTsKKwl2b2lkICgqaG90cGx1Z19w bHVnX2phbml0b3IpIChzdHJ1Y3QgYXRhX3BvcnQgKmFwKTsKKwl2b2lkICgqaG90cGx1Z191bnBs dWdfamFuaXRvcikgKHN0cnVjdCBhdGFfcG9ydCAqYXApOwogfTsKIAogc3RydWN0IGF0YV9wb3J0 X2luZm8gewpAQCAtMzk5LDYgKzQxMyw4IEBAIGV4dGVybiBpbnQgYXRhX3Njc2lfcXVldWVjbWQo c3RydWN0IHNjc2kKIGV4dGVybiBpbnQgYXRhX3Njc2lfZXJyb3Ioc3RydWN0IFNjc2lfSG9zdCAq aG9zdCk7CiBleHRlcm4gaW50IGF0YV9zY3NpX3JlbGVhc2Uoc3RydWN0IFNjc2lfSG9zdCAqaG9z dCk7CiBleHRlcm4gdW5zaWduZWQgaW50IGF0YV9ob3N0X2ludHIoc3RydWN0IGF0YV9wb3J0ICph cCwgc3RydWN0IGF0YV9xdWV1ZWRfY21kICpxYyk7CitleHRlcm4gdm9pZCBhdGFfaG90cGx1Z19w bHVnKHN0cnVjdCBhdGFfcG9ydCAqYXApOworZXh0ZXJuIHZvaWQgYXRhX2hvdHBsdWdfdW5wbHVn KHN0cnVjdCBhdGFfcG9ydCAqYXApOwogLyoKICAqIERlZmF1bHQgZHJpdmVyIG9wcyBpbXBsZW1l bnRhdGlvbnMKICAqLwo= ------=_Part_5284_28912587.1126760972997--