| 
    
 [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH]: Fix rombios to correctly report size of disks >16GB
 On 22/07/2010 18:42, "Gianni Tedesco" <gianni.tedesco@xxxxxxxxxx> wrote:
> Cosmetic patch for rombios to display the correct sizes of disks larger
> than 16GB - a problem caused by needlessly casting sizeinmb variable
> down to 16bits.
For say a 17GB drive sizeinmb=17000 which can be represented with fewer than
16 bits. I don't see how the code as it is will ever print the wrong thing,
except for drives bigger than 64TB! Also I'm not sure but I think the
integer size here may be 16 bits, and the %u format specifier would only
print 16-bit values in that case anyway.
 -- Keir
> Signed-off-by: Gianni Tedesco <gianni.tedesco@xxxxxxxxxx>
> 
> diff -r 01917c0da12a tools/firmware/rombios/rombios.c
> --- a/tools/firmware/rombios/rombios.c Thu Jul 22 13:49:40 2010 +0100
> +++ b/tools/firmware/rombios/rombios.c Thu Jul 22 18:40:26 2010 +0100
> @@ -2856,9 +2856,9 @@ void ata_detect( )
>            printf("ata%d %s: ",channel,slave?" slave":"master");
>            i=0; while(c=read_byte(get_SS(),model+i++)) printf("%c",c);
>  if (sizeinmb < (1UL<<16))
> -            printf(" ATA-%d Hard-Disk (%4u MBytes)\n", version,
> (Bit16u)sizeinmb);
> +            printf(" ATA-%d Hard-Disk (%4u MBytes)\n", version, sizeinmb);
>  else
> -            printf(" ATA-%d Hard-Disk (%4u GBytes)\n", version,
> (Bit16u)(sizeinmb>>10));
> +            printf(" ATA-%d Hard-Disk (%4u GBytes)\n", version,
> (sizeinmb>>10));
>            break;
>          case ATA_TYPE_ATAPI:
>            printf("ata%d %s: ",channel,slave?" slave":"master");
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
 
  | 
  
![]()  | 
            
         Lists.xenproject.org is hosted with RackSpace, monitoring our  |