Input: gameport - semaphore to mutex conversion
The conversion was generated via scripts, and the result was validated automatically via a script as well. Signed-off-by: Arjan van de Ven <arjan@infradead.org> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
c4e32e9faa
commit
286295eb93
|
@ -22,6 +22,7 @@
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/kthread.h>
|
#include <linux/kthread.h>
|
||||||
#include <linux/sched.h> /* HZ */
|
#include <linux/sched.h> /* HZ */
|
||||||
|
#include <linux/mutex.h>
|
||||||
|
|
||||||
/*#include <asm/io.h>*/
|
/*#include <asm/io.h>*/
|
||||||
|
|
||||||
|
@ -43,10 +44,10 @@ EXPORT_SYMBOL(gameport_start_polling);
|
||||||
EXPORT_SYMBOL(gameport_stop_polling);
|
EXPORT_SYMBOL(gameport_stop_polling);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* gameport_sem protects entire gameport subsystem and is taken
|
* gameport_mutex protects entire gameport subsystem and is taken
|
||||||
* every time gameport port or driver registrered or unregistered.
|
* every time gameport port or driver registrered or unregistered.
|
||||||
*/
|
*/
|
||||||
static DECLARE_MUTEX(gameport_sem);
|
static DEFINE_MUTEX(gameport_mutex);
|
||||||
|
|
||||||
static LIST_HEAD(gameport_list);
|
static LIST_HEAD(gameport_list);
|
||||||
|
|
||||||
|
@ -342,7 +343,7 @@ static void gameport_handle_event(void)
|
||||||
struct gameport_event *event;
|
struct gameport_event *event;
|
||||||
struct gameport_driver *gameport_drv;
|
struct gameport_driver *gameport_drv;
|
||||||
|
|
||||||
down(&gameport_sem);
|
mutex_lock(&gameport_mutex);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Note that we handle only one event here to give swsusp
|
* Note that we handle only one event here to give swsusp
|
||||||
|
@ -379,7 +380,7 @@ static void gameport_handle_event(void)
|
||||||
gameport_free_event(event);
|
gameport_free_event(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
up(&gameport_sem);
|
mutex_unlock(&gameport_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -464,7 +465,7 @@ static ssize_t gameport_rebind_driver(struct device *dev, struct device_attribut
|
||||||
struct device_driver *drv;
|
struct device_driver *drv;
|
||||||
int retval;
|
int retval;
|
||||||
|
|
||||||
retval = down_interruptible(&gameport_sem);
|
retval = mutex_lock_interruptible(&gameport_mutex);
|
||||||
if (retval)
|
if (retval)
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
|
@ -484,7 +485,7 @@ static ssize_t gameport_rebind_driver(struct device *dev, struct device_attribut
|
||||||
retval = -EINVAL;
|
retval = -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
up(&gameport_sem);
|
mutex_unlock(&gameport_mutex);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -521,7 +522,7 @@ static void gameport_init_port(struct gameport *gameport)
|
||||||
|
|
||||||
__module_get(THIS_MODULE);
|
__module_get(THIS_MODULE);
|
||||||
|
|
||||||
init_MUTEX(&gameport->drv_sem);
|
mutex_init(&gameport->drv_mutex);
|
||||||
device_initialize(&gameport->dev);
|
device_initialize(&gameport->dev);
|
||||||
snprintf(gameport->dev.bus_id, sizeof(gameport->dev.bus_id),
|
snprintf(gameport->dev.bus_id, sizeof(gameport->dev.bus_id),
|
||||||
"gameport%lu", (unsigned long)atomic_inc_return(&gameport_no) - 1);
|
"gameport%lu", (unsigned long)atomic_inc_return(&gameport_no) - 1);
|
||||||
|
@ -661,10 +662,10 @@ void __gameport_register_port(struct gameport *gameport, struct module *owner)
|
||||||
*/
|
*/
|
||||||
void gameport_unregister_port(struct gameport *gameport)
|
void gameport_unregister_port(struct gameport *gameport)
|
||||||
{
|
{
|
||||||
down(&gameport_sem);
|
mutex_lock(&gameport_mutex);
|
||||||
gameport_disconnect_port(gameport);
|
gameport_disconnect_port(gameport);
|
||||||
gameport_destroy_port(gameport);
|
gameport_destroy_port(gameport);
|
||||||
up(&gameport_sem);
|
mutex_unlock(&gameport_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -717,7 +718,7 @@ void gameport_unregister_driver(struct gameport_driver *drv)
|
||||||
{
|
{
|
||||||
struct gameport *gameport;
|
struct gameport *gameport;
|
||||||
|
|
||||||
down(&gameport_sem);
|
mutex_lock(&gameport_mutex);
|
||||||
drv->ignore = 1; /* so gameport_find_driver ignores it */
|
drv->ignore = 1; /* so gameport_find_driver ignores it */
|
||||||
|
|
||||||
start_over:
|
start_over:
|
||||||
|
@ -731,7 +732,7 @@ void gameport_unregister_driver(struct gameport_driver *drv)
|
||||||
}
|
}
|
||||||
|
|
||||||
driver_unregister(&drv->driver);
|
driver_unregister(&drv->driver);
|
||||||
up(&gameport_sem);
|
mutex_unlock(&gameport_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int gameport_bus_match(struct device *dev, struct device_driver *drv)
|
static int gameport_bus_match(struct device *dev, struct device_driver *drv)
|
||||||
|
@ -743,9 +744,9 @@ static int gameport_bus_match(struct device *dev, struct device_driver *drv)
|
||||||
|
|
||||||
static void gameport_set_drv(struct gameport *gameport, struct gameport_driver *drv)
|
static void gameport_set_drv(struct gameport *gameport, struct gameport_driver *drv)
|
||||||
{
|
{
|
||||||
down(&gameport->drv_sem);
|
mutex_lock(&gameport->drv_mutex);
|
||||||
gameport->drv = drv;
|
gameport->drv = drv;
|
||||||
up(&gameport->drv_sem);
|
mutex_unlock(&gameport->drv_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
int gameport_open(struct gameport *gameport, struct gameport_driver *drv, int mode)
|
int gameport_open(struct gameport *gameport, struct gameport_driver *drv, int mode)
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <linux/list.h>
|
#include <linux/list.h>
|
||||||
|
#include <linux/mutex.h>
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
#include <linux/timer.h>
|
#include <linux/timer.h>
|
||||||
|
|
||||||
|
@ -40,7 +41,7 @@ struct gameport {
|
||||||
struct gameport *parent, *child;
|
struct gameport *parent, *child;
|
||||||
|
|
||||||
struct gameport_driver *drv;
|
struct gameport_driver *drv;
|
||||||
struct semaphore drv_sem; /* protects serio->drv so attributes can pin driver */
|
struct mutex drv_mutex; /* protects serio->drv so attributes can pin driver */
|
||||||
|
|
||||||
struct device dev;
|
struct device dev;
|
||||||
unsigned int registered; /* port has been fully registered with driver core */
|
unsigned int registered; /* port has been fully registered with driver core */
|
||||||
|
@ -137,12 +138,12 @@ static inline void gameport_set_drvdata(struct gameport *gameport, void *data)
|
||||||
*/
|
*/
|
||||||
static inline int gameport_pin_driver(struct gameport *gameport)
|
static inline int gameport_pin_driver(struct gameport *gameport)
|
||||||
{
|
{
|
||||||
return down_interruptible(&gameport->drv_sem);
|
return mutex_lock_interruptible(&gameport->drv_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void gameport_unpin_driver(struct gameport *gameport)
|
static inline void gameport_unpin_driver(struct gameport *gameport)
|
||||||
{
|
{
|
||||||
up(&gameport->drv_sem);
|
mutex_unlock(&gameport->drv_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __gameport_register_driver(struct gameport_driver *drv, struct module *owner);
|
void __gameport_register_driver(struct gameport_driver *drv, struct module *owner);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user