All of lore.kernel.org
 help / color / mirror / Atom feed
* Resend: PATCH: Stop 2.6.12rc rmmod from being able to destroy CD hardware
@ 2005-05-27 12:18 Alan Cox
  2005-05-27 14:27 ` Bartlomiej Zolnierkiewicz
  2005-05-27 14:54 ` Linus Torvalds
  0 siblings, 2 replies; 4+ messages in thread
From: Alan Cox @ 2005-05-27 12:18 UTC (permalink / raw)
  To: Linux Kernel Mailing List, axboe, Bartlomiej Zolnierkiewicz,
	torvalds

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);


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-05-27 14:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-05-27 12:18 Resend: PATCH: Stop 2.6.12rc rmmod from being able to destroy CD hardware Alan Cox
2005-05-27 14:27 ` Bartlomiej Zolnierkiewicz
2005-05-27 14:54 ` Linus Torvalds
2005-05-27 14:58   ` Jens Axboe

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.