linux-next: manual merge of the bkl-ioctl tree with my fixes tree
Subsystems (3)
Hi Frédéric,
Today's linux-next merge of the bkl-ioctl tree got a aconflics in drivers/block/pktcdvd.c between commit 30d32c9015af1fa56795c5ba8d7d6635d6bef8bf ("pktcdvd: improve BKL and compat_ioctl.c usage") from my fixes tree and commit 1dd97d3d546aa14db7efa5366b21d1336b91379e ("Rename 'struct file_operations' 'ioctl' fn pointer to 'bkl_ioctl'") from the bkl-ioctl tree.
I used the version from my fixes tree for today.
Arnd, are you going to submit this change to Linus sometime soon, or should I drop it?
Signature · 3 lines
Cheers, Stephen Rothwell [email protected] http://www.canb.auug.org.au/~sfr/
Quoted 8 lines · Stephen Rothwell
Today's linux-next merge of the bkl-ioctl tree got a aconflics in
drivers/block/pktcdvd.cbetween commit30d32c9015af1fa56795c5ba8d7d6635d6bef8bf("pktcdvd: improve BKL andcompat_ioctl.cusage") from my fixes tree and commit1dd97d3d546aa14db7efa5366b21d1336b91379e("Rename 'structfile_operations' 'ioctl' fn pointer to 'bkl_ioctl'") from the bkl-ioctl tree.
Quoted 4 lines
I used the version from my fixes tree for today.
Arnd, are you going to submit this change to Linus sometime soon, or should I drop it?
It's not clear yet how we do it. Ideally "pktcdvd: improve BKL and compat_ioctl.c usage" should find its way into -rc1 in some way, but we need to reshuffle the BKL removal trees to make that go in nicely.
Where is your fixes tree? Maybe Frederic can take all BKL related patches from that into one of his trees.
Arnd
Hi Arndt,
Quoted 7 lines · On Tue, 27 Apr 2010 11:02:35 +0200 Arnd Bergmann <[email protected]> wrote:
It's not clear yet how we do it. Ideally "pktcdvd: improve BKL and
compat_ioctl.cusage" should find its way into -rc1 in some way, but we need to reshuffle the BKL removal trees to make that go in nicely.Where is your fixes tree? Maybe Frederic can take all BKL related patches from that into one of his trees.
My fixes tree is here: ssh://master.kernel.org/~sfr/next-fixes.git it currently only contains your pktcdvd patch. My understanding was that this patch was a fix for a build problem with Linus' tree.
Signature · 3 lines
Cheers, Stephen Rothwell [email protected] http://www.canb.auug.org.au/~sfr/
PATCH 1/1 pktcdvd: improve BKL and compat_ioctl.c usage
The pktcdvd driver uses proper locking and does not need the BKL in the ioctl and llseek functions of the character device, so kill both. Moving the compat_ioctl handling from common code into the driver itself fixes build problems when CONFIG_BLOCK is disabled.
---
Quoted 3 lines · Stephen Rothwell
My fixes tree is here: ssh://master.kernel.org/~sfr/next-fixes.git it currently only contains your pktcdvd patch. My understanding was that this patch was a fix for a build problem with Linus' tree.
Ah, I had forgotten that this was still needed and Jens or Peter obviously never picked it up.
Linus, could you merge this now to fix building with CONFIG_BLOCK disabled? It's fallout of a patch c5ecc484c "pktcdvd: use BIO list management functions", but I fixed it because the problem appeared in compat_ioctl handling. It now came up because the patch conflicted with the BKL pushdown, which the original patch does as a side-effect.
Arnd
drivers/block/pktcdvd.c +14 -3
@@ -48,6 +48,7 @@#include <linux/module.h> #include <linux/types.h> #include <linux/kernel.h> +#include <linux/compat.h> #include <linux/kthread.h> #include <linux/errno.h> #include <linux/spinlock.h>
@@ -2984,7 +2985,7 @@ static void pkt_get_status(struct pkt_ctrl_command *ctrl_cmd)mutex_unlock (&ctl_mutex); } -static int pkt_ctl_ioctl (struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg) +static long pkt_ctl_ioctl (struct file *file,unsigned int cmd,unsigned long arg) {void __user *argp = (void __user *)arg;struct pkt_ctrl_command ctrl_cmd;
@@ -3021,10 +3022,20 @@ static int pkt_ctl_ioctl(struct inode *inode, struct file *file, unsigned int cmreturn ret; } +#ifdef CONFIG_COMPAT +static long pkt_ctl_compat_ioctl (struct file *file,unsigned int cmd,unsigned long arg) +{ +return pkt_ctl_ioctl (file, cmd, (unsigned long )compat_ptr (arg)); +} +#endif static const struct file_operations pkt_ctl_fops = { - .ioctl = pkt_ctl_ioctl, - .owner =THIS_MODULE , + .open = nonseekable_open, + .unlocked_ioctl = pkt_ctl_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = pkt_ctl_compat_ioctl, +#endif + .owner =THIS_MODULE , };static struct miscdevice pkt_misc = {
fs/compat_ioctl.c +0 -3
@@ -102,7 +102,6 @@#include <linux/nbd.h> #include <linux/random.h> #include <linux/filter.h> -#include <linux/pktcdvd.h> #include <linux/hiddev.h>
@@ -1126,8 +1125,6 @@ COMPATIBLE_IOCTL(PPGETMODE) COMPATIBLE_IOCTL(PPGETPHASE) COMPATIBLE_IOCTL(PPGETFLAGS) COMPATIBLE_IOCTL(PPSETFLAGS) -/* pktcdvd */ -COMPATIBLE_IOCTL(PACKET_CTRL_CMD) /* Big A */ /* sparc only */ /* Big Q for sound/OSS */