<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/iio/industrialio-buffer.c, branch linux-4.13.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.13.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.13.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2017-03-02T07:42:32Z</updated>
<entry>
<title>sched/headers: Prepare to move signal wakeup &amp; sigpending methods from &lt;linux/sched.h&gt; into &lt;linux/sched/signal.h&gt;</title>
<updated>2017-03-02T07:42:32Z</updated>
<author>
<name>Ingo Molnar</name>
</author>
<published>2017-02-02T18:15:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=174cd4b1e5fbd0d74c68cf3a74f5bd4923485512'/>
<id>urn:sha1:174cd4b1e5fbd0d74c68cf3a74f5bd4923485512</id>
<content type='text'>
Fix up affected files that include this signal functionality via sched.h.

Acked-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Mike Galbraith &lt;efault@gmx.de&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>iio:buffer.h - split into buffer.h and buffer_impl.h</title>
<updated>2017-01-10T19:54:55Z</updated>
<author>
<name>Jonathan Cameron</name>
</author>
<published>2017-01-02T19:28:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=33dd94cb972175249258329c4aaffddcc82c2005'/>
<id>urn:sha1:33dd94cb972175249258329c4aaffddcc82c2005</id>
<content type='text'>
buffer.h supplies everything needed for devices using buffers.
buffer_impl.h supplies access to the internals as needed to write
a buffer implementation.

This was really motivated by the mess that turned up in the
kernel-doc documentation pulled in by the new sphinx docs.
It made it clear that our logical separations in headers were
generally terrible.  The buffer case was easy to sort out without
greatly effecting drivers so here it is.

Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Reviewed-by: Lars-Peter Clausen &lt;lars@metafoo.de&gt;
</content>
</entry>
<entry>
<title>iio:buffer: Push implementation of iio_device_attach_buffer into .c file</title>
<updated>2017-01-10T19:54:54Z</updated>
<author>
<name>Jonathan Cameron</name>
</author>
<published>2017-01-02T19:28:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2b827ad54111439b919605da90e122ecda88bad6'/>
<id>urn:sha1:2b827ad54111439b919605da90e122ecda88bad6</id>
<content type='text'>
This is a precursor to the splitting of buffer.h into parts relevant
to buffer implementation vs those for devices using buffers.
struct buffer is about to become opaque as far as the header is
concerned.

Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Reviewed-by: Lars-Peter Clausen &lt;lars@metafoo.de&gt;
</content>
</entry>
<entry>
<title>iio:buffers: Push some docs down into the .c file.</title>
<updated>2017-01-10T19:54:51Z</updated>
<author>
<name>Jonathan Cameron</name>
</author>
<published>2017-01-02T19:28:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=315a19eca0e7cbae1bef7f43b36fdcfc33f248f6'/>
<id>urn:sha1:315a19eca0e7cbae1bef7f43b36fdcfc33f248f6</id>
<content type='text'>
Ancient legacy of me doing it wrong which it is nice to clear
up whilst we are here.

Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Reviewed-by: Lars-Peter Clausen &lt;lars@metafoo.de&gt;
</content>
</entry>
<entry>
<title>iio:buffer: Stop exporting iio_scan_mask_query</title>
<updated>2017-01-10T19:54:51Z</updated>
<author>
<name>Jonathan Cameron</name>
</author>
<published>2017-01-02T19:28:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c2bf8d5f3262b3942bf923ef3b86d6ebe590821d'/>
<id>urn:sha1:c2bf8d5f3262b3942bf923ef3b86d6ebe590821d</id>
<content type='text'>
Nothing uses it outside of core code.

Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Reviewed-by: Lars-Peter Clausen &lt;lars@metafoo.de&gt;
</content>
</entry>
<entry>
<title>iio:buffer: Introduced a function to assign the buffer specific attrs.</title>
<updated>2017-01-10T19:54:50Z</updated>
<author>
<name>Jonathan Cameron</name>
</author>
<published>2017-01-02T19:28:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9f4667776c138df33c4107fcd8811aa9cb6cdcbe'/>
<id>urn:sha1:9f4667776c138df33c4107fcd8811aa9cb6cdcbe</id>
<content type='text'>
This is a necessary step in taking the buffer implementation
opaque.

Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Reviewed-by: Lars-Peter Clausen &lt;lars@metafoo.de&gt;
</content>
</entry>
<entry>
<title>iio:buffer: Stop exporting iio_update_demux</title>
<updated>2017-01-10T19:54:49Z</updated>
<author>
<name>Jonathan Cameron</name>
</author>
<published>2017-01-02T19:28:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=78c9981f6132cb600d545007c91e300021b7caf3'/>
<id>urn:sha1:78c9981f6132cb600d545007c91e300021b7caf3</id>
<content type='text'>
Nothing outside of indiustrialio-buffer.c should be using this.
Requires a large amount of juggling of functions to avoid a
forward definition.

Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Reviewed-by: Lars-Peter Clausen &lt;lars@metafoo.de&gt;
</content>
</entry>
<entry>
<title>iio: Use kmalloc_array() in iio_scan_mask_set()</title>
<updated>2016-09-24T15:35:24Z</updated>
<author>
<name>Markus Elfring</name>
</author>
<published>2016-09-23T20:30:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=057ac1acdfc4743f066fcefe359385cad00549eb'/>
<id>urn:sha1:057ac1acdfc4743f066fcefe359385cad00549eb</id>
<content type='text'>
A multiplication for the size determination of a memory allocation
indicated that an array data structure should be processed.
Thus use the corresponding function "kmalloc_array".

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring &lt;elfring@users.sourceforge.net&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
</content>
</entry>
<entry>
<title>iio: ensure ret is initialized to zero before entering do loop</title>
<updated>2016-09-05T20:00:14Z</updated>
<author>
<name>Colin Ian King</name>
</author>
<published>2016-09-05T14:39:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5dba4b14bafe801083d01e1f400816df7e5a8f2e'/>
<id>urn:sha1:5dba4b14bafe801083d01e1f400816df7e5a8f2e</id>
<content type='text'>
A recent fix to iio_buffer_read_first_n_outer removed ret from being set by
a return from wait_event_interruptible and also added a continue in a loop
which causes the variable ret to not be set when it reaches the end of the
loop.  Fix this by initializing ret to zero.

Also remove extraneous white space at the end of the loop.

Fixes: fcf68f3c0bb2a5 ("fix sched WARNING "do not call blocking ops when !TASK_RUNNING")
Signed-off-by: Colin Ian King &lt;colin.king@canonical.com&gt;
Cc: &lt;Stable@vger.kernel.org&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
</content>
</entry>
<entry>
<title>iio: fix sched WARNING "do not call blocking ops when !TASK_RUNNING"</title>
<updated>2016-08-21T15:22:44Z</updated>
<author>
<name>Brian Norris</name>
</author>
<published>2016-08-09T00:19:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fcf68f3c0bb2a541aa47a2a38b8939edf84fd529'/>
<id>urn:sha1:fcf68f3c0bb2a541aa47a2a38b8939edf84fd529</id>
<content type='text'>
When using CONFIG_DEBUG_ATOMIC_SLEEP, the scheduler nicely points out
that we're calling sleeping primitives within the wait_event loop, which
means we might clobber the task state:

[   10.831289] do not call blocking ops when !TASK_RUNNING; state=1 set at [&lt;ffffffc00026b610&gt;]
[   10.845531] ------------[ cut here ]------------
[   10.850161] WARNING: at kernel/sched/core.c:7630
...
[   12.164333] ---[ end trace 45409966a9a76438 ]---
[   12.168942] Call trace:
[   12.171391] [&lt;ffffffc00024ed44&gt;] __might_sleep+0x64/0x90
[   12.176699] [&lt;ffffffc000954774&gt;] mutex_lock_nested+0x50/0x3fc
[   12.182440] [&lt;ffffffc0007b9424&gt;] iio_kfifo_buf_data_available+0x28/0x4c
[   12.189043] [&lt;ffffffc0007b76ac&gt;] iio_buffer_ready+0x60/0xe0
[   12.194608] [&lt;ffffffc0007b7834&gt;] iio_buffer_read_first_n_outer+0x108/0x1a8
[   12.201474] [&lt;ffffffc000370d48&gt;] __vfs_read+0x58/0x114
[   12.206606] [&lt;ffffffc000371740&gt;] vfs_read+0x94/0x118
[   12.211564] [&lt;ffffffc0003720f8&gt;] SyS_read+0x64/0xb4
[   12.216436] [&lt;ffffffc000203cb4&gt;] el0_svc_naked+0x24/0x28

To avoid this, we should (a la https://lwn.net/Articles/628628/) use the
wait_woken() function, which avoids the nested sleeping while still
handling races between waiting / wake-events.

Signed-off-by: Brian Norris &lt;briannorris@chromium.org&gt;
Reviewed-by: Lars-Peter Clausen &lt;lars@metafoo.de&gt;
Cc: &lt;Stable@vger.kernel.org&gt; # 3.19+ for introduction of wake_woken
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
</content>
</entry>
</feed>
