Return-path: Received: from userp1040.oracle.com ([156.151.31.81]:20374 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755126Ab3HWIk6 (ORCPT ); Fri, 23 Aug 2013 04:40:58 -0400 Date: Fri, 23 Aug 2013 11:40:59 +0300 From: Dan Carpenter To: Wim Van Sebroeck Cc: linux-watchdog@vger.kernel.org, kernel-janitors@vger.kernel.org Subject: [patch 2/2] watchdog: ts72xx_wdt: locking bug in ioctl Message-ID: <20130823084059.GE31293@elgon.mountain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sender: linux-watchdog-owner@vger.kernel.org List-Id: linux-watchdog@vger.kernel.org Calling the WDIOC_GETSTATUS & WDIOC_GETBOOTSTATUS and twice will cause a interruptible deadlock. Signed-off-by: Dan Carpenter diff --git a/drivers/watchdog/ts72xx_wdt.c b/drivers/watchdog/ts72xx_wdt.c index 9125b0f..3ddd527 100644 --- a/drivers/watchdog/ts72xx_wdt.c +++ b/drivers/watchdog/ts72xx_wdt.c @@ -311,7 +311,8 @@ static long ts72xx_wdt_ioctl(struct file *file, unsigned int cmd, case WDIOC_GETSTATUS: case WDIOC_GETBOOTSTATUS: - return put_user(0, p); + error = put_user(0, p); + break; case WDIOC_KEEPALIVE: ts72xx_wdt_kick(wdt);