From: Hartmut Knaack <knaack.h@gmx.de>
To: Jonathan Cameron <jic23@kernel.org>,
linux-iio@vger.kernel.org, Lars-Peter Clausen <lars@metafoo.de>
Subject: Re: [RFC]iio:industrialio-event fix error-handling in iio_device_add_event
Date: Sat, 08 Feb 2014 01:07:21 +0100 [thread overview]
Message-ID: <52F57539.7070903@gmx.de> (raw)
In-Reply-To: <52C40E53.1040906@kernel.org>
Jonathan Cameron schrieb:
> On 29/12/13 11:54, Hartmut Knaack wrote:
>> __iio_add_chan_devattr returns -EBUSY, when registering the event-interface of
>> ad799x, but iio_device_add_event does not catch it. So, handle it like in
>> iio_device_add_info_mask_type. Not sure, if this is the right solution, but it
>> makes the ad799x (and possibly others as well) usable.
>>
>> Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
> I think the fix is correct, but I'm not entirely sure what is triggering
> the bug in this particular driver. All of the elements of ad799x_events
> are in mask separate so shared_by should be IIO_SEPARATE for all calls
> to this function.
>
> Lars, any idea's on what Hartmut is hitting?
> Also, is the below patch as valid as it appears at first glance?
I've been digging a bit more into the event interface registration, and it turned out that the problem is a typo in the ad799x driver. A patch is on the way.
While debugging, I always encountered crashes of my machine, about 15 seconds after the device-initialization failed. You can find a short video of the screen capture at [1]. This was taken on a Linux 3.13.1 (with slight changes to ad799x_core.c for working without platform_data and fix the irq-issue). Any ideas, where to start looking for that problems?
Besides, I'm a bit confused with all the branches of the iio.git repo. Which one shall be used, when developing for the iio subsystem (that contains all the patches you accepted)?
[1] http://www.upitus.net/36zhlrijl9lh
>> ---
>> diff --git a/drivers/iio/industrialio-event.c b/drivers/iio/industrialio-event.c
>> index c10eab6..d37a907 100644
>> --- a/drivers/iio/industrialio-event.c
>> +++ b/drivers/iio/industrialio-event.c
>> @@ -362,7 +362,9 @@ static int iio_device_add_event(struct iio_dev *indio_dev,
>> &indio_dev->event_interface->dev_attr_list);
>> kfree(postfix);
>>
>> - if (ret)
>> + if ((ret == -EBUSY) && (shared_by != IIO_SEPARATE))
>> + continue;
>> + else if (ret < 0)
>> return ret;
>>
>> attrcount++;
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2014-02-08 0:07 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-29 11:54 [RFC]iio:industrialio-event fix error-handling in iio_device_add_event Hartmut Knaack
2014-01-01 12:47 ` Jonathan Cameron
2014-02-08 0:07 ` Hartmut Knaack [this message]
2014-02-08 10:14 ` Jonathan Cameron
2014-02-08 11:43 ` Hartmut Knaack
2014-02-08 12:08 ` Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52F57539.7070903@gmx.de \
--to=knaack.h@gmx.de \
--cc=jic23@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.