From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754530Ab0ESRZT (ORCPT ); Wed, 19 May 2010 13:25:19 -0400 Received: from mail-ww0-f46.google.com ([74.125.82.46]:53492 "EHLO mail-ww0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754447Ab0ESRYW (ORCPT ); Wed, 19 May 2010 13:24:22 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:x-mailer-version :in-reply-to:references; b=ZUuYeJUDZ7TH/boqogMYjnoe2267pgF1vtEpEUqXZ8esJAtDA1sHLlSqBsjM6x11+r xVWyF8O50HlH6opqtlVOf67UvTdLZkH/92cq9g0nEkQHyAPqw0JobDjpJb60qX3hGUCy byU5+XMkjrhzpU7lMY2Tl6Kmpq8x/9SD6GpEQ= From: Frederic Weisbecker To: Ingo Molnar Cc: LKML , Frederic Weisbecker , Jeff Dike , Uml , Thomas Gleixner , John Kacur , Arnd Bergmann Subject: [PATCH 6/8] uml: Pushdown the bkl from harddog_kern ioctl Date: Wed, 19 May 2010 19:24:13 +0200 Message-Id: <1274289855-10001-7-git-send-regression-fweisbec@gmail.com> X-Mailer: git-send-regression X-Mailer-version: 0.1, "The maintainer couldn't reproduce after one week full time debugging" special version. In-Reply-To: <1274289855-10001-1-git-send-regression-fweisbec@gmail.com> References: <1274289855-10001-1-git-send-regression-fweisbec@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Pushdown the bkl to harddog_ioctl. Signed-off-by: Frederic Weisbecker Cc: Jeff Dike Cc: Uml Cc: Thomas Gleixner Cc: John Kacur Cc: Arnd Bergmann --- arch/um/drivers/harddog_kern.c | 18 +++++++++++++++--- 1 files changed, 15 insertions(+), 3 deletions(-) diff --git a/arch/um/drivers/harddog_kern.c b/arch/um/drivers/harddog_kern.c index d332503..cfcac1f 100644 --- a/arch/um/drivers/harddog_kern.c +++ b/arch/um/drivers/harddog_kern.c @@ -124,8 +124,8 @@ static ssize_t harddog_write(struct file *file, const char __user *data, size_t return 0; } -static int harddog_ioctl(struct inode *inode, struct file *file, - unsigned int cmd, unsigned long arg) +static int harddog_ioctl_unlocked(struct file *file, + unsigned int cmd, unsigned long arg) { void __user *argp= (void __user *)arg; static struct watchdog_info ident = { @@ -148,10 +148,22 @@ static int harddog_ioctl(struct inode *inode, struct file *file, } } +static long harddog_ioctl(struct file *file, + unsigned int cmd, unsigned long arg) +{ + long ret; + + lock_kernel(); + ret = harddog_ioctl_unlocked(file, cmd, arg); + unlock_kernel(); + + return ret; +} + static const struct file_operations harddog_fops = { .owner = THIS_MODULE, .write = harddog_write, - .ioctl = harddog_ioctl, + .unlocked_ioctl = harddog_ioctl, .open = harddog_open, .release = harddog_release, }; -- 1.6.2.3