<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/include/linux/ide.h, branch linux-2.6.28.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-2.6.28.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-2.6.28.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2008-12-02T19:40:03+00:00</updated>
<entry>
<title>amd74xx: workaround unreliable AltStatus register for nVidia controllers</title>
<updated>2008-12-02T19:40:03+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-12-02T19:40:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6636487e8dc49a1c43fed336bdc4a2f3d7ce6881'/>
<id>urn:sha1:6636487e8dc49a1c43fed336bdc4a2f3d7ce6881</id>
<content type='text'>
It seems that on some nVidia controllers using AltStatus register
can be unreliable so default to Status register if the PCI device
is in Compatibility Mode.  In order to achieve this:

* Add ide_pci_is_in_compatibility_mode() inline helper to &lt;linux/ide.h&gt;.

* Add IDE_HFLAG_BROKEN_ALTSTATUS host flag and set it in amd74xx host
  driver for nVidia controllers in Compatibility Mode.

* Teach actual_try_to_identify() and drive_is_ready() about the new flag.

This fixes the regression caused by removal of CONFIG_IDEPCI_SHARE_IRQ
config option in 2.6.25 and using AltStatus register unconditionally when
available (kernel.org bugs #11659 and #10216).

[ Moreover for CONFIG_IDEPCI_SHARE_IRQ=y (which is what most people
  and distributions use) it never worked correctly. ]

Thanks to Remy LABENE and Lars Winterfeld for help with debugging the problem.

More info at:
http://bugzilla.kernel.org/show_bug.cgi?id=11659
http://bugzilla.kernel.org/show_bug.cgi?id=10216

Reported-by: Remy LABENE &lt;remy.labene@free.fr&gt;
Tested-by: Remy LABENE &lt;remy.labene@free.fr&gt;
Tested-by: Lars Winterfeld &lt;lars.winterfeld@tu-ilmenau.de&gt;
Acked-by: Borislav Petkov &lt;petkovbb@gmail.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>[PATCH] switch ide_disk_ops -&gt;ioctl() to sane prototype</title>
<updated>2008-10-21T11:47:30+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2008-10-16T14:23:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=badf8082c33d18b118d3a6f1b32d5ea6b97d3839'/>
<id>urn:sha1:badf8082c33d18b118d3a6f1b32d5ea6b97d3839</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[PATCH] lose the unused file argument in generic_ide_ioctl()</title>
<updated>2008-10-21T11:47:16+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2008-09-02T21:19:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=1bddd9e6453ef1c7bc5b6f4ddbf7d31f4aee7a44'/>
<id>urn:sha1:1bddd9e6453ef1c7bc5b6f4ddbf7d31f4aee7a44</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ide: add generic ATA/ATAPI disk driver</title>
<updated>2008-10-17T16:09:14+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-10-17T16:09:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=806f80a6fc203ad0bde84e5a9e94572617d2ae45'/>
<id>urn:sha1:806f80a6fc203ad0bde84e5a9e94572617d2ae45</id>
<content type='text'>
* Add struct ide_disk_ops containing protocol specific methods.

* Add 'struct ide_disk_ops *' to ide_drive_t.

* Convert ide-{disk,floppy} drivers to use struct ide_disk_ops.

* Merge ide-{disk,floppy} drivers into generic ide-gd driver.

While at it:
- ide_disk_init_capacity() -&gt; ide_disk_get_capacity()

Acked-by: Borislav Petkov &lt;petkovbb@gmail.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>ide: allow device drivers to specify per-device type /proc settings</title>
<updated>2008-10-17T16:09:13+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-10-17T16:09:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=79cb380397c834a35952d8497651d93b543ef968'/>
<id>urn:sha1:79cb380397c834a35952d8497651d93b543ef968</id>
<content type='text'>
Turn ide_driver_t's 'proc' field into -&gt;proc_entries method
(and also 'settings' field into -&gt;proc_devsets method).  Then
update all device drivers accordingly.

There should be no functional changes caused by this patch.

Acked-by: Borislav Petkov &lt;petkovbb@gmail.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>ide: remove IDE_AFLAG_NO_DOORLOCKING</title>
<updated>2008-10-17T16:09:11+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-10-17T16:09:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=42619d35c7af2f88cad56425fe3981f1f65ff0bd'/>
<id>urn:sha1:42619d35c7af2f88cad56425fe3981f1f65ff0bd</id>
<content type='text'>
Just use IDE_DFLAG_DOORLOCKING instead.

There should be no functional changes caused by this patch.

Acked-by: Borislav Petkov &lt;petkovbb@gmail.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>ide: IDE_AFLAG_FORMAT_IN_PROGRESS -&gt; IDE_DFLAG_FORMAT_IN_PROGRESS</title>
<updated>2008-10-17T16:09:11+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-10-17T16:09:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e01286282eef85e4783b06fb2e0ed84fc111eb32'/>
<id>urn:sha1:e01286282eef85e4783b06fb2e0ed84fc111eb32</id>
<content type='text'>
There should be no functional changes caused by this patch.

Acked-by: Borislav Petkov &lt;petkovbb@gmail.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>ide: IDE_AFLAG_WP -&gt; IDE_DFLAG_WP</title>
<updated>2008-10-17T16:09:11+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-10-17T16:09:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=da167876bd0f71f1c646e5dd98997544d8d90e8e'/>
<id>urn:sha1:da167876bd0f71f1c646e5dd98997544d8d90e8e</id>
<content type='text'>
There should be no functional changes caused by this patch.

Acked-by: Borislav Petkov &lt;petkovbb@gmail.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>ide: IDE_AFLAG_MEDIA_CHANGED -&gt; IDE_DFLAG_MEDIA_CHANGED</title>
<updated>2008-10-17T16:09:11+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-10-17T16:09:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=fe11edfaabf1787c05d782a7b33e6497d1118b1d'/>
<id>urn:sha1:fe11edfaabf1787c05d782a7b33e6497d1118b1d</id>
<content type='text'>
There should be no functional changes caused by this patch.

Acked-by: Borislav Petkov &lt;petkovbb@gmail.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>ide: Implement disk shock protection support (v4)</title>
<updated>2008-10-13T19:39:50+00:00</updated>
<author>
<name>Elias Oltmanns</name>
<email>eo@nebensachen.de</email>
</author>
<published>2008-10-13T19:39:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4abdc6ee7c47a1a6e12f95717e461baeebee5df7'/>
<id>urn:sha1:4abdc6ee7c47a1a6e12f95717e461baeebee5df7</id>
<content type='text'>
On user request (through sysfs), the IDLE IMMEDIATE command with UNLOAD
FEATURE as specified in ATA-7 is issued to the device and processing of
the request queue is stopped thereafter until the specified timeout
expires or user space asks to resume normal operation. This is supposed
to prevent the heads of a hard drive from accidentally crashing onto the
platter when a heavy shock is anticipated (like a falling laptop expected
to hit the floor). Port resets are deferred whenever a device on that
port is in the parked state.

v3:
Elias Oltmanns &lt;eo@nebensachen.de&gt; wrote:
[...]
&gt; &gt;&gt; 1. Make sure that no negative value is being passed to
&gt; &gt;&gt;    jiffies_to_msecs() in ide_park_show().
&gt; &gt;&gt; 2. Drop the superfluous variable hwif in ide_special_rq().
&gt; &gt;&gt; 3. Skip initialisation of task and tf in ide_special_rq() if we are not
&gt; &gt;&gt;    handling a (un)park request.
&gt; &gt;
&gt; &gt; Well, #3 should have been done differently because we donn't want to
&gt; &gt; check for REQ_(UN)?PARK_HEADS more often than is necessary.
&gt; 
&gt; While preparing the backport to 2.6.27, it has just occurred to me that
&gt; we need to clear the IDE_DFLAG_PARKED flag in ide_disk_pre_reset()
&gt; because this flag must not be set after *any* sort of access to the
&gt; device.

v4:
Fix a memory leak due to a missing blk_put_request() in
issue_park_cmd(). Additionally, we should plug the queue when enqueueing
the unpark request because there is no guarantee that the park timeout
has not expired by then. Even though the chance for that to happen is
very slim, the request might end up hanging in the queue until the next
I/O operation is queued up. While at it, clean up the code a little:
- make issue_park_cmd() a function of type void since nobody cares for
  the return value anyway;
- use blk_start_queueing() instead of __blk_run_queue() since we don't
  have to worry about recursion;
- remove a superfluous pointer deference in task_no_data_intr().

Signed-off-by: Elias Oltmanns &lt;eo@nebensachen.de&gt;
Cc: Jeff Garzik &lt;jeff@garzik.org&gt;,
Cc: Randy Dunlap &lt;randy.dunlap@oracle.com&gt;
Cc: Tejun Heo &lt;htejun@gmail.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
</feed>
