Messages in this thread | | | Date | Tue, 02 Jun 2009 23:12:15 +0400 | From | Sergei Shtylyov <> | Subject | Re: [PATCH 4/4] ide: preserve Host Protected Area by default |
| |
Hello.
Bartlomiej Zolnierkiewicz wrote:
>>From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> >>Subject: [PATCH] ide: preserve Host Protected Area by default
>>From the perspective of most users of recent systems, disabling Host >>Protected Area (HPA) can break vendor RAID formats, GPT partitions and >>risks corrupting firmware or overwriting vendor system recovery tools.
>>Unfortunately the original (kernels < 2.6.30) behavior (unconditionally >>disabling HPA and using full disk capacity) was introduced at the time >>when the main use of HPA was to make the drive look small enough for the >>BIOS to allow the system to boot with large capacity drives.
>>Thus to allow the maximum compatibility with the existing setups (using >>HPA and partitioned with HPA disabled) we automatically disable HPA if >>any partitions overlapping HPA are detected. Additionally HPA can also >>be disabled using the "nohpa" module parameter (i.e. "ide_core.nohpa=0.0" >>to disable HPA on /dev/hda).
>>While at it: >>- remove stale "idebus=" entry from Documentation/kernel-parameters.txt
>>Cc: Robert Hancock <hancockrwd@gmail.com> >>Cc: Frans Pop <elendil@planet.nl> >>Cc: "Andries E. Brouwer" <Andries.Brouwer@cwi.nl> >>Cc: Al Viro <viro@zeniv.linux.org.uk> >>[patch description was based on input from Alan Cox and Frans Pop] >>Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
> v2 interdiff
> v2: > Fix ->resume HPA support.
> diff -u b/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c > --- b/drivers/ide/ide-disk.c > +++ b/drivers/ide/ide-disk.c > @@ -433,8 +433,11 @@ > goto out; > > set = ide_disk_hpa_set_capacity(drive, set, lba48); > - if (set) > + if (set) {
Well, this seems to be a useful check after all. :-)
> + /* needed for ->resume to disable HPA */ > + drive->dev_flags |= IDE_DFLAG_NOHPA; > return set; > + } > out: > return drive->capacity64; > }
MBR, Sergei
| |