<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/block, branch v3.19</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v3.19</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v3.19'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2015-01-29T16:30:51Z</updated>
<entry>
<title>blk-mq: release mq's kobjects in blk_release_queue()</title>
<updated>2015-01-29T16:30:51Z</updated>
<author>
<name>Ming Lei</name>
<email>ming.lei@canonical.com</email>
</author>
<published>2015-01-29T12:17:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e09aae7edec1d20824c60a6f0ca4589f99ada17b'/>
<id>urn:sha1:e09aae7edec1d20824c60a6f0ca4589f99ada17b</id>
<content type='text'>
The kobject memory inside blk-mq hctx/ctx shouldn't have been freed
before the kobject is released because driver core can access it freely
before its release.

We can't do that in all ctx/hctx/mq_kobj's release handler because
it can be run before blk_cleanup_queue().

Given mq_kobj shouldn't have been introduced, this patch simply moves
mq's release into blk_release_queue().

Reported-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
Signed-off-by: Ming Lei &lt;ming.lei@canonical.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>Revert "blk-mq: fix hctx/ctx kobject use-after-free"</title>
<updated>2015-01-29T16:30:49Z</updated>
<author>
<name>Ming Lei</name>
<email>ming.lei@canonical.com</email>
</author>
<published>2015-01-29T12:17:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=74170118b26e55b611de5210f47657118a03a0e1'/>
<id>urn:sha1:74170118b26e55b611de5210f47657118a03a0e1</id>
<content type='text'>
This reverts commit 76d697d10769048e5721510100bf3a9413a56385.

The commit 76d697d10769048 causes general protection fault
reported from Bart Van Assche:

	https://lkml.org/lkml/2015/1/28/334

Reported-by: Bart Van Assche &lt;bart.vanassche@sandisk.com&gt;
Signed-off-by: Ming Lei &lt;ming.lei@canonical.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>blk-mq: fix hctx/ctx kobject use-after-free</title>
<updated>2015-01-20T16:28:33Z</updated>
<author>
<name>Ming Lei</name>
<email>ming.lei@canonical.com</email>
</author>
<published>2015-01-20T03:00:56Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=76d697d10769048e5721510100bf3a9413a56385'/>
<id>urn:sha1:76d697d10769048e5721510100bf3a9413a56385</id>
<content type='text'>
The kobject memory shouldn't have been freed before the kobject
is released because driver core can access it freely before its
release.

This patch frees hctx in its release callback. For ctx, they
share one single per-cpu variable which is associated with
the request queue, so free ctx in q-&gt;mq_kobj's release handler.

Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
(fix ctx kobjects)
Signed-off-by: Ming Lei &lt;ming.lei@canonical.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>blk-mq: End unstarted requests on a dying queue</title>
<updated>2015-01-08T15:59:53Z</updated>
<author>
<name>Keith Busch</name>
<email>keith.busch@intel.com</email>
</author>
<published>2015-01-08T15:59:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=eb130dbfc40eabcd4e10797310bda6b9f6dd7e76'/>
<id>urn:sha1:eb130dbfc40eabcd4e10797310bda6b9f6dd7e76</id>
<content type='text'>
Requests that haven't been started prior to a queue dying can be ended
in error without waiting for them to start and time out.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;

Added code comment to explain why this is done.

Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>blk-mq: Allow requests to never expire</title>
<updated>2015-01-08T15:59:01Z</updated>
<author>
<name>Keith Busch</name>
<email>keith.busch@intel.com</email>
</author>
<published>2015-01-08T01:55:46Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5b3f25fc343690cafd3e27431a69a7bdaf9df001'/>
<id>urn:sha1:5b3f25fc343690cafd3e27431a69a7bdaf9df001</id>
<content type='text'>
Some types of requests may be started that are not gauranteed to ever
complete. This adds a request flag that a driver can use so mark the
request as such.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>blk-mq: Add helper to abort requeued requests</title>
<updated>2015-01-08T15:55:53Z</updated>
<author>
<name>Jens Axboe</name>
<email>axboe@fb.com</email>
</author>
<published>2015-01-08T01:55:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1885b24d23716e09b9c952822b05fd7f68099cdb'/>
<id>urn:sha1:1885b24d23716e09b9c952822b05fd7f68099cdb</id>
<content type='text'>
Adds a helper function a driver can use to abort requeued requests in
case any are pending when h/w queues are being removed.

Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>blk-mq: Let drivers cancel requeue_work</title>
<updated>2015-01-08T15:55:40Z</updated>
<author>
<name>Keith Busch</name>
<email>keith.busch@intel.com</email>
</author>
<published>2015-01-08T01:55:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=c68ed59f534c318716c6189050af3c5ea03b8071'/>
<id>urn:sha1:c68ed59f534c318716c6189050af3c5ea03b8071</id>
<content type='text'>
Kicking requeued requests will start h/w queues in a work_queue, which
may alter the driver's requested state to temporarily stop them. This
patch exports a method to cancel the q-&gt;requeue_work so a driver can be
assured stopped h/w queues won't be started up before it is ready.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>blk-mq: Export if requests were started</title>
<updated>2015-01-08T15:55:27Z</updated>
<author>
<name>Keith Busch</name>
<email>keith.busch@intel.com</email>
</author>
<published>2015-01-08T01:55:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=973c01919bce7e3559b62a856b29211ec5ac325c'/>
<id>urn:sha1:973c01919bce7e3559b62a856b29211ec5ac325c</id>
<content type='text'>
Drivers can iterate over all allocated request tags, but their callback
needs a way to know if the driver started the request in the first place.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>blk-mq: Wake tasks entering queue on dying</title>
<updated>2015-01-08T15:53:56Z</updated>
<author>
<name>Keith Busch</name>
<email>keith.busch@intel.com</email>
</author>
<published>2015-01-08T15:53:56Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3fd5940cb2e47a61dcff4108f39be4c72cb4dace'/>
<id>urn:sha1:3fd5940cb2e47a61dcff4108f39be4c72cb4dace</id>
<content type='text'>
When the queue is set to dying, wake up tasks that are waiting on frozen
queue so they realize it is dying and abandon their request.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;

Modified by me to add a code comment on the need for the wakeup.

Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>blk-mq: get rid of -&gt;cmd_size in the hardware queue</title>
<updated>2015-01-07T17:44:04Z</updated>
<author>
<name>Jens Axboe</name>
<email>axboe@fb.com</email>
</author>
<published>2015-01-07T17:44:04Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=17ded320706c6316376059cfbe9dccab32c62b42'/>
<id>urn:sha1:17ded320706c6316376059cfbe9dccab32c62b42</id>
<content type='text'>
We store it in the tag set, we don't need it in the hardware queue.
While removing cmd_size, place -&gt;queue_num further down to avoid
a hole on 64-bit archs. It's not used in any fast paths, so we
can safely move it.

Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
</feed>
