Re: Oops in ide_xlate_1024 in 2.5.67-ac2

From: Andries Brouwer (aebr@win.tue.nl)
Date: Sat Apr 19 2003 - 06:39:21 EST


On Sat, Apr 19, 2003 at 12:42:02AM +0200, Petr Konecny wrote:

> I am getting the appended oops. It happens after I plug in USB storage
> device and sd_mod gets modprobed by hotplug. It checks partitions on the
> disk and oopses during that. It looks similar to the bug reported here:
> http://www.ussg.iu.edu/hypermail/linux/kernel/0302.2/1305.html

> EIP is at ide_xlate_1024+0xbe/0x1f0
> Call Trace:
> [blkdev_readpage+0/32] blkdev_readpage+0x0/0x20
> [handle_ide_mess+245/640] handle_ide_mess+0xf5/0x280
> [msdos_partition+60/928] msdos_partition+0x3c/0x3a0

Yesterday I answered someone else with a similar oops:

The code

int ide_xlate_1024 (struct block_device *bdev, ...) {
        ide_drive_t *drive = bdev->bd_disk->private_data;

is just broken - there is no guarantee that bdev is an IDE disk,
and casting some private pointer to ide_drive_t and then
accessing fields must be unhealthy.

Try replacing the body of ide_xlate_1024 by just

        return 0;

Andries

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Apr 23 2003 - 22:00:25 EST