From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S261930AbTIZFYx (ORCPT ); Fri, 26 Sep 2003 01:24:53 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S261440AbTIZFYx (ORCPT ); Fri, 26 Sep 2003 01:24:53 -0400 Received: from smtp4.hy.skanova.net ([195.67.199.133]:13051 "EHLO smtp4.hy.skanova.net") by vger.kernel.org with ESMTP id S261930AbTIZFYl (ORCPT ); Fri, 26 Sep 2003 01:24:41 -0400 Date: Fri, 26 Sep 2003 07:24:28 +0200 (CEST) From: Peter Osterlund X-X-Sender: petero@p4.localdomain To: Vojtech Pavlik cc: Dmitry Torokhov , , , Subject: Re: [PATCH 8/8] Add BTN_TOUCH to Synaptics driver. Update mousedev. In-Reply-To: <20030925223032.GA32130@ucw.cz> Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-1382455761-1064553868=:17591" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --8323328-1382455761-1064553868=:17591 Content-Type: TEXT/PLAIN; charset=US-ASCII On Fri, 26 Sep 2003, Vojtech Pavlik wrote: > On Thu, Sep 25, 2003 at 01:23:33PM -0500, Dmitry Torokhov wrote: > > > BTW, any chance on including pass-through patches? Do you want me to re-diff > > them? > > Hmm, I thought I've merged them in already, but obviously I did not. > Please resend them (rediffed if possible). Thanks. If these patches are the same as the "reconnect" patches I have in my tree, I already have them rediffed (attached). -- Peter Osterlund - petero2@telia.com http://w1.894.telia.com/~u89404340 --8323328-1382455761-1064553868=:17591 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="serio-reconnect.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="serio-reconnect.patch" DQpUaGUgcGF0Y2ggYmVsb3cgaW50cm9kdWNlcyBhIG5ldyBzZXJpb19kZXYg bWV0aG9kICJyZWNvbm5lY3QiLiBJdCdzIA0KcHVycG9zZSBpcyB0byByZS1p bml0aWFsaXplIGF0dGFjaGVkIGhhcmR3YXJlIHdoaWxlIGtlZXBpbmcgdGhl IHNhbWUgDQppbnB1dCBkZXZpY2UuIA0KDQpSZWNvbm5lY3QgY2FuIGJlIHVz ZWQgZm9yIGV4YW1wbGUgZHVyaW5nIHJlc3VtZSBvciB3aXRoIHNvbWV3aGF0 IGJyb2tlbg0KaGFyZHdhcmUgbGlrZSBteSBsYXB0b3AvZG9ja2luZyBzdGF0 aW9uIHdoaWNoIHJlc2V0cyB0aGUgdG91Y2hwYWQgYmFjaw0KaW4gcmVsYXRp dmUgbW9kZSB3aXRob3V0IHRlbGxpbmcgYW55b25lIHdoZW5ldmVyIEkgZG9j ayBvciB1bi1kb2NrLiBUaGUgDQpyZWd1bGFyIGRpc2Nvbm5lY3QvY29ubmVj dCBzb2x1dGlvbiBpcyBub3Qgd29ya2luZyBiZWNhdXNlIGNsaWVudHMgKGxp a2UNClhGcmVlKSBsaWtlIHRvIGtlZXAgdGhlIG9yaWdpbmFsIGlucHV0IGRl dmljZSBvcGVuIHNvIGFmdGVyIGNvbm5lY3RpbmcgDQp0aGUgdG91Y2hwYWQg aXQgd2lsbCBjcmVhdGUgYSBicmFuZCBuZXcgaW5wdXQgZGV2aWNlLiBXaXRo IHJlY29ubmVjdCB0aGUNCmRyaXZlciBoYXMgYW4gb3B0aW9uIHRvIHJlLWlu aXRpYWxpemUgaGFyZHdhcmUgYnV0IGtlZXAgdGhlIHNhbWUgaW5wdXQgDQpk ZXZpY2UgKGdpdmVuIHRoYXQgaGFyZHdhcmUgZGlkbid0IGNoYW5nZSkuDQoN CklmIHJlY29ubmVjdCBmYWlscyBzZXJpbyBhdXRvbWF0aWNhbGx5IGZhbGwg YmFjayB0byBkaXNjb25uZWN0L3JlY29ubmVjdCANCnNjaGVtZS4NCg0KV2hh dCB5b3UgdGhpbms/DQoNCkRtaXRyeQ0KDQpQLlMuIEkgaGF2ZSBhIG5ldyBw YXRjaCBmb3IgU3luYXB0aWNzIHRvdWNocGFkIHRoYXQgbWFrZXMgdXNlIG9m IHRoaXMgbmV3IA0KZnVuY3Rpb25hbGl0eSB0aGF0IEkgd2lsbCBzZW50IHRv IHRoZSBMS01MIHNob3J0bHkgDQoNCg0KIGxpbnV4LXBldGVyby9kcml2ZXJz L2lucHV0L3NlcmlvL3NlcmlvLmMgfCAgIDMxICsrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0NCiBsaW51eC1wZXRlcm8vaW5jbHVkZS9saW51eC9z ZXJpby5oICAgICAgIHwgICAgMiArKw0KIDIgZmlsZXMgY2hhbmdlZCwgMjYg aW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkNCg0KZGlmZiAtcHVOIGRy aXZlcnMvaW5wdXQvc2VyaW8vc2VyaW8uY35zZXJpby1yZWNvbm5lY3QgZHJp dmVycy9pbnB1dC9zZXJpby9zZXJpby5jDQotLS0gbGludXgvZHJpdmVycy9p bnB1dC9zZXJpby9zZXJpby5jfnNlcmlvLXJlY29ubmVjdAkyMDAzLTA5LTI1 IDIwOjE4OjU5LjAwMDAwMDAwMCArMDIwMA0KKysrIGxpbnV4LXBldGVyby9k cml2ZXJzL2lucHV0L3NlcmlvL3NlcmlvLmMJMjAwMy0wOS0yNSAyMDoxODo1 OS4wMDAwMDAwMDAgKzAyMDANCkBAIC01Nyw2ICs1Nyw3IEBAIEVYUE9SVF9T WU1CT0woc2VyaW9fdW5yZWdpc3Rlcl9kZXZpY2UpOw0KIEVYUE9SVF9TWU1C T0woc2VyaW9fb3Blbik7DQogRVhQT1JUX1NZTUJPTChzZXJpb19jbG9zZSk7 DQogRVhQT1JUX1NZTUJPTChzZXJpb19yZXNjYW4pOw0KK0VYUE9SVF9TWU1C T0woc2VyaW9fcmVjb25uZWN0KTsNCiANCiBzdHJ1Y3Qgc2VyaW9fZXZlbnQg ew0KIAlpbnQgdHlwZTsNCkBAIC04Myw2ICs4NCw3IEBAIHN0YXRpYyB2b2lk IHNlcmlvX2ZpbmRfZGV2KHN0cnVjdCBzZXJpbyANCiB9DQogDQogI2RlZmlu ZSBTRVJJT19SRVNDQU4JMQ0KKyNkZWZpbmUgU0VSSU9fUkVDT05ORUNUCTIN CiANCiBzdGF0aWMgREVDTEFSRV9XQUlUX1FVRVVFX0hFQUQoc2VyaW9fd2Fp dCk7DQogc3RhdGljIERFQ0xBUkVfQ09NUExFVElPTihzZXJpb19leGl0ZWQp Ow0KQEAgLTk2LDYgKzk4LDEyIEBAIHZvaWQgc2VyaW9faGFuZGxlX2V2ZW50 cyh2b2lkKQ0KIAkJZXZlbnQgPSBjb250YWluZXJfb2Yobm9kZSwgc3RydWN0 IHNlcmlvX2V2ZW50LCBub2RlKTsJDQogDQogCQlzd2l0Y2ggKGV2ZW50LT50 eXBlKSB7DQorCQkJY2FzZSBTRVJJT19SRUNPTk5FQ1QgOg0KKwkJCQlpZiAo ZXZlbnQtPnNlcmlvLT5kZXYgJiYgZXZlbnQtPnNlcmlvLT5kZXYtPnJlY29u bmVjdCkNCisJCQkJCWlmIChldmVudC0+c2VyaW8tPmRldi0+cmVjb25uZWN0 KGV2ZW50LT5zZXJpbykgPT0gMCkNCisJCQkJCQlicmVhazsNCisJCQkJLyog cmVjb25uZWN0IGZhaWxlZCAtIGZhbGwgdGhyb3VnaCB0byByZXNjYW4gKi8N CisNCiAJCQljYXNlIFNFUklPX1JFU0NBTiA6DQogCQkJCWRvd24oJnNlcmlv X3NlbSk7DQogCQkJCWlmIChldmVudC0+c2VyaW8tPmRldiAmJiBldmVudC0+ c2VyaW8tPmRldi0+ZGlzY29ubmVjdCkNCkBAIC0xMzAsMTggKzEzOCwyNyBA QCBzdGF0aWMgaW50IHNlcmlvX3RocmVhZCh2b2lkICpub3RoaW5nKQ0KIAlj b21wbGV0ZV9hbmRfZXhpdCgmc2VyaW9fZXhpdGVkLCAwKTsNCiB9DQogDQot dm9pZCBzZXJpb19yZXNjYW4oc3RydWN0IHNlcmlvICpzZXJpbykNCitzdGF0 aWMgdm9pZCBzZXJpb19xdWV1ZV9ldmVudChzdHJ1Y3Qgc2VyaW8gKnNlcmlv LCBpbnQgZXZlbnRfdHlwZSkNCiB7DQogCXN0cnVjdCBzZXJpb19ldmVudCAq ZXZlbnQ7DQogDQotCWlmICghKGV2ZW50ID0ga21hbGxvYyhzaXplb2Yoc3Ry dWN0IHNlcmlvX2V2ZW50KSwgR0ZQX0FUT01JQykpKQ0KLQkJcmV0dXJuOw0K KwlpZiAoKGV2ZW50ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHNlcmlvX2V2 ZW50KSwgR0ZQX0FUT01JQykpKSB7DQorCQlldmVudC0+dHlwZSA9IGV2ZW50 X3R5cGU7DQorCQlldmVudC0+c2VyaW8gPSBzZXJpbzsNCiANCi0JZXZlbnQt PnR5cGUgPSBTRVJJT19SRVNDQU47DQotCWV2ZW50LT5zZXJpbyA9IHNlcmlv Ow0KKwkJbGlzdF9hZGRfdGFpbCgmZXZlbnQtPm5vZGUsICZzZXJpb19ldmVu dF9saXN0KTsNCisJCXdha2VfdXAoJnNlcmlvX3dhaXQpOw0KKwl9DQorfQ0K IA0KLQlsaXN0X2FkZF90YWlsKCZldmVudC0+bm9kZSwgJnNlcmlvX2V2ZW50 X2xpc3QpOw0KLQl3YWtlX3VwKCZzZXJpb193YWl0KTsNCit2b2lkIHNlcmlv X3Jlc2NhbihzdHJ1Y3Qgc2VyaW8gKnNlcmlvKQ0KK3sNCisJc2VyaW9fcXVl dWVfZXZlbnQoc2VyaW8sIFNFUklPX1JFU0NBTik7DQorfQ0KKw0KK3ZvaWQg c2VyaW9fcmVjb25uZWN0KHN0cnVjdCBzZXJpbyAqc2VyaW8pDQorew0KKwlz ZXJpb19xdWV1ZV9ldmVudChzZXJpbywgU0VSSU9fUkVDT05ORUNUKTsNCiB9 DQogDQogaXJxcmV0dXJuX3Qgc2VyaW9faW50ZXJydXB0KHN0cnVjdCBzZXJp byAqc2VyaW8sDQpkaWZmIC1wdU4gaW5jbHVkZS9saW51eC9zZXJpby5ofnNl cmlvLXJlY29ubmVjdCBpbmNsdWRlL2xpbnV4L3NlcmlvLmgNCi0tLSBsaW51 eC9pbmNsdWRlL2xpbnV4L3NlcmlvLmh+c2VyaW8tcmVjb25uZWN0CTIwMDMt MDktMjUgMjA6MTg6NTkuMDAwMDAwMDAwICswMjAwDQorKysgbGludXgtcGV0 ZXJvL2luY2x1ZGUvbGludXgvc2VyaW8uaAkyMDAzLTA5LTI1IDIwOjE4OjU5 LjAwMDAwMDAwMCArMDIwMA0KQEAgLTUzLDYgKzUzLDcgQEAgc3RydWN0IHNl cmlvX2RldiB7DQogCWlycXJldHVybl90ICgqaW50ZXJydXB0KShzdHJ1Y3Qg c2VyaW8gKiwgdW5zaWduZWQgY2hhciwNCiAJCQl1bnNpZ25lZCBpbnQsIHN0 cnVjdCBwdF9yZWdzICopOw0KIAl2b2lkICgqY29ubmVjdCkoc3RydWN0IHNl cmlvICosIHN0cnVjdCBzZXJpb19kZXYgKmRldik7DQorCWludCAgKCpyZWNv bm5lY3QpKHN0cnVjdCBzZXJpbyAqKTsNCiAJdm9pZCAoKmRpc2Nvbm5lY3Qp KHN0cnVjdCBzZXJpbyAqKTsNCiAJdm9pZCAoKmNsZWFudXApKHN0cnVjdCBz ZXJpbyAqKTsNCiANCkBAIC02Miw2ICs2Myw3IEBAIHN0cnVjdCBzZXJpb19k ZXYgew0KIGludCBzZXJpb19vcGVuKHN0cnVjdCBzZXJpbyAqc2VyaW8sIHN0 cnVjdCBzZXJpb19kZXYgKmRldik7DQogdm9pZCBzZXJpb19jbG9zZShzdHJ1 Y3Qgc2VyaW8gKnNlcmlvKTsNCiB2b2lkIHNlcmlvX3Jlc2NhbihzdHJ1Y3Qg c2VyaW8gKnNlcmlvKTsNCit2b2lkIHNlcmlvX3JlY29ubmVjdChzdHJ1Y3Qg c2VyaW8gKnNlcmlvKTsNCiBpcnFyZXR1cm5fdCBzZXJpb19pbnRlcnJ1cHQo c3RydWN0IHNlcmlvICpzZXJpbywgdW5zaWduZWQgY2hhciBkYXRhLCB1bnNp Z25lZCBpbnQgZmxhZ3MsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsNCiANCiB2 b2lkIHNlcmlvX3JlZ2lzdGVyX3BvcnQoc3RydWN0IHNlcmlvICpzZXJpbyk7 DQoNCl8NCg== --8323328-1382455761-1064553868=:17591 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="synaptics-reconnect.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="synaptics-reconnect.patch" DQpIZXJlIGlzIHRoZSB1cGRhdGUgdG8gdGhlIFN5bmFwdGljcyB0b3VjaHBh ZCBkcml2ZXIuDQoNClRoZSBjaGFuZ2VzIGFyZToNCjEuIFN1cHBvcnQgZm9y IHBhc3MtdGhyb3VnaCBwb3J0IG1vdmVkIGZyb20gU3luYXB0aWNzIGRyaXZl ciB0byBwc21vdXNlDQogICBpdHNlbGYsIGl0IGlzIGNsZWFuZXIgYW5kIHNo b3VsZCBhbGxvdyB1c2luZyBpdCBpbiBvdGhlciBkcml2ZXJzIGlmDQogICBu ZWVkZWQuDQoyLiBUaGUgZHJpdmVyIG1ha2VzIHVzZSBvZiBuZXcgcmVjb25u ZWN0IGZ1bmN0aW9uYWxpdHkgaW4gc2VyaW8uIEl0IHdpbGwNCiAgIHRyeSB0 byBrZWVwIHRoZSBzYW1lIGlucHV0IGRldmljZSBhZnRlciByZXN1bWUgb3Ig d2hlbiBpdCByZXNldHMgaXRzZWxmLg0KMy4gSWYgbW91c2UgaXMgZGlzY29u bmVjdGVkIG9yIG90aGVyIG1vdXNlIHBsdWdnZWQgaW4gd2hpbGUgc2xlZXBp bmcgdGhlDQogICBkcml2ZXIgc2hvdWxkIGNvcnJlY3RseSByZWNvZ25pemUg dGhhdCBhbmQgY3JlYXRlIGEgbmV3IHNlcmlvL2lucHV0DQogICBkZXZpY2Uu DQoNCkRtaXRyeQ0KDQoNCiBsaW51eC1wZXRlcm8vZHJpdmVycy9pbnB1dC9t b3VzZS9sb2dpcHMycHAuYyAgICB8ICAgIDEgDQogbGludXgtcGV0ZXJvL2Ry aXZlcnMvaW5wdXQvbW91c2UvcHNtb3VzZS1iYXNlLmMgfCAgIDk0ICsrKysr KysrKysrLS0tDQogbGludXgtcGV0ZXJvL2RyaXZlcnMvaW5wdXQvbW91c2Uv cHNtb3VzZS5oICAgICAgfCAgIDEzICsrDQogbGludXgtcGV0ZXJvL2RyaXZl cnMvaW5wdXQvbW91c2Uvc3luYXB0aWNzLmMgICAgfCAgMTUzICsrKysrKysr KysrKysrKy0tLS0tLS0tLQ0KIGxpbnV4LXBldGVyby9kcml2ZXJzL2lucHV0 L21vdXNlL3N5bmFwdGljcy5oICAgIHwgICAgNCANCiA1IGZpbGVzIGNoYW5n ZWQsIDE4NiBpbnNlcnRpb25zKCspLCA3OSBkZWxldGlvbnMoLSkNCg0KZGlm ZiAtcHVOIGRyaXZlcnMvaW5wdXQvbW91c2UvbG9naXBzMnBwLmN+c3luYXB0 aWNzLXJlY29ubmVjdCBkcml2ZXJzL2lucHV0L21vdXNlL2xvZ2lwczJwcC5j DQotLS0gbGludXgvZHJpdmVycy9pbnB1dC9tb3VzZS9sb2dpcHMycHAuY35z eW5hcHRpY3MtcmVjb25uZWN0CTIwMDMtMDktMjUgMjA6MTk6MDIuMDAwMDAw MDAwICswMjAwDQorKysgbGludXgtcGV0ZXJvL2RyaXZlcnMvaW5wdXQvbW91 c2UvbG9naXBzMnBwLmMJMjAwMy0wOS0yNSAyMDoxOTowMi4wMDAwMDAwMDAg KzAyMDANCkBAIC0xMCw2ICsxMCw3IEBADQogICovDQogDQogI2luY2x1ZGUg PGxpbnV4L2lucHV0Lmg+DQorI2luY2x1ZGUgPGxpbnV4L3NlcmlvLmg+DQog I2luY2x1ZGUgInBzbW91c2UuaCINCiAjaW5jbHVkZSAibG9naXBzMnBwLmgi DQogDQpkaWZmIC1wdU4gZHJpdmVycy9pbnB1dC9tb3VzZS9wc21vdXNlLWJh c2UuY35zeW5hcHRpY3MtcmVjb25uZWN0IGRyaXZlcnMvaW5wdXQvbW91c2Uv cHNtb3VzZS1iYXNlLmMNCi0tLSBsaW51eC9kcml2ZXJzL2lucHV0L21vdXNl L3BzbW91c2UtYmFzZS5jfnN5bmFwdGljcy1yZWNvbm5lY3QJMjAwMy0wOS0y NSAyMDoxOTowMi4wMDAwMDAwMDAgKzAyMDANCisrKyBsaW51eC1wZXRlcm8v ZHJpdmVycy9pbnB1dC9tb3VzZS9wc21vdXNlLWJhc2UuYwkyMDAzLTA5LTI1 IDIwOjE5OjAyLjAwMDAwMDAwMCArMDIwMA0KQEAgLTE0MSw3ICsxNDEsOCBA QCBzdGF0aWMgaXJxcmV0dXJuX3QgcHNtb3VzZV9pbnRlcnJ1cHQoc3RyDQog CQlnb3RvIG91dDsNCiAJfQ0KIA0KLQlpZiAocHNtb3VzZS0+cGt0Y250ICYm IHRpbWVfYWZ0ZXIoamlmZmllcywgcHNtb3VzZS0+bGFzdCArIEhaLzIpKSB7 DQorCWlmIChwc21vdXNlLT5zdGF0ZSA9PSBQU01PVVNFX0FDVElWQVRFRCAm Jg0KKwkgICAgcHNtb3VzZS0+cGt0Y250ICYmIHRpbWVfYWZ0ZXIoamlmZmll cywgcHNtb3VzZS0+bGFzdCArIEhaLzIpKSB7DQogCQlwcmludGsoS0VSTl9X QVJOSU5HICJwc21vdXNlLmM6ICVzIGF0ICVzIGxvc3Qgc3luY2hyb25pemF0 aW9uLCB0aHJvd2luZyAlZCBieXRlcyBhd2F5LlxuIiwNCiAJCSAgICAgICBw c21vdXNlLT5uYW1lLCBwc21vdXNlLT5waHlzLCBwc21vdXNlLT5wa3RjbnQp Ow0KIAkJcHNtb3VzZS0+cGt0Y250ID0gMDsNCkBAIC01MTksNyArNTIwLDE2 IEBAIHN0YXRpYyB2b2lkIHBzbW91c2VfZGlzY29ubmVjdChzdHJ1Y3Qgc2UN CiAJc3RydWN0IHBzbW91c2UgKnBzbW91c2UgPSBzZXJpby0+cHJpdmF0ZTsN CiANCiAJcHNtb3VzZS0+c3RhdGUgPSBQU01PVVNFX0lHTk9SRTsNCi0Jc3lu YXB0aWNzX2Rpc2Nvbm5lY3QocHNtb3VzZSk7DQorDQorCWlmIChwc21vdXNl LT5wdHBvcnQpIHsNCisJCWlmIChwc21vdXNlLT5wdHBvcnQtPmRlYWN0aXZh dGUpDQorCQkJcHNtb3VzZS0+cHRwb3J0LT5kZWFjdGl2YXRlKHBzbW91c2Up Ow0KKwkJc2VyaW9fdW5yZWdpc3Rlcl9zbGF2ZV9wb3J0KCZwc21vdXNlLT5w dHBvcnQtPnNlcmlvKTsNCisJfQ0KKw0KKwlpZiAocHNtb3VzZS0+ZGlzY29u bmVjdCkNCisJCXBzbW91c2UtPmRpc2Nvbm5lY3QocHNtb3VzZSk7DQorDQog CWlucHV0X3VucmVnaXN0ZXJfZGV2aWNlKCZwc21vdXNlLT5kZXYpOw0KIAlz ZXJpb19jbG9zZShzZXJpbyk7DQogCWtmcmVlKHBzbW91c2UpOw0KQEAgLTUz MiwxOSArNTQyLDkgQEAgc3RhdGljIHZvaWQgcHNtb3VzZV9kaXNjb25uZWN0 KHN0cnVjdCBzZQ0KIHN0YXRpYyBpbnQgcHNtb3VzZV9wbV9jYWxsYmFjayhz dHJ1Y3QgcG1fZGV2ICpkZXYsIHBtX3JlcXVlc3RfdCByZXF1ZXN0LCB2b2lk ICpkYXRhKQ0KIHsNCiAJc3RydWN0IHBzbW91c2UgKnBzbW91c2UgPSBkZXYt PmRhdGE7DQotCXN0cnVjdCBzZXJpb19kZXYgKnNlcl9kZXYgPSBwc21vdXNl LT5zZXJpby0+ZGV2Ow0KLQ0KLQlzeW5hcHRpY3NfZGlzY29ubmVjdChwc21v dXNlKTsNCiANCi0JLyogV2UgbmVlZCB0byByZW9wZW4gdGhlIHNlcmlvIHBv cnQgdG8gcmVpbml0aWFsaXplIHRoZSBpODA0MiBjb250cm9sbGVyICovDQot CXNlcmlvX2Nsb3NlKHBzbW91c2UtPnNlcmlvKTsNCi0Jc2VyaW9fb3Blbihw c21vdXNlLT5zZXJpbywgc2VyX2Rldik7DQotDQotCS8qIFByb2JlIGFuZCBy ZS1pbml0aWFsaXplIHRoZSBtb3VzZSAqLw0KLQlwc21vdXNlX3Byb2JlKHBz bW91c2UpOw0KLQlwc21vdXNlX2luaXRpYWxpemUocHNtb3VzZSk7DQotCXN5 bmFwdGljc19wdF9pbml0KHBzbW91c2UpOw0KLQlwc21vdXNlX2FjdGl2YXRl KHBzbW91c2UpOw0KKwlwc21vdXNlLT5zdGF0ZSA9IFBTTU9VU0VfSUdOT1JF Ow0KKwlzZXJpb19yZWNvbm5lY3QocHNtb3VzZS0+c2VyaW8pOw0KIA0KIAly ZXR1cm4gMDsNCiB9DQpAQCAtNTkwLDEwICs1OTAsMTIgQEAgc3RhdGljIHZv aWQgcHNtb3VzZV9jb25uZWN0KHN0cnVjdCBzZXJpbw0KIAkJcmV0dXJuOw0K IAl9DQogCQ0KLQlwbWRldiA9IHBtX3JlZ2lzdGVyKFBNX1NZU19ERVYsIFBN X1NZU19VTktOT1dOLCBwc21vdXNlX3BtX2NhbGxiYWNrKTsNCi0JaWYgKHBt ZGV2KSB7DQotCQlwc21vdXNlLT5kZXYucG1fZGV2ID0gcG1kZXY7DQotCQlw bWRldi0+ZGF0YSA9IHBzbW91c2U7DQorCWlmIChzZXJpby0+dHlwZSAhPSBT RVJJT19QU19QU1RIUlUpIHsNCisJCXBtZGV2ID0gcG1fcmVnaXN0ZXIoUE1f U1lTX0RFViwgUE1fU1lTX1VOS05PV04sIHBzbW91c2VfcG1fY2FsbGJhY2sp Ow0KKwkJaWYgKHBtZGV2KSB7DQorCQkJcHNtb3VzZS0+ZGV2LnBtX2RldiA9 IHBtZGV2Ow0KKwkJCXBtZGV2LT5kYXRhID0gcHNtb3VzZTsNCisJCX0NCiAJ fQ0KIA0KIAlzcHJpbnRmKHBzbW91c2UtPmRldm5hbWUsICIlcyAlcyAlcyIs DQpAQCAtNjE0LDE0ICs2MTYsNjggQEAgc3RhdGljIHZvaWQgcHNtb3VzZV9j b25uZWN0KHN0cnVjdCBzZXJpbw0KIA0KIAlwc21vdXNlX2luaXRpYWxpemUo cHNtb3VzZSk7DQogDQotCXN5bmFwdGljc19wdF9pbml0KHBzbW91c2UpOw0K KwlpZiAocHNtb3VzZS0+cHRwb3J0KSB7DQorCQlwcmludGsoS0VSTl9JTkZP ICJzZXJpbzogJXMgcG9ydCBhdCAlc1xuIiwgcHNtb3VzZS0+cHRwb3J0LT5z ZXJpby5uYW1lLCBwc21vdXNlLT5waHlzKTsNCisJCXNlcmlvX3JlZ2lzdGVy X3NsYXZlX3BvcnQoJnBzbW91c2UtPnB0cG9ydC0+c2VyaW8pOw0KKwkJaWYg KHBzbW91c2UtPnB0cG9ydC0+YWN0aXZhdGUpDQorCQkJcHNtb3VzZS0+cHRw b3J0LT5hY3RpdmF0ZShwc21vdXNlKTsNCisJfQ0KIA0KIAlwc21vdXNlX2Fj dGl2YXRlKHBzbW91c2UpOw0KIH0NCiANCitzdGF0aWMgaW50IHBzbW91c2Vf cmVjb25uZWN0KHN0cnVjdCBzZXJpbyAqc2VyaW8pDQorew0KKwlzdHJ1Y3Qg cHNtb3VzZSAqcHNtb3VzZSA9IHNlcmlvLT5wcml2YXRlOw0KKwlzdHJ1Y3Qg c2VyaW9fZGV2ICpkZXYgPSBzZXJpby0+ZGV2Ow0KKwlpbnQgb2xkX3R5cGUg PSBwc21vdXNlLT50eXBlOw0KKw0KKwlpZiAoIWRldikgew0KKwkJcHJpbnRr KEtFUk5fREVCVUcgInBzbW91c2U6IHJlY29ubmVjdCByZXF1ZXN0LCBidXQg c2VyaW8gaXMgZGlzY29ubmVjdGVkLCBpZ25vcmluZy4uLlxuIik7DQorCQly ZXR1cm4gLTE7DQorCX0NCisNCisJLyogV2UgbmVlZCB0byByZW9wZW4gdGhl IHNlcmlvIHBvcnQgdG8gcmVpbml0aWFsaXplIHRoZSBpODA0MiBjb250cm9s bGVyICovDQorCXNlcmlvX2Nsb3NlKHNlcmlvKTsNCisJaWYgKHNlcmlvX29w ZW4oc2VyaW8sIGRldikpIHsNCisJCS8qIGRvIGEgZGlzY29ubmVjdCBoZXJl IGFzIHNlcmlvX29wZW4gbGVhdmVzIGRldiBhcyBOVUxMIHNvIGRpc2Nvbm5l Y3QNCisJCSAqIHdpbGwgbm90IGJlIGNhbGxlZCBhdXRvbWF0aWNhbGx5IGxh dGVyDQorCQkgKi8NCisJCXBzbW91c2VfZGlzY29ubmVjdChzZXJpbyk7DQor CQlyZXR1cm4gLTE7DQorCX0NCisNCisJcHNtb3VzZS0+c3RhdGUgPSBQU01P VVNFX05FV19ERVZJQ0U7DQorCXBzbW91c2UtPnR5cGUgPSBwc21vdXNlLT5h Y2tpbmcgPSBwc21vdXNlLT5jbWRjbnQgPSBwc21vdXNlLT5wa3RjbnQgPSAw Ow0KKwlpZiAocHNtb3VzZS0+cmVjb25uZWN0KSB7DQorCSAgICAgICBpZiAo cHNtb3VzZS0+cmVjb25uZWN0KHBzbW91c2UpKQ0KKwkJCXJldHVybiAtMTsN CisJfSBlbHNlIGlmIChwc21vdXNlX3Byb2JlKHBzbW91c2UpICE9IG9sZF90 eXBlKQ0KKwkJcmV0dXJuIC0xOw0KKw0KKwkvKiBvaywgdGhlIGRldmljZSB0 eXBlIChhbmQgY2FwYWJpbGl0aWVzKSBtYXRjaCB0aGUgb2xkIG9uZSwNCisJ ICogd2UgY2FuIGNvbnRpbnVlIHVzaW5nIGl0LCBjb21wbGV0ZSBpbnRpYWxp emF0aW9uDQorCSAqLw0KKwlwc21vdXNlLT50eXBlID0gb2xkX3R5cGU7DQor CXBzbW91c2VfaW5pdGlhbGl6ZShwc21vdXNlKTsNCisNCisJaWYgKHBzbW91 c2UtPnB0cG9ydCkgew0KKyAgICAgICAJCWlmIChwc21vdXNlX3JlY29ubmVj dCgmcHNtb3VzZS0+cHRwb3J0LT5zZXJpbykpIHsNCisJCQlzZXJpb191bnJl Z2lzdGVyX3NsYXZlX3BvcnQoJnBzbW91c2UtPnB0cG9ydC0+c2VyaW8pOw0K KwkJCXNlcmlvX3JlZ2lzdGVyX3NsYXZlX3BvcnQoJnBzbW91c2UtPnB0cG9y dC0+c2VyaW8pOw0KKwkJCWlmIChwc21vdXNlLT5wdHBvcnQtPmFjdGl2YXRl KQ0KKwkJCQlwc21vdXNlLT5wdHBvcnQtPmFjdGl2YXRlKHBzbW91c2UpOw0K KwkJfQ0KKwl9DQorDQorCXBzbW91c2VfYWN0aXZhdGUocHNtb3VzZSk7DQor CXJldHVybiAwOw0KK30NCisNCiBzdGF0aWMgc3RydWN0IHNlcmlvX2RldiBw c21vdXNlX2RldiA9IHsNCiAJLmludGVycnVwdCA9CXBzbW91c2VfaW50ZXJy dXB0LA0KIAkuY29ubmVjdCA9CXBzbW91c2VfY29ubmVjdCwNCisJLnJlY29u bmVjdCA9CXBzbW91c2VfcmVjb25uZWN0LA0KIAkuZGlzY29ubmVjdCA9CXBz bW91c2VfZGlzY29ubmVjdCwNCiAJLmNsZWFudXAgPQlwc21vdXNlX2NsZWFu dXAsDQogfTsNCmRpZmYgLXB1TiBkcml2ZXJzL2lucHV0L21vdXNlL3BzbW91 c2UuaH5zeW5hcHRpY3MtcmVjb25uZWN0IGRyaXZlcnMvaW5wdXQvbW91c2Uv cHNtb3VzZS5oDQotLS0gbGludXgvZHJpdmVycy9pbnB1dC9tb3VzZS9wc21v dXNlLmh+c3luYXB0aWNzLXJlY29ubmVjdAkyMDAzLTA5LTI1IDIwOjE5OjAy LjAwMDAwMDAwMCArMDIwMA0KKysrIGxpbnV4LXBldGVyby9kcml2ZXJzL2lu cHV0L21vdXNlL3BzbW91c2UuaAkyMDAzLTA5LTI1IDIwOjE5OjAyLjAwMDAw MDAwMCArMDIwMA0KQEAgLTIyLDEwICsyMiwyMCBAQA0KICNkZWZpbmUgUFNN T1VTRV9BQ1RJVkFURUQJMQ0KICNkZWZpbmUgUFNNT1VTRV9JR05PUkUJCTIN CiANCitzdHJ1Y3QgcHNtb3VzZTsNCisNCitzdHJ1Y3QgcHNtb3VzZV9wdHBv cnQgew0KKwlzdHJ1Y3Qgc2VyaW8gc2VyaW87DQorDQorCXZvaWQgKCphY3Rp dmF0ZSkoc3RydWN0IHBzbW91c2UgKnBhcmVudCk7DQorCXZvaWQgKCpkZWFj dGl2YXRlKShzdHJ1Y3QgcHNtb3VzZSAqcGFyZW50KTsNCit9Ow0KKw0KIHN0 cnVjdCBwc21vdXNlIHsNCiAJdm9pZCAqcHJpdmF0ZTsNCiAJc3RydWN0IGlu cHV0X2RldiBkZXY7DQogCXN0cnVjdCBzZXJpbyAqc2VyaW87DQorCXN0cnVj dCBwc21vdXNlX3B0cG9ydCAqcHRwb3J0Ow0KIAljaGFyICp2ZW5kb3I7DQog CWNoYXIgKm5hbWU7DQogCXVuc2lnbmVkIGNoYXIgY21kYnVmWzhdOw0KQEAg LTQxLDYgKzUxLDkgQEAgc3RydWN0IHBzbW91c2Ugew0KIAljaGFyIGVycm9y Ow0KIAljaGFyIGRldm5hbWVbNjRdOw0KIAljaGFyIHBoeXNbMzJdOw0KKw0K KwlpbnQgKCpyZWNvbm5lY3QpKHN0cnVjdCBwc21vdXNlICpwc21vdXNlKTsN CisJdm9pZCAoKmRpc2Nvbm5lY3QpKHN0cnVjdCBwc21vdXNlICpwc21vdXNl KTsNCiB9Ow0KIA0KICNkZWZpbmUgUFNNT1VTRV9QUzIJCTENCmRpZmYgLXB1 TiBkcml2ZXJzL2lucHV0L21vdXNlL3N5bmFwdGljcy5jfnN5bmFwdGljcy1y ZWNvbm5lY3QgZHJpdmVycy9pbnB1dC9tb3VzZS9zeW5hcHRpY3MuYw0KLS0t IGxpbnV4L2RyaXZlcnMvaW5wdXQvbW91c2Uvc3luYXB0aWNzLmN+c3luYXB0 aWNzLXJlY29ubmVjdAkyMDAzLTA5LTI1IDIwOjE5OjAyLjAwMDAwMDAwMCAr MDIwMA0KKysrIGxpbnV4LXBldGVyby9kcml2ZXJzL2lucHV0L21vdXNlL3N5 bmFwdGljcy5jCTIwMDMtMDktMjUgMjA6MTk6MDIuMDAwMDAwMDAwICswMjAw DQpAQCAtMTkyLDExICsxOTIsMjQgQEAgc3RhdGljIHZvaWQgcHJpbnRfaWRl bnQoc3RydWN0IHN5bmFwdGljcw0KIAl9DQogfQ0KIA0KK3N0YXRpYyBpbnQg c3luYXB0aWNzX2RldGVjdChzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSkNCit7 DQorCXVuc2lnbmVkIGNoYXIgcGFyYW1bNF07DQorDQorCXBhcmFtWzBdID0g MDsNCisNCisJcHNtb3VzZV9jb21tYW5kKHBzbW91c2UsIHBhcmFtLCBQU01P VVNFX0NNRF9TRVRSRVMpOw0KKwlwc21vdXNlX2NvbW1hbmQocHNtb3VzZSwg cGFyYW0sIFBTTU9VU0VfQ01EX1NFVFJFUyk7DQorCXBzbW91c2VfY29tbWFu ZChwc21vdXNlLCBwYXJhbSwgUFNNT1VTRV9DTURfU0VUUkVTKTsNCisJcHNt b3VzZV9jb21tYW5kKHBzbW91c2UsIHBhcmFtLCBQU01PVVNFX0NNRF9TRVRS RVMpOw0KKwlwc21vdXNlX2NvbW1hbmQocHNtb3VzZSwgcGFyYW0sIFBTTU9V U0VfQ01EX0dFVElORk8pOw0KKw0KKwlyZXR1cm4gcGFyYW1bMV0gPT0gMHg0 NyA/IDAgOiAtMTsNCit9DQorDQogc3RhdGljIGludCBzeW5hcHRpY3NfcXVl cnlfaGFyZHdhcmUoc3RydWN0IHBzbW91c2UgKnBzbW91c2UpDQogew0KLQlz dHJ1Y3Qgc3luYXB0aWNzX2RhdGEgKnByaXYgPSBwc21vdXNlLT5wcml2YXRl Ow0KIAlpbnQgcmV0cmllcyA9IDA7DQotCWludCBtb2RlOw0KIA0KIAl3aGls ZSAoKHJldHJpZXMrKyA8IDMpICYmIHN5bmFwdGljc19yZXNldChwc21vdXNl KSkNCiAJCXByaW50ayhLRVJOX0VSUiAic3luYXB0aWNzIHJlc2V0IGZhaWxl ZFxuIik7DQpAQCAtMjA4LDcgKzIyMSwxNCBAQCBzdGF0aWMgaW50IHN5bmFw dGljc19xdWVyeV9oYXJkd2FyZShzdHJ1DQogCWlmIChzeW5hcHRpY3NfY2Fw YWJpbGl0eShwc21vdXNlKSkNCiAJCXJldHVybiAtMTsNCiANCi0JbW9kZSA9 IFNZTl9CSVRfQUJTT0xVVEVfTU9ERSB8IFNZTl9CSVRfSElHSF9SQVRFOw0K KwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGludCBzeW5hcHRpY3Nfc2V0 X21vZGUoc3RydWN0IHBzbW91c2UgKnBzbW91c2UsIGludCBtb2RlKQ0KK3sN CisJc3RydWN0IHN5bmFwdGljc19kYXRhICpwcml2ID0gcHNtb3VzZS0+cHJp dmF0ZTsNCisNCisJbW9kZSB8PSBTWU5fQklUX0FCU09MVVRFX01PREUgfCBT WU5fQklUX0hJR0hfUkFURTsNCiAJaWYgKFNZTl9JRF9NQUpPUihwcml2LT5p ZGVudGl0eSkgPj0gNCkNCiAJCW1vZGUgfD0gU1lOX0JJVF9ESVNBQkxFX0dF U1RVUkU7DQogCWlmIChTWU5fQ0FQX0VYVEVOREVEKHByaXYtPmNhcGFiaWxp dGllcykpDQpAQCAtMjY1LDQ5ICsyODUsMzggQEAgc3RhdGljIHZvaWQgc3lu YXB0aWNzX3Bhc3NfcHRfcGFja2V0KHN0cg0KIAl9DQogfQ0KIA0KLWludCBz eW5hcHRpY3NfcHRfaW5pdChzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSkNCitz dGF0aWMgdm9pZCBzeW5hcHRpY3NfcHRfYWN0aXZhdGUoc3RydWN0IHBzbW91 c2UgKnBzbW91c2UpDQogew0KLQlzdHJ1Y3Qgc3luYXB0aWNzX2RhdGEgKnBy aXYgPSBwc21vdXNlLT5wcml2YXRlOw0KLQlzdHJ1Y3Qgc2VyaW8gKnBvcnQ7 DQotCXN0cnVjdCBwc21vdXNlICpjaGlsZDsNCisJc3RydWN0IHBzbW91c2Ug KmNoaWxkID0gcHNtb3VzZS0+cHRwb3J0LT5zZXJpby5wcml2YXRlOw0KIA0K LQlpZiAocHNtb3VzZS0+dHlwZSAhPSBQU01PVVNFX1NZTkFQVElDUykNCi0J CXJldHVybiAtMTsNCi0JaWYgKCFTWU5fQ0FQX0VYVEVOREVEKHByaXYtPmNh cGFiaWxpdGllcykpDQotCQlyZXR1cm4gLTE7DQotCWlmICghU1lOX0NBUF9Q QVNTX1RIUk9VR0gocHJpdi0+Y2FwYWJpbGl0aWVzKSkNCi0JCXJldHVybiAt MTsNCisJLyogYWRqdXN0IHRoZSB0b3VjaHBhZCB0byBjaGlsZCdzIGNob2lj ZSBvZiBwcm90b2NvbCAqLw0KKwlpZiAoY2hpbGQgJiYgY2hpbGQtPnR5cGUg Pj0gUFNNT1VTRV9HRU5QUykgew0KKwkJaWYgKHN5bmFwdGljc19zZXRfbW9k ZShwc21vdXNlLCBTWU5fQklUX0ZPVVJfQllURV9DTElFTlQpKQ0KKwkJCXBy aW50ayhLRVJOX0lORk8gInN5bmFwdGljczogZmFpbGVkIHRvIGVuYWJsZSA0 LWJ5dGUgZ3Vlc3QgcHJvdG9jb2xcbiIpOw0KKwl9DQorfQ0KKw0KK3N0YXRp YyB2b2lkIHN5bmFwdGljc19wdF9jcmVhdGUoc3RydWN0IHBzbW91c2UgKnBz bW91c2UpDQorew0KKwlzdHJ1Y3QgcHNtb3VzZV9wdHBvcnQgKnBvcnQ7DQog DQotCXByaXYtPnB0cG9ydCA9IHBvcnQgPSBrbWFsbG9jKHNpemVvZihzdHJ1 Y3Qgc2VyaW8pLCBHRlBfS0VSTkVMKTsNCisJcHNtb3VzZS0+cHRwb3J0ID0g cG9ydCA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBwc21vdXNlX3B0cG9ydCks IEdGUF9LRVJORUwpOw0KIAlpZiAoIXBvcnQpIHsNCi0JCXByaW50ayhLRVJO X0VSUiAic3luYXB0aWNzOiBub3QgZW5vdWdoIG1lbW9yeSB0byBhbGxvY2F0 ZSBzZXJpbyBwb3J0XG4iKTsNCi0JCXJldHVybiAtMTsNCisJCXByaW50ayhL RVJOX0VSUiAic3luYXB0aWNzOiBub3QgZW5vdWdoIG1lbW9yeSB0byBhbGxv Y2F0ZSBwYXNzLXRocm91Z2ggcG9ydFxuIik7DQorCQlyZXR1cm47DQogCX0N CiANCi0JbWVtc2V0KHBvcnQsIDAsIHNpemVvZihzdHJ1Y3Qgc2VyaW8pKTsN Ci0JcG9ydC0+dHlwZSA9IFNFUklPX1BTX1BTVEhSVTsNCi0JcG9ydC0+bmFt ZSA9ICJTeW5hcHRpY3MgcGFzcy10aHJvdWdoIjsNCi0JcG9ydC0+cGh5cyA9 ICJzeW5hcHRpY3MtcHQvc2VyaW8wIjsNCi0JcG9ydC0+d3JpdGUgPSBzeW5h cHRpY3NfcHRfd3JpdGU7DQotCXBvcnQtPm9wZW4gPSBzeW5hcHRpY3NfcHRf b3BlbjsNCi0JcG9ydC0+Y2xvc2UgPSBzeW5hcHRpY3NfcHRfY2xvc2U7DQot CXBvcnQtPmRyaXZlciA9IHBzbW91c2U7DQorCW1lbXNldChwb3J0LCAwLCBz aXplb2Yoc3RydWN0IHBzbW91c2VfcHRwb3J0KSk7DQogDQotCXByaW50ayhL RVJOX0lORk8gInNlcmlvOiAlcyBwb3J0IGF0ICVzXG4iLCBwb3J0LT5uYW1l LCBwc21vdXNlLT5waHlzKTsNCi0Jc2VyaW9fcmVnaXN0ZXJfc2xhdmVfcG9y dChwb3J0KTsNCisJcG9ydC0+c2VyaW8udHlwZSA9IFNFUklPX1BTX1BTVEhS VTsNCisJcG9ydC0+c2VyaW8ubmFtZSA9ICJTeW5hcHRpY3MgcGFzcy10aHJv dWdoIjsNCisJcG9ydC0+c2VyaW8ucGh5cyA9ICJzeW5hcHRpY3MtcHQvc2Vy aW8wIjsNCisJcG9ydC0+c2VyaW8ud3JpdGUgPSBzeW5hcHRpY3NfcHRfd3Jp dGU7DQorCXBvcnQtPnNlcmlvLm9wZW4gPSBzeW5hcHRpY3NfcHRfb3BlbjsN CisJcG9ydC0+c2VyaW8uY2xvc2UgPSBzeW5hcHRpY3NfcHRfY2xvc2U7DQor CXBvcnQtPnNlcmlvLmRyaXZlciA9IHBzbW91c2U7DQogDQotCS8qIGFkanVz dCB0aGUgdG91Y2hwYWQgdG8gY2hpbGQncyBjaG9pY2Ugb2YgcHJvdG9jb2wg Ki8NCi0JY2hpbGQgPSBwb3J0LT5wcml2YXRlOw0KLQlpZiAoY2hpbGQgJiYg Y2hpbGQtPnR5cGUgPj0gUFNNT1VTRV9HRU5QUykgew0KLQkJaWYgKHN5bmFw dGljc19tb2RlX2NtZChwc21vdXNlLCAoU1lOX0JJVF9BQlNPTFVURV9NT0RF IHwNCi0JCQkJCSAJIFNZTl9CSVRfSElHSF9SQVRFIHwNCi0JCQkJCSAJIFNZ Tl9CSVRfRElTQUJMRV9HRVNUVVJFIHwNCi0JCQkJCQkgU1lOX0JJVF9GT1VS X0JZVEVfQ0xJRU5UIHwNCi0JCQkJCSAJIFNZTl9CSVRfV19NT0RFKSkpDQot CQkJcHJpbnRrKEtFUk5fSU5GTyAic3luYXB0aWNzOiBmYWlsZWQgdG8gZW5h YmxlIDQtYnl0ZSBndWVzdCBwcm90b2NvbFxuIik7DQotCX0NCi0NCi0JcmV0 dXJuIDA7DQorCXBvcnQtPmFjdGl2YXRlID0gc3luYXB0aWNzX3B0X2FjdGl2 YXRlOw0KIH0NCiANCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioNCkBAIC0zNzEsNiArMzgwLDM5IEBAIHN0YXRpYyB2b2lkIHNldF9pbnB1 dF9wYXJhbXMoc3RydWN0IGlucHUNCiAJY2xlYXJfYml0KFJFTF9ZLCBkZXYt PnJlbGJpdCk7DQogfQ0KIA0KK3N0YXRpYyB2b2lkIHN5bmFwdGljc19kaXNj b25uZWN0KHN0cnVjdCBwc21vdXNlICpwc21vdXNlKQ0KK3sNCisJc3luYXB0 aWNzX21vZGVfY21kKHBzbW91c2UsIDApOw0KKwlrZnJlZShwc21vdXNlLT5w cml2YXRlKTsNCit9DQorDQorc3RhdGljIGludCBzeW5hcHRpY3NfcmVjb25u ZWN0KHN0cnVjdCBwc21vdXNlICpwc21vdXNlKQ0KK3sNCisJc3RydWN0IHN5 bmFwdGljc19kYXRhICpwcml2ID0gcHNtb3VzZS0+cHJpdmF0ZTsNCisJc3Ry dWN0IHN5bmFwdGljc19kYXRhIG9sZF9wcml2ID0gKnByaXY7DQorDQorCWlm IChzeW5hcHRpY3NfZGV0ZWN0KHBzbW91c2UpKQ0KKwkJcmV0dXJuIC0xOw0K Kw0KKwlpZiAoc3luYXB0aWNzX3F1ZXJ5X2hhcmR3YXJlKHBzbW91c2UpKSB7 DQorCQlwcmludGsoS0VSTl9FUlIgIlVuYWJsZSB0byBxdWVyeSBTeW5hcHRp Y3MgaGFyZHdhcmUuXG4iKTsNCisJCXJldHVybiAtMTsNCisJfQ0KKw0KKwlp ZiAob2xkX3ByaXYuaWRlbnRpdHkgIT0gcHJpdi0+aWRlbnRpdHkgfHwNCisJ ICAgIG9sZF9wcml2Lm1vZGVsX2lkICE9IHByaXYtPm1vZGVsX2lkIHx8DQor CSAgICBvbGRfcHJpdi5jYXBhYmlsaXRpZXMgIT0gcHJpdi0+Y2FwYWJpbGl0 aWVzIHx8DQorICAgIAkgICAgb2xkX3ByaXYuZXh0X2NhcCAhPSBwcml2LT5l eHRfY2FwKQ0KKyAgICAJCXJldHVybiAtMTsNCisNCisJaWYgKHN5bmFwdGlj c19zZXRfbW9kZShwc21vdXNlLCAwKSkgew0KKwkJcHJpbnRrKEtFUk5fRVJS ICJVbmFibGUgdG8gaW5pdGlhbGl6ZSBTeW5hcHRpY3MgaGFyZHdhcmUuXG4i KTsNCisJCXJldHVybiAtMTsNCisJfQ0KKw0KKwlyZXR1cm4gMDsNCit9DQor DQogaW50IHN5bmFwdGljc19pbml0KHN0cnVjdCBwc21vdXNlICpwc21vdXNl KQ0KIHsNCiAJc3RydWN0IHN5bmFwdGljc19kYXRhICpwcml2Ow0KQEAgLTM4 NSwxMyArNDI3LDI0IEBAIGludCBzeW5hcHRpY3NfaW5pdChzdHJ1Y3QgcHNt b3VzZSAqcHNtb3UNCiAJbWVtc2V0KHByaXYsIDAsIHNpemVvZihzdHJ1Y3Qg c3luYXB0aWNzX2RhdGEpKTsNCiANCiAJaWYgKHN5bmFwdGljc19xdWVyeV9o YXJkd2FyZShwc21vdXNlKSkgew0KLQkJcHJpbnRrKEtFUk5fRVJSICJVbmFi bGUgdG8gcXVlcnkvaW5pdGlhbGl6ZSBTeW5hcHRpY3MgaGFyZHdhcmUuXG4i KTsNCisJCXByaW50ayhLRVJOX0VSUiAiVW5hYmxlIHRvIHF1ZXJ5IFN5bmFw dGljcyBoYXJkd2FyZS5cbiIpOw0KKwkJZ290byBpbml0X2ZhaWw7DQorCX0N CisNCisJaWYgKHN5bmFwdGljc19zZXRfbW9kZShwc21vdXNlLCAwKSkgew0K KwkJcHJpbnRrKEtFUk5fRVJSICJVbmFibGUgdG8gaW5pdGlhbGl6ZSBTeW5h cHRpY3MgaGFyZHdhcmUuXG4iKTsNCiAJCWdvdG8gaW5pdF9mYWlsOw0KIAl9 DQogDQorCWlmIChTWU5fQ0FQX0VYVEVOREVEKHByaXYtPmNhcGFiaWxpdGll cykgJiYgU1lOX0NBUF9QQVNTX1RIUk9VR0gocHJpdi0+Y2FwYWJpbGl0aWVz KSkNCisJCXN5bmFwdGljc19wdF9jcmVhdGUocHNtb3VzZSk7DQorDQogCXBy aW50X2lkZW50KHByaXYpOw0KIAlzZXRfaW5wdXRfcGFyYW1zKCZwc21vdXNl LT5kZXYsIHByaXYpOw0KIA0KKwlwc21vdXNlLT5kaXNjb25uZWN0ID0gc3lu YXB0aWNzX2Rpc2Nvbm5lY3Q7DQorCXBzbW91c2UtPnJlY29ubmVjdCA9IHN5 bmFwdGljc19yZWNvbm5lY3Q7DQorDQogCXJldHVybiAwOw0KIA0KICBpbml0 X2ZhaWw6DQpAQCAtMzk5LDIwICs0NTIsNiBAQCBpbnQgc3luYXB0aWNzX2lu aXQoc3RydWN0IHBzbW91c2UgKnBzbW91DQogCXJldHVybiAtMTsNCiB9DQog DQotdm9pZCBzeW5hcHRpY3NfZGlzY29ubmVjdChzdHJ1Y3QgcHNtb3VzZSAq cHNtb3VzZSkNCi17DQotCXN0cnVjdCBzeW5hcHRpY3NfZGF0YSAqcHJpdiA9 IHBzbW91c2UtPnByaXZhdGU7DQotDQotCWlmIChwc21vdXNlLT50eXBlID09 IFBTTU9VU0VfU1lOQVBUSUNTICYmIHByaXYpIHsNCi0JCXN5bmFwdGljc19t b2RlX2NtZChwc21vdXNlLCAwKTsNCi0JCWlmIChwcml2LT5wdHBvcnQpIHsN Ci0JCQlzZXJpb191bnJlZ2lzdGVyX3NsYXZlX3BvcnQocHJpdi0+cHRwb3J0 KTsNCi0JCQlrZnJlZShwcml2LT5wdHBvcnQpOw0KLQkJfQ0KLQkJa2ZyZWUo cHJpdik7DQotCX0NCi19DQotDQogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqDQogICoJRnVuY3Rpb25zIHRvIGludGVycHJldCB0aGUgYWJz b2x1dGUgbW9kZSBwYWNrZXRzDQogICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovDQpAQCAtNjEzLDggKzY1Miw5IEBAIHZvaWQgc3luYXB0aWNz X3Byb2Nlc3NfYnl0ZShzdHJ1Y3QgcHNtb3UNCiAJCQlwcmludGsoS0VSTl9O T1RJQ0UgIlN5bmFwdGljcyBkcml2ZXIgcmVzeW5jZWQuXG4iKTsNCiAJCX0N CiANCi0JCWlmIChwcml2LT5wdHBvcnQgJiYgc3luYXB0aWNzX2lzX3B0X3Bh Y2tldChwc21vdXNlLT5wYWNrZXQpKQ0KLQkJCXN5bmFwdGljc19wYXNzX3B0 X3BhY2tldChwcml2LT5wdHBvcnQsIHBzbW91c2UtPnBhY2tldCk7DQorCQlp ZiAocHNtb3VzZS0+cHRwb3J0ICYmIHBzbW91c2UtPnB0cG9ydC0+c2VyaW8u ZGV2ICYmDQorCQkgICAgc3luYXB0aWNzX2lzX3B0X3BhY2tldChwc21vdXNl LT5wYWNrZXQpKQ0KKwkJCXN5bmFwdGljc19wYXNzX3B0X3BhY2tldCgmcHNt b3VzZS0+cHRwb3J0LT5zZXJpbywgcHNtb3VzZS0+cGFja2V0KTsNCiAJCWVs c2UNCiAJCQlzeW5hcHRpY3NfcHJvY2Vzc19wYWNrZXQocHNtb3VzZSk7DQog DQpAQCAtNjI4LDYgKzY2OCw3IEBAIHZvaWQgc3luYXB0aWNzX3Byb2Nlc3Nf Ynl0ZShzdHJ1Y3QgcHNtb3UNCiAJcHNtb3VzZS0+cGt0Y250ID0gMDsNCiAJ aWYgKHBzbW91c2VfcmVzZXRhZnRlciA+IDAgJiYgcHJpdi0+b3V0X29mX3N5 bmMJPT0gcHNtb3VzZV9yZXNldGFmdGVyKSB7DQogCQlwc21vdXNlLT5zdGF0 ZSA9IFBTTU9VU0VfSUdOT1JFOw0KLQkJc2VyaW9fcmVzY2FuKHBzbW91c2Ut PnNlcmlvKTsNCisJCXByaW50ayhLRVJOX05PVElDRSAic3luYXB0aWNzOiBp c3N1aW5nIHJlY29ubmVjdCByZXF1ZXN0XG4iKTsNCisJCXNlcmlvX3JlY29u bmVjdChwc21vdXNlLT5zZXJpbyk7DQogCX0NCiB9DQpkaWZmIC1wdU4gZHJp dmVycy9pbnB1dC9tb3VzZS9zeW5hcHRpY3MuaH5zeW5hcHRpY3MtcmVjb25u ZWN0IGRyaXZlcnMvaW5wdXQvbW91c2Uvc3luYXB0aWNzLmgNCi0tLSBsaW51 eC9kcml2ZXJzL2lucHV0L21vdXNlL3N5bmFwdGljcy5ofnN5bmFwdGljcy1y ZWNvbm5lY3QJMjAwMy0wOS0yNSAyMDoxOTowMi4wMDAwMDAwMDAgKzAyMDAN CisrKyBsaW51eC1wZXRlcm8vZHJpdmVycy9pbnB1dC9tb3VzZS9zeW5hcHRp Y3MuaAkyMDAzLTA5LTI1IDIwOjE5OjAyLjAwMDAwMDAwMCArMDIwMA0KQEAg LTEyLDggKzEyLDYgQEANCiANCiBleHRlcm4gdm9pZCBzeW5hcHRpY3NfcHJv Y2Vzc19ieXRlKHN0cnVjdCBwc21vdXNlICpwc21vdXNlLCBzdHJ1Y3QgcHRf cmVncyAqcmVncyk7DQogZXh0ZXJuIGludCBzeW5hcHRpY3NfaW5pdChzdHJ1 Y3QgcHNtb3VzZSAqcHNtb3VzZSk7DQotZXh0ZXJuIGludCBzeW5hcHRpY3Nf cHRfaW5pdChzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSk7DQotZXh0ZXJuIHZv aWQgc3luYXB0aWNzX2Rpc2Nvbm5lY3Qoc3RydWN0IHBzbW91c2UgKnBzbW91 c2UpOw0KIA0KIC8qIHN5bmFwdGljcyBxdWVyaWVzICovDQogI2RlZmluZSBT WU5fUVVFX0lERU5USUZZCQkweDAwDQpAQCAtMTA1LDggKzEwMyw2IEBAIHN0 cnVjdCBzeW5hcHRpY3NfZGF0YSB7DQogCS8qIERhdGEgZm9yIG5vcm1hbCBw cm9jZXNzaW5nICovDQogCXVuc2lnbmVkIGludCBvdXRfb2Zfc3luYzsJCS8q ICMgb2YgcGFja2V0cyBvdXQgb2Ygc3luYyAqLw0KIAlpbnQgb2xkX3c7CQkJ CS8qIFByZXZpb3VzIHcgdmFsdWUgKi8NCi0JDQotCXN0cnVjdCBzZXJpbyAq cHRwb3J0OwkJCS8qIHBhc3MtdGhyb3VnaCBwb3J0ICovDQogfTsNCiANCiAj ZW5kaWYgLyogX1NZTkFQVElDU19IICovDQoNCl8NCg== --8323328-1382455761-1064553868=:17591--