kernel-hacking-2024-linux-s.../drivers/ide
Bartlomiej Zolnierkiewicz 075affcbe0 ide: preserve Host Protected Area by default (v2)
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 automically 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).

v2:
Fix ->resume HPA support.

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>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
[patch description was based on input from Alan Cox and Frans Pop]
Emphatically-Acked-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
2009-06-07 13:52:52 +02:00
..
aec62xx.c
ali14xx.c
alim15x3.c ide: add ->dma_check method 2009-03-31 20:15:21 +02:00
amd74xx.c
at91_ide.c at91_ide: turn on PIO 6 support 2009-04-08 14:13:04 +02:00
atiixp.c
au1xxx-ide.c ide: turn selectproc() method into dev_select() method (take 5) 2009-03-31 20:15:32 +02:00
buddha.c ide: allow host drivers to specify IRQ flags 2009-03-27 12:46:27 +01:00
cmd64x.c ide: set/clear drive->waiting_for_dma flag in the core code 2009-03-31 20:15:22 +02:00
cmd640.c
cs5520.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
cs5530.c ide: identify data word 53 bit 1 doesn't cover words 62 and 63 (take 3) 2009-03-31 20:15:27 +02:00
cs5535.c
cs5536.c cs5536: define dma_sff_read_status() method 2009-04-18 17:42:20 +02:00
cy82c693.c
delkin_cb.c ide: allow host drivers to specify IRQ flags 2009-03-27 12:46:27 +01:00
dtc2278.c ide: add IDE_HFLAG_DTC2278 host flag 2009-03-27 12:46:28 +01:00
falconide.c ide: falconide/q40ide - Use __ide_mm_{in,out}sw() for data 2009-04-08 14:12:48 +02:00
gayle.c ide: remove CONFIG_BLK_DEV_IDEDOUBLER config option 2009-03-31 20:15:26 +02:00
hpt366.c hpt366: use ATA_DMA_* constants 2009-04-18 17:42:19 +02:00
ht6560b.c ide: turn selectproc() method into dev_select() method (take 5) 2009-03-31 20:15:32 +02:00
icside.c icside: register second channel of version 6 PCB 2009-05-16 19:03:36 +02:00
ide-4drives.c ide: add IDE_HFLAG_4DRIVES host flag 2009-03-27 12:46:28 +01:00
ide-acpi.c ide: simplify 'struct ide_taskfile' 2009-04-08 14:13:02 +02:00
ide-atapi.c ide: refactor tf_read() method 2009-04-08 14:13:03 +02:00
ide-cd.c ide-cd: fix REQ_QUIET tests in cdrom_decode_status 2009-04-30 18:24:34 +02:00
ide-cd.h ide-cd: use ide_drive_t's rq in cdrom_queue_request_sense 2009-03-27 12:46:24 +01:00
ide-cd_ioctl.c
ide-cd_verbose.c
ide-cs.c ide: allow host drivers to specify IRQ flags 2009-03-27 12:46:27 +01:00
ide-devsets.c ide: remove ide_end_request() 2009-03-27 12:46:45 +01:00
ide-disk.c ide: preserve Host Protected Area by default (v2) 2009-06-07 13:52:52 +02:00
ide-disk.h
ide-disk_ioctl.c
ide-disk_proc.c ide: replace IDE_TFLAG_* flags by IDE_VALID_* 2009-04-08 14:13:01 +02:00
ide-dma-sff.c ide: remove wmb() from ide-dma-sff.c and scc_pata.c 2009-04-08 14:12:49 +02:00
ide-dma.c ide: add support for CFA specified transfer modes (take 3) 2009-03-31 20:15:28 +02:00
ide-eh.c ide: inline SELECT_DRIVE() 2009-03-31 20:15:33 +02:00
ide-floppy.c ide-floppy: use ide_pio_bytes() 2009-03-31 20:15:26 +02:00
ide-floppy.h
ide-floppy_ioctl.c ide: decrease size of ->pc_buf field in struct ide_atapi_pc 2009-03-31 20:15:25 +02:00
ide-floppy_proc.c
ide-gd.c ide-gd: implement block device ->set_capacity method (v2) 2009-06-07 13:52:52 +02:00
ide-gd.h ide: move ->failed_pc to ide_drive_t 2009-03-27 12:46:34 +01:00
ide-generic.c ide: merge ide_arm and ide_generic host drivers 2009-03-31 20:15:24 +02:00
ide-h8300.c ide-h8300: remove custom tf_{read|load}() methods 2009-04-08 14:12:51 +02:00
ide-io-std.c ide: refactor tf_read() method 2009-04-08 14:13:03 +02:00
ide-io.c ide: fix OOPS during ide-cd error recovery 2009-05-22 16:23:37 +02:00
ide-ioctls.c ide: simplify 'struct ide_taskfile' 2009-04-08 14:13:02 +02:00
ide-iops.c ide: fix 40-wire cable detection for TSST SH-S202* ATAPI devices (v2) 2009-05-22 16:23:36 +02:00
ide-legacy.c
ide-lib.c ide: improve failed opcode reporting 2009-05-22 16:23:38 +02:00
ide-park.c ide: replace IDE_TFLAG_* flags by IDE_VALID_* 2009-04-08 14:13:01 +02:00
ide-pci-generic.c ide_pci_generic: add quirk for Netcell ATA RAID 2009-05-30 20:06:54 +02:00
ide-pio-blacklist.c
ide-pm.c ide: replace IDE_TFLAG_* flags by IDE_VALID_* 2009-04-08 14:13:01 +02:00
ide-pnp.c ide-pnp: use struct ide_port_info 2009-03-27 12:46:18 +01:00
ide-probe.c ide: report timeouts in ide_busy_sleep() 2009-05-22 16:23:38 +02:00
ide-proc.c ide: replace IDE_TFLAG_* flags by IDE_VALID_* 2009-04-08 14:13:01 +02:00
ide-scan-pci.c
ide-sysfs.c
ide-tape.c ide-tape: remove back-to-back REQUEST_SENSE detection 2009-05-16 19:03:18 +02:00
ide-taskfile.c ide: refactor tf_read() method 2009-04-08 14:13:03 +02:00
ide-timings.c ide: add support for CFA specified transfer modes (take 3) 2009-03-31 20:15:28 +02:00
ide-xfer-mode.c ide: add support for CFA specified transfer modes (take 3) 2009-03-31 20:15:28 +02:00
ide.c ide: preserve Host Protected Area by default (v2) 2009-06-07 13:52:52 +02:00
ide_platform.c
it821x.c ide: add ->dma_clear method and remove ->dma_timeout one 2009-03-31 20:15:19 +02:00
it8172.c
it8213.c
jmicron.c
Kconfig ide: be able to build pmac driver without IDE built-in 2009-03-31 20:15:34 +02:00
macide.c ide: allow host drivers to specify IRQ flags 2009-03-27 12:46:27 +01:00
Makefile ide: merge ide_arm and ide_generic host drivers 2009-03-31 20:15:24 +02:00
ns87415.c ide: refactor tf_read() method 2009-04-08 14:13:03 +02:00
opti621.c
palm_bk3710.c palm_bk3710: palm_bk3710_udmatimings[] CodingStyle fixup 2009-04-23 22:53:45 +02:00
pdc202xx_new.c
pdc202xx_old.c pdc202xx_old: fix resetproc() method 2009-06-07 13:52:50 +02:00
piix.c piix: The Sony TZ90 needs the cable type hardcoding 2009-05-16 19:03:36 +02:00
pmac.c ide: Remove void casts 2009-04-18 17:42:19 +02:00
q40ide.c ide: falconide/q40ide - Use __ide_mm_{in,out}sw() for data 2009-04-08 14:12:48 +02:00
qd65xx.c ide: turn selectproc() method into dev_select() method (take 5) 2009-03-31 20:15:32 +02:00
qd65xx.h
rapide.c
rz1000.c
sc1200.c ide: identify data word 53 bit 1 doesn't cover words 62 and 63 (take 3) 2009-03-31 20:15:27 +02:00
scc_pata.c ide: refactor tf_read() method 2009-04-08 14:13:03 +02:00
serverworks.c
setup-pci.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
sgiioc4.c ide: turn selectproc() method into dev_select() method (take 5) 2009-03-31 20:15:32 +02:00
siimage.c ide: add ->dma_clear method and remove ->dma_timeout one 2009-03-31 20:15:19 +02:00
sis5513.c
sl82c105.c ide: add support for CFA specified transfer modes (take 3) 2009-03-31 20:15:28 +02:00
slc90e66.c
tc86c001.c ide: add ->dma_clear method and remove ->dma_timeout one 2009-03-31 20:15:19 +02:00
triflex.c
trm290.c ide: turn selectproc() method into dev_select() method (take 5) 2009-03-31 20:15:32 +02:00
tx4938ide.c tx493[89]ide: Remove big endian version of tx493[89]ide_tf_{load,read} 2009-04-08 14:12:52 +02:00
tx4939ide.c ide: refactor tf_load() method 2009-04-08 14:13:03 +02:00
umc8672.c
via82cxxx.c via82cxxx: Add VIA VX855 PCI Device ID 2009-05-22 16:23:39 +02:00