Re: [PATCH v3] partitions: dos: Fix support of extended partition type 0x05

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




photo resizedforemaillogo_zpsa47b7a0d.jpg <http://orpheogroup.com>
*Victorien Vedrine - R&D engineer*
OPHRYS Systèmes
6, rue Valérien Perrin
F-38170 SEYSSINET-PARISET
Tel +33 (0)4 38 12 40 66
Fax +33 (0)4 76 96 22 34
victorien.vedrine@xxxxxxxxxx <mailto:victorien.vedrine@xxxxxxxxxx>
http://www.orpheogroup.com <http://orpheogroup.com>
Le 22/12/2014 21:05, Uwe Kleine-König a écrit :
On Mon, Dec 22, 2014 at 06:20:22PM +0100, Victorien Vedrine wrote:
From: victorien<victorien.vedrine@xxxxxxxxxx>

Signed-off-by: Victorien Vedrine<victorien.vedrine@xxxxxxxxxx>
---
  common/partitions/dos.c | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/common/partitions/dos.c b/common/partitions/dos.c
index 37addfd..f02c822 100644
--- a/common/partitions/dos.c
+++ b/common/partitions/dos.c
@@ -205,11 +205,11 @@ static void dos_partition(void *buf, struct block_device *blk,
  			pd->used_entries++;
  			/*
  			 * Partitions of type 0x05 and 0x0f (and some more)
-			 * contain extended partitions. Only check for type 0x0f
-			 * here as this is the easiest to parse and common
-			 * enough.
+			 * contain extended partitions. Only check for type
+			 * 0x05 and 0x0f.
the now removed comment implies that partitions of type 0x05 and 0x0f
are to be handled differently. With your change however they are handled
identically. Is this correct? Might be worth to explain in the commit
log.
I made some research and the difference is that 0x0f partition is LBA and can start after the cylinder 1023. I check on linux source code (3.14), and they consider that the 2 kinds of partition is identical :
On /include/linux/genhd.h file :

   enum {
   /* These three have identical behaviour; use the second one if DOS
   FDISK gets
       confused about extended/logical partitions starting past
   cylinder 1023. */
        DOS_EXTENDED_PARTITION = 5,
        LINUX_EXTENDED_PARTITION = 0x85,
        WIN98_EXTENDED_PARTITION = 0x0f,

        SUN_WHOLE_DISK = DOS_EXTENDED_PARTITION,

        LINUX_SWAP_PARTITION = 0x82,
        LINUX_DATA_PARTITION = 0x83,
        LINUX_LVM_PARTITION = 0x8e,
        LINUX_RAID_PARTITION = 0xfd,    /* autodetect RAID partition */

        SOLARIS_X86_PARTITION =    LINUX_SWAP_PARTITION,
        NEW_SOLARIS_X86_PARTITION = 0xbf,

        DM6_AUX1PARTITION = 0x51,    /* no DDO:  use xlated geom */
        DM6_AUX3PARTITION = 0x53,    /* no DDO:  use xlated geom */
        DM6_PARTITION =    0x54,        /* has DDO: use xlated geom &
   offset */
        EZD_PARTITION =    0x55,        /* EZ-DRIVE */

        FREEBSD_PARTITION = 0xa5,    /* FreeBSD Partition ID */
        OPENBSD_PARTITION = 0xa6,    /* OpenBSD Partition ID */
        NETBSD_PARTITION = 0xa9,    /* NetBSD Partition ID */
        BSDI_PARTITION = 0xb7,        /* BSDI Partition ID */
        MINIX_PARTITION = 0x81,        /* Minix Partition ID */
        UNIXWARE_PARTITION = 0x63,    /* Same as GNU_HURD and SCO Unix */
   };

I did some test with different SD Card size and table of partition and I don't see problem. Now I'm in holidays but when I'm back I'll continue to check this point to determine if more modifications are necessary.

  			 */
-			if (pentry.dos_partition_type == 0x0f) {
+			if (pentry.dos_partition_type == 0x0f ||
+				pentry.dos_partition_type == 0x05) {
There are two schools for indention in this case. Either use two tabs
more than the line above, or align the continuation at the opening
brace.

Are you using vim? Then add "filetype indent on" to your .vimrc and
depending on the way you want to handle the above case also add

	set cinoptions=(,:

for aligning with the opening brace, or

	set cinoptions=:

for the two tab preference.
Sorry, It's the first time I'm contribute to a project and I don't take enough car about that. I'll modify that.

Thanks for your help
Best regards

Victorien
Best regards
Uwe


_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox





[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux