linux-stable-rt/drivers/ata
Robert Hancock 968e594afd libata: Don't trust current capacity values in identify words 57-58
Hanno Böck reported a problem where an old Conner CP30254 240MB hard drive
was reported as 1.1TB in capacity by libata:

http://lkml.org/lkml/2009/2/13/134

This was caused by libata trusting the drive's reported current capacity in
sectors in identify words 57 and 58 if the drive does not support LBA and the
current CHS translation values appear valid. Unfortunately it seems older
ATA specs were vague about what this field should contain and a number of drives
used values with wrong byte order or that were totally bogus. There's no
unique information that it conveys and so we can just calculate the number
of sectors from the reported current CHS values.

While we're at it, clean up this function to use named constants for the
identify word values.

Signed-off-by: Robert Hancock <hancockrwd@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2009-03-05 07:26:10 -05:00
..
Kconfig
Makefile
ahci.c ahci: Add the Device IDs for MCP89 and remove IDs of MCP7B to/from ahci.c 2009-03-05 07:25:30 -05:00
ata_generic.c
ata_piix.c SATA PIIX: Blacklist system that spins off disks during ACPI power off 2009-01-27 02:15:53 -05:00
libata-acpi.c
libata-core.c libata: Don't trust current capacity values in identify words 57-58 2009-03-05 07:26:10 -05:00
libata-eh.c libata: make sure port is thawed when skipping resets 2009-03-05 07:25:43 -05:00
libata-pmp.c libata: add @spd_limit to sata_down_spd_limit() 2009-02-02 23:03:22 -05:00
libata-scsi.c libata: fix kernel-doc warnings 2009-02-02 22:41:45 -05:00
libata-sff.c libata-sff: fix 32-bit PIO ATAPI regression 2009-02-16 18:55:56 -05:00
libata.h libata: add @spd_limit to sata_down_spd_limit() 2009-02-02 23:03:22 -05:00
pata_acpi.c
pata_ali.c
pata_amd.c [libata] pata_amd: program FIFO 2009-02-25 15:30:16 -05:00
pata_artop.c
pata_at32.c
pata_atiixp.c
pata_bf54x.c
pata_cmd64x.c
pata_cmd640.c
pata_cs5520.c
pata_cs5530.c
pata_cs5535.c
pata_cs5536.c
pata_cypress.c
pata_efar.c
pata_hpt3x2n.c
pata_hpt3x3.c
pata_hpt37x.c
pata_hpt366.c
pata_icside.c
pata_isapnp.c
pata_it821x.c pata_it821x: resume from hibernation fails with RAID volume 2009-02-25 15:22:44 -05:00
pata_it8213.c
pata_ixp4xx_cf.c
pata_jmicron.c
pata_legacy.c [libata] pata_legacy: for VLB 32bit PIO don't try tricks with slop 2009-02-25 15:30:23 -05:00
pata_marvell.c
pata_mpc52xx.c
pata_mpiix.c
pata_netcell.c
pata_ninja32.c
pata_ns87410.c
pata_ns87415.c
pata_octeon_cf.c
pata_of_platform.c
pata_oldpiix.c
pata_opti.c
pata_optidma.c
pata_pcmcia.c
pata_pdc202xx_old.c
pata_pdc2027x.c
pata_platform.c
pata_qdi.c Fix my email address in qd65xx.[ch]/pata_qdi.c 2009-02-03 16:53:56 -08:00
pata_radisys.c
pata_rb532_cf.c pata-rb532-cf: remove set_irq_type from finish_io 2009-01-27 02:13:03 -05:00
pata_rz1000.c
pata_sc1200.c
pata_scc.c
pata_sch.c
pata_serverworks.c
pata_sil680.c
pata_sis.c
pata_sl82c105.c
pata_triflex.c
pata_via.c Add support for VT6415 PCIE PATA IDE Host Controller 2009-02-17 16:56:31 -08:00
pata_winbond.c
pdc_adma.c
sata_fsl.c
sata_inic162x.c
sata_mv.c sata_mv: fix SoC interrupt breakage 2009-02-25 15:25:35 -05:00
sata_nv.c sata_nv: fix module parameter description 2009-03-05 07:25:37 -05:00
sata_promise.c
sata_promise.h
sata_qstor.c
sata_sil.c [libata] sata_sil: Fix compilation error with libata debugging enabled 2009-02-02 22:38:29 -05:00
sata_sil24.c
sata_sis.c
sata_svw.c
sata_sx4.c
sata_uli.c
sata_via.c
sata_vsc.c
sis.h