diff options
author | Tony Luck <tony.luck@intel.com> | 2005-10-28 21:33:14 (GMT) |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2005-10-28 21:33:14 (GMT) |
commit | 1e1bb25e97dcbc8820e673eb543be6b2dcfa080b (patch) | |
tree | 654544984d640037f1fd6b5258f158cb9adaed5b /arch/ia64 | |
parent | c87ff94333642ce3db4fc0857ad1f723cb42c1dd (diff) | |
parent | b6a7e1ecef66b9ecd1eed31f46ba0248d6d7e957 (diff) | |
download | linux-1e1bb25e97dcbc8820e673eb543be6b2dcfa080b.tar.xz |
Pull big-sim-disk into release branch
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/hp/sim/simscsi.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/arch/ia64/hp/sim/simscsi.c b/arch/ia64/hp/sim/simscsi.c index a18983a..a3fe975 100644 --- a/arch/ia64/hp/sim/simscsi.c +++ b/arch/ia64/hp/sim/simscsi.c @@ -205,10 +205,11 @@ simscsi_get_disk_size (int fd) char buf[512]; /* - * This is a bit kludgey: the simulator doesn't provide a direct way of determining - * the disk size, so we do a binary search, assuming a maximum disk size of 4GB. + * This is a bit kludgey: the simulator doesn't provide a + * direct way of determining the disk size, so we do a binary + * search, assuming a maximum disk size of 128GB. */ - for (bit = (4UL << 30)/512; bit != 0; bit >>= 1) { + for (bit = (128UL << 30)/512; bit != 0; bit >>= 1) { req.addr = __pa(&buf); req.len = sizeof(buf); ia64_ssc(fd, 1, __pa(&req), ((sectors | bit) - 1)*512, SSC_READ); @@ -225,8 +226,10 @@ simscsi_readwrite10 (struct scsi_cmnd *sc, int mode) { unsigned long offset; - offset = ( (sc->cmnd[2] << 24) | (sc->cmnd[3] << 16) - | (sc->cmnd[4] << 8) | (sc->cmnd[5] << 0))*512; + offset = (((unsigned long)sc->cmnd[2] << 24) + | ((unsigned long)sc->cmnd[3] << 16) + | ((unsigned long)sc->cmnd[4] << 8) + | ((unsigned long)sc->cmnd[5] << 0))*512UL; if (sc->use_sg > 0) simscsi_sg_readwrite(sc, mode, offset); else |