Commit d2f7bf13 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] getdelays: various fixes

- Various cleanups

- Report errors to stderr, not stdout

- A printf was missing a \n and was hiding from me.

Cc: Jay Lan <jlan@sgi.com>
Cc: Shailabh Nagar <nagar@watson.ibm.com>
Cc: Balbir Singh <balbir@in.ibm.com>
Cc: Chris Sturtivant <csturtiv@sgi.com>
Cc: Tony Ernst <tee@sgi.com>
Cc: Guillaume Thouvenin <guillaume.thouvenin@bull.net>
Cc: David Wright <daw@sgi.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 4a7864ca
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
* Copyright (C) Balbir Singh, IBM Corp. 2006 * Copyright (C) Balbir Singh, IBM Corp. 2006
* Copyright (c) Jay Lan, SGI. 2006 * Copyright (c) Jay Lan, SGI. 2006
* *
* Compile with
* gcc -I/usr/src/linux/include getdelays.c -o getdelays
*/ */
#include <stdio.h> #include <stdio.h>
...@@ -35,13 +37,19 @@ ...@@ -35,13 +37,19 @@
#define NLA_DATA(na) ((void *)((char*)(na) + NLA_HDRLEN)) #define NLA_DATA(na) ((void *)((char*)(na) + NLA_HDRLEN))
#define NLA_PAYLOAD(len) (len - NLA_HDRLEN) #define NLA_PAYLOAD(len) (len - NLA_HDRLEN)
#define err(code, fmt, arg...) do { printf(fmt, ##arg); exit(code); } while (0) #define err(code, fmt, arg...) \
int done = 0; do { \
int rcvbufsz=0; fprintf(stderr, fmt, ##arg); \
exit(code); \
char name[100]; } while (0)
int dbg=0, print_delays=0;
int done;
int rcvbufsz;
char name[100];
int dbg;
int print_delays;
__u64 stime, utime; __u64 stime, utime;
#define PRINTF(fmt, arg...) { \ #define PRINTF(fmt, arg...) { \
if (dbg) { \ if (dbg) { \
printf(fmt, ##arg); \ printf(fmt, ##arg); \
...@@ -78,8 +86,9 @@ static int create_nl_socket(int protocol) ...@@ -78,8 +86,9 @@ static int create_nl_socket(int protocol)
if (rcvbufsz) if (rcvbufsz)
if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF,
&rcvbufsz, sizeof(rcvbufsz)) < 0) { &rcvbufsz, sizeof(rcvbufsz)) < 0) {
printf("Unable to set socket rcv buf size to %d\n", fprintf(stderr, "Unable to set socket rcv buf size "
rcvbufsz); "to %d\n",
rcvbufsz);
return -1; return -1;
} }
...@@ -277,7 +286,7 @@ int main(int argc, char *argv[]) ...@@ -277,7 +286,7 @@ int main(int argc, char *argv[])
mypid = getpid(); mypid = getpid();
id = get_family_id(nl_sd); id = get_family_id(nl_sd);
if (!id) { if (!id) {
printf("Error getting family id, errno %d", errno); fprintf(stderr, "Error getting family id, errno %d\n", errno);
goto err; goto err;
} }
PRINTF("family id %d\n", id); PRINTF("family id %d\n", id);
...@@ -288,7 +297,7 @@ int main(int argc, char *argv[]) ...@@ -288,7 +297,7 @@ int main(int argc, char *argv[])
&cpumask, strlen(cpumask) + 1); &cpumask, strlen(cpumask) + 1);
PRINTF("Sent register cpumask, retval %d\n", rc); PRINTF("Sent register cpumask, retval %d\n", rc);
if (rc < 0) { if (rc < 0) {
printf("error sending register cpumask\n"); fprintf(stderr, "error sending register cpumask\n");
goto err; goto err;
} }
} }
...@@ -298,7 +307,7 @@ int main(int argc, char *argv[]) ...@@ -298,7 +307,7 @@ int main(int argc, char *argv[])
cmd_type, &tid, sizeof(__u32)); cmd_type, &tid, sizeof(__u32));
PRINTF("Sent pid/tgid, retval %d\n", rc); PRINTF("Sent pid/tgid, retval %d\n", rc);
if (rc < 0) { if (rc < 0) {
printf("error sending tid/tgid cmd\n"); fprintf(stderr, "error sending tid/tgid cmd\n");
goto done; goto done;
} }
} }
...@@ -310,13 +319,15 @@ int main(int argc, char *argv[]) ...@@ -310,13 +319,15 @@ int main(int argc, char *argv[])
PRINTF("received %d bytes\n", rep_len); PRINTF("received %d bytes\n", rep_len);
if (rep_len < 0) { if (rep_len < 0) {
printf("nonfatal reply error: errno %d\n", errno); fprintf(stderr, "nonfatal reply error: errno %d\n",
errno);
continue; continue;
} }
if (msg.n.nlmsg_type == NLMSG_ERROR || if (msg.n.nlmsg_type == NLMSG_ERROR ||
!NLMSG_OK((&msg.n), rep_len)) { !NLMSG_OK((&msg.n), rep_len)) {
struct nlmsgerr *err = NLMSG_DATA(&msg); struct nlmsgerr *err = NLMSG_DATA(&msg);
printf("fatal reply error, errno %d\n", err->error); fprintf(stderr, "fatal reply error, errno %d\n",
err->error);
goto done; goto done;
} }
...@@ -365,7 +376,9 @@ int main(int argc, char *argv[]) ...@@ -365,7 +376,9 @@ int main(int argc, char *argv[])
goto done; goto done;
break; break;
default: default:
printf("Unknown nested nla_type %d\n", na->nla_type); fprintf(stderr, "Unknown nested"
" nla_type %d\n",
na->nla_type);
break; break;
} }
len2 += NLA_ALIGN(na->nla_len); len2 += NLA_ALIGN(na->nla_len);
...@@ -374,7 +387,8 @@ int main(int argc, char *argv[]) ...@@ -374,7 +387,8 @@ int main(int argc, char *argv[])
break; break;
default: default:
printf("Unknown nla_type %d\n", na->nla_type); fprintf(stderr, "Unknown nla_type %d\n",
na->nla_type);
break; break;
} }
na = (struct nlattr *) (GENLMSG_DATA(&msg) + len); na = (struct nlattr *) (GENLMSG_DATA(&msg) + len);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment