diff options
Diffstat (limited to 'drivers/ide/ide-disk.c')
-rw-r--r-- | drivers/ide/ide-disk.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c index 9176da7a9858..234f5de3e929 100644 --- a/drivers/ide/ide-disk.c +++ b/drivers/ide/ide-disk.c | |||
@@ -119,6 +119,10 @@ static int lba_capacity_is_ok (struct hd_driveid *id) | |||
119 | { | 119 | { |
120 | unsigned long lba_sects, chs_sects, head, tail; | 120 | unsigned long lba_sects, chs_sects, head, tail; |
121 | 121 | ||
122 | /* No non-LBA info .. so valid! */ | ||
123 | if (id->cyls == 0) | ||
124 | return 1; | ||
125 | |||
122 | /* | 126 | /* |
123 | * The ATA spec tells large drives to return | 127 | * The ATA spec tells large drives to return |
124 | * C/H/S = 16383/16/63 independent of their size. | 128 | * C/H/S = 16383/16/63 independent of their size. |
@@ -1215,7 +1219,8 @@ static int ide_disk_probe(struct device *dev) | |||
1215 | if (!idkp) | 1219 | if (!idkp) |
1216 | goto failed; | 1220 | goto failed; |
1217 | 1221 | ||
1218 | g = alloc_disk(1 << PARTN_BITS); | 1222 | g = alloc_disk_node(1 << PARTN_BITS, |
1223 | hwif_to_node(drive->hwif)); | ||
1219 | if (!g) | 1224 | if (!g) |
1220 | goto out_free_idkp; | 1225 | goto out_free_idkp; |
1221 | 1226 | ||