|
@@ -536,7 +536,6 @@ static int dasd_eer_open(struct inode *inp, struct file *filp)
|
|
|
eerb = kzalloc(sizeof(struct eerbuffer), GFP_KERNEL);
|
|
|
if (!eerb)
|
|
|
return -ENOMEM;
|
|
|
- lock_kernel();
|
|
|
eerb->buffer_page_count = eer_pages;
|
|
|
if (eerb->buffer_page_count < 1 ||
|
|
|
eerb->buffer_page_count > INT_MAX / PAGE_SIZE) {
|
|
@@ -544,7 +543,6 @@ static int dasd_eer_open(struct inode *inp, struct file *filp)
|
|
|
DBF_EVENT(DBF_WARNING, "can't open device since module "
|
|
|
"parameter eer_pages is smaller than 1 or"
|
|
|
" bigger than %d", (int)(INT_MAX / PAGE_SIZE));
|
|
|
- unlock_kernel();
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
eerb->buffersize = eerb->buffer_page_count * PAGE_SIZE;
|
|
@@ -552,14 +550,12 @@ static int dasd_eer_open(struct inode *inp, struct file *filp)
|
|
|
GFP_KERNEL);
|
|
|
if (!eerb->buffer) {
|
|
|
kfree(eerb);
|
|
|
- unlock_kernel();
|
|
|
return -ENOMEM;
|
|
|
}
|
|
|
if (dasd_eer_allocate_buffer_pages(eerb->buffer,
|
|
|
eerb->buffer_page_count)) {
|
|
|
kfree(eerb->buffer);
|
|
|
kfree(eerb);
|
|
|
- unlock_kernel();
|
|
|
return -ENOMEM;
|
|
|
}
|
|
|
filp->private_data = eerb;
|
|
@@ -567,7 +563,6 @@ static int dasd_eer_open(struct inode *inp, struct file *filp)
|
|
|
list_add(&eerb->list, &bufferlist);
|
|
|
spin_unlock_irqrestore(&bufferlock, flags);
|
|
|
|
|
|
- unlock_kernel();
|
|
|
return nonseekable_open(inp,filp);
|
|
|
}
|
|
|
|