From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Remy Bohmer" Subject: Re: [PATCH]: Atmel Serial Console interrupt handler splitup Date: Thu, 13 Dec 2007 17:40:37 +0100 Message-ID: <3efb10970712130840r7a2c5f72jca641d1cac545464@mail.gmail.com> References: <3efb10970712070724i6fa66666t2b8422329759ce24@mail.gmail.com> <3efb10970712121429l7b41d57md4f826f6aaf4b71@mail.gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_11587_32320749.1197564038197" Cc: RT , "Ingo Molnar" , "Thomas Gleixner" To: "Steven Rostedt" , "Andrew Victor" Return-path: Received: from py-out-1112.google.com ([64.233.166.178]:18149 "EHLO py-out-1112.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753558AbXLMQkm (ORCPT ); Thu, 13 Dec 2007 11:40:42 -0500 Received: by py-out-1112.google.com with SMTP id u77so248246pyb.16 for ; Thu, 13 Dec 2007 08:40:39 -0800 (PST) In-Reply-To: <3efb10970712121429l7b41d57md4f826f6aaf4b71@mail.gmail.com> Sender: linux-rt-users-owner@vger.kernel.org List-ID: ------=_Part_11587_32320749.1197564038197 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello Steven and Andrew, Attached I have put a patchset that is independant from the patchset at: http://maxim.org.za/AT91RM9200/2.6/2.6.23-at91.patch.gz These patches should go to mainline: * atmel_serial_cleanup_no_at91.patch * atmel_serial_irq_splitup_no_at91.patch And this one into the RT-patch: * atmel_serial_irqf_nodelay.patch I hope this set is easier to integrate. Kind Regards, Remy 2007/12/12, Remy Bohmer : > Hello Steven, > > > > So, I have here 3 patches: > > > * atmel_serial_cleanup -> This patch adapts the driver to the coding > > > rules, splits the interrupt handler into 3 routines (cuts the routine > > > in more readable pieces) , but there is no functional change involved. > > > * atmel_serial_irq_splitup -> This patch splits up the interrupt handler. > > > * atmel_serial_irqf_nodelay -> This patch is additionally required to > > > get it properly working on Preempt-RT. (This patch should thus go into > > > the RT-patch, AFTER integration of the other 2 patches into mainline) > > > > > > BUT: I based the patch on the 2.6.23.1 + Andrews patch collection at > > > http://maxim.org.za/AT91RM9200/2.6/2.6.23-at91.patch.gz > > > > I could pull all the patches into RT (although I would like Thomas to take > > a look first and give an OK). > > Instead of pulling the complete patchset, we can also pull the minimal > set of patches to make Preempt-RT to work properly on AT91; Preempt-RT > depends on: > 1) ClockSource & ClockEvents for AT91RM9200. [David Brownell, and others] > 2) Support configurable HZ. [David Brownell] > 3) The Serial port interrupt handler splitup patchset. > 4) And of course, the > use-edge-irq-instead-of-simple-irq-interrupt-handler patch for AT91, I > posted last week. > > Maybe, Andrew can provide the patches 1 and 2 separate from his > patchset, so you can add them to RT for 2.6.23 only? patch 1 seems to > be in 2.6.24-rc4 already. > > > And then apply your patches on top. I'm > > assuming that this only affects the ARM architecture and the AT91 device? > > The complete patchset from Andrew also effects other Atmel cores, and > I only focussed on AT91sam/at91rm. Andrew mentioned that the DMA patch > for Serial in his set did not work on AVR32, so, we probably do not > want to have that change until it is really stable. > Tomorrow, I can easily make my set separate from that DMA part, so > that the patches 1-4 can be mainlined without other dependencies, > including the irqf_nodelay-patch which can be put in the RT-patchset. > I can post this mainline-able patch (3) tomorrow. > > > I'm leaving this out for -rt13 and for the next cut of 2.6.24-rc-rt. But > > if Thomas is OK with pulling in the external patch queue, I'll do it for > > -rt14. > > OK. > > > It is best if the patch queue in question makes it into mainline. > > Agree. > > > Kind Regards, > > Remy > ------=_Part_11587_32320749.1197564038197 Content-Type: text/x-patch; name=atmel_serial_cleanup_no_at91.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_fa5ifvtu Content-Disposition: attachment; filename=atmel_serial_cleanup_no_at91.patch VGhpcyBwYXRjaCBjbGVhbnMgdXAgdGhlIGF0bWVsX3NlcmlhbCBkcml2ZXIgdG8gY29uZm9ybSB0 aGUgY29kaW5nIHJ1bGVzLgpJdCBjb250YWlucyBubyBmdW5jdGlvbmFsIGNoYW5nZS4KClNpZ25l ZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgotLS0KIGRyaXZlcnMvc2Vy aWFsL2F0bWVsX3NlcmlhbC5jIHwgIDM0OCArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOTYgaW5zZXJ0aW9ucygrKSwgMTUyIGRlbGV0 aW9ucygtKQoKSW5kZXg6IGxpbnV4LTIuNi4yMy9kcml2ZXJzL3NlcmlhbC9hdG1lbF9zZXJpYWwu Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSBsaW51eC0yLjYuMjMub3JpZy9kcml2ZXJzL3NlcmlhbC9hdG1lbF9z ZXJpYWwuYwkyMDA3LTEyLTEzIDE3OjMwOjQ2LjAwMDAwMDAwMCArMDEwMAorKysgbGludXgtMi42 LjIzL2RyaXZlcnMvc2VyaWFsL2F0bWVsX3NlcmlhbC5jCTIwMDctMTItMTMgMTc6MzA6NDguMDAw MDAwMDAwICswMTAwCkBAIC03NCw0NyArNzQsNTEgQEAKIAogI2RlZmluZSBBVE1FTF9JU1JfUEFT U19MSU1JVAkyNTYKIAotI2RlZmluZSBVQVJUX1BVVF9DUihwb3J0LHYpCV9fcmF3X3dyaXRlbCh2 LCAocG9ydCktPm1lbWJhc2UgKyBBVE1FTF9VU19DUikKLSNkZWZpbmUgVUFSVF9HRVRfTVIocG9y dCkJX19yYXdfcmVhZGwoKHBvcnQpLT5tZW1iYXNlICsgQVRNRUxfVVNfTVIpCi0jZGVmaW5lIFVB UlRfUFVUX01SKHBvcnQsdikJX19yYXdfd3JpdGVsKHYsIChwb3J0KS0+bWVtYmFzZSArIEFUTUVM X1VTX01SKQotI2RlZmluZSBVQVJUX1BVVF9JRVIocG9ydCx2KQlfX3Jhd193cml0ZWwodiwgKHBv cnQpLT5tZW1iYXNlICsgQVRNRUxfVVNfSUVSKQotI2RlZmluZSBVQVJUX1BVVF9JRFIocG9ydCx2 KQlfX3Jhd193cml0ZWwodiwgKHBvcnQpLT5tZW1iYXNlICsgQVRNRUxfVVNfSURSKQotI2RlZmlu ZSBVQVJUX0dFVF9JTVIocG9ydCkJX19yYXdfcmVhZGwoKHBvcnQpLT5tZW1iYXNlICsgQVRNRUxf VVNfSU1SKQotI2RlZmluZSBVQVJUX0dFVF9DU1IocG9ydCkJX19yYXdfcmVhZGwoKHBvcnQpLT5t ZW1iYXNlICsgQVRNRUxfVVNfQ1NSKQotI2RlZmluZSBVQVJUX0dFVF9DSEFSKHBvcnQpCV9fcmF3 X3JlYWRsKChwb3J0KS0+bWVtYmFzZSArIEFUTUVMX1VTX1JIUikKLSNkZWZpbmUgVUFSVF9QVVRf Q0hBUihwb3J0LHYpCV9fcmF3X3dyaXRlbCh2LCAocG9ydCktPm1lbWJhc2UgKyBBVE1FTF9VU19U SFIpCi0jZGVmaW5lIFVBUlRfR0VUX0JSR1IocG9ydCkJX19yYXdfcmVhZGwoKHBvcnQpLT5tZW1i YXNlICsgQVRNRUxfVVNfQlJHUikKLSNkZWZpbmUgVUFSVF9QVVRfQlJHUihwb3J0LHYpCV9fcmF3 X3dyaXRlbCh2LCAocG9ydCktPm1lbWJhc2UgKyBBVE1FTF9VU19CUkdSKQotI2RlZmluZSBVQVJU X1BVVF9SVE9SKHBvcnQsdikJX19yYXdfd3JpdGVsKHYsIChwb3J0KS0+bWVtYmFzZSArIEFUTUVM X1VTX1JUT1IpCisjZGVmaW5lIGxyZWFkKHBvcnQpCQlfX3Jhd19yZWFkbChwb3J0KQorI2RlZmlu ZSBsd3JpdGUodiwgcG9ydCkJCV9fcmF3X3dyaXRlbCh2LCBwb3J0KQogCi0vLyAjZGVmaW5lIFVB UlRfR0VUX0NSKHBvcnQpCV9fcmF3X3JlYWRsKChwb3J0KS0+bWVtYmFzZSArIEFUTUVMX1VTX0NS KQkJLy8gaXMgd3JpdGUtb25seQorI2RlZmluZSBVQVJUX1BVVF9DUihwb3J0LCB2KQlsd3JpdGUo diwgKHBvcnQpLT5tZW1iYXNlICsgQVRNRUxfVVNfQ1IpCisjZGVmaW5lIFVBUlRfUFVUX01SKHBv cnQsIHYpCWx3cml0ZSh2LCAocG9ydCktPm1lbWJhc2UgKyBBVE1FTF9VU19NUikKKyNkZWZpbmUg VUFSVF9QVVRfSUVSKHBvcnQsIHYpCWx3cml0ZSh2LCAocG9ydCktPm1lbWJhc2UgKyBBVE1FTF9V U19JRVIpCisjZGVmaW5lIFVBUlRfUFVUX0lEUihwb3J0LCB2KQlsd3JpdGUodiwgKHBvcnQpLT5t ZW1iYXNlICsgQVRNRUxfVVNfSURSKQorI2RlZmluZSBVQVJUX1BVVF9DSEFSKHBvcnQsIHYpCWx3 cml0ZSh2LCAocG9ydCktPm1lbWJhc2UgKyBBVE1FTF9VU19USFIpCisjZGVmaW5lIFVBUlRfUFVU X0JSR1IocG9ydCwgdikJbHdyaXRlKHYsIChwb3J0KS0+bWVtYmFzZSArIEFUTUVMX1VTX0JSR1Ip CisjZGVmaW5lIFVBUlRfUFVUX1JUT1IocG9ydCwgdikJbHdyaXRlKHYsIChwb3J0KS0+bWVtYmFz ZSArIEFUTUVMX1VTX1JUT1IpCisKKyNkZWZpbmUgVUFSVF9HRVRfTVIocG9ydCkJbHJlYWQoKHBv cnQpLT5tZW1iYXNlICsgQVRNRUxfVVNfTVIpCisjZGVmaW5lIFVBUlRfR0VUX0lNUihwb3J0KQls cmVhZCgocG9ydCktPm1lbWJhc2UgKyBBVE1FTF9VU19JTVIpCisjZGVmaW5lIFVBUlRfR0VUX0NT Uihwb3J0KQlscmVhZCgocG9ydCktPm1lbWJhc2UgKyBBVE1FTF9VU19DU1IpCisjZGVmaW5lIFVB UlRfR0VUX0NIQVIocG9ydCkJbHJlYWQoKHBvcnQpLT5tZW1iYXNlICsgQVRNRUxfVVNfUkhSKQor I2RlZmluZSBVQVJUX0dFVF9CUkdSKHBvcnQpCWxyZWFkKChwb3J0KS0+bWVtYmFzZSArIEFUTUVM X1VTX0JSR1IpCisKKy8qIGlzIHdyaXRlLW9ubHkgKi8KKy8qICNkZWZpbmUgVUFSVF9HRVRfQ1Io cG9ydCkgICAgbHJlYWQoKHBvcnQpLT5tZW1iYXNlICsgQVRNRUxfVVNfQ1IpICovCiAKICAvKiBQ REMgcmVnaXN0ZXJzICovCi0jZGVmaW5lIFVBUlRfUFVUX1BUQ1IocG9ydCx2KQlfX3Jhd193cml0 ZWwodiwgKHBvcnQpLT5tZW1iYXNlICsgQVRNRUxfUERDX1BUQ1IpCi0jZGVmaW5lIFVBUlRfR0VU X1BUU1IocG9ydCkJX19yYXdfcmVhZGwoKHBvcnQpLT5tZW1iYXNlICsgQVRNRUxfUERDX1BUU1Ip CisjZGVmaW5lIFVBUlRfUFVUX1BUQ1IocG9ydCwgdikJbHdyaXRlKHYsIChwb3J0KS0+bWVtYmFz ZSArIEFUTUVMX1BEQ19QVENSKQorI2RlZmluZSBVQVJUX1BVVF9SUFIocG9ydCwgdikJbHdyaXRl KHYsIChwb3J0KS0+bWVtYmFzZSArIEFUTUVMX1BEQ19SUFIpCisjZGVmaW5lIFVBUlRfUFVUX1JD Uihwb3J0LCB2KQlsd3JpdGUodiwgKHBvcnQpLT5tZW1iYXNlICsgQVRNRUxfUERDX1JDUikKKyNk ZWZpbmUgVUFSVF9QVVRfUk5QUihwb3J0LCB2KQlsd3JpdGUodiwgKHBvcnQpLT5tZW1iYXNlICsg QVRNRUxfUERDX1JOUFIpCisjZGVmaW5lIFVBUlRfUFVUX1JOQ1IocG9ydCwgdikJbHdyaXRlKHYs IChwb3J0KS0+bWVtYmFzZSArIEFUTUVMX1BEQ19STkNSKQorI2RlZmluZSBVQVJUX1BVVF9UUFIo cG9ydCwgdikJbHdyaXRlKHYsIChwb3J0KS0+bWVtYmFzZSArIEFUTUVMX1BEQ19UUFIpCisjZGVm aW5lIFVBUlRfUFVUX1RDUihwb3J0LCB2KQlsd3JpdGUodiwgKHBvcnQpLT5tZW1iYXNlICsgQVRN RUxfUERDX1RDUikKKy8qI2RlZmluZSBVQVJUX1BVVF9UTlBSKHBvcnQsIHYpIGx3cml0ZSh2LCAo cG9ydCktPm1lbWJhc2UgKyBBVE1FTF9QRENfVE5QUikgKi8KKy8qI2RlZmluZSBVQVJUX1BVVF9U TkNSKHBvcnQsIHYpIGx3cml0ZSh2LCAocG9ydCktPm1lbWJhc2UgKyBBVE1FTF9QRENfVE5DUikg Ki8KIAotI2RlZmluZSBVQVJUX1BVVF9SUFIocG9ydCx2KQlfX3Jhd193cml0ZWwodiwgKHBvcnQp LT5tZW1iYXNlICsgQVRNRUxfUERDX1JQUikKLSNkZWZpbmUgVUFSVF9HRVRfUlBSKHBvcnQpCV9f cmF3X3JlYWRsKChwb3J0KS0+bWVtYmFzZSArIEFUTUVMX1BEQ19SUFIpCi0jZGVmaW5lIFVBUlRf UFVUX1JDUihwb3J0LHYpCV9fcmF3X3dyaXRlbCh2LCAocG9ydCktPm1lbWJhc2UgKyBBVE1FTF9Q RENfUkNSKQotI2RlZmluZSBVQVJUX1BVVF9STlBSKHBvcnQsdikJX19yYXdfd3JpdGVsKHYsIChw b3J0KS0+bWVtYmFzZSArIEFUTUVMX1BEQ19STlBSKQotI2RlZmluZSBVQVJUX1BVVF9STkNSKHBv cnQsdikJX19yYXdfd3JpdGVsKHYsIChwb3J0KS0+bWVtYmFzZSArIEFUTUVMX1BEQ19STkNSKQot Ci0jZGVmaW5lIFVBUlRfUFVUX1RQUihwb3J0LHYpCV9fcmF3X3dyaXRlbCh2LCAocG9ydCktPm1l bWJhc2UgKyBBVE1FTF9QRENfVFBSKQotI2RlZmluZSBVQVJUX1BVVF9UQ1IocG9ydCx2KQlfX3Jh d193cml0ZWwodiwgKHBvcnQpLT5tZW1iYXNlICsgQVRNRUxfUERDX1RDUikKLS8vI2RlZmluZSBV QVJUX1BVVF9UTlBSKHBvcnQsdikJX19yYXdfd3JpdGVsKHYsIChwb3J0KS0+bWVtYmFzZSArIEFU TUVMX1BEQ19UTlBSKQotLy8jZGVmaW5lIFVBUlRfUFVUX1ROQ1IocG9ydCx2KQlfX3Jhd193cml0 ZWwodiwgKHBvcnQpLT5tZW1iYXNlICsgQVRNRUxfUERDX1ROQ1IpCisjZGVmaW5lIFVBUlRfR0VU X1BUU1IocG9ydCkJbHJlYWQoKHBvcnQpLT5tZW1iYXNlICsgQVRNRUxfUERDX1BUU1IpCisjZGVm aW5lIFVBUlRfR0VUX1JQUihwb3J0KQlscmVhZCgocG9ydCktPm1lbWJhc2UgKyBBVE1FTF9QRENf UlBSKQogCi1zdGF0aWMgaW50ICgqYXRtZWxfb3Blbl9ob29rKShzdHJ1Y3QgdWFydF9wb3J0ICop Owotc3RhdGljIHZvaWQgKCphdG1lbF9jbG9zZV9ob29rKShzdHJ1Y3QgdWFydF9wb3J0ICopOwor c3RhdGljIGludCAoKmF0bWVsX29wZW5faG9vaykgKHN0cnVjdCB1YXJ0X3BvcnQgKik7CitzdGF0 aWMgdm9pZCAoKmF0bWVsX2Nsb3NlX2hvb2spIChzdHJ1Y3QgdWFydF9wb3J0ICopOwogCiAvKgog ICogV2Ugd3JhcCBvdXIgcG9ydCBzdHJ1Y3R1cmUgYXJvdW5kIHRoZSBnZW5lcmljIHVhcnRfcG9y dC4KICAqLwogc3RydWN0IGF0bWVsX3VhcnRfcG9ydCB7Ci0Jc3RydWN0IHVhcnRfcG9ydAl1YXJ0 OwkJLyogdWFydCAqLwotCXN0cnVjdCBjbGsJCSpjbGs7CQkvKiB1YXJ0IGNsb2NrICovCi0JdW5z aWduZWQgc2hvcnQJCXN1c3BlbmRlZDsJLyogaXMgcG9ydCBzdXNwZW5kZWQ/ICovCi0JaW50CQkJ YnJlYWtfYWN0aXZlOwkvKiBicmVhayBiZWluZyByZWNlaXZlZCAqLworCXN0cnVjdCB1YXJ0X3Bv cnQgCXVhcnQ7CQkvKiB1YXJ0ICovCisJc3RydWN0IGNsayAJIAkqY2xrOwkJLyogdWFydCBjbG9j ayAqLworCXVuc2lnbmVkIHNob3J0IAkJc3VzcGVuZGVkOwkvKiBpcyBwb3J0IHN1c3BlbmRlZD8g Ki8KKwlpbnQgCQkJYnJlYWtfYWN0aXZlOwkvKiBicmVhayBiZWluZyByZWNlaXZlZCAqLwogfTsK IAogc3RhdGljIHN0cnVjdCBhdG1lbF91YXJ0X3BvcnQgYXRtZWxfcG9ydHNbQVRNRUxfTUFYX1VB UlRdOwpAQCAtMTQyLDggKzE0Niw4IEBAIHN0YXRpYyB2b2lkIGF0bWVsX3NldF9tY3RybChzdHJ1 Y3QgdWFydF8KICNpZmRlZiBDT05GSUdfQVJDSF9BVDkxUk05MjAwCiAJaWYgKGNwdV9pc19hdDkx cm05MjAwKCkpIHsKIAkJLyoKLQkJICogQVQ5MVJNOTIwMCBFcnJhdGEgIzM5OiBSVFMwIGlzIG5v dCBpbnRlcm5hbGx5IGNvbm5lY3RlZCB0byBQQTIxLgotCQkgKiAgV2UgbmVlZCB0byBkcml2ZSB0 aGUgcGluIG1hbnVhbGx5LgorCQkgKiBBVDkxUk05MjAwIEVycmF0YSAjMzk6IFJUUzAgaXMgbm90 IGludGVybmFsbHkgY29ubmVjdGVkCisJCSAqIHRvIFBBMjEuIFdlIG5lZWQgdG8gZHJpdmUgdGhl IHBpbiBtYW51YWxseS4KIAkJICovCiAJCWlmIChwb3J0LT5tYXBiYXNlID09IEFUOTFSTTkyMDBf QkFTRV9VUzApIHsKIAkJCWlmIChtY3RybCAmIFRJT0NNX1JUUykKQEAgLTIwNCw4ICsyMDgsNiBA QCBzdGF0aWMgdV9pbnQgYXRtZWxfZ2V0X21jdHJsKHN0cnVjdCB1YXJ0CiAgKi8KIHN0YXRpYyB2 b2lkIGF0bWVsX3N0b3BfdHgoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKIHsKLQlzdHJ1Y3QgYXRt ZWxfdWFydF9wb3J0ICphdG1lbF9wb3J0ID0gKHN0cnVjdCBhdG1lbF91YXJ0X3BvcnQgKikgcG9y dDsKLQogCVVBUlRfUFVUX0lEUihwb3J0LCBBVE1FTF9VU19UWFJEWSk7CiB9CiAKQEAgLTIxNCw4 ICsyMTYsNiBAQCBzdGF0aWMgdm9pZCBhdG1lbF9zdG9wX3R4KHN0cnVjdCB1YXJ0X3BvCiAgKi8K IHN0YXRpYyB2b2lkIGF0bWVsX3N0YXJ0X3R4KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCiB7Ci0J c3RydWN0IGF0bWVsX3VhcnRfcG9ydCAqYXRtZWxfcG9ydCA9IChzdHJ1Y3QgYXRtZWxfdWFydF9w b3J0ICopIHBvcnQ7Ci0KIAlVQVJUX1BVVF9JRVIocG9ydCwgQVRNRUxfVVNfVFhSRFkpOwogfQog CkBAIC0yMjQsOCArMjI0LDYgQEAgc3RhdGljIHZvaWQgYXRtZWxfc3RhcnRfdHgoc3RydWN0IHVh cnRfcAogICovCiBzdGF0aWMgdm9pZCBhdG1lbF9zdG9wX3J4KHN0cnVjdCB1YXJ0X3BvcnQgKnBv cnQpCiB7Ci0Jc3RydWN0IGF0bWVsX3VhcnRfcG9ydCAqYXRtZWxfcG9ydCA9IChzdHJ1Y3QgYXRt ZWxfdWFydF9wb3J0ICopIHBvcnQ7Ci0KIAlVQVJUX1BVVF9JRFIocG9ydCwgQVRNRUxfVVNfUlhS RFkpOwogfQogCkBAIC0yMzQsNyArMjMyLDkgQEAgc3RhdGljIHZvaWQgYXRtZWxfc3RvcF9yeChz dHJ1Y3QgdWFydF9wbwogICovCiBzdGF0aWMgdm9pZCBhdG1lbF9lbmFibGVfbXMoc3RydWN0IHVh cnRfcG9ydCAqcG9ydCkKIHsKLQlVQVJUX1BVVF9JRVIocG9ydCwgQVRNRUxfVVNfUklJQyB8IEFU TUVMX1VTX0RTUklDIHwgQVRNRUxfVVNfRENESUMgfCBBVE1FTF9VU19DVFNJQyk7CisJVUFSVF9Q VVRfSUVSKHBvcnQsCisJCSAgICAgQVRNRUxfVVNfUklJQyB8IEFUTUVMX1VTX0RTUklDIHwgQVRN RUxfVVNfRENESUMgfAorCQkgICAgIEFUTUVMX1VTX0NUU0lDKTsKIH0KIAogLyoKQEAgLTI1Myw3 ICsyNTMsNyBAQCBzdGF0aWMgdm9pZCBhdG1lbF9icmVha19jdGwoc3RydWN0IHVhcnRfCiAgKi8K IHN0YXRpYyB2b2lkIGF0bWVsX3J4X2NoYXJzKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCiB7Ci0J c3RydWN0IGF0bWVsX3VhcnRfcG9ydCAqYXRtZWxfcG9ydCA9IChzdHJ1Y3QgYXRtZWxfdWFydF9w b3J0ICopIHBvcnQ7CisJc3RydWN0IGF0bWVsX3VhcnRfcG9ydCAqYXRtZWxfcG9ydCA9IChzdHJ1 Y3QgYXRtZWxfdWFydF9wb3J0ICopcG9ydDsKIAlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5ID0gcG9y dC0+aW5mby0+dHR5OwogCXVuc2lnbmVkIGludCBzdGF0dXMsIGNoLCBmbGc7CiAKQEAgLTI3Miwx MCArMjcyLDEyIEBAIHN0YXRpYyB2b2lkIGF0bWVsX3J4X2NoYXJzKHN0cnVjdCB1YXJ0X3AKIAkJ aWYgKHVubGlrZWx5KHN0YXR1cyAmIChBVE1FTF9VU19QQVJFIHwgQVRNRUxfVVNfRlJBTUUKIAkJ CQkgICAgICAgfCBBVE1FTF9VU19PVlJFIHwgQVRNRUxfVVNfUlhCUkspCiAJCQkgICAgIHx8IGF0 bWVsX3BvcnQtPmJyZWFrX2FjdGl2ZSkpIHsKLQkJCVVBUlRfUFVUX0NSKHBvcnQsIEFUTUVMX1VT X1JTVFNUQSk7CS8qIGNsZWFyIGVycm9yICovCisJCQkvKiBjbGVhciBlcnJvciAqLworCQkJVUFS VF9QVVRfQ1IocG9ydCwgQVRNRUxfVVNfUlNUU1RBKTsKIAkJCWlmIChzdGF0dXMgJiBBVE1FTF9V U19SWEJSSwogCQkJICAgICYmICFhdG1lbF9wb3J0LT5icmVha19hY3RpdmUpIHsKLQkJCQlzdGF0 dXMgJj0gfihBVE1FTF9VU19QQVJFIHwgQVRNRUxfVVNfRlJBTUUpOwkvKiBpZ25vcmUgc2lkZS1l ZmZlY3QgKi8KKwkJCQkvKiBpZ25vcmUgc2lkZS1lZmZlY3QgKi8KKwkJCQlzdGF0dXMgJj0gfihB VE1FTF9VU19QQVJFIHwgQVRNRUxfVVNfRlJBTUUpOwogCQkJCXBvcnQtPmljb3VudC5icmsrKzsK IAkJCQlhdG1lbF9wb3J0LT5icmVha19hY3RpdmUgPSAxOwogCQkJCVVBUlRfUFVUX0lFUihwb3J0 LCBBVE1FTF9VU19SWEJSSyk7CkBAIC0zMTUsNyArMzE3LDcgQEAgc3RhdGljIHZvaWQgYXRtZWxf cnhfY2hhcnMoc3RydWN0IHVhcnRfcAogCiAJCXVhcnRfaW5zZXJ0X2NoYXIocG9ydCwgc3RhdHVz LCBBVE1FTF9VU19PVlJFLCBjaCwgZmxnKTsKIAotCWlnbm9yZV9jaGFyOgoraWdub3JlX2NoYXI6 CiAJCXN0YXR1cyA9IFVBUlRfR0VUX0NTUihwb3J0KTsKIAl9CiAKQEAgLTM1Niw0NCArMzU4LDcy IEBAIHN0YXRpYyB2b2lkIGF0bWVsX3R4X2NoYXJzKHN0cnVjdCB1YXJ0X3AKIH0KIAogLyoKKyAq IHJlY2VpdmUgaW50ZXJydXB0IGhhbmRsZXIuCisgKi8KK3N0YXRpYyB2b2lkIGF0bWVsX2hhbmRs ZV9yZWNlaXZlKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHVuc2lnbmVkIGludCBwZW5kaW5nKQor eworCXN0cnVjdCBhdG1lbF91YXJ0X3BvcnQgKmF0bWVsX3BvcnQgPSAoc3RydWN0IGF0bWVsX3Vh cnRfcG9ydCAqKXBvcnQ7CisKKwkvKiBJbnRlcnJ1cHQgcmVjZWl2ZSAqLworCWlmIChwZW5kaW5n ICYgQVRNRUxfVVNfUlhSRFkpCisJCWF0bWVsX3J4X2NoYXJzKHBvcnQpOworCWVsc2UgaWYgKHBl bmRpbmcgJiBBVE1FTF9VU19SWEJSSykgeworCQkvKgorCQkJKiBFbmQgb2YgYnJlYWsgZGV0ZWN0 ZWQuIElmIGl0IGNhbWUgYWxvbmcKKwkJCSogd2l0aCBhIGNoYXJhY3RlciwgYXRtZWxfcnhfY2hh cnMgd2lsbAorCQkJKiBoYW5kbGUgaXQuCisJCQkqLworCQlVQVJUX1BVVF9DUihwb3J0LCBBVE1F TF9VU19SU1RTVEEpOworCQlVQVJUX1BVVF9JRFIocG9ydCwgQVRNRUxfVVNfUlhCUkspOworCQlh dG1lbF9wb3J0LT5icmVha19hY3RpdmUgPSAwOworCX0KK30KKworLyoKKyAqIHRyYW5zbWl0IGlu dGVycnVwdCBoYW5kbGVyLgorICovCitzdGF0aWMgdm9pZCBhdG1lbF9oYW5kbGVfdHJhbnNtaXQo c3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgdW5zaWduZWQgaW50IHBlbmRpbmcpCit7CisJLyogSW50 ZXJydXB0IHRyYW5zbWl0ICovCisJaWYgKHBlbmRpbmcgJiBBVE1FTF9VU19UWFJEWSkKKwkJYXRt ZWxfdHhfY2hhcnMocG9ydCk7Cit9CisKKy8qCisgKiBzdGF0dXMgZmxhZ3MgaW50ZXJydXB0IGhh bmRsZXIuCisgKi8KK3N0YXRpYyB2b2lkIGF0bWVsX2hhbmRsZV9zdGF0dXMoc3RydWN0IHVhcnRf cG9ydCAqcG9ydCwgdW5zaWduZWQgaW50IHBlbmRpbmcsCisJCQkJdW5zaWduZWQgaW50IHN0YXR1 cykKK3sKKwkvKiBUT0RPOiBBbGwgcmVhZHMgdG8gQ1NSIHdpbGwgY2xlYXIgdGhlc2UgaW50ZXJy dXB0cyEgKi8KKwlpZiAocGVuZGluZyAmIEFUTUVMX1VTX1JJSUMpCisJCXBvcnQtPmljb3VudC5y bmcrKzsKKwlpZiAocGVuZGluZyAmIEFUTUVMX1VTX0RTUklDKQorCQlwb3J0LT5pY291bnQuZHNy Kys7CisJaWYgKHBlbmRpbmcgJiBBVE1FTF9VU19EQ0RJQykKKwkJdWFydF9oYW5kbGVfZGNkX2No YW5nZShwb3J0LCAhKHN0YXR1cyAmIEFUTUVMX1VTX0RDRCkpOworCWlmIChwZW5kaW5nICYgQVRN RUxfVVNfQ1RTSUMpCisJCXVhcnRfaGFuZGxlX2N0c19jaGFuZ2UocG9ydCwgIShzdGF0dXMgJiBB VE1FTF9VU19DVFMpKTsKKwlpZiAocGVuZGluZyAmCisJCShBVE1FTF9VU19SSUlDIHwgQVRNRUxf VVNfRFNSSUMgfCBBVE1FTF9VU19EQ0RJQyB8CisJCUFUTUVMX1VTX0NUU0lDKSkKKwkJd2FrZV91 cF9pbnRlcnJ1cHRpYmxlKCZwb3J0LT5pbmZvLT5kZWx0YV9tc3Jfd2FpdCk7Cit9CisKKy8qCiAg KiBJbnRlcnJ1cHQgaGFuZGxlcgogICovCiBzdGF0aWMgaXJxcmV0dXJuX3QgYXRtZWxfaW50ZXJy dXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKIHsKIAlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0g ZGV2X2lkOwotCXN0cnVjdCBhdG1lbF91YXJ0X3BvcnQgKmF0bWVsX3BvcnQgPSAoc3RydWN0IGF0 bWVsX3VhcnRfcG9ydCAqKSBwb3J0OwogCXVuc2lnbmVkIGludCBzdGF0dXMsIHBlbmRpbmcsIHBh c3NfY291bnRlciA9IDA7CiAKIAlzdGF0dXMgPSBVQVJUX0dFVF9DU1IocG9ydCk7CiAJcGVuZGlu ZyA9IHN0YXR1cyAmIFVBUlRfR0VUX0lNUihwb3J0KTsKIAl3aGlsZSAocGVuZGluZykgewotCQkv KiBJbnRlcnJ1cHQgcmVjZWl2ZSAqLwotCQlpZiAocGVuZGluZyAmIEFUTUVMX1VTX1JYUkRZKQot CQkJYXRtZWxfcnhfY2hhcnMocG9ydCk7Ci0JCWVsc2UgaWYgKHBlbmRpbmcgJiBBVE1FTF9VU19S WEJSSykgewotCQkJLyoKLQkJCSAqIEVuZCBvZiBicmVhayBkZXRlY3RlZC4gSWYgaXQgY2FtZSBh bG9uZwotCQkJICogd2l0aCBhIGNoYXJhY3RlciwgYXRtZWxfcnhfY2hhcnMgd2lsbAotCQkJICog aGFuZGxlIGl0LgotCQkJICovCi0JCQlVQVJUX1BVVF9DUihwb3J0LCBBVE1FTF9VU19SU1RTVEEp OwotCQkJVUFSVF9QVVRfSURSKHBvcnQsIEFUTUVMX1VTX1JYQlJLKTsKLQkJCWF0bWVsX3BvcnQt PmJyZWFrX2FjdGl2ZSA9IDA7Ci0JCX0KLQotCQkvLyBUT0RPOiBBbGwgcmVhZHMgdG8gQ1NSIHdp bGwgY2xlYXIgdGhlc2UgaW50ZXJydXB0cyEKLQkJaWYgKHBlbmRpbmcgJiBBVE1FTF9VU19SSUlD KSBwb3J0LT5pY291bnQucm5nKys7Ci0JCWlmIChwZW5kaW5nICYgQVRNRUxfVVNfRFNSSUMpIHBv cnQtPmljb3VudC5kc3IrKzsKLQkJaWYgKHBlbmRpbmcgJiBBVE1FTF9VU19EQ0RJQykKLQkJCXVh cnRfaGFuZGxlX2RjZF9jaGFuZ2UocG9ydCwgIShzdGF0dXMgJiBBVE1FTF9VU19EQ0QpKTsKLQkJ aWYgKHBlbmRpbmcgJiBBVE1FTF9VU19DVFNJQykKLQkJCXVhcnRfaGFuZGxlX2N0c19jaGFuZ2Uo cG9ydCwgIShzdGF0dXMgJiBBVE1FTF9VU19DVFMpKTsKLQkJaWYgKHBlbmRpbmcgJiAoQVRNRUxf VVNfUklJQyB8IEFUTUVMX1VTX0RTUklDIHwgQVRNRUxfVVNfRENESUMgfCBBVE1FTF9VU19DVFNJ QykpCi0JCQl3YWtlX3VwX2ludGVycnVwdGlibGUoJnBvcnQtPmluZm8tPmRlbHRhX21zcl93YWl0 KTsKLQotCQkvKiBJbnRlcnJ1cHQgdHJhbnNtaXQgKi8KLQkJaWYgKHBlbmRpbmcgJiBBVE1FTF9V U19UWFJEWSkKLQkJCWF0bWVsX3R4X2NoYXJzKHBvcnQpOworCQlhdG1lbF9oYW5kbGVfcmVjZWl2 ZShwb3J0LCBwZW5kaW5nKTsKKwkJYXRtZWxfaGFuZGxlX3N0YXR1cyhwb3J0LCBwZW5kaW5nLCBz dGF0dXMpOworCQlhdG1lbF9oYW5kbGVfdHJhbnNtaXQocG9ydCwgcGVuZGluZyk7CiAKIAkJaWYg KHBhc3NfY291bnRlcisrID4gQVRNRUxfSVNSX1BBU1NfTElNSVQpCiAJCQlicmVhazsKQEAgLTQw OSw3ICs0MzksNiBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgYXRtZWxfaW50ZXJydXB0KGludCBpCiAg Ki8KIHN0YXRpYyBpbnQgYXRtZWxfc3RhcnR1cChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQogewot CXN0cnVjdCBhdG1lbF91YXJ0X3BvcnQgKmF0bWVsX3BvcnQgPSAoc3RydWN0IGF0bWVsX3VhcnRf cG9ydCAqKSBwb3J0OwogCWludCByZXR2YWw7CiAKIAkvKgpAQCAtNDIyLDcgKzQ1MSw5IEBAIHN0 YXRpYyBpbnQgYXRtZWxfc3RhcnR1cChzdHJ1Y3QgdWFydF9wb3IKIAkvKgogCSAqIEFsbG9jYXRl IHRoZSBJUlEKIAkgKi8KLQlyZXR2YWwgPSByZXF1ZXN0X2lycShwb3J0LT5pcnEsIGF0bWVsX2lu dGVycnVwdCwgSVJRRl9TSEFSRUQsICJhdG1lbF9zZXJpYWwiLCBwb3J0KTsKKwlyZXR2YWwgPQor CSAgICByZXF1ZXN0X2lycShwb3J0LT5pcnEsIGF0bWVsX2ludGVycnVwdCwgSVJRRl9TSEFSRUQs CisJCQkiYXRtZWxfc2VyaWFsIiwgcG9ydCk7CiAJaWYgKHJldHZhbCkgewogCQlwcmludGsoImF0 bWVsX3NlcmlhbDogYXRtZWxfc3RhcnR1cCAtIENhbid0IGdldCBpcnFcbiIpOwogCQlyZXR1cm4g cmV0dmFsOwpAQCAtNDQ0LDkgKzQ3NSwxMSBAQCBzdGF0aWMgaW50IGF0bWVsX3N0YXJ0dXAoc3Ry dWN0IHVhcnRfcG9yCiAJICogRmluYWxseSwgZW5hYmxlIHRoZSBzZXJpYWwgcG9ydAogCSAqLwog CVVBUlRfUFVUX0NSKHBvcnQsIEFUTUVMX1VTX1JTVFNUQSB8IEFUTUVMX1VTX1JTVFJYKTsKLQlV QVJUX1BVVF9DUihwb3J0LCBBVE1FTF9VU19UWEVOIHwgQVRNRUxfVVNfUlhFTik7CQkvKiBlbmFi bGUgeG1pdCAmIHJjdnIgKi8KKwkvKiBlbmFibGUgeG1pdCAmIHJjdnIgKi8KKwlVQVJUX1BVVF9D Uihwb3J0LCBBVE1FTF9VU19UWEVOIHwgQVRNRUxfVVNfUlhFTik7CiAKLQlVQVJUX1BVVF9JRVIo cG9ydCwgQVRNRUxfVVNfUlhSRFkpOwkJLyogZW5hYmxlIHJlY2VpdmUgb25seSAqLworCS8qIGVu YWJsZSByZWNlaXZlIG9ubHkgKi8KKwlVQVJUX1BVVF9JRVIocG9ydCwgQVRNRUxfVVNfUlhSRFkp OwogCiAJcmV0dXJuIDA7CiB9CkBAIC00NTYsOCArNDg5LDYgQEAgc3RhdGljIGludCBhdG1lbF9z dGFydHVwKHN0cnVjdCB1YXJ0X3BvcgogICovCiBzdGF0aWMgdm9pZCBhdG1lbF9zaHV0ZG93bihz dHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQogewotCXN0cnVjdCBhdG1lbF91YXJ0X3BvcnQgKmF0bWVs X3BvcnQgPSAoc3RydWN0IGF0bWVsX3VhcnRfcG9ydCAqKSBwb3J0OwotCiAJLyoKIAkgKiBEaXNh YmxlIGFsbCBpbnRlcnJ1cHRzLCBwb3J0IGFuZCBicmVhayBjb25kaXRpb24uCiAJICovCkBAIC00 ODAsNDUgKzUxMSw0OSBAQCBzdGF0aWMgdm9pZCBhdG1lbF9zaHV0ZG93bihzdHJ1Y3QgdWFydF9w CiAvKgogICogUG93ZXIgLyBDbG9jayBtYW5hZ2VtZW50LgogICovCi1zdGF0aWMgdm9pZCBhdG1l bF9zZXJpYWxfcG0oc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgdW5zaWduZWQgaW50IHN0YXRlLCB1 bnNpZ25lZCBpbnQgb2xkc3RhdGUpCitzdGF0aWMgdm9pZCBhdG1lbF9zZXJpYWxfcG0oc3RydWN0 IHVhcnRfcG9ydCAqcG9ydCwgdW5zaWduZWQgaW50IHN0YXRlLAorCQkJICAgIHVuc2lnbmVkIGlu dCBvbGRzdGF0ZSkKIHsKLQlzdHJ1Y3QgYXRtZWxfdWFydF9wb3J0ICphdG1lbF9wb3J0ID0gKHN0 cnVjdCBhdG1lbF91YXJ0X3BvcnQgKikgcG9ydDsKKwlzdHJ1Y3QgYXRtZWxfdWFydF9wb3J0ICph dG1lbF9wb3J0ID0gKHN0cnVjdCBhdG1lbF91YXJ0X3BvcnQgKilwb3J0OwogCiAJc3dpdGNoIChz dGF0ZSkgewotCQljYXNlIDA6Ci0JCQkvKgotCQkJICogRW5hYmxlIHRoZSBwZXJpcGhlcmFsIGNs b2NrIGZvciB0aGlzIHNlcmlhbCBwb3J0LgotCQkJICogVGhpcyBpcyBjYWxsZWQgb24gdWFydF9v cGVuKCkgb3IgYSByZXN1bWUgZXZlbnQuCi0JCQkgKi8KLQkJCWNsa19lbmFibGUoYXRtZWxfcG9y dC0+Y2xrKTsKLQkJCWJyZWFrOwotCQljYXNlIDM6Ci0JCQkvKgotCQkJICogRGlzYWJsZSB0aGUg cGVyaXBoZXJhbCBjbG9jayBmb3IgdGhpcyBzZXJpYWwgcG9ydC4KLQkJCSAqIFRoaXMgaXMgY2Fs bGVkIG9uIHVhcnRfY2xvc2UoKSBvciBhIHN1c3BlbmQgZXZlbnQuCi0JCQkgKi8KLQkJCWNsa19k aXNhYmxlKGF0bWVsX3BvcnQtPmNsayk7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCXByaW50 ayhLRVJOX0VSUiAiYXRtZWxfc2VyaWFsOiB1bmtub3duIHBtICVkXG4iLCBzdGF0ZSk7CisJY2Fz ZSAwOgorCQkvKgorCQkgKiBFbmFibGUgdGhlIHBlcmlwaGVyYWwgY2xvY2sgZm9yIHRoaXMgc2Vy aWFsIHBvcnQuCisJCSAqIFRoaXMgaXMgY2FsbGVkIG9uIHVhcnRfb3BlbigpIG9yIGEgcmVzdW1l IGV2ZW50LgorCQkgKi8KKwkJY2xrX2VuYWJsZShhdG1lbF9wb3J0LT5jbGspOworCQlicmVhazsK KwljYXNlIDM6CisJCS8qCisJCSAqIERpc2FibGUgdGhlIHBlcmlwaGVyYWwgY2xvY2sgZm9yIHRo aXMgc2VyaWFsIHBvcnQuCisJCSAqIFRoaXMgaXMgY2FsbGVkIG9uIHVhcnRfY2xvc2UoKSBvciBh IHN1c3BlbmQgZXZlbnQuCisJCSAqLworCQljbGtfZGlzYWJsZShhdG1lbF9wb3J0LT5jbGspOwor CQlicmVhazsKKwlkZWZhdWx0OgorCQlwcmludGsoS0VSTl9FUlIgImF0bWVsX3NlcmlhbDogdW5r bm93biBwbSAlZFxuIiwgc3RhdGUpOwogCX0KIH0KIAogLyoKICAqIENoYW5nZSB0aGUgcG9ydCBw YXJhbWV0ZXJzCiAgKi8KLXN0YXRpYyB2b2lkIGF0bWVsX3NldF90ZXJtaW9zKHN0cnVjdCB1YXJ0 X3BvcnQgKnBvcnQsIHN0cnVjdCBrdGVybWlvcyAqIHRlcm1pb3MsIHN0cnVjdCBrdGVybWlvcyAq IG9sZCkKK3N0YXRpYyB2b2lkIGF0bWVsX3NldF90ZXJtaW9zKHN0cnVjdCB1YXJ0X3BvcnQgKnBv cnQsIHN0cnVjdCBrdGVybWlvcyAqdGVybWlvcywKKwkJCSAgICAgIHN0cnVjdCBrdGVybWlvcyAq b2xkKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJdW5zaWduZWQgaW50IG1vZGUsIGltciwg cXVvdCwgYmF1ZDsKIAogCS8qIEdldCBjdXJyZW50IG1vZGUgcmVnaXN0ZXIgKi8KLQltb2RlID0g VUFSVF9HRVRfTVIocG9ydCkgJiB+KEFUTUVMX1VTX1VTQ0xLUyB8IEFUTUVMX1VTX0NIUkwgfCBB VE1FTF9VU19OQlNUT1AgfCBBVE1FTF9VU19QQVIpOworCW1vZGUgPQorCSAgICBVQVJUX0dFVF9N Uihwb3J0KSAmIH4oQVRNRUxfVVNfVVNDTEtTIHwgQVRNRUxfVVNfQ0hSTCB8CisJCQkJICBBVE1F TF9VU19OQlNUT1AgfCBBVE1FTF9VU19QQVIpOwogCi0JYmF1ZCA9IHVhcnRfZ2V0X2JhdWRfcmF0 ZShwb3J0LCB0ZXJtaW9zLCBvbGQsIDAsIHBvcnQtPnVhcnRjbGsvMTYpOworCWJhdWQgPSB1YXJ0 X2dldF9iYXVkX3JhdGUocG9ydCwgdGVybWlvcywgb2xkLCAwLCBwb3J0LT51YXJ0Y2xrIC8gMTYp OwogCXF1b3QgPSB1YXJ0X2dldF9kaXZpc29yKHBvcnQsIGJhdWQpOwogCi0JaWYgKHF1b3QgPiA2 NTUzNSkgewkJLyogQlJHUiBpcyAxNi1iaXQsIHNvIHN3aXRjaCB0byBzbG93ZXIgY2xvY2sgKi8K KwlpZiAocXVvdCA+IDY1NTM1KSB7CS8qIEJSR1IgaXMgMTYtYml0LCBzbyBzd2l0Y2ggdG8gc2xv d2VyIGNsb2NrICovCiAJCXF1b3QgLz0gODsKIAkJbW9kZSB8PSBBVE1FTF9VU19VU0NMS1NfTUNL X0RJVjg7CiAJfQpAQCAtNTQ1LDE4ICs1ODAsMTcgQEAgc3RhdGljIHZvaWQgYXRtZWxfc2V0X3Rl cm1pb3Moc3RydWN0IHVhcgogCiAJLyogcGFyaXR5ICovCiAJaWYgKHRlcm1pb3MtPmNfY2ZsYWcg JiBQQVJFTkIpIHsKLQkJaWYgKHRlcm1pb3MtPmNfY2ZsYWcgJiBDTVNQQVIpIHsJCQkvKiBNYXJr IG9yIFNwYWNlIHBhcml0eSAqLworCQkvKiBNYXJrIG9yIFNwYWNlIHBhcml0eSAqLworCQlpZiAo dGVybWlvcy0+Y19jZmxhZyAmIENNU1BBUikgewogCQkJaWYgKHRlcm1pb3MtPmNfY2ZsYWcgJiBQ QVJPREQpCiAJCQkJbW9kZSB8PSBBVE1FTF9VU19QQVJfTUFSSzsKIAkJCWVsc2UKIAkJCQltb2Rl IHw9IEFUTUVMX1VTX1BBUl9TUEFDRTsKLQkJfQotCQllbHNlIGlmICh0ZXJtaW9zLT5jX2NmbGFn ICYgUEFST0REKQorCQl9IGVsc2UgaWYgKHRlcm1pb3MtPmNfY2ZsYWcgJiBQQVJPREQpCiAJCQlt b2RlIHw9IEFUTUVMX1VTX1BBUl9PREQ7CiAJCWVsc2UKIAkJCW1vZGUgfD0gQVRNRUxfVVNfUEFS X0VWRU47Ci0JfQotCWVsc2UKKwl9IGVsc2UKIAkJbW9kZSB8PSBBVE1FTF9VU19QQVJfTk9ORTsK IAogCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5sb2NrLCBmbGFncyk7CkBAIC01ODIsMTYgKzYx NiwxNiBAQCBzdGF0aWMgdm9pZCBhdG1lbF9zZXRfdGVybWlvcyhzdHJ1Y3QgdWFyCiAJCWlmICh0 ZXJtaW9zLT5jX2lmbGFnICYgSUdOUEFSKQogCQkJcG9ydC0+aWdub3JlX3N0YXR1c19tYXNrIHw9 IEFUTUVMX1VTX09WUkU7CiAJfQotCi0JLy8gVE9ETzogSWdub3JlIGFsbCBjaGFyYWN0ZXJzIGlm IENSRUFEIGlzIHNldC4KKwkvKiBUT0RPOiBJZ25vcmUgYWxsIGNoYXJhY3RlcnMgaWYgQ1JFQUQg aXMgc2V0LiovCiAKIAkvKiB1cGRhdGUgdGhlIHBlci1wb3J0IHRpbWVvdXQgKi8KIAl1YXJ0X3Vw ZGF0ZV90aW1lb3V0KHBvcnQsIHRlcm1pb3MtPmNfY2ZsYWcsIGJhdWQpOwogCiAJLyogZGlzYWJs ZSBpbnRlcnJ1cHRzIGFuZCBkcmFpbiB0cmFuc21pdHRlciAqLwotCWltciA9IFVBUlRfR0VUX0lN Uihwb3J0KTsJLyogZ2V0IGludGVycnVwdCBtYXNrICovCi0JVUFSVF9QVVRfSURSKHBvcnQsIC0x KTsJCS8qIGRpc2FibGUgYWxsIGludGVycnVwdHMgKi8KLQl3aGlsZSAoIShVQVJUX0dFVF9DU1Io cG9ydCkgJiBBVE1FTF9VU19UWEVNUFRZKSkgeyBiYXJyaWVyKCk7IH0KKwlpbXIgPSBVQVJUX0dF VF9JTVIocG9ydCk7IC8qIGdldCBpbnRlcnJ1cHQgbWFzayAqLworCVVBUlRfUFVUX0lEUihwb3J0 LCAtMSk7CSAgLyogZGlzYWJsZSBhbGwgaW50ZXJydXB0cyAqLworCXdoaWxlICghKFVBUlRfR0VU X0NTUihwb3J0KSAmIEFUTUVMX1VTX1RYRU1QVFkpKQorCQliYXJyaWVyKCk7CiAKIAkvKiBkaXNh YmxlIHJlY2VpdmVyIGFuZCB0cmFuc21pdHRlciAqLwogCVVBUlRfUFVUX0NSKHBvcnQsIEFUTUVM X1VTX1RYRElTIHwgQVRNRUxfVVNfUlhESVMpOwpAQCAtNzE3LDcgKzc1MSw4IEBAIHN0YXRpYyBz dHJ1Y3QgdWFydF9vcHMgYXRtZWxfcG9wcyA9IHsKIC8qCiAgKiBDb25maWd1cmUgdGhlIHBvcnQg ZnJvbSB0aGUgcGxhdGZvcm0gZGV2aWNlIHJlc291cmNlIGluZm8uCiAgKi8KLXN0YXRpYyB2b2lk IF9fZGV2aW5pdCBhdG1lbF9pbml0X3BvcnQoc3RydWN0IGF0bWVsX3VhcnRfcG9ydCAqYXRtZWxf cG9ydCwgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3N0YXRpYyB2b2lkIF9fZGV2aW5p dCBhdG1lbF9pbml0X3BvcnQoc3RydWN0IGF0bWVsX3VhcnRfcG9ydCAqYXRtZWxfcG9ydCwKKwkJ CQkgICAgICBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCB1YXJ0X3Bv cnQgKnBvcnQgPSAmYXRtZWxfcG9ydC0+dWFydDsKIAlzdHJ1Y3QgYXRtZWxfdWFydF9kYXRhICpk YXRhID0gcGRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7CkBAIC03NDAsNyArNzc1LDggQEAgc3RhdGlj IHZvaWQgX19kZXZpbml0IGF0bWVsX2luaXRfcG9ydChzdAogCQlwb3J0LT5tZW1iYXNlCT0gTlVM TDsKIAl9CiAKLQlpZiAoIWF0bWVsX3BvcnQtPmNsaykgewkJLyogZm9yIGNvbnNvbGUsIHRoZSBj bG9jayBjb3VsZCBhbHJlYWR5IGJlIGNvbmZpZ3VyZWQgKi8KKwkvKiBmb3IgY29uc29sZSwgdGhl IGNsb2NrIGNvdWxkIGFscmVhZHkgYmUgY29uZmlndXJlZCAqLworCWlmICghYXRtZWxfcG9ydC0+ Y2xrKSB7CiAJCWF0bWVsX3BvcnQtPmNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgInVzYXJ0Iik7 CiAJCWNsa19lbmFibGUoYXRtZWxfcG9ydC0+Y2xrKTsKIAkJcG9ydC0+dWFydGNsayA9IGNsa19n ZXRfcmF0ZShhdG1lbF9wb3J0LT5jbGspOwpAQCAtNzY0LDcgKzgwMCw2IEBAIHZvaWQgX19pbml0 IGF0bWVsX3JlZ2lzdGVyX3VhcnRfZm5zKHN0cnUKIAlhdG1lbF9wb3BzLnNldF93YWtlCT0gZm5z LT5zZXRfd2FrZTsKIH0KIAotCiAjaWZkZWYgQ09ORklHX1NFUklBTF9BVE1FTF9DT05TT0xFCiBz dGF0aWMgdm9pZCBhdG1lbF9jb25zb2xlX3B1dGNoYXIoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwg aW50IGNoKQogewpAQCAtNzgyLDcgKzgxNyw3IEBAIHN0YXRpYyB2b2lkIGF0bWVsX2NvbnNvbGVf d3JpdGUoc3RydWN0IGMKIAl1bnNpZ25lZCBpbnQgc3RhdHVzLCBpbXI7CiAKIAkvKgotCSAqCUZp cnN0LCBzYXZlIElNUiBhbmQgdGhlbiBkaXNhYmxlIGludGVycnVwdHMKKwkgKiAgICAgIEZpcnN0 LCBzYXZlIElNUiBhbmQgdGhlbiBkaXNhYmxlIGludGVycnVwdHMKIAkgKi8KIAlpbXIgPSBVQVJU X0dFVF9JTVIocG9ydCk7CS8qIGdldCBpbnRlcnJ1cHQgbWFzayAqLwogCVVBUlRfUFVUX0lEUihw b3J0LCBBVE1FTF9VU19SWFJEWSB8IEFUTUVMX1VTX1RYUkRZKTsKQEAgLTc5MCwzMCArODI1LDMy IEBAIHN0YXRpYyB2b2lkIGF0bWVsX2NvbnNvbGVfd3JpdGUoc3RydWN0IGMKIAl1YXJ0X2NvbnNv bGVfd3JpdGUocG9ydCwgcywgY291bnQsIGF0bWVsX2NvbnNvbGVfcHV0Y2hhcik7CiAKIAkvKgot CSAqCUZpbmFsbHksIHdhaXQgZm9yIHRyYW5zbWl0dGVyIHRvIGJlY29tZSBlbXB0eQotCSAqCWFu ZCByZXN0b3JlIElNUgorCSAqICAgICAgRmluYWxseSwgd2FpdCBmb3IgdHJhbnNtaXR0ZXIgdG8g YmVjb21lIGVtcHR5CisJICogICAgICBhbmQgcmVzdG9yZSBJTVIKIAkgKi8KIAlkbyB7CiAJCXN0 YXR1cyA9IFVBUlRfR0VUX0NTUihwb3J0KTsKIAl9IHdoaWxlICghKHN0YXR1cyAmIEFUTUVMX1VT X1RYUkRZKSk7Ci0JVUFSVF9QVVRfSUVSKHBvcnQsIGltcik7CS8qIHNldCBpbnRlcnJ1cHRzIGJh Y2sgdGhlIHdheSB0aGV5IHdlcmUgKi8KKwkvKiBzZXQgaW50ZXJydXB0cyBiYWNrIHRoZSB3YXkg dGhleSB3ZXJlICovCisJVUFSVF9QVVRfSUVSKHBvcnQsIGltcik7CiB9CiAKIC8qCi0gKiBJZiB0 aGUgcG9ydCB3YXMgYWxyZWFkeSBpbml0aWFsaXNlZCAoZWcsIGJ5IGEgYm9vdCBsb2FkZXIpLCB0 cnkgdG8gZGV0ZXJtaW5lCi0gKiB0aGUgY3VycmVudCBzZXR1cC4KKyAqIElmIHRoZSBwb3J0IHdh cyBhbHJlYWR5IGluaXRpYWxpc2VkIChlZywgYnkgYSBib290IGxvYWRlciksCisgKiB0cnkgdG8g ZGV0ZXJtaW5lIHRoZSBjdXJyZW50IHNldHVwLgogICovCi1zdGF0aWMgdm9pZCBfX2luaXQgYXRt ZWxfY29uc29sZV9nZXRfb3B0aW9ucyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBpbnQgKmJhdWQs IGludCAqcGFyaXR5LCBpbnQgKmJpdHMpCitzdGF0aWMgdm9pZCBfX2luaXQgYXRtZWxfY29uc29s ZV9nZXRfb3B0aW9ucyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBpbnQgKmJhdWQsCisJCQkJCSAg ICAgaW50ICpwYXJpdHksIGludCAqYml0cykKIHsKIAl1bnNpZ25lZCBpbnQgbXIsIHF1b3Q7CiAK LS8vIFRPRE86IENSIGlzIGEgd3JpdGUtb25seSByZWdpc3RlcgotLy8JdW5zaWduZWQgaW50IGNy OworLyogVE9ETzogQ1IgaXMgYSB3cml0ZS1vbmx5IHJlZ2lzdGVyCisvLyAgICAgIHVuc2lnbmVk IGludCBjcjsKIC8vCi0vLwljciA9IFVBUlRfR0VUX0NSKHBvcnQpICYgKEFUTUVMX1VTX1JYRU4g fCBBVE1FTF9VU19UWEVOKTsKLS8vCWlmIChjciA9PSAoQVRNRUxfVVNfUlhFTiB8IEFUTUVMX1VT X1RYRU4pKSB7Ci0vLwkJLyogb2ssIHRoZSBwb3J0IHdhcyBlbmFibGVkICovCi0vLwl9CisvLyAg ICAgIGNyID0gVUFSVF9HRVRfQ1IocG9ydCkgJiAoQVRNRUxfVVNfUlhFTiB8IEFUTUVMX1VTX1RY RU4pOworLy8gICAgICBpZiAoY3IgPT0gKEFUTUVMX1VTX1JYRU4gfCBBVE1FTF9VU19UWEVOKSkg eworLy8gICAgICAgICAgICAgIC8gKiBvaywgdGhlIHBvcnQgd2FzIGVuYWJsZWQgKiAvCisvLyAg ICAgIH0qLwogCiAJbXIgPSBVQVJUX0dFVF9NUihwb3J0KSAmIEFUTUVMX1VTX0NIUkw7CiAJaWYg KG1yID09IEFUTUVMX1VTX0NIUkxfOCkKQEAgLTg0NSwxMCArODgyLDEwIEBAIHN0YXRpYyBpbnQg X19pbml0IGF0bWVsX2NvbnNvbGVfc2V0dXAoc3QKIAlpbnQgcGFyaXR5ID0gJ24nOwogCWludCBm bG93ID0gJ24nOwogCi0JaWYgKHBvcnQtPm1lbWJhc2UgPT0gMCkJCS8qIFBvcnQgbm90IGluaXRp YWxpemVkIHlldCAtIGRlbGF5IHNldHVwICovCisJaWYgKHBvcnQtPm1lbWJhc2UgPT0gMCkJLyog UG9ydCBub3QgaW5pdGlhbGl6ZWQgeWV0IC0gZGVsYXkgc2V0dXAgKi8KIAkJcmV0dXJuIC1FTk9E RVY7CiAKLQlVQVJUX1BVVF9JRFIocG9ydCwgLTEpOwkJCQkvKiBkaXNhYmxlIGludGVycnVwdHMg Ki8KKwlVQVJUX1BVVF9JRFIocG9ydCwgLTEpOwkvKiBkaXNhYmxlIGludGVycnVwdHMgKi8KIAlV QVJUX1BVVF9DUihwb3J0LCBBVE1FTF9VU19SU1RTVEEgfCBBVE1FTF9VU19SU1RSWCk7CiAJVUFS VF9QVVRfQ1IocG9ydCwgQVRNRUxfVVNfVFhFTiB8IEFUTUVMX1VTX1JYRU4pOwogCkBAIC04NjMs MTMgKzkwMCwxMyBAQCBzdGF0aWMgaW50IF9faW5pdCBhdG1lbF9jb25zb2xlX3NldHVwKHN0CiBz dGF0aWMgc3RydWN0IHVhcnRfZHJpdmVyIGF0bWVsX3VhcnQ7CiAKIHN0YXRpYyBzdHJ1Y3QgY29u c29sZSBhdG1lbF9jb25zb2xlID0gewotCS5uYW1lCQk9IEFUTUVMX0RFVklDRU5BTUUsCi0JLndy aXRlCQk9IGF0bWVsX2NvbnNvbGVfd3JpdGUsCi0JLmRldmljZQkJPSB1YXJ0X2NvbnNvbGVfZGV2 aWNlLAotCS5zZXR1cAkJPSBhdG1lbF9jb25zb2xlX3NldHVwLAotCS5mbGFncwkJPSBDT05fUFJJ TlRCVUZGRVIsCi0JLmluZGV4CQk9IC0xLAotCS5kYXRhCQk9ICZhdG1lbF91YXJ0LAorCS5uYW1l CT0gQVRNRUxfREVWSUNFTkFNRSwKKwkud3JpdGUJPSBhdG1lbF9jb25zb2xlX3dyaXRlLAorCS5k ZXZpY2UJPSB1YXJ0X2NvbnNvbGVfZGV2aWNlLAorCS5zZXR1cAk9IGF0bWVsX2NvbnNvbGVfc2V0 dXAsCisJLmZsYWdzCT0gQ09OX1BSSU5UQlVGRkVSLAorCS5pbmRleAk9IC0xLAorCS5kYXRhCT0g JmF0bWVsX3VhcnQsCiB9OwogCiAjZGVmaW5lIEFUTUVMX0NPTlNPTEVfREVWSUNFCSZhdG1lbF9j b25zb2xlCkBAIC04ODAsMTMgKzkxNywxNyBAQCBzdGF0aWMgc3RydWN0IGNvbnNvbGUgYXRtZWxf Y29uc29sZSA9IHsKIHN0YXRpYyBpbnQgX19pbml0IGF0bWVsX2NvbnNvbGVfaW5pdCh2b2lkKQog ewogCWlmIChhdG1lbF9kZWZhdWx0X2NvbnNvbGVfZGV2aWNlKSB7Ci0JCWFkZF9wcmVmZXJyZWRf Y29uc29sZShBVE1FTF9ERVZJQ0VOQU1FLCBhdG1lbF9kZWZhdWx0X2NvbnNvbGVfZGV2aWNlLT5p ZCwgTlVMTCk7Ci0JCWF0bWVsX2luaXRfcG9ydCgmKGF0bWVsX3BvcnRzW2F0bWVsX2RlZmF1bHRf Y29uc29sZV9kZXZpY2UtPmlkXSksIGF0bWVsX2RlZmF1bHRfY29uc29sZV9kZXZpY2UpOworCQlh ZGRfcHJlZmVycmVkX2NvbnNvbGUoQVRNRUxfREVWSUNFTkFNRSwKKwkJCQkgICAgICBhdG1lbF9k ZWZhdWx0X2NvbnNvbGVfZGV2aWNlLT5pZCwgTlVMTCk7CisJCWF0bWVsX2luaXRfcG9ydCgKKwkJ CSAgICAgICYoYXRtZWxfcG9ydHNbYXRtZWxfZGVmYXVsdF9jb25zb2xlX2RldmljZS0+aWRdKSwK KwkJCSAgICAgIGF0bWVsX2RlZmF1bHRfY29uc29sZV9kZXZpY2UpOwogCQlyZWdpc3Rlcl9jb25z b2xlKCZhdG1lbF9jb25zb2xlKTsKIAl9CiAKIAlyZXR1cm4gMDsKIH0KKwogY29uc29sZV9pbml0 Y2FsbChhdG1lbF9jb25zb2xlX2luaXQpOwogCiAvKgpAQCAtODk0LDExICs5MzUsMTMgQEAgY29u c29sZV9pbml0Y2FsbChhdG1lbF9jb25zb2xlX2luaXQpOwogICovCiBzdGF0aWMgaW50IF9faW5p dCBhdG1lbF9sYXRlX2NvbnNvbGVfaW5pdCh2b2lkKQogewotCWlmIChhdG1lbF9kZWZhdWx0X2Nv bnNvbGVfZGV2aWNlICYmICEoYXRtZWxfY29uc29sZS5mbGFncyAmIENPTl9FTkFCTEVEKSkKKwlp ZiAoYXRtZWxfZGVmYXVsdF9jb25zb2xlX2RldmljZQorCSAgICAmJiAhKGF0bWVsX2NvbnNvbGUu ZmxhZ3MgJiBDT05fRU5BQkxFRCkpCiAJCXJlZ2lzdGVyX2NvbnNvbGUoJmF0bWVsX2NvbnNvbGUp OwogCiAJcmV0dXJuIDA7CiB9CisKIGNvcmVfaW5pdGNhbGwoYXRtZWxfbGF0ZV9jb25zb2xlX2lu aXQpOwogCiAjZWxzZQpAQCAtOTA2LDIyICs5NDksMjQgQEAgY29yZV9pbml0Y2FsbChhdG1lbF9s YXRlX2NvbnNvbGVfaW5pdCk7CiAjZW5kaWYKIAogc3RhdGljIHN0cnVjdCB1YXJ0X2RyaXZlciBh dG1lbF91YXJ0ID0gewotCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCi0JLmRyaXZlcl9uYW1lCQk9 ICJhdG1lbF9zZXJpYWwiLAotCS5kZXZfbmFtZQkJPSBBVE1FTF9ERVZJQ0VOQU1FLAotCS5tYWpv cgkJCT0gU0VSSUFMX0FUTUVMX01BSk9SLAotCS5taW5vcgkJCT0gTUlOT1JfU1RBUlQsCi0JLm5y CQkJPSBBVE1FTF9NQVhfVUFSVCwKLQkuY29ucwkJCT0gQVRNRUxfQ09OU09MRV9ERVZJQ0UsCisJ Lm93bmVyCQk9IFRISVNfTU9EVUxFLAorCS5kcml2ZXJfbmFtZQk9ICJhdG1lbF9zZXJpYWwiLAor CS5kZXZfbmFtZQk9IEFUTUVMX0RFVklDRU5BTUUsCisJLm1ham9yCQk9IFNFUklBTF9BVE1FTF9N QUpPUiwKKwkubWlub3IJCT0gTUlOT1JfU1RBUlQsCisJLm5yCQk9IEFUTUVMX01BWF9VQVJULAor CS5jb25zCQk9IEFUTUVMX0NPTlNPTEVfREVWSUNFLAogfTsKIAogI2lmZGVmIENPTkZJR19QTQot c3RhdGljIGludCBhdG1lbF9zZXJpYWxfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCitzdGF0aWMgaW50IGF0bWVsX3NlcmlhbF9zdXNwZW5k KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCisJCQkJcG1fbWVzc2FnZV90IHN0YXRlKQog ewogCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsK LQlzdHJ1Y3QgYXRtZWxfdWFydF9wb3J0ICphdG1lbF9wb3J0ID0gKHN0cnVjdCBhdG1lbF91YXJ0 X3BvcnQgKikgcG9ydDsKKwlzdHJ1Y3QgYXRtZWxfdWFydF9wb3J0ICphdG1lbF9wb3J0ID0gKHN0 cnVjdCBhdG1lbF91YXJ0X3BvcnQgKilwb3J0OwogCi0JaWYgKGRldmljZV9tYXlfd2FrZXVwKCZw ZGV2LT5kZXYpICYmICFhdDkxX3N1c3BlbmRfZW50ZXJpbmdfc2xvd19jbG9jaygpKQorCWlmIChk ZXZpY2VfbWF5X3dha2V1cCgmcGRldi0+ZGV2KQorCSAgICAmJiAhYXQ5MV9zdXNwZW5kX2VudGVy aW5nX3Nsb3dfY2xvY2soKSkKIAkJZW5hYmxlX2lycV93YWtlKHBvcnQtPmlycSk7CiAJZWxzZSB7 CiAJCXVhcnRfc3VzcGVuZF9wb3J0KCZhdG1lbF91YXJ0LCBwb3J0KTsKQEAgLTkzNCwxMyArOTc5 LDEyIEBAIHN0YXRpYyBpbnQgYXRtZWxfc2VyaWFsX3N1c3BlbmQoc3RydWN0IHAKIHN0YXRpYyBp bnQgYXRtZWxfc2VyaWFsX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewog CXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKLQlz dHJ1Y3QgYXRtZWxfdWFydF9wb3J0ICphdG1lbF9wb3J0ID0gKHN0cnVjdCBhdG1lbF91YXJ0X3Bv cnQgKikgcG9ydDsKKwlzdHJ1Y3QgYXRtZWxfdWFydF9wb3J0ICphdG1lbF9wb3J0ID0gKHN0cnVj dCBhdG1lbF91YXJ0X3BvcnQgKilwb3J0OwogCiAJaWYgKGF0bWVsX3BvcnQtPnN1c3BlbmRlZCkg ewogCQl1YXJ0X3Jlc3VtZV9wb3J0KCZhdG1lbF91YXJ0LCBwb3J0KTsKIAkJYXRtZWxfcG9ydC0+ c3VzcGVuZGVkID0gMDsKLQl9Ci0JZWxzZQorCX0gZWxzZQogCQlkaXNhYmxlX2lycV93YWtlKHBv cnQtPmlycSk7CiAKIAlyZXR1cm4gMDsKQEAgLTk3MCw3ICsxMDE0LDcgQEAgc3RhdGljIGludCBf X2RldmluaXQgYXRtZWxfc2VyaWFsX3Byb2JlKAogc3RhdGljIGludCBfX2RldmV4aXQgYXRtZWxf c2VyaWFsX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCB1 YXJ0X3BvcnQgKnBvcnQgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKLQlzdHJ1Y3QgYXRt ZWxfdWFydF9wb3J0ICphdG1lbF9wb3J0ID0gKHN0cnVjdCBhdG1lbF91YXJ0X3BvcnQgKikgcG9y dDsKKwlzdHJ1Y3QgYXRtZWxfdWFydF9wb3J0ICphdG1lbF9wb3J0ID0gKHN0cnVjdCBhdG1lbF91 YXJ0X3BvcnQgKilwb3J0OwogCWludCByZXQgPSAwOwogCiAJY2xrX2Rpc2FibGUoYXRtZWxfcG9y dC0+Y2xrKTsK ------=_Part_11587_32320749.1197564038197 Content-Type: text/x-patch; name=atmel_serial_irq_splitup_no_at91.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_fa5ifwiq Content-Disposition: attachment; filename=atmel_serial_irq_splitup_no_at91.patch VGhpcyBwYXRjaCBzcGxpdHMgdXAgdGhlIGludGVycnVwdCBoYW5kbGVyIG9mIHRoZSBzZXJpYWwg cG9ydAppbnRvIGEgaW50ZXJydXB0IHRvcC1oYWxmIGFuZCBzb21lIHRhc2tsZXRzLgoKVGhlIGdv YWwgaXMgdG8gZ2V0IHRoZSBpbnRlcnJ1cHQgdG9wLWhhbGYgYXMgc2hvcnQgYXMgcG9zc2libGUg dG8KbWluaW1pemUgbGF0ZW5jaWVzIG9uIGludGVycnVwdHMuIEJ1dCB0aGUgb2xkIGNvZGUgYWxz byBkb2VzIHNvbWUKY2FsbHMgaW4gdGhlIGludGVycnVwdCBoYW5kbGVyIHRoYXQgYXJlIG5vdCBh bGxvd2VkIG9uIHByZWVtcHQtUlQKaW4gSVJRRl9OT0RFTEFZIGNvbnRleHQuIFRoaXMgaGFuZGxl ciBpcyBleGVjdXRlZCBpbiB0aGlzIGNvbnRleHQKYmVjYXVzZSBvZiB0aGUgaW50ZXJydXB0IHNo YXJpbmcgd2l0aCB0aGUgdGltZXIgaW50ZXJydXB0LgpUaGUgdGltZXIgaW50ZXJydXB0IG9uIFBy ZWVtcHQtUlQgcnVucyBpbiBJUlFGX05PREVMQVkgY29udGV4dC4KCjIgdGFza2xldHMgYXJlIHVz ZWQ6Ciogb25lIGZvciBoYW5kbGluZyB0aGUgZXJyb3Igc3RhdHVzZXMKKiBvbmUgZm9yIHB1c2hp bmcgdGhlIGluY29taW5nIGNoYXJhY3RlcnMgaW50byB0aGUgdHR5LWxheWVyLgoKVGhlIFRyYW5z bWl0IHBhdGggd2FzIElSUUZfTk9ERUxBWSBzYWZlIGJ5IGl0c2VsZiwgYW5kIGlzIG5vdCBhZGFw dGVkLgpUaGUgcmVhZCBwYXRoIGZvciBETUEoUERDKSBpcyBhbHNvIG5vdCBhZGFwdGVkLCBiZWNh dXNlIHRoYXQgY29kZQpkb2VzIG5vdCBydW4gaW4gSVJRRl9OT0RFTEFZIGNvbnRleHQgZHVlIHRv IGlycS1zaGFyaW5nLiBUaGUgREJHVSAKd2hpY2ggaXMgc2hhcmVkIHdpdGggdGhlIHRpbWVyLWly cSBkb2VzIG5vdCB3b3JrIHdpdGggRE1BLCBzbyAKdGhlcmVmb3IgdGhpcyBpcyBubyBwcm9ibGVt LgoKUmVhZGluZyB0aGUgY29tcGxldGUgcmVjZWl2ZSBxdWV1ZSBpcyBzdGlsbCBkb25lIGluIHRo ZSB0b3AtaGFsZgpiZWNhdXNlIHdlIG5ldmVyIHdhbnQgdG8gbWlzcyBhbnkgaW5jb21pbmcgY2hh cmFjdGVyLgoKVGhpcyBwYXRjaCBkZW1hbmRzIHRoZSBmb2xsb3dpbmcgcGF0Y2hlcyB0byBiZSBp bnN0YWxsZWQgZmlyc3Q6CiogYXRtZWxfc2VyaWFsX2NsZWFudXAucGF0Y2gKClNpZ25lZC1vZmYt Ynk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgotLS0KIGRyaXZlcnMvc2VyaWFsL2F0 bWVsX3NlcmlhbC5jIHwgIDE1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMzMgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0p CgpJbmRleDogbGludXgtMi42LjIzL2RyaXZlcnMvc2VyaWFsL2F0bWVsX3NlcmlhbC5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIGxpbnV4LTIuNi4yMy5vcmlnL2RyaXZlcnMvc2VyaWFsL2F0bWVsX3NlcmlhbC5j CTIwMDctMTItMTMgMTc6MzA6NDguMDAwMDAwMDAwICswMTAwCisrKyBsaW51eC0yLjYuMjMvZHJp dmVycy9zZXJpYWwvYXRtZWxfc2VyaWFsLmMJMjAwNy0xMi0xMyAxNzozMjoxMi4wMDAwMDAwMDAg KzAxMDAKQEAgLTExMSw2ICsxMTEsMjIgQEAKIHN0YXRpYyBpbnQgKCphdG1lbF9vcGVuX2hvb2sp IChzdHJ1Y3QgdWFydF9wb3J0ICopOwogc3RhdGljIHZvaWQgKCphdG1lbF9jbG9zZV9ob29rKSAo c3RydWN0IHVhcnRfcG9ydCAqKTsKIAorc3RydWN0IGF0bWVsX3VhcnRfY2hhciB7CisJdW5zaWdu ZWQgaW50IHN0YXR1czsKKwl1bnNpZ25lZCBpbnQgb3ZlcnJ1bjsKKwl1bnNpZ25lZCBpbnQgY2g7 CisJdW5zaWduZWQgaW50IGZsZzsKK307CisKKyNkZWZpbmUgQVRNRUxfU0VSSUFMX1JJTkdTSVpF IDEwMjQKKworc3RydWN0IGF0bWVsX3VhcnRfcmluZyB7CisJdW5zaWduZWQgaW50ICAgICAgICAg IGhlYWQ7CisJdW5zaWduZWQgaW50ICAgICAgICAgIHRhaWw7CisJdW5zaWduZWQgaW50ICAgICAg ICAgIGNvdW50OworCXN0cnVjdCBhdG1lbF91YXJ0X2NoYXIgZGF0YVtBVE1FTF9TRVJJQUxfUklO R1NJWkVdOworfTsKKwogLyoKICAqIFdlIHdyYXAgb3VyIHBvcnQgc3RydWN0dXJlIGFyb3VuZCB0 aGUgZ2VuZXJpYyB1YXJ0X3BvcnQuCiAgKi8KQEAgLTExOSw2ICsxMzUsMTMgQEAgc3RydWN0IGF0 bWVsX3VhcnRfcG9ydCB7CiAJc3RydWN0IGNsayAJIAkqY2xrOwkJLyogdWFydCBjbG9jayAqLwog CXVuc2lnbmVkIHNob3J0IAkJc3VzcGVuZGVkOwkvKiBpcyBwb3J0IHN1c3BlbmRlZD8gKi8KIAlp bnQgCQkJYnJlYWtfYWN0aXZlOwkvKiBicmVhayBiZWluZyByZWNlaXZlZCAqLworCisJc3RydWN0 IHRhc2tsZXRfc3RydWN0ICAgcnhfdGFzazsKKwlzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgICBzdGF0 dXNfdGFzazsKKwl1bnNpZ25lZCBpbnQgCQlpcnFfcGVuZGluZzsKKwl1bnNpZ25lZCBpbnQgCQlp cnFfc3RhdHVzOworCisJc3RydWN0IGF0bWVsX3VhcnRfcmluZyAgcnhfcmluZzsKIH07CiAKIHN0 YXRpYyBzdHJ1Y3QgYXRtZWxfdWFydF9wb3J0IGF0bWVsX3BvcnRzW0FUTUVMX01BWF9VQVJUXTsK QEAgLTI0OSwxMiArMjcyLDQxIEBAIHN0YXRpYyB2b2lkIGF0bWVsX2JyZWFrX2N0bChzdHJ1Y3Qg dWFydF8KIH0KIAogLyoKKyAqIFN0b3JlcyB0aGUgaW5jb21pbmcgY2hhcmFjdGVyIGluIHRoZSBy aW5nIGJ1ZmZlcgorICovCitzdGF0aWMgdm9pZAorYXRtZWxfYnVmZmVyX3J4X2NoYXIoc3RydWN0 IHVhcnRfcG9ydCAqcG9ydCwgdW5zaWduZWQgaW50IHN0YXR1cywKKwkJICAgICB1bnNpZ25lZCBp bnQgb3ZlcnJ1biwgICB1bnNpZ25lZCBpbnQgY2gsCisJCSAgICAgdW5zaWduZWQgaW50IGZsZykK K3sKKwlzdHJ1Y3QgYXRtZWxfdWFydF9wb3J0ICphdG1lbF9wb3J0ID0gKHN0cnVjdCBhdG1lbF91 YXJ0X3BvcnQgKilwb3J0OworCXN0cnVjdCBhdG1lbF91YXJ0X3JpbmcgKnJpbmcgPSAmYXRtZWxf cG9ydC0+cnhfcmluZzsKKwlzdHJ1Y3QgYXRtZWxfdWFydF9jaGFyICpjOworCisJc3Bpbl9sb2Nr KCZwb3J0LT5sb2NrKTsKKworCWlmIChyaW5nLT5jb3VudCA9PSBBVE1FTF9TRVJJQUxfUklOR1NJ WkUpCisJCWdvdG8gb3V0OyAvKiBCdWZmZXIgb3ZlcmZsb3csIGlnbm9yZSBjaGFyICovCisKKwlj ID0gJnJpbmctPmRhdGFbcmluZy0+aGVhZF07CisJYy0+c3RhdHVzICA9IHN0YXR1czsKKwljLT5v dmVycnVuID0gb3ZlcnJ1bjsKKwljLT5jaCAgICAgID0gY2g7CisJYy0+ZmxnICAgICA9IGZsZzsK KworCXJpbmctPmhlYWQrKzsKKwlyaW5nLT5oZWFkICU9IEFUTUVMX1NFUklBTF9SSU5HU0laRTsK KwlyaW5nLT5jb3VudCsrOworb3V0OgorCXNwaW5fdW5sb2NrKCZwb3J0LT5sb2NrKTsKK30KKwor LyoKICAqIENoYXJhY3RlcnMgcmVjZWl2ZWQgKGNhbGxlZCBmcm9tIGludGVycnVwdCBoYW5kbGVy KQogICovCiBzdGF0aWMgdm9pZCBhdG1lbF9yeF9jaGFycyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0 KQogewogCXN0cnVjdCBhdG1lbF91YXJ0X3BvcnQgKmF0bWVsX3BvcnQgPSAoc3RydWN0IGF0bWVs X3VhcnRfcG9ydCAqKXBvcnQ7Ci0Jc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSA9IHBvcnQtPmluZm8t PnR0eTsKIAl1bnNpZ25lZCBpbnQgc3RhdHVzLCBjaCwgZmxnOwogCiAJc3RhdHVzID0gVUFSVF9H RVRfQ1NSKHBvcnQpOwpAQCAtMzE1LDEzICszNjcsMTMgQEAgc3RhdGljIHZvaWQgYXRtZWxfcnhf Y2hhcnMoc3RydWN0IHVhcnRfcAogCQlpZiAodWFydF9oYW5kbGVfc3lzcnFfY2hhcihwb3J0LCBj aCkpCiAJCQlnb3RvIGlnbm9yZV9jaGFyOwogCi0JCXVhcnRfaW5zZXJ0X2NoYXIocG9ydCwgc3Rh dHVzLCBBVE1FTF9VU19PVlJFLCBjaCwgZmxnKTsKKwkJYXRtZWxfYnVmZmVyX3J4X2NoYXIocG9y dCwgc3RhdHVzLCBBVE1FTF9VU19PVlJFLCBjaCwgZmxnKTsKIAogaWdub3JlX2NoYXI6CiAJCXN0 YXR1cyA9IFVBUlRfR0VUX0NTUihwb3J0KTsKIAl9CiAKLQl0dHlfZmxpcF9idWZmZXJfcHVzaCh0 dHkpOworCXRhc2tsZXRfc2NoZWR1bGUoJmF0bWVsX3BvcnQtPnJ4X3Rhc2spOwogfQogCiAvKgpA QCAtMzgwLDcgKzQzMiw3IEBAIHN0YXRpYyB2b2lkIGF0bWVsX2hhbmRsZV9yZWNlaXZlKHN0cnVj dCAKIH0KIAogLyoKLSAqIHRyYW5zbWl0IGludGVycnVwdCBoYW5kbGVyLgorICogdHJhbnNtaXQg aW50ZXJydXB0IGhhbmRsZXIuIChUcmFuc21pdCBpcyBJUlFGX05PREVMQVkgc2FmZSkKICAqLwog c3RhdGljIHZvaWQgYXRtZWxfaGFuZGxlX3RyYW5zbWl0KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQs IHVuc2lnbmVkIGludCBwZW5kaW5nKQogewpAQCAtMzk1LDE5ICs0NDcsMTYgQEAgc3RhdGljIHZv aWQgYXRtZWxfaGFuZGxlX3RyYW5zbWl0KHN0cnVjdAogc3RhdGljIHZvaWQgYXRtZWxfaGFuZGxl X3N0YXR1cyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCB1bnNpZ25lZCBpbnQgcGVuZGluZywKIAkJ CQl1bnNpZ25lZCBpbnQgc3RhdHVzKQogewotCS8qIFRPRE86IEFsbCByZWFkcyB0byBDU1Igd2ls bCBjbGVhciB0aGVzZSBpbnRlcnJ1cHRzISAqLwotCWlmIChwZW5kaW5nICYgQVRNRUxfVVNfUklJ QykKLQkJcG9ydC0+aWNvdW50LnJuZysrOwotCWlmIChwZW5kaW5nICYgQVRNRUxfVVNfRFNSSUMp Ci0JCXBvcnQtPmljb3VudC5kc3IrKzsKLQlpZiAocGVuZGluZyAmIEFUTUVMX1VTX0RDRElDKQot CQl1YXJ0X2hhbmRsZV9kY2RfY2hhbmdlKHBvcnQsICEoc3RhdHVzICYgQVRNRUxfVVNfRENEKSk7 Ci0JaWYgKHBlbmRpbmcgJiBBVE1FTF9VU19DVFNJQykKLQkJdWFydF9oYW5kbGVfY3RzX2NoYW5n ZShwb3J0LCAhKHN0YXR1cyAmIEFUTUVMX1VTX0NUUykpOwotCWlmIChwZW5kaW5nICYKLQkJKEFU TUVMX1VTX1JJSUMgfCBBVE1FTF9VU19EU1JJQyB8IEFUTUVMX1VTX0RDRElDIHwKLQkJQVRNRUxf VVNfQ1RTSUMpKQotCQl3YWtlX3VwX2ludGVycnVwdGlibGUoJnBvcnQtPmluZm8tPmRlbHRhX21z cl93YWl0KTsKKwlzdHJ1Y3QgYXRtZWxfdWFydF9wb3J0ICphdG1lbF9wb3J0ID0gKHN0cnVjdCBh dG1lbF91YXJ0X3BvcnQgKilwb3J0OworCisJc3Bpbl9sb2NrKCZwb3J0LT5sb2NrKTsKKworCWF0 bWVsX3BvcnQtPmlycV9wZW5kaW5nID0gcGVuZGluZzsKKwlhdG1lbF9wb3J0LT5pcnFfc3RhdHVz ICA9IHN0YXR1czsKKworCXNwaW5fdW5sb2NrKCZwb3J0LT5sb2NrKTsKKworCXRhc2tsZXRfc2No ZWR1bGUoJmF0bWVsX3BvcnQtPnN0YXR1c190YXNrKTsKIH0KIAogLyoKQEAgLTQzNSw2ICs0ODQs NjYgQEAgc3RhdGljIGlycXJldHVybl90IGF0bWVsX2ludGVycnVwdChpbnQgaQogfQogCiAvKgor ICogdGFza2xldCBoYW5kbGluZyB0dHkgc3R1ZmYgb3V0c2lkZSB0aGUgaW50ZXJydXB0IGhhbmRs ZXIuCisgKi8KK3N0YXRpYyB2b2lkIGF0bWVsX3J4X2hhbmRsZXJfdGFzayh1bnNpZ25lZCBsb25n IGRhdGEpCit7CisJc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdWFydF9wb3J0ICop ZGF0YTsKKwlzdHJ1Y3QgYXRtZWxfdWFydF9wb3J0ICphdG1lbF9wb3J0ID0gKHN0cnVjdCBhdG1l bF91YXJ0X3BvcnQgKilwb3J0OworCXN0cnVjdCBhdG1lbF91YXJ0X3JpbmcgKnJpbmcgPSAmYXRt ZWxfcG9ydC0+cnhfcmluZzsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2ly cXNhdmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKKworCXdoaWxlIChyaW5nLT5jb3VudCkgeworCQlz dHJ1Y3QgYXRtZWxfdWFydF9jaGFyIGMgPSByaW5nLT5kYXRhW3JpbmctPnRhaWxdOworCisJCXJp bmctPnRhaWwrKzsKKwkJcmluZy0+dGFpbCAlPSBBVE1FTF9TRVJJQUxfUklOR1NJWkU7CisJCXJp bmctPmNvdW50LS07CisKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9ydC0+bG9jaywgZmxh Z3MpOworCisJCXVhcnRfaW5zZXJ0X2NoYXIocG9ydCwgYy5zdGF0dXMsIGMub3ZlcnJ1biwgYy5j aCwgYy5mbGcpOworCisJCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5sb2NrLCBmbGFncyk7CisJ fQorCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9ydC0+bG9jaywgZmxhZ3MpOworCisJdHR5 X2ZsaXBfYnVmZmVyX3B1c2gocG9ydC0+aW5mby0+dHR5KTsKK30KKworc3RhdGljIHZvaWQgYXRt ZWxfc3RhdHVzX2hhbmRsZXJfdGFzayh1bnNpZ25lZCBsb25nIGRhdGEpCit7CisJc3RydWN0IHVh cnRfcG9ydCAqcG9ydCA9IChzdHJ1Y3QgdWFydF9wb3J0ICopZGF0YTsKKwlzdHJ1Y3QgYXRtZWxf dWFydF9wb3J0ICphdG1lbF9wb3J0ID0gKHN0cnVjdCBhdG1lbF91YXJ0X3BvcnQgKilwb3J0Owor CXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgaW50IHBlbmRpbmcsIHN0YXR1czsKKwor CXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5sb2NrLCBmbGFncyk7CisKKwlwZW5kaW5nID0gYXRt ZWxfcG9ydC0+aXJxX3BlbmRpbmc7CisJc3RhdHVzID0gYXRtZWxfcG9ydC0+aXJxX3N0YXR1czsK KworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKKworCS8qIFRP RE86IEFsbCByZWFkcyB0byBDU1Igd2lsbCBjbGVhciB0aGVzZSBpbnRlcnJ1cHRzISAqLworCWlm IChwZW5kaW5nICYgQVRNRUxfVVNfUklJQykKKwkJcG9ydC0+aWNvdW50LnJuZysrOworCWlmIChw ZW5kaW5nICYgQVRNRUxfVVNfRFNSSUMpCisJCXBvcnQtPmljb3VudC5kc3IrKzsKKwlpZiAocGVu ZGluZyAmIEFUTUVMX1VTX0RDRElDKQorCQl1YXJ0X2hhbmRsZV9kY2RfY2hhbmdlKHBvcnQsICEo c3RhdHVzICYgQVRNRUxfVVNfRENEKSk7CisJaWYgKHBlbmRpbmcgJiBBVE1FTF9VU19DVFNJQykK KwkJdWFydF9oYW5kbGVfY3RzX2NoYW5nZShwb3J0LCAhKHN0YXR1cyAmIEFUTUVMX1VTX0NUUykp OworCWlmIChwZW5kaW5nICYKKwkJKEFUTUVMX1VTX1JJSUMgfCBBVE1FTF9VU19EU1JJQyB8IEFU TUVMX1VTX0RDRElDIHwKKwkJQVRNRUxfVVNfQ1RTSUMpKQorCQl3YWtlX3VwX2ludGVycnVwdGli bGUoJnBvcnQtPmluZm8tPmRlbHRhX21zcl93YWl0KTsKK30KKworLyoKICAqIFBlcmZvcm0gaW5p dGlhbGl6YXRpb24gYW5kIGVuYWJsZSBwb3J0IGZvciByZWNlcHRpb24KICAqLwogc3RhdGljIGlu dCBhdG1lbF9zdGFydHVwKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCkBAIC03NjcsNiArODc2LDEz IEBAIHN0YXRpYyB2b2lkIF9fZGV2aW5pdCBhdG1lbF9pbml0X3BvcnQoc3QKIAlwb3J0LT5tYXBi YXNlCT0gcGRldi0+cmVzb3VyY2VbMF0uc3RhcnQ7CiAJcG9ydC0+aXJxCT0gcGRldi0+cmVzb3Vy Y2VbMV0uc3RhcnQ7CiAKKwl0YXNrbGV0X2luaXQoJmF0bWVsX3BvcnQtPnJ4X3Rhc2ssIGF0bWVs X3J4X2hhbmRsZXJfdGFzaywKKwkJCSh1bnNpZ25lZCBsb25nKXBvcnQpOworCXRhc2tsZXRfaW5p dCgmYXRtZWxfcG9ydC0+c3RhdHVzX3Rhc2ssIGF0bWVsX3N0YXR1c19oYW5kbGVyX3Rhc2ssCisJ CQkodW5zaWduZWQgbG9uZylwb3J0KTsKKworCW1lbXNldCgmYXRtZWxfcG9ydC0+cnhfcmluZywg MCwgc2l6ZW9mKGF0bWVsX3BvcnQtPnJ4X3JpbmcpKTsKKwogCWlmIChkYXRhLT5yZWdzKQogCQkv KiBBbHJlYWR5IG1hcHBlZCBieSBzZXR1cCBjb2RlICovCiAJCXBvcnQtPm1lbWJhc2UgPSBkYXRh LT5yZWdzOwo= ------=_Part_11587_32320749.1197564038197 Content-Type: text/x-patch; name=atmel_serial_irqf_nodelay.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_fa5in9jq Content-Disposition: attachment; filename=atmel_serial_irqf_nodelay.patch T24gUFJFRU1QVC1SVCB3ZSBtYXkgbm90IGJsb2NrIG9uIGEgbm9ybWFsIHNwaW5sb2NrIGluIElS US9JUlFGX05PREVMQVktY29udGV4dC4KVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IG1ha2luZyB0 aGUgbG9jayBhIHJhd19zcGlubG9ja190IGZvciB0aGUKQXRtZWwgc2VyaWFsIGNvbnNvbGUuCgpU aGlzIHBhdGNoIGRlbWFuZHMgdGhlIGZvbGxvd2luZyBwYXRjaGVzIHRvIGJlIGluc3RhbGxlZCBm aXJzdDoKKiBhdG1lbF9zZXJpYWxfY2xlYW51cC5wYXRjaAoqIGF0bWVsX3NlcmlhbF9pcnFfc3Bs aXR1cC5wYXRjaAoKU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+ Ci0tLQogaW5jbHVkZS9saW51eC9zZXJpYWxfY29yZS5oIHwgICAgNyArKysrKystCiAxIGZpbGUg Y2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpJbmRleDogbGludXgtMi42 LjIzL2luY2x1ZGUvbGludXgvc2VyaWFsX2NvcmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBsaW51eC0yLjYu MjMub3JpZy9pbmNsdWRlL2xpbnV4L3NlcmlhbF9jb3JlLmgJMjAwNy0xMi0xMyAxMzozMToyNy4w MDAwMDAwMDAgKzAxMDAKKysrIGxpbnV4LTIuNi4yMy9pbmNsdWRlL2xpbnV4L3NlcmlhbF9jb3Jl LmgJMjAwNy0xMi0xMyAxNjozMjoyMi4wMDAwMDAwMDAgKzAxMDAKQEAgLTIyNiw3ICsyMjYsMTIg QEAgc3RydWN0IHVhcnRfaWNvdW50IHsKIHR5cGVkZWYgdW5zaWduZWQgaW50IF9fYml0d2lzZV9f IHVwZl90OwogCiBzdHJ1Y3QgdWFydF9wb3J0IHsKLQlzcGlubG9ja190CQlsb2NrOwkJCS8qIHBv cnQgbG9jayAqLworCisjaWZkZWYgQ09ORklHX1NFUklBTF9BVE1FTAorCXJhd19zcGlubG9ja190 IAkJbG9jazsJCQkvKiBwb3J0IGxvY2sgKi8KKyNlbHNlCisJc3BpbmxvY2tfdCAJCWxvY2s7CQkJ LyogcG9ydCBsb2NrICovCisjZW5kaWYKIAl1bnNpZ25lZCBpbnQJCWlvYmFzZTsJCQkvKiBpbi9v dXRbYndsXSAqLwogCXVuc2lnbmVkIGNoYXIgX19pb21lbQkqbWVtYmFzZTsJCS8qIHJlYWQvd3Jp dGVbYndsXSAqLwogCXVuc2lnbmVkIGludAkJaXJxOwkJCS8qIGlycSBudW1iZXIgKi8K ------=_Part_11587_32320749.1197564038197--