diff options
| -rw-r--r-- | BitKeeper/etc/ignore | 3 | ||||
| -rw-r--r-- | BitKeeper/etc/logging_ok | 1 | ||||
| -rw-r--r-- | xen/drivers/block/Makefile | 8 | ||||
| -rw-r--r-- | xen/drivers/block/cciss.c | 19 | 
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.  */  | 
