[PATCH] i2c: scx200_acb remove use of lock_kernel

scx200_acb: remove use of lock_kernel()

Signed-off-by: Ben Gardner <bgardner@wabtec.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Ben Gardner 2006-01-18 22:46:26 +01:00 committed by Greg Kroah-Hartman
parent 9b7b6d3b2b
commit 8a05940d74

View File

@ -378,6 +378,7 @@ static struct i2c_algorithm scx200_acb_algorithm = {
}; };
static struct scx200_acb_iface *scx200_acb_list; static struct scx200_acb_iface *scx200_acb_list;
static DECLARE_MUTEX(scx200_acb_list_mutex);
static int scx200_acb_probe(struct scx200_acb_iface *iface) static int scx200_acb_probe(struct scx200_acb_iface *iface)
{ {
@ -463,10 +464,10 @@ static int __init scx200_acb_create(int base, int index)
goto errout_release; goto errout_release;
} }
lock_kernel(); down(&scx200_acb_list_mutex);
iface->next = scx200_acb_list; iface->next = scx200_acb_list;
scx200_acb_list = iface; scx200_acb_list = iface;
unlock_kernel(); up(&scx200_acb_list_mutex);
return 0; return 0;
@ -509,17 +510,17 @@ static void __exit scx200_acb_cleanup(void)
{ {
struct scx200_acb_iface *iface; struct scx200_acb_iface *iface;
lock_kernel(); down(&scx200_acb_list_mutex);
while ((iface = scx200_acb_list) != NULL) { while ((iface = scx200_acb_list) != NULL) {
scx200_acb_list = iface->next; scx200_acb_list = iface->next;
unlock_kernel(); up(&scx200_acb_list_mutex);
i2c_del_adapter(&iface->adapter); i2c_del_adapter(&iface->adapter);
release_region(iface->base, 8); release_region(iface->base, 8);
kfree(iface); kfree(iface);
lock_kernel(); down(&scx200_acb_list_mutex);
} }
unlock_kernel(); up(&scx200_acb_list_mutex);
} }
module_init(scx200_acb_init); module_init(scx200_acb_init);