<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/ide/ide-cd.c, branch linux-2.6.35.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-2.6.35.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-2.6.35.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2010-08-13T20:30:48+00:00</updated>
<entry>
<title>ide-cd: Do not access completed requests in the irq handler</title>
<updated>2010-08-13T20:30:48+00:00</updated>
<author>
<name>Borislav Petkov</name>
<email>bp@alien8.de</email>
</author>
<published>2010-07-06T04:23:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8a4ddef0916fea7b0dae2ae5b5fc287029e2208e'/>
<id>urn:sha1:8a4ddef0916fea7b0dae2ae5b5fc287029e2208e</id>
<content type='text'>
commit 110712828365ccafcc61a7f4db44c31ed4cf8793 upstream.

ide_cd_error_cmd() can complete an erroneous request with leftover
buffers. Signal this with its return value so that the request is not
accessed after its completion in the irq handler and we oops.

Signed-off-by: Borislav Petkov &lt;bp@alien8.de&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>const: make block_device_operations const</title>
<updated>2009-09-22T14:17:25+00:00</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2009-09-22T00:01:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=83d5cde47dedf01b6a4a4331882cbc0a7eea3c2e'/>
<id>urn:sha1:83d5cde47dedf01b6a4a4331882cbc0a7eea3c2e</id>
<content type='text'>
Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>ide: convert to -&gt;proc_fops</title>
<updated>2009-09-02T00:52:57+00:00</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2009-09-02T00:52:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6d703a81ad5fdd102334751ddacb053ecc6ff046'/>
<id>urn:sha1:6d703a81ad5fdd102334751ddacb053ecc6ff046</id>
<content type='text'>
-&gt;read_proc, -&gt;write_proc are going away, -&gt;proc_fops should be used instead.

The only tricky place is IDENTIFY handling: if for some reason
taskfile_lib_get_identify() fails, buffer _is_ changed and at least
first byte is overwritten. Emulate old behaviour with returning
that first byte to userspace and reporting length=1 despite overall -E.

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>drivers/ide/ide-cd.c: Use DIV_ROUND_CLOSEST</title>
<updated>2009-08-07T17:42:58+00:00</updated>
<author>
<name>Julia Lawall</name>
<email>julia@diku.dk</email>
</author>
<published>2009-08-02T20:19:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=72db37b2c9c5b71e49068f5fac6433a6c36498a5'/>
<id>urn:sha1:72db37b2c9c5b71e49068f5fac6433a6c36498a5</id>
<content type='text'>
The kernel.h macro DIV_ROUND_CLOSEST performs the computation (x + d/2)/d
but is perhaps more readable.

The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// &lt;smpl&gt;
@haskernel@
@@

#include &lt;linux/kernel.h&gt;

@depends on haskernel@
expression x,__divisor;
@@

- (((x) + ((__divisor) / 2)) / (__divisor))
+ DIV_ROUND_CLOSEST(x,__divisor)
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&gt;
Acked-by: Borislav Petkov &lt;petkovbb@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ide-cd: handle fragmented packet commands gracefully</title>
<updated>2009-06-26T18:22:37+00:00</updated>
<author>
<name>Borislav Petkov</name>
<email>petkovbb@gmail.com</email>
</author>
<published>2009-06-26T18:22:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=9c72ebef5aabf3532469d602a9d87beceea268b1'/>
<id>urn:sha1:9c72ebef5aabf3532469d602a9d87beceea268b1</id>
<content type='text'>
There are some devices in the wild that clear the DRQ bit during the
last word of a packet command and therefore could use a "second chance"
for that last word of data to be xferred instead of simply failing the
request. Do that by attempting to suck in those last bytes in PIO mode.

In addition, the ATA_ERR bit has to be cleared for we cannot be sure the
data is valid otherwise.

See http://bugzilla.kernel.org/show_bug.cgi?id=13399 for details.

Signed-off-by: Borislav Petkov &lt;petkovbb@gmail.com&gt;
Acked-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ide-cd: Improve "weird block size" error message</title>
<updated>2009-06-24T07:32:31+00:00</updated>
<author>
<name>Frans Pop</name>
<email>elendil@planet.nl</email>
</author>
<published>2009-06-23T23:02:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=d9ae62433e46909fc9e7d97ce74202c2851667b8'/>
<id>urn:sha1:d9ae62433e46909fc9e7d97ce74202c2851667b8</id>
<content type='text'>
Currently the error gets repeated too frequently, for example each
time HAL polls the device when a disc is present. Avoid that by using
printk_once instead of printk.

Also join the error and corrective action messages into a single line.

Signed-off-by: Frans Pop &lt;elendil@planet.nl&gt;
Acked-by: Borislav Petkov &lt;petkovbb@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ide-cd: Don't warn on bogus block size unless it actually matters.</title>
<updated>2009-06-24T07:32:30+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2009-06-23T23:01:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=af054ed0018f0a69f8ea6f7546cbf34385edf13b'/>
<id>urn:sha1:af054ed0018f0a69f8ea6f7546cbf34385edf13b</id>
<content type='text'>
Frans Pop reported that his CDROM drive reports a blocksize of 2352,
and this causes new warnings due to commit
e8e7b9eb11c34ee18bde8b7011af41938d1ad667 ("ide-cd: fix oops when using
growisofs").

What we're trying to do is make sure that "blocklen &gt;&gt; SECTOR_BITS"
is something the block layer won't choke on.

And for Frans' case "2352 &gt;&gt; SECTOR_BITS" is equal to
"2048 &gt;&gt; SECTOR_BITS", and thats "4".

So warning in this case gives no real benefit.

Reported-by: Frans Pop &lt;elendil@planet.nl&gt;
Tested-by: Frans Pop &lt;elendil@planet.nl&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ide-cd: prevent null pointer deref via cdrom_newpc_intr</title>
<updated>2009-06-20T10:22:47+00:00</updated>
<author>
<name>Rainer Weikusat</name>
<email>rweikusat@mssgmbh.com</email>
</author>
<published>2009-06-18T15:04:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=39c58f37a10198054c656c28202fb1e6d22fd505'/>
<id>urn:sha1:39c58f37a10198054c656c28202fb1e6d22fd505</id>
<content type='text'>
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;
</content>
</entry>
<entry>
<title>ide: BUG() on unknown requests</title>
<updated>2009-06-15T20:16:10+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2009-06-15T20:16:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=2c7eaa43c3bb7b3b9fe2051d17f308c1f0728c78'/>
<id>urn:sha1:2c7eaa43c3bb7b3b9fe2051d17f308c1f0728c78</id>
<content type='text'>
Unsupported requests should be never handed down to device drivers
and the best thing we can do upon discovering such request inside
driver's -&gt;do_request method is to just BUG().

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'bp-remove-pc-buf' into for-next</title>
<updated>2009-06-13T10:00:54+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2009-06-13T10:00:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8dcce4081305d3d1629190edd112e6473c315cbc'/>
<id>urn:sha1:8dcce4081305d3d1629190edd112e6473c315cbc</id>
<content type='text'>
Conflicts:
	drivers/ide/ide-tape.c
</content>
</entry>
</feed>
