[openib-general] [PATCH 8/9] kDAPL: convert the hcas ia list to linux native
Tom Duffy
Tom.Duffy at Sun.COM
Mon Jun 13 17:18:10 PDT 2005
Signed-off-by: Tom Duffy <tduffy at sun.com>
diff -Nurp -X /home/tduffy/dontdiff linux-kernel-ll8/dat-provider/dapl.h linux-kernel-ll9/dat-provider/dapl.h
--- linux-kernel-ll8/dat-provider/dapl.h 2005-06-13 16:49:24.143015000 -0700
+++ linux-kernel-ll9/dat-provider/dapl.h 2005-06-13 16:53:00.300010000 -0700
@@ -123,7 +123,7 @@ struct dapl_cookie_buffer {
struct dapl_hca {
spinlock_t lock;
unsigned long flags;
- struct dapl_llist_entry *ia_list_head; /* list of all open IAs */
+ struct list_head ia_list; /* list of all open IAs */
atomic_t handle_ref_count; /* open instance count */
char *name; /* provider name */
struct sockaddr_in6 hca_address; /* local address of HCA */
@@ -149,11 +149,11 @@ struct dapl_common {
struct dapl_ia {
struct dat_ia ia;
struct dapl_common common;
+ struct list_head list;
struct dapl_hca *hca;
struct dapl_evd *async_error_evd;
boolean_t cleanup_async_error_evd;
- struct dapl_llist_entry hca_ia_list_entry; /* HCAs list of IAs */
struct list_head ep_list; /* EP queue */
struct list_head lmr_list; /* LMR queue */
struct list_head rmr_list; /* RMR queue */
diff -Nurp -X /home/tduffy/dontdiff linux-kernel-ll8/dat-provider/dapl_hca_util.c linux-kernel-ll9/dat-provider/dapl_hca_util.c
--- linux-kernel-ll8/dat-provider/dapl_hca_util.c 2005-06-10 16:13:19.509014000 -0700
+++ linux-kernel-ll9/dat-provider/dapl_hca_util.c 2005-06-13 16:59:49.280012000 -0700
@@ -63,7 +63,7 @@ struct dapl_hca *dapl_hca_alloc(char *na
dapl_hash_create(DAPL_HASH_TABLE_DEFAULT_CAPACITY,
&hca->lmr_hash_table)) {
spin_lock_init(&hca->lock);
- dapl_llist_init_head(&hca->ia_list_head);
+ INIT_LIST_HEAD(&hca->ia_list);
hca->name = dapl_os_strdup(name);
hca->ib_hca_handle = device;
@@ -122,8 +122,7 @@ void dapl_hca_free(struct dapl_hca *hca)
void dapl_hca_link_ia(struct dapl_hca *hca, struct dapl_ia *ia_ptr)
{
spin_lock_irqsave(&hca->lock, hca->flags);
- dapl_llist_add_head(&hca->ia_list_head,
- &ia_ptr->hca_ia_list_entry, ia_ptr);
+ list_add(&ia_ptr->list, &hca->ia_list);
spin_unlock_irqrestore(&hca->lock, hca->flags);
}
@@ -143,17 +142,9 @@ void dapl_hca_link_ia(struct dapl_hca *h
* none
*
*/
-void dapl_hca_unlink_ia(struct dapl_hca *hca, struct dapl_ia *ia_ptr)
+void dapl_hca_unlink_ia(struct dapl_hca *hca, struct dapl_ia *ia)
{
spin_lock_irqsave(&hca->lock, hca->flags);
- /*
- * If an error occurred when we were opening the IA it
- * will not be linked on the list; don't unlink an unlinked
- * list!
- */
- if (!dapl_llist_is_empty(&hca->ia_list_head)) {
- dapl_llist_remove_entry(&hca->ia_list_head,
- &ia_ptr->hca_ia_list_entry);
- }
+ list_del(&ia->list);
spin_unlock_irqrestore(&hca->lock, hca->flags);
}
diff -Nurp -X /home/tduffy/dontdiff linux-kernel-ll8/dat-provider/dapl_ia.c linux-kernel-ll9/dat-provider/dapl_ia.c
--- linux-kernel-ll8/dat-provider/dapl_ia.c 2005-06-13 16:50:30.624000000 -0700
+++ linux-kernel-ll9/dat-provider/dapl_ia.c 2005-06-13 16:56:10.004000000 -0700
@@ -62,7 +62,6 @@ struct dapl_ia *dapl_ia_alloc(struct dat
ia->hca = hca;
ia->async_error_evd = NULL;
ia->cleanup_async_error_evd = FALSE;
- dapl_llist_init_entry(&ia->hca_ia_list_entry);
INIT_LIST_HEAD(&ia->ep_list);
INIT_LIST_HEAD(&ia->lmr_list);
INIT_LIST_HEAD(&ia->rmr_list);
More information about the general
mailing list