diff options
| -rw-r--r-- | drivers/s390/block/dasd_eer.c | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/drivers/s390/block/dasd_eer.c b/drivers/s390/block/dasd_eer.c index d96039eae59b..1f3e967aaba8 100644 --- a/drivers/s390/block/dasd_eer.c +++ b/drivers/s390/block/dasd_eer.c | |||
| @@ -536,7 +536,6 @@ static int dasd_eer_open(struct inode *inp, struct file *filp) | |||
| 536 | eerb = kzalloc(sizeof(struct eerbuffer), GFP_KERNEL); | 536 | eerb = kzalloc(sizeof(struct eerbuffer), GFP_KERNEL); |
| 537 | if (!eerb) | 537 | if (!eerb) |
| 538 | return -ENOMEM; | 538 | return -ENOMEM; |
| 539 | lock_kernel(); | ||
| 540 | eerb->buffer_page_count = eer_pages; | 539 | eerb->buffer_page_count = eer_pages; |
| 541 | if (eerb->buffer_page_count < 1 || | 540 | if (eerb->buffer_page_count < 1 || |
| 542 | eerb->buffer_page_count > INT_MAX / PAGE_SIZE) { | 541 | eerb->buffer_page_count > INT_MAX / PAGE_SIZE) { |
| @@ -544,7 +543,6 @@ static int dasd_eer_open(struct inode *inp, struct file *filp) | |||
| 544 | DBF_EVENT(DBF_WARNING, "can't open device since module " | 543 | DBF_EVENT(DBF_WARNING, "can't open device since module " |
| 545 | "parameter eer_pages is smaller than 1 or" | 544 | "parameter eer_pages is smaller than 1 or" |
| 546 | " bigger than %d", (int)(INT_MAX / PAGE_SIZE)); | 545 | " bigger than %d", (int)(INT_MAX / PAGE_SIZE)); |
| 547 | unlock_kernel(); | ||
| 548 | return -EINVAL; | 546 | return -EINVAL; |
| 549 | } | 547 | } |
| 550 | eerb->buffersize = eerb->buffer_page_count * PAGE_SIZE; | 548 | eerb->buffersize = eerb->buffer_page_count * PAGE_SIZE; |
| @@ -552,14 +550,12 @@ static int dasd_eer_open(struct inode *inp, struct file *filp) | |||
| 552 | GFP_KERNEL); | 550 | GFP_KERNEL); |
| 553 | if (!eerb->buffer) { | 551 | if (!eerb->buffer) { |
| 554 | kfree(eerb); | 552 | kfree(eerb); |
| 555 | unlock_kernel(); | ||
| 556 | return -ENOMEM; | 553 | return -ENOMEM; |
| 557 | } | 554 | } |
| 558 | if (dasd_eer_allocate_buffer_pages(eerb->buffer, | 555 | if (dasd_eer_allocate_buffer_pages(eerb->buffer, |
| 559 | eerb->buffer_page_count)) { | 556 | eerb->buffer_page_count)) { |
| 560 | kfree(eerb->buffer); | 557 | kfree(eerb->buffer); |
| 561 | kfree(eerb); | 558 | kfree(eerb); |
| 562 | unlock_kernel(); | ||
| 563 | return -ENOMEM; | 559 | return -ENOMEM; |
| 564 | } | 560 | } |
| 565 | filp->private_data = eerb; | 561 | filp->private_data = eerb; |
| @@ -567,7 +563,6 @@ static int dasd_eer_open(struct inode *inp, struct file *filp) | |||
| 567 | list_add(&eerb->list, &bufferlist); | 563 | list_add(&eerb->list, &bufferlist); |
| 568 | spin_unlock_irqrestore(&bufferlock, flags); | 564 | spin_unlock_irqrestore(&bufferlock, flags); |
| 569 | 565 | ||
| 570 | unlock_kernel(); | ||
| 571 | return nonseekable_open(inp,filp); | 566 | return nonseekable_open(inp,filp); |
| 572 | } | 567 | } |
| 573 | 568 | ||
