diff options
4 files changed, 427 insertions, 1 deletions
diff --git a/meta/recipes-connectivity/iproute2/iproute2/0001-ip-fix-ipv6-ntable-on-ppc64.patch b/meta/recipes-connectivity/iproute2/iproute2/0001-ip-fix-ipv6-ntable-on-ppc64.patch new file mode 100644 index 0000000000..b5cbf9514e --- /dev/null +++ b/meta/recipes-connectivity/iproute2/iproute2/0001-ip-fix-ipv6-ntable-on-ppc64.patch | |||
| @@ -0,0 +1,142 @@ | |||
| 1 | Upstream-Status: Backport | ||
| 2 | |||
| 3 | From a7c2882461581747488e5aabf10d19b46b371a01 Mon Sep 17 00:00:00 2001 | ||
| 4 | From: Stephen Hemminger <stephen@networkplumber.org> | ||
| 5 | Date: Wed, 27 Feb 2013 07:26:17 -0800 | ||
| 6 | Subject: [PATCH] ip: fix ipv6 ntable on ppc64 | ||
| 7 | |||
| 8 | Add casts to handle printf format when | ||
| 9 | sizeof(unsigned long long) != sizeof(__u64) | ||
| 10 | --- | ||
| 11 | ip/ipntable.c | 56 +++++++++++++++++++++++++++++++++++++------------------- | ||
| 12 | 1 file changed, 37 insertions(+), 19 deletions(-) | ||
| 13 | |||
| 14 | diff --git a/ip/ipntable.c b/ip/ipntable.c | ||
| 15 | index 5751114..56ad001 100644 | ||
| 16 | --- a/ip/ipntable.c | ||
| 17 | +++ b/ip/ipntable.c | ||
| 18 | @@ -432,7 +432,7 @@ int print_ntable(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) | ||
| 19 | } | ||
| 20 | if (tb[NDTA_GC_INTERVAL]) { | ||
| 21 | __u64 gc_int = rta_getattr_u64(tb[NDTA_GC_INTERVAL]); | ||
| 22 | - fprintf(fp, "gc_int %llu ", gc_int); | ||
| 23 | + fprintf(fp, "gc_int %llu ", (unsigned long long) gc_int); | ||
| 24 | } | ||
| 25 | |||
| 26 | if (ret) | ||
| 27 | @@ -485,15 +485,18 @@ int print_ntable(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) | ||
| 28 | } | ||
| 29 | if (tpb[NDTPA_REACHABLE_TIME]) { | ||
| 30 | __u64 reachable = rta_getattr_u64(tpb[NDTPA_REACHABLE_TIME]); | ||
| 31 | - fprintf(fp, "reachable %llu ", reachable); | ||
| 32 | + fprintf(fp, "reachable %llu ", | ||
| 33 | + (unsigned long long) reachable); | ||
| 34 | } | ||
| 35 | if (tpb[NDTPA_BASE_REACHABLE_TIME]) { | ||
| 36 | __u64 breachable = rta_getattr_u64(tpb[NDTPA_BASE_REACHABLE_TIME]); | ||
| 37 | - fprintf(fp, "base_reachable %llu ", breachable); | ||
| 38 | + fprintf(fp, "base_reachable %llu ", | ||
| 39 | + (unsigned long long) breachable); | ||
| 40 | } | ||
| 41 | if (tpb[NDTPA_RETRANS_TIME]) { | ||
| 42 | __u64 retrans = rta_getattr_u64(tpb[NDTPA_RETRANS_TIME]); | ||
| 43 | - fprintf(fp, "retrans %llu ", retrans); | ||
| 44 | + fprintf(fp, "retrans %llu ", | ||
| 45 | + (unsigned long long) retrans); | ||
| 46 | } | ||
| 47 | |||
| 48 | fprintf(fp, "%s", _SL_); | ||
| 49 | @@ -502,11 +505,13 @@ int print_ntable(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) | ||
| 50 | |||
| 51 | if (tpb[NDTPA_GC_STALETIME]) { | ||
| 52 | __u64 gc_stale = rta_getattr_u64(tpb[NDTPA_GC_STALETIME]); | ||
| 53 | - fprintf(fp, "gc_stale %llu ", gc_stale); | ||
| 54 | + fprintf(fp, "gc_stale %llu ", | ||
| 55 | + (unsigned long long) gc_stale); | ||
| 56 | } | ||
| 57 | if (tpb[NDTPA_DELAY_PROBE_TIME]) { | ||
| 58 | __u64 delay_probe = rta_getattr_u64(tpb[NDTPA_DELAY_PROBE_TIME]); | ||
| 59 | - fprintf(fp, "delay_probe %llu ", delay_probe); | ||
| 60 | + fprintf(fp, "delay_probe %llu ", | ||
| 61 | + (unsigned long long) delay_probe); | ||
| 62 | } | ||
| 63 | if (tpb[NDTPA_QUEUE_LEN]) { | ||
| 64 | __u32 queue = rta_getattr_u32(tpb[NDTPA_QUEUE_LEN]); | ||
| 65 | @@ -536,11 +541,13 @@ int print_ntable(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) | ||
| 66 | |||
| 67 | if (tpb[NDTPA_ANYCAST_DELAY]) { | ||
| 68 | __u64 anycast_delay = rta_getattr_u64(tpb[NDTPA_ANYCAST_DELAY]); | ||
| 69 | - fprintf(fp, "anycast_delay %llu ", anycast_delay); | ||
| 70 | + fprintf(fp, "anycast_delay %llu ", | ||
| 71 | + (unsigned long long) anycast_delay); | ||
| 72 | } | ||
| 73 | if (tpb[NDTPA_PROXY_DELAY]) { | ||
| 74 | __u64 proxy_delay = rta_getattr_u64(tpb[NDTPA_PROXY_DELAY]); | ||
| 75 | - fprintf(fp, "proxy_delay %llu ", proxy_delay); | ||
| 76 | + fprintf(fp, "proxy_delay %llu ", | ||
| 77 | + (unsigned long long) proxy_delay); | ||
| 78 | } | ||
| 79 | if (tpb[NDTPA_PROXY_QLEN]) { | ||
| 80 | __u32 pqueue = rta_getattr_u32(tpb[NDTPA_PROXY_QLEN]); | ||
| 81 | @@ -548,7 +555,8 @@ int print_ntable(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) | ||
| 82 | } | ||
| 83 | if (tpb[NDTPA_LOCKTIME]) { | ||
| 84 | __u64 locktime = rta_getattr_u64(tpb[NDTPA_LOCKTIME]); | ||
| 85 | - fprintf(fp, "locktime %llu ", locktime); | ||
| 86 | + fprintf(fp, "locktime %llu ", | ||
| 87 | + (unsigned long long) locktime); | ||
| 88 | } | ||
| 89 | |||
| 90 | fprintf(fp, "%s", _SL_); | ||
| 91 | @@ -560,28 +568,38 @@ int print_ntable(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) | ||
| 92 | fprintf(fp, " "); | ||
| 93 | fprintf(fp, "stats "); | ||
| 94 | |||
| 95 | - fprintf(fp, "allocs %llu ", ndts->ndts_allocs); | ||
| 96 | - fprintf(fp, "destroys %llu ", ndts->ndts_destroys); | ||
| 97 | - fprintf(fp, "hash_grows %llu ", ndts->ndts_hash_grows); | ||
| 98 | + fprintf(fp, "allocs %llu ", | ||
| 99 | + (unsigned long long) ndts->ndts_allocs); | ||
| 100 | + fprintf(fp, "destroys %llu ", | ||
| 101 | + (unsigned long long) ndts->ndts_destroys); | ||
| 102 | + fprintf(fp, "hash_grows %llu ", | ||
| 103 | + (unsigned long long) ndts->ndts_hash_grows); | ||
| 104 | |||
| 105 | fprintf(fp, "%s", _SL_); | ||
| 106 | fprintf(fp, " "); | ||
| 107 | |||
| 108 | - fprintf(fp, "res_failed %llu ", ndts->ndts_res_failed); | ||
| 109 | - fprintf(fp, "lookups %llu ", ndts->ndts_lookups); | ||
| 110 | - fprintf(fp, "hits %llu ", ndts->ndts_hits); | ||
| 111 | + fprintf(fp, "res_failed %llu ", | ||
| 112 | + (unsigned long long) ndts->ndts_res_failed); | ||
| 113 | + fprintf(fp, "lookups %llu ", | ||
| 114 | + (unsigned long long) ndts->ndts_lookups); | ||
| 115 | + fprintf(fp, "hits %llu ", | ||
| 116 | + (unsigned long long) ndts->ndts_hits); | ||
| 117 | |||
| 118 | fprintf(fp, "%s", _SL_); | ||
| 119 | fprintf(fp, " "); | ||
| 120 | |||
| 121 | - fprintf(fp, "rcv_probes_mcast %llu ", ndts->ndts_rcv_probes_mcast); | ||
| 122 | - fprintf(fp, "rcv_probes_ucast %llu ", ndts->ndts_rcv_probes_ucast); | ||
| 123 | + fprintf(fp, "rcv_probes_mcast %llu ", | ||
| 124 | + (unsigned long long) ndts->ndts_rcv_probes_mcast); | ||
| 125 | + fprintf(fp, "rcv_probes_ucast %llu ", | ||
| 126 | + (unsigned long long) ndts->ndts_rcv_probes_ucast); | ||
| 127 | |||
| 128 | fprintf(fp, "%s", _SL_); | ||
| 129 | fprintf(fp, " "); | ||
| 130 | |||
| 131 | - fprintf(fp, "periodic_gc_runs %llu ", ndts->ndts_periodic_gc_runs); | ||
| 132 | - fprintf(fp, "forced_gc_runs %llu ", ndts->ndts_forced_gc_runs); | ||
| 133 | + fprintf(fp, "periodic_gc_runs %llu ", | ||
| 134 | + (unsigned long long) ndts->ndts_periodic_gc_runs); | ||
| 135 | + fprintf(fp, "forced_gc_runs %llu ", | ||
| 136 | + (unsigned long long) ndts->ndts_forced_gc_runs); | ||
| 137 | |||
| 138 | fprintf(fp, "%s", _SL_); | ||
| 139 | } | ||
| 140 | -- | ||
| 141 | 1.7.9.7 | ||
| 142 | |||
diff --git a/meta/recipes-connectivity/iproute2/iproute2/0003-fix-dependency-on-sizeof-__u64-sizeof-unsigned-long-.patch b/meta/recipes-connectivity/iproute2/iproute2/0003-fix-dependency-on-sizeof-__u64-sizeof-unsigned-long-.patch new file mode 100644 index 0000000000..a5af49f84e --- /dev/null +++ b/meta/recipes-connectivity/iproute2/iproute2/0003-fix-dependency-on-sizeof-__u64-sizeof-unsigned-long-.patch | |||
| @@ -0,0 +1,213 @@ | |||
| 1 | Upstream-Status: Backport | ||
| 2 | |||
| 3 | From a55a8fd83be9d91bd2adb73eebac8833a51b626f Mon Sep 17 00:00:00 2001 | ||
| 4 | From: Stephen Hemminger <stephen@networkplumber.org> | ||
| 5 | Date: Thu, 28 Feb 2013 08:51:46 -0800 | ||
| 6 | Subject: [PATCH] fix dependency on sizeof(__u64) == sizeof(unsigned long | ||
| 7 | long) | ||
| 8 | |||
| 9 | Some platforms like ppc64 have unsigned long long as 128 bits, and | ||
| 10 | the printf format string would cause errors. Resolve this by using | ||
| 11 | unsigned long long where necessary (or unsigned long). | ||
| 12 | --- | ||
| 13 | ip/ipntable.c | 74 +++++++++++++++++++++--------------------------------- | ||
| 14 | ip/tcp_metrics.c | 13 +++++----- | ||
| 15 | 2 files changed, 35 insertions(+), 52 deletions(-) | ||
| 16 | |||
| 17 | diff --git a/ip/ipntable.c b/ip/ipntable.c | ||
| 18 | index 56ad001..a1a3c26 100644 | ||
| 19 | --- a/ip/ipntable.c | ||
| 20 | +++ b/ip/ipntable.c | ||
| 21 | @@ -431,8 +431,8 @@ int print_ntable(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) | ||
| 22 | fprintf(fp, "thresh3 %u ", thresh3); | ||
| 23 | } | ||
| 24 | if (tb[NDTA_GC_INTERVAL]) { | ||
| 25 | - __u64 gc_int = rta_getattr_u64(tb[NDTA_GC_INTERVAL]); | ||
| 26 | - fprintf(fp, "gc_int %llu ", (unsigned long long) gc_int); | ||
| 27 | + unsigned long long gc_int = rta_getattr_u64(tb[NDTA_GC_INTERVAL]); | ||
| 28 | + fprintf(fp, "gc_int %llu ", gc_int); | ||
| 29 | } | ||
| 30 | |||
| 31 | if (ret) | ||
| 32 | @@ -484,19 +484,16 @@ int print_ntable(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) | ||
| 33 | fprintf(fp, "refcnt %u ", refcnt); | ||
| 34 | } | ||
| 35 | if (tpb[NDTPA_REACHABLE_TIME]) { | ||
| 36 | - __u64 reachable = rta_getattr_u64(tpb[NDTPA_REACHABLE_TIME]); | ||
| 37 | - fprintf(fp, "reachable %llu ", | ||
| 38 | - (unsigned long long) reachable); | ||
| 39 | + unsigned long long reachable = rta_getattr_u64(tpb[NDTPA_REACHABLE_TIME]); | ||
| 40 | + fprintf(fp, "reachable %llu ", reachable); | ||
| 41 | } | ||
| 42 | if (tpb[NDTPA_BASE_REACHABLE_TIME]) { | ||
| 43 | - __u64 breachable = rta_getattr_u64(tpb[NDTPA_BASE_REACHABLE_TIME]); | ||
| 44 | - fprintf(fp, "base_reachable %llu ", | ||
| 45 | - (unsigned long long) breachable); | ||
| 46 | + unsigned long long breachable = rta_getattr_u64(tpb[NDTPA_BASE_REACHABLE_TIME]); | ||
| 47 | + fprintf(fp, "base_reachable %llu ", breachable); | ||
| 48 | } | ||
| 49 | if (tpb[NDTPA_RETRANS_TIME]) { | ||
| 50 | - __u64 retrans = rta_getattr_u64(tpb[NDTPA_RETRANS_TIME]); | ||
| 51 | - fprintf(fp, "retrans %llu ", | ||
| 52 | - (unsigned long long) retrans); | ||
| 53 | + unsigned long long retrans = rta_getattr_u64(tpb[NDTPA_RETRANS_TIME]); | ||
| 54 | + fprintf(fp, "retrans %llu ", retrans); | ||
| 55 | } | ||
| 56 | |||
| 57 | fprintf(fp, "%s", _SL_); | ||
| 58 | @@ -504,14 +501,12 @@ int print_ntable(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) | ||
| 59 | fprintf(fp, " "); | ||
| 60 | |||
| 61 | if (tpb[NDTPA_GC_STALETIME]) { | ||
| 62 | - __u64 gc_stale = rta_getattr_u64(tpb[NDTPA_GC_STALETIME]); | ||
| 63 | - fprintf(fp, "gc_stale %llu ", | ||
| 64 | - (unsigned long long) gc_stale); | ||
| 65 | + unsigned long long gc_stale = rta_getattr_u64(tpb[NDTPA_GC_STALETIME]); | ||
| 66 | + fprintf(fp, "gc_stale %llu ", gc_stale); | ||
| 67 | } | ||
| 68 | if (tpb[NDTPA_DELAY_PROBE_TIME]) { | ||
| 69 | - __u64 delay_probe = rta_getattr_u64(tpb[NDTPA_DELAY_PROBE_TIME]); | ||
| 70 | - fprintf(fp, "delay_probe %llu ", | ||
| 71 | - (unsigned long long) delay_probe); | ||
| 72 | + unsigned long long delay_probe = rta_getattr_u64(tpb[NDTPA_DELAY_PROBE_TIME]); | ||
| 73 | + fprintf(fp, "delay_probe %llu ", delay_probe); | ||
| 74 | } | ||
| 75 | if (tpb[NDTPA_QUEUE_LEN]) { | ||
| 76 | __u32 queue = rta_getattr_u32(tpb[NDTPA_QUEUE_LEN]); | ||
| 77 | @@ -540,23 +535,20 @@ int print_ntable(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) | ||
| 78 | fprintf(fp, " "); | ||
| 79 | |||
| 80 | if (tpb[NDTPA_ANYCAST_DELAY]) { | ||
| 81 | - __u64 anycast_delay = rta_getattr_u64(tpb[NDTPA_ANYCAST_DELAY]); | ||
| 82 | - fprintf(fp, "anycast_delay %llu ", | ||
| 83 | - (unsigned long long) anycast_delay); | ||
| 84 | + unsigned long long anycast_delay = rta_getattr_u64(tpb[NDTPA_ANYCAST_DELAY]); | ||
| 85 | + fprintf(fp, "anycast_delay %llu ", anycast_delay); | ||
| 86 | } | ||
| 87 | if (tpb[NDTPA_PROXY_DELAY]) { | ||
| 88 | - __u64 proxy_delay = rta_getattr_u64(tpb[NDTPA_PROXY_DELAY]); | ||
| 89 | - fprintf(fp, "proxy_delay %llu ", | ||
| 90 | - (unsigned long long) proxy_delay); | ||
| 91 | + unsigned long long proxy_delay = rta_getattr_u64(tpb[NDTPA_PROXY_DELAY]); | ||
| 92 | + fprintf(fp, "proxy_delay %llu ", proxy_delay); | ||
| 93 | } | ||
| 94 | if (tpb[NDTPA_PROXY_QLEN]) { | ||
| 95 | __u32 pqueue = rta_getattr_u32(tpb[NDTPA_PROXY_QLEN]); | ||
| 96 | fprintf(fp, "proxy_queue %u ", pqueue); | ||
| 97 | } | ||
| 98 | if (tpb[NDTPA_LOCKTIME]) { | ||
| 99 | - __u64 locktime = rta_getattr_u64(tpb[NDTPA_LOCKTIME]); | ||
| 100 | - fprintf(fp, "locktime %llu ", | ||
| 101 | - (unsigned long long) locktime); | ||
| 102 | + unsigned long long locktime = rta_getattr_u64(tpb[NDTPA_LOCKTIME]); | ||
| 103 | + fprintf(fp, "locktime %llu ", locktime); | ||
| 104 | } | ||
| 105 | |||
| 106 | fprintf(fp, "%s", _SL_); | ||
| 107 | @@ -568,38 +560,28 @@ int print_ntable(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) | ||
| 108 | fprintf(fp, " "); | ||
| 109 | fprintf(fp, "stats "); | ||
| 110 | |||
| 111 | - fprintf(fp, "allocs %llu ", | ||
| 112 | - (unsigned long long) ndts->ndts_allocs); | ||
| 113 | - fprintf(fp, "destroys %llu ", | ||
| 114 | - (unsigned long long) ndts->ndts_destroys); | ||
| 115 | - fprintf(fp, "hash_grows %llu ", | ||
| 116 | - (unsigned long long) ndts->ndts_hash_grows); | ||
| 117 | + fprintf(fp, "allocs %llu ", ndts->ndts_allocs); | ||
| 118 | + fprintf(fp, "destroys %llu ", ndts->ndts_destroys); | ||
| 119 | + fprintf(fp, "hash_grows %llu ", ndts->ndts_hash_grows); | ||
| 120 | |||
| 121 | fprintf(fp, "%s", _SL_); | ||
| 122 | fprintf(fp, " "); | ||
| 123 | |||
| 124 | - fprintf(fp, "res_failed %llu ", | ||
| 125 | - (unsigned long long) ndts->ndts_res_failed); | ||
| 126 | - fprintf(fp, "lookups %llu ", | ||
| 127 | - (unsigned long long) ndts->ndts_lookups); | ||
| 128 | - fprintf(fp, "hits %llu ", | ||
| 129 | - (unsigned long long) ndts->ndts_hits); | ||
| 130 | + fprintf(fp, "res_failed %llu ", ndts->ndts_res_failed); | ||
| 131 | + fprintf(fp, "lookups %llu ", ndts->ndts_lookups); | ||
| 132 | + fprintf(fp, "hits %llu ", ndts->ndts_hits); | ||
| 133 | |||
| 134 | fprintf(fp, "%s", _SL_); | ||
| 135 | fprintf(fp, " "); | ||
| 136 | |||
| 137 | - fprintf(fp, "rcv_probes_mcast %llu ", | ||
| 138 | - (unsigned long long) ndts->ndts_rcv_probes_mcast); | ||
| 139 | - fprintf(fp, "rcv_probes_ucast %llu ", | ||
| 140 | - (unsigned long long) ndts->ndts_rcv_probes_ucast); | ||
| 141 | + fprintf(fp, "rcv_probes_mcast %llu ", ndts->ndts_rcv_probes_mcast); | ||
| 142 | + fprintf(fp, "rcv_probes_ucast %llu ", ndts->ndts_rcv_probes_ucast); | ||
| 143 | |||
| 144 | fprintf(fp, "%s", _SL_); | ||
| 145 | fprintf(fp, " "); | ||
| 146 | |||
| 147 | - fprintf(fp, "periodic_gc_runs %llu ", | ||
| 148 | - (unsigned long long) ndts->ndts_periodic_gc_runs); | ||
| 149 | - fprintf(fp, "forced_gc_runs %llu ", | ||
| 150 | - (unsigned long long) ndts->ndts_forced_gc_runs); | ||
| 151 | + fprintf(fp, "periodic_gc_runs %llu ", ndts->ndts_periodic_gc_runs); | ||
| 152 | + fprintf(fp, "forced_gc_runs %llu ", ndts->ndts_forced_gc_runs); | ||
| 153 | |||
| 154 | fprintf(fp, "%s", _SL_); | ||
| 155 | } | ||
| 156 | diff --git a/ip/tcp_metrics.c b/ip/tcp_metrics.c | ||
| 157 | index a01e1fb..c6be3c9 100644 | ||
| 158 | --- a/ip/tcp_metrics.c | ||
| 159 | +++ b/ip/tcp_metrics.c | ||
| 160 | @@ -166,7 +166,7 @@ static int process_msg(const struct sockaddr_nl *who, struct nlmsghdr *n, | ||
| 161 | |||
| 162 | a = attrs[TCP_METRICS_ATTR_AGE]; | ||
| 163 | if (a) { | ||
| 164 | - __u64 val = rta_getattr_u64(a); | ||
| 165 | + unsigned long long val = rta_getattr_u64(a); | ||
| 166 | |||
| 167 | fprintf(fp, " age %llu.%03llusec", | ||
| 168 | val / 1000, val % 1000); | ||
| 169 | @@ -189,7 +189,7 @@ static int process_msg(const struct sockaddr_nl *who, struct nlmsghdr *n, | ||
| 170 | parse_rtattr_nested(m, TCP_METRIC_MAX + 1, a); | ||
| 171 | |||
| 172 | for (i = 0; i < TCP_METRIC_MAX + 1; i++) { | ||
| 173 | - __u32 val; | ||
| 174 | + unsigned long val; | ||
| 175 | |||
| 176 | a = m[i + 1]; | ||
| 177 | if (!a) | ||
| 178 | @@ -198,19 +198,20 @@ static int process_msg(const struct sockaddr_nl *who, struct nlmsghdr *n, | ||
| 179 | fprintf(fp, " %s ", metric_name[i]); | ||
| 180 | else | ||
| 181 | fprintf(fp, " metric_%d ", i); | ||
| 182 | + | ||
| 183 | val = rta_getattr_u32(a); | ||
| 184 | switch (i) { | ||
| 185 | case TCP_METRIC_RTT: | ||
| 186 | - fprintf(fp, "%lluus", (val * 1000ULL) >> 3); | ||
| 187 | + fprintf(fp, "%luus", (val * 1000UL) >> 3); | ||
| 188 | break; | ||
| 189 | case TCP_METRIC_RTTVAR: | ||
| 190 | - fprintf(fp, "%lluus", (val * 1000ULL) >> 2); | ||
| 191 | + fprintf(fp, "%luus", (val * 1000UL) >> 2); | ||
| 192 | break; | ||
| 193 | case TCP_METRIC_SSTHRESH: | ||
| 194 | case TCP_METRIC_CWND: | ||
| 195 | case TCP_METRIC_REORDERING: | ||
| 196 | default: | ||
| 197 | - fprintf(fp, "%u", val); | ||
| 198 | + fprintf(fp, "%lu", val); | ||
| 199 | break; | ||
| 200 | } | ||
| 201 | } | ||
| 202 | @@ -223,7 +224,7 @@ static int process_msg(const struct sockaddr_nl *who, struct nlmsghdr *n, | ||
| 203 | a = attrs[TCP_METRICS_ATTR_FOPEN_SYN_DROPS]; | ||
| 204 | if (a) { | ||
| 205 | __u16 syn_loss = rta_getattr_u16(a); | ||
| 206 | - __u64 ts; | ||
| 207 | + unsigned long long ts; | ||
| 208 | |||
| 209 | a = attrs[TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS]; | ||
| 210 | ts = a ? rta_getattr_u64(a) : 0; | ||
| 211 | -- | ||
| 212 | 1.7.9.7 | ||
| 213 | |||
diff --git a/meta/recipes-connectivity/iproute2/iproute2/0004-ipntable-more-fixes-for-ppc64.patch b/meta/recipes-connectivity/iproute2/iproute2/0004-ipntable-more-fixes-for-ppc64.patch new file mode 100644 index 0000000000..e841709867 --- /dev/null +++ b/meta/recipes-connectivity/iproute2/iproute2/0004-ipntable-more-fixes-for-ppc64.patch | |||
| @@ -0,0 +1,68 @@ | |||
| 1 | Upstream-Status: Backport | ||
| 2 | |||
| 3 | From ae70d9665615ae723a108947aa60b5f65caffab2 Mon Sep 17 00:00:00 2001 | ||
| 4 | From: Stephen Hemminger <stephen@networkplumber.org> | ||
| 5 | Date: Mon, 4 Mar 2013 13:59:39 -0800 | ||
| 6 | Subject: [PATCH] ipntable: more fixes for ppc64 | ||
| 7 | |||
| 8 | Not all arch have sizeof(unsigned long long) == sizeof(__u64) | ||
| 9 | --- | ||
| 10 | ip/ipntable.c | 30 ++++++++++++++++++++---------- | ||
| 11 | 1 file changed, 20 insertions(+), 10 deletions(-) | ||
| 12 | |||
| 13 | diff --git a/ip/ipntable.c b/ip/ipntable.c | ||
| 14 | index a1a3c26..67b199e 100644 | ||
| 15 | --- a/ip/ipntable.c | ||
| 16 | +++ b/ip/ipntable.c | ||
| 17 | @@ -560,28 +560,38 @@ int print_ntable(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) | ||
| 18 | fprintf(fp, " "); | ||
| 19 | fprintf(fp, "stats "); | ||
| 20 | |||
| 21 | - fprintf(fp, "allocs %llu ", ndts->ndts_allocs); | ||
| 22 | - fprintf(fp, "destroys %llu ", ndts->ndts_destroys); | ||
| 23 | - fprintf(fp, "hash_grows %llu ", ndts->ndts_hash_grows); | ||
| 24 | + fprintf(fp, "allocs %llu ", | ||
| 25 | + (unsigned long long) ndts->ndts_allocs); | ||
| 26 | + fprintf(fp, "destroys %llu ", | ||
| 27 | + (unsigned long long) ndts->ndts_destroys); | ||
| 28 | + fprintf(fp, "hash_grows %llu ", | ||
| 29 | + (unsigned long long) ndts->ndts_hash_grows); | ||
| 30 | |||
| 31 | fprintf(fp, "%s", _SL_); | ||
| 32 | fprintf(fp, " "); | ||
| 33 | |||
| 34 | - fprintf(fp, "res_failed %llu ", ndts->ndts_res_failed); | ||
| 35 | - fprintf(fp, "lookups %llu ", ndts->ndts_lookups); | ||
| 36 | - fprintf(fp, "hits %llu ", ndts->ndts_hits); | ||
| 37 | + fprintf(fp, "res_failed %llu ", | ||
| 38 | + (unsigned long long) ndts->ndts_res_failed); | ||
| 39 | + fprintf(fp, "lookups %llu ", | ||
| 40 | + (unsigned long long) ndts->ndts_lookups); | ||
| 41 | + fprintf(fp, "hits %llu ", | ||
| 42 | + (unsigned long long) ndts->ndts_hits); | ||
| 43 | |||
| 44 | fprintf(fp, "%s", _SL_); | ||
| 45 | fprintf(fp, " "); | ||
| 46 | |||
| 47 | - fprintf(fp, "rcv_probes_mcast %llu ", ndts->ndts_rcv_probes_mcast); | ||
| 48 | - fprintf(fp, "rcv_probes_ucast %llu ", ndts->ndts_rcv_probes_ucast); | ||
| 49 | + fprintf(fp, "rcv_probes_mcast %llu ", | ||
| 50 | + (unsigned long long) ndts->ndts_rcv_probes_mcast); | ||
| 51 | + fprintf(fp, "rcv_probes_ucast %llu ", | ||
| 52 | + (unsigned long long) ndts->ndts_rcv_probes_ucast); | ||
| 53 | |||
| 54 | fprintf(fp, "%s", _SL_); | ||
| 55 | fprintf(fp, " "); | ||
| 56 | |||
| 57 | - fprintf(fp, "periodic_gc_runs %llu ", ndts->ndts_periodic_gc_runs); | ||
| 58 | - fprintf(fp, "forced_gc_runs %llu ", ndts->ndts_forced_gc_runs); | ||
| 59 | + fprintf(fp, "periodic_gc_runs %llu ", | ||
| 60 | + (unsigned long long) ndts->ndts_periodic_gc_runs); | ||
| 61 | + fprintf(fp, "forced_gc_runs %llu ", | ||
| 62 | + (unsigned long long) ndts->ndts_forced_gc_runs); | ||
| 63 | |||
| 64 | fprintf(fp, "%s", _SL_); | ||
| 65 | } | ||
| 66 | -- | ||
| 67 | 1.7.9.7 | ||
| 68 | |||
diff --git a/meta/recipes-connectivity/iproute2/iproute2_3.8.0.bb b/meta/recipes-connectivity/iproute2/iproute2_3.8.0.bb index 892d230062..65164cba60 100644 --- a/meta/recipes-connectivity/iproute2/iproute2_3.8.0.bb +++ b/meta/recipes-connectivity/iproute2/iproute2_3.8.0.bb | |||
| @@ -1,10 +1,13 @@ | |||
| 1 | require iproute2.inc | 1 | require iproute2.inc |
| 2 | 2 | ||
| 3 | PR = "r1" | 3 | PR = "r2" |
| 4 | 4 | ||
| 5 | SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BPN}-${PV}.tar.xz \ | 5 | SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BPN}-${PV}.tar.xz \ |
| 6 | file://configure-cross.patch \ | 6 | file://configure-cross.patch \ |
| 7 | file://0001-Fix-compilation-error-of-m_ipt.c-with-Werror-enabled.patch \ | 7 | file://0001-Fix-compilation-error-of-m_ipt.c-with-Werror-enabled.patch \ |
| 8 | file://0001-ip-fix-ipv6-ntable-on-ppc64.patch \ | ||
| 9 | file://0003-fix-dependency-on-sizeof-__u64-sizeof-unsigned-long-.patch \ | ||
| 10 | file://0004-ipntable-more-fixes-for-ppc64.patch \ | ||
| 8 | " | 11 | " |
| 9 | 12 | ||
| 10 | SRC_URI[md5sum] = "951622fd770428116dc165acba375414" | 13 | SRC_URI[md5sum] = "951622fd770428116dc165acba375414" |
