diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2008-05-19 22:07:28 +0200 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2008-07-14 13:06:02 +0200 |
commit | 055a7da0bb7b14f2f5009bf1c486a6e965e1e7ac (patch) | |
tree | 8c7fa74a6c910796cf774b0867e062ddd9919282 /drivers/ieee1394/highlevel.h | |
parent | fde675fa2a1b07108976b42b20c9e69c80a53248 (diff) |
ieee1394: video1394: reorder module init, prepare BKL removal
This prepares video1394 for removal of the BKL (big kernel lock):
It allows video1394_open() to be called while video1394_init_module()
is still in progress.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/ieee1394/highlevel.h')
-rw-r--r-- | drivers/ieee1394/highlevel.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/ieee1394/highlevel.h b/drivers/ieee1394/highlevel.h index eb9fe321e09..bc5d0854c17 100644 --- a/drivers/ieee1394/highlevel.h +++ b/drivers/ieee1394/highlevel.h @@ -2,7 +2,7 @@ #define IEEE1394_HIGHLEVEL_H #include <linux/list.h> -#include <linux/spinlock_types.h> +#include <linux/spinlock.h> #include <linux/types.h> struct module; @@ -103,6 +103,17 @@ int highlevel_lock64(struct hpsb_host *host, int nodeid, octlet_t *store, void highlevel_fcp_request(struct hpsb_host *host, int nodeid, int direction, void *data, size_t length); +/** + * hpsb_init_highlevel - initialize a struct hpsb_highlevel + * + * This is only necessary if hpsb_get_hostinfo_bykey can be called + * before hpsb_register_highlevel. + */ +static inline void hpsb_init_highlevel(struct hpsb_highlevel *hl) +{ + rwlock_init(&hl->host_info_lock); + INIT_LIST_HEAD(&hl->host_info_list); +} void hpsb_register_highlevel(struct hpsb_highlevel *hl); void hpsb_unregister_highlevel(struct hpsb_highlevel *hl); |