Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S261762AbVAYK35 (ORCPT ); Tue, 25 Jan 2005 05:29:57 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S261880AbVAYK35 (ORCPT ); Tue, 25 Jan 2005 05:29:57 -0500 Received: from scrub.xs4all.nl ([194.109.195.176]:39059 "EHLO scrub.xs4all.nl") by vger.kernel.org with ESMTP id S261762AbVAYK2x (ORCPT ); Tue, 25 Jan 2005 05:28:53 -0500 Date: Tue, 25 Jan 2005 11:27:31 +0100 (CET) From: Roman Zippel X-X-Sender: roman@scrub.home To: Andrew Morton cc: Zwane Mwaikambo , linux-kernel@vger.kernel.org Subject: Re: 2.6.11-rc2-mm1 kernel BUG at kernel/workqueue.c:104 In-Reply-To: <20050125001424.481a9a19.akpm@osdl.org> Message-ID: References: <20050124214356.6bed35ac.akpm@osdl.org> <20050125001424.481a9a19.akpm@osdl.org> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1463811837-1513816429-1106648851=:30794" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 39650 Lines: 669 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---1463811837-1513816429-1106648851=:30794 Content-Type: TEXT/PLAIN; charset=US-ASCII Hi, On Tue, 25 Jan 2005, Andrew Morton wrote: > Roman, binary searching indicates that the bug was introduced by > merge-vt_struct-into-vc_data.patch. The latest version. Ok, that bug is now really embarrassing. :) I removed a bit too much from con_close. bye, Roman diff -ur -X /home/devel/roman/nodiff linux-2.6.11-rc2-mm1.org/drivers/char/vt.c linux-2.6.11-rc2-mm1/drivers/char/vt.c --- linux-2.6.11-rc2-mm1.org/drivers/char/vt.c 2005-01-24 14:16:18.000000000 +0100 +++ linux-2.6.11-rc2-mm1/drivers/char/vt.c 2005-01-25 11:10:22.000000000 +0100 @@ -2474,6 +2476,10 @@ down(&tty_sem); acquire_console_sem(); if (tty && tty->count == 1) { + struct vc_data *vc = tty->driver_data; + + if (vc) + vc->vc_tty = NULL; tty->driver_data = NULL; release_console_sem(); vcs_remove_devfs(tty); ---1463811837-1513816429-1106648851=:30794 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="merge-vt_struct-into-vc_data.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="merge-vt_struct-into-vc_data.patch" DQpGcm9tOiBSb21hbiBaaXBwZWwgPHppcHBlbEBsaW51eC1tNjhrLm9yZz4N Cg0KVGhlIHZ0X3N0cnVjdCBhbmQgdmNfZGF0YSBhcmUgYWx3YXlzIGFsbG9j YXRlZCB0b2dldGhlciwgc28gdGhlcmUgaXMgbm8gbmVlZA0KZm9yIGEgc2Vw YXJhdGUgdnRfc3RydWN0IHN0cnVjdHVyZS4NCg0KU2lnbmVkLW9mZi1ieTog Um9tYW4gWmlwcGVsIDx6aXBwZWxAbGludXgtbTY4ay5vcmc+DQpTaWduZWQt b2ZmLWJ5OiBBbmRyZXcgTW9ydG9uIDxha3BtQG9zZGwub3JnPg0KLS0tDQoN CiBkcml2ZXJzL2NoYXIvc2VsZWN0aW9uLmMgICAgICAgfCAgICA2ICstDQog ZHJpdmVycy9jaGFyL3Z0LmMgICAgICAgICAgICAgIHwgICA4OCArKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIGRyaXZlcnMvY2hh ci92dF9pb2N0bC5jICAgICAgICB8ICAgOTMgKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiBkcml2ZXJzL3ZpZGVvL2NvbnNv bGUvZmJjb24uYyAgfCAgIDQ0ICsrKysrKysrLS0tLS0tLS0tLS0NCiBkcml2 ZXJzL3ZpZGVvL2NvbnNvbGUvc3RpY29uLmMgfCAgIDEwICstLS0NCiBkcml2 ZXJzL3ZpZGVvL3N1bjNmYi5jICAgICAgICAgfCAgICAyIA0KIGZzL2NvbXBh dF9pb2N0bC5jICAgICAgICAgICAgICB8ICAgIDkgKystDQogaW5jbHVkZS9s aW51eC9jb25zb2xlX3N0cnVjdC5oIHwgICAgNyArKy0NCiBpbmNsdWRlL2xp bnV4L3Z0X2tlcm4uaCAgICAgICAgfCAgICA5IC0tLQ0KIDkgZmlsZXMgY2hh bmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDE1NCBkZWxldGlvbnMoLSkNCg0K SW5kZXg6IGxpbnV4LTIuNi4xMS1yYzItbW0xL2RyaXZlcnMvY2hhci9zZWxl Y3Rpb24uYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGxpbnV4LTIu Ni4xMS1yYzItbW0xLm9yaWcvZHJpdmVycy9jaGFyL3NlbGVjdGlvbi5jCTIw MDUtMDEtMjQgMTU6MDI6MDQuMDAwMDAwMDAwICswMTAwDQorKysgbGludXgt Mi42LjExLXJjMi1tbTEvZHJpdmVycy9jaGFyL3NlbGVjdGlvbi5jCTIwMDUt MDEtMjQgMTU6MDU6MTguMDAwMDAwMDAwICswMTAwDQpAQCAtMjc1LDcgKzI3 NSw3IEBAIGludCBzZXRfc2VsZWN0aW9uKGNvbnN0IHN0cnVjdCB0aW9jbF9z ZWwNCiAgKi8NCiBpbnQgcGFzdGVfc2VsZWN0aW9uKHN0cnVjdCB0dHlfc3Ry dWN0ICp0dHkpDQogew0KLQlzdHJ1Y3QgdnRfc3RydWN0ICp2dCA9IChzdHJ1 Y3QgdnRfc3RydWN0ICopIHR0eS0+ZHJpdmVyX2RhdGE7DQorCXN0cnVjdCB2 Y19kYXRhICp2YyA9IChzdHJ1Y3QgdmNfZGF0YSAqKXR0eS0+ZHJpdmVyX2Rh dGE7DQogCWludAlwYXN0ZWQgPSAwLCBjb3VudDsNCiAJc3RydWN0ICB0dHlf bGRpc2MgKmxkOw0KIAlERUNMQVJFX1dBSVRRVUVVRSh3YWl0LCBjdXJyZW50 KTsNCkBAIC0yODYsNyArMjg2LDcgQEAgaW50IHBhc3RlX3NlbGVjdGlvbihz dHJ1Y3QgdHR5X3N0cnVjdCAqdA0KIA0KIAlsZCA9IHR0eV9sZGlzY19yZWZf d2FpdCh0dHkpOw0KIAkNCi0JYWRkX3dhaXRfcXVldWUoJnZ0LT5wYXN0ZV93 YWl0LCAmd2FpdCk7DQorCWFkZF93YWl0X3F1ZXVlKCZ2Yy0+cGFzdGVfd2Fp dCwgJndhaXQpOw0KIAl3aGlsZSAoc2VsX2J1ZmZlciAmJiBzZWxfYnVmZmVy X2x0aCA+IHBhc3RlZCkgew0KIAkJc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19J TlRFUlJVUFRJQkxFKTsNCiAJCWlmICh0ZXN0X2JpdChUVFlfVEhST1RUTEVE LCAmdHR5LT5mbGFncykpIHsNCkBAIC0yOTgsNyArMjk4LDcgQEAgaW50IHBh c3RlX3NlbGVjdGlvbihzdHJ1Y3QgdHR5X3N0cnVjdCAqdA0KIAkJdHR5LT5s ZGlzYy5yZWNlaXZlX2J1Zih0dHksIHNlbF9idWZmZXIgKyBwYXN0ZWQsIE5V TEwsIGNvdW50KTsNCiAJCXBhc3RlZCArPSBjb3VudDsNCiAJfQ0KLQlyZW1v dmVfd2FpdF9xdWV1ZSgmdnQtPnBhc3RlX3dhaXQsICZ3YWl0KTsNCisJcmVt b3ZlX3dhaXRfcXVldWUoJnZjLT5wYXN0ZV93YWl0LCAmd2FpdCk7DQogCWN1 cnJlbnQtPnN0YXRlID0gVEFTS19SVU5OSU5HOw0KIA0KIAl0dHlfbGRpc2Nf ZGVyZWYobGQpOw0KSW5kZXg6IGxpbnV4LTIuNi4xMS1yYzItbW0xL2RyaXZl cnMvY2hhci92dC5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gbGlu dXgtMi42LjExLXJjMi1tbTEub3JpZy9kcml2ZXJzL2NoYXIvdnQuYwkyMDA1 LTAxLTI0IDE1OjA1OjEzLjAwMDAwMDAwMCArMDEwMA0KKysrIGxpbnV4LTIu Ni4xMS1yYzItbW0xL2RyaXZlcnMvY2hhci92dC5jCTIwMDUtMDEtMjUgMTE6 MTA6MjIuMDAwMDAwMDAwICswMTAwDQpAQCAtNTQ3LDcgKzU0Nyw3IEBAIHN0 YXRpYyB2b2lkIGhpZGVfY3Vyc29yKHN0cnVjdCB2Y19kYXRhICoNCiBzdGF0 aWMgdm9pZCBzZXRfY3Vyc29yKHN0cnVjdCB2Y19kYXRhICp2YykNCiB7DQog CWlmICghSVNfRkcodmMpIHx8IGNvbnNvbGVfYmxhbmtlZCB8fA0KLQkgICAg dmMtPnZjX3Z0LT52Y19tb2RlID09IEtEX0dSQVBISUNTKQ0KKwkgICAgdmMt PnZjX21vZGUgPT0gS0RfR1JBUEhJQ1MpDQogCQlyZXR1cm47DQogCWlmICh2 Yy0+dmNfZGVjY20pIHsNCiAJCWlmICh2YyA9PSBzZWxfY29ucykNCkBAIC02 NDIsNyArNjQyLDcgQEAgdm9pZCByZWRyYXdfc2NyZWVuKHN0cnVjdCB2Y19k YXRhICp2YywgaQ0KIAkJCXVwZGF0ZV9hdHRyKHZjKTsNCiAJCQljbGVhcl9i dWZmZXJfYXR0cmlidXRlcyh2Yyk7DQogCQl9DQotCQlpZiAodXBkYXRlICYm IHZ0X2NvbnNbdmMtPnZjX251bV0tPnZjX21vZGUgIT0gS0RfR1JBUEhJQ1Mp DQorCQlpZiAodXBkYXRlICYmIHZjLT52Y19tb2RlICE9IEtEX0dSQVBISUNT KQ0KIAkJCWRvX3VwZGF0ZV9yZWdpb24odmMsIHZjLT52Y19vcmlnaW4sIHZj LT52Y19zY3JlZW5idWZfc2l6ZSAvIDIpOw0KIAl9DQogCXNldF9jdXJzb3Io dmMpOw0KQEAgLTY5NSw3ICs2OTUsNiBAQCBpbnQgdmNfYWxsb2NhdGUodW5z aWduZWQgaW50IGN1cnJjb25zKQkvDQogCQlyZXR1cm4gLUVOWElPOw0KIAlp ZiAoIXZjX2NvbnNbY3VycmNvbnNdLmQpIHsNCiAJICAgIHN0cnVjdCB2Y19k YXRhICp2YzsNCi0JICAgIGxvbmcgcCwgcTsNCiANCiAJICAgIC8qIHByZXZl bnQgdXNlcnMgZnJvbSB0YWtpbmcgdG9vIG11Y2ggbWVtb3J5ICovDQogCSAg ICBpZiAoY3VycmNvbnMgPj0gTUFYX05SX1VTRVJfQ09OU09MRVMgJiYgIWNh cGFibGUoQ0FQX1NZU19SRVNPVVJDRSkpDQpAQCAtNzA3LDI0ICs3MDYsMjAg QEAgaW50IHZjX2FsbG9jYXRlKHVuc2lnbmVkIGludCBjdXJyY29ucykJLw0K IAkgICAgLyogYWx0aG91Z2ggdGhlIG51bWJlcnMgYWJvdmUgYXJlIG5vdCB2 YWxpZCBzaW5jZSBsb25nIGFnbywgdGhlDQogCSAgICAgICBwb2ludCBpcyBz dGlsbCB1cC10by1kYXRlIGFuZCB0aGUgY29tbWVudCBzdGlsbCBoYXMgaXRz IHZhbHVlDQogCSAgICAgICBldmVuIGlmIG9ubHkgYXMgYSBoaXN0b3JpY2Fs IGFydGlmYWN0LiAgLS1taiwgSnVseSAxOTk4ICovDQotCSAgICBwID0gKGxv bmcpIGttYWxsb2Moc2l6ZW9mKHN0cnVjdCB2Y19kYXRhKSArIHNpemVvZihz dHJ1Y3QgdnRfc3RydWN0KSwgR0ZQX0tFUk5FTCk7DQotCSAgICBpZiAoIXAp DQorCSAgICB2YyA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCB2Y19kYXRhKSwg R0ZQX0tFUk5FTCk7DQorCSAgICBpZiAoIXZjKQ0KIAkJcmV0dXJuIC1FTk9N RU07DQotCSAgICBtZW1zZXQoKHZvaWQgKilwLCAwLCBzaXplb2Yoc3RydWN0 IHZjX2RhdGEpICsgc2l6ZW9mKHN0cnVjdCB2dF9zdHJ1Y3QpKTsNCi0JICAg IHZjX2NvbnNbY3VycmNvbnNdLmQgPSB2YyA9IChzdHJ1Y3QgdmNfZGF0YSAq KXA7DQotCSAgICB2dF9jb25zW2N1cnJjb25zXSA9IChzdHJ1Y3QgdnRfc3Ry dWN0ICopKHArc2l6ZW9mKHN0cnVjdCB2Y19kYXRhKSk7DQotCSAgICB2Y19j b25zW2N1cnJjb25zXS5kLT52Y192dCA9IHZ0X2NvbnNbY3VycmNvbnNdOw0K KwkgICAgbWVtc2V0KHZjLCAwLCBzaXplb2YoKnZjKSk7DQorCSAgICB2Y19j b25zW2N1cnJjb25zXS5kID0gdmM7DQogCSAgICB2aXN1YWxfaW5pdCh2Yywg Y3VycmNvbnMsIDEpOw0KIAkgICAgaWYgKCEqdmMtPnZjX3VuaV9wYWdlZGly X2xvYykNCiAJCWNvbl9zZXRfZGVmYXVsdF91bmltYXAodmMpOw0KLQkgICAg cSA9IChsb25nKWttYWxsb2ModmMtPnZjX3NjcmVlbmJ1Zl9zaXplLCBHRlBf S0VSTkVMKTsNCi0JICAgIGlmICghcSkgew0KLQkJa2ZyZWUoKGNoYXIgKikg cCk7DQorCSAgICB2Yy0+dmNfc2NyZWVuYnVmID0ga21hbGxvYyh2Yy0+dmNf c2NyZWVuYnVmX3NpemUsIEdGUF9LRVJORUwpOw0KKwkgICAgaWYgKCF2Yy0+ dmNfc2NyZWVuYnVmKSB7DQorCQlrZnJlZSh2Yyk7DQogCQl2Y19jb25zW2N1 cnJjb25zXS5kID0gTlVMTDsNCi0JCXZ0X2NvbnNbY3VycmNvbnNdID0gTlVM TDsNCiAJCXJldHVybiAtRU5PTUVNOw0KIAkgICAgfQ0KLQkgICAgdmMtPnZj X3NjcmVlbmJ1ZiA9ICh1bnNpZ25lZCBzaG9ydCAqKXE7DQogCSAgICB2Yy0+ dmNfa21hbGxvY2VkID0gMTsNCiAJICAgIHZjX2luaXQodmMsIHZjLT52Y19y b3dzLCB2Yy0+dmNfY29scywgMSk7DQogDQpAQCAtNzQyLDcgKzczNyw3IEBA IGlubGluZSBpbnQgcmVzaXplX3NjcmVlbihzdHJ1Y3QgdmNfZGF0YSANCiAJ LyogUmVzaXplcyB0aGUgcmVzb2x1dGlvbiBvZiB0aGUgZGlzcGxheSBhZGFw YXRlciAqLw0KIAlpbnQgZXJyID0gMDsNCiANCi0JaWYgKHZ0X2NvbnNbdmMt PnZjX251bV0tPnZjX21vZGUgIT0gS0RfR1JBUEhJQ1MgJiYgdmMtPnZjX3N3 LT5jb25fcmVzaXplKQ0KKwlpZiAodmMtPnZjX21vZGUgIT0gS0RfR1JBUEhJ Q1MgJiYgdmMtPnZjX3N3LT5jb25fcmVzaXplKQ0KIAkJZXJyID0gdmMtPnZj X3N3LT5jb25fcmVzaXplKHZjLCB3aWR0aCwgaGVpZ2h0KTsNCiAJcmV0dXJu IGVycjsNCiB9DQpAQCAtMTkwNiw3ICsxOTAxLDYgQEAgc3RhdGljIGludCBk b19jb25fd3JpdGUoc3RydWN0IHR0eV9zdHJ1Yw0KIAlpbnQgYywgdGMsIG9r LCBuID0gMCwgZHJhd194ID0gLTE7DQogCXVuc2lnbmVkIGludCBjdXJyY29u czsNCiAJdW5zaWduZWQgbG9uZyBkcmF3X2Zyb20gPSAwLCBkcmF3X3RvID0g MDsNCi0Jc3RydWN0IHZ0X3N0cnVjdCAqdnQ7DQogCXN0cnVjdCB2Y19kYXRh ICp2YzsNCiAJdTE2IGhpbWFzaywgY2hhcm1hc2s7DQogCWNvbnN0IHVuc2ln bmVkIGNoYXIgKm9yaWdfYnVmID0gTlVMTDsNCkBAIC0xOTE4LDE0ICsxOTEy LDE0IEBAIHN0YXRpYyBpbnQgZG9fY29uX3dyaXRlKHN0cnVjdCB0dHlfc3Ry dWMNCiAJbWlnaHRfc2xlZXAoKTsNCiANCiAJYWNxdWlyZV9jb25zb2xlX3Nl bSgpOw0KLQl2dCA9IHR0eS0+ZHJpdmVyX2RhdGE7DQotCWlmICh2dCA9PSBO VUxMKSB7DQorCXZjID0gdHR5LT5kcml2ZXJfZGF0YTsNCisJaWYgKHZjID09 IE5VTEwpIHsNCiAJCXByaW50ayhLRVJOX0VSUiAidnQ6IGFyZ2gsIGRyaXZl cl9kYXRhIGlzIE5VTEwgIVxuIik7DQogCQlyZWxlYXNlX2NvbnNvbGVfc2Vt KCk7DQogCQlyZXR1cm4gMDsNCiAJfQ0KIA0KLQljdXJyY29ucyA9IHZ0LT52 Y19udW07DQorCWN1cnJjb25zID0gdmMtPnZjX251bTsNCiAJaWYgKCF2Y19j b25zX2FsbG9jYXRlZChjdXJyY29ucykpIHsNCiAJICAgIC8qIGNvdWxkIHRo aXMgaGFwcGVuPyAqLw0KIAkgICAgc3RhdGljIGludCBlcnJvciA9IDA7DQpA QCAtMTkzNiw3ICsxOTMwLDYgQEAgc3RhdGljIGludCBkb19jb25fd3JpdGUo c3RydWN0IHR0eV9zdHJ1Yw0KIAkgICAgcmVsZWFzZV9jb25zb2xlX3NlbSgp Ow0KIAkgICAgcmV0dXJuIDA7DQogCX0NCi0JdmMgPSB2Y19jb25zW2N1cnJj b25zXS5kOw0KIAlyZWxlYXNlX2NvbnNvbGVfc2VtKCk7DQogDQogCW9yaWdf YnVmID0gYnVmOw0KQEAgLTE5NTEsOCArMTk0NCw4IEBAIHN0YXRpYyBpbnQg ZG9fY29uX3dyaXRlKHN0cnVjdCB0dHlfc3RydWMNCiANCiAJYWNxdWlyZV9j b25zb2xlX3NlbSgpOw0KIA0KLQl2dCA9IHR0eS0+ZHJpdmVyX2RhdGE7DQot CWlmICh2dCA9PSBOVUxMKSB7DQorCXZjID0gdHR5LT5kcml2ZXJfZGF0YTsN CisJaWYgKHZjID09IE5VTEwpIHsNCiAJCXByaW50ayhLRVJOX0VSUiAidnQ6 IGFyZ2gsIGRyaXZlcl9kYXRhIF9iZWNhbWVfIE5VTEwgIVxuIik7DQogCQly ZWxlYXNlX2NvbnNvbGVfc2VtKCk7DQogCQlnb3RvIG91dDsNCkBAIC0yMTE3 LDcgKzIxMTAsNyBAQCBzdGF0aWMgdm9pZCBjb25zb2xlX2NhbGxiYWNrKHZv aWQgKmlnbm9yDQogCWlmIChzY3JvbGxiYWNrX2RlbHRhKSB7DQogCQlzdHJ1 Y3QgdmNfZGF0YSAqdmMgPSB2Y19jb25zW2ZnX2NvbnNvbGVdLmQ7DQogCQlj bGVhcl9zZWxlY3Rpb24oKTsNCi0JCWlmICh2dF9jb25zW3ZjLT52Y19udW1d LT52Y19tb2RlID09IEtEX1RFWFQpDQorCQlpZiAodmMtPnZjX21vZGUgPT0g S0RfVEVYVCkNCiAJCQl2Yy0+dmNfc3ctPmNvbl9zY3JvbGxkZWx0YSh2Yywg c2Nyb2xsYmFja19kZWx0YSk7DQogCQlzY3JvbGxiYWNrX2RlbHRhID0gMDsN CiAJfQ0KQEAgLTIxNzEsNyArMjE2NCw3IEBAIHZvaWQgdnRfY29uc29sZV9w cmludChzdHJ1Y3QgY29uc29sZSAqY28NCiAJCWdvdG8gcXVpdDsNCiAJfQ0K IA0KLQlpZiAodnRfY29uc1t2Yy0+dmNfbnVtXS0+dmNfbW9kZSAhPSBLRF9U RVhUKQ0KKwlpZiAodmMtPnZjX21vZGUgIT0gS0RfVEVYVCkNCiAJCWdvdG8g cXVpdDsNCiANCiAJLyogdW5kcmF3IGN1cnNvciBmaXJzdCAqLw0KQEAgLTIz OTIsOSArMjM4NSw5IEBAIHN0YXRpYyB2b2lkIGNvbl90aHJvdHRsZShzdHJ1 Y3QgdHR5X3N0cnUNCiANCiBzdGF0aWMgdm9pZCBjb25fdW50aHJvdHRsZShz dHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KQ0KIHsNCi0Jc3RydWN0IHZ0X3N0cnVj dCAqdnQgPSB0dHktPmRyaXZlcl9kYXRhOw0KKwlzdHJ1Y3QgdmNfZGF0YSAq dmMgPSB0dHktPmRyaXZlcl9kYXRhOw0KIA0KLQl3YWtlX3VwX2ludGVycnVw dGlibGUoJnZ0LT5wYXN0ZV93YWl0KTsNCisJd2FrZV91cF9pbnRlcnJ1cHRp YmxlKCZ2Yy0+cGFzdGVfd2FpdCk7DQogfQ0KIA0KIC8qDQpAQCAtMjQyOSwx NiArMjQyMiwxNiBAQCBzdGF0aWMgdm9pZCBjb25fc3RhcnQoc3RydWN0IHR0 eV9zdHJ1Y3QgDQogDQogc3RhdGljIHZvaWQgY29uX2ZsdXNoX2NoYXJzKHN0 cnVjdCB0dHlfc3RydWN0ICp0dHkpDQogew0KLQlzdHJ1Y3QgdnRfc3RydWN0 ICp2dDsNCisJc3RydWN0IHZjX2RhdGEgKnZjOw0KIA0KIAlpZiAoaW5faW50 ZXJydXB0KCkpCS8qIGZyb20gZmx1c2hfdG9fbGRpc2MgKi8NCiAJCXJldHVy bjsNCiANCiAJLyogaWYgd2UgcmFjZSB3aXRoIGNvbl9jbG9zZSgpLCB2dCBt YXkgYmUgbnVsbCAqLw0KIAlhY3F1aXJlX2NvbnNvbGVfc2VtKCk7DQotCXZ0 ID0gdHR5LT5kcml2ZXJfZGF0YTsNCi0JaWYgKHZ0KQ0KLQkJc2V0X2N1cnNv cih2Y19jb25zW3Z0LT52Y19udW1dLmQpOw0KKwl2YyA9IHR0eS0+ZHJpdmVy X2RhdGE7DQorCWlmICh2YykNCisJCXNldF9jdXJzb3IodmMpOw0KIAlyZWxl YXNlX2NvbnNvbGVfc2VtKCk7DQogfQ0KIA0KQEAgLTI0NTUsOCArMjQ0OCw3 IEBAIHN0YXRpYyBpbnQgY29uX29wZW4oc3RydWN0IHR0eV9zdHJ1Y3QgKnQN CiAJCXJldCA9IHZjX2FsbG9jYXRlKGN1cnJjb25zKTsNCiAJCWlmIChyZXQg PT0gMCkgew0KIAkJCXN0cnVjdCB2Y19kYXRhICp2YyA9IHZjX2NvbnNbY3Vy cmNvbnNdLmQ7DQotCQkJdnRfY29uc1tjdXJyY29uc10tPnZjX251bSA9IGN1 cnJjb25zOw0KLQkJCXR0eS0+ZHJpdmVyX2RhdGEgPSB2dF9jb25zW2N1cnJj b25zXTsNCisJCQl0dHktPmRyaXZlcl9kYXRhID0gdmM7DQogCQkJdmMtPnZj X3R0eSA9IHR0eTsNCiANCiAJCQlpZiAoIXR0eS0+d2luc2l6ZS53c19yb3cg JiYgIXR0eS0+d2luc2l6ZS53c19jb2wpIHsNCkBAIC0yNDg0LDExICsyNDc2 LDEwIEBAIHN0YXRpYyB2b2lkIGNvbl9jbG9zZShzdHJ1Y3QgdHR5X3N0cnVj dCANCiAJZG93bigmdHR5X3NlbSk7DQogCWFjcXVpcmVfY29uc29sZV9zZW0o KTsNCiAJaWYgKHR0eSAmJiB0dHktPmNvdW50ID09IDEpIHsNCi0JCXN0cnVj dCB2dF9zdHJ1Y3QgKnZ0Ow0KKwkJc3RydWN0IHZjX2RhdGEgKnZjID0gdHR5 LT5kcml2ZXJfZGF0YTsNCiANCi0JCXZ0ID0gdHR5LT5kcml2ZXJfZGF0YTsN Ci0JCWlmICh2dCkNCi0JCQl2Y19jb25zW3Z0LT52Y19udW1dLmQtPnZjX3R0 eSA9IE5VTEw7DQorCQlpZiAodmMpDQorCQkJdmMtPnZjX3R0eSA9IE5VTEw7 DQogCQl0dHktPmRyaXZlcl9kYXRhID0gTlVMTDsNCiAJCXJlbGVhc2VfY29u c29sZV9zZW0oKTsNCiAJCXZjc19yZW1vdmVfZGV2ZnModHR5KTsNCkBAIC0y NTI0LDcgKzI1MTUsNyBAQCBzdGF0aWMgdm9pZCB2Y19pbml0KHN0cnVjdCB2 Y19kYXRhICp2YywgDQogCXZjLT52Y19kZWZfY29sb3IgICAgICAgPSAweDA3 OyAgIC8qIHdoaXRlICovDQogCXZjLT52Y191bGNvbG9yCQk9IDB4MGY7ICAg LyogYm9sZCB3aGl0ZSAqLw0KIAl2Yy0+dmNfaGFsZmNvbG9yICAgICAgID0g MHgwODsgICAvKiBncmV5ICovDQotCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnZ0 X2NvbnNbdmMtPnZjX251bV0tPnBhc3RlX3dhaXQpOw0KKwlpbml0X3dhaXRx dWV1ZV9oZWFkKCZ2Yy0+cGFzdGVfd2FpdCk7DQogCXJlc2V0X3Rlcm1pbmFs KHZjLCBkb19jbGVhcik7DQogfQ0KIA0KQEAgLTI1NjEsMTEgKzI1NTIsNyBA QCBzdGF0aWMgaW50IF9faW5pdCBjb25faW5pdCh2b2lkKQ0KIAkgKiBrbWFs bG9jIGlzIG5vdCBydW5uaW5nIHlldCAtIHdlIHVzZSB0aGUgYm9vdG1lbSBh bGxvY2F0b3IuDQogCSAqLw0KIAlmb3IgKGN1cnJjb25zID0gMDsgY3VycmNv bnMgPCBNSU5fTlJfQ09OU09MRVM7IGN1cnJjb25zKyspIHsNCi0JCXZjX2Nv bnNbY3VycmNvbnNdLmQgPSB2YyA9IChzdHJ1Y3QgdmNfZGF0YSAqKQ0KLQkJ CQlhbGxvY19ib290bWVtKHNpemVvZihzdHJ1Y3QgdmNfZGF0YSkpOw0KLQkJ dnRfY29uc1tjdXJyY29uc10gPSAoc3RydWN0IHZ0X3N0cnVjdCAqKQ0KLQkJ CQlhbGxvY19ib290bWVtKHNpemVvZihzdHJ1Y3QgdnRfc3RydWN0KSk7DQot CQl2Y19jb25zW2N1cnJjb25zXS5kLT52Y192dCA9IHZ0X2NvbnNbY3VycmNv bnNdOw0KKwkJdmNfY29uc1tjdXJyY29uc10uZCA9IHZjID0gYWxsb2NfYm9v dG1lbShzaXplb2Yoc3RydWN0IHZjX2RhdGEpKTsNCiAJCXZpc3VhbF9pbml0 KHZjLCBjdXJyY29ucywgMSk7DQogCQl2Yy0+dmNfc2NyZWVuYnVmID0gKHVu c2lnbmVkIHNob3J0ICopYWxsb2NfYm9vdG1lbSh2Yy0+dmNfc2NyZWVuYnVm X3NpemUpOw0KIAkJdmMtPnZjX2ttYWxsb2NlZCA9IDA7DQpAQCAtMjgwMCw3 ICsyNzg3LDcgQEAgdm9pZCBkb19ibGFua19zY3JlZW4oaW50IGVudGVyaW5n X2dmeCkNCiAJfQ0KIA0KIAkvKiBkb24ndCBibGFuayBncmFwaGljcyAqLw0K LQlpZiAodnRfY29uc1t2Yy0+dmNfbnVtXS0+dmNfbW9kZSAhPSBLRF9URVhU KSB7DQorCWlmICh2Yy0+dmNfbW9kZSAhPSBLRF9URVhUKSB7DQogCQljb25z b2xlX2JsYW5rZWQgPSBmZ19jb25zb2xlICsgMTsNCiAJCXJldHVybjsNCiAJ fQ0KQEAgLTI4NDcsNyArMjgzNCw3IEBAIHZvaWQgZG9fdW5ibGFua19zY3Jl ZW4oaW50IGxlYXZpbmdfZ2Z4KQ0KIAkJcmV0dXJuOw0KIAl9DQogCXZjID0g dmNfY29uc1tmZ19jb25zb2xlXS5kOw0KLQlpZiAodnRfY29uc1t2Yy0+dmNf bnVtXS0+dmNfbW9kZSAhPSBLRF9URVhUKQ0KKwlpZiAodmMtPnZjX21vZGUg IT0gS0RfVEVYVCkNCiAJCXJldHVybjsgLyogYnV0IGxlYXZlIGNvbnNvbGVf YmxhbmtlZCAhPSAwICovDQogDQogCWlmIChibGFua2ludGVydmFsKSB7DQpA QCAtMjg5OCw3ICsyODg1LDcgQEAgdm9pZCBwb2tlX2JsYW5rZWRfY29uc29s ZSh2b2lkKQ0KIAlkZWxfdGltZXIoJmNvbnNvbGVfdGltZXIpOw0KIAlibGFu a190aW1lcl9leHBpcmVkID0gMDsNCiANCi0JaWYgKGlnbm9yZV9wb2tlIHx8 ICF2dF9jb25zW2ZnX2NvbnNvbGVdIHx8IHZ0X2NvbnNbZmdfY29uc29sZV0t PnZjX21vZGUgPT0gS0RfR1JBUEhJQ1MpDQorCWlmIChpZ25vcmVfcG9rZSB8 fCAhdmNfY29uc1tmZ19jb25zb2xlXS5kIHx8IHZjX2NvbnNbZmdfY29uc29s ZV0uZC0+dmNfbW9kZSA9PSBLRF9HUkFQSElDUykNCiAJCXJldHVybjsNCiAJ aWYgKGNvbnNvbGVfYmxhbmtlZCkNCiAJCXVuYmxhbmtfc2NyZWVuKCk7DQpA QCAtMjkxNiw3ICsyOTAzLDcgQEAgdm9pZCBzZXRfcGFsZXR0ZShzdHJ1Y3Qg dmNfZGF0YSAqdmMpDQogew0KIAlXQVJOX0NPTlNPTEVfVU5MT0NLRUQoKTsN CiANCi0JaWYgKHZ0X2NvbnNbdmMtPnZjX251bV0tPnZjX21vZGUgIT0gS0Rf R1JBUEhJQ1MpDQorCWlmICh2Yy0+dmNfbW9kZSAhPSBLRF9HUkFQSElDUykN CiAJCXZjLT52Y19zdy0+Y29uX3NldF9wYWxldHRlKHZjLCBjb2xvcl90YWJs ZSk7DQogfQ0KIA0KQEAgLTMwMDksNyArMjk5Niw3IEBAIGludCBjb25fZm9u dF9nZXQoc3RydWN0IHZjX2RhdGEgKnZjLCBzdHINCiAJaW50IHJjID0gLUVJ TlZBTDsNCiAJaW50IGM7DQogDQotCWlmICh2dF9jb25zW3ZjLT52Y19udW1d LT52Y19tb2RlICE9IEtEX1RFWFQpDQorCWlmICh2Yy0+dmNfbW9kZSAhPSBL RF9URVhUKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogDQogCWlmIChvcC0+ZGF0 YSkgew0KQEAgLTMwNjQsNyArMzA1MSw3IEBAIGludCBjb25fZm9udF9zZXQo c3RydWN0IHZjX2RhdGEgKnZjLCBzdHINCiAJaW50IHJjID0gLUVJTlZBTDsN CiAJaW50IHNpemU7DQogDQotCWlmICh2dF9jb25zW3ZjLT52Y19udW1dLT52 Y19tb2RlICE9IEtEX1RFWFQpDQorCWlmICh2Yy0+dmNfbW9kZSAhPSBLRF9U RVhUKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogCWlmICghb3AtPmRhdGEpDQog CQlyZXR1cm4gLUVJTlZBTDsNCkBAIC0zMTIyLDcgKzMxMDksNyBAQCBpbnQg Y29uX2ZvbnRfZGVmYXVsdChzdHJ1Y3QgdmNfZGF0YSAqdmMsDQogCWNoYXIg KnMgPSBuYW1lOw0KIAlpbnQgcmM7DQogDQotCWlmICh2dF9jb25zW3ZjLT52 Y19udW1dLT52Y19tb2RlICE9IEtEX1RFWFQpDQorCWlmICh2Yy0+dmNfbW9k ZSAhPSBLRF9URVhUKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogDQogCWlmICgh b3AtPmRhdGEpDQpAQCAtMzE1MCw3ICszMTM3LDcgQEAgaW50IGNvbl9mb250 X2NvcHkoc3RydWN0IHZjX2RhdGEgKnZjLCBzdA0KIAlpbnQgY29uID0gb3At PmhlaWdodDsNCiAJaW50IHJjOw0KIA0KLQlpZiAodnRfY29uc1t2Yy0+dmNf bnVtXS0+dmNfbW9kZSAhPSBLRF9URVhUKQ0KKwlpZiAodmMtPnZjX21vZGUg IT0gS0RfVEVYVCkNCiAJCXJldHVybiAtRUlOVkFMOw0KIA0KIAlhY3F1aXJl X2NvbnNvbGVfc2VtKCk7DQpAQCAtMzI2Miw3ICszMjQ5LDYgQEAgRVhQT1JU X1NZTUJPTCh2Y19yZXNpemUpOw0KIEVYUE9SVF9TWU1CT0woZmdfY29uc29s ZSk7DQogRVhQT1JUX1NZTUJPTChjb25zb2xlX2JsYW5rX2hvb2spOw0KIEVY UE9SVF9TWU1CT0woY29uc29sZV9ibGFua2VkKTsNCi1FWFBPUlRfU1lNQk9M KHZ0X2NvbnMpOw0KIEVYUE9SVF9TWU1CT0wodmNfY29ucyk7DQogI2lmbmRl ZiBWVF9TSU5HTEVfRFJJVkVSDQogRVhQT1JUX1NZTUJPTCh0YWtlX292ZXJf Y29uc29sZSk7DQpJbmRleDogbGludXgtMi42LjExLXJjMi1tbTEvZHJpdmVy cy9jaGFyL3Z0X2lvY3RsLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t LSBsaW51eC0yLjYuMTEtcmMyLW1tMS5vcmlnL2RyaXZlcnMvY2hhci92dF9p b2N0bC5jCTIwMDUtMDEtMjQgMTU6MDI6MDQuMDAwMDAwMDAwICswMTAwDQor KysgbGludXgtMi42LjExLXJjMi1tbTEvZHJpdmVycy9jaGFyL3Z0X2lvY3Rs LmMJMjAwNS0wMS0yNCAxNTowNToxOC4wMDAwMDAwMDAgKzAxMDANCkBAIC01 Miw4ICs1Miw2IEBAIGV4dGVybiBzdHJ1Y3QgdHR5X2RyaXZlciAqY29uc29s ZV9kcml2ZXINCiAgKiB0byB0aGUgY3VycmVudCBjb25zb2xlIGlzIGRvbmUg YnkgdGhlIG1haW4gaW9jdGwgY29kZS4NCiAgKi8NCiANCi1zdHJ1Y3QgdnRf c3RydWN0ICp2dF9jb25zW01BWF9OUl9DT05TT0xFU107DQotDQogLyogS2V5 Ym9hcmQgdHlwZTogRGVmYXVsdCBpcyBLQl8xMDEsIGJ1dCBjYW4gYmUgc2V0 IGJ5IG1hY2hpbmUNCiAgKiBzcGVjaWZpYyBjb2RlLg0KICAqLw0KQEAgLTM2 NSw4ICszNjMsNyBAQCBkb191bmltYXBfaW9jdGwoaW50IGNtZCwgc3RydWN0 IHVuaW1hcGRlDQogaW50IHZ0X2lvY3RsKHN0cnVjdCB0dHlfc3RydWN0ICp0 dHksIHN0cnVjdCBmaWxlICogZmlsZSwNCiAJICAgICB1bnNpZ25lZCBpbnQg Y21kLCB1bnNpZ25lZCBsb25nIGFyZykNCiB7DQotCXN0cnVjdCB2dF9zdHJ1 Y3QgKnZ0ID0gKHN0cnVjdCB2dF9zdHJ1Y3QgKil0dHktPmRyaXZlcl9kYXRh Ow0KLQlzdHJ1Y3QgdmNfZGF0YSAqdmMgPSB2Y19jb25zW3Z0LT52Y19udW1d LmQ7DQorCXN0cnVjdCB2Y19kYXRhICp2YyA9IChzdHJ1Y3QgdmNfZGF0YSAq KXR0eS0+ZHJpdmVyX2RhdGE7DQogCXN0cnVjdCBjb25zb2xlX2ZvbnRfb3Ag b3A7CS8qIHVzZWQgaW4gbXVsdGlwbGUgcGxhY2VzIGhlcmUgKi8NCiAJc3Ry dWN0IGtiZF9zdHJ1Y3QgKiBrYmQ7DQogCXVuc2lnbmVkIGludCBjb25zb2xl Ow0KQEAgLTM3NCw3ICszNzEsNyBAQCBpbnQgdnRfaW9jdGwoc3RydWN0IHR0 eV9zdHJ1Y3QgKnR0eSwgc3RyDQogCXZvaWQgX191c2VyICp1cCA9ICh2b2lk IF9fdXNlciAqKWFyZzsNCiAJaW50IGksIHBlcm07DQogCQ0KLQljb25zb2xl ID0gdnQtPnZjX251bTsNCisJY29uc29sZSA9IHZjLT52Y19udW07DQogDQog CWlmICghdmNfY29uc19hbGxvY2F0ZWQoY29uc29sZSkpIAkvKiBpbXBvc3Np YmxlPyAqLw0KIAkJcmV0dXJuIC1FTk9JT0NUTENNRDsNCkBAIC00ODcsOSAr NDg0LDkgQEAgaW50IHZ0X2lvY3RsKHN0cnVjdCB0dHlfc3RydWN0ICp0dHks IHN0cg0KIAkJZGVmYXVsdDoNCiAJCQlyZXR1cm4gLUVJTlZBTDsNCiAJCX0N Ci0JCWlmICh2dF9jb25zW2NvbnNvbGVdLT52Y19tb2RlID09ICh1bnNpZ25l ZCBjaGFyKSBhcmcpDQorCQlpZiAodmMtPnZjX21vZGUgPT0gKHVuc2lnbmVk IGNoYXIpIGFyZykNCiAJCQlyZXR1cm4gMDsNCi0JCXZ0X2NvbnNbY29uc29s ZV0tPnZjX21vZGUgPSAodW5zaWduZWQgY2hhcikgYXJnOw0KKwkJdmMtPnZj X21vZGUgPSAodW5zaWduZWQgY2hhcikgYXJnOw0KIAkJaWYgKGNvbnNvbGUg IT0gZmdfY29uc29sZSkNCiAJCQlyZXR1cm4gMDsNCiAJCS8qDQpAQCAtNTA0 LDcgKzUwMSw3IEBAIGludCB2dF9pb2N0bChzdHJ1Y3QgdHR5X3N0cnVjdCAq dHR5LCBzdHINCiAJCXJldHVybiAwOw0KIA0KIAljYXNlIEtER0VUTU9ERToN Ci0JCXVjdmFsID0gdnRfY29uc1tjb25zb2xlXS0+dmNfbW9kZTsNCisJCXVj dmFsID0gdmMtPnZjX21vZGU7DQogCQlnb3RvIHNldGludDsNCiANCiAJY2Fz ZSBLRE1BUERJU1A6DQpAQCAtNjY3LDEyICs2NjQsMTIgQEAgaW50IHZ0X2lv Y3RsKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIHN0cg0KIAkJaWYgKHRtcC5t b2RlICE9IFZUX0FVVE8gJiYgdG1wLm1vZGUgIT0gVlRfUFJPQ0VTUykNCiAJ CQlyZXR1cm4gLUVJTlZBTDsNCiAJCWFjcXVpcmVfY29uc29sZV9zZW0oKTsN Ci0JCXZ0X2NvbnNbY29uc29sZV0tPnZ0X21vZGUgPSB0bXA7DQorCQl2Yy0+ dnRfbW9kZSA9IHRtcDsNCiAJCS8qIHRoZSBmcnNpZyBpcyBpZ25vcmVkLCBz byB3ZSBzZXQgaXQgdG8gMCAqLw0KLQkJdnRfY29uc1tjb25zb2xlXS0+dnRf bW9kZS5mcnNpZyA9IDA7DQotCQl2dF9jb25zW2NvbnNvbGVdLT52dF9waWQg PSBjdXJyZW50LT5waWQ7DQorCQl2Yy0+dnRfbW9kZS5mcnNpZyA9IDA7DQor CQl2Yy0+dnRfcGlkID0gY3VycmVudC0+cGlkOw0KIAkJLyogbm8gc3dpdGNo IGlzIHJlcXVpcmVkIC0tIHNhd0BzaGFkZS5tc3UucnUgKi8NCi0JCXZ0X2Nv bnNbY29uc29sZV0tPnZ0X25ld3Z0ID0gLTE7IA0KKwkJdmMtPnZ0X25ld3Z0 ID0gLTE7DQogCQlyZWxlYXNlX2NvbnNvbGVfc2VtKCk7DQogCQlyZXR1cm4g MDsNCiAJfQ0KQEAgLTY4Myw3ICs2ODAsNyBAQCBpbnQgdnRfaW9jdGwoc3Ry dWN0IHR0eV9zdHJ1Y3QgKnR0eSwgc3RyDQogCQlpbnQgcmM7DQogDQogCQlh Y3F1aXJlX2NvbnNvbGVfc2VtKCk7DQotCQltZW1jcHkoJnRtcCwgJnZ0X2Nv bnNbY29uc29sZV0tPnZ0X21vZGUsIHNpemVvZihzdHJ1Y3QgdnRfbW9kZSkp Ow0KKwkJbWVtY3B5KCZ0bXAsICZ2Yy0+dnRfbW9kZSwgc2l6ZW9mKHN0cnVj dCB2dF9tb2RlKSk7DQogCQlyZWxlYXNlX2NvbnNvbGVfc2VtKCk7DQogDQog CQlyYyA9IGNvcHlfdG9fdXNlcih1cCwgJnRtcCwgc2l6ZW9mKHN0cnVjdCB2 dF9tb2RlKSk7DQpAQCAtNzYxLDMxICs3NTgsMjkgQEAgaW50IHZ0X2lvY3Rs KHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIHN0cg0KIAljYXNlIFZUX1JFTERJ U1A6DQogCQlpZiAoIXBlcm0pDQogCQkJcmV0dXJuIC1FUEVSTTsNCi0JCWlm ICh2dF9jb25zW2NvbnNvbGVdLT52dF9tb2RlLm1vZGUgIT0gVlRfUFJPQ0VT UykNCisJCWlmICh2Yy0+dnRfbW9kZS5tb2RlICE9IFZUX1BST0NFU1MpDQog CQkJcmV0dXJuIC1FSU5WQUw7DQogDQogCQkvKg0KIAkJICogU3dpdGNoaW5n LWZyb20gcmVzcG9uc2UNCiAJCSAqLw0KLQkJaWYgKHZ0X2NvbnNbY29uc29s ZV0tPnZ0X25ld3Z0ID49IDApDQotCQl7DQorCQlpZiAodmMtPnZ0X25ld3Z0 ID49IDApIHsNCiAJCQlpZiAoYXJnID09IDApDQogCQkJCS8qDQogCQkJCSAq IFN3aXRjaCBkaXNhbGxvd2VkLCBzbyBmb3JnZXQgd2Ugd2VyZSB0cnlpbmcN CiAJCQkJICogdG8gZG8gaXQuDQogCQkJCSAqLw0KLQkJCQl2dF9jb25zW2Nv bnNvbGVdLT52dF9uZXd2dCA9IC0xOw0KKwkJCQl2Yy0+dnRfbmV3dnQgPSAt MTsNCiANCi0JCQllbHNlDQotCQkJew0KKwkJCWVsc2Ugew0KIAkJCQkvKg0K IAkJCQkgKiBUaGUgY3VycmVudCB2dCBoYXMgYmVlbiByZWxlYXNlZCwgc28N CiAJCQkJICogY29tcGxldGUgdGhlIHN3aXRjaC4NCiAJCQkJICovDQogCQkJ CWludCBuZXd2dDsNCiAJCQkJYWNxdWlyZV9jb25zb2xlX3NlbSgpOw0KLQkJ CQluZXd2dCA9IHZ0X2NvbnNbY29uc29sZV0tPnZ0X25ld3Z0Ow0KLQkJCQl2 dF9jb25zW2NvbnNvbGVdLT52dF9uZXd2dCA9IC0xOw0KKwkJCQluZXd2dCA9 IHZjLT52dF9uZXd2dDsNCisJCQkJdmMtPnZ0X25ld3Z0ID0gLTE7DQogCQkJ CWkgPSB2Y19hbGxvY2F0ZShuZXd2dCk7DQogCQkJCWlmIChpKSB7DQogCQkJ CQlyZWxlYXNlX2NvbnNvbGVfc2VtKCk7DQpAQCAtMTA1NywxNyArMTA1Miwx NSBAQCBpbnQgdnRfd2FpdGFjdGl2ZShpbnQgdnQpDQogDQogdm9pZCByZXNl dF92YyhzdHJ1Y3QgdmNfZGF0YSAqdmMpDQogew0KLQlzdHJ1Y3QgdnRfc3Ry dWN0ICp2dCA9IHZ0X2NvbnNbdmMtPnZjX251bV07DQotDQotCXZ0LT52Y19t b2RlID0gS0RfVEVYVDsNCisJdmMtPnZjX21vZGUgPSBLRF9URVhUOw0KIAlr YmRfdGFibGVbdmMtPnZjX251bV0ua2JkbW9kZSA9IFZDX1hMQVRFOw0KLQl2 dC0+dnRfbW9kZS5tb2RlID0gVlRfQVVUTzsNCi0JdnQtPnZ0X21vZGUud2Fp dHYgPSAwOw0KLQl2dC0+dnRfbW9kZS5yZWxzaWcgPSAwOw0KLQl2dC0+dnRf bW9kZS5hY3FzaWcgPSAwOw0KLQl2dC0+dnRfbW9kZS5mcnNpZyA9IDA7DQot CXZ0LT52dF9waWQgPSAtMTsNCi0JdnQtPnZ0X25ld3Z0ID0gLTE7DQorCXZj LT52dF9tb2RlLm1vZGUgPSBWVF9BVVRPOw0KKwl2Yy0+dnRfbW9kZS53YWl0 diA9IDA7DQorCXZjLT52dF9tb2RlLnJlbHNpZyA9IDA7DQorCXZjLT52dF9t b2RlLmFjcXNpZyA9IDA7DQorCXZjLT52dF9tb2RlLmZyc2lnID0gMDsNCisJ dmMtPnZ0X3BpZCA9IC0xOw0KKwl2Yy0+dnRfbmV3dnQgPSAtMTsNCiAJaWYg KCFpbl9pbnRlcnJ1cHQoKSkgICAgLyogVmlhIGtleWJvYXJkLmM6U0FLKCkg LSBha3BtICovDQogCQlyZXNldF9wYWxldHRlKHZjKTsNCiB9DQpAQCAtMTA3 Nyw3ICsxMDcwLDYgQEAgdm9pZCByZXNldF92YyhzdHJ1Y3QgdmNfZGF0YSAq dmMpDQogICovDQogdm9pZCBjb21wbGV0ZV9jaGFuZ2VfY29uc29sZShzdHJ1 Y3QgdmNfZGF0YSAqdmMpDQogew0KLQl1bnNpZ25lZCBpbnQgbmV3X2NvbnNv bGUgPSB2Yy0+dmNfbnVtOw0KIAl1bnNpZ25lZCBjaGFyIG9sZF92Y19tb2Rl Ow0KIA0KIAlsYXN0X2NvbnNvbGUgPSBmZ19jb25zb2xlOw0KQEAgLTEwODcs NyArMTA3OSw3IEBAIHZvaWQgY29tcGxldGVfY2hhbmdlX2NvbnNvbGUoc3Ry dWN0IHZjX2QNCiAJICogS0RfVEVYVCBtb2RlIG9yIHZpY2UgdmVyc2EsIHdo aWNoIG1lYW5zIHdlIG5lZWQgdG8gYmxhbmsgb3INCiAJICogdW5ibGFuayB0 aGUgc2NyZWVuIGxhdGVyLg0KIAkgKi8NCi0Jb2xkX3ZjX21vZGUgPSB2dF9j b25zW2ZnX2NvbnNvbGVdLT52Y19tb2RlOw0KKwlvbGRfdmNfbW9kZSA9IHZj X2NvbnNbZmdfY29uc29sZV0uZC0+dmNfbW9kZTsNCiAJc3dpdGNoX3NjcmVl bih2Yyk7DQogDQogCS8qDQpAQCAtMTEwMCw5ICsxMDkyLDggQEAgdm9pZCBj b21wbGV0ZV9jaGFuZ2VfY29uc29sZShzdHJ1Y3QgdmNfZA0KIAkgKiBUbyBh Y2NvdW50IGZvciB0aGlzIHdlIGR1cGxpY2F0ZSB0aGlzIGNvZGUgYmVsb3cg b25seSBpZiB0aGUNCiAJICogY29udHJvbGxpbmcgcHJvY2VzcyBpcyBnb25l IGFuZCB3ZSd2ZSBjYWxsZWQgcmVzZXRfdmMuDQogCSAqLw0KLQlpZiAob2xk X3ZjX21vZGUgIT0gdnRfY29uc1tuZXdfY29uc29sZV0tPnZjX21vZGUpDQot CXsNCi0JCWlmICh2dF9jb25zW25ld19jb25zb2xlXS0+dmNfbW9kZSA9PSBL RF9URVhUKQ0KKwlpZiAob2xkX3ZjX21vZGUgIT0gdmMtPnZjX21vZGUpIHsN CisJCWlmICh2Yy0+dmNfbW9kZSA9PSBLRF9URVhUKQ0KIAkJCWRvX3VuYmxh bmtfc2NyZWVuKDEpOw0KIAkJZWxzZQ0KIAkJCWRvX2JsYW5rX3NjcmVlbigx KTsNCkBAIC0xMTEzLDE3ICsxMTA0LDEzIEBAIHZvaWQgY29tcGxldGVfY2hh bmdlX2NvbnNvbGUoc3RydWN0IHZjX2QNCiAJICogdGVsbGluZyBpdCB0aGF0 IGl0IGhhcyBhY3F1aXJlZC4gQWxzbyBjaGVjayBpZiBpdCBoYXMgZGllZCBh bmQNCiAJICogY2xlYW4gdXAgKHNpbWlsYXIgdG8gbG9naWMgZW1wbG95ZWQg aW4gY2hhbmdlX2NvbnNvbGUoKSkNCiAJICovDQotCWlmICh2dF9jb25zW25l d19jb25zb2xlXS0+dnRfbW9kZS5tb2RlID09IFZUX1BST0NFU1MpDQotCXsN CisJaWYgKHZjLT52dF9tb2RlLm1vZGUgPT0gVlRfUFJPQ0VTUykgew0KIAkJ LyoNCiAJCSAqIFNlbmQgdGhlIHNpZ25hbCBhcyBwcml2aWxlZ2VkIC0ga2ls bF9wcm9jKCkgd2lsbA0KIAkJICogdGVsbCB1cyBpZiB0aGUgcHJvY2VzcyBo YXMgZ29uZSBvciBzb21ldGhpbmcgZWxzZQ0KIAkJICogaXMgYXdyeQ0KIAkJ ICovDQotCQlpZiAoa2lsbF9wcm9jKHZ0X2NvbnNbbmV3X2NvbnNvbGVdLT52 dF9waWQsDQotCQkJICAgICAgdnRfY29uc1tuZXdfY29uc29sZV0tPnZ0X21v ZGUuYWNxc2lnLA0KLQkJCSAgICAgIDEpICE9IDApDQotCQl7DQorCQlpZiAo a2lsbF9wcm9jKHZjLT52dF9waWQsIHZjLT52dF9tb2RlLmFjcXNpZywgMSkg IT0gMCkgew0KIAkJLyoNCiAJCSAqIFRoZSBjb250cm9sbGluZyBwcm9jZXNz IGhhcyBkaWVkLCBzbyB3ZSByZXZlcnQgYmFjayB0bw0KIAkJICogbm9ybWFs IG9wZXJhdGlvbi4gSW4gdGhpcyBjYXNlLCB3ZSdsbCBhbHNvIGNoYW5nZSBi YWNrDQpAQCAtMTEzNSw5ICsxMTIyLDggQEAgdm9pZCBjb21wbGV0ZV9jaGFu Z2VfY29uc29sZShzdHJ1Y3QgdmNfZA0KIAkJICovDQogCQkJcmVzZXRfdmMo dmMpOw0KIA0KLQkJCWlmIChvbGRfdmNfbW9kZSAhPSB2dF9jb25zW25ld19j b25zb2xlXS0+dmNfbW9kZSkNCi0JCQl7DQotCQkJCWlmICh2dF9jb25zW25l d19jb25zb2xlXS0+dmNfbW9kZSA9PSBLRF9URVhUKQ0KKwkJCWlmIChvbGRf dmNfbW9kZSAhPSB2Yy0+dmNfbW9kZSkgew0KKwkJCQlpZiAodmMtPnZjX21v ZGUgPT0gS0RfVEVYVCkNCiAJCQkJCWRvX3VuYmxhbmtfc2NyZWVuKDEpOw0K IAkJCQllbHNlDQogCQkJCQlkb19ibGFua19zY3JlZW4oMSk7DQpAQCAtMTE1 Nyw2ICsxMTQzLDggQEAgdm9pZCBjb21wbGV0ZV9jaGFuZ2VfY29uc29sZShz dHJ1Y3QgdmNfZA0KICAqLw0KIHZvaWQgY2hhbmdlX2NvbnNvbGUoc3RydWN0 IHZjX2RhdGEgKm5ld192YykNCiB7DQorCXN0cnVjdCB2Y19kYXRhICp2YzsN CisNCiAJaWYgKCFuZXdfdmMgfHwgbmV3X3ZjLT52Y19udW0gPT0gZmdfY29u c29sZSB8fCB2dF9kb250X3N3aXRjaCkNCiAJCXJldHVybjsNCiANCkBAIC0x MTc1LDIzICsxMTYzLDIwIEBAIHZvaWQgY2hhbmdlX2NvbnNvbGUoc3RydWN0 IHZjX2RhdGEgKm5ld18NCiAJICogdGhlIHVzZXIgd2FpdHMganVzdCB0aGUg cmlnaHQgYW1vdW50IG9mIHRpbWUgOi0pIGFuZCByZXZlcnQgdGhlDQogCSAq IHZ0IHRvIGF1dG8gY29udHJvbC4NCiAJICovDQotCWlmICh2dF9jb25zW2Zn X2NvbnNvbGVdLT52dF9tb2RlLm1vZGUgPT0gVlRfUFJPQ0VTUykNCi0Jew0K Kwl2YyA9IHZjX2NvbnNbZmdfY29uc29sZV0uZDsNCisJaWYgKHZjLT52dF9t b2RlLm1vZGUgPT0gVlRfUFJPQ0VTUykgew0KIAkJLyoNCiAJCSAqIFNlbmQg dGhlIHNpZ25hbCBhcyBwcml2aWxlZ2VkIC0ga2lsbF9wcm9jKCkgd2lsbA0K IAkJICogdGVsbCB1cyBpZiB0aGUgcHJvY2VzcyBoYXMgZ29uZSBvciBzb21l dGhpbmcgZWxzZQ0KIAkJICogaXMgYXdyeQ0KIAkJICovDQotCQlpZiAoa2ls bF9wcm9jKHZ0X2NvbnNbZmdfY29uc29sZV0tPnZ0X3BpZCwNCi0JCQkgICAg ICB2dF9jb25zW2ZnX2NvbnNvbGVdLT52dF9tb2RlLnJlbHNpZywNCi0JCQkg ICAgICAxKSA9PSAwKQ0KLQkJew0KKwkJaWYgKGtpbGxfcHJvYyh2Yy0+dnRf cGlkLCB2Yy0+dnRfbW9kZS5yZWxzaWcsIDEpID09IDApIHsNCiAJCQkvKg0K IAkJCSAqIEl0IHdvcmtlZC4gTWFyayB0aGUgdnQgdG8gc3dpdGNoIHRvIGFu ZA0KIAkJCSAqIHJldHVybi4gVGhlIHByb2Nlc3MgbmVlZHMgdG8gc2VuZCB1 cyBhDQogCQkJICogVlRfUkVMRElTUCBpb2N0bCB0byBjb21wbGV0ZSB0aGUg c3dpdGNoLg0KIAkJCSAqLw0KLQkJCXZ0X2NvbnNbZmdfY29uc29sZV0tPnZ0 X25ld3Z0ID0gbmV3X3ZjLT52Y19udW07DQorCQkJdmMtPnZ0X25ld3Z0ID0g bmV3X3ZjLT52Y19udW07DQogCQkJcmV0dXJuOw0KIAkJfQ0KIA0KQEAgLTEy MDQsNyArMTE4OSw3IEBAIHZvaWQgY2hhbmdlX2NvbnNvbGUoc3RydWN0IHZj X2RhdGEgKm5ld18NCiAJCSAqIHRoaXMgb3V0c2lkZSBvZiBWVF9QUk9DRVNT IGJ1dCB0aGVyZSBpcyBubyBzaW5nbGUgcHJvY2Vzcw0KIAkJICogdG8gYWNj b3VudCBmb3IgYW5kIHRyYWNraW5nIHR0eSBjb3VudCBtYXkgYmUgdW5kZXNp cmFibGUuDQogCQkgKi8NCi0JCXJlc2V0X3ZjKHZjX2NvbnNbZmdfY29uc29s ZV0uZCk7DQorCQlyZXNldF92Yyh2Yyk7DQogDQogCQkvKg0KIAkJICogRmFs bCB0aHJvdWdoIHRvIG5vcm1hbCAoVlRfQVVUTykgaGFuZGxpbmcgb2YgdGhl IHN3aXRjaC4uLg0KQEAgLTEyMTQsNyArMTE5OSw3IEBAIHZvaWQgY2hhbmdl X2NvbnNvbGUoc3RydWN0IHZjX2RhdGEgKm5ld18NCiAJLyoNCiAJICogSWdu b3JlIGFsbCBzd2l0Y2hlcyBpbiBLRF9HUkFQSElDUytWVF9BVVRPIG1vZGUN CiAJICovDQotCWlmICh2dF9jb25zW2ZnX2NvbnNvbGVdLT52Y19tb2RlID09 IEtEX0dSQVBISUNTKQ0KKwlpZiAodmMtPnZjX21vZGUgPT0gS0RfR1JBUEhJ Q1MpDQogCQlyZXR1cm47DQogDQogCWNvbXBsZXRlX2NoYW5nZV9jb25zb2xl KG5ld192Yyk7DQpJbmRleDogbGludXgtMi42LjExLXJjMi1tbTEvZHJpdmVy cy92aWRlby9jb25zb2xlL2ZiY29uLmMNCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCi0tLSBsaW51eC0yLjYuMTEtcmMyLW1tMS5vcmlnL2RyaXZlcnMvdmlk ZW8vY29uc29sZS9mYmNvbi5jCTIwMDUtMDEtMjQgMTU6MDI6MDQuMDAwMDAw MDAwICswMTAwDQorKysgbGludXgtMi42LjExLXJjMi1tbTEvZHJpdmVycy92 aWRlby9jb25zb2xlL2ZiY29uLmMJMjAwNS0wMS0yNSAxMDo1MTo0NS4wMDAw MDAwMDAgKzAxMDANCkBAIC0yMDMsNyArMjAzLDcgQEAgc3RhdGljIGlycXJl dHVybl90IGZiX3ZibF9kZXRlY3QoaW50IGlycQ0KIHN0YXRpYyBpbmxpbmUg aW50IGZiY29uX2lzX2luYWN0aXZlKHN0cnVjdCB2Y19kYXRhICp2Yywgc3Ry dWN0IGZiX2luZm8gKmluZm8pDQogew0KIAlyZXR1cm4gKGluZm8tPnN0YXRl ICE9IEZCSU5GT19TVEFURV9SVU5OSU5HIHx8DQotCQl2dF9jb25zW3ZjLT52 Y19udW1dLT52Y19tb2RlICE9IEtEX1RFWFQpOw0KKwkJdmMtPnZjX21vZGUg IT0gS0RfVEVYVCk7DQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgaW50IGdldF9j b2xvcihzdHJ1Y3QgdmNfZGF0YSAqdmMsIHN0cnVjdCBmYl9pbmZvICppbmZv LA0KQEAgLTQ1Niw3ICs0NTYsNyBAQCBzdGF0aWMgdm9pZCBmYmNvbl9wcmVw YXJlX2xvZ28oc3RydWN0IHZjDQogCQkgICAgZXJhc2UsDQogCQkgICAgdmMt PnZjX3NpemVfcm93ICogbG9nb19saW5lcyk7DQogDQotCWlmIChDT05fSVNf VklTSUJMRSh2YykgJiYgdnRfY29uc1t2Yy0+dmNfbnVtXS0+dmNfbW9kZSA9 PSBLRF9URVhUKSB7DQorCWlmIChDT05fSVNfVklTSUJMRSh2YykgJiYgdmMt PnZjX21vZGUgPT0gS0RfVEVYVCkgew0KIAkJZmJjb25fY2xlYXJfbWFyZ2lu cyh2YywgMCk7DQogCQl1cGRhdGVfc2NyZWVuKHZjKTsNCiAJfQ0KQEAgLTIy MDksNyArMjIwOSw3IEBAIHN0YXRpYyBpbnQgZmJjb25fZG9fc2V0X2ZvbnQo c3RydWN0IHZjX2QNCiAJCQl9DQogCQl9DQogCX0gZWxzZSBpZiAoQ09OX0lT X1ZJU0lCTEUodmMpDQotCQkgICAmJiB2dF9jb25zW3ZjLT52Y19udW1dLT52 Y19tb2RlID09IEtEX1RFWFQpIHsNCisJCSAgICYmIHZjLT52Y19tb2RlID09 IEtEX1RFWFQpIHsNCiAJCWZiY29uX2NsZWFyX21hcmdpbnModmMsIDApOw0K IAkJdXBkYXRlX3NjcmVlbih2Yyk7DQogCX0NCkBAIC0yNDM2LDcgKzI0MzYs NyBAQCBzdGF0aWMgaW50IGZiY29uX3Njcm9sbGRlbHRhKHN0cnVjdCB2Y19k DQogCWlmIChzb2Z0YmFja190b3ApIHsNCiAJCWlmICh2Yy0+dmNfbnVtICE9 IGZnX2NvbnNvbGUpDQogCQkJcmV0dXJuIDA7DQotCQlpZiAodnRfY29uc1t2 Yy0+dmNfbnVtXS0+dmNfbW9kZSAhPSBLRF9URVhUIHx8ICFsaW5lcykNCisJ CWlmICh2Yy0+dmNfbW9kZSAhPSBLRF9URVhUIHx8ICFsaW5lcykNCiAJCQly ZXR1cm4gMDsNCiAJCWlmIChsb2dvX3Nob3duID49IDApIHsNCiAJCQlzdHJ1 Y3QgdmNfZGF0YSAqY29ucDIgPSB2Y19jb25zW2xvZ29fc2hvd25dLmQ7DQpA QCAtMjU1MywxMSArMjU1MywxMSBAQCBzdGF0aWMgdm9pZCBmYmNvbl9tb2Rl Y2hhbmdlZChzdHJ1Y3QgZmJfDQogCXN0cnVjdCBkaXNwbGF5ICpwOw0KIAlp bnQgcm93cywgY29sczsNCiANCi0JaWYgKCFvcHMgfHwgb3BzLT5jdXJyY29u IDwgMCB8fCB2dF9jb25zW29wcy0+Y3VycmNvbl0tPnZjX21vZGUgIT0NCi0J ICAgIEtEX1RFWFQgfHwgcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW29wcy0+ Y3VycmNvbl1dICE9IGluZm8pDQorCWlmICghb3BzIHx8IG9wcy0+Y3VycmNv biA8IDApDQogCQlyZXR1cm47DQotDQogCXZjID0gdmNfY29uc1tvcHMtPmN1 cnJjb25dLmQ7DQorCWlmICh2Yy0+dmNfbW9kZSAhPSBLRF9URVhUIHx8IHJl Z2lzdGVyZWRfZmJbY29uMmZiX21hcFtvcHMtPmN1cnJjb25dXSAhPSBpbmZv KQ0KKwkJcmV0dXJuOw0KIA0KIAlwID0gJmZiX2Rpc3BsYXlbdmMtPnZjX251 bV07DQogDQpAQCAtMjYzOSwyNiArMjYzOSwyMCBAQCBzdGF0aWMgaW50IGZi Y29uX2ZiX3JlZ2lzdGVyZWQoaW50IGlkeCkNCiBzdGF0aWMgdm9pZCBmYmNv bl9mYl9ibGFua2VkKHN0cnVjdCBmYl9pbmZvICppbmZvLCBpbnQgYmxhbmsp DQogew0KIAlzdHJ1Y3QgZmJjb25fb3BzICpvcHMgPSBpbmZvLT5mYmNvbl9w YXI7DQotCWludCB2YWxpZCA9IDE7DQotDQotCWlmICghb3BzIHx8IG9wcy0+ Y3VycmNvbiA8IDAgfHwNCi0JICAgIHZ0X2NvbnNbb3BzLT5jdXJyY29uXS0+ dmNfbW9kZSAhPSBLRF9URVhUIHx8DQotCSAgICByZWdpc3RlcmVkX2ZiW2Nv bjJmYl9tYXBbb3BzLT5jdXJyY29uXV0gIT0gaW5mbykNCi0JCXZhbGlkID0g MDsNCi0NCi0JaWYgKHZhbGlkKSB7DQotCQlzdHJ1Y3QgdmNfZGF0YSAqdmM7 DQotDQotCQl2YyA9IHZjX2NvbnNbb3BzLT5jdXJyY29uXS5kOw0KKwlzdHJ1 Y3QgdmNfZGF0YSAqdmM7DQogDQotCQlpZiAoQ09OX0lTX1ZJU0lCTEUodmMp KSB7DQotCQkJb3BzLT5ibGFua19zdGF0ZSA9IGJsYW5rOw0KKwlpZiAoIW9w cyB8fCBvcHMtPmN1cnJjb24gPCAwKQ0KKwkJcmV0dXJuOw0KKwl2YyA9IHZj X2NvbnNbb3BzLT5jdXJyY29uXS5kOw0KKwlpZiAodmMtPnZjX21vZGUgPT0g S0RfVEVYVCAmJg0KKwkgICAgcmVnaXN0ZXJlZF9mYltjb24yZmJfbWFwW29w cy0+Y3VycmNvbl1dID09IGluZm8gJiYNCisJICAgIENPTl9JU19WSVNJQkxF KHZjKSkgew0KKwkJb3BzLT5ibGFua19zdGF0ZSA9IGJsYW5rOw0KIA0KLQkJ CWlmIChibGFuaykNCi0JCQkJZG9fYmxhbmtfc2NyZWVuKDApOw0KLQkJCWVs c2UNCi0JCQkJZG9fdW5ibGFua19zY3JlZW4oMCk7DQotCQl9DQorCQlpZiAo YmxhbmspDQorCQkJZG9fYmxhbmtfc2NyZWVuKDApOw0KKwkJZWxzZQ0KKwkJ CWRvX3VuYmxhbmtfc2NyZWVuKDApOw0KIAl9DQogfQ0KIA0KSW5kZXg6IGxp bnV4LTIuNi4xMS1yYzItbW0xL2RyaXZlcnMvdmlkZW8vY29uc29sZS9zdGlj b24uYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGxpbnV4LTIuNi4x MS1yYzItbW0xLm9yaWcvZHJpdmVycy92aWRlby9jb25zb2xlL3N0aWNvbi5j CTIwMDUtMDEtMjQgMTU6MDI6MDQuMDAwMDAwMDAwICswMTAwDQorKysgbGlu dXgtMi42LjExLXJjMi1tbTEvZHJpdmVycy92aWRlby9jb25zb2xlL3N0aWNv bi5jCTIwMDUtMDEtMjQgMTU6MDU6MTguMDAwMDAwMDAwICswMTAwDQpAQCAt ODcsMTMgKzg3LDEyIEBAIHN0YXRpYyBpbnQgc3RpY29uX3NldF9wYWxldHRl KHN0cnVjdCB2Y18NCiANCiBzdGF0aWMgdm9pZCBzdGljb25fcHV0YyhzdHJ1 Y3QgdmNfZGF0YSAqY29ucCwgaW50IGMsIGludCB5cG9zLCBpbnQgeHBvcykN CiB7DQotICAgIGludCB1bml0ID0gY29ucC0+dmNfbnVtOw0KICAgICBpbnQg cmVkcmF3X2N1cnNvciA9IDA7DQogDQogICAgIGlmICh2Z2FfaXNfZ2Z4IHx8 IGNvbnNvbGVfYmxhbmtlZCkNCiAJICAgIHJldHVybjsNCi0JICAgIA0KLSAg ICBpZiAodnRfY29uc1t1bml0XS0+dmNfbW9kZSAhPSBLRF9URVhUKQ0KKw0K KyAgICBpZiAoY29ucC0+dmNfbW9kZSAhPSBLRF9URVhUKQ0KICAgICAJICAg IHJldHVybjsNCiAjaWYgMA0KICAgICBpZiAoKHAtPmN1cnNvcl94ID09IHhw b3MpICYmIChwLT5jdXJzb3JfeSA9PSB5cG9zKSkgew0KQEAgLTExMSwxNSAr MTEwLDE0IEBAIHN0YXRpYyB2b2lkIHN0aWNvbl9wdXRjKHN0cnVjdCB2Y19k YXRhICoNCiBzdGF0aWMgdm9pZCBzdGljb25fcHV0Y3Moc3RydWN0IHZjX2Rh dGEgKmNvbnAsIGNvbnN0IHVuc2lnbmVkIHNob3J0ICpzLA0KIAkJCSBpbnQg Y291bnQsIGludCB5cG9zLCBpbnQgeHBvcykNCiB7DQotICAgIGludCB1bml0 ID0gY29ucC0+dmNfbnVtOw0KICAgICBpbnQgcmVkcmF3X2N1cnNvciA9IDA7 DQogDQogICAgIGlmICh2Z2FfaXNfZ2Z4IHx8IGNvbnNvbGVfYmxhbmtlZCkN CiAJICAgIHJldHVybjsNCiANCi0gICAgaWYgKHZ0X2NvbnNbdW5pdF0tPnZj X21vZGUgIT0gS0RfVEVYVCkNCisgICAgaWYgKGNvbnAtPnZjX21vZGUgIT0g S0RfVEVYVCkNCiAgICAgCSAgICByZXR1cm47DQotICAgIA0KKw0KICNpZiAw DQogICAgIGlmICgocC0+Y3Vyc29yX3kgPT0geXBvcykgJiYgKHhwb3MgPD0g cC0+Y3Vyc29yX3gpICYmDQogCShwLT5jdXJzb3JfeCA8ICh4cG9zICsgY291 bnQpKSkgew0KSW5kZXg6IGxpbnV4LTIuNi4xMS1yYzItbW0xL2RyaXZlcnMv dmlkZW8vc3VuM2ZiLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBs aW51eC0yLjYuMTEtcmMyLW1tMS5vcmlnL2RyaXZlcnMvdmlkZW8vc3VuM2Zi LmMJMjAwNS0wMS0yNCAxNTowMjowNC4wMDAwMDAwMDAgKzAxMDANCisrKyBs aW51eC0yLjYuMTEtcmMyLW1tMS9kcml2ZXJzL3ZpZGVvL3N1bjNmYi5jCTIw MDUtMDEtMjQgMTU6MDU6MTguMDAwMDAwMDAwICswMTAwDQpAQCAtNTA1LDcg KzUwNSw3IEBAIHZvaWQgc3VuM2ZiX3BhbGV0dGUoaW50IGVudGVyKQ0KIAkJ CWlmIChmYi0+cmVzdG9yZV9wYWxldHRlKSB7DQogCQkJCWlmIChlbnRlcikN CiAJCQkJCWZiLT5yZXN0b3JlX3BhbGV0dGUoZmIpOw0KLQkJCQllbHNlIGlm ICh2dF9jb25zW2ldLT52Y19tb2RlICE9IEtEX0dSQVBISUNTKQ0KKwkJCQll bHNlIGlmICh2Y19jb25zW2ldLmQtPnZjX21vZGUgIT0gS0RfR1JBUEhJQ1Mp DQogCQkJCSAgICAgICAgIHZjX2NvbnNbaV0uZC0+dmNfc3ctPmNvbl9zZXRf cGFsZXR0ZSh2Y19jb25zW2ldLmQsIGNvbG9yX3RhYmxlKTsNCiAJCQl9DQog CQl9DQpJbmRleDogbGludXgtMi42LjExLXJjMi1tbTEvZnMvY29tcGF0X2lv Y3RsLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBsaW51eC0yLjYu MTEtcmMyLW1tMS5vcmlnL2ZzL2NvbXBhdF9pb2N0bC5jCTIwMDUtMDEtMjQg MTU6MDI6MDQuMDAwMDAwMDAwICswMTAwDQorKysgbGludXgtMi42LjExLXJj Mi1tbTEvZnMvY29tcGF0X2lvY3RsLmMJMjAwNS0wMS0yNCAxNTowNToxOC4w MDAwMDAwMDAgKzAxMDANCkBAIC0xNjUzLDcgKzE2NTMsNyBAQCBzdGF0aWMg aW50IGRvX2tkZm9udG9wX2lvY3RsKHVuc2lnbmVkIGluDQogCXN0cnVjdCBj b25zb2xlX2ZvbnRfb3Agb3A7DQogCXN0cnVjdCBjb25zb2xlX2ZvbnRfb3Az MiBfX3VzZXIgKmZvbnRvcCA9IGNvbXBhdF9wdHIoYXJnKTsNCiAJaW50IHBl cm0gPSB2dF9jaGVjayhmaWxlKSwgaTsNCi0Jc3RydWN0IHZ0X3N0cnVjdCAq dnQ7DQorCXN0cnVjdCB2Y19kYXRhICp2YzsNCiAJDQogCWlmIChwZXJtIDwg MCkgcmV0dXJuIHBlcm07DQogCQ0KQEAgLTE2NjMsOSArMTY2MywxMCBAQCBz dGF0aWMgaW50IGRvX2tkZm9udG9wX2lvY3RsKHVuc2lnbmVkIGluDQogCQly ZXR1cm4gLUVQRVJNOw0KIAlvcC5kYXRhID0gY29tcGF0X3B0cigoKHN0cnVj dCBjb25zb2xlX2ZvbnRfb3AzMiAqKSZvcCktPmRhdGEpOw0KIAlvcC5mbGFn cyB8PSBLRF9GT05UX0ZMQUdfT0xEOw0KLQl2dCA9IChzdHJ1Y3QgdnRfc3Ry dWN0ICopKChzdHJ1Y3QgdHR5X3N0cnVjdCAqKWZpbGUtPnByaXZhdGVfZGF0 YSktPmRyaXZlcl9kYXRhOw0KLQlpID0gY29uX2ZvbnRfb3AodmNfY29uc1t2 dC0+dmNfbnVtXS5kLCAmb3ApOw0KLQlpZiAoaSkgcmV0dXJuIGk7DQorCXZj ID0gKChzdHJ1Y3QgdHR5X3N0cnVjdCAqKWZpbGUtPnByaXZhdGVfZGF0YSkt PmRyaXZlcl9kYXRhOw0KKwlpID0gY29uX2ZvbnRfb3AodmMsICZvcCk7DQor CWlmIChpKQ0KKwkJcmV0dXJuIGk7DQogCSgoc3RydWN0IGNvbnNvbGVfZm9u dF9vcDMyICopJm9wKS0+ZGF0YSA9ICh1bnNpZ25lZCBsb25nKW9wLmRhdGE7 DQogCWlmIChjb3B5X3RvX3VzZXIoZm9udG9wLCAmb3AsIHNpemVvZihzdHJ1 Y3QgY29uc29sZV9mb250X29wMzIpKSkNCiAJCXJldHVybiAtRUZBVUxUOw0K SW5kZXg6IGxpbnV4LTIuNi4xMS1yYzItbW0xL2luY2x1ZGUvbGludXgvY29u c29sZV9zdHJ1Y3QuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGxp bnV4LTIuNi4xMS1yYzItbW0xLm9yaWcvaW5jbHVkZS9saW51eC9jb25zb2xl X3N0cnVjdC5oCTIwMDUtMDEtMjQgMTU6MDI6MDQuMDAwMDAwMDAwICswMTAw DQorKysgbGludXgtMi42LjExLXJjMi1tbTEvaW5jbHVkZS9saW51eC9jb25z b2xlX3N0cnVjdC5oCTIwMDUtMDEtMjQgMTU6MDU6MTguMDAwMDAwMDAwICsw MTAwDQpAQCAtMjYsNiArMjYsNyBAQCBzdHJ1Y3QgdmNfZGF0YSB7DQogCWNv bnN0IHN0cnVjdCBjb25zdyAqdmNfc3c7DQogCXVuc2lnbmVkIHNob3J0CSp2 Y19zY3JlZW5idWY7CQkvKiBJbi1tZW1vcnkgY2hhcmFjdGVyL2F0dHJpYnV0 ZSBidWZmZXIgKi8NCiAJdW5zaWduZWQgaW50CXZjX3NjcmVlbmJ1Zl9zaXpl Ow0KKwl1bnNpZ25lZCBjaGFyCXZjX21vZGU7CQkvKiBLRF9URVhULCAuLi4g Ki8NCiAJLyogYXR0cmlidXRlcyBmb3IgYWxsIGNoYXJhY3RlcnMgb24gc2Ny ZWVuICovDQogCXVuc2lnbmVkIGNoYXIJdmNfYXR0cjsJCS8qIEN1cnJlbnQg YXR0cmlidXRlcyAqLw0KIAl1bnNpZ25lZCBjaGFyCXZjX2RlZl9jb2xvcjsJ CS8qIERlZmF1bHQgY29sb3JzICovDQpAQCAtNDgsNiArNDksMTEgQEAgc3Ry dWN0IHZjX2RhdGEgew0KIAl1bnNpZ25lZCBpbnQJdmNfc3RhdGU7CQkvKiBF c2NhcGUgc2VxdWVuY2UgcGFyc2VyIHN0YXRlICovDQogCXVuc2lnbmVkIGlu dAl2Y19ucGFyLHZjX3BhcltOUEFSXTsJLyogUGFyYW1ldGVycyBvZiBjdXJy ZW50IGVzY2FwZSBzZXF1ZW5jZSAqLw0KIAlzdHJ1Y3QgdHR5X3N0cnVjdCAq dmNfdHR5OwkJLyogVFRZIHdlIGFyZSBhdHRhY2hlZCB0byAqLw0KKwkvKiBk YXRhIGZvciBtYW51YWwgdnQgc3dpdGNoaW5nICovDQorCXN0cnVjdCB2dF9t b2RlCXZ0X21vZGU7DQorCWludAkJdnRfcGlkOw0KKwlpbnQJCXZ0X25ld3Z0 Ow0KKwl3YWl0X3F1ZXVlX2hlYWRfdCBwYXN0ZV93YWl0Ow0KIAkvKiBtb2Rl IGZsYWdzICovDQogCXVuc2lnbmVkIGludAl2Y19jaGFyc2V0CTogMTsJLyog Q2hhcmFjdGVyIHNldCBHMCAvIEcxICovDQogCXVuc2lnbmVkIGludAl2Y19z X2NoYXJzZXQJOiAxOwkvKiBTYXZlZCBjaGFyYWN0ZXIgc2V0ICovDQpAQCAt ODksNyArOTUsNiBAQCBzdHJ1Y3QgdmNfZGF0YSB7DQogCXN0cnVjdCB2Y19k YXRhICoqdmNfZGlzcGxheV9mZzsJCS8qIFshXSBQdHIgdG8gdmFyIGhvbGRp bmcgZmcgY29uc29sZSBmb3IgdGhpcyBkaXNwbGF5ICovDQogCXVuc2lnbmVk IGxvbmcJdmNfdW5pX3BhZ2VkaXI7DQogCXVuc2lnbmVkIGxvbmcJKnZjX3Vu aV9wYWdlZGlyX2xvYzsgIC8qIFshXSBMb2NhdGlvbiBvZiB1bmlfcGFnZWRp ciB2YXJpYWJsZSBmb3IgdGhpcyBjb25zb2xlICovDQotCXN0cnVjdCB2dF9z dHJ1Y3QgKnZjX3Z0Ow0KIAkvKiBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGlz IGluIHZ0X2tlcm4uaCAqLw0KIH07DQogDQpJbmRleDogbGludXgtMi42LjEx LXJjMi1tbTEvaW5jbHVkZS9saW51eC92dF9rZXJuLmgNCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCi0tLSBsaW51eC0yLjYuMTEtcmMyLW1tMS5vcmlnL2lu Y2x1ZGUvbGludXgvdnRfa2Vybi5oCTIwMDUtMDEtMjQgMTU6MDI6MDQuMDAw MDAwMDAwICswMTAwDQorKysgbGludXgtMi42LjExLXJjMi1tbTEvaW5jbHVk ZS9saW51eC92dF9rZXJuLmgJMjAwNS0wMS0yNCAxNTowNToxOC4wMDAwMDAw MDAgKzAxMDANCkBAIC0yNSwxNSArMjUsNiBAQA0KICNkZWZpbmUgQlJPS0VO X0dSQVBISUNTX1BST0dSQU1TIDENCiAjZW5kaWYNCiANCi1leHRlcm4gc3Ry dWN0IHZ0X3N0cnVjdCB7DQotCWludCB2Y19udW07CQkJCS8qIFRoZSBjb25z b2xlIG51bWJlciAqLw0KLQl1bnNpZ25lZCBjaGFyCXZjX21vZGU7CQkvKiBL RF9URVhULCAuLi4gKi8NCi0Jc3RydWN0IHZ0X21vZGUJdnRfbW9kZTsNCi0J aW50CQl2dF9waWQ7DQotCWludAkJdnRfbmV3dnQ7DQotCXdhaXRfcXVldWVf aGVhZF90IHBhc3RlX3dhaXQ7DQotfSAqdnRfY29uc1tNQVhfTlJfQ09OU09M RVNdOw0KLQ0KIGV4dGVybiB2b2lkIGtkX21rc291bmQodW5zaWduZWQgaW50 IGh6LCB1bnNpZ25lZCBpbnQgdGlja3MpOw0KIGV4dGVybiBpbnQga2JkX3Jh dGUoc3RydWN0IGtiZF9yZXBlYXQgKnJlcCk7DQogDQo= ---1463811837-1513816429-1106648851=:30794-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/