diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-03-23 02:25:38 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-03-23 02:25:38 +0000 |
commit | 16b5d462f73eb29d1f67fa01cc1ea66afdc72569 (patch) | |
tree | 5407bd573f4840e473ea27cbe61e5c7a07131fcd /drivers/block | |
parent | ce8a076e11e7e5ee36007f9a3eee5bb3744cb8f6 (diff) |
Merge with Linux 2.3.99-pre2.
Diffstat (limited to 'drivers/block')
-rw-r--r-- | drivers/block/Config.in | 2 | ||||
-rw-r--r-- | drivers/block/floppy.c | 52 | ||||
-rw-r--r-- | drivers/block/ll_rw_blk.c | 4 | ||||
-rw-r--r-- | drivers/block/lvm.c | 8 | ||||
-rw-r--r-- | drivers/block/nbd.c | 2 |
5 files changed, 8 insertions, 60 deletions
diff --git a/drivers/block/Config.in b/drivers/block/Config.in index 51a6db89c..cadc7eca7 100644 --- a/drivers/block/Config.in +++ b/drivers/block/Config.in @@ -31,7 +31,7 @@ if [ "$CONFIG_ATARI" = "y" ]; then fi fi tristate 'XT hard disk support' CONFIG_BLK_DEV_XD -dep_tristate 'Parallel port IDE device support' CONFIG_PARIDE $CONFIG_PARIDE_PARPORT +dep_tristate 'Parallel port IDE device support' CONFIG_PARIDE $CONFIG_PARPORT if [ "$CONFIG_PARIDE" = "y" -o "$CONFIG_PARIDE" = "m" ]; then source drivers/block/paride/Config.in fi diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index be7e25879..06c088aa8 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c @@ -4378,60 +4378,12 @@ static void __init parse_floppy_cfg_string(char *cfg) } } -static void __init mod_setup(char *pattern, int (*setup)(char *)) -{ - unsigned long i; - char c; - int j; - int match; - char buffer[100]; - int length = strlen(pattern)+1; - - match=0; - j=1; - - for (i=current->mm->env_start; i< current->mm->env_end; i ++){ - get_user(c, (char *)i); - if (match){ - if (j==99) - c='\0'; - buffer[j] = c; - if (!c || c == ' ' || c == '\t'){ - if (j){ - buffer[j] = '\0'; - setup(buffer); - } - j=0; - } else - j++; - if (!c) - break; - continue; - } - if ((!j && !c) || (j && c == pattern[j-1])) - j++; - else - j=0; - if (j==length){ - match=1; - j=0; - } - } -} - - -#ifdef __cplusplus -extern "C" { -#endif int init_module(void) { printk(KERN_INFO "inserting floppy driver for " UTS_RELEASE "\n"); if(floppy) parse_floppy_cfg_string(floppy); - else - mod_setup("floppy=", floppy_setup); - return floppy_init(); } @@ -4453,10 +4405,6 @@ MODULE_PARM(FLOPPY_DMA,"i"); MODULE_AUTHOR("Alain L. Knaff"); MODULE_SUPPORTED_DEVICE("fd"); -#ifdef __cplusplus -} -#endif - #else __setup ("floppy=", floppy_setup); diff --git a/drivers/block/ll_rw_blk.c b/drivers/block/ll_rw_blk.c index 63c5e4b85..431860f44 100644 --- a/drivers/block/ll_rw_blk.c +++ b/drivers/block/ll_rw_blk.c @@ -319,9 +319,9 @@ static struct request * __get_request_wait(int n, kdev_t dev) DECLARE_WAITQUEUE(wait, current); unsigned long flags; - add_wait_queue(&wait_for_request, &wait); + add_wait_queue_exclusive(&wait_for_request, &wait); for (;;) { - current->state = TASK_UNINTERRUPTIBLE; + __set_current_state(TASK_UNINTERRUPTIBLE|TASK_EXCLUSIVE); spin_lock_irqsave(&io_request_lock,flags); req = get_request(n, dev); spin_unlock_irqrestore(&io_request_lock,flags); diff --git a/drivers/block/lvm.c b/drivers/block/lvm.c index 9f58a48d5..beb4f1364 100644 --- a/drivers/block/lvm.c +++ b/drivers/block/lvm.c @@ -892,8 +892,8 @@ static int lvm_blk_ioctl(struct inode *inode, struct file *file, "%s -- lvm_blk_ioctl -- BLKGETSIZE: %u\n", lvm_name, lv_ptr->lv_size); #endif - copy_to_user((long *) arg, &lv_ptr->lv_size, - sizeof(lv_ptr->lv_size)); + if (put_user(lv_ptr->lv_size, (long *)arg)) + return -EFAULT; break; @@ -931,8 +931,8 @@ static int lvm_blk_ioctl(struct inode *inode, struct file *file, printk(KERN_DEBUG "%s -- lvm_blk_ioctl -- BLKRAGET\n", lvm_name); #endif - copy_to_user((long *) arg, &lv_ptr->lv_read_ahead, - sizeof(lv_ptr->lv_read_ahead)); + if (put_user(lv->lv_read_ahead, (long *)arg)) + return -EFAULT; break; diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index a0b63a8c8..0c3f5429f 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -299,7 +299,7 @@ void nbd_clear_que(struct nbd_device *lo) static void do_nbd_request(request_queue_t * q) { struct request *req; - int dev; + int dev = 0; struct nbd_device *lo; while (!QUEUE_EMPTY) { |