<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/ide/ide-io.c, branch linux-5.1.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-5.1.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-5.1.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2019-01-31T15:25:09Z</updated>
<entry>
<title>ide: ensure atapi sense request aren't preempted</title>
<updated>2019-01-31T15:25:09Z</updated>
<author>
<name>Jens Axboe</name>
<email>axboe@kernel.dk</email>
</author>
<published>2019-01-30T15:41:40Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9a6d5488002fdca7134a0e59b0ae252f61042810'/>
<id>urn:sha1:9a6d5488002fdca7134a0e59b0ae252f61042810</id>
<content type='text'>
There's an issue with how sense requests are handled in IDE. If ide-cd
encounters an error, it queues a sense request. With how IDE request
handling is done, this is the next request we need to handle. But it's
impossible to guarantee this, as another request could come in between
the sense being queued, and -&gt;queue_rq() being run and handling it. If
that request ALSO fails, then we attempt to doubly queue the single
sense request we have.

Since we only support one active request at the time, defer request
processing when a sense request is queued.

Fixes: 600335205b8d "ide: convert to blk-mq"
Reported-by: He Zhe &lt;zhe.he@windriver.com&gt;
Tested-by: He Zhe &lt;zhe.he@windriver.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>ide: clear ide_req()-&gt;special for non-passthrough requests</title>
<updated>2018-11-16T02:47:35Z</updated>
<author>
<name>Jens Axboe</name>
<email>axboe@kernel.dk</email>
</author>
<published>2018-11-16T02:42:07Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9334ae5e6f9972110c2be136178ca2591c072b62'/>
<id>urn:sha1:9334ae5e6f9972110c2be136178ca2591c072b62</id>
<content type='text'>
The initial patch cleared this for all requests, which is wrong
since internal uses can't have this cleared as that's what they
are using to pass data. The fix moved the initialization to the
mq_ops-&gt;initialize_rq_fn(), but that's only a partial fix since
it only catches uses from blk_get_request(), not requests coming
from the file system.

Keep the non-fs initialization, and add the IDE entry clear
IFF RQF_DONTPREP isn't set and it's a passthrough request.

Fixes: d16a67667c61 ("ide: don't clear special on ide_queue_rq() entry")
Fixes: 22ce0a7ccf23 ("ide: don't use req-&gt;special")
Reported-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>ide: don't clear special on ide_queue_rq() entry</title>
<updated>2018-11-13T00:19:32Z</updated>
<author>
<name>Jens Axboe</name>
<email>axboe@kernel.dk</email>
</author>
<published>2018-11-13T00:19:32Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=d16a67667c611f00b5ec0017ad2b18f473af13d2'/>
<id>urn:sha1:d16a67667c611f00b5ec0017ad2b18f473af13d2</id>
<content type='text'>
We can't use RQF_DONTPREP to see if we should clear -&gt;special,
as someone could have set that while inserting the request. Make
sure we clear it in our -&gt;initialize_rq_fn() helper instead.

Fixes: 22ce0a7ccf23 ("ide: don't use req-&gt;special")
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>ide: don't use req-&gt;special</title>
<updated>2018-11-10T15:03:52Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2018-11-10T08:30:49Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=22ce0a7ccf23d55d1fdaa2974002f8b5ae765665'/>
<id>urn:sha1:22ce0a7ccf23d55d1fdaa2974002f8b5ae765665</id>
<content type='text'>
Just replace it with a field of the same name in struct ide_req.

Reviewed-by: Hannes Reinecke &lt;hare@suse.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>ide: cleanup -&gt;prep_rq calling convention</title>
<updated>2018-11-10T02:17:13Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2018-11-09T13:42:35Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=535ac5d3fe63b9ea1dda379f606f9d0d377d7184'/>
<id>urn:sha1:535ac5d3fe63b9ea1dda379f606f9d0d377d7184</id>
<content type='text'>
The return value is just used as a binary yes/no decision, so switch
it to a bool instead of the old BLKPREP_* values returned as an int.

Also clean up a few related comments.

Reviewed-by: Bart Van Assche &lt;bvanassche@acm.org&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>ide: convert to blk-mq</title>
<updated>2018-11-07T20:42:31Z</updated>
<author>
<name>Jens Axboe</name>
<email>axboe@kernel.dk</email>
</author>
<published>2018-10-26T15:53:52Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=600335205b8d162891b5ef2e32343f5b8020efd8'/>
<id>urn:sha1:600335205b8d162891b5ef2e32343f5b8020efd8</id>
<content type='text'>
ide-disk and ide-cd tested as working just fine, ide-tape and
ide-floppy haven't. But the latter don't require changes, so they
should work without issue.

Add helper function to insert a request from a work queue, since we
cannot invoke the blk-mq request insertion from IRQ context.

Cc: David Miller &lt;davem@davemloft.net&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.com&gt;
Tested-by: Ming Lei &lt;ming.lei@redhat.com&gt;
Reviewed-by: Omar Sandoval &lt;osandov@fb.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>ide: remove redundant variables queue_run_ms and left</title>
<updated>2018-08-13T18:48:54Z</updated>
<author>
<name>Colin Ian King</name>
<email>colin.king@canonical.com</email>
</author>
<published>2018-07-02T09:47:05Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=bb1215a2d011db15e9a8d5d2469c0ad9651d7660'/>
<id>urn:sha1:bb1215a2d011db15e9a8d5d2469c0ad9651d7660</id>
<content type='text'>
Variable queue_run_ms is not being used and is redundant and hence can
be removed. Removing this also means that variable left can also be
removed.

Cleans up clang warning:
warning: variable ‘queue_run_ms’ set but not used [-Wunused-but-set-variable]

Signed-off-by: Colin Ian King &lt;colin.king@canonical.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ide: Handle irq disabling consistently</title>
<updated>2018-06-05T20:26:46Z</updated>
<author>
<name>Sebastian Andrzej Siewior</name>
<email>bigeasy@linutronix.de</email>
</author>
<published>2018-05-04T14:24:44Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=56f0ddadcea9dc264f1c8eed6cc984071b141554'/>
<id>urn:sha1:56f0ddadcea9dc264f1c8eed6cc984071b141554</id>
<content type='text'>
ide_timer_expiry() disables interrupt at function entry when acquiring
hwif-&gt;lock. Before disabling the device interrupt it unlocks hwif-&gt;lock,
but interrupts stay disabled. After the call to disable_irq() interrupts
are disabled again, which is a pointless exercise.

After the device irq handler has been invoked with interrupts disabled,
hwif-&gt;lock is acquired again with spin_lock_irq() because the device irq
handler might have reenabled interrupts. This is not documented and
confusing for the casual reader.

Remove the redundant local_irq_disable() and add a comment which explains
why hwif-&gt;lock has to be reacquired with spin_lock_irq().

Signed-off-by: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&gt;
Acked-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ide: Convert timers to use timer_setup()</title>
<updated>2017-11-06T20:50:03Z</updated>
<author>
<name>Kees Cook</name>
<email>keescook@chromium.org</email>
</author>
<published>2017-10-18T04:06:32Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=10738ba8e02bc8cb1c4e832611621aa9666f4a24'/>
<id>urn:sha1:10738ba8e02bc8cb1c4e832611621aa9666f4a24</id>
<content type='text'>
In preparation for unconditionally passing the struct timer_list pointer to
all timer callbacks, switch to using the new timer_setup() and from_timer()
to pass the timer pointer explicitly.

Cc: "David S. Miller" &lt;davem@davemloft.net&gt;
Cc: linux-ide@vger.kernel.org
Signed-off-by: Kees Cook &lt;keescook@chromium.org&gt;
</content>
</entry>
<entry>
<title>block: introduce new block status code type</title>
<updated>2017-06-09T15:27:32Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2017-06-03T07:38:04Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=2a842acab109f40f0d7d10b38e9ca88390628996'/>
<id>urn:sha1:2a842acab109f40f0d7d10b38e9ca88390628996</id>
<content type='text'>
Currently we use nornal Linux errno values in the block layer, and while
we accept any error a few have overloaded magic meanings.  This patch
instead introduces a new  blk_status_t value that holds block layer specific
status codes and explicitly explains their meaning.  Helpers to convert from
and to the previous special meanings are provided for now, but I suspect
we want to get rid of them in the long run - those drivers that have a
errno input (e.g. networking) usually get errnos that don't know about
the special block layer overloads, and similarly returning them to userspace
will usually return somethings that strictly speaking isn't correct
for file system operations, but that's left as an exercise for later.

For now the set of errors is a very limited set that closely corresponds
to the previous overloaded errno values, but there is some low hanging
fruite to improve it.

blk_status_t (ab)uses the sparse __bitwise annotations to allow for sparse
typechecking, so that we can easily catch places passing the wrong values.

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