2003-03-09 08:30:44

by Andries E. Brouwer

[permalink] [raw]
Subject: Re: ide-problem still with 2.4.21-pre5-ac1

> why its not honouring PTBL values in his case apparently

The disk capacity code foolishly sets heads to 255, and then
ide_xlate_1024 decides that we already have chosen a translation,
so that it does not have to figure out what translation to use.

Andries

See:
if (xparm == 2) {
if (!heads ||
(drive->bios_head >= heads && drive->bios_sect == 63))
transl = 0;
}
if (xparm == -1) {
if (drive->bios_head > 16)
transl = 0; /* we already have a translation */
}


2003-03-09 20:17:44

by Bill Davidsen

[permalink] [raw]
Subject: Re: ide-problem still with 2.4.21-pre5-ac1

On Sun, 9 Mar 2003 [email protected] wrote:

> > why its not honouring PTBL values in his case apparently
>
> The disk capacity code foolishly sets heads to 255, and then
> ide_xlate_1024 decides that we already have chosen a translation,
> so that it does not have to figure out what translation to use.
>
> Andries

[ code snipped ]

Since you identify this as the problem, do you propose a solution? A flag
indicating that default values are in place, perhaps? Better checks to
ensure that if LBA is used the geometry is forced sane in some way? I
don't think special case code is desirable in this case, at least beyond
checking a flag if that's what's needed.

--
bill davidsen <[email protected]>
CTO, TMR Associates, Inc
Doing interesting things with little computers since 1979.