From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750756AbVKIN4y (ORCPT ); Wed, 9 Nov 2005 08:56:54 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1750806AbVKIN4y (ORCPT ); Wed, 9 Nov 2005 08:56:54 -0500 Received: from public.id2-vpn.continvity.gns.novell.com ([195.33.99.129]:558 "EHLO emea1-mh.id2.novell.com") by vger.kernel.org with ESMTP id S1750756AbVKIN4y (ORCPT ); Wed, 9 Nov 2005 08:56:54 -0500 Message-Id: <43720E72.76F0.0078.0@novell.com> X-Mailer: Novell GroupWise Internet Agent 7.0 Date: Wed, 09 Nov 2005 14:57:54 +0100 From: "Jan Beulich" To: Subject: [PATCH 2/39] NLKD - an alternative early ioremap approach References: <43720DAE.76F0.0078.0@novell.com> <43720E2E.76F0.0078.0@novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=__Part2B091772.0__=" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This is a MIME message. If you are reading this text, you may want to consider changing to a mail reader or gateway that understands how to properly handle MIME multipart messages. --=__Part2B091772.0__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline An alternative to (on i386) boot-time ioremap approaches, which is more architecture independent (though arch dependent code needs adjustments if this is to be made use of, which with this patch only happens for i386 and x86_64) and doesn't require alternative boot-time interfaces. Signed-Off-By: Jan Beulich (actual patch attached) --=__Part2B091772.0__= Content-Type: application/octet-stream; name="linux-2.6.14-nlkd-early-ioremap.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="linux-2.6.14-nlkd-early-ioremap.patch" QW4gYWx0ZXJuYXRpdmUgdG8gKG9uIGkzODYpIGJvb3QtdGltZSBpb3JlbWFwIGFwcHJvYWNoZXMs IHdoaWNoIGlzIG1vcmUKYXJjaGl0ZWN0dXJlIGluZGVwZW5kZW50ICh0aG91Z2ggYXJjaCBkZXBl bmRlbnQgY29kZSBuZWVkcyBhZGp1c3RtZW50cwppZiB0aGlzIGlzIHRvIGJlIG1hZGUgdXNlIG9m LCB3aGljaCB3aXRoIHRoaXMgcGF0Y2ggb25seSBoYXBwZW5zIGZvcgppMzg2IGFuZCB4ODZfNjQp IGFuZCBkb2Vzbid0IHJlcXVpcmUgYWx0ZXJuYXRpdmUgYm9vdC10aW1lIGludGVyZmFjZXMuCgpT aWduZWQtT2ZmLUJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAbm92ZWxsLmNvbT4KCkluZGV4OiAy LjYuMTQtbmxrZC9hcmNoL2kzODYva2VybmVsL3NldHVwLmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gMi42LjE0 LW5sa2Qub3JpZy9hcmNoL2kzODYva2VybmVsL3NldHVwLmMJMjAwNS0xMS0wOSAxMDo0MDoxOC4w MDAwMDAwMDAgKzAxMDAKKysrIDIuNi4xNC1ubGtkL2FyY2gvaTM4Ni9rZXJuZWwvc2V0dXAuYwky MDA1LTExLTA0IDE2OjE5OjMzLjAwMDAwMDAwMCArMDEwMApAQCAtMTEyNyw2ICsxMTI3LDkgQEAg c3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0IHNldHVwX21lbW9yeQogCX0KIAlwcmludGsoS0VS Tl9OT1RJQ0UgIiVsZE1CIEhJR0hNRU0gYXZhaWxhYmxlLlxuIiwKIAkJcGFnZXNfdG9fbWIoaGln aGVuZF9wZm4gLSBoaWdoc3RhcnRfcGZuKSk7CisJaGlnaF9tZW1vcnkgPSAodm9pZCAqKSBfX3Zh KGhpZ2hzdGFydF9wZm4gKiBQQUdFX1NJWkUgLSAxKSArIDE7CisjZWxzZQorCWhpZ2hfbWVtb3J5 ID0gKHZvaWQgKikgX192YShtYXhfbG93X3BmbiAqIFBBR0VfU0laRSAtIDEpICsgMTsKICNlbmRp ZgogCXByaW50ayhLRVJOX05PVElDRSAiJWxkTUIgTE9XTUVNIGF2YWlsYWJsZS5cbiIsCiAJCQlw YWdlc190b19tYihtYXhfbG93X3BmbikpOwpJbmRleDogMi42LjE0LW5sa2QvYXJjaC9pMzg2L21t L2luaXQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSAyLjYuMTQtbmxrZC5vcmlnL2FyY2gvaTM4Ni9tbS9pbml0 LmMJMjAwNS0xMS0wOSAxMDo0MDoxOC4wMDAwMDAwMDAgKzAxMDAKKysrIDIuNi4xNC1ubGtkL2Fy Y2gvaTM4Ni9tbS9pbml0LmMJMjAwNS0xMS0wNCAxNjoxOTozMy4wMDAwMDAwMDAgKzAxMDAKQEAg LTU2MCwxMiArNTYwLDYgQEAgdm9pZCBfX2luaXQgbWVtX2luaXQodm9pZCkKICAKIAlzZXRfbWF4 X21hcG5yX2luaXQoKTsKIAotI2lmZGVmIENPTkZJR19ISUdITUVNCi0JaGlnaF9tZW1vcnkgPSAo dm9pZCAqKSBfX3ZhKGhpZ2hzdGFydF9wZm4gKiBQQUdFX1NJWkUgLSAxKSArIDE7Ci0jZWxzZQot CWhpZ2hfbWVtb3J5ID0gKHZvaWQgKikgX192YShtYXhfbG93X3BmbiAqIFBBR0VfU0laRSAtIDEp ICsgMTsKLSNlbmRpZgotCiAJLyogdGhpcyB3aWxsIHB1dCBhbGwgbG93IG1lbW9yeSBvbnRvIHRo ZSBmcmVlbGlzdHMgKi8KIAl0b3RhbHJhbV9wYWdlcyArPSBmcmVlX2FsbF9ib290bWVtKCk7CiAK SW5kZXg6IDIuNi4xNC1ubGtkL2FyY2gvaTM4Ni9tbS9pb3JlbWFwLmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g Mi42LjE0LW5sa2Qub3JpZy9hcmNoL2kzODYvbW0vaW9yZW1hcC5jCTIwMDUtMTEtMDkgMTA6NDA6 MTguMDAwMDAwMDAwICswMTAwCisrKyAyLjYuMTQtbmxrZC9hcmNoL2kzODYvbW0vaW9yZW1hcC5j CTIwMDUtMTEtMDQgMTY6MTk6MzMuMDAwMDAwMDAwICswMTAwCkBAIC0yNTcsNyArMjU3LDggQEAg dm9pZCBpb3VubWFwKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcgogCX0gCiBvdXRfdW5sb2Nr OgogCXdyaXRlX3VubG9jaygmdm1saXN0X2xvY2spOwotCWtmcmVlKHApOyAKKwlpZiAocCkKKwkJ ZnJlZV92bV9hcmVhKHApOwogfQogRVhQT1JUX1NZTUJPTChpb3VubWFwKTsKIApJbmRleDogMi42 LjE0LW5sa2QvYXJjaC9pMzg2L21tL3BndGFibGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSAyLjYuMTQtbmxr ZC5vcmlnL2FyY2gvaTM4Ni9tbS9wZ3RhYmxlLmMJMjAwNS0xMS0wOSAxMDo0MDoxOC4wMDAwMDAw MDAgKzAxMDAKKysrIDIuNi4xNC1ubGtkL2FyY2gvaTM4Ni9tbS9wZ3RhYmxlLmMJMjAwNS0xMS0w NCAxNjoxOTozMy4wMDAwMDAwMDAgKzAxMDAKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlIDxs aW51eC9zbXAuaD4KICNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+CiAjaW5jbHVkZSA8bGludXgv c2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KICNpbmNsdWRlIDxsaW51eC9wYWdl bWFwLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KIApAQCAtMTQ4LDcgKzE0OSw5IEBA IHZvaWQgX19zZXRfZml4bWFwIChlbnVtIGZpeGVkX2FkZHJlc3NlcyAKIAogcHRlX3QgKnB0ZV9h bGxvY19vbmVfa2VybmVsKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHJl c3MpCiB7Ci0JcmV0dXJuIChwdGVfdCAqKV9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMfF9fR0ZQ X1JFUEVBVHxfX0dGUF9aRVJPKTsKKwlpZiAobGlrZWx5KHRvdGFscmFtX3BhZ2VzKSkKKwkJcmV0 dXJuIChwdGVfdCAqKV9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMfF9fR0ZQX1JFUEVBVHxfX0dG UF9aRVJPKTsKKwlyZXR1cm4gYWxsb2NfYm9vdG1lbV9wYWdlcyhQQUdFX1NJWkUpOwogfQogCiBz dHJ1Y3QgcGFnZSAqcHRlX2FsbG9jX29uZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQg bG9uZyBhZGRyZXNzKQpJbmRleDogMi42LjE0LW5sa2QvYXJjaC94ODZfNjQva2VybmVsL3NldHVw LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gMi42LjE0LW5sa2Qub3JpZy9hcmNoL3g4Nl82NC9rZXJuZWwvc2V0 dXAuYwkyMDA1LTExLTA5IDEwOjQwOjE4LjAwMDAwMDAwMCArMDEwMAorKysgMi42LjE0LW5sa2Qv YXJjaC94ODZfNjQva2VybmVsL3NldHVwLmMJMjAwNS0xMS0wNCAxNjoxOTozMy4wMDAwMDAwMDAg KzAxMDAKQEAgLTU2Niw2ICs1NjYsNyBAQCB2b2lkIF9faW5pdCBzZXR1cF9hcmNoKGNoYXIgKipj bWRsaW5lX3ApCiAJICogd2UgYXJlIHJvdW5kaW5nIHVwd2FyZHM6CiAJICovCiAJZW5kX3BmbiA9 IGU4MjBfZW5kX29mX3JhbSgpOworCWhpZ2hfbWVtb3J5ID0gKHZvaWQgKilfX3ZhKGVuZF9wZm4g KiBQQUdFX1NJWkUgLSAxKSArIDE7CiAKIAljaGVja19lZmVyKCk7CiAKSW5kZXg6IDIuNi4xNC1u bGtkL2FyY2gveDg2XzY0L21tL2luaXQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSAyLjYuMTQtbmxrZC5vcmln L2FyY2gveDg2XzY0L21tL2luaXQuYwkyMDA1LTExLTA5IDEwOjQwOjE4LjAwMDAwMDAwMCArMDEw MAorKysgMi42LjE0LW5sa2QvYXJjaC94ODZfNjQvbW0vaW5pdC5jCTIwMDUtMTEtMDQgMTY6MTk6 MzMuMDAwMDAwMDAwICswMTAwCkBAIC00MDAsNyArNDAwLDYgQEAgdm9pZCBfX2luaXQgbWVtX2lu aXQodm9pZCkKIAltYXhfbG93X3BmbiA9IGVuZF9wZm47CiAJbWF4X3BmbiA9IGVuZF9wZm47CiAJ bnVtX3BoeXNwYWdlcyA9IGVuZF9wZm47Ci0JaGlnaF9tZW1vcnkgPSAodm9pZCAqKSBfX3ZhKGVu ZF9wZm4gKiBQQUdFX1NJWkUpOwogCiAJLyogY2xlYXIgdGhlIHplcm8tcGFnZSAqLwogCW1lbXNl dChlbXB0eV96ZXJvX3BhZ2UsIDAsIFBBR0VfU0laRSk7CkluZGV4OiAyLjYuMTQtbmxrZC9hcmNo L3g4Nl82NC9tbS9pb3JlbWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gMi42LjE0LW5sa2Qub3JpZy9hcmNo L3g4Nl82NC9tbS9pb3JlbWFwLmMJMjAwNS0xMS0wOSAxMDo0MDoxOC4wMDAwMDAwMDAgKzAxMDAK KysrIDIuNi4xNC1ubGtkL2FyY2gveDg2XzY0L21tL2lvcmVtYXAuYwkyMDA1LTExLTA0IDE2OjE5 OjMzLjAwMDAwMDAwMCArMDEwMApAQCAtMjY2LDUgKzI2Niw2IEBAIHZvaWQgaW91bm1hcCh2b2xh dGlsZSB2b2lkIF9faW9tZW0gKmFkZHIKIAllbHNlIGlmIChwLT5mbGFncyA+PiAyMCkKIAkJaW9y ZW1hcF9jaGFuZ2VfYXR0cihwLT5waHlzX2FkZHIsIHAtPnNpemUsIDApOwogCXdyaXRlX3VubG9j aygmdm1saXN0X2xvY2spOwotCWtmcmVlKHApOyAKKwlpZihwKQorCQlmcmVlX3ZtX2FyZWEocCk7 CiB9CkluZGV4OiAyLjYuMTQtbmxrZC9pbmNsdWRlL2xpbnV4L3ZtYWxsb2MuaAo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSAyLjYuMTQtbmxrZC5vcmlnL2luY2x1ZGUvbGludXgvdm1hbGxvYy5oCTIwMDUtMTEtMDkg MTA6NDA6MTguMDAwMDAwMDAwICswMTAwCisrKyAyLjYuMTQtbmxrZC9pbmNsdWRlL2xpbnV4L3Zt YWxsb2MuaAkyMDA1LTExLTA0IDE2OjE5OjM0LjAwMDAwMDAwMCArMDEwMApAQCAtOCw2ICs4LDcg QEAKICNkZWZpbmUgVk1fSU9SRU1BUAkweDAwMDAwMDAxCS8qIGlvcmVtYXAoKSBhbmQgZnJpZW5k cyAqLwogI2RlZmluZSBWTV9BTExPQwkweDAwMDAwMDAyCS8qIHZtYWxsb2MoKSAqLwogI2RlZmlu ZSBWTV9NQVAJCTB4MDAwMDAwMDQJLyogdm1hcCgpZWQgcGFnZXMgKi8KKyNkZWZpbmUgVk1fQk9P VE1FTQkweDAwMDAwMDA4CS8qIGFsbG9jYXRlZCBmcm9tIGJvb3RtZW0gKi8KIC8qIGJpdHMgWzIw Li4zMl0gcmVzZXJ2ZWQgZm9yIGFyY2ggc3BlY2lmaWMgaW9yZW1hcCBpbnRlcm5hbHMgKi8KIAog LyoKQEAgLTUwLDYgKzUxLDcgQEAgZXh0ZXJuIHN0cnVjdCB2bV9zdHJ1Y3QgKl9fZ2V0X3ZtX2Fy ZWEodQogCQkJCQl1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7CiBleHRl cm4gc3RydWN0IHZtX3N0cnVjdCAqcmVtb3ZlX3ZtX2FyZWEodm9pZCAqYWRkcik7CiBleHRlcm4g c3RydWN0IHZtX3N0cnVjdCAqX19yZW1vdmVfdm1fYXJlYSh2b2lkICphZGRyKTsKK2V4dGVybiB2 b2lkIGZyZWVfdm1fYXJlYShzdHJ1Y3Qgdm1fc3RydWN0ICphcmVhKTsKIGV4dGVybiBpbnQgbWFw X3ZtX2FyZWEoc3RydWN0IHZtX3N0cnVjdCAqYXJlYSwgcGdwcm90X3QgcHJvdCwKIAkJCXN0cnVj dCBwYWdlICoqKnBhZ2VzKTsKIGV4dGVybiB2b2lkIHVubWFwX3ZtX2FyZWEoc3RydWN0IHZtX3N0 cnVjdCAqYXJlYSk7CkluZGV4OiAyLjYuMTQtbmxrZC9tbS9wYWdlX2FsbG9jLmMKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gMi42LjE0LW5sa2Qub3JpZy9tbS9wYWdlX2FsbG9jLmMJMjAwNS0xMS0wOSAxMDo0MDox OC4wMDAwMDAwMDAgKzAxMDAKKysrIDIuNi4xNC1ubGtkL21tL3BhZ2VfYWxsb2MuYwkyMDA1LTEx LTA0IDE2OjE5OjM1LjAwMDAwMDAwMCArMDEwMApAQCAtOTkyLDYgKzk5MiwxNSBAQCBmYXN0Y2Fs bCB1bnNpZ25lZCBsb25nIGdldF96ZXJvZWRfcGFnZShnCiB7CiAJc3RydWN0IHBhZ2UgKiBwYWdl OwogCisJaWYgKHVubGlrZWx5KCF0b3RhbHJhbV9wYWdlcykpIHsKKwkJLyogVGhpcyBleGlzdHMg c29sZWx5IGZvciBwYWdlIHRhYmxlIGFsbG9jYXRpb247IHBhZ2VzCisJCSAgIGFsbG9jYXRlZCB0 aGlzIHdheSBtdXN0IG5ldmVyIGJlIGZyZWVkISAqLworCQl2b2lkICphZGRyZXNzID0gYWxsb2Nf Ym9vdG1lbV9wYWdlcyhQQUdFX1NJWkUpOworCisJCWNsZWFyX3BhZ2UoYWRkcmVzcyk7CisJCXJl dHVybiAodW5zaWduZWQgbG9uZykgYWRkcmVzczsKKwl9CisKIAkvKgogCSAqIGdldF96ZXJvZWRf cGFnZSgpIHJldHVybnMgYSAzMi1iaXQgYWRkcmVzcywgd2hpY2ggY2Fubm90IHJlcHJlc2VudAog CSAqIGEgaGlnaG1lbSBwYWdlCkluZGV4OiAyLjYuMTQtbmxrZC9tbS92bWFsbG9jLmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gMi42LjE0LW5sa2Qub3JpZy9tbS92bWFsbG9jLmMJMjAwNS0xMS0wOSAxMDo0MDox OC4wMDAwMDAwMDAgKzAxMDAKKysrIDIuNi4xNC1ubGtkL21tL3ZtYWxsb2MuYwkyMDA1LTExLTA0 IDE2OjE5OjM1LjAwMDAwMDAwMCArMDEwMApAQCAtMTEsNiArMTEsNyBAQAogI2luY2x1ZGUgPGxp bnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KICNpbmNsdWRlIDxsaW51 eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgogI2luY2x1ZGUgPGxpbnV4L3Nw aW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAKQEAgLTE3NywyMCArMTc4 LDI0IEBAIHN0cnVjdCB2bV9zdHJ1Y3QgKl9fZ2V0X3ZtX2FyZWEodW5zaWduZWQKIAl9CiAJYWRk ciA9IEFMSUdOKHN0YXJ0LCBhbGlnbik7CiAJc2l6ZSA9IFBBR0VfQUxJR04oc2l6ZSk7Ci0KLQlh cmVhID0ga21hbGxvYyhzaXplb2YoKmFyZWEpLCBHRlBfS0VSTkVMKTsKLQlpZiAodW5saWtlbHko IWFyZWEpKQotCQlyZXR1cm4gTlVMTDsKLQotCWlmICh1bmxpa2VseSghc2l6ZSkpIHsKLQkJa2Zy ZWUgKGFyZWEpOworCWlmICh1bmxpa2VseSghc2l6ZSkpCiAJCXJldHVybiBOVUxMOwotCX0KLQog CS8qCiAJICogV2UgYWx3YXlzIGFsbG9jYXRlIGEgZ3VhcmQgcGFnZS4KIAkgKi8KIAlzaXplICs9 IFBBR0VfU0laRTsKKwlpZiAodW5saWtlbHkoIXNpemUpKQorCQlyZXR1cm4gTlVMTDsKKworCUJV R19PTihmbGFncyAmIFZNX0JPT1RNRU0pOworCWlmIChsaWtlbHkobWFsbG9jX3NpemVzLT5jc19j YWNoZXApKQorCQlhcmVhID0ga21hbGxvYyhzaXplb2YoKmFyZWEpLCBHRlBfS0VSTkVMKTsKKwll bHNlIHsKKwkJYXJlYSA9IGFsbG9jX2Jvb3RtZW0oc2l6ZW9mKCphcmVhKSk7CisJCWZsYWdzIHw9 IFZNX0JPT1RNRU07CisJfQorCWlmICh1bmxpa2VseSghYXJlYSkpCisJCXJldHVybiBOVUxMOwog CiAJd3JpdGVfbG9jaygmdm1saXN0X2xvY2spOwogCWZvciAocCA9ICZ2bWxpc3Q7ICh0bXAgPSAq cCkgIT0gTlVMTCA7cCA9ICZ0bXAtPm5leHQpIHsKQEAgLTIyNSw3ICsyMzAsNyBAQCBmb3VuZDoK IAogb3V0OgogCXdyaXRlX3VubG9jaygmdm1saXN0X2xvY2spOwotCWtmcmVlKGFyZWEpOworCWZy ZWVfdm1fYXJlYShhcmVhKTsKIAlpZiAocHJpbnRrX3JhdGVsaW1pdCgpKQogCQlwcmludGsoS0VS Tl9XQVJOSU5HICJhbGxvY2F0aW9uIGZhaWxlZDogb3V0IG9mIHZtYWxsb2Mgc3BhY2UgLSB1c2Ug dm1hbGxvYz08c2l6ZT4gdG8gaW5jcmVhc2Ugc2l6ZS5cbiIpOwogCXJldHVybiBOVUxMOwpAQCAt Mjg2LDYgKzI5MSwxNCBAQCBzdHJ1Y3Qgdm1fc3RydWN0ICpyZW1vdmVfdm1fYXJlYSh2b2lkICph CiAJcmV0dXJuIHY7CiB9CiAKK3ZvaWQgZnJlZV92bV9hcmVhKHN0cnVjdCB2bV9zdHJ1Y3QgKmFy ZWEpCit7CisJaWYgKGxpa2VseSghKGFyZWEtPmZsYWdzICYgVk1fQk9PVE1FTSkpKQorCQlrZnJl ZShhcmVhKTsKKwllbHNlIGlmICghbWFsbG9jX3NpemVzLT5jc19jYWNoZXApCisJCWZyZWVfYm9v dG1lbSh2aXJ0X3RvX3BoeXMoYXJlYSksIHNpemVvZigqYXJlYSkpOworfQorCiB2b2lkIF9fdnVu bWFwKHZvaWQgKmFkZHIsIGludCBkZWFsbG9jYXRlX3BhZ2VzKQogewogCXN0cnVjdCB2bV9zdHJ1 Y3QgKmFyZWE7CkBAIC0zMjIsNyArMzM1LDcgQEAgdm9pZCBfX3Z1bm1hcCh2b2lkICphZGRyLCBp bnQgZGVhbGxvY2F0ZQogCQkJa2ZyZWUoYXJlYS0+cGFnZXMpOwogCX0KIAotCWtmcmVlKGFyZWEp OworCWZyZWVfdm1fYXJlYShhcmVhKTsKIAlyZXR1cm47CiB9CiAKQEAgLTQxMiw3ICs0MjUsNyBA QCB2b2lkICpfX3ZtYWxsb2NfYXJlYShzdHJ1Y3Qgdm1fc3RydWN0ICphCiAJYXJlYS0+cGFnZXMg PSBwYWdlczsKIAlpZiAoIWFyZWEtPnBhZ2VzKSB7CiAJCXJlbW92ZV92bV9hcmVhKGFyZWEtPmFk ZHIpOwotCQlrZnJlZShhcmVhKTsKKwkJZnJlZV92bV9hcmVhKGFyZWEpOwogCQlyZXR1cm4gTlVM TDsKIAl9CiAJbWVtc2V0KGFyZWEtPnBhZ2VzLCAwLCBhcnJheV9zaXplKTsK --=__Part2B091772.0__=--