diff options
Diffstat (limited to 'drivers/isdn/capi/capi.c')
-rw-r--r-- | drivers/isdn/capi/capi.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c index ee5837522f5a..0cabe31f26df 100644 --- a/drivers/isdn/capi/capi.c +++ b/drivers/isdn/capi/capi.c | |||
@@ -787,8 +787,7 @@ capi_poll(struct file *file, poll_table * wait) | |||
787 | } | 787 | } |
788 | 788 | ||
789 | static int | 789 | static int |
790 | capi_ioctl(struct inode *inode, struct file *file, | 790 | capi_ioctl(struct file *file, unsigned int cmd, unsigned long arg) |
791 | unsigned int cmd, unsigned long arg) | ||
792 | { | 791 | { |
793 | struct capidev *cdev = file->private_data; | 792 | struct capidev *cdev = file->private_data; |
794 | capi_ioctl_struct data; | 793 | capi_ioctl_struct data; |
@@ -981,6 +980,18 @@ register_out: | |||
981 | } | 980 | } |
982 | } | 981 | } |
983 | 982 | ||
983 | static long | ||
984 | capi_unlocked_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | ||
985 | { | ||
986 | int ret; | ||
987 | |||
988 | lock_kernel(); | ||
989 | ret = capi_ioctl(file, cmd, arg); | ||
990 | unlock_kernel(); | ||
991 | |||
992 | return ret; | ||
993 | } | ||
994 | |||
984 | static int capi_open(struct inode *inode, struct file *file) | 995 | static int capi_open(struct inode *inode, struct file *file) |
985 | { | 996 | { |
986 | struct capidev *cdev; | 997 | struct capidev *cdev; |
@@ -1026,7 +1037,7 @@ static const struct file_operations capi_fops = | |||
1026 | .read = capi_read, | 1037 | .read = capi_read, |
1027 | .write = capi_write, | 1038 | .write = capi_write, |
1028 | .poll = capi_poll, | 1039 | .poll = capi_poll, |
1029 | .ioctl = capi_ioctl, | 1040 | .unlocked_ioctl = capi_unlocked_ioctl, |
1030 | .open = capi_open, | 1041 | .open = capi_open, |
1031 | .release = capi_release, | 1042 | .release = capi_release, |
1032 | }; | 1043 | }; |