From: John Kacur <jkacur@redhat.com>
To: Arnd Bergmann <arnd@arndb.de>, lkml <linux-kernel@vger.kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>,
Linus Torvalds <torvalds@linux-foundation.org>,
Frederic Weisbecker <fweisbec@gmail.com>,
Jan Blunck <jblunck@gmail.com>,
Thomas Gleixner <tglx@linutronix.de>,
John Kacur <jkacur@redhat.com>
Subject: [PATCH 06/10] isdn: push down BKL into ioctl functions
Date: Tue, 27 Apr 2010 11:18:14 +0200 [thread overview]
Message-ID: <1272359898-32020-7-git-send-email-jkacur@redhat.com> (raw)
In-Reply-To: <1272359898-32020-1-git-send-email-jkacur@redhat.com>
From: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixed merge conflicts that result from having applied
Linus's Preparation for BKL'ed ioctl removal patch first.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
drivers/isdn/capi/capi.c | 17 ++++++++++++++---
drivers/isdn/divert/divert_procfs.c | 19 ++++++++++++++++---
drivers/isdn/i4l/isdn_common.c | 18 +++++++++++++++---
drivers/isdn/mISDN/timerdev.c | 10 ++++++----
4 files changed, 51 insertions(+), 13 deletions(-)
diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c
index 6bc9766..0cabe31 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)
}
static int
-capi_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, unsigned long arg)
+capi_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
struct capidev *cdev = file->private_data;
capi_ioctl_struct data;
@@ -981,6 +980,18 @@ register_out:
}
}
+static long
+capi_unlocked_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+{
+ int ret;
+
+ lock_kernel();
+ ret = capi_ioctl(file, cmd, arg);
+ unlock_kernel();
+
+ return ret;
+}
+
static int capi_open(struct inode *inode, struct file *file)
{
struct capidev *cdev;
@@ -1026,7 +1037,7 @@ static const struct file_operations capi_fops =
.read = capi_read,
.write = capi_write,
.poll = capi_poll,
- .bkl_ioctl = capi_ioctl,
+ .unlocked_ioctl = capi_unlocked_ioctl,
.open = capi_open,
.release = capi_release,
};
diff --git a/drivers/isdn/divert/divert_procfs.c b/drivers/isdn/divert/divert_procfs.c
index ae0244f..8084557 100644
--- a/drivers/isdn/divert/divert_procfs.c
+++ b/drivers/isdn/divert/divert_procfs.c
@@ -11,6 +11,7 @@
#include <linux/module.h>
#include <linux/poll.h>
+#include <linux/smp_lock.h>
#include <linux/slab.h>
#ifdef CONFIG_PROC_FS
#include <linux/proc_fs.h>
@@ -178,8 +179,7 @@ isdn_divert_close(struct inode *ino, struct file *filep)
/* IOCTL */
/*********/
static int
-isdn_divert_ioctl(struct inode *inode, struct file *file,
- uint cmd, ulong arg)
+isdn_divert_ioctl(struct file *file, uint cmd, ulong arg)
{
divert_ioctl dioctl;
int i;
@@ -258,6 +258,19 @@ isdn_divert_ioctl(struct inode *inode, struct file *file,
return copy_to_user((void __user *)arg, &dioctl, sizeof(dioctl)) ? -EFAULT : 0;
} /* isdn_divert_ioctl */
+static long
+isdn_divert_unlocked_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+{
+ int ret;
+
+ lock_kernel();
+ ret = isdn_divert_ioctl(file, cmd, arg);
+ unlock_kernel();
+
+ return ret;
+}
+
+
static const struct file_operations isdn_fops =
{
.owner = THIS_MODULE,
@@ -265,7 +278,7 @@ static const struct file_operations isdn_fops =
.read = isdn_divert_read,
.write = isdn_divert_write,
.poll = isdn_divert_poll,
- .bkl_ioctl = isdn_divert_ioctl,
+ .unlocked_ioctl = isdn_divert_unlocked_ioctl,
.open = isdn_divert_open,
.release = isdn_divert_close,
};
diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c
index 08ba72d..a44cdb4 100644
--- a/drivers/isdn/i4l/isdn_common.c
+++ b/drivers/isdn/i4l/isdn_common.c
@@ -1272,9 +1272,9 @@ isdn_poll(struct file *file, poll_table * wait)
static int
-isdn_ioctl(struct inode *inode, struct file *file, uint cmd, ulong arg)
+isdn_ioctl(struct file *file, uint cmd, ulong arg)
{
- uint minor = iminor(inode);
+ uint minor = iminor(file->f_path.dentry->d_inode);
isdn_ctrl c;
int drvidx;
int chidx;
@@ -1722,6 +1722,18 @@ isdn_ioctl(struct inode *inode, struct file *file, uint cmd, ulong arg)
#undef cfg
}
+static long
+isdn_unlocked_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+{
+ int ret;
+
+ lock_kernel();
+ ret = isdn_ioctl(file, cmd, arg);
+ unlock_kernel();
+
+ return ret;
+}
+
/*
* Open the device code.
*/
@@ -1838,7 +1850,7 @@ static const struct file_operations isdn_fops =
.read = isdn_read,
.write = isdn_write,
.poll = isdn_poll,
- .bkl_ioctl = isdn_ioctl,
+ .unlocked_ioctl = isdn_unlocked_ioctl,
.open = isdn_open,
.release = isdn_close,
};
diff --git a/drivers/isdn/mISDN/timerdev.c b/drivers/isdn/mISDN/timerdev.c
index fc7d777..c3243c9 100644
--- a/drivers/isdn/mISDN/timerdev.c
+++ b/drivers/isdn/mISDN/timerdev.c
@@ -24,6 +24,7 @@
#include <linux/miscdevice.h>
#include <linux/module.h>
#include <linux/mISDNif.h>
+#include <linux/smp_lock.h>
#include "core.h"
static u_int *debug;
@@ -215,9 +216,8 @@ unlock:
return ret;
}
-static int
-mISDN_ioctl(struct inode *inode, struct file *filep, unsigned int cmd,
- unsigned long arg)
+static long
+mISDN_ioctl(struct file *filep, unsigned int cmd, unsigned long arg)
{
struct mISDNtimerdev *dev = filep->private_data;
int id, tout, ret = 0;
@@ -226,6 +226,7 @@ mISDN_ioctl(struct inode *inode, struct file *filep, unsigned int cmd,
if (*debug & DEBUG_TIMER)
printk(KERN_DEBUG "%s(%p, %x, %lx)\n", __func__,
filep, cmd, arg);
+ lock_kernel();
switch (cmd) {
case IMADDTIMER:
if (get_user(tout, (int __user *)arg)) {
@@ -257,13 +258,14 @@ mISDN_ioctl(struct inode *inode, struct file *filep, unsigned int cmd,
default:
ret = -EINVAL;
}
+ unlock_kernel();
return ret;
}
static const struct file_operations mISDN_fops = {
.read = mISDN_read,
.poll = mISDN_poll,
- .bkl_ioctl = mISDN_ioctl,
+ .unlocked_ioctl = mISDN_ioctl,
.open = mISDN_open,
.release = mISDN_close,
};
--
1.6.6.1
next prev parent reply other threads:[~2010-04-27 9:18 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-27 9:18 [PATCH 00/10] bkl: pushdowns from Arnd, and compile fixes John Kacur
2010-04-27 9:18 ` [PATCH 01/10] dvb: push down BKL into ioctl functions John Kacur
2010-04-27 9:18 ` [PATCH 02/10] scsi: " John Kacur
2010-04-27 9:18 ` [PATCH 03/10] bkl: Fix up compile problems in megaraid from bkl push-down John Kacur
2010-04-27 9:18 ` [PATCH 04/10] bkl: Fix missing inode tw_chrdev_ioctl due to bkl pushdown John Kacur
2010-04-27 9:18 ` [PATCH 05/10] bkl: Fix missing inode in twl_chrdev_ioctl resulting from " John Kacur
2010-04-27 9:18 ` John Kacur [this message]
2010-04-27 9:18 ` [PATCH 07/10] staging: push down BKL into ioctl functions John Kacur
2010-04-27 9:18 ` [PATCH 08/10] v4l: always use unlocked_ioctl John Kacur
2010-04-27 9:18 ` [PATCH 09/10] drivers: push down BKL into various drivers John Kacur
2010-04-27 9:18 ` [PATCH 10/10] bkl: Fix-up compile problems as a result of the bkl-pushdown John Kacur
2010-04-27 11:17 ` Arnd Bergmann
2010-04-27 11:54 ` John Kacur
2010-04-27 13:03 ` Arnd Bergmann
2010-04-28 12:24 ` Mauro Carvalho Chehab
2010-04-28 12:37 ` Hans Verkuil
2010-04-28 13:02 ` Laurent Pinchart
2010-04-28 14:46 ` Mauro Carvalho Chehab
2010-04-28 14:55 ` Linus Torvalds
2010-04-28 21:52 ` Frederic Weisbecker
2010-04-29 3:42 ` [PATCH 0/5] Pushdown bkl from v4l ioctls Frederic Weisbecker
2010-04-29 6:44 ` Hans Verkuil
2010-04-29 7:10 ` Laurent Pinchart
2010-04-29 7:38 ` Arnd Bergmann
2010-05-01 9:55 ` Hans Verkuil
2010-05-01 10:47 ` Arnd Bergmann
2010-05-01 14:58 ` Frederic Weisbecker
2010-05-01 11:11 ` Alan Cox
2010-04-29 3:42 ` [PATCH 1/5] v4l: Pushdown bkl into video_ioctl2 Frederic Weisbecker
2010-04-29 3:42 ` [PATCH 2/5] v4l: Use video_ioctl2_unlocked from drivers that don't want the bkl Frederic Weisbecker
2010-04-29 3:42 ` [PATCH 3/5] v4l: Change users of video_ioctl2 to use unlocked_ioctl Frederic Weisbecker
2010-04-29 3:42 ` [PATCH 4/5] v4l: Pushdown bkl to drivers that implement their own ioctl Frederic Weisbecker
2010-04-29 3:42 ` [PATCH 5/5] v4l: Remove struct v4l2_file_operations::ioctl Frederic Weisbecker
2010-04-27 11:31 ` [PATCH 00/10] bkl: pushdowns from Arnd, and compile fixes Arnd Bergmann
2010-04-27 12:19 ` John Kacur
2010-04-27 12:41 ` Frederic Weisbecker
2010-04-27 14:24 ` [PATCH 0/6] BKL pushdown into ioctl, continued Arnd Bergmann
2010-04-27 14:24 ` [PATCH 1/7] logfs: push down BKL into ioctl function Arnd Bergmann
2010-04-27 14:32 ` Arnd Bergmann
2010-04-27 14:58 ` Jörn Engel
2010-04-27 15:05 ` Arnd Bergmann
2010-04-27 15:09 ` Jörn Engel
2010-04-27 15:27 ` John Kacur
2010-04-27 15:32 ` Jörn Engel
2010-04-27 15:38 ` Arnd Bergmann
2010-04-27 20:12 ` Frederic Weisbecker
2010-04-27 20:30 ` [PATCH] logfs: kill BKL Arnd Bergmann
2010-05-19 12:51 ` Frederic Weisbecker
2010-04-27 15:36 ` [PATCH 1/7] logfs: push down BKL into ioctl function Linus Torvalds
2010-04-27 16:29 ` John Kacur
2010-04-27 19:59 ` Frederic Weisbecker
2010-04-27 14:24 ` [PATCH 2/7] hfsplus: " Arnd Bergmann
2010-04-27 14:24 ` [PATCH 3/7] cris: push down BKL into some device drivers Arnd Bergmann
2010-04-27 17:22 ` Frederic Weisbecker
2010-04-30 7:53 ` Jesper Nilsson
2010-05-17 2:51 ` Frederic Weisbecker
2010-04-27 14:24 ` [PATCH 4/7] sn_hwperf: kill BKL usage Arnd Bergmann
2010-04-27 14:24 ` [PATCH 5/7] um/mmapper: remove " Arnd Bergmann
2010-04-27 14:24 ` [PATCH 6/7] coda/psdev: remove BKL from ioctl function Arnd Bergmann
2010-04-27 14:24 ` [PATCH 7/7] smbfs: push down BKL into " Arnd Bergmann
2010-04-27 12:40 ` [PATCH 00/10] bkl: pushdowns from Arnd, and compile fixes Frederic Weisbecker
2010-04-27 12:51 ` Geert Uytterhoeven
2010-04-28 21:18 ` Frederic Weisbecker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1272359898-32020-7-git-send-email-jkacur@redhat.com \
--to=jkacur@redhat.com \
--cc=arnd@arndb.de \
--cc=fweisbec@gmail.com \
--cc=jblunck@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®