/[linux-patches]/genpatches-2.6/tags/3.0-30/1025_linux-3.0.26.patch
Gentoo

Contents of /genpatches-2.6/tags/3.0-30/1025_linux-3.0.26.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2206 - (show annotations) (download)
Mon Sep 17 18:58:14 2012 UTC (22 months ago) by mpagano
File size: 6660 byte(s)
3.0-30 release
1 diff --git a/Makefile b/Makefile
2 index 0fb2b58..a04eef4 100644
3 --- a/Makefile
4 +++ b/Makefile
5 @@ -1,6 +1,6 @@
6 VERSION = 3
7 PATCHLEVEL = 0
8 -SUBLEVEL = 25
9 +SUBLEVEL = 26
10 EXTRAVERSION =
11 NAME = Sneaky Weasel
12
13 diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c
14 index db092d7..53a6be7 100644
15 --- a/arch/powerpc/platforms/powermac/smp.c
16 +++ b/arch/powerpc/platforms/powermac/smp.c
17 @@ -414,7 +414,7 @@ static struct irqaction psurge_irqaction = {
18
19 static void __init smp_psurge_setup_cpu(int cpu_nr)
20 {
21 - if (cpu_nr != 0)
22 + if (cpu_nr != 0 || !psurge_start)
23 return;
24
25 /* reset the entry point so if we get another intr we won't
26 diff --git a/drivers/net/wireless/iwlegacy/iwl-3945.c b/drivers/net/wireless/iwlegacy/iwl-3945.c
27 index dcc1552..effeabb 100644
28 --- a/drivers/net/wireless/iwlegacy/iwl-3945.c
29 +++ b/drivers/net/wireless/iwlegacy/iwl-3945.c
30 @@ -1872,11 +1872,12 @@ static void iwl3945_bg_reg_txpower_periodic(struct work_struct *work)
31 struct iwl_priv *priv = container_of(work, struct iwl_priv,
32 _3945.thermal_periodic.work);
33
34 - if (test_bit(STATUS_EXIT_PENDING, &priv->status))
35 - return;
36 -
37 mutex_lock(&priv->mutex);
38 + if (test_bit(STATUS_EXIT_PENDING, &priv->status) || priv->txq == NULL)
39 + goto out;
40 +
41 iwl3945_reg_txpower_periodic(priv);
42 +out:
43 mutex_unlock(&priv->mutex);
44 }
45
46 diff --git a/drivers/net/wireless/iwlegacy/iwl3945-base.c b/drivers/net/wireless/iwlegacy/iwl3945-base.c
47 index a935585..101a2c2 100644
48 --- a/drivers/net/wireless/iwlegacy/iwl3945-base.c
49 +++ b/drivers/net/wireless/iwlegacy/iwl3945-base.c
50 @@ -2763,7 +2763,7 @@ static void iwl3945_bg_alive_start(struct work_struct *data)
51 container_of(data, struct iwl_priv, alive_start.work);
52
53 mutex_lock(&priv->mutex);
54 - if (test_bit(STATUS_EXIT_PENDING, &priv->status))
55 + if (test_bit(STATUS_EXIT_PENDING, &priv->status) || priv->txq == NULL)
56 goto out;
57
58 iwl3945_alive_start(priv);
59 diff --git a/fs/afs/internal.h b/fs/afs/internal.h
60 index 5a9b684..1f3624d 100644
61 --- a/fs/afs/internal.h
62 +++ b/fs/afs/internal.h
63 @@ -109,7 +109,7 @@ struct afs_call {
64 unsigned reply_size; /* current size of reply */
65 unsigned first_offset; /* offset into mapping[first] */
66 unsigned last_to; /* amount of mapping[last] */
67 - unsigned short offset; /* offset into received data store */
68 + unsigned offset; /* offset into received data store */
69 unsigned char unmarshall; /* unmarshalling phase */
70 bool incoming; /* T if incoming call */
71 bool send_pages; /* T if data from mapping should be sent */
72 diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c
73 index e45a323..8ad8c2a 100644
74 --- a/fs/afs/rxrpc.c
75 +++ b/fs/afs/rxrpc.c
76 @@ -314,6 +314,7 @@ int afs_make_call(struct in_addr *addr, struct afs_call *call, gfp_t gfp,
77 struct msghdr msg;
78 struct kvec iov[1];
79 int ret;
80 + struct sk_buff *skb;
81
82 _enter("%x,{%d},", addr->s_addr, ntohs(call->port));
83
84 @@ -380,6 +381,8 @@ int afs_make_call(struct in_addr *addr, struct afs_call *call, gfp_t gfp,
85
86 error_do_abort:
87 rxrpc_kernel_abort_call(rxcall, RX_USER_ABORT);
88 + while ((skb = skb_dequeue(&call->rx_queue)))
89 + afs_free_skb(skb);
90 rxrpc_kernel_end_call(rxcall);
91 call->rxcall = NULL;
92 error_kill_call:
93 diff --git a/fs/nilfs2/the_nilfs.c b/fs/nilfs2/the_nilfs.c
94 index d327140..35a8970 100644
95 --- a/fs/nilfs2/the_nilfs.c
96 +++ b/fs/nilfs2/the_nilfs.c
97 @@ -515,6 +515,7 @@ static int nilfs_load_super_block(struct the_nilfs *nilfs,
98 brelse(sbh[1]);
99 sbh[1] = NULL;
100 sbp[1] = NULL;
101 + valid[1] = 0;
102 swp = 0;
103 }
104 if (!valid[swp]) {
105 diff --git a/net/ipv4/syncookies.c b/net/ipv4/syncookies.c
106 index 4382629..895f215 100644
107 --- a/net/ipv4/syncookies.c
108 +++ b/net/ipv4/syncookies.c
109 @@ -277,6 +277,7 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
110 struct rtable *rt;
111 __u8 rcv_wscale;
112 bool ecn_ok = false;
113 + struct flowi4 fl4;
114
115 if (!sysctl_tcp_syncookies || !th->ack || th->rst)
116 goto out;
117 @@ -344,20 +345,16 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
118 * hasn't changed since we received the original syn, but I see
119 * no easy way to do this.
120 */
121 - {
122 - struct flowi4 fl4;
123 -
124 - flowi4_init_output(&fl4, 0, sk->sk_mark, RT_CONN_FLAGS(sk),
125 - RT_SCOPE_UNIVERSE, IPPROTO_TCP,
126 - inet_sk_flowi_flags(sk),
127 - (opt && opt->srr) ? opt->faddr : ireq->rmt_addr,
128 - ireq->loc_addr, th->source, th->dest);
129 - security_req_classify_flow(req, flowi4_to_flowi(&fl4));
130 - rt = ip_route_output_key(sock_net(sk), &fl4);
131 - if (IS_ERR(rt)) {
132 - reqsk_free(req);
133 - goto out;
134 - }
135 + flowi4_init_output(&fl4, 0, sk->sk_mark, RT_CONN_FLAGS(sk),
136 + RT_SCOPE_UNIVERSE, IPPROTO_TCP,
137 + inet_sk_flowi_flags(sk),
138 + (opt && opt->srr) ? opt->faddr : ireq->rmt_addr,
139 + ireq->loc_addr, th->source, th->dest);
140 + security_req_classify_flow(req, flowi4_to_flowi(&fl4));
141 + rt = ip_route_output_key(sock_net(sk), &fl4);
142 + if (IS_ERR(rt)) {
143 + reqsk_free(req);
144 + goto out;
145 }
146
147 /* Try to redo what tcp_v4_send_synack did. */
148 @@ -371,5 +368,10 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
149 ireq->rcv_wscale = rcv_wscale;
150
151 ret = get_cookie_sock(sk, skb, req, &rt->dst);
152 + /* ip_queue_xmit() depends on our flow being setup
153 + * Normal sockets get it right from inet_csk_route_child_sock()
154 + */
155 + if (ret)
156 + inet_sk(ret)->cork.fl.u.ip4 = fl4;
157 out: return ret;
158 }
159 diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
160 index 04c6592..53a5af6 100644
161 --- a/net/ipv4/tcp_ipv4.c
162 +++ b/net/ipv4/tcp_ipv4.c
163 @@ -1454,9 +1454,13 @@ struct sock *tcp_v4_syn_recv_sock(struct sock *sk, struct sk_buff *skb,
164 inet_csk(newsk)->icsk_ext_hdr_len = inet_opt->opt.optlen;
165 newinet->inet_id = newtp->write_seq ^ jiffies;
166
167 - if (!dst && (dst = inet_csk_route_child_sock(sk, newsk, req)) == NULL)
168 - goto put_and_exit;
169 -
170 + if (!dst) {
171 + dst = inet_csk_route_child_sock(sk, newsk, req);
172 + if (!dst)
173 + goto put_and_exit;
174 + } else {
175 + /* syncookie case : see end of cookie_v4_check() */
176 + }
177 sk_setup_caps(newsk, dst);
178
179 tcp_mtup_init(newsk);
180 diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
181 index ee7839f..2257366 100644
182 --- a/net/ipv6/mcast.c
183 +++ b/net/ipv6/mcast.c
184 @@ -257,7 +257,6 @@ static struct inet6_dev *ip6_mc_find_dev_rcu(struct net *net,
185
186 if (rt) {
187 dev = rt->rt6i_dev;
188 - dev_hold(dev);
189 dst_release(&rt->dst);
190 }
191 } else
192 diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
193 index f44fa54..0ffbc8e 100644
194 --- a/tools/perf/util/sort.c
195 +++ b/tools/perf/util/sort.c
196 @@ -122,6 +122,9 @@ static int repsep_snprintf(char *bf, size_t size, const char *fmt, ...)
197 }
198 }
199 va_end(ap);
200 +
201 + if (n >= (int)size)
202 + return size - 1;
203 return n;
204 }
205

  ViewVC Help
Powered by ViewVC 1.1.20