From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756051AbcEYDsJ (ORCPT ); Tue, 24 May 2016 23:48:09 -0400 Received: from mail1.bemta8.messagelabs.com ([216.82.243.195]:22812 "EHLO mail1.bemta8.messagelabs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755350AbcEYDqu (ORCPT ); Tue, 24 May 2016 23:46:50 -0400 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrKIsWRWlGSWpSXmKPExsVywNY2Q1dKwTX c4OJ3HouFbUtYLC7vmsPmwOTxeZNcAGMUa2ZeUn5FAmvG7i7Xgi/CFTMau9gaGG8LdjFycQgJ 7GaUWHJxMxOEc4BRYseV5ewQzmVGieX7lrNCOOsYJVpnnILKbGGUuHZlIZDDycEmYCAx885dM FtE4DyLxNNbuSA2s4CexLYTR5hBbGGBCIkXv5+ygtgsAqoSR/68ZwSxeQW8JOZMPgrWKyEgJ3 Hy2GSwGk6g+IaGb0wgtpCAp8T72w2sELaaxOGzj9gg6oMlnh9+xA4xR1Di5MwnLBB7JSQOvnj BPIFRaBaS1CwkqQWMTKsYNYpTi8pSi3QNjfSSijLTM0pyEzNzdA0NLPRyU4uLE9NTcxKTivWS 83M3MQKDmAEIdjBOmOV8iFGSg0lJlPfgE5dwIb6k/JTKjMTijPii0pzU4kOMMhwcShK8kvKu4 UKCRanpqRVpmTnAeIJJS3DwKInwqoOkeYsLEnOLM9MhUqcYdTkOTb+2lkmIJS8/L1VKnPebHF CRAEhRRmke3AhYbF9ilJUS5mUEOkqIpyC1KDezBFX+FaM4B6OSMK8RyCqezLwSuE2vgI5gAjr C/4szyBEliQgpqQbGySXasY7BCldsqv8/mnJ/VSPHjvPnxY8+nsz0arbAlM9FTjU7UlmO3M4Q WW7xTs1X6eCK7TLMRn9t3ps/OJth8W01z/eZk/P0V08okewIqg9l4Oh88HZXtO/npQ4hVlOSf VONZB2OTRBO4vk19aRU/XGpwwkXnun671pj1fxQ8/7a322O3gzKSizFGYmGWsxFxYkATOj7z+ gCAAA= X-Env-Sender: David.Kershner@unisys.com X-Msg-Ref: server-11.tower-99.messagelabs.com!1464147991!20731847!13 X-Originating-IP: [192.61.61.104] X-StarScan-Received: X-StarScan-Version: 8.34; banners=-,-,- X-VirusChecked: Checked From: David Kershner To: , , , , , , , , , , , , , , , , , , , , , CC: Bryan Thompson Subject: [PATCH 10/24] staging: unisys: visorbus: Make visordriver_callback_lock a mutex Date: Tue, 24 May 2016 23:45:48 -0400 Message-ID: <1464147962-26650-11-git-send-email-david.kershner@unisys.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1464147962-26650-1-git-send-email-david.kershner@unisys.com> References: <1464147962-26650-1-git-send-email-david.kershner@unisys.com> X-OriginalArrivalTime: 25 May 2016 03:46:24.0386 (UTC) FILETIME=[0252CE20:01D1B638] 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 --- 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