On Fri, Feb 11, 2005 at 09:58:27PM -0800, Grant Grundler wrote: > On Fri, Feb 11, 2005 at 06:40:58PM -0800, Libor Michalek wrote: > > If no one objects, a patch to clean up compile warnings on x86_64. > > I haven't applied this patch yet - I read mail on the other side of > a firewall where my machines are. But I don't think it will fix > the compile error below. > > I'm not thrilled about the number of "(void *)(unsigned long)" casts. > A small inline function to convert (int) to (void *) would be cleaner. > E.g. (not compiled): > static inline void * hash_arg(int x) { return (void *)(unsigned long) x; }
Good idea, in three places I got rid of the cast, and then used an inline in two other places. Here's the updated patch. -Libor Index: infiniband/ulp/sdp/sdp_actv.c =================================================================== --- infiniband/ulp/sdp/sdp_actv.c (revision 1778) +++ infiniband/ulp/sdp/sdp_actv.c (working copy) @@ -201,7 +201,7 @@ */ if (hello_ack->bsdh.size != sizeof(struct msg_hello_ack)) { - sdp_dbg_warn(NULL, "hello ack, size mismatch. (2) <%d:%d>", + sdp_dbg_warn(NULL, "hello ack, size mismatch. (2) <%d:%Zu>", hello_ack->bsdh.size, sizeof(struct msg_hello_ack)); return -EINVAL; @@ -518,7 +518,7 @@ path->packet_life = 13; #endif conn->cm_id = ib_create_cm_id(sdp_cm_event_handler, - (void *)conn->hashent); + __hashent_arg(conn->hashent)); if (NULL == conn->cm_id) { sdp_dbg_warn(conn, "Failed to create CM handle, %d", @@ -571,7 +571,7 @@ */ if (sizeof(struct msg_hello) > conn->recv_size) { - sdp_dbg_warn(conn, "buffer size <%d> too small. <%d>", + sdp_dbg_warn(conn, "buffer size <%d> too small. <%Zu>", conn->recv_size, sizeof(struct msg_hello)); result = -ENOBUFS; goto error; Index: infiniband/ulp/sdp/sdp_conn.c =================================================================== --- infiniband/ulp/sdp/sdp_conn.c (revision 1778) +++ infiniband/ulp/sdp/sdp_conn.c (working copy) @@ -1085,7 +1085,8 @@ conn->send_cq = ib_create_cq(conn->ca, sdp_cq_event_handler, NULL, - (void *)conn->hashent, + (void *) + (unsigned long)conn->hashent, conn->send_cq_size); if (IS_ERR(conn->send_cq)) { @@ -1110,7 +1111,8 @@ conn->recv_cq = ib_create_cq(conn->ca, sdp_cq_event_handler, NULL, - (void *)conn->hashent, + (void *) + (unsigned long)conn->hashent, conn->recv_cq_size); if (IS_ERR(conn->recv_cq)) { Index: infiniband/ulp/sdp/sdp_conn.h =================================================================== --- infiniband/ulp/sdp/sdp_conn.h (revision 1778) +++ infiniband/ulp/sdp/sdp_conn.h (working copy) @@ -481,6 +481,11 @@ #define SDP_CONN_PUT(conn) __sdp_conn_put((conn)) #define SDP_CONN_ERROR(conn) __sdp_conn_error((conn)) +static inline void *__hashent_arg(s32 hashent) +{ + return (void *)(unsigned long)hashent; +} + #endif /* _SDP_CONN_H */ Index: infiniband/ulp/sdp/sdp_iocb.c =================================================================== --- infiniband/ulp/sdp/sdp_iocb.c (revision 1778) +++ infiniband/ulp/sdp/sdp_iocb.c (working copy) @@ -44,7 +44,7 @@ vma = find_vma(iocb->mm, (iocb->addr & PAGE_MASK)); if (NULL == vma) { - sdp_warn("No VMA for IOCB <%lx:%d> unlock", + sdp_warn("No VMA for IOCB <%lx:%Zu> unlock", iocb->addr, iocb->size); } @@ -286,7 +286,7 @@ */ if (result) { - sdp_dbg_err("VMA lock <%lx:%d> error <%d> <%d:%lu:%lu>", + sdp_dbg_err("VMA lock <%lx:%Zu> error <%d> <%d:%lu:%lu>", iocb->addr, iocb->size, result, iocb->page_count, iocb->mm->locked_vm, limit); goto err_lock; @@ -300,7 +300,7 @@ /* * sanity check. */ - sdp_warn("No VMA for IOCB! <%lx:%d> lock", + sdp_warn("No VMA for IOCB! <%lx:%Zu> lock", iocb->addr, iocb->size); } @@ -342,7 +342,7 @@ result = _sdp_iocb_page_save(iocb); if (result) { - sdp_dbg_err("Error <%d> saving pages for IOCB <%lx:%d>", + sdp_dbg_err("Error <%d> saving pages for IOCB <%lx:%Zu>", result, iocb->addr, iocb->size); goto err_save; } @@ -584,7 +584,7 @@ result = sdp_iocb_destroy(iocb); if (0 > result) { - sdp_dbg_err("Error <%d> deleting IOCB <%d> of status <%d>", + sdp_dbg_err("Error <%d> deleting IOCB <%d> of status <%Zu>", result, iocb->key, iocb->status); } @@ -924,8 +924,8 @@ if (0 < (mask & iocb->flags) || SDP_IOCB_F_ALL == mask) { - sdp_dbg_err("IOCB <%d> cancel <%d> flag <%04x> " - "size <%d:%d:%d>", + sdp_dbg_err("IOCB <%d> cancel <%Zu> flag <%04x> " + "size <%Zu:%d:%d>", iocb->key, comp, iocb->flags, iocb->size, iocb->post, iocb->len); Index: infiniband/ulp/sdp/sdp_pass.c =================================================================== --- infiniband/ulp/sdp/sdp_pass.c (revision 1778) +++ infiniband/ulp/sdp/sdp_pass.c (working copy) @@ -41,7 +41,7 @@ */ if (sizeof(struct msg_hello_ack) > conn->recv_size) { - sdp_dbg_warn(conn, "buffer size <%d> too small. <%d>", + sdp_dbg_warn(conn, "buffer size <%d> too small. <%Zu>", conn->recv_size, sizeof(struct msg_hello_ack)); result = -ENOBUFS; goto error; @@ -311,7 +311,7 @@ */ if (msg_hello->bsdh.size != sizeof(struct msg_hello)) { - sdp_dbg_warn(NULL, "hello msg size mismatch. (2) <%d:%d>", + sdp_dbg_warn(NULL, "hello msg size mismatch. (2) <%d:%Zu>", msg_hello->bsdh.size, sizeof(struct msg_hello)); return -EINVAL; } @@ -438,7 +438,7 @@ * update CM context to refer to the connection. */ conn->cm_id = cm_id; - conn->cm_id->context = (void *)(unsigned long)conn->hashent; + conn->cm_id->context = __hashent_arg(conn->hashent); /* * associate connection with a hca/port, and allocate IB. */ Index: infiniband/ulp/sdp/sdp_proc.c =================================================================== --- infiniband/ulp/sdp/sdp_proc.c (revision 1778) +++ infiniband/ulp/sdp/sdp_proc.c (working copy) @@ -169,7 +169,7 @@ */ if (0 && sizeof(s32) != sizeof(char *)) { - sdp_warn("integers and pointers of a different size. <%d:%d>", + sdp_warn("integers and pointers of a different size <%Zu:%Zu>", sizeof(s32), sizeof(char *)); return -EFAULT; } Index: infiniband/ulp/sdp/sdp_recv.c =================================================================== --- infiniband/ulp/sdp/sdp_recv.c (revision 1781) +++ infiniband/ulp/sdp/sdp_recv.c (working copy) @@ -799,8 +799,9 @@ result = _sdp_read_buff_iocb(iocb, buff); if (0 > result) { - sdp_dbg_warn(conn, "Error <%d> data copy <%d:%d> to IOCB", - result, iocb->len, (buff->tail - buff->data)); + sdp_dbg_warn(conn, "Error <%d> data copy <%d:%u> to IOCB", + result, iocb->len, + (unsigned)(buff->tail - buff->data)); (void)sdp_iocb_q_put_head(&conn->r_snk, iocb); return result; @@ -850,8 +851,9 @@ result = _sdp_read_buff_iocb(iocb, buff); if (0 > result) { - sdp_dbg_warn(conn, "Error <%d> data copy <%d:%d> to IOCB", - result, iocb->len, (buff->tail - buff->data)); + sdp_dbg_warn(conn, "Error <%d> data copy <%d:%u> to IOCB", + result, iocb->len, + (unsigned)(buff->tail - buff->data)); return result; } /* @@ -1003,12 +1005,12 @@ static int _sdp_read_src_lookup(struct sdpc_desc *element, void *arg) { struct sdpc_iocb *iocb = (struct sdpc_iocb *) element; - u32 value = (u32)(unsigned long)arg; + struct kiocb *req = (struct kiocb *)arg; SDP_CHECK_NULL(element, -EINVAL); if (SDP_DESC_TYPE_IOCB == element->type && - iocb->key == value) { + iocb->key == req->ki_key) { return 0; } @@ -1111,7 +1113,7 @@ */ iocb = (struct sdpc_iocb *)sdp_desc_q_lookup(&conn->r_src, _sdp_read_src_lookup, - (void *)req->ki_key); + req); if (NULL != iocb) { iocb->flags |= SDP_IOCB_F_CANCEL; @@ -1623,7 +1625,7 @@ if (NULL == iocb) { sdp_dbg_warn(conn, - "Failed to allocate IOCB <%d:%d>", + "Error allocating IOCB <%Zu:%d>", size, copied); result = -ENOMEM; break; @@ -1642,7 +1644,7 @@ if (0 > result) { sdp_dbg_warn(conn, - "Error <%d> IOCB lock <%d:%d>", + "Error <%d> IOCB lock <%Zu:%d>", result, size, copied); (void)sdp_iocb_destroy(iocb); @@ -1655,7 +1657,7 @@ if (0 > result) { sdp_dbg_warn(conn, - "Error <%d> IOCB queue <%d:%d>", + "Error <%d> IOCB queue <%Zu:%d>", result, size, copied); (void)sdp_iocb_destroy(iocb); Index: infiniband/ulp/sdp/sdp_send.c =================================================================== --- infiniband/ulp/sdp/sdp_send.c (revision 1781) +++ infiniband/ulp/sdp/sdp_send.c (working copy) @@ -1964,11 +1964,11 @@ static int _sdp_write_src_lookup(struct sdpc_desc *element, void *arg) { struct sdpc_iocb *iocb = (struct sdpc_iocb *) element; - u32 value = (u32)(unsigned long)arg; + struct kiocb *req = (struct kiocb *)arg; SDP_CHECK_NULL(element, -EINVAL); - if (SDP_DESC_TYPE_IOCB == element->type && iocb->key == value) { + if (SDP_DESC_TYPE_IOCB == element->type && iocb->key == req->ki_key) { return 0; } @@ -2016,13 +2016,13 @@ */ iocb = (struct sdpc_iocb *)sdp_desc_q_lookup(&conn->send_queue, _sdp_write_src_lookup, - (void *)req->ki_key); + req); if (NULL != iocb) { /* * always remove the IOCB. * If active, then place it into the correct active queue */ - result = sdp_desc_q_remove((struct sdpc_desc *) iocb); + result = sdp_desc_q_remove((struct sdpc_desc *)iocb); SDP_EXPECT(!(0 > result)); if (0 < (SDP_IOCB_F_ACTIVE & iocb->flags)) { @@ -2075,7 +2075,8 @@ */ iocb = (struct sdpc_iocb *)sdp_desc_q_lookup(&conn->w_snk, _sdp_write_src_lookup, - (void *)req->ki_key); + req); + if (NULL != iocb) { iocb->flags |= SDP_IOCB_F_CANCEL; @@ -2439,7 +2440,7 @@ iocb = sdp_iocb_create(); if (NULL == iocb) { - sdp_dbg_warn(conn, "Failed to allocate IOCB <%d:%d>", + sdp_dbg_warn(conn, "Failed to allocate IOCB <%Zu:%d>", size, copied); result = -ENOMEM; break; @@ -2457,7 +2458,7 @@ result = sdp_iocb_lock(iocb); if (0 > result) { - sdp_dbg_warn(conn, "Error <%d> locking IOCB <%d:%d>", + sdp_dbg_warn(conn, "Error <%d> locking IOCB <%Zu:%d>", result, size, copied); (void)sdp_iocb_destroy(iocb); _______________________________________________ openib-general mailing list openib-general@openib.org http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general