From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752774AbbDEVQY (ORCPT ); Sun, 5 Apr 2015 17:16:24 -0400 Received: from mail-wi0-f181.google.com ([209.85.212.181]:35134 "EHLO mail-wi0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752384AbbDEVQW (ORCPT ); Sun, 5 Apr 2015 17:16:22 -0400 From: Giedrius Statkevicius To: lidza.louina@gmail.com, markh@compro.net Cc: gregkh@linuxfoundation.org, driverdev-devel@linuxdriverproject.org, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, =?UTF-8?q?Giedrius=20Statkevi=C4=8Dius?= Subject: [PATCH 1/3] staging: dgnc: use a real mutex instead of masquerading a semaphore as a mutex Date: Mon, 6 Apr 2015 00:15:53 +0300 Message-Id: <1428268555-8963-1-git-send-email-giedrius.statkevicius@gmail.com> X-Mailer: git-send-email 2.3.5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A mutex should be used here (and it's name even says that) so remove the hiding of a semaphore behind a #define and use a real mutex that the kernel provides. Signed-off-by: Giedrius Statkevičius --- drivers/staging/dgnc/dgnc_tty.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c index ce4187f..0b9bed4 100644 --- a/drivers/staging/dgnc/dgnc_tty.c +++ b/drivers/staging/dgnc/dgnc_tty.c @@ -42,16 +42,12 @@ #include "dgnc_sysfs.h" #include "dgnc_utils.h" -#define init_MUTEX(sem) sema_init(sem, 1) -#define DECLARE_MUTEX(name) \ - struct semaphore name = __SEMAPHORE_INITIALIZER(name, 1) - /* * internal variables */ static struct dgnc_board *dgnc_BoardsByMajor[256]; static unsigned char *dgnc_TmpWriteBuf; -static DECLARE_MUTEX(dgnc_TmpWriteSem); +static DEFINE_MUTEX(dgnc_TmpWriteSem); /* * Default transparent print information. @@ -1797,7 +1793,7 @@ static int dgnc_tty_write(struct tty_struct *tty, * the board. */ /* we're allowed to block if it's from_user */ - if (down_interruptible(&dgnc_TmpWriteSem)) + if (mutex_lock_interruptible(&dgnc_TmpWriteSem)) return -EINTR; /* @@ -1807,7 +1803,7 @@ static int dgnc_tty_write(struct tty_struct *tty, count -= copy_from_user(dgnc_TmpWriteBuf, (const unsigned char __user *) buf, count); if (!count) { - up(&dgnc_TmpWriteSem); + mutex_unlock(&dgnc_TmpWriteSem); return -EFAULT; } @@ -1855,7 +1851,7 @@ static int dgnc_tty_write(struct tty_struct *tty, if (from_user) { spin_unlock_irqrestore(&ch->ch_lock, flags); - up(&dgnc_TmpWriteSem); + mutex_unlock(&dgnc_TmpWriteSem); } else { spin_unlock_irqrestore(&ch->ch_lock, flags); } -- 2.3.5