<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/ide, branch v2.6.30.8</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/ide?h=v2.6.30.8</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/ide?h=v2.6.30.8'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2009-08-16T21:19:19Z</updated>
<entry>
<title>ide: fix memory leak when flush command is issued</title>
<updated>2009-08-16T21:19:19Z</updated>
<author>
<name>Maxime Bizon</name>
<email>mbizon@freebox.fr</email>
</author>
<published>2009-07-16T06:32:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ff77456ae8fcd2d3140de34019fb75b8c345f185'/>
<id>urn:sha1:ff77456ae8fcd2d3140de34019fb75b8c345f185</id>
<content type='text'>
commit bc146d23d1358af43f03793c3ad8c9f16bbcffcb upstream.

I'm using ide on 2.6.30.1 with xfs filesystem. I noticed a kernel memory
leak after writing lots of data, the kmalloc-96 slab cache keeps
growing. It seems the struct ide_cmd kmalloced by idedisk_prepare_flush
is never kfreed.

Commit a09485df9cda49fbde2766c86eb18a9cae585162 ("ide: move request
type specific code from ide_end_drive_cmd() to callers (v3)") and
f505d49ffd25ed062e76ffd17568d3937fcd338c ("ide: fix barriers support")
cause this regression, cmd-&gt;rq must now be set for ide_complete_cmd to
honor the IDE_TFLAG_DYN flag.

Signed-off-by: Maxime Bizon &lt;mbizon@freebox.fr&gt;
Acked-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Cc: Simon Kirby &lt;sim@netnation.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ide: relax DMA info validity checking</title>
<updated>2009-08-16T21:18:48Z</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2009-06-22T07:38:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a27b9c59f2a252c4fd8723a929cc46067a4ad58e'/>
<id>urn:sha1:a27b9c59f2a252c4fd8723a929cc46067a4ad58e</id>
<content type='text'>
commit 346c17a6cf60375323adfaa4b8a9d841049f890e upstream.

There are some broken devices that report multiple DMA xfer modes
enabled at once (ATA spec doesn't allow it) but otherwise work fine
with DMA so just delete ide_id_dma_bug().

[ As discovered by detective work by Frans and Bart, due to how
  handling of the ID block was handled before commit c419993
  ("ide-iops: only clear DMA words on setting DMA mode") this
  check was always seeing zeros in the fields or other similar
  garbage.  Therefore this check wasn't actually checking anything.
  Now that the tests actually check the real bits, all we see are
  devices that trigger the check yet work perfectly fine, therefore
  killing this useless check is the best thing to do. -DaveM ]

Reported-by: Frans Pop &lt;elendil@planet.nl&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ide: fix handling of unexpected IRQs vs request_irq()</title>
<updated>2009-08-16T21:18:47Z</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2009-06-23T10:43:00Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=957157bfe829d5900ae43b46674bae4d97207712'/>
<id>urn:sha1:957157bfe829d5900ae43b46674bae4d97207712</id>
<content type='text'>
commit ffc36c7610731115c77700dcc53901920361c235 upstream.

Add ide_host_enable_irqs() helper and use it in ide_host_register()
before registering ports.  Then remove no longer needed IRQ unmasking
from in init_irq().

This should fix the problem with "screaming" shared IRQ on the first
port (after request_irq() call while we have the unexpected IRQ pending
on the second port) which was uncovered by my rework of the serialized
interfaces support.

Reported-by: Frans Pop &lt;elendil@planet.nl&gt;
Tested-by: Frans Pop &lt;elendil@planet.nl&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ide-cd: prevent null pointer deref via cdrom_newpc_intr</title>
<updated>2009-07-02T23:51:05Z</updated>
<author>
<name>Rainer Weikusat</name>
<email>rweikusat@mssgmbh.com</email>
</author>
<published>2009-06-18T15:04:00Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2547a3000f19e677ab5eb7e1a9c01164f5bd7922'/>
<id>urn:sha1:2547a3000f19e677ab5eb7e1a9c01164f5bd7922</id>
<content type='text'>
commit 39c58f37a10198054c656c28202fb1e6d22fd505 upstream.

With 2.6.30, the error handling code in cdrom_newpc_intr was changed
to deal with partial request failures by normally completing the 'good'
parts of a request and only 'error' the last (and presumably,
incompletely transferred) bio associated with a particular
request. In order to do this, ide_complete_rq is called over
ide_cd_error_cmd() to partially complete the rq. The block layer
does partial completion only for requests with bio's and if the
rq doesn't have one (eg 'GPCMD_READ_DISC_INFO') the request is
completed as a whole and the drive-&gt;hwif-&gt;rq pointer set to NULL
afterwards. When calling ide_complete_rq again to report
the error, this null pointer is derefenced, resulting in a kernel
crash.

This fixes http://bugzilla.kernel.org/show_bug.cgi?id=13399.

Signed-off-by: Rainer Weikusat &lt;rweikusat@mssgmbh.com&gt;
Signed-off-by: Borislav Petkov &lt;petkovbb@gmail.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>pdc202xx_old: fix resetproc() method</title>
<updated>2009-06-07T11:52:50Z</updated>
<author>
<name>Sergei Shtylyov</name>
<email>sshtylyov@ru.mvista.com</email>
</author>
<published>2009-06-07T11:52:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=669165daad2ec839df85b8c5f7bc155e76a2f404'/>
<id>urn:sha1:669165daad2ec839df85b8c5f7bc155e76a2f404</id>
<content type='text'>
pdc202xx_reset() calls pdc202xx_reset_host() twice, for both channels, while
that function actually twiddles the single, shared software reset bit -- the
net effect is a duplicated reset and horrendous 4 second delay happening not
only on a channel reset but also when dma_lost_irq() and dma_clear() methods
are called.  Fold pdc202xx_reset_host() into pdc202xx_reset(), fix printk(),
and move it before the actual reset...

Signed-off-by: Sergei Shtylyov &lt;sshtylyov@ru.mvista.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>pdc202xx_old: fix 'pdc20246_dma_ops'</title>
<updated>2009-06-07T11:52:50Z</updated>
<author>
<name>Sergei Shtylyov</name>
<email>sshtylyov@ru.mvista.com</email>
</author>
<published>2009-06-07T11:52:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=521a415c9f6d4e5463807ce6d36598acabcd204f'/>
<id>urn:sha1:521a415c9f6d4e5463807ce6d36598acabcd204f</id>
<content type='text'>
Commit ac95beedf8bc97b24f9540d4da9952f07221c023 (ide: add struct ide_port_ops
(take 2)) erroneously converted the driver's dma_timeout() and dma_lost_irq()
methods to call the driver's resetproc() method regardless of whether it was
defined for this specific controller while it hadn't been defined and hence
called for PDC20246. So the dma_clear() method, the successor of dma_timeout(),
shouldn't exist and the dma_lost_irq() method should be standard for PDC20246.

Signed-off-by: Sergei Shtylyov &lt;sshtylyov@ru.mvista.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>ide_pci_generic: add quirk for Netcell ATA RAID</title>
<updated>2009-05-30T18:06:54Z</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2009-05-30T18:06:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c339dfdd65b52bfd947ab29d1210314a2f6d622d'/>
<id>urn:sha1:c339dfdd65b52bfd947ab29d1210314a2f6d622d</id>
<content type='text'>
We need to explicitly mark words 85-87 as valid ones since
firmware doesn't do it.

This should fix support for LBA48 and FLUSH CACHE [EXT] command
which stopped working after we applied more strict checking of
identify words in:

	commit 942dcd85bf8edf38cdc3745306ca250684d99a61
	("ide: idedisk_supports_lba48() -&gt; ata_id_lba48_enabled()")

and

	commit 4b58f17d7c45a8e5f4acda641bec388398b9c0fa
	("ide: ide_id_has_flush_cache() -&gt; ata_id_flush_enabled()")

Reported-and-tested-by: "Trevor Hemsley" &lt;trevor.hemsley@ntlworld.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>via82cxxx: Add VIA VX855 PCI Device ID</title>
<updated>2009-05-22T14:23:39Z</updated>
<author>
<name>Harald Welte</name>
<email>HaraldWelte@viatech.com</email>
</author>
<published>2009-05-22T14:23:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5993856e53fbc4b4f28e2d481deaebeb715b1267'/>
<id>urn:sha1:5993856e53fbc4b4f28e2d481deaebeb715b1267</id>
<content type='text'>
This patch adds the PCI Device ID 0xc409 to the PCI ID table of via82cxxx.c,
as well as the 0x8409 south bridge ID.

This is required to make the IDE driver work on the VX855/VX875 integrated
chipset.

Signed-off-by: Harald Welte &lt;HaraldWelte@viatech.com&gt;
Cc: Joseph Chan &lt;JosephChan@via.com.tw&gt;
Cc: Bruce Chang &lt;BruceChang@via.com.tw&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>ide: report timeouts in ide_busy_sleep()</title>
<updated>2009-05-22T14:23:38Z</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2009-05-22T14:23:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=28ee9bc5cc42776e0364399b401a64906ac1ac8e'/>
<id>urn:sha1:28ee9bc5cc42776e0364399b401a64906ac1ac8e</id>
<content type='text'>
* change 'hwif' argument to 'drive'
* report an error on timeout

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>ide: improve failed opcode reporting</title>
<updated>2009-05-22T14:23:38Z</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2009-05-22T14:23:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cc30137a221372c67a943ad9ea68121a2bd57a6e'/>
<id>urn:sha1:cc30137a221372c67a943ad9ea68121a2bd57a6e</id>
<content type='text'>
Nowadays we (almost) always store the currently executing command
in hwif-&gt;cmd so we can use it for the failed opcode reporting.

Cc: Martin Lottermoser &lt;Martin.Lottermoser@t-online.de&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
</feed>
