From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Subject: [PATCH 17/25] MIPS: use generic dma noncoherent ops for simple noncoherent platforms Date: Fri, 25 May 2018 11:21:03 +0200 Message-ID: <20180525092111.18516-18-hch@lst.de> References: <20180525092111.18516-1-hch@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180525092111.18516-1-hch-jcswGhMUV9g@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Ralf Baechle , James Hogan Cc: linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org, Florian Fainelli , David Daney , Kevin Cernekee , Jiaxun Yang , iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, Tom Bogendoerfer , Huacai Chen List-Id: iommu@lists.linux-foundation.org Q29udmVydCBldmVyeXRoaW5nIG5vdCBvdmVycmlkaW5nIGRtYS1jb2hlcmVuY2UuaCB0byB0aGUg Z2VuZXJpYwpub25jb2hlcmVudCBvcHMuICBUaGUgbmV3IGRtYS1ub25jb2hlcmVudC5jIGZpbGUg ZHVwbGljYXRlcyBhIGxvdCBvZgp0aGUgY29kZSBpbiBkbWEtZGVmYXVsdC5jLCBidXQgdGhhdCBm aWxlIHdpbGwgYmUgZ29uZSBieSB0aGUgZW5kIG9mCnRoaXMgc2VyaWVzLgoKU2lnbmVkLW9mZi1i eTogQ2hyaXN0b3BoIEhlbGx3aWcgPGhjaEBsc3QuZGU+Ci0tLQogYXJjaC9taXBzL0tjb25maWcg ICAgICAgICAgICAgICAgICAgfCAgMjQgKy0tLQogYXJjaC9taXBzL2luY2x1ZGUvYXNtL2RtYS1t YXBwaW5nLmggfCAgIDIgKwogYXJjaC9taXBzL2xvb25nc29uMzIvS2NvbmZpZyAgICAgICAgfCAg IDIgLQogYXJjaC9taXBzL21tL01ha2VmaWxlICAgICAgICAgICAgICAgfCAgIDEgKwogYXJjaC9t aXBzL21tL2RtYS1ub25jb2hlcmVudC5jICAgICAgfCAyMDggKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogYXJjaC9taXBzL3BpYzMyL0tjb25maWcgICAgICAgICAgICAgfCAgIDEgLQogYXJj aC9taXBzL3R4eDkvS2NvbmZpZyAgICAgICAgICAgICAgfCAgIDEgLQogYXJjaC9taXBzL3ZyNDF4 eC9LY29uZmlnICAgICAgICAgICAgfCAgIDUgLQogOCBmaWxlcyBjaGFuZ2VkLCAyMTYgaW5zZXJ0 aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9taXBzL21t L2RtYS1ub25jb2hlcmVudC5jCgpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL0tjb25maWcgYi9hcmNo L21pcHMvS2NvbmZpZwppbmRleCA5MzQ2OTY1OTVhZDYuLmIzOWI0MzBjOTJhMyAxMDA2NDQKLS0t IGEvYXJjaC9taXBzL0tjb25maWcKKysrIGIvYXJjaC9taXBzL0tjb25maWcKQEAgLTk2LDcgKzk2 LDYgQEAgY29uZmlnIE1JUFNfR0VORVJJQwogCXNlbGVjdCBJUlFfTUlQU19DUFUKIAlzZWxlY3Qg TElCRkRUCiAJc2VsZWN0IE1JUFNfQ1BVX1NDQUNIRQotCXNlbGVjdCBNSVBTX0RNQV9ERUZBVUxU CiAJc2VsZWN0IE1JUFNfR0lDCiAJc2VsZWN0IE1JUFNfTDFfQ0FDSEVfU0hJRlRfNwogCXNlbGVj dCBOT19FWENFUFRfRklMTApAQCAtMTQwLDcgKzEzOSw2IEBAIGNvbmZpZyBNSVBTX0FMQ0hFTVkK IAlzZWxlY3QgQ0VWVF9SNEsKIAlzZWxlY3QgQ1NSQ19SNEsKIAlzZWxlY3QgSVJRX01JUFNfQ1BV Ci0Jc2VsZWN0IE1JUFNfRE1BX0RFRkFVTFQKIAlzZWxlY3QgRE1BX01BWUJFX0NPSEVSRU5UCSMg QXUxMDAwLDE1MDAsMTEwMCBhcmVuJ3QsIHJlc3QgaXMKIAlzZWxlY3QgU1lTX0hBU19DUFVfTUlQ UzMyX1IxCiAJc2VsZWN0IFNZU19TVVBQT1JUU18zMkJJVF9LRVJORUwKQEAgLTE1Niw3ICsxNTQs NiBAQCBjb25maWcgQVI3CiAJc2VsZWN0IENFVlRfUjRLCiAJc2VsZWN0IENTUkNfUjRLCiAJc2Vs ZWN0IElSUV9NSVBTX0NQVQotCXNlbGVjdCBNSVBTX0RNQV9ERUZBVUxUCiAJc2VsZWN0IE5PX0VY Q0VQVF9GSUxMCiAJc2VsZWN0IFNXQVBfSU9fU1BBQ0UKIAlzZWxlY3QgU1lTX0hBU19DUFVfTUlQ UzMyX1IxCkBAIC0xOTksNyArMTk2LDYgQEAgY29uZmlnIEFUSDc5CiAJc2VsZWN0IENPTU1PTl9D TEsKIAlzZWxlY3QgQ0xLREVWX0xPT0tVUAogCXNlbGVjdCBJUlFfTUlQU19DUFUKLQlzZWxlY3Qg TUlQU19ETUFfREVGQVVMVAogCXNlbGVjdCBNSVBTX01BQ0hJTkUKIAlzZWxlY3QgU1lTX0hBU19D UFVfTUlQUzMyX1IyCiAJc2VsZWN0IFNZU19IQVNfRUFSTFlfUFJJTlRLCkBAIC0yNTcsNyArMjUz LDYgQEAgY29uZmlnIEJDTTQ3WFgKIAlzZWxlY3QgSFdfSEFTX1BDSQogCXNlbGVjdCBJUlFfTUlQ U19DUFUKIAlzZWxlY3QgU1lTX0hBU19DUFVfTUlQUzMyX1IxCi0Jc2VsZWN0IE1JUFNfRE1BX0RF RkFVTFQKIAlzZWxlY3QgTk9fRVhDRVBUX0ZJTEwKIAlzZWxlY3QgU1lTX1NVUFBPUlRTXzMyQklU X0tFUk5FTAogCXNlbGVjdCBTWVNfU1VQUE9SVFNfTElUVExFX0VORElBTgpAQCAtMjgxLDcgKzI3 Niw2IEBAIGNvbmZpZyBCQ002M1hYCiAJc2VsZWN0IFNZTkNfUjRLCiAJc2VsZWN0IERNQV9OT05D T0hFUkVOVAogCXNlbGVjdCBJUlFfTUlQU19DUFUKLQlzZWxlY3QgTUlQU19ETUFfREVGQVVMVAog CXNlbGVjdCBTWVNfU1VQUE9SVFNfMzJCSVRfS0VSTkVMCiAJc2VsZWN0IFNZU19TVVBQT1JUU19C SUdfRU5ESUFOCiAJc2VsZWN0IFNZU19IQVNfRUFSTFlfUFJJTlRLCkBAIC0zMDQsNyArMjk4LDYg QEAgY29uZmlnIE1JUFNfQ09CQUxUCiAJc2VsZWN0IEk4MjU5CiAJc2VsZWN0IElSUV9NSVBTX0NQ VQogCXNlbGVjdCBJUlFfR1Q2NDFYWAotCXNlbGVjdCBNSVBTX0RNQV9ERUZBVUxUCiAJc2VsZWN0 IFBDSV9HVDY0WFhYX1BDSTAKIAlzZWxlY3QgUENJCiAJc2VsZWN0IFNZU19IQVNfQ1BVX05FVkFE QQpAQCAtMzI1LDcgKzMxOCw2IEBAIGNvbmZpZyBNQUNIX0RFQ1NUQVRJT04KIAlzZWxlY3QgQ1BV X1I0MDAwX1dPUktBUk9VTkRTIGlmIDY0QklUCiAJc2VsZWN0IENQVV9SNDQwMF9XT1JLQVJPVU5E UyBpZiA2NEJJVAogCXNlbGVjdCBETUFfTk9OQ09IRVJFTlQKLQlzZWxlY3QgTUlQU19ETUFfREVG QVVMVAogCXNlbGVjdCBOT19JT1BPUlRfTUFQCiAJc2VsZWN0IElSUV9NSVBTX0NQVQogCXNlbGVj dCBTWVNfSEFTX0NQVV9SMzAwMApAQCAtMzg1LDcgKzM3Nyw2IEBAIGNvbmZpZyBNQUNIX0lOR0VO SUMKIAlzZWxlY3QgU1lTX1NVUFBPUlRTX1pCT09UX1VBUlQxNjU1MAogCXNlbGVjdCBETUFfTk9O Q09IRVJFTlQKIAlzZWxlY3QgSVJRX01JUFNfQ1BVCi0Jc2VsZWN0IE1JUFNfRE1BX0RFRkFVTFQK IAlzZWxlY3QgUElOQ1RSTAogCXNlbGVjdCBHUElPTElCCiAJc2VsZWN0IENPTU1PTl9DTEsKQEAg LTQwMCw3ICszOTEsNiBAQCBjb25maWcgTEFOVElRCiAJc2VsZWN0IElSUV9NSVBTX0NQVQogCXNl bGVjdCBDRVZUX1I0SwogCXNlbGVjdCBDU1JDX1I0SwotCXNlbGVjdCBNSVBTX0RNQV9ERUZBVUxU CiAJc2VsZWN0IFNZU19IQVNfQ1BVX01JUFMzMl9SMQogCXNlbGVjdCBTWVNfSEFTX0NQVV9NSVBT MzJfUjIKIAlzZWxlY3QgU1lTX1NVUFBPUlRTX0JJR19FTkRJQU4KQEAgLTQyOCw3ICs0MTgsNiBA QCBjb25maWcgTEFTQVQKIAlzZWxlY3QgU1lTX0hBU19FQVJMWV9QUklOVEsKIAlzZWxlY3QgSFdf SEFTX1BDSQogCXNlbGVjdCBJUlFfTUlQU19DUFUKLQlzZWxlY3QgTUlQU19ETUFfREVGQVVMVAog CXNlbGVjdCBQQ0lfR1Q2NFhYWF9QQ0kwCiAJc2VsZWN0IE1JUFNfTklMRTQKIAlzZWxlY3QgUjUw MDBfQ1BVX1NDQUNIRQpAQCAtNDc0LDcgKzQ2Myw2IEBAIGNvbmZpZyBNQUNIX1BJU1RBQ0hJTwog CXNlbGVjdCBMSUJGRFQKIAlzZWxlY3QgTUZEX1NZU0NPTgogCXNlbGVjdCBNSVBTX0NQVV9TQ0FD SEUKLQlzZWxlY3QgTUlQU19ETUFfREVGQVVMVAogCXNlbGVjdCBNSVBTX0dJQwogCXNlbGVjdCBQ SU5DVFJMCiAJc2VsZWN0IFJFR1VMQVRPUgpAQCAtNTA3LDcgKzQ5NSw2IEBAIGNvbmZpZyBNSVBT X01BTFRBCiAJc2VsZWN0IEdFTkVSSUNfSVNBX0RNQQogCXNlbGVjdCBIQVZFX1BDU1BLUl9QTEFU Rk9STQogCXNlbGVjdCBJUlFfTUlQU19DUFUKLQlzZWxlY3QgTUlQU19ETUFfREVGQVVMVAogCXNl bGVjdCBNSVBTX0dJQwogCXNlbGVjdCBIV19IQVNfUENJCiAJc2VsZWN0IEk4MjUzCkBAIC02MDIs NyArNTg5LDYgQEAgY29uZmlnIFBNQ19NU1AKIAlzZWxlY3QgU1lTX1NVUFBPUlRTX0JJR19FTkRJ QU4KIAlzZWxlY3QgU1lTX1NVUFBPUlRTX01JUFMxNgogCXNlbGVjdCBJUlFfTUlQU19DUFUKLQlz ZWxlY3QgTUlQU19ETUFfREVGQVVMVAogCXNlbGVjdCBTRVJJQUxfODI1MAogCXNlbGVjdCBTRVJJ QUxfODI1MF9DT05TT0xFCiAJc2VsZWN0IFVTQl9FSENJX0JJR19FTkRJQU5fTU1JTwpAQCAtNjIw LDcgKzYwNiw2IEBAIGNvbmZpZyBSQUxJTksKIAlzZWxlY3QgQk9PVF9SQVcKIAlzZWxlY3QgRE1B X05PTkNPSEVSRU5UCiAJc2VsZWN0IElSUV9NSVBTX0NQVQotCXNlbGVjdCBNSVBTX0RNQV9ERUZB VUxUCiAJc2VsZWN0IFVTRV9PRgogCXNlbGVjdCBTWVNfSEFTX0NQVV9NSVBTMzJfUjEKIAlzZWxl Y3QgU1lTX0hBU19DUFVfTUlQUzMyX1IyCkBAIC02NDcsNyArNjMyLDYgQEAgY29uZmlnIFNHSV9J UDIyCiAJc2VsZWN0IEk4MjU5CiAJc2VsZWN0IElQMjJfQ1BVX1NDQUNIRQogCXNlbGVjdCBJUlFf TUlQU19DUFUKLQlzZWxlY3QgTUlQU19ETUFfREVGQVVMVAogCXNlbGVjdCBHRU5FUklDX0lTQV9E TUFfU1VQUE9SVF9CUk9LRU4KIAlzZWxlY3QgU0dJX0hBU19JODA0MgogCXNlbGVjdCBTR0lfSEFT X0lORFlET0cKQEAgLTcwOCw3ICs2OTIsNiBAQCBjb25maWcgU0dJX0lQMjgKIAlzZWxlY3QgRE1B X05PTkNPSEVSRU5UCiAJc2VsZWN0IEdFTkVSSUNfSVNBX0RNQV9TVVBQT1JUX0JST0tFTgogCXNl bGVjdCBJUlFfTUlQU19DUFUKLQlzZWxlY3QgTUlQU19ETUFfREVGQVVMVAogCXNlbGVjdCBIV19I QVNfRUlTQQogCXNlbGVjdCBJODI1MwogCXNlbGVjdCBJODI1OQpAQCAtODU5LDcgKzg0Miw2IEBA IGNvbmZpZyBTTklfUk0KIAlzZWxlY3QgSTgyNTMKIAlzZWxlY3QgSTgyNTkKIAlzZWxlY3QgSVNB Ci0Jc2VsZWN0IE1JUFNfRE1BX0RFRkFVTFQKIAlzZWxlY3QgU1dBUF9JT19TUEFDRSBpZiBDUFVf QklHX0VORElBTgogCXNlbGVjdCBTWVNfSEFTX0NQVV9SNFgwMAogCXNlbGVjdCBTWVNfSEFTX0NQ VV9SNTAwMApAQCAtODkwLDcgKzg3Miw2IEBAIGNvbmZpZyBNSUtST1RJS19SQjUzMgogCXNlbGVj dCBETUFfTk9OQ09IRVJFTlQKIAlzZWxlY3QgSFdfSEFTX1BDSQogCXNlbGVjdCBJUlFfTUlQU19D UFUKLQlzZWxlY3QgTUlQU19ETUFfREVGQVVMVAogCXNlbGVjdCBTWVNfSEFTX0NQVV9NSVBTMzJf UjEKIAlzZWxlY3QgU1lTX1NVUFBPUlRTXzMyQklUX0tFUk5FTAogCXNlbGVjdCBTWVNfU1VQUE9S VFNfTElUVExFX0VORElBTgpAQCAtMTEyNyw3ICsxMTA4LDEyIEBAIGNvbmZpZyBETUFfUEVSREVW X0NPSEVSRU5UCiAKIGNvbmZpZyBETUFfTk9OQ09IRVJFTlQKIAlib29sCisJc2VsZWN0IEFSQ0hf SEFTX1NZTkNfRE1BX0ZPUl9ERVZJQ0UKKwlzZWxlY3QgQVJDSF9IQVNfU1lOQ19ETUFfRk9SX0NQ VQogCXNlbGVjdCBORUVEX0RNQV9NQVBfU1RBVEUKKwlzZWxlY3QgRE1BX05PTkNPSEVSRU5UX01N QVAKKwlzZWxlY3QgRE1BX05PTkNPSEVSRU5UX0NBQ0hFX1NZTkMKKwlzZWxlY3QgRE1BX05PTkNP SEVSRU5UX09QUyBpZiAhTUlQU19ETUFfREVGQVVMVAogCiBjb25maWcgU1lTX0hBU19FQVJMWV9Q UklOVEsKIAlib29sCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vZG1hLW1hcHBp bmcuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9kbWEtbWFwcGluZy5oCmluZGV4IDdjMGQ0ZjBj Y2FhMC4uZTMyYTdiNDM5ODE2IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvaW5jbHVkZS9hc20vZG1h LW1hcHBpbmcuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vZG1hLW1hcHBpbmcuaApAQCAt MTksNiArMTksOCBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyAqZ2V0 X2FyY2hfZG1hX29wcyhzdHJ1Y3QgYnVzX3R5cGUgKmJ1cykKIAlyZXR1cm4gJm1pcHNfc3dpb3Rs Yl9vcHM7CiAjZWxpZiBkZWZpbmVkKENPTkZJR19NSVBTX0RNQV9ERUZBVUxUKQogCXJldHVybiAm bWlwc19kZWZhdWx0X2RtYV9tYXBfb3BzOworI2VsaWYgZGVmaW5lZChDT05GSUdfRE1BX05PTkNP SEVSRU5UX09QUykKKwlyZXR1cm4gJmRtYV9ub25jb2hlcmVudF9vcHM7CiAjZWxzZQogCXJldHVy biAmZG1hX2RpcmVjdF9vcHM7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9sb29uZ3Nv bjMyL0tjb25maWcgYi9hcmNoL21pcHMvbG9vbmdzb24zMi9LY29uZmlnCmluZGV4IDdhNjlhNmMw Y2UyMi4uNDYyYjEyNmY0NWFhIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbG9vbmdzb24zMi9LY29u ZmlnCisrKyBiL2FyY2gvbWlwcy9sb29uZ3NvbjMyL0tjb25maWcKQEAgLTEwLDcgKzEwLDYgQEAg Y29uZmlnIExPT05HU09OMV9MUzFCCiAJc2VsZWN0IENTUkNfUjRLIGlmICFNSVBTX0VYVEVSTkFM X1RJTUVSCiAJc2VsZWN0IFNZU19IQVNfQ1BVX0xPT05HU09OMUIKIAlzZWxlY3QgRE1BX05PTkNP SEVSRU5UCi0Jc2VsZWN0IE1JUFNfRE1BX0RFRkFVTFQKIAlzZWxlY3QgQk9PVF9FTEYzMgogCXNl bGVjdCBJUlFfTUlQU19DUFUKIAlzZWxlY3QgU1lTX1NVUFBPUlRTXzMyQklUX0tFUk5FTApAQCAt MjcsNyArMjYsNiBAQCBjb25maWcgTE9PTkdTT04xX0xTMUMKIAlzZWxlY3QgQ1NSQ19SNEsgaWYg IU1JUFNfRVhURVJOQUxfVElNRVIKIAlzZWxlY3QgU1lTX0hBU19DUFVfTE9PTkdTT04xQwogCXNl bGVjdCBETUFfTk9OQ09IRVJFTlQKLQlzZWxlY3QgTUlQU19ETUFfREVGQVVMVAogCXNlbGVjdCBC T09UX0VMRjMyCiAJc2VsZWN0IElSUV9NSVBTX0NQVQogCXNlbGVjdCBTWVNfU1VQUE9SVFNfMzJC SVRfS0VSTkVMCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvbW0vTWFrZWZpbGUgYi9hcmNoL21pcHMv bW0vTWFrZWZpbGUKaW5kZXggMDM4YmZlZDM0OTQ2Li5jNjE0NmMzODA1ZGMgMTAwNjQ0Ci0tLSBh L2FyY2gvbWlwcy9tbS9NYWtlZmlsZQorKysgYi9hcmNoL21pcHMvbW0vTWFrZWZpbGUKQEAgLTE4 LDYgKzE4LDcgQEAgb2JqLSQoQ09ORklHXzY0QklUKQkJKz0gcGd0YWJsZS02NC5vCiBvYmotJChD T05GSUdfSElHSE1FTSkJCSs9IGhpZ2htZW0ubwogb2JqLSQoQ09ORklHX0hVR0VUTEJfUEFHRSkJ Kz0gaHVnZXRsYnBhZ2Uubwogb2JqLSQoQ09ORklHX01JUFNfRE1BX0RFRkFVTFQpCSs9IGRtYS1k ZWZhdWx0Lm8KK29iai0kKENPTkZJR19ETUFfTk9OQ09IRVJFTlQpCSs9IGRtYS1ub25jb2hlcmVu dC5vCiBvYmotJChDT05GSUdfU1dJT1RMQikJCSs9IGRtYS1zd2lvdGxiLm8KIAogb2JqLSQoQ09O RklHX0NQVV9SNEtfQ0FDSEVfVExCKSArPSBjLXI0ay5vIGNleC1nZW4ubyB0bGItcjRrLm8KZGlm ZiAtLWdpdCBhL2FyY2gvbWlwcy9tbS9kbWEtbm9uY29oZXJlbnQuYyBiL2FyY2gvbWlwcy9tbS9k bWEtbm9uY29oZXJlbnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjI1ZWRmNmQ2YjY4NgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvbWlwcy9tbS9kbWEtbm9uY29o ZXJlbnQuYwpAQCAtMCwwICsxLDIwOCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ TC0yLjAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAgIEFuaSBKb3NoaSA8YWpvc2hpQHVuaXhi b3guY29tPgorICogQ29weXJpZ2h0IChDKSAyMDAwLCAyMDAxLCAwNgkgUmFsZiBCYWVjaGxlIDxy YWxmQGxpbnV4LW1pcHMub3JnPgorICogc3dpcGVkIGZyb20gaTM4NiwgYW5kIGNsb25lZCBmb3Ig TUlQUyBieSBHZWVydCwgcG9saXNoZWQgYnkgUmFsZi4KKyAqLworI2luY2x1ZGUgPGxpbnV4L2Rt YS1kaXJlY3QuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbm9uY29oZXJlbnQuaD4KKyNpbmNsdWRl IDxsaW51eC9kbWEtY29udGlndW91cy5oPgorI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KKwor I2luY2x1ZGUgPGFzbS9jYWNoZS5oPgorI2luY2x1ZGUgPGFzbS9jcHUtdHlwZS5oPgorI2luY2x1 ZGUgPGFzbS9kbWEtY29oZXJlbmNlLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisKKyNpZmRlZiBD T05GSUdfRE1BX1BFUkRFVl9DT0hFUkVOVAorc3RhdGljIGlubGluZSBpbnQgZGV2X2lzX2NvaGVy ZW50KHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlyZXR1cm4gZGV2LT5hcmNoZGF0YS5kbWFfY29o ZXJlbnQ7Cit9CisjZWxzZQorc3RhdGljIGlubGluZSBpbnQgZGV2X2lzX2NvaGVyZW50KHN0cnVj dCBkZXZpY2UgKmRldikKK3sKKwlzd2l0Y2ggKGNvaGVyZW50aW8pIHsKKwlkZWZhdWx0OgorCWNh c2UgSU9fQ09IRVJFTkNFX0RFRkFVTFQ6CisJCXJldHVybiBod19jb2hlcmVudGlvOworCWNhc2Ug SU9fQ09IRVJFTkNFX0VOQUJMRUQ6CisJCXJldHVybiAxOworCWNhc2UgSU9fQ09IRVJFTkNFX0RJ U0FCTEVEOgorCQlyZXR1cm4gMDsKKwl9Cit9CisjZW5kaWYgLyogQ09ORklHX0RNQV9QRVJERVZf Q09IRVJFTlQgKi8KKworLyoKKyAqIFRoZSBhZmZlY3RlZCBDUFVzIGJlbG93IGluICdjcHVfbmVl ZHNfcG9zdF9kbWFfZmx1c2goKScgY2FuIHNwZWN1bGF0aXZlbHkKKyAqIGZpbGwgcmFuZG9tIGNh Y2hlbGluZXMgd2l0aCBzdGFsZSBkYXRhIGF0IGFueSB0aW1lLCByZXF1aXJpbmcgYW4gZXh0cmEK KyAqIGZsdXNoIHBvc3QtRE1BLgorICoKKyAqIFdhcm5pbmcgb24gdGhlIHRlcm1pbm9sb2d5IC0g TGludXggY2FsbHMgYW4gdW5jYWNoZWQgYXJlYSBjb2hlcmVudDsgIE1JUFMKKyAqIHRlcm1pbm9s b2d5IGNhbGxzIG1lbW9yeSBhcmVhcyB3aXRoIGhhcmR3YXJlIG1haW50YWluZWQgY29oZXJlbmN5 IGNvaGVyZW50LgorICoKKyAqIE5vdGUgdGhhdCB0aGUgUjE0MDAwIGFuZCBSMTYwMDAgc2hvdWxk IGFsc28gYmUgY2hlY2tlZCBmb3IgaW4gdGhpcyBjb25kaXRpb24uCisgKiBIb3dldmVyIHRoaXMg ZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb24gbm9uLUkvTy1jb2hlcmVudCBzeXN0ZW1zIGFuZCBv bmx5IHRoZQorICogUjEwMDAwIGFuZCBSMTIwMDAgYXJlIHVzZWQgaW4gc3VjaCBzeXN0ZW1zLCB0 aGUgU0dJIElQMjggSW5kaWdvwrIgcnNwLgorICogU0dJIElQMzIgYWthIE8yLgorICovCitzdGF0 aWMgaW5saW5lIGJvb2wgY3B1X25lZWRzX3Bvc3RfZG1hX2ZsdXNoKHN0cnVjdCBkZXZpY2UgKmRl dikKK3sKKwlpZiAoZGV2X2lzX2NvaGVyZW50KGRldikpCisJCXJldHVybiBmYWxzZTsKKworCXN3 aXRjaCAoYm9vdF9jcHVfdHlwZSgpKSB7CisJY2FzZSBDUFVfUjEwMDAwOgorCWNhc2UgQ1BVX1Ix MjAwMDoKKwljYXNlIENQVV9CTUlQUzUwMDA6CisJCXJldHVybiB0cnVlOworCWRlZmF1bHQ6CisJ CS8qCisJCSAqIFByZXNlbmNlIG9mIE1BQVJzIHN1Z2dlc3RzIHRoYXQgdGhlIENQVSBzdXBwb3J0 cworCQkgKiBzcGVjdWxhdGl2ZWx5IHByZWZldGNoaW5nIGRhdGEsIGFuZCB0aGVyZWZvcmUgcmVx dWlyZXMKKwkJICogdGhlIHBvc3QtRE1BIGZsdXNoL2ludmFsaWRhdGUuCisJCSAqLworCQlyZXR1 cm4gY3B1X2hhc19tYWFyOworCX0KK30KKwordm9pZCAqYXJjaF9kbWFfYWxsb2Moc3RydWN0IGRl dmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKKwkJZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSwgZ2ZwX3Qg Z2ZwLCB1bnNpZ25lZCBsb25nIGF0dHJzKQoreworCXZvaWQgKnJldDsKKworCXJldCA9IGRtYV9k aXJlY3RfYWxsb2MoZGV2LCBzaXplLCBkbWFfaGFuZGxlLCBnZnAsIGF0dHJzKTsKKwlpZiAoIXJl dCkKKwkJcmV0dXJuIE5VTEw7CisKKwlpZiAoIWRldl9pc19jb2hlcmVudChkZXYpICYmICEoYXR0 cnMgJiBETUFfQVRUUl9OT05fQ09OU0lTVEVOVCkpIHsKKwkJZG1hX2NhY2hlX3diYWNrX2ludigo dW5zaWduZWQgbG9uZykgcmV0LCBzaXplKTsKKwkJcmV0ID0gVU5DQUNfQUREUihyZXQpOworCX0K KworCXJldHVybiByZXQ7Cit9CisKK3ZvaWQgYXJjaF9kbWFfZnJlZShzdHJ1Y3QgZGV2aWNlICpk ZXYsIHNpemVfdCBzaXplLCB2b2lkICpjcHVfYWRkciwKKwkJZG1hX2FkZHJfdCBkbWFfYWRkciwg dW5zaWduZWQgbG9uZyBhdHRycykKK3sKKwlpZiAoIShhdHRycyAmIERNQV9BVFRSX05PTl9DT05T SVNURU5UKSAmJiAhZGV2X2lzX2NvaGVyZW50KGRldikpCisJCWNwdV9hZGRyID0gKHZvaWQgKilD QUNfQUREUigodW5zaWduZWQgbG9uZyljcHVfYWRkcik7CisJZG1hX2RpcmVjdF9mcmVlKGRldiwg c2l6ZSwgY3B1X2FkZHIsIGRtYV9hZGRyLCBhdHRycyk7Cit9CisKK2ludCBhcmNoX2RtYV9tbWFw KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCisJCXZvaWQg KmNwdV9hZGRyLCBkbWFfYWRkcl90IGRtYV9hZGRyLCBzaXplX3Qgc2l6ZSwKKwkJdW5zaWduZWQg bG9uZyBhdHRycykKK3sKKwl1bnNpZ25lZCBsb25nIHVzZXJfY291bnQgPSB2bWFfcGFnZXModm1h KTsKKwl1bnNpZ25lZCBsb25nIGNvdW50ID0gUEFHRV9BTElHTihzaXplKSA+PiBQQUdFX1NISUZU OworCXVuc2lnbmVkIGxvbmcgYWRkciA9ICh1bnNpZ25lZCBsb25nKWNwdV9hZGRyOworCXVuc2ln bmVkIGxvbmcgb2ZmID0gdm1hLT52bV9wZ29mZjsKKwl1bnNpZ25lZCBsb25nIHBmbjsKKwlpbnQg cmV0ID0gLUVOWElPOworCisJaWYgKCFkZXZfaXNfY29oZXJlbnQoZGV2KSkKKwkJYWRkciA9IENB Q19BRERSKGFkZHIpOworCisJcGZuID0gcGFnZV90b19wZm4odmlydF90b19wYWdlKCh2b2lkICop YWRkcikpOworCisJaWYgKGF0dHJzICYgRE1BX0FUVFJfV1JJVEVfQ09NQklORSkKKwkJdm1hLT52 bV9wYWdlX3Byb3QgPSBwZ3Byb3Rfd3JpdGVjb21iaW5lKHZtYS0+dm1fcGFnZV9wcm90KTsKKwll bHNlCisJCXZtYS0+dm1fcGFnZV9wcm90ID0gcGdwcm90X25vbmNhY2hlZCh2bWEtPnZtX3BhZ2Vf cHJvdCk7CisKKwlpZiAoZG1hX21tYXBfZnJvbV9kZXZfY29oZXJlbnQoZGV2LCB2bWEsIGNwdV9h ZGRyLCBzaXplLCAmcmV0KSkKKwkJcmV0dXJuIHJldDsKKworCWlmIChvZmYgPCBjb3VudCAmJiB1 c2VyX2NvdW50IDw9IChjb3VudCAtIG9mZikpIHsKKwkJcmV0ID0gcmVtYXBfcGZuX3JhbmdlKHZt YSwgdm1hLT52bV9zdGFydCwKKwkJCQkgICAgICBwZm4gKyBvZmYsCisJCQkJICAgICAgdXNlcl9j b3VudCA8PCBQQUdFX1NISUZULAorCQkJCSAgICAgIHZtYS0+dm1fcGFnZV9wcm90KTsKKwl9CisK KwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZG1hX3N5bmNfdmlydCh2b2lk ICphZGRyLCBzaXplX3Qgc2l6ZSwKKwkJZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKQorewor CXN3aXRjaCAoZGlyKSB7CisJY2FzZSBETUFfVE9fREVWSUNFOgorCQlkbWFfY2FjaGVfd2JhY2so KHVuc2lnbmVkIGxvbmcpYWRkciwgc2l6ZSk7CisJCWJyZWFrOworCisJY2FzZSBETUFfRlJPTV9E RVZJQ0U6CisJCWRtYV9jYWNoZV9pbnYoKHVuc2lnbmVkIGxvbmcpYWRkciwgc2l6ZSk7CisJCWJy ZWFrOworCisJY2FzZSBETUFfQklESVJFQ1RJT05BTDoKKwkJZG1hX2NhY2hlX3diYWNrX2ludigo dW5zaWduZWQgbG9uZylhZGRyLCBzaXplKTsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlCVUco KTsKKwl9Cit9CisKKy8qCisgKiBBIHNpbmdsZSBzZyBlbnRyeSBtYXkgcmVmZXIgdG8gbXVsdGlw bGUgcGh5c2ljYWxseSBjb250aWd1b3VzIHBhZ2VzLiAgQnV0CisgKiB3ZSBzdGlsbCBuZWVkIHRv IHByb2Nlc3MgaGlnaG1lbSBwYWdlcyBpbmRpdmlkdWFsbHkuICBJZiBoaWdobWVtIGlzIG5vdAor ICogY29uZmlndXJlZCB0aGVuIHRoZSBidWxrIG9mIHRoaXMgbG9vcCBnZXRzIG9wdGltaXplZCBv dXQuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBkbWFfc3luY19waHlzKHBoeXNfYWRkcl90IHBh ZGRyLCBzaXplX3Qgc2l6ZSwKKwkJZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKQoreworCXN0 cnVjdCBwYWdlICpwYWdlID0gcGZuX3RvX3BhZ2UocGFkZHIgPj4gUEFHRV9TSElGVCk7CisJdW5z aWduZWQgbG9uZyBvZmZzZXQgPSBwYWRkciAmIH5QQUdFX01BU0s7CisJc2l6ZV90IGxlZnQgPSBz aXplOworCisJZG8geworCQlzaXplX3QgbGVuID0gbGVmdDsKKworCQlpZiAoUGFnZUhpZ2hNZW0o cGFnZSkpIHsKKwkJCXZvaWQgKmFkZHI7CisKKwkJCWlmIChvZmZzZXQgKyBsZW4gPiBQQUdFX1NJ WkUpIHsKKwkJCQlpZiAob2Zmc2V0ID49IFBBR0VfU0laRSkgeworCQkJCQlwYWdlICs9IG9mZnNl dCA+PiBQQUdFX1NISUZUOworCQkJCQlvZmZzZXQgJj0gflBBR0VfTUFTSzsKKwkJCQl9CisJCQkJ bGVuID0gUEFHRV9TSVpFIC0gb2Zmc2V0OworCQkJfQorCisJCQlhZGRyID0ga21hcF9hdG9taWMo cGFnZSk7CisJCQlkbWFfc3luY192aXJ0KGFkZHIgKyBvZmZzZXQsIGxlbiwgZGlyKTsKKwkJCWt1 bm1hcF9hdG9taWMoYWRkcik7CisJCX0gZWxzZQorCQkJZG1hX3N5bmNfdmlydChwYWdlX2FkZHJl c3MocGFnZSkgKyBvZmZzZXQsIHNpemUsIGRpcik7CisJCW9mZnNldCA9IDA7CisJCXBhZ2UrKzsK KwkJbGVmdCAtPSBsZW47CisJfSB3aGlsZSAobGVmdCk7Cit9CisKK3ZvaWQgYXJjaF9zeW5jX2Rt YV9mb3JfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwgcGh5c19hZGRyX3QgcGFkZHIsCisJCXNp emVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCit7CisJaWYgKCFkZXZfaXNf Y29oZXJlbnQoZGV2KSkKKwkJZG1hX3N5bmNfcGh5cyhwYWRkciwgc2l6ZSwgZGlyKTsKK30KKwor dm9pZCBhcmNoX3N5bmNfZG1hX2Zvcl9jcHUoc3RydWN0IGRldmljZSAqZGV2LCBwaHlzX2FkZHJf dCBwYWRkciwKKwkJc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikKK3sK KwlpZiAoY3B1X25lZWRzX3Bvc3RfZG1hX2ZsdXNoKGRldikpCisJCWRtYV9zeW5jX3BoeXMocGFk ZHIsIHNpemUsIGRpcik7Cit9CisKK3ZvaWQgYXJjaF9kbWFfY2FjaGVfc3luYyhzdHJ1Y3QgZGV2 aWNlICpkZXYsIHZvaWQgKnZhZGRyLCBzaXplX3Qgc2l6ZSwKKwkJZW51bSBkbWFfZGF0YV9kaXJl Y3Rpb24gZGlyZWN0aW9uKQoreworCUJVR19PTihkaXJlY3Rpb24gPT0gRE1BX05PTkUpOworCisJ aWYgKCFkZXZfaXNfY29oZXJlbnQoZGV2KSkKKwkJZG1hX3N5bmNfdmlydCh2YWRkciwgc2l6ZSwg ZGlyZWN0aW9uKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9waWMzMi9LY29uZmlnIGIvYXJj aC9taXBzL3BpYzMyL0tjb25maWcKaW5kZXggN2ZlYjczNTliMDViLi5lMjg0ZTg5MTgzY2MgMTAw NjQ0Ci0tLSBhL2FyY2gvbWlwcy9waWMzMi9LY29uZmlnCisrKyBiL2FyY2gvbWlwcy9waWMzMi9L Y29uZmlnCkBAIC0xMSw3ICsxMSw2IEBAIGNvbmZpZyBQSUMzMk1aREEKIAlzZWxlY3QgQ0VWVF9S NEsKIAlzZWxlY3QgQ1NSQ19SNEsKIAlzZWxlY3QgRE1BX05PTkNPSEVSRU5UCi0Jc2VsZWN0IE1J UFNfRE1BX0RFRkFVTFQKIAlzZWxlY3QgU1lTX0hBU19DUFVfTUlQUzMyX1IyCiAJc2VsZWN0IFNZ U19IQVNfRUFSTFlfUFJJTlRLCiAJc2VsZWN0IFNZU19TVVBQT1JUU18zMkJJVF9LRVJORUwKZGlm ZiAtLWdpdCBhL2FyY2gvbWlwcy90eHg5L0tjb25maWcgYi9hcmNoL21pcHMvdHh4OS9LY29uZmln CmluZGV4IDlkZmRhM2U5MDM0OC4uZDI1MDljOTNmMGVlIDEwMDY0NAotLS0gYS9hcmNoL21pcHMv dHh4OS9LY29uZmlnCisrKyBiL2FyY2gvbWlwcy90eHg5L0tjb25maWcKQEAgLTE2LDcgKzE2LDYg QEAgY29uZmlnIE1BQ0hfVFg0OVhYCiBjb25maWcgTUFDSF9UWFg5CiAJYm9vbAogCXNlbGVjdCBE TUFfTk9OQ09IRVJFTlQKLQlzZWxlY3QgTUlQU19ETUFfREVGQVVMVAogCXNlbGVjdCBTV0FQX0lP X1NQQUNFCiAJc2VsZWN0IFNZU19IQVNfRUFSTFlfUFJJTlRLCiAJc2VsZWN0IFNZU19TVVBQT1JU U18zMkJJVF9LRVJORUwKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy92cjQxeHgvS2NvbmZpZyBiL2Fy Y2gvbWlwcy92cjQxeHgvS2NvbmZpZwppbmRleCBjYzY5YjJmNjYzZmEuLjk5MmM5ODhiODNiMCAx MDA2NDQKLS0tIGEvYXJjaC9taXBzL3ZyNDF4eC9LY29uZmlnCisrKyBiL2FyY2gvbWlwcy92cjQx eHgvS2NvbmZpZwpAQCAtOSw3ICs5LDYgQEAgY29uZmlnIENBU0lPX0U1NQogCXNlbGVjdCBDRVZU X1I0SwogCXNlbGVjdCBDU1JDX1I0SwogCXNlbGVjdCBETUFfTk9OQ09IRVJFTlQKLQlzZWxlY3Qg TUlQU19ETUFfREVGQVVMVAogCXNlbGVjdCBJUlFfTUlQU19DUFUKIAlzZWxlY3QgSVNBCiAJc2Vs ZWN0IFNZU19TVVBQT1JUU18zMkJJVF9LRVJORUwKQEAgLTIwLDcgKzE5LDYgQEAgY29uZmlnIElC TV9XT1JLUEFECiAJc2VsZWN0IENFVlRfUjRLCiAJc2VsZWN0IENTUkNfUjRLCiAJc2VsZWN0IERN QV9OT05DT0hFUkVOVAotCXNlbGVjdCBNSVBTX0RNQV9ERUZBVUxUCiAJc2VsZWN0IElSUV9NSVBT X0NQVQogCXNlbGVjdCBJU0EKIAlzZWxlY3QgU1lTX1NVUFBPUlRTXzMyQklUX0tFUk5FTApAQCAt MzEsNyArMjksNiBAQCBjb25maWcgVEFOQkFDX1RCMDIyWAogCXNlbGVjdCBDRVZUX1I0SwogCXNl bGVjdCBDU1JDX1I0SwogCXNlbGVjdCBETUFfTk9OQ09IRVJFTlQKLQlzZWxlY3QgTUlQU19ETUFf REVGQVVMVAogCXNlbGVjdCBJUlFfTUlQU19DUFUKIAlzZWxlY3QgSFdfSEFTX1BDSQogCXNlbGVj dCBTWVNfU1VQUE9SVFNfMzJCSVRfS0VSTkVMCkBAIC00OCw3ICs0NSw2IEBAIGNvbmZpZyBWSUNU T1JfTVBDMzBYCiAJc2VsZWN0IENFVlRfUjRLCiAJc2VsZWN0IENTUkNfUjRLCiAJc2VsZWN0IERN QV9OT05DT0hFUkVOVAotCXNlbGVjdCBNSVBTX0RNQV9ERUZBVUxUCiAJc2VsZWN0IElSUV9NSVBT X0NQVQogCXNlbGVjdCBIV19IQVNfUENJCiAJc2VsZWN0IFBDSV9WUjQxWFgKQEAgLTYwLDcgKzU2 LDYgQEAgY29uZmlnIFpBT19DQVBDRUxMQQogCXNlbGVjdCBDRVZUX1I0SwogCXNlbGVjdCBDU1JD X1I0SwogCXNlbGVjdCBETUFfTk9OQ09IRVJFTlQKLQlzZWxlY3QgTUlQU19ETUFfREVGQVVMVAog CXNlbGVjdCBJUlFfTUlQU19DUFUKIAlzZWxlY3QgSFdfSEFTX1BDSQogCXNlbGVjdCBQQ0lfVlI0 MVhYCi0tIAoyLjE3LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmlvbW11IG1haWxpbmcgbGlzdAppb21tdUBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9y ZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby9pb21t dQ==