diff -aur u-boot/common/cmd_ide.c u-boot-fix/common/cmd_ide.c --- u-boot/common/cmd_ide.c 2004-03-14 23:25:44.000000000 +0100 +++ u-boot-fix/common/cmd_ide.c 2004-03-15 14:03:49.000000000 +0100 @@ -1098,9 +1098,9 @@ input_swap_data (device, iobuf, ATA_SECTORWORDS); - ident_cpy (dev_desc->revision, iop->fw_rev, sizeof(dev_desc->revision)); - ident_cpy (dev_desc->vendor, iop->model, sizeof(dev_desc->vendor)); - ident_cpy (dev_desc->product, iop->serial_no, sizeof(dev_desc->product)); + ident_cpy (dev_desc->revision, iop->fw_rev, 8); + ident_cpy (dev_desc->vendor, iop->model, 40); + ident_cpy (dev_desc->product, iop->serial_no, 20); #ifdef __LITTLE_ENDIAN /* * firmware revision and model number have Big Endian Byte diff -aur u-boot/include/part.h u-boot-fix/include/part.h --- u-boot/include/part.h 2004-03-14 23:25:50.000000000 +0100 +++ u-boot-fix/include/part.h 2004-03-15 14:03:58.000000000 +0100 @@ -37,9 +37,9 @@ #endif unsigned long lba; /* number of blocks */ unsigned long blksz; /* block size */ - unsigned char vendor[40]; /* IDE model, SCSI Vendor */ - unsigned char product[20]; /* IDE Serial no, SCSI product */ - unsigned char revision[8]; /* firmware revision */ + unsigned char vendor[41]; /* IDE model, SCSI Vendor */ + unsigned char product[21]; /* IDE Serial no, SCSI product */ + unsigned char revision[9]; /* firmware revision */ unsigned long (*block_read)(int dev, unsigned long start, unsigned long blkcnt,