From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.153]) by ozlabs.org (Postfix) with ESMTP id C8415DDDF3 for ; Mon, 25 Feb 2008 19:16:58 +1100 (EST) Received: by fg-out-1718.google.com with SMTP id 16so955849fgg.39 for ; Mon, 25 Feb 2008 00:16:56 -0800 (PST) Message-ID: <47C2796F.2070601@gmail.com> Date: Mon, 25 Feb 2008 09:16:47 +0100 From: Jiri Slaby MIME-Version: 1.0 To: Stephen Neuendorffer Subject: Re: [PATCH] Xilinx: hwicap: cleanup References: <1202437061-12691-1-git-send-email-stephen.neuendorffer@xilinx.com> <20080211182429.76E204D8018@mail62-sin.bigfish.com> <20080224232152.CEC5F12C8057@mail99-dub.bigfish.com> In-Reply-To: <20080224232152.CEC5F12C8057@mail99-dub.bigfish.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Cc: linuxppc-dev@ozlabs.org, git-dev , linux-kernel@vger.kernel.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On 02/25/2008 12:21 AM, Stephen Neuendorffer wrote: >>> @@ -549,8 +556,7 @@ static int hwicap_release(struct inode *inode, > struct file *file) >>> int i; >>> int status = 0; >>> >>> - if (down_interruptible(&drvdata->sem)) >>> - return -ERESTARTSYS; >>> + mutex_lock(&drvdata->sem); >> Why not mutex_lock_interruptible()? (goes for all cases of > mutex_lock()) > > It's not clear to me how to get 'correct' behavior in these functions if > the interrupt happens. For instance in probe/setup, if the mutex_lock > is interrupted, it doesn't appear that there is anything to do other > than return an error code that no device is present? I think this was > suggested by Jiri... Yeah, since ERESTARTSYS would be ignored from f_op->release (see __fput()), drv->probe (see really_probe() and probe_failed label); not even talking about void return value functions. In those cases, the device won't be de/initialized and might result in unwanted behaviour (multiple modprobes for one device, rmmod/insmod need if you hit the path in release etc.).