[2.5 patch] postfix two constants in ips.c with ULL

Adrian Bunk (bunk@fs.tum.de)
Wed, 25 Jun 2003 03:21:42 +0200


The patch below postfixes two constants in ips.c with ULL, on 32 bit
archs this constant is too big for an int.

The cast doesn't do the right thing, 0xffffffffffffffff is in C an int
and the cast casts 0xffffffffffffffff interpreted as an int to an u64.

cu
Adrian

--- linux-2.5.73-not-full/drivers/scsi/ips.c.old 2003-06-24 20:07:48.000000000 +0200
+++ linux-2.5.73-not-full/drivers/scsi/ips.c 2003-06-24 20:08:34.000000000 +0200
@@ -7009,10 +7009,10 @@
* are guaranteed to be < 4G.
*/
if ( IPS_ENABLE_DMA64 && IPS_HAS_ENH_SGLIST(ha) &&
- !pci_set_dma_mask(ha->pcidev, (u64)0xffffffffffffffff)) {
+ !pci_set_dma_mask(ha->pcidev, 0xffffffffffffffffULL)) {
(ha)->flags |= IPS_HA_ENH_SG;
} else {
- if ( pci_set_dma_mask(ha->pcidev, (u64)0xffffffff) != 0 ) {
+ if ( pci_set_dma_mask(ha->pcidev, 0xffffffffULL) != 0 ) {
printk(KERN_WARNING "Unable to set DMA Mask\n");
return ips_abort_init(ha, index);
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/