[openib-general] Re: [PATCH][DAPL] Fix sparse warnings on dapl builds
James Lentini
jlentini at netapp.com
Fri Apr 29 09:52:21 PDT 2005
Tom,
How did you produce these errors?
I don't see any warning when I build the code w/ kbuild:
# cd root_of_my_2.6.11_linux_src_tree
# make drivers/dat/
# make drivers/infiniband/ulp/dat-provider/
james
On Wed, 27 Apr 2005, Tom Duffy wrote:
> This patch fixes all the sparse warnings during build of dat,
> dat-provider, and ib_at.
>
> Signed-off-by: Tom Duffy <tduffy at sun.com>
>
> Index: gen2/users/jlentini/linux-kernel/dat-provider/dapl_ep_connect.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat-provider/dapl_ep_connect.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat-provider/dapl_ep_connect.c (working copy)
> @@ -263,7 +263,7 @@ dapl_ep_connect(DAT_EP_HANDLE ep_handle,
> connect_evd_handle,
> DAT_CONNECTION_EVENT_UNREACHABLE,
> (DAT_HANDLE) ep_ptr, 0,
> - 0);
> + NULL);
> dat_status = DAT_SUCCESS;
> }
> } else {
> Index: gen2/users/jlentini/linux-kernel/dat-provider/dapl_module.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat-provider/dapl_module.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat-provider/dapl_module.c (working copy)
> @@ -44,7 +44,7 @@ MODULE_DESCRIPTION("DAT Provider for Inf
> MODULE_AUTHOR("James Lentini");
>
> int g_dapl_dbg_type = 0;
> -MODULE_PARM(g_dapl_dbg_type, "i");
> +module_param(g_dapl_dbg_type, int, 0644);
> MODULE_PARM_DESC(g_dapl_dbg_type, "Enable dapl debug types");
>
> static int dapl_init(void);
> @@ -209,13 +209,13 @@ void DAT_PROVIDER_FINI_FUNC_NAME(const D
> (void)dapl_provider_list_remove(provider_info->ia_name);
> }
>
> -struct ib_client dapl_client = {
> +static struct ib_client dapl_client = {
> .name = "dapl",
> .add = dapl_add_one,
> .remove = dapl_remove_one
> };
>
> -char *dev_name_suffix_table[3] = {
> +static char *dev_name_suffix_table[3] = {
> "",
> "a",
> "b"
> Index: gen2/users/jlentini/linux-kernel/dat-provider/dapl_provider.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat-provider/dapl_provider.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat-provider/dapl_provider.c (working copy)
> @@ -53,7 +53,7 @@ DAPL_PROVIDER_LIST g_dapl_provider_list;
>
> DAT_PROVIDER g_dapl_provider_template = {
> NULL,
> - 0,
> + NULL,
> &dapl_ia_open,
> &dapl_ia_query,
> &dapl_ia_close,
> Index: gen2/users/jlentini/linux-kernel/dat-provider/dapl_openib_cm.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat-provider/dapl_openib_cm.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat-provider/dapl_openib_cm.c (working copy)
> @@ -628,7 +628,7 @@ dapl_ib_setup_conn_listener(DAPL_IA * ia
> if (status) {
> /* need to destroy CM ID ??? */
>
> - sp_ptr->cm_srvc_handle = 0;
> + sp_ptr->cm_srvc_handle = NULL;
>
> if (status == -EBUSY)
> return DAT_CONN_QUAL_IN_USE;
> @@ -799,22 +799,6 @@ DAT_RETURN dapl_ib_accept_connection(DAT
> return DAT_SUCCESS;
> }
>
> -DAT_RETURN dapl_ib_comm_established(DAPL_EP * ep_ptr)
> -{
> - int status;
> - DAT_RETURN dat_status = DAT_SUCCESS;
> -
> - status = ib_send_cm_rtu(ep_ptr->cm_handle, NULL, 0);
> - if (status) {
> - dapl_dbg_log(DAPL_DBG_TYPE_ERR,
> - " dapl_ib_comm_established: ib_send_cm_rtu failed: %d cm_handle: %x\n",
> - status, ep_ptr->cm_handle);
> - return DAT_ERROR(DAT_INSUFFICIENT_RESOURCES, 0);
> - }
> -
> - return dat_status;
> -}
> -
> /*
> * ib_cm_get_remote_gid
> */
> Index: gen2/users/jlentini/linux-kernel/dat-provider/dapl_openib_util.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat-provider/dapl_openib_util.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat-provider/dapl_openib_util.c (working copy)
> @@ -683,7 +683,7 @@ dapl_ib_mw_unbind(DAPL_RMR * rmr,
> mw_bind_prop.mw_access_flags = 0;
> mw_bind_prop.send_flags =
> (is_signaled == DAT_TRUE) ? IB_SEND_SIGNALED : 0;
> - mw_bind_prop.mr = 0;
> + mw_bind_prop.mr = NULL;
> mw_bind_prop.wr_id = (u64) (uintptr_t) cookie;
> ib_status = ib_bind_mw(ep->qp_handle, rmr->mw_handle, &mw_bind_prop);
> if (ib_status < 0) {
> @@ -954,16 +954,6 @@ dapl_ib_get_async_event(ib_error_record_
> }
>
> DAT_RETURN
> -dapl_ib_ncompletion_notify(ib_hca_handle_t hca_handle,
> - ib_cq_handle_t cq_handle, DAT_COUNT num)
> -{
> - int ib_status;
> -
> - ib_status = ib_req_ncomp_notif(cq_handle, num);
> - return dapl_ib_status_convert(ib_status);
> -}
> -
> -DAT_RETURN
> dapl_ib_get_hca_ids(ib_hca_handle_t hca, u8 port, union ib_gid * gid, u16 * lid)
> {
> int status;
> Index: gen2/users/jlentini/linux-kernel/dat-provider/dapl_timer_util.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat-provider/dapl_timer_util.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat-provider/dapl_timer_util.c (working copy)
> @@ -52,7 +52,7 @@
> #include "dapl.h"
> #include "dapl_timer_util.h"
>
> -struct timer_head {
> +static struct timer_head {
> DAPL_LLIST_HEAD timer_list_head;
> spinlock_t lock;
> DAPL_OS_WAIT_OBJECT wait_object;
> @@ -63,7 +63,7 @@ typedef struct timer_head DAPL_TIMER_HEA
>
> void dapl_timer_thread(void *arg);
>
> -void dapl_timer_init()
> +void dapl_timer_init(void)
> {
> /*
> * Set up the timer thread elements. The timer thread isn't
> Index: gen2/users/jlentini/linux-kernel/dat-provider/dapl_openib_util.h
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat-provider/dapl_openib_util.h (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat-provider/dapl_openib_util.h (working copy)
> @@ -105,7 +105,7 @@ typedef struct ib_shm_transport {
> ib_mr_handle_t mr_handle;
> } ib_shm_transport_t;
>
> -#define IB_INVALID_HANDLE 0
> +#define IB_INVALID_HANDLE NULL
>
> #define IB_MAX_REQ_PDATA_SIZE 92
> #define IB_MAX_REP_PDATA_SIZE 196
> Index: gen2/users/jlentini/linux-kernel/dat-provider/dapl_cr_accept.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat-provider/dapl_cr_accept.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat-provider/dapl_cr_accept.c (working copy)
> @@ -190,7 +190,7 @@ dapl_cr_accept(DAT_CR_HANDLE cr_handle,
> request_evd_handle,
> DAT_CONNECTION_EVENT_ACCEPT_COMPLETION_ERROR,
> (DAT_HANDLE) ep_ptr,
> - 0, 0);
> + 0, NULL);
>
> cr_ptr->header.magic = DAPL_MAGIC_CR_DESTROYED;
> } else {
> Index: gen2/users/jlentini/linux-kernel/dat-provider/dapl_rmr_util.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat-provider/dapl_rmr_util.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat-provider/dapl_rmr_util.c (working copy)
> @@ -49,7 +49,7 @@ DAPL_RMR *dapl_rmr_alloc(DAPL_PZ * pz)
> rmr->header.handle_type = DAT_HANDLE_TYPE_RMR;
> rmr->header.owner_ia = pz->header.owner_ia;
> rmr->header.user_context.as_64 = 0;
> - rmr->header.user_context.as_ptr = 0;
> + rmr->header.user_context.as_ptr = NULL;
> dapl_llist_init_entry(&rmr->header.ia_list_entry);
> dapl_ia_link_rmr(rmr->header.owner_ia, rmr);
> spin_lock_init(&rmr->header.lock);
> Index: gen2/users/jlentini/linux-kernel/dat-provider/dapl_ep_util.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat-provider/dapl_ep_util.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat-provider/dapl_ep_util.c (working copy)
> @@ -368,7 +368,7 @@ void dapl_ep_timeout(uintptr_t arg)
> (void)dapl_evd_post_connection_event((DAPL_EVD *) ep_ptr->param.
> connect_evd_handle,
> DAT_CONNECTION_EVENT_TIMED_OUT,
> - (DAT_HANDLE) ep_ptr, 0, 0);
> + (DAT_HANDLE) ep_ptr, 0, NULL);
> }
>
> /*
> Index: gen2/users/jlentini/linux-kernel/dat-provider/dapl_evd_util.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat-provider/dapl_evd_util.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat-provider/dapl_evd_util.c (working copy)
> @@ -358,7 +358,7 @@ void dapl_evd_eh_print_cqe(ib_work_compl
> "OP_COMP_AND_SWAP",
> "OP_FETCH_AND_ADD",
> "OP_BIND_MW",
> - 0
> + NULL
> };
> dapl_dbg_log(DAPL_DBG_TYPE_CALLBACK,
> "\t >>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<\n");
> Index: gen2/users/jlentini/linux-kernel/dat-provider/dapl_ep_disconnect.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat-provider/dapl_ep_disconnect.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat-provider/dapl_ep_disconnect.c (working copy)
> @@ -144,7 +144,7 @@ dapl_ep_disconnect(DAT_EP_HANDLE ep_hand
> evd_ptr = (DAPL_EVD *) ep_ptr->param.connect_evd_handle;
> dapl_evd_post_connection_event(evd_ptr,
> DAT_CONNECTION_EVENT_DISCONNECTED,
> - (DAT_HANDLE) ep_ptr, 0, 0);
> + (DAT_HANDLE) ep_ptr, 0, NULL);
> dat_status = DAT_SUCCESS;
> goto bail;
> }
> Index: gen2/users/jlentini/linux-kernel/dat-provider/dapl_hash.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat-provider/dapl_hash.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat-provider/dapl_hash.c (working copy)
> @@ -145,7 +145,7 @@ dapl_hash_rehash(DAPL_HASH_ELEM * elemen
> return;
> }
> }
> - *head = 0;
> + *head = NULL;
> }
>
> /*
> @@ -209,7 +209,7 @@ dapl_hash_add(DAPL_HASH_TABLEP p_table,
> */
> p_table->table[hashValue].key = key;
> p_table->table[hashValue].datum = datum;
> - p_table->table[hashValue].next_element = 0;
> + p_table->table[hashValue].next_element = NULL;
> p_table->num_entries++;
> status = DAT_TRUE;
> } else {
> @@ -222,7 +222,7 @@ dapl_hash_add(DAPL_HASH_TABLEP p_table,
> DAPL_HASH_ELEM *lastelement;
> newelement->key = key;
> newelement->datum = datum;
> - newelement->next_element = 0;
> + newelement->next_element = NULL;
> for (lastelement = &p_table->table[hashValue];
> lastelement->next_element;
> lastelement = lastelement->next_element) {
> @@ -354,7 +354,7 @@ DAT_RETURN dapl_hash_create(DAT_COUNT ta
> for (i = 0; i < table_size; i++) {
> p_table->table[i].datum = NO_DATUM_VALUE;
> p_table->table[i].key = 0;
> - p_table->table[i].next_element = 0;
> + p_table->table[i].next_element = NULL;
> }
>
> *pp_table = p_table;
> Index: gen2/users/jlentini/linux-kernel/dat-provider/dapl_llist.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat-provider/dapl_llist.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat-provider/dapl_llist.c (working copy)
> @@ -71,7 +71,7 @@ void dapl_llist_init_entry(DAPL_LLIST_EN
> {
> entry->blink = NULL;
> entry->flink = NULL;
> - entry->data = 0;
> + entry->data = NULL;
> entry->list_head = NULL;
> }
>
> Index: gen2/users/jlentini/linux-kernel/patches/at.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/patches/at.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/patches/at.c (working copy)
> @@ -118,7 +118,7 @@ struct async {
> int sa_id;
> };
>
> -struct async pending_reqs; /* dummy head for cyclic list */
> +static struct async pending_reqs; /* dummy head for cyclic list */
>
> struct ib_at_src {
> u32 ip;
> @@ -320,7 +320,7 @@ static void req_free(struct async *pend)
>
> pend->status = IB_AT_STATUS_INVALID;
> pend->type = IBAT_REQ_NONE;
> - pend->sa_query = 0;
> + pend->sa_query = NULL;
> }
>
> static int req_start(struct async *q, struct async *pend,
> @@ -336,7 +336,7 @@ static int req_start(struct async *q, st
>
> if (parent) {
> DEBUG("wait on parent %p", parent);
> - pend->next = pend->prev = 0;
> + pend->next = pend->prev = NULL;
> pend->parent = parent;
> pend->waiting = parent->waiting;
> parent->waiting = pend;
> @@ -344,8 +344,8 @@ static int req_start(struct async *q, st
> return 0; /* waiting on other request */
> }
>
> - pend->waiting = 0;
> - pend->parent = 0;
> + pend->waiting = NULL;
> + pend->parent = NULL;
>
> DEBUG("link to pending list %p", q);
> pend->next = q;
> @@ -396,7 +396,7 @@ static void req_end(struct async *pend,
> if (!*rr)
> WARN("pending request not found in parent request!");
>
> - pend->waiting = 0;
> + pend->waiting = NULL;
> DEBUG("child %p removed from parent %p list",
> pend, pend->parent);
> }
> @@ -405,10 +405,10 @@ static void req_end(struct async *pend,
> DEBUG("pend %p ending child req %p", pend, waiting);
> pend->waiting = waiting->waiting;
>
> - waiting->waiting = 0;
> - waiting->parent = 0;
> + waiting->waiting = NULL;
> + waiting->parent = NULL;
>
> - req_end(waiting, nrec, 0);
> + req_end(waiting, nrec, NULL);
> }
>
> if (pend->next) {
> @@ -483,7 +483,7 @@ static struct async *lookup_pending(stru
> break;
>
> spin_unlock_irqrestore(&q->lock, flags);
> - return a == q ? 0 : a;
> + return a == q ? NULL : a;
> }
>
> static struct async *lookup_req_id(struct async *q, u64 id)
> @@ -498,7 +498,7 @@ static struct async *lookup_req_id(struc
> break;
>
> spin_unlock_irqrestore(&q->lock, flags);
> - return a == q ? 0 : a;
> + return a == q ? NULL : a;
> }
>
> static void flush_pending(struct async *q)
> @@ -509,7 +509,7 @@ static void flush_pending(struct async *
> DEBUG("flushing pending q %p", q);
> spin_lock_irqsave(&q->lock, flags);
> while ((a = q->next) != q)
> - req_end(a, -EINTR, 0);
> + req_end(a, -EINTR, NULL);
> spin_unlock_irqrestore(&q->lock, flags);
> }
>
> @@ -561,7 +561,7 @@ route_req_complete(struct route_req *req
> for (pend = req->pend.waiting; pend; pend = pend->waiting)
> route_req_output(req, pend->data);
>
> - req_end(&req->pend, 1, 0);
> + req_end(&req->pend, 1, NULL);
> }
>
> static void
> @@ -587,7 +587,7 @@ path_req_complete(int status, struct ib_
> return;
> }
>
> - req->pend.sa_query = 0;
> + req->pend.sa_query = NULL;
>
> req->pend.nelem = path_req_output(req, resp, 1,
> req->pend.data, req->pend.nelem);
> @@ -597,7 +597,7 @@ path_req_complete(int status, struct ib_
> pend->nelem = path_req_output(req, resp, 1,
> pend->data, pend->nelem);
>
> - req_end(&req->pend, req->pend.nelem, 0);
> + req_end(&req->pend, req->pend.nelem, NULL);
> spin_unlock_irqrestore(&pending_reqs.lock, flags);
> }
>
> @@ -624,7 +624,7 @@ static void ib_at_sweep(void *data)
> (req->dst_ip & 0xff000000) >> 24,
> jiffies, pend->start);
>
> - req_end(pend, -ETIMEDOUT, 0);
> + req_end(pend, -ETIMEDOUT, NULL);
> }
> }
>
> @@ -902,7 +902,7 @@ int ib_at_cancel(u64 req_id)
>
> /* Promote first child to be pending req */
> if ((child = a->waiting)) {
> - child->parent = 0;
> + child->parent = NULL;
>
> /* link child after parent in pending list */
> child->next = a->next;
> @@ -910,10 +910,10 @@ int ib_at_cancel(u64 req_id)
> a->next->prev = child;
> a->next = child;
>
> - a->waiting = 0; /* clear to avoid cancelling childs */
> + a->waiting = NULL; /* clear to avoid cancelling childs */
> }
>
> - req_end(a, -EINTR, 0);
> + req_end(a, -EINTR, NULL);
>
> spin_unlock_irqrestore(&pending_reqs.lock, flags);
>
> Index: gen2/users/jlentini/linux-kernel/dat/dr.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat/dr.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat/dr.c (working copy)
> @@ -86,7 +86,7 @@ DAT_RETURN dat_dr_fini(void)
> * Function: dat_dr_insert
> ************************************************************************/
>
> -extern DAT_RETURN
> +DAT_RETURN
> dat_dr_insert(const DAT_PROVIDER_INFO * info, DAT_DR_ENTRY * entry)
> {
> DAT_RETURN status;
> @@ -134,7 +134,7 @@ dat_dr_insert(const DAT_PROVIDER_INFO *
> * Function: dat_dr_remove
> ************************************************************************/
>
> -extern DAT_RETURN dat_dr_remove(const DAT_PROVIDER_INFO * info)
> +DAT_RETURN dat_dr_remove(const DAT_PROVIDER_INFO * info)
> {
> DAT_DR_ENTRY *data;
> DAT_DICTIONARY_ENTRY dict_entry;
> @@ -180,7 +180,7 @@ extern DAT_RETURN dat_dr_remove(const DA
> * Function: dat_dr_provider_open
> ************************************************************************/
>
> -extern DAT_RETURN
> +DAT_RETURN
> dat_dr_provider_open(const DAT_PROVIDER_INFO * info,
> DAT_IA_OPEN_FUNC * p_ia_open_func)
> {
> @@ -206,7 +206,7 @@ dat_dr_provider_open(const DAT_PROVIDER_
> * Function: dat_dr_provider_close
> ************************************************************************/
>
> -extern DAT_RETURN dat_dr_provider_close(const DAT_PROVIDER_INFO * info)
> +DAT_RETURN dat_dr_provider_close(const DAT_PROVIDER_INFO * info)
> {
> DAT_RETURN status;
> DAT_DR_ENTRY *data;
> Index: gen2/users/jlentini/linux-kernel/dat/core.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat/core.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat/core.c (working copy)
> @@ -77,7 +77,7 @@ static DAT_MODULE_STATE g_module_state =
>
> static DAT_DBG_CLASS g_dbg_class = DAT_DBG_CLASS_ERROR;
>
> -MODULE_PARM(g_dbg_class, "i");
> +module_param(g_dbg_class, int, 0644);
> MODULE_PARM_DESC(g_dbg_class,
> "Bit mask to specify class of DAT debug messages.");
>
> Index: gen2/users/jlentini/linux-kernel/dat/consumer.c
> ===================================================================
> --- gen2/users/jlentini/linux-kernel/dat/consumer.c (revision 2219)
> +++ gen2/users/jlentini/linux-kernel/dat/consumer.c (working copy)
> @@ -48,7 +48,7 @@
> *
> ***********************************************************************/
>
> -DAT_RETURN dat_strerror_major(DAT_RETURN value, const char **message)
> +static DAT_RETURN dat_strerror_major(DAT_RETURN value, const char **message)
> {
> switch (DAT_GET_TYPE(value)) {
> case DAT_SUCCESS:
> @@ -168,7 +168,7 @@ DAT_RETURN dat_strerror_major(DAT_RETURN
> * Function: dat_strerror_minor
> *
> ***********************************************************************/
> -DAT_RETURN dat_strerror_minor(DAT_RETURN value, const char **message)
> +static DAT_RETURN dat_strerror_minor(DAT_RETURN value, const char **message)
> {
> switch (DAT_GET_SUBTYPE(value)) {
>
> @@ -1480,17 +1480,6 @@ DAT_RETURN dat_cr_handoff(DAT_CR_HANDLE
> return DAT_CR_HANDOFF(cr_handle, handoff);
> }
>
> -DAT_RETURN dat_evd_kquery(DAT_EVD_HANDLE evd_handle,
> - DAT_EVD_PARAM_MASK evd_param_mask,
> - DAT_EVD_PARAM * evd_param)
> -{
> - if (evd_handle == NULL) {
> - return DAT_ERROR(DAT_INVALID_HANDLE,
> - DAT_INVALID_HANDLE_EVD_REQUEST);
> - }
> - return DAT_EVD_QUERY(evd_handle, evd_param_mask, evd_param);
> -}
> -
> DAT_RETURN dat_lmr_query(DAT_LMR_HANDLE lmr_handle,
> DAT_LMR_PARAM_MASK lmv_param_mask,
> DAT_LMR_PARAM * lmr_param)
>
More information about the general
mailing list