On Wednesday 01 August 2007, Mikko Rapeli wrote:
> On Wed, Aug 01, 2007 at 10:34:03PM +0200, Bartlomiej Zolnierkiewicz wrote:
> > Could you try attached patch?
> >
> > [PATCH] ide-disk: workaround for buggy HPA support on ST340823A
>
> Umh, it's getting late but some makefile magic maybe missing, or I
> should do a clean build?
[...]
> ERROR: "ide_in_drive_list" [drivers/ide/ide-disk.ko] undefined!
> make[1]: *** [__modpost] Error 1
> make: *** [drivers/ide/ide-disk.ko] Error 2
There is "EXPORT_SYMBOL(ide_in_drive_list);" missing from ide-dma.c.
I overlooked it since here ide-disk is built-in, sorry for that.
> Based on Alan's comments I'm already running 2.6.22.1 with this:
Ah, I see it now.
> diff -ru linux-2.6.22.1/drivers/ide/ide-disk.c
> linux-2.6.22.1.new/drivers/ide/ide-disk.c
> --- linux-2.6.22.1/drivers/ide/ide-disk.c 2007-07-10 21:56:30.000000000
> +0300
> +++ linux-2.6.22.1.new/drivers/ide/ide-disk.c 2007-08-01 22:59:47.000000000
> +0300
> @@ -502,6 +502,17 @@
> capacity, sectors_to_MB(capacity),
> set_max, sectors_to_MB(set_max));
>
> + if ((set_max % 2) && (set_max == capacity + 1)) {
> + printk(KERN_INFO "Old drive detected, keeping current
> capacity.\n");
Please either remove this printk() or change it to:
"Buggy HPA implementation, keeping current capacity."
The disk is not odd sized since the command to read the last sectors fail
with "SectorIdNotFound". This is a buggy HPA implementation as explained in
the description of my patch.
BTW libata wouldn't help since HPA code is almost a direct copy of the code
from ide-disk (I did the comparision before writing my patch)
> + return;
> + }
> +
> if (lba48)
> set_max = idedisk_set_max_address_ext(drive, set_max);
> else
Otherwise this patch looks fine and is a bit simpler than my patch.
If you fix the printk, add patch description (can use the one from my patch)
and add "Signed-off-by:" I would happily apply it and dump mine version.
Thanks,
Bart
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html