Skip to contentSkip to conversation

libata and starting/stopping ATAPI floppy devices

PATCH In review Ondrej Zary 3 participants 5 messages Jan 5, 2008 – Jan 10, 2008 libata

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 libata and starting/stopping ATAPI floppy devices

Hello,
I switched to libata drivers for my onboard PATA controller (PIIX4) recently. Everything works fine except that kernel tries to start not only my hard drive (sda) but also LS-120 floppy drive (sdb) which does not like it:

sd 0:0:0:0: [sda] Starting disk
ata1.00: configured for UDMA/33
sd 0:0:0:0: [sda] 58633344 512-byte hardware sectors (30020 MB) sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 1:0:1:0: [sdb] Starting disk
ata2.00: configured for UDMA/33
ata2.01: configured for PIO2
sd 1:0:1:0: [sdb] Result: hostbyte=0x00 driverbyte=0x08
sd 1:0:1:0: [sdb] Sense Key : 0x2 [current]
sd 1:0:1:0: [sdb] ASC=0x3a ASCQ=0x0

The question is: is it correct? Or a patch like this should be applied?

drivers/ata/libata-scsi.c +2 -1
@@ -802,7 +802,8 @@
 
 	blk_queue_max_phys_segments(sdev->request_queue, LIBATA_MAX_PRD);
 
-	sdev->manage_start_stop = 1;
+	if (dev->class == ATA_DEV_ATA)
+		sdev->manage_start_stop = 1;
 
 	if (dev)
 		ata_scsi_dev_config(sdev, dev);
Signature · 1 line
Ondrej Zary
Acked-by on v1 1/1
#1 lore raw
Quoted 19 lines · Ondrej Zary

Hello,
I switched to libata drivers for my onboard PATA controller (PIIX4) recently. Everything works fine except that kernel tries to start not only my hard drive (sda) but also LS-120 floppy drive (sdb) which does not like it:

sd 0:0:0:0: [sda] Starting disk
ata1.00: configured for UDMA/33
sd 0:0:0:0: [sda] 58633344 512-byte hardware sectors (30020 MB) sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 1:0:1:0: [sdb] Starting disk
ata2.00: configured for UDMA/33
ata2.01: configured for PIO2
sd 1:0:1:0: [sdb] Result: hostbyte=0x00 driverbyte=0x08
sd 1:0:1:0: [sdb] Sense Key : 0x2 [current]
sd 1:0:1:0: [sdb] ASC=0x3a ASCQ=0x0

Quoted 1 line

The question is: is it correct? Or a patch like this should be applied?

Yeah, looks good to me. Please reformat the message w/ S-O-B.

Signature · 1 line
tejun
#2 lore raw
Quoted 21 lines · On Wednesday 09 January 2008 03:41:16 Tejun Heo wrote:
Quoted 20 lines · Ondrej Zary

Hello,
I switched to libata drivers for my onboard PATA controller (PIIX4) recently. Everything works fine except that kernel tries to start not only my hard drive (sda) but also LS-120 floppy drive (sdb) which does not like it:

sd 0:0:0:0: [sda] Starting disk
ata1.00: configured for UDMA/33
sd 0:0:0:0: [sda] 58633344 512-byte hardware sectors (30020 MB) sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 1:0:1:0: [sdb] Starting disk
ata2.00: configured for UDMA/33
ata2.01: configured for PIO2
sd 1:0:1:0: [sdb] Result: hostbyte=0x00 driverbyte=0x08 sd 1:0:1:0: [sdb] Sense Key : 0x2 [current]
sd 1:0:1:0: [sdb] ASC=0x3a ASCQ=0x0

Quoted 5 lines
Quoted 1 line

The question is: is it correct? Or a patch like this should be applied?

Yeah, looks good to me. Please reformat the message w/ S-O-B.

Prevent libata from starting/stopping non-ATA devices (like ATAPI floppy drives) as they don't seem to like it:

sd 1:0:1:0: [sdb] Starting disk
ata2.01: configured for PIO2
sd 1:0:1:0: [sdb] Result: hostbyte=0x00 driverbyte=0x08 sd 1:0:1:0: [sdb] Sense Key : 0x2 [current]
sd 1:0:1:0: [sdb] ASC=0x3a ASCQ=0x0

drivers/ata/libata-scsi.c +2 -1
@@ -802,7 +802,8 @@
 
 	blk_queue_max_phys_segments(sdev->request_queue, LIBATA_MAX_PRD);
 
-	sdev->manage_start_stop = 1;
+	if (dev->class == ATA_DEV_ATA)
+		sdev->manage_start_stop = 1;
 
 	if (dev)
 		ata_scsi_dev_config(sdev, dev);
Signature · 1 line
Ondrej Zary
#3 lore raw

PATCH 1/1 libata and starting/stopping ATAPI floppy devices

From: Ondrej Zary <[email protected]>

Prevent libata from starting/stopping non-ATA devices (like ATAPI floppy drives) as they don't seem to like it:

sd 1:0:1:0: [sdb] Starting disk
ata2.01: configured for PIO2
sd 1:0:1:0: [sdb] Result: hostbyte=0x00 driverbyte=0x08 sd 1:0:1:0: [sdb] Sense Key : 0x2 [current]
sd 1:0:1:0: [sdb] ASC=0x3a ASCQ=0x0

---
Trimmed message body and reformatted such that it's script friendly.

 drivers/ata/libata-scsi.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/ata/libata-scsi.c +2 -1
@@ -802,7 +802,8 @@
 
 	blk_queue_max_phys_segments(sdev->request_queue, LIBATA_MAX_PRD);
 
-	sdev->manage_start_stop = 1;
+	if (dev->class == ATA_DEV_ATA)
+		sdev->manage_start_stop = 1;
 
 	if (dev)
 		ata_scsi_dev_config(sdev, dev);
#4 lore raw
Quoted 21 lines · Tejun Heo

From: Ondrej Zary <[email protected]>

Prevent libata from starting/stopping non-ATA devices (like ATAPI floppy drives) as they don't seem to like it:

sd 1:0:1:0: [sdb] Starting disk
ata2.01: configured for PIO2
sd 1:0:1:0: [sdb] Result: hostbyte=0x00 driverbyte=0x08 sd 1:0:1:0: [sdb] Sense Key : 0x2 [current]
sd 1:0:1:0: [sdb] ASC=0x3a ASCQ=0x0

---
Trimmed message body and reformatted such that it's script friendly.

 drivers/ata/libata-scsi.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

drivers/ata/libata-scsi.c line 808

Quoted 8 lines
drivers/ata/libata-scsi.c +2 -1
@@ -802,7 +802,8 @@
 
 	blk_queue_max_phys_segments(sdev->request_queue, LIBATA_MAX_PRD);
 
-	sdev->manage_start_stop = 1;
+	if (dev->class == ATA_DEV_ATA)
+		sdev->manage_start_stop = 1;
 
 	if (dev)

applied #upstream-fixes manually. not sure why git-am didn't like it, but patch(1) did.