On Tue, 06 Feb 2007 13:57:23 -0800
Sumant Patro <[EMAIL PROTECTED]> wrote:

> +static int
> +megasas_bios_param(struct scsi_device *sdev, struct block_device *bdev,
> +              sector_t capacity, int geom[])
> +{
> +     int             heads;
> +     int             sectors;
> +     sector_t        cylinders;
> +     ulong           dummy;

Plain old `unsigned long' is preferred.

> +     /* Default heads (64) & sectors (32) */
> +     heads           = 64;
> +     sectors         = 32;
> +
> +     dummy           = heads * sectors;
> +     cylinders       =  capacity;
> +
> +     sector_div(cylinders, dummy);
> +
> +     /*
> +      * Handle extended translation size for logical drives > 1Gb
> +      */
> +     
> +     if ((ulong)capacity >= 0x200000) {

Here we're casting a sector_t down to a 32-bit number.  Are you sure that
`capacity' here can never exceed 0xffffffff?

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to