<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BMC/Intel-BMC/linux.git/lib/iov_iter.c, branch dev-4.7</title>
<subtitle>Intel OpenBMC Linux kernel source tree (mirror)</subtitle>
<id>https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev-4.7</id>
<link rel='self' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev-4.7'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/'/>
<updated>2016-09-24T08:09:38+00:00</updated>
<entry>
<title>fix iov_iter_fault_in_readable()</title>
<updated>2016-09-24T08:09:38+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@ZenIV.linux.org.uk</email>
</author>
<published>2016-09-15T23:11:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=e136ec8c23d1454638d7ca872872b60803e5d25c'/>
<id>urn:sha1:e136ec8c23d1454638d7ca872872b60803e5d25c</id>
<content type='text'>
commit d4690f1e1cdabb4d61207b6787b1605a0dc0aeab upstream.

... by turning it into what used to be multipages counterpart

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Merge branch 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs</title>
<updated>2016-05-25T22:59:09+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2016-05-25T22:59:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=0985b65d3ba2c09f10a594b73df45c1f7f68d317'/>
<id>urn:sha1:0985b65d3ba2c09f10a594b73df45c1f7f68d317</id>
<content type='text'>
Pull vfs iov_iter regression fix from Al Viro:
 "Fix for braino in 'fold checks into iterate_and_advance()'"

* 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  do "fold checks into iterate_and_advance()" right
</content>
</entry>
<entry>
<title>do "fold checks into iterate_and_advance()" right</title>
<updated>2016-05-25T22:16:02+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2016-05-25T21:36:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=19f18459330f4a65fb0b58e77fc58ceceecb1839'/>
<id>urn:sha1:19f18459330f4a65fb0b58e77fc58ceceecb1839</id>
<content type='text'>
the only case when we should skip the iterate_and_advance() guts
is when nothing's left in the iterator, _not_ just when requested
amount is 0.  Said guts will do nothing in the latter case anyway;
the problem we tried to deal with in the aforementioned commit is
that when there's nothing left *and* the amount requested is 0,
we might end up deferencing one iovec too many; the value we fetch
from there is discarded in that case, but theoretically it might
oops if the iovec array ends exactly at the end of page with the
next page not mapped.

Bailing out on zero size requested had an unexpected side effect -
zero-length segment in the beginning of iovec array ended up
throwing do_loop_readv_writev() into infinite spin; we do not
advance past the empty segment at all.  Reproducer is trivial:
echo '#include &lt;sys/uio.h&gt;' &gt;a.c
echo 'main() {char c; struct iovec v[] = {{&amp;c,0},{&amp;c,1}}; readv(0,v,2);}' &gt;&gt;a.c
cc a.c &amp;&amp; ./a.out &lt;/proc/uptime

which should end up with the process not hanging.  Probably ought to
go into LTP or xfstests...

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Merge branch 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs</title>
<updated>2016-05-18T18:46:23+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2016-05-18T18:46:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=69370471d0b2fc3020c60f5473b1eef5977d165a'/>
<id>urn:sha1:69370471d0b2fc3020c60f5473b1eef5977d165a</id>
<content type='text'>
Pull iov_iter cleanups from Al Viro.

* 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  fold checks into iterate_and_advance()
  rw_verify_area(): saner calling conventions
  aio: remove a pointless assignment
</content>
</entry>
<entry>
<title>fold checks into iterate_and_advance()</title>
<updated>2016-05-09T18:04:29+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2016-05-09T15:54:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=dd254f5a382cc7879db7a07ed266b12d38fe3ab6'/>
<id>urn:sha1:dd254f5a382cc7879db7a07ed266b12d38fe3ab6</id>
<content type='text'>
they are open-coded in all users except iov_iter_advance(), and there
they wouldn't be a bad idea either - as it is, iov_iter_advance(i, 0)
ends up dereferencing potentially past the end of iovec array.  It
doesn't do anything with the value it reads, and very unlikely to
trigger an oops on dereference, but it is not impossible.

Reported-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Reported-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>fix the copy vs. map logics in blk_rq_map_user_iov()</title>
<updated>2016-04-08T23:46:28+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2016-04-08T23:05:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=357f435d8a0d32068c75f3c7176434d992b3adb7'/>
<id>urn:sha1:357f435d8a0d32068c75f3c7176434d992b3adb7</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>iov_iter: export import_single_range()</title>
<updated>2015-12-07T01:42:19+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2015-12-07T01:38:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=e12675853d717ce8de7d91089cc1a95bb8525f6c'/>
<id>urn:sha1:e12675853d717ce8de7d91089cc1a95bb8525f6c</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>iov_iter: constify {csum_and_,}copy_to_iter()</title>
<updated>2015-12-07T01:42:15+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2015-12-06T21:49:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=36f7a8a4cd2e99b7172ab8ed2130c5c841466824'/>
<id>urn:sha1:36f7a8a4cd2e99b7172ab8ed2130c5c841466824</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Merge branch 'iov_iter' into for-next</title>
<updated>2015-04-12T02:26:51+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2015-04-12T02:26:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=36e9f6535f398952772df5238b23e795a2810f86'/>
<id>urn:sha1:36e9f6535f398952772df5238b23e795a2810f86</id>
<content type='text'>
</content>
</entry>
<entry>
<title>VFS: Add iov_iter_fault_in_multipages_readable()</title>
<updated>2015-04-12T02:24:32+00:00</updated>
<author>
<name>Anton Altaparmakov</name>
<email>anton@tuxera.com</email>
</author>
<published>2015-03-11T14:43:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=171a02032bf1e1bb35442a38d6e25e0dcbb85c63'/>
<id>urn:sha1:171a02032bf1e1bb35442a38d6e25e0dcbb85c63</id>
<content type='text'>
simillar to iov_iter_fault_in_readable() but differs in that it is
not limited to faulting in the first iovec and instead faults in
"bytes" bytes iterating over the iovecs as necessary.

Also, instead of only faulting in the first and last page of the
range, all pages are faulted in.

This function is needed by NTFS when it does multi page file
writes.

Signed-off-by: Anton Altaparmakov &lt;anton@tuxera.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
</feed>
