From a0ea2e2dc3568e58a2fc63aa04558124ae037066 Mon Sep 17 00:00:00 2001 From: zab Date: Mon, 19 May 2003 22:07:37 +0000 Subject: [PATCH] I like 2.5's sanity checks already. This cleans up socknal's build.. - fix up portals Makefile.mk relative file references, 2.5 doesn't -C - locks take 'unsigned long' flags arguments - bitfields do too, and it could be a memory corrupting bug to use otherwise. - call the kernel's sock_sendmsg wrapper instead of exposing ourselves to the prot call's variations --- lnet/klnds/Makefile.mk | 4 ++-- lnet/klnds/socklnd/Makefile.mk | 2 +- lnet/klnds/socklnd/socklnd.c | 2 +- lnet/klnds/socklnd/socklnd.h | 4 ++-- lnet/klnds/socklnd/socklnd_cb.c | 17 +++++++++-------- lustre/portals/knals/Makefile.mk | 4 ++-- lustre/portals/knals/socknal/Makefile.mk | 2 +- lustre/portals/knals/socknal/socknal.c | 2 +- lustre/portals/knals/socknal/socknal.h | 4 ++-- lustre/portals/knals/socknal/socknal_cb.c | 17 +++++++++-------- 10 files changed, 30 insertions(+), 28 deletions(-) diff --git a/lnet/klnds/Makefile.mk b/lnet/klnds/Makefile.mk index ce40a60..cd5d9d6 100644 --- a/lnet/klnds/Makefile.mk +++ b/lnet/klnds/Makefile.mk @@ -1,4 +1,4 @@ -include ../Kernelenv +include $(obj)/../Kernelenv obj-y = socknal/ -# more coming... \ No newline at end of file +# more coming... diff --git a/lnet/klnds/socklnd/Makefile.mk b/lnet/klnds/socklnd/Makefile.mk index 46edf01..afa92a7 100644 --- a/lnet/klnds/socklnd/Makefile.mk +++ b/lnet/klnds/socklnd/Makefile.mk @@ -3,7 +3,7 @@ # This code is issued under the GNU General Public License. # See the file COPYING in this distribution -include ../../Kernelenv +include $(obj)/../../Kernelenv obj-y += ksocknal.o ksocknal-objs := socknal.o socknal_cb.o diff --git a/lnet/klnds/socklnd/socklnd.c b/lnet/klnds/socklnd/socklnd.c index d15d8c8..9f4e9cf 100644 --- a/lnet/klnds/socklnd/socklnd.c +++ b/lnet/klnds/socklnd/socklnd.c @@ -295,7 +295,7 @@ error: int ksocknal_close_sock(ptl_nid_t nid) { - long flags; + unsigned long flags; ksock_conn_t *conn; LIST_HEAD (death_row); struct list_head *tmp; diff --git a/lnet/klnds/socklnd/socklnd.h b/lnet/klnds/socklnd/socklnd.h index 46ee3b7..2910937 100644 --- a/lnet/klnds/socklnd/socklnd.h +++ b/lnet/klnds/socklnd/socklnd.h @@ -241,7 +241,7 @@ typedef struct /* READER */ struct list_head ksnc_rx_list; /* where I enq waiting input or a forwarding descriptor */ - volatile int ksnc_rx_ready; /* data ready to read */ + unsigned long ksnc_rx_ready; /* data ready to read */ int ksnc_rx_scheduled; /* being progressed */ int ksnc_rx_state; /* what is being read */ int ksnc_rx_nob_left; /* # bytes to next hdr/body */ @@ -257,7 +257,7 @@ typedef struct /* WRITER */ struct list_head ksnc_tx_list; /* where I enq waiting for output space */ struct list_head ksnc_tx_queue; /* packets waiting to be sent */ - volatile int ksnc_tx_ready; /* write space */ + unsigned long ksnc_tx_ready; /* write space */ int ksnc_tx_scheduled; /* being progressed */ } ksock_conn_t; diff --git a/lnet/klnds/socklnd/socklnd_cb.c b/lnet/klnds/socklnd/socklnd_cb.c index 388554d..3c805fd 100644 --- a/lnet/klnds/socklnd/socklnd_cb.c +++ b/lnet/klnds/socklnd/socklnd_cb.c @@ -141,7 +141,7 @@ ksocknal_dist(nal_cb_t *nal, ptl_nid_t nid, unsigned long *dist) ksock_ltx_t * ksocknal_get_ltx (int may_block) { - long flags; + unsigned long flags; ksock_ltx_t *ltx = NULL; for (;;) { @@ -253,7 +253,7 @@ ksocknal_send_iov (struct socket *sock, ksock_tx_t *tx, int more) mm_segment_t oldmm = get_fs(); set_fs (KERNEL_DS); - rc = sock->sk->prot->sendmsg(sock->sk, &msg, fragsize); + rc = sock_sendmsg(sock, &msg, fragsize); set_fs (oldmm); } @@ -322,7 +322,7 @@ ksocknal_send_kiov (struct socket *sock, ksock_tx_t *tx, int more) mm_segment_t oldmm = get_fs(); set_fs (KERNEL_DS); - rc = sock->sk->prot->sendmsg(sock->sk, &msg, fragsize); + rc = sock_sendmsg(sock, &msg, fragsize); set_fs (oldmm); kunmap (page); } @@ -527,7 +527,7 @@ ksocknal_zc_callback (zccd_t *zcd) void ksocknal_tx_done (ksock_tx_t *tx) { - long flags; + unsigned long flags; ksock_ltx_t *ltx; ENTRY; @@ -559,7 +559,7 @@ ksocknal_tx_done (ksock_tx_t *tx) } void -ksocknal_process_transmit (ksock_sched_t *sched, long *irq_flags) +ksocknal_process_transmit (ksock_sched_t *sched, unsigned long *irq_flags) { ksock_conn_t *conn; ksock_tx_t *tx; @@ -882,7 +882,7 @@ ksocknal_fmb_callback (void *arg, int error) ptl_hdr_t *hdr = (ptl_hdr_t *) page_address(fmb->fmb_pages[0]); ksock_conn_t *conn = NULL; ksock_sched_t *sched; - long flags; + unsigned long flags; if (error != 0) CERROR("Failed to route packet from "LPX64" to "LPX64": %d\n", @@ -930,7 +930,7 @@ ksocknal_get_idle_fmb (ksock_conn_t *conn) { int payload_nob = conn->ksnc_rx_nob_left; int packet_nob = sizeof (ptl_hdr_t) + payload_nob; - long flags; + unsigned long flags; ksock_fmb_pool_t *pool; ksock_fmb_t *fmb; @@ -1174,7 +1174,7 @@ ksocknal_new_packet (ksock_conn_t *conn, int nob_to_skip) } void -ksocknal_process_receive (ksock_sched_t *sched, long *irq_flags) +ksocknal_process_receive (ksock_sched_t *sched, unsigned long *irq_flags) { ksock_conn_t *conn; ksock_fmb_t *fmb; @@ -1296,6 +1296,7 @@ ksocknal_process_receive (ksock_sched_t *sched, long *irq_flags) goto out; /* (later) */ default: + break; } /* Not Reached */ diff --git a/lustre/portals/knals/Makefile.mk b/lustre/portals/knals/Makefile.mk index ce40a60..cd5d9d6 100644 --- a/lustre/portals/knals/Makefile.mk +++ b/lustre/portals/knals/Makefile.mk @@ -1,4 +1,4 @@ -include ../Kernelenv +include $(obj)/../Kernelenv obj-y = socknal/ -# more coming... \ No newline at end of file +# more coming... diff --git a/lustre/portals/knals/socknal/Makefile.mk b/lustre/portals/knals/socknal/Makefile.mk index 46edf01..afa92a7 100644 --- a/lustre/portals/knals/socknal/Makefile.mk +++ b/lustre/portals/knals/socknal/Makefile.mk @@ -3,7 +3,7 @@ # This code is issued under the GNU General Public License. # See the file COPYING in this distribution -include ../../Kernelenv +include $(obj)/../../Kernelenv obj-y += ksocknal.o ksocknal-objs := socknal.o socknal_cb.o diff --git a/lustre/portals/knals/socknal/socknal.c b/lustre/portals/knals/socknal/socknal.c index d15d8c8..9f4e9cf 100644 --- a/lustre/portals/knals/socknal/socknal.c +++ b/lustre/portals/knals/socknal/socknal.c @@ -295,7 +295,7 @@ error: int ksocknal_close_sock(ptl_nid_t nid) { - long flags; + unsigned long flags; ksock_conn_t *conn; LIST_HEAD (death_row); struct list_head *tmp; diff --git a/lustre/portals/knals/socknal/socknal.h b/lustre/portals/knals/socknal/socknal.h index 46ee3b7..2910937 100644 --- a/lustre/portals/knals/socknal/socknal.h +++ b/lustre/portals/knals/socknal/socknal.h @@ -241,7 +241,7 @@ typedef struct /* READER */ struct list_head ksnc_rx_list; /* where I enq waiting input or a forwarding descriptor */ - volatile int ksnc_rx_ready; /* data ready to read */ + unsigned long ksnc_rx_ready; /* data ready to read */ int ksnc_rx_scheduled; /* being progressed */ int ksnc_rx_state; /* what is being read */ int ksnc_rx_nob_left; /* # bytes to next hdr/body */ @@ -257,7 +257,7 @@ typedef struct /* WRITER */ struct list_head ksnc_tx_list; /* where I enq waiting for output space */ struct list_head ksnc_tx_queue; /* packets waiting to be sent */ - volatile int ksnc_tx_ready; /* write space */ + unsigned long ksnc_tx_ready; /* write space */ int ksnc_tx_scheduled; /* being progressed */ } ksock_conn_t; diff --git a/lustre/portals/knals/socknal/socknal_cb.c b/lustre/portals/knals/socknal/socknal_cb.c index 388554d..3c805fd 100644 --- a/lustre/portals/knals/socknal/socknal_cb.c +++ b/lustre/portals/knals/socknal/socknal_cb.c @@ -141,7 +141,7 @@ ksocknal_dist(nal_cb_t *nal, ptl_nid_t nid, unsigned long *dist) ksock_ltx_t * ksocknal_get_ltx (int may_block) { - long flags; + unsigned long flags; ksock_ltx_t *ltx = NULL; for (;;) { @@ -253,7 +253,7 @@ ksocknal_send_iov (struct socket *sock, ksock_tx_t *tx, int more) mm_segment_t oldmm = get_fs(); set_fs (KERNEL_DS); - rc = sock->sk->prot->sendmsg(sock->sk, &msg, fragsize); + rc = sock_sendmsg(sock, &msg, fragsize); set_fs (oldmm); } @@ -322,7 +322,7 @@ ksocknal_send_kiov (struct socket *sock, ksock_tx_t *tx, int more) mm_segment_t oldmm = get_fs(); set_fs (KERNEL_DS); - rc = sock->sk->prot->sendmsg(sock->sk, &msg, fragsize); + rc = sock_sendmsg(sock, &msg, fragsize); set_fs (oldmm); kunmap (page); } @@ -527,7 +527,7 @@ ksocknal_zc_callback (zccd_t *zcd) void ksocknal_tx_done (ksock_tx_t *tx) { - long flags; + unsigned long flags; ksock_ltx_t *ltx; ENTRY; @@ -559,7 +559,7 @@ ksocknal_tx_done (ksock_tx_t *tx) } void -ksocknal_process_transmit (ksock_sched_t *sched, long *irq_flags) +ksocknal_process_transmit (ksock_sched_t *sched, unsigned long *irq_flags) { ksock_conn_t *conn; ksock_tx_t *tx; @@ -882,7 +882,7 @@ ksocknal_fmb_callback (void *arg, int error) ptl_hdr_t *hdr = (ptl_hdr_t *) page_address(fmb->fmb_pages[0]); ksock_conn_t *conn = NULL; ksock_sched_t *sched; - long flags; + unsigned long flags; if (error != 0) CERROR("Failed to route packet from "LPX64" to "LPX64": %d\n", @@ -930,7 +930,7 @@ ksocknal_get_idle_fmb (ksock_conn_t *conn) { int payload_nob = conn->ksnc_rx_nob_left; int packet_nob = sizeof (ptl_hdr_t) + payload_nob; - long flags; + unsigned long flags; ksock_fmb_pool_t *pool; ksock_fmb_t *fmb; @@ -1174,7 +1174,7 @@ ksocknal_new_packet (ksock_conn_t *conn, int nob_to_skip) } void -ksocknal_process_receive (ksock_sched_t *sched, long *irq_flags) +ksocknal_process_receive (ksock_sched_t *sched, unsigned long *irq_flags) { ksock_conn_t *conn; ksock_fmb_t *fmb; @@ -1296,6 +1296,7 @@ ksocknal_process_receive (ksock_sched_t *sched, long *irq_flags) goto out; /* (later) */ default: + break; } /* Not Reached */ -- 1.8.3.1