diff options
author | Ting Liu <b28495@freescale.com> | 2013-03-05 08:33:32 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-03-07 11:14:36 +0000 |
commit | 14cd284ce1b65d3ddd2aa2a15e0c1a8543cea27f (patch) | |
tree | 690279d277dae905971005ab06581d13532be0ae | |
parent | f4a10bbbf5a6e97a547921f0c32d58d659dbe5b3 (diff) | |
download | poky-14cd284ce1b65d3ddd2aa2a15e0c1a8543cea27f.tar.gz |
iproute2: Fix build failure on ppc64
Backport three patches from upstream for ppc64:
http://git.kernel.org/cgit/linux/kernel/git/shemminger/iproute2.git
ae70d96 ipntable: more fixes for ppc64
a55a8fd fix dependency on sizeof(__u64) == sizeof(unsigned long long)
a7c2882 ip: fix ipv6 ntable on ppc64
(From OE-Core rev: 041f784c06403e1d418be677fd15ea159c3bf90d)
Signed-off-by: Ting Liu <b28495@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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" |