From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludovic.desroches Subject: Re: [PATCH 237/493] mmc: remove use of __devinit Date: Tue, 20 Nov 2012 10:55:52 +0100 Message-ID: <50AB53A8.9070405@atmel.com> References: <1353349642-3677-1-git-send-email-wfp5p@virginia.edu> <1353349642-3677-237-git-send-email-wfp5p@virginia.edu> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1353349642-3677-237-git-send-email-wfp5p@virginia.edu> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Bill Pemberton Cc: Bruce Chang , linux-omap@vger.kernel.org, gregkh@linuxfoundation.org, spear-devel@list.st.com, linux-mmc@vger.kernel.org, Harald Welte , =?UTF-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= , Ian Molton , Ludovic Desroches , Viresh Kumar , uclinux-dist-devel@blackfin.uclinux.org, Manuel Lauss , Pierre Ossman , Chris Ball , Jarkko Lavinen , Guennadi Liakhovetski , linux-arm-kernel@lists.infradead.org List-Id: linux-mmc@vger.kernel.org TGUgMTEvMTkvMjAxMiAwNzoyMyBQTSwgQmlsbCBQZW1iZXJ0b24gYSDDqWNyaXQgOgo+IENPTkZJ R19IT1RQTFVHIGlzIGdvaW5nIGF3YXkgYXMgYW4gb3B0aW9uIHNvIF9fZGV2aW5pdCBpcyBubyBs b25nZXIKPiBuZWVkZWQuCj4KPiBTaWduZWQtb2ZmLWJ5OiBCaWxsIFBlbWJlcnRvbiA8d2ZwNXBA dmlyZ2luaWEuZWR1Pgo+IENjOiBMdWRvdmljIERlc3JvY2hlcyA8bHVkb3ZpYy5kZXNyb2NoZXNA YXRtZWwuY29tPgo+IENjOiBDaHJpcyBCYWxsIDxjamJAbGFwdG9wLm9yZz4KPiBDYzogTWFudWVs IExhdXNzIDxtYW51ZWwubGF1c3NAZ21haWwuY29tPgo+IENjOiAiTWljaGHFgiBNaXJvc8WCYXci IDxtaXJxLWxpbnV4QHJlcmUucW1xbS5wbD4KPiBDYzogSmFya2tvIExhdmluZW4gPGphcmtrby5s YXZpbmVuQG5va2lhLmNvbT4KPiBDYzogVmVua2F0cmFtYW4gUyA8c3ZlbmthdHJAdGkuY29tPgo+ IENjOiBWaXJlc2ggS3VtYXIgPHZpcmVzaC5saW51eEBnbWFpbC5jb20+Cj4gQ2M6IEd1ZW5uYWRp IExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgo+IENjOiBJYW4gTW9sdG9uIDxp YW5AbW5lbWVudGguY28udWs+Cj4gQ2M6IEJydWNlIENoYW5nIDxicnVjZWNoYW5nQHZpYS5jb20u dHc+Cj4gQ2M6IEhhcmFsZCBXZWx0ZSA8SGFyYWxkV2VsdGVAdmlhdGVjaC5jb20+Cj4gQ2M6IFBp ZXJyZSBPc3NtYW4gPHBpZXJyZUBvc3NtYW4uZXU+Cj4gQ2M6IGxpbnV4LW1tY0B2Z2VyLmtlcm5l bC5vcmcKPiBDYzogdWNsaW51eC1kaXN0LWRldmVsQGJsYWNrZmluLnVjbGludXgub3JnCj4gQ2M6 IGxpbnV4LW9tYXBAdmdlci5rZXJuZWwub3JnCj4gQ2M6IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMu aW5mcmFkZWFkLm9yZwo+IENjOiBzcGVhci1kZXZlbEBsaXN0LnN0LmNvbQo+IC0tLQo+ICAgZHJp dmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYyAgICAgICB8ICAyICstCgpBY2tlZC1ieTogTHVkb3Zp YyBEZXNyb2NoZXMgPGx1ZG92aWMuZGVzcm9jaGVzQGF0bWVsLmNvbT4KCj4gICBkcml2ZXJzL21t Yy9ob3N0L2F1MXhtbWMuYyAgICAgICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvbW1jL2hvc3QvYmZp bl9zZGguYyAgICAgICAgfCAgMiArLQo+ICAgZHJpdmVycy9tbWMvaG9zdC9jYjcxMC1tbWMuYyAg ICAgICB8ICAyICstCj4gICBkcml2ZXJzL21tYy9ob3N0L2R3X21tYy1wY2kuYyAgICAgIHwgIDIg Ky0KPiAgIGRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLXBsdGZtLmMgICAgfCAgMiArLQo+ICAgZHJp dmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmMgICAgICB8ICA4ICsrKystLS0tCj4gICBkcml2ZXJz L21tYy9ob3N0L21tY2kuYyAgICAgICAgICAgIHwgIDYgKysrLS0tCj4gICBkcml2ZXJzL21tYy9o b3N0L29tYXAuYyAgICAgICAgICAgIHwgIDQgKystLQo+ICAgZHJpdmVycy9tbWMvaG9zdC9vbWFw X2hzbW1jLmMgICAgICB8ICAyICstCj4gICBkcml2ZXJzL21tYy9ob3N0L3B4YW1jaS5jICAgICAg ICAgIHwgIDQgKystLQo+ICAgZHJpdmVycy9tbWMvaG9zdC9zM2NtY2kuYyAgICAgICAgICB8ICAy ICstCj4gICBkcml2ZXJzL21tYy9ob3N0L3NkaGNpLWNuczN4eHguYyAgIHwgIDIgKy0KPiAgIGRy aXZlcnMvbW1jL2hvc3Qvc2RoY2ktZG92ZS5jICAgICAgfCAgMiArLQo+ICAgZHJpdmVycy9tbWMv aG9zdC9zZGhjaS1lc2RoYy1pbXguYyB8ICA0ICsrLS0KPiAgIGRyaXZlcnMvbW1jL2hvc3Qvc2Ro Y2ktb2YtZXNkaGMuYyAgfCAgMiArLQo+ICAgZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1vZi1obHdk LmMgICB8ICAyICstCj4gICBkcml2ZXJzL21tYy9ob3N0L3NkaGNpLXBjaS5jICAgICAgIHwgIDYg KysrLS0tCj4gICBkcml2ZXJzL21tYy9ob3N0L3NkaGNpLXB4YXYyLmMgICAgIHwgIDIgKy0KPiAg IGRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjMuYyAgICAgfCAgMiArLQo+ICAgZHJpdmVycy9t bWMvaG9zdC9zZGhjaS1zM2MuYyAgICAgICB8ICA2ICsrKy0tLQo+ICAgZHJpdmVycy9tbWMvaG9z dC9zZGhjaS1zcGVhci5jICAgICB8ICA4ICsrKy0tLS0tCj4gICBkcml2ZXJzL21tYy9ob3N0L3Nk aGNpLXRlZ3JhLmMgICAgIHwgIDQgKystLQo+ICAgZHJpdmVycy9tbWMvaG9zdC9zaF9tbWNpZi5j ICAgICAgICB8ICAyICstCj4gICBkcml2ZXJzL21tYy9ob3N0L3NoX21vYmlsZV9zZGhpLmMgIHwg IDIgKy0KPiAgIGRyaXZlcnMvbW1jL2hvc3QvdG1pb19tbWMuYyAgICAgICAgfCAgMiArLQo+ICAg ZHJpdmVycy9tbWMvaG9zdC90bWlvX21tY19waW8uYyAgICB8ICAyICstCj4gICBkcml2ZXJzL21t Yy9ob3N0L3ZpYS1zZG1tYy5jICAgICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvbW1jL2hvc3Qvd2Jz ZC5jICAgICAgICAgICAgfCAxOCArKysrKysrKystLS0tLS0tLS0KPiAgIDI5IGZpbGVzIGNoYW5n ZWQsIDUyIGluc2VydGlvbnMoKyksIDU0IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMgYi9kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5j Cj4gaW5kZXggODY4OTk4OS4uNzIyYWYxZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21tYy9ob3N0 L2F0bWVsLW1jaS5jCj4gKysrIGIvZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYwo+IEBAIC01 MTEsNyArNTExLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXRtY2lfZHRf aWRzW10gPSB7Cj4KPiAgIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGF0bWNpX2R0X2lkcyk7Cj4K PiAtc3RhdGljIHN0cnVjdCBtY2lfcGxhdGZvcm1fZGF0YSBfX2RldmluaXQqCj4gK3N0YXRpYyBz dHJ1Y3QgbWNpX3BsYXRmb3JtX2RhdGEqCj4gICBhdG1jaV9vZl9pbml0KHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCj4gICB7Cj4gICAJc3RydWN0IGRldmljZV9ub2RlICpucCA9IHBkZXYt PmRldi5vZl9ub2RlOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYyBi L2RyaXZlcnMvbW1jL2hvc3QvYXUxeG1tYy5jCj4gaW5kZXggZGJkMGM4YS4uNjA2YzE2YSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYwo+ICsrKyBiL2RyaXZlcnMvbW1j L2hvc3QvYXUxeG1tYy5jCj4gQEAgLTk0Myw3ICs5NDMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IG1tY19ob3N0X29wcyBhdTF4bW1jX29wcyA9IHsKPiAgIAkuZW5hYmxlX3NkaW9faXJxID0gYXUx eG1tY19lbmFibGVfc2Rpb19pcnEsCj4gICB9Owo+Cj4gLXN0YXRpYyBpbnQgX19kZXZpbml0IGF1 MXhtbWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiArc3RhdGljIGludCBh dTF4bW1jX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICB7Cj4gICAJc3Ry dWN0IG1tY19ob3N0ICptbWM7Cj4gICAJc3RydWN0IGF1MXhtbWNfaG9zdCAqaG9zdDsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC9iZmluX3NkaC5jIGIvZHJpdmVycy9tbWMvaG9zdC9i ZmluX3NkaC5jCj4gaW5kZXggMTU2ZWJlNy4uNGVmMzkwMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L21tYy9ob3N0L2JmaW5fc2RoLmMKPiArKysgYi9kcml2ZXJzL21tYy9ob3N0L2JmaW5fc2RoLmMK PiBAQCAtNTIyLDcgKzUyMiw3IEBAIHN0YXRpYyB2b2lkIHNkaF9yZXNldCh2b2lkKQo+ICAgCVNT WU5DKCk7Cj4gICB9Cj4KPiAtc3RhdGljIGludCBfX2RldmluaXQgc2RoX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3N0YXRpYyBpbnQgc2RoX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICB7Cj4gICAJc3RydWN0IG1tY19ob3N0ICptbWM7Cj4gICAJ c3RydWN0IHNkaF9ob3N0ICpob3N0Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L2Ni NzEwLW1tYy5jIGIvZHJpdmVycy9tbWMvaG9zdC9jYjcxMC1tbWMuYwo+IGluZGV4IDM5MjgwYjUu LmMxMmE1NjEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tbWMvaG9zdC9jYjcxMC1tbWMuYwo+ICsr KyBiL2RyaXZlcnMvbW1jL2hvc3QvY2I3MTAtbW1jLmMKPiBAQCAtNjkwLDcgKzY5MCw3IEBAIHN0 YXRpYyBpbnQgY2I3MTBfbW1jX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ Cj4gICAjZW5kaWYgLyogQ09ORklHX1BNICovCj4KPiAtc3RhdGljIGludCBfX2RldmluaXQgY2I3 MTBfbW1jX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiArc3RhdGljIGludCBj YjcxMF9tbWNfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgewo+ICAgCXN0 cnVjdCBjYjcxMF9zbG90ICpzbG90ID0gY2I3MTBfcGRldl90b19zbG90KHBkZXYpOwo+ICAgCXN0 cnVjdCBjYjcxMF9jaGlwICpjaGlwID0gY2I3MTBfc2xvdF90b19jaGlwKHNsb3QpOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L2R3X21tYy1wY2kuYyBiL2RyaXZlcnMvbW1jL2hvc3Qv ZHdfbW1jLXBjaS5jCj4gaW5kZXggZWRiMzdlOS4uMzI0YzhiZiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL21tYy9ob3N0L2R3X21tYy1wY2kuYwo+ICsrKyBiL2RyaXZlcnMvbW1jL2hvc3QvZHdfbW1j LXBjaS5jCj4gQEAgLTM3LDcgKzM3LDcgQEAgc3RhdGljIHN0cnVjdCBkd19tY2lfYm9hcmQgcGNp X2JvYXJkX2RhdGEgPSB7Cj4gICAJLmZpZm9fZGVwdGgJCQk9IDMyLAo+ICAgfTsKPgo+IC1zdGF0 aWMgaW50IF9fZGV2aW5pdCBkd19tY2lfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAo+ ICtzdGF0aWMgaW50IGR3X21jaV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsCj4gICAJ CQkJICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50cmllcykKPiAgIHsKPiAgIAlzdHJ1 Y3QgZHdfbWNpICpob3N0Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L2R3X21tYy1w bHRmbS5jIGIvZHJpdmVycy9tbWMvaG9zdC9kd19tbWMtcGx0Zm0uYwo+IGluZGV4IDRjMWIxZGYu LmZmNzNhODcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tbWMvaG9zdC9kd19tbWMtcGx0Zm0uYwo+ ICsrKyBiL2RyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLXBsdGZtLmMKPiBAQCAtNjIsNyArNjIsNyBA QCBpbnQgZHdfbWNpX3BsdGZtX3JlZ2lzdGVyKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYs Cj4gICB9Cj4gICBFWFBPUlRfU1lNQk9MX0dQTChkd19tY2lfcGx0Zm1fcmVnaXN0ZXIpOwo+Cj4g LXN0YXRpYyBpbnQgX19kZXZpbml0IGR3X21jaV9wbHRmbV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQo+ICtzdGF0aWMgaW50IGR3X21jaV9wbHRmbV9wcm9iZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgewo+ICAgCXJldHVybiBkd19tY2lfcGx0Zm1fcmVnaXN0 ZXIocGRldiwgTlVMTCk7Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3Qvano0 NzQwX21tYy5jIGIvZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmMKPiBpbmRleCAzMWNmMjBm Li44MTgyNmJlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbW1jL2hvc3Qvano0NzQwX21tYy5jCj4g KysrIGIvZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmMKPiBAQCAtNzAyLDcgKzcwMiw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QganpfZ3Bpb19idWxrX3JlcXVlc3Qgano0NzQwX21tY19waW5z W10gPSB7Cj4gICAJSlpfR1BJT19CVUxLX1BJTihNU0NfREFUQTMpLAo+ICAgfTsKPgo+IC1zdGF0 aWMgaW50IF9fZGV2aW5pdCBqejQ3NDBfbW1jX3JlcXVlc3RfZ3BpbyhzdHJ1Y3QgZGV2aWNlICpk ZXYsIGludCBncGlvLAo+ICtzdGF0aWMgaW50IGp6NDc0MF9tbWNfcmVxdWVzdF9ncGlvKHN0cnVj dCBkZXZpY2UgKmRldiwgaW50IGdwaW8sCj4gICAJY29uc3QgY2hhciAqbmFtZSwgYm9vbCBvdXRw dXQsIGludCB2YWx1ZSkKPiAgIHsKPiAgIAlpbnQgcmV0Owo+IEBAIC03MjQsNyArNzI0LDcgQEAg c3RhdGljIGludCBfX2RldmluaXQgano0NzQwX21tY19yZXF1ZXN0X2dwaW8oc3RydWN0IGRldmlj ZSAqZGV2LCBpbnQgZ3BpbywKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPgo+IC1zdGF0aWMgaW50IF9f ZGV2aW5pdCBqejQ3NDBfbW1jX3JlcXVlc3RfZ3Bpb3Moc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKPiArc3RhdGljIGludCBqejQ3NDBfbW1jX3JlcXVlc3RfZ3Bpb3Moc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiAgIHsKPiAgIAlpbnQgcmV0Owo+ICAgCXN0cnVjdCBqejQ3NDBf bW1jX3BsYXRmb3JtX2RhdGEgKnBkYXRhID0gcGRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7Cj4gQEAg LTc1OSw3ICs3NTksNyBAQCBlcnI6Cj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPgo+IC1zdGF0aWMg aW50IF9fZGV2aW5pdCBqejQ3NDBfbW1jX3JlcXVlc3RfY2RfaXJxKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYsCj4gK3N0YXRpYyBpbnQgano0NzQwX21tY19yZXF1ZXN0X2NkX2lycShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ICAgCXN0cnVjdCBqejQ3NDBfbW1jX2hvc3QgKmhv c3QpCj4gICB7Cj4gICAJc3RydWN0IGp6NDc0MF9tbWNfcGxhdGZvcm1fZGF0YSAqcGRhdGEgPSBw ZGV2LT5kZXYucGxhdGZvcm1fZGF0YTsKPiBAQCAtODAyLDcgKzgwMiw3IEBAIHN0YXRpYyBpbmxp bmUgc2l6ZV90IGp6NDc0MF9tbWNfbnVtX3BpbnMoc3RydWN0IGp6NDc0MF9tbWNfaG9zdCAqaG9z dCkKPiAgIAlyZXR1cm4gbnVtX3BpbnM7Cj4gICB9Cj4KPiAtc3RhdGljIGludCBfX2RldmluaXQg ano0NzQwX21tY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlKiBwZGV2KQo+ICtzdGF0aWMg aW50IGp6NDc0MF9tbWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSogcGRldikKPiAgIHsK PiAgIAlpbnQgcmV0Owo+ICAgCXN0cnVjdCBtbWNfaG9zdCAqbW1jOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL21tYy9ob3N0L21tY2kuYyBiL2RyaXZlcnMvbW1jL2hvc3QvbW1jaS5jCj4gaW5kZXgg NzA1YzNiZS4uYmY1ZjdhNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21tYy9ob3N0L21tY2kuYwo+ ICsrKyBiL2RyaXZlcnMvbW1jL2hvc3QvbW1jaS5jCj4gQEAgLTI2Miw3ICsyNjIsNyBAQCBzdGF0 aWMgdm9pZCBtbWNpX2luaXRfc2coc3RydWN0IG1tY2lfaG9zdCAqaG9zdCwgc3RydWN0IG1tY19k YXRhICpkYXRhKQo+ICAgICogbm8gY3VzdG9tIERNQSBpbnRlcmZhY2VzIGFyZSBzdXBwb3J0ZWQu Cj4gICAgKi8KPiAgICNpZmRlZiBDT05GSUdfRE1BX0VOR0lORQo+IC1zdGF0aWMgdm9pZCBfX2Rl dmluaXQgbW1jaV9kbWFfc2V0dXAoc3RydWN0IG1tY2lfaG9zdCAqaG9zdCkKPiArc3RhdGljIHZv aWQgbW1jaV9kbWFfc2V0dXAoc3RydWN0IG1tY2lfaG9zdCAqaG9zdCkKPiAgIHsKPiAgIAlzdHJ1 Y3QgbW1jaV9wbGF0Zm9ybV9kYXRhICpwbGF0ID0gaG9zdC0+cGxhdDsKPiAgIAljb25zdCBjaGFy ICpyeG5hbWUsICp0eG5hbWU7Cj4gQEAgLTMzOCw3ICszMzgsNyBAQCBzdGF0aWMgdm9pZCBfX2Rl dmluaXQgbW1jaV9kbWFfc2V0dXAoc3RydWN0IG1tY2lfaG9zdCAqaG9zdCkKPiAgIH0KPgo+ICAg LyoKPiAtICogVGhpcyBpcyB1c2VkIGluIF9fZGV2aW5pdCBvciBfX2RldmV4aXQgc28gaW5saW5l IGl0Cj4gKyAqIFRoaXMgaXMgdXNlZCBpbiBvciBfX2RldmV4aXQgc28gaW5saW5lIGl0Cj4gICAg KiBzbyBpdCBjYW4gYmUgZGlzY2FyZGVkLgo+ICAgICovCj4gICBzdGF0aWMgaW5saW5lIHZvaWQg bW1jaV9kbWFfcmVsZWFzZShzdHJ1Y3QgbW1jaV9ob3N0ICpob3N0KQo+IEBAIC0xMjYyLDcgKzEy NjIsNyBAQCBzdGF0aWMgdm9pZCBtbWNpX2R0X3BvcHVsYXRlX2dlbmVyaWNfcGRhdGEoc3RydWN0 IGRldmljZV9ub2RlICpucCwKPiAgIH0KPiAgICNlbmRpZgo+Cj4gLXN0YXRpYyBpbnQgX19kZXZp bml0IG1tY2lfcHJvYmUoc3RydWN0IGFtYmFfZGV2aWNlICpkZXYsCj4gK3N0YXRpYyBpbnQgbW1j aV9wcm9iZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmRldiwKPiAgIAljb25zdCBzdHJ1Y3QgYW1iYV9p ZCAqaWQpCj4gICB7Cj4gICAJc3RydWN0IG1tY2lfcGxhdGZvcm1fZGF0YSAqcGxhdCA9IGRldi0+ ZGV2LnBsYXRmb3JtX2RhdGE7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3Qvb21hcC5j IGIvZHJpdmVycy9tbWMvaG9zdC9vbWFwLmMKPiBpbmRleCBmNjVlYzI2Li41Y2Q5NzZhIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvbW1jL2hvc3Qvb21hcC5jCj4gKysrIGIvZHJpdmVycy9tbWMvaG9z dC9vbWFwLmMKPiBAQCAtMTIzMCw3ICsxMjMwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtbWNf aG9zdF9vcHMgbW1jX29tYXBfb3BzID0gewo+ICAgCS5zZXRfaW9zCT0gbW1jX29tYXBfc2V0X2lv cywKPiAgIH07Cj4KPiAtc3RhdGljIGludCBfX2RldmluaXQgbW1jX29tYXBfbmV3X3Nsb3Qoc3Ry dWN0IG1tY19vbWFwX2hvc3QgKmhvc3QsIGludCBpZCkKPiArc3RhdGljIGludCBtbWNfb21hcF9u ZXdfc2xvdChzdHJ1Y3QgbW1jX29tYXBfaG9zdCAqaG9zdCwgaW50IGlkKQo+ICAgewo+ICAgCXN0 cnVjdCBtbWNfb21hcF9zbG90ICpzbG90ID0gTlVMTDsKPiAgIAlzdHJ1Y3QgbW1jX2hvc3QgKm1t YzsKPiBAQCAtMTMyNSw3ICsxMzI1LDcgQEAgc3RhdGljIHZvaWQgbW1jX29tYXBfcmVtb3ZlX3Ns b3Qoc3RydWN0IG1tY19vbWFwX3Nsb3QgKnNsb3QpCj4gICAJbW1jX2ZyZWVfaG9zdChtbWMpOwo+ ICAgfQo+Cj4gLXN0YXRpYyBpbnQgX19kZXZpbml0IG1tY19vbWFwX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3N0YXRpYyBpbnQgbW1jX29tYXBfcHJvYmUoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikKPiAgIHsKPiAgIAlzdHJ1Y3Qgb21hcF9tbWNfcGxhdGZvcm1f ZGF0YSAqcGRhdGEgPSBwZGV2LT5kZXYucGxhdGZvcm1fZGF0YTsKPiAgIAlzdHJ1Y3QgbW1jX29t YXBfaG9zdCAqaG9zdCA9IE5VTEw7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3Qvb21h cF9oc21tYy5jIGIvZHJpdmVycy9tbWMvaG9zdC9vbWFwX2hzbW1jLmMKPiBpbmRleCA4ZjVjN2Uy Li40OTJkOGNmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbW1jL2hvc3Qvb21hcF9oc21tYy5jCj4g KysrIGIvZHJpdmVycy9tbWMvaG9zdC9vbWFwX2hzbW1jLmMKPiBAQCAtMTcxNyw3ICsxNzE3LDcg QEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qgb21hcF9tbWNfcGxhdGZvcm1fZGF0YQo+ICAgfQo+ICAg I2VuZGlmCj4KPiAtc3RhdGljIGludCBfX2RldmluaXQgb21hcF9oc21tY19wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICtzdGF0aWMgaW50IG9tYXBfaHNtbWNfcHJvYmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgIHsKPiAgIAlzdHJ1Y3Qgb21hcF9tbWNfcGxh dGZvcm1fZGF0YSAqcGRhdGEgPSBwZGV2LT5kZXYucGxhdGZvcm1fZGF0YTsKPiAgIAlzdHJ1Y3Qg bW1jX2hvc3QgKm1tYzsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC9weGFtY2kuYyBi L2RyaXZlcnMvbW1jL2hvc3QvcHhhbWNpLmMKPiBpbmRleCAzZjlkNmQ1Li4yYjJmNjVhIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvbW1jL2hvc3QvcHhhbWNpLmMKPiArKysgYi9kcml2ZXJzL21tYy9o b3N0L3B4YW1jaS5jCj4gQEAgLTU4NCw3ICs1ODQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9m X2RldmljZV9pZCBweGFfbW1jX2R0X2lkc1tdID0gewo+Cj4gICBNT0RVTEVfREVWSUNFX1RBQkxF KG9mLCBweGFfbW1jX2R0X2lkcyk7Cj4KPiAtc3RhdGljIGludCBfX2RldmluaXQgcHhhbWNpX29m X2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiArc3RhdGljIGludCBweGFtY2lf b2ZfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgewo+ICAgICAgICAgICBz dHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gcGRldi0+ZGV2Lm9mX25vZGU7Cj4gICAgICAgICAgIHN0 cnVjdCBweGFtY2lfcGxhdGZvcm1fZGF0YSAqcGRhdGE7Cj4gQEAgLTYxNCw3ICs2MTQsNyBAQCBz dGF0aWMgaW50IF9fZGV2aW5pdCBweGFtY2lfb2ZfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQo+ICAgICAgICAgICByZXR1cm4gMDsKPiAgIH0KPiAgICNlbHNlCj4gLXN0YXRpYyBp bnQgX19kZXZpbml0IHB4YW1jaV9vZl9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp Cj4gK3N0YXRpYyBpbnQgcHhhbWNpX29mX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKPiAgIHsKPiAgICAgICAgICAgcmV0dXJuIDA7Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvbW1jL2hvc3QvczNjbWNpLmMgYi9kcml2ZXJzL21tYy9ob3N0L3MzY21jaS5jCj4gaW5kZXgg YTVmZTViMi4uYjg0NmE5NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21tYy9ob3N0L3MzY21jaS5j Cj4gKysrIGIvZHJpdmVycy9tbWMvaG9zdC9zM2NtY2kuYwo+IEBAIC0xNTQwLDcgKzE1NDAsNyBA QCBzdGF0aWMgaW5saW5lIHZvaWQgczNjbWNpX2RlYnVnZnNfcmVtb3ZlKHN0cnVjdCBzM2NtY2lf aG9zdCAqaG9zdCkgeyB9Cj4KPiAgICNlbmRpZiAvKiBDT05GSUdfREVCVUdfRlMgKi8KPgo+IC1z dGF0aWMgaW50IF9fZGV2aW5pdCBzM2NtY2lfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKPiArc3RhdGljIGludCBzM2NtY2lfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKPiAgIHsKPiAgIAlzdHJ1Y3QgczNjbWNpX2hvc3QgKmhvc3Q7Cj4gICAJc3RydWN0IG1t Y19ob3N0CSptbWM7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktY25zM3h4 eC5jIGIvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1jbnMzeHh4LmMKPiBpbmRleCA5MjM2ZmE5Li5j ZTk1OWRjZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLWNuczN4eHguYwo+ ICsrKyBiL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktY25zM3h4eC5jCj4gQEAgLTk1LDcgKzk1LDcg QEAgc3RhdGljIHN0cnVjdCBzZGhjaV9wbHRmbV9kYXRhIHNkaGNpX2NuczN4eHhfcGRhdGEgPSB7 Cj4gICAJCSAgU0RIQ0lfUVVJUktfTk9OU1RBTkRBUkRfQ0xPQ0ssCj4gICB9Owo+Cj4gLXN0YXRp YyBpbnQgX19kZXZpbml0IHNkaGNpX2NuczN4eHhfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKPiArc3RhdGljIGludCBzZGhjaV9jbnMzeHh4X3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCj4gICB7Cj4gICAJcmV0dXJuIHNkaGNpX3BsdGZtX3JlZ2lzdGVyKHBk ZXYsICZzZGhjaV9jbnMzeHh4X3BkYXRhKTsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9t bWMvaG9zdC9zZGhjaS1kb3ZlLmMgYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLWRvdmUuYwo+IGlu ZGV4IDdhZDFiYjYuLjMzNGVjNWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tbWMvaG9zdC9zZGhj aS1kb3ZlLmMKPiArKysgYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLWRvdmUuYwo+IEBAIC03OCw3 ICs3OCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2RoY2lfcGx0Zm1fZGF0YSBzZGhjaV9kb3ZlX3BkYXRh ID0gewo+ICAgCQkgIFNESENJX1FVSVJLX05PX0hJU1BEX0JJVCwKPiAgIH07Cj4KPiAtc3RhdGlj IGludCBfX2RldmluaXQgc2RoY2lfZG92ZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQo+ICtzdGF0aWMgaW50IHNkaGNpX2RvdmVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKPiAgIHsKPiAgIAlzdHJ1Y3Qgc2RoY2lfaG9zdCAqaG9zdDsKPiAgIAlzdHJ1Y3Qg c2RoY2lfcGx0Zm1faG9zdCAqcGx0Zm1faG9zdDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMv aG9zdC9zZGhjaS1lc2RoYy1pbXguYyBiL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktZXNkaGMtaW14 LmMKPiBpbmRleCA2YTRlOThlLi5jZDc0MWJiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbW1jL2hv c3Qvc2RoY2ktZXNkaGMtaW14LmMKPiArKysgYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLWVzZGhj LWlteC5jCj4gQEAgLTQwMyw3ICs0MDMsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgY2RfaXJxKGlu dCBpcnEsIHZvaWQgKmRhdGEpCj4gICB9Owo+Cj4gICAjaWZkZWYgQ09ORklHX09GCj4gLXN0YXRp YyBpbnQgX19kZXZpbml0Cj4gK3N0YXRpYyBpbnQKPiAgIHNkaGNpX2VzZGhjX2lteF9wcm9iZV9k dChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ICAgCQkJIHN0cnVjdCBlc2RoY19wbGF0 Zm9ybV9kYXRhICpib2FyZGRhdGEpCj4gICB7Cj4gQEAgLTQ0MCw3ICs0NDAsNyBAQCBzZGhjaV9l c2RoY19pbXhfcHJvYmVfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPiAgIH0KPiAg ICNlbmRpZgo+Cj4gLXN0YXRpYyBpbnQgX19kZXZpbml0IHNkaGNpX2VzZGhjX2lteF9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICtzdGF0aWMgaW50IHNkaGNpX2VzZGhjX2lt eF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgewo+ICAgCWNvbnN0IHN0 cnVjdCBvZl9kZXZpY2VfaWQgKm9mX2lkID0KPiAgIAkJCW9mX21hdGNoX2RldmljZShpbXhfZXNk aGNfZHRfaWRzLCAmcGRldi0+ZGV2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC9z ZGhjaS1vZi1lc2RoYy5jIGIvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1vZi1lc2RoYy5jCj4gaW5k ZXggZDdlYjRlZC4uMWFjZWVkNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21tYy9ob3N0L3NkaGNp LW9mLWVzZGhjLmMKPiArKysgYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLW9mLWVzZGhjLmMKPiBA QCAtMjA4LDcgKzIwOCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2RoY2lfcGx0Zm1fZGF0YSBzZGhjaV9l c2RoY19wZGF0YSA9IHsKPiAgIAkub3BzID0gJnNkaGNpX2VzZGhjX29wcywKPiAgIH07Cj4KPiAt c3RhdGljIGludCBfX2RldmluaXQgc2RoY2lfZXNkaGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKPiArc3RhdGljIGludCBzZGhjaV9lc2RoY19wcm9iZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQo+ICAgewo+ICAgCXJldHVybiBzZGhjaV9wbHRmbV9yZWdpc3Rlcihw ZGV2LCAmc2RoY2lfZXNkaGNfcGRhdGEpOwo+ICAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21t Yy9ob3N0L3NkaGNpLW9mLWhsd2QuYyBiL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktb2YtaGx3ZC5j Cj4gaW5kZXggM2I2ODA2OS4uYWE3OGYzYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21tYy9ob3N0 L3NkaGNpLW9mLWhsd2QuYwo+ICsrKyBiL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktb2YtaGx3ZC5j Cj4gQEAgLTY2LDcgKzY2LDcgQEAgc3RhdGljIHN0cnVjdCBzZGhjaV9wbHRmbV9kYXRhIHNkaGNp X2hsd2RfcGRhdGEgPSB7Cj4gICAJLm9wcyA9ICZzZGhjaV9obHdkX29wcywKPiAgIH07Cj4KPiAt c3RhdGljIGludCBfX2RldmluaXQgc2RoY2lfaGx3ZF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQo+ICtzdGF0aWMgaW50IHNkaGNpX2hsd2RfcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKPiAgIHsKPiAgIAlyZXR1cm4gc2RoY2lfcGx0Zm1fcmVnaXN0ZXIocGRl diwgJnNkaGNpX2hsd2RfcGRhdGEpOwo+ICAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9o b3N0L3NkaGNpLXBjaS5jIGIvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1wY2kuYwo+IGluZGV4IDdi YzIyNzAuLmZmOTE2NTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1wY2ku Ywo+ICsrKyBiL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcGNpLmMKPiBAQCAtMTE4Myw3ICsxMTgz LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIHNkaGNpX3BjaV9wbV9vcHMgPSB7 Cj4gICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICoKPiAgIFwqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KPgo+ IC1zdGF0aWMgc3RydWN0IHNkaGNpX3BjaV9zbG90ICogX19kZXZpbml0IHNkaGNpX3BjaV9wcm9i ZV9zbG90KAo+ICtzdGF0aWMgc3RydWN0IHNkaGNpX3BjaV9zbG90ICpzZGhjaV9wY2lfcHJvYmVf c2xvdCgKPiAgIAlzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IHNkaGNpX3BjaV9jaGlwICpj aGlwLCBpbnQgZmlyc3RfYmFyLAo+ICAgCWludCBzbG90bm8pCj4gICB7Cj4gQEAgLTEzMzgsNyAr MTMzOCw3IEBAIHN0YXRpYyB2b2lkIHNkaGNpX3BjaV9yZW1vdmVfc2xvdChzdHJ1Y3Qgc2RoY2lf cGNpX3Nsb3QgKnNsb3QpCj4gICAJc2RoY2lfZnJlZV9ob3N0KHNsb3QtPmhvc3QpOwo+ICAgfQo+ Cj4gLXN0YXRpYyB2b2lkIF9fZGV2aW5pdCBzZGhjaV9wY2lfcnVudGltZV9wbV9hbGxvdyhzdHJ1 Y3QgZGV2aWNlICpkZXYpCj4gK3N0YXRpYyB2b2lkIHNkaGNpX3BjaV9ydW50aW1lX3BtX2FsbG93 KHN0cnVjdCBkZXZpY2UgKmRldikKPiAgIHsKPiAgIAlwbV9ydW50aW1lX3B1dF9ub2lkbGUoZGV2 KTsKPiAgIAlwbV9ydW50aW1lX2FsbG93KGRldik7Cj4gQEAgLTEzNTMsNyArMTM1Myw3IEBAIHN0 YXRpYyB2b2lkIF9fZGV2ZXhpdCBzZGhjaV9wY2lfcnVudGltZV9wbV9mb3JiaWQoc3RydWN0IGRl dmljZSAqZGV2KQo+ICAgCXBtX3J1bnRpbWVfZ2V0X25vcmVzdW1lKGRldik7Cj4gICB9Cj4KPiAt c3RhdGljIGludCBfX2RldmluaXQgc2RoY2lfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2 LAo+ICtzdGF0aWMgaW50IHNkaGNpX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKPiAg IAkJCQkgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCj4gICB7Cj4gICAJc3Ry dWN0IHNkaGNpX3BjaV9jaGlwICpjaGlwOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0 L3NkaGNpLXB4YXYyLmMgYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLXB4YXYyLmMKPiBpbmRleCA5 NjRmYzZkLi43ZDRkYzE5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhh djIuYwo+ICsrKyBiL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjIuYwo+IEBAIC0xNjYsNyAr MTY2LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qgc2RoY2lfcHhhX3BsYXRkYXRhICpweGF2Ml9n ZXRfbW1jX3BkYXRhKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgIH0KPiAgICNlbmRpZgo+Cj4gLXN0 YXRpYyBpbnQgX19kZXZpbml0IHNkaGNpX3B4YXYyX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpCj4gK3N0YXRpYyBpbnQgc2RoY2lfcHhhdjJfcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKPiAgIHsKPiAgIAlzdHJ1Y3Qgc2RoY2lfcGx0Zm1faG9zdCAqcGx0Zm1f aG9zdDsKPiAgIAlzdHJ1Y3Qgc2RoY2lfcHhhX3BsYXRkYXRhICpwZGF0YSA9IHBkZXYtPmRldi5w bGF0Zm9ybV9kYXRhOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLXB4YXYz LmMgYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLXB4YXYzLmMKPiBpbmRleCBhNDZjYjY3Li5lODlj ODA5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjMuYwo+ICsrKyBi L2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjMuYwo+IEBAIC0yMTQsNyArMjE0LDcgQEAgc3Rh dGljIGlubGluZSBzdHJ1Y3Qgc2RoY2lfcHhhX3BsYXRkYXRhICpweGF2M19nZXRfbW1jX3BkYXRh KHN0cnVjdCBkZXZpY2UgKmRldikKPiAgIH0KPiAgICNlbmRpZgo+Cj4gLXN0YXRpYyBpbnQgX19k ZXZpbml0IHNkaGNpX3B4YXYzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4g K3N0YXRpYyBpbnQgc2RoY2lfcHhhdjNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKPiAgIHsKPiAgIAlzdHJ1Y3Qgc2RoY2lfcGx0Zm1faG9zdCAqcGx0Zm1faG9zdDsKPiAgIAlz dHJ1Y3Qgc2RoY2lfcHhhX3BsYXRkYXRhICpwZGF0YSA9IHBkZXYtPmRldi5wbGF0Zm9ybV9kYXRh Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLXMzYy5jIGIvZHJpdmVycy9t bWMvaG9zdC9zZGhjaS1zM2MuYwo+IGluZGV4IGI2MmEwYzEuLmY1ZGRlOWUgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1zM2MuYwo+ICsrKyBiL2RyaXZlcnMvbW1jL2hvc3Qv c2RoY2ktczNjLmMKPiBAQCAtNDMwLDcgKzQzMCw3IEBAIHN0YXRpYyB2b2lkIHNkaGNpX3MzY19z ZXR1cF9jYXJkX2RldGVjdF9ncGlvKHN0cnVjdCBzZGhjaV9zM2MgKnNjKQo+ICAgfQo+Cj4gICAj aWZkZWYgQ09ORklHX09GCj4gLXN0YXRpYyBpbnQgX19kZXZpbml0IHNkaGNpX3MzY19wYXJzZV9k dChzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gK3N0YXRpYyBpbnQgc2RoY2lfczNjX3BhcnNlX2R0KHN0 cnVjdCBkZXZpY2UgKmRldiwKPiAgIAkJc3RydWN0IHNkaGNpX2hvc3QgKmhvc3QsIHN0cnVjdCBz M2Nfc2RoY2lfcGxhdGRhdGEgKnBkYXRhKQo+ICAgewo+ICAgCXN0cnVjdCBkZXZpY2Vfbm9kZSAq bm9kZSA9IGRldi0+b2Zfbm9kZTsKPiBAQCAtNTI1LDcgKzUyNSw3IEBAIHN0YXRpYyBpbnQgX19k ZXZpbml0IHNkaGNpX3MzY19wYXJzZV9kdChzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gICAJcmV0dXJu IC1FSU5WQUw7Cj4gICB9Cj4gICAjZWxzZQo+IC1zdGF0aWMgaW50IF9fZGV2aW5pdCBzZGhjaV9z M2NfcGFyc2VfZHQoc3RydWN0IGRldmljZSAqZGV2LAo+ICtzdGF0aWMgaW50IHNkaGNpX3MzY19w YXJzZV9kdChzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gICAJCXN0cnVjdCBzZGhjaV9ob3N0ICpob3N0 LCBzdHJ1Y3QgczNjX3NkaGNpX3BsYXRkYXRhICpwZGF0YSkKPiAgIHsKPiAgIAlyZXR1cm4gLUVJ TlZBTDsKPiBAQCAtNTQ4LDcgKzU0OCw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNkaGNpX3Mz Y19kcnZfZGF0YSAqc2RoY2lfczNjX2dldF9kcml2ZXJfZGF0YSgKPiAgIAkJCXBsYXRmb3JtX2dl dF9kZXZpY2VfaWQocGRldiktPmRyaXZlcl9kYXRhOwo+ICAgfQo+Cj4gLXN0YXRpYyBpbnQgX19k ZXZpbml0IHNkaGNpX3MzY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICtz dGF0aWMgaW50IHNkaGNpX3MzY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ ICAgewo+ICAgCXN0cnVjdCBzM2Nfc2RoY2lfcGxhdGRhdGEgKnBkYXRhOwo+ICAgCXN0cnVjdCBz ZGhjaV9zM2NfZHJ2X2RhdGEgKmRydl9kYXRhOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9o b3N0L3NkaGNpLXNwZWFyLmMgYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLXNwZWFyLmMKPiBpbmRl eCAzYmE5NDc5Li4zZmQxODk2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2kt c3BlYXIuYwo+ICsrKyBiL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktc3BlYXIuYwo+IEBAIC03MSw4 ICs3MSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBzZGhjaV9ncGlvX2lycShpbnQgaXJxLCB2b2lk ICpkZXZfaWQpCj4gICB9Cj4KPiAgICNpZmRlZiBDT05GSUdfT0YKPiAtc3RhdGljIHN0cnVjdCBz ZGhjaV9wbGF0X2RhdGEgKiBfX2RldmluaXQKPiAtc2RoY2lfcHJvYmVfY29uZmlnX2R0KHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3N0YXRpYyBzdHJ1Y3Qgc2RoY2lfcGxhdF9kYXRh ICpzZGhjaV9wcm9iZV9jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAg IHsKPiAgIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gcGRldi0+ZGV2Lm9mX25vZGU7Cj4gICAJ c3RydWN0IHNkaGNpX3BsYXRfZGF0YSAqcGRhdGEgPSBOVUxMOwo+IEBAIC05NiwxNCArOTUsMTMg QEAgc2RoY2lfcHJvYmVfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4g ICAJcmV0dXJuIHBkYXRhOwo+ICAgfQo+ICAgI2Vsc2UKPiAtc3RhdGljIHN0cnVjdCBzZGhjaV9w bGF0X2RhdGEgKiBfX2RldmluaXQKPiAtc2RoY2lfcHJvYmVfY29uZmlnX2R0KHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3N0YXRpYyBzdHJ1Y3Qgc2RoY2lfcGxhdF9kYXRhICpzZGhj aV9wcm9iZV9jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgIHsKPiAg IAlyZXR1cm4gRVJSX1BUUigtRU5PU1lTKTsKPiAgIH0KPiAgICNlbmRpZgo+Cj4gLXN0YXRpYyBp bnQgX19kZXZpbml0IHNkaGNpX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4g K3N0YXRpYyBpbnQgc2RoY2lfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAg IHsKPiAgIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gcGRldi0+ZGV2Lm9mX25vZGU7Cj4gICAJ c3RydWN0IHNkaGNpX2hvc3QgKmhvc3Q7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3Qv c2RoY2ktdGVncmEuYyBiL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktdGVncmEuYwo+IGluZGV4IGYy ODQzNTQuLjMzOWM0MWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS10ZWdy YS5jCj4gKysrIGIvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS10ZWdyYS5jCj4gQEAgLTIxNyw3ICsy MTcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzZGhjaV90ZWdyYV9kdF9t YXRjaFtdIF9fZGV2aW5pdGRhdGEgPSB7Cj4gICB9Owo+ICAgTU9EVUxFX0RFVklDRV9UQUJMRShv Ziwgc2RoY2lfZHRfaWRzKTsKPgo+IC1zdGF0aWMgc3RydWN0IHRlZ3JhX3NkaGNpX3BsYXRmb3Jt X2RhdGEgKiBfX2RldmluaXQgc2RoY2lfdGVncmFfZHRfcGFyc2VfcGRhdGEoCj4gK3N0YXRpYyBz dHJ1Y3QgdGVncmFfc2RoY2lfcGxhdGZvcm1fZGF0YSAqc2RoY2lfdGVncmFfZHRfcGFyc2VfcGRh dGEoCj4gICAJCQkJCQlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgewo+ICAgCXN0 cnVjdCB0ZWdyYV9zZGhjaV9wbGF0Zm9ybV9kYXRhICpwbGF0Owo+IEBAIC0yNDQsNyArMjQ0LDcg QEAgc3RhdGljIHN0cnVjdCB0ZWdyYV9zZGhjaV9wbGF0Zm9ybV9kYXRhICogX19kZXZpbml0IHNk aGNpX3RlZ3JhX2R0X3BhcnNlX3BkYXRhKAo+ICAgCXJldHVybiBwbGF0Owo+ICAgfQo+Cj4gLXN0 YXRpYyBpbnQgX19kZXZpbml0IHNkaGNpX3RlZ3JhX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpCj4gK3N0YXRpYyBpbnQgc2RoY2lfdGVncmFfcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKPiAgIHsKPiAgIAljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICptYXRj aDsKPiAgIAljb25zdCBzdHJ1Y3Qgc2RoY2lfdGVncmFfc29jX2RhdGEgKnNvY19kYXRhOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L3NoX21tY2lmLmMgYi9kcml2ZXJzL21tYy9ob3N0 L3NoX21tY2lmLmMKPiBpbmRleCBkMjViYzk3Li45ODcyYjUyIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvbW1jL2hvc3Qvc2hfbW1jaWYuYwo+ICsrKyBiL2RyaXZlcnMvbW1jL2hvc3Qvc2hfbW1jaWYu Ywo+IEBAIC0xMzAyLDcgKzEzMDIsNyBAQCBzdGF0aWMgdm9pZCBzaF9tbWNpZl9pbml0X29jcihz dHJ1Y3Qgc2hfbW1jaWZfaG9zdCAqaG9zdCkKPiAgIAkJZGV2X3dhcm4obW1jX2RldihtbWMpLCAi UGxhdGZvcm0gT0NSIG1hc2sgaXMgaWdub3JlZFxuIik7Cj4gICB9Cj4KPiAtc3RhdGljIGludCBf X2RldmluaXQgc2hfbW1jaWZfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAr c3RhdGljIGludCBzaF9tbWNpZl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ ICAgewo+ICAgCWludCByZXQgPSAwLCBpcnFbMl07Cj4gICAJc3RydWN0IG1tY19ob3N0ICptbWM7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3Qvc2hfbW9iaWxlX3NkaGkuYyBiL2RyaXZl cnMvbW1jL2hvc3Qvc2hfbW9iaWxlX3NkaGkuYwo+IGluZGV4IDZhOWE2MjUuLjkxMjU2ODQgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9tbWMvaG9zdC9zaF9tb2JpbGVfc2RoaS5jCj4gKysrIGIvZHJp dmVycy9tbWMvaG9zdC9zaF9tb2JpbGVfc2RoaS5jCj4gQEAgLTExNyw3ICsxMTcsNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IHNoX21vYmlsZV9zZGhpX29wcyBzZGhpX29wcyA9IHsKPiAgIAkuY2Rf d2FrZXVwID0gc2hfbW9iaWxlX3NkaGlfY2Rfd2FrZXVwLAo+ICAgfTsKPgo+IC1zdGF0aWMgaW50 IF9fZGV2aW5pdCBzaF9tb2JpbGVfc2RoaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQo+ICtzdGF0aWMgaW50IHNoX21vYmlsZV9zZGhpX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCj4gICB7Cj4gICAJc3RydWN0IHNoX21vYmlsZV9zZGhpICpwcml2Owo+ICAg CXN0cnVjdCB0bWlvX21tY19kYXRhICptbWNfZGF0YTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9t bWMvaG9zdC90bWlvX21tYy5jIGIvZHJpdmVycy9tbWMvaG9zdC90bWlvX21tYy5jCj4gaW5kZXgg MmY5YmJkZi4uZjQxNWJlOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21tYy9ob3N0L3RtaW9fbW1j LmMKPiArKysgYi9kcml2ZXJzL21tYy9ob3N0L3RtaW9fbW1jLmMKPiBAQCAtNTcsNyArNTcsNyBA QCBzdGF0aWMgaW50IHRtaW9fbW1jX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYp Cj4gICAjZGVmaW5lIHRtaW9fbW1jX3Jlc3VtZSBOVUxMCj4gICAjZW5kaWYKPgo+IC1zdGF0aWMg aW50IF9fZGV2aW5pdCB0bWlvX21tY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KQo+ICtzdGF0aWMgaW50IHRtaW9fbW1jX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCj4gICB7Cj4gICAJY29uc3Qgc3RydWN0IG1mZF9jZWxsICpjZWxsID0gbWZkX2dldF9jZWxs KHBkZXYpOwo+ICAgCXN0cnVjdCB0bWlvX21tY19kYXRhICpwZGF0YTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tbWMvaG9zdC90bWlvX21tY19waW8uYyBiL2RyaXZlcnMvbW1jL2hvc3QvdG1pb19t bWNfcGlvLmMKPiBpbmRleCAwZDhhOWJiLi41MGJmNDk1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv bW1jL2hvc3QvdG1pb19tbWNfcGlvLmMKPiArKysgYi9kcml2ZXJzL21tYy9ob3N0L3RtaW9fbW1j X3Bpby5jCj4gQEAgLTkxOCw3ICs5MTgsNyBAQCBzdGF0aWMgdm9pZCB0bWlvX21tY19pbml0X29j cihzdHJ1Y3QgdG1pb19tbWNfaG9zdCAqaG9zdCkKPiAgIAkJZGV2X3dhcm4obW1jX2RldihtbWMp LCAiUGxhdGZvcm0gT0NSIG1hc2sgaXMgaWdub3JlZFxuIik7Cj4gICB9Cj4KPiAtaW50IF9fZGV2 aW5pdCB0bWlvX21tY19ob3N0X3Byb2JlKHN0cnVjdCB0bWlvX21tY19ob3N0ICoqaG9zdCwKPiAr aW50IHRtaW9fbW1jX2hvc3RfcHJvYmUoc3RydWN0IHRtaW9fbW1jX2hvc3QgKipob3N0LAo+ICAg CQkJCSAgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPiAgIAkJCQkgIHN0cnVjdCB0bWlv X21tY19kYXRhICpwZGF0YSkKPiAgIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC92 aWEtc2RtbWMuYyBiL2RyaXZlcnMvbW1jL2hvc3QvdmlhLXNkbW1jLmMKPiBpbmRleCBkOGY4YTVl Li4xZjFhMjUyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbW1jL2hvc3QvdmlhLXNkbW1jLmMKPiAr KysgYi9kcml2ZXJzL21tYy9ob3N0L3ZpYS1zZG1tYy5jCj4gQEAgLTEwODIsNyArMTA4Miw3IEBA IHN0YXRpYyB2b2lkIHZpYV9pbml0X21tY19ob3N0KHN0cnVjdCB2aWFfY3Jkcl9tbWNfaG9zdCAq aG9zdCkKPiAgIAltc2xlZXAoMSk7Cj4gICB9Cj4KPiAtc3RhdGljIGludCBfX2RldmluaXQgdmlh X3NkX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwY2lkZXYsCj4gK3N0YXRpYyBpbnQgdmlhX3NkX3By b2JlKHN0cnVjdCBwY2lfZGV2ICpwY2lkZXYsCj4gICAJCQkJICAgIGNvbnN0IHN0cnVjdCBwY2lf ZGV2aWNlX2lkICppZCkKPiAgIHsKPiAgIAlzdHJ1Y3QgbW1jX2hvc3QgKm1tYzsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9tbWMvaG9zdC93YnNkLmMgYi9kcml2ZXJzL21tYy9ob3N0L3dic2QuYwo+ IGluZGV4IDNjOGVmNTkuLmQ3MTM1OGEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tbWMvaG9zdC93 YnNkLmMKPiArKysgYi9kcml2ZXJzL21tYy9ob3N0L3dic2QuYwo+IEBAIC0xMTk2LDcgKzExOTYs NyBAQCBzdGF0aWMgaXJxcmV0dXJuX3Qgd2JzZF9pcnEoaW50IGlycSwgdm9pZCAqZGV2X2lkKQo+ ICAgICogQWxsb2NhdGUvZnJlZSBNTUMgc3RydWN0dXJlLgo+ICAgICovCj4KPiAtc3RhdGljIGlu dCBfX2RldmluaXQgd2JzZF9hbGxvY19tbWMoc3RydWN0IGRldmljZSAqZGV2KQo+ICtzdGF0aWMg aW50IHdic2RfYWxsb2NfbW1jKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgIHsKPiAgIAlzdHJ1Y3Qg bW1jX2hvc3QgKm1tYzsKPiAgIAlzdHJ1Y3Qgd2JzZF9ob3N0ICpob3N0Owo+IEBAIC0xMjg4LDcg KzEyODgsNyBAQCBzdGF0aWMgdm9pZCB3YnNkX2ZyZWVfbW1jKHN0cnVjdCBkZXZpY2UgKmRldikK PiAgICAqIFNjYW4gZm9yIGtub3duIGNoaXAgaWQ6cwo+ICAgICovCj4KPiAtc3RhdGljIGludCBf X2RldmluaXQgd2JzZF9zY2FuKHN0cnVjdCB3YnNkX2hvc3QgKmhvc3QpCj4gK3N0YXRpYyBpbnQg d2JzZF9zY2FuKHN0cnVjdCB3YnNkX2hvc3QgKmhvc3QpCj4gICB7Cj4gICAJaW50IGksIGosIGs7 Cj4gICAJaW50IGlkOwo+IEBAIC0xMzQ0LDcgKzEzNDQsNyBAQCBzdGF0aWMgaW50IF9fZGV2aW5p dCB3YnNkX3NjYW4oc3RydWN0IHdic2RfaG9zdCAqaG9zdCkKPiAgICAqIEFsbG9jYXRlL2ZyZWUg aW8gcG9ydCByYW5nZXMKPiAgICAqLwo+Cj4gLXN0YXRpYyBpbnQgX19kZXZpbml0IHdic2RfcmVx dWVzdF9yZWdpb24oc3RydWN0IHdic2RfaG9zdCAqaG9zdCwgaW50IGJhc2UpCj4gK3N0YXRpYyBp bnQgd2JzZF9yZXF1ZXN0X3JlZ2lvbihzdHJ1Y3Qgd2JzZF9ob3N0ICpob3N0LCBpbnQgYmFzZSkK PiAgIHsKPiAgIAlpZiAoYmFzZSAmIDB4NykKPiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4gQEAgLTEz NzQsNyArMTM3NCw3IEBAIHN0YXRpYyB2b2lkIHdic2RfcmVsZWFzZV9yZWdpb25zKHN0cnVjdCB3 YnNkX2hvc3QgKmhvc3QpCj4gICAgKiBBbGxvY2F0ZS9mcmVlIERNQSBwb3J0IGFuZCBidWZmZXIK PiAgICAqLwo+Cj4gLXN0YXRpYyB2b2lkIF9fZGV2aW5pdCB3YnNkX3JlcXVlc3RfZG1hKHN0cnVj dCB3YnNkX2hvc3QgKmhvc3QsIGludCBkbWEpCj4gK3N0YXRpYyB2b2lkIHdic2RfcmVxdWVzdF9k bWEoc3RydWN0IHdic2RfaG9zdCAqaG9zdCwgaW50IGRtYSkKPiAgIHsKPiAgIAlpZiAoZG1hIDwg MCkKPiAgIAkJcmV0dXJuOwo+IEBAIC0xNDUyLDcgKzE0NTIsNyBAQCBzdGF0aWMgdm9pZCB3YnNk X3JlbGVhc2VfZG1hKHN0cnVjdCB3YnNkX2hvc3QgKmhvc3QpCj4gICAgKiBBbGxvY2F0ZS9mcmVl IElSUS4KPiAgICAqLwo+Cj4gLXN0YXRpYyBpbnQgX19kZXZpbml0IHdic2RfcmVxdWVzdF9pcnEo c3RydWN0IHdic2RfaG9zdCAqaG9zdCwgaW50IGlycSkKPiArc3RhdGljIGludCB3YnNkX3JlcXVl c3RfaXJxKHN0cnVjdCB3YnNkX2hvc3QgKmhvc3QsIGludCBpcnEpCj4gICB7Cj4gICAJaW50IHJl dDsKPgo+IEBAIC0xNTAyLDcgKzE1MDIsNyBAQCBzdGF0aWMgdm9pZCAgd2JzZF9yZWxlYXNlX2ly cShzdHJ1Y3Qgd2JzZF9ob3N0ICpob3N0KQo+ICAgICogQWxsb2NhdGUgYWxsIHJlc291cmNlcyBm b3IgdGhlIGhvc3QuCj4gICAgKi8KPgo+IC1zdGF0aWMgaW50IF9fZGV2aW5pdCB3YnNkX3JlcXVl c3RfcmVzb3VyY2VzKHN0cnVjdCB3YnNkX2hvc3QgKmhvc3QsCj4gK3N0YXRpYyBpbnQgd2JzZF9y ZXF1ZXN0X3Jlc291cmNlcyhzdHJ1Y3Qgd2JzZF9ob3N0ICpob3N0LAo+ICAgCWludCBiYXNlLCBp bnQgaXJxLCBpbnQgZG1hKQo+ICAgewo+ICAgCWludCByZXQ7Cj4gQEAgLTE2NDQsNyArMTY0NCw3 IEBAIHN0YXRpYyB2b2lkIHdic2RfY2hpcF9wb3dlcm9mZihzdHJ1Y3Qgd2JzZF9ob3N0ICpob3N0 KQo+ICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqCj4gICBcKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCj4K PiAtc3RhdGljIGludCBfX2RldmluaXQgd2JzZF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgaW50 IGJhc2UsIGludCBpcnEsIGludCBkbWEsCj4gK3N0YXRpYyBpbnQgd2JzZF9pbml0KHN0cnVjdCBk ZXZpY2UgKmRldiwgaW50IGJhc2UsIGludCBpcnEsIGludCBkbWEsCj4gICAJaW50IHBucCkKPiAg IHsKPiAgIAlzdHJ1Y3Qgd2JzZF9ob3N0ICpob3N0ID0gTlVMTDsKPiBAQCAtMTc2Miw3ICsxNzYy LDcgQEAgc3RhdGljIHZvaWQgX19kZXZleGl0IHdic2Rfc2h1dGRvd24oc3RydWN0IGRldmljZSAq ZGV2LCBpbnQgcG5wKQo+ICAgICogTm9uLVBuUAo+ICAgICovCj4KPiAtc3RhdGljIGludCBfX2Rl dmluaXQgd2JzZF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCj4gK3N0YXRpYyBp bnQgd2JzZF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCj4gICB7Cj4gICAJLyog VXNlIHRoZSBtb2R1bGUgcGFyYW1ldGVycyBmb3IgcmVzb3VyY2VzICovCj4gICAJcmV0dXJuIHdi c2RfaW5pdCgmZGV2LT5kZXYsIHBhcmFtX2lvLCBwYXJhbV9pcnEsIHBhcmFtX2RtYSwgMCk7Cj4g QEAgLTE3ODEsNyArMTc4MSw3IEBAIHN0YXRpYyBpbnQgX19kZXZleGl0IHdic2RfcmVtb3ZlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKPgo+ICAgI2lmZGVmIENPTkZJR19QTlAKPgo+IC1z dGF0aWMgaW50IF9fZGV2aW5pdAo+ICtzdGF0aWMgaW50Cj4gICB3YnNkX3BucF9wcm9iZShzdHJ1 Y3QgcG5wX2RldiAqcG5wZGV2LCBjb25zdCBzdHJ1Y3QgcG5wX2RldmljZV9pZCAqZGV2X2lkKQo+ ICAgewo+ICAgCWludCBpbywgaXJxLCBkbWE7Cj4KCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludovic.desroches@atmel.com (ludovic.desroches) Date: Tue, 20 Nov 2012 10:55:52 +0100 Subject: [PATCH 237/493] mmc: remove use of __devinit In-Reply-To: <1353349642-3677-237-git-send-email-wfp5p@virginia.edu> References: <1353349642-3677-1-git-send-email-wfp5p@virginia.edu> <1353349642-3677-237-git-send-email-wfp5p@virginia.edu> Message-ID: <50AB53A8.9070405@atmel.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Le 11/19/2012 07:23 PM, Bill Pemberton a ?crit : > CONFIG_HOTPLUG is going away as an option so __devinit is no longer > needed. > > Signed-off-by: Bill Pemberton > Cc: Ludovic Desroches > Cc: Chris Ball > Cc: Manuel Lauss > Cc: "Micha? Miros?aw" > Cc: Jarkko Lavinen > Cc: Venkatraman S > Cc: Viresh Kumar > Cc: Guennadi Liakhovetski > Cc: Ian Molton > Cc: Bruce Chang > Cc: Harald Welte > Cc: Pierre Ossman > Cc: linux-mmc at vger.kernel.org > Cc: uclinux-dist-devel at blackfin.uclinux.org > Cc: linux-omap at vger.kernel.org > Cc: linux-arm-kernel at lists.infradead.org > Cc: spear-devel at list.st.com > --- > drivers/mmc/host/atmel-mci.c | 2 +- Acked-by: Ludovic Desroches > drivers/mmc/host/au1xmmc.c | 2 +- > drivers/mmc/host/bfin_sdh.c | 2 +- > drivers/mmc/host/cb710-mmc.c | 2 +- > drivers/mmc/host/dw_mmc-pci.c | 2 +- > drivers/mmc/host/dw_mmc-pltfm.c | 2 +- > drivers/mmc/host/jz4740_mmc.c | 8 ++++---- > drivers/mmc/host/mmci.c | 6 +++--- > drivers/mmc/host/omap.c | 4 ++-- > drivers/mmc/host/omap_hsmmc.c | 2 +- > drivers/mmc/host/pxamci.c | 4 ++-- > drivers/mmc/host/s3cmci.c | 2 +- > drivers/mmc/host/sdhci-cns3xxx.c | 2 +- > drivers/mmc/host/sdhci-dove.c | 2 +- > drivers/mmc/host/sdhci-esdhc-imx.c | 4 ++-- > drivers/mmc/host/sdhci-of-esdhc.c | 2 +- > drivers/mmc/host/sdhci-of-hlwd.c | 2 +- > drivers/mmc/host/sdhci-pci.c | 6 +++--- > drivers/mmc/host/sdhci-pxav2.c | 2 +- > drivers/mmc/host/sdhci-pxav3.c | 2 +- > drivers/mmc/host/sdhci-s3c.c | 6 +++--- > drivers/mmc/host/sdhci-spear.c | 8 +++----- > drivers/mmc/host/sdhci-tegra.c | 4 ++-- > drivers/mmc/host/sh_mmcif.c | 2 +- > drivers/mmc/host/sh_mobile_sdhi.c | 2 +- > drivers/mmc/host/tmio_mmc.c | 2 +- > drivers/mmc/host/tmio_mmc_pio.c | 2 +- > drivers/mmc/host/via-sdmmc.c | 2 +- > drivers/mmc/host/wbsd.c | 18 +++++++++--------- > 29 files changed, 52 insertions(+), 54 deletions(-) > > diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c > index 8689989..722af1d 100644 > --- a/drivers/mmc/host/atmel-mci.c > +++ b/drivers/mmc/host/atmel-mci.c > @@ -511,7 +511,7 @@ static const struct of_device_id atmci_dt_ids[] = { > > MODULE_DEVICE_TABLE(of, atmci_dt_ids); > > -static struct mci_platform_data __devinit* > +static struct mci_platform_data* > atmci_of_init(struct platform_device *pdev) > { > struct device_node *np = pdev->dev.of_node; > diff --git a/drivers/mmc/host/au1xmmc.c b/drivers/mmc/host/au1xmmc.c > index dbd0c8a..606c16a 100644 > --- a/drivers/mmc/host/au1xmmc.c > +++ b/drivers/mmc/host/au1xmmc.c > @@ -943,7 +943,7 @@ static const struct mmc_host_ops au1xmmc_ops = { > .enable_sdio_irq = au1xmmc_enable_sdio_irq, > }; > > -static int __devinit au1xmmc_probe(struct platform_device *pdev) > +static int au1xmmc_probe(struct platform_device *pdev) > { > struct mmc_host *mmc; > struct au1xmmc_host *host; > diff --git a/drivers/mmc/host/bfin_sdh.c b/drivers/mmc/host/bfin_sdh.c > index 156ebe7..4ef3901 100644 > --- a/drivers/mmc/host/bfin_sdh.c > +++ b/drivers/mmc/host/bfin_sdh.c > @@ -522,7 +522,7 @@ static void sdh_reset(void) > SSYNC(); > } > > -static int __devinit sdh_probe(struct platform_device *pdev) > +static int sdh_probe(struct platform_device *pdev) > { > struct mmc_host *mmc; > struct sdh_host *host; > diff --git a/drivers/mmc/host/cb710-mmc.c b/drivers/mmc/host/cb710-mmc.c > index 39280b5..c12a561 100644 > --- a/drivers/mmc/host/cb710-mmc.c > +++ b/drivers/mmc/host/cb710-mmc.c > @@ -690,7 +690,7 @@ static int cb710_mmc_resume(struct platform_device *pdev) > > #endif /* CONFIG_PM */ > > -static int __devinit cb710_mmc_init(struct platform_device *pdev) > +static int cb710_mmc_init(struct platform_device *pdev) > { > struct cb710_slot *slot = cb710_pdev_to_slot(pdev); > struct cb710_chip *chip = cb710_slot_to_chip(slot); > diff --git a/drivers/mmc/host/dw_mmc-pci.c b/drivers/mmc/host/dw_mmc-pci.c > index edb37e9..324c8bf 100644 > --- a/drivers/mmc/host/dw_mmc-pci.c > +++ b/drivers/mmc/host/dw_mmc-pci.c > @@ -37,7 +37,7 @@ static struct dw_mci_board pci_board_data = { > .fifo_depth = 32, > }; > > -static int __devinit dw_mci_pci_probe(struct pci_dev *pdev, > +static int dw_mci_pci_probe(struct pci_dev *pdev, > const struct pci_device_id *entries) > { > struct dw_mci *host; > diff --git a/drivers/mmc/host/dw_mmc-pltfm.c b/drivers/mmc/host/dw_mmc-pltfm.c > index 4c1b1df..ff73a87 100644 > --- a/drivers/mmc/host/dw_mmc-pltfm.c > +++ b/drivers/mmc/host/dw_mmc-pltfm.c > @@ -62,7 +62,7 @@ int dw_mci_pltfm_register(struct platform_device *pdev, > } > EXPORT_SYMBOL_GPL(dw_mci_pltfm_register); > > -static int __devinit dw_mci_pltfm_probe(struct platform_device *pdev) > +static int dw_mci_pltfm_probe(struct platform_device *pdev) > { > return dw_mci_pltfm_register(pdev, NULL); > } > diff --git a/drivers/mmc/host/jz4740_mmc.c b/drivers/mmc/host/jz4740_mmc.c > index 31cf20f..81826be 100644 > --- a/drivers/mmc/host/jz4740_mmc.c > +++ b/drivers/mmc/host/jz4740_mmc.c > @@ -702,7 +702,7 @@ static const struct jz_gpio_bulk_request jz4740_mmc_pins[] = { > JZ_GPIO_BULK_PIN(MSC_DATA3), > }; > > -static int __devinit jz4740_mmc_request_gpio(struct device *dev, int gpio, > +static int jz4740_mmc_request_gpio(struct device *dev, int gpio, > const char *name, bool output, int value) > { > int ret; > @@ -724,7 +724,7 @@ static int __devinit jz4740_mmc_request_gpio(struct device *dev, int gpio, > return 0; > } > > -static int __devinit jz4740_mmc_request_gpios(struct platform_device *pdev) > +static int jz4740_mmc_request_gpios(struct platform_device *pdev) > { > int ret; > struct jz4740_mmc_platform_data *pdata = pdev->dev.platform_data; > @@ -759,7 +759,7 @@ err: > return ret; > } > > -static int __devinit jz4740_mmc_request_cd_irq(struct platform_device *pdev, > +static int jz4740_mmc_request_cd_irq(struct platform_device *pdev, > struct jz4740_mmc_host *host) > { > struct jz4740_mmc_platform_data *pdata = pdev->dev.platform_data; > @@ -802,7 +802,7 @@ static inline size_t jz4740_mmc_num_pins(struct jz4740_mmc_host *host) > return num_pins; > } > > -static int __devinit jz4740_mmc_probe(struct platform_device* pdev) > +static int jz4740_mmc_probe(struct platform_device* pdev) > { > int ret; > struct mmc_host *mmc; > diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c > index 705c3be..bf5f7a5 100644 > --- a/drivers/mmc/host/mmci.c > +++ b/drivers/mmc/host/mmci.c > @@ -262,7 +262,7 @@ static void mmci_init_sg(struct mmci_host *host, struct mmc_data *data) > * no custom DMA interfaces are supported. > */ > #ifdef CONFIG_DMA_ENGINE > -static void __devinit mmci_dma_setup(struct mmci_host *host) > +static void mmci_dma_setup(struct mmci_host *host) > { > struct mmci_platform_data *plat = host->plat; > const char *rxname, *txname; > @@ -338,7 +338,7 @@ static void __devinit mmci_dma_setup(struct mmci_host *host) > } > > /* > - * This is used in __devinit or __devexit so inline it > + * This is used in or __devexit so inline it > * so it can be discarded. > */ > static inline void mmci_dma_release(struct mmci_host *host) > @@ -1262,7 +1262,7 @@ static void mmci_dt_populate_generic_pdata(struct device_node *np, > } > #endif > > -static int __devinit mmci_probe(struct amba_device *dev, > +static int mmci_probe(struct amba_device *dev, > const struct amba_id *id) > { > struct mmci_platform_data *plat = dev->dev.platform_data; > diff --git a/drivers/mmc/host/omap.c b/drivers/mmc/host/omap.c > index f65ec26..5cd976a 100644 > --- a/drivers/mmc/host/omap.c > +++ b/drivers/mmc/host/omap.c > @@ -1230,7 +1230,7 @@ static const struct mmc_host_ops mmc_omap_ops = { > .set_ios = mmc_omap_set_ios, > }; > > -static int __devinit mmc_omap_new_slot(struct mmc_omap_host *host, int id) > +static int mmc_omap_new_slot(struct mmc_omap_host *host, int id) > { > struct mmc_omap_slot *slot = NULL; > struct mmc_host *mmc; > @@ -1325,7 +1325,7 @@ static void mmc_omap_remove_slot(struct mmc_omap_slot *slot) > mmc_free_host(mmc); > } > > -static int __devinit mmc_omap_probe(struct platform_device *pdev) > +static int mmc_omap_probe(struct platform_device *pdev) > { > struct omap_mmc_platform_data *pdata = pdev->dev.platform_data; > struct mmc_omap_host *host = NULL; > diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c > index 8f5c7e2..492d8cf 100644 > --- a/drivers/mmc/host/omap_hsmmc.c > +++ b/drivers/mmc/host/omap_hsmmc.c > @@ -1717,7 +1717,7 @@ static inline struct omap_mmc_platform_data > } > #endif > > -static int __devinit omap_hsmmc_probe(struct platform_device *pdev) > +static int omap_hsmmc_probe(struct platform_device *pdev) > { > struct omap_mmc_platform_data *pdata = pdev->dev.platform_data; > struct mmc_host *mmc; > diff --git a/drivers/mmc/host/pxamci.c b/drivers/mmc/host/pxamci.c > index 3f9d6d5..2b2f65a 100644 > --- a/drivers/mmc/host/pxamci.c > +++ b/drivers/mmc/host/pxamci.c > @@ -584,7 +584,7 @@ static const struct of_device_id pxa_mmc_dt_ids[] = { > > MODULE_DEVICE_TABLE(of, pxa_mmc_dt_ids); > > -static int __devinit pxamci_of_init(struct platform_device *pdev) > +static int pxamci_of_init(struct platform_device *pdev) > { > struct device_node *np = pdev->dev.of_node; > struct pxamci_platform_data *pdata; > @@ -614,7 +614,7 @@ static int __devinit pxamci_of_init(struct platform_device *pdev) > return 0; > } > #else > -static int __devinit pxamci_of_init(struct platform_device *pdev) > +static int pxamci_of_init(struct platform_device *pdev) > { > return 0; > } > diff --git a/drivers/mmc/host/s3cmci.c b/drivers/mmc/host/s3cmci.c > index a5fe5b2..b846a97 100644 > --- a/drivers/mmc/host/s3cmci.c > +++ b/drivers/mmc/host/s3cmci.c > @@ -1540,7 +1540,7 @@ static inline void s3cmci_debugfs_remove(struct s3cmci_host *host) { } > > #endif /* CONFIG_DEBUG_FS */ > > -static int __devinit s3cmci_probe(struct platform_device *pdev) > +static int s3cmci_probe(struct platform_device *pdev) > { > struct s3cmci_host *host; > struct mmc_host *mmc; > diff --git a/drivers/mmc/host/sdhci-cns3xxx.c b/drivers/mmc/host/sdhci-cns3xxx.c > index 9236fa9..ce959dcf 100644 > --- a/drivers/mmc/host/sdhci-cns3xxx.c > +++ b/drivers/mmc/host/sdhci-cns3xxx.c > @@ -95,7 +95,7 @@ static struct sdhci_pltfm_data sdhci_cns3xxx_pdata = { > SDHCI_QUIRK_NONSTANDARD_CLOCK, > }; > > -static int __devinit sdhci_cns3xxx_probe(struct platform_device *pdev) > +static int sdhci_cns3xxx_probe(struct platform_device *pdev) > { > return sdhci_pltfm_register(pdev, &sdhci_cns3xxx_pdata); > } > diff --git a/drivers/mmc/host/sdhci-dove.c b/drivers/mmc/host/sdhci-dove.c > index 7ad1bb6..334ec5c 100644 > --- a/drivers/mmc/host/sdhci-dove.c > +++ b/drivers/mmc/host/sdhci-dove.c > @@ -78,7 +78,7 @@ static struct sdhci_pltfm_data sdhci_dove_pdata = { > SDHCI_QUIRK_NO_HISPD_BIT, > }; > > -static int __devinit sdhci_dove_probe(struct platform_device *pdev) > +static int sdhci_dove_probe(struct platform_device *pdev) > { > struct sdhci_host *host; > struct sdhci_pltfm_host *pltfm_host; > diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c > index 6a4e98e..cd741bb 100644 > --- a/drivers/mmc/host/sdhci-esdhc-imx.c > +++ b/drivers/mmc/host/sdhci-esdhc-imx.c > @@ -403,7 +403,7 @@ static irqreturn_t cd_irq(int irq, void *data) > }; > > #ifdef CONFIG_OF > -static int __devinit > +static int > sdhci_esdhc_imx_probe_dt(struct platform_device *pdev, > struct esdhc_platform_data *boarddata) > { > @@ -440,7 +440,7 @@ sdhci_esdhc_imx_probe_dt(struct platform_device *pdev, > } > #endif > > -static int __devinit sdhci_esdhc_imx_probe(struct platform_device *pdev) > +static int sdhci_esdhc_imx_probe(struct platform_device *pdev) > { > const struct of_device_id *of_id = > of_match_device(imx_esdhc_dt_ids, &pdev->dev); > diff --git a/drivers/mmc/host/sdhci-of-esdhc.c b/drivers/mmc/host/sdhci-of-esdhc.c > index d7eb4ed..1aceed7 100644 > --- a/drivers/mmc/host/sdhci-of-esdhc.c > +++ b/drivers/mmc/host/sdhci-of-esdhc.c > @@ -208,7 +208,7 @@ static struct sdhci_pltfm_data sdhci_esdhc_pdata = { > .ops = &sdhci_esdhc_ops, > }; > > -static int __devinit sdhci_esdhc_probe(struct platform_device *pdev) > +static int sdhci_esdhc_probe(struct platform_device *pdev) > { > return sdhci_pltfm_register(pdev, &sdhci_esdhc_pdata); > } > diff --git a/drivers/mmc/host/sdhci-of-hlwd.c b/drivers/mmc/host/sdhci-of-hlwd.c > index 3b68069..aa78f3c 100644 > --- a/drivers/mmc/host/sdhci-of-hlwd.c > +++ b/drivers/mmc/host/sdhci-of-hlwd.c > @@ -66,7 +66,7 @@ static struct sdhci_pltfm_data sdhci_hlwd_pdata = { > .ops = &sdhci_hlwd_ops, > }; > > -static int __devinit sdhci_hlwd_probe(struct platform_device *pdev) > +static int sdhci_hlwd_probe(struct platform_device *pdev) > { > return sdhci_pltfm_register(pdev, &sdhci_hlwd_pdata); > } > diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c > index 7bc2270..ff91651 100644 > --- a/drivers/mmc/host/sdhci-pci.c > +++ b/drivers/mmc/host/sdhci-pci.c > @@ -1183,7 +1183,7 @@ static const struct dev_pm_ops sdhci_pci_pm_ops = { > * * > \*****************************************************************************/ > > -static struct sdhci_pci_slot * __devinit sdhci_pci_probe_slot( > +static struct sdhci_pci_slot *sdhci_pci_probe_slot( > struct pci_dev *pdev, struct sdhci_pci_chip *chip, int first_bar, > int slotno) > { > @@ -1338,7 +1338,7 @@ static void sdhci_pci_remove_slot(struct sdhci_pci_slot *slot) > sdhci_free_host(slot->host); > } > > -static void __devinit sdhci_pci_runtime_pm_allow(struct device *dev) > +static void sdhci_pci_runtime_pm_allow(struct device *dev) > { > pm_runtime_put_noidle(dev); > pm_runtime_allow(dev); > @@ -1353,7 +1353,7 @@ static void __devexit sdhci_pci_runtime_pm_forbid(struct device *dev) > pm_runtime_get_noresume(dev); > } > > -static int __devinit sdhci_pci_probe(struct pci_dev *pdev, > +static int sdhci_pci_probe(struct pci_dev *pdev, > const struct pci_device_id *ent) > { > struct sdhci_pci_chip *chip; > diff --git a/drivers/mmc/host/sdhci-pxav2.c b/drivers/mmc/host/sdhci-pxav2.c > index 964fc6d..7d4dc19 100644 > --- a/drivers/mmc/host/sdhci-pxav2.c > +++ b/drivers/mmc/host/sdhci-pxav2.c > @@ -166,7 +166,7 @@ static inline struct sdhci_pxa_platdata *pxav2_get_mmc_pdata(struct device *dev) > } > #endif > > -static int __devinit sdhci_pxav2_probe(struct platform_device *pdev) > +static int sdhci_pxav2_probe(struct platform_device *pdev) > { > struct sdhci_pltfm_host *pltfm_host; > struct sdhci_pxa_platdata *pdata = pdev->dev.platform_data; > diff --git a/drivers/mmc/host/sdhci-pxav3.c b/drivers/mmc/host/sdhci-pxav3.c > index a46cb67..e89c809 100644 > --- a/drivers/mmc/host/sdhci-pxav3.c > +++ b/drivers/mmc/host/sdhci-pxav3.c > @@ -214,7 +214,7 @@ static inline struct sdhci_pxa_platdata *pxav3_get_mmc_pdata(struct device *dev) > } > #endif > > -static int __devinit sdhci_pxav3_probe(struct platform_device *pdev) > +static int sdhci_pxav3_probe(struct platform_device *pdev) > { > struct sdhci_pltfm_host *pltfm_host; > struct sdhci_pxa_platdata *pdata = pdev->dev.platform_data; > diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c > index b62a0c1..f5dde9e 100644 > --- a/drivers/mmc/host/sdhci-s3c.c > +++ b/drivers/mmc/host/sdhci-s3c.c > @@ -430,7 +430,7 @@ static void sdhci_s3c_setup_card_detect_gpio(struct sdhci_s3c *sc) > } > > #ifdef CONFIG_OF > -static int __devinit sdhci_s3c_parse_dt(struct device *dev, > +static int sdhci_s3c_parse_dt(struct device *dev, > struct sdhci_host *host, struct s3c_sdhci_platdata *pdata) > { > struct device_node *node = dev->of_node; > @@ -525,7 +525,7 @@ static int __devinit sdhci_s3c_parse_dt(struct device *dev, > return -EINVAL; > } > #else > -static int __devinit sdhci_s3c_parse_dt(struct device *dev, > +static int sdhci_s3c_parse_dt(struct device *dev, > struct sdhci_host *host, struct s3c_sdhci_platdata *pdata) > { > return -EINVAL; > @@ -548,7 +548,7 @@ static inline struct sdhci_s3c_drv_data *sdhci_s3c_get_driver_data( > platform_get_device_id(pdev)->driver_data; > } > > -static int __devinit sdhci_s3c_probe(struct platform_device *pdev) > +static int sdhci_s3c_probe(struct platform_device *pdev) > { > struct s3c_sdhci_platdata *pdata; > struct sdhci_s3c_drv_data *drv_data; > diff --git a/drivers/mmc/host/sdhci-spear.c b/drivers/mmc/host/sdhci-spear.c > index 3ba9479..3fd1896 100644 > --- a/drivers/mmc/host/sdhci-spear.c > +++ b/drivers/mmc/host/sdhci-spear.c > @@ -71,8 +71,7 @@ static irqreturn_t sdhci_gpio_irq(int irq, void *dev_id) > } > > #ifdef CONFIG_OF > -static struct sdhci_plat_data * __devinit > -sdhci_probe_config_dt(struct platform_device *pdev) > +static struct sdhci_plat_data *sdhci_probe_config_dt(struct platform_device *pdev) > { > struct device_node *np = pdev->dev.of_node; > struct sdhci_plat_data *pdata = NULL; > @@ -96,14 +95,13 @@ sdhci_probe_config_dt(struct platform_device *pdev) > return pdata; > } > #else > -static struct sdhci_plat_data * __devinit > -sdhci_probe_config_dt(struct platform_device *pdev) > +static struct sdhci_plat_data *sdhci_probe_config_dt(struct platform_device *pdev) > { > return ERR_PTR(-ENOSYS); > } > #endif > > -static int __devinit sdhci_probe(struct platform_device *pdev) > +static int sdhci_probe(struct platform_device *pdev) > { > struct device_node *np = pdev->dev.of_node; > struct sdhci_host *host; > diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c > index f284354..339c41e 100644 > --- a/drivers/mmc/host/sdhci-tegra.c > +++ b/drivers/mmc/host/sdhci-tegra.c > @@ -217,7 +217,7 @@ static const struct of_device_id sdhci_tegra_dt_match[] __devinitdata = { > }; > MODULE_DEVICE_TABLE(of, sdhci_dt_ids); > > -static struct tegra_sdhci_platform_data * __devinit sdhci_tegra_dt_parse_pdata( > +static struct tegra_sdhci_platform_data *sdhci_tegra_dt_parse_pdata( > struct platform_device *pdev) > { > struct tegra_sdhci_platform_data *plat; > @@ -244,7 +244,7 @@ static struct tegra_sdhci_platform_data * __devinit sdhci_tegra_dt_parse_pdata( > return plat; > } > > -static int __devinit sdhci_tegra_probe(struct platform_device *pdev) > +static int sdhci_tegra_probe(struct platform_device *pdev) > { > const struct of_device_id *match; > const struct sdhci_tegra_soc_data *soc_data; > diff --git a/drivers/mmc/host/sh_mmcif.c b/drivers/mmc/host/sh_mmcif.c > index d25bc97..9872b52 100644 > --- a/drivers/mmc/host/sh_mmcif.c > +++ b/drivers/mmc/host/sh_mmcif.c > @@ -1302,7 +1302,7 @@ static void sh_mmcif_init_ocr(struct sh_mmcif_host *host) > dev_warn(mmc_dev(mmc), "Platform OCR mask is ignored\n"); > } > > -static int __devinit sh_mmcif_probe(struct platform_device *pdev) > +static int sh_mmcif_probe(struct platform_device *pdev) > { > int ret = 0, irq[2]; > struct mmc_host *mmc; > diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c > index 6a9a625..9125684 100644 > --- a/drivers/mmc/host/sh_mobile_sdhi.c > +++ b/drivers/mmc/host/sh_mobile_sdhi.c > @@ -117,7 +117,7 @@ static const struct sh_mobile_sdhi_ops sdhi_ops = { > .cd_wakeup = sh_mobile_sdhi_cd_wakeup, > }; > > -static int __devinit sh_mobile_sdhi_probe(struct platform_device *pdev) > +static int sh_mobile_sdhi_probe(struct platform_device *pdev) > { > struct sh_mobile_sdhi *priv; > struct tmio_mmc_data *mmc_data; > diff --git a/drivers/mmc/host/tmio_mmc.c b/drivers/mmc/host/tmio_mmc.c > index 2f9bbdf..f415be8 100644 > --- a/drivers/mmc/host/tmio_mmc.c > +++ b/drivers/mmc/host/tmio_mmc.c > @@ -57,7 +57,7 @@ static int tmio_mmc_resume(struct platform_device *dev) > #define tmio_mmc_resume NULL > #endif > > -static int __devinit tmio_mmc_probe(struct platform_device *pdev) > +static int tmio_mmc_probe(struct platform_device *pdev) > { > const struct mfd_cell *cell = mfd_get_cell(pdev); > struct tmio_mmc_data *pdata; > diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c > index 0d8a9bb..50bf495 100644 > --- a/drivers/mmc/host/tmio_mmc_pio.c > +++ b/drivers/mmc/host/tmio_mmc_pio.c > @@ -918,7 +918,7 @@ static void tmio_mmc_init_ocr(struct tmio_mmc_host *host) > dev_warn(mmc_dev(mmc), "Platform OCR mask is ignored\n"); > } > > -int __devinit tmio_mmc_host_probe(struct tmio_mmc_host **host, > +int tmio_mmc_host_probe(struct tmio_mmc_host **host, > struct platform_device *pdev, > struct tmio_mmc_data *pdata) > { > diff --git a/drivers/mmc/host/via-sdmmc.c b/drivers/mmc/host/via-sdmmc.c > index d8f8a5e..1f1a252 100644 > --- a/drivers/mmc/host/via-sdmmc.c > +++ b/drivers/mmc/host/via-sdmmc.c > @@ -1082,7 +1082,7 @@ static void via_init_mmc_host(struct via_crdr_mmc_host *host) > msleep(1); > } > > -static int __devinit via_sd_probe(struct pci_dev *pcidev, > +static int via_sd_probe(struct pci_dev *pcidev, > const struct pci_device_id *id) > { > struct mmc_host *mmc; > diff --git a/drivers/mmc/host/wbsd.c b/drivers/mmc/host/wbsd.c > index 3c8ef59..d71358a 100644 > --- a/drivers/mmc/host/wbsd.c > +++ b/drivers/mmc/host/wbsd.c > @@ -1196,7 +1196,7 @@ static irqreturn_t wbsd_irq(int irq, void *dev_id) > * Allocate/free MMC structure. > */ > > -static int __devinit wbsd_alloc_mmc(struct device *dev) > +static int wbsd_alloc_mmc(struct device *dev) > { > struct mmc_host *mmc; > struct wbsd_host *host; > @@ -1288,7 +1288,7 @@ static void wbsd_free_mmc(struct device *dev) > * Scan for known chip id:s > */ > > -static int __devinit wbsd_scan(struct wbsd_host *host) > +static int wbsd_scan(struct wbsd_host *host) > { > int i, j, k; > int id; > @@ -1344,7 +1344,7 @@ static int __devinit wbsd_scan(struct wbsd_host *host) > * Allocate/free io port ranges > */ > > -static int __devinit wbsd_request_region(struct wbsd_host *host, int base) > +static int wbsd_request_region(struct wbsd_host *host, int base) > { > if (base & 0x7) > return -EINVAL; > @@ -1374,7 +1374,7 @@ static void wbsd_release_regions(struct wbsd_host *host) > * Allocate/free DMA port and buffer > */ > > -static void __devinit wbsd_request_dma(struct wbsd_host *host, int dma) > +static void wbsd_request_dma(struct wbsd_host *host, int dma) > { > if (dma < 0) > return; > @@ -1452,7 +1452,7 @@ static void wbsd_release_dma(struct wbsd_host *host) > * Allocate/free IRQ. > */ > > -static int __devinit wbsd_request_irq(struct wbsd_host *host, int irq) > +static int wbsd_request_irq(struct wbsd_host *host, int irq) > { > int ret; > > @@ -1502,7 +1502,7 @@ static void wbsd_release_irq(struct wbsd_host *host) > * Allocate all resources for the host. > */ > > -static int __devinit wbsd_request_resources(struct wbsd_host *host, > +static int wbsd_request_resources(struct wbsd_host *host, > int base, int irq, int dma) > { > int ret; > @@ -1644,7 +1644,7 @@ static void wbsd_chip_poweroff(struct wbsd_host *host) > * * > \*****************************************************************************/ > > -static int __devinit wbsd_init(struct device *dev, int base, int irq, int dma, > +static int wbsd_init(struct device *dev, int base, int irq, int dma, > int pnp) > { > struct wbsd_host *host = NULL; > @@ -1762,7 +1762,7 @@ static void __devexit wbsd_shutdown(struct device *dev, int pnp) > * Non-PnP > */ > > -static int __devinit wbsd_probe(struct platform_device *dev) > +static int wbsd_probe(struct platform_device *dev) > { > /* Use the module parameters for resources */ > return wbsd_init(&dev->dev, param_io, param_irq, param_dma, 0); > @@ -1781,7 +1781,7 @@ static int __devexit wbsd_remove(struct platform_device *dev) > > #ifdef CONFIG_PNP > > -static int __devinit > +static int > wbsd_pnp_probe(struct pnp_dev *pnpdev, const struct pnp_device_id *dev_id) > { > int io, irq, dma; >