* [PATCH V2] iio: ad9523: replace core mlock with local lock
@ 2018-06-25 8:01 Alexandru Ardelean
2018-06-30 17:30 ` Jonathan Cameron
0 siblings, 1 reply; 3+ messages in thread
From: Alexandru Ardelean @ 2018-06-25 8:01 UTC (permalink / raw)
To: linux-iio, lars, Michael.Hennerich, jic23; +Cc: Alexandru Ardelean
From: Lars-Peter Clausen <lars@metafoo.de>
This is part of a long term effort to make the use of mlock opaque and
single purpose.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
---
v1 -> v2:
* added Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
drivers/iio/frequency/ad9523.c | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/drivers/iio/frequency/ad9523.c b/drivers/iio/frequency/ad9523.c
index ddb6a334ae68..1b70e8a13338 100644
--- a/drivers/iio/frequency/ad9523.c
+++ b/drivers/iio/frequency/ad9523.c
@@ -274,6 +274,8 @@ struct ad9523_state {
unsigned long vco_out_freq[AD9523_NUM_CLK_SRC];
unsigned char vco_out_map[AD9523_NUM_CHAN_ALT_CLK_SRC];
+ struct mutex lock;
+
/*
* DMA (thus cache coherency maintenance) requires the
* transfer buffers to live in their own cache lines.
@@ -500,6 +502,7 @@ static ssize_t ad9523_store(struct device *dev,
{
struct iio_dev *indio_dev = dev_to_iio_dev(dev);
struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
+ struct ad9523_state *st = iio_priv(indio_dev);
bool state;
int ret;
@@ -510,7 +513,7 @@ static ssize_t ad9523_store(struct device *dev,
if (!state)
return 0;
- mutex_lock(&indio_dev->mlock);
+ mutex_lock(&st->lock);
switch ((u32)this_attr->address) {
case AD9523_SYNC:
ret = ad9523_sync(indio_dev);
@@ -521,7 +524,7 @@ static ssize_t ad9523_store(struct device *dev,
default:
ret = -ENODEV;
}
- mutex_unlock(&indio_dev->mlock);
+ mutex_unlock(&st->lock);
return ret ? ret : len;
}
@@ -532,15 +535,16 @@ static ssize_t ad9523_show(struct device *dev,
{
struct iio_dev *indio_dev = dev_to_iio_dev(dev);
struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
+ struct ad9523_state *st = iio_priv(indio_dev);
int ret;
- mutex_lock(&indio_dev->mlock);
+ mutex_lock(&st->lock);
ret = ad9523_read(indio_dev, AD9523_READBACK_0);
if (ret >= 0) {
ret = sprintf(buf, "%d\n", !!(ret & (1 <<
(u32)this_attr->address)));
}
- mutex_unlock(&indio_dev->mlock);
+ mutex_unlock(&st->lock);
return ret;
}
@@ -623,9 +627,9 @@ static int ad9523_read_raw(struct iio_dev *indio_dev,
unsigned int code;
int ret;
- mutex_lock(&indio_dev->mlock);
+ mutex_lock(&st->lock);
ret = ad9523_read(indio_dev, AD9523_CHANNEL_CLOCK_DIST(chan->channel));
- mutex_unlock(&indio_dev->mlock);
+ mutex_unlock(&st->lock);
if (ret < 0)
return ret;
@@ -659,7 +663,7 @@ static int ad9523_write_raw(struct iio_dev *indio_dev,
unsigned int reg;
int ret, tmp, code;
- mutex_lock(&indio_dev->mlock);
+ mutex_lock(&st->lock);
ret = ad9523_read(indio_dev, AD9523_CHANNEL_CLOCK_DIST(chan->channel));
if (ret < 0)
goto out;
@@ -705,7 +709,7 @@ static int ad9523_write_raw(struct iio_dev *indio_dev,
ad9523_io_update(indio_dev);
out:
- mutex_unlock(&indio_dev->mlock);
+ mutex_unlock(&st->lock);
return ret;
}
@@ -713,9 +717,10 @@ static int ad9523_reg_access(struct iio_dev *indio_dev,
unsigned int reg, unsigned int writeval,
unsigned int *readval)
{
+ struct ad9523_state *st = iio_priv(indio_dev);
int ret;
- mutex_lock(&indio_dev->mlock);
+ mutex_lock(&st->lock);
if (readval == NULL) {
ret = ad9523_write(indio_dev, reg | AD9523_R1B, writeval);
ad9523_io_update(indio_dev);
@@ -728,7 +733,7 @@ static int ad9523_reg_access(struct iio_dev *indio_dev,
}
out_unlock:
- mutex_unlock(&indio_dev->mlock);
+ mutex_unlock(&st->lock);
return ret;
}
@@ -967,6 +972,8 @@ static int ad9523_probe(struct spi_device *spi)
st = iio_priv(indio_dev);
+ mutex_init(&st->lock);
+
st->reg = devm_regulator_get(&spi->dev, "vcc");
if (!IS_ERR(st->reg)) {
ret = regulator_enable(st->reg);
--
2.17.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH V2] iio: ad9523: replace core mlock with local lock
2018-06-25 8:01 [PATCH V2] iio: ad9523: replace core mlock with local lock Alexandru Ardelean
@ 2018-06-30 17:30 ` Jonathan Cameron
2018-07-02 7:56 ` Ardelean, Alexandru
0 siblings, 1 reply; 3+ messages in thread
From: Jonathan Cameron @ 2018-06-30 17:30 UTC (permalink / raw)
To: Alexandru Ardelean; +Cc: linux-iio, lars, Michael.Hennerich
On Mon, 25 Jun 2018 11:01:17 +0300
Alexandru Ardelean <alexandru.ardelean@analog.com> wrote:
> From: Lars-Peter Clausen <lars@metafoo.de>
>
> This is part of a long term effort to make the use of mlock opaque and
> single purpose.
>
> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Patch is fine, but I'd like to see precise documentation for the
scope of the lock. These things can be awfully 'fuzzy' so good
to define this explicitly.
Jonathan
> ---
>
> v1 -> v2:
> * added Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
>
> drivers/iio/frequency/ad9523.c | 27 +++++++++++++++++----------
> 1 file changed, 17 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/iio/frequency/ad9523.c b/drivers/iio/frequency/ad9523.c
> index ddb6a334ae68..1b70e8a13338 100644
> --- a/drivers/iio/frequency/ad9523.c
> +++ b/drivers/iio/frequency/ad9523.c
> @@ -274,6 +274,8 @@ struct ad9523_state {
> unsigned long vco_out_freq[AD9523_NUM_CLK_SRC];
> unsigned char vco_out_map[AD9523_NUM_CHAN_ALT_CLK_SRC];
>
I'd like to see a precise definition of what this lock is intended
to protect. Not to mention checkpatch will moan about it I think
if there is nothing here ;)
> + struct mutex lock;
> +
> /*
> * DMA (thus cache coherency maintenance) requires the
> * transfer buffers to live in their own cache lines.
> @@ -500,6 +502,7 @@ static ssize_t ad9523_store(struct device *dev,
> {
> struct iio_dev *indio_dev = dev_to_iio_dev(dev);
> struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
> + struct ad9523_state *st = iio_priv(indio_dev);
> bool state;
> int ret;
>
> @@ -510,7 +513,7 @@ static ssize_t ad9523_store(struct device *dev,
> if (!state)
> return 0;
>
> - mutex_lock(&indio_dev->mlock);
> + mutex_lock(&st->lock);
> switch ((u32)this_attr->address) {
> case AD9523_SYNC:
> ret = ad9523_sync(indio_dev);
> @@ -521,7 +524,7 @@ static ssize_t ad9523_store(struct device *dev,
> default:
> ret = -ENODEV;
> }
> - mutex_unlock(&indio_dev->mlock);
> + mutex_unlock(&st->lock);
>
> return ret ? ret : len;
> }
> @@ -532,15 +535,16 @@ static ssize_t ad9523_show(struct device *dev,
> {
> struct iio_dev *indio_dev = dev_to_iio_dev(dev);
> struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
> + struct ad9523_state *st = iio_priv(indio_dev);
> int ret;
>
> - mutex_lock(&indio_dev->mlock);
> + mutex_lock(&st->lock);
> ret = ad9523_read(indio_dev, AD9523_READBACK_0);
> if (ret >= 0) {
> ret = sprintf(buf, "%d\n", !!(ret & (1 <<
> (u32)this_attr->address)));
> }
> - mutex_unlock(&indio_dev->mlock);
> + mutex_unlock(&st->lock);
>
> return ret;
> }
> @@ -623,9 +627,9 @@ static int ad9523_read_raw(struct iio_dev *indio_dev,
> unsigned int code;
> int ret;
>
> - mutex_lock(&indio_dev->mlock);
> + mutex_lock(&st->lock);
> ret = ad9523_read(indio_dev, AD9523_CHANNEL_CLOCK_DIST(chan->channel));
> - mutex_unlock(&indio_dev->mlock);
> + mutex_unlock(&st->lock);
>
> if (ret < 0)
> return ret;
> @@ -659,7 +663,7 @@ static int ad9523_write_raw(struct iio_dev *indio_dev,
> unsigned int reg;
> int ret, tmp, code;
>
> - mutex_lock(&indio_dev->mlock);
> + mutex_lock(&st->lock);
> ret = ad9523_read(indio_dev, AD9523_CHANNEL_CLOCK_DIST(chan->channel));
> if (ret < 0)
> goto out;
> @@ -705,7 +709,7 @@ static int ad9523_write_raw(struct iio_dev *indio_dev,
>
> ad9523_io_update(indio_dev);
> out:
> - mutex_unlock(&indio_dev->mlock);
> + mutex_unlock(&st->lock);
> return ret;
> }
>
> @@ -713,9 +717,10 @@ static int ad9523_reg_access(struct iio_dev *indio_dev,
> unsigned int reg, unsigned int writeval,
> unsigned int *readval)
> {
> + struct ad9523_state *st = iio_priv(indio_dev);
> int ret;
>
> - mutex_lock(&indio_dev->mlock);
> + mutex_lock(&st->lock);
> if (readval == NULL) {
> ret = ad9523_write(indio_dev, reg | AD9523_R1B, writeval);
> ad9523_io_update(indio_dev);
> @@ -728,7 +733,7 @@ static int ad9523_reg_access(struct iio_dev *indio_dev,
> }
>
> out_unlock:
> - mutex_unlock(&indio_dev->mlock);
> + mutex_unlock(&st->lock);
>
> return ret;
> }
> @@ -967,6 +972,8 @@ static int ad9523_probe(struct spi_device *spi)
>
> st = iio_priv(indio_dev);
>
> + mutex_init(&st->lock);
> +
> st->reg = devm_regulator_get(&spi->dev, "vcc");
> if (!IS_ERR(st->reg)) {
> ret = regulator_enable(st->reg);
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH V2] iio: ad9523: replace core mlock with local lock
2018-06-30 17:30 ` Jonathan Cameron
@ 2018-07-02 7:56 ` Ardelean, Alexandru
0 siblings, 0 replies; 3+ messages in thread
From: Ardelean, Alexandru @ 2018-07-02 7:56 UTC (permalink / raw)
To: jic23@kernel.org
Cc: lars@metafoo.de, linux-iio@vger.kernel.org, Hennerich, Michael
T24gU2F0LCAyMDE4LTA2LTMwIGF0IDE4OjMwICswMTAwLCBKb25hdGhhbiBDYW1lcm9uIHdyb3Rl
Og0KPiBPbiBNb24sIDI1IEp1biAyMDE4IDExOjAxOjE3ICswMzAwDQo+IEFsZXhhbmRydSBBcmRl
bGVhbiA8YWxleGFuZHJ1LmFyZGVsZWFuQGFuYWxvZy5jb20+IHdyb3RlOg0KPiANCj4gPiBGcm9t
OiBMYXJzLVBldGVyIENsYXVzZW4gPGxhcnNAbWV0YWZvby5kZT4NCj4gPiANCj4gPiBUaGlzIGlz
IHBhcnQgb2YgYSBsb25nIHRlcm0gZWZmb3J0IHRvIG1ha2UgdGhlIHVzZSBvZiBtbG9jayBvcGFx
dWUgYW5kDQo+ID4gc2luZ2xlIHB1cnBvc2UuDQo+ID4gDQo+ID4gU2lnbmVkLW9mZi1ieTogTGFy
cy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+DQo+ID4gU2lnbmVkLW9mZi1ieTogQWxl
eGFuZHJ1IEFyZGVsZWFuIDxhbGV4YW5kcnUuYXJkZWxlYW5AYW5hbG9nLmNvbT4NCj4gDQo+IFBh
dGNoIGlzIGZpbmUsIGJ1dCBJJ2QgbGlrZSB0byBzZWUgcHJlY2lzZSBkb2N1bWVudGF0aW9uIGZv
ciB0aGUNCj4gc2NvcGUgb2YgdGhlIGxvY2suICBUaGVzZSB0aGluZ3MgY2FuIGJlIGF3ZnVsbHkg
J2Z1enp5JyBzbyBnb29kDQo+IHRvIGRlZmluZSB0aGlzIGV4cGxpY2l0bHkuDQoNCkFjay4NCldp
bGwgY29tZSBiYWNrIHdpdGggYSBWMi4NCg0KVGhhbmtzDQpBbGV4DQoNCj4gDQo+IEpvbmF0aGFu
DQo+IA0KPiA+IC0tLQ0KPiA+IA0KPiA+IHYxIC0+IHYyOg0KPiA+ICogYWRkZWQgU2lnbmVkLW9m
Zi1ieTogQWxleGFuZHJ1IEFyZGVsZWFuIDxhbGV4YW5kcnUuYXJkZWxlYW5AYW5hbG9nLmNvDQo+
ID4gbT4NCj4gPiANCj4gPiAgZHJpdmVycy9paW8vZnJlcXVlbmN5L2FkOTUyMy5jIHwgMjcgKysr
KysrKysrKysrKysrKystLS0tLS0tLS0tDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRp
b25zKCspLCAxMCBkZWxldGlvbnMoLSkNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9p
aW8vZnJlcXVlbmN5L2FkOTUyMy5jDQo+ID4gYi9kcml2ZXJzL2lpby9mcmVxdWVuY3kvYWQ5NTIz
LmMNCj4gPiBpbmRleCBkZGI2YTMzNGFlNjguLjFiNzBlOGExMzMzOCAxMDA2NDQNCj4gPiAtLS0g
YS9kcml2ZXJzL2lpby9mcmVxdWVuY3kvYWQ5NTIzLmMNCj4gPiArKysgYi9kcml2ZXJzL2lpby9m
cmVxdWVuY3kvYWQ5NTIzLmMNCj4gPiBAQCAtMjc0LDYgKzI3NCw4IEBAIHN0cnVjdCBhZDk1MjNf
c3RhdGUgew0KPiA+ICAJdW5zaWduZWQgbG9uZwkJdmNvX291dF9mcmVxW0FEOTUyM19OVU1fQ0xL
X1NSQ107DQo+ID4gIAl1bnNpZ25lZCBjaGFyCQl2Y29fb3V0X21hcFtBRDk1MjNfTlVNX0NIQU5f
QUxUX0MNCj4gPiBMS19TUkNdOw0KPiA+ICANCj4gDQo+IEknZCBsaWtlIHRvIHNlZSBhIHByZWNp
c2UgZGVmaW5pdGlvbiBvZiB3aGF0IHRoaXMgbG9jayBpcyBpbnRlbmRlZA0KPiB0byBwcm90ZWN0
LiAgTm90IHRvIG1lbnRpb24gY2hlY2twYXRjaCB3aWxsIG1vYW4gYWJvdXQgaXQgSSB0aGluaw0K
PiBpZiB0aGVyZSBpcyBub3RoaW5nIGhlcmUgOykNCj4gDQo+ID4gKwlzdHJ1Y3QgbXV0ZXgJCWxv
Y2s7DQo+ID4gKw0KPiA+ICAJLyoNCj4gPiAgCSAqIERNQSAodGh1cyBjYWNoZSBjb2hlcmVuY3kg
bWFpbnRlbmFuY2UpIHJlcXVpcmVzIHRoZQ0KPiA+ICAJICogdHJhbnNmZXIgYnVmZmVycyB0byBs
aXZlIGluIHRoZWlyIG93biBjYWNoZSBsaW5lcy4NCj4gPiBAQCAtNTAwLDYgKzUwMiw3IEBAIHN0
YXRpYyBzc2l6ZV90IGFkOTUyM19zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+ID4gIHsNCj4g
PiAgCXN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYgPSBkZXZfdG9faWlvX2RldihkZXYpOw0KPiA+
ICAJc3RydWN0IGlpb19kZXZfYXR0ciAqdGhpc19hdHRyID0gdG9faWlvX2Rldl9hdHRyKGF0dHIp
Ow0KPiA+ICsJc3RydWN0IGFkOTUyM19zdGF0ZSAqc3QgPSBpaW9fcHJpdihpbmRpb19kZXYpOw0K
PiA+ICAJYm9vbCBzdGF0ZTsNCj4gPiAgCWludCByZXQ7DQo+ID4gIA0KPiA+IEBAIC01MTAsNyAr
NTEzLDcgQEAgc3RhdGljIHNzaXplX3QgYWQ5NTIzX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwN
Cj4gPiAgCWlmICghc3RhdGUpDQo+ID4gIAkJcmV0dXJuIDA7DQo+ID4gIA0KPiA+IC0JbXV0ZXhf
bG9jaygmaW5kaW9fZGV2LT5tbG9jayk7DQo+ID4gKwltdXRleF9sb2NrKCZzdC0+bG9jayk7DQo+
ID4gIAlzd2l0Y2ggKCh1MzIpdGhpc19hdHRyLT5hZGRyZXNzKSB7DQo+ID4gIAljYXNlIEFEOTUy
M19TWU5DOg0KPiA+ICAJCXJldCA9IGFkOTUyM19zeW5jKGluZGlvX2Rldik7DQo+ID4gQEAgLTUy
MSw3ICs1MjQsNyBAQCBzdGF0aWMgc3NpemVfdCBhZDk1MjNfc3RvcmUoc3RydWN0IGRldmljZSAq
ZGV2LA0KPiA+ICAJZGVmYXVsdDoNCj4gPiAgCQlyZXQgPSAtRU5PREVWOw0KPiA+ICAJfQ0KPiA+
IC0JbXV0ZXhfdW5sb2NrKCZpbmRpb19kZXYtPm1sb2NrKTsNCj4gPiArCW11dGV4X3VubG9jaygm
c3QtPmxvY2spOw0KPiA+ICANCj4gPiAgCXJldHVybiByZXQgPyByZXQgOiBsZW47DQo+ID4gIH0N
Cj4gPiBAQCAtNTMyLDE1ICs1MzUsMTYgQEAgc3RhdGljIHNzaXplX3QgYWQ5NTIzX3Nob3coc3Ry
dWN0IGRldmljZSAqZGV2LA0KPiA+ICB7DQo+ID4gIAlzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2
ID0gZGV2X3RvX2lpb19kZXYoZGV2KTsNCj4gPiAgCXN0cnVjdCBpaW9fZGV2X2F0dHIgKnRoaXNf
YXR0ciA9IHRvX2lpb19kZXZfYXR0cihhdHRyKTsNCj4gPiArCXN0cnVjdCBhZDk1MjNfc3RhdGUg
KnN0ID0gaWlvX3ByaXYoaW5kaW9fZGV2KTsNCj4gPiAgCWludCByZXQ7DQo+ID4gIA0KPiA+IC0J
bXV0ZXhfbG9jaygmaW5kaW9fZGV2LT5tbG9jayk7DQo+ID4gKwltdXRleF9sb2NrKCZzdC0+bG9j
ayk7DQo+ID4gIAlyZXQgPSBhZDk1MjNfcmVhZChpbmRpb19kZXYsIEFEOTUyM19SRUFEQkFDS18w
KTsNCj4gPiAgCWlmIChyZXQgPj0gMCkgew0KPiA+ICAJCXJldCA9IHNwcmludGYoYnVmLCAiJWRc
biIsICEhKHJldCAmICgxIDw8DQo+ID4gIAkJCSh1MzIpdGhpc19hdHRyLT5hZGRyZXNzKSkpOw0K
PiA+ICAJfQ0KPiA+IC0JbXV0ZXhfdW5sb2NrKCZpbmRpb19kZXYtPm1sb2NrKTsNCj4gPiArCW11
dGV4X3VubG9jaygmc3QtPmxvY2spOw0KPiA+ICANCj4gPiAgCXJldHVybiByZXQ7DQo+ID4gIH0N
Cj4gPiBAQCAtNjIzLDkgKzYyNyw5IEBAIHN0YXRpYyBpbnQgYWQ5NTIzX3JlYWRfcmF3KHN0cnVj
dCBpaW9fZGV2DQo+ID4gKmluZGlvX2RldiwNCj4gPiAgCXVuc2lnbmVkIGludCBjb2RlOw0KPiA+
ICAJaW50IHJldDsNCj4gPiAgDQo+ID4gLQltdXRleF9sb2NrKCZpbmRpb19kZXYtPm1sb2NrKTsN
Cj4gPiArCW11dGV4X2xvY2soJnN0LT5sb2NrKTsNCj4gPiAgCXJldCA9IGFkOTUyM19yZWFkKGlu
ZGlvX2RldiwgQUQ5NTIzX0NIQU5ORUxfQ0xPQ0tfRElTVChjaGFuLQ0KPiA+ID5jaGFubmVsKSk7
DQo+ID4gLQltdXRleF91bmxvY2soJmluZGlvX2Rldi0+bWxvY2spOw0KPiA+ICsJbXV0ZXhfdW5s
b2NrKCZzdC0+bG9jayk7DQo+ID4gIA0KPiA+ICAJaWYgKHJldCA8IDApDQo+ID4gIAkJcmV0dXJu
IHJldDsNCj4gPiBAQCAtNjU5LDcgKzY2Myw3IEBAIHN0YXRpYyBpbnQgYWQ5NTIzX3dyaXRlX3Jh
dyhzdHJ1Y3QgaWlvX2Rldg0KPiA+ICppbmRpb19kZXYsDQo+ID4gIAl1bnNpZ25lZCBpbnQgcmVn
Ow0KPiA+ICAJaW50IHJldCwgdG1wLCBjb2RlOw0KPiA+ICANCj4gPiAtCW11dGV4X2xvY2soJmlu
ZGlvX2Rldi0+bWxvY2spOw0KPiA+ICsJbXV0ZXhfbG9jaygmc3QtPmxvY2spOw0KPiA+ICAJcmV0
ID0gYWQ5NTIzX3JlYWQoaW5kaW9fZGV2LCBBRDk1MjNfQ0hBTk5FTF9DTE9DS19ESVNUKGNoYW4t
DQo+ID4gPmNoYW5uZWwpKTsNCj4gPiAgCWlmIChyZXQgPCAwKQ0KPiA+ICAJCWdvdG8gb3V0Ow0K
PiA+IEBAIC03MDUsNyArNzA5LDcgQEAgc3RhdGljIGludCBhZDk1MjNfd3JpdGVfcmF3KHN0cnVj
dCBpaW9fZGV2DQo+ID4gKmluZGlvX2RldiwNCj4gPiAgDQo+ID4gIAlhZDk1MjNfaW9fdXBkYXRl
KGluZGlvX2Rldik7DQo+ID4gIG91dDoNCj4gPiAtCW11dGV4X3VubG9jaygmaW5kaW9fZGV2LT5t
bG9jayk7DQo+ID4gKwltdXRleF91bmxvY2soJnN0LT5sb2NrKTsNCj4gPiAgCXJldHVybiByZXQ7
DQo+ID4gIH0NCj4gPiAgDQo+ID4gQEAgLTcxMyw5ICs3MTcsMTAgQEAgc3RhdGljIGludCBhZDk1
MjNfcmVnX2FjY2VzcyhzdHJ1Y3QgaWlvX2Rldg0KPiA+ICppbmRpb19kZXYsDQo+ID4gIAkJCSAg
ICAgIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCB3cml0ZXZhbCwNCj4gPiAgCQkJICAg
ICAgdW5zaWduZWQgaW50ICpyZWFkdmFsKQ0KPiA+ICB7DQo+ID4gKwlzdHJ1Y3QgYWQ5NTIzX3N0
YXRlICpzdCA9IGlpb19wcml2KGluZGlvX2Rldik7DQo+ID4gIAlpbnQgcmV0Ow0KPiA+ICANCj4g
PiAtCW11dGV4X2xvY2soJmluZGlvX2Rldi0+bWxvY2spOw0KPiA+ICsJbXV0ZXhfbG9jaygmc3Qt
PmxvY2spOw0KPiA+ICAJaWYgKHJlYWR2YWwgPT0gTlVMTCkgew0KPiA+ICAJCXJldCA9IGFkOTUy
M193cml0ZShpbmRpb19kZXYsIHJlZyB8IEFEOTUyM19SMUIsDQo+ID4gd3JpdGV2YWwpOw0KPiA+
ICAJCWFkOTUyM19pb191cGRhdGUoaW5kaW9fZGV2KTsNCj4gPiBAQCAtNzI4LDcgKzczMyw3IEBA
IHN0YXRpYyBpbnQgYWQ5NTIzX3JlZ19hY2Nlc3Moc3RydWN0IGlpb19kZXYNCj4gPiAqaW5kaW9f
ZGV2LA0KPiA+ICAJfQ0KPiA+ICANCj4gPiAgb3V0X3VubG9jazoNCj4gPiAtCW11dGV4X3VubG9j
aygmaW5kaW9fZGV2LT5tbG9jayk7DQo+ID4gKwltdXRleF91bmxvY2soJnN0LT5sb2NrKTsNCj4g
PiAgDQo+ID4gIAlyZXR1cm4gcmV0Ow0KPiA+ICB9DQo+ID4gQEAgLTk2Nyw2ICs5NzIsOCBAQCBz
dGF0aWMgaW50IGFkOTUyM19wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQ0KPiA+ICANCj4g
PiAgCXN0ID0gaWlvX3ByaXYoaW5kaW9fZGV2KTsNCj4gPiAgDQo+ID4gKwltdXRleF9pbml0KCZz
dC0+bG9jayk7DQo+ID4gKw0KPiA+ICAJc3QtPnJlZyA9IGRldm1fcmVndWxhdG9yX2dldCgmc3Bp
LT5kZXYsICJ2Y2MiKTsNCj4gPiAgCWlmICghSVNfRVJSKHN0LT5yZWcpKSB7DQo+ID4gIAkJcmV0
ID0gcmVndWxhdG9yX2VuYWJsZShzdC0+cmVnKTsNCj4gDQo+IA==
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-07-02 7:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-25 8:01 [PATCH V2] iio: ad9523: replace core mlock with local lock Alexandru Ardelean
2018-06-30 17:30 ` Jonathan Cameron
2018-07-02 7:56 ` Ardelean, Alexandru
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.