LIBATA told me it's broken

From: Norman Diamond
Date: Tue Mar 10 2009 - 04:20:30 EST


Sorry the kernel is 2.6.24.3 but I can't use a newer one
yet because TASKFILEs broke in newer ones. This time I
booted with kernel parameter hda=noprobe so the hard disk
went to LIBATA instead of IDE. The breakage shown below
is in LIBATA.

If LIBATA is fixed in newer kernel versions please say.
If there's a version of Slax where LIBATA works then maybe
I can recompile its kernel without IDE.

struct sg_io_hdr sg_io;
uint8_t cdb[16];
uint8_t sense[32];
uint8_t buffer[0x20000]; // length = 256 * 512
memset(&sg_io, 0, sizeof sg_io);
memset(&cdb, 0, sizeof cdb);
memset(&sense, 0, sizeof sense);
memset(&buffer, 0xe5, sizeof buffer);
cdb[0] = 0x8a; // WRITE (16)
cdb[6] = 0x0f;
cdb[7] = 0xff;
cdb[8] = 0xff;
cdb[9] = 0x00; // start = 0x0fffff00
cdb[12] = 0x01;
cdb[13] = 0x00; // count = 0x0100
sg_io.interface_id = 'S';
sg_io.cmdp = cdb;
sg_io.cmd_len = sizeof cdb;
sg_io.dxferp = buffer;
sg_io.dxfer_len = 256 * 512;
sg_io.dxfer_direction = SG_DXFER_TO_DEV;
sg_io.sbp = sense;
sg_io.mx_sb_len = sizeof sense;
sg_io.timeout = 2000;
fd = open("/dev/sda", O_WRONLY); // succeeded
ioctl(fd, SG_IO, &sg_io); // ioctl succeeded
// but LIBATA failed

CHECK CONDITION
sense:
72 0b 14 00 00 00 00 0c 00 0a 80 00 00 00 00 00
0f ff ff 00

/dev/sda is a 250GB SATA drive but Dell's Intel ICH7M
presents it as ATA. Ranges before and after the magic
LBA28 boundary wrote perfectly.



--------------------------------------
Power up the Internet with Yahoo! Toolbar.
http://pr.mail.yahoo.co.jp/toolbar/
--
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/