Re: CD writing in future Linux try #2 [ was: Re: CD writing in future Linux (stirring up a hornets' nest) ]

From: Albert Cahalan
Date: Sun Jan 29 2006 - 16:28:02 EST


On 1/29/06, Joerg Schilling <schilling@xxxxxxxxxxxxxxxxxxx> wrote:
> Jan Engelhardt <jengelh@xxxxxxxxxxxxxxx> wrote:
>
> > >That's what I believe to be cdrecord/libscg bugs:
> > >
> > >1) libscg or cdrecord does not automatically probe all available
> > > transports, but only SCSI:
> >
> > This one is IMO just "a missing feature", as I can get the ATA/PI list using
> > cdrecord -dev=ATA: -scanbus
>
> It cannot be fixed unless the two first bugs from my Linux kernel
> bug report have been fixed.

Which, from an earlier email, were:

> ide-scsi does not do DMA if the DMAsize is not a
> multiple of 512 A person who knows internal Linux
> structures shoule be able to fix this (and allow
> any multiple of 4) in less than one hour.

and

> /dev/hd* artificially prevents the ioctls
> SCSI_IOCTL_GET_IDLUN SCSI_IOCTL_GET_BUS_NUMBER from
> returning useful values. As long as this bug is present,
> there is no way to see SG_IO via /dev/hd* as integral
> part of the Linux SCSI transport concept.

Let's address the second bug first. Linux provides full
bus number and LUN info for all block devices. You get it
like this:

struct stat sbuf;
stat("/dev/hdc", &sbuf);
int bus = sbuf.st_mode>>12;
int target = major(sbuf.st_rdev);
int lun = minor(sbuf.st_rdev);

That makes as much sense as anything, and it lets you quickly
find back the device by scanning /dev.

As for ide-scsi, your right, it's horribly broken. We should
just get rid of it. If there is anything that the normal driver
is unable to do well, I'm sure you'll let us know.
-
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/