From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964844AbcFAC2c (ORCPT ); Tue, 31 May 2016 22:28:32 -0400 Received: from mail1.bemta8.messagelabs.com ([216.82.243.205]:13245 "EHLO mail1.bemta8.messagelabs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757399AbcFAC2W (ORCPT ); Tue, 31 May 2016 22:28:22 -0400 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrKIsWRWlGSWpSXmKPExsVywNY2U9fWwy/ c4P1LEYuFbUtYLC7vmsPmwOTxeZNcAGMUa2ZeUn5FAmvGgcWfWQqWiFS8mX2dsYGxXaiLkZND SGA3o8T5TUxdjFxA9gFGieUrHrNDOJcZJQ5vOQTlrGOUePPiDZSzhVFiz4dLTCD9bAIGEjPv3 GUHsUUEzrNIPL2VC2IzC+hJbDtxhBnEFhaIljh4YCdYDYuAqsTX5l9gvbwCXhLLln5kBbElBO QkTh6bDGZzAsW3Tn7PCHGfp0Tzw39QtprE4bOP2CDqgyUOTuhhhJgjKHFy5hMWiL0SEgdfvGC ewCg0C0lqFpLUAkamVYwaxalFZalFuoYmeklFmekZJbmJmTm6hgYWermpxcWJ6ak5iUnFesn5 uZsYgUFcz8DAuIOx9YTLIUZJDiYlUd4fLn7hQnxJ+SmVGYnFGfFFpTmpxYcYZTg4lCR4mdyBc oJFqempFWmZOcB4gklLcPAoiUCkeYsLEnOLM9MhUqcYdTkOTb+2lkmIJS8/L1VKnHeSG1CRAE hRRmke3AhYbF9ilJUS5mVkYGAQ4ilILcrNLEGVf8UozsGoJMy7H2QKT2ZeCdymV0BHMAEdEZ/ hA3JESSJCSqqBkcFwUprtJQn5HtesowYGPD8Vme/uKXpmtMfB4qJt+MeyOs+EJX++XljAZmN6 fpf/7Nx/01a95Tzt4ZWY0yxcuHT2W38uk6NtS3zMzRf4m1p9mMDYy3T/Wn799y/frC6vDfOw9 dWr2dvR0ZPNrbJ6hcBq3exglRWTlwU1Pt8fZfL6vkrMvKpZSizFGYmGWsxFxYkAb79mVOgCAA A= X-Env-Sender: David.Kershner@unisys.com X-Msg-Ref: server-8.tower-99.messagelabs.com!1464748089!21271450!15 X-Originating-IP: [192.61.61.105] X-StarScan-Received: X-StarScan-Version: 8.34; banners=-,-,- X-VirusChecked: Checked From: David Kershner To: , , , , , , , , , , , , , , , , , , , , , CC: Bryan Thompson Subject: [PATCH v2 13/27] staging: unisys: visorbus: Make visordriver_callback_lock a mutex Date: Tue, 31 May 2016 22:26:39 -0400 Message-ID: <1464748013-31309-14-git-send-email-david.kershner@unisys.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1464748013-31309-1-git-send-email-david.kershner@unisys.com> References: <1464748013-31309-1-git-send-email-david.kershner@unisys.com> X-OriginalArrivalTime: 01 Jun 2016 02:27:04.0756 (UTC) FILETIME=[16412740:01D1BBAD] MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Bryan Thompson visordriver_callback_lock is just a binary semaphore that logically makes more sense as a mutex. Signed-off-by: Bryan Thompson Signed-off-by: David Kershner Reviewed-by: Tim Sell --- drivers/staging/unisys/include/visorbus.h | 3 ++- drivers/staging/unisys/visorbus/visorbus_main.c | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/staging/unisys/include/visorbus.h b/drivers/staging/unisys/include/visorbus.h index 9bb88bb..9da25c0 100644 --- a/drivers/staging/unisys/include/visorbus.h +++ b/drivers/staging/unisys/include/visorbus.h @@ -161,7 +161,8 @@ struct visor_device { struct timer_list timer; bool timer_active; bool being_removed; - struct semaphore visordriver_callback_lock; + /* mutex to serialize visor_driver function callbacks */ + struct mutex visordriver_callback_lock; bool pausing; bool resuming; u32 chipset_bus_no; diff --git a/drivers/staging/unisys/visorbus/visorbus_main.c b/drivers/staging/unisys/visorbus/visorbus_main.c index 24b27ff..44609ee 100644 --- a/drivers/staging/unisys/visorbus/visorbus_main.c +++ b/drivers/staging/unisys/visorbus/visorbus_main.c @@ -574,7 +574,7 @@ visordriver_probe_device(struct device *xdev) if (!drv->probe) return -ENODEV; - down(&dev->visordriver_callback_lock); + mutex_lock(&dev->visordriver_callback_lock); dev->being_removed = false; res = drv->probe(dev); @@ -584,7 +584,7 @@ visordriver_probe_device(struct device *xdev) fix_vbus_dev_info(dev); } - up(&dev->visordriver_callback_lock); + mutex_unlock(&dev->visordriver_callback_lock); return res; } @@ -600,11 +600,11 @@ visordriver_remove_device(struct device *xdev) dev = to_visor_device(xdev); drv = to_visor_driver(xdev->driver); - down(&dev->visordriver_callback_lock); + mutex_lock(&dev->visordriver_callback_lock); dev->being_removed = true; if (drv->remove) drv->remove(dev); - up(&dev->visordriver_callback_lock); + mutex_unlock(&dev->visordriver_callback_lock); dev_stop_periodic_work(dev); put_device(&dev->device); @@ -764,7 +764,7 @@ create_visor_device(struct visor_device *dev) POSTCODE_LINUX_4(DEVICE_CREATE_ENTRY_PC, chipset_dev_no, chipset_bus_no, POSTCODE_SEVERITY_INFO); - sema_init(&dev->visordriver_callback_lock, 1); /* unlocked */ + mutex_init(&dev->visordriver_callback_lock); dev->device.bus = &visorbus_type; dev->device.groups = visorbus_channel_groups; device_initialize(&dev->device); -- 1.9.1