Commit fa8ae435 authored by Ralf Bächle's avatar Ralf Bächle Committed by Linus Torvalds

[PATCH] mips: DVH fixes

 o Make CONFIG_SGI_PARTITION the default for those systems where firmware or
   host OS require it.
 o Check earlier for DVH aka SGI partitions to avoid confusing them with an
   MSDOS partition.
 o Detect RAID partitions on IRIX volumes.  Caveat: this uses one of the
   officially unused partition types which are not recogniced by the IRIX or
   RISC/os tools.  Doesn't seem to matter but should be mentioned for
   completeness.
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent e8aa31a0
...@@ -188,7 +188,7 @@ config LDM_DEBUG ...@@ -188,7 +188,7 @@ config LDM_DEBUG
config SGI_PARTITION config SGI_PARTITION
bool "SGI partition support" if PARTITION_ADVANCED bool "SGI partition support" if PARTITION_ADVANCED
default y if (SGI_IP22 || SGI_IP27) default y if (SGI_IP22 || SGI_IP27 || ((MACH_JAZZ || SNI_RM200_PCI) && !CPU_LITTLE_ENDIAN))
help help
Say Y here if you would like to be able to read the hard disk Say Y here if you would like to be able to read the hard disk
partition table format used by SGI machines. partition table format used by SGI machines.
......
...@@ -73,6 +73,9 @@ static int (*check_part[])(struct parsed_partitions *, struct block_device *) = ...@@ -73,6 +73,9 @@ static int (*check_part[])(struct parsed_partitions *, struct block_device *) =
#ifdef CONFIG_EFI_PARTITION #ifdef CONFIG_EFI_PARTITION
efi_partition, /* this must come before msdos */ efi_partition, /* this must come before msdos */
#endif #endif
#ifdef CONFIG_SGI_PARTITION
sgi_partition,
#endif
#ifdef CONFIG_LDM_PARTITION #ifdef CONFIG_LDM_PARTITION
ldm_partition, /* this must come before msdos */ ldm_partition, /* this must come before msdos */
#endif #endif
...@@ -97,9 +100,6 @@ static int (*check_part[])(struct parsed_partitions *, struct block_device *) = ...@@ -97,9 +100,6 @@ static int (*check_part[])(struct parsed_partitions *, struct block_device *) =
#ifdef CONFIG_MAC_PARTITION #ifdef CONFIG_MAC_PARTITION
mac_partition, mac_partition,
#endif #endif
#ifdef CONFIG_SGI_PARTITION
sgi_partition,
#endif
#ifdef CONFIG_ULTRIX_PARTITION #ifdef CONFIG_ULTRIX_PARTITION
ultrix_partition, ultrix_partition,
#endif #endif
......
...@@ -69,8 +69,12 @@ int sgi_partition(struct parsed_partitions *state, struct block_device *bdev) ...@@ -69,8 +69,12 @@ int sgi_partition(struct parsed_partitions *state, struct block_device *bdev)
for(i = 0; i < 16; i++, p++) { for(i = 0; i < 16; i++, p++) {
blocks = be32_to_cpu(p->num_blocks); blocks = be32_to_cpu(p->num_blocks);
start = be32_to_cpu(p->first_block); start = be32_to_cpu(p->first_block);
if (blocks) if (blocks) {
put_partition(state, slot++, start, blocks); put_partition(state, slot, start, blocks);
if (be32_to_cpu(p->type) == LINUX_RAID_PARTITION)
state->parts[slot].flags = 1;
}
slot++;
} }
printk("\n"); printk("\n");
put_dev_sector(sect); put_dev_sector(sect);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment