Re: Resend: PATCH: Stop 2.6.12rc rmmod from being able to destroy CD hardware

From: Bartlomiej Zolnierkiewicz
Date: Fri May 27 2005 - 09:28:38 EST


I believe that this was fixed differently almost moth ago by Jens:
http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7da21a02b3587157bd43910ea6d4c76661228ebb;hp=76530da1a9e8ce05963b1f49a098eddc6ec6c534

It would be nice to have features mask in ide-cd.c done right
but this sounds like 2.6.13 material.

On 5/27/05, Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> wrote:
> On an rmmod the cdrom layer when used with ide-cd issues a cache flush
> atapi command to devices including those that do not support it.
> According to Jens earlier discussion this isn't merely a minor glitch
> but can destroy some CD hardware due to firmware bugs in the drive (as
> per the Mandrake incident)
>
> The IDE CD layer uses a mask of unsupported features, this means that
> because ide-cd doesn't know about MRW writables it doesn't set the
> relevant bit for non writables and harm can occur.
>
> The simple fix is attached, making the driver start from ~0 and mask
> bits the other direction would longer term be safer.
>
> diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.12rc3/drivers/ide/ide-cd.c linux-2.6.12rc3-minoride/drivers/ide/ide-cd.c
> --- linux.vanilla-2.6.12rc3/drivers/ide/ide-cd.c 2005-04-27 16:01:29.000000000 +0100
> +++ linux-2.6.12rc3-minoride/drivers/ide/ide-cd.c 2005-05-01 14:09:35.000000000 +0100
> @@ -2860,6 +2922,9 @@
> devinfo->mask |= CDC_CLOSE_TRAY;
> if (!CDROM_CONFIG_FLAGS(drive)->mo_drive)
> devinfo->mask |= CDC_MO_DRIVE;
> +
> + /* We must have this masked unless a drive definitely handles it */
> + devinfo->mask |= CDC_MRW_W;
>
> devinfo->disk = info->disk;
> return register_cdrom(devinfo);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/