kern/115572: ata disk bug
Graham
gbradley at rocketmail.com
Sun Aug 19 13:10:06 PDT 2007
The following reply was made to PR kern/115572; it has been noted by GNATS.
From: Graham <gbradley at rocketmail.com>
To: "Søren" Schmidt <sos at deepcore.dk>
Cc: bug-followup at FreeBSD.org, Poul-Henning Kamp <phk at phk.freebsd.dk>
Subject: Re: kern/115572: ata disk bug
Date: Sun, 19 Aug 2007 13:03:21 -0700 (PDT)
thanks Søren....
--- Søren Schmidt <sos at deepcore.dk> wrote:
> Poul-Henning Kamp wrote:
> > In message <200708182120.l7ILKBvF046099 at freefall.freebsd.org>,
> Graham writes:
> >
> >
> >> 2. attempt (say)....
> >> rabbit# dd if=/dev/zero of=/dev/ad4s1 oseek=2097151 count=1 bs=64k
> >> and the result is....
> >> dd: /dev/ad4s1: Input/output error
> >> 1+0 records in
> >> 0+0 records out
> >> 0 bytes transferred in 0.000325 secs (0 bytes/sec)
> >>
> >> (If dd is performed on the raw drive, /dev/ad4 then block boundary
> is
> >> always a power of 2, and blocksize a smaller power of 2. That's
> always
> >> ok. But we can't assume we use drives that way.)
> >>
> >> So a transfer which starts in the 28-bit zone, but extends over
> into
> >> the 48-bit region, fails. Such transfers happen in the superblock
> of
> >> certain size drives, and that plays havoc. The sector mapping of
> gbde
> >> can do this, but soft-update gets screwed by this happening. It's
> not
> >> actually to do with the crypto as I first suspected.
> >>
> >
> > This is a problem in the ata disk driver.
> >
> Yeah, the crossover point from using 28bit to 48bit addressing is
> flawed, below patch should fix that:
>
> --- ata-all.c 23 Feb 2007 16:25:08 -0000 1.279
> +++ ata-all.c 19 Aug 2007 09:25:58 -0000
> @@ -738,7 +738,7 @@
>
> atadev->flags &= ~ATA_D_48BIT_ACTIVE;
>
> - if ((request->u.ata.lba >= ATA_MAX_28BIT_LBA ||
> + if (((request->u.ata.lba + request->u.ata.count) >=
> ATA_MAX_28BIT_LBA ||
> request->u.ata.count > 256) &&
> atadev->param.support.command2 & ATA_SUPPORT_ADDRESS48) {
>
>
>
> -Søren
> >
> >
> >
>
>
>
I have compiled with this patch and done an (admittedly superficial)
test and the bug is not now visible. I am quite happy to see this one
marked as solved. My apologies to P-H.K. for starting off on the wrong
tack.
Do I need to flag anyone else for this to get taken up in the stock
kernel, or will this happen automatic now?
regards
Graham
____________________________________________________________________________________
Building a website is a piece of cake. Yahoo! Small Business gives you all the tools to get online.
http://smallbusiness.yahoo.com/webhosting
More information about the freebsd-geom
mailing list