Index: linux-2.6.25-source/include/linux/major.h =================================================================== --- linux-2.6.25-source.orig/include/linux/major.h +++ linux-2.6.25-source/include/linux/major.h @@ -131,6 +131,7 @@ #define VIOCD_MAJOR 113 #define ATARAID_MAJOR 114 +#define COLINUX_MAJOR 117 #define SCSI_DISK8_MAJOR 128 #define SCSI_DISK9_MAJOR 129 Index: linux-2.6.25-source/drivers/block/Kconfig =================================================================== --- linux-2.6.25-source.orig/drivers/block/Kconfig +++ linux-2.6.25-source/drivers/block/Kconfig @@ -357,6 +357,15 @@ will prevent RAM block device backing store memory from being allocated from highmem (only a problem for highmem systems). +config BLK_DEV_COBD + tristate 'Cooperative block device support' + default y + depends on COOPERATIVE + help + Virtual block device support for cooperative kernels. + + If unsure, say Y. + config CDROM_PKTCDVD tristate "Packet writing on CD/DVD media" depends on !UML Index: linux-2.6.25-source/drivers/block/Makefile =================================================================== --- linux-2.6.25-source.orig/drivers/block/Makefile +++ linux-2.6.25-source/drivers/block/Makefile @@ -12,6 +12,7 @@ obj-$(CONFIG_ATARI_FLOPPY) += ataflop.o obj-$(CONFIG_AMIGA_Z2RAM) += z2ram.o obj-$(CONFIG_BLK_DEV_RAM) += brd.o +obj-$(CONFIG_BLK_DEV_COBD) += cobd.o obj-$(CONFIG_BLK_DEV_LOOP) += loop.o obj-$(CONFIG_BLK_DEV_XD) += xd.o obj-$(CONFIG_BLK_CPQ_DA) += cpqarray.o Index: linux-2.6.25-source/drivers/block/cobd.c =================================================================== --- linux-2.6.25-source.orig/drivers/block/cobd.c +++ linux-2.6.25-source/drivers/block/cobd.c @@ -179,7 +179,7 @@ return ret; } -static void do_cobd_request(request_queue_t *q) +static void do_cobd_request(struct request_queue *q) { struct request *req; struct cobd_device *cobd; @@ -314,8 +314,7 @@ kfree(cobd_disks); fail_malloc: - if (unregister_blkdev(COLINUX_MAJOR, "cobd")) - printk(KERN_WARNING "cobd: cannot unregister blkdev\n"); + unregister_blkdev(COLINUX_MAJOR, "cobd"); fail_irq: free_irq(BLOCKDEV_IRQ, NULL); @@ -514,8 +513,7 @@ put_disk(cobd_disks[i]); } - if (unregister_blkdev(COLINUX_MAJOR, "cobd")) - printk(KERN_WARNING "cobd: cannot unregister blkdev\n"); + unregister_blkdev(COLINUX_MAJOR, "cobd"); free_irq(BLOCKDEV_IRQ, NULL); kfree(cobd_disks);