From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 538DAC433DF for ; Fri, 15 May 2020 07:46:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 10FFD206F4 for ; Fri, 15 May 2020 07:46:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="pTa7/TQK" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726848AbgEOHqq (ORCPT ); Fri, 15 May 2020 03:46:46 -0400 Received: from Mailgw01.mediatek.com ([1.203.163.78]:50105 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726622AbgEOHqp (ORCPT ); Fri, 15 May 2020 03:46:45 -0400 X-UUID: 31affafba9744c9bb4271d5cfe7b7585-20200515 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=2U0lk+3AOLEFSBOQ1vgqYzwMDxMh7x/MPGzDHrIVnCI=; b=pTa7/TQKo3fNfcgb64IZqrz3/hQVIAkKaZMUKjyUczzczsLzL+Q+sp3s3dc81LW4uvZCHbMU3QuWPXeI4dJADjaxYtu3Ott/a1PCCcT6dX3MVyVjROuZIy/9ACmbxUJK2HvAawLXKfVBV6KCLb4WkfJzB+P8GmxRJUHhKzWQEOI=; X-UUID: 31affafba9744c9bb4271d5cfe7b7585-20200515 Received: from mtkcas32.mediatek.inc [(172.27.4.253)] by mailgw01.mediatek.com (envelope-from ) (mailgw01.mediatek.com ESMTP with TLS) with ESMTP id 1939548208; Fri, 15 May 2020 15:46:36 +0800 Received: from MTKCAS32.mediatek.inc (172.27.4.184) by MTKMBS31DR.mediatek.inc (172.27.6.102) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 15 May 2020 15:46:20 +0800 Received: from [10.17.3.153] (10.17.3.153) by MTKCAS32.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 15 May 2020 15:46:18 +0800 Message-ID: <1589528699.26119.9.camel@mhfsdcap03> Subject: Re: [PATCH v2 23/33] iommu/mediatek-v1 Convert to probe/release_device() call-backs From: Yong Wu To: Joerg Roedel CC: Will Deacon , Robin Murphy , Marek Szyprowski , Matthias Brugger , , , Joerg Roedel , Date: Fri, 15 May 2020 15:44:59 +0800 In-Reply-To: <20200414131542.25608-24-joro@8bytes.org> References: <20200414131542.25608-1-joro@8bytes.org> <20200414131542.25608-24-joro@8bytes.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: DC9F0778244307DCB8C3501248E21D926B064F0B379D3F613D6C01BFC66E127F2000:8 X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gVHVlLCAyMDIwLTA0LTE0IGF0IDE1OjE1ICswMjAwLCBKb2VyZyBSb2VkZWwgd3JvdGU6DQo+ IEZyb206IEpvZXJnIFJvZWRlbCA8anJvZWRlbEBzdXNlLmRlPg0KPiANCj4gQ29udmVydCB0aGUg TWVkaWF0ZWstdjEgSU9NTVUgZHJpdmVyIHRvIHVzZSB0aGUgcHJvYmVfZGV2aWNlKCkgYW5kDQo+ IHJlbGVhc2VfZGV2aWNlKCkgY2FsbC1iYWNrcyBvZiBpb21tdV9vcHMsIHNvIHRoYXQgdGhlIGlv bW11IGNvcmUgY29kZQ0KPiBkb2VzIHRoZSBncm91cCBhbmQgc3lzZnMgc2V0dXAuDQo+IA0KPiBT aWduZWQtb2ZmLWJ5OiBKb2VyZyBSb2VkZWwgPGpyb2VkZWxAc3VzZS5kZT4NCj4gLS0tDQo+ICBk cml2ZXJzL2lvbW11L210a19pb21tdV92MS5jIHwgNTAgKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ICAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgMzAgZGVs ZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9tdGtfaW9tbXVfdjEu YyBiL2RyaXZlcnMvaW9tbXUvbXRrX2lvbW11X3YxLmMNCj4gaW5kZXggYTMxYmUwNTYwMWM5Li43 YmRkNzRjN2NiOWYgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvaW9tbXUvbXRrX2lvbW11X3YxLmMN Cj4gKysrIGIvZHJpdmVycy9pb21tdS9tdGtfaW9tbXVfdjEuYw0KPiBAQCAtNDE2LDE0ICs0MTYs MTIgQEAgc3RhdGljIGludCBtdGtfaW9tbXVfY3JlYXRlX21hcHBpbmcoc3RydWN0IGRldmljZSAq ZGV2LA0KPiAgCXJldHVybiAwOw0KPiAgfQ0KPiAgDQo+IC1zdGF0aWMgaW50IG10a19pb21tdV9h ZGRfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gK3N0YXRpYyBzdHJ1Y3QgaW9tbXVfZGV2 aWNlICptdGtfaW9tbXVfcHJvYmVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gIHsNCj4g IAlzdHJ1Y3QgaW9tbXVfZndzcGVjICpmd3NwZWMgPSBkZXZfaW9tbXVfZndzcGVjX2dldChkZXYp Ow0KPiAtCXN0cnVjdCBkbWFfaW9tbXVfbWFwcGluZyAqbXRrX21hcHBpbmc7DQo+ICAJc3RydWN0 IG9mX3BoYW5kbGVfYXJncyBpb21tdV9zcGVjOw0KPiAgCXN0cnVjdCBvZl9waGFuZGxlX2l0ZXJh dG9yIGl0Ow0KPiAgCXN0cnVjdCBtdGtfaW9tbXVfZGF0YSAqZGF0YTsNCj4gLQlzdHJ1Y3QgaW9t bXVfZ3JvdXAgKmdyb3VwOw0KPiAgCWludCBlcnI7DQo+ICANCj4gIAlvZl9mb3JfZWFjaF9waGFu ZGxlKCZpdCwgZXJyLCBkZXYtPm9mX25vZGUsICJpb21tdXMiLA0KPiBAQCAtNDQyLDM1ICs0NDAs MjggQEAgc3RhdGljIGludCBtdGtfaW9tbXVfYWRkX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYp DQo+ICAJfQ0KPiAgDQo+ICAJaWYgKCFmd3NwZWMgfHwgZndzcGVjLT5vcHMgIT0gJm10a19pb21t dV9vcHMpDQo+IC0JCXJldHVybiAtRU5PREVWOyAvKiBOb3QgYSBpb21tdSBjbGllbnQgZGV2aWNl ICovDQo+ICsJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOyAvKiBOb3QgYSBpb21tdSBjbGllbnQg ZGV2aWNlICovDQo+ICANCj4gLQkvKg0KPiAtCSAqIFRoaXMgaXMgYSBzaG9ydC10ZXJtIGJvZGdl IGJlY2F1c2UgdGhlIEFSTSBETUEgY29kZSBkb2Vzbid0DQo+IC0JICogdW5kZXJzdGFuZCBtdWx0 aS1kZXZpY2UgZ3JvdXBzLCBidXQgd2UgaGF2ZSB0byBjYWxsIGludG8gaXQNCj4gLQkgKiBzdWNj ZXNzZnVsbHkgKGFuZCBub3QganVzdCByZWx5IG9uIGEgbm9ybWFsIElPTU1VIEFQSSBhdHRhY2gN Cj4gLQkgKiBoZXJlKSBpbiBvcmRlciB0byBzZXQgdGhlIGNvcnJlY3QgRE1BIEFQSSBvcHMgb24g QGRldi4NCj4gLQkgKi8NCj4gLQlncm91cCA9IGlvbW11X2dyb3VwX2FsbG9jKCk7DQo+IC0JaWYg KElTX0VSUihncm91cCkpDQo+IC0JCXJldHVybiBQVFJfRVJSKGdyb3VwKTsNCj4gKwlkYXRhID0g ZGV2X2lvbW11X3ByaXZfZ2V0KGRldik7DQo+ICANCj4gLQllcnIgPSBpb21tdV9ncm91cF9hZGRf ZGV2aWNlKGdyb3VwLCBkZXYpOw0KPiAtCWlvbW11X2dyb3VwX3B1dChncm91cCk7DQo+IC0JaWYg KGVycikNCj4gLQkJcmV0dXJuIGVycjsNCj4gKwlyZXR1cm4gJmRhdGEtPmlvbW11Ow0KPiArfQ0K PiAgDQo+IC0JZGF0YSA9IGRldl9pb21tdV9wcml2X2dldChkZXYpOw0KPiArc3RhdGljIHZvaWQg bXRrX2lvbW11X3Byb2JlX2ZpbmFsaXplKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gK3sNCj4gKwlz dHJ1Y3QgZG1hX2lvbW11X21hcHBpbmcgKm10a19tYXBwaW5nOw0KPiArCXN0cnVjdCBtdGtfaW9t bXVfZGF0YSAqZGF0YTsNCj4gKwlpbnQgZXJyOw0KPiArDQo+ICsJZGF0YSAgICAgICAgPSBkZXZf aW9tbXVfcHJpdl9nZXQoZGV2KTsNCj4gIAltdGtfbWFwcGluZyA9IGRhdGEtPmRldi0+YXJjaGRh dGEuaW9tbXU7DQo+IC0JZXJyID0gYXJtX2lvbW11X2F0dGFjaF9kZXZpY2UoZGV2LCBtdGtfbWFw cGluZyk7DQo+IC0JaWYgKGVycikgew0KPiAtCQlpb21tdV9ncm91cF9yZW1vdmVfZGV2aWNlKGRl dik7DQo+IC0JCXJldHVybiBlcnI7DQo+IC0JfQ0KPiAgDQo+IC0JcmV0dXJuIGlvbW11X2Rldmlj ZV9saW5rKCZkYXRhLT5pb21tdSwgZGV2KTsNCj4gKwllcnIgPSBhcm1faW9tbXVfYXR0YWNoX2Rl dmljZShkZXYsIG10a19tYXBwaW5nKTsNCj4gKwlpZiAoZXJyKQ0KPiArCQlkZXZfZXJyKGRldiwg IkNhbid0IGNyZWF0ZSBJT01NVSBtYXBwaW5nIC0gRE1BLU9QUyB3aWxsIG5vdCB3b3JrXG4iKTsN Cg0KDQpIaSBKb2VyZywNCg0KICAgICBUaGFua3MgdmVyeSBtdWNoIGZvciB0aGlzIHBhdGNoLg0K DQogICAgIFRoaXMgYXJtX2lvbW11X2F0dGFjaF9kZXZpY2UgaXMgY2FsbGVkIGp1c3QgYXMgd2Ug ZXhwZWN0ZWQuDQoNCiAgICAgQnV0IGl0IHdpbGwgZmFpbCBpbiB0aGlzIGNhbGxzdGFjayBhcyB0 aGUgZ3JvdXAtPm11dGV4IHdhcyB0cmllZCB0bw0KYmUgcmUtbG9ja2VkLi4uDQoNCls8YzA5Mzhl OGM+XSAoaW9tbXVfYXR0YWNoX2RldmljZSkgZnJvbSBbPGMwMzE3NTkwPl0NCihfX2FybV9pb21t dV9hdHRhY2hfZGV2aWNlKzB4MzQvMHg5MCkNCls8YzAzMTc1OTA+XSAoX19hcm1faW9tbXVfYXR0 YWNoX2RldmljZSkgZnJvbSBbPGMwMzE3NWY4Pl0NCihhcm1faW9tbXVfYXR0YWNoX2RldmljZSsw eGMvMHgyMCkNCls8YzAzMTc1Zjg+XSAoYXJtX2lvbW11X2F0dGFjaF9kZXZpY2UpIGZyb20gWzxj MDk0MzJjYz5dDQoobXRrX2lvbW11X3Byb2JlX2ZpbmFsaXplKzB4MzQvMHg1MCkNCls8YzA5NDMy Y2M+XSAobXRrX2lvbW11X3Byb2JlX2ZpbmFsaXplKSBmcm9tIFs8YzA5M2E4YWM+XQ0KKGJ1c19p b21tdV9wcm9iZSsweDJhOC8weDJjNCkNCls8YzA5M2E4YWM+XSAoYnVzX2lvbW11X3Byb2JlKSBm cm9tIFs8YzA5M2E5NTA+XSAoYnVzX3NldF9pb21tdQ0KKzB4ODgvMHhkNCkNCls8YzA5M2E5NTA+ XSAoYnVzX3NldF9pb21tdSkgZnJvbSBbPGMwOTQzYzc0Pl0gKG10a19pb21tdV9wcm9iZQ0KKzB4 MmY4LzB4MzY0KQ0KDQoNCj4gIH0NCj4gIA0KPiAtc3RhdGljIHZvaWQgbXRrX2lvbW11X3JlbW92 ZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQ0KPiArc3RhdGljIHZvaWQgbXRrX2lvbW11X3Jl bGVhc2VfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gIHsNCj4gIAlzdHJ1Y3QgaW9tbXVf ZndzcGVjICpmd3NwZWMgPSBkZXZfaW9tbXVfZndzcGVjX2dldChkZXYpOw0KPiAgCXN0cnVjdCBt dGtfaW9tbXVfZGF0YSAqZGF0YTsNCj4gQEAgLTQ3OSw5ICs0NzAsNiBAQCBzdGF0aWMgdm9pZCBt dGtfaW9tbXVfcmVtb3ZlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICAJCXJldHVybjsN Cj4gIA0KPiAgCWRhdGEgPSBkZXZfaW9tbXVfcHJpdl9nZXQoZGV2KTsNCj4gLQlpb21tdV9kZXZp Y2VfdW5saW5rKCZkYXRhLT5pb21tdSwgZGV2KTsNCj4gLQ0KPiAtCWlvbW11X2dyb3VwX3JlbW92 ZV9kZXZpY2UoZGV2KTsNCj4gIAlpb21tdV9md3NwZWNfZnJlZShkZXYpOw0KPiAgfQ0KPiAgDQo+ IEBAIC01MzQsOCArNTIyLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW9tbXVfb3BzIG10a19p b21tdV9vcHMgPSB7DQo+ICAJLm1hcAkJPSBtdGtfaW9tbXVfbWFwLA0KPiAgCS51bm1hcAkJPSBt dGtfaW9tbXVfdW5tYXAsDQo+ICAJLmlvdmFfdG9fcGh5cwk9IG10a19pb21tdV9pb3ZhX3RvX3Bo eXMsDQo+IC0JLmFkZF9kZXZpY2UJPSBtdGtfaW9tbXVfYWRkX2RldmljZSwNCj4gLQkucmVtb3Zl X2RldmljZQk9IG10a19pb21tdV9yZW1vdmVfZGV2aWNlLA0KPiArCS5wcm9iZV9kZXZpY2UJPSBt dGtfaW9tbXVfcHJvYmVfZGV2aWNlLA0KPiArCS5wcm9iZV9maW5hbGl6ZSA9IG10a19pb21tdV9w cm9iZV9maW5hbGl6ZSwNCj4gKwkucmVsZWFzZV9kZXZpY2UJPSBtdGtfaW9tbXVfcmVsZWFzZV9k ZXZpY2UsDQo+ICsJLmRldmljZV9ncm91cAk9IGdlbmVyaWNfZGV2aWNlX2dyb3VwLA0KPiAgCS5w Z3NpemVfYml0bWFwCT0gfjBVTCA8PCBNVDI3MDFfSU9NTVVfUEFHRV9TSElGVCwNCj4gIH07DQo+ ICANCg0K From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <1589528699.26119.9.camel@mhfsdcap03> Subject: Re: [PATCH v2 23/33] iommu/mediatek-v1 Convert to probe/release_device() call-backs From: Yong Wu Date: Fri, 15 May 2020 15:44:59 +0800 In-Reply-To: <20200414131542.25608-24-joro@8bytes.org> References: <20200414131542.25608-1-joro@8bytes.org> <20200414131542.25608-24-joro@8bytes.org> Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org List-ID: To: Joerg Roedel Cc: Will Deacon , Robin Murphy , Marek Szyprowski , Matthias Brugger , linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, Joerg Roedel , linux-mediatek@lists.infradead.org T24gVHVlLCAyMDIwLTA0LTE0IGF0IDE1OjE1ICswMjAwLCBKb2VyZyBSb2VkZWwgd3JvdGU6DQo+ IEZyb206IEpvZXJnIFJvZWRlbCA8anJvZWRlbEBzdXNlLmRlPg0KPiANCj4gQ29udmVydCB0aGUg TWVkaWF0ZWstdjEgSU9NTVUgZHJpdmVyIHRvIHVzZSB0aGUgcHJvYmVfZGV2aWNlKCkgYW5kDQo+ IHJlbGVhc2VfZGV2aWNlKCkgY2FsbC1iYWNrcyBvZiBpb21tdV9vcHMsIHNvIHRoYXQgdGhlIGlv bW11IGNvcmUgY29kZQ0KPiBkb2VzIHRoZSBncm91cCBhbmQgc3lzZnMgc2V0dXAuDQo+IA0KPiBT aWduZWQtb2ZmLWJ5OiBKb2VyZyBSb2VkZWwgPGpyb2VkZWxAc3VzZS5kZT4NCj4gLS0tDQo+ICBk cml2ZXJzL2lvbW11L210a19pb21tdV92MS5jIHwgNTAgKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ICAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgMzAgZGVs ZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9tdGtfaW9tbXVfdjEu YyBiL2RyaXZlcnMvaW9tbXUvbXRrX2lvbW11X3YxLmMNCj4gaW5kZXggYTMxYmUwNTYwMWM5Li43 YmRkNzRjN2NiOWYgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvaW9tbXUvbXRrX2lvbW11X3YxLmMN Cj4gKysrIGIvZHJpdmVycy9pb21tdS9tdGtfaW9tbXVfdjEuYw0KPiBAQCAtNDE2LDE0ICs0MTYs MTIgQEAgc3RhdGljIGludCBtdGtfaW9tbXVfY3JlYXRlX21hcHBpbmcoc3RydWN0IGRldmljZSAq ZGV2LA0KPiAgCXJldHVybiAwOw0KPiAgfQ0KPiAgDQo+IC1zdGF0aWMgaW50IG10a19pb21tdV9h ZGRfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gK3N0YXRpYyBzdHJ1Y3QgaW9tbXVfZGV2 aWNlICptdGtfaW9tbXVfcHJvYmVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gIHsNCj4g IAlzdHJ1Y3QgaW9tbXVfZndzcGVjICpmd3NwZWMgPSBkZXZfaW9tbXVfZndzcGVjX2dldChkZXYp Ow0KPiAtCXN0cnVjdCBkbWFfaW9tbXVfbWFwcGluZyAqbXRrX21hcHBpbmc7DQo+ICAJc3RydWN0 IG9mX3BoYW5kbGVfYXJncyBpb21tdV9zcGVjOw0KPiAgCXN0cnVjdCBvZl9waGFuZGxlX2l0ZXJh dG9yIGl0Ow0KPiAgCXN0cnVjdCBtdGtfaW9tbXVfZGF0YSAqZGF0YTsNCj4gLQlzdHJ1Y3QgaW9t bXVfZ3JvdXAgKmdyb3VwOw0KPiAgCWludCBlcnI7DQo+ICANCj4gIAlvZl9mb3JfZWFjaF9waGFu ZGxlKCZpdCwgZXJyLCBkZXYtPm9mX25vZGUsICJpb21tdXMiLA0KPiBAQCAtNDQyLDM1ICs0NDAs MjggQEAgc3RhdGljIGludCBtdGtfaW9tbXVfYWRkX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYp DQo+ICAJfQ0KPiAgDQo+ICAJaWYgKCFmd3NwZWMgfHwgZndzcGVjLT5vcHMgIT0gJm10a19pb21t dV9vcHMpDQo+IC0JCXJldHVybiAtRU5PREVWOyAvKiBOb3QgYSBpb21tdSBjbGllbnQgZGV2aWNl ICovDQo+ICsJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOyAvKiBOb3QgYSBpb21tdSBjbGllbnQg ZGV2aWNlICovDQo+ICANCj4gLQkvKg0KPiAtCSAqIFRoaXMgaXMgYSBzaG9ydC10ZXJtIGJvZGdl IGJlY2F1c2UgdGhlIEFSTSBETUEgY29kZSBkb2Vzbid0DQo+IC0JICogdW5kZXJzdGFuZCBtdWx0 aS1kZXZpY2UgZ3JvdXBzLCBidXQgd2UgaGF2ZSB0byBjYWxsIGludG8gaXQNCj4gLQkgKiBzdWNj ZXNzZnVsbHkgKGFuZCBub3QganVzdCByZWx5IG9uIGEgbm9ybWFsIElPTU1VIEFQSSBhdHRhY2gN Cj4gLQkgKiBoZXJlKSBpbiBvcmRlciB0byBzZXQgdGhlIGNvcnJlY3QgRE1BIEFQSSBvcHMgb24g QGRldi4NCj4gLQkgKi8NCj4gLQlncm91cCA9IGlvbW11X2dyb3VwX2FsbG9jKCk7DQo+IC0JaWYg KElTX0VSUihncm91cCkpDQo+IC0JCXJldHVybiBQVFJfRVJSKGdyb3VwKTsNCj4gKwlkYXRhID0g ZGV2X2lvbW11X3ByaXZfZ2V0KGRldik7DQo+ICANCj4gLQllcnIgPSBpb21tdV9ncm91cF9hZGRf ZGV2aWNlKGdyb3VwLCBkZXYpOw0KPiAtCWlvbW11X2dyb3VwX3B1dChncm91cCk7DQo+IC0JaWYg KGVycikNCj4gLQkJcmV0dXJuIGVycjsNCj4gKwlyZXR1cm4gJmRhdGEtPmlvbW11Ow0KPiArfQ0K PiAgDQo+IC0JZGF0YSA9IGRldl9pb21tdV9wcml2X2dldChkZXYpOw0KPiArc3RhdGljIHZvaWQg bXRrX2lvbW11X3Byb2JlX2ZpbmFsaXplKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gK3sNCj4gKwlz dHJ1Y3QgZG1hX2lvbW11X21hcHBpbmcgKm10a19tYXBwaW5nOw0KPiArCXN0cnVjdCBtdGtfaW9t bXVfZGF0YSAqZGF0YTsNCj4gKwlpbnQgZXJyOw0KPiArDQo+ICsJZGF0YSAgICAgICAgPSBkZXZf aW9tbXVfcHJpdl9nZXQoZGV2KTsNCj4gIAltdGtfbWFwcGluZyA9IGRhdGEtPmRldi0+YXJjaGRh dGEuaW9tbXU7DQo+IC0JZXJyID0gYXJtX2lvbW11X2F0dGFjaF9kZXZpY2UoZGV2LCBtdGtfbWFw cGluZyk7DQo+IC0JaWYgKGVycikgew0KPiAtCQlpb21tdV9ncm91cF9yZW1vdmVfZGV2aWNlKGRl dik7DQo+IC0JCXJldHVybiBlcnI7DQo+IC0JfQ0KPiAgDQo+IC0JcmV0dXJuIGlvbW11X2Rldmlj ZV9saW5rKCZkYXRhLT5pb21tdSwgZGV2KTsNCj4gKwllcnIgPSBhcm1faW9tbXVfYXR0YWNoX2Rl dmljZShkZXYsIG10a19tYXBwaW5nKTsNCj4gKwlpZiAoZXJyKQ0KPiArCQlkZXZfZXJyKGRldiwg IkNhbid0IGNyZWF0ZSBJT01NVSBtYXBwaW5nIC0gRE1BLU9QUyB3aWxsIG5vdCB3b3JrXG4iKTsN Cg0KDQpIaSBKb2VyZywNCg0KICAgICBUaGFua3MgdmVyeSBtdWNoIGZvciB0aGlzIHBhdGNoLg0K DQogICAgIFRoaXMgYXJtX2lvbW11X2F0dGFjaF9kZXZpY2UgaXMgY2FsbGVkIGp1c3QgYXMgd2Ug ZXhwZWN0ZWQuDQoNCiAgICAgQnV0IGl0IHdpbGwgZmFpbCBpbiB0aGlzIGNhbGxzdGFjayBhcyB0 aGUgZ3JvdXAtPm11dGV4IHdhcyB0cmllZCB0bw0KYmUgcmUtbG9ja2VkLi4uDQoNCls8YzA5Mzhl OGM+XSAoaW9tbXVfYXR0YWNoX2RldmljZSkgZnJvbSBbPGMwMzE3NTkwPl0NCihfX2FybV9pb21t dV9hdHRhY2hfZGV2aWNlKzB4MzQvMHg5MCkNCls8YzAzMTc1OTA+XSAoX19hcm1faW9tbXVfYXR0 YWNoX2RldmljZSkgZnJvbSBbPGMwMzE3NWY4Pl0NCihhcm1faW9tbXVfYXR0YWNoX2RldmljZSsw eGMvMHgyMCkNCls8YzAzMTc1Zjg+XSAoYXJtX2lvbW11X2F0dGFjaF9kZXZpY2UpIGZyb20gWzxj MDk0MzJjYz5dDQoobXRrX2lvbW11X3Byb2JlX2ZpbmFsaXplKzB4MzQvMHg1MCkNCls8YzA5NDMy Y2M+XSAobXRrX2lvbW11X3Byb2JlX2ZpbmFsaXplKSBmcm9tIFs8YzA5M2E4YWM+XQ0KKGJ1c19p b21tdV9wcm9iZSsweDJhOC8weDJjNCkNCls8YzA5M2E4YWM+XSAoYnVzX2lvbW11X3Byb2JlKSBm cm9tIFs8YzA5M2E5NTA+XSAoYnVzX3NldF9pb21tdQ0KKzB4ODgvMHhkNCkNCls8YzA5M2E5NTA+ XSAoYnVzX3NldF9pb21tdSkgZnJvbSBbPGMwOTQzYzc0Pl0gKG10a19pb21tdV9wcm9iZQ0KKzB4 MmY4LzB4MzY0KQ0KDQoNCj4gIH0NCj4gIA0KPiAtc3RhdGljIHZvaWQgbXRrX2lvbW11X3JlbW92 ZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQ0KPiArc3RhdGljIHZvaWQgbXRrX2lvbW11X3Jl bGVhc2VfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gIHsNCj4gIAlzdHJ1Y3QgaW9tbXVf ZndzcGVjICpmd3NwZWMgPSBkZXZfaW9tbXVfZndzcGVjX2dldChkZXYpOw0KPiAgCXN0cnVjdCBt dGtfaW9tbXVfZGF0YSAqZGF0YTsNCj4gQEAgLTQ3OSw5ICs0NzAsNiBAQCBzdGF0aWMgdm9pZCBt dGtfaW9tbXVfcmVtb3ZlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICAJCXJldHVybjsN Cj4gIA0KPiAgCWRhdGEgPSBkZXZfaW9tbXVfcHJpdl9nZXQoZGV2KTsNCj4gLQlpb21tdV9kZXZp Y2VfdW5saW5rKCZkYXRhLT5pb21tdSwgZGV2KTsNCj4gLQ0KPiAtCWlvbW11X2dyb3VwX3JlbW92 ZV9kZXZpY2UoZGV2KTsNCj4gIAlpb21tdV9md3NwZWNfZnJlZShkZXYpOw0KPiAgfQ0KPiAgDQo+ IEBAIC01MzQsOCArNTIyLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW9tbXVfb3BzIG10a19p b21tdV9vcHMgPSB7DQo+ICAJLm1hcAkJPSBtdGtfaW9tbXVfbWFwLA0KPiAgCS51bm1hcAkJPSBt dGtfaW9tbXVfdW5tYXAsDQo+ICAJLmlvdmFfdG9fcGh5cwk9IG10a19pb21tdV9pb3ZhX3RvX3Bo eXMsDQo+IC0JLmFkZF9kZXZpY2UJPSBtdGtfaW9tbXVfYWRkX2RldmljZSwNCj4gLQkucmVtb3Zl X2RldmljZQk9IG10a19pb21tdV9yZW1vdmVfZGV2aWNlLA0KPiArCS5wcm9iZV9kZXZpY2UJPSBt dGtfaW9tbXVfcHJvYmVfZGV2aWNlLA0KPiArCS5wcm9iZV9maW5hbGl6ZSA9IG10a19pb21tdV9w cm9iZV9maW5hbGl6ZSwNCj4gKwkucmVsZWFzZV9kZXZpY2UJPSBtdGtfaW9tbXVfcmVsZWFzZV9k ZXZpY2UsDQo+ICsJLmRldmljZV9ncm91cAk9IGdlbmVyaWNfZGV2aWNlX2dyb3VwLA0KPiAgCS5w Z3NpemVfYml0bWFwCT0gfjBVTCA8PCBNVDI3MDFfSU9NTVVfUEFHRV9TSElGVCwNCj4gIH07DQo+ ICANCg0K From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.1 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 577FEC433E0 for ; Fri, 15 May 2020 07:52:00 +0000 (UTC) Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 16D31205CB for ; Fri, 15 May 2020 07:51:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="pTa7/TQK" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 16D31205CB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id D84F588CFE; Fri, 15 May 2020 07:51:59 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DCtPuexmgyvu; Fri, 15 May 2020 07:51:55 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by whitealder.osuosl.org (Postfix) with ESMTP id 2ECBD88D3C; Fri, 15 May 2020 07:51:55 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 0A3B8C0859; Fri, 15 May 2020 07:51:55 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 1D72AC016F for ; Fri, 15 May 2020 07:51:53 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 0237C88908 for ; Fri, 15 May 2020 07:51:53 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UTspYpWWT0ft for ; Fri, 15 May 2020 07:51:48 +0000 (UTC) X-Greylist: delayed 00:05:02 by SQLgrey-1.7.6 Received: from mailgw01.mediatek.com (unknown [1.203.163.78]) by hemlock.osuosl.org (Postfix) with ESMTP id 358B5888D3 for ; Fri, 15 May 2020 07:51:46 +0000 (UTC) X-UUID: 31affafba9744c9bb4271d5cfe7b7585-20200515 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=2U0lk+3AOLEFSBOQ1vgqYzwMDxMh7x/MPGzDHrIVnCI=; b=pTa7/TQKo3fNfcgb64IZqrz3/hQVIAkKaZMUKjyUczzczsLzL+Q+sp3s3dc81LW4uvZCHbMU3QuWPXeI4dJADjaxYtu3Ott/a1PCCcT6dX3MVyVjROuZIy/9ACmbxUJK2HvAawLXKfVBV6KCLb4WkfJzB+P8GmxRJUHhKzWQEOI=; X-UUID: 31affafba9744c9bb4271d5cfe7b7585-20200515 Received: from mtkcas32.mediatek.inc [(172.27.4.253)] by mailgw01.mediatek.com (envelope-from ) (mailgw01.mediatek.com ESMTP with TLS) with ESMTP id 1939548208; Fri, 15 May 2020 15:46:36 +0800 Received: from MTKCAS32.mediatek.inc (172.27.4.184) by MTKMBS31DR.mediatek.inc (172.27.6.102) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 15 May 2020 15:46:20 +0800 Received: from [10.17.3.153] (10.17.3.153) by MTKCAS32.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 15 May 2020 15:46:18 +0800 Message-ID: <1589528699.26119.9.camel@mhfsdcap03> Subject: Re: [PATCH v2 23/33] iommu/mediatek-v1 Convert to probe/release_device() call-backs From: Yong Wu To: Joerg Roedel Date: Fri, 15 May 2020 15:44:59 +0800 In-Reply-To: <20200414131542.25608-24-joro@8bytes.org> References: <20200414131542.25608-1-joro@8bytes.org> <20200414131542.25608-24-joro@8bytes.org> X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: DC9F0778244307DCB8C3501248E21D926B064F0B379D3F613D6C01BFC66E127F2000:8 X-MTK: N Cc: Joerg Roedel , Will Deacon , linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, linux-mediatek@lists.infradead.org, Matthias Brugger , Robin Murphy X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Development issues for Linux IOMMU support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: iommu-bounces@lists.linux-foundation.org Sender: "iommu" On Tue, 2020-04-14 at 15:15 +0200, Joerg Roedel wrote: > From: Joerg Roedel > > Convert the Mediatek-v1 IOMMU driver to use the probe_device() and > release_device() call-backs of iommu_ops, so that the iommu core code > does the group and sysfs setup. > > Signed-off-by: Joerg Roedel > --- > drivers/iommu/mtk_iommu_v1.c | 50 +++++++++++++++--------------------- > 1 file changed, 20 insertions(+), 30 deletions(-) > > diff --git a/drivers/iommu/mtk_iommu_v1.c b/drivers/iommu/mtk_iommu_v1.c > index a31be05601c9..7bdd74c7cb9f 100644 > --- a/drivers/iommu/mtk_iommu_v1.c > +++ b/drivers/iommu/mtk_iommu_v1.c > @@ -416,14 +416,12 @@ static int mtk_iommu_create_mapping(struct device *dev, > return 0; > } > > -static int mtk_iommu_add_device(struct device *dev) > +static struct iommu_device *mtk_iommu_probe_device(struct device *dev) > { > struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev); > - struct dma_iommu_mapping *mtk_mapping; > struct of_phandle_args iommu_spec; > struct of_phandle_iterator it; > struct mtk_iommu_data *data; > - struct iommu_group *group; > int err; > > of_for_each_phandle(&it, err, dev->of_node, "iommus", > @@ -442,35 +440,28 @@ static int mtk_iommu_add_device(struct device *dev) > } > > if (!fwspec || fwspec->ops != &mtk_iommu_ops) > - return -ENODEV; /* Not a iommu client device */ > + return ERR_PTR(-ENODEV); /* Not a iommu client device */ > > - /* > - * This is a short-term bodge because the ARM DMA code doesn't > - * understand multi-device groups, but we have to call into it > - * successfully (and not just rely on a normal IOMMU API attach > - * here) in order to set the correct DMA API ops on @dev. > - */ > - group = iommu_group_alloc(); > - if (IS_ERR(group)) > - return PTR_ERR(group); > + data = dev_iommu_priv_get(dev); > > - err = iommu_group_add_device(group, dev); > - iommu_group_put(group); > - if (err) > - return err; > + return &data->iommu; > +} > > - data = dev_iommu_priv_get(dev); > +static void mtk_iommu_probe_finalize(struct device *dev) > +{ > + struct dma_iommu_mapping *mtk_mapping; > + struct mtk_iommu_data *data; > + int err; > + > + data = dev_iommu_priv_get(dev); > mtk_mapping = data->dev->archdata.iommu; > - err = arm_iommu_attach_device(dev, mtk_mapping); > - if (err) { > - iommu_group_remove_device(dev); > - return err; > - } > > - return iommu_device_link(&data->iommu, dev); > + err = arm_iommu_attach_device(dev, mtk_mapping); > + if (err) > + dev_err(dev, "Can't create IOMMU mapping - DMA-OPS will not work\n"); Hi Joerg, Thanks very much for this patch. This arm_iommu_attach_device is called just as we expected. But it will fail in this callstack as the group->mutex was tried to be re-locked... [] (iommu_attach_device) from [] (__arm_iommu_attach_device+0x34/0x90) [] (__arm_iommu_attach_device) from [] (arm_iommu_attach_device+0xc/0x20) [] (arm_iommu_attach_device) from [] (mtk_iommu_probe_finalize+0x34/0x50) [] (mtk_iommu_probe_finalize) from [] (bus_iommu_probe+0x2a8/0x2c4) [] (bus_iommu_probe) from [] (bus_set_iommu +0x88/0xd4) [] (bus_set_iommu) from [] (mtk_iommu_probe +0x2f8/0x364) > } > > -static void mtk_iommu_remove_device(struct device *dev) > +static void mtk_iommu_release_device(struct device *dev) > { > struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev); > struct mtk_iommu_data *data; > @@ -479,9 +470,6 @@ static void mtk_iommu_remove_device(struct device *dev) > return; > > data = dev_iommu_priv_get(dev); > - iommu_device_unlink(&data->iommu, dev); > - > - iommu_group_remove_device(dev); > iommu_fwspec_free(dev); > } > > @@ -534,8 +522,10 @@ static const struct iommu_ops mtk_iommu_ops = { > .map = mtk_iommu_map, > .unmap = mtk_iommu_unmap, > .iova_to_phys = mtk_iommu_iova_to_phys, > - .add_device = mtk_iommu_add_device, > - .remove_device = mtk_iommu_remove_device, > + .probe_device = mtk_iommu_probe_device, > + .probe_finalize = mtk_iommu_probe_finalize, > + .release_device = mtk_iommu_release_device, > + .device_group = generic_device_group, > .pgsize_bitmap = ~0UL << MT2701_IOMMU_PAGE_SHIFT, > }; > _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED, USER_AGENT_SANE_2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 42DE7C433DF for ; Fri, 15 May 2020 07:57:24 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0F546206B6 for ; Fri, 15 May 2020 07:57:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="NNh6SaeA"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="gV7r4GX5" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0F546206B6 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=HDvAoU6YkU2QkvJXAVyQJRlyVtm89DHQc1mHFksYg5w=; b=NNh6SaeAaEop/9 sFk96ApAMyyYLPdnofGYOV0SL4DAuqB/oPJqwbdYXoe6uyQQgLDR1rVaAVTITJS/Eq6Rk/Z8mGBPk BODl/y+aUQ7wKBqV8Zf6YwXPMyX6Y8idSqh3snHKDBDQx71dnRNn+ZK7vmaFm7gxX4tlIYrY4paIB qxsZ7AxC6EHycGE9hB9zTWhC53d32x3wl6/Z2XuRSFHEot6uKwJxDddICJMZUUr6JV28pPsRbgLv1 S2tAB8J2s8BKOd8kThqTnMcfdKFhy92HMY6Ka8LosywgFFyPwOZIq5MiVIfR6FkBRgPT6JCripjMZ ucPAgsUyBvEIBchB1bdQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jZVDa-0008PN-OO; Fri, 15 May 2020 07:57:18 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jZVDV-0008On-KJ for linux-mediatek@lists.infradead.org; Fri, 15 May 2020 07:57:17 +0000 X-UUID: c08fbdc520cc47cca20b95bd15a64a77-20200514 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=2U0lk+3AOLEFSBOQ1vgqYzwMDxMh7x/MPGzDHrIVnCI=; b=gV7r4GX5db/Kby+wDws5V6XcdN5AwVbFjn8Q39lVn/E2p3hWYh0Ep8kYWnYgJ54LErwzbUc20+MVv91XRHMQjkRIVIZiUi8PtVzGs94nav9SCQKzUqKZkjGUeghTkhFPLPw+oNZeMCqeAT7NxGq3gwa8vKGOKY0Psy8PnEj77I4=; X-UUID: c08fbdc520cc47cca20b95bd15a64a77-20200514 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 392373302; Thu, 14 May 2020 23:57:17 -0800 Received: from MTKMBS31DR.mediatek.inc (172.27.6.102) by MTKMBS62N1.mediatek.inc (172.29.193.41) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 15 May 2020 00:46:39 -0700 Received: from MTKCAS32.mediatek.inc (172.27.4.184) by MTKMBS31DR.mediatek.inc (172.27.6.102) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 15 May 2020 15:46:20 +0800 Received: from [10.17.3.153] (10.17.3.153) by MTKCAS32.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 15 May 2020 15:46:18 +0800 Message-ID: <1589528699.26119.9.camel@mhfsdcap03> Subject: Re: [PATCH v2 23/33] iommu/mediatek-v1 Convert to probe/release_device() call-backs From: Yong Wu To: Joerg Roedel Date: Fri, 15 May 2020 15:44:59 +0800 In-Reply-To: <20200414131542.25608-24-joro@8bytes.org> References: <20200414131542.25608-1-joro@8bytes.org> <20200414131542.25608-24-joro@8bytes.org> X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: DC9F0778244307DCB8C3501248E21D926B064F0B379D3F613D6C01BFC66E127F2000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200515_005713_674463_AA2036D0 X-CRM114-Status: GOOD ( 18.55 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Joerg Roedel , Will Deacon , linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, linux-mediatek@lists.infradead.org, Matthias Brugger , Robin Murphy , Marek Szyprowski Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org On Tue, 2020-04-14 at 15:15 +0200, Joerg Roedel wrote: > From: Joerg Roedel > > Convert the Mediatek-v1 IOMMU driver to use the probe_device() and > release_device() call-backs of iommu_ops, so that the iommu core code > does the group and sysfs setup. > > Signed-off-by: Joerg Roedel > --- > drivers/iommu/mtk_iommu_v1.c | 50 +++++++++++++++--------------------- > 1 file changed, 20 insertions(+), 30 deletions(-) > > diff --git a/drivers/iommu/mtk_iommu_v1.c b/drivers/iommu/mtk_iommu_v1.c > index a31be05601c9..7bdd74c7cb9f 100644 > --- a/drivers/iommu/mtk_iommu_v1.c > +++ b/drivers/iommu/mtk_iommu_v1.c > @@ -416,14 +416,12 @@ static int mtk_iommu_create_mapping(struct device *dev, > return 0; > } > > -static int mtk_iommu_add_device(struct device *dev) > +static struct iommu_device *mtk_iommu_probe_device(struct device *dev) > { > struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev); > - struct dma_iommu_mapping *mtk_mapping; > struct of_phandle_args iommu_spec; > struct of_phandle_iterator it; > struct mtk_iommu_data *data; > - struct iommu_group *group; > int err; > > of_for_each_phandle(&it, err, dev->of_node, "iommus", > @@ -442,35 +440,28 @@ static int mtk_iommu_add_device(struct device *dev) > } > > if (!fwspec || fwspec->ops != &mtk_iommu_ops) > - return -ENODEV; /* Not a iommu client device */ > + return ERR_PTR(-ENODEV); /* Not a iommu client device */ > > - /* > - * This is a short-term bodge because the ARM DMA code doesn't > - * understand multi-device groups, but we have to call into it > - * successfully (and not just rely on a normal IOMMU API attach > - * here) in order to set the correct DMA API ops on @dev. > - */ > - group = iommu_group_alloc(); > - if (IS_ERR(group)) > - return PTR_ERR(group); > + data = dev_iommu_priv_get(dev); > > - err = iommu_group_add_device(group, dev); > - iommu_group_put(group); > - if (err) > - return err; > + return &data->iommu; > +} > > - data = dev_iommu_priv_get(dev); > +static void mtk_iommu_probe_finalize(struct device *dev) > +{ > + struct dma_iommu_mapping *mtk_mapping; > + struct mtk_iommu_data *data; > + int err; > + > + data = dev_iommu_priv_get(dev); > mtk_mapping = data->dev->archdata.iommu; > - err = arm_iommu_attach_device(dev, mtk_mapping); > - if (err) { > - iommu_group_remove_device(dev); > - return err; > - } > > - return iommu_device_link(&data->iommu, dev); > + err = arm_iommu_attach_device(dev, mtk_mapping); > + if (err) > + dev_err(dev, "Can't create IOMMU mapping - DMA-OPS will not work\n"); Hi Joerg, Thanks very much for this patch. This arm_iommu_attach_device is called just as we expected. But it will fail in this callstack as the group->mutex was tried to be re-locked... [] (iommu_attach_device) from [] (__arm_iommu_attach_device+0x34/0x90) [] (__arm_iommu_attach_device) from [] (arm_iommu_attach_device+0xc/0x20) [] (arm_iommu_attach_device) from [] (mtk_iommu_probe_finalize+0x34/0x50) [] (mtk_iommu_probe_finalize) from [] (bus_iommu_probe+0x2a8/0x2c4) [] (bus_iommu_probe) from [] (bus_set_iommu +0x88/0xd4) [] (bus_set_iommu) from [] (mtk_iommu_probe +0x2f8/0x364) > } > > -static void mtk_iommu_remove_device(struct device *dev) > +static void mtk_iommu_release_device(struct device *dev) > { > struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev); > struct mtk_iommu_data *data; > @@ -479,9 +470,6 @@ static void mtk_iommu_remove_device(struct device *dev) > return; > > data = dev_iommu_priv_get(dev); > - iommu_device_unlink(&data->iommu, dev); > - > - iommu_group_remove_device(dev); > iommu_fwspec_free(dev); > } > > @@ -534,8 +522,10 @@ static const struct iommu_ops mtk_iommu_ops = { > .map = mtk_iommu_map, > .unmap = mtk_iommu_unmap, > .iova_to_phys = mtk_iommu_iova_to_phys, > - .add_device = mtk_iommu_add_device, > - .remove_device = mtk_iommu_remove_device, > + .probe_device = mtk_iommu_probe_device, > + .probe_finalize = mtk_iommu_probe_finalize, > + .release_device = mtk_iommu_release_device, > + .device_group = generic_device_group, > .pgsize_bitmap = ~0UL << MT2701_IOMMU_PAGE_SHIFT, > }; > _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek