summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Luck <tony.luck@intel.com>2005-10-28 14:33:14 -0700
committerTony Luck <tony.luck@intel.com>2005-10-28 14:33:14 -0700
commit1e1bb25e97dcbc8820e673eb543be6b2dcfa080b (patch)
tree654544984d640037f1fd6b5258f158cb9adaed5b
parentc87ff94333642ce3db4fc0857ad1f723cb42c1dd (diff)
parentb6a7e1ecef66b9ecd1eed31f46ba0248d6d7e957 (diff)
downloadlinux-1e1bb25e97dcbc8820e673eb543be6b2dcfa080b.tar.gz
linux-1e1bb25e97dcbc8820e673eb543be6b2dcfa080b.tar.bz2
linux-1e1bb25e97dcbc8820e673eb543be6b2dcfa080b.zip
Pull big-sim-disk into release branch
-rw-r--r--arch/ia64/hp/sim/simscsi.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/arch/ia64/hp/sim/simscsi.c b/arch/ia64/hp/sim/simscsi.c
index a18983a3c934..a3fe97531134 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