aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--BitKeeper/etc/ignore3
-rw-r--r--BitKeeper/etc/logging_ok1
-rw-r--r--xen/drivers/block/Makefile8
-rw-r--r--xen/drivers/block/cciss.c19
4 files changed, 25 insertions, 6 deletions
diff --git a/BitKeeper/etc/ignore b/BitKeeper/etc/ignore
index f6915983db..8f37a6a534 100644
--- a/BitKeeper/etc/ignore
+++ b/BitKeeper/etc/ignore
@@ -539,3 +539,6 @@ xen/common/rbtree.o
xen/drivers/block/cciss.o
xen/drivers/block/cciss_scsi.o
TAGS
+tools/xc/lib/xc_netbsd_build.o
+xen/arch/i386/pdb-stub.o
+xen/common/debug-linux.o
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok
index e750fb487b..ea27340633 100644
--- a/BitKeeper/etc/logging_ok
+++ b/BitKeeper/etc/logging_ok
@@ -29,6 +29,7 @@ rneugeba@wyvis.research
rneugeba@wyvis.research.intel-research.net
smh22@boulderdash.cl.cam.ac.uk
smh22@labyrinth.cl.cam.ac.uk
+smh22@tempest.cl.cam.ac.uk
smh22@uridium.cl.cam.ac.uk
sos22@labyrinth.cl.cam.ac.uk
tlh20@elite.cl.cam.ac.uk
diff --git a/xen/drivers/block/Makefile b/xen/drivers/block/Makefile
index 574b7d2d79..96eb9e1f5d 100644
--- a/xen/drivers/block/Makefile
+++ b/xen/drivers/block/Makefile
@@ -1,6 +1,14 @@
include $(BASEDIR)/Rules.mk
+
+# SMH: need to ensure cciss init function called /after/ generic blkdev
+# stuff in ll_rw_blk etc. Linux barking link-order invocation of init
+# functions means we need to explicitly order things here.
+OBJS := blkpg.o elevator.o ll_rw_blk.o xen_vbd.o genhd.o xen_block.o
+OBJS += cciss.o cciss_scsi.o
+
+
default: $(OBJS)
$(LD) -r -o driver.o $(OBJS)
diff --git a/xen/drivers/block/cciss.c b/xen/drivers/block/cciss.c
index 833fcaa54a..0c49aae5d0 100644
--- a/xen/drivers/block/cciss.c
+++ b/xen/drivers/block/cciss.c
@@ -1624,11 +1624,13 @@ static int register_new_disk(int ctlr, int opened_vol, __u64 requested_lun)
}
if (hba[ctlr]->drv[logvol].raid_level > 5)
hba[ctlr]->drv[logvol].raid_level = RAID_UNKNOWN;
+
printk(KERN_INFO " heads= %d, sectors= %d, cylinders= %d RAID %s\n\n",
- hba[ctlr]->drv[logvol].heads,
- hba[ctlr]->drv[logvol].sectors,
- hba[ctlr]->drv[logvol].cylinders,
- raid_label[hba[ctlr]->drv[logvol].raid_level]);
+ hba[ctlr]->drv[logvol].heads,
+ hba[ctlr]->drv[logvol].sectors,
+ hba[ctlr]->drv[logvol].cylinders,
+ raid_label[hba[ctlr]->drv[logvol].raid_level]);
+
/* special case for c?d0, which may be opened even when
it does not "exist". In that case, don't mess with usage count.
@@ -1644,6 +1646,7 @@ static int register_new_disk(int ctlr, int opened_vol, __u64 requested_lun)
for(i=max_p-1; i>=0; i--) {
int minor = start+i;
+
invalidate_device(MKDEV(hba[ctlr]->major, minor), 1);
gdev->part[minor].start_sect = 0;
gdev->part[minor].nr_sects = 0;
@@ -1653,8 +1656,12 @@ static int register_new_disk(int ctlr, int opened_vol, __u64 requested_lun)
hba[ctlr]->hardsizes[minor] = block_size;
}
+
+
++hba[ctlr]->num_luns;
gdev->nr_real = hba[ctlr]->highest_lun + 1;
+
+
/* setup partitions per disk */
grok_partitions(gdev, logvol, MAX_PART,
hba[ctlr]->drv[logvol].nr_blocks);
@@ -2422,7 +2429,7 @@ next:
h->maxSG = seg;
#ifdef CCISS_DEBUG
- printk(KERN_DEBUG "cciss: Submitting %d sectors in %d segments\n", sect, seg);
+ printk(KERN_DEBUG "cciss: Submitting %d sectors in %d segments\n", creq->nr_sectors, seg);
#endif /* CCISS_DEBUG */
c->Header.SGList = c->Header.SGTotal = seg;
@@ -2929,7 +2936,7 @@ static void cciss_getgeometry(int cntl_num)
kfree(ld_buff);
kfree(size_buff);
kfree(inq_buff);
-}
+}
/* Function to find the first free pointer into our hba[] array */
/* Returns -1 if no free entries are left. */