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,URIBL_BLOCKED,USER_AGENT_SANE_1 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 7793AECE587 for ; Mon, 14 Oct 2019 16:00:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3EEFA2133F for ; Mon, 14 Oct 2019 16:00:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=st.com header.i=@st.com header.b="p8YZL7+M" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732771AbfJNQAh (ORCPT ); Mon, 14 Oct 2019 12:00:37 -0400 Received: from mx07-00178001.pphosted.com ([62.209.51.94]:60813 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726304AbfJNQAg (ORCPT ); Mon, 14 Oct 2019 12:00:36 -0400 Received: from pps.filterd (m0046037.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x9EFk60p020626; Mon, 14 Oct 2019 17:59:58 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=st.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=STMicroelectronics; bh=ErKqBaJ9aXk2WVrka5Z6q4n0v+E8sjnROHwo/kiQ3y4=; b=p8YZL7+MhGupwL4qrGMl2etKny+Rrk4+9Pym9ViuMy0U2m7Wo7w5Hqx922jvL2z1lqxy l7HHlSYZwKXI/nAk450gW301zvN6pieS478HV1s7IDBsfyO/uk+p1E9ZC/c8aDDenR/R EKXvQFJM962luLKKBjymYj/VIlonamKl1JMufUutb+6LvLCv4uqCHWFp+Y6GswcxpzNk cs0CfhCrlyGrSv/+/oII38IIwMrPwN+8DtHcxM87auQtO80OSMYzwRFw30EWvQUBwLRq gggofCrf/w6u2LjNg2wvkGwnGwIjzgFdH/ruMIFukj4blx/klSoLvkfgxWDzXKN0oBAb ng== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2vk4kwu789-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 14 Oct 2019 17:59:58 +0200 Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 707BE10003A; Mon, 14 Oct 2019 17:59:54 +0200 (CEST) Received: from Webmail-eu.st.com (sfhdag3node2.st.com [10.75.127.8]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 58D942C9353; Mon, 14 Oct 2019 17:59:54 +0200 (CEST) Received: from SFHDAG6NODE2.st.com (10.75.127.17) by SFHDAG3NODE2.st.com (10.75.127.8) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Mon, 14 Oct 2019 17:59:53 +0200 Received: from SFHDAG6NODE2.st.com ([fe80::a56f:c186:bab7:13d6]) by SFHDAG6NODE2.st.com ([fe80::a56f:c186:bab7:13d6%20]) with mapi id 15.00.1347.000; Mon, 14 Oct 2019 17:59:53 +0200 From: Olivier MOYSAN To: Jonathan Cameron CC: "knaack.h@gmx.de" , "lars@metafoo.de" , "pmeerw@pmeerw.net" , "mcoquelin.stm32@gmail.com" , Alexandre TORGUE , Fabrice GASNIER , "linux-iio@vger.kernel.org" , "linux-stm32@st-md-mailman.stormreply.com" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , Benjamin GAIGNARD Subject: Re: [PATCH][RFC] iio: core: add a class hierarchy on iio device lock Thread-Topic: [PATCH][RFC] iio: core: add a class hierarchy on iio device lock Thread-Index: AQHVgNseXkzpsLq050SI9JEr18+cxKdaLZeA Date: Mon, 14 Oct 2019 15:59:53 +0000 Message-ID: References: <20191011151314.5365-1-olivier.moysan@st.com> <20191012095747.3acd95e6@archlinux> In-Reply-To: <20191012095747.3acd95e6@archlinux> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.75.127.49] Content-Type: text/plain; charset="utf-8" Content-ID: <3D4B4D647439894D9B1D7ED3F22DB443@st.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-10-14_08:2019-10-11,2019-10-14 signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGVsbG8gSm9uYXRoYW4sDQoNClRoYW5rcyBmb3IgeW91ciBjb21tZW50Lg0KDQpPbiAxMC8xMi8x OSAxMDo1NyBBTSwgSm9uYXRoYW4gQ2FtZXJvbiB3cm90ZToNCj4gT24gRnJpLCAxMSBPY3QgMjAx OSAxNzoxMzoxNCArMDIwMA0KPiBPbGl2aWVyIE1veXNhbiA8b2xpdmllci5tb3lzYW5Ac3QuY29t PiB3cm90ZToNCj4NCj4+IFRoZSBhaW0gb2YgdGhpcyBwYXRjaCBpcyB0byBjb3JyZWN0IGEgcmVj dXJzaXZlIGxvY2tpbmcgd2FybmluZywNCj4+IGRldGVjdGVkIHdoZW4gc2V0dGluZyBDT05GSUdf UFJPVkVfTE9DS0lORyBmbGFnIChhcyBzaG93biBpbiBtZXNzYWdlIGJlbG93KS4NCj4+IFRoaXMg bWVzc2FnZSB3YXMgaW5pdGlhbGx5IHRyaWdnZXJlZCBieSB0aGUgZm9sbG93aW5nIGNhbGwgc2Vx dWVuY2UNCj4+IGluIHN0bTMyLWRmc2RtLWFkYy5jIGRyaXZlciwgd2hlbiB1c2luZyBJSU8gaGFy ZHdhcmUgY29uc3VtZXIgaW50ZXJmYWNlLg0KPj4NCj4+IGluIHN0bTMyX2Rmc2RtX3JlYWRfcmF3 KCkNCj4+IAlpaW9fZGV2aWNlX2NsYWltX2RpcmVjdF9tb2RlDQo+PiAJCW11dGV4X2xvY2soJmlu ZGlvX2Rldi0+bWxvY2spOwkJCS0+IGxvY2sgb24gZGZzZG0gZGV2aWNlDQo+PiAJaWlvX2h3X2Nv bnN1bWVyX2VuYWJsZQ0KPj4gCQlpaW9fdXBkYXRlX2J1ZmZlcnMNCj4+IAkJCW11dGV4X2xvY2so JmluZGlvX2Rldi0+bWxvY2spOwkJLT4gbG9jayBvbiBodyBjb25zdW1lciBkZXZpY2UNCj4gSG1t LiAgSSdtIG5vdCBzdXJlIEkgZm9sbG93IHRoZSBsb2dpYy4gIFRoYXQgbG9jayBpcw0KPiBmb3Ig b25lIHRoaW5nIGFuZCBvbmUgdGhpbmcgb25seSwgcHJldmVudGluZyBhY2Nlc3MNCj4gdG8gdGhl IGlpbyBkZXZpY2UgdGhhdCBhcmUgdW5zYWZlIHdoZW4gaXQgaXMgcnVubmluZw0KPiBpbiBhIGJ1 ZmZlcmVkIG1vZGUuICBXZSBzaG91bGRuJ3QgYmUgaW4gYSBwb3NpdGlvbiB3aGVyZQ0KPiB3ZSBi b3RoIHNheSBkb24ndCBkbyB0aGlzIGlmIHdlIGFyZSBpbiBidWZmZXJlZCBtb2RlLCArIGVudGVy DQo+IGJ1ZmZlcmVkIG1vZGUgd2hpbHN0IGRvaW5nIHRoaXMsIG9yIHdlIG5lZWQgc3BlY2lhbCBm dW5jdGlvbnMNCj4gZm9yIGVudGVyaW5nIGJ1ZmZlcmluZyBtb2RlIGlmIGluIHRoaXMgc3RhdGUu ICBXZSBhcmUgaW4NCj4gc29tZSBzZW5zZSBjb21iaW5pbmcgaW50ZXJuYWwgZHJpdmVyIGxvZ2lj IHdpdGggb3ZlcmFsbA0KPiBJSU8gc3RhdGVzLiAgSUlPIHNob3VsZG4ndCBjYXJlIHRoYXQgdGhl IGRldmljZSBpcyB1c2luZw0KPiB0aGUgc2FtZSBtZXRob2RzIHVuZGVyIHRoZSBob29kIGZvciBi dWZmZXJlZCBhbmQgbm9uDQo+IGJ1ZmZlcmVkIG9wZXJhdGlvbnMuDQo+DQo+IEkgY2FuJ3QgcmVh bGx5IHJlY2FsbCBob3cgdGhpcyBkcml2ZXIgd29ya3MuICAgSXMgaXQgYWN0dWFsbHkNCj4gcG9z c2libGUgdG8gaGF2ZSBtdWx0aXBsZSBod19jb25zdW1lcnMgYXQgdGhlIHNhbWUgdGltZT8NCj4N Cj4gU28gZG8gd2UgZW5kIHVwIHdpdGggbXVsdGlwbGUgYnVmZmVycyByZWdpc3RlcmVkIGFuZCBo YXZlDQo+IHRvIGRlbXV4IG91dCB0byB0aGUgcmVhZF9yYXcgKyB0aGUgYWN0dWFsIGJ1ZmZlcmVk IHBhdGg/DQo+IEdpdmVuIHdlIGhhdmUgYSBiaXQgb2YgY29kZSBzYXlpbmcgZ3JhYiBvbmUgc2Ft cGxlLCBJJ20NCj4gZ29pbmcgdG8gZ3Vlc3Mgd2UgZG9uJ3QuLi4NCj4NCj4gSWYgc28sIHRoZSB2 YXN0IG1ham9yaXR5IG9mIHRoZSBidWZmZXIgc2V0dXAgY29kZSBpbiBJSU8NCj4gaXMgaXJyZWxl dmFudCBoZXJlIGFuZCB3ZSBqdXN0IG5lZWQgdG8gY2FsbCBhIGZldyBvZg0KPiB0aGUgY2FsbGJh Y2tzIGZyb20gdGhpcyBkcml2ZXIgZGlyZWN0bHkuLi4gKEkgdGhpbmsNCj4gdGhvdWdoIEkgaGF2 ZW4ndCBjaGFzZWQgdGhyb3VnaCBldmVyeSBjb3JuZXIuDQo+DQo+IEknZCByYXRoZXIgYXZvaWQg aW50cm9kdWNpbmcgdGhpcyBuZXN0aW5nIGZvciBhIGNvcm5lcg0KPiBjYXNlIHRoYXQgbWFrZXMg bm8gJ3NlbWFudGljJyBzZW5zZSBpbiBJSU8gYXMgaXQgbGVhdmVzIHVzDQo+IGluIHR3byBzZXBh cmF0ZSBzdGF0ZXMgYXQgdGhlIHNhbWUgdGltZSB0aGF0IHRoZSBkcml2ZXINCj4gaXMgdHJ5aW5n IHRvIG1ha2UgbXV0dWFsbHkgZXhjbHVzaXZlLiAgV2UgY2FuJ3QgYm90aA0KPiBub3QgYmUgaW4g YnVmZmVyZWQgbW9kZSwgYW5kIGluIGJ1ZmZlcmVkIG1vZGUuDQo+DQo+IFRoYW5rcyBhbmQgZ29v ZCBsdWNrIHdpdGggdGhpcyBuYXN0eSBjb3JuZXIhDQo+DQo+IEpvbmF0aGFuDQo+DQpIZXJlIEkg Y29uc2lkZXIgdGhlIGZvbGxvd2luZyB1c2UgY2FzZToNCkEgc2luZ2xlIGNvbnZlcnNpb24gaXMg cGVyZm9ybWVkLiBUaGUgZGZzZG0gKGZpbHRlcikgaXMgY2hhaW5lZCB3aXRoIGEgDQpmcm9udC1l bmQsIHdoaWNoIGNhbiBiZSBhbiBBREMgb3IgYSBzZW5zb3IuIFNvIHdlIGhhdmUgdHdvIElJTyBk ZXZpY2VzLCANCnRoZSBkZnNkbSBhbmQgaXRzIGZyb250LWVuZCBoYW5kbGVkIHRocm91Z2ggdGhl IGh3IGNvbnN1bWVyIGludGVyZmFjZS4NCg0KWW91IGFyZSByaWdodC4gVGhlcmUgaXMgc29tZXRo aW5nIHdyb25nIGhlcmUsIGluIGJ1ZmZlcmVkL25vbi1idWZmZXJlZCANCm1vZGUgbWl4aW5nLg0K aWlvX2h3X2NvbnN1bWVyX2VuYWJsZSgpIGNhbGwgaXMgdXNlZCB0byBlbmFibGUgdGhlIGZyb250 LWVuZCBkZXZpY2UuIA0KQnV0IHRoaXMgaW50ZXJmYWNlIGlzIGludGVuZGVkIGZvciBidWZmZXJl ZCBtb2RlLg0KU28gdGhpcyBpcyBub3QgY29oZXJlbnQgd2l0aCB0aGUgZXhwZWN0ZWQgc2luZ2xl IGNvbnZlcnNpb24gbW9kZSwgDQppbmRlZWQuIEFub3RoZXIgaW50ZXJmYWNlIGlzIHJlcXVpcmVk IHRvIG1hbmFnZSB0aGUgZnJvbnQtZW5kIGRldmljZS4gSSANCmhhdmUgYSBwb29yIGtub3dsZWRn ZSBvZiBpaW8gZnJhbWV3b3JrLCBidXQgaXQgc2VlbXMgdG8gbWUgdGhhdCB0aGVyZSBpcyANCm5v IGludGVyZmFjZSB0byBtYW5hZ2UgdGhpcy4NCg0KTXkgdW5kZXJzdGFuZGluZyByZWdhcmRpbmcg bWxvY2ssIGlzIHRoYXQgaXQgaXMgdXNlZCB0byBwcm90ZWN0IHRoZSANCnN0YXRlIG9mIHRoZSBp aW8gZGV2aWNlLg0KSSB3ZSB3YW50IHRvIGRvIGEgY29udmVyc2lvbiBmcm9tIHRoZSBjaGFpbmVk IGRldmljZXMsIEkgdGhpbmsgd2UgbmVlZCANCnRvIGFjdGl2YXRlIHRoZSBmaXJzdCBkZXZpY2UN CmFuZCBrZWVwIGl0IHBlcmZvcm1pbmcgY29udmVyc2lvbiwgYXMgbG9uZyBhcyB0aGUgc2Vjb25k IGRldmljZSBoYXMgZG9uZSANCml0cyBjb252ZXJzaW9uLg0KV2UgbmVlZCB0byBwcm90ZWN0IGJv dGggZGV2aWNlcywgYW5kIHdlIHNob3VsZCBoYXZlIHRvIGRvIGl0IGluIGEgbmVzdGVkIA0Kd2F5 Lg0KU28sIEkgZ3Vlc3MgdGhhdCBhbnl3YXksIG5lc3RlZCBtdXRleGVzIHdvdWxkIGJlIHJlcXVp cmVkIGluIHRoaXMgY2FzZS4NCg0KQmVzdCByZWdhcmRzDQoNCk9saXZpZXINCg0KPg0KPj4gSGVy ZSB0d28gaW5zdGFuY2VzIG9mIHRoZSBzYW1lIGxvY2sgY2xhc3MgYXJlIHJlcXVlc3RlZA0KPj4g b24gdHdvIGRpZmZlcmVudCBvYmplY3RzLg0KPj4gVGhlIGxvY2tpbmcgdmFsaWRhdG9yIG5lZWRz IHRvIGJlIGluZm9ybWVkIG9mIHRoZSBuZXN0aW5nIGxldmVsDQo+PiBvZiBlYWNoIGxvY2sgdG8g YXZvaWQgYSBmYWxzZSBwb3NpdGl2ZS4NCj4+DQo+PiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBj bGFzcyBoaWVyYXJjaHkgaW4gaWlvIGRldmljZSBsb2NrLA0KPj4gYXNzdW1pbmcgdGhhdCBoYXJk d2FyZSBjb25zdW1lciBpcyBhdCBhIGxvd2VyIGxldmVsIHRoYW4gaWlvIGRldmljZS4NCj4+DQo+ PiBbICAgNTIuMDg2MTc0XQ0KPj4gWyAgIDUyLjA4NjIyM10gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCj4+IFsgICA1Mi4wOTE1MTZdIFdBUk5JTkc6IHBvc3Np YmxlIHJlY3Vyc2l2ZSBsb2NraW5nIGRldGVjdGVkDQo+PiBbICAgNTIuMDk2ODI1XSA0LjE5LjQ5 ICMxNjIgTm90IHRhaW50ZWQNCj4+IFsgICA1Mi4xMDAzODRdIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+PiBbICAgNTIuMTA1NjkxXSBjYXQvODIzIGlzIHRy eWluZyB0byBhY3F1aXJlIGxvY2s6DQo+PiBbICAgNTIuMTEwMTMyXSAzN2FjYjcwMyAoJmRldi0+ bWxvY2speysuKy59LCBhdDogaWlvX3VwZGF0ZV9idWZmZXJzKzB4M2MvMHhkMA0KPj4gWyAgIDUy LjExNjk5NV0NCj4+IFsgICA1Mi4xMTY5OTVdIGJ1dCB0YXNrIGlzIGFscmVhZHkgaG9sZGluZyBs b2NrOg0KPj4gWyAgIDUyLjEyMjgyMV0gMzY4YmI5MDggKCZkZXYtPm1sb2NrKXsrLisufSwgYXQ6 IGlpb19kZXZpY2VfY2xhaW1fZGlyZWN0X21vZGUrMHgxOC8weDM0DQo+PiBbICAgNTIuMTMwNTYw XQ0KPj4gWyAgIDUyLjEzMDU2MF0gb3RoZXIgaW5mbyB0aGF0IG1pZ2h0IGhlbHAgdXMgZGVidWcg dGhpczoNCj4+IFsgICA1Mi4xMzcwODNdICBQb3NzaWJsZSB1bnNhZmUgbG9ja2luZyBzY2VuYXJp bzoNCj4+IFsgICA1Mi4xMzcwODNdDQo+PiBbICAgNTIuMTQyOTk1XSAgICAgICAgQ1BVMA0KPj4g WyAgIDUyLjE0NTQzMF0gICAgICAgIC0tLS0NCj4+IFsgICA1Mi4xNDc4NjRdICAgbG9jaygmZGV2 LT5tbG9jayk7DQo+PiBbICAgNTIuMTUxMDgyXSAgIGxvY2soJmRldi0+bWxvY2spOw0KPj4gWyAg IDUyLjE1NDMwMV0NCj4+IFsgICA1Mi4xNTQzMDFdICAqIERFQURMT0NLICoNCj4+IFsgICA1Mi4x NTQzMDFdDQo+PiBbICAgNTIuMTYwMjE1XSAgTWF5IGJlIGR1ZSB0byBtaXNzaW5nIGxvY2sgbmVz dGluZyBub3RhdGlvbg0KPj4gWyAgIDUyLjE2MDIxNV0NCj4+IFsgICA1Mi4xNjcwMDBdIDUgbG9j a3MgaGVsZCBieSBjYXQvODIzOg0KPj4gWyAgIDUyLjE3MDU2M10gICMwOiA5NmQ2NTU0YiAoJnAt PmxvY2speysuKy59LCBhdDogc2VxX3JlYWQrMHgzNC8weDUxYw0KPj4gWyAgIDUyLjE3NjgyNF0g ICMxOiAzY2Y2NzM5YSAoJm9mLT5tdXRleCl7Ky4rLn0sIGF0OiBrZXJuZnNfc2VxX3N0YXJ0KzB4 MWMvMHg4Yw0KPj4gWyAgIDUyLjE4Mzg2Nl0gICMyOiBhNjA5MGUwYSAoa24tPmNvdW50IzI5KXsu Ky4rfSwgYXQ6IGtlcm5mc19zZXFfc3RhcnQrMHgyNC8weDhjDQo+PiBbICAgNTIuMTkxMDgzXSAg IzM6IDM2OGJiOTA4ICgmZGV2LT5tbG9jayl7Ky4rLn0sIGF0OiBpaW9fZGV2aWNlX2NsYWltX2Rp cmVjdF9tb2RlKzB4MTgvMHgzNA0KPj4gWyAgIDUyLjE5OTI1N10gICM0OiA3N2UyYmNmZSAoJmRl di0+aW5mb19leGlzdF9sb2NrKXsrLisufSwgYXQ6IGlpb191cGRhdGVfYnVmZmVycysweDMwLzB4 ZDANCj4+IFsgICA1Mi4yMDc0MzFdDQo+PiBbICAgNTIuMjA3NDMxXSBzdGFjayBiYWNrdHJhY2U6 DQo+PiBbICAgNTIuMjExNzg3XSBDUFU6IDAgUElEOiA4MjMgQ29tbTogY2F0IE5vdCB0YWludGVk IDQuMTkuNDkgIzE2Mg0KPj4gWyAgIDUyLjIxNzYwNl0gSGFyZHdhcmUgbmFtZTogU1RNMzIgKERl dmljZSBUcmVlIFN1cHBvcnQpDQo+PiBbICAgNTIuMjIyNzU2XSBbPGMwMTEyNDIwPl0gKHVud2lu ZF9iYWNrdHJhY2UpIGZyb20gWzxjMDEwZGY1Yz5dIChzaG93X3N0YWNrKzB4MTAvMHgxNCkNCj4+ IFsgICA1Mi4yMzA0ODddIFs8YzAxMGRmNWM+XSAoc2hvd19zdGFjaykgZnJvbSBbPGMwYWY1Yzg4 Pl0gKGR1bXBfc3RhY2srMHhjNC8weGYwKQ0KPj4gWyAgIDUyLjIzNzcwM10gWzxjMGFmNWM4OD5d IChkdW1wX3N0YWNrKSBmcm9tIFs8YzAxODY1YmM+XSAoX19sb2NrX2FjcXVpcmUrMHg4NzQvMHgx MzQ0KQ0KPj4gWyAgIDUyLjI0NTUyNV0gWzxjMDE4NjViYz5dIChfX2xvY2tfYWNxdWlyZSkgZnJv bSBbPGMwMTg3YmU4Pl0gKGxvY2tfYWNxdWlyZSsweGQ4LzB4MjY4KQ0KPj4gWyAgIDUyLjI1MzM1 M10gWzxjMDE4N2JlOD5dIChsb2NrX2FjcXVpcmUpIGZyb20gWzxjMGIwZGNmOD5dIChfX211dGV4 X2xvY2srMHg3MC8weGFiMCkNCj4+IFsgICA1Mi4yNjEwMDVdIFs8YzBiMGRjZjg+XSAoX19tdXRl eF9sb2NrKSBmcm9tIFs8YzBiMGU3NTQ+XSAobXV0ZXhfbG9ja19uZXN0ZWQrMHgxYy8weDI0KQ0K Pj4gWyAgIDUyLjI2OTAwMV0gWzxjMGIwZTc1ND5dIChtdXRleF9sb2NrX25lc3RlZCkgZnJvbSBb PGMwOTI4MmI4Pl0gKGlpb191cGRhdGVfYnVmZmVycysweDNjLzB4ZDApDQo+PiBbICAgNTIuMjc3 NTIzXSBbPGMwOTI4MmI4Pl0gKGlpb191cGRhdGVfYnVmZmVycykgZnJvbSBbPGMwOTMyOWNjPl0g KGlpb19od19jb25zdW1lcl9lbmFibGUrMHgzNC8weDcwKQ0KPj4gWyAgIDUyLjI4NjQ3Nl0gWzxj MDkzMjljYz5dIChpaW9faHdfY29uc3VtZXJfZW5hYmxlKSBmcm9tIFs8YzA5MzIxMzQ+XSAoc3Rt MzJfZGZzZG1fcmVhZF9yYXcrMHhmNC8weDNmYykNCj4+IFsgICA1Mi4yOTU2OTVdIFs8YzA5MzIx MzQ+XSAoc3RtMzJfZGZzZG1fcmVhZF9yYXcpIGZyb20gWzxjMDkyMmViND5dIChpaW9fcmVhZF9j aGFubmVsX2luZm8rMHhhOC8weGIwKQ0KPj4gWyAgIDUyLjMwNDczOF0gWzxjMDkyMmViND5dIChp aW9fcmVhZF9jaGFubmVsX2luZm8pIGZyb20gWzxjMDY3YTdmYz5dIChkZXZfYXR0cl9zaG93KzB4 MWMvMHg0OCkNCj4+IFsgICA1Mi4zMTMxNzBdIFs8YzA2N2E3ZmM+XSAoZGV2X2F0dHJfc2hvdykg ZnJvbSBbPGMwMzcyNGE0Pl0gKHN5c2ZzX2tmX3NlcV9zaG93KzB4ODQvMHhlYykNCj4+IFsgICA1 Mi4zMjEyNTZdIFs8YzAzNzI0YTQ+XSAoc3lzZnNfa2Zfc2VxX3Nob3cpIGZyb20gWzxjMDMxMmFm Yz5dIChzZXFfcmVhZCsweDE1NC8weDUxYykNCj4+IFsgICA1Mi4zMjkwODJdIFs8YzAzMTJhZmM+ XSAoc2VxX3JlYWQpIGZyb20gWzxjMDJlN2EwMD5dIChfX3Zmc19yZWFkKzB4MmMvMHgxNWMpDQo+ PiBbICAgNTIuMzM2MjA5XSBbPGMwMmU3YTAwPl0gKF9fdmZzX3JlYWQpIGZyb20gWzxjMDJlN2Jj MD5dICh2ZnNfcmVhZCsweDkwLzB4MTVjKQ0KPj4gWyAgIDUyLjM0MzMzOV0gWzxjMDJlN2JjMD5d ICh2ZnNfcmVhZCkgZnJvbSBbPGMwMmU4MWFjPl0gKGtzeXNfcmVhZCsweDVjLzB4ZGMpDQo+PiBb ICAgNTIuMzUwMjk2XSBbPGMwMmU4MWFjPl0gKGtzeXNfcmVhZCkgZnJvbSBbPGMwMTAxMDAwPl0g KHJldF9mYXN0X3N5c2NhbGwrMHgwLzB4MjgpDQo+PiBbICAgNTIuMzU3ODUyXSBFeGNlcHRpb24g c3RhY2soMHhlNTc2MWZhOCB0byAweGU1NzYxZmYwKQ0KPj4gWyAgIDUyLjM2MjkwNF0gMWZhMDog ICAgICAgICAgICAgICAgICAgMDAwMDAwNmMgN2ZmMDAwMDAgMDAwMDAwMDMgYjZlMDYwMDAgMDAw MjAwMDAgMDAwMDAwMDANCj4+IFsgICA1Mi4zNzEwNzddIDFmYzA6IDAwMDAwMDZjIDdmZjAwMDAw IDAwMDIwMDAwIDAwMDAwMDAzIDAwMDAwMDAzIDAwMDAwMDAwIDAwMDIwMDAwIDAwMDAwMDAwDQo+ PiBbICAgNTIuMzc5MjQ1XSAxZmUwOiAwMDAwMDAwMyBiZWI2ZTc5MCBiNmViMTdiNyBiNmUzZTZj Ng0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IE9saXZpZXIgTW95c2FuIDxvbGl2aWVyLm1veXNhbkBz dC5jb20+DQo+PiAtLS0NCj4+ICAgZHJpdmVycy9paW8vYnVmZmVyL2luZHVzdHJpYWxpby1ody1j b25zdW1lci5jIHwgOSArKysrKysrKy0NCj4+ICAgZHJpdmVycy9paW8vaW5kdXN0cmlhbGlvLWJ1 ZmZlci5jICAgICAgICAgICAgIHwgMiArLQ0KPj4gICBkcml2ZXJzL2lpby9pbmR1c3RyaWFsaW8t Y29yZS5jICAgICAgICAgICAgICAgfCAzICsrLQ0KPj4gICBpbmNsdWRlL2xpbnV4L2lpby9paW8u aCAgICAgICAgICAgICAgICAgICAgICAgfCA2ICsrKysrKw0KPj4gICA0IGZpbGVzIGNoYW5nZWQs IDE3IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaWlvL2J1ZmZlci9pbmR1c3RyaWFsaW8taHctY29uc3VtZXIuYyBiL2RyaXZlcnMvaWlv L2J1ZmZlci9pbmR1c3RyaWFsaW8taHctY29uc3VtZXIuYw0KPj4gaW5kZXggOTUxNjU2OTdkOGFl Li42NTJjZTMxYjRiNWYgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2lpby9idWZmZXIvaW5kdXN0 cmlhbGlvLWh3LWNvbnN1bWVyLmMNCj4+ICsrKyBiL2RyaXZlcnMvaWlvL2J1ZmZlci9pbmR1c3Ry aWFsaW8taHctY29uc3VtZXIuYw0KPj4gQEAgLTEwMSw2ICsxMDEsNyBAQCBzdHJ1Y3QgaWlvX2h3 X2NvbnN1bWVyICppaW9faHdfY29uc3VtZXJfYWxsb2Moc3RydWN0IGRldmljZSAqZGV2KQ0KPj4g ICANCj4+ICAgCWNoYW4gPSAmaHdjLT5jaGFubmVsc1swXTsNCj4+ICAgCXdoaWxlIChjaGFuLT5p bmRpb19kZXYpIHsNCj4+ICsJCWNoYW4tPmluZGlvX2Rldi0+bXV0ZXhfY2xhc3MgPSBJSU9fTVVU RVhfSFdDOw0KPj4gICAJCWJ1ZiA9IGlpb19od19jb25zdW1lcl9nZXRfYnVmZmVyKGh3YywgY2hh bi0+aW5kaW9fZGV2KTsNCj4+ICAgCQlpZiAoIWJ1Zikgew0KPj4gICAJCQlyZXQgPSAtRU5PTUVN Ow0KPj4gQEAgLTEyOSw4ICsxMzAsMTQgQEAgRVhQT1JUX1NZTUJPTF9HUEwoaWlvX2h3X2NvbnN1 bWVyX2FsbG9jKTsNCj4+ICAgdm9pZCBpaW9faHdfY29uc3VtZXJfZnJlZShzdHJ1Y3QgaWlvX2h3 X2NvbnN1bWVyICpod2MpDQo+PiAgIHsNCj4+ICAgCXN0cnVjdCBod19jb25zdW1lcl9idWZmZXIg KmJ1ZiwgKm47DQo+PiArCXN0cnVjdCBpaW9fY2hhbm5lbCAqY2hhbiA9ICZod2MtPmNoYW5uZWxz WzBdOw0KPj4gKw0KPj4gKwl3aGlsZSAoY2hhbi0+aW5kaW9fZGV2KSB7DQo+PiArCQljaGFuLT5p bmRpb19kZXYtPm11dGV4X2NsYXNzID0gSUlPX01VVEVYX05PUk1BTDsNCj4+ICsJCWlpb19jaGFu bmVsX3JlbGVhc2UoY2hhbik7DQo+PiArCQljaGFuKys7DQo+PiArCX0NCj4+ICAgDQo+PiAtCWlp b19jaGFubmVsX3JlbGVhc2VfYWxsKGh3Yy0+Y2hhbm5lbHMpOw0KPj4gICAJbGlzdF9mb3JfZWFj aF9lbnRyeV9zYWZlKGJ1ZiwgbiwgJmh3Yy0+YnVmZmVycywgaGVhZCkNCj4+ICAgCQlpaW9fYnVm ZmVyX3B1dCgmYnVmLT5idWZmZXIpOw0KPj4gICAJa2ZyZWUoaHdjKTsNCj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2lpby9pbmR1c3RyaWFsaW8tYnVmZmVyLmMgYi9kcml2ZXJzL2lpby9pbmR1c3Ry aWFsaW8tYnVmZmVyLmMNCj4+IGluZGV4IGMxOTNkNjRlNTIxNy4uZDFkZjA0MTY3OTc4IDEwMDY0 NA0KPj4gLS0tIGEvZHJpdmVycy9paW8vaW5kdXN0cmlhbGlvLWJ1ZmZlci5jDQo+PiArKysgYi9k cml2ZXJzL2lpby9pbmR1c3RyaWFsaW8tYnVmZmVyLmMNCj4+IEBAIC0xMDc3LDcgKzEwNzcsNyBA QCBpbnQgaWlvX3VwZGF0ZV9idWZmZXJzKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYsDQo+PiAg IAkJcmV0dXJuIDA7DQo+PiAgIA0KPj4gICAJbXV0ZXhfbG9jaygmaW5kaW9fZGV2LT5pbmZvX2V4 aXN0X2xvY2spOw0KPj4gLQltdXRleF9sb2NrKCZpbmRpb19kZXYtPm1sb2NrKTsNCj4+ICsJbXV0 ZXhfbG9ja19uZXN0ZWQoJmluZGlvX2Rldi0+bWxvY2ssIGluZGlvX2Rldi0+bXV0ZXhfY2xhc3Mp Ow0KPj4gICANCj4+ICAgCWlmIChpbnNlcnRfYnVmZmVyICYmIGlpb19idWZmZXJfaXNfYWN0aXZl KGluc2VydF9idWZmZXIpKQ0KPj4gICAJCWluc2VydF9idWZmZXIgPSBOVUxMOw0KPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvaWlvL2luZHVzdHJpYWxpby1jb3JlLmMgYi9kcml2ZXJzL2lpby9pbmR1 c3RyaWFsaW8tY29yZS5jDQo+PiBpbmRleCBmNzJjMmRjNWY3MDMuLmIxNGJhNDI1NTlhMyAxMDA2 NDQNCj4+IC0tLSBhL2RyaXZlcnMvaWlvL2luZHVzdHJpYWxpby1jb3JlLmMNCj4+ICsrKyBiL2Ry aXZlcnMvaWlvL2luZHVzdHJpYWxpby1jb3JlLmMNCj4+IEBAIC0xNDU0LDYgKzE0NTQsNyBAQCBz dHJ1Y3QgaWlvX2RldiAqaWlvX2RldmljZV9hbGxvYyhpbnQgc2l6ZW9mX3ByaXYpDQo+PiAgIAkJ ZGV2LT5kZXYuZ3JvdXBzID0gZGV2LT5ncm91cHM7DQo+PiAgIAkJZGV2LT5kZXYudHlwZSA9ICZp aW9fZGV2aWNlX3R5cGU7DQo+PiAgIAkJZGV2LT5kZXYuYnVzID0gJmlpb19idXNfdHlwZTsNCj4+ ICsJCWRldi0+bXV0ZXhfY2xhc3MgPSBJSU9fTVVURVhfTk9STUFMOw0KPj4gICAJCWRldmljZV9p bml0aWFsaXplKCZkZXYtPmRldik7DQo+PiAgIAkJZGV2X3NldF9kcnZkYXRhKCZkZXYtPmRldiwg KHZvaWQgKilkZXYpOw0KPj4gICAJCW11dGV4X2luaXQoJmRldi0+bWxvY2spOw0KPj4gQEAgLTE4 MDUsNyArMTgwNiw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKGRldm1faWlvX2RldmljZV91bnJlZ2lz dGVyKTsNCj4+ICAgICovDQo+PiAgIGludCBpaW9fZGV2aWNlX2NsYWltX2RpcmVjdF9tb2RlKHN0 cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpDQo+PiAgIHsNCj4+IC0JbXV0ZXhfbG9jaygmaW5kaW9f ZGV2LT5tbG9jayk7DQo+PiArCW11dGV4X2xvY2tfbmVzdGVkKCZpbmRpb19kZXYtPm1sb2NrLCBp bmRpb19kZXYtPm11dGV4X2NsYXNzKTsNCj4+ICAgDQo+PiAgIAlpZiAoaWlvX2J1ZmZlcl9lbmFi bGVkKGluZGlvX2RldikpIHsNCj4+ICAgCQltdXRleF91bmxvY2soJmluZGlvX2Rldi0+bWxvY2sp Ow0KPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaWlvL2lpby5oIGIvaW5jbHVkZS9saW51 eC9paW8vaWlvLmgNCj4+IGluZGV4IDg2MmNlMDAxOWViYS4uMTE5MmVjYTEyNGY0IDEwMDY0NA0K Pj4gLS0tIGEvaW5jbHVkZS9saW51eC9paW8vaWlvLmgNCj4+ICsrKyBiL2luY2x1ZGUvbGludXgv aWlvL2lpby5oDQo+PiBAQCAtMTcsNiArMTcsMTEgQEANCj4+ICAgICogQ3VycmVudGx5IGFzc3Vt ZXMgbmFubyBzZWNvbmRzLg0KPj4gICAgKi8NCj4+ICAgDQo+PiArZW51bSBpaW9fbXV0ZXhfbG9j a19jbGFzcyB7DQo+PiArCUlJT19NVVRFWF9OT1JNQUwsDQo+PiArCUlJT19NVVRFWF9IV0MsDQo+ PiArfTsNCj4+ICsNCj4+ICAgZW51bSBpaW9fc2hhcmVkX2J5IHsNCj4+ICAgCUlJT19TRVBBUkFU RSwNCj4+ICAgCUlJT19TSEFSRURfQllfVFlQRSwNCj4+IEBAIC01MzcsNiArNTQyLDcgQEAgc3Ry dWN0IGlpb19kZXYgew0KPj4gICAJc3RydWN0IGxpc3RfaGVhZAkJYnVmZmVyX2xpc3Q7DQo+PiAg IAlpbnQJCQkJc2Nhbl9ieXRlczsNCj4+ICAgCXN0cnVjdCBtdXRleAkJCW1sb2NrOw0KPj4gKwlp bnQJCQkJbXV0ZXhfY2xhc3M7DQo+PiAgIA0KPj4gICAJY29uc3QgdW5zaWduZWQgbG9uZwkJKmF2 YWlsYWJsZV9zY2FuX21hc2tzOw0KPj4gICAJdW5zaWduZWQJCQltYXNrbGVuZ3RoOw== 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=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 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 9020DECE587 for ; Mon, 14 Oct 2019 16:00:11 +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 61B9A2133F for ; Mon, 14 Oct 2019 16:00:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="GxhFuyHn"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=st.com header.i=@st.com header.b="p8YZL7+M" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 61B9A2133F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=st.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=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:Content-ID:In-Reply-To: References:Message-ID:Date:Subject:To:From:Reply-To:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=3lIeDuNggVEEW3cBMI7OlzcCPzO3NSiUAC+xQuXitZA=; b=GxhFuyHn8YJV0p SDiVgD+cBKVBYxnXMrsmPob3/X4JN2iOzxbzCJLu/IjtVnIFIPrdJOg1txHagLamArQKaCHqvRoXm bzpJf3ZtvKcndevRO0a3ifhPSOGHX7QRBtnsPvO8xbvTz3o8HAmnRMpQMmhWi1ZITgL19M6C8fMAS jKgeqJP9mflwf1UJDG9NEdUdBX2YGcOlu9aGqNw+0N/2yZ2FDgpw9eK5FTOyn2KrAG6Yb7u01WeGP rWRmeMIWCeNx8TGS2NQOz7ZcjvnleEGYcUyE0+Jtt01WsDSZylyrlnh4u39ISCZgM+w0RSAGMz5ip tRcDyL/f7G/PjZ9doquw==; 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 1iK2lX-0005hG-0R; Mon, 14 Oct 2019 16:00:11 +0000 Received: from mx07-00178001.pphosted.com ([62.209.51.94]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iK2lS-0004a0-LX for linux-arm-kernel@lists.infradead.org; Mon, 14 Oct 2019 16:00:09 +0000 Received: from pps.filterd (m0046037.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x9EFk60p020626; Mon, 14 Oct 2019 17:59:58 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=st.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=STMicroelectronics; bh=ErKqBaJ9aXk2WVrka5Z6q4n0v+E8sjnROHwo/kiQ3y4=; b=p8YZL7+MhGupwL4qrGMl2etKny+Rrk4+9Pym9ViuMy0U2m7Wo7w5Hqx922jvL2z1lqxy l7HHlSYZwKXI/nAk450gW301zvN6pieS478HV1s7IDBsfyO/uk+p1E9ZC/c8aDDenR/R EKXvQFJM962luLKKBjymYj/VIlonamKl1JMufUutb+6LvLCv4uqCHWFp+Y6GswcxpzNk cs0CfhCrlyGrSv/+/oII38IIwMrPwN+8DtHcxM87auQtO80OSMYzwRFw30EWvQUBwLRq gggofCrf/w6u2LjNg2wvkGwnGwIjzgFdH/ruMIFukj4blx/klSoLvkfgxWDzXKN0oBAb ng== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2vk4kwu789-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 14 Oct 2019 17:59:58 +0200 Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 707BE10003A; Mon, 14 Oct 2019 17:59:54 +0200 (CEST) Received: from Webmail-eu.st.com (sfhdag3node2.st.com [10.75.127.8]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 58D942C9353; Mon, 14 Oct 2019 17:59:54 +0200 (CEST) Received: from SFHDAG6NODE2.st.com (10.75.127.17) by SFHDAG3NODE2.st.com (10.75.127.8) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Mon, 14 Oct 2019 17:59:53 +0200 Received: from SFHDAG6NODE2.st.com ([fe80::a56f:c186:bab7:13d6]) by SFHDAG6NODE2.st.com ([fe80::a56f:c186:bab7:13d6%20]) with mapi id 15.00.1347.000; Mon, 14 Oct 2019 17:59:53 +0200 From: Olivier MOYSAN To: Jonathan Cameron Subject: Re: [PATCH][RFC] iio: core: add a class hierarchy on iio device lock Thread-Topic: [PATCH][RFC] iio: core: add a class hierarchy on iio device lock Thread-Index: AQHVgNseXkzpsLq050SI9JEr18+cxKdaLZeA Date: Mon, 14 Oct 2019 15:59:53 +0000 Message-ID: References: <20191011151314.5365-1-olivier.moysan@st.com> <20191012095747.3acd95e6@archlinux> In-Reply-To: <20191012095747.3acd95e6@archlinux> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.75.127.49] Content-ID: <3D4B4D647439894D9B1D7ED3F22DB443@st.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-10-14_08:2019-10-11,2019-10-14 signatures=0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191014_090007_134821_5E009295 X-CRM114-Status: GOOD ( 36.12 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "lars@metafoo.de" , Alexandre TORGUE , "linux-iio@vger.kernel.org" , "pmeerw@pmeerw.net" , "linux-kernel@vger.kernel.org" , "mcoquelin.stm32@gmail.com" , "knaack.h@gmx.de" , Fabrice GASNIER , "linux-stm32@st-md-mailman.stormreply.com" , "linux-arm-kernel@lists.infradead.org" , Benjamin GAIGNARD Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hello Jonathan, Thanks for your comment. On 10/12/19 10:57 AM, Jonathan Cameron wrote: > On Fri, 11 Oct 2019 17:13:14 +0200 > Olivier Moysan wrote: > >> The aim of this patch is to correct a recursive locking warning, >> detected when setting CONFIG_PROVE_LOCKING flag (as shown in message below). >> This message was initially triggered by the following call sequence >> in stm32-dfsdm-adc.c driver, when using IIO hardware consumer interface. >> >> in stm32_dfsdm_read_raw() >> iio_device_claim_direct_mode >> mutex_lock(&indio_dev->mlock); -> lock on dfsdm device >> iio_hw_consumer_enable >> iio_update_buffers >> mutex_lock(&indio_dev->mlock); -> lock on hw consumer device > Hmm. I'm not sure I follow the logic. That lock is > for one thing and one thing only, preventing access > to the iio device that are unsafe when it is running > in a buffered mode. We shouldn't be in a position where > we both say don't do this if we are in buffered mode, + enter > buffered mode whilst doing this, or we need special functions > for entering buffering mode if in this state. We are in > some sense combining internal driver logic with overall > IIO states. IIO shouldn't care that the device is using > the same methods under the hood for buffered and non > buffered operations. > > I can't really recall how this driver works. Is it actually > possible to have multiple hw_consumers at the same time? > > So do we end up with multiple buffers registered and have > to demux out to the read_raw + the actual buffered path? > Given we have a bit of code saying grab one sample, I'm > going to guess we don't... > > If so, the vast majority of the buffer setup code in IIO > is irrelevant here and we just need to call a few of > the callbacks from this driver directly... (I think > though I haven't chased through every corner. > > I'd rather avoid introducing this nesting for a corner > case that makes no 'semantic' sense in IIO as it leaves us > in two separate states at the same time that the driver > is trying to make mutually exclusive. We can't both > not be in buffered mode, and in buffered mode. > > Thanks and good luck with this nasty corner! > > Jonathan > Here I consider the following use case: A single conversion is performed. The dfsdm (filter) is chained with a front-end, which can be an ADC or a sensor. So we have two IIO devices, the dfsdm and its front-end handled through the hw consumer interface. You are right. There is something wrong here, in buffered/non-buffered mode mixing. iio_hw_consumer_enable() call is used to enable the front-end device. But this interface is intended for buffered mode. So this is not coherent with the expected single conversion mode, indeed. Another interface is required to manage the front-end device. I have a poor knowledge of iio framework, but it seems to me that there is no interface to manage this. My understanding regarding mlock, is that it is used to protect the state of the iio device. I we want to do a conversion from the chained devices, I think we need to activate the first device and keep it performing conversion, as long as the second device has done its conversion. We need to protect both devices, and we should have to do it in a nested way. So, I guess that anyway, nested mutexes would be required in this case. Best regards Olivier > >> Here two instances of the same lock class are requested >> on two different objects. >> The locking validator needs to be informed of the nesting level >> of each lock to avoid a false positive. >> >> This patch introduces a class hierarchy in iio device lock, >> assuming that hardware consumer is at a lower level than iio device. >> >> [ 52.086174] >> [ 52.086223] ============================================ >> [ 52.091516] WARNING: possible recursive locking detected >> [ 52.096825] 4.19.49 #162 Not tainted >> [ 52.100384] -------------------------------------------- >> [ 52.105691] cat/823 is trying to acquire lock: >> [ 52.110132] 37acb703 (&dev->mlock){+.+.}, at: iio_update_buffers+0x3c/0xd0 >> [ 52.116995] >> [ 52.116995] but task is already holding lock: >> [ 52.122821] 368bb908 (&dev->mlock){+.+.}, at: iio_device_claim_direct_mode+0x18/0x34 >> [ 52.130560] >> [ 52.130560] other info that might help us debug this: >> [ 52.137083] Possible unsafe locking scenario: >> [ 52.137083] >> [ 52.142995] CPU0 >> [ 52.145430] ---- >> [ 52.147864] lock(&dev->mlock); >> [ 52.151082] lock(&dev->mlock); >> [ 52.154301] >> [ 52.154301] * DEADLOCK * >> [ 52.154301] >> [ 52.160215] May be due to missing lock nesting notation >> [ 52.160215] >> [ 52.167000] 5 locks held by cat/823: >> [ 52.170563] #0: 96d6554b (&p->lock){+.+.}, at: seq_read+0x34/0x51c >> [ 52.176824] #1: 3cf6739a (&of->mutex){+.+.}, at: kernfs_seq_start+0x1c/0x8c >> [ 52.183866] #2: a6090e0a (kn->count#29){.+.+}, at: kernfs_seq_start+0x24/0x8c >> [ 52.191083] #3: 368bb908 (&dev->mlock){+.+.}, at: iio_device_claim_direct_mode+0x18/0x34 >> [ 52.199257] #4: 77e2bcfe (&dev->info_exist_lock){+.+.}, at: iio_update_buffers+0x30/0xd0 >> [ 52.207431] >> [ 52.207431] stack backtrace: >> [ 52.211787] CPU: 0 PID: 823 Comm: cat Not tainted 4.19.49 #162 >> [ 52.217606] Hardware name: STM32 (Device Tree Support) >> [ 52.222756] [] (unwind_backtrace) from [] (show_stack+0x10/0x14) >> [ 52.230487] [] (show_stack) from [] (dump_stack+0xc4/0xf0) >> [ 52.237703] [] (dump_stack) from [] (__lock_acquire+0x874/0x1344) >> [ 52.245525] [] (__lock_acquire) from [] (lock_acquire+0xd8/0x268) >> [ 52.253353] [] (lock_acquire) from [] (__mutex_lock+0x70/0xab0) >> [ 52.261005] [] (__mutex_lock) from [] (mutex_lock_nested+0x1c/0x24) >> [ 52.269001] [] (mutex_lock_nested) from [] (iio_update_buffers+0x3c/0xd0) >> [ 52.277523] [] (iio_update_buffers) from [] (iio_hw_consumer_enable+0x34/0x70) >> [ 52.286476] [] (iio_hw_consumer_enable) from [] (stm32_dfsdm_read_raw+0xf4/0x3fc) >> [ 52.295695] [] (stm32_dfsdm_read_raw) from [] (iio_read_channel_info+0xa8/0xb0) >> [ 52.304738] [] (iio_read_channel_info) from [] (dev_attr_show+0x1c/0x48) >> [ 52.313170] [] (dev_attr_show) from [] (sysfs_kf_seq_show+0x84/0xec) >> [ 52.321256] [] (sysfs_kf_seq_show) from [] (seq_read+0x154/0x51c) >> [ 52.329082] [] (seq_read) from [] (__vfs_read+0x2c/0x15c) >> [ 52.336209] [] (__vfs_read) from [] (vfs_read+0x90/0x15c) >> [ 52.343339] [] (vfs_read) from [] (ksys_read+0x5c/0xdc) >> [ 52.350296] [] (ksys_read) from [] (ret_fast_syscall+0x0/0x28) >> [ 52.357852] Exception stack(0xe5761fa8 to 0xe5761ff0) >> [ 52.362904] 1fa0: 0000006c 7ff00000 00000003 b6e06000 00020000 00000000 >> [ 52.371077] 1fc0: 0000006c 7ff00000 00020000 00000003 00000003 00000000 00020000 00000000 >> [ 52.379245] 1fe0: 00000003 beb6e790 b6eb17b7 b6e3e6c6 >> >> Signed-off-by: Olivier Moysan >> --- >> drivers/iio/buffer/industrialio-hw-consumer.c | 9 ++++++++- >> drivers/iio/industrialio-buffer.c | 2 +- >> drivers/iio/industrialio-core.c | 3 ++- >> include/linux/iio/iio.h | 6 ++++++ >> 4 files changed, 17 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/iio/buffer/industrialio-hw-consumer.c b/drivers/iio/buffer/industrialio-hw-consumer.c >> index 95165697d8ae..652ce31b4b5f 100644 >> --- a/drivers/iio/buffer/industrialio-hw-consumer.c >> +++ b/drivers/iio/buffer/industrialio-hw-consumer.c >> @@ -101,6 +101,7 @@ struct iio_hw_consumer *iio_hw_consumer_alloc(struct device *dev) >> >> chan = &hwc->channels[0]; >> while (chan->indio_dev) { >> + chan->indio_dev->mutex_class = IIO_MUTEX_HWC; >> buf = iio_hw_consumer_get_buffer(hwc, chan->indio_dev); >> if (!buf) { >> ret = -ENOMEM; >> @@ -129,8 +130,14 @@ EXPORT_SYMBOL_GPL(iio_hw_consumer_alloc); >> void iio_hw_consumer_free(struct iio_hw_consumer *hwc) >> { >> struct hw_consumer_buffer *buf, *n; >> + struct iio_channel *chan = &hwc->channels[0]; >> + >> + while (chan->indio_dev) { >> + chan->indio_dev->mutex_class = IIO_MUTEX_NORMAL; >> + iio_channel_release(chan); >> + chan++; >> + } >> >> - iio_channel_release_all(hwc->channels); >> list_for_each_entry_safe(buf, n, &hwc->buffers, head) >> iio_buffer_put(&buf->buffer); >> kfree(hwc); >> diff --git a/drivers/iio/industrialio-buffer.c b/drivers/iio/industrialio-buffer.c >> index c193d64e5217..d1df04167978 100644 >> --- a/drivers/iio/industrialio-buffer.c >> +++ b/drivers/iio/industrialio-buffer.c >> @@ -1077,7 +1077,7 @@ int iio_update_buffers(struct iio_dev *indio_dev, >> return 0; >> >> mutex_lock(&indio_dev->info_exist_lock); >> - mutex_lock(&indio_dev->mlock); >> + mutex_lock_nested(&indio_dev->mlock, indio_dev->mutex_class); >> >> if (insert_buffer && iio_buffer_is_active(insert_buffer)) >> insert_buffer = NULL; >> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c >> index f72c2dc5f703..b14ba42559a3 100644 >> --- a/drivers/iio/industrialio-core.c >> +++ b/drivers/iio/industrialio-core.c >> @@ -1454,6 +1454,7 @@ struct iio_dev *iio_device_alloc(int sizeof_priv) >> dev->dev.groups = dev->groups; >> dev->dev.type = &iio_device_type; >> dev->dev.bus = &iio_bus_type; >> + dev->mutex_class = IIO_MUTEX_NORMAL; >> device_initialize(&dev->dev); >> dev_set_drvdata(&dev->dev, (void *)dev); >> mutex_init(&dev->mlock); >> @@ -1805,7 +1806,7 @@ EXPORT_SYMBOL_GPL(devm_iio_device_unregister); >> */ >> int iio_device_claim_direct_mode(struct iio_dev *indio_dev) >> { >> - mutex_lock(&indio_dev->mlock); >> + mutex_lock_nested(&indio_dev->mlock, indio_dev->mutex_class); >> >> if (iio_buffer_enabled(indio_dev)) { >> mutex_unlock(&indio_dev->mlock); >> diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h >> index 862ce0019eba..1192eca124f4 100644 >> --- a/include/linux/iio/iio.h >> +++ b/include/linux/iio/iio.h >> @@ -17,6 +17,11 @@ >> * Currently assumes nano seconds. >> */ >> >> +enum iio_mutex_lock_class { >> + IIO_MUTEX_NORMAL, >> + IIO_MUTEX_HWC, >> +}; >> + >> enum iio_shared_by { >> IIO_SEPARATE, >> IIO_SHARED_BY_TYPE, >> @@ -537,6 +542,7 @@ struct iio_dev { >> struct list_head buffer_list; >> int scan_bytes; >> struct mutex mlock; >> + int mutex_class; >> >> const unsigned long *available_scan_masks; >> unsigned masklength; _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel