selftests: net: Use size_t and ssize_t for counting file size
authorMasami Hiramatsu <mhiramat@kernel.org>
Wed, 23 Oct 2019 04:57:58 +0000 (13:57 +0900)
committerShuah Khan <skhan@linuxfoundation.org>
Thu, 7 Nov 2019 21:53:50 +0000 (14:53 -0700)
Use size_t and ssize_t correctly for counting send file size
instead of unsigned long and long, because long is 32bit on
32bit arch, which is not enough for counting long file size (>4GB).

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Eric Dumazet <edumazet@google.com>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/selftests/net/tcp_mmap.c

index 31ced79..33035d1 100644 (file)
@@ -71,7 +71,7 @@
 #define MSG_ZEROCOPY    0x4000000
 #endif
 
-#define FILE_SZ (1UL << 35)
+#define FILE_SZ (1ULL << 35)
 static int cfg_family = AF_INET6;
 static socklen_t cfg_alen = sizeof(struct sockaddr_in6);
 static int cfg_port = 8787;
@@ -155,7 +155,7 @@ void *child_thread(void *arg)
                        socklen_t zc_len = sizeof(zc);
                        int res;
 
-                       zc.address = (__u64)addr;
+                       zc.address = (__u64)((unsigned long)addr);
                        zc.length = chunk_size;
                        zc.recv_skip_hint = 0;
                        res = getsockopt(fd, IPPROTO_TCP, TCP_ZEROCOPY_RECEIVE,
@@ -302,7 +302,7 @@ int main(int argc, char *argv[])
 {
        struct sockaddr_storage listenaddr, addr;
        unsigned int max_pacing_rate = 0;
-       unsigned long total = 0;
+       size_t total = 0;
        char *host = NULL;
        int fd, c, on = 1;
        char *buffer;
@@ -417,7 +417,7 @@ int main(int argc, char *argv[])
                zflg = 0;
        }
        while (total < FILE_SZ) {
-               long wr = FILE_SZ - total;
+               ssize_t wr = FILE_SZ - total;
 
                if (wr > chunk_size)
                        wr = chunk_size;