libata: use the enlarged capacity after late HPA unlock
authorTejun Heo <tj@kernel.org>
Sat, 15 May 2010 18:09:33 +0000 (20:09 +0200)
committerJeff Garzik <jgarzik@redhat.com>
Wed, 2 Jun 2010 17:50:07 +0000 (13:50 -0400)
After late HPA unlock, libata kept using the original capacity
ignoring the new larger native capacity.  Enlarging device on the fly
doesn't cause any harm.  Use the larger native capacity instead.  This
will enable on-demand HPA unlocking.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/libata-core.c

index 06b7e49e039c1e0a2e5b630fe92a1d5d33143b8a..1e5d0a36a0a43017fad538774326496952519011 100644 (file)
@@ -4119,9 +4119,8 @@ int ata_dev_revalidate(struct ata_device *dev, unsigned int new_class,
            dev->n_sectors > n_sectors && dev->n_sectors == n_native_sectors) {
                ata_dev_printk(dev, KERN_WARNING,
                               "new n_sectors matches native, probably "
-                              "late HPA unlock, continuing\n");
-               /* keep using the old n_sectors */
-               dev->n_sectors = n_sectors;
+                              "late HPA unlock, n_sectors updated\n");
+               /* use the larger n_sectors */
                return 0;
        }