diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2009-08-05 11:49:34 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2009-08-05 11:49:34 +0000 |
commit | 9597f197aaa95bd29c4bb994f829cb6dbd77b3dc (patch) | |
tree | e4595cf7d5ffd53344bdf60da89e2f89ede416d5 | |
parent | d2655ad2a6ef6bbdf542330036f57cd3ffb7bf13 (diff) | |
download | alpine_aports-9597f197aaa95bd29c4bb994f829cb6dbd77b3dc.tar.bz2 alpine_aports-9597f197aaa95bd29c4bb994f829cb6dbd77b3dc.tar.xz alpine_aports-9597f197aaa95bd29c4bb994f829cb6dbd77b3dc.zip |
main/linux-grsec: upgrade to 2.6.30.4
-rw-r--r-- | main/linux-grsec/0001-linux-2.6.28.5-ipgre-strict-binding.patch | 207 | ||||
-rw-r--r-- | main/linux-grsec/0002-linux-2.6.28.5-ipgre-optimize-hash-lookup.patch | 140 | ||||
-rw-r--r-- | main/linux-grsec/APKBUILD | 24 | ||||
-rw-r--r-- | main/linux-grsec/grsecurity-2.1.14-2.6.30.4-200908041752.patch (renamed from main/linux-grsec/grsecurity-2.1.14-2.6.29.6-200907231934.patch) | 12147 | ||||
-rw-r--r-- | main/linux-grsec/kernelconfig | 333 | ||||
-rw-r--r-- | main/linux-grsec/linux-nbma-mroute-v4-2.6.30.diff | 258 |
6 files changed, 6093 insertions, 7016 deletions
diff --git a/main/linux-grsec/0001-linux-2.6.28.5-ipgre-strict-binding.patch b/main/linux-grsec/0001-linux-2.6.28.5-ipgre-strict-binding.patch deleted file mode 100644 index fd0cfeb2a2..0000000000 --- a/main/linux-grsec/0001-linux-2.6.28.5-ipgre-strict-binding.patch +++ /dev/null | |||
@@ -1,207 +0,0 @@ | |||
1 | From: Timo Teras <timo.teras@iki.fi> | ||
2 | Date: Tue, 20 Jan 2009 01:22:12 +0000 (-0800) | ||
3 | Subject: gre: strict physical device binding | ||
4 | X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fdavem%2Fnet-next-2.6.git;a=commitdiff_plain;h=749c10f931923451a4c59b4435d182aa9ae27a4f;hp=57a574993d94671b495cdbe8aeb78b745abfe14f | ||
5 | |||
6 | gre: strict physical device binding | ||
7 | |||
8 | Check the device on receive path and allow otherwise identical devices | ||
9 | as long as the physical device differs. | ||
10 | |||
11 | This is useful for NBMA tunnels, where you want to use different gre IP | ||
12 | for each public IP available via different physical devices. | ||
13 | |||
14 | Signed-off-by: Timo Teras <timo.teras@iki.fi> | ||
15 | Signed-off-by: David S. Miller <davem@davemloft.net> | ||
16 | --- | ||
17 | |||
18 | diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c | ||
19 | index 0101521..4a43739 100644 | ||
20 | --- a/net/ipv4/ip_gre.c | ||
21 | +++ b/net/ipv4/ip_gre.c | ||
22 | @@ -164,67 +164,113 @@ static DEFINE_RWLOCK(ipgre_lock); | ||
23 | |||
24 | /* Given src, dst and key, find appropriate for input tunnel. */ | ||
25 | |||
26 | -static struct ip_tunnel * ipgre_tunnel_lookup(struct net *net, | ||
27 | +static struct ip_tunnel * ipgre_tunnel_lookup(struct net_device *dev, | ||
28 | __be32 remote, __be32 local, | ||
29 | __be32 key, __be16 gre_proto) | ||
30 | { | ||
31 | + struct net *net = dev_net(dev); | ||
32 | + int link = dev->ifindex; | ||
33 | unsigned h0 = HASH(remote); | ||
34 | unsigned h1 = HASH(key); | ||
35 | - struct ip_tunnel *t; | ||
36 | - struct ip_tunnel *t2 = NULL; | ||
37 | + struct ip_tunnel *t, *sel[4] = { NULL, NULL, NULL, NULL }; | ||
38 | struct ipgre_net *ign = net_generic(net, ipgre_net_id); | ||
39 | int dev_type = (gre_proto == htons(ETH_P_TEB)) ? | ||
40 | ARPHRD_ETHER : ARPHRD_IPGRE; | ||
41 | + int idx; | ||
42 | |||
43 | for (t = ign->tunnels_r_l[h0^h1]; t; t = t->next) { | ||
44 | - if (local == t->parms.iph.saddr && remote == t->parms.iph.daddr) { | ||
45 | - if (t->parms.i_key == key && t->dev->flags & IFF_UP) { | ||
46 | - if (t->dev->type == dev_type) | ||
47 | - return t; | ||
48 | - if (t->dev->type == ARPHRD_IPGRE && !t2) | ||
49 | - t2 = t; | ||
50 | - } | ||
51 | - } | ||
52 | + if (local != t->parms.iph.saddr || | ||
53 | + remote != t->parms.iph.daddr || | ||
54 | + key != t->parms.i_key || | ||
55 | + !(t->dev->flags & IFF_UP)) | ||
56 | + continue; | ||
57 | + | ||
58 | + if (t->dev->type != ARPHRD_IPGRE && | ||
59 | + t->dev->type != dev_type) | ||
60 | + continue; | ||
61 | + | ||
62 | + idx = 0; | ||
63 | + if (t->parms.link != link) | ||
64 | + idx |= 1; | ||
65 | + if (t->dev->type != dev_type) | ||
66 | + idx |= 2; | ||
67 | + if (idx == 0) | ||
68 | + return t; | ||
69 | + if (sel[idx] == NULL) | ||
70 | + sel[idx] = t; | ||
71 | } | ||
72 | |||
73 | for (t = ign->tunnels_r[h0^h1]; t; t = t->next) { | ||
74 | - if (remote == t->parms.iph.daddr) { | ||
75 | - if (t->parms.i_key == key && t->dev->flags & IFF_UP) { | ||
76 | - if (t->dev->type == dev_type) | ||
77 | - return t; | ||
78 | - if (t->dev->type == ARPHRD_IPGRE && !t2) | ||
79 | - t2 = t; | ||
80 | - } | ||
81 | - } | ||
82 | + if (remote != t->parms.iph.daddr || | ||
83 | + key != t->parms.i_key || | ||
84 | + !(t->dev->flags & IFF_UP)) | ||
85 | + continue; | ||
86 | + | ||
87 | + if (t->dev->type != ARPHRD_IPGRE && | ||
88 | + t->dev->type != dev_type) | ||
89 | + continue; | ||
90 | + | ||
91 | + idx = 0; | ||
92 | + if (t->parms.link != link) | ||
93 | + idx |= 1; | ||
94 | + if (t->dev->type != dev_type) | ||
95 | + idx |= 2; | ||
96 | + if (idx == 0) | ||
97 | + return t; | ||
98 | + if (sel[idx] == NULL) | ||
99 | + sel[idx] = t; | ||
100 | } | ||
101 | |||
102 | for (t = ign->tunnels_l[h1]; t; t = t->next) { | ||
103 | - if (local == t->parms.iph.saddr || | ||
104 | - (local == t->parms.iph.daddr && | ||
105 | - ipv4_is_multicast(local))) { | ||
106 | - if (t->parms.i_key == key && t->dev->flags & IFF_UP) { | ||
107 | - if (t->dev->type == dev_type) | ||
108 | - return t; | ||
109 | - if (t->dev->type == ARPHRD_IPGRE && !t2) | ||
110 | - t2 = t; | ||
111 | - } | ||
112 | - } | ||
113 | + if ((local != t->parms.iph.saddr && | ||
114 | + (local != t->parms.iph.daddr || | ||
115 | + !ipv4_is_multicast(local))) || | ||
116 | + key != t->parms.i_key || | ||
117 | + !(t->dev->flags & IFF_UP)) | ||
118 | + continue; | ||
119 | + | ||
120 | + if (t->dev->type != ARPHRD_IPGRE && | ||
121 | + t->dev->type != dev_type) | ||
122 | + continue; | ||
123 | + | ||
124 | + idx = 0; | ||
125 | + if (t->parms.link != link) | ||
126 | + idx |= 1; | ||
127 | + if (t->dev->type != dev_type) | ||
128 | + idx |= 2; | ||
129 | + if (idx == 0) | ||
130 | + return t; | ||
131 | + if (sel[idx] == NULL) | ||
132 | + sel[idx] = t; | ||
133 | } | ||
134 | |||
135 | for (t = ign->tunnels_wc[h1]; t; t = t->next) { | ||
136 | - if (t->parms.i_key == key && t->dev->flags & IFF_UP) { | ||
137 | - if (t->dev->type == dev_type) | ||
138 | - return t; | ||
139 | - if (t->dev->type == ARPHRD_IPGRE && !t2) | ||
140 | - t2 = t; | ||
141 | - } | ||
142 | + if (t->parms.i_key != key || | ||
143 | + !(t->dev->flags & IFF_UP)) | ||
144 | + continue; | ||
145 | + | ||
146 | + if (t->dev->type != ARPHRD_IPGRE && | ||
147 | + t->dev->type != dev_type) | ||
148 | + continue; | ||
149 | + | ||
150 | + idx = 0; | ||
151 | + if (t->parms.link != link) | ||
152 | + idx |= 1; | ||
153 | + if (t->dev->type != dev_type) | ||
154 | + idx |= 2; | ||
155 | + if (idx == 0) | ||
156 | + return t; | ||
157 | + if (sel[idx] == NULL) | ||
158 | + sel[idx] = t; | ||
159 | } | ||
160 | |||
161 | - if (t2) | ||
162 | - return t2; | ||
163 | + for (idx = 1; idx < ARRAY_SIZE(sel); idx++) | ||
164 | + if (sel[idx] != NULL) | ||
165 | + return sel[idx]; | ||
166 | |||
167 | - if (ign->fb_tunnel_dev->flags&IFF_UP) | ||
168 | + if (ign->fb_tunnel_dev->flags & IFF_UP) | ||
169 | return netdev_priv(ign->fb_tunnel_dev); | ||
170 | + | ||
171 | return NULL; | ||
172 | } | ||
173 | |||
174 | @@ -284,6 +330,7 @@ static struct ip_tunnel *ipgre_tunnel_find(struct net *net, | ||
175 | __be32 remote = parms->iph.daddr; | ||
176 | __be32 local = parms->iph.saddr; | ||
177 | __be32 key = parms->i_key; | ||
178 | + int link = parms->link; | ||
179 | struct ip_tunnel *t, **tp; | ||
180 | struct ipgre_net *ign = net_generic(net, ipgre_net_id); | ||
181 | |||
182 | @@ -291,6 +338,7 @@ static struct ip_tunnel *ipgre_tunnel_find(struct net *net, | ||
183 | if (local == t->parms.iph.saddr && | ||
184 | remote == t->parms.iph.daddr && | ||
185 | key == t->parms.i_key && | ||
186 | + link == t->parms.link && | ||
187 | type == t->dev->type) | ||
188 | break; | ||
189 | |||
190 | @@ -421,7 +469,7 @@ static void ipgre_err(struct sk_buff *skb, u32 info) | ||
191 | } | ||
192 | |||
193 | read_lock(&ipgre_lock); | ||
194 | - t = ipgre_tunnel_lookup(dev_net(skb->dev), iph->daddr, iph->saddr, | ||
195 | + t = ipgre_tunnel_lookup(skb->dev, iph->daddr, iph->saddr, | ||
196 | flags & GRE_KEY ? | ||
197 | *(((__be32 *)p) + (grehlen / 4) - 1) : 0, | ||
198 | p[1]); | ||
199 | @@ -518,7 +566,7 @@ static int ipgre_rcv(struct sk_buff *skb) | ||
200 | gre_proto = *(__be16 *)(h + 2); | ||
201 | |||
202 | read_lock(&ipgre_lock); | ||
203 | - if ((tunnel = ipgre_tunnel_lookup(dev_net(skb->dev), | ||
204 | + if ((tunnel = ipgre_tunnel_lookup(skb->dev, | ||
205 | iph->saddr, iph->daddr, key, | ||
206 | gre_proto))) { | ||
207 | struct net_device_stats *stats = &tunnel->dev->stats; | ||
diff --git a/main/linux-grsec/0002-linux-2.6.28.5-ipgre-optimize-hash-lookup.patch b/main/linux-grsec/0002-linux-2.6.28.5-ipgre-optimize-hash-lookup.patch deleted file mode 100644 index fbfef33b9b..0000000000 --- a/main/linux-grsec/0002-linux-2.6.28.5-ipgre-optimize-hash-lookup.patch +++ /dev/null | |||
@@ -1,140 +0,0 @@ | |||
1 | From: Timo Teras <timo.teras@iki.fi> | ||
2 | Date: Tue, 27 Jan 2009 04:56:10 +0000 (-0800) | ||
3 | Subject: gre: optimize hash lookup | ||
4 | X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fdavem%2Fnet-next-2.6.git;a=commitdiff_plain;h=afcf12422ec8236dc8b9238fef7a475876eea8da;hp=3eacdf58c2c0b9507afedfc19108e98b992c31e4 | ||
5 | |||
6 | gre: optimize hash lookup | ||
7 | |||
8 | Instead of keeping candidate tunnel device from all categories, | ||
9 | keep only one candidate with best score. This optimizes stack | ||
10 | usage and speeds up exit code. | ||
11 | |||
12 | Signed-off-by: Timo Teras <timo.teras@iki.fi> | ||
13 | Signed-off-by: David S. Miller <davem@davemloft.net> | ||
14 | --- | ||
15 | |||
16 | diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c | ||
17 | index 4a43739..07a188a 100644 | ||
18 | --- a/net/ipv4/ip_gre.c | ||
19 | +++ b/net/ipv4/ip_gre.c | ||
20 | @@ -172,11 +172,11 @@ static struct ip_tunnel * ipgre_tunnel_lookup(struct net_device *dev, | ||
21 | int link = dev->ifindex; | ||
22 | unsigned h0 = HASH(remote); | ||
23 | unsigned h1 = HASH(key); | ||
24 | - struct ip_tunnel *t, *sel[4] = { NULL, NULL, NULL, NULL }; | ||
25 | + struct ip_tunnel *t, *cand = NULL; | ||
26 | struct ipgre_net *ign = net_generic(net, ipgre_net_id); | ||
27 | int dev_type = (gre_proto == htons(ETH_P_TEB)) ? | ||
28 | ARPHRD_ETHER : ARPHRD_IPGRE; | ||
29 | - int idx; | ||
30 | + int score, cand_score = 4; | ||
31 | |||
32 | for (t = ign->tunnels_r_l[h0^h1]; t; t = t->next) { | ||
33 | if (local != t->parms.iph.saddr || | ||
34 | @@ -189,15 +189,18 @@ static struct ip_tunnel * ipgre_tunnel_lookup(struct net_device *dev, | ||
35 | t->dev->type != dev_type) | ||
36 | continue; | ||
37 | |||
38 | - idx = 0; | ||
39 | + score = 0; | ||
40 | if (t->parms.link != link) | ||
41 | - idx |= 1; | ||
42 | + score |= 1; | ||
43 | if (t->dev->type != dev_type) | ||
44 | - idx |= 2; | ||
45 | - if (idx == 0) | ||
46 | + score |= 2; | ||
47 | + if (score == 0) | ||
48 | return t; | ||
49 | - if (sel[idx] == NULL) | ||
50 | - sel[idx] = t; | ||
51 | + | ||
52 | + if (score < cand_score) { | ||
53 | + cand = t; | ||
54 | + cand_score = score; | ||
55 | + } | ||
56 | } | ||
57 | |||
58 | for (t = ign->tunnels_r[h0^h1]; t; t = t->next) { | ||
59 | @@ -210,15 +213,18 @@ static struct ip_tunnel * ipgre_tunnel_lookup(struct net_device *dev, | ||
60 | t->dev->type != dev_type) | ||
61 | continue; | ||
62 | |||
63 | - idx = 0; | ||
64 | + score = 0; | ||
65 | if (t->parms.link != link) | ||
66 | - idx |= 1; | ||
67 | + score |= 1; | ||
68 | if (t->dev->type != dev_type) | ||
69 | - idx |= 2; | ||
70 | - if (idx == 0) | ||
71 | + score |= 2; | ||
72 | + if (score == 0) | ||
73 | return t; | ||
74 | - if (sel[idx] == NULL) | ||
75 | - sel[idx] = t; | ||
76 | + | ||
77 | + if (score < cand_score) { | ||
78 | + cand = t; | ||
79 | + cand_score = score; | ||
80 | + } | ||
81 | } | ||
82 | |||
83 | for (t = ign->tunnels_l[h1]; t; t = t->next) { | ||
84 | @@ -233,15 +239,18 @@ static struct ip_tunnel * ipgre_tunnel_lookup(struct net_device *dev, | ||
85 | t->dev->type != dev_type) | ||
86 | continue; | ||
87 | |||
88 | - idx = 0; | ||
89 | + score = 0; | ||
90 | if (t->parms.link != link) | ||
91 | - idx |= 1; | ||
92 | + score |= 1; | ||
93 | if (t->dev->type != dev_type) | ||
94 | - idx |= 2; | ||
95 | - if (idx == 0) | ||
96 | + score |= 2; | ||
97 | + if (score == 0) | ||
98 | return t; | ||
99 | - if (sel[idx] == NULL) | ||
100 | - sel[idx] = t; | ||
101 | + | ||
102 | + if (score < cand_score) { | ||
103 | + cand = t; | ||
104 | + cand_score = score; | ||
105 | + } | ||
106 | } | ||
107 | |||
108 | for (t = ign->tunnels_wc[h1]; t; t = t->next) { | ||
109 | @@ -253,20 +262,22 @@ static struct ip_tunnel * ipgre_tunnel_lookup(struct net_device *dev, | ||
110 | t->dev->type != dev_type) | ||
111 | continue; | ||
112 | |||
113 | - idx = 0; | ||
114 | + score = 0; | ||
115 | if (t->parms.link != link) | ||
116 | - idx |= 1; | ||
117 | + score |= 1; | ||
118 | if (t->dev->type != dev_type) | ||
119 | - idx |= 2; | ||
120 | - if (idx == 0) | ||
121 | + score |= 2; | ||
122 | + if (score == 0) | ||
123 | return t; | ||
124 | - if (sel[idx] == NULL) | ||
125 | - sel[idx] = t; | ||
126 | + | ||
127 | + if (score < cand_score) { | ||
128 | + cand = t; | ||
129 | + cand_score = score; | ||
130 | + } | ||
131 | } | ||
132 | |||
133 | - for (idx = 1; idx < ARRAY_SIZE(sel); idx++) | ||
134 | - if (sel[idx] != NULL) | ||
135 | - return sel[idx]; | ||
136 | + if (cand != NULL) | ||
137 | + return cand; | ||
138 | |||
139 | if (ign->fb_tunnel_dev->flags & IFF_UP) | ||
140 | return netdev_priv(ign->fb_tunnel_dev); | ||
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD index 20fa9284bd..c5a1d3f9e3 100644 --- a/main/linux-grsec/APKBUILD +++ b/main/linux-grsec/APKBUILD | |||
@@ -2,9 +2,9 @@ | |||
2 | 2 | ||
3 | _flavor=grsec | 3 | _flavor=grsec |
4 | pkgname=linux-${_flavor} | 4 | pkgname=linux-${_flavor} |
5 | pkgver=2.6.29.6 | 5 | pkgver=2.6.30.4 |
6 | _kernver=2.6.29 | 6 | _kernver=2.6.30 |
7 | pkgrel=2 | 7 | pkgrel=1 |
8 | pkgdesc="Linux kernel with grsecurity" | 8 | pkgdesc="Linux kernel with grsecurity" |
9 | url=http://grsecurity.net | 9 | url=http://grsecurity.net |
10 | depends="mkinitfs" | 10 | depends="mkinitfs" |
@@ -13,9 +13,8 @@ _config=${config:-kernelconfig} | |||
13 | install="$pkgname.post-install $pkgname.post-upgrade" | 13 | install="$pkgname.post-install $pkgname.post-upgrade" |
14 | source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2 | 14 | source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2 |
15 | ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2 | 15 | ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2 |
16 | grsecurity-2.1.14-2.6.29.6-200907231934.patch | 16 | grsecurity-2.1.14-2.6.30.4-200908041752.patch |
17 | 0001-linux-2.6.28.5-ipgre-strict-binding.patch | 17 | linux-nbma-mroute-v4-2.6.30.diff |
18 | 0002-linux-2.6.28.5-ipgre-optimize-hash-lookup.patch | ||
19 | net-next-2.6.git-5ef12d98a19254ee5dc851bd83e214b43ec1f725.patch | 18 | net-next-2.6.git-5ef12d98a19254ee5dc851bd83e214b43ec1f725.patch |
20 | $_config | 19 | $_config |
21 | $install | 20 | $install |
@@ -31,7 +30,7 @@ _prepare() { | |||
31 | bunzip2 -c < ../patch-$pkgver.bz2 | patch -p1 || return 1 | 30 | bunzip2 -c < ../patch-$pkgver.bz2 | patch -p1 || return 1 |
32 | fi | 31 | fi |
33 | 32 | ||
34 | for i in ../*.patch; do | 33 | for i in ../*.diff ../*.patch; do |
35 | msg "Applying $i..." | 34 | msg "Applying $i..." |
36 | patch -p1 -N < $i || return 1 | 35 | patch -p1 -N < $i || return 1 |
37 | done | 36 | done |
@@ -112,12 +111,11 @@ dev() { | |||
112 | "$subpkgdir"/lib/modules/${_abi_release}/build | 111 | "$subpkgdir"/lib/modules/${_abi_release}/build |
113 | } | 112 | } |
114 | 113 | ||
115 | md5sums="64921b5ff5cdadbccfcd3820f03be7d8 linux-2.6.29.tar.bz2 | 114 | md5sums="7a80058a6382e5108cdb5554d1609615 linux-2.6.30.tar.bz2 |
116 | 0317760b52c9ac7a11de997da19a366e patch-2.6.29.6.bz2 | 115 | d0fc44b54ba5953140b3f2aa9a1f2580 patch-2.6.30.4.bz2 |
117 | bc067ccfe86517c4e4568b76b4a50e06 grsecurity-2.1.14-2.6.29.6-200907231934.patch | 116 | 7d9fd867108074ec9dcc9d2385ff1e7b grsecurity-2.1.14-2.6.30.4-200908041752.patch |
118 | 7673b4521283ad41434a18ca18b16ad8 0001-linux-2.6.28.5-ipgre-strict-binding.patch | 117 | 7420c0b1095335990313656b114e1379 linux-nbma-mroute-v4-2.6.30.diff |
119 | 8f405c738b150c532c46eaad5390cca2 0002-linux-2.6.28.5-ipgre-optimize-hash-lookup.patch | ||
120 | ca05fd252783b82e01610e775cf56498 net-next-2.6.git-5ef12d98a19254ee5dc851bd83e214b43ec1f725.patch | 118 | ca05fd252783b82e01610e775cf56498 net-next-2.6.git-5ef12d98a19254ee5dc851bd83e214b43ec1f725.patch |
121 | c9443dcc46eb70267b4cfe6a6694f637 kernelconfig | 119 | 13bdad159b0d99281c931a7dcb7d31ae kernelconfig |
122 | 2834240b15805b248ef2a973b1ad4416 linux-grsec.post-install | 120 | 2834240b15805b248ef2a973b1ad4416 linux-grsec.post-install |
123 | 2834240b15805b248ef2a973b1ad4416 linux-grsec.post-upgrade" | 121 | 2834240b15805b248ef2a973b1ad4416 linux-grsec.post-upgrade" |
diff --git a/main/linux-grsec/grsecurity-2.1.14-2.6.29.6-200907231934.patch b/main/linux-grsec/grsecurity-2.1.14-2.6.30.4-200908041752.patch index eb8c335b73..799132a383 100644 --- a/main/linux-grsec/grsecurity-2.1.14-2.6.29.6-200907231934.patch +++ b/main/linux-grsec/grsecurity-2.1.14-2.6.30.4-200908041752.patch | |||
@@ -1,6 +1,6 @@ | |||
1 | diff -urNp linux-2.6.29.6/arch/alpha/include/asm/atomic.h linux-2.6.29.6/arch/alpha/include/asm/atomic.h | 1 | diff -urNp linux-2.6.30.4/arch/alpha/include/asm/atomic.h linux-2.6.30.4/arch/alpha/include/asm/atomic.h |
2 | --- linux-2.6.29.6/arch/alpha/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400 | 2 | --- linux-2.6.30.4/arch/alpha/include/asm/atomic.h 2009-07-24 17:47:51.000000000 -0400 |
3 | +++ linux-2.6.29.6/arch/alpha/include/asm/atomic.h 2009-07-23 17:34:32.032153687 -0400 | 3 | +++ linux-2.6.30.4/arch/alpha/include/asm/atomic.h 2009-07-30 09:48:09.872868955 -0400 |
4 | @@ -246,6 +246,9 @@ static __inline__ int atomic64_add_unles | 4 | @@ -246,6 +246,9 @@ static __inline__ int atomic64_add_unles |
5 | #define atomic64_dec_and_test(v) (atomic64_sub_return(1, (v)) == 0) | 5 | #define atomic64_dec_and_test(v) (atomic64_sub_return(1, (v)) == 0) |
6 | 6 | ||
@@ -11,9 +11,9 @@ diff -urNp linux-2.6.29.6/arch/alpha/include/asm/atomic.h linux-2.6.29.6/arch/al | |||
11 | #define atomic64_inc(v) atomic64_add(1,(v)) | 11 | #define atomic64_inc(v) atomic64_add(1,(v)) |
12 | 12 | ||
13 | #define atomic_dec(v) atomic_sub(1,(v)) | 13 | #define atomic_dec(v) atomic_sub(1,(v)) |
14 | diff -urNp linux-2.6.29.6/arch/alpha/include/asm/elf.h linux-2.6.29.6/arch/alpha/include/asm/elf.h | 14 | diff -urNp linux-2.6.30.4/arch/alpha/include/asm/elf.h linux-2.6.30.4/arch/alpha/include/asm/elf.h |
15 | --- linux-2.6.29.6/arch/alpha/include/asm/elf.h 2009-07-02 19:41:20.000000000 -0400 | 15 | --- linux-2.6.30.4/arch/alpha/include/asm/elf.h 2009-07-24 17:47:51.000000000 -0400 |
16 | +++ linux-2.6.29.6/arch/alpha/include/asm/elf.h 2009-07-23 17:34:32.032809072 -0400 | 16 | +++ linux-2.6.30.4/arch/alpha/include/asm/elf.h 2009-07-30 09:48:09.873636524 -0400 |
17 | @@ -91,6 +91,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N | 17 | @@ -91,6 +91,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N |
18 | 18 | ||
19 | #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x1000000) | 19 | #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x1000000) |
@@ -28,9 +28,9 @@ diff -urNp linux-2.6.29.6/arch/alpha/include/asm/elf.h linux-2.6.29.6/arch/alpha | |||
28 | /* $0 is set by ld.so to a pointer to a function which might be | 28 | /* $0 is set by ld.so to a pointer to a function which might be |
29 | registered using atexit. This provides a mean for the dynamic | 29 | registered using atexit. This provides a mean for the dynamic |
30 | linker to call DT_FINI functions for shared libraries that have | 30 | linker to call DT_FINI functions for shared libraries that have |
31 | diff -urNp linux-2.6.29.6/arch/alpha/include/asm/kmap_types.h linux-2.6.29.6/arch/alpha/include/asm/kmap_types.h | 31 | diff -urNp linux-2.6.30.4/arch/alpha/include/asm/kmap_types.h linux-2.6.30.4/arch/alpha/include/asm/kmap_types.h |
32 | --- linux-2.6.29.6/arch/alpha/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 32 | --- linux-2.6.30.4/arch/alpha/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
33 | +++ linux-2.6.29.6/arch/alpha/include/asm/kmap_types.h 2009-07-23 17:34:32.032809072 -0400 | 33 | +++ linux-2.6.30.4/arch/alpha/include/asm/kmap_types.h 2009-07-30 09:48:09.873636524 -0400 |
34 | @@ -24,7 +24,8 @@ D(9) KM_IRQ0, | 34 | @@ -24,7 +24,8 @@ D(9) KM_IRQ0, |
35 | D(10) KM_IRQ1, | 35 | D(10) KM_IRQ1, |
36 | D(11) KM_SOFTIRQ0, | 36 | D(11) KM_SOFTIRQ0, |
@@ -41,9 +41,9 @@ diff -urNp linux-2.6.29.6/arch/alpha/include/asm/kmap_types.h linux-2.6.29.6/arc | |||
41 | }; | 41 | }; |
42 | 42 | ||
43 | #undef D | 43 | #undef D |
44 | diff -urNp linux-2.6.29.6/arch/alpha/include/asm/pgtable.h linux-2.6.29.6/arch/alpha/include/asm/pgtable.h | 44 | diff -urNp linux-2.6.30.4/arch/alpha/include/asm/pgtable.h linux-2.6.30.4/arch/alpha/include/asm/pgtable.h |
45 | --- linux-2.6.29.6/arch/alpha/include/asm/pgtable.h 2009-07-02 19:41:20.000000000 -0400 | 45 | --- linux-2.6.30.4/arch/alpha/include/asm/pgtable.h 2009-07-24 17:47:51.000000000 -0400 |
46 | +++ linux-2.6.29.6/arch/alpha/include/asm/pgtable.h 2009-07-23 17:34:32.032809072 -0400 | 46 | +++ linux-2.6.30.4/arch/alpha/include/asm/pgtable.h 2009-07-30 09:48:09.874706218 -0400 |
47 | @@ -101,6 +101,17 @@ struct vm_area_struct; | 47 | @@ -101,6 +101,17 @@ struct vm_area_struct; |
48 | #define PAGE_SHARED __pgprot(_PAGE_VALID | __ACCESS_BITS) | 48 | #define PAGE_SHARED __pgprot(_PAGE_VALID | __ACCESS_BITS) |
49 | #define PAGE_COPY __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW) | 49 | #define PAGE_COPY __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW) |
@@ -62,9 +62,9 @@ diff -urNp linux-2.6.29.6/arch/alpha/include/asm/pgtable.h linux-2.6.29.6/arch/a | |||
62 | #define PAGE_KERNEL __pgprot(_PAGE_VALID | _PAGE_ASM | _PAGE_KRE | _PAGE_KWE) | 62 | #define PAGE_KERNEL __pgprot(_PAGE_VALID | _PAGE_ASM | _PAGE_KRE | _PAGE_KWE) |
63 | 63 | ||
64 | #define _PAGE_NORMAL(x) __pgprot(_PAGE_VALID | __ACCESS_BITS | (x)) | 64 | #define _PAGE_NORMAL(x) __pgprot(_PAGE_VALID | __ACCESS_BITS | (x)) |
65 | diff -urNp linux-2.6.29.6/arch/alpha/kernel/module.c linux-2.6.29.6/arch/alpha/kernel/module.c | 65 | diff -urNp linux-2.6.30.4/arch/alpha/kernel/module.c linux-2.6.30.4/arch/alpha/kernel/module.c |
66 | --- linux-2.6.29.6/arch/alpha/kernel/module.c 2009-07-02 19:41:20.000000000 -0400 | 66 | --- linux-2.6.30.4/arch/alpha/kernel/module.c 2009-07-24 17:47:51.000000000 -0400 |
67 | +++ linux-2.6.29.6/arch/alpha/kernel/module.c 2009-07-23 17:34:32.032809072 -0400 | 67 | +++ linux-2.6.30.4/arch/alpha/kernel/module.c 2009-07-30 09:48:09.875723461 -0400 |
68 | @@ -182,7 +182,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs, | 68 | @@ -182,7 +182,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs, |
69 | 69 | ||
70 | /* The small sections were sorted to the end of the segment. | 70 | /* The small sections were sorted to the end of the segment. |
@@ -74,10 +74,10 @@ diff -urNp linux-2.6.29.6/arch/alpha/kernel/module.c linux-2.6.29.6/arch/alpha/k | |||
74 | got = sechdrs[me->arch.gotsecindex].sh_addr; | 74 | got = sechdrs[me->arch.gotsecindex].sh_addr; |
75 | 75 | ||
76 | for (i = 0; i < n; i++) { | 76 | for (i = 0; i < n; i++) { |
77 | diff -urNp linux-2.6.29.6/arch/alpha/kernel/osf_sys.c linux-2.6.29.6/arch/alpha/kernel/osf_sys.c | 77 | diff -urNp linux-2.6.30.4/arch/alpha/kernel/osf_sys.c linux-2.6.30.4/arch/alpha/kernel/osf_sys.c |
78 | --- linux-2.6.29.6/arch/alpha/kernel/osf_sys.c 2009-07-02 19:41:20.000000000 -0400 | 78 | --- linux-2.6.30.4/arch/alpha/kernel/osf_sys.c 2009-07-24 17:47:51.000000000 -0400 |
79 | +++ linux-2.6.29.6/arch/alpha/kernel/osf_sys.c 2009-07-23 17:34:32.032809072 -0400 | 79 | +++ linux-2.6.30.4/arch/alpha/kernel/osf_sys.c 2009-07-30 09:48:09.875723461 -0400 |
80 | @@ -1217,6 +1217,10 @@ arch_get_unmapped_area(struct file *filp | 80 | @@ -1215,6 +1215,10 @@ arch_get_unmapped_area(struct file *filp |
81 | merely specific addresses, but regions of memory -- perhaps | 81 | merely specific addresses, but regions of memory -- perhaps |
82 | this feature should be incorporated into all ports? */ | 82 | this feature should be incorporated into all ports? */ |
83 | 83 | ||
@@ -88,7 +88,7 @@ diff -urNp linux-2.6.29.6/arch/alpha/kernel/osf_sys.c linux-2.6.29.6/arch/alpha/ | |||
88 | if (addr) { | 88 | if (addr) { |
89 | addr = arch_get_unmapped_area_1 (PAGE_ALIGN(addr), len, limit); | 89 | addr = arch_get_unmapped_area_1 (PAGE_ALIGN(addr), len, limit); |
90 | if (addr != (unsigned long) -ENOMEM) | 90 | if (addr != (unsigned long) -ENOMEM) |
91 | @@ -1224,8 +1228,8 @@ arch_get_unmapped_area(struct file *filp | 91 | @@ -1222,8 +1226,8 @@ arch_get_unmapped_area(struct file *filp |
92 | } | 92 | } |
93 | 93 | ||
94 | /* Next, try allocating at TASK_UNMAPPED_BASE. */ | 94 | /* Next, try allocating at TASK_UNMAPPED_BASE. */ |
@@ -99,9 +99,9 @@ diff -urNp linux-2.6.29.6/arch/alpha/kernel/osf_sys.c linux-2.6.29.6/arch/alpha/ | |||
99 | if (addr != (unsigned long) -ENOMEM) | 99 | if (addr != (unsigned long) -ENOMEM) |
100 | return addr; | 100 | return addr; |
101 | 101 | ||
102 | diff -urNp linux-2.6.29.6/arch/alpha/mm/fault.c linux-2.6.29.6/arch/alpha/mm/fault.c | 102 | diff -urNp linux-2.6.30.4/arch/alpha/mm/fault.c linux-2.6.30.4/arch/alpha/mm/fault.c |
103 | --- linux-2.6.29.6/arch/alpha/mm/fault.c 2009-07-02 19:41:20.000000000 -0400 | 103 | --- linux-2.6.30.4/arch/alpha/mm/fault.c 2009-07-24 17:47:51.000000000 -0400 |
104 | +++ linux-2.6.29.6/arch/alpha/mm/fault.c 2009-07-23 17:34:32.033902767 -0400 | 104 | +++ linux-2.6.30.4/arch/alpha/mm/fault.c 2009-07-30 09:48:09.876636955 -0400 |
105 | @@ -54,6 +54,124 @@ __load_new_mm_context(struct mm_struct * | 105 | @@ -54,6 +54,124 @@ __load_new_mm_context(struct mm_struct * |
106 | __reload_thread(pcb); | 106 | __reload_thread(pcb); |
107 | } | 107 | } |
@@ -258,23 +258,23 @@ diff -urNp linux-2.6.29.6/arch/alpha/mm/fault.c linux-2.6.29.6/arch/alpha/mm/fau | |||
258 | } else if (!cause) { | 258 | } else if (!cause) { |
259 | /* Allow reads even for write-only mappings */ | 259 | /* Allow reads even for write-only mappings */ |
260 | if (!(vma->vm_flags & (VM_READ | VM_WRITE))) | 260 | if (!(vma->vm_flags & (VM_READ | VM_WRITE))) |
261 | diff -urNp linux-2.6.29.6/arch/arm/include/asm/atomic.h linux-2.6.29.6/arch/arm/include/asm/atomic.h | 261 | diff -urNp linux-2.6.30.4/arch/arm/include/asm/atomic.h linux-2.6.30.4/arch/arm/include/asm/atomic.h |
262 | --- linux-2.6.29.6/arch/arm/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400 | 262 | --- linux-2.6.30.4/arch/arm/include/asm/atomic.h 2009-07-24 17:47:51.000000000 -0400 |
263 | +++ linux-2.6.29.6/arch/arm/include/asm/atomic.h 2009-07-23 17:34:32.033902767 -0400 | 263 | +++ linux-2.6.30.4/arch/arm/include/asm/atomic.h 2009-07-30 09:48:09.876636955 -0400 |
264 | @@ -191,6 +191,9 @@ static inline int atomic_add_unless(atom | 264 | @@ -235,6 +235,9 @@ static inline int atomic_add_unless(atom |
265 | #define atomic_inc(v) (void) atomic_add_return(1, v) | 265 | |
266 | #define atomic_sub(i, v) (void) atomic_sub_return(i, v) | 266 | #define atomic_inc(v) atomic_add(1, v) |
267 | #define atomic_dec(v) (void) atomic_sub_return(1, v) | 267 | #define atomic_dec(v) atomic_sub(1, v) |
268 | +#define atomic_inc_unchecked(v) (void) atomic_inc(v) | 268 | +#define atomic_inc_unchecked(v) atomic_inc(v) |
269 | +#define atomic_add_unchecked(i, v) (void) atomic_add(i, v) | 269 | +#define atomic_add_unchecked(i, v) atomic_add(i, v) |
270 | +#define atomic_sub_unchecked(i, v) (void) atomic_sub(i, v) | 270 | +#define atomic_sub_unchecked(i, v) atomic_sub(i, v) |
271 | 271 | ||
272 | #define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0) | 272 | #define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0) |
273 | #define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0) | 273 | #define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0) |
274 | diff -urNp linux-2.6.29.6/arch/arm/include/asm/elf.h linux-2.6.29.6/arch/arm/include/asm/elf.h | 274 | diff -urNp linux-2.6.30.4/arch/arm/include/asm/elf.h linux-2.6.30.4/arch/arm/include/asm/elf.h |
275 | --- linux-2.6.29.6/arch/arm/include/asm/elf.h 2009-07-02 19:41:20.000000000 -0400 | 275 | --- linux-2.6.30.4/arch/arm/include/asm/elf.h 2009-07-24 17:47:51.000000000 -0400 |
276 | +++ linux-2.6.29.6/arch/arm/include/asm/elf.h 2009-07-23 17:34:32.033902767 -0400 | 276 | +++ linux-2.6.30.4/arch/arm/include/asm/elf.h 2009-07-30 09:48:09.877630671 -0400 |
277 | @@ -100,7 +100,14 @@ extern int arm_elf_read_implies_exec(con | 277 | @@ -103,7 +103,14 @@ extern int arm_elf_read_implies_exec(con |
278 | the loader. We need to make sure that it is out of the way of the program | 278 | the loader. We need to make sure that it is out of the way of the program |
279 | that it will "exec", and that there is sufficient room for the brk. */ | 279 | that it will "exec", and that there is sufficient room for the brk. */ |
280 | 280 | ||
@@ -290,32 +290,43 @@ diff -urNp linux-2.6.29.6/arch/arm/include/asm/elf.h linux-2.6.29.6/arch/arm/inc | |||
290 | 290 | ||
291 | /* When the program starts, a1 contains a pointer to a function to be | 291 | /* When the program starts, a1 contains a pointer to a function to be |
292 | registered with atexit, as per the SVR4 ABI. A value of 0 means we | 292 | registered with atexit, as per the SVR4 ABI. A value of 0 means we |
293 | diff -urNp linux-2.6.29.6/arch/arm/include/asm/kmap_types.h linux-2.6.29.6/arch/arm/include/asm/kmap_types.h | 293 | diff -urNp linux-2.6.30.4/arch/arm/include/asm/kmap_types.h linux-2.6.30.4/arch/arm/include/asm/kmap_types.h |
294 | --- linux-2.6.29.6/arch/arm/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 294 | --- linux-2.6.30.4/arch/arm/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
295 | +++ linux-2.6.29.6/arch/arm/include/asm/kmap_types.h 2009-07-23 17:34:32.033902767 -0400 | 295 | +++ linux-2.6.30.4/arch/arm/include/asm/kmap_types.h 2009-07-30 09:48:09.878525050 -0400 |
296 | @@ -18,6 +18,7 @@ enum km_type { | 296 | @@ -19,6 +19,7 @@ enum km_type { |
297 | KM_IRQ1, | ||
298 | KM_SOFTIRQ0, | 297 | KM_SOFTIRQ0, |
299 | KM_SOFTIRQ1, | 298 | KM_SOFTIRQ1, |
299 | KM_L2_CACHE, | ||
300 | + KM_CLEARPAGE, | 300 | + KM_CLEARPAGE, |
301 | KM_TYPE_NR | 301 | KM_TYPE_NR |
302 | }; | 302 | }; |
303 | 303 | ||
304 | diff -urNp linux-2.6.29.6/arch/arm/include/asm/uaccess.h linux-2.6.29.6/arch/arm/include/asm/uaccess.h | 304 | diff -urNp linux-2.6.30.4/arch/arm/include/asm/uaccess.h linux-2.6.30.4/arch/arm/include/asm/uaccess.h |
305 | --- linux-2.6.29.6/arch/arm/include/asm/uaccess.h 2009-07-02 19:41:20.000000000 -0400 | 305 | --- linux-2.6.30.4/arch/arm/include/asm/uaccess.h 2009-07-24 17:47:51.000000000 -0400 |
306 | +++ linux-2.6.29.6/arch/arm/include/asm/uaccess.h 2009-07-23 17:34:32.033902767 -0400 | 306 | +++ linux-2.6.30.4/arch/arm/include/asm/uaccess.h 2009-07-30 09:48:09.878525050 -0400 |
307 | @@ -400,7 +400,7 @@ static inline unsigned long __must_check | 307 | @@ -398,6 +398,9 @@ extern unsigned long __must_check __strn |
308 | |||
309 | static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n) | ||
308 | { | 310 | { |
311 | + if ((long)n < 0) | ||
312 | + return n; | ||
313 | + | ||
309 | if (access_ok(VERIFY_READ, from, n)) | 314 | if (access_ok(VERIFY_READ, from, n)) |
310 | n = __copy_from_user(to, from, n); | 315 | n = __copy_from_user(to, from, n); |
311 | - else /* security hole - plug it */ | 316 | else /* security hole - plug it */ |
312 | + else if ((long)n > 0) /* security hole - plug it -- good idea! */ | 317 | @@ -407,6 +410,9 @@ static inline unsigned long __must_check |
313 | memset(to, 0, n); | 318 | |
319 | static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n) | ||
320 | { | ||
321 | + if ((long)n < 0) | ||
322 | + return n; | ||
323 | + | ||
324 | if (access_ok(VERIFY_WRITE, to, n)) | ||
325 | n = __copy_to_user(to, from, n); | ||
314 | return n; | 326 | return n; |
315 | } | 327 | diff -urNp linux-2.6.30.4/arch/arm/mach-ns9xxx/clock.c linux-2.6.30.4/arch/arm/mach-ns9xxx/clock.c |
316 | diff -urNp linux-2.6.29.6/arch/arm/mach-ns9xxx/clock.c linux-2.6.29.6/arch/arm/mach-ns9xxx/clock.c | 328 | --- linux-2.6.30.4/arch/arm/mach-ns9xxx/clock.c 2009-07-24 17:47:51.000000000 -0400 |
317 | --- linux-2.6.29.6/arch/arm/mach-ns9xxx/clock.c 2009-07-02 19:41:20.000000000 -0400 | 329 | +++ linux-2.6.30.4/arch/arm/mach-ns9xxx/clock.c 2009-07-30 09:48:09.879705308 -0400 |
318 | +++ linux-2.6.29.6/arch/arm/mach-ns9xxx/clock.c 2009-07-23 18:40:27.482433806 -0400 | ||
319 | @@ -195,7 +195,7 @@ static int clk_debugfs_open(struct inode | 330 | @@ -195,7 +195,7 @@ static int clk_debugfs_open(struct inode |
320 | return single_open(file, clk_debugfs_show, NULL); | 331 | return single_open(file, clk_debugfs_show, NULL); |
321 | } | 332 | } |
@@ -325,9 +336,9 @@ diff -urNp linux-2.6.29.6/arch/arm/mach-ns9xxx/clock.c linux-2.6.29.6/arch/arm/m | |||
325 | .open = clk_debugfs_open, | 336 | .open = clk_debugfs_open, |
326 | .read = seq_read, | 337 | .read = seq_read, |
327 | .llseek = seq_lseek, | 338 | .llseek = seq_lseek, |
328 | diff -urNp linux-2.6.29.6/arch/arm/mm/mmap.c linux-2.6.29.6/arch/arm/mm/mmap.c | 339 | diff -urNp linux-2.6.30.4/arch/arm/mm/mmap.c linux-2.6.30.4/arch/arm/mm/mmap.c |
329 | --- linux-2.6.29.6/arch/arm/mm/mmap.c 2009-07-02 19:41:20.000000000 -0400 | 340 | --- linux-2.6.30.4/arch/arm/mm/mmap.c 2009-07-24 17:47:51.000000000 -0400 |
330 | +++ linux-2.6.29.6/arch/arm/mm/mmap.c 2009-07-23 17:34:32.033902767 -0400 | 341 | +++ linux-2.6.30.4/arch/arm/mm/mmap.c 2009-07-30 09:48:09.881684524 -0400 |
331 | @@ -62,6 +62,10 @@ arch_get_unmapped_area(struct file *filp | 342 | @@ -62,6 +62,10 @@ arch_get_unmapped_area(struct file *filp |
332 | if (len > TASK_SIZE) | 343 | if (len > TASK_SIZE) |
333 | return -ENOMEM; | 344 | return -ENOMEM; |
@@ -364,9 +375,9 @@ diff -urNp linux-2.6.29.6/arch/arm/mm/mmap.c linux-2.6.29.6/arch/arm/mm/mmap.c | |||
364 | mm->cached_hole_size = 0; | 375 | mm->cached_hole_size = 0; |
365 | goto full_search; | 376 | goto full_search; |
366 | } | 377 | } |
367 | diff -urNp linux-2.6.29.6/arch/avr32/include/asm/atomic.h linux-2.6.29.6/arch/avr32/include/asm/atomic.h | 378 | diff -urNp linux-2.6.30.4/arch/avr32/include/asm/atomic.h linux-2.6.30.4/arch/avr32/include/asm/atomic.h |
368 | --- linux-2.6.29.6/arch/avr32/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400 | 379 | --- linux-2.6.30.4/arch/avr32/include/asm/atomic.h 2009-07-24 17:47:51.000000000 -0400 |
369 | +++ linux-2.6.29.6/arch/avr32/include/asm/atomic.h 2009-07-23 17:34:32.034839933 -0400 | 380 | +++ linux-2.6.30.4/arch/avr32/include/asm/atomic.h 2009-07-30 09:48:09.881684524 -0400 |
370 | @@ -176,9 +176,12 @@ static inline int atomic_sub_if_positive | 381 | @@ -176,9 +176,12 @@ static inline int atomic_sub_if_positive |
371 | #define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n))) | 382 | #define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n))) |
372 | 383 | ||
@@ -380,9 +391,9 @@ diff -urNp linux-2.6.29.6/arch/avr32/include/asm/atomic.h linux-2.6.29.6/arch/av | |||
380 | 391 | ||
381 | #define atomic_dec_return(v) atomic_sub_return(1, v) | 392 | #define atomic_dec_return(v) atomic_sub_return(1, v) |
382 | #define atomic_inc_return(v) atomic_add_return(1, v) | 393 | #define atomic_inc_return(v) atomic_add_return(1, v) |
383 | diff -urNp linux-2.6.29.6/arch/avr32/include/asm/elf.h linux-2.6.29.6/arch/avr32/include/asm/elf.h | 394 | diff -urNp linux-2.6.30.4/arch/avr32/include/asm/elf.h linux-2.6.30.4/arch/avr32/include/asm/elf.h |
384 | --- linux-2.6.29.6/arch/avr32/include/asm/elf.h 2009-07-02 19:41:20.000000000 -0400 | 395 | --- linux-2.6.30.4/arch/avr32/include/asm/elf.h 2009-07-24 17:47:51.000000000 -0400 |
385 | +++ linux-2.6.29.6/arch/avr32/include/asm/elf.h 2009-07-23 17:34:32.034839933 -0400 | 396 | +++ linux-2.6.30.4/arch/avr32/include/asm/elf.h 2009-07-30 09:48:09.881684524 -0400 |
386 | @@ -85,8 +85,14 @@ typedef struct user_fpu_struct elf_fpreg | 397 | @@ -85,8 +85,14 @@ typedef struct user_fpu_struct elf_fpreg |
387 | the loader. We need to make sure that it is out of the way of the program | 398 | the loader. We need to make sure that it is out of the way of the program |
388 | that it will "exec", and that there is sufficient room for the brk. */ | 399 | that it will "exec", and that there is sufficient room for the brk. */ |
@@ -399,9 +410,9 @@ diff -urNp linux-2.6.29.6/arch/avr32/include/asm/elf.h linux-2.6.29.6/arch/avr32 | |||
399 | 410 | ||
400 | /* This yields a mask that user programs can use to figure out what | 411 | /* This yields a mask that user programs can use to figure out what |
401 | instruction set this CPU supports. This could be done in user space, | 412 | instruction set this CPU supports. This could be done in user space, |
402 | diff -urNp linux-2.6.29.6/arch/avr32/include/asm/kmap_types.h linux-2.6.29.6/arch/avr32/include/asm/kmap_types.h | 413 | diff -urNp linux-2.6.30.4/arch/avr32/include/asm/kmap_types.h linux-2.6.30.4/arch/avr32/include/asm/kmap_types.h |
403 | --- linux-2.6.29.6/arch/avr32/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 414 | --- linux-2.6.30.4/arch/avr32/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
404 | +++ linux-2.6.29.6/arch/avr32/include/asm/kmap_types.h 2009-07-23 17:34:32.034839933 -0400 | 415 | +++ linux-2.6.30.4/arch/avr32/include/asm/kmap_types.h 2009-07-30 09:48:09.882650296 -0400 |
405 | @@ -22,7 +22,8 @@ D(10) KM_IRQ0, | 416 | @@ -22,7 +22,8 @@ D(10) KM_IRQ0, |
406 | D(11) KM_IRQ1, | 417 | D(11) KM_IRQ1, |
407 | D(12) KM_SOFTIRQ0, | 418 | D(12) KM_SOFTIRQ0, |
@@ -412,9 +423,9 @@ diff -urNp linux-2.6.29.6/arch/avr32/include/asm/kmap_types.h linux-2.6.29.6/arc | |||
412 | }; | 423 | }; |
413 | 424 | ||
414 | #undef D | 425 | #undef D |
415 | diff -urNp linux-2.6.29.6/arch/avr32/mm/fault.c linux-2.6.29.6/arch/avr32/mm/fault.c | 426 | diff -urNp linux-2.6.30.4/arch/avr32/mm/fault.c linux-2.6.30.4/arch/avr32/mm/fault.c |
416 | --- linux-2.6.29.6/arch/avr32/mm/fault.c 2009-07-02 19:41:20.000000000 -0400 | 427 | --- linux-2.6.30.4/arch/avr32/mm/fault.c 2009-07-24 17:47:51.000000000 -0400 |
417 | +++ linux-2.6.29.6/arch/avr32/mm/fault.c 2009-07-23 17:34:32.035832174 -0400 | 428 | +++ linux-2.6.30.4/arch/avr32/mm/fault.c 2009-07-30 09:48:09.882650296 -0400 |
418 | @@ -41,6 +41,23 @@ static inline int notify_page_fault(stru | 429 | @@ -41,6 +41,23 @@ static inline int notify_page_fault(stru |
419 | 430 | ||
420 | int exception_trace = 1; | 431 | int exception_trace = 1; |
@@ -456,9 +467,9 @@ diff -urNp linux-2.6.29.6/arch/avr32/mm/fault.c linux-2.6.29.6/arch/avr32/mm/fau | |||
456 | if (exception_trace && printk_ratelimit()) | 467 | if (exception_trace && printk_ratelimit()) |
457 | printk("%s%s[%d]: segfault at %08lx pc %08lx " | 468 | printk("%s%s[%d]: segfault at %08lx pc %08lx " |
458 | "sp %08lx ecr %lu\n", | 469 | "sp %08lx ecr %lu\n", |
459 | diff -urNp linux-2.6.29.6/arch/blackfin/include/asm/atomic.h linux-2.6.29.6/arch/blackfin/include/asm/atomic.h | 470 | diff -urNp linux-2.6.30.4/arch/blackfin/include/asm/atomic.h linux-2.6.30.4/arch/blackfin/include/asm/atomic.h |
460 | --- linux-2.6.29.6/arch/blackfin/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400 | 471 | --- linux-2.6.30.4/arch/blackfin/include/asm/atomic.h 2009-07-24 17:47:51.000000000 -0400 |
461 | +++ linux-2.6.29.6/arch/blackfin/include/asm/atomic.h 2009-07-23 17:34:32.036919850 -0400 | 472 | +++ linux-2.6.30.4/arch/blackfin/include/asm/atomic.h 2009-07-30 09:48:09.882650296 -0400 |
462 | @@ -178,6 +178,9 @@ static inline void atomic_set_mask(unsig | 473 | @@ -178,6 +178,9 @@ static inline void atomic_set_mask(unsig |
463 | 474 | ||
464 | #endif /* !CONFIG_SMP */ | 475 | #endif /* !CONFIG_SMP */ |
@@ -469,9 +480,9 @@ diff -urNp linux-2.6.29.6/arch/blackfin/include/asm/atomic.h linux-2.6.29.6/arch | |||
469 | #define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0) | 480 | #define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0) |
470 | #define atomic_dec_return(v) atomic_sub_return(1,(v)) | 481 | #define atomic_dec_return(v) atomic_sub_return(1,(v)) |
471 | #define atomic_inc_return(v) atomic_add_return(1,(v)) | 482 | #define atomic_inc_return(v) atomic_add_return(1,(v)) |
472 | diff -urNp linux-2.6.29.6/arch/blackfin/include/asm/kmap_types.h linux-2.6.29.6/arch/blackfin/include/asm/kmap_types.h | 483 | diff -urNp linux-2.6.30.4/arch/blackfin/include/asm/kmap_types.h linux-2.6.30.4/arch/blackfin/include/asm/kmap_types.h |
473 | --- linux-2.6.29.6/arch/blackfin/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 484 | --- linux-2.6.30.4/arch/blackfin/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
474 | +++ linux-2.6.29.6/arch/blackfin/include/asm/kmap_types.h 2009-07-23 17:34:32.036919850 -0400 | 485 | +++ linux-2.6.30.4/arch/blackfin/include/asm/kmap_types.h 2009-07-30 09:48:09.883618875 -0400 |
475 | @@ -15,6 +15,7 @@ enum km_type { | 486 | @@ -15,6 +15,7 @@ enum km_type { |
476 | KM_IRQ1, | 487 | KM_IRQ1, |
477 | KM_SOFTIRQ0, | 488 | KM_SOFTIRQ0, |
@@ -480,9 +491,9 @@ diff -urNp linux-2.6.29.6/arch/blackfin/include/asm/kmap_types.h linux-2.6.29.6/ | |||
480 | KM_TYPE_NR | 491 | KM_TYPE_NR |
481 | }; | 492 | }; |
482 | 493 | ||
483 | diff -urNp linux-2.6.29.6/arch/blackfin/mach-bf561/coreb.c linux-2.6.29.6/arch/blackfin/mach-bf561/coreb.c | 494 | diff -urNp linux-2.6.30.4/arch/blackfin/mach-bf561/coreb.c linux-2.6.30.4/arch/blackfin/mach-bf561/coreb.c |
484 | --- linux-2.6.29.6/arch/blackfin/mach-bf561/coreb.c 2009-07-02 19:41:20.000000000 -0400 | 495 | --- linux-2.6.30.4/arch/blackfin/mach-bf561/coreb.c 2009-07-24 17:47:51.000000000 -0400 |
485 | +++ linux-2.6.29.6/arch/blackfin/mach-bf561/coreb.c 2009-07-23 18:40:27.483411300 -0400 | 496 | +++ linux-2.6.30.4/arch/blackfin/mach-bf561/coreb.c 2009-07-30 09:48:09.883618875 -0400 |
486 | @@ -292,7 +292,7 @@ static int coreb_ioctl(struct inode *ino | 497 | @@ -292,7 +292,7 @@ static int coreb_ioctl(struct inode *ino |
487 | return retval; | 498 | return retval; |
488 | } | 499 | } |
@@ -492,9 +503,9 @@ diff -urNp linux-2.6.29.6/arch/blackfin/mach-bf561/coreb.c linux-2.6.29.6/arch/b | |||
492 | .owner = THIS_MODULE, | 503 | .owner = THIS_MODULE, |
493 | .llseek = coreb_lseek, | 504 | .llseek = coreb_lseek, |
494 | .read = coreb_read, | 505 | .read = coreb_read, |
495 | diff -urNp linux-2.6.29.6/arch/cris/arch-v10/drivers/sync_serial.c linux-2.6.29.6/arch/cris/arch-v10/drivers/sync_serial.c | 506 | diff -urNp linux-2.6.30.4/arch/cris/arch-v10/drivers/sync_serial.c linux-2.6.30.4/arch/cris/arch-v10/drivers/sync_serial.c |
496 | --- linux-2.6.29.6/arch/cris/arch-v10/drivers/sync_serial.c 2009-07-02 19:41:20.000000000 -0400 | 507 | --- linux-2.6.30.4/arch/cris/arch-v10/drivers/sync_serial.c 2009-07-24 17:47:51.000000000 -0400 |
497 | +++ linux-2.6.29.6/arch/cris/arch-v10/drivers/sync_serial.c 2009-07-23 18:40:27.483411300 -0400 | 508 | +++ linux-2.6.30.4/arch/cris/arch-v10/drivers/sync_serial.c 2009-07-30 09:48:09.883618875 -0400 |
498 | @@ -244,7 +244,7 @@ static unsigned sync_serial_prescale_sha | 509 | @@ -244,7 +244,7 @@ static unsigned sync_serial_prescale_sha |
499 | 510 | ||
500 | #define NUMBER_OF_PORTS 2 | 511 | #define NUMBER_OF_PORTS 2 |
@@ -504,9 +515,9 @@ diff -urNp linux-2.6.29.6/arch/cris/arch-v10/drivers/sync_serial.c linux-2.6.29. | |||
504 | .owner = THIS_MODULE, | 515 | .owner = THIS_MODULE, |
505 | .write = sync_serial_write, | 516 | .write = sync_serial_write, |
506 | .read = sync_serial_read, | 517 | .read = sync_serial_read, |
507 | diff -urNp linux-2.6.29.6/arch/cris/arch-v32/drivers/mach-fs/gpio.c linux-2.6.29.6/arch/cris/arch-v32/drivers/mach-fs/gpio.c | 518 | diff -urNp linux-2.6.30.4/arch/cris/arch-v32/drivers/mach-fs/gpio.c linux-2.6.30.4/arch/cris/arch-v32/drivers/mach-fs/gpio.c |
508 | --- linux-2.6.29.6/arch/cris/arch-v32/drivers/mach-fs/gpio.c 2009-07-02 19:41:20.000000000 -0400 | 519 | --- linux-2.6.30.4/arch/cris/arch-v32/drivers/mach-fs/gpio.c 2009-07-24 17:47:51.000000000 -0400 |
509 | +++ linux-2.6.29.6/arch/cris/arch-v32/drivers/mach-fs/gpio.c 2009-07-23 18:40:27.484276735 -0400 | 520 | +++ linux-2.6.30.4/arch/cris/arch-v32/drivers/mach-fs/gpio.c 2009-07-30 12:06:52.081911892 -0400 |
510 | @@ -855,7 +855,7 @@ gpio_leds_ioctl(unsigned int cmd, unsign | 521 | @@ -855,7 +855,7 @@ gpio_leds_ioctl(unsigned int cmd, unsign |
511 | return 0; | 522 | return 0; |
512 | } | 523 | } |
@@ -516,9 +527,9 @@ diff -urNp linux-2.6.29.6/arch/cris/arch-v32/drivers/mach-fs/gpio.c linux-2.6.29 | |||
516 | .owner = THIS_MODULE, | 527 | .owner = THIS_MODULE, |
517 | .poll = gpio_poll, | 528 | .poll = gpio_poll, |
518 | .ioctl = gpio_ioctl, | 529 | .ioctl = gpio_ioctl, |
519 | diff -urNp linux-2.6.29.6/arch/cris/include/asm/atomic.h linux-2.6.29.6/arch/cris/include/asm/atomic.h | 530 | diff -urNp linux-2.6.30.4/arch/cris/include/asm/atomic.h linux-2.6.30.4/arch/cris/include/asm/atomic.h |
520 | --- linux-2.6.29.6/arch/cris/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400 | 531 | --- linux-2.6.30.4/arch/cris/include/asm/atomic.h 2009-07-24 17:47:51.000000000 -0400 |
521 | +++ linux-2.6.29.6/arch/cris/include/asm/atomic.h 2009-07-23 17:34:32.036919850 -0400 | 532 | +++ linux-2.6.30.4/arch/cris/include/asm/atomic.h 2009-07-30 09:48:09.884412595 -0400 |
522 | @@ -152,6 +152,10 @@ static inline int atomic_add_unless(atom | 533 | @@ -152,6 +152,10 @@ static inline int atomic_add_unless(atom |
523 | } | 534 | } |
524 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) | 535 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) |
@@ -530,9 +541,9 @@ diff -urNp linux-2.6.29.6/arch/cris/include/asm/atomic.h linux-2.6.29.6/arch/cri | |||
530 | /* Atomic operations are already serializing */ | 541 | /* Atomic operations are already serializing */ |
531 | #define smp_mb__before_atomic_dec() barrier() | 542 | #define smp_mb__before_atomic_dec() barrier() |
532 | #define smp_mb__after_atomic_dec() barrier() | 543 | #define smp_mb__after_atomic_dec() barrier() |
533 | diff -urNp linux-2.6.29.6/arch/cris/include/asm/kmap_types.h linux-2.6.29.6/arch/cris/include/asm/kmap_types.h | 544 | diff -urNp linux-2.6.30.4/arch/cris/include/asm/kmap_types.h linux-2.6.30.4/arch/cris/include/asm/kmap_types.h |
534 | --- linux-2.6.29.6/arch/cris/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 545 | --- linux-2.6.30.4/arch/cris/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
535 | +++ linux-2.6.29.6/arch/cris/include/asm/kmap_types.h 2009-07-23 17:34:32.036919850 -0400 | 546 | +++ linux-2.6.30.4/arch/cris/include/asm/kmap_types.h 2009-07-30 09:48:09.884412595 -0400 |
536 | @@ -19,6 +19,7 @@ enum km_type { | 547 | @@ -19,6 +19,7 @@ enum km_type { |
537 | KM_IRQ1, | 548 | KM_IRQ1, |
538 | KM_SOFTIRQ0, | 549 | KM_SOFTIRQ0, |
@@ -541,9 +552,34 @@ diff -urNp linux-2.6.29.6/arch/cris/include/asm/kmap_types.h linux-2.6.29.6/arch | |||
541 | KM_TYPE_NR | 552 | KM_TYPE_NR |
542 | }; | 553 | }; |
543 | 554 | ||
544 | diff -urNp linux-2.6.29.6/arch/h8300/include/asm/atomic.h linux-2.6.29.6/arch/h8300/include/asm/atomic.h | 555 | diff -urNp linux-2.6.30.4/arch/frv/include/asm/atomic.h linux-2.6.30.4/arch/frv/include/asm/atomic.h |
545 | --- linux-2.6.29.6/arch/h8300/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400 | 556 | --- linux-2.6.30.4/arch/frv/include/asm/atomic.h 2009-07-24 17:47:51.000000000 -0400 |
546 | +++ linux-2.6.29.6/arch/h8300/include/asm/atomic.h 2009-07-23 17:34:32.036919850 -0400 | 557 | +++ linux-2.6.30.4/arch/frv/include/asm/atomic.h 2009-07-30 09:48:09.885412202 -0400 |
558 | @@ -114,6 +114,10 @@ static inline void atomic_dec(atomic_t * | ||
559 | atomic_sub_return(1, v); | ||
560 | } | ||
561 | |||
562 | +#define atomic_inc_unchecked(v) atomic_inc(v) | ||
563 | +#define atomic_add_unchecked(i,v) atomic_add((i),(v)) | ||
564 | +#define atomic_sub_unchecked(i,v) atomic_sub((i),(v)) | ||
565 | + | ||
566 | #define atomic_dec_return(v) atomic_sub_return(1, (v)) | ||
567 | #define atomic_inc_return(v) atomic_add_return(1, (v)) | ||
568 | |||
569 | diff -urNp linux-2.6.30.4/arch/frv/include/asm/kmap_types.h linux-2.6.30.4/arch/frv/include/asm/kmap_types.h | ||
570 | --- linux-2.6.30.4/arch/frv/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 | ||
571 | +++ linux-2.6.30.4/arch/frv/include/asm/kmap_types.h 2009-07-30 09:48:09.885412202 -0400 | ||
572 | @@ -23,6 +23,7 @@ enum km_type { | ||
573 | KM_IRQ1, | ||
574 | KM_SOFTIRQ0, | ||
575 | KM_SOFTIRQ1, | ||
576 | + KM_CLEARPAGE, | ||
577 | KM_TYPE_NR | ||
578 | }; | ||
579 | |||
580 | diff -urNp linux-2.6.30.4/arch/h8300/include/asm/atomic.h linux-2.6.30.4/arch/h8300/include/asm/atomic.h | ||
581 | --- linux-2.6.30.4/arch/h8300/include/asm/atomic.h 2009-07-24 17:47:51.000000000 -0400 | ||
582 | +++ linux-2.6.30.4/arch/h8300/include/asm/atomic.h 2009-07-30 09:48:09.885412202 -0400 | ||
547 | @@ -26,6 +26,7 @@ static __inline__ int atomic_add_return( | 583 | @@ -26,6 +26,7 @@ static __inline__ int atomic_add_return( |
548 | } | 584 | } |
549 | 585 | ||
@@ -568,9 +604,9 @@ diff -urNp linux-2.6.29.6/arch/h8300/include/asm/atomic.h linux-2.6.29.6/arch/h8 | |||
568 | 604 | ||
569 | /* | 605 | /* |
570 | * atomic_inc_and_test - increment and test | 606 | * atomic_inc_and_test - increment and test |
571 | diff -urNp linux-2.6.29.6/arch/h8300/include/asm/kmap_types.h linux-2.6.29.6/arch/h8300/include/asm/kmap_types.h | 607 | diff -urNp linux-2.6.30.4/arch/h8300/include/asm/kmap_types.h linux-2.6.30.4/arch/h8300/include/asm/kmap_types.h |
572 | --- linux-2.6.29.6/arch/h8300/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 608 | --- linux-2.6.30.4/arch/h8300/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
573 | +++ linux-2.6.29.6/arch/h8300/include/asm/kmap_types.h 2009-07-23 17:34:32.036919850 -0400 | 609 | +++ linux-2.6.30.4/arch/h8300/include/asm/kmap_types.h 2009-07-30 09:48:09.885412202 -0400 |
574 | @@ -15,6 +15,7 @@ enum km_type { | 610 | @@ -15,6 +15,7 @@ enum km_type { |
575 | KM_IRQ1, | 611 | KM_IRQ1, |
576 | KM_SOFTIRQ0, | 612 | KM_SOFTIRQ0, |
@@ -579,9 +615,9 @@ diff -urNp linux-2.6.29.6/arch/h8300/include/asm/kmap_types.h linux-2.6.29.6/arc | |||
579 | KM_TYPE_NR | 615 | KM_TYPE_NR |
580 | }; | 616 | }; |
581 | 617 | ||
582 | diff -urNp linux-2.6.29.6/arch/ia64/ia32/binfmt_elf32.c linux-2.6.29.6/arch/ia64/ia32/binfmt_elf32.c | 618 | diff -urNp linux-2.6.30.4/arch/ia64/ia32/binfmt_elf32.c linux-2.6.30.4/arch/ia64/ia32/binfmt_elf32.c |
583 | --- linux-2.6.29.6/arch/ia64/ia32/binfmt_elf32.c 2009-07-02 19:41:20.000000000 -0400 | 619 | --- linux-2.6.30.4/arch/ia64/ia32/binfmt_elf32.c 2009-07-24 17:47:51.000000000 -0400 |
584 | +++ linux-2.6.29.6/arch/ia64/ia32/binfmt_elf32.c 2009-07-23 18:40:27.465457938 -0400 | 620 | +++ linux-2.6.30.4/arch/ia64/ia32/binfmt_elf32.c 2009-07-30 09:48:09.886522893 -0400 |
585 | @@ -45,6 +45,13 @@ randomize_stack_top(unsigned long stack_ | 621 | @@ -45,6 +45,13 @@ randomize_stack_top(unsigned long stack_ |
586 | 622 | ||
587 | #define elf_read_implies_exec(ex, have_pt_gnu_stack) (!(have_pt_gnu_stack)) | 623 | #define elf_read_implies_exec(ex, have_pt_gnu_stack) (!(have_pt_gnu_stack)) |
@@ -610,9 +646,9 @@ diff -urNp linux-2.6.29.6/arch/ia64/ia32/binfmt_elf32.c linux-2.6.29.6/arch/ia64 | |||
610 | .fault = ia32_install_gate_page | 646 | .fault = ia32_install_gate_page |
611 | }; | 647 | }; |
612 | 648 | ||
613 | diff -urNp linux-2.6.29.6/arch/ia64/ia32/ia32priv.h linux-2.6.29.6/arch/ia64/ia32/ia32priv.h | 649 | diff -urNp linux-2.6.30.4/arch/ia64/ia32/ia32priv.h linux-2.6.30.4/arch/ia64/ia32/ia32priv.h |
614 | --- linux-2.6.29.6/arch/ia64/ia32/ia32priv.h 2009-07-02 19:41:20.000000000 -0400 | 650 | --- linux-2.6.30.4/arch/ia64/ia32/ia32priv.h 2009-07-24 17:47:51.000000000 -0400 |
615 | +++ linux-2.6.29.6/arch/ia64/ia32/ia32priv.h 2009-07-23 17:34:32.037851190 -0400 | 651 | +++ linux-2.6.30.4/arch/ia64/ia32/ia32priv.h 2009-07-30 09:48:09.886522893 -0400 |
616 | @@ -296,7 +296,14 @@ typedef struct compat_siginfo { | 652 | @@ -296,7 +296,14 @@ typedef struct compat_siginfo { |
617 | #define ELF_DATA ELFDATA2LSB | 653 | #define ELF_DATA ELFDATA2LSB |
618 | #define ELF_ARCH EM_386 | 654 | #define ELF_ARCH EM_386 |
@@ -629,9 +665,9 @@ diff -urNp linux-2.6.29.6/arch/ia64/ia32/ia32priv.h linux-2.6.29.6/arch/ia64/ia3 | |||
629 | #define IA32_GATE_OFFSET IA32_PAGE_OFFSET | 665 | #define IA32_GATE_OFFSET IA32_PAGE_OFFSET |
630 | #define IA32_GATE_END IA32_PAGE_OFFSET + PAGE_SIZE | 666 | #define IA32_GATE_END IA32_PAGE_OFFSET + PAGE_SIZE |
631 | 667 | ||
632 | diff -urNp linux-2.6.29.6/arch/ia64/include/asm/atomic.h linux-2.6.29.6/arch/ia64/include/asm/atomic.h | 668 | diff -urNp linux-2.6.30.4/arch/ia64/include/asm/atomic.h linux-2.6.30.4/arch/ia64/include/asm/atomic.h |
633 | --- linux-2.6.29.6/arch/ia64/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400 | 669 | --- linux-2.6.30.4/arch/ia64/include/asm/atomic.h 2009-07-24 17:47:51.000000000 -0400 |
634 | +++ linux-2.6.29.6/arch/ia64/include/asm/atomic.h 2009-07-23 17:34:32.037851190 -0400 | 670 | +++ linux-2.6.30.4/arch/ia64/include/asm/atomic.h 2009-07-30 09:48:09.886522893 -0400 |
635 | @@ -201,8 +201,11 @@ atomic64_add_negative (__s64 i, atomic64 | 671 | @@ -201,8 +201,11 @@ atomic64_add_negative (__s64 i, atomic64 |
636 | #define atomic64_inc_and_test(v) (atomic64_add_return(1, (v)) == 0) | 672 | #define atomic64_inc_and_test(v) (atomic64_add_return(1, (v)) == 0) |
637 | 673 | ||
@@ -644,9 +680,9 @@ diff -urNp linux-2.6.29.6/arch/ia64/include/asm/atomic.h linux-2.6.29.6/arch/ia6 | |||
644 | #define atomic_dec(v) atomic_sub(1, (v)) | 680 | #define atomic_dec(v) atomic_sub(1, (v)) |
645 | 681 | ||
646 | #define atomic64_add(i,v) atomic64_add_return((i), (v)) | 682 | #define atomic64_add(i,v) atomic64_add_return((i), (v)) |
647 | diff -urNp linux-2.6.29.6/arch/ia64/include/asm/elf.h linux-2.6.29.6/arch/ia64/include/asm/elf.h | 683 | diff -urNp linux-2.6.30.4/arch/ia64/include/asm/elf.h linux-2.6.30.4/arch/ia64/include/asm/elf.h |
648 | --- linux-2.6.29.6/arch/ia64/include/asm/elf.h 2009-07-02 19:41:20.000000000 -0400 | 684 | --- linux-2.6.30.4/arch/ia64/include/asm/elf.h 2009-07-24 17:47:51.000000000 -0400 |
649 | +++ linux-2.6.29.6/arch/ia64/include/asm/elf.h 2009-07-23 17:34:32.037851190 -0400 | 685 | +++ linux-2.6.30.4/arch/ia64/include/asm/elf.h 2009-07-30 09:48:09.887468908 -0400 |
650 | @@ -43,6 +43,13 @@ | 686 | @@ -43,6 +43,13 @@ |
651 | */ | 687 | */ |
652 | #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x800000000UL) | 688 | #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x800000000UL) |
@@ -661,9 +697,9 @@ diff -urNp linux-2.6.29.6/arch/ia64/include/asm/elf.h linux-2.6.29.6/arch/ia64/i | |||
661 | #define PT_IA_64_UNWIND 0x70000001 | 697 | #define PT_IA_64_UNWIND 0x70000001 |
662 | 698 | ||
663 | /* IA-64 relocations: */ | 699 | /* IA-64 relocations: */ |
664 | diff -urNp linux-2.6.29.6/arch/ia64/include/asm/kmap_types.h linux-2.6.29.6/arch/ia64/include/asm/kmap_types.h | 700 | diff -urNp linux-2.6.30.4/arch/ia64/include/asm/kmap_types.h linux-2.6.30.4/arch/ia64/include/asm/kmap_types.h |
665 | --- linux-2.6.29.6/arch/ia64/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 701 | --- linux-2.6.30.4/arch/ia64/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
666 | +++ linux-2.6.29.6/arch/ia64/include/asm/kmap_types.h 2009-07-23 17:34:32.037851190 -0400 | 702 | +++ linux-2.6.30.4/arch/ia64/include/asm/kmap_types.h 2009-07-30 09:48:09.887468908 -0400 |
667 | @@ -22,7 +22,8 @@ D(9) KM_IRQ0, | 703 | @@ -22,7 +22,8 @@ D(9) KM_IRQ0, |
668 | D(10) KM_IRQ1, | 704 | D(10) KM_IRQ1, |
669 | D(11) KM_SOFTIRQ0, | 705 | D(11) KM_SOFTIRQ0, |
@@ -674,9 +710,9 @@ diff -urNp linux-2.6.29.6/arch/ia64/include/asm/kmap_types.h linux-2.6.29.6/arch | |||
674 | }; | 710 | }; |
675 | 711 | ||
676 | #undef D | 712 | #undef D |
677 | diff -urNp linux-2.6.29.6/arch/ia64/include/asm/pgtable.h linux-2.6.29.6/arch/ia64/include/asm/pgtable.h | 713 | diff -urNp linux-2.6.30.4/arch/ia64/include/asm/pgtable.h linux-2.6.30.4/arch/ia64/include/asm/pgtable.h |
678 | --- linux-2.6.29.6/arch/ia64/include/asm/pgtable.h 2009-07-02 19:41:20.000000000 -0400 | 714 | --- linux-2.6.30.4/arch/ia64/include/asm/pgtable.h 2009-07-24 17:47:51.000000000 -0400 |
679 | +++ linux-2.6.29.6/arch/ia64/include/asm/pgtable.h 2009-07-23 17:34:32.037851190 -0400 | 715 | +++ linux-2.6.30.4/arch/ia64/include/asm/pgtable.h 2009-07-30 09:48:09.887468908 -0400 |
680 | @@ -143,6 +143,17 @@ | 716 | @@ -143,6 +143,17 @@ |
681 | #define PAGE_READONLY __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R) | 717 | #define PAGE_READONLY __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R) |
682 | #define PAGE_COPY __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R) | 718 | #define PAGE_COPY __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R) |
@@ -695,9 +731,9 @@ diff -urNp linux-2.6.29.6/arch/ia64/include/asm/pgtable.h linux-2.6.29.6/arch/ia | |||
695 | #define PAGE_GATE __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_X_RX) | 731 | #define PAGE_GATE __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_X_RX) |
696 | #define PAGE_KERNEL __pgprot(__DIRTY_BITS | _PAGE_PL_0 | _PAGE_AR_RWX) | 732 | #define PAGE_KERNEL __pgprot(__DIRTY_BITS | _PAGE_PL_0 | _PAGE_AR_RWX) |
697 | #define PAGE_KERNELRX __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_RX) | 733 | #define PAGE_KERNELRX __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_RX) |
698 | diff -urNp linux-2.6.29.6/arch/ia64/include/asm/uaccess.h linux-2.6.29.6/arch/ia64/include/asm/uaccess.h | 734 | diff -urNp linux-2.6.30.4/arch/ia64/include/asm/uaccess.h linux-2.6.30.4/arch/ia64/include/asm/uaccess.h |
699 | --- linux-2.6.29.6/arch/ia64/include/asm/uaccess.h 2009-07-02 19:41:20.000000000 -0400 | 735 | --- linux-2.6.30.4/arch/ia64/include/asm/uaccess.h 2009-07-24 17:47:51.000000000 -0400 |
700 | +++ linux-2.6.29.6/arch/ia64/include/asm/uaccess.h 2009-07-23 17:34:32.038733548 -0400 | 736 | +++ linux-2.6.30.4/arch/ia64/include/asm/uaccess.h 2009-07-30 11:10:48.660249525 -0400 |
701 | @@ -257,7 +257,7 @@ __copy_from_user (void *to, const void _ | 737 | @@ -257,7 +257,7 @@ __copy_from_user (void *to, const void _ |
702 | const void *__cu_from = (from); \ | 738 | const void *__cu_from = (from); \ |
703 | long __cu_len = (n); \ | 739 | long __cu_len = (n); \ |
@@ -716,9 +752,9 @@ diff -urNp linux-2.6.29.6/arch/ia64/include/asm/uaccess.h linux-2.6.29.6/arch/ia | |||
716 | __cu_len = __copy_user((__force void __user *) __cu_to, __cu_from, __cu_len); \ | 752 | __cu_len = __copy_user((__force void __user *) __cu_to, __cu_from, __cu_len); \ |
717 | __cu_len; \ | 753 | __cu_len; \ |
718 | }) | 754 | }) |
719 | diff -urNp linux-2.6.29.6/arch/ia64/kernel/module.c linux-2.6.29.6/arch/ia64/kernel/module.c | 755 | diff -urNp linux-2.6.30.4/arch/ia64/kernel/module.c linux-2.6.30.4/arch/ia64/kernel/module.c |
720 | --- linux-2.6.29.6/arch/ia64/kernel/module.c 2009-07-02 19:41:20.000000000 -0400 | 756 | --- linux-2.6.30.4/arch/ia64/kernel/module.c 2009-07-24 17:47:51.000000000 -0400 |
721 | +++ linux-2.6.29.6/arch/ia64/kernel/module.c 2009-07-23 17:34:32.038733548 -0400 | 757 | +++ linux-2.6.30.4/arch/ia64/kernel/module.c 2009-07-30 09:48:09.888412729 -0400 |
722 | @@ -312,8 +312,7 @@ module_alloc (unsigned long size) | 758 | @@ -312,8 +312,7 @@ module_alloc (unsigned long size) |
723 | void | 759 | void |
724 | module_free (struct module *mod, void *module_region) | 760 | module_free (struct module *mod, void *module_region) |
@@ -729,7 +765,7 @@ diff -urNp linux-2.6.29.6/arch/ia64/kernel/module.c linux-2.6.29.6/arch/ia64/ker | |||
729 | unw_remove_unwind_table(mod->arch.init_unw_table); | 765 | unw_remove_unwind_table(mod->arch.init_unw_table); |
730 | mod->arch.init_unw_table = NULL; | 766 | mod->arch.init_unw_table = NULL; |
731 | } | 767 | } |
732 | @@ -491,15 +490,39 @@ module_frob_arch_sections (Elf_Ehdr *ehd | 768 | @@ -499,15 +498,39 @@ module_frob_arch_sections (Elf_Ehdr *ehd |
733 | } | 769 | } |
734 | 770 | ||
735 | static inline int | 771 | static inline int |
@@ -771,7 +807,7 @@ diff -urNp linux-2.6.29.6/arch/ia64/kernel/module.c linux-2.6.29.6/arch/ia64/ker | |||
771 | } | 807 | } |
772 | 808 | ||
773 | static inline int | 809 | static inline int |
774 | @@ -683,7 +706,14 @@ do_reloc (struct module *mod, uint8_t r_ | 810 | @@ -690,7 +713,14 @@ do_reloc (struct module *mod, uint8_t r_ |
775 | break; | 811 | break; |
776 | 812 | ||
777 | case RV_BDREL: | 813 | case RV_BDREL: |
@@ -787,7 +823,7 @@ diff -urNp linux-2.6.29.6/arch/ia64/kernel/module.c linux-2.6.29.6/arch/ia64/ker | |||
787 | break; | 823 | break; |
788 | 824 | ||
789 | case RV_LTV: | 825 | case RV_LTV: |
790 | @@ -817,15 +847,15 @@ apply_relocate_add (Elf64_Shdr *sechdrs, | 826 | @@ -824,15 +854,15 @@ apply_relocate_add (Elf64_Shdr *sechdrs, |
791 | * addresses have been selected... | 827 | * addresses have been selected... |
792 | */ | 828 | */ |
793 | uint64_t gp; | 829 | uint64_t gp; |
@@ -807,21 +843,9 @@ diff -urNp linux-2.6.29.6/arch/ia64/kernel/module.c linux-2.6.29.6/arch/ia64/ker | |||
807 | mod->arch.gp = gp; | 843 | mod->arch.gp = gp; |
808 | DEBUGP("%s: placing gp at 0x%lx\n", __func__, gp); | 844 | DEBUGP("%s: placing gp at 0x%lx\n", __func__, gp); |
809 | } | 845 | } |
810 | diff -urNp linux-2.6.29.6/arch/ia64/kernel/perfmon.c linux-2.6.29.6/arch/ia64/kernel/perfmon.c | 846 | diff -urNp linux-2.6.30.4/arch/ia64/kernel/sys_ia64.c linux-2.6.30.4/arch/ia64/kernel/sys_ia64.c |
811 | --- linux-2.6.29.6/arch/ia64/kernel/perfmon.c 2009-07-02 19:41:20.000000000 -0400 | 847 | --- linux-2.6.30.4/arch/ia64/kernel/sys_ia64.c 2009-07-24 17:47:51.000000000 -0400 |
812 | +++ linux-2.6.29.6/arch/ia64/kernel/perfmon.c 2009-07-23 18:40:27.485493611 -0400 | 848 | +++ linux-2.6.30.4/arch/ia64/kernel/sys_ia64.c 2009-07-30 09:48:09.888412729 -0400 |
813 | @@ -2196,7 +2196,7 @@ pfmfs_delete_dentry(struct dentry *dentr | ||
814 | return 1; | ||
815 | } | ||
816 | |||
817 | -static struct dentry_operations pfmfs_dentry_operations = { | ||
818 | +static const struct dentry_operations pfmfs_dentry_operations = { | ||
819 | .d_delete = pfmfs_delete_dentry, | ||
820 | }; | ||
821 | |||
822 | diff -urNp linux-2.6.29.6/arch/ia64/kernel/sys_ia64.c linux-2.6.29.6/arch/ia64/kernel/sys_ia64.c | ||
823 | --- linux-2.6.29.6/arch/ia64/kernel/sys_ia64.c 2009-07-02 19:41:20.000000000 -0400 | ||
824 | +++ linux-2.6.29.6/arch/ia64/kernel/sys_ia64.c 2009-07-23 17:34:32.038733548 -0400 | ||
825 | @@ -43,6 +43,13 @@ arch_get_unmapped_area (struct file *fil | 849 | @@ -43,6 +43,13 @@ arch_get_unmapped_area (struct file *fil |
826 | if (REGION_NUMBER(addr) == RGN_HPAGE) | 850 | if (REGION_NUMBER(addr) == RGN_HPAGE) |
827 | addr = 0; | 851 | addr = 0; |
@@ -848,9 +872,9 @@ diff -urNp linux-2.6.29.6/arch/ia64/kernel/sys_ia64.c linux-2.6.29.6/arch/ia64/k | |||
848 | goto full_search; | 872 | goto full_search; |
849 | } | 873 | } |
850 | return -ENOMEM; | 874 | return -ENOMEM; |
851 | diff -urNp linux-2.6.29.6/arch/ia64/mm/fault.c linux-2.6.29.6/arch/ia64/mm/fault.c | 875 | diff -urNp linux-2.6.30.4/arch/ia64/mm/fault.c linux-2.6.30.4/arch/ia64/mm/fault.c |
852 | --- linux-2.6.29.6/arch/ia64/mm/fault.c 2009-07-02 19:41:20.000000000 -0400 | 876 | --- linux-2.6.30.4/arch/ia64/mm/fault.c 2009-07-24 17:47:51.000000000 -0400 |
853 | +++ linux-2.6.29.6/arch/ia64/mm/fault.c 2009-07-23 17:34:32.038733548 -0400 | 877 | +++ linux-2.6.30.4/arch/ia64/mm/fault.c 2009-07-30 09:48:09.889484146 -0400 |
854 | @@ -72,6 +72,23 @@ mapped_kernel_page_is_present (unsigned | 878 | @@ -72,6 +72,23 @@ mapped_kernel_page_is_present (unsigned |
855 | return pte_present(pte); | 879 | return pte_present(pte); |
856 | } | 880 | } |
@@ -900,10 +924,10 @@ diff -urNp linux-2.6.29.6/arch/ia64/mm/fault.c linux-2.6.29.6/arch/ia64/mm/fault | |||
900 | survive: | 924 | survive: |
901 | /* | 925 | /* |
902 | * If for any reason at all we couldn't handle the fault, make | 926 | * If for any reason at all we couldn't handle the fault, make |
903 | diff -urNp linux-2.6.29.6/arch/ia64/mm/init.c linux-2.6.29.6/arch/ia64/mm/init.c | 927 | diff -urNp linux-2.6.30.4/arch/ia64/mm/init.c linux-2.6.30.4/arch/ia64/mm/init.c |
904 | --- linux-2.6.29.6/arch/ia64/mm/init.c 2009-07-02 19:41:20.000000000 -0400 | 928 | --- linux-2.6.30.4/arch/ia64/mm/init.c 2009-07-24 17:47:51.000000000 -0400 |
905 | +++ linux-2.6.29.6/arch/ia64/mm/init.c 2009-07-23 17:34:32.038733548 -0400 | 929 | +++ linux-2.6.30.4/arch/ia64/mm/init.c 2009-07-30 09:48:09.889484146 -0400 |
906 | @@ -121,6 +121,19 @@ ia64_init_addr_space (void) | 930 | @@ -122,6 +122,19 @@ ia64_init_addr_space (void) |
907 | vma->vm_start = current->thread.rbs_bot & PAGE_MASK; | 931 | vma->vm_start = current->thread.rbs_bot & PAGE_MASK; |
908 | vma->vm_end = vma->vm_start + PAGE_SIZE; | 932 | vma->vm_end = vma->vm_start + PAGE_SIZE; |
909 | vma->vm_flags = VM_DATA_DEFAULT_FLAGS|VM_GROWSUP|VM_ACCOUNT; | 933 | vma->vm_flags = VM_DATA_DEFAULT_FLAGS|VM_GROWSUP|VM_ACCOUNT; |
@@ -923,21 +947,59 @@ diff -urNp linux-2.6.29.6/arch/ia64/mm/init.c linux-2.6.29.6/arch/ia64/mm/init.c | |||
923 | vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); | 947 | vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); |
924 | down_write(¤t->mm->mmap_sem); | 948 | down_write(¤t->mm->mmap_sem); |
925 | if (insert_vm_struct(current->mm, vma)) { | 949 | if (insert_vm_struct(current->mm, vma)) { |
926 | diff -urNp linux-2.6.29.6/arch/m32r/lib/usercopy.c linux-2.6.29.6/arch/m32r/lib/usercopy.c | 950 | diff -urNp linux-2.6.30.4/arch/m32r/include/asm/atomic.h linux-2.6.30.4/arch/m32r/include/asm/atomic.h |
927 | --- linux-2.6.29.6/arch/m32r/lib/usercopy.c 2009-07-02 19:41:20.000000000 -0400 | 951 | --- linux-2.6.30.4/arch/m32r/include/asm/atomic.h 2009-07-24 17:47:51.000000000 -0400 |
928 | +++ linux-2.6.29.6/arch/m32r/lib/usercopy.c 2009-07-23 17:34:32.039725062 -0400 | 952 | +++ linux-2.6.30.4/arch/m32r/include/asm/atomic.h 2009-07-30 09:48:09.889484146 -0400 |
929 | @@ -26,7 +26,7 @@ __generic_copy_from_user(void *to, const | 953 | @@ -308,6 +308,10 @@ static __inline__ void atomic_set_mask(u |
954 | local_irq_restore(flags); | ||
955 | } | ||
956 | |||
957 | +#define atomic_inc_unchecked(v) atomic_inc(v) | ||
958 | +#define atomic_add_unchecked(i,v) atomic_add((i),(v)) | ||
959 | +#define atomic_sub_unchecked(i,v) atomic_sub((i),(v)) | ||
960 | + | ||
961 | /* Atomic operations are already serializing on m32r */ | ||
962 | #define smp_mb__before_atomic_dec() barrier() | ||
963 | #define smp_mb__after_atomic_dec() barrier() | ||
964 | diff -urNp linux-2.6.30.4/arch/m32r/include/asm/kmap_types.h linux-2.6.30.4/arch/m32r/include/asm/kmap_types.h | ||
965 | --- linux-2.6.30.4/arch/m32r/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 | ||
966 | +++ linux-2.6.30.4/arch/m32r/include/asm/kmap_types.h 2009-07-30 09:48:09.890443797 -0400 | ||
967 | @@ -21,7 +21,8 @@ D(9) KM_IRQ0, | ||
968 | D(10) KM_IRQ1, | ||
969 | D(11) KM_SOFTIRQ0, | ||
970 | D(12) KM_SOFTIRQ1, | ||
971 | -D(13) KM_TYPE_NR | ||
972 | +D(13) KM_CLEARPAGE, | ||
973 | +D(14) KM_TYPE_NR | ||
974 | }; | ||
975 | |||
976 | #undef D | ||
977 | diff -urNp linux-2.6.30.4/arch/m32r/lib/usercopy.c linux-2.6.30.4/arch/m32r/lib/usercopy.c | ||
978 | --- linux-2.6.30.4/arch/m32r/lib/usercopy.c 2009-07-24 17:47:51.000000000 -0400 | ||
979 | +++ linux-2.6.30.4/arch/m32r/lib/usercopy.c 2009-07-30 09:48:09.890443797 -0400 | ||
980 | @@ -14,6 +14,9 @@ | ||
981 | unsigned long | ||
982 | __generic_copy_to_user(void __user *to, const void *from, unsigned long n) | ||
983 | { | ||
984 | + if ((long)n < 0) | ||
985 | + return n; | ||
986 | + | ||
987 | prefetch(from); | ||
988 | if (access_ok(VERIFY_WRITE, to, n)) | ||
989 | __copy_user(to,from,n); | ||
990 | @@ -23,6 +26,9 @@ __generic_copy_to_user(void __user *to, | ||
991 | unsigned long | ||
992 | __generic_copy_from_user(void *to, const void __user *from, unsigned long n) | ||
993 | { | ||
994 | + if ((long)n < 0) | ||
995 | + return n; | ||
996 | + | ||
930 | prefetchw(to); | 997 | prefetchw(to); |
931 | if (access_ok(VERIFY_READ, from, n)) | 998 | if (access_ok(VERIFY_READ, from, n)) |
932 | __copy_user_zeroing(to,from,n); | 999 | __copy_user_zeroing(to,from,n); |
933 | - else | 1000 | diff -urNp linux-2.6.30.4/arch/m68k/include/asm/atomic_mm.h linux-2.6.30.4/arch/m68k/include/asm/atomic_mm.h |
934 | + else if ((long)n > 0) | 1001 | --- linux-2.6.30.4/arch/m68k/include/asm/atomic_mm.h 2009-07-24 17:47:51.000000000 -0400 |
935 | memset(to, 0, n); | 1002 | +++ linux-2.6.30.4/arch/m68k/include/asm/atomic_mm.h 2009-07-30 09:48:09.890443797 -0400 |
936 | return n; | ||
937 | } | ||
938 | diff -urNp linux-2.6.29.6/arch/m68k/include/asm/atomic_mm.h linux-2.6.29.6/arch/m68k/include/asm/atomic_mm.h | ||
939 | --- linux-2.6.29.6/arch/m68k/include/asm/atomic_mm.h 2009-07-02 19:41:20.000000000 -0400 | ||
940 | +++ linux-2.6.29.6/arch/m68k/include/asm/atomic_mm.h 2009-07-23 17:34:32.039725062 -0400 | ||
941 | @@ -186,6 +186,10 @@ static __inline__ int atomic_add_unless( | 1003 | @@ -186,6 +186,10 @@ static __inline__ int atomic_add_unless( |
942 | 1004 | ||
943 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) | 1005 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) |
@@ -949,9 +1011,9 @@ diff -urNp linux-2.6.29.6/arch/m68k/include/asm/atomic_mm.h linux-2.6.29.6/arch/ | |||
949 | /* Atomic operations are already serializing */ | 1011 | /* Atomic operations are already serializing */ |
950 | #define smp_mb__before_atomic_dec() barrier() | 1012 | #define smp_mb__before_atomic_dec() barrier() |
951 | #define smp_mb__after_atomic_dec() barrier() | 1013 | #define smp_mb__after_atomic_dec() barrier() |
952 | diff -urNp linux-2.6.29.6/arch/m68k/include/asm/atomic_no.h linux-2.6.29.6/arch/m68k/include/asm/atomic_no.h | 1014 | diff -urNp linux-2.6.30.4/arch/m68k/include/asm/atomic_no.h linux-2.6.30.4/arch/m68k/include/asm/atomic_no.h |
953 | --- linux-2.6.29.6/arch/m68k/include/asm/atomic_no.h 2009-07-02 19:41:20.000000000 -0400 | 1015 | --- linux-2.6.30.4/arch/m68k/include/asm/atomic_no.h 2009-07-24 17:47:51.000000000 -0400 |
954 | +++ linux-2.6.29.6/arch/m68k/include/asm/atomic_no.h 2009-07-23 17:34:32.039725062 -0400 | 1016 | +++ linux-2.6.30.4/arch/m68k/include/asm/atomic_no.h 2009-07-30 09:48:09.890443797 -0400 |
955 | @@ -151,5 +151,9 @@ static __inline__ int atomic_add_unless( | 1017 | @@ -151,5 +151,9 @@ static __inline__ int atomic_add_unless( |
956 | #define atomic_dec_return(v) atomic_sub_return(1,(v)) | 1018 | #define atomic_dec_return(v) atomic_sub_return(1,(v)) |
957 | #define atomic_inc_return(v) atomic_add_return(1,(v)) | 1019 | #define atomic_inc_return(v) atomic_add_return(1,(v)) |
@@ -962,20 +1024,9 @@ diff -urNp linux-2.6.29.6/arch/m68k/include/asm/atomic_no.h linux-2.6.29.6/arch/ | |||
962 | + | 1024 | + |
963 | #include <asm-generic/atomic.h> | 1025 | #include <asm-generic/atomic.h> |
964 | #endif /* __ARCH_M68KNOMMU_ATOMIC __ */ | 1026 | #endif /* __ARCH_M68KNOMMU_ATOMIC __ */ |
965 | diff -urNp linux-2.6.29.6/arch/m68k/include/asm/kmap_types_mm.h linux-2.6.29.6/arch/m68k/include/asm/kmap_types_mm.h | 1027 | diff -urNp linux-2.6.30.4/arch/m68k/include/asm/kmap_types.h linux-2.6.30.4/arch/m68k/include/asm/kmap_types.h |
966 | --- linux-2.6.29.6/arch/m68k/include/asm/kmap_types_mm.h 2009-07-02 19:41:20.000000000 -0400 | 1028 | --- linux-2.6.30.4/arch/m68k/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
967 | +++ linux-2.6.29.6/arch/m68k/include/asm/kmap_types_mm.h 2009-07-23 17:34:32.039725062 -0400 | 1029 | +++ linux-2.6.30.4/arch/m68k/include/asm/kmap_types.h 2009-07-30 09:48:09.891413194 -0400 |
968 | @@ -15,6 +15,7 @@ enum km_type { | ||
969 | KM_IRQ1, | ||
970 | KM_SOFTIRQ0, | ||
971 | KM_SOFTIRQ1, | ||
972 | + KM_CLEARPAGE, | ||
973 | KM_TYPE_NR | ||
974 | }; | ||
975 | |||
976 | diff -urNp linux-2.6.29.6/arch/m68k/include/asm/kmap_types_no.h linux-2.6.29.6/arch/m68k/include/asm/kmap_types_no.h | ||
977 | --- linux-2.6.29.6/arch/m68k/include/asm/kmap_types_no.h 2009-07-02 19:41:20.000000000 -0400 | ||
978 | +++ linux-2.6.29.6/arch/m68k/include/asm/kmap_types_no.h 2009-07-23 17:34:32.039725062 -0400 | ||
979 | @@ -15,6 +15,7 @@ enum km_type { | 1030 | @@ -15,6 +15,7 @@ enum km_type { |
980 | KM_IRQ1, | 1031 | KM_IRQ1, |
981 | KM_SOFTIRQ0, | 1032 | KM_SOFTIRQ0, |
@@ -984,9 +1035,9 @@ diff -urNp linux-2.6.29.6/arch/m68k/include/asm/kmap_types_no.h linux-2.6.29.6/a | |||
984 | KM_TYPE_NR | 1035 | KM_TYPE_NR |
985 | }; | 1036 | }; |
986 | 1037 | ||
987 | diff -urNp linux-2.6.29.6/arch/mips/include/asm/atomic.h linux-2.6.29.6/arch/mips/include/asm/atomic.h | 1038 | diff -urNp linux-2.6.30.4/arch/mips/include/asm/atomic.h linux-2.6.30.4/arch/mips/include/asm/atomic.h |
988 | --- linux-2.6.29.6/arch/mips/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400 | 1039 | --- linux-2.6.30.4/arch/mips/include/asm/atomic.h 2009-07-24 17:47:51.000000000 -0400 |
989 | +++ linux-2.6.29.6/arch/mips/include/asm/atomic.h 2009-07-23 17:34:32.039725062 -0400 | 1040 | +++ linux-2.6.30.4/arch/mips/include/asm/atomic.h 2009-07-30 09:48:09.891413194 -0400 |
990 | @@ -381,6 +381,9 @@ static __inline__ int atomic_add_unless( | 1041 | @@ -381,6 +381,9 @@ static __inline__ int atomic_add_unless( |
991 | * Atomically increments @v by 1. | 1042 | * Atomically increments @v by 1. |
992 | */ | 1043 | */ |
@@ -997,9 +1048,9 @@ diff -urNp linux-2.6.29.6/arch/mips/include/asm/atomic.h linux-2.6.29.6/arch/mip | |||
997 | 1048 | ||
998 | /* | 1049 | /* |
999 | * atomic_dec - decrement and test | 1050 | * atomic_dec - decrement and test |
1000 | diff -urNp linux-2.6.29.6/arch/mips/include/asm/elf.h linux-2.6.29.6/arch/mips/include/asm/elf.h | 1051 | diff -urNp linux-2.6.30.4/arch/mips/include/asm/elf.h linux-2.6.30.4/arch/mips/include/asm/elf.h |
1001 | --- linux-2.6.29.6/arch/mips/include/asm/elf.h 2009-07-02 19:41:20.000000000 -0400 | 1052 | --- linux-2.6.30.4/arch/mips/include/asm/elf.h 2009-07-24 17:47:51.000000000 -0400 |
1002 | +++ linux-2.6.29.6/arch/mips/include/asm/elf.h 2009-07-23 17:34:32.039725062 -0400 | 1053 | +++ linux-2.6.30.4/arch/mips/include/asm/elf.h 2009-07-30 09:48:09.891413194 -0400 |
1003 | @@ -364,4 +364,11 @@ extern int dump_task_fpu(struct task_str | 1054 | @@ -364,4 +364,11 @@ extern int dump_task_fpu(struct task_str |
1004 | #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2) | 1055 | #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2) |
1005 | #endif | 1056 | #endif |
@@ -1012,9 +1063,9 @@ diff -urNp linux-2.6.29.6/arch/mips/include/asm/elf.h linux-2.6.29.6/arch/mips/i | |||
1012 | +#endif | 1063 | +#endif |
1013 | + | 1064 | + |
1014 | #endif /* _ASM_ELF_H */ | 1065 | #endif /* _ASM_ELF_H */ |
1015 | diff -urNp linux-2.6.29.6/arch/mips/include/asm/kmap_types.h linux-2.6.29.6/arch/mips/include/asm/kmap_types.h | 1066 | diff -urNp linux-2.6.30.4/arch/mips/include/asm/kmap_types.h linux-2.6.30.4/arch/mips/include/asm/kmap_types.h |
1016 | --- linux-2.6.29.6/arch/mips/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 1067 | --- linux-2.6.30.4/arch/mips/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
1017 | +++ linux-2.6.29.6/arch/mips/include/asm/kmap_types.h 2009-07-23 17:34:32.040769533 -0400 | 1068 | +++ linux-2.6.30.4/arch/mips/include/asm/kmap_types.h 2009-07-30 09:48:09.892412592 -0400 |
1018 | @@ -22,7 +22,8 @@ D(9) KM_IRQ0, | 1069 | @@ -22,7 +22,8 @@ D(9) KM_IRQ0, |
1019 | D(10) KM_IRQ1, | 1070 | D(10) KM_IRQ1, |
1020 | D(11) KM_SOFTIRQ0, | 1071 | D(11) KM_SOFTIRQ0, |
@@ -1025,10 +1076,10 @@ diff -urNp linux-2.6.29.6/arch/mips/include/asm/kmap_types.h linux-2.6.29.6/arch | |||
1025 | }; | 1076 | }; |
1026 | 1077 | ||
1027 | #undef D | 1078 | #undef D |
1028 | diff -urNp linux-2.6.29.6/arch/mips/include/asm/page.h linux-2.6.29.6/arch/mips/include/asm/page.h | 1079 | diff -urNp linux-2.6.30.4/arch/mips/include/asm/page.h linux-2.6.30.4/arch/mips/include/asm/page.h |
1029 | --- linux-2.6.29.6/arch/mips/include/asm/page.h 2009-07-02 19:41:20.000000000 -0400 | 1080 | --- linux-2.6.30.4/arch/mips/include/asm/page.h 2009-07-24 17:47:51.000000000 -0400 |
1030 | +++ linux-2.6.29.6/arch/mips/include/asm/page.h 2009-07-23 17:34:32.040769533 -0400 | 1081 | +++ linux-2.6.30.4/arch/mips/include/asm/page.h 2009-07-30 09:48:09.892412592 -0400 |
1031 | @@ -82,7 +82,7 @@ extern void copy_user_highpage(struct pa | 1082 | @@ -85,7 +85,7 @@ extern void copy_user_highpage(struct pa |
1032 | #ifdef CONFIG_CPU_MIPS32 | 1083 | #ifdef CONFIG_CPU_MIPS32 |
1033 | typedef struct { unsigned long pte_low, pte_high; } pte_t; | 1084 | typedef struct { unsigned long pte_low, pte_high; } pte_t; |
1034 | #define pte_val(x) ((x).pte_low | ((unsigned long long)(x).pte_high << 32)) | 1085 | #define pte_val(x) ((x).pte_low | ((unsigned long long)(x).pte_high << 32)) |
@@ -1037,9 +1088,9 @@ diff -urNp linux-2.6.29.6/arch/mips/include/asm/page.h linux-2.6.29.6/arch/mips/ | |||
1037 | #else | 1088 | #else |
1038 | typedef struct { unsigned long long pte; } pte_t; | 1089 | typedef struct { unsigned long long pte; } pte_t; |
1039 | #define pte_val(x) ((x).pte) | 1090 | #define pte_val(x) ((x).pte) |
1040 | diff -urNp linux-2.6.29.6/arch/mips/include/asm/system.h linux-2.6.29.6/arch/mips/include/asm/system.h | 1091 | diff -urNp linux-2.6.30.4/arch/mips/include/asm/system.h linux-2.6.30.4/arch/mips/include/asm/system.h |
1041 | --- linux-2.6.29.6/arch/mips/include/asm/system.h 2009-07-02 19:41:20.000000000 -0400 | 1092 | --- linux-2.6.30.4/arch/mips/include/asm/system.h 2009-07-24 17:47:51.000000000 -0400 |
1042 | +++ linux-2.6.29.6/arch/mips/include/asm/system.h 2009-07-23 17:34:32.040769533 -0400 | 1093 | +++ linux-2.6.30.4/arch/mips/include/asm/system.h 2009-07-30 09:48:09.892412592 -0400 |
1043 | @@ -217,6 +217,6 @@ extern void per_cpu_trap_init(void); | 1094 | @@ -217,6 +217,6 @@ extern void per_cpu_trap_init(void); |
1044 | */ | 1095 | */ |
1045 | #define __ARCH_WANT_UNLOCKED_CTXSW | 1096 | #define __ARCH_WANT_UNLOCKED_CTXSW |
@@ -1048,9 +1099,9 @@ diff -urNp linux-2.6.29.6/arch/mips/include/asm/system.h linux-2.6.29.6/arch/mip | |||
1048 | +#define arch_align_stack(x) ((x) & ALMASK) | 1099 | +#define arch_align_stack(x) ((x) & ALMASK) |
1049 | 1100 | ||
1050 | #endif /* _ASM_SYSTEM_H */ | 1101 | #endif /* _ASM_SYSTEM_H */ |
1051 | diff -urNp linux-2.6.29.6/arch/mips/kernel/binfmt_elfn32.c linux-2.6.29.6/arch/mips/kernel/binfmt_elfn32.c | 1102 | diff -urNp linux-2.6.30.4/arch/mips/kernel/binfmt_elfn32.c linux-2.6.30.4/arch/mips/kernel/binfmt_elfn32.c |
1052 | --- linux-2.6.29.6/arch/mips/kernel/binfmt_elfn32.c 2009-07-02 19:41:20.000000000 -0400 | 1103 | --- linux-2.6.30.4/arch/mips/kernel/binfmt_elfn32.c 2009-07-24 17:47:51.000000000 -0400 |
1053 | +++ linux-2.6.29.6/arch/mips/kernel/binfmt_elfn32.c 2009-07-23 17:34:32.040769533 -0400 | 1104 | +++ linux-2.6.30.4/arch/mips/kernel/binfmt_elfn32.c 2009-07-30 09:48:09.892412592 -0400 |
1054 | @@ -50,6 +50,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N | 1105 | @@ -50,6 +50,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N |
1055 | #undef ELF_ET_DYN_BASE | 1106 | #undef ELF_ET_DYN_BASE |
1056 | #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2) | 1107 | #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2) |
@@ -1065,9 +1116,9 @@ diff -urNp linux-2.6.29.6/arch/mips/kernel/binfmt_elfn32.c linux-2.6.29.6/arch/m | |||
1065 | #include <asm/processor.h> | 1116 | #include <asm/processor.h> |
1066 | #include <linux/module.h> | 1117 | #include <linux/module.h> |
1067 | #include <linux/elfcore.h> | 1118 | #include <linux/elfcore.h> |
1068 | diff -urNp linux-2.6.29.6/arch/mips/kernel/binfmt_elfo32.c linux-2.6.29.6/arch/mips/kernel/binfmt_elfo32.c | 1119 | diff -urNp linux-2.6.30.4/arch/mips/kernel/binfmt_elfo32.c linux-2.6.30.4/arch/mips/kernel/binfmt_elfo32.c |
1069 | --- linux-2.6.29.6/arch/mips/kernel/binfmt_elfo32.c 2009-07-02 19:41:20.000000000 -0400 | 1120 | --- linux-2.6.30.4/arch/mips/kernel/binfmt_elfo32.c 2009-07-24 17:47:51.000000000 -0400 |
1070 | +++ linux-2.6.29.6/arch/mips/kernel/binfmt_elfo32.c 2009-07-23 17:34:32.040769533 -0400 | 1121 | +++ linux-2.6.30.4/arch/mips/kernel/binfmt_elfo32.c 2009-07-30 09:48:09.893444022 -0400 |
1071 | @@ -52,6 +52,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N | 1122 | @@ -52,6 +52,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N |
1072 | #undef ELF_ET_DYN_BASE | 1123 | #undef ELF_ET_DYN_BASE |
1073 | #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2) | 1124 | #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2) |
@@ -1082,9 +1133,9 @@ diff -urNp linux-2.6.29.6/arch/mips/kernel/binfmt_elfo32.c linux-2.6.29.6/arch/m | |||
1082 | #include <asm/processor.h> | 1133 | #include <asm/processor.h> |
1083 | #include <linux/module.h> | 1134 | #include <linux/module.h> |
1084 | #include <linux/elfcore.h> | 1135 | #include <linux/elfcore.h> |
1085 | diff -urNp linux-2.6.29.6/arch/mips/kernel/process.c linux-2.6.29.6/arch/mips/kernel/process.c | 1136 | diff -urNp linux-2.6.30.4/arch/mips/kernel/process.c linux-2.6.30.4/arch/mips/kernel/process.c |
1086 | --- linux-2.6.29.6/arch/mips/kernel/process.c 2009-07-02 19:41:20.000000000 -0400 | 1137 | --- linux-2.6.30.4/arch/mips/kernel/process.c 2009-07-24 17:47:51.000000000 -0400 |
1087 | +++ linux-2.6.29.6/arch/mips/kernel/process.c 2009-07-23 17:34:32.040769533 -0400 | 1138 | +++ linux-2.6.30.4/arch/mips/kernel/process.c 2009-07-30 09:48:09.893444022 -0400 |
1088 | @@ -457,15 +457,3 @@ unsigned long get_wchan(struct task_stru | 1139 | @@ -457,15 +457,3 @@ unsigned long get_wchan(struct task_stru |
1089 | out: | 1140 | out: |
1090 | return pc; | 1141 | return pc; |
@@ -1101,9 +1152,9 @@ diff -urNp linux-2.6.29.6/arch/mips/kernel/process.c linux-2.6.29.6/arch/mips/ke | |||
1101 | - | 1152 | - |
1102 | - return sp & ALMASK; | 1153 | - return sp & ALMASK; |
1103 | -} | 1154 | -} |
1104 | diff -urNp linux-2.6.29.6/arch/mips/kernel/syscall.c linux-2.6.29.6/arch/mips/kernel/syscall.c | 1155 | diff -urNp linux-2.6.30.4/arch/mips/kernel/syscall.c linux-2.6.30.4/arch/mips/kernel/syscall.c |
1105 | --- linux-2.6.29.6/arch/mips/kernel/syscall.c 2009-07-02 19:41:20.000000000 -0400 | 1156 | --- linux-2.6.30.4/arch/mips/kernel/syscall.c 2009-07-24 17:47:51.000000000 -0400 |
1106 | +++ linux-2.6.29.6/arch/mips/kernel/syscall.c 2009-07-23 17:34:32.040769533 -0400 | 1157 | +++ linux-2.6.30.4/arch/mips/kernel/syscall.c 2009-07-30 09:48:09.893444022 -0400 |
1107 | @@ -99,6 +99,11 @@ unsigned long arch_get_unmapped_area(str | 1158 | @@ -99,6 +99,11 @@ unsigned long arch_get_unmapped_area(str |
1108 | do_color_align = 0; | 1159 | do_color_align = 0; |
1109 | if (filp || (flags & MAP_SHARED)) | 1160 | if (filp || (flags & MAP_SHARED)) |
@@ -1125,9 +1176,9 @@ diff -urNp linux-2.6.29.6/arch/mips/kernel/syscall.c linux-2.6.29.6/arch/mips/ke | |||
1125 | if (do_color_align) | 1176 | if (do_color_align) |
1126 | addr = COLOUR_ALIGN(addr, pgoff); | 1177 | addr = COLOUR_ALIGN(addr, pgoff); |
1127 | else | 1178 | else |
1128 | diff -urNp linux-2.6.29.6/arch/mips/mm/fault.c linux-2.6.29.6/arch/mips/mm/fault.c | 1179 | diff -urNp linux-2.6.30.4/arch/mips/mm/fault.c linux-2.6.30.4/arch/mips/mm/fault.c |
1129 | --- linux-2.6.29.6/arch/mips/mm/fault.c 2009-07-02 19:41:20.000000000 -0400 | 1180 | --- linux-2.6.30.4/arch/mips/mm/fault.c 2009-07-24 17:47:51.000000000 -0400 |
1130 | +++ linux-2.6.29.6/arch/mips/mm/fault.c 2009-07-23 17:34:32.041802959 -0400 | 1181 | +++ linux-2.6.30.4/arch/mips/mm/fault.c 2009-07-30 09:48:09.896533953 -0400 |
1131 | @@ -26,6 +26,23 @@ | 1182 | @@ -26,6 +26,23 @@ |
1132 | #include <asm/ptrace.h> | 1183 | #include <asm/ptrace.h> |
1133 | #include <asm/highmem.h> /* For VMALLOC_END */ | 1184 | #include <asm/highmem.h> /* For VMALLOC_END */ |
@@ -1152,10 +1203,35 @@ diff -urNp linux-2.6.29.6/arch/mips/mm/fault.c linux-2.6.29.6/arch/mips/mm/fault | |||
1152 | /* | 1203 | /* |
1153 | * This routine handles page faults. It determines the address, | 1204 | * This routine handles page faults. It determines the address, |
1154 | * and the problem, and then passes it off to one of the appropriate | 1205 | * and the problem, and then passes it off to one of the appropriate |
1155 | diff -urNp linux-2.6.29.6/arch/mn10300/kernel/setup.c linux-2.6.29.6/arch/mn10300/kernel/setup.c | 1206 | diff -urNp linux-2.6.30.4/arch/mn10300/include/asm/atomic.h linux-2.6.30.4/arch/mn10300/include/asm/atomic.h |
1156 | --- linux-2.6.29.6/arch/mn10300/kernel/setup.c 2009-07-02 19:41:20.000000000 -0400 | 1207 | --- linux-2.6.30.4/arch/mn10300/include/asm/atomic.h 2009-07-24 17:47:51.000000000 -0400 |
1157 | +++ linux-2.6.29.6/arch/mn10300/kernel/setup.c 2009-07-23 18:40:27.492312305 -0400 | 1208 | +++ linux-2.6.30.4/arch/mn10300/include/asm/atomic.h 2009-07-30 09:48:09.897612189 -0400 |
1158 | @@ -289,7 +289,7 @@ static void c_stop(struct seq_file *m, v | 1209 | @@ -145,6 +145,10 @@ static inline void atomic_clear_mask(uns |
1210 | #define atomic_xchg(ptr, v) (xchg(&(ptr)->counter, (v))) | ||
1211 | #define atomic_cmpxchg(v, old, new) (cmpxchg(&((v)->counter), (old), (new))) | ||
1212 | |||
1213 | +#define atomic_inc_unchecked(v) atomic_inc(v) | ||
1214 | +#define atomic_add_unchecked(i,v) atomic_add((i),(v)) | ||
1215 | +#define atomic_sub_unchecked(i,v) atomic_sub((i),(v)) | ||
1216 | + | ||
1217 | /* Atomic operations are already serializing on MN10300??? */ | ||
1218 | #define smp_mb__before_atomic_dec() barrier() | ||
1219 | #define smp_mb__after_atomic_dec() barrier() | ||
1220 | diff -urNp linux-2.6.30.4/arch/mn10300/include/asm/kmap_types.h linux-2.6.30.4/arch/mn10300/include/asm/kmap_types.h | ||
1221 | --- linux-2.6.30.4/arch/mn10300/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 | ||
1222 | +++ linux-2.6.30.4/arch/mn10300/include/asm/kmap_types.h 2009-07-30 09:48:09.897612189 -0400 | ||
1223 | @@ -25,6 +25,7 @@ enum km_type { | ||
1224 | KM_IRQ1, | ||
1225 | KM_SOFTIRQ0, | ||
1226 | KM_SOFTIRQ1, | ||
1227 | + KM_CLEARPAGE, | ||
1228 | KM_TYPE_NR | ||
1229 | }; | ||
1230 | |||
1231 | diff -urNp linux-2.6.30.4/arch/mn10300/kernel/setup.c linux-2.6.30.4/arch/mn10300/kernel/setup.c | ||
1232 | --- linux-2.6.30.4/arch/mn10300/kernel/setup.c 2009-07-24 17:47:51.000000000 -0400 | ||
1233 | +++ linux-2.6.30.4/arch/mn10300/kernel/setup.c 2009-07-30 09:48:09.897612189 -0400 | ||
1234 | @@ -285,7 +285,7 @@ static void c_stop(struct seq_file *m, v | ||
1159 | { | 1235 | { |
1160 | } | 1236 | } |
1161 | 1237 | ||
@@ -1164,25 +1240,25 @@ diff -urNp linux-2.6.29.6/arch/mn10300/kernel/setup.c linux-2.6.29.6/arch/mn1030 | |||
1164 | .start = c_start, | 1240 | .start = c_start, |
1165 | .next = c_next, | 1241 | .next = c_next, |
1166 | .stop = c_stop, | 1242 | .stop = c_stop, |
1167 | diff -urNp linux-2.6.29.6/arch/parisc/include/asm/atomic.h linux-2.6.29.6/arch/parisc/include/asm/atomic.h | 1243 | diff -urNp linux-2.6.30.4/arch/parisc/include/asm/atomic.h linux-2.6.30.4/arch/parisc/include/asm/atomic.h |
1168 | --- linux-2.6.29.6/arch/parisc/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400 | 1244 | --- linux-2.6.30.4/arch/parisc/include/asm/atomic.h 2009-07-24 17:47:51.000000000 -0400 |
1169 | +++ linux-2.6.29.6/arch/parisc/include/asm/atomic.h 2009-07-23 17:34:32.041802959 -0400 | 1245 | +++ linux-2.6.30.4/arch/parisc/include/asm/atomic.h 2009-07-30 09:48:09.898625493 -0400 |
1170 | @@ -223,8 +223,11 @@ static __inline__ int atomic_add_unless( | 1246 | @@ -223,8 +223,11 @@ static __inline__ int atomic_add_unless( |
1171 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) | 1247 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) |
1172 | 1248 | ||
1173 | #define atomic_add(i,v) ((void)(__atomic_add_return( ((int)i),(v)))) | 1249 | #define atomic_add(i,v) ((void)(__atomic_add_return( ((int)(i)),(v)))) |
1174 | +#define atomic_add_unchecked(i,v) atomic_add((i), (v)) | 1250 | +#define atomic_add_unchecked(i,v) atomic_add((i), (v)) |
1175 | #define atomic_sub(i,v) ((void)(__atomic_add_return(-((int)i),(v)))) | 1251 | #define atomic_sub(i,v) ((void)(__atomic_add_return(-((int)(i)),(v)))) |
1176 | +#define atomic_sub_unchecked(i,v) atomic_sub((i), (v)) | 1252 | +#define atomic_sub_unchecked(i,v) atomic_sub((i), (v)) |
1177 | #define atomic_inc(v) ((void)(__atomic_add_return( 1,(v)))) | 1253 | #define atomic_inc(v) ((void)(__atomic_add_return( 1,(v)))) |
1178 | +#define atomic_inc_unchecked(v) atomic_inc(v) | 1254 | +#define atomic_inc_unchecked(v) atomic_inc(v) |
1179 | #define atomic_dec(v) ((void)(__atomic_add_return( -1,(v)))) | 1255 | #define atomic_dec(v) ((void)(__atomic_add_return( -1,(v)))) |
1180 | 1256 | ||
1181 | #define atomic_add_return(i,v) (__atomic_add_return( ((int)i),(v))) | 1257 | #define atomic_add_return(i,v) (__atomic_add_return( ((int)(i)),(v))) |
1182 | diff -urNp linux-2.6.29.6/arch/parisc/include/asm/elf.h linux-2.6.29.6/arch/parisc/include/asm/elf.h | 1258 | diff -urNp linux-2.6.30.4/arch/parisc/include/asm/elf.h linux-2.6.30.4/arch/parisc/include/asm/elf.h |
1183 | --- linux-2.6.29.6/arch/parisc/include/asm/elf.h 2009-07-02 19:41:20.000000000 -0400 | 1259 | --- linux-2.6.30.4/arch/parisc/include/asm/elf.h 2009-07-24 17:47:51.000000000 -0400 |
1184 | +++ linux-2.6.29.6/arch/parisc/include/asm/elf.h 2009-07-23 17:34:32.041802959 -0400 | 1260 | +++ linux-2.6.30.4/arch/parisc/include/asm/elf.h 2009-07-30 09:48:09.898625493 -0400 |
1185 | @@ -333,6 +333,13 @@ struct pt_regs; /* forward declaration.. | 1261 | @@ -343,6 +343,13 @@ struct pt_regs; /* forward declaration.. |
1186 | 1262 | ||
1187 | #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x01000000) | 1263 | #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x01000000) |
1188 | 1264 | ||
@@ -1196,9 +1272,9 @@ diff -urNp linux-2.6.29.6/arch/parisc/include/asm/elf.h linux-2.6.29.6/arch/pari | |||
1196 | /* This yields a mask that user programs can use to figure out what | 1272 | /* This yields a mask that user programs can use to figure out what |
1197 | instruction set this CPU supports. This could be done in user space, | 1273 | instruction set this CPU supports. This could be done in user space, |
1198 | but it's not easy, and we've already done it here. */ | 1274 | but it's not easy, and we've already done it here. */ |
1199 | diff -urNp linux-2.6.29.6/arch/parisc/include/asm/kmap_types.h linux-2.6.29.6/arch/parisc/include/asm/kmap_types.h | 1275 | diff -urNp linux-2.6.30.4/arch/parisc/include/asm/kmap_types.h linux-2.6.30.4/arch/parisc/include/asm/kmap_types.h |
1200 | --- linux-2.6.29.6/arch/parisc/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 1276 | --- linux-2.6.30.4/arch/parisc/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
1201 | +++ linux-2.6.29.6/arch/parisc/include/asm/kmap_types.h 2009-07-23 17:34:32.041802959 -0400 | 1277 | +++ linux-2.6.30.4/arch/parisc/include/asm/kmap_types.h 2009-07-30 09:48:09.898625493 -0400 |
1202 | @@ -22,7 +22,8 @@ D(9) KM_IRQ0, | 1278 | @@ -22,7 +22,8 @@ D(9) KM_IRQ0, |
1203 | D(10) KM_IRQ1, | 1279 | D(10) KM_IRQ1, |
1204 | D(11) KM_SOFTIRQ0, | 1280 | D(11) KM_SOFTIRQ0, |
@@ -1209,10 +1285,10 @@ diff -urNp linux-2.6.29.6/arch/parisc/include/asm/kmap_types.h linux-2.6.29.6/ar | |||
1209 | }; | 1285 | }; |
1210 | 1286 | ||
1211 | #undef D | 1287 | #undef D |
1212 | diff -urNp linux-2.6.29.6/arch/parisc/include/asm/pgtable.h linux-2.6.29.6/arch/parisc/include/asm/pgtable.h | 1288 | diff -urNp linux-2.6.30.4/arch/parisc/include/asm/pgtable.h linux-2.6.30.4/arch/parisc/include/asm/pgtable.h |
1213 | --- linux-2.6.29.6/arch/parisc/include/asm/pgtable.h 2009-07-02 19:41:20.000000000 -0400 | 1289 | --- linux-2.6.30.4/arch/parisc/include/asm/pgtable.h 2009-07-24 17:47:51.000000000 -0400 |
1214 | +++ linux-2.6.29.6/arch/parisc/include/asm/pgtable.h 2009-07-23 17:34:32.041802959 -0400 | 1290 | +++ linux-2.6.30.4/arch/parisc/include/asm/pgtable.h 2009-07-30 09:48:09.898625493 -0400 |
1215 | @@ -202,6 +202,17 @@ | 1291 | @@ -207,6 +207,17 @@ |
1216 | #define PAGE_EXECREAD __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_EXEC |_PAGE_ACCESSED) | 1292 | #define PAGE_EXECREAD __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_EXEC |_PAGE_ACCESSED) |
1217 | #define PAGE_COPY PAGE_EXECREAD | 1293 | #define PAGE_COPY PAGE_EXECREAD |
1218 | #define PAGE_RWX __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_WRITE | _PAGE_EXEC |_PAGE_ACCESSED) | 1294 | #define PAGE_RWX __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_WRITE | _PAGE_EXEC |_PAGE_ACCESSED) |
@@ -1230,10 +1306,10 @@ diff -urNp linux-2.6.29.6/arch/parisc/include/asm/pgtable.h linux-2.6.29.6/arch/ | |||
1230 | #define PAGE_KERNEL __pgprot(_PAGE_KERNEL) | 1306 | #define PAGE_KERNEL __pgprot(_PAGE_KERNEL) |
1231 | #define PAGE_KERNEL_RO __pgprot(_PAGE_KERNEL & ~_PAGE_WRITE) | 1307 | #define PAGE_KERNEL_RO __pgprot(_PAGE_KERNEL & ~_PAGE_WRITE) |
1232 | #define PAGE_KERNEL_UNC __pgprot(_PAGE_KERNEL | _PAGE_NO_CACHE) | 1308 | #define PAGE_KERNEL_UNC __pgprot(_PAGE_KERNEL | _PAGE_NO_CACHE) |
1233 | diff -urNp linux-2.6.29.6/arch/parisc/kernel/module.c linux-2.6.29.6/arch/parisc/kernel/module.c | 1309 | diff -urNp linux-2.6.30.4/arch/parisc/kernel/module.c linux-2.6.30.4/arch/parisc/kernel/module.c |
1234 | --- linux-2.6.29.6/arch/parisc/kernel/module.c 2009-07-02 19:41:20.000000000 -0400 | 1310 | --- linux-2.6.30.4/arch/parisc/kernel/module.c 2009-07-24 17:47:51.000000000 -0400 |
1235 | +++ linux-2.6.29.6/arch/parisc/kernel/module.c 2009-07-23 17:34:32.041802959 -0400 | 1311 | +++ linux-2.6.30.4/arch/parisc/kernel/module.c 2009-07-30 09:48:09.899565255 -0400 |
1236 | @@ -93,16 +93,38 @@ | 1312 | @@ -91,16 +91,38 @@ |
1237 | 1313 | ||
1238 | /* three functions to determine where in the module core | 1314 | /* three functions to determine where in the module core |
1239 | * or init pieces the location is */ | 1315 | * or init pieces the location is */ |
@@ -1276,7 +1352,7 @@ diff -urNp linux-2.6.29.6/arch/parisc/kernel/module.c linux-2.6.29.6/arch/parisc | |||
1276 | } | 1352 | } |
1277 | 1353 | ||
1278 | static inline int in_local(struct module *me, void *loc) | 1354 | static inline int in_local(struct module *me, void *loc) |
1279 | @@ -340,13 +362,13 @@ int module_frob_arch_sections(CONST Elf_ | 1355 | @@ -334,13 +356,13 @@ int module_frob_arch_sections(CONST Elf_ |
1280 | } | 1356 | } |
1281 | 1357 | ||
1282 | /* align things a bit */ | 1358 | /* align things a bit */ |
@@ -1297,7 +1373,7 @@ diff -urNp linux-2.6.29.6/arch/parisc/kernel/module.c linux-2.6.29.6/arch/parisc | |||
1297 | 1373 | ||
1298 | me->arch.got_max = gots; | 1374 | me->arch.got_max = gots; |
1299 | me->arch.fdesc_max = fdescs; | 1375 | me->arch.fdesc_max = fdescs; |
1300 | @@ -364,7 +386,7 @@ static Elf64_Word get_got(struct module | 1376 | @@ -358,7 +380,7 @@ static Elf64_Word get_got(struct module |
1301 | 1377 | ||
1302 | BUG_ON(value == 0); | 1378 | BUG_ON(value == 0); |
1303 | 1379 | ||
@@ -1306,7 +1382,7 @@ diff -urNp linux-2.6.29.6/arch/parisc/kernel/module.c linux-2.6.29.6/arch/parisc | |||
1306 | for (i = 0; got[i].addr; i++) | 1382 | for (i = 0; got[i].addr; i++) |
1307 | if (got[i].addr == value) | 1383 | if (got[i].addr == value) |
1308 | goto out; | 1384 | goto out; |
1309 | @@ -382,7 +404,7 @@ static Elf64_Word get_got(struct module | 1385 | @@ -376,7 +398,7 @@ static Elf64_Word get_got(struct module |
1310 | #ifdef CONFIG_64BIT | 1386 | #ifdef CONFIG_64BIT |
1311 | static Elf_Addr get_fdesc(struct module *me, unsigned long value) | 1387 | static Elf_Addr get_fdesc(struct module *me, unsigned long value) |
1312 | { | 1388 | { |
@@ -1315,7 +1391,7 @@ diff -urNp linux-2.6.29.6/arch/parisc/kernel/module.c linux-2.6.29.6/arch/parisc | |||
1315 | 1391 | ||
1316 | if (!value) { | 1392 | if (!value) { |
1317 | printk(KERN_ERR "%s: zero OPD requested!\n", me->name); | 1393 | printk(KERN_ERR "%s: zero OPD requested!\n", me->name); |
1318 | @@ -400,7 +422,7 @@ static Elf_Addr get_fdesc(struct module | 1394 | @@ -394,7 +416,7 @@ static Elf_Addr get_fdesc(struct module |
1319 | 1395 | ||
1320 | /* Create new one */ | 1396 | /* Create new one */ |
1321 | fdesc->addr = value; | 1397 | fdesc->addr = value; |
@@ -1324,7 +1400,7 @@ diff -urNp linux-2.6.29.6/arch/parisc/kernel/module.c linux-2.6.29.6/arch/parisc | |||
1324 | return (Elf_Addr)fdesc; | 1400 | return (Elf_Addr)fdesc; |
1325 | } | 1401 | } |
1326 | #endif /* CONFIG_64BIT */ | 1402 | #endif /* CONFIG_64BIT */ |
1327 | @@ -816,7 +838,7 @@ register_unwind_table(struct module *me, | 1403 | @@ -810,7 +832,7 @@ register_unwind_table(struct module *me, |
1328 | 1404 | ||
1329 | table = (unsigned char *)sechdrs[me->arch.unwind_section].sh_addr; | 1405 | table = (unsigned char *)sechdrs[me->arch.unwind_section].sh_addr; |
1330 | end = table + sechdrs[me->arch.unwind_section].sh_size; | 1406 | end = table + sechdrs[me->arch.unwind_section].sh_size; |
@@ -1333,9 +1409,9 @@ diff -urNp linux-2.6.29.6/arch/parisc/kernel/module.c linux-2.6.29.6/arch/parisc | |||
1333 | 1409 | ||
1334 | DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n", | 1410 | DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n", |
1335 | me->arch.unwind_section, table, end, gp); | 1411 | me->arch.unwind_section, table, end, gp); |
1336 | diff -urNp linux-2.6.29.6/arch/parisc/kernel/sys_parisc.c linux-2.6.29.6/arch/parisc/kernel/sys_parisc.c | 1412 | diff -urNp linux-2.6.30.4/arch/parisc/kernel/sys_parisc.c linux-2.6.30.4/arch/parisc/kernel/sys_parisc.c |
1337 | --- linux-2.6.29.6/arch/parisc/kernel/sys_parisc.c 2009-07-02 19:41:20.000000000 -0400 | 1413 | --- linux-2.6.30.4/arch/parisc/kernel/sys_parisc.c 2009-07-24 17:47:51.000000000 -0400 |
1338 | +++ linux-2.6.29.6/arch/parisc/kernel/sys_parisc.c 2009-07-23 17:34:32.042928337 -0400 | 1414 | +++ linux-2.6.30.4/arch/parisc/kernel/sys_parisc.c 2009-07-30 09:48:09.899565255 -0400 |
1339 | @@ -98,7 +98,7 @@ unsigned long arch_get_unmapped_area(str | 1415 | @@ -98,7 +98,7 @@ unsigned long arch_get_unmapped_area(str |
1340 | if (flags & MAP_FIXED) | 1416 | if (flags & MAP_FIXED) |
1341 | return addr; | 1417 | return addr; |
@@ -1345,10 +1421,10 @@ diff -urNp linux-2.6.29.6/arch/parisc/kernel/sys_parisc.c linux-2.6.29.6/arch/pa | |||
1345 | 1421 | ||
1346 | if (filp) { | 1422 | if (filp) { |
1347 | addr = get_shared_area(filp->f_mapping, addr, len, pgoff); | 1423 | addr = get_shared_area(filp->f_mapping, addr, len, pgoff); |
1348 | diff -urNp linux-2.6.29.6/arch/parisc/kernel/traps.c linux-2.6.29.6/arch/parisc/kernel/traps.c | 1424 | diff -urNp linux-2.6.30.4/arch/parisc/kernel/traps.c linux-2.6.30.4/arch/parisc/kernel/traps.c |
1349 | --- linux-2.6.29.6/arch/parisc/kernel/traps.c 2009-07-02 19:41:20.000000000 -0400 | 1425 | --- linux-2.6.30.4/arch/parisc/kernel/traps.c 2009-07-24 17:47:51.000000000 -0400 |
1350 | +++ linux-2.6.29.6/arch/parisc/kernel/traps.c 2009-07-23 17:34:32.042928337 -0400 | 1426 | +++ linux-2.6.30.4/arch/parisc/kernel/traps.c 2009-07-30 09:48:09.900676754 -0400 |
1351 | @@ -731,9 +731,7 @@ void handle_interruption(int code, struc | 1427 | @@ -734,9 +734,7 @@ void notrace handle_interruption(int cod |
1352 | 1428 | ||
1353 | down_read(¤t->mm->mmap_sem); | 1429 | down_read(¤t->mm->mmap_sem); |
1354 | vma = find_vma(current->mm,regs->iaoq[0]); | 1430 | vma = find_vma(current->mm,regs->iaoq[0]); |
@@ -1359,9 +1435,9 @@ diff -urNp linux-2.6.29.6/arch/parisc/kernel/traps.c linux-2.6.29.6/arch/parisc/ | |||
1359 | fault_address = regs->iaoq[0]; | 1435 | fault_address = regs->iaoq[0]; |
1360 | fault_space = regs->iasq[0]; | 1436 | fault_space = regs->iasq[0]; |
1361 | 1437 | ||
1362 | diff -urNp linux-2.6.29.6/arch/parisc/mm/fault.c linux-2.6.29.6/arch/parisc/mm/fault.c | 1438 | diff -urNp linux-2.6.30.4/arch/parisc/mm/fault.c linux-2.6.30.4/arch/parisc/mm/fault.c |
1363 | --- linux-2.6.29.6/arch/parisc/mm/fault.c 2009-07-02 19:41:20.000000000 -0400 | 1439 | --- linux-2.6.30.4/arch/parisc/mm/fault.c 2009-07-24 17:47:51.000000000 -0400 |
1364 | +++ linux-2.6.29.6/arch/parisc/mm/fault.c 2009-07-23 17:34:32.042928337 -0400 | 1440 | +++ linux-2.6.30.4/arch/parisc/mm/fault.c 2009-07-30 09:48:09.900676754 -0400 |
1365 | @@ -16,6 +16,7 @@ | 1441 | @@ -16,6 +16,7 @@ |
1366 | #include <linux/sched.h> | 1442 | #include <linux/sched.h> |
1367 | #include <linux/interrupt.h> | 1443 | #include <linux/interrupt.h> |
@@ -1531,9 +1607,9 @@ diff -urNp linux-2.6.29.6/arch/parisc/mm/fault.c linux-2.6.29.6/arch/parisc/mm/f | |||
1531 | 1607 | ||
1532 | /* | 1608 | /* |
1533 | * If for any reason at all we couldn't handle the fault, make | 1609 | * If for any reason at all we couldn't handle the fault, make |
1534 | diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/atomic.h linux-2.6.29.6/arch/powerpc/include/asm/atomic.h | 1610 | diff -urNp linux-2.6.30.4/arch/powerpc/include/asm/atomic.h linux-2.6.30.4/arch/powerpc/include/asm/atomic.h |
1535 | --- linux-2.6.29.6/arch/powerpc/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400 | 1611 | --- linux-2.6.30.4/arch/powerpc/include/asm/atomic.h 2009-07-24 17:47:51.000000000 -0400 |
1536 | +++ linux-2.6.29.6/arch/powerpc/include/asm/atomic.h 2009-07-23 17:34:32.042928337 -0400 | 1612 | +++ linux-2.6.30.4/arch/powerpc/include/asm/atomic.h 2009-07-30 09:48:09.900676754 -0400 |
1537 | @@ -244,6 +244,10 @@ static __inline__ int atomic_dec_if_posi | 1613 | @@ -244,6 +244,10 @@ static __inline__ int atomic_dec_if_posi |
1538 | return t; | 1614 | return t; |
1539 | } | 1615 | } |
@@ -1545,13 +1621,17 @@ diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/atomic.h linux-2.6.29.6/arch/ | |||
1545 | #define smp_mb__before_atomic_dec() smp_mb() | 1621 | #define smp_mb__before_atomic_dec() smp_mb() |
1546 | #define smp_mb__after_atomic_dec() smp_mb() | 1622 | #define smp_mb__after_atomic_dec() smp_mb() |
1547 | #define smp_mb__before_atomic_inc() smp_mb() | 1623 | #define smp_mb__before_atomic_inc() smp_mb() |
1548 | diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/elf.h linux-2.6.29.6/arch/powerpc/include/asm/elf.h | 1624 | diff -urNp linux-2.6.30.4/arch/powerpc/include/asm/elf.h linux-2.6.30.4/arch/powerpc/include/asm/elf.h |
1549 | --- linux-2.6.29.6/arch/powerpc/include/asm/elf.h 2009-07-02 19:41:20.000000000 -0400 | 1625 | --- linux-2.6.30.4/arch/powerpc/include/asm/elf.h 2009-07-24 17:47:51.000000000 -0400 |
1550 | +++ linux-2.6.29.6/arch/powerpc/include/asm/elf.h 2009-07-23 17:34:32.043871989 -0400 | 1626 | +++ linux-2.6.30.4/arch/powerpc/include/asm/elf.h 2009-07-30 09:48:09.901536944 -0400 |
1551 | @@ -180,6 +180,18 @@ typedef elf_fpreg_t elf_vsrreghalf_t32[E | 1627 | @@ -179,8 +179,19 @@ typedef elf_fpreg_t elf_vsrreghalf_t32[E |
1552 | 1628 | the loader. We need to make sure that it is out of the way of the program | |
1553 | #define ELF_ET_DYN_BASE (0x20000000) | 1629 | that it will "exec", and that there is sufficient room for the brk. */ |
1554 | 1630 | ||
1631 | -extern unsigned long randomize_et_dyn(unsigned long base); | ||
1632 | -#define ELF_ET_DYN_BASE (randomize_et_dyn(0x20000000)) | ||
1633 | +#define ELF_ET_DYN_BASE (0x20000000) | ||
1634 | + | ||
1555 | +#ifdef CONFIG_PAX_ASLR | 1635 | +#ifdef CONFIG_PAX_ASLR |
1556 | +#define PAX_ELF_ET_DYN_BASE (0x10000000UL) | 1636 | +#define PAX_ELF_ET_DYN_BASE (0x10000000UL) |
1557 | + | 1637 | + |
@@ -1563,13 +1643,12 @@ diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/elf.h linux-2.6.29.6/arch/pow | |||
1563 | +#define PAX_DELTA_STACK_LEN 15 | 1643 | +#define PAX_DELTA_STACK_LEN 15 |
1564 | +#endif | 1644 | +#endif |
1565 | +#endif | 1645 | +#endif |
1566 | + | 1646 | |
1567 | /* | 1647 | /* |
1568 | * Our registers are always unsigned longs, whether we're a 32 bit | 1648 | * Our registers are always unsigned longs, whether we're a 32 bit |
1569 | * process or 64 bit, on either a 64 bit or 32 bit kernel. | 1649 | diff -urNp linux-2.6.30.4/arch/powerpc/include/asm/kmap_types.h linux-2.6.30.4/arch/powerpc/include/asm/kmap_types.h |
1570 | diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/kmap_types.h linux-2.6.29.6/arch/powerpc/include/asm/kmap_types.h | 1650 | --- linux-2.6.30.4/arch/powerpc/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
1571 | --- linux-2.6.29.6/arch/powerpc/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 1651 | +++ linux-2.6.30.4/arch/powerpc/include/asm/kmap_types.h 2009-07-30 09:48:09.901536944 -0400 |
1572 | +++ linux-2.6.29.6/arch/powerpc/include/asm/kmap_types.h 2009-07-23 17:34:32.043871989 -0400 | ||
1573 | @@ -26,6 +26,7 @@ enum km_type { | 1652 | @@ -26,6 +26,7 @@ enum km_type { |
1574 | KM_SOFTIRQ1, | 1653 | KM_SOFTIRQ1, |
1575 | KM_PPC_SYNC_PAGE, | 1654 | KM_PPC_SYNC_PAGE, |
@@ -1578,9 +1657,9 @@ diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/kmap_types.h linux-2.6.29.6/a | |||
1578 | KM_TYPE_NR | 1657 | KM_TYPE_NR |
1579 | }; | 1658 | }; |
1580 | 1659 | ||
1581 | diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/page_64.h linux-2.6.29.6/arch/powerpc/include/asm/page_64.h | 1660 | diff -urNp linux-2.6.30.4/arch/powerpc/include/asm/page_64.h linux-2.6.30.4/arch/powerpc/include/asm/page_64.h |
1582 | --- linux-2.6.29.6/arch/powerpc/include/asm/page_64.h 2009-07-02 19:41:20.000000000 -0400 | 1661 | --- linux-2.6.30.4/arch/powerpc/include/asm/page_64.h 2009-07-24 17:47:51.000000000 -0400 |
1583 | +++ linux-2.6.29.6/arch/powerpc/include/asm/page_64.h 2009-07-23 17:34:32.043871989 -0400 | 1662 | +++ linux-2.6.30.4/arch/powerpc/include/asm/page_64.h 2009-07-30 09:48:09.902599231 -0400 |
1584 | @@ -170,15 +170,18 @@ do { \ | 1663 | @@ -170,15 +170,18 @@ do { \ |
1585 | * stack by default, so in the absense of a PT_GNU_STACK program header | 1664 | * stack by default, so in the absense of a PT_GNU_STACK program header |
1586 | * we turn execute permission off. | 1665 | * we turn execute permission off. |
@@ -1602,10 +1681,10 @@ diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/page_64.h linux-2.6.29.6/arch | |||
1602 | 1681 | ||
1603 | #include <asm-generic/page.h> | 1682 | #include <asm-generic/page.h> |
1604 | 1683 | ||
1605 | diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/page.h linux-2.6.29.6/arch/powerpc/include/asm/page.h | 1684 | diff -urNp linux-2.6.30.4/arch/powerpc/include/asm/page.h linux-2.6.30.4/arch/powerpc/include/asm/page.h |
1606 | --- linux-2.6.29.6/arch/powerpc/include/asm/page.h 2009-07-02 19:41:20.000000000 -0400 | 1685 | --- linux-2.6.30.4/arch/powerpc/include/asm/page.h 2009-07-24 17:47:51.000000000 -0400 |
1607 | +++ linux-2.6.29.6/arch/powerpc/include/asm/page.h 2009-07-23 17:34:32.043871989 -0400 | 1686 | +++ linux-2.6.30.4/arch/powerpc/include/asm/page.h 2009-07-30 09:48:09.902599231 -0400 |
1608 | @@ -114,8 +114,9 @@ extern phys_addr_t kernstart_addr; | 1687 | @@ -116,8 +116,9 @@ extern phys_addr_t kernstart_addr; |
1609 | * and needs to be executable. This means the whole heap ends | 1688 | * and needs to be executable. This means the whole heap ends |
1610 | * up being executable. | 1689 | * up being executable. |
1611 | */ | 1690 | */ |
@@ -1617,9 +1696,9 @@ diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/page.h linux-2.6.29.6/arch/po | |||
1617 | 1696 | ||
1618 | #define VM_DATA_DEFAULT_FLAGS64 (VM_READ | VM_WRITE | \ | 1697 | #define VM_DATA_DEFAULT_FLAGS64 (VM_READ | VM_WRITE | \ |
1619 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) | 1698 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) |
1620 | diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/uaccess.h linux-2.6.29.6/arch/powerpc/include/asm/uaccess.h | 1699 | diff -urNp linux-2.6.30.4/arch/powerpc/include/asm/uaccess.h linux-2.6.30.4/arch/powerpc/include/asm/uaccess.h |
1621 | --- linux-2.6.29.6/arch/powerpc/include/asm/uaccess.h 2009-07-02 19:41:20.000000000 -0400 | 1700 | --- linux-2.6.30.4/arch/powerpc/include/asm/uaccess.h 2009-07-24 17:47:51.000000000 -0400 |
1622 | +++ linux-2.6.29.6/arch/powerpc/include/asm/uaccess.h 2009-07-23 17:34:32.043871989 -0400 | 1701 | +++ linux-2.6.30.4/arch/powerpc/include/asm/uaccess.h 2009-07-30 11:10:48.774534063 -0400 |
1623 | @@ -334,6 +334,9 @@ static inline unsigned long copy_from_us | 1702 | @@ -334,6 +334,9 @@ static inline unsigned long copy_from_us |
1624 | { | 1703 | { |
1625 | unsigned long over; | 1704 | unsigned long over; |
@@ -1640,9 +1719,9 @@ diff -urNp linux-2.6.29.6/arch/powerpc/include/asm/uaccess.h linux-2.6.29.6/arch | |||
1640 | if (access_ok(VERIFY_WRITE, to, n)) | 1719 | if (access_ok(VERIFY_WRITE, to, n)) |
1641 | return __copy_tofrom_user(to, (__force void __user *)from, n); | 1720 | return __copy_tofrom_user(to, (__force void __user *)from, n); |
1642 | if ((unsigned long)to < TASK_SIZE) { | 1721 | if ((unsigned long)to < TASK_SIZE) { |
1643 | diff -urNp linux-2.6.29.6/arch/powerpc/kernel/module_32.c linux-2.6.29.6/arch/powerpc/kernel/module_32.c | 1722 | diff -urNp linux-2.6.30.4/arch/powerpc/kernel/module_32.c linux-2.6.30.4/arch/powerpc/kernel/module_32.c |
1644 | --- linux-2.6.29.6/arch/powerpc/kernel/module_32.c 2009-07-02 19:41:20.000000000 -0400 | 1723 | --- linux-2.6.30.4/arch/powerpc/kernel/module_32.c 2009-07-24 17:47:51.000000000 -0400 |
1645 | +++ linux-2.6.29.6/arch/powerpc/kernel/module_32.c 2009-07-23 17:34:32.043871989 -0400 | 1724 | +++ linux-2.6.30.4/arch/powerpc/kernel/module_32.c 2009-07-30 09:48:09.903567873 -0400 |
1646 | @@ -162,7 +162,7 @@ int module_frob_arch_sections(Elf32_Ehdr | 1725 | @@ -162,7 +162,7 @@ int module_frob_arch_sections(Elf32_Ehdr |
1647 | me->arch.core_plt_section = i; | 1726 | me->arch.core_plt_section = i; |
1648 | } | 1727 | } |
@@ -1672,10 +1751,50 @@ diff -urNp linux-2.6.29.6/arch/powerpc/kernel/module_32.c linux-2.6.29.6/arch/po | |||
1672 | 1751 | ||
1673 | /* Find this entry, or if that fails, the next avail. entry */ | 1752 | /* Find this entry, or if that fails, the next avail. entry */ |
1674 | while (entry->jump[0]) { | 1753 | while (entry->jump[0]) { |
1675 | diff -urNp linux-2.6.29.6/arch/powerpc/kernel/setup-common.c linux-2.6.29.6/arch/powerpc/kernel/setup-common.c | 1754 | diff -urNp linux-2.6.30.4/arch/powerpc/kernel/process.c linux-2.6.30.4/arch/powerpc/kernel/process.c |
1676 | --- linux-2.6.29.6/arch/powerpc/kernel/setup-common.c 2009-07-02 19:41:20.000000000 -0400 | 1755 | --- linux-2.6.30.4/arch/powerpc/kernel/process.c 2009-07-24 17:47:51.000000000 -0400 |
1677 | +++ linux-2.6.29.6/arch/powerpc/kernel/setup-common.c 2009-07-23 18:40:27.492312305 -0400 | 1756 | +++ linux-2.6.30.4/arch/powerpc/kernel/process.c 2009-07-30 09:48:09.903567873 -0400 |
1678 | @@ -327,7 +327,7 @@ static void c_stop(struct seq_file *m, v | 1757 | @@ -1147,36 +1147,3 @@ unsigned long arch_align_stack(unsigned |
1758 | sp -= get_random_int() & ~PAGE_MASK; | ||
1759 | return sp & ~0xf; | ||
1760 | } | ||
1761 | - | ||
1762 | -static inline unsigned long brk_rnd(void) | ||
1763 | -{ | ||
1764 | - unsigned long rnd = 0; | ||
1765 | - | ||
1766 | - /* 8MB for 32bit, 1GB for 64bit */ | ||
1767 | - if (is_32bit_task()) | ||
1768 | - rnd = (long)(get_random_int() % (1<<(23-PAGE_SHIFT))); | ||
1769 | - else | ||
1770 | - rnd = (long)(get_random_int() % (1<<(30-PAGE_SHIFT))); | ||
1771 | - | ||
1772 | - return rnd << PAGE_SHIFT; | ||
1773 | -} | ||
1774 | - | ||
1775 | -unsigned long arch_randomize_brk(struct mm_struct *mm) | ||
1776 | -{ | ||
1777 | - unsigned long ret = PAGE_ALIGN(mm->brk + brk_rnd()); | ||
1778 | - | ||
1779 | - if (ret < mm->brk) | ||
1780 | - return mm->brk; | ||
1781 | - | ||
1782 | - return ret; | ||
1783 | -} | ||
1784 | - | ||
1785 | -unsigned long randomize_et_dyn(unsigned long base) | ||
1786 | -{ | ||
1787 | - unsigned long ret = PAGE_ALIGN(base + brk_rnd()); | ||
1788 | - | ||
1789 | - if (ret < base) | ||
1790 | - return base; | ||
1791 | - | ||
1792 | - return ret; | ||
1793 | -} | ||
1794 | diff -urNp linux-2.6.30.4/arch/powerpc/kernel/setup-common.c linux-2.6.30.4/arch/powerpc/kernel/setup-common.c | ||
1795 | --- linux-2.6.30.4/arch/powerpc/kernel/setup-common.c 2009-07-24 17:47:51.000000000 -0400 | ||
1796 | +++ linux-2.6.30.4/arch/powerpc/kernel/setup-common.c 2009-07-30 09:48:09.903567873 -0400 | ||
1797 | @@ -328,7 +328,7 @@ static void c_stop(struct seq_file *m, v | ||
1679 | { | 1798 | { |
1680 | } | 1799 | } |
1681 | 1800 | ||
@@ -1684,9 +1803,9 @@ diff -urNp linux-2.6.29.6/arch/powerpc/kernel/setup-common.c linux-2.6.29.6/arch | |||
1684 | .start =c_start, | 1803 | .start =c_start, |
1685 | .next = c_next, | 1804 | .next = c_next, |
1686 | .stop = c_stop, | 1805 | .stop = c_stop, |
1687 | diff -urNp linux-2.6.29.6/arch/powerpc/kernel/signal_32.c linux-2.6.29.6/arch/powerpc/kernel/signal_32.c | 1806 | diff -urNp linux-2.6.30.4/arch/powerpc/kernel/signal_32.c linux-2.6.30.4/arch/powerpc/kernel/signal_32.c |
1688 | --- linux-2.6.29.6/arch/powerpc/kernel/signal_32.c 2009-07-02 19:41:20.000000000 -0400 | 1807 | --- linux-2.6.30.4/arch/powerpc/kernel/signal_32.c 2009-07-24 17:47:51.000000000 -0400 |
1689 | +++ linux-2.6.29.6/arch/powerpc/kernel/signal_32.c 2009-07-23 17:34:32.044827554 -0400 | 1808 | +++ linux-2.6.30.4/arch/powerpc/kernel/signal_32.c 2009-07-30 09:48:09.903567873 -0400 |
1690 | @@ -857,7 +857,7 @@ int handle_rt_signal32(unsigned long sig | 1809 | @@ -857,7 +857,7 @@ int handle_rt_signal32(unsigned long sig |
1691 | /* Save user registers on the stack */ | 1810 | /* Save user registers on the stack */ |
1692 | frame = &rt_sf->uc.uc_mcontext; | 1811 | frame = &rt_sf->uc.uc_mcontext; |
@@ -1696,9 +1815,9 @@ diff -urNp linux-2.6.29.6/arch/powerpc/kernel/signal_32.c linux-2.6.29.6/arch/po | |||
1696 | if (save_user_regs(regs, frame, 0, 1)) | 1815 | if (save_user_regs(regs, frame, 0, 1)) |
1697 | goto badframe; | 1816 | goto badframe; |
1698 | regs->link = current->mm->context.vdso_base + vdso32_rt_sigtramp; | 1817 | regs->link = current->mm->context.vdso_base + vdso32_rt_sigtramp; |
1699 | diff -urNp linux-2.6.29.6/arch/powerpc/kernel/signal_64.c linux-2.6.29.6/arch/powerpc/kernel/signal_64.c | 1818 | diff -urNp linux-2.6.30.4/arch/powerpc/kernel/signal_64.c linux-2.6.30.4/arch/powerpc/kernel/signal_64.c |
1700 | --- linux-2.6.29.6/arch/powerpc/kernel/signal_64.c 2009-07-02 19:41:20.000000000 -0400 | 1819 | --- linux-2.6.30.4/arch/powerpc/kernel/signal_64.c 2009-07-24 17:47:51.000000000 -0400 |
1701 | +++ linux-2.6.29.6/arch/powerpc/kernel/signal_64.c 2009-07-23 17:34:32.044827554 -0400 | 1820 | +++ linux-2.6.30.4/arch/powerpc/kernel/signal_64.c 2009-07-30 09:48:09.905069777 -0400 |
1702 | @@ -429,7 +429,7 @@ int handle_rt_signal64(int signr, struct | 1821 | @@ -429,7 +429,7 @@ int handle_rt_signal64(int signr, struct |
1703 | current->thread.fpscr.val = 0; | 1822 | current->thread.fpscr.val = 0; |
1704 | 1823 | ||
@@ -1708,9 +1827,9 @@ diff -urNp linux-2.6.29.6/arch/powerpc/kernel/signal_64.c linux-2.6.29.6/arch/po | |||
1708 | regs->link = current->mm->context.vdso_base + vdso64_rt_sigtramp; | 1827 | regs->link = current->mm->context.vdso_base + vdso64_rt_sigtramp; |
1709 | } else { | 1828 | } else { |
1710 | err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]); | 1829 | err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]); |
1711 | diff -urNp linux-2.6.29.6/arch/powerpc/kernel/vdso.c linux-2.6.29.6/arch/powerpc/kernel/vdso.c | 1830 | diff -urNp linux-2.6.30.4/arch/powerpc/kernel/vdso.c linux-2.6.30.4/arch/powerpc/kernel/vdso.c |
1712 | --- linux-2.6.29.6/arch/powerpc/kernel/vdso.c 2009-07-02 19:41:20.000000000 -0400 | 1831 | --- linux-2.6.30.4/arch/powerpc/kernel/vdso.c 2009-07-24 17:47:51.000000000 -0400 |
1713 | +++ linux-2.6.29.6/arch/powerpc/kernel/vdso.c 2009-07-23 17:34:32.044827554 -0400 | 1832 | +++ linux-2.6.30.4/arch/powerpc/kernel/vdso.c 2009-07-30 09:48:09.905069777 -0400 |
1714 | @@ -211,7 +211,7 @@ int arch_setup_additional_pages(struct l | 1833 | @@ -211,7 +211,7 @@ int arch_setup_additional_pages(struct l |
1715 | vdso_base = VDSO32_MBASE; | 1834 | vdso_base = VDSO32_MBASE; |
1716 | #endif | 1835 | #endif |
@@ -1729,9 +1848,9 @@ diff -urNp linux-2.6.29.6/arch/powerpc/kernel/vdso.c linux-2.6.29.6/arch/powerpc | |||
1729 | if (IS_ERR_VALUE(vdso_base)) { | 1848 | if (IS_ERR_VALUE(vdso_base)) { |
1730 | rc = vdso_base; | 1849 | rc = vdso_base; |
1731 | goto fail_mmapsem; | 1850 | goto fail_mmapsem; |
1732 | diff -urNp linux-2.6.29.6/arch/powerpc/kvm/timing.c linux-2.6.29.6/arch/powerpc/kvm/timing.c | 1851 | diff -urNp linux-2.6.30.4/arch/powerpc/kvm/timing.c linux-2.6.30.4/arch/powerpc/kvm/timing.c |
1733 | --- linux-2.6.29.6/arch/powerpc/kvm/timing.c 2009-07-02 19:41:20.000000000 -0400 | 1852 | --- linux-2.6.30.4/arch/powerpc/kvm/timing.c 2009-07-24 17:47:51.000000000 -0400 |
1734 | +++ linux-2.6.29.6/arch/powerpc/kvm/timing.c 2009-07-23 18:40:27.493263868 -0400 | 1853 | +++ linux-2.6.30.4/arch/powerpc/kvm/timing.c 2009-07-30 09:48:09.905069777 -0400 |
1735 | @@ -201,7 +201,7 @@ static int kvmppc_exit_timing_open(struc | 1854 | @@ -201,7 +201,7 @@ static int kvmppc_exit_timing_open(struc |
1736 | return single_open(file, kvmppc_exit_timing_show, inode->i_private); | 1855 | return single_open(file, kvmppc_exit_timing_show, inode->i_private); |
1737 | } | 1856 | } |
@@ -1741,9 +1860,9 @@ diff -urNp linux-2.6.29.6/arch/powerpc/kvm/timing.c linux-2.6.29.6/arch/powerpc/ | |||
1741 | .owner = THIS_MODULE, | 1860 | .owner = THIS_MODULE, |
1742 | .open = kvmppc_exit_timing_open, | 1861 | .open = kvmppc_exit_timing_open, |
1743 | .read = seq_read, | 1862 | .read = seq_read, |
1744 | diff -urNp linux-2.6.29.6/arch/powerpc/lib/usercopy_64.c linux-2.6.29.6/arch/powerpc/lib/usercopy_64.c | 1863 | diff -urNp linux-2.6.30.4/arch/powerpc/lib/usercopy_64.c linux-2.6.30.4/arch/powerpc/lib/usercopy_64.c |
1745 | --- linux-2.6.29.6/arch/powerpc/lib/usercopy_64.c 2009-07-02 19:41:20.000000000 -0400 | 1864 | --- linux-2.6.30.4/arch/powerpc/lib/usercopy_64.c 2009-07-24 17:47:51.000000000 -0400 |
1746 | +++ linux-2.6.29.6/arch/powerpc/lib/usercopy_64.c 2009-07-23 17:34:32.044827554 -0400 | 1865 | +++ linux-2.6.30.4/arch/powerpc/lib/usercopy_64.c 2009-07-30 11:10:48.798471204 -0400 |
1747 | @@ -11,6 +11,9 @@ | 1866 | @@ -11,6 +11,9 @@ |
1748 | 1867 | ||
1749 | unsigned long copy_from_user(void *to, const void __user *from, unsigned long n) | 1868 | unsigned long copy_from_user(void *to, const void __user *from, unsigned long n) |
@@ -1764,9 +1883,9 @@ diff -urNp linux-2.6.29.6/arch/powerpc/lib/usercopy_64.c linux-2.6.29.6/arch/pow | |||
1764 | if (likely(access_ok(VERIFY_WRITE, to, n))) | 1883 | if (likely(access_ok(VERIFY_WRITE, to, n))) |
1765 | n = __copy_to_user(to, from, n); | 1884 | n = __copy_to_user(to, from, n); |
1766 | return n; | 1885 | return n; |
1767 | diff -urNp linux-2.6.29.6/arch/powerpc/mm/fault.c linux-2.6.29.6/arch/powerpc/mm/fault.c | 1886 | diff -urNp linux-2.6.30.4/arch/powerpc/mm/fault.c linux-2.6.30.4/arch/powerpc/mm/fault.c |
1768 | --- linux-2.6.29.6/arch/powerpc/mm/fault.c 2009-07-02 19:41:20.000000000 -0400 | 1887 | --- linux-2.6.30.4/arch/powerpc/mm/fault.c 2009-07-24 17:47:51.000000000 -0400 |
1769 | +++ linux-2.6.29.6/arch/powerpc/mm/fault.c 2009-07-23 18:40:27.465457938 -0400 | 1888 | +++ linux-2.6.30.4/arch/powerpc/mm/fault.c 2009-07-30 09:48:09.905534132 -0400 |
1770 | @@ -29,6 +29,10 @@ | 1889 | @@ -29,6 +29,10 @@ |
1771 | #include <linux/module.h> | 1890 | #include <linux/module.h> |
1772 | #include <linux/kprobes.h> | 1891 | #include <linux/kprobes.h> |
@@ -2151,7 +2270,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/mm/fault.c linux-2.6.29.6/arch/powerpc/mm | |||
2151 | else | 2270 | else |
2152 | is_write = error_code & DSISR_ISSTORE; | 2271 | is_write = error_code & DSISR_ISSTORE; |
2153 | #else | 2272 | #else |
2154 | @@ -339,6 +700,37 @@ bad_area: | 2273 | @@ -327,6 +688,37 @@ bad_area: |
2155 | bad_area_nosemaphore: | 2274 | bad_area_nosemaphore: |
2156 | /* User mode accesses cause a SIGSEGV */ | 2275 | /* User mode accesses cause a SIGSEGV */ |
2157 | if (user_mode(regs)) { | 2276 | if (user_mode(regs)) { |
@@ -2189,10 +2308,10 @@ diff -urNp linux-2.6.29.6/arch/powerpc/mm/fault.c linux-2.6.29.6/arch/powerpc/mm | |||
2189 | _exception(SIGSEGV, regs, code, address); | 2308 | _exception(SIGSEGV, regs, code, address); |
2190 | return 0; | 2309 | return 0; |
2191 | } | 2310 | } |
2192 | diff -urNp linux-2.6.29.6/arch/powerpc/mm/mmap.c linux-2.6.29.6/arch/powerpc/mm/mmap.c | 2311 | diff -urNp linux-2.6.30.4/arch/powerpc/mm/mmap_64.c linux-2.6.30.4/arch/powerpc/mm/mmap_64.c |
2193 | --- linux-2.6.29.6/arch/powerpc/mm/mmap.c 2009-07-02 19:41:20.000000000 -0400 | 2312 | --- linux-2.6.30.4/arch/powerpc/mm/mmap_64.c 2009-07-24 17:47:51.000000000 -0400 |
2194 | +++ linux-2.6.29.6/arch/powerpc/mm/mmap.c 2009-07-23 17:34:32.045826057 -0400 | 2313 | +++ linux-2.6.30.4/arch/powerpc/mm/mmap_64.c 2009-07-30 09:48:09.905534132 -0400 |
2195 | @@ -75,10 +75,22 @@ void arch_pick_mmap_layout(struct mm_str | 2314 | @@ -99,10 +99,22 @@ void arch_pick_mmap_layout(struct mm_str |
2196 | */ | 2315 | */ |
2197 | if (mmap_is_legacy()) { | 2316 | if (mmap_is_legacy()) { |
2198 | mm->mmap_base = TASK_UNMAPPED_BASE; | 2317 | mm->mmap_base = TASK_UNMAPPED_BASE; |
@@ -2215,9 +2334,9 @@ diff -urNp linux-2.6.29.6/arch/powerpc/mm/mmap.c linux-2.6.29.6/arch/powerpc/mm/ | |||
2215 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; | 2334 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; |
2216 | mm->unmap_area = arch_unmap_area_topdown; | 2335 | mm->unmap_area = arch_unmap_area_topdown; |
2217 | } | 2336 | } |
2218 | diff -urNp linux-2.6.29.6/arch/powerpc/platforms/cell/spufs/file.c linux-2.6.29.6/arch/powerpc/platforms/cell/spufs/file.c | 2337 | diff -urNp linux-2.6.30.4/arch/powerpc/platforms/cell/spufs/file.c linux-2.6.30.4/arch/powerpc/platforms/cell/spufs/file.c |
2219 | --- linux-2.6.29.6/arch/powerpc/platforms/cell/spufs/file.c 2009-07-02 19:41:20.000000000 -0400 | 2338 | --- linux-2.6.30.4/arch/powerpc/platforms/cell/spufs/file.c 2009-07-24 17:47:51.000000000 -0400 |
2220 | +++ linux-2.6.29.6/arch/powerpc/platforms/cell/spufs/file.c 2009-07-23 18:40:27.494291214 -0400 | 2339 | +++ linux-2.6.30.4/arch/powerpc/platforms/cell/spufs/file.c 2009-07-30 09:48:09.906622773 -0400 |
2221 | @@ -147,7 +147,7 @@ static int __fops ## _open(struct inode | 2340 | @@ -147,7 +147,7 @@ static int __fops ## _open(struct inode |
2222 | __simple_attr_check_format(__fmt, 0ull); \ | 2341 | __simple_attr_check_format(__fmt, 0ull); \ |
2223 | return spufs_attr_open(inode, file, __get, __set, __fmt); \ | 2342 | return spufs_attr_open(inode, file, __get, __set, __fmt); \ |
@@ -2245,7 +2364,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/platforms/cell/spufs/file.c linux-2.6.29. | |||
2245 | .fault = spufs_cntl_mmap_fault, | 2364 | .fault = spufs_cntl_mmap_fault, |
2246 | }; | 2365 | }; |
2247 | 2366 | ||
2248 | @@ -1141,7 +1141,7 @@ spufs_signal1_mmap_fault(struct vm_area_ | 2367 | @@ -1143,7 +1143,7 @@ spufs_signal1_mmap_fault(struct vm_area_ |
2249 | #endif | 2368 | #endif |
2250 | } | 2369 | } |
2251 | 2370 | ||
@@ -2254,7 +2373,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/platforms/cell/spufs/file.c linux-2.6.29. | |||
2254 | .fault = spufs_signal1_mmap_fault, | 2373 | .fault = spufs_signal1_mmap_fault, |
2255 | }; | 2374 | }; |
2256 | 2375 | ||
2257 | @@ -1277,7 +1277,7 @@ spufs_signal2_mmap_fault(struct vm_area_ | 2376 | @@ -1279,7 +1279,7 @@ spufs_signal2_mmap_fault(struct vm_area_ |
2258 | #endif | 2377 | #endif |
2259 | } | 2378 | } |
2260 | 2379 | ||
@@ -2263,7 +2382,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/platforms/cell/spufs/file.c linux-2.6.29. | |||
2263 | .fault = spufs_signal2_mmap_fault, | 2382 | .fault = spufs_signal2_mmap_fault, |
2264 | }; | 2383 | }; |
2265 | 2384 | ||
2266 | @@ -1395,7 +1395,7 @@ spufs_mss_mmap_fault(struct vm_area_stru | 2385 | @@ -1397,7 +1397,7 @@ spufs_mss_mmap_fault(struct vm_area_stru |
2267 | return spufs_ps_fault(vma, vmf, 0x0000, SPUFS_MSS_MAP_SIZE); | 2386 | return spufs_ps_fault(vma, vmf, 0x0000, SPUFS_MSS_MAP_SIZE); |
2268 | } | 2387 | } |
2269 | 2388 | ||
@@ -2272,7 +2391,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/platforms/cell/spufs/file.c linux-2.6.29. | |||
2272 | .fault = spufs_mss_mmap_fault, | 2391 | .fault = spufs_mss_mmap_fault, |
2273 | }; | 2392 | }; |
2274 | 2393 | ||
2275 | @@ -1456,7 +1456,7 @@ spufs_psmap_mmap_fault(struct vm_area_st | 2394 | @@ -1458,7 +1458,7 @@ spufs_psmap_mmap_fault(struct vm_area_st |
2276 | return spufs_ps_fault(vma, vmf, 0x0000, SPUFS_PS_MAP_SIZE); | 2395 | return spufs_ps_fault(vma, vmf, 0x0000, SPUFS_PS_MAP_SIZE); |
2277 | } | 2396 | } |
2278 | 2397 | ||
@@ -2281,7 +2400,7 @@ diff -urNp linux-2.6.29.6/arch/powerpc/platforms/cell/spufs/file.c linux-2.6.29. | |||
2281 | .fault = spufs_psmap_mmap_fault, | 2400 | .fault = spufs_psmap_mmap_fault, |
2282 | }; | 2401 | }; |
2283 | 2402 | ||
2284 | @@ -1515,7 +1515,7 @@ spufs_mfc_mmap_fault(struct vm_area_stru | 2403 | @@ -1517,7 +1517,7 @@ spufs_mfc_mmap_fault(struct vm_area_stru |
2285 | return spufs_ps_fault(vma, vmf, 0x3000, SPUFS_MFC_MAP_SIZE); | 2404 | return spufs_ps_fault(vma, vmf, 0x3000, SPUFS_MFC_MAP_SIZE); |
2286 | } | 2405 | } |
2287 | 2406 | ||
@@ -2290,9 +2409,21 @@ diff -urNp linux-2.6.29.6/arch/powerpc/platforms/cell/spufs/file.c linux-2.6.29. | |||
2290 | .fault = spufs_mfc_mmap_fault, | 2409 | .fault = spufs_mfc_mmap_fault, |
2291 | }; | 2410 | }; |
2292 | 2411 | ||
2293 | diff -urNp linux-2.6.29.6/arch/powerpc/platforms/pseries/hvCall_inst.c linux-2.6.29.6/arch/powerpc/platforms/pseries/hvCall_inst.c | 2412 | diff -urNp linux-2.6.30.4/arch/powerpc/platforms/pseries/dtl.c linux-2.6.30.4/arch/powerpc/platforms/pseries/dtl.c |
2294 | --- linux-2.6.29.6/arch/powerpc/platforms/pseries/hvCall_inst.c 2009-07-02 19:41:20.000000000 -0400 | 2413 | --- linux-2.6.30.4/arch/powerpc/platforms/pseries/dtl.c 2009-07-24 17:47:51.000000000 -0400 |
2295 | +++ linux-2.6.29.6/arch/powerpc/platforms/pseries/hvCall_inst.c 2009-07-23 18:40:27.495305970 -0400 | 2414 | +++ linux-2.6.30.4/arch/powerpc/platforms/pseries/dtl.c 2009-07-30 12:06:52.084821916 -0400 |
2415 | @@ -209,7 +209,7 @@ static ssize_t dtl_file_read(struct file | ||
2416 | return n_read * sizeof(struct dtl_entry); | ||
2417 | } | ||
2418 | |||
2419 | -static struct file_operations dtl_fops = { | ||
2420 | +static const struct file_operations dtl_fops = { | ||
2421 | .open = dtl_file_open, | ||
2422 | .release = dtl_file_release, | ||
2423 | .read = dtl_file_read, | ||
2424 | diff -urNp linux-2.6.30.4/arch/powerpc/platforms/pseries/hvCall_inst.c linux-2.6.30.4/arch/powerpc/platforms/pseries/hvCall_inst.c | ||
2425 | --- linux-2.6.30.4/arch/powerpc/platforms/pseries/hvCall_inst.c 2009-07-24 17:47:51.000000000 -0400 | ||
2426 | +++ linux-2.6.30.4/arch/powerpc/platforms/pseries/hvCall_inst.c 2009-07-30 09:48:09.906622773 -0400 | ||
2296 | @@ -71,7 +71,7 @@ static int hc_show(struct seq_file *m, v | 2427 | @@ -71,7 +71,7 @@ static int hc_show(struct seq_file *m, v |
2297 | return 0; | 2428 | return 0; |
2298 | } | 2429 | } |
@@ -2302,9 +2433,9 @@ diff -urNp linux-2.6.29.6/arch/powerpc/platforms/pseries/hvCall_inst.c linux-2.6 | |||
2302 | .start = hc_start, | 2433 | .start = hc_start, |
2303 | .next = hc_next, | 2434 | .next = hc_next, |
2304 | .stop = hc_stop, | 2435 | .stop = hc_stop, |
2305 | diff -urNp linux-2.6.29.6/arch/s390/hypfs/inode.c linux-2.6.29.6/arch/s390/hypfs/inode.c | 2436 | diff -urNp linux-2.6.30.4/arch/s390/hypfs/inode.c linux-2.6.30.4/arch/s390/hypfs/inode.c |
2306 | --- linux-2.6.29.6/arch/s390/hypfs/inode.c 2009-07-02 19:41:20.000000000 -0400 | 2437 | --- linux-2.6.30.4/arch/s390/hypfs/inode.c 2009-07-24 17:47:51.000000000 -0400 |
2307 | +++ linux-2.6.29.6/arch/s390/hypfs/inode.c 2009-07-23 18:40:27.495305970 -0400 | 2438 | +++ linux-2.6.30.4/arch/s390/hypfs/inode.c 2009-07-30 09:48:09.907613298 -0400 |
2308 | @@ -41,7 +41,7 @@ struct hypfs_sb_info { | 2439 | @@ -41,7 +41,7 @@ struct hypfs_sb_info { |
2309 | 2440 | ||
2310 | static const struct file_operations hypfs_file_ops; | 2441 | static const struct file_operations hypfs_file_ops; |
@@ -2323,9 +2454,9 @@ diff -urNp linux-2.6.29.6/arch/s390/hypfs/inode.c linux-2.6.29.6/arch/s390/hypfs | |||
2323 | .statfs = simple_statfs, | 2454 | .statfs = simple_statfs, |
2324 | .drop_inode = hypfs_drop_inode, | 2455 | .drop_inode = hypfs_drop_inode, |
2325 | .show_options = hypfs_show_options, | 2456 | .show_options = hypfs_show_options, |
2326 | diff -urNp linux-2.6.29.6/arch/s390/include/asm/atomic.h linux-2.6.29.6/arch/s390/include/asm/atomic.h | 2457 | diff -urNp linux-2.6.30.4/arch/s390/include/asm/atomic.h linux-2.6.30.4/arch/s390/include/asm/atomic.h |
2327 | --- linux-2.6.29.6/arch/s390/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400 | 2458 | --- linux-2.6.30.4/arch/s390/include/asm/atomic.h 2009-07-24 17:47:51.000000000 -0400 |
2328 | +++ linux-2.6.29.6/arch/s390/include/asm/atomic.h 2009-07-23 17:34:32.045826057 -0400 | 2459 | +++ linux-2.6.30.4/arch/s390/include/asm/atomic.h 2009-07-30 09:48:09.908552392 -0400 |
2329 | @@ -82,8 +82,10 @@ static __inline__ int atomic_add_return( | 2460 | @@ -82,8 +82,10 @@ static __inline__ int atomic_add_return( |
2330 | return __CS_LOOP(v, i, "ar"); | 2461 | return __CS_LOOP(v, i, "ar"); |
2331 | } | 2462 | } |
@@ -2345,9 +2476,9 @@ diff -urNp linux-2.6.29.6/arch/s390/include/asm/atomic.h linux-2.6.29.6/arch/s39 | |||
2345 | #define atomic_sub_and_test(_i, _v) (atomic_sub_return(_i, _v) == 0) | 2476 | #define atomic_sub_and_test(_i, _v) (atomic_sub_return(_i, _v) == 0) |
2346 | #define atomic_dec(_v) atomic_sub_return(1, _v) | 2477 | #define atomic_dec(_v) atomic_sub_return(1, _v) |
2347 | #define atomic_dec_return(_v) atomic_sub_return(1, _v) | 2478 | #define atomic_dec_return(_v) atomic_sub_return(1, _v) |
2348 | diff -urNp linux-2.6.29.6/arch/s390/include/asm/kmap_types.h linux-2.6.29.6/arch/s390/include/asm/kmap_types.h | 2479 | diff -urNp linux-2.6.30.4/arch/s390/include/asm/kmap_types.h linux-2.6.30.4/arch/s390/include/asm/kmap_types.h |
2349 | --- linux-2.6.29.6/arch/s390/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 2480 | --- linux-2.6.30.4/arch/s390/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
2350 | +++ linux-2.6.29.6/arch/s390/include/asm/kmap_types.h 2009-07-23 17:34:32.045826057 -0400 | 2481 | +++ linux-2.6.30.4/arch/s390/include/asm/kmap_types.h 2009-07-30 09:48:09.908552392 -0400 |
2351 | @@ -16,6 +16,7 @@ enum km_type { | 2482 | @@ -16,6 +16,7 @@ enum km_type { |
2352 | KM_IRQ1, | 2483 | KM_IRQ1, |
2353 | KM_SOFTIRQ0, | 2484 | KM_SOFTIRQ0, |
@@ -2356,21 +2487,44 @@ diff -urNp linux-2.6.29.6/arch/s390/include/asm/kmap_types.h linux-2.6.29.6/arch | |||
2356 | KM_TYPE_NR | 2487 | KM_TYPE_NR |
2357 | }; | 2488 | }; |
2358 | 2489 | ||
2359 | diff -urNp linux-2.6.29.6/arch/s390/include/asm/uaccess.h linux-2.6.29.6/arch/s390/include/asm/uaccess.h | 2490 | diff -urNp linux-2.6.30.4/arch/s390/include/asm/uaccess.h linux-2.6.30.4/arch/s390/include/asm/uaccess.h |
2360 | --- linux-2.6.29.6/arch/s390/include/asm/uaccess.h 2009-07-02 19:41:20.000000000 -0400 | 2491 | --- linux-2.6.30.4/arch/s390/include/asm/uaccess.h 2009-07-24 17:47:51.000000000 -0400 |
2361 | +++ linux-2.6.29.6/arch/s390/include/asm/uaccess.h 2009-07-23 17:34:32.045826057 -0400 | 2492 | +++ linux-2.6.30.4/arch/s390/include/asm/uaccess.h 2009-07-30 09:48:09.908552392 -0400 |
2362 | @@ -285,7 +285,7 @@ copy_from_user(void *to, const void __us | 2493 | @@ -232,6 +232,10 @@ static inline unsigned long __must_check |
2494 | copy_to_user(void __user *to, const void *from, unsigned long n) | ||
2495 | { | ||
2496 | might_sleep(); | ||
2497 | + | ||
2498 | + if ((long)n < 0) | ||
2499 | + return n; | ||
2500 | + | ||
2501 | if (access_ok(VERIFY_WRITE, to, n)) | ||
2502 | n = __copy_to_user(to, from, n); | ||
2503 | return n; | ||
2504 | @@ -257,6 +261,9 @@ copy_to_user(void __user *to, const void | ||
2505 | static inline unsigned long __must_check | ||
2506 | __copy_from_user(void *to, const void __user *from, unsigned long n) | ||
2507 | { | ||
2508 | + if ((long)n < 0) | ||
2509 | + return n; | ||
2510 | + | ||
2511 | if (__builtin_constant_p(n) && (n <= 256)) | ||
2512 | return uaccess.copy_from_user_small(n, from, to); | ||
2513 | else | ||
2514 | @@ -283,6 +290,10 @@ static inline unsigned long __must_check | ||
2515 | copy_from_user(void *to, const void __user *from, unsigned long n) | ||
2516 | { | ||
2363 | might_sleep(); | 2517 | might_sleep(); |
2518 | + | ||
2519 | + if ((long)n < 0) | ||
2520 | + return n; | ||
2521 | + | ||
2364 | if (access_ok(VERIFY_READ, from, n)) | 2522 | if (access_ok(VERIFY_READ, from, n)) |
2365 | n = __copy_from_user(to, from, n); | 2523 | n = __copy_from_user(to, from, n); |
2366 | - else | 2524 | else |
2367 | + else if ((long)n > 0) | 2525 | diff -urNp linux-2.6.30.4/arch/s390/kernel/module.c linux-2.6.30.4/arch/s390/kernel/module.c |
2368 | memset(to, 0, n); | 2526 | --- linux-2.6.30.4/arch/s390/kernel/module.c 2009-07-24 17:47:51.000000000 -0400 |
2369 | return n; | 2527 | +++ linux-2.6.30.4/arch/s390/kernel/module.c 2009-07-30 09:48:09.908552392 -0400 |
2370 | } | ||
2371 | diff -urNp linux-2.6.29.6/arch/s390/kernel/module.c linux-2.6.29.6/arch/s390/kernel/module.c | ||
2372 | --- linux-2.6.29.6/arch/s390/kernel/module.c 2009-07-02 19:41:20.000000000 -0400 | ||
2373 | +++ linux-2.6.29.6/arch/s390/kernel/module.c 2009-07-23 17:34:32.045826057 -0400 | ||
2374 | @@ -166,11 +166,11 @@ module_frob_arch_sections(Elf_Ehdr *hdr, | 2528 | @@ -166,11 +166,11 @@ module_frob_arch_sections(Elf_Ehdr *hdr, |
2375 | 2529 | ||
2376 | /* Increase core size by size of got & plt and set start | 2530 | /* Increase core size by size of got & plt and set start |
@@ -2415,16 +2569,16 @@ diff -urNp linux-2.6.29.6/arch/s390/kernel/module.c linux-2.6.29.6/arch/s390/ker | |||
2415 | info->plt_offset; | 2569 | info->plt_offset; |
2416 | #ifndef CONFIG_64BIT | 2570 | #ifndef CONFIG_64BIT |
2417 | ip[0] = 0x0d105810; /* basr 1,0; l 1,6(1); br 1 */ | 2571 | ip[0] = 0x0d105810; /* basr 1,0; l 1,6(1); br 1 */ |
2418 | @@ -316,7 +316,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base | 2572 | @@ -319,7 +319,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base |
2419 | val = me->arch.plt_offset - me->arch.got_offset + | 2573 | val - loc + 0xffffUL < 0x1ffffeUL) || |
2420 | info->plt_offset + rela->r_addend; | 2574 | (r_type == R_390_PLT32DBL && |
2421 | else | 2575 | val - loc + 0xffffffffULL < 0x1fffffffeULL))) |
2422 | - val = (Elf_Addr) me->module_core + | 2576 | - val = (Elf_Addr) me->module_core + |
2423 | + val = (Elf_Addr) me->module_core_rx + | 2577 | + val = (Elf_Addr) me->module_core_rx + |
2424 | me->arch.plt_offset + info->plt_offset + | 2578 | me->arch.plt_offset + |
2425 | rela->r_addend - loc; | 2579 | info->plt_offset; |
2426 | if (r_type == R_390_PLT16DBL) | 2580 | val += rela->r_addend - loc; |
2427 | @@ -336,7 +336,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base | 2581 | @@ -341,7 +341,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base |
2428 | case R_390_GOTOFF32: /* 32 bit offset to GOT. */ | 2582 | case R_390_GOTOFF32: /* 32 bit offset to GOT. */ |
2429 | case R_390_GOTOFF64: /* 64 bit offset to GOT. */ | 2583 | case R_390_GOTOFF64: /* 64 bit offset to GOT. */ |
2430 | val = val + rela->r_addend - | 2584 | val = val + rela->r_addend - |
@@ -2433,7 +2587,7 @@ diff -urNp linux-2.6.29.6/arch/s390/kernel/module.c linux-2.6.29.6/arch/s390/ker | |||
2433 | if (r_type == R_390_GOTOFF16) | 2587 | if (r_type == R_390_GOTOFF16) |
2434 | *(unsigned short *) loc = val; | 2588 | *(unsigned short *) loc = val; |
2435 | else if (r_type == R_390_GOTOFF32) | 2589 | else if (r_type == R_390_GOTOFF32) |
2436 | @@ -346,7 +346,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base | 2590 | @@ -351,7 +351,7 @@ apply_rela(Elf_Rela *rela, Elf_Addr base |
2437 | break; | 2591 | break; |
2438 | case R_390_GOTPC: /* 32 bit PC relative offset to GOT. */ | 2592 | case R_390_GOTPC: /* 32 bit PC relative offset to GOT. */ |
2439 | case R_390_GOTPCDBL: /* 32 bit PC rel. off. to GOT shifted by 1. */ | 2593 | case R_390_GOTPCDBL: /* 32 bit PC rel. off. to GOT shifted by 1. */ |
@@ -2442,9 +2596,9 @@ diff -urNp linux-2.6.29.6/arch/s390/kernel/module.c linux-2.6.29.6/arch/s390/ker | |||
2442 | rela->r_addend - loc; | 2596 | rela->r_addend - loc; |
2443 | if (r_type == R_390_GOTPC) | 2597 | if (r_type == R_390_GOTPC) |
2444 | *(unsigned int *) loc = val; | 2598 | *(unsigned int *) loc = val; |
2445 | diff -urNp linux-2.6.29.6/arch/sh/include/asm/atomic.h linux-2.6.29.6/arch/sh/include/asm/atomic.h | 2599 | diff -urNp linux-2.6.30.4/arch/sh/include/asm/atomic.h linux-2.6.30.4/arch/sh/include/asm/atomic.h |
2446 | --- linux-2.6.29.6/arch/sh/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400 | 2600 | --- linux-2.6.30.4/arch/sh/include/asm/atomic.h 2009-07-24 17:47:51.000000000 -0400 |
2447 | +++ linux-2.6.29.6/arch/sh/include/asm/atomic.h 2009-07-23 17:34:32.047807130 -0400 | 2601 | +++ linux-2.6.30.4/arch/sh/include/asm/atomic.h 2009-07-30 09:48:09.909647067 -0400 |
2448 | @@ -43,6 +43,9 @@ | 2602 | @@ -43,6 +43,9 @@ |
2449 | #define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0) | 2603 | #define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0) |
2450 | 2604 | ||
@@ -2455,9 +2609,9 @@ diff -urNp linux-2.6.29.6/arch/sh/include/asm/atomic.h linux-2.6.29.6/arch/sh/in | |||
2455 | #define atomic_dec(v) atomic_sub(1,(v)) | 2609 | #define atomic_dec(v) atomic_sub(1,(v)) |
2456 | 2610 | ||
2457 | #ifndef CONFIG_GUSA_RB | 2611 | #ifndef CONFIG_GUSA_RB |
2458 | diff -urNp linux-2.6.29.6/arch/sh/include/asm/kmap_types.h linux-2.6.29.6/arch/sh/include/asm/kmap_types.h | 2612 | diff -urNp linux-2.6.30.4/arch/sh/include/asm/kmap_types.h linux-2.6.30.4/arch/sh/include/asm/kmap_types.h |
2459 | --- linux-2.6.29.6/arch/sh/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 2613 | --- linux-2.6.30.4/arch/sh/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
2460 | +++ linux-2.6.29.6/arch/sh/include/asm/kmap_types.h 2009-07-23 17:34:32.047807130 -0400 | 2614 | +++ linux-2.6.30.4/arch/sh/include/asm/kmap_types.h 2009-07-30 09:48:09.909647067 -0400 |
2461 | @@ -24,7 +24,8 @@ D(9) KM_IRQ0, | 2615 | @@ -24,7 +24,8 @@ D(9) KM_IRQ0, |
2462 | D(10) KM_IRQ1, | 2616 | D(10) KM_IRQ1, |
2463 | D(11) KM_SOFTIRQ0, | 2617 | D(11) KM_SOFTIRQ0, |
@@ -2468,10 +2622,10 @@ diff -urNp linux-2.6.29.6/arch/sh/include/asm/kmap_types.h linux-2.6.29.6/arch/s | |||
2468 | }; | 2622 | }; |
2469 | 2623 | ||
2470 | #undef D | 2624 | #undef D |
2471 | diff -urNp linux-2.6.29.6/arch/sparc/include/asm/atomic_32.h linux-2.6.29.6/arch/sparc/include/asm/atomic_32.h | 2625 | diff -urNp linux-2.6.30.4/arch/sparc/include/asm/atomic_32.h linux-2.6.30.4/arch/sparc/include/asm/atomic_32.h |
2472 | --- linux-2.6.29.6/arch/sparc/include/asm/atomic_32.h 2009-07-02 19:41:20.000000000 -0400 | 2626 | --- linux-2.6.30.4/arch/sparc/include/asm/atomic_32.h 2009-07-24 17:47:51.000000000 -0400 |
2473 | +++ linux-2.6.29.6/arch/sparc/include/asm/atomic_32.h 2009-07-23 17:34:32.047807130 -0400 | 2627 | +++ linux-2.6.30.4/arch/sparc/include/asm/atomic_32.h 2009-07-30 09:48:09.910522181 -0400 |
2474 | @@ -26,8 +26,11 @@ extern void atomic_set(atomic_t *, int); | 2628 | @@ -28,8 +28,11 @@ extern void atomic_set(atomic_t *, int); |
2475 | #define atomic_read(v) ((v)->counter) | 2629 | #define atomic_read(v) ((v)->counter) |
2476 | 2630 | ||
2477 | #define atomic_add(i, v) ((void)__atomic_add_return( (int)(i), (v))) | 2631 | #define atomic_add(i, v) ((void)__atomic_add_return( (int)(i), (v))) |
@@ -2483,9 +2637,9 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/atomic_32.h linux-2.6.29.6/arch | |||
2483 | #define atomic_dec(v) ((void)__atomic_add_return( -1, (v))) | 2637 | #define atomic_dec(v) ((void)__atomic_add_return( -1, (v))) |
2484 | 2638 | ||
2485 | #define atomic_add_return(i, v) (__atomic_add_return( (int)(i), (v))) | 2639 | #define atomic_add_return(i, v) (__atomic_add_return( (int)(i), (v))) |
2486 | diff -urNp linux-2.6.29.6/arch/sparc/include/asm/atomic_64.h linux-2.6.29.6/arch/sparc/include/asm/atomic_64.h | 2640 | diff -urNp linux-2.6.30.4/arch/sparc/include/asm/atomic_64.h linux-2.6.30.4/arch/sparc/include/asm/atomic_64.h |
2487 | --- linux-2.6.29.6/arch/sparc/include/asm/atomic_64.h 2009-07-02 19:41:20.000000000 -0400 | 2641 | --- linux-2.6.30.4/arch/sparc/include/asm/atomic_64.h 2009-07-24 17:47:51.000000000 -0400 |
2488 | +++ linux-2.6.29.6/arch/sparc/include/asm/atomic_64.h 2009-07-23 17:34:32.047807130 -0400 | 2642 | +++ linux-2.6.30.4/arch/sparc/include/asm/atomic_64.h 2009-07-30 09:48:09.910522181 -0400 |
2489 | @@ -20,8 +20,10 @@ | 2643 | @@ -20,8 +20,10 @@ |
2490 | #define atomic64_set(v, i) (((v)->counter) = i) | 2644 | #define atomic64_set(v, i) (((v)->counter) = i) |
2491 | 2645 | ||
@@ -2505,9 +2659,9 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/atomic_64.h linux-2.6.29.6/arch | |||
2505 | #define atomic64_inc(v) atomic64_add(1, v) | 2659 | #define atomic64_inc(v) atomic64_add(1, v) |
2506 | 2660 | ||
2507 | #define atomic_dec(v) atomic_sub(1, v) | 2661 | #define atomic_dec(v) atomic_sub(1, v) |
2508 | diff -urNp linux-2.6.29.6/arch/sparc/include/asm/elf_32.h linux-2.6.29.6/arch/sparc/include/asm/elf_32.h | 2662 | diff -urNp linux-2.6.30.4/arch/sparc/include/asm/elf_32.h linux-2.6.30.4/arch/sparc/include/asm/elf_32.h |
2509 | --- linux-2.6.29.6/arch/sparc/include/asm/elf_32.h 2009-07-02 19:41:20.000000000 -0400 | 2663 | --- linux-2.6.30.4/arch/sparc/include/asm/elf_32.h 2009-07-24 17:47:51.000000000 -0400 |
2510 | +++ linux-2.6.29.6/arch/sparc/include/asm/elf_32.h 2009-07-23 17:34:32.047807130 -0400 | 2664 | +++ linux-2.6.30.4/arch/sparc/include/asm/elf_32.h 2009-07-30 09:48:09.910522181 -0400 |
2511 | @@ -116,6 +116,13 @@ typedef struct { | 2665 | @@ -116,6 +116,13 @@ typedef struct { |
2512 | 2666 | ||
2513 | #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE) | 2667 | #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE) |
@@ -2522,9 +2676,9 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/elf_32.h linux-2.6.29.6/arch/sp | |||
2522 | /* This yields a mask that user programs can use to figure out what | 2676 | /* This yields a mask that user programs can use to figure out what |
2523 | instruction set this cpu supports. This can NOT be done in userspace | 2677 | instruction set this cpu supports. This can NOT be done in userspace |
2524 | on Sparc. */ | 2678 | on Sparc. */ |
2525 | diff -urNp linux-2.6.29.6/arch/sparc/include/asm/elf_64.h linux-2.6.29.6/arch/sparc/include/asm/elf_64.h | 2679 | diff -urNp linux-2.6.30.4/arch/sparc/include/asm/elf_64.h linux-2.6.30.4/arch/sparc/include/asm/elf_64.h |
2526 | --- linux-2.6.29.6/arch/sparc/include/asm/elf_64.h 2009-07-02 19:41:20.000000000 -0400 | 2680 | --- linux-2.6.30.4/arch/sparc/include/asm/elf_64.h 2009-07-24 17:47:51.000000000 -0400 |
2527 | +++ linux-2.6.29.6/arch/sparc/include/asm/elf_64.h 2009-07-23 17:34:32.047807130 -0400 | 2681 | +++ linux-2.6.30.4/arch/sparc/include/asm/elf_64.h 2009-07-30 09:48:09.910522181 -0400 |
2528 | @@ -163,6 +163,12 @@ typedef struct { | 2682 | @@ -163,6 +163,12 @@ typedef struct { |
2529 | #define ELF_ET_DYN_BASE 0x0000010000000000UL | 2683 | #define ELF_ET_DYN_BASE 0x0000010000000000UL |
2530 | #define COMPAT_ELF_ET_DYN_BASE 0x0000000070000000UL | 2684 | #define COMPAT_ELF_ET_DYN_BASE 0x0000000070000000UL |
@@ -2538,9 +2692,9 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/elf_64.h linux-2.6.29.6/arch/sp | |||
2538 | 2692 | ||
2539 | /* This yields a mask that user programs can use to figure out what | 2693 | /* This yields a mask that user programs can use to figure out what |
2540 | instruction set this cpu supports. */ | 2694 | instruction set this cpu supports. */ |
2541 | diff -urNp linux-2.6.29.6/arch/sparc/include/asm/kmap_types.h linux-2.6.29.6/arch/sparc/include/asm/kmap_types.h | 2695 | diff -urNp linux-2.6.30.4/arch/sparc/include/asm/kmap_types.h linux-2.6.30.4/arch/sparc/include/asm/kmap_types.h |
2542 | --- linux-2.6.29.6/arch/sparc/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 2696 | --- linux-2.6.30.4/arch/sparc/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
2543 | +++ linux-2.6.29.6/arch/sparc/include/asm/kmap_types.h 2009-07-23 17:34:32.048766932 -0400 | 2697 | +++ linux-2.6.30.4/arch/sparc/include/asm/kmap_types.h 2009-07-30 09:48:09.910522181 -0400 |
2544 | @@ -19,6 +19,7 @@ enum km_type { | 2698 | @@ -19,6 +19,7 @@ enum km_type { |
2545 | KM_IRQ1, | 2699 | KM_IRQ1, |
2546 | KM_SOFTIRQ0, | 2700 | KM_SOFTIRQ0, |
@@ -2549,9 +2703,9 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/kmap_types.h linux-2.6.29.6/arc | |||
2549 | KM_TYPE_NR | 2703 | KM_TYPE_NR |
2550 | }; | 2704 | }; |
2551 | 2705 | ||
2552 | diff -urNp linux-2.6.29.6/arch/sparc/include/asm/pgtable_32.h linux-2.6.29.6/arch/sparc/include/asm/pgtable_32.h | 2706 | diff -urNp linux-2.6.30.4/arch/sparc/include/asm/pgtable_32.h linux-2.6.30.4/arch/sparc/include/asm/pgtable_32.h |
2553 | --- linux-2.6.29.6/arch/sparc/include/asm/pgtable_32.h 2009-07-02 19:41:20.000000000 -0400 | 2707 | --- linux-2.6.30.4/arch/sparc/include/asm/pgtable_32.h 2009-07-24 17:47:51.000000000 -0400 |
2554 | +++ linux-2.6.29.6/arch/sparc/include/asm/pgtable_32.h 2009-07-23 17:34:32.048766932 -0400 | 2708 | +++ linux-2.6.30.4/arch/sparc/include/asm/pgtable_32.h 2009-07-30 09:48:09.910522181 -0400 |
2555 | @@ -43,6 +43,13 @@ BTFIXUPDEF_SIMM13(user_ptrs_per_pgd) | 2709 | @@ -43,6 +43,13 @@ BTFIXUPDEF_SIMM13(user_ptrs_per_pgd) |
2556 | BTFIXUPDEF_INT(page_none) | 2710 | BTFIXUPDEF_INT(page_none) |
2557 | BTFIXUPDEF_INT(page_copy) | 2711 | BTFIXUPDEF_INT(page_copy) |
@@ -2583,9 +2737,9 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/pgtable_32.h linux-2.6.29.6/arc | |||
2583 | extern unsigned long page_kernel; | 2737 | extern unsigned long page_kernel; |
2584 | 2738 | ||
2585 | #ifdef MODULE | 2739 | #ifdef MODULE |
2586 | diff -urNp linux-2.6.29.6/arch/sparc/include/asm/pgtsrmmu.h linux-2.6.29.6/arch/sparc/include/asm/pgtsrmmu.h | 2740 | diff -urNp linux-2.6.30.4/arch/sparc/include/asm/pgtsrmmu.h linux-2.6.30.4/arch/sparc/include/asm/pgtsrmmu.h |
2587 | --- linux-2.6.29.6/arch/sparc/include/asm/pgtsrmmu.h 2009-07-02 19:41:20.000000000 -0400 | 2741 | --- linux-2.6.30.4/arch/sparc/include/asm/pgtsrmmu.h 2009-07-24 17:47:51.000000000 -0400 |
2588 | +++ linux-2.6.29.6/arch/sparc/include/asm/pgtsrmmu.h 2009-07-23 17:34:32.048766932 -0400 | 2742 | +++ linux-2.6.30.4/arch/sparc/include/asm/pgtsrmmu.h 2009-07-30 09:48:09.911921584 -0400 |
2589 | @@ -115,6 +115,13 @@ | 2743 | @@ -115,6 +115,13 @@ |
2590 | SRMMU_EXEC | SRMMU_REF) | 2744 | SRMMU_EXEC | SRMMU_REF) |
2591 | #define SRMMU_PAGE_RDONLY __pgprot(SRMMU_VALID | SRMMU_CACHE | \ | 2745 | #define SRMMU_PAGE_RDONLY __pgprot(SRMMU_VALID | SRMMU_CACHE | \ |
@@ -2600,30 +2754,42 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/pgtsrmmu.h linux-2.6.29.6/arch/ | |||
2600 | #define SRMMU_PAGE_KERNEL __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_PRIV | \ | 2754 | #define SRMMU_PAGE_KERNEL __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_PRIV | \ |
2601 | SRMMU_DIRTY | SRMMU_REF) | 2755 | SRMMU_DIRTY | SRMMU_REF) |
2602 | 2756 | ||
2603 | diff -urNp linux-2.6.29.6/arch/sparc/include/asm/uaccess_32.h linux-2.6.29.6/arch/sparc/include/asm/uaccess_32.h | 2757 | diff -urNp linux-2.6.30.4/arch/sparc/include/asm/uaccess_32.h linux-2.6.30.4/arch/sparc/include/asm/uaccess_32.h |
2604 | --- linux-2.6.29.6/arch/sparc/include/asm/uaccess_32.h 2009-07-02 19:41:20.000000000 -0400 | 2758 | --- linux-2.6.30.4/arch/sparc/include/asm/uaccess_32.h 2009-07-24 17:47:51.000000000 -0400 |
2605 | +++ linux-2.6.29.6/arch/sparc/include/asm/uaccess_32.h 2009-07-23 17:34:32.048766932 -0400 | 2759 | +++ linux-2.6.30.4/arch/sparc/include/asm/uaccess_32.h 2009-07-30 09:48:09.911921584 -0400 |
2606 | @@ -246,7 +246,7 @@ extern unsigned long __copy_user(void __ | 2760 | @@ -246,6 +246,9 @@ extern unsigned long __copy_user(void __ |
2607 | 2761 | ||
2608 | static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n) | 2762 | static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n) |
2609 | { | 2763 | { |
2610 | - if (n && __access_ok((unsigned long) to, n)) | 2764 | + if ((long)n < 0) |
2611 | + if (((int)n > 0) && __access_ok((unsigned long) to, n)) | 2765 | + return n; |
2766 | + | ||
2767 | if (n && __access_ok((unsigned long) to, n)) | ||
2612 | return __copy_user(to, (__force void __user *) from, n); | 2768 | return __copy_user(to, (__force void __user *) from, n); |
2613 | else | 2769 | else |
2614 | return n; | 2770 | @@ -259,6 +262,9 @@ static inline unsigned long __copy_to_us |
2615 | @@ -259,7 +259,7 @@ static inline unsigned long __copy_to_us | ||
2616 | 2771 | ||
2617 | static inline unsigned long copy_from_user(void *to, const void __user *from, unsigned long n) | 2772 | static inline unsigned long copy_from_user(void *to, const void __user *from, unsigned long n) |
2618 | { | 2773 | { |
2619 | - if (n && __access_ok((unsigned long) from, n)) | 2774 | + if ((long)n < 0) |
2620 | + if (((int)n > 0) && __access_ok((unsigned long) from, n)) | 2775 | + return n; |
2776 | + | ||
2777 | if (n && __access_ok((unsigned long) from, n)) | ||
2621 | return __copy_user((__force void __user *) to, from, n); | 2778 | return __copy_user((__force void __user *) to, from, n); |
2622 | else | 2779 | else |
2623 | return n; | 2780 | @@ -267,6 +273,9 @@ static inline unsigned long copy_from_us |
2624 | diff -urNp linux-2.6.29.6/arch/sparc/include/asm/uaccess_64.h linux-2.6.29.6/arch/sparc/include/asm/uaccess_64.h | 2781 | |
2625 | --- linux-2.6.29.6/arch/sparc/include/asm/uaccess_64.h 2009-07-02 19:41:20.000000000 -0400 | 2782 | static inline unsigned long __copy_from_user(void *to, const void __user *from, unsigned long n) |
2626 | +++ linux-2.6.29.6/arch/sparc/include/asm/uaccess_64.h 2009-07-23 17:34:32.048766932 -0400 | 2783 | { |
2784 | + if ((long)n < 0) | ||
2785 | + return n; | ||
2786 | + | ||
2787 | return __copy_user((__force void __user *) to, from, n); | ||
2788 | } | ||
2789 | |||
2790 | diff -urNp linux-2.6.30.4/arch/sparc/include/asm/uaccess_64.h linux-2.6.30.4/arch/sparc/include/asm/uaccess_64.h | ||
2791 | --- linux-2.6.30.4/arch/sparc/include/asm/uaccess_64.h 2009-07-24 17:47:51.000000000 -0400 | ||
2792 | +++ linux-2.6.30.4/arch/sparc/include/asm/uaccess_64.h 2009-07-30 11:10:48.823569054 -0400 | ||
2627 | @@ -212,7 +212,12 @@ extern unsigned long copy_from_user_fixu | 2793 | @@ -212,7 +212,12 @@ extern unsigned long copy_from_user_fixu |
2628 | static inline unsigned long __must_check | 2794 | static inline unsigned long __must_check |
2629 | copy_from_user(void *to, const void __user *from, unsigned long size) | 2795 | copy_from_user(void *to, const void __user *from, unsigned long size) |
@@ -2652,9 +2818,9 @@ diff -urNp linux-2.6.29.6/arch/sparc/include/asm/uaccess_64.h linux-2.6.29.6/arc | |||
2652 | 2818 | ||
2653 | if (unlikely(ret)) | 2819 | if (unlikely(ret)) |
2654 | ret = copy_to_user_fixup(to, from, size); | 2820 | ret = copy_to_user_fixup(to, from, size); |
2655 | diff -urNp linux-2.6.29.6/arch/sparc/kernel/Makefile linux-2.6.29.6/arch/sparc/kernel/Makefile | 2821 | diff -urNp linux-2.6.30.4/arch/sparc/kernel/Makefile linux-2.6.30.4/arch/sparc/kernel/Makefile |
2656 | --- linux-2.6.29.6/arch/sparc/kernel/Makefile 2009-07-02 19:41:20.000000000 -0400 | 2822 | --- linux-2.6.30.4/arch/sparc/kernel/Makefile 2009-07-24 17:47:51.000000000 -0400 |
2657 | +++ linux-2.6.29.6/arch/sparc/kernel/Makefile 2009-07-23 17:34:32.049741165 -0400 | 2823 | +++ linux-2.6.30.4/arch/sparc/kernel/Makefile 2009-07-30 09:48:09.911921584 -0400 |
2658 | @@ -3,7 +3,7 @@ | 2824 | @@ -3,7 +3,7 @@ |
2659 | # | 2825 | # |
2660 | 2826 | ||
@@ -2664,9 +2830,9 @@ diff -urNp linux-2.6.29.6/arch/sparc/kernel/Makefile linux-2.6.29.6/arch/sparc/k | |||
2664 | 2830 | ||
2665 | extra-y := head_$(BITS).o | 2831 | extra-y := head_$(BITS).o |
2666 | extra-y += init_task.o | 2832 | extra-y += init_task.o |
2667 | diff -urNp linux-2.6.29.6/arch/sparc/kernel/sys_sparc_32.c linux-2.6.29.6/arch/sparc/kernel/sys_sparc_32.c | 2833 | diff -urNp linux-2.6.30.4/arch/sparc/kernel/sys_sparc_32.c linux-2.6.30.4/arch/sparc/kernel/sys_sparc_32.c |
2668 | --- linux-2.6.29.6/arch/sparc/kernel/sys_sparc_32.c 2009-07-02 19:41:20.000000000 -0400 | 2834 | --- linux-2.6.30.4/arch/sparc/kernel/sys_sparc_32.c 2009-07-24 17:47:51.000000000 -0400 |
2669 | +++ linux-2.6.29.6/arch/sparc/kernel/sys_sparc_32.c 2009-07-23 17:34:32.049741165 -0400 | 2835 | +++ linux-2.6.30.4/arch/sparc/kernel/sys_sparc_32.c 2009-07-30 09:48:09.912653453 -0400 |
2670 | @@ -56,7 +56,7 @@ unsigned long arch_get_unmapped_area(str | 2836 | @@ -56,7 +56,7 @@ unsigned long arch_get_unmapped_area(str |
2671 | if (ARCH_SUN4C && len > 0x20000000) | 2837 | if (ARCH_SUN4C && len > 0x20000000) |
2672 | return -ENOMEM; | 2838 | return -ENOMEM; |
@@ -2676,9 +2842,9 @@ diff -urNp linux-2.6.29.6/arch/sparc/kernel/sys_sparc_32.c linux-2.6.29.6/arch/s | |||
2676 | 2842 | ||
2677 | if (flags & MAP_SHARED) | 2843 | if (flags & MAP_SHARED) |
2678 | addr = COLOUR_ALIGN(addr); | 2844 | addr = COLOUR_ALIGN(addr); |
2679 | diff -urNp linux-2.6.29.6/arch/sparc/kernel/sys_sparc_64.c linux-2.6.29.6/arch/sparc/kernel/sys_sparc_64.c | 2845 | diff -urNp linux-2.6.30.4/arch/sparc/kernel/sys_sparc_64.c linux-2.6.30.4/arch/sparc/kernel/sys_sparc_64.c |
2680 | --- linux-2.6.29.6/arch/sparc/kernel/sys_sparc_64.c 2009-07-02 19:41:20.000000000 -0400 | 2846 | --- linux-2.6.30.4/arch/sparc/kernel/sys_sparc_64.c 2009-07-24 17:47:51.000000000 -0400 |
2681 | +++ linux-2.6.29.6/arch/sparc/kernel/sys_sparc_64.c 2009-07-23 17:34:32.049741165 -0400 | 2847 | +++ linux-2.6.30.4/arch/sparc/kernel/sys_sparc_64.c 2009-07-30 09:48:09.912653453 -0400 |
2682 | @@ -125,7 +125,7 @@ unsigned long arch_get_unmapped_area(str | 2848 | @@ -125,7 +125,7 @@ unsigned long arch_get_unmapped_area(str |
2683 | /* We do not accept a shared mapping if it would violate | 2849 | /* We do not accept a shared mapping if it would violate |
2684 | * cache aliasing constraints. | 2850 | * cache aliasing constraints. |
@@ -2757,9 +2923,9 @@ diff -urNp linux-2.6.29.6/arch/sparc/kernel/sys_sparc_64.c linux-2.6.29.6/arch/s | |||
2757 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; | 2923 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; |
2758 | mm->unmap_area = arch_unmap_area_topdown; | 2924 | mm->unmap_area = arch_unmap_area_topdown; |
2759 | } | 2925 | } |
2760 | diff -urNp linux-2.6.29.6/arch/sparc/Makefile linux-2.6.29.6/arch/sparc/Makefile | 2926 | diff -urNp linux-2.6.30.4/arch/sparc/Makefile linux-2.6.30.4/arch/sparc/Makefile |
2761 | --- linux-2.6.29.6/arch/sparc/Makefile 2009-07-02 19:41:20.000000000 -0400 | 2927 | --- linux-2.6.30.4/arch/sparc/Makefile 2009-07-24 17:47:51.000000000 -0400 |
2762 | +++ linux-2.6.29.6/arch/sparc/Makefile 2009-07-23 17:34:32.049741165 -0400 | 2928 | +++ linux-2.6.30.4/arch/sparc/Makefile 2009-07-30 11:10:48.852135371 -0400 |
2763 | @@ -81,7 +81,7 @@ drivers-$(CONFIG_OPROFILE) += arch/sparc | 2929 | @@ -81,7 +81,7 @@ drivers-$(CONFIG_OPROFILE) += arch/sparc |
2764 | # Export what is needed by arch/sparc/boot/Makefile | 2930 | # Export what is needed by arch/sparc/boot/Makefile |
2765 | export VMLINUX_INIT VMLINUX_MAIN | 2931 | export VMLINUX_INIT VMLINUX_MAIN |
@@ -2769,9 +2935,9 @@ diff -urNp linux-2.6.29.6/arch/sparc/Makefile linux-2.6.29.6/arch/sparc/Makefile | |||
2769 | VMLINUX_MAIN += $(patsubst %/, %/lib.a, $(libs-y)) $(libs-y) | 2935 | VMLINUX_MAIN += $(patsubst %/, %/lib.a, $(libs-y)) $(libs-y) |
2770 | VMLINUX_MAIN += $(drivers-y) $(net-y) | 2936 | VMLINUX_MAIN += $(drivers-y) $(net-y) |
2771 | 2937 | ||
2772 | diff -urNp linux-2.6.29.6/arch/sparc/mm/fault_32.c linux-2.6.29.6/arch/sparc/mm/fault_32.c | 2938 | diff -urNp linux-2.6.30.4/arch/sparc/mm/fault_32.c linux-2.6.30.4/arch/sparc/mm/fault_32.c |
2773 | --- linux-2.6.29.6/arch/sparc/mm/fault_32.c 2009-07-02 19:41:20.000000000 -0400 | 2939 | --- linux-2.6.30.4/arch/sparc/mm/fault_32.c 2009-07-24 17:47:51.000000000 -0400 |
2774 | +++ linux-2.6.29.6/arch/sparc/mm/fault_32.c 2009-07-23 18:40:27.465457938 -0400 | 2940 | +++ linux-2.6.30.4/arch/sparc/mm/fault_32.c 2009-07-30 09:48:09.913853340 -0400 |
2775 | @@ -21,6 +21,9 @@ | 2941 | @@ -21,6 +21,9 @@ |
2776 | #include <linux/interrupt.h> | 2942 | #include <linux/interrupt.h> |
2777 | #include <linux/module.h> | 2943 | #include <linux/module.h> |
@@ -3057,9 +3223,9 @@ diff -urNp linux-2.6.29.6/arch/sparc/mm/fault_32.c linux-2.6.29.6/arch/sparc/mm/ | |||
3057 | /* Allow reads even for write-only mappings */ | 3223 | /* Allow reads even for write-only mappings */ |
3058 | if(!(vma->vm_flags & (VM_READ | VM_EXEC))) | 3224 | if(!(vma->vm_flags & (VM_READ | VM_EXEC))) |
3059 | goto bad_area; | 3225 | goto bad_area; |
3060 | diff -urNp linux-2.6.29.6/arch/sparc/mm/fault_64.c linux-2.6.29.6/arch/sparc/mm/fault_64.c | 3226 | diff -urNp linux-2.6.30.4/arch/sparc/mm/fault_64.c linux-2.6.30.4/arch/sparc/mm/fault_64.c |
3061 | --- linux-2.6.29.6/arch/sparc/mm/fault_64.c 2009-07-02 19:41:20.000000000 -0400 | 3227 | --- linux-2.6.30.4/arch/sparc/mm/fault_64.c 2009-07-24 17:47:51.000000000 -0400 |
3062 | +++ linux-2.6.29.6/arch/sparc/mm/fault_64.c 2009-07-23 18:40:27.466429820 -0400 | 3228 | +++ linux-2.6.30.4/arch/sparc/mm/fault_64.c 2009-07-30 09:48:09.913853340 -0400 |
3063 | @@ -20,6 +20,9 @@ | 3229 | @@ -20,6 +20,9 @@ |
3064 | #include <linux/kprobes.h> | 3230 | #include <linux/kprobes.h> |
3065 | #include <linux/kdebug.h> | 3231 | #include <linux/kdebug.h> |
@@ -3468,9 +3634,9 @@ diff -urNp linux-2.6.29.6/arch/sparc/mm/fault_64.c linux-2.6.29.6/arch/sparc/mm/ | |||
3468 | /* Pure DTLB misses do not tell us whether the fault causing | 3634 | /* Pure DTLB misses do not tell us whether the fault causing |
3469 | * load/store/atomic was a write or not, it only says that there | 3635 | * load/store/atomic was a write or not, it only says that there |
3470 | * was no match. So in such a case we (carefully) read the | 3636 | * was no match. So in such a case we (carefully) read the |
3471 | diff -urNp linux-2.6.29.6/arch/sparc/mm/init_32.c linux-2.6.29.6/arch/sparc/mm/init_32.c | 3637 | diff -urNp linux-2.6.30.4/arch/sparc/mm/init_32.c linux-2.6.30.4/arch/sparc/mm/init_32.c |
3472 | --- linux-2.6.29.6/arch/sparc/mm/init_32.c 2009-07-02 19:41:20.000000000 -0400 | 3638 | --- linux-2.6.30.4/arch/sparc/mm/init_32.c 2009-07-24 17:47:51.000000000 -0400 |
3473 | +++ linux-2.6.29.6/arch/sparc/mm/init_32.c 2009-07-23 17:34:32.050703291 -0400 | 3639 | +++ linux-2.6.30.4/arch/sparc/mm/init_32.c 2009-07-30 09:48:09.914627627 -0400 |
3474 | @@ -316,6 +316,9 @@ extern void device_scan(void); | 3640 | @@ -316,6 +316,9 @@ extern void device_scan(void); |
3475 | pgprot_t PAGE_SHARED __read_mostly; | 3641 | pgprot_t PAGE_SHARED __read_mostly; |
3476 | EXPORT_SYMBOL(PAGE_SHARED); | 3642 | EXPORT_SYMBOL(PAGE_SHARED); |
@@ -3505,9 +3671,9 @@ diff -urNp linux-2.6.29.6/arch/sparc/mm/init_32.c linux-2.6.29.6/arch/sparc/mm/i | |||
3505 | protection_map[12] = PAGE_READONLY; | 3671 | protection_map[12] = PAGE_READONLY; |
3506 | protection_map[13] = PAGE_READONLY; | 3672 | protection_map[13] = PAGE_READONLY; |
3507 | protection_map[14] = PAGE_SHARED; | 3673 | protection_map[14] = PAGE_SHARED; |
3508 | diff -urNp linux-2.6.29.6/arch/sparc/mm/Makefile linux-2.6.29.6/arch/sparc/mm/Makefile | 3674 | diff -urNp linux-2.6.30.4/arch/sparc/mm/Makefile linux-2.6.30.4/arch/sparc/mm/Makefile |
3509 | --- linux-2.6.29.6/arch/sparc/mm/Makefile 2009-07-02 19:41:20.000000000 -0400 | 3675 | --- linux-2.6.30.4/arch/sparc/mm/Makefile 2009-07-24 17:47:51.000000000 -0400 |
3510 | +++ linux-2.6.29.6/arch/sparc/mm/Makefile 2009-07-23 17:34:32.050703291 -0400 | 3676 | +++ linux-2.6.30.4/arch/sparc/mm/Makefile 2009-07-30 09:48:09.912653453 -0400 |
3511 | @@ -2,7 +2,7 @@ | 3677 | @@ -2,7 +2,7 @@ |
3512 | # | 3678 | # |
3513 | 3679 | ||
@@ -3517,9 +3683,9 @@ diff -urNp linux-2.6.29.6/arch/sparc/mm/Makefile linux-2.6.29.6/arch/sparc/mm/Ma | |||
3517 | 3683 | ||
3518 | obj-$(CONFIG_SPARC64) += ultra.o tlb.o tsb.o | 3684 | obj-$(CONFIG_SPARC64) += ultra.o tlb.o tsb.o |
3519 | obj-y += fault_$(BITS).o | 3685 | obj-y += fault_$(BITS).o |
3520 | diff -urNp linux-2.6.29.6/arch/sparc/mm/srmmu.c linux-2.6.29.6/arch/sparc/mm/srmmu.c | 3686 | diff -urNp linux-2.6.30.4/arch/sparc/mm/srmmu.c linux-2.6.30.4/arch/sparc/mm/srmmu.c |
3521 | --- linux-2.6.29.6/arch/sparc/mm/srmmu.c 2009-07-02 19:41:20.000000000 -0400 | 3687 | --- linux-2.6.30.4/arch/sparc/mm/srmmu.c 2009-07-24 17:47:51.000000000 -0400 |
3522 | +++ linux-2.6.29.6/arch/sparc/mm/srmmu.c 2009-07-23 17:34:32.051762759 -0400 | 3688 | +++ linux-2.6.30.4/arch/sparc/mm/srmmu.c 2009-07-30 09:48:09.914627627 -0400 |
3523 | @@ -2148,6 +2148,13 @@ void __init ld_mmu_srmmu(void) | 3689 | @@ -2148,6 +2148,13 @@ void __init ld_mmu_srmmu(void) |
3524 | PAGE_SHARED = pgprot_val(SRMMU_PAGE_SHARED); | 3690 | PAGE_SHARED = pgprot_val(SRMMU_PAGE_SHARED); |
3525 | BTFIXUPSET_INT(page_copy, pgprot_val(SRMMU_PAGE_COPY)); | 3691 | BTFIXUPSET_INT(page_copy, pgprot_val(SRMMU_PAGE_COPY)); |
@@ -3534,9 +3700,9 @@ diff -urNp linux-2.6.29.6/arch/sparc/mm/srmmu.c linux-2.6.29.6/arch/sparc/mm/srm | |||
3534 | BTFIXUPSET_INT(page_kernel, pgprot_val(SRMMU_PAGE_KERNEL)); | 3700 | BTFIXUPSET_INT(page_kernel, pgprot_val(SRMMU_PAGE_KERNEL)); |
3535 | page_kernel = pgprot_val(SRMMU_PAGE_KERNEL); | 3701 | page_kernel = pgprot_val(SRMMU_PAGE_KERNEL); |
3536 | 3702 | ||
3537 | diff -urNp linux-2.6.29.6/arch/um/include/asm/kmap_types.h linux-2.6.29.6/arch/um/include/asm/kmap_types.h | 3703 | diff -urNp linux-2.6.30.4/arch/um/include/asm/kmap_types.h linux-2.6.30.4/arch/um/include/asm/kmap_types.h |
3538 | --- linux-2.6.29.6/arch/um/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 3704 | --- linux-2.6.30.4/arch/um/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
3539 | +++ linux-2.6.29.6/arch/um/include/asm/kmap_types.h 2009-07-23 17:34:32.051762759 -0400 | 3705 | +++ linux-2.6.30.4/arch/um/include/asm/kmap_types.h 2009-07-30 09:48:09.914627627 -0400 |
3540 | @@ -23,6 +23,7 @@ enum km_type { | 3706 | @@ -23,6 +23,7 @@ enum km_type { |
3541 | KM_IRQ1, | 3707 | KM_IRQ1, |
3542 | KM_SOFTIRQ0, | 3708 | KM_SOFTIRQ0, |
@@ -3545,9 +3711,9 @@ diff -urNp linux-2.6.29.6/arch/um/include/asm/kmap_types.h linux-2.6.29.6/arch/u | |||
3545 | KM_TYPE_NR | 3711 | KM_TYPE_NR |
3546 | }; | 3712 | }; |
3547 | 3713 | ||
3548 | diff -urNp linux-2.6.29.6/arch/um/include/asm/page.h linux-2.6.29.6/arch/um/include/asm/page.h | 3714 | diff -urNp linux-2.6.30.4/arch/um/include/asm/page.h linux-2.6.30.4/arch/um/include/asm/page.h |
3549 | --- linux-2.6.29.6/arch/um/include/asm/page.h 2009-07-02 19:41:20.000000000 -0400 | 3715 | --- linux-2.6.30.4/arch/um/include/asm/page.h 2009-07-24 17:47:51.000000000 -0400 |
3550 | +++ linux-2.6.29.6/arch/um/include/asm/page.h 2009-07-23 17:34:32.051762759 -0400 | 3716 | +++ linux-2.6.30.4/arch/um/include/asm/page.h 2009-07-30 09:48:09.915798567 -0400 |
3551 | @@ -14,6 +14,9 @@ | 3717 | @@ -14,6 +14,9 @@ |
3552 | #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) | 3718 | #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) |
3553 | #define PAGE_MASK (~(PAGE_SIZE-1)) | 3719 | #define PAGE_MASK (~(PAGE_SIZE-1)) |
@@ -3558,9 +3724,9 @@ diff -urNp linux-2.6.29.6/arch/um/include/asm/page.h linux-2.6.29.6/arch/um/incl | |||
3558 | #ifndef __ASSEMBLY__ | 3724 | #ifndef __ASSEMBLY__ |
3559 | 3725 | ||
3560 | struct page; | 3726 | struct page; |
3561 | diff -urNp linux-2.6.29.6/arch/um/sys-i386/syscalls.c linux-2.6.29.6/arch/um/sys-i386/syscalls.c | 3727 | diff -urNp linux-2.6.30.4/arch/um/sys-i386/syscalls.c linux-2.6.30.4/arch/um/sys-i386/syscalls.c |
3562 | --- linux-2.6.29.6/arch/um/sys-i386/syscalls.c 2009-07-02 19:41:20.000000000 -0400 | 3728 | --- linux-2.6.30.4/arch/um/sys-i386/syscalls.c 2009-07-24 17:47:51.000000000 -0400 |
3563 | +++ linux-2.6.29.6/arch/um/sys-i386/syscalls.c 2009-07-23 17:34:32.051762759 -0400 | 3729 | +++ linux-2.6.30.4/arch/um/sys-i386/syscalls.c 2009-07-30 09:48:09.915798567 -0400 |
3564 | @@ -11,6 +11,21 @@ | 3730 | @@ -11,6 +11,21 @@ |
3565 | #include "asm/uaccess.h" | 3731 | #include "asm/uaccess.h" |
3566 | #include "asm/unistd.h" | 3732 | #include "asm/unistd.h" |
@@ -3583,9 +3749,9 @@ diff -urNp linux-2.6.29.6/arch/um/sys-i386/syscalls.c linux-2.6.29.6/arch/um/sys | |||
3583 | /* | 3749 | /* |
3584 | * Perform the select(nd, in, out, ex, tv) and mmap() system | 3750 | * Perform the select(nd, in, out, ex, tv) and mmap() system |
3585 | * calls. Linux/i386 didn't use to be able to handle more than | 3751 | * calls. Linux/i386 didn't use to be able to handle more than |
3586 | diff -urNp linux-2.6.29.6/arch/x86/boot/bitops.h linux-2.6.29.6/arch/x86/boot/bitops.h | 3752 | diff -urNp linux-2.6.30.4/arch/x86/boot/bitops.h linux-2.6.30.4/arch/x86/boot/bitops.h |
3587 | --- linux-2.6.29.6/arch/x86/boot/bitops.h 2009-07-02 19:41:20.000000000 -0400 | 3753 | --- linux-2.6.30.4/arch/x86/boot/bitops.h 2009-07-24 17:47:51.000000000 -0400 |
3588 | +++ linux-2.6.29.6/arch/x86/boot/bitops.h 2009-07-23 17:34:32.052702854 -0400 | 3754 | +++ linux-2.6.30.4/arch/x86/boot/bitops.h 2009-07-30 09:48:09.917626356 -0400 |
3589 | @@ -26,7 +26,7 @@ static inline int variable_test_bit(int | 3755 | @@ -26,7 +26,7 @@ static inline int variable_test_bit(int |
3590 | u8 v; | 3756 | u8 v; |
3591 | const u32 *p = (const u32 *)addr; | 3757 | const u32 *p = (const u32 *)addr; |
@@ -3604,9 +3770,9 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/bitops.h linux-2.6.29.6/arch/x86/boot/bi | |||
3604 | } | 3770 | } |
3605 | 3771 | ||
3606 | #endif /* BOOT_BITOPS_H */ | 3772 | #endif /* BOOT_BITOPS_H */ |
3607 | diff -urNp linux-2.6.29.6/arch/x86/boot/boot.h linux-2.6.29.6/arch/x86/boot/boot.h | 3773 | diff -urNp linux-2.6.30.4/arch/x86/boot/boot.h linux-2.6.30.4/arch/x86/boot/boot.h |
3608 | --- linux-2.6.29.6/arch/x86/boot/boot.h 2009-07-02 19:41:20.000000000 -0400 | 3774 | --- linux-2.6.30.4/arch/x86/boot/boot.h 2009-07-24 17:47:51.000000000 -0400 |
3609 | +++ linux-2.6.29.6/arch/x86/boot/boot.h 2009-07-23 17:34:32.052702854 -0400 | 3775 | +++ linux-2.6.30.4/arch/x86/boot/boot.h 2009-07-30 09:48:09.917626356 -0400 |
3610 | @@ -80,7 +80,7 @@ static inline void io_delay(void) | 3776 | @@ -80,7 +80,7 @@ static inline void io_delay(void) |
3611 | static inline u16 ds(void) | 3777 | static inline u16 ds(void) |
3612 | { | 3778 | { |
@@ -3625,10 +3791,10 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/boot.h linux-2.6.29.6/arch/x86/boot/boot | |||
3625 | : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len)); | 3791 | : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len)); |
3626 | return diff; | 3792 | return diff; |
3627 | } | 3793 | } |
3628 | diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/head_32.S linux-2.6.29.6/arch/x86/boot/compressed/head_32.S | 3794 | diff -urNp linux-2.6.30.4/arch/x86/boot/compressed/head_32.S linux-2.6.30.4/arch/x86/boot/compressed/head_32.S |
3629 | --- linux-2.6.29.6/arch/x86/boot/compressed/head_32.S 2009-07-02 19:41:20.000000000 -0400 | 3795 | --- linux-2.6.30.4/arch/x86/boot/compressed/head_32.S 2009-07-24 17:47:51.000000000 -0400 |
3630 | +++ linux-2.6.29.6/arch/x86/boot/compressed/head_32.S 2009-07-23 17:34:32.052702854 -0400 | 3796 | +++ linux-2.6.30.4/arch/x86/boot/compressed/head_32.S 2009-07-30 09:48:09.917626356 -0400 |
3631 | @@ -70,7 +70,7 @@ startup_32: | 3797 | @@ -68,7 +68,7 @@ ENTRY(startup_32) |
3632 | addl $(CONFIG_PHYSICAL_ALIGN - 1), %ebx | 3798 | addl $(CONFIG_PHYSICAL_ALIGN - 1), %ebx |
3633 | andl $(~(CONFIG_PHYSICAL_ALIGN - 1)), %ebx | 3799 | andl $(~(CONFIG_PHYSICAL_ALIGN - 1)), %ebx |
3634 | #else | 3800 | #else |
@@ -3637,7 +3803,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/head_32.S linux-2.6.29.6/arch | |||
3637 | #endif | 3803 | #endif |
3638 | 3804 | ||
3639 | /* Replace the compressed data size with the uncompressed size */ | 3805 | /* Replace the compressed data size with the uncompressed size */ |
3640 | @@ -80,8 +80,8 @@ startup_32: | 3806 | @@ -78,8 +78,8 @@ ENTRY(startup_32) |
3641 | /* Add 8 bytes for every 32K input block */ | 3807 | /* Add 8 bytes for every 32K input block */ |
3642 | shrl $12, %eax | 3808 | shrl $12, %eax |
3643 | addl %eax, %ebx | 3809 | addl %eax, %ebx |
@@ -3648,7 +3814,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/head_32.S linux-2.6.29.6/arch | |||
3648 | /* Align on a 4K boundary */ | 3814 | /* Align on a 4K boundary */ |
3649 | addl $4095, %ebx | 3815 | addl $4095, %ebx |
3650 | andl $~4095, %ebx | 3816 | andl $~4095, %ebx |
3651 | @@ -105,7 +105,7 @@ startup_32: | 3817 | @@ -103,7 +103,7 @@ ENTRY(startup_32) |
3652 | addl $(CONFIG_PHYSICAL_ALIGN - 1), %ebp | 3818 | addl $(CONFIG_PHYSICAL_ALIGN - 1), %ebp |
3653 | andl $(~(CONFIG_PHYSICAL_ALIGN - 1)), %ebp | 3819 | andl $(~(CONFIG_PHYSICAL_ALIGN - 1)), %ebp |
3654 | #else | 3820 | #else |
@@ -3677,10 +3843,10 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/head_32.S linux-2.6.29.6/arch | |||
3677 | addl %ebx, -__PAGE_OFFSET(%ebx, %ecx) | 3843 | addl %ebx, -__PAGE_OFFSET(%ebx, %ecx) |
3678 | jmp 1b | 3844 | jmp 1b |
3679 | 2: | 3845 | 2: |
3680 | diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/misc.c linux-2.6.29.6/arch/x86/boot/compressed/misc.c | 3846 | diff -urNp linux-2.6.30.4/arch/x86/boot/compressed/misc.c linux-2.6.30.4/arch/x86/boot/compressed/misc.c |
3681 | --- linux-2.6.29.6/arch/x86/boot/compressed/misc.c 2009-07-02 19:41:20.000000000 -0400 | 3847 | --- linux-2.6.30.4/arch/x86/boot/compressed/misc.c 2009-07-24 17:47:51.000000000 -0400 |
3682 | +++ linux-2.6.29.6/arch/x86/boot/compressed/misc.c 2009-07-23 17:34:32.052702854 -0400 | 3848 | +++ linux-2.6.30.4/arch/x86/boot/compressed/misc.c 2009-07-30 09:48:09.917626356 -0400 |
3683 | @@ -373,7 +373,7 @@ static void parse_elf(void *output) | 3849 | @@ -288,7 +288,7 @@ static void parse_elf(void *output) |
3684 | case PT_LOAD: | 3850 | case PT_LOAD: |
3685 | #ifdef CONFIG_RELOCATABLE | 3851 | #ifdef CONFIG_RELOCATABLE |
3686 | dest = output; | 3852 | dest = output; |
@@ -3689,7 +3855,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/misc.c linux-2.6.29.6/arch/x8 | |||
3689 | #else | 3855 | #else |
3690 | dest = (void *)(phdr->p_paddr); | 3856 | dest = (void *)(phdr->p_paddr); |
3691 | #endif | 3857 | #endif |
3692 | @@ -425,7 +425,7 @@ asmlinkage void decompress_kernel(void * | 3858 | @@ -336,7 +336,7 @@ asmlinkage void decompress_kernel(void * |
3693 | if (heap > ((-__PAGE_OFFSET-(512<<20)-1) & 0x7fffffff)) | 3859 | if (heap > ((-__PAGE_OFFSET-(512<<20)-1) & 0x7fffffff)) |
3694 | error("Destination address too large"); | 3860 | error("Destination address too large"); |
3695 | #ifndef CONFIG_RELOCATABLE | 3861 | #ifndef CONFIG_RELOCATABLE |
@@ -3698,9 +3864,9 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/misc.c linux-2.6.29.6/arch/x8 | |||
3698 | error("Wrong destination address"); | 3864 | error("Wrong destination address"); |
3699 | #endif | 3865 | #endif |
3700 | #endif | 3866 | #endif |
3701 | diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/relocs.c linux-2.6.29.6/arch/x86/boot/compressed/relocs.c | 3867 | diff -urNp linux-2.6.30.4/arch/x86/boot/compressed/relocs.c linux-2.6.30.4/arch/x86/boot/compressed/relocs.c |
3702 | --- linux-2.6.29.6/arch/x86/boot/compressed/relocs.c 2009-07-02 19:41:20.000000000 -0400 | 3868 | --- linux-2.6.30.4/arch/x86/boot/compressed/relocs.c 2009-07-24 17:47:51.000000000 -0400 |
3703 | +++ linux-2.6.29.6/arch/x86/boot/compressed/relocs.c 2009-07-23 17:34:32.052702854 -0400 | 3869 | +++ linux-2.6.30.4/arch/x86/boot/compressed/relocs.c 2009-07-30 09:48:09.918715361 -0400 |
3704 | @@ -10,8 +10,11 @@ | 3870 | @@ -10,8 +10,11 @@ |
3705 | #define USE_BSD | 3871 | #define USE_BSD |
3706 | #include <endian.h> | 3872 | #include <endian.h> |
@@ -3784,7 +3950,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/relocs.c linux-2.6.29.6/arch/ | |||
3784 | continue; | 3950 | continue; |
3785 | } | 3951 | } |
3786 | + /* Don't relocate actual per-cpu variables, they are absolute indices, not addresses */ | 3952 | + /* Don't relocate actual per-cpu variables, they are absolute indices, not addresses */ |
3787 | + if (!strcmp(sec_name(sym->st_shndx), ".data.percpu") && strncmp(sym_name(sym_strtab, sym), "__per_cpu_", 10)) | 3953 | + if (!strcmp(sec_name(sym->st_shndx), ".data.percpu") && strcmp(sym_name(sym_strtab, sym), "__per_cpu_load")) |
3788 | + continue; | 3954 | + continue; |
3789 | +#if defined(CONFIG_PAX_KERNEXEC) && defined(CONFIG_X86_32) | 3955 | +#if defined(CONFIG_PAX_KERNEXEC) && defined(CONFIG_X86_32) |
3790 | + /* Don't relocate actual code, they are relocated implicitly by the base address of KERNEL_CS */ | 3956 | + /* Don't relocate actual code, they are relocated implicitly by the base address of KERNEL_CS */ |
@@ -3800,10 +3966,10 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/relocs.c linux-2.6.29.6/arch/ | |||
3800 | + if (!strcmp(sec_name(sym->st_shndx), ".text")) | 3966 | + if (!strcmp(sec_name(sym->st_shndx), ".text")) |
3801 | + continue; | 3967 | + continue; |
3802 | +#endif | 3968 | +#endif |
3803 | if (r_type == R_386_PC32) { | 3969 | if (r_type == R_386_NONE || r_type == R_386_PC32) { |
3804 | /* PC relative relocations don't need to be adjusted */ | 3970 | /* |
3805 | } | 3971 | * NONE can be ignored and and PC relative |
3806 | @@ -631,6 +692,7 @@ int main(int argc, char **argv) | 3972 | @@ -634,6 +695,7 @@ int main(int argc, char **argv) |
3807 | fname, strerror(errno)); | 3973 | fname, strerror(errno)); |
3808 | } | 3974 | } |
3809 | read_ehdr(fp); | 3975 | read_ehdr(fp); |
@@ -3811,9 +3977,9 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/compressed/relocs.c linux-2.6.29.6/arch/ | |||
3811 | read_shdrs(fp); | 3977 | read_shdrs(fp); |
3812 | read_strtabs(fp); | 3978 | read_strtabs(fp); |
3813 | read_symtabs(fp); | 3979 | read_symtabs(fp); |
3814 | diff -urNp linux-2.6.29.6/arch/x86/boot/cpucheck.c linux-2.6.29.6/arch/x86/boot/cpucheck.c | 3980 | diff -urNp linux-2.6.30.4/arch/x86/boot/cpucheck.c linux-2.6.30.4/arch/x86/boot/cpucheck.c |
3815 | --- linux-2.6.29.6/arch/x86/boot/cpucheck.c 2009-07-02 19:41:20.000000000 -0400 | 3981 | --- linux-2.6.30.4/arch/x86/boot/cpucheck.c 2009-07-24 17:47:51.000000000 -0400 |
3816 | +++ linux-2.6.29.6/arch/x86/boot/cpucheck.c 2009-07-23 17:34:32.052702854 -0400 | 3982 | +++ linux-2.6.30.4/arch/x86/boot/cpucheck.c 2009-07-30 09:48:09.918715361 -0400 |
3817 | @@ -74,7 +74,7 @@ static int has_fpu(void) | 3983 | @@ -74,7 +74,7 @@ static int has_fpu(void) |
3818 | u16 fcw = -1, fsw = -1; | 3984 | u16 fcw = -1, fsw = -1; |
3819 | u32 cr0; | 3985 | u32 cr0; |
@@ -3909,9 +4075,9 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/cpucheck.c linux-2.6.29.6/arch/x86/boot/ | |||
3909 | 4075 | ||
3910 | err = check_flags(); | 4076 | err = check_flags(); |
3911 | } | 4077 | } |
3912 | diff -urNp linux-2.6.29.6/arch/x86/boot/edd.c linux-2.6.29.6/arch/x86/boot/edd.c | 4078 | diff -urNp linux-2.6.30.4/arch/x86/boot/edd.c linux-2.6.30.4/arch/x86/boot/edd.c |
3913 | --- linux-2.6.29.6/arch/x86/boot/edd.c 2009-07-02 19:41:20.000000000 -0400 | 4079 | --- linux-2.6.30.4/arch/x86/boot/edd.c 2009-07-24 17:47:51.000000000 -0400 |
3914 | +++ linux-2.6.29.6/arch/x86/boot/edd.c 2009-07-23 17:34:32.053815554 -0400 | 4080 | +++ linux-2.6.30.4/arch/x86/boot/edd.c 2009-07-30 09:48:09.919627263 -0400 |
3915 | @@ -81,7 +81,7 @@ static int get_edd_info(u8 devno, struct | 4081 | @@ -81,7 +81,7 @@ static int get_edd_info(u8 devno, struct |
3916 | ax = 0x4100; | 4082 | ax = 0x4100; |
3917 | bx = EDDMAGIC1; | 4083 | bx = EDDMAGIC1; |
@@ -3939,9 +4105,9 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/edd.c linux-2.6.29.6/arch/x86/boot/edd.c | |||
3939 | "movw %%di,%%es; " | 4105 | "movw %%di,%%es; " |
3940 | "pushfl; stc; int $0x13; setc %%al; popfl; " | 4106 | "pushfl; stc; int $0x13; setc %%al; popfl; " |
3941 | "popw %%es" | 4107 | "popw %%es" |
3942 | diff -urNp linux-2.6.29.6/arch/x86/boot/main.c linux-2.6.29.6/arch/x86/boot/main.c | 4108 | diff -urNp linux-2.6.30.4/arch/x86/boot/main.c linux-2.6.30.4/arch/x86/boot/main.c |
3943 | --- linux-2.6.29.6/arch/x86/boot/main.c 2009-07-02 19:41:20.000000000 -0400 | 4109 | --- linux-2.6.30.4/arch/x86/boot/main.c 2009-07-24 17:47:51.000000000 -0400 |
3944 | +++ linux-2.6.29.6/arch/x86/boot/main.c 2009-07-23 17:34:32.053815554 -0400 | 4110 | +++ linux-2.6.30.4/arch/x86/boot/main.c 2009-07-30 09:48:09.919627263 -0400 |
3945 | @@ -78,7 +78,7 @@ static void query_ist(void) | 4111 | @@ -78,7 +78,7 @@ static void query_ist(void) |
3946 | if (cpu.level < 6) | 4112 | if (cpu.level < 6) |
3947 | return; | 4113 | return; |
@@ -3951,9 +4117,9 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/main.c linux-2.6.29.6/arch/x86/boot/main | |||
3951 | : "=a" (boot_params.ist_info.signature), | 4117 | : "=a" (boot_params.ist_info.signature), |
3952 | "=b" (boot_params.ist_info.command), | 4118 | "=b" (boot_params.ist_info.command), |
3953 | "=c" (boot_params.ist_info.event), | 4119 | "=c" (boot_params.ist_info.event), |
3954 | diff -urNp linux-2.6.29.6/arch/x86/boot/mca.c linux-2.6.29.6/arch/x86/boot/mca.c | 4120 | diff -urNp linux-2.6.30.4/arch/x86/boot/mca.c linux-2.6.30.4/arch/x86/boot/mca.c |
3955 | --- linux-2.6.29.6/arch/x86/boot/mca.c 2009-07-02 19:41:20.000000000 -0400 | 4121 | --- linux-2.6.30.4/arch/x86/boot/mca.c 2009-07-24 17:47:51.000000000 -0400 |
3956 | +++ linux-2.6.29.6/arch/x86/boot/mca.c 2009-07-23 17:34:32.053815554 -0400 | 4122 | +++ linux-2.6.30.4/arch/x86/boot/mca.c 2009-07-30 09:48:09.919627263 -0400 |
3957 | @@ -19,7 +19,7 @@ int query_mca(void) | 4123 | @@ -19,7 +19,7 @@ int query_mca(void) |
3958 | u8 err; | 4124 | u8 err; |
3959 | u16 es, bx, len; | 4125 | u16 es, bx, len; |
@@ -3963,19 +4129,19 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/mca.c linux-2.6.29.6/arch/x86/boot/mca.c | |||
3963 | "int $0x15 ; " | 4129 | "int $0x15 ; " |
3964 | "setc %0 ; " | 4130 | "setc %0 ; " |
3965 | "movw %%es, %1 ; " | 4131 | "movw %%es, %1 ; " |
3966 | diff -urNp linux-2.6.29.6/arch/x86/boot/memory.c linux-2.6.29.6/arch/x86/boot/memory.c | 4132 | diff -urNp linux-2.6.30.4/arch/x86/boot/memory.c linux-2.6.30.4/arch/x86/boot/memory.c |
3967 | --- linux-2.6.29.6/arch/x86/boot/memory.c 2009-07-02 19:41:20.000000000 -0400 | 4133 | --- linux-2.6.30.4/arch/x86/boot/memory.c 2009-07-24 17:47:51.000000000 -0400 |
3968 | +++ linux-2.6.29.6/arch/x86/boot/memory.c 2009-07-23 17:34:32.053815554 -0400 | 4134 | +++ linux-2.6.30.4/arch/x86/boot/memory.c 2009-07-30 09:48:09.919627263 -0400 |
3969 | @@ -30,7 +30,7 @@ static int detect_memory_e820(void) | 4135 | @@ -47,7 +47,7 @@ static int detect_memory_e820(void) |
3970 | /* Important: %edx and %esi are clobbered by some BIOSes, | ||
3971 | so they must be either used for the error output | 4136 | so they must be either used for the error output |
3972 | or explicitly marked clobbered. */ | 4137 | or explicitly marked clobbered. Given that, assume there |
3973 | - asm("int $0x15; setc %0" | 4138 | is something out there clobbering %ebp and %edi, too. */ |
3974 | + asm volatile("int $0x15; setc %0" | 4139 | - asm("pushl %%ebp; int $0x15; popl %%ebp; setc %0" |
4140 | + asm volatile("pushl %%ebp; int $0x15; popl %%ebp; setc %0" | ||
3975 | : "=d" (err), "+b" (next), "=a" (id), "+c" (size), | 4141 | : "=d" (err), "+b" (next), "=a" (id), "+c" (size), |
3976 | "=m" (*desc) | 4142 | "=D" (edi), "+m" (buf) |
3977 | : "D" (desc), "d" (SMAP), "a" (0xe820) | 4143 | : "D" (&buf), "d" (SMAP), "a" (0xe820) |
3978 | @@ -66,7 +66,7 @@ static int detect_memory_e801(void) | 4144 | @@ -83,7 +83,7 @@ static int detect_memory_e801(void) |
3979 | 4145 | ||
3980 | bx = cx = dx = 0; | 4146 | bx = cx = dx = 0; |
3981 | ax = 0xe801; | 4147 | ax = 0xe801; |
@@ -3984,7 +4150,7 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/memory.c linux-2.6.29.6/arch/x86/boot/me | |||
3984 | : "=m" (err), "+a" (ax), "+b" (bx), "+c" (cx), "+d" (dx)); | 4150 | : "=m" (err), "+a" (ax), "+b" (bx), "+c" (cx), "+d" (dx)); |
3985 | 4151 | ||
3986 | if (err) | 4152 | if (err) |
3987 | @@ -96,7 +96,7 @@ static int detect_memory_88(void) | 4153 | @@ -113,7 +113,7 @@ static int detect_memory_88(void) |
3988 | u8 err; | 4154 | u8 err; |
3989 | 4155 | ||
3990 | ax = 0x8800; | 4156 | ax = 0x8800; |
@@ -3993,9 +4159,9 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/memory.c linux-2.6.29.6/arch/x86/boot/me | |||
3993 | 4159 | ||
3994 | boot_params.screen_info.ext_mem_k = ax; | 4160 | boot_params.screen_info.ext_mem_k = ax; |
3995 | 4161 | ||
3996 | diff -urNp linux-2.6.29.6/arch/x86/boot/video.c linux-2.6.29.6/arch/x86/boot/video.c | 4162 | diff -urNp linux-2.6.30.4/arch/x86/boot/video.c linux-2.6.30.4/arch/x86/boot/video.c |
3997 | --- linux-2.6.29.6/arch/x86/boot/video.c 2009-07-02 19:41:20.000000000 -0400 | 4163 | --- linux-2.6.30.4/arch/x86/boot/video.c 2009-07-24 17:47:51.000000000 -0400 |
3998 | +++ linux-2.6.29.6/arch/x86/boot/video.c 2009-07-23 17:34:32.053815554 -0400 | 4164 | +++ linux-2.6.30.4/arch/x86/boot/video.c 2009-07-30 09:48:09.920627513 -0400 |
3999 | @@ -23,7 +23,7 @@ static void store_cursor_position(void) | 4165 | @@ -23,7 +23,7 @@ static void store_cursor_position(void) |
4000 | 4166 | ||
4001 | ax = 0x0300; | 4167 | ax = 0x0300; |
@@ -4014,9 +4180,9 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/video.c linux-2.6.29.6/arch/x86/boot/vid | |||
4014 | : "+a" (ax), "=b" (page) | 4180 | : "+a" (ax), "=b" (page) |
4015 | : : "ecx", "edx", "esi", "edi"); | 4181 | : : "ecx", "edx", "esi", "edi"); |
4016 | 4182 | ||
4017 | diff -urNp linux-2.6.29.6/arch/x86/boot/video-vesa.c linux-2.6.29.6/arch/x86/boot/video-vesa.c | 4183 | diff -urNp linux-2.6.30.4/arch/x86/boot/video-vesa.c linux-2.6.30.4/arch/x86/boot/video-vesa.c |
4018 | --- linux-2.6.29.6/arch/x86/boot/video-vesa.c 2009-07-02 19:41:20.000000000 -0400 | 4184 | --- linux-2.6.30.4/arch/x86/boot/video-vesa.c 2009-07-24 17:47:51.000000000 -0400 |
4019 | +++ linux-2.6.29.6/arch/x86/boot/video-vesa.c 2009-07-23 17:34:32.053815554 -0400 | 4185 | +++ linux-2.6.30.4/arch/x86/boot/video-vesa.c 2009-07-30 09:48:09.920627513 -0400 |
4020 | @@ -41,7 +41,7 @@ static int vesa_probe(void) | 4186 | @@ -41,7 +41,7 @@ static int vesa_probe(void) |
4021 | 4187 | ||
4022 | ax = 0x4f00; | 4188 | ax = 0x4f00; |
@@ -4088,19 +4254,19 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/video-vesa.c linux-2.6.29.6/arch/x86/boo | |||
4088 | : "+a" (ax), "+b" (bx), "+d" (dx), "=m" (boot_params.edid_info), | 4254 | : "+a" (ax), "+b" (bx), "+d" (dx), "=m" (boot_params.edid_info), |
4089 | "+c" (cx), "+D" (di) | 4255 | "+c" (cx), "+D" (di) |
4090 | : : "esi"); | 4256 | : : "esi"); |
4091 | diff -urNp linux-2.6.29.6/arch/x86/boot/video-vga.c linux-2.6.29.6/arch/x86/boot/video-vga.c | 4257 | diff -urNp linux-2.6.30.4/arch/x86/boot/video-vga.c linux-2.6.30.4/arch/x86/boot/video-vga.c |
4092 | --- linux-2.6.29.6/arch/x86/boot/video-vga.c 2009-07-02 19:41:20.000000000 -0400 | 4258 | --- linux-2.6.30.4/arch/x86/boot/video-vga.c 2009-07-30 20:32:40.362766121 -0400 |
4093 | +++ linux-2.6.29.6/arch/x86/boot/video-vga.c 2009-07-23 17:34:32.054707168 -0400 | 4259 | +++ linux-2.6.30.4/arch/x86/boot/video-vga.c 2009-07-30 20:35:05.409914191 -0400 |
4094 | @@ -225,7 +225,7 @@ static int vga_probe(void) | 4260 | @@ -260,7 +260,7 @@ static int vga_probe(void) |
4095 | }; | ||
4096 | u8 vga_flag; | 4261 | u8 vga_flag; |
4097 | 4262 | ||
4263 | ax = 0x1200; | ||
4098 | - asm(INT10 | 4264 | - asm(INT10 |
4099 | + asm volatile(INT10 | 4265 | + asm volatile(INT10 |
4100 | : "=b" (ega_bx) | 4266 | : "+a" (ax), "=b" (ega_bx) |
4101 | : "a" (0x1200), "b" (0x10) /* Check EGA/VGA */ | 4267 | : "b" (0x10) /* Check EGA/VGA */ |
4102 | : "ecx", "edx", "esi", "edi"); | 4268 | : "ecx", "edx", "esi", "edi"); |
4103 | @@ -237,7 +237,7 @@ static int vga_probe(void) | 4269 | @@ -272,7 +272,7 @@ static int vga_probe(void) |
4104 | /* If we have MDA/CGA/HGC then BL will be unchanged at 0x10 */ | 4270 | /* If we have MDA/CGA/HGC then BL will be unchanged at 0x10 */ |
4105 | if ((u8)ega_bx != 0x10) { | 4271 | if ((u8)ega_bx != 0x10) { |
4106 | /* EGA/VGA */ | 4272 | /* EGA/VGA */ |
@@ -4109,22 +4275,10 @@ diff -urNp linux-2.6.29.6/arch/x86/boot/video-vga.c linux-2.6.29.6/arch/x86/boot | |||
4109 | : "=a" (vga_flag) | 4275 | : "=a" (vga_flag) |
4110 | : "a" (0x1a00) | 4276 | : "a" (0x1a00) |
4111 | : "ebx", "ecx", "edx", "esi", "edi"); | 4277 | : "ebx", "ecx", "edx", "esi", "edi"); |
4112 | diff -urNp linux-2.6.29.6/arch/x86/boot/voyager.c linux-2.6.29.6/arch/x86/boot/voyager.c | 4278 | diff -urNp linux-2.6.30.4/arch/x86/ia32/ia32_signal.c linux-2.6.30.4/arch/x86/ia32/ia32_signal.c |
4113 | --- linux-2.6.29.6/arch/x86/boot/voyager.c 2009-07-02 19:41:20.000000000 -0400 | 4279 | --- linux-2.6.30.4/arch/x86/ia32/ia32_signal.c 2009-07-24 17:47:51.000000000 -0400 |
4114 | +++ linux-2.6.29.6/arch/x86/boot/voyager.c 2009-07-23 17:34:32.054707168 -0400 | 4280 | +++ linux-2.6.30.4/arch/x86/ia32/ia32_signal.c 2009-07-30 09:48:09.921498916 -0400 |
4115 | @@ -23,7 +23,7 @@ int query_voyager(void) | 4281 | @@ -403,7 +403,7 @@ static void __user *get_sigframe(struct |
4116 | |||
4117 | data_ptr[0] = 0xff; /* Flag on config not found(?) */ | ||
4118 | |||
4119 | - asm("pushw %%es ; " | ||
4120 | + asm volatile("pushw %%es ; " | ||
4121 | "int $0x15 ; " | ||
4122 | "setc %0 ; " | ||
4123 | "movw %%es, %1 ; " | ||
4124 | diff -urNp linux-2.6.29.6/arch/x86/ia32/ia32_signal.c linux-2.6.29.6/arch/x86/ia32/ia32_signal.c | ||
4125 | --- linux-2.6.29.6/arch/x86/ia32/ia32_signal.c 2009-07-02 19:41:20.000000000 -0400 | ||
4126 | +++ linux-2.6.29.6/arch/x86/ia32/ia32_signal.c 2009-07-23 17:34:32.054707168 -0400 | ||
4127 | @@ -387,7 +387,7 @@ static void __user *get_sigframe(struct | ||
4128 | sp -= frame_size; | 4282 | sp -= frame_size; |
4129 | /* Align the stack pointer according to the i386 ABI, | 4283 | /* Align the stack pointer according to the i386 ABI, |
4130 | * i.e. so that on function entry ((sp + 4) & 15) == 0. */ | 4284 | * i.e. so that on function entry ((sp + 4) & 15) == 0. */ |
@@ -4133,16 +4287,7 @@ diff -urNp linux-2.6.29.6/arch/x86/ia32/ia32_signal.c linux-2.6.29.6/arch/x86/ia | |||
4133 | return (void __user *) sp; | 4287 | return (void __user *) sp; |
4134 | } | 4288 | } |
4135 | 4289 | ||
4136 | @@ -464,7 +464,7 @@ int ia32_setup_frame(int sig, struct k_s | 4290 | @@ -503,7 +503,7 @@ int ia32_setup_rt_frame(int sig, struct |
4137 | |||
4138 | #if DEBUG_SIG | ||
4139 | printk(KERN_DEBUG "SIG deliver (%s:%d): sp=%p pc=%lx ra=%u\n", | ||
4140 | - current->comm, current->pid, frame, regs->ip, frame->pretcode); | ||
4141 | + current->comm, task_pid_nr(current), frame, regs->ip, frame->pretcode); | ||
4142 | #endif | ||
4143 | |||
4144 | return 0; | ||
4145 | @@ -488,7 +488,7 @@ int ia32_setup_rt_frame(int sig, struct | ||
4146 | 0xb8, | 4291 | 0xb8, |
4147 | __NR_ia32_rt_sigreturn, | 4292 | __NR_ia32_rt_sigreturn, |
4148 | 0x80cd, | 4293 | 0x80cd, |
@@ -4151,18 +4296,9 @@ diff -urNp linux-2.6.29.6/arch/x86/ia32/ia32_signal.c linux-2.6.29.6/arch/x86/ia | |||
4151 | }; | 4296 | }; |
4152 | 4297 | ||
4153 | frame = get_sigframe(ka, regs, sizeof(*frame), &fpstate); | 4298 | frame = get_sigframe(ka, regs, sizeof(*frame), &fpstate); |
4154 | @@ -551,7 +551,7 @@ int ia32_setup_rt_frame(int sig, struct | 4299 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/alternative.h linux-2.6.30.4/arch/x86/include/asm/alternative.h |
4155 | 4300 | --- linux-2.6.30.4/arch/x86/include/asm/alternative.h 2009-07-24 17:47:51.000000000 -0400 | |
4156 | #if DEBUG_SIG | 4301 | +++ linux-2.6.30.4/arch/x86/include/asm/alternative.h 2009-07-30 09:48:09.921498916 -0400 |
4157 | printk(KERN_DEBUG "SIG deliver (%s:%d): sp=%p pc=%lx ra=%u\n", | ||
4158 | - current->comm, current->pid, frame, regs->ip, frame->pretcode); | ||
4159 | + current->comm, task_pid_nr(current), frame, regs->ip, frame->pretcode); | ||
4160 | #endif | ||
4161 | |||
4162 | return 0; | ||
4163 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/alternative.h linux-2.6.29.6/arch/x86/include/asm/alternative.h | ||
4164 | --- linux-2.6.29.6/arch/x86/include/asm/alternative.h 2009-07-02 19:41:20.000000000 -0400 | ||
4165 | +++ linux-2.6.29.6/arch/x86/include/asm/alternative.h 2009-07-23 17:34:32.054707168 -0400 | ||
4166 | @@ -96,7 +96,7 @@ const unsigned char *const *find_nop_tab | 4302 | @@ -96,7 +96,7 @@ const unsigned char *const *find_nop_tab |
4167 | " .byte 662b-661b\n" /* sourcelen */ \ | 4303 | " .byte 662b-661b\n" /* sourcelen */ \ |
4168 | " .byte 664f-663f\n" /* replacementlen */ \ | 4304 | " .byte 664f-663f\n" /* replacementlen */ \ |
@@ -4190,9 +4326,30 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/alternative.h linux-2.6.29.6/arch | |||
4190 | "663:\n\t" newinstr "\n664:\n" /* replacement */ \ | 4326 | "663:\n\t" newinstr "\n664:\n" /* replacement */ \ |
4191 | ".previous" : output : [feat] "i" (feature), ##input) | 4327 | ".previous" : output : [feat] "i" (feature), ##input) |
4192 | 4328 | ||
4193 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/atomic_32.h linux-2.6.29.6/arch/x86/include/asm/atomic_32.h | 4329 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/apm.h linux-2.6.30.4/arch/x86/include/asm/apm.h |
4194 | --- linux-2.6.29.6/arch/x86/include/asm/atomic_32.h 2009-07-02 19:41:20.000000000 -0400 | 4330 | --- linux-2.6.30.4/arch/x86/include/asm/apm.h 2009-07-24 17:47:51.000000000 -0400 |
4195 | +++ linux-2.6.29.6/arch/x86/include/asm/atomic_32.h 2009-07-23 17:34:32.054707168 -0400 | 4331 | +++ linux-2.6.30.4/arch/x86/include/asm/apm.h 2009-07-30 09:48:09.921498916 -0400 |
4332 | @@ -34,7 +34,7 @@ static inline void apm_bios_call_asm(u32 | ||
4333 | __asm__ __volatile__(APM_DO_ZERO_SEGS | ||
4334 | "pushl %%edi\n\t" | ||
4335 | "pushl %%ebp\n\t" | ||
4336 | - "lcall *%%cs:apm_bios_entry\n\t" | ||
4337 | + "lcall *%%ss:apm_bios_entry\n\t" | ||
4338 | "setc %%al\n\t" | ||
4339 | "popl %%ebp\n\t" | ||
4340 | "popl %%edi\n\t" | ||
4341 | @@ -58,7 +58,7 @@ static inline u8 apm_bios_call_simple_as | ||
4342 | __asm__ __volatile__(APM_DO_ZERO_SEGS | ||
4343 | "pushl %%edi\n\t" | ||
4344 | "pushl %%ebp\n\t" | ||
4345 | - "lcall *%%cs:apm_bios_entry\n\t" | ||
4346 | + "lcall *%%ss:apm_bios_entry\n\t" | ||
4347 | "setc %%bl\n\t" | ||
4348 | "popl %%ebp\n\t" | ||
4349 | "popl %%edi\n\t" | ||
4350 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/atomic_32.h linux-2.6.30.4/arch/x86/include/asm/atomic_32.h | ||
4351 | --- linux-2.6.30.4/arch/x86/include/asm/atomic_32.h 2009-07-24 17:47:51.000000000 -0400 | ||
4352 | +++ linux-2.6.30.4/arch/x86/include/asm/atomic_32.h 2009-07-30 09:48:09.921498916 -0400 | ||
4196 | @@ -39,7 +39,29 @@ | 4353 | @@ -39,7 +39,29 @@ |
4197 | */ | 4354 | */ |
4198 | static inline void atomic_add(int i, atomic_t *v) | 4355 | static inline void atomic_add(int i, atomic_t *v) |
@@ -4435,9 +4592,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/atomic_32.h linux-2.6.29.6/arch/x | |||
4435 | } | 4592 | } |
4436 | 4593 | ||
4437 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) | 4594 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) |
4438 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/atomic_64.h linux-2.6.29.6/arch/x86/include/asm/atomic_64.h | 4595 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/atomic_64.h linux-2.6.30.4/arch/x86/include/asm/atomic_64.h |
4439 | --- linux-2.6.29.6/arch/x86/include/asm/atomic_64.h 2009-07-02 19:41:20.000000000 -0400 | 4596 | --- linux-2.6.30.4/arch/x86/include/asm/atomic_64.h 2009-07-24 17:47:51.000000000 -0400 |
4440 | +++ linux-2.6.29.6/arch/x86/include/asm/atomic_64.h 2009-07-23 17:34:32.054707168 -0400 | 4597 | +++ linux-2.6.30.4/arch/x86/include/asm/atomic_64.h 2009-07-30 09:48:09.922664908 -0400 |
4441 | @@ -38,7 +38,29 @@ | 4598 | @@ -38,7 +38,29 @@ |
4442 | */ | 4599 | */ |
4443 | static inline void atomic_add(int i, atomic_t *v) | 4600 | static inline void atomic_add(int i, atomic_t *v) |
@@ -4893,11 +5050,11 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/atomic_64.h linux-2.6.29.6/arch/x | |||
4893 | } | 5050 | } |
4894 | 5051 | ||
4895 | /** | 5052 | /** |
4896 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/boot.h linux-2.6.29.6/arch/x86/include/asm/boot.h | 5053 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/boot.h linux-2.6.30.4/arch/x86/include/asm/boot.h |
4897 | --- linux-2.6.29.6/arch/x86/include/asm/boot.h 2009-07-02 19:41:20.000000000 -0400 | 5054 | --- linux-2.6.30.4/arch/x86/include/asm/boot.h 2009-07-24 17:47:51.000000000 -0400 |
4898 | +++ linux-2.6.29.6/arch/x86/include/asm/boot.h 2009-07-23 17:34:32.055953640 -0400 | 5055 | +++ linux-2.6.30.4/arch/x86/include/asm/boot.h 2009-07-30 09:48:09.922664908 -0400 |
4899 | @@ -11,10 +11,15 @@ | 5056 | @@ -9,10 +9,15 @@ |
4900 | #define ASK_VGA 0xfffd /* ask for it at bootup */ | 5057 | #ifdef __KERNEL__ |
4901 | 5058 | ||
4902 | /* Physical address where kernel should be loaded. */ | 5059 | /* Physical address where kernel should be loaded. */ |
4903 | -#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \ | 5060 | -#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \ |
@@ -4910,12 +5067,12 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/boot.h linux-2.6.29.6/arch/x86/in | |||
4910 | +#define LOAD_PHYSICAL_ADDR ((unsigned long)__LOAD_PHYSICAL_ADDR) | 5067 | +#define LOAD_PHYSICAL_ADDR ((unsigned long)__LOAD_PHYSICAL_ADDR) |
4911 | +#endif | 5068 | +#endif |
4912 | + | 5069 | + |
4913 | #ifdef CONFIG_X86_64 | 5070 | #ifdef CONFIG_KERNEL_BZIP2 |
4914 | #define BOOT_HEAP_SIZE 0x7000 | 5071 | #define BOOT_HEAP_SIZE 0x400000 |
4915 | #define BOOT_STACK_SIZE 0x4000 | 5072 | #else /* !CONFIG_KERNEL_BZIP2 */ |
4916 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/cache.h linux-2.6.29.6/arch/x86/include/asm/cache.h | 5073 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/cache.h linux-2.6.30.4/arch/x86/include/asm/cache.h |
4917 | --- linux-2.6.29.6/arch/x86/include/asm/cache.h 2009-07-02 19:41:20.000000000 -0400 | 5074 | --- linux-2.6.30.4/arch/x86/include/asm/cache.h 2009-07-24 17:47:51.000000000 -0400 |
4918 | +++ linux-2.6.29.6/arch/x86/include/asm/cache.h 2009-07-23 17:34:32.055953640 -0400 | 5075 | +++ linux-2.6.30.4/arch/x86/include/asm/cache.h 2009-07-30 09:48:09.923412137 -0400 |
4919 | @@ -6,6 +6,7 @@ | 5076 | @@ -6,6 +6,7 @@ |
4920 | #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) | 5077 | #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) |
4921 | 5078 | ||
@@ -4924,9 +5081,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/cache.h linux-2.6.29.6/arch/x86/i | |||
4924 | 5081 | ||
4925 | #ifdef CONFIG_X86_VSMP | 5082 | #ifdef CONFIG_X86_VSMP |
4926 | /* vSMP Internode cacheline shift */ | 5083 | /* vSMP Internode cacheline shift */ |
4927 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/checksum_32.h linux-2.6.29.6/arch/x86/include/asm/checksum_32.h | 5084 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/checksum_32.h linux-2.6.30.4/arch/x86/include/asm/checksum_32.h |
4928 | --- linux-2.6.29.6/arch/x86/include/asm/checksum_32.h 2009-07-02 19:41:20.000000000 -0400 | 5085 | --- linux-2.6.30.4/arch/x86/include/asm/checksum_32.h 2009-07-24 17:47:51.000000000 -0400 |
4929 | +++ linux-2.6.29.6/arch/x86/include/asm/checksum_32.h 2009-07-23 17:34:32.055953640 -0400 | 5086 | +++ linux-2.6.30.4/arch/x86/include/asm/checksum_32.h 2009-07-30 09:48:09.923412137 -0400 |
4930 | @@ -31,6 +31,14 @@ asmlinkage __wsum csum_partial_copy_gene | 5087 | @@ -31,6 +31,14 @@ asmlinkage __wsum csum_partial_copy_gene |
4931 | int len, __wsum sum, | 5088 | int len, __wsum sum, |
4932 | int *src_err_ptr, int *dst_err_ptr); | 5089 | int *src_err_ptr, int *dst_err_ptr); |
@@ -4960,9 +5117,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/checksum_32.h linux-2.6.29.6/arch | |||
4960 | len, sum, NULL, err_ptr); | 5117 | len, sum, NULL, err_ptr); |
4961 | 5118 | ||
4962 | if (len) | 5119 | if (len) |
4963 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/desc.h linux-2.6.29.6/arch/x86/include/asm/desc.h | 5120 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/desc.h linux-2.6.30.4/arch/x86/include/asm/desc.h |
4964 | --- linux-2.6.29.6/arch/x86/include/asm/desc.h 2009-07-02 19:41:20.000000000 -0400 | 5121 | --- linux-2.6.30.4/arch/x86/include/asm/desc.h 2009-07-24 17:47:51.000000000 -0400 |
4965 | +++ linux-2.6.29.6/arch/x86/include/asm/desc.h 2009-07-23 17:34:32.055953640 -0400 | 5122 | +++ linux-2.6.30.4/arch/x86/include/asm/desc.h 2009-07-30 09:48:09.923412137 -0400 |
4966 | @@ -16,6 +16,7 @@ static inline void fill_ldt(struct desc_ | 5123 | @@ -16,6 +16,7 @@ static inline void fill_ldt(struct desc_ |
4967 | desc->base1 = (info->base_addr & 0x00ff0000) >> 16; | 5124 | desc->base1 = (info->base_addr & 0x00ff0000) >> 16; |
4968 | desc->type = (info->read_exec_only ^ 1) << 1; | 5125 | desc->type = (info->read_exec_only ^ 1) << 1; |
@@ -4980,7 +5137,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/desc.h linux-2.6.29.6/arch/x86/in | |||
4980 | -struct gdt_page { | 5137 | -struct gdt_page { |
4981 | - struct desc_struct gdt[GDT_ENTRIES]; | 5138 | - struct desc_struct gdt[GDT_ENTRIES]; |
4982 | -} __attribute__((aligned(PAGE_SIZE))); | 5139 | -} __attribute__((aligned(PAGE_SIZE))); |
4983 | -DECLARE_PER_CPU(struct gdt_page, gdt_page); | 5140 | -DECLARE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page); |
4984 | +extern gate_desc idt_table[256]; | 5141 | +extern gate_desc idt_table[256]; |
4985 | 5142 | ||
4986 | +extern struct desc_struct cpu_gdt_table[NR_CPUS][PAGE_SIZE / sizeof(struct desc_struct)]; | 5143 | +extern struct desc_struct cpu_gdt_table[NR_CPUS][PAGE_SIZE / sizeof(struct desc_struct)]; |
@@ -4991,7 +5148,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/desc.h linux-2.6.29.6/arch/x86/in | |||
4991 | } | 5148 | } |
4992 | 5149 | ||
4993 | #ifdef CONFIG_X86_64 | 5150 | #ifdef CONFIG_X86_64 |
4994 | @@ -115,19 +112,48 @@ static inline void paravirt_free_ldt(str | 5151 | @@ -116,19 +113,48 @@ static inline void paravirt_free_ldt(str |
4995 | static inline void native_write_idt_entry(gate_desc *idt, int entry, | 5152 | static inline void native_write_idt_entry(gate_desc *idt, int entry, |
4996 | const gate_desc *gate) | 5153 | const gate_desc *gate) |
4997 | { | 5154 | { |
@@ -5040,7 +5197,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/desc.h linux-2.6.29.6/arch/x86/in | |||
5040 | switch (type) { | 5197 | switch (type) { |
5041 | case DESC_TSS: | 5198 | case DESC_TSS: |
5042 | size = sizeof(tss_desc); | 5199 | size = sizeof(tss_desc); |
5043 | @@ -139,7 +165,17 @@ static inline void native_write_gdt_entr | 5200 | @@ -140,7 +166,17 @@ static inline void native_write_gdt_entr |
5044 | size = sizeof(struct desc_struct); | 5201 | size = sizeof(struct desc_struct); |
5045 | break; | 5202 | break; |
5046 | } | 5203 | } |
@@ -5058,7 +5215,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/desc.h linux-2.6.29.6/arch/x86/in | |||
5058 | } | 5215 | } |
5059 | 5216 | ||
5060 | static inline void pack_descriptor(struct desc_struct *desc, unsigned long base, | 5217 | static inline void pack_descriptor(struct desc_struct *desc, unsigned long base, |
5061 | @@ -211,7 +247,19 @@ static inline void native_set_ldt(const | 5218 | @@ -212,7 +248,19 @@ static inline void native_set_ldt(const |
5062 | 5219 | ||
5063 | static inline void native_load_tr_desc(void) | 5220 | static inline void native_load_tr_desc(void) |
5064 | { | 5221 | { |
@@ -5078,7 +5235,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/desc.h linux-2.6.29.6/arch/x86/in | |||
5078 | } | 5235 | } |
5079 | 5236 | ||
5080 | static inline void native_load_gdt(const struct desc_ptr *dtr) | 5237 | static inline void native_load_gdt(const struct desc_ptr *dtr) |
5081 | @@ -246,8 +294,19 @@ static inline void native_load_tls(struc | 5238 | @@ -247,8 +295,19 @@ static inline void native_load_tls(struc |
5082 | unsigned int i; | 5239 | unsigned int i; |
5083 | struct desc_struct *gdt = get_cpu_gdt_table(cpu); | 5240 | struct desc_struct *gdt = get_cpu_gdt_table(cpu); |
5084 | 5241 | ||
@@ -5098,7 +5255,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/desc.h linux-2.6.29.6/arch/x86/in | |||
5098 | } | 5255 | } |
5099 | 5256 | ||
5100 | #define _LDT_empty(info) \ | 5257 | #define _LDT_empty(info) \ |
5101 | @@ -379,6 +438,18 @@ static inline void set_system_intr_gate_ | 5258 | @@ -380,6 +439,18 @@ static inline void set_system_intr_gate_ |
5102 | _set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS); | 5259 | _set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS); |
5103 | } | 5260 | } |
5104 | 5261 | ||
@@ -5117,9 +5274,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/desc.h linux-2.6.29.6/arch/x86/in | |||
5117 | #else | 5274 | #else |
5118 | /* | 5275 | /* |
5119 | * GET_DESC_BASE reads the descriptor base of the specified segment. | 5276 | * GET_DESC_BASE reads the descriptor base of the specified segment. |
5120 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/e820.h linux-2.6.29.6/arch/x86/include/asm/e820.h | 5277 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/e820.h linux-2.6.30.4/arch/x86/include/asm/e820.h |
5121 | --- linux-2.6.29.6/arch/x86/include/asm/e820.h 2009-07-02 19:41:20.000000000 -0400 | 5278 | --- linux-2.6.30.4/arch/x86/include/asm/e820.h 2009-07-24 17:47:51.000000000 -0400 |
5122 | +++ linux-2.6.29.6/arch/x86/include/asm/e820.h 2009-07-23 17:34:32.055953640 -0400 | 5279 | +++ linux-2.6.30.4/arch/x86/include/asm/e820.h 2009-07-30 09:48:09.924429298 -0400 |
5123 | @@ -135,7 +135,7 @@ extern char *memory_setup(void); | 5280 | @@ -135,7 +135,7 @@ extern char *memory_setup(void); |
5124 | #define ISA_END_ADDRESS 0x100000 | 5281 | #define ISA_END_ADDRESS 0x100000 |
5125 | #define is_ISA_range(s, e) ((s) >= ISA_START_ADDRESS && (e) < ISA_END_ADDRESS) | 5282 | #define is_ISA_range(s, e) ((s) >= ISA_START_ADDRESS && (e) < ISA_END_ADDRESS) |
@@ -5129,10 +5286,10 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/e820.h linux-2.6.29.6/arch/x86/in | |||
5129 | #define BIOS_END 0x00100000 | 5286 | #define BIOS_END 0x00100000 |
5130 | 5287 | ||
5131 | #ifdef __KERNEL__ | 5288 | #ifdef __KERNEL__ |
5132 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/elf.h linux-2.6.29.6/arch/x86/include/asm/elf.h | 5289 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/elf.h linux-2.6.30.4/arch/x86/include/asm/elf.h |
5133 | --- linux-2.6.29.6/arch/x86/include/asm/elf.h 2009-07-02 19:41:20.000000000 -0400 | 5290 | --- linux-2.6.30.4/arch/x86/include/asm/elf.h 2009-07-24 17:47:51.000000000 -0400 |
5134 | +++ linux-2.6.29.6/arch/x86/include/asm/elf.h 2009-07-23 17:34:32.056803140 -0400 | 5291 | +++ linux-2.6.30.4/arch/x86/include/asm/elf.h 2009-07-30 09:48:09.927602624 -0400 |
5135 | @@ -252,7 +252,25 @@ extern int force_personality32; | 5292 | @@ -263,7 +263,25 @@ extern int force_personality32; |
5136 | the loader. We need to make sure that it is out of the way of the program | 5293 | the loader. We need to make sure that it is out of the way of the program |
5137 | that it will "exec", and that there is sufficient room for the brk. */ | 5294 | that it will "exec", and that there is sufficient room for the brk. */ |
5138 | 5295 | ||
@@ -5158,7 +5315,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/elf.h linux-2.6.29.6/arch/x86/inc | |||
5158 | 5315 | ||
5159 | /* This yields a mask that user programs can use to figure out what | 5316 | /* This yields a mask that user programs can use to figure out what |
5160 | instruction set this CPU supports. This could be done in user space, | 5317 | instruction set this CPU supports. This could be done in user space, |
5161 | @@ -304,8 +322,7 @@ do { \ | 5318 | @@ -315,8 +333,7 @@ do { \ |
5162 | #define ARCH_DLINFO \ | 5319 | #define ARCH_DLINFO \ |
5163 | do { \ | 5320 | do { \ |
5164 | if (vdso_enabled) \ | 5321 | if (vdso_enabled) \ |
@@ -5168,7 +5325,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/elf.h linux-2.6.29.6/arch/x86/inc | |||
5168 | } while (0) | 5325 | } while (0) |
5169 | 5326 | ||
5170 | #define AT_SYSINFO 32 | 5327 | #define AT_SYSINFO 32 |
5171 | @@ -316,7 +333,7 @@ do { \ | 5328 | @@ -327,7 +344,7 @@ do { \ |
5172 | 5329 | ||
5173 | #endif /* !CONFIG_X86_32 */ | 5330 | #endif /* !CONFIG_X86_32 */ |
5174 | 5331 | ||
@@ -5177,7 +5334,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/elf.h linux-2.6.29.6/arch/x86/inc | |||
5177 | 5334 | ||
5178 | #define VDSO_ENTRY \ | 5335 | #define VDSO_ENTRY \ |
5179 | ((unsigned long)VDSO32_SYMBOL(VDSO_CURRENT_BASE, vsyscall)) | 5336 | ((unsigned long)VDSO32_SYMBOL(VDSO_CURRENT_BASE, vsyscall)) |
5180 | @@ -330,7 +347,4 @@ extern int arch_setup_additional_pages(s | 5337 | @@ -341,7 +358,4 @@ extern int arch_setup_additional_pages(s |
5181 | extern int syscall32_setup_pages(struct linux_binprm *, int exstack); | 5338 | extern int syscall32_setup_pages(struct linux_binprm *, int exstack); |
5182 | #define compat_arch_setup_additional_pages syscall32_setup_pages | 5339 | #define compat_arch_setup_additional_pages syscall32_setup_pages |
5183 | 5340 | ||
@@ -5185,9 +5342,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/elf.h linux-2.6.29.6/arch/x86/inc | |||
5185 | -#define arch_randomize_brk arch_randomize_brk | 5342 | -#define arch_randomize_brk arch_randomize_brk |
5186 | - | 5343 | - |
5187 | #endif /* _ASM_X86_ELF_H */ | 5344 | #endif /* _ASM_X86_ELF_H */ |
5188 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/futex.h linux-2.6.29.6/arch/x86/include/asm/futex.h | 5345 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/futex.h linux-2.6.30.4/arch/x86/include/asm/futex.h |
5189 | --- linux-2.6.29.6/arch/x86/include/asm/futex.h 2009-07-02 19:41:20.000000000 -0400 | 5346 | --- linux-2.6.30.4/arch/x86/include/asm/futex.h 2009-07-24 17:47:51.000000000 -0400 |
5190 | +++ linux-2.6.29.6/arch/x86/include/asm/futex.h 2009-07-23 17:34:32.056803140 -0400 | 5347 | +++ linux-2.6.30.4/arch/x86/include/asm/futex.h 2009-07-30 09:48:09.927602624 -0400 |
5191 | @@ -11,6 +11,40 @@ | 5348 | @@ -11,6 +11,40 @@ |
5192 | #include <asm/processor.h> | 5349 | #include <asm/processor.h> |
5193 | #include <asm/system.h> | 5350 | #include <asm/system.h> |
@@ -5299,9 +5456,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/futex.h linux-2.6.29.6/arch/x86/i | |||
5299 | : "memory" | 5456 | : "memory" |
5300 | ); | 5457 | ); |
5301 | 5458 | ||
5302 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/i387.h linux-2.6.29.6/arch/x86/include/asm/i387.h | 5459 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/i387.h linux-2.6.30.4/arch/x86/include/asm/i387.h |
5303 | --- linux-2.6.29.6/arch/x86/include/asm/i387.h 2009-07-02 19:41:20.000000000 -0400 | 5460 | --- linux-2.6.30.4/arch/x86/include/asm/i387.h 2009-07-24 17:47:51.000000000 -0400 |
5304 | +++ linux-2.6.29.6/arch/x86/include/asm/i387.h 2009-07-23 17:34:32.056803140 -0400 | 5461 | +++ linux-2.6.30.4/arch/x86/include/asm/i387.h 2009-07-30 09:48:09.927602624 -0400 |
5305 | @@ -203,13 +203,8 @@ static inline void restore_fpu(struct ta | 5462 | @@ -203,13 +203,8 @@ static inline void restore_fpu(struct ta |
5306 | } | 5463 | } |
5307 | 5464 | ||
@@ -5318,12 +5475,12 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/i387.h linux-2.6.29.6/arch/x86/in | |||
5318 | 5475 | ||
5319 | /* | 5476 | /* |
5320 | * These must be called with preempt disabled | 5477 | * These must be called with preempt disabled |
5321 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/io_64.h linux-2.6.29.6/arch/x86/include/asm/io_64.h | 5478 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/io_64.h linux-2.6.30.4/arch/x86/include/asm/io_64.h |
5322 | --- linux-2.6.29.6/arch/x86/include/asm/io_64.h 2009-07-02 19:41:20.000000000 -0400 | 5479 | --- linux-2.6.30.4/arch/x86/include/asm/io_64.h 2009-07-24 17:47:51.000000000 -0400 |
5323 | +++ linux-2.6.29.6/arch/x86/include/asm/io_64.h 2009-07-23 17:34:32.056803140 -0400 | 5480 | +++ linux-2.6.30.4/arch/x86/include/asm/io_64.h 2009-07-30 09:48:09.927602624 -0400 |
5324 | @@ -158,6 +158,17 @@ static inline void *phys_to_virt(unsigne | 5481 | @@ -140,6 +140,17 @@ __OUTS(l) |
5325 | } | 5482 | |
5326 | #endif | 5483 | #include <linux/vmalloc.h> |
5327 | 5484 | ||
5328 | +#define ARCH_HAS_VALID_PHYS_ADDR_RANGE | 5485 | +#define ARCH_HAS_VALID_PHYS_ADDR_RANGE |
5329 | +static inline int valid_phys_addr_range (unsigned long addr, size_t count) | 5486 | +static inline int valid_phys_addr_range (unsigned long addr, size_t count) |
@@ -5336,12 +5493,12 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/io_64.h linux-2.6.29.6/arch/x86/i | |||
5336 | + return (pfn + (count >> PAGE_SHIFT)) < (1 << (boot_cpu_data.x86_phys_bits - PAGE_SHIFT)) ? 1 : 0; | 5493 | + return (pfn + (count >> PAGE_SHIFT)) < (1 << (boot_cpu_data.x86_phys_bits - PAGE_SHIFT)) ? 1 : 0; |
5337 | +} | 5494 | +} |
5338 | + | 5495 | + |
5339 | /* | 5496 | #include <asm-generic/iomap.h> |
5340 | * Change "struct page" to physical address. | 5497 | |
5341 | */ | 5498 | void __memcpy_fromio(void *, unsigned long, unsigned); |
5342 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/irqflags.h linux-2.6.29.6/arch/x86/include/asm/irqflags.h | 5499 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/irqflags.h linux-2.6.30.4/arch/x86/include/asm/irqflags.h |
5343 | --- linux-2.6.29.6/arch/x86/include/asm/irqflags.h 2009-07-02 19:41:20.000000000 -0400 | 5500 | --- linux-2.6.30.4/arch/x86/include/asm/irqflags.h 2009-07-24 17:47:51.000000000 -0400 |
5344 | +++ linux-2.6.29.6/arch/x86/include/asm/irqflags.h 2009-07-23 17:34:32.056803140 -0400 | 5501 | +++ linux-2.6.30.4/arch/x86/include/asm/irqflags.h 2009-07-30 09:48:09.928623877 -0400 |
5345 | @@ -141,6 +141,8 @@ static inline unsigned long __raw_local_ | 5502 | @@ -141,6 +141,8 @@ static inline unsigned long __raw_local_ |
5346 | #define INTERRUPT_RETURN iret | 5503 | #define INTERRUPT_RETURN iret |
5347 | #define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit | 5504 | #define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit |
@@ -5351,9 +5508,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/irqflags.h linux-2.6.29.6/arch/x8 | |||
5351 | #endif | 5508 | #endif |
5352 | 5509 | ||
5353 | 5510 | ||
5354 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/kmap_types.h linux-2.6.29.6/arch/x86/include/asm/kmap_types.h | 5511 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/kmap_types.h linux-2.6.30.4/arch/x86/include/asm/kmap_types.h |
5355 | --- linux-2.6.29.6/arch/x86/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 5512 | --- linux-2.6.30.4/arch/x86/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
5356 | +++ linux-2.6.29.6/arch/x86/include/asm/kmap_types.h 2009-07-23 17:34:32.056803140 -0400 | 5513 | +++ linux-2.6.30.4/arch/x86/include/asm/kmap_types.h 2009-07-30 09:48:09.928623877 -0400 |
5357 | @@ -21,7 +21,8 @@ D(9) KM_IRQ0, | 5514 | @@ -21,7 +21,8 @@ D(9) KM_IRQ0, |
5358 | D(10) KM_IRQ1, | 5515 | D(10) KM_IRQ1, |
5359 | D(11) KM_SOFTIRQ0, | 5516 | D(11) KM_SOFTIRQ0, |
@@ -5364,10 +5521,10 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/kmap_types.h linux-2.6.29.6/arch/ | |||
5364 | }; | 5521 | }; |
5365 | 5522 | ||
5366 | #undef D | 5523 | #undef D |
5367 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/kvm_host.h linux-2.6.29.6/arch/x86/include/asm/kvm_host.h | 5524 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/kvm_host.h linux-2.6.30.4/arch/x86/include/asm/kvm_host.h |
5368 | --- linux-2.6.29.6/arch/x86/include/asm/kvm_host.h 2009-07-02 19:41:20.000000000 -0400 | 5525 | --- linux-2.6.30.4/arch/x86/include/asm/kvm_host.h 2009-07-24 17:47:51.000000000 -0400 |
5369 | +++ linux-2.6.29.6/arch/x86/include/asm/kvm_host.h 2009-07-23 17:34:32.057848214 -0400 | 5526 | +++ linux-2.6.30.4/arch/x86/include/asm/kvm_host.h 2009-07-30 09:48:09.928623877 -0400 |
5370 | @@ -494,7 +494,7 @@ struct kvm_x86_ops { | 5527 | @@ -529,7 +529,7 @@ struct kvm_x86_ops { |
5371 | int (*get_mt_mask_shift)(void); | 5528 | int (*get_mt_mask_shift)(void); |
5372 | }; | 5529 | }; |
5373 | 5530 | ||
@@ -5376,36 +5533,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/kvm_host.h linux-2.6.29.6/arch/x8 | |||
5376 | 5533 | ||
5377 | int kvm_mmu_module_init(void); | 5534 | int kvm_mmu_module_init(void); |
5378 | void kvm_mmu_module_exit(void); | 5535 | void kvm_mmu_module_exit(void); |
5379 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/linkage.h linux-2.6.29.6/arch/x86/include/asm/linkage.h | 5536 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/local.h linux-2.6.30.4/arch/x86/include/asm/local.h |
5380 | --- linux-2.6.29.6/arch/x86/include/asm/linkage.h 2009-07-02 19:41:20.000000000 -0400 | 5537 | --- linux-2.6.30.4/arch/x86/include/asm/local.h 2009-07-24 17:47:51.000000000 -0400 |
5381 | +++ linux-2.6.29.6/arch/x86/include/asm/linkage.h 2009-07-23 17:34:32.057848214 -0400 | 5538 | +++ linux-2.6.30.4/arch/x86/include/asm/local.h 2009-07-30 09:48:09.929617473 -0400 |
5382 | @@ -7,6 +7,11 @@ | ||
5383 | #ifdef CONFIG_X86_64 | ||
5384 | #define __ALIGN .p2align 4,,15 | ||
5385 | #define __ALIGN_STR ".p2align 4,,15" | ||
5386 | +#else | ||
5387 | +#ifdef CONFIG_X86_ALIGNMENT_16 | ||
5388 | +#define __ALIGN .align 16,0x90 | ||
5389 | +#define __ALIGN_STR ".align 16,0x90" | ||
5390 | +#endif | ||
5391 | #endif | ||
5392 | |||
5393 | #ifdef CONFIG_X86_32 | ||
5394 | @@ -52,11 +57,6 @@ | ||
5395 | |||
5396 | #endif | ||
5397 | |||
5398 | -#ifdef CONFIG_X86_ALIGNMENT_16 | ||
5399 | -#define __ALIGN .align 16,0x90 | ||
5400 | -#define __ALIGN_STR ".align 16,0x90" | ||
5401 | -#endif | ||
5402 | - | ||
5403 | /* | ||
5404 | * to check ENTRY_X86/END_X86 and | ||
5405 | * KPROBE_ENTRY_X86/KPROBE_END_X86 | ||
5406 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/local.h linux-2.6.29.6/arch/x86/include/asm/local.h | ||
5407 | --- linux-2.6.29.6/arch/x86/include/asm/local.h 2009-07-02 19:41:20.000000000 -0400 | ||
5408 | +++ linux-2.6.29.6/arch/x86/include/asm/local.h 2009-07-23 17:34:32.057848214 -0400 | ||
5409 | @@ -18,26 +18,90 @@ typedef struct { | 5539 | @@ -18,26 +18,90 @@ typedef struct { |
5410 | 5540 | ||
5411 | static inline void local_inc(local_t *l) | 5541 | static inline void local_inc(local_t *l) |
@@ -5630,30 +5760,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/local.h linux-2.6.29.6/arch/x86/i | |||
5630 | : "+r" (i), "+m" (l->a.counter) | 5760 | : "+r" (i), "+m" (l->a.counter) |
5631 | : : "memory"); | 5761 | : : "memory"); |
5632 | return i + __i; | 5762 | return i + __i; |
5633 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/mach-default/apm.h linux-2.6.29.6/arch/x86/include/asm/mach-default/apm.h | 5763 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/mman.h linux-2.6.30.4/arch/x86/include/asm/mman.h |
5634 | --- linux-2.6.29.6/arch/x86/include/asm/mach-default/apm.h 2009-07-02 19:41:20.000000000 -0400 | 5764 | --- linux-2.6.30.4/arch/x86/include/asm/mman.h 2009-07-24 17:47:51.000000000 -0400 |
5635 | +++ linux-2.6.29.6/arch/x86/include/asm/mach-default/apm.h 2009-07-23 17:34:32.057848214 -0400 | 5765 | +++ linux-2.6.30.4/arch/x86/include/asm/mman.h 2009-07-30 09:48:09.929617473 -0400 |
5636 | @@ -34,7 +34,7 @@ static inline void apm_bios_call_asm(u32 | ||
5637 | __asm__ __volatile__(APM_DO_ZERO_SEGS | ||
5638 | "pushl %%edi\n\t" | ||
5639 | "pushl %%ebp\n\t" | ||
5640 | - "lcall *%%cs:apm_bios_entry\n\t" | ||
5641 | + "lcall *%%ss:apm_bios_entry\n\t" | ||
5642 | "setc %%al\n\t" | ||
5643 | "popl %%ebp\n\t" | ||
5644 | "popl %%edi\n\t" | ||
5645 | @@ -58,7 +58,7 @@ static inline u8 apm_bios_call_simple_as | ||
5646 | __asm__ __volatile__(APM_DO_ZERO_SEGS | ||
5647 | "pushl %%edi\n\t" | ||
5648 | "pushl %%ebp\n\t" | ||
5649 | - "lcall *%%cs:apm_bios_entry\n\t" | ||
5650 | + "lcall *%%ss:apm_bios_entry\n\t" | ||
5651 | "setc %%bl\n\t" | ||
5652 | "popl %%ebp\n\t" | ||
5653 | "popl %%edi\n\t" | ||
5654 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/mman.h linux-2.6.29.6/arch/x86/include/asm/mman.h | ||
5655 | --- linux-2.6.29.6/arch/x86/include/asm/mman.h 2009-07-02 19:41:20.000000000 -0400 | ||
5656 | +++ linux-2.6.29.6/arch/x86/include/asm/mman.h 2009-07-23 17:34:32.058713430 -0400 | ||
5657 | @@ -17,4 +17,14 @@ | 5766 | @@ -17,4 +17,14 @@ |
5658 | #define MCL_CURRENT 1 /* lock all current mappings */ | 5767 | #define MCL_CURRENT 1 /* lock all current mappings */ |
5659 | #define MCL_FUTURE 2 /* lock all future mappings */ | 5768 | #define MCL_FUTURE 2 /* lock all future mappings */ |
@@ -5669,14 +5778,14 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/mman.h linux-2.6.29.6/arch/x86/in | |||
5669 | +#endif | 5778 | +#endif |
5670 | + | 5779 | + |
5671 | #endif /* _ASM_X86_MMAN_H */ | 5780 | #endif /* _ASM_X86_MMAN_H */ |
5672 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/mmu_context_32.h linux-2.6.29.6/arch/x86/include/asm/mmu_context_32.h | 5781 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/mmu_context.h linux-2.6.30.4/arch/x86/include/asm/mmu_context.h |
5673 | --- linux-2.6.29.6/arch/x86/include/asm/mmu_context_32.h 2009-07-02 19:41:20.000000000 -0400 | 5782 | --- linux-2.6.30.4/arch/x86/include/asm/mmu_context.h 2009-07-24 17:47:51.000000000 -0400 |
5674 | +++ linux-2.6.29.6/arch/x86/include/asm/mmu_context_32.h 2009-07-23 17:34:32.058713430 -0400 | 5783 | +++ linux-2.6.30.4/arch/x86/include/asm/mmu_context.h 2009-07-30 09:48:09.929617473 -0400 |
5675 | @@ -14,11 +14,15 @@ static inline void switch_mm(struct mm_s | 5784 | @@ -34,11 +34,17 @@ static inline void switch_mm(struct mm_s |
5676 | struct task_struct *tsk) | 5785 | struct task_struct *tsk) |
5677 | { | 5786 | { |
5678 | int cpu = smp_processor_id(); | 5787 | unsigned cpu = smp_processor_id(); |
5679 | +#ifdef CONFIG_SMP | 5788 | +#if defined(CONFIG_X86_32) && defined(CONFIG_SMP) |
5680 | + int tlbstate = TLBSTATE_OK; | 5789 | + int tlbstate = TLBSTATE_OK; |
5681 | +#endif | 5790 | +#endif |
5682 | 5791 | ||
@@ -5684,16 +5793,18 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/mmu_context_32.h linux-2.6.29.6/a | |||
5684 | /* stop flush ipis for the previous mm */ | 5793 | /* stop flush ipis for the previous mm */ |
5685 | cpu_clear(cpu, prev->cpu_vm_mask); | 5794 | cpu_clear(cpu, prev->cpu_vm_mask); |
5686 | #ifdef CONFIG_SMP | 5795 | #ifdef CONFIG_SMP |
5687 | + tlbstate = x86_read_percpu(cpu_tlbstate.state); | 5796 | +#ifdef CONFIG_X86_32 |
5688 | x86_write_percpu(cpu_tlbstate.state, TLBSTATE_OK); | 5797 | + tlbstate = percpu_read(cpu_tlbstate.state); |
5689 | x86_write_percpu(cpu_tlbstate.active_mm, next); | 5798 | +#endif |
5799 | percpu_write(cpu_tlbstate.state, TLBSTATE_OK); | ||
5800 | percpu_write(cpu_tlbstate.active_mm, next); | ||
5690 | #endif | 5801 | #endif |
5691 | @@ -32,6 +36,26 @@ static inline void switch_mm(struct mm_s | 5802 | @@ -52,6 +58,26 @@ static inline void switch_mm(struct mm_s |
5692 | */ | 5803 | */ |
5693 | if (unlikely(prev->context.ldt != next->context.ldt)) | 5804 | if (unlikely(prev->context.ldt != next->context.ldt)) |
5694 | load_LDT_nolock(&next->context); | 5805 | load_LDT_nolock(&next->context); |
5695 | + | 5806 | + |
5696 | +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP) | 5807 | +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP) |
5697 | + if (!nx_enabled) { | 5808 | + if (!nx_enabled) { |
5698 | + smp_mb__before_clear_bit(); | 5809 | + smp_mb__before_clear_bit(); |
5699 | + cpu_clear(cpu, prev->context.cpu_user_cs_mask); | 5810 | + cpu_clear(cpu, prev->context.cpu_user_cs_mask); |
@@ -5702,7 +5813,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/mmu_context_32.h linux-2.6.29.6/a | |||
5702 | + } | 5813 | + } |
5703 | +#endif | 5814 | +#endif |
5704 | + | 5815 | + |
5705 | +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC) | 5816 | +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)) |
5706 | + if (unlikely(prev->context.user_cs_base != next->context.user_cs_base || | 5817 | + if (unlikely(prev->context.user_cs_base != next->context.user_cs_base || |
5707 | + prev->context.user_cs_limit != next->context.user_cs_limit | 5818 | + prev->context.user_cs_limit != next->context.user_cs_limit |
5708 | +#ifdef CONFIG_SMP | 5819 | +#ifdef CONFIG_SMP |
@@ -5715,17 +5826,17 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/mmu_context_32.h linux-2.6.29.6/a | |||
5715 | } | 5826 | } |
5716 | #ifdef CONFIG_SMP | 5827 | #ifdef CONFIG_SMP |
5717 | else { | 5828 | else { |
5718 | @@ -44,6 +68,19 @@ static inline void switch_mm(struct mm_s | 5829 | @@ -65,6 +91,19 @@ static inline void switch_mm(struct mm_s |
5719 | */ | 5830 | */ |
5720 | load_cr3(next->pgd); | 5831 | load_cr3(next->pgd); |
5721 | load_LDT_nolock(&next->context); | 5832 | load_LDT_nolock(&next->context); |
5722 | + | 5833 | + |
5723 | +#ifdef CONFIG_PAX_PAGEEXEC | 5834 | +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC) |
5724 | + if (!nx_enabled) | 5835 | + if (!nx_enabled) |
5725 | + cpu_set(cpu, next->context.cpu_user_cs_mask); | 5836 | + cpu_set(cpu, next->context.cpu_user_cs_mask); |
5726 | +#endif | 5837 | +#endif |
5727 | + | 5838 | + |
5728 | +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC) | 5839 | +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)) |
5729 | +#ifdef CONFIG_PAX_PAGEEXEC | 5840 | +#ifdef CONFIG_PAX_PAGEEXEC |
5730 | + if (!((next->pax_flags & MF_PAX_PAGEEXEC) && nx_enabled)) | 5841 | + if (!((next->pax_flags & MF_PAX_PAGEEXEC) && nx_enabled)) |
5731 | +#endif | 5842 | +#endif |
@@ -5735,9 +5846,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/mmu_context_32.h linux-2.6.29.6/a | |||
5735 | } | 5846 | } |
5736 | } | 5847 | } |
5737 | #endif | 5848 | #endif |
5738 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/mmu.h linux-2.6.29.6/arch/x86/include/asm/mmu.h | 5849 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/mmu.h linux-2.6.30.4/arch/x86/include/asm/mmu.h |
5739 | --- linux-2.6.29.6/arch/x86/include/asm/mmu.h 2009-07-02 19:41:20.000000000 -0400 | 5850 | --- linux-2.6.30.4/arch/x86/include/asm/mmu.h 2009-07-24 17:47:51.000000000 -0400 |
5740 | +++ linux-2.6.29.6/arch/x86/include/asm/mmu.h 2009-07-23 17:34:32.058713430 -0400 | 5851 | +++ linux-2.6.30.4/arch/x86/include/asm/mmu.h 2009-07-30 09:48:09.929617473 -0400 |
5741 | @@ -9,10 +9,23 @@ | 5852 | @@ -9,10 +9,23 @@ |
5742 | * we put the segment information here. | 5853 | * we put the segment information here. |
5743 | */ | 5854 | */ |
@@ -5764,9 +5875,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/mmu.h linux-2.6.29.6/arch/x86/inc | |||
5764 | } mm_context_t; | 5875 | } mm_context_t; |
5765 | 5876 | ||
5766 | #ifdef CONFIG_SMP | 5877 | #ifdef CONFIG_SMP |
5767 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/module.h linux-2.6.29.6/arch/x86/include/asm/module.h | 5878 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/module.h linux-2.6.30.4/arch/x86/include/asm/module.h |
5768 | --- linux-2.6.29.6/arch/x86/include/asm/module.h 2009-07-02 19:41:20.000000000 -0400 | 5879 | --- linux-2.6.30.4/arch/x86/include/asm/module.h 2009-07-24 17:47:51.000000000 -0400 |
5769 | +++ linux-2.6.29.6/arch/x86/include/asm/module.h 2009-07-23 17:34:32.058713430 -0400 | 5880 | +++ linux-2.6.30.4/arch/x86/include/asm/module.h 2009-07-30 11:10:48.877547128 -0400 |
5770 | @@ -74,7 +74,12 @@ struct mod_arch_specific {}; | 5881 | @@ -74,7 +74,12 @@ struct mod_arch_specific {}; |
5771 | # else | 5882 | # else |
5772 | # define MODULE_STACKSIZE "" | 5883 | # define MODULE_STACKSIZE "" |
@@ -5781,10 +5892,10 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/module.h linux-2.6.29.6/arch/x86/ | |||
5781 | #endif | 5892 | #endif |
5782 | 5893 | ||
5783 | #endif /* _ASM_X86_MODULE_H */ | 5894 | #endif /* _ASM_X86_MODULE_H */ |
5784 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/page_32.h linux-2.6.29.6/arch/x86/include/asm/page_32.h | 5895 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/page_32_types.h linux-2.6.30.4/arch/x86/include/asm/page_32_types.h |
5785 | --- linux-2.6.29.6/arch/x86/include/asm/page_32.h 2009-07-02 19:41:20.000000000 -0400 | 5896 | --- linux-2.6.30.4/arch/x86/include/asm/page_32_types.h 2009-07-24 17:47:51.000000000 -0400 |
5786 | +++ linux-2.6.29.6/arch/x86/include/asm/page_32.h 2009-07-23 17:34:32.058713430 -0400 | 5897 | +++ linux-2.6.30.4/arch/x86/include/asm/page_32_types.h 2009-07-30 09:48:09.930625879 -0400 |
5787 | @@ -13,6 +13,23 @@ | 5898 | @@ -15,6 +15,23 @@ |
5788 | */ | 5899 | */ |
5789 | #define __PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL) | 5900 | #define __PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL) |
5790 | 5901 | ||
@@ -5808,10 +5919,10 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/page_32.h linux-2.6.29.6/arch/x86 | |||
5808 | #ifdef CONFIG_4KSTACKS | 5919 | #ifdef CONFIG_4KSTACKS |
5809 | #define THREAD_ORDER 0 | 5920 | #define THREAD_ORDER 0 |
5810 | #else | 5921 | #else |
5811 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/page_64.h linux-2.6.29.6/arch/x86/include/asm/page_64.h | 5922 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/page_64_types.h linux-2.6.30.4/arch/x86/include/asm/page_64_types.h |
5812 | --- linux-2.6.29.6/arch/x86/include/asm/page_64.h 2009-07-02 19:41:20.000000000 -0400 | 5923 | --- linux-2.6.30.4/arch/x86/include/asm/page_64_types.h 2009-07-24 17:47:51.000000000 -0400 |
5813 | +++ linux-2.6.29.6/arch/x86/include/asm/page_64.h 2009-07-23 17:34:32.058713430 -0400 | 5924 | +++ linux-2.6.30.4/arch/x86/include/asm/page_64_types.h 2009-07-30 09:48:09.930625879 -0400 |
5814 | @@ -49,6 +49,9 @@ | 5925 | @@ -47,6 +47,9 @@ |
5815 | #define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START) | 5926 | #define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START) |
5816 | #define __START_KERNEL_map _AC(0xffffffff80000000, UL) | 5927 | #define __START_KERNEL_map _AC(0xffffffff80000000, UL) |
5817 | 5928 | ||
@@ -5821,18 +5932,11 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/page_64.h linux-2.6.29.6/arch/x86 | |||
5821 | /* See Documentation/x86_64/mm.txt for a description of the memory map. */ | 5932 | /* See Documentation/x86_64/mm.txt for a description of the memory map. */ |
5822 | #define __PHYSICAL_MASK_SHIFT 46 | 5933 | #define __PHYSICAL_MASK_SHIFT 46 |
5823 | #define __VIRTUAL_MASK_SHIFT 48 | 5934 | #define __VIRTUAL_MASK_SHIFT 48 |
5824 | @@ -101,5 +104,6 @@ extern void init_extra_mapping_wb(unsign | 5935 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/paravirt.h linux-2.6.30.4/arch/x86/include/asm/paravirt.h |
5825 | #define pfn_valid(pfn) ((pfn) < max_pfn) | 5936 | --- linux-2.6.30.4/arch/x86/include/asm/paravirt.h 2009-07-24 17:47:51.000000000 -0400 |
5826 | #endif | 5937 | +++ linux-2.6.30.4/arch/x86/include/asm/paravirt.h 2009-07-30 09:48:09.931536832 -0400 |
5938 | @@ -1688,7 +1688,7 @@ static inline unsigned long __raw_local_ | ||
5827 | 5939 | ||
5828 | +#define nx_enabled (1) | ||
5829 | |||
5830 | #endif /* _ASM_X86_PAGE_64_H */ | ||
5831 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/paravirt.h linux-2.6.29.6/arch/x86/include/asm/paravirt.h | ||
5832 | --- linux-2.6.29.6/arch/x86/include/asm/paravirt.h 2009-07-02 19:41:20.000000000 -0400 | ||
5833 | +++ linux-2.6.29.6/arch/x86/include/asm/paravirt.h 2009-07-23 17:34:32.058713430 -0400 | ||
5834 | @@ -1558,7 +1558,7 @@ static inline unsigned long __raw_local_ | ||
5835 | #define PV_RESTORE_REGS popl %edx; popl %ecx; popl %edi; popl %eax | ||
5836 | #define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 4) | 5940 | #define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 4) |
5837 | #define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .long, 4) | 5941 | #define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .long, 4) |
5838 | -#define PARA_INDIRECT(addr) *%cs:addr | 5942 | -#define PARA_INDIRECT(addr) *%cs:addr |
@@ -5840,40 +5944,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/paravirt.h linux-2.6.29.6/arch/x8 | |||
5840 | #endif | 5944 | #endif |
5841 | 5945 | ||
5842 | #define INTERRUPT_RETURN \ | 5946 | #define INTERRUPT_RETURN \ |
5843 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/pda.h linux-2.6.29.6/arch/x86/include/asm/pda.h | 5947 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/pgalloc.h linux-2.6.30.4/arch/x86/include/asm/pgalloc.h |
5844 | --- linux-2.6.29.6/arch/x86/include/asm/pda.h 2009-07-02 19:41:20.000000000 -0400 | 5948 | --- linux-2.6.30.4/arch/x86/include/asm/pgalloc.h 2009-07-24 17:47:51.000000000 -0400 |
5845 | +++ linux-2.6.29.6/arch/x86/include/asm/pda.h 2009-07-23 17:34:32.059930875 -0400 | 5949 | +++ linux-2.6.30.4/arch/x86/include/asm/pgalloc.h 2009-07-30 09:48:09.931536832 -0400 |
5846 | @@ -16,11 +16,9 @@ struct x8664_pda { | ||
5847 | unsigned long oldrsp; /* 24 user rsp for system call */ | ||
5848 | int irqcount; /* 32 Irq nesting counter. Starts -1 */ | ||
5849 | unsigned int cpunumber; /* 36 Logical CPU number */ | ||
5850 | -#ifdef CONFIG_CC_STACKPROTECTOR | ||
5851 | unsigned long stack_canary; /* 40 stack canary value */ | ||
5852 | /* gcc-ABI: this canary MUST be at | ||
5853 | offset 40!!! */ | ||
5854 | -#endif | ||
5855 | char *irqstackptr; | ||
5856 | short nodenumber; /* number of current node (32k max) */ | ||
5857 | short in_bootmem; /* pda lives in bootmem */ | ||
5858 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/percpu.h linux-2.6.29.6/arch/x86/include/asm/percpu.h | ||
5859 | --- linux-2.6.29.6/arch/x86/include/asm/percpu.h 2009-07-02 19:41:20.000000000 -0400 | ||
5860 | +++ linux-2.6.29.6/arch/x86/include/asm/percpu.h 2009-07-23 17:34:32.059930875 -0400 | ||
5861 | @@ -93,6 +93,12 @@ DECLARE_PER_CPU(struct x8664_pda, pda); | ||
5862 | |||
5863 | #define __my_cpu_offset x86_read_percpu(this_cpu_off) | ||
5864 | |||
5865 | +#include <asm-generic/sections.h> | ||
5866 | +#include <linux/threads.h> | ||
5867 | +#define __per_cpu_offset __per_cpu_offset | ||
5868 | +extern unsigned long __per_cpu_offset[NR_CPUS]; | ||
5869 | +#define per_cpu_offset(x) (__per_cpu_offset[x] + (unsigned long)__per_cpu_start) | ||
5870 | + | ||
5871 | /* fs segment starts at (positive) offset == __per_cpu_offset[cpu] */ | ||
5872 | #define __percpu_seg "%%fs:" | ||
5873 | |||
5874 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgalloc.h linux-2.6.29.6/arch/x86/include/asm/pgalloc.h | ||
5875 | --- linux-2.6.29.6/arch/x86/include/asm/pgalloc.h 2009-07-02 19:41:20.000000000 -0400 | ||
5876 | +++ linux-2.6.29.6/arch/x86/include/asm/pgalloc.h 2009-07-23 17:34:32.059930875 -0400 | ||
5877 | @@ -52,7 +52,7 @@ static inline void pmd_populate_kernel(s | 5950 | @@ -52,7 +52,7 @@ static inline void pmd_populate_kernel(s |
5878 | pmd_t *pmd, pte_t *pte) | 5951 | pmd_t *pmd, pte_t *pte) |
5879 | { | 5952 | { |
@@ -5883,9 +5956,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgalloc.h linux-2.6.29.6/arch/x86 | |||
5883 | } | 5956 | } |
5884 | 5957 | ||
5885 | static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, | 5958 | static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, |
5886 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable-2level.h linux-2.6.29.6/arch/x86/include/asm/pgtable-2level.h | 5959 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/pgtable-2level.h linux-2.6.30.4/arch/x86/include/asm/pgtable-2level.h |
5887 | --- linux-2.6.29.6/arch/x86/include/asm/pgtable-2level.h 2009-07-02 19:41:20.000000000 -0400 | 5960 | --- linux-2.6.30.4/arch/x86/include/asm/pgtable-2level.h 2009-07-24 17:47:51.000000000 -0400 |
5888 | +++ linux-2.6.29.6/arch/x86/include/asm/pgtable-2level.h 2009-07-23 17:34:32.059930875 -0400 | 5961 | +++ linux-2.6.30.4/arch/x86/include/asm/pgtable-2level.h 2009-07-30 09:48:09.931536832 -0400 |
5889 | @@ -18,7 +18,19 @@ static inline void native_set_pte(pte_t | 5962 | @@ -18,7 +18,19 @@ static inline void native_set_pte(pte_t |
5890 | 5963 | ||
5891 | static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) | 5964 | static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) |
@@ -5906,10 +5979,10 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable-2level.h linux-2.6.29.6/a | |||
5906 | } | 5979 | } |
5907 | 5980 | ||
5908 | static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte) | 5981 | static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte) |
5909 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable_32.h linux-2.6.29.6/arch/x86/include/asm/pgtable_32.h | 5982 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/pgtable_32.h linux-2.6.30.4/arch/x86/include/asm/pgtable_32.h |
5910 | --- linux-2.6.29.6/arch/x86/include/asm/pgtable_32.h 2009-07-02 19:41:20.000000000 -0400 | 5983 | --- linux-2.6.30.4/arch/x86/include/asm/pgtable_32.h 2009-07-24 17:47:51.000000000 -0400 |
5911 | +++ linux-2.6.29.6/arch/x86/include/asm/pgtable_32.h 2009-07-23 17:34:37.457730203 -0400 | 5984 | +++ linux-2.6.30.4/arch/x86/include/asm/pgtable_32.h 2009-07-30 09:48:09.932929020 -0400 |
5912 | @@ -25,8 +25,6 @@ | 5985 | @@ -26,8 +26,6 @@ |
5913 | struct mm_struct; | 5986 | struct mm_struct; |
5914 | struct vm_area_struct; | 5987 | struct vm_area_struct; |
5915 | 5988 | ||
@@ -5918,8 +5991,8 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable_32.h linux-2.6.29.6/arch/ | |||
5918 | static inline void pgtable_cache_init(void) { } | 5991 | static inline void pgtable_cache_init(void) { } |
5919 | static inline void check_pgt_cache(void) { } | 5992 | static inline void check_pgt_cache(void) { } |
5920 | void paging_init(void); | 5993 | void paging_init(void); |
5921 | @@ -46,6 +44,12 @@ extern void set_pmd_pfn(unsigned long, u | 5994 | @@ -48,6 +46,12 @@ extern void set_pmd_pfn(unsigned long, u |
5922 | # include <asm/pgtable-2level-defs.h> | 5995 | # include <asm/pgtable-2level.h> |
5923 | #endif | 5996 | #endif |
5924 | 5997 | ||
5925 | +extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; | 5998 | +extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; |
@@ -5928,19 +6001,10 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable_32.h linux-2.6.29.6/arch/ | |||
5928 | +#endif | 6001 | +#endif |
5929 | +extern pte_t swapper_pg_fixmap[PTRS_PER_PMD]; | 6002 | +extern pte_t swapper_pg_fixmap[PTRS_PER_PMD]; |
5930 | + | 6003 | + |
5931 | #define PGDIR_SIZE (1UL << PGDIR_SHIFT) | 6004 | #if defined(CONFIG_HIGHPTE) |
5932 | #define PGDIR_MASK (~(PGDIR_SIZE - 1)) | 6005 | #define pte_offset_map(dir, address) \ |
5933 | 6006 | ((pte_t *)kmap_atomic_pte(pmd_page(*(dir)), KM_PTE0) + \ | |
5934 | @@ -83,7 +87,7 @@ extern void set_pmd_pfn(unsigned long, u | 6007 | @@ -80,6 +84,9 @@ do { \ |
5935 | #undef TEST_ACCESS_OK | ||
5936 | |||
5937 | /* The boot page tables (all created as a single array) */ | ||
5938 | -extern unsigned long pg0[]; | ||
5939 | +extern pte_t pg0[]; | ||
5940 | |||
5941 | #define pte_present(x) ((x).pte_low & (_PAGE_PRESENT | _PAGE_PROTNONE)) | ||
5942 | |||
5943 | @@ -166,6 +170,9 @@ do { \ | ||
5944 | 6008 | ||
5945 | #endif /* !__ASSEMBLY__ */ | 6009 | #endif /* !__ASSEMBLY__ */ |
5946 | 6010 | ||
@@ -5950,10 +6014,10 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable_32.h linux-2.6.29.6/arch/ | |||
5950 | /* | 6014 | /* |
5951 | * kern_addr_valid() is (1) for FLATMEM and (0) for | 6015 | * kern_addr_valid() is (1) for FLATMEM and (0) for |
5952 | * SPARSEMEM and DISCONTIGMEM | 6016 | * SPARSEMEM and DISCONTIGMEM |
5953 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable-3level.h linux-2.6.29.6/arch/x86/include/asm/pgtable-3level.h | 6017 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/pgtable-3level.h linux-2.6.30.4/arch/x86/include/asm/pgtable-3level.h |
5954 | --- linux-2.6.29.6/arch/x86/include/asm/pgtable-3level.h 2009-07-02 19:41:20.000000000 -0400 | 6018 | --- linux-2.6.30.4/arch/x86/include/asm/pgtable-3level.h 2009-07-24 17:47:51.000000000 -0400 |
5955 | +++ linux-2.6.29.6/arch/x86/include/asm/pgtable-3level.h 2009-07-23 17:34:32.060764502 -0400 | 6019 | +++ linux-2.6.30.4/arch/x86/include/asm/pgtable-3level.h 2009-07-30 09:48:09.931536832 -0400 |
5956 | @@ -70,12 +70,36 @@ static inline void native_set_pte_atomic | 6020 | @@ -38,12 +38,36 @@ static inline void native_set_pte_atomic |
5957 | 6021 | ||
5958 | static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) | 6022 | static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) |
5959 | { | 6023 | { |
@@ -5990,10 +6054,10 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable-3level.h linux-2.6.29.6/a | |||
5990 | } | 6054 | } |
5991 | 6055 | ||
5992 | /* | 6056 | /* |
5993 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable_64.h linux-2.6.29.6/arch/x86/include/asm/pgtable_64.h | 6057 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/pgtable_64.h linux-2.6.30.4/arch/x86/include/asm/pgtable_64.h |
5994 | --- linux-2.6.29.6/arch/x86/include/asm/pgtable_64.h 2009-07-02 19:41:20.000000000 -0400 | 6058 | --- linux-2.6.30.4/arch/x86/include/asm/pgtable_64.h 2009-07-24 17:47:51.000000000 -0400 |
5995 | +++ linux-2.6.29.6/arch/x86/include/asm/pgtable_64.h 2009-07-23 17:34:32.060764502 -0400 | 6059 | +++ linux-2.6.30.4/arch/x86/include/asm/pgtable_64.h 2009-07-30 09:48:09.932929020 -0400 |
5996 | @@ -15,9 +15,12 @@ | 6060 | @@ -16,9 +16,12 @@ |
5997 | 6061 | ||
5998 | extern pud_t level3_kernel_pgt[512]; | 6062 | extern pud_t level3_kernel_pgt[512]; |
5999 | extern pud_t level3_ident_pgt[512]; | 6063 | extern pud_t level3_ident_pgt[512]; |
@@ -6007,7 +6071,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable_64.h linux-2.6.29.6/arch/ | |||
6007 | extern pgd_t init_level4_pgt[]; | 6071 | extern pgd_t init_level4_pgt[]; |
6008 | 6072 | ||
6009 | #define swapper_pg_dir init_level4_pgt | 6073 | #define swapper_pg_dir init_level4_pgt |
6010 | @@ -106,7 +109,19 @@ static inline pte_t native_ptep_get_and_ | 6074 | @@ -78,7 +81,19 @@ static inline pte_t native_ptep_get_and_ |
6011 | 6075 | ||
6012 | static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) | 6076 | static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) |
6013 | { | 6077 | { |
@@ -6027,31 +6091,86 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable_64.h linux-2.6.29.6/arch/ | |||
6027 | } | 6091 | } |
6028 | 6092 | ||
6029 | static inline void native_pmd_clear(pmd_t *pmd) | 6093 | static inline void native_pmd_clear(pmd_t *pmd) |
6030 | @@ -158,17 +173,17 @@ static inline void native_pgd_clear(pgd_ | 6094 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/pgtable.h linux-2.6.30.4/arch/x86/include/asm/pgtable.h |
6095 | --- linux-2.6.30.4/arch/x86/include/asm/pgtable.h 2009-07-24 17:47:51.000000000 -0400 | ||
6096 | +++ linux-2.6.30.4/arch/x86/include/asm/pgtable.h 2009-07-30 09:48:09.932929020 -0400 | ||
6097 | @@ -87,6 +87,11 @@ static inline void __init paravirt_paget | ||
6098 | * The following only work if pte_present() is true. | ||
6099 | * Undefined behaviour if not.. | ||
6100 | */ | ||
6101 | +static inline int pte_user(pte_t pte) | ||
6102 | +{ | ||
6103 | + return pte_val(pte) & _PAGE_USER; | ||
6104 | +} | ||
6105 | + | ||
6106 | static inline int pte_dirty(pte_t pte) | ||
6107 | { | ||
6108 | return pte_flags(pte) & _PAGE_DIRTY; | ||
6109 | @@ -169,9 +174,29 @@ static inline pte_t pte_wrprotect(pte_t | ||
6110 | return pte_clear_flags(pte, _PAGE_RW); | ||
6111 | } | ||
6031 | 6112 | ||
6032 | static inline int pgd_bad(pgd_t pgd) | 6113 | +static inline pte_t pte_mkread(pte_t pte) |
6114 | +{ | ||
6115 | + return __pte(pte_val(pte) | _PAGE_USER); | ||
6116 | +} | ||
6117 | + | ||
6118 | static inline pte_t pte_mkexec(pte_t pte) | ||
6033 | { | 6119 | { |
6034 | - return (pgd_val(pgd) & ~(PTE_PFN_MASK | _PAGE_USER)) != _KERNPG_TABLE; | 6120 | - return pte_clear_flags(pte, _PAGE_NX); |
6035 | + return (pgd_val(pgd) & ~(PTE_PFN_MASK | _PAGE_USER | _PAGE_NX)) != _KERNPG_TABLE; | 6121 | +#ifdef CONFIG_X86_PAE |
6122 | + if (__supported_pte_mask & _PAGE_NX) | ||
6123 | + return pte_clear_flags(pte, _PAGE_NX); | ||
6124 | + else | ||
6125 | +#endif | ||
6126 | + return pte_set_flags(pte, _PAGE_USER); | ||
6127 | +} | ||
6128 | + | ||
6129 | +static inline pte_t pte_exprotect(pte_t pte) | ||
6130 | +{ | ||
6131 | +#ifdef CONFIG_X86_PAE | ||
6132 | + if (__supported_pte_mask & _PAGE_NX) | ||
6133 | + return pte_set_flags(pte, _PAGE_NX); | ||
6134 | + else | ||
6135 | +#endif | ||
6136 | + return pte_clear_flags(pte, _PAGE_USER); | ||
6036 | } | 6137 | } |
6037 | 6138 | ||
6038 | static inline int pud_bad(pud_t pud) | 6139 | static inline pte_t pte_mkdirty(pte_t pte) |
6140 | @@ -467,7 +492,7 @@ static inline pud_t *pud_offset(pgd_t *p | ||
6141 | |||
6142 | static inline int pgd_bad(pgd_t pgd) | ||
6039 | { | 6143 | { |
6040 | - return (pud_val(pud) & ~(PTE_PFN_MASK | _PAGE_USER)) != _KERNPG_TABLE; | 6144 | - return (pgd_flags(pgd) & ~_PAGE_USER) != _KERNPG_TABLE; |
6041 | + return (pud_val(pud) & ~(PTE_PFN_MASK | _PAGE_USER | _PAGE_NX)) != _KERNPG_TABLE; | 6145 | + return (pgd_flags(pgd) & ~(_PAGE_USER | _PAGE_NX)) != _KERNPG_TABLE; |
6042 | } | 6146 | } |
6043 | 6147 | ||
6044 | static inline int pmd_bad(pmd_t pmd) | 6148 | static inline int pgd_none(pgd_t pgd) |
6149 | @@ -606,7 +631,19 @@ static inline void ptep_set_wrprotect(st | ||
6150 | */ | ||
6151 | static inline void clone_pgd_range(pgd_t *dst, pgd_t *src, int count) | ||
6045 | { | 6152 | { |
6046 | - return (pmd_val(pmd) & ~(PTE_PFN_MASK | _PAGE_USER)) != _KERNPG_TABLE; | 6153 | - memcpy(dst, src, count * sizeof(pgd_t)); |
6047 | + return (pmd_val(pmd) & ~(PTE_PFN_MASK | _PAGE_USER | _PAGE_NX)) != _KERNPG_TABLE; | 6154 | + |
6155 | +#ifdef CONFIG_PAX_KERNEXEC | ||
6156 | + unsigned long cr0; | ||
6157 | + | ||
6158 | + pax_open_kernel(cr0); | ||
6159 | +#endif | ||
6160 | + | ||
6161 | + memcpy(dst, src, count * sizeof(pgd_t)); | ||
6162 | + | ||
6163 | +#ifdef CONFIG_PAX_KERNEXEC | ||
6164 | + pax_close_kernel(cr0); | ||
6165 | +#endif | ||
6166 | + | ||
6048 | } | 6167 | } |
6049 | 6168 | ||
6050 | #define pte_none(x) (!pte_val((x))) | 6169 | |
6051 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable.h linux-2.6.29.6/arch/x86/include/asm/pgtable.h | 6170 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/pgtable_types.h linux-2.6.30.4/arch/x86/include/asm/pgtable_types.h |
6052 | --- linux-2.6.29.6/arch/x86/include/asm/pgtable.h 2009-07-02 19:41:20.000000000 -0400 | 6171 | --- linux-2.6.30.4/arch/x86/include/asm/pgtable_types.h 2009-07-24 17:47:51.000000000 -0400 |
6053 | +++ linux-2.6.29.6/arch/x86/include/asm/pgtable.h 2009-07-23 17:35:05.043783588 -0400 | 6172 | +++ linux-2.6.30.4/arch/x86/include/asm/pgtable_types.h 2009-07-30 19:56:23.227966500 -0400 |
6054 | @@ -13,12 +13,11 @@ | 6173 | @@ -16,12 +16,11 @@ |
6055 | #define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */ | 6174 | #define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */ |
6056 | #define _PAGE_BIT_PAT 7 /* on 4KB pages */ | 6175 | #define _PAGE_BIT_PAT 7 /* on 4KB pages */ |
6057 | #define _PAGE_BIT_GLOBAL 8 /* Global TLB entry PPro+ */ | 6176 | #define _PAGE_BIT_GLOBAL 8 /* Global TLB entry PPro+ */ |
@@ -6066,7 +6185,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable.h linux-2.6.29.6/arch/x86 | |||
6066 | #define _PAGE_BIT_NX 63 /* No execute: only valid after cpuid check */ | 6185 | #define _PAGE_BIT_NX 63 /* No execute: only valid after cpuid check */ |
6067 | 6186 | ||
6068 | /* If _PAGE_BIT_PRESENT is clear, we use these: */ | 6187 | /* If _PAGE_BIT_PRESENT is clear, we use these: */ |
6069 | @@ -36,7 +35,6 @@ | 6188 | @@ -39,7 +38,6 @@ |
6070 | #define _PAGE_DIRTY (_AT(pteval_t, 1) << _PAGE_BIT_DIRTY) | 6189 | #define _PAGE_DIRTY (_AT(pteval_t, 1) << _PAGE_BIT_DIRTY) |
6071 | #define _PAGE_PSE (_AT(pteval_t, 1) << _PAGE_BIT_PSE) | 6190 | #define _PAGE_PSE (_AT(pteval_t, 1) << _PAGE_BIT_PSE) |
6072 | #define _PAGE_GLOBAL (_AT(pteval_t, 1) << _PAGE_BIT_GLOBAL) | 6191 | #define _PAGE_GLOBAL (_AT(pteval_t, 1) << _PAGE_BIT_GLOBAL) |
@@ -6074,7 +6193,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable.h linux-2.6.29.6/arch/x86 | |||
6074 | #define _PAGE_IOMAP (_AT(pteval_t, 1) << _PAGE_BIT_IOMAP) | 6193 | #define _PAGE_IOMAP (_AT(pteval_t, 1) << _PAGE_BIT_IOMAP) |
6075 | #define _PAGE_UNUSED3 (_AT(pteval_t, 1) << _PAGE_BIT_UNUSED3) | 6194 | #define _PAGE_UNUSED3 (_AT(pteval_t, 1) << _PAGE_BIT_UNUSED3) |
6076 | #define _PAGE_PAT (_AT(pteval_t, 1) << _PAGE_BIT_PAT) | 6195 | #define _PAGE_PAT (_AT(pteval_t, 1) << _PAGE_BIT_PAT) |
6077 | @@ -48,7 +46,7 @@ | 6196 | @@ -51,7 +49,7 @@ |
6078 | #if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE) | 6197 | #if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE) |
6079 | #define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_NX) | 6198 | #define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_NX) |
6080 | #else | 6199 | #else |
@@ -6083,7 +6202,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable.h linux-2.6.29.6/arch/x86 | |||
6083 | #endif | 6202 | #endif |
6084 | 6203 | ||
6085 | #define _PAGE_FILE (_AT(pteval_t, 1) << _PAGE_BIT_FILE) | 6204 | #define _PAGE_FILE (_AT(pteval_t, 1) << _PAGE_BIT_FILE) |
6086 | @@ -85,6 +83,9 @@ | 6205 | @@ -88,6 +86,9 @@ |
6087 | #define PAGE_READONLY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \ | 6206 | #define PAGE_READONLY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \ |
6088 | _PAGE_ACCESSED) | 6207 | _PAGE_ACCESSED) |
6089 | 6208 | ||
@@ -6093,7 +6212,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable.h linux-2.6.29.6/arch/x86 | |||
6093 | #define __PAGE_KERNEL_EXEC \ | 6212 | #define __PAGE_KERNEL_EXEC \ |
6094 | (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_GLOBAL) | 6213 | (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_GLOBAL) |
6095 | #define __PAGE_KERNEL (__PAGE_KERNEL_EXEC | _PAGE_NX) | 6214 | #define __PAGE_KERNEL (__PAGE_KERNEL_EXEC | _PAGE_NX) |
6096 | @@ -95,8 +96,8 @@ | 6215 | @@ -98,8 +99,8 @@ |
6097 | #define __PAGE_KERNEL_WC (__PAGE_KERNEL | _PAGE_CACHE_WC) | 6216 | #define __PAGE_KERNEL_WC (__PAGE_KERNEL | _PAGE_CACHE_WC) |
6098 | #define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT) | 6217 | #define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT) |
6099 | #define __PAGE_KERNEL_UC_MINUS (__PAGE_KERNEL | _PAGE_PCD) | 6218 | #define __PAGE_KERNEL_UC_MINUS (__PAGE_KERNEL | _PAGE_PCD) |
@@ -6104,7 +6223,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable.h linux-2.6.29.6/arch/x86 | |||
6104 | #define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE) | 6223 | #define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE) |
6105 | #define __PAGE_KERNEL_LARGE_NOCACHE (__PAGE_KERNEL | _PAGE_CACHE_UC | _PAGE_PSE) | 6224 | #define __PAGE_KERNEL_LARGE_NOCACHE (__PAGE_KERNEL | _PAGE_CACHE_UC | _PAGE_PSE) |
6106 | #define __PAGE_KERNEL_LARGE_EXEC (__PAGE_KERNEL_EXEC | _PAGE_PSE) | 6225 | #define __PAGE_KERNEL_LARGE_EXEC (__PAGE_KERNEL_EXEC | _PAGE_PSE) |
6107 | @@ -155,8 +156,8 @@ | 6226 | @@ -158,8 +159,8 @@ |
6108 | * bits are combined, this will alow user to access the high address mapped | 6227 | * bits are combined, this will alow user to access the high address mapped |
6109 | * VDSO in the presence of CONFIG_COMPAT_VDSO | 6228 | * VDSO in the presence of CONFIG_COMPAT_VDSO |
6110 | */ | 6229 | */ |
@@ -6115,101 +6234,34 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/pgtable.h linux-2.6.29.6/arch/x86 | |||
6115 | #define PGD_IDENT_ATTR 0x001 /* PRESENT (no other attributes) */ | 6234 | #define PGD_IDENT_ATTR 0x001 /* PRESENT (no other attributes) */ |
6116 | #endif | 6235 | #endif |
6117 | 6236 | ||
6118 | @@ -183,10 +184,17 @@ extern unsigned long empty_zero_page[PAG | 6237 | @@ -272,7 +273,11 @@ static inline pteval_t pte_flags(pte_t p |
6119 | extern spinlock_t pgd_lock; | 6238 | typedef struct page *pgtable_t; |
6120 | extern struct list_head pgd_list; | ||
6121 | |||
6122 | +extern pteval_t __supported_pte_mask; | ||
6123 | + | ||
6124 | /* | ||
6125 | * The following only work if pte_present() is true. | ||
6126 | * Undefined behaviour if not.. | ||
6127 | */ | ||
6128 | +static inline int pte_user(pte_t pte) | ||
6129 | +{ | ||
6130 | + return pte_val(pte) & _PAGE_USER; | ||
6131 | +} | ||
6132 | + | ||
6133 | static inline int pte_dirty(pte_t pte) | ||
6134 | { | ||
6135 | return pte_flags(pte) & _PAGE_DIRTY; | ||
6136 | @@ -255,9 +263,29 @@ static inline pte_t pte_wrprotect(pte_t | ||
6137 | return __pte(pte_val(pte) & ~_PAGE_RW); | ||
6138 | } | ||
6139 | 6239 | ||
6140 | +static inline pte_t pte_mkread(pte_t pte) | 6240 | extern pteval_t __supported_pte_mask; |
6141 | +{ | 6241 | +#ifdef CONFIG_X86_32 |
6142 | + return __pte(pte_val(pte) | _PAGE_USER); | 6242 | extern int nx_enabled; |
6143 | +} | 6243 | +#else |
6144 | + | 6244 | +#define nx_enabled (1) |
6145 | static inline pte_t pte_mkexec(pte_t pte) | ||
6146 | { | ||
6147 | - return __pte(pte_val(pte) & ~_PAGE_NX); | ||
6148 | +#ifdef CONFIG_X86_PAE | ||
6149 | + if (__supported_pte_mask & _PAGE_NX) | ||
6150 | + return __pte(pte_val(pte) & ~(pteval_t)_PAGE_NX); | ||
6151 | + else | ||
6152 | +#endif | ||
6153 | + return __pte(pte_val(pte) | _PAGE_USER); | ||
6154 | +} | ||
6155 | + | ||
6156 | +static inline pte_t pte_exprotect(pte_t pte) | ||
6157 | +{ | ||
6158 | +#ifdef CONFIG_X86_PAE | ||
6159 | + if (__supported_pte_mask & _PAGE_NX) | ||
6160 | + return __pte(pte_val(pte) | _PAGE_NX); | ||
6161 | + else | ||
6162 | +#endif | ||
6163 | + return __pte(pte_val(pte) & ~_PAGE_USER); | ||
6164 | } | ||
6165 | |||
6166 | static inline pte_t pte_mkdirty(pte_t pte) | ||
6167 | @@ -300,8 +328,6 @@ static inline pte_t pte_mkspecial(pte_t | ||
6168 | return __pte(pte_val(pte) | _PAGE_SPECIAL); | ||
6169 | } | ||
6170 | |||
6171 | -extern pteval_t __supported_pte_mask; | ||
6172 | - | ||
6173 | /* | ||
6174 | * Mask out unsupported bits in a present pgprot. Non-present pgprots | ||
6175 | * can use those bits for other purposes, so leave them be. | ||
6176 | @@ -601,7 +627,19 @@ static inline void ptep_set_wrprotect(st | ||
6177 | */ | ||
6178 | static inline void clone_pgd_range(pgd_t *dst, pgd_t *src, int count) | ||
6179 | { | ||
6180 | - memcpy(dst, src, count * sizeof(pgd_t)); | ||
6181 | + | ||
6182 | +#ifdef CONFIG_PAX_KERNEXEC | ||
6183 | + unsigned long cr0; | ||
6184 | + | ||
6185 | + pax_open_kernel(cr0); | ||
6186 | +#endif | ||
6187 | + | ||
6188 | + memcpy(dst, src, count * sizeof(pgd_t)); | ||
6189 | + | ||
6190 | +#ifdef CONFIG_PAX_KERNEXEC | ||
6191 | + pax_close_kernel(cr0); | ||
6192 | +#endif | 6245 | +#endif |
6193 | + | 6246 | extern void set_nx(void); |
6194 | } | ||
6195 | |||
6196 | 6247 | ||
6197 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/processor.h linux-2.6.29.6/arch/x86/include/asm/processor.h | 6248 | #define pgprot_writecombine pgprot_writecombine |
6198 | --- linux-2.6.29.6/arch/x86/include/asm/processor.h 2009-07-02 19:41:20.000000000 -0400 | 6249 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/processor.h linux-2.6.30.4/arch/x86/include/asm/processor.h |
6199 | +++ linux-2.6.29.6/arch/x86/include/asm/processor.h 2009-07-23 17:34:32.060764502 -0400 | 6250 | --- linux-2.6.30.4/arch/x86/include/asm/processor.h 2009-07-24 17:47:51.000000000 -0400 |
6200 | @@ -275,7 +275,7 @@ struct tss_struct { | 6251 | +++ linux-2.6.30.4/arch/x86/include/asm/processor.h 2009-07-30 09:48:09.933533479 -0400 |
6252 | @@ -270,7 +270,7 @@ struct tss_struct { | ||
6201 | 6253 | ||
6202 | } ____cacheline_aligned; | 6254 | } ____cacheline_aligned; |
6203 | 6255 | ||
6204 | -DECLARE_PER_CPU(struct tss_struct, init_tss); | 6256 | -DECLARE_PER_CPU_SHARED_ALIGNED(struct tss_struct, init_tss); |
6205 | +extern struct tss_struct init_tss[NR_CPUS]; | 6257 | +extern struct tss_struct init_tss[NR_CPUS]; |
6206 | 6258 | ||
6207 | /* | 6259 | /* |
6208 | * Save the original ist values for checking stack pointers during debugging | 6260 | * Save the original ist values for checking stack pointers during debugging |
6209 | @@ -839,11 +839,20 @@ static inline void spin_lock_prefetch(co | 6261 | @@ -866,8 +866,17 @@ static inline void spin_lock_prefetch(co |
6210 | * User space process size: 3GB (default). | ||
6211 | */ | 6262 | */ |
6212 | #define TASK_SIZE PAGE_OFFSET | 6263 | #define TASK_SIZE PAGE_OFFSET |
6264 | #define TASK_SIZE_MAX TASK_SIZE | ||
6213 | + | 6265 | + |
6214 | +#ifdef CONFIG_PAX_SEGMEXEC | 6266 | +#ifdef CONFIG_PAX_SEGMEXEC |
6215 | +#define SEGMEXEC_TASK_SIZE (TASK_SIZE / 2) | 6267 | +#define SEGMEXEC_TASK_SIZE (TASK_SIZE / 2) |
@@ -6224,12 +6276,8 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/processor.h linux-2.6.29.6/arch/x | |||
6224 | +#define STACK_TOP_MAX TASK_SIZE | 6276 | +#define STACK_TOP_MAX TASK_SIZE |
6225 | 6277 | ||
6226 | #define INIT_THREAD { \ | 6278 | #define INIT_THREAD { \ |
6227 | - .sp0 = sizeof(init_stack) + (long)&init_stack, \ | 6279 | .sp0 = sizeof(init_stack) + (long)&init_stack, \ |
6228 | + .sp0 = sizeof(init_stack) + (long)&init_stack - 8, \ | 6280 | @@ -885,7 +894,7 @@ static inline void spin_lock_prefetch(co |
6229 | .vm86_info = NULL, \ | ||
6230 | .sysenter_cs = __KERNEL_CS, \ | ||
6231 | .io_bitmap_ptr = NULL, \ | ||
6232 | @@ -858,7 +867,7 @@ static inline void spin_lock_prefetch(co | ||
6233 | */ | 6281 | */ |
6234 | #define INIT_TSS { \ | 6282 | #define INIT_TSS { \ |
6235 | .x86_tss = { \ | 6283 | .x86_tss = { \ |
@@ -6238,7 +6286,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/processor.h linux-2.6.29.6/arch/x | |||
6238 | .ss0 = __KERNEL_DS, \ | 6286 | .ss0 = __KERNEL_DS, \ |
6239 | .ss1 = __KERNEL_CS, \ | 6287 | .ss1 = __KERNEL_CS, \ |
6240 | .io_bitmap_base = INVALID_IO_BITMAP_OFFSET, \ | 6288 | .io_bitmap_base = INVALID_IO_BITMAP_OFFSET, \ |
6241 | @@ -869,11 +878,7 @@ static inline void spin_lock_prefetch(co | 6289 | @@ -896,11 +905,7 @@ static inline void spin_lock_prefetch(co |
6242 | extern unsigned long thread_saved_pc(struct task_struct *tsk); | 6290 | extern unsigned long thread_saved_pc(struct task_struct *tsk); |
6243 | 6291 | ||
6244 | #define THREAD_SIZE_LONGS (THREAD_SIZE/sizeof(unsigned long)) | 6292 | #define THREAD_SIZE_LONGS (THREAD_SIZE/sizeof(unsigned long)) |
@@ -6251,7 +6299,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/processor.h linux-2.6.29.6/arch/x | |||
6251 | 6299 | ||
6252 | /* | 6300 | /* |
6253 | * The below -8 is to reserve 8 bytes on top of the ring0 stack. | 6301 | * The below -8 is to reserve 8 bytes on top of the ring0 stack. |
6254 | @@ -888,7 +893,7 @@ extern unsigned long thread_saved_pc(str | 6302 | @@ -915,7 +920,7 @@ extern unsigned long thread_saved_pc(str |
6255 | #define task_pt_regs(task) \ | 6303 | #define task_pt_regs(task) \ |
6256 | ({ \ | 6304 | ({ \ |
6257 | struct pt_regs *__regs__; \ | 6305 | struct pt_regs *__regs__; \ |
@@ -6260,7 +6308,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/processor.h linux-2.6.29.6/arch/x | |||
6260 | __regs__ - 1; \ | 6308 | __regs__ - 1; \ |
6261 | }) | 6309 | }) |
6262 | 6310 | ||
6263 | @@ -904,7 +909,7 @@ extern unsigned long thread_saved_pc(str | 6311 | @@ -931,7 +936,7 @@ extern unsigned long thread_saved_pc(str |
6264 | * space during mmap's. | 6312 | * space during mmap's. |
6265 | */ | 6313 | */ |
6266 | #define IA32_PAGE_OFFSET ((current->personality & ADDR_LIMIT_3GB) ? \ | 6314 | #define IA32_PAGE_OFFSET ((current->personality & ADDR_LIMIT_3GB) ? \ |
@@ -6268,8 +6316,8 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/processor.h linux-2.6.29.6/arch/x | |||
6268 | + 0xc0000000 : 0xFFFFf000) | 6316 | + 0xc0000000 : 0xFFFFf000) |
6269 | 6317 | ||
6270 | #define TASK_SIZE (test_thread_flag(TIF_IA32) ? \ | 6318 | #define TASK_SIZE (test_thread_flag(TIF_IA32) ? \ |
6271 | IA32_PAGE_OFFSET : TASK_SIZE64) | 6319 | IA32_PAGE_OFFSET : TASK_SIZE_MAX) |
6272 | @@ -941,6 +946,10 @@ extern void start_thread(struct pt_regs | 6320 | @@ -968,6 +973,10 @@ extern void start_thread(struct pt_regs |
6273 | */ | 6321 | */ |
6274 | #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3)) | 6322 | #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3)) |
6275 | 6323 | ||
@@ -6280,9 +6328,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/processor.h linux-2.6.29.6/arch/x | |||
6280 | #define KSTK_EIP(task) (task_pt_regs(task)->ip) | 6328 | #define KSTK_EIP(task) (task_pt_regs(task)->ip) |
6281 | 6329 | ||
6282 | /* Get/set a process' ability to use the timestamp counter instruction */ | 6330 | /* Get/set a process' ability to use the timestamp counter instruction */ |
6283 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/ptrace.h linux-2.6.29.6/arch/x86/include/asm/ptrace.h | 6331 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/ptrace.h linux-2.6.30.4/arch/x86/include/asm/ptrace.h |
6284 | --- linux-2.6.29.6/arch/x86/include/asm/ptrace.h 2009-07-02 19:41:20.000000000 -0400 | 6332 | --- linux-2.6.30.4/arch/x86/include/asm/ptrace.h 2009-07-24 17:47:51.000000000 -0400 |
6285 | +++ linux-2.6.29.6/arch/x86/include/asm/ptrace.h 2009-07-23 17:34:32.060764502 -0400 | 6333 | +++ linux-2.6.30.4/arch/x86/include/asm/ptrace.h 2009-07-30 09:48:09.933533479 -0400 |
6286 | @@ -151,28 +151,29 @@ static inline unsigned long regs_return_ | 6334 | @@ -151,28 +151,29 @@ static inline unsigned long regs_return_ |
6287 | } | 6335 | } |
6288 | 6336 | ||
@@ -6319,9 +6367,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/ptrace.h linux-2.6.29.6/arch/x86/ | |||
6319 | #endif | 6367 | #endif |
6320 | } | 6368 | } |
6321 | 6369 | ||
6322 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/reboot.h linux-2.6.29.6/arch/x86/include/asm/reboot.h | 6370 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/reboot.h linux-2.6.30.4/arch/x86/include/asm/reboot.h |
6323 | --- linux-2.6.29.6/arch/x86/include/asm/reboot.h 2009-07-02 19:41:20.000000000 -0400 | 6371 | --- linux-2.6.30.4/arch/x86/include/asm/reboot.h 2009-07-24 17:47:51.000000000 -0400 |
6324 | +++ linux-2.6.29.6/arch/x86/include/asm/reboot.h 2009-07-23 17:34:32.060764502 -0400 | 6372 | +++ linux-2.6.30.4/arch/x86/include/asm/reboot.h 2009-07-30 09:48:09.933533479 -0400 |
6325 | @@ -18,7 +18,7 @@ extern struct machine_ops machine_ops; | 6373 | @@ -18,7 +18,7 @@ extern struct machine_ops machine_ops; |
6326 | 6374 | ||
6327 | void native_machine_crash_shutdown(struct pt_regs *regs); | 6375 | void native_machine_crash_shutdown(struct pt_regs *regs); |
@@ -6331,9 +6379,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/reboot.h linux-2.6.29.6/arch/x86/ | |||
6331 | 6379 | ||
6332 | typedef void (*nmi_shootdown_cb)(int, struct die_args*); | 6380 | typedef void (*nmi_shootdown_cb)(int, struct die_args*); |
6333 | void nmi_shootdown_cpus(nmi_shootdown_cb callback); | 6381 | void nmi_shootdown_cpus(nmi_shootdown_cb callback); |
6334 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/rwsem.h linux-2.6.29.6/arch/x86/include/asm/rwsem.h | 6382 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/rwsem.h linux-2.6.30.4/arch/x86/include/asm/rwsem.h |
6335 | --- linux-2.6.29.6/arch/x86/include/asm/rwsem.h 2009-07-02 19:41:20.000000000 -0400 | 6383 | --- linux-2.6.30.4/arch/x86/include/asm/rwsem.h 2009-07-24 17:47:51.000000000 -0400 |
6336 | +++ linux-2.6.29.6/arch/x86/include/asm/rwsem.h 2009-07-23 17:34:32.061944075 -0400 | 6384 | +++ linux-2.6.30.4/arch/x86/include/asm/rwsem.h 2009-07-30 09:48:09.934667198 -0400 |
6337 | @@ -106,10 +106,26 @@ static inline void __down_read(struct rw | 6385 | @@ -106,10 +106,26 @@ static inline void __down_read(struct rw |
6338 | { | 6386 | { |
6339 | asm volatile("# beginning down_read\n\t" | 6387 | asm volatile("# beginning down_read\n\t" |
@@ -6566,10 +6614,10 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/rwsem.h linux-2.6.29.6/arch/x86/i | |||
6566 | : "+r" (tmp), "+m" (sem->count) | 6614 | : "+r" (tmp), "+m" (sem->count) |
6567 | : : "memory"); | 6615 | : : "memory"); |
6568 | 6616 | ||
6569 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/segment.h linux-2.6.29.6/arch/x86/include/asm/segment.h | 6617 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/segment.h linux-2.6.30.4/arch/x86/include/asm/segment.h |
6570 | --- linux-2.6.29.6/arch/x86/include/asm/segment.h 2009-07-02 19:41:20.000000000 -0400 | 6618 | --- linux-2.6.30.4/arch/x86/include/asm/segment.h 2009-07-24 17:47:51.000000000 -0400 |
6571 | +++ linux-2.6.29.6/arch/x86/include/asm/segment.h 2009-07-23 17:34:32.061944075 -0400 | 6619 | +++ linux-2.6.30.4/arch/x86/include/asm/segment.h 2009-07-30 09:48:09.934667198 -0400 |
6572 | @@ -88,13 +88,19 @@ | 6620 | @@ -88,7 +88,7 @@ |
6573 | #define GDT_ENTRY_ESPFIX_SS (GDT_ENTRY_KERNEL_BASE + 14) | 6621 | #define GDT_ENTRY_ESPFIX_SS (GDT_ENTRY_KERNEL_BASE + 14) |
6574 | #define __ESPFIX_SS (GDT_ENTRY_ESPFIX_SS * 8) | 6622 | #define __ESPFIX_SS (GDT_ENTRY_ESPFIX_SS * 8) |
6575 | 6623 | ||
@@ -6578,19 +6626,20 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/segment.h linux-2.6.29.6/arch/x86 | |||
6578 | #ifdef CONFIG_SMP | 6626 | #ifdef CONFIG_SMP |
6579 | #define __KERNEL_PERCPU (GDT_ENTRY_PERCPU * 8) | 6627 | #define __KERNEL_PERCPU (GDT_ENTRY_PERCPU * 8) |
6580 | #else | 6628 | #else |
6581 | #define __KERNEL_PERCPU 0 | 6629 | @@ -102,6 +102,12 @@ |
6630 | #define __KERNEL_STACK_CANARY 0 | ||
6582 | #endif | 6631 | #endif |
6583 | 6632 | ||
6584 | +#define GDT_ENTRY_PCIBIOS_CS (GDT_ENTRY_KERNEL_BASE + 16) | 6633 | +#define GDT_ENTRY_PCIBIOS_CS (GDT_ENTRY_KERNEL_BASE + 17) |
6585 | +#define __PCIBIOS_CS (GDT_ENTRY_PCIBIOS_CS * 8) | 6634 | +#define __PCIBIOS_CS (GDT_ENTRY_PCIBIOS_CS * 8) |
6586 | + | 6635 | + |
6587 | +#define GDT_ENTRY_PCIBIOS_DS (GDT_ENTRY_KERNEL_BASE + 17) | 6636 | +#define GDT_ENTRY_PCIBIOS_DS (GDT_ENTRY_KERNEL_BASE + 18) |
6588 | +#define __PCIBIOS_DS (GDT_ENTRY_PCIBIOS_DS * 8) | 6637 | +#define __PCIBIOS_DS (GDT_ENTRY_PCIBIOS_DS * 8) |
6589 | + | 6638 | + |
6590 | #define GDT_ENTRY_DOUBLEFAULT_TSS 31 | 6639 | #define GDT_ENTRY_DOUBLEFAULT_TSS 31 |
6591 | 6640 | ||
6592 | /* | 6641 | /* |
6593 | @@ -132,7 +138,7 @@ | 6642 | @@ -139,7 +145,7 @@ |
6594 | */ | 6643 | */ |
6595 | 6644 | ||
6596 | /* Matches PNP_CS32 and PNP_CS16 (they must be consecutive) */ | 6645 | /* Matches PNP_CS32 and PNP_CS16 (they must be consecutive) */ |
@@ -6599,10 +6648,10 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/segment.h linux-2.6.29.6/arch/x86 | |||
6599 | 6648 | ||
6600 | 6649 | ||
6601 | #else | 6650 | #else |
6602 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/spinlock.h linux-2.6.29.6/arch/x86/include/asm/spinlock.h | 6651 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/spinlock.h linux-2.6.30.4/arch/x86/include/asm/spinlock.h |
6603 | --- linux-2.6.29.6/arch/x86/include/asm/spinlock.h 2009-07-02 19:41:20.000000000 -0400 | 6652 | --- linux-2.6.30.4/arch/x86/include/asm/spinlock.h 2009-07-24 17:47:51.000000000 -0400 |
6604 | +++ linux-2.6.29.6/arch/x86/include/asm/spinlock.h 2009-07-23 17:34:32.061944075 -0400 | 6653 | +++ linux-2.6.30.4/arch/x86/include/asm/spinlock.h 2009-07-30 09:48:09.934667198 -0400 |
6605 | @@ -311,18 +311,50 @@ static inline int __raw_write_can_lock(r | 6654 | @@ -249,18 +249,50 @@ static inline int __raw_write_can_lock(r |
6606 | static inline void __raw_read_lock(raw_rwlock_t *rw) | 6655 | static inline void __raw_read_lock(raw_rwlock_t *rw) |
6607 | { | 6656 | { |
6608 | asm volatile(LOCK_PREFIX " subl $1,(%0)\n\t" | 6657 | asm volatile(LOCK_PREFIX " subl $1,(%0)\n\t" |
@@ -6657,7 +6706,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/spinlock.h linux-2.6.29.6/arch/x8 | |||
6657 | ::LOCK_PTR_REG (rw), "i" (RW_LOCK_BIAS) : "memory"); | 6706 | ::LOCK_PTR_REG (rw), "i" (RW_LOCK_BIAS) : "memory"); |
6658 | } | 6707 | } |
6659 | 6708 | ||
6660 | @@ -349,12 +381,45 @@ static inline int __raw_write_trylock(ra | 6709 | @@ -286,12 +318,45 @@ static inline int __raw_write_trylock(ra |
6661 | 6710 | ||
6662 | static inline void __raw_read_unlock(raw_rwlock_t *rw) | 6711 | static inline void __raw_read_unlock(raw_rwlock_t *rw) |
6663 | { | 6712 | { |
@@ -6705,30 +6754,10 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/spinlock.h linux-2.6.29.6/arch/x8 | |||
6705 | : "+m" (rw->lock) : "i" (RW_LOCK_BIAS) : "memory"); | 6754 | : "+m" (rw->lock) : "i" (RW_LOCK_BIAS) : "memory"); |
6706 | } | 6755 | } |
6707 | 6756 | ||
6708 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/system.h linux-2.6.29.6/arch/x86/include/asm/system.h | 6757 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/system.h linux-2.6.30.4/arch/x86/include/asm/system.h |
6709 | --- linux-2.6.29.6/arch/x86/include/asm/system.h 2009-07-02 19:41:20.000000000 -0400 | 6758 | --- linux-2.6.30.4/arch/x86/include/asm/system.h 2009-07-24 17:47:51.000000000 -0400 |
6710 | +++ linux-2.6.29.6/arch/x86/include/asm/system.h 2009-07-23 17:34:37.457730203 -0400 | 6759 | +++ linux-2.6.30.4/arch/x86/include/asm/system.h 2009-07-30 09:48:09.935636803 -0400 |
6711 | @@ -95,6 +95,8 @@ do { \ | 6760 | @@ -227,7 +227,7 @@ static inline unsigned long get_limit(un |
6712 | ".globl thread_return\n" \ | ||
6713 | "thread_return:\n\t" \ | ||
6714 | "movq %%gs:%P[pda_pcurrent],%%rsi\n\t" \ | ||
6715 | + "movq %P[task_canary](%%rsi),%%r8\n\t" \ | ||
6716 | + "movq %%r8,%%gs:%P[pda_canary]\n\t" \ | ||
6717 | "movq %P[thread_info](%%rsi),%%r8\n\t" \ | ||
6718 | LOCK_PREFIX "btr %[tif_fork],%P[ti_flags](%%r8)\n\t" \ | ||
6719 | "movq %%rax,%%rdi\n\t" \ | ||
6720 | @@ -106,7 +108,9 @@ do { \ | ||
6721 | [ti_flags] "i" (offsetof(struct thread_info, flags)), \ | ||
6722 | [tif_fork] "i" (TIF_FORK), \ | ||
6723 | [thread_info] "i" (offsetof(struct task_struct, stack)), \ | ||
6724 | - [pda_pcurrent] "i" (offsetof(struct x8664_pda, pcurrent)) \ | ||
6725 | + [task_canary] "i" (offsetof(struct task_struct, stack_canary)), \ | ||
6726 | + [pda_pcurrent] "i" (offsetof(struct x8664_pda, pcurrent)), \ | ||
6727 | + [pda_canary] "i" (offsetof(struct x8664_pda, stack_canary))\ | ||
6728 | : "memory", "cc" __EXTRA_CLOBBER) | ||
6729 | #endif | ||
6730 | |||
6731 | @@ -169,7 +173,7 @@ static inline unsigned long get_limit(un | ||
6732 | { | 6761 | { |
6733 | unsigned long __limit; | 6762 | unsigned long __limit; |
6734 | asm("lsll %1,%0" : "=r" (__limit) : "r" (segment)); | 6763 | asm("lsll %1,%0" : "=r" (__limit) : "r" (segment)); |
@@ -6737,7 +6766,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/system.h linux-2.6.29.6/arch/x86/ | |||
6737 | } | 6766 | } |
6738 | 6767 | ||
6739 | static inline void native_clts(void) | 6768 | static inline void native_clts(void) |
6740 | @@ -295,6 +299,23 @@ static inline void native_wbinvd(void) | 6769 | @@ -353,6 +353,23 @@ static inline void native_wbinvd(void) |
6741 | 6770 | ||
6742 | #define stts() write_cr0(read_cr0() | X86_CR0_TS) | 6771 | #define stts() write_cr0(read_cr0() | X86_CR0_TS) |
6743 | 6772 | ||
@@ -6761,7 +6790,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/system.h linux-2.6.29.6/arch/x86/ | |||
6761 | #endif /* __KERNEL__ */ | 6790 | #endif /* __KERNEL__ */ |
6762 | 6791 | ||
6763 | static inline void clflush(volatile void *__p) | 6792 | static inline void clflush(volatile void *__p) |
6764 | @@ -309,7 +330,7 @@ void enable_hlt(void); | 6793 | @@ -367,7 +384,7 @@ void enable_hlt(void); |
6765 | 6794 | ||
6766 | void cpu_idle_wait(void); | 6795 | void cpu_idle_wait(void); |
6767 | 6796 | ||
@@ -6770,10 +6799,20 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/system.h linux-2.6.29.6/arch/x86/ | |||
6770 | extern void free_init_pages(char *what, unsigned long begin, unsigned long end); | 6799 | extern void free_init_pages(char *what, unsigned long begin, unsigned long end); |
6771 | 6800 | ||
6772 | void default_idle(void); | 6801 | void default_idle(void); |
6773 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_32.h linux-2.6.29.6/arch/x86/include/asm/uaccess_32.h | 6802 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/uaccess_32.h linux-2.6.30.4/arch/x86/include/asm/uaccess_32.h |
6774 | --- linux-2.6.29.6/arch/x86/include/asm/uaccess_32.h 2009-07-02 19:41:20.000000000 -0400 | 6803 | --- linux-2.6.30.4/arch/x86/include/asm/uaccess_32.h 2009-07-24 17:47:51.000000000 -0400 |
6775 | +++ linux-2.6.29.6/arch/x86/include/asm/uaccess_32.h 2009-07-23 17:34:32.062941291 -0400 | 6804 | +++ linux-2.6.30.4/arch/x86/include/asm/uaccess_32.h 2009-07-30 09:48:09.936413079 -0400 |
6776 | @@ -62,6 +62,8 @@ __copy_to_user_inatomic(void __user *to, | 6805 | @@ -44,6 +44,9 @@ unsigned long __must_check __copy_from_u |
6806 | static __always_inline unsigned long __must_check | ||
6807 | __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n) | ||
6808 | { | ||
6809 | + if ((long)n < 0) | ||
6810 | + return n; | ||
6811 | + | ||
6812 | if (__builtin_constant_p(n)) { | ||
6813 | unsigned long ret; | ||
6814 | |||
6815 | @@ -62,6 +65,8 @@ __copy_to_user_inatomic(void __user *to, | ||
6777 | return ret; | 6816 | return ret; |
6778 | } | 6817 | } |
6779 | } | 6818 | } |
@@ -6782,7 +6821,28 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_32.h linux-2.6.29.6/arch/ | |||
6782 | return __copy_to_user_ll(to, from, n); | 6821 | return __copy_to_user_ll(to, from, n); |
6783 | } | 6822 | } |
6784 | 6823 | ||
6785 | @@ -153,6 +155,8 @@ __copy_from_user(void *to, const void __ | 6824 | @@ -89,6 +94,9 @@ __copy_to_user(void __user *to, const vo |
6825 | static __always_inline unsigned long | ||
6826 | __copy_from_user_inatomic(void *to, const void __user *from, unsigned long n) | ||
6827 | { | ||
6828 | + if ((long)n < 0) | ||
6829 | + return n; | ||
6830 | + | ||
6831 | /* Avoid zeroing the tail if the copy fails.. | ||
6832 | * If 'n' is constant and 1, 2, or 4, we do still zero on a failure, | ||
6833 | * but as the zeroing behaviour is only significant when n is not | ||
6834 | @@ -138,6 +146,10 @@ static __always_inline unsigned long | ||
6835 | __copy_from_user(void *to, const void __user *from, unsigned long n) | ||
6836 | { | ||
6837 | might_fault(); | ||
6838 | + | ||
6839 | + if ((long)n < 0) | ||
6840 | + return n; | ||
6841 | + | ||
6842 | if (__builtin_constant_p(n)) { | ||
6843 | unsigned long ret; | ||
6844 | |||
6845 | @@ -153,6 +165,8 @@ __copy_from_user(void *to, const void __ | ||
6786 | return ret; | 6846 | return ret; |
6787 | } | 6847 | } |
6788 | } | 6848 | } |
@@ -6791,15 +6851,28 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_32.h linux-2.6.29.6/arch/ | |||
6791 | return __copy_from_user_ll(to, from, n); | 6851 | return __copy_from_user_ll(to, from, n); |
6792 | } | 6852 | } |
6793 | 6853 | ||
6794 | @@ -185,11 +189,56 @@ __copy_from_user_inatomic_nocache(void * | 6854 | @@ -160,6 +174,10 @@ static __always_inline unsigned long __c |
6795 | return __copy_from_user_ll_nocache_nozero(to, from, n); | 6855 | const void __user *from, unsigned long n) |
6796 | } | 6856 | { |
6857 | might_fault(); | ||
6858 | + | ||
6859 | + if ((long)n < 0) | ||
6860 | + return n; | ||
6861 | + | ||
6862 | if (__builtin_constant_p(n)) { | ||
6863 | unsigned long ret; | ||
6797 | 6864 | ||
6798 | -unsigned long __must_check copy_to_user(void __user *to, | 6865 | @@ -182,14 +200,62 @@ static __always_inline unsigned long |
6799 | - const void *from, unsigned long n); | 6866 | __copy_from_user_inatomic_nocache(void *to, const void __user *from, |
6800 | -unsigned long __must_check copy_from_user(void *to, | 6867 | unsigned long n) |
6801 | - const void __user *from, | 6868 | { |
6802 | - unsigned long n); | 6869 | - return __copy_from_user_ll_nocache_nozero(to, from, n); |
6870 | + if ((long)n < 0) | ||
6871 | + return n; | ||
6872 | + | ||
6873 | + return __copy_from_user_ll_nocache_nozero(to, from, n); | ||
6874 | +} | ||
6875 | + | ||
6803 | +/** | 6876 | +/** |
6804 | + * copy_to_user: - Copy a block of data into user space. | 6877 | + * copy_to_user: - Copy a block of data into user space. |
6805 | + * @to: Destination address, in user space. | 6878 | + * @to: Destination address, in user space. |
@@ -6848,14 +6921,19 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_32.h linux-2.6.29.6/arch/ | |||
6848 | + memset(to, 0, n); | 6921 | + memset(to, 0, n); |
6849 | + } | 6922 | + } |
6850 | + return n; | 6923 | + return n; |
6851 | +} | 6924 | } |
6852 | + | 6925 | |
6926 | -unsigned long __must_check copy_to_user(void __user *to, | ||
6927 | - const void *from, unsigned long n); | ||
6928 | -unsigned long __must_check copy_from_user(void *to, | ||
6929 | - const void __user *from, | ||
6930 | - unsigned long n); | ||
6853 | long __must_check strncpy_from_user(char *dst, const char __user *src, | 6931 | long __must_check strncpy_from_user(char *dst, const char __user *src, |
6854 | long count); | 6932 | long count); |
6855 | long __must_check __strncpy_from_user(char *dst, | 6933 | long __must_check __strncpy_from_user(char *dst, |
6856 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h | 6934 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/uaccess_64.h linux-2.6.30.4/arch/x86/include/asm/uaccess_64.h |
6857 | --- linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h 2009-07-02 19:41:20.000000000 -0400 | 6935 | --- linux-2.6.30.4/arch/x86/include/asm/uaccess_64.h 2009-07-30 20:32:40.365617606 -0400 |
6858 | +++ linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h 2009-07-23 17:34:32.062941291 -0400 | 6936 | +++ linux-2.6.30.4/arch/x86/include/asm/uaccess_64.h 2009-07-30 20:32:47.927601167 -0400 |
6859 | @@ -10,6 +10,8 @@ | 6937 | @@ -10,6 +10,8 @@ |
6860 | #include <linux/lockdep.h> | 6938 | #include <linux/lockdep.h> |
6861 | #include <asm/page.h> | 6939 | #include <asm/page.h> |
@@ -6865,7 +6943,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h linux-2.6.29.6/arch/ | |||
6865 | /* | 6943 | /* |
6866 | * Copy To/From Userspace | 6944 | * Copy To/From Userspace |
6867 | */ | 6945 | */ |
6868 | @@ -19,20 +21,18 @@ __must_check unsigned long | 6946 | @@ -19,20 +21,22 @@ __must_check unsigned long |
6869 | copy_user_generic(void *to, const void *from, unsigned len); | 6947 | copy_user_generic(void *to, const void *from, unsigned len); |
6870 | 6948 | ||
6871 | __must_check unsigned long | 6949 | __must_check unsigned long |
@@ -6884,6 +6962,10 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h linux-2.6.29.6/arch/ | |||
6884 | 6962 | ||
6885 | might_fault(); | 6963 | might_fault(); |
6886 | - if (!__builtin_constant_p(size)) | 6964 | - if (!__builtin_constant_p(size)) |
6965 | + | ||
6966 | + if ((int)size < 0) | ||
6967 | + return size; | ||
6968 | + | ||
6887 | + if (!__builtin_constant_p(size)) { | 6969 | + if (!__builtin_constant_p(size)) { |
6888 | + check_object_size(dst, size, false); | 6970 | + check_object_size(dst, size, false); |
6889 | return copy_user_generic(dst, (__force void *)src, size); | 6971 | return copy_user_generic(dst, (__force void *)src, size); |
@@ -6891,7 +6973,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h linux-2.6.29.6/arch/ | |||
6891 | switch (size) { | 6973 | switch (size) { |
6892 | case 1:__get_user_asm(*(u8 *)dst, (u8 __user *)src, | 6974 | case 1:__get_user_asm(*(u8 *)dst, (u8 __user *)src, |
6893 | ret, "b", "b", "=q", 1); | 6975 | ret, "b", "b", "=q", 1); |
6894 | @@ -70,13 +70,15 @@ int __copy_from_user(void *dst, const vo | 6976 | @@ -70,13 +74,19 @@ int __copy_from_user(void *dst, const vo |
6895 | } | 6977 | } |
6896 | 6978 | ||
6897 | static __always_inline __must_check | 6979 | static __always_inline __must_check |
@@ -6903,6 +6985,10 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h linux-2.6.29.6/arch/ | |||
6903 | 6985 | ||
6904 | might_fault(); | 6986 | might_fault(); |
6905 | - if (!__builtin_constant_p(size)) | 6987 | - if (!__builtin_constant_p(size)) |
6988 | + | ||
6989 | + if ((int)size < 0) | ||
6990 | + return size; | ||
6991 | + | ||
6906 | + if (!__builtin_constant_p(size)) { | 6992 | + if (!__builtin_constant_p(size)) { |
6907 | + check_object_size(src, size, true); | 6993 | + check_object_size(src, size, true); |
6908 | return copy_user_generic((__force void *)dst, src, size); | 6994 | return copy_user_generic((__force void *)dst, src, size); |
@@ -6910,13 +6996,14 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h linux-2.6.29.6/arch/ | |||
6910 | switch (size) { | 6996 | switch (size) { |
6911 | case 1:__put_user_asm(*(u8 *)src, (u8 __user *)dst, | 6997 | case 1:__put_user_asm(*(u8 *)src, (u8 __user *)dst, |
6912 | ret, "b", "b", "iq", 1); | 6998 | ret, "b", "b", "iq", 1); |
6913 | @@ -114,9 +116,30 @@ int __copy_to_user(void __user *dst, con | 6999 | @@ -114,11 +124,39 @@ int __copy_to_user(void __user *dst, con |
6914 | } | 7000 | } |
6915 | 7001 | ||
6916 | static __always_inline __must_check | 7002 | static __always_inline __must_check |
6917 | -int __copy_in_user(void __user *dst, const void __user *src, unsigned size) | 7003 | -int __copy_in_user(void __user *dst, const void __user *src, unsigned size) |
6918 | +unsigned long copy_to_user(void __user *to, const void *from, unsigned len) | 7004 | +unsigned long copy_to_user(void __user *to, const void *from, unsigned len) |
6919 | +{ | 7005 | { |
7006 | - int ret = 0; | ||
6920 | + if (access_ok(VERIFY_WRITE, to, len)) | 7007 | + if (access_ok(VERIFY_WRITE, to, len)) |
6921 | + len = __copy_to_user(to, from, len); | 7008 | + len = __copy_to_user(to, from, len); |
6922 | + return len; | 7009 | + return len; |
@@ -6925,6 +7012,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h linux-2.6.29.6/arch/ | |||
6925 | +static __always_inline __must_check | 7012 | +static __always_inline __must_check |
6926 | +unsigned long copy_from_user(void *to, const void __user *from, unsigned len) | 7013 | +unsigned long copy_from_user(void *to, const void __user *from, unsigned len) |
6927 | +{ | 7014 | +{ |
7015 | + if ((int)len < 0) | ||
7016 | + return len; | ||
7017 | + | ||
6928 | + if (access_ok(VERIFY_READ, from, len)) | 7018 | + if (access_ok(VERIFY_READ, from, len)) |
6929 | + len = __copy_from_user(to, from, len); | 7019 | + len = __copy_from_user(to, from, len); |
6930 | + else if ((int)len > 0) { | 7020 | + else if ((int)len > 0) { |
@@ -6937,13 +7027,18 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h linux-2.6.29.6/arch/ | |||
6937 | + | 7027 | + |
6938 | +static __always_inline __must_check | 7028 | +static __always_inline __must_check |
6939 | +unsigned long __copy_in_user(void __user *dst, const void __user *src, unsigned size) | 7029 | +unsigned long __copy_in_user(void __user *dst, const void __user *src, unsigned size) |
6940 | { | 7030 | +{ |
6941 | - int ret = 0; | ||
6942 | + unsigned ret = 0; | 7031 | + unsigned ret = 0; |
6943 | 7032 | ||
6944 | might_fault(); | 7033 | might_fault(); |
7034 | + | ||
7035 | + if ((int)size < 0) | ||
7036 | + return size; | ||
7037 | + | ||
6945 | if (!__builtin_constant_p(size)) | 7038 | if (!__builtin_constant_p(size)) |
6946 | @@ -179,30 +202,30 @@ __must_check unsigned long __clear_user( | 7039 | return copy_user_generic((__force void *)dst, |
7040 | (__force void *)src, size); | ||
7041 | @@ -179,30 +217,38 @@ __must_check unsigned long __clear_user( | ||
6947 | __must_check long __copy_from_user_inatomic(void *dst, const void __user *src, | 7042 | __must_check long __copy_from_user_inatomic(void *dst, const void __user *src, |
6948 | unsigned size); | 7043 | unsigned size); |
6949 | 7044 | ||
@@ -6951,6 +7046,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h linux-2.6.29.6/arch/ | |||
6951 | +static __must_check __always_inline unsigned long | 7046 | +static __must_check __always_inline unsigned long |
6952 | __copy_to_user_inatomic(void __user *dst, const void *src, unsigned size) | 7047 | __copy_to_user_inatomic(void __user *dst, const void *src, unsigned size) |
6953 | { | 7048 | { |
7049 | + if ((int)size < 0) | ||
7050 | + return size; | ||
7051 | + | ||
6954 | return copy_user_generic((__force void *)dst, src, size); | 7052 | return copy_user_generic((__force void *)dst, src, size); |
6955 | } | 7053 | } |
6956 | 7054 | ||
@@ -6958,19 +7056,26 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h linux-2.6.29.6/arch/ | |||
6958 | +extern unsigned long __copy_user_nocache(void *dst, const void __user *src, | 7056 | +extern unsigned long __copy_user_nocache(void *dst, const void __user *src, |
6959 | unsigned size, int zerorest); | 7057 | unsigned size, int zerorest); |
6960 | 7058 | ||
6961 | -static inline int __copy_from_user_nocache(void *dst, const void __user *src, | 7059 | -static inline int |
6962 | +static inline unsigned long __copy_from_user_nocache(void *dst, const void __user *src, | 7060 | -__copy_from_user_nocache(void *dst, const void __user *src, unsigned size) |
6963 | unsigned size) | 7061 | +static inline unsigned long __copy_from_user_nocache(void *dst, const void __user *src, unsigned size) |
6964 | { | 7062 | { |
6965 | might_sleep(); | 7063 | might_sleep(); |
7064 | + | ||
7065 | + if ((int)size < 0) | ||
7066 | + return size; | ||
7067 | + | ||
6966 | return __copy_user_nocache(dst, src, size, 1); | 7068 | return __copy_user_nocache(dst, src, size, 1); |
6967 | } | 7069 | } |
6968 | 7070 | ||
6969 | -static inline int __copy_from_user_inatomic_nocache(void *dst, | 7071 | -static inline int |
6970 | +static inline unsigned long __copy_from_user_inatomic_nocache(void *dst, | 7072 | -__copy_from_user_inatomic_nocache(void *dst, const void __user *src, |
6971 | const void __user *src, | 7073 | +static inline unsigned long __copy_from_user_inatomic_nocache(void *dst, const void __user *src, |
6972 | unsigned size) | 7074 | unsigned size) |
6973 | { | 7075 | { |
7076 | + if ((int)size < 0) | ||
7077 | + return size; | ||
7078 | + | ||
6974 | return __copy_user_nocache(dst, src, size, 0); | 7079 | return __copy_user_nocache(dst, src, size, 0); |
6975 | } | 7080 | } |
6976 | 7081 | ||
@@ -6979,9 +7084,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess_64.h linux-2.6.29.6/arch/ | |||
6979 | copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest); | 7084 | copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest); |
6980 | 7085 | ||
6981 | #endif /* _ASM_X86_UACCESS_64_H */ | 7086 | #endif /* _ASM_X86_UACCESS_64_H */ |
6982 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess.h linux-2.6.29.6/arch/x86/include/asm/uaccess.h | 7087 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/uaccess.h linux-2.6.30.4/arch/x86/include/asm/uaccess.h |
6983 | --- linux-2.6.29.6/arch/x86/include/asm/uaccess.h 2009-07-02 19:41:20.000000000 -0400 | 7088 | --- linux-2.6.30.4/arch/x86/include/asm/uaccess.h 2009-07-30 20:32:40.364705510 -0400 |
6984 | +++ linux-2.6.29.6/arch/x86/include/asm/uaccess.h 2009-07-23 17:34:32.062941291 -0400 | 7089 | +++ linux-2.6.30.4/arch/x86/include/asm/uaccess.h 2009-07-30 20:32:47.926577259 -0400 |
6985 | @@ -8,8 +8,10 @@ | 7090 | @@ -8,8 +8,10 @@ |
6986 | #include <linux/thread_info.h> | 7091 | #include <linux/thread_info.h> |
6987 | #include <linux/prefetch.h> | 7092 | #include <linux/prefetch.h> |
@@ -7009,7 +7114,7 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess.h linux-2.6.29.6/arch/x86 | |||
7009 | @@ -187,9 +194,12 @@ extern int __get_user_bad(void); | 7114 | @@ -187,9 +194,12 @@ extern int __get_user_bad(void); |
7010 | 7115 | ||
7011 | #ifdef CONFIG_X86_32 | 7116 | #ifdef CONFIG_X86_32 |
7012 | #define __put_user_u64(x, addr, err) \ | 7117 | #define __put_user_asm_u64(x, addr, err, errret) \ |
7013 | - asm volatile("1: movl %%eax,0(%2)\n" \ | 7118 | - asm volatile("1: movl %%eax,0(%2)\n" \ |
7014 | - "2: movl %%edx,4(%2)\n" \ | 7119 | - "2: movl %%edx,4(%2)\n" \ |
7015 | + asm volatile(" movw %w5,%%ds\n" \ | 7120 | + asm volatile(" movw %w5,%%ds\n" \ |
@@ -7025,13 +7130,13 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess.h linux-2.6.29.6/arch/x86 | |||
7025 | _ASM_EXTABLE(1b, 4b) \ | 7130 | _ASM_EXTABLE(1b, 4b) \ |
7026 | _ASM_EXTABLE(2b, 4b) \ | 7131 | _ASM_EXTABLE(2b, 4b) \ |
7027 | : "=r" (err) \ | 7132 | : "=r" (err) \ |
7028 | - : "A" (x), "r" (addr), "i" (-EFAULT), "0" (err)) | 7133 | - : "A" (x), "r" (addr), "i" (errret), "0" (err)) |
7029 | + : "A" (x), "r" (addr), "i" (-EFAULT), "0" (err), \ | 7134 | + : "A" (x), "r" (addr), "i" (errret), "0" (err), \ |
7030 | + "r"(__USER_DS)) | 7135 | + "r"(__USER_DS)) |
7031 | 7136 | ||
7032 | #define __put_user_x8(x, ptr, __ret_pu) \ | 7137 | #define __put_user_asm_ex_u64(x, addr) \ |
7033 | asm volatile("call __put_user_8" : "=a" (__ret_pu) \ | 7138 | asm volatile("1: movl %%eax,0(%1)\n" \ |
7034 | @@ -338,6 +349,22 @@ do { \ | 7139 | @@ -373,6 +384,22 @@ do { \ |
7035 | } \ | 7140 | } \ |
7036 | } while (0) | 7141 | } while (0) |
7037 | 7142 | ||
@@ -7054,15 +7159,38 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess.h linux-2.6.29.6/arch/x86 | |||
7054 | #define __get_user_asm(x, addr, err, itype, rtype, ltype, errret) \ | 7159 | #define __get_user_asm(x, addr, err, itype, rtype, ltype, errret) \ |
7055 | asm volatile("1: mov"itype" %2,%"rtype"1\n" \ | 7160 | asm volatile("1: mov"itype" %2,%"rtype"1\n" \ |
7056 | "2:\n" \ | 7161 | "2:\n" \ |
7057 | @@ -349,6 +376,7 @@ do { \ | 7162 | @@ -384,6 +411,7 @@ do { \ |
7058 | _ASM_EXTABLE(1b, 3b) \ | 7163 | _ASM_EXTABLE(1b, 3b) \ |
7059 | : "=r" (err), ltype(x) \ | 7164 | : "=r" (err), ltype(x) \ |
7060 | : "m" (__m(addr)), "i" (errret), "0" (err)) | 7165 | : "m" (__m(addr)), "i" (errret), "0" (err)) |
7061 | +#endif | 7166 | +#endif |
7062 | 7167 | ||
7168 | #define __get_user_size_ex(x, ptr, size) \ | ||
7169 | do { \ | ||
7170 | @@ -406,11 +434,22 @@ do { \ | ||
7171 | } \ | ||
7172 | } while (0) | ||
7173 | |||
7174 | +#ifdef CONFIG_X86_32 | ||
7175 | +#define __get_user_asm_ex(x, addr, itype, rtype, ltype) \ | ||
7176 | + asm volatile(" movw %w2,%%ds\n" \ | ||
7177 | + "1: mov"itype" %%ds:%1,%"rtype"0\n" \ | ||
7178 | + "2:\n" \ | ||
7179 | + " pushl %%ss\n" \ | ||
7180 | + " popl %%ds\n" \ | ||
7181 | + _ASM_EXTABLE(1b, 2b - 1b) \ | ||
7182 | + : ltype(x) : "m" (__m(addr)), "r"(__USER_DS)) | ||
7183 | +#else | ||
7184 | #define __get_user_asm_ex(x, addr, itype, rtype, ltype) \ | ||
7185 | asm volatile("1: mov"itype" %1,%"rtype"0\n" \ | ||
7186 | "2:\n" \ | ||
7187 | _ASM_EXTABLE(1b, 2b - 1b) \ | ||
7188 | : ltype(x) : "m" (__m(addr))) | ||
7189 | +#endif | ||
7190 | |||
7063 | #define __put_user_nocheck(x, ptr, size) \ | 7191 | #define __put_user_nocheck(x, ptr, size) \ |
7064 | ({ \ | 7192 | ({ \ |
7065 | @@ -375,6 +403,22 @@ struct __large_struct { unsigned long bu | 7193 | @@ -437,6 +476,22 @@ struct __large_struct { unsigned long bu |
7066 | * we do not write to any memory gcc knows about, so there are no | 7194 | * we do not write to any memory gcc knows about, so there are no |
7067 | * aliasing issues. | 7195 | * aliasing issues. |
7068 | */ | 7196 | */ |
@@ -7085,15 +7213,32 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess.h linux-2.6.29.6/arch/x86 | |||
7085 | #define __put_user_asm(x, addr, err, itype, rtype, ltype, errret) \ | 7213 | #define __put_user_asm(x, addr, err, itype, rtype, ltype, errret) \ |
7086 | asm volatile("1: mov"itype" %"rtype"1,%2\n" \ | 7214 | asm volatile("1: mov"itype" %"rtype"1,%2\n" \ |
7087 | "2:\n" \ | 7215 | "2:\n" \ |
7088 | @@ -385,6 +429,7 @@ struct __large_struct { unsigned long bu | 7216 | @@ -447,12 +502,24 @@ struct __large_struct { unsigned long bu |
7089 | _ASM_EXTABLE(1b, 3b) \ | 7217 | _ASM_EXTABLE(1b, 3b) \ |
7090 | : "=r"(err) \ | 7218 | : "=r"(err) \ |
7091 | : ltype(x), "m" (__m(addr)), "i" (errret), "0" (err)) | 7219 | : ltype(x), "m" (__m(addr)), "i" (errret), "0" (err)) |
7092 | +#endif | 7220 | +#endif |
7093 | /** | 7221 | |
7094 | * __get_user: - Get a simple variable from user space, with less checking. | 7222 | +#ifdef CONFIG_X86_32 |
7095 | * @x: Variable to store result. | 7223 | +#define __put_user_asm_ex(x, addr, itype, rtype, ltype) \ |
7096 | @@ -445,6 +490,7 @@ extern struct movsl_mask { | 7224 | + asm volatile(" movw %w2,%%ds\n" \ |
7225 | + "1: mov"itype" %"rtype"0,%%ds:%1\n" \ | ||
7226 | + "2:\n" \ | ||
7227 | + " pushl %%ss\n" \ | ||
7228 | + " popl %%ds\n" \ | ||
7229 | + _ASM_EXTABLE(1b, 2b - 1b) \ | ||
7230 | + : : ltype(x), "m" (__m(addr)), "r"(__USER_DS)) | ||
7231 | +#else | ||
7232 | #define __put_user_asm_ex(x, addr, itype, rtype, ltype) \ | ||
7233 | asm volatile("1: mov"itype" %"rtype"0,%1\n" \ | ||
7234 | "2:\n" \ | ||
7235 | _ASM_EXTABLE(1b, 2b - 1b) \ | ||
7236 | : : ltype(x), "m" (__m(addr))) | ||
7237 | +#endif | ||
7238 | |||
7239 | /* | ||
7240 | * uaccess_try and catch | ||
7241 | @@ -567,6 +634,7 @@ extern struct movsl_mask { | ||
7097 | 7242 | ||
7098 | #define ARCH_HAS_NOCACHE_UACCESS 1 | 7243 | #define ARCH_HAS_NOCACHE_UACCESS 1 |
7099 | 7244 | ||
@@ -7101,9 +7246,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/uaccess.h linux-2.6.29.6/arch/x86 | |||
7101 | #ifdef CONFIG_X86_32 | 7246 | #ifdef CONFIG_X86_32 |
7102 | # include "uaccess_32.h" | 7247 | # include "uaccess_32.h" |
7103 | #else | 7248 | #else |
7104 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/vgtod.h linux-2.6.29.6/arch/x86/include/asm/vgtod.h | 7249 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/vgtod.h linux-2.6.30.4/arch/x86/include/asm/vgtod.h |
7105 | --- linux-2.6.29.6/arch/x86/include/asm/vgtod.h 2009-07-02 19:41:20.000000000 -0400 | 7250 | --- linux-2.6.30.4/arch/x86/include/asm/vgtod.h 2009-07-24 17:47:51.000000000 -0400 |
7106 | +++ linux-2.6.29.6/arch/x86/include/asm/vgtod.h 2009-07-23 17:34:32.062941291 -0400 | 7251 | +++ linux-2.6.30.4/arch/x86/include/asm/vgtod.h 2009-07-30 09:48:09.936413079 -0400 |
7107 | @@ -14,6 +14,7 @@ struct vsyscall_gtod_data { | 7252 | @@ -14,6 +14,7 @@ struct vsyscall_gtod_data { |
7108 | int sysctl_enabled; | 7253 | int sysctl_enabled; |
7109 | struct timezone sys_tz; | 7254 | struct timezone sys_tz; |
@@ -7112,9 +7257,9 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/vgtod.h linux-2.6.29.6/arch/x86/i | |||
7112 | cycle_t (*vread)(void); | 7257 | cycle_t (*vread)(void); |
7113 | cycle_t cycle_last; | 7258 | cycle_t cycle_last; |
7114 | cycle_t mask; | 7259 | cycle_t mask; |
7115 | diff -urNp linux-2.6.29.6/arch/x86/include/asm/vsyscall.h linux-2.6.29.6/arch/x86/include/asm/vsyscall.h | 7260 | diff -urNp linux-2.6.30.4/arch/x86/include/asm/vsyscall.h linux-2.6.30.4/arch/x86/include/asm/vsyscall.h |
7116 | --- linux-2.6.29.6/arch/x86/include/asm/vsyscall.h 2009-07-02 19:41:20.000000000 -0400 | 7261 | --- linux-2.6.30.4/arch/x86/include/asm/vsyscall.h 2009-07-24 17:47:51.000000000 -0400 |
7117 | +++ linux-2.6.29.6/arch/x86/include/asm/vsyscall.h 2009-07-23 17:34:32.062941291 -0400 | 7262 | +++ linux-2.6.30.4/arch/x86/include/asm/vsyscall.h 2009-07-30 09:48:09.937413620 -0400 |
7118 | @@ -15,9 +15,10 @@ enum vsyscall_num { | 7263 | @@ -15,9 +15,10 @@ enum vsyscall_num { |
7119 | 7264 | ||
7120 | #ifdef __KERNEL__ | 7265 | #ifdef __KERNEL__ |
@@ -7145,10 +7290,50 @@ diff -urNp linux-2.6.29.6/arch/x86/include/asm/vsyscall.h linux-2.6.29.6/arch/x8 | |||
7145 | #endif /* __KERNEL__ */ | 7290 | #endif /* __KERNEL__ */ |
7146 | 7291 | ||
7147 | #endif /* _ASM_X86_VSYSCALL_H */ | 7292 | #endif /* _ASM_X86_VSYSCALL_H */ |
7148 | diff -urNp linux-2.6.29.6/arch/x86/Kconfig linux-2.6.29.6/arch/x86/Kconfig | 7293 | diff -urNp linux-2.6.30.4/arch/x86/Kconfig linux-2.6.30.4/arch/x86/Kconfig |
7149 | --- linux-2.6.29.6/arch/x86/Kconfig 2009-07-02 19:41:20.000000000 -0400 | 7294 | --- linux-2.6.30.4/arch/x86/Kconfig 2009-07-24 17:47:51.000000000 -0400 |
7150 | +++ linux-2.6.29.6/arch/x86/Kconfig 2009-07-23 17:34:32.063803736 -0400 | 7295 | +++ linux-2.6.30.4/arch/x86/Kconfig 2009-08-04 17:52:34.387861424 -0400 |
7151 | @@ -993,7 +993,7 @@ config PAGE_OFFSET | 7296 | @@ -345,6 +345,7 @@ config X86_VSMP |
7297 | select PARAVIRT | ||
7298 | depends on X86_64 && PCI | ||
7299 | depends on X86_EXTENDED_PLATFORM | ||
7300 | + depends on !PAX_KERNEXEC | ||
7301 | ---help--- | ||
7302 | Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is | ||
7303 | supposed to run on these EM64T-based machines. Only choose this option | ||
7304 | @@ -464,6 +465,7 @@ config VMI | ||
7305 | bool "VMI Guest support" | ||
7306 | select PARAVIRT | ||
7307 | depends on X86_32 | ||
7308 | + depends on !PAX_KERNEXEC | ||
7309 | ---help--- | ||
7310 | VMI provides a paravirtualized interface to the VMware ESX server | ||
7311 | (it could be used by other hypervisors in theory too, but is not | ||
7312 | @@ -474,6 +476,7 @@ config KVM_CLOCK | ||
7313 | bool "KVM paravirtualized clock" | ||
7314 | select PARAVIRT | ||
7315 | select PARAVIRT_CLOCK | ||
7316 | + depends on !PAX_KERNEXEC | ||
7317 | ---help--- | ||
7318 | Turning on this option will allow you to run a paravirtualized clock | ||
7319 | when running over the KVM hypervisor. Instead of relying on a PIT | ||
7320 | @@ -484,6 +487,7 @@ config KVM_CLOCK | ||
7321 | config KVM_GUEST | ||
7322 | bool "KVM Guest support" | ||
7323 | select PARAVIRT | ||
7324 | + depends on !PAX_KERNEXEC | ||
7325 | ---help--- | ||
7326 | This option enables various optimizations for running under the KVM | ||
7327 | hypervisor. | ||
7328 | @@ -492,6 +496,7 @@ source "arch/x86/lguest/Kconfig" | ||
7329 | |||
7330 | config PARAVIRT | ||
7331 | bool "Enable paravirtualization code" | ||
7332 | + depends on !PAX_KERNEXEC | ||
7333 | ---help--- | ||
7334 | This changes the kernel so it can modify itself when it is run | ||
7335 | under a hypervisor, potentially improving performance significantly | ||
7336 | @@ -1058,7 +1063,7 @@ config PAGE_OFFSET | ||
7152 | hex | 7337 | hex |
7153 | default 0xB0000000 if VMSPLIT_3G_OPT | 7338 | default 0xB0000000 if VMSPLIT_3G_OPT |
7154 | default 0x80000000 if VMSPLIT_2G | 7339 | default 0x80000000 if VMSPLIT_2G |
@@ -7157,32 +7342,52 @@ diff -urNp linux-2.6.29.6/arch/x86/Kconfig linux-2.6.29.6/arch/x86/Kconfig | |||
7157 | default 0x40000000 if VMSPLIT_1G | 7342 | default 0x40000000 if VMSPLIT_1G |
7158 | default 0xC0000000 | 7343 | default 0xC0000000 |
7159 | depends on X86_32 | 7344 | depends on X86_32 |
7160 | @@ -1408,8 +1408,7 @@ config KEXEC_JUMP | 7345 | @@ -1376,7 +1381,7 @@ config X86_PAT |
7346 | |||
7347 | config EFI | ||
7348 | bool "EFI runtime service support" | ||
7349 | - depends on ACPI | ||
7350 | + depends on ACPI && !PAX_KERNEXEC | ||
7351 | ---help--- | ||
7352 | This enables the kernel to use EFI runtime services that are | ||
7353 | available (such as the EFI variable services). | ||
7354 | @@ -1466,9 +1471,7 @@ config KEXEC_JUMP | ||
7355 | |||
7161 | config PHYSICAL_START | 7356 | config PHYSICAL_START |
7162 | hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) | 7357 | hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) |
7163 | default "0x1000000" if X86_NUMAQ | 7358 | - default "0x1000000" if X86_NUMAQ |
7164 | - default "0x200000" if X86_64 | 7359 | - default "0x200000" if X86_64 |
7165 | - default "0x100000" | 7360 | - default "0x100000" |
7166 | + default "0x200000" | 7361 | + default "0x1000000" |
7167 | help | 7362 | ---help--- |
7168 | This gives the physical address where the kernel is loaded. | 7363 | This gives the physical address where the kernel is loaded. |
7169 | 7364 | ||
7170 | @@ -1501,9 +1500,9 @@ config HOTPLUG_CPU | 7365 | @@ -1527,8 +1530,7 @@ config RELOCATABLE |
7366 | config PHYSICAL_ALIGN | ||
7367 | hex | ||
7368 | prompt "Alignment value to which kernel should be aligned" if X86_32 | ||
7369 | - default "0x100000" if X86_32 | ||
7370 | - default "0x200000" if X86_64 | ||
7371 | + default "0x200000" | ||
7372 | range 0x2000 0x400000 | ||
7373 | ---help--- | ||
7374 | This value puts the alignment restrictions on physical address | ||
7375 | @@ -1560,9 +1562,10 @@ config HOTPLUG_CPU | ||
7171 | Say N if you want to disable CPU hotplug. | 7376 | Say N if you want to disable CPU hotplug. |
7172 | 7377 | ||
7173 | config COMPAT_VDSO | 7378 | config COMPAT_VDSO |
7174 | - def_bool y | 7379 | - def_bool y |
7175 | + def_bool n | 7380 | + def_bool n |
7176 | prompt "Compat VDSO support" | 7381 | prompt "Compat VDSO support" |
7177 | - depends on X86_32 || IA32_EMULATION | 7382 | depends on X86_32 || IA32_EMULATION |
7178 | + depends on (X86_32 || IA32_EMULATION) && !PAX_NOEXEC | 7383 | + depends on !PAX_NOEXEC && !PAX_MEMORY_UDEREF |
7179 | help | 7384 | ---help--- |
7180 | Map the 32-bit VDSO to the predictable old-style address too. | 7385 | Map the 32-bit VDSO to the predictable old-style address too. |
7181 | ---help--- | 7386 | ---help--- |
7182 | diff -urNp linux-2.6.29.6/arch/x86/Kconfig.cpu linux-2.6.29.6/arch/x86/Kconfig.cpu | 7387 | diff -urNp linux-2.6.30.4/arch/x86/Kconfig.cpu linux-2.6.30.4/arch/x86/Kconfig.cpu |
7183 | --- linux-2.6.29.6/arch/x86/Kconfig.cpu 2009-07-02 19:41:20.000000000 -0400 | 7388 | --- linux-2.6.30.4/arch/x86/Kconfig.cpu 2009-07-24 17:47:51.000000000 -0400 |
7184 | +++ linux-2.6.29.6/arch/x86/Kconfig.cpu 2009-07-23 17:34:32.063803736 -0400 | 7389 | +++ linux-2.6.30.4/arch/x86/Kconfig.cpu 2009-07-30 09:48:09.916592662 -0400 |
7185 | @@ -333,7 +333,7 @@ config X86_PPRO_FENCE | 7390 | @@ -331,7 +331,7 @@ config X86_PPRO_FENCE |
7186 | 7391 | ||
7187 | config X86_F00F_BUG | 7392 | config X86_F00F_BUG |
7188 | def_bool y | 7393 | def_bool y |
@@ -7191,7 +7396,7 @@ diff -urNp linux-2.6.29.6/arch/x86/Kconfig.cpu linux-2.6.29.6/arch/x86/Kconfig.c | |||
7191 | 7396 | ||
7192 | config X86_WP_WORKS_OK | 7397 | config X86_WP_WORKS_OK |
7193 | def_bool y | 7398 | def_bool y |
7194 | @@ -353,7 +353,7 @@ config X86_POPAD_OK | 7399 | @@ -351,7 +351,7 @@ config X86_POPAD_OK |
7195 | 7400 | ||
7196 | config X86_ALIGNMENT_16 | 7401 | config X86_ALIGNMENT_16 |
7197 | def_bool y | 7402 | def_bool y |
@@ -7200,7 +7405,7 @@ diff -urNp linux-2.6.29.6/arch/x86/Kconfig.cpu linux-2.6.29.6/arch/x86/Kconfig.c | |||
7200 | 7405 | ||
7201 | config X86_INTEL_USERCOPY | 7406 | config X86_INTEL_USERCOPY |
7202 | def_bool y | 7407 | def_bool y |
7203 | @@ -399,7 +399,7 @@ config X86_CMPXCHG64 | 7408 | @@ -397,7 +397,7 @@ config X86_CMPXCHG64 |
7204 | # generates cmov. | 7409 | # generates cmov. |
7205 | config X86_CMOV | 7410 | config X86_CMOV |
7206 | def_bool y | 7411 | def_bool y |
@@ -7209,22 +7414,22 @@ diff -urNp linux-2.6.29.6/arch/x86/Kconfig.cpu linux-2.6.29.6/arch/x86/Kconfig.c | |||
7209 | 7414 | ||
7210 | config X86_MINIMUM_CPU_FAMILY | 7415 | config X86_MINIMUM_CPU_FAMILY |
7211 | int | 7416 | int |
7212 | diff -urNp linux-2.6.29.6/arch/x86/Kconfig.debug linux-2.6.29.6/arch/x86/Kconfig.debug | 7417 | diff -urNp linux-2.6.30.4/arch/x86/Kconfig.debug linux-2.6.30.4/arch/x86/Kconfig.debug |
7213 | --- linux-2.6.29.6/arch/x86/Kconfig.debug 2009-07-02 19:41:20.000000000 -0400 | 7418 | --- linux-2.6.30.4/arch/x86/Kconfig.debug 2009-07-24 17:47:51.000000000 -0400 |
7214 | +++ linux-2.6.29.6/arch/x86/Kconfig.debug 2009-07-23 17:34:32.063803736 -0400 | 7419 | +++ linux-2.6.30.4/arch/x86/Kconfig.debug 2009-07-30 09:48:09.916592662 -0400 |
7215 | @@ -107,7 +107,7 @@ config X86_PTDUMP | 7420 | @@ -99,7 +99,7 @@ config X86_PTDUMP |
7216 | config DEBUG_RODATA | 7421 | config DEBUG_RODATA |
7217 | bool "Write protect kernel read-only data structures" | 7422 | bool "Write protect kernel read-only data structures" |
7218 | default y | 7423 | default y |
7219 | - depends on DEBUG_KERNEL | 7424 | - depends on DEBUG_KERNEL |
7220 | + depends on DEBUG_KERNEL && BROKEN | 7425 | + depends on DEBUG_KERNEL && BROKEN |
7221 | help | 7426 | ---help--- |
7222 | Mark the kernel read-only data as write-protected in the pagetables, | 7427 | Mark the kernel read-only data as write-protected in the pagetables, |
7223 | in order to catch accidental (and incorrect) writes to such const | 7428 | in order to catch accidental (and incorrect) writes to such const |
7224 | diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/boot.c linux-2.6.29.6/arch/x86/kernel/acpi/boot.c | 7429 | diff -urNp linux-2.6.30.4/arch/x86/kernel/acpi/boot.c linux-2.6.30.4/arch/x86/kernel/acpi/boot.c |
7225 | --- linux-2.6.29.6/arch/x86/kernel/acpi/boot.c 2009-07-02 19:41:20.000000000 -0400 | 7430 | --- linux-2.6.30.4/arch/x86/kernel/acpi/boot.c 2009-07-24 17:47:51.000000000 -0400 |
7226 | +++ linux-2.6.29.6/arch/x86/kernel/acpi/boot.c 2009-07-23 17:34:32.064889971 -0400 | 7431 | +++ linux-2.6.30.4/arch/x86/kernel/acpi/boot.c 2009-07-30 09:48:09.938432163 -0400 |
7227 | @@ -1705,7 +1705,7 @@ static struct dmi_system_id __initdata a | 7432 | @@ -1737,7 +1737,7 @@ static struct dmi_system_id __initdata a |
7228 | DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq 6715b"), | 7433 | DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq 6715b"), |
7229 | }, | 7434 | }, |
7230 | }, | 7435 | }, |
@@ -7233,9 +7438,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/boot.c linux-2.6.29.6/arch/x86/ke | |||
7233 | }; | 7438 | }; |
7234 | 7439 | ||
7235 | /* | 7440 | /* |
7236 | diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/realmode/wakeup.S linux-2.6.29.6/arch/x86/kernel/acpi/realmode/wakeup.S | 7441 | diff -urNp linux-2.6.30.4/arch/x86/kernel/acpi/realmode/wakeup.S linux-2.6.30.4/arch/x86/kernel/acpi/realmode/wakeup.S |
7237 | --- linux-2.6.29.6/arch/x86/kernel/acpi/realmode/wakeup.S 2009-07-02 19:41:20.000000000 -0400 | 7442 | --- linux-2.6.30.4/arch/x86/kernel/acpi/realmode/wakeup.S 2009-07-24 17:47:51.000000000 -0400 |
7238 | +++ linux-2.6.29.6/arch/x86/kernel/acpi/realmode/wakeup.S 2009-07-23 17:34:32.064889971 -0400 | 7443 | +++ linux-2.6.30.4/arch/x86/kernel/acpi/realmode/wakeup.S 2009-07-30 09:48:09.938432163 -0400 |
7239 | @@ -104,7 +104,7 @@ _start: | 7444 | @@ -104,7 +104,7 @@ _start: |
7240 | movl %eax, %ecx | 7445 | movl %eax, %ecx |
7241 | orl %edx, %ecx | 7446 | orl %edx, %ecx |
@@ -7245,9 +7450,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/realmode/wakeup.S linux-2.6.29.6/ | |||
7245 | wrmsr | 7450 | wrmsr |
7246 | 1: | 7451 | 1: |
7247 | 7452 | ||
7248 | diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/sleep.c linux-2.6.29.6/arch/x86/kernel/acpi/sleep.c | 7453 | diff -urNp linux-2.6.30.4/arch/x86/kernel/acpi/sleep.c linux-2.6.30.4/arch/x86/kernel/acpi/sleep.c |
7249 | --- linux-2.6.29.6/arch/x86/kernel/acpi/sleep.c 2009-07-02 19:41:20.000000000 -0400 | 7454 | --- linux-2.6.30.4/arch/x86/kernel/acpi/sleep.c 2009-07-24 17:47:51.000000000 -0400 |
7250 | +++ linux-2.6.29.6/arch/x86/kernel/acpi/sleep.c 2009-07-23 17:34:32.064889971 -0400 | 7455 | +++ linux-2.6.30.4/arch/x86/kernel/acpi/sleep.c 2009-07-30 09:48:09.938432163 -0400 |
7251 | @@ -11,11 +11,12 @@ | 7456 | @@ -11,11 +11,12 @@ |
7252 | #include <linux/cpumask.h> | 7457 | #include <linux/cpumask.h> |
7253 | #include <asm/segment.h> | 7458 | #include <asm/segment.h> |
@@ -7289,10 +7494,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/sleep.c linux-2.6.29.6/arch/x86/k | |||
7289 | + pax_close_kernel(cr0); | 7494 | + pax_close_kernel(cr0); |
7290 | +#endif | 7495 | +#endif |
7291 | + | 7496 | + |
7497 | initial_gs = per_cpu_offset(smp_processor_id()); | ||
7292 | #endif | 7498 | #endif |
7293 | initial_code = (unsigned long)wakeup_long64; | 7499 | initial_code = (unsigned long)wakeup_long64; |
7294 | saved_magic = 0x123456789abcdef0; | 7500 | @@ -134,14 +149,8 @@ void __init acpi_reserve_bootmem(void) |
7295 | @@ -133,14 +148,8 @@ void __init acpi_reserve_bootmem(void) | ||
7296 | return; | 7501 | return; |
7297 | } | 7502 | } |
7298 | 7503 | ||
@@ -7309,9 +7514,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/sleep.c linux-2.6.29.6/arch/x86/k | |||
7309 | } | 7514 | } |
7310 | 7515 | ||
7311 | 7516 | ||
7312 | diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/wakeup_32.S linux-2.6.29.6/arch/x86/kernel/acpi/wakeup_32.S | 7517 | diff -urNp linux-2.6.30.4/arch/x86/kernel/acpi/wakeup_32.S linux-2.6.30.4/arch/x86/kernel/acpi/wakeup_32.S |
7313 | --- linux-2.6.29.6/arch/x86/kernel/acpi/wakeup_32.S 2009-07-02 19:41:20.000000000 -0400 | 7518 | --- linux-2.6.30.4/arch/x86/kernel/acpi/wakeup_32.S 2009-07-24 17:47:51.000000000 -0400 |
7314 | +++ linux-2.6.29.6/arch/x86/kernel/acpi/wakeup_32.S 2009-07-23 17:34:32.064889971 -0400 | 7519 | +++ linux-2.6.30.4/arch/x86/kernel/acpi/wakeup_32.S 2009-07-30 09:48:09.938432163 -0400 |
7315 | @@ -30,13 +30,11 @@ wakeup_pmode_return: | 7520 | @@ -30,13 +30,11 @@ wakeup_pmode_return: |
7316 | # and restore the stack ... but you need gdt for this to work | 7521 | # and restore the stack ... but you need gdt for this to work |
7317 | movl saved_context_esp, %esp | 7522 | movl saved_context_esp, %esp |
@@ -7328,10 +7533,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/acpi/wakeup_32.S linux-2.6.29.6/arch/x | |||
7328 | 7533 | ||
7329 | bogus_magic: | 7534 | bogus_magic: |
7330 | jmp bogus_magic | 7535 | jmp bogus_magic |
7331 | diff -urNp linux-2.6.29.6/arch/x86/kernel/alternative.c linux-2.6.29.6/arch/x86/kernel/alternative.c | 7536 | diff -urNp linux-2.6.30.4/arch/x86/kernel/alternative.c linux-2.6.30.4/arch/x86/kernel/alternative.c |
7332 | --- linux-2.6.29.6/arch/x86/kernel/alternative.c 2009-07-02 19:41:20.000000000 -0400 | 7537 | --- linux-2.6.30.4/arch/x86/kernel/alternative.c 2009-07-24 17:47:51.000000000 -0400 |
7333 | +++ linux-2.6.29.6/arch/x86/kernel/alternative.c 2009-07-23 17:34:32.064889971 -0400 | 7538 | +++ linux-2.6.30.4/arch/x86/kernel/alternative.c 2009-07-30 09:48:09.939725122 -0400 |
7334 | @@ -393,7 +393,7 @@ void apply_paravirt(struct paravirt_patc | 7539 | @@ -400,7 +400,7 @@ void apply_paravirt(struct paravirt_patc |
7335 | 7540 | ||
7336 | BUG_ON(p->len > MAX_PATCH_LEN); | 7541 | BUG_ON(p->len > MAX_PATCH_LEN); |
7337 | /* prep the buffer with the original instructions */ | 7542 | /* prep the buffer with the original instructions */ |
@@ -7340,7 +7545,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/alternative.c linux-2.6.29.6/arch/x86/ | |||
7340 | used = pv_init_ops.patch(p->instrtype, p->clobbers, insnbuf, | 7545 | used = pv_init_ops.patch(p->instrtype, p->clobbers, insnbuf, |
7341 | (unsigned long)p->instr, p->len); | 7546 | (unsigned long)p->instr, p->len); |
7342 | 7547 | ||
7343 | @@ -473,11 +473,26 @@ void __init alternative_instructions(voi | 7548 | @@ -485,11 +485,26 @@ void __init alternative_instructions(voi |
7344 | * instructions. And on the local CPU you need to be protected again NMI or MCE | 7549 | * instructions. And on the local CPU you need to be protected again NMI or MCE |
7345 | * handlers seeing an inconsistent instruction while you patch. | 7550 | * handlers seeing an inconsistent instruction while you patch. |
7346 | */ | 7551 | */ |
@@ -7369,13 +7574,12 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/alternative.c linux-2.6.29.6/arch/x86/ | |||
7369 | local_irq_restore(flags); | 7574 | local_irq_restore(flags); |
7370 | sync_core(); | 7575 | sync_core(); |
7371 | /* Could also do a CLFLUSH here to speed up CPU recovery; but | 7576 | /* Could also do a CLFLUSH here to speed up CPU recovery; but |
7372 | @@ -498,33 +513,27 @@ void *text_poke_early(void *addr, const | 7577 | @@ -512,35 +527,27 @@ void *text_poke_early(void *addr, const |
7373 | */ | 7578 | */ |
7374 | void *__kprobes text_poke(void *addr, const void *opcode, size_t len) | 7579 | void *__kprobes text_poke(void *addr, const void *opcode, size_t len) |
7375 | { | 7580 | { |
7376 | - unsigned long flags; | 7581 | - unsigned long flags; |
7377 | - char *vaddr; | 7582 | - char *vaddr; |
7378 | - int nr_pages = 2; | ||
7379 | + unsigned char *vaddr = ktla_ktva(addr); | 7583 | + unsigned char *vaddr = ktla_ktva(addr); |
7380 | struct page *pages[2]; | 7584 | struct page *pages[2]; |
7381 | - int i; | 7585 | - int i; |
@@ -7401,26 +7605,29 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/alternative.c linux-2.6.29.6/arch/x86/ | |||
7401 | + pages[1] = virt_to_page(vaddr + PAGE_SIZE); | 7605 | + pages[1] = virt_to_page(vaddr + PAGE_SIZE); |
7402 | } | 7606 | } |
7403 | BUG_ON(!pages[0]); | 7607 | BUG_ON(!pages[0]); |
7404 | - if (!pages[1]) | ||
7405 | - nr_pages = 1; | ||
7406 | - vaddr = vmap(pages, nr_pages, VM_MAP, PAGE_KERNEL); | ||
7407 | - BUG_ON(!vaddr); | ||
7408 | - local_irq_save(flags); | 7608 | - local_irq_save(flags); |
7609 | - set_fixmap(FIX_TEXT_POKE0, page_to_phys(pages[0])); | ||
7610 | - if (pages[1]) | ||
7611 | - set_fixmap(FIX_TEXT_POKE1, page_to_phys(pages[1])); | ||
7612 | - vaddr = (char *)fix_to_virt(FIX_TEXT_POKE0); | ||
7409 | - memcpy(&vaddr[(unsigned long)addr & ~PAGE_MASK], opcode, len); | 7613 | - memcpy(&vaddr[(unsigned long)addr & ~PAGE_MASK], opcode, len); |
7410 | - local_irq_restore(flags); | 7614 | - clear_fixmap(FIX_TEXT_POKE0); |
7411 | - vunmap(vaddr); | 7615 | - if (pages[1]) |
7616 | - clear_fixmap(FIX_TEXT_POKE1); | ||
7617 | - local_flush_tlb(); | ||
7412 | - sync_core(); | 7618 | - sync_core(); |
7413 | - /* Could also do a CLFLUSH here to speed up CPU recovery; but | 7619 | - /* Could also do a CLFLUSH here to speed up CPU recovery; but |
7414 | - that causes hangs on some VIA CPUs. */ | 7620 | - that causes hangs on some VIA CPUs. */ |
7415 | + text_poke_early(addr, opcode, len); | 7621 | + text_poke_early(addr, opcode, len); |
7416 | for (i = 0; i < len; i++) | 7622 | for (i = 0; i < len; i++) |
7417 | - BUG_ON(((char *)addr)[i] != ((char *)opcode)[i]); | 7623 | - BUG_ON(((char *)addr)[i] != ((char *)opcode)[i]); |
7418 | + BUG_ON((vaddr)[i] != ((unsigned char *)opcode)[i]); | 7624 | - local_irq_restore(flags); |
7625 | + BUG_ON(((char *)vaddr)[i] != ((char *)opcode)[i]); | ||
7419 | return addr; | 7626 | return addr; |
7420 | } | 7627 | } |
7421 | diff -urNp linux-2.6.29.6/arch/x86/kernel/apm_32.c linux-2.6.29.6/arch/x86/kernel/apm_32.c | 7628 | diff -urNp linux-2.6.30.4/arch/x86/kernel/apm_32.c linux-2.6.30.4/arch/x86/kernel/apm_32.c |
7422 | --- linux-2.6.29.6/arch/x86/kernel/apm_32.c 2009-07-02 19:41:20.000000000 -0400 | 7629 | --- linux-2.6.30.4/arch/x86/kernel/apm_32.c 2009-07-24 17:47:51.000000000 -0400 |
7423 | +++ linux-2.6.29.6/arch/x86/kernel/apm_32.c 2009-07-23 17:34:32.065870632 -0400 | 7630 | +++ linux-2.6.30.4/arch/x86/kernel/apm_32.c 2009-07-30 09:48:09.939725122 -0400 |
7424 | @@ -403,7 +403,7 @@ static DECLARE_WAIT_QUEUE_HEAD(apm_waitq | 7631 | @@ -403,7 +403,7 @@ static DECLARE_WAIT_QUEUE_HEAD(apm_waitq |
7425 | static DECLARE_WAIT_QUEUE_HEAD(apm_suspend_waitqueue); | 7632 | static DECLARE_WAIT_QUEUE_HEAD(apm_suspend_waitqueue); |
7426 | static struct apm_user *user_list; | 7633 | static struct apm_user *user_list; |
@@ -7430,17 +7637,16 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/apm_32.c linux-2.6.29.6/arch/x86/kerne | |||
7430 | 7637 | ||
7431 | static const char driver_version[] = "1.16ac"; /* no spaces */ | 7638 | static const char driver_version[] = "1.16ac"; /* no spaces */ |
7432 | 7639 | ||
7433 | @@ -598,19 +598,42 @@ static u8 apm_bios_call(u32 func, u32 eb | 7640 | @@ -576,12 +576,25 @@ static long __apm_bios_call(void *_call) |
7434 | struct desc_struct save_desc_40; | ||
7435 | struct desc_struct *gdt; | 7641 | struct desc_struct *gdt; |
7642 | struct apm_bios_call *call = _call; | ||
7436 | 7643 | ||
7437 | +#ifdef CONFIG_PAX_KERNEXEC | 7644 | +#ifdef CONFIG_PAX_KERNEXEC |
7438 | + unsigned long cr0; | 7645 | + unsigned long cr0; |
7439 | +#endif | 7646 | +#endif |
7440 | + | 7647 | + |
7441 | cpus = apm_save_cpus(); | ||
7442 | |||
7443 | cpu = get_cpu(); | 7648 | cpu = get_cpu(); |
7649 | BUG_ON(cpu != 0); | ||
7444 | gdt = get_cpu_gdt_table(cpu); | 7650 | gdt = get_cpu_gdt_table(cpu); |
7445 | save_desc_40 = gdt[0x40 / 8]; | 7651 | save_desc_40 = gdt[0x40 / 8]; |
7446 | + | 7652 | + |
@@ -7456,7 +7662,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/apm_32.c linux-2.6.29.6/arch/x86/kerne | |||
7456 | + | 7662 | + |
7457 | apm_irq_save(flags); | 7663 | apm_irq_save(flags); |
7458 | APM_DO_SAVE_SEGS; | 7664 | APM_DO_SAVE_SEGS; |
7459 | apm_bios_call_asm(func, ebx_in, ecx_in, eax, ebx, ecx, edx, esi); | 7665 | apm_bios_call_asm(call->func, call->ebx, call->ecx, |
7666 | @@ -589,7 +602,17 @@ static long __apm_bios_call(void *_call) | ||
7667 | &call->esi); | ||
7460 | APM_DO_RESTORE_SEGS; | 7668 | APM_DO_RESTORE_SEGS; |
7461 | apm_irq_restore(flags); | 7669 | apm_irq_restore(flags); |
7462 | + | 7670 | + |
@@ -7471,19 +7679,18 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/apm_32.c linux-2.6.29.6/arch/x86/kerne | |||
7471 | +#endif | 7679 | +#endif |
7472 | + | 7680 | + |
7473 | put_cpu(); | 7681 | put_cpu(); |
7474 | apm_restore_cpus(cpus); | ||
7475 | 7682 | ||
7476 | @@ -641,19 +664,42 @@ static u8 apm_bios_call_simple(u32 func, | 7683 | return call->eax & 0xff; |
7477 | struct desc_struct save_desc_40; | 7684 | @@ -652,19 +675,42 @@ static long __apm_bios_call_simple(void |
7478 | struct desc_struct *gdt; | 7685 | struct desc_struct *gdt; |
7686 | struct apm_bios_call *call = _call; | ||
7479 | 7687 | ||
7480 | +#ifdef CONFIG_PAX_KERNEXEC | 7688 | +#ifdef CONFIG_PAX_KERNEXEC |
7481 | + unsigned long cr0; | 7689 | + unsigned long cr0; |
7482 | +#endif | 7690 | +#endif |
7483 | + | 7691 | + |
7484 | cpus = apm_save_cpus(); | ||
7485 | |||
7486 | cpu = get_cpu(); | 7692 | cpu = get_cpu(); |
7693 | BUG_ON(cpu != 0); | ||
7487 | gdt = get_cpu_gdt_table(cpu); | 7694 | gdt = get_cpu_gdt_table(cpu); |
7488 | save_desc_40 = gdt[0x40 / 8]; | 7695 | save_desc_40 = gdt[0x40 / 8]; |
7489 | + | 7696 | + |
@@ -7499,7 +7706,8 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/apm_32.c linux-2.6.29.6/arch/x86/kerne | |||
7499 | + | 7706 | + |
7500 | apm_irq_save(flags); | 7707 | apm_irq_save(flags); |
7501 | APM_DO_SAVE_SEGS; | 7708 | APM_DO_SAVE_SEGS; |
7502 | error = apm_bios_call_simple_asm(func, ebx_in, ecx_in, eax); | 7709 | error = apm_bios_call_simple_asm(call->func, call->ebx, call->ecx, |
7710 | &call->eax); | ||
7503 | APM_DO_RESTORE_SEGS; | 7711 | APM_DO_RESTORE_SEGS; |
7504 | apm_irq_restore(flags); | 7712 | apm_irq_restore(flags); |
7505 | + | 7713 | + |
@@ -7514,9 +7722,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/apm_32.c linux-2.6.29.6/arch/x86/kerne | |||
7514 | +#endif | 7722 | +#endif |
7515 | + | 7723 | + |
7516 | put_cpu(); | 7724 | put_cpu(); |
7517 | apm_restore_cpus(cpus); | ||
7518 | return error; | 7725 | return error; |
7519 | @@ -925,7 +971,7 @@ recalc: | 7726 | } |
7727 | @@ -967,7 +1013,7 @@ recalc: | ||
7520 | 7728 | ||
7521 | static void apm_power_off(void) | 7729 | static void apm_power_off(void) |
7522 | { | 7730 | { |
@@ -7525,7 +7733,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/apm_32.c linux-2.6.29.6/arch/x86/kerne | |||
7525 | 0xb8, 0x00, 0x10, /* movw $0x1000,ax */ | 7733 | 0xb8, 0x00, 0x10, /* movw $0x1000,ax */ |
7526 | 0x8e, 0xd0, /* movw ax,ss */ | 7734 | 0x8e, 0xd0, /* movw ax,ss */ |
7527 | 0xbc, 0x00, 0xf0, /* movw $0xf000,sp */ | 7735 | 0xbc, 0x00, 0xf0, /* movw $0xf000,sp */ |
7528 | @@ -1876,7 +1922,10 @@ static const struct file_operations apm_ | 7736 | @@ -1925,7 +1971,10 @@ static const struct file_operations apm_ |
7529 | static struct miscdevice apm_device = { | 7737 | static struct miscdevice apm_device = { |
7530 | APM_MINOR_DEV, | 7738 | APM_MINOR_DEV, |
7531 | "apm_bios", | 7739 | "apm_bios", |
@@ -7537,7 +7745,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/apm_32.c linux-2.6.29.6/arch/x86/kerne | |||
7537 | }; | 7745 | }; |
7538 | 7746 | ||
7539 | 7747 | ||
7540 | @@ -2197,7 +2246,7 @@ static struct dmi_system_id __initdata a | 7748 | @@ -2246,7 +2295,7 @@ static struct dmi_system_id __initdata a |
7541 | { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), }, | 7749 | { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), }, |
7542 | }, | 7750 | }, |
7543 | 7751 | ||
@@ -7546,7 +7754,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/apm_32.c linux-2.6.29.6/arch/x86/kerne | |||
7546 | }; | 7754 | }; |
7547 | 7755 | ||
7548 | /* | 7756 | /* |
7549 | @@ -2215,6 +2264,10 @@ static int __init apm_init(void) | 7757 | @@ -2264,6 +2313,10 @@ static int __init apm_init(void) |
7550 | struct desc_struct *gdt; | 7758 | struct desc_struct *gdt; |
7551 | int err; | 7759 | int err; |
7552 | 7760 | ||
@@ -7557,7 +7765,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/apm_32.c linux-2.6.29.6/arch/x86/kerne | |||
7557 | dmi_check_system(apm_dmi_table); | 7765 | dmi_check_system(apm_dmi_table); |
7558 | 7766 | ||
7559 | if (apm_info.bios.version == 0 || paravirt_enabled() || machine_is_olpc()) { | 7767 | if (apm_info.bios.version == 0 || paravirt_enabled() || machine_is_olpc()) { |
7560 | @@ -2288,9 +2341,18 @@ static int __init apm_init(void) | 7768 | @@ -2337,9 +2390,18 @@ static int __init apm_init(void) |
7561 | * This is for buggy BIOS's that refer to (real mode) segment 0x40 | 7769 | * This is for buggy BIOS's that refer to (real mode) segment 0x40 |
7562 | * even though they are called in protected mode. | 7770 | * even though they are called in protected mode. |
7563 | */ | 7771 | */ |
@@ -7576,7 +7784,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/apm_32.c linux-2.6.29.6/arch/x86/kerne | |||
7576 | /* | 7784 | /* |
7577 | * Set up the long jump entry point to the APM BIOS, which is called | 7785 | * Set up the long jump entry point to the APM BIOS, which is called |
7578 | * from inline assembly. | 7786 | * from inline assembly. |
7579 | @@ -2309,6 +2371,11 @@ static int __init apm_init(void) | 7787 | @@ -2358,6 +2420,11 @@ static int __init apm_init(void) |
7580 | * code to that CPU. | 7788 | * code to that CPU. |
7581 | */ | 7789 | */ |
7582 | gdt = get_cpu_gdt_table(0); | 7790 | gdt = get_cpu_gdt_table(0); |
@@ -7588,7 +7796,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/apm_32.c linux-2.6.29.6/arch/x86/kerne | |||
7588 | set_base(gdt[APM_CS >> 3], | 7796 | set_base(gdt[APM_CS >> 3], |
7589 | __va((unsigned long)apm_info.bios.cseg << 4)); | 7797 | __va((unsigned long)apm_info.bios.cseg << 4)); |
7590 | set_base(gdt[APM_CS_16 >> 3], | 7798 | set_base(gdt[APM_CS_16 >> 3], |
7591 | @@ -2316,6 +2383,10 @@ static int __init apm_init(void) | 7799 | @@ -2365,6 +2432,10 @@ static int __init apm_init(void) |
7592 | set_base(gdt[APM_DS >> 3], | 7800 | set_base(gdt[APM_DS >> 3], |
7593 | __va((unsigned long)apm_info.bios.dseg << 4)); | 7801 | __va((unsigned long)apm_info.bios.dseg << 4)); |
7594 | 7802 | ||
@@ -7599,18 +7807,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/apm_32.c linux-2.6.29.6/arch/x86/kerne | |||
7599 | proc_create("apm", 0, NULL, &apm_file_ops); | 7807 | proc_create("apm", 0, NULL, &apm_file_ops); |
7600 | 7808 | ||
7601 | kapmd_task = kthread_create(apm, NULL, "kapmd"); | 7809 | kapmd_task = kthread_create(apm, NULL, "kapmd"); |
7602 | diff -urNp linux-2.6.29.6/arch/x86/kernel/asm-offsets_32.c linux-2.6.29.6/arch/x86/kernel/asm-offsets_32.c | 7810 | diff -urNp linux-2.6.30.4/arch/x86/kernel/asm-offsets_32.c linux-2.6.30.4/arch/x86/kernel/asm-offsets_32.c |
7603 | --- linux-2.6.29.6/arch/x86/kernel/asm-offsets_32.c 2009-07-02 19:41:20.000000000 -0400 | 7811 | --- linux-2.6.30.4/arch/x86/kernel/asm-offsets_32.c 2009-07-24 17:47:51.000000000 -0400 |
7604 | +++ linux-2.6.29.6/arch/x86/kernel/asm-offsets_32.c 2009-07-23 17:34:32.065870632 -0400 | 7812 | +++ linux-2.6.30.4/arch/x86/kernel/asm-offsets_32.c 2009-07-30 09:48:09.939725122 -0400 |
7605 | @@ -100,6 +100,7 @@ void foo(void) | 7813 | @@ -115,6 +115,7 @@ void foo(void) |
7606 | DEFINE(PTRS_PER_PTE, PTRS_PER_PTE); | ||
7607 | DEFINE(PTRS_PER_PMD, PTRS_PER_PMD); | ||
7608 | DEFINE(PTRS_PER_PGD, PTRS_PER_PGD); | ||
7609 | + DEFINE(PERCPU_MODULE_RESERVE, PERCPU_MODULE_RESERVE); | ||
7610 | |||
7611 | OFFSET(crypto_tfm_ctx_offset, crypto_tfm, __crt_ctx); | ||
7612 | |||
7613 | @@ -113,6 +114,7 @@ void foo(void) | ||
7614 | OFFSET(PV_CPU_iret, pv_cpu_ops, iret); | 7814 | OFFSET(PV_CPU_iret, pv_cpu_ops, iret); |
7615 | OFFSET(PV_CPU_irq_enable_sysexit, pv_cpu_ops, irq_enable_sysexit); | 7815 | OFFSET(PV_CPU_irq_enable_sysexit, pv_cpu_ops, irq_enable_sysexit); |
7616 | OFFSET(PV_CPU_read_cr0, pv_cpu_ops, read_cr0); | 7816 | OFFSET(PV_CPU_read_cr0, pv_cpu_ops, read_cr0); |
@@ -7618,10 +7818,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/asm-offsets_32.c linux-2.6.29.6/arch/x | |||
7618 | #endif | 7818 | #endif |
7619 | 7819 | ||
7620 | #ifdef CONFIG_XEN | 7820 | #ifdef CONFIG_XEN |
7621 | diff -urNp linux-2.6.29.6/arch/x86/kernel/asm-offsets_64.c linux-2.6.29.6/arch/x86/kernel/asm-offsets_64.c | 7821 | diff -urNp linux-2.6.30.4/arch/x86/kernel/asm-offsets_64.c linux-2.6.30.4/arch/x86/kernel/asm-offsets_64.c |
7622 | --- linux-2.6.29.6/arch/x86/kernel/asm-offsets_64.c 2009-07-02 19:41:20.000000000 -0400 | 7822 | --- linux-2.6.30.4/arch/x86/kernel/asm-offsets_64.c 2009-07-24 17:47:51.000000000 -0400 |
7623 | +++ linux-2.6.29.6/arch/x86/kernel/asm-offsets_64.c 2009-07-23 17:34:32.065870632 -0400 | 7823 | +++ linux-2.6.30.4/arch/x86/kernel/asm-offsets_64.c 2009-07-30 09:48:09.939725122 -0400 |
7624 | @@ -124,6 +124,7 @@ int main(void) | 7824 | @@ -114,6 +114,7 @@ int main(void) |
7625 | ENTRY(cr8); | 7825 | ENTRY(cr8); |
7626 | BLANK(); | 7826 | BLANK(); |
7627 | #undef ENTRY | 7827 | #undef ENTRY |
@@ -7629,89 +7829,82 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/asm-offsets_64.c linux-2.6.29.6/arch/x | |||
7629 | DEFINE(TSS_ist, offsetof(struct tss_struct, x86_tss.ist)); | 7829 | DEFINE(TSS_ist, offsetof(struct tss_struct, x86_tss.ist)); |
7630 | BLANK(); | 7830 | BLANK(); |
7631 | DEFINE(crypto_tfm_ctx_offset, offsetof(struct crypto_tfm, __crt_ctx)); | 7831 | DEFINE(crypto_tfm_ctx_offset, offsetof(struct crypto_tfm, __crt_ctx)); |
7632 | diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/common.c linux-2.6.29.6/arch/x86/kernel/cpu/common.c | 7832 | diff -urNp linux-2.6.30.4/arch/x86/kernel/cpu/common.c linux-2.6.30.4/arch/x86/kernel/cpu/common.c |
7633 | --- linux-2.6.29.6/arch/x86/kernel/cpu/common.c 2009-07-02 19:41:20.000000000 -0400 | 7833 | --- linux-2.6.30.4/arch/x86/kernel/cpu/common.c 2009-07-24 17:47:51.000000000 -0400 |
7634 | +++ linux-2.6.29.6/arch/x86/kernel/cpu/common.c 2009-07-23 17:34:32.066840916 -0400 | 7834 | +++ linux-2.6.30.4/arch/x86/kernel/cpu/common.c 2009-07-30 09:48:09.941068037 -0400 |
7635 | @@ -2,7 +2,6 @@ | 7835 | @@ -60,60 +60,6 @@ void __init setup_cpu_local_masks(void) |
7636 | #include <linux/kernel.h> | ||
7637 | #include <linux/sched.h> | ||
7638 | #include <linux/string.h> | ||
7639 | -#include <linux/bootmem.h> | ||
7640 | #include <linux/bitops.h> | ||
7641 | #include <linux/module.h> | ||
7642 | #include <linux/kgdb.h> | ||
7643 | @@ -62,59 +61,6 @@ cpumask_t cpu_sibling_setup_map; | ||
7644 | 7836 | ||
7645 | static struct cpu_dev *this_cpu __cpuinitdata; | 7837 | static const struct cpu_dev *this_cpu __cpuinitdata; |
7646 | 7838 | ||
7839 | -DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page) = { .gdt = { | ||
7647 | -#ifdef CONFIG_X86_64 | 7840 | -#ifdef CONFIG_X86_64 |
7648 | -/* We need valid kernel segments for data and code in long mode too | 7841 | - /* |
7649 | - * IRET will check the segment types kkeil 2000/10/28 | 7842 | - * We need valid kernel segments for data and code in long mode too |
7650 | - * Also sysret mandates a special GDT layout | 7843 | - * IRET will check the segment types kkeil 2000/10/28 |
7651 | - */ | 7844 | - * Also sysret mandates a special GDT layout |
7652 | -/* The TLS descriptors are currently at a different place compared to i386. | 7845 | - * |
7653 | - Hopefully nobody expects them at a fixed place (Wine?) */ | 7846 | - * TLS descriptors are currently at a different place compared to i386. |
7654 | -DEFINE_PER_CPU(struct gdt_page, gdt_page) = { .gdt = { | 7847 | - * Hopefully nobody expects them at a fixed place (Wine?) |
7655 | - [GDT_ENTRY_KERNEL32_CS] = { { { 0x0000ffff, 0x00cf9b00 } } }, | 7848 | - */ |
7656 | - [GDT_ENTRY_KERNEL_CS] = { { { 0x0000ffff, 0x00af9b00 } } }, | 7849 | - [GDT_ENTRY_KERNEL32_CS] = { { { 0x0000ffff, 0x00cf9b00 } } }, |
7657 | - [GDT_ENTRY_KERNEL_DS] = { { { 0x0000ffff, 0x00cf9300 } } }, | 7850 | - [GDT_ENTRY_KERNEL_CS] = { { { 0x0000ffff, 0x00af9b00 } } }, |
7658 | - [GDT_ENTRY_DEFAULT_USER32_CS] = { { { 0x0000ffff, 0x00cffb00 } } }, | 7851 | - [GDT_ENTRY_KERNEL_DS] = { { { 0x0000ffff, 0x00cf9300 } } }, |
7659 | - [GDT_ENTRY_DEFAULT_USER_DS] = { { { 0x0000ffff, 0x00cff300 } } }, | 7852 | - [GDT_ENTRY_DEFAULT_USER32_CS] = { { { 0x0000ffff, 0x00cffb00 } } }, |
7660 | - [GDT_ENTRY_DEFAULT_USER_CS] = { { { 0x0000ffff, 0x00affb00 } } }, | 7853 | - [GDT_ENTRY_DEFAULT_USER_DS] = { { { 0x0000ffff, 0x00cff300 } } }, |
7661 | -} }; | 7854 | - [GDT_ENTRY_DEFAULT_USER_CS] = { { { 0x0000ffff, 0x00affb00 } } }, |
7662 | -#else | 7855 | -#else |
7663 | -DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page) = { .gdt = { | 7856 | - [GDT_ENTRY_KERNEL_CS] = { { { 0x0000ffff, 0x00cf9a00 } } }, |
7664 | - [GDT_ENTRY_KERNEL_CS] = { { { 0x0000ffff, 0x00cf9a00 } } }, | 7857 | - [GDT_ENTRY_KERNEL_DS] = { { { 0x0000ffff, 0x00cf9200 } } }, |
7665 | - [GDT_ENTRY_KERNEL_DS] = { { { 0x0000ffff, 0x00cf9200 } } }, | 7858 | - [GDT_ENTRY_DEFAULT_USER_CS] = { { { 0x0000ffff, 0x00cffa00 } } }, |
7666 | - [GDT_ENTRY_DEFAULT_USER_CS] = { { { 0x0000ffff, 0x00cffa00 } } }, | 7859 | - [GDT_ENTRY_DEFAULT_USER_DS] = { { { 0x0000ffff, 0x00cff200 } } }, |
7667 | - [GDT_ENTRY_DEFAULT_USER_DS] = { { { 0x0000ffff, 0x00cff200 } } }, | ||
7668 | - /* | 7860 | - /* |
7669 | - * Segments used for calling PnP BIOS have byte granularity. | 7861 | - * Segments used for calling PnP BIOS have byte granularity. |
7670 | - * They code segments and data segments have fixed 64k limits, | 7862 | - * They code segments and data segments have fixed 64k limits, |
7671 | - * the transfer segment sizes are set at run time. | 7863 | - * the transfer segment sizes are set at run time. |
7672 | - */ | 7864 | - */ |
7673 | - /* 32-bit code */ | 7865 | - /* 32-bit code */ |
7674 | - [GDT_ENTRY_PNPBIOS_CS32] = { { { 0x0000ffff, 0x00409a00 } } }, | 7866 | - [GDT_ENTRY_PNPBIOS_CS32] = { { { 0x0000ffff, 0x00409a00 } } }, |
7675 | - /* 16-bit code */ | 7867 | - /* 16-bit code */ |
7676 | - [GDT_ENTRY_PNPBIOS_CS16] = { { { 0x0000ffff, 0x00009a00 } } }, | 7868 | - [GDT_ENTRY_PNPBIOS_CS16] = { { { 0x0000ffff, 0x00009a00 } } }, |
7677 | - /* 16-bit data */ | 7869 | - /* 16-bit data */ |
7678 | - [GDT_ENTRY_PNPBIOS_DS] = { { { 0x0000ffff, 0x00009200 } } }, | 7870 | - [GDT_ENTRY_PNPBIOS_DS] = { { { 0x0000ffff, 0x00009200 } } }, |
7679 | - /* 16-bit data */ | 7871 | - /* 16-bit data */ |
7680 | - [GDT_ENTRY_PNPBIOS_TS1] = { { { 0x00000000, 0x00009200 } } }, | 7872 | - [GDT_ENTRY_PNPBIOS_TS1] = { { { 0x00000000, 0x00009200 } } }, |
7681 | - /* 16-bit data */ | 7873 | - /* 16-bit data */ |
7682 | - [GDT_ENTRY_PNPBIOS_TS2] = { { { 0x00000000, 0x00009200 } } }, | 7874 | - [GDT_ENTRY_PNPBIOS_TS2] = { { { 0x00000000, 0x00009200 } } }, |
7683 | - /* | 7875 | - /* |
7684 | - * The APM segments have byte granularity and their bases | 7876 | - * The APM segments have byte granularity and their bases |
7685 | - * are set at run time. All have 64k limits. | 7877 | - * are set at run time. All have 64k limits. |
7686 | - */ | 7878 | - */ |
7687 | - /* 32-bit code */ | 7879 | - /* 32-bit code */ |
7688 | - [GDT_ENTRY_APMBIOS_BASE] = { { { 0x0000ffff, 0x00409a00 } } }, | 7880 | - [GDT_ENTRY_APMBIOS_BASE] = { { { 0x0000ffff, 0x00409a00 } } }, |
7689 | - /* 16-bit code */ | 7881 | - /* 16-bit code */ |
7690 | - [GDT_ENTRY_APMBIOS_BASE+1] = { { { 0x0000ffff, 0x00009a00 } } }, | 7882 | - [GDT_ENTRY_APMBIOS_BASE+1] = { { { 0x0000ffff, 0x00009a00 } } }, |
7691 | - /* data */ | 7883 | - /* data */ |
7692 | - [GDT_ENTRY_APMBIOS_BASE+2] = { { { 0x0000ffff, 0x00409200 } } }, | 7884 | - [GDT_ENTRY_APMBIOS_BASE+2] = { { { 0x0000ffff, 0x00409200 } } }, |
7693 | - | 7885 | - |
7694 | - [GDT_ENTRY_ESPFIX_SS] = { { { 0x00000000, 0x00c09200 } } }, | 7886 | - [GDT_ENTRY_ESPFIX_SS] = { { { 0x00000000, 0x00c09200 } } }, |
7695 | - [GDT_ENTRY_PERCPU] = { { { 0x00000000, 0x00000000 } } }, | 7887 | - [GDT_ENTRY_PERCPU] = { { { 0x0000ffff, 0x00cf9200 } } }, |
7696 | -} }; | 7888 | - GDT_STACK_CANARY_INIT |
7697 | -#endif | 7889 | -#endif |
7890 | -} }; | ||
7698 | -EXPORT_PER_CPU_SYMBOL_GPL(gdt_page); | 7891 | -EXPORT_PER_CPU_SYMBOL_GPL(gdt_page); |
7699 | - | 7892 | - |
7700 | #ifdef CONFIG_X86_32 | 7893 | static int __init x86_xsave_setup(char *s) |
7701 | static int cachesize_override __cpuinitdata = -1; | 7894 | { |
7702 | static int disable_x86_serial_nr __cpuinitdata = 1; | 7895 | setup_clear_cpu_cap(X86_FEATURE_XSAVE); |
7703 | @@ -248,7 +194,7 @@ void switch_to_new_gdt(void) | 7896 | @@ -320,7 +266,7 @@ void switch_to_new_gdt(int cpu) |
7704 | { | 7897 | { |
7705 | struct desc_ptr gdt_descr; | 7898 | struct desc_ptr gdt_descr; |
7706 | 7899 | ||
7707 | - gdt_descr.address = (long)get_cpu_gdt_table(smp_processor_id()); | 7900 | - gdt_descr.address = (long)get_cpu_gdt_table(cpu); |
7708 | + gdt_descr.address = (unsigned long)get_cpu_gdt_table(smp_processor_id()); | 7901 | + gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu); |
7709 | gdt_descr.size = GDT_SIZE - 1; | 7902 | gdt_descr.size = GDT_SIZE - 1; |
7710 | load_gdt(&gdt_descr); | 7903 | load_gdt(&gdt_descr); |
7711 | #ifdef CONFIG_X86_32 | 7904 | /* Reload the per-cpu base */ |
7712 | @@ -708,6 +654,10 @@ static void __cpuinit identify_cpu(struc | 7905 | @@ -796,6 +742,10 @@ static void __cpuinit identify_cpu(struc |
7713 | * we do "generic changes." | 7906 | /* Filter out anything that depends on CPUID levels we don't have */ |
7714 | */ | 7907 | filter_cpuid_features(c, true); |
7715 | 7908 | ||
7716 | +#if defined(CONFIG_PAX_SEGMEXEC) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF) | 7909 | +#if defined(CONFIG_PAX_SEGMEXEC) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF) |
7717 | + setup_clear_cpu_cap(X86_FEATURE_SEP); | 7910 | + setup_clear_cpu_cap(X86_FEATURE_SEP); |
@@ -7719,26 +7912,26 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/common.c linux-2.6.29.6/arch/x86/k | |||
7719 | + | 7912 | + |
7720 | /* If the model name is still unset, do table lookup. */ | 7913 | /* If the model name is still unset, do table lookup. */ |
7721 | if (!c->x86_model_id[0]) { | 7914 | if (!c->x86_model_id[0]) { |
7722 | char *p; | 7915 | const char *p; |
7723 | @@ -880,7 +830,7 @@ __setup("clearcpuid=", setup_disablecpui | 7916 | @@ -972,7 +922,7 @@ static __init int setup_disablecpuid(cha |
7724 | struct x8664_pda **_cpu_pda __read_mostly; | 7917 | __setup("clearcpuid=", setup_disablecpuid); |
7725 | EXPORT_SYMBOL(_cpu_pda); | ||
7726 | 7918 | ||
7919 | #ifdef CONFIG_X86_64 | ||
7727 | -struct desc_ptr idt_descr = { 256 * 16 - 1, (unsigned long) idt_table }; | 7920 | -struct desc_ptr idt_descr = { 256 * 16 - 1, (unsigned long) idt_table }; |
7728 | +struct desc_ptr idt_descr __read_only = { 256 * 16 - 1, (unsigned long) idt_table }; | 7921 | +struct desc_ptr idt_descr __read_only = { 256 * 16 - 1, (unsigned long) idt_table }; |
7729 | 7922 | ||
7730 | static char boot_cpu_stack[IRQSTACKSIZE] __page_aligned_bss; | 7923 | DEFINE_PER_CPU_FIRST(union irq_stack_union, |
7924 | irq_stack_union) __aligned(PAGE_SIZE); | ||
7925 | @@ -1082,7 +1032,7 @@ void __cpuinit cpu_init(void) | ||
7926 | int i; | ||
7731 | 7927 | ||
7732 | @@ -979,7 +929,7 @@ struct pt_regs * __cpuinit idle_regs(str | 7928 | cpu = stack_smp_processor_id(); |
7733 | void __cpuinit cpu_init(void) | 7929 | - t = &per_cpu(init_tss, cpu); |
7734 | { | 7930 | + t = init_tss + cpu; |
7735 | int cpu = stack_smp_processor_id(); | 7931 | orig_ist = &per_cpu(orig_ist, cpu); |
7736 | - struct tss_struct *t = &per_cpu(init_tss, cpu); | 7932 | |
7737 | + struct tss_struct *t = init_tss + cpu; | 7933 | #ifdef CONFIG_NUMA |
7738 | struct orig_ist *orig_ist = &per_cpu(orig_ist, cpu); | 7934 | @@ -1180,7 +1130,7 @@ void __cpuinit cpu_init(void) |
7739 | unsigned long v; | ||
7740 | char *estacks = NULL; | ||
7741 | @@ -1100,7 +1050,7 @@ void __cpuinit cpu_init(void) | ||
7742 | { | 7935 | { |
7743 | int cpu = smp_processor_id(); | 7936 | int cpu = smp_processor_id(); |
7744 | struct task_struct *curr = current; | 7937 | struct task_struct *curr = current; |
@@ -7747,10 +7940,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/common.c linux-2.6.29.6/arch/x86/k | |||
7747 | struct thread_struct *thread = &curr->thread; | 7940 | struct thread_struct *thread = &curr->thread; |
7748 | 7941 | ||
7749 | if (cpumask_test_and_set_cpu(cpu, cpu_initialized_mask)) { | 7942 | if (cpumask_test_and_set_cpu(cpu, cpu_initialized_mask)) { |
7750 | diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c | 7943 | diff -urNp linux-2.6.30.4/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c linux-2.6.30.4/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c |
7751 | --- linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2009-07-02 19:41:20.000000000 -0400 | 7944 | --- linux-2.6.30.4/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2009-07-24 17:47:51.000000000 -0400 |
7752 | +++ linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2009-07-23 17:34:32.066840916 -0400 | 7945 | +++ linux-2.6.30.4/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2009-07-30 09:48:09.941068037 -0400 |
7753 | @@ -581,7 +581,7 @@ static const struct dmi_system_id sw_any | 7946 | @@ -590,7 +590,7 @@ static const struct dmi_system_id sw_any |
7754 | DMI_MATCH(DMI_PRODUCT_NAME, "X6DLP"), | 7947 | DMI_MATCH(DMI_PRODUCT_NAME, "X6DLP"), |
7755 | }, | 7948 | }, |
7756 | }, | 7949 | }, |
@@ -7759,9 +7952,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c linux-2.6.2 | |||
7759 | }; | 7952 | }; |
7760 | #endif | 7953 | #endif |
7761 | 7954 | ||
7762 | diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c | 7955 | diff -urNp linux-2.6.30.4/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c linux-2.6.30.4/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c |
7763 | --- linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2009-07-02 19:41:20.000000000 -0400 | 7956 | --- linux-2.6.30.4/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2009-07-24 17:47:51.000000000 -0400 |
7764 | +++ linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2009-07-23 17:34:32.066840916 -0400 | 7957 | +++ linux-2.6.30.4/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2009-07-30 09:48:09.941727851 -0400 |
7765 | @@ -225,7 +225,7 @@ static struct cpu_model models[] = | 7958 | @@ -225,7 +225,7 @@ static struct cpu_model models[] = |
7766 | { &cpu_ids[CPU_MP4HT_D0], NULL, 0, NULL }, | 7959 | { &cpu_ids[CPU_MP4HT_D0], NULL, 0, NULL }, |
7767 | { &cpu_ids[CPU_MP4HT_E0], NULL, 0, NULL }, | 7960 | { &cpu_ids[CPU_MP4HT_E0], NULL, 0, NULL }, |
@@ -7771,10 +7964,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c linux | |||
7771 | }; | 7964 | }; |
7772 | #undef _BANIAS | 7965 | #undef _BANIAS |
7773 | #undef BANIAS | 7966 | #undef BANIAS |
7774 | diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/intel.c linux-2.6.29.6/arch/x86/kernel/cpu/intel.c | 7967 | diff -urNp linux-2.6.30.4/arch/x86/kernel/cpu/intel.c linux-2.6.30.4/arch/x86/kernel/cpu/intel.c |
7775 | --- linux-2.6.29.6/arch/x86/kernel/cpu/intel.c 2009-07-02 19:41:20.000000000 -0400 | 7968 | --- linux-2.6.30.4/arch/x86/kernel/cpu/intel.c 2009-07-24 17:47:51.000000000 -0400 |
7776 | +++ linux-2.6.29.6/arch/x86/kernel/cpu/intel.c 2009-07-23 17:34:32.068000886 -0400 | 7969 | +++ linux-2.6.30.4/arch/x86/kernel/cpu/intel.c 2009-07-30 09:48:09.941727851 -0400 |
7777 | @@ -94,7 +94,7 @@ static void __cpuinit trap_init_f00f_bug | 7970 | @@ -117,7 +117,7 @@ static void __cpuinit trap_init_f00f_bug |
7778 | * Update the IDT descriptor and reload the IDT so that | 7971 | * Update the IDT descriptor and reload the IDT so that |
7779 | * it uses the read-only mapped virtual address. | 7972 | * it uses the read-only mapped virtual address. |
7780 | */ | 7973 | */ |
@@ -7783,20 +7976,20 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/intel.c linux-2.6.29.6/arch/x86/ke | |||
7783 | load_idt(&idt_descr); | 7976 | load_idt(&idt_descr); |
7784 | } | 7977 | } |
7785 | #endif | 7978 | #endif |
7786 | diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/mcheck/mce_64.c linux-2.6.29.6/arch/x86/kernel/cpu/mcheck/mce_64.c | 7979 | diff -urNp linux-2.6.30.4/arch/x86/kernel/cpu/mcheck/mce_64.c linux-2.6.30.4/arch/x86/kernel/cpu/mcheck/mce_64.c |
7787 | --- linux-2.6.29.6/arch/x86/kernel/cpu/mcheck/mce_64.c 2009-07-02 19:41:20.000000000 -0400 | 7980 | --- linux-2.6.30.4/arch/x86/kernel/cpu/mcheck/mce_64.c 2009-07-24 17:47:51.000000000 -0400 |
7788 | +++ linux-2.6.29.6/arch/x86/kernel/cpu/mcheck/mce_64.c 2009-07-23 17:34:32.068000886 -0400 | 7981 | +++ linux-2.6.30.4/arch/x86/kernel/cpu/mcheck/mce_64.c 2009-07-30 09:48:09.941727851 -0400 |
7789 | @@ -678,6 +678,7 @@ static struct miscdevice mce_log_device | 7982 | @@ -830,6 +830,7 @@ static struct miscdevice mce_log_device |
7790 | MISC_MCELOG_MINOR, | 7983 | MISC_MCELOG_MINOR, |
7791 | "mcelog", | 7984 | "mcelog", |
7792 | &mce_chrdev_ops, | 7985 | &mce_chrdev_ops, |
7793 | + {NULL, NULL}, NULL, NULL | 7986 | + {NULL, NULL}, NULL, NULL |
7794 | }; | 7987 | }; |
7795 | 7988 | ||
7796 | static unsigned long old_cr4 __initdata; | 7989 | /* |
7797 | diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/mtrr/generic.c linux-2.6.29.6/arch/x86/kernel/cpu/mtrr/generic.c | 7990 | diff -urNp linux-2.6.30.4/arch/x86/kernel/cpu/mtrr/generic.c linux-2.6.30.4/arch/x86/kernel/cpu/mtrr/generic.c |
7798 | --- linux-2.6.29.6/arch/x86/kernel/cpu/mtrr/generic.c 2009-07-02 19:41:20.000000000 -0400 | 7991 | --- linux-2.6.30.4/arch/x86/kernel/cpu/mtrr/generic.c 2009-07-24 17:47:51.000000000 -0400 |
7799 | +++ linux-2.6.29.6/arch/x86/kernel/cpu/mtrr/generic.c 2009-07-23 17:34:32.068000886 -0400 | 7992 | +++ linux-2.6.30.4/arch/x86/kernel/cpu/mtrr/generic.c 2009-07-30 09:48:09.942991706 -0400 |
7800 | @@ -23,14 +23,14 @@ static struct fixed_range_block fixed_ra | 7993 | @@ -23,14 +23,14 @@ static struct fixed_range_block fixed_ra |
7801 | { MTRRfix64K_00000_MSR, 1 }, /* one 64k MTRR */ | 7994 | { MTRRfix64K_00000_MSR, 1 }, /* one 64k MTRR */ |
7802 | { MTRRfix16K_80000_MSR, 2 }, /* two 16k MTRRs */ | 7995 | { MTRRfix16K_80000_MSR, 2 }, /* two 16k MTRRs */ |
@@ -7813,11 +8006,11 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/cpu/mtrr/generic.c linux-2.6.29.6/arch | |||
7813 | +struct mtrr_state_type mtrr_state; | 8006 | +struct mtrr_state_type mtrr_state; |
7814 | EXPORT_SYMBOL_GPL(mtrr_state); | 8007 | EXPORT_SYMBOL_GPL(mtrr_state); |
7815 | 8008 | ||
7816 | static int __initdata mtrr_show; | 8009 | /** |
7817 | diff -urNp linux-2.6.29.6/arch/x86/kernel/crash.c linux-2.6.29.6/arch/x86/kernel/crash.c | 8010 | diff -urNp linux-2.6.30.4/arch/x86/kernel/crash.c linux-2.6.30.4/arch/x86/kernel/crash.c |
7818 | --- linux-2.6.29.6/arch/x86/kernel/crash.c 2009-07-02 19:41:20.000000000 -0400 | 8011 | --- linux-2.6.30.4/arch/x86/kernel/crash.c 2009-07-24 17:47:51.000000000 -0400 |
7819 | +++ linux-2.6.29.6/arch/x86/kernel/crash.c 2009-07-23 17:34:32.068000886 -0400 | 8012 | +++ linux-2.6.30.4/arch/x86/kernel/crash.c 2009-07-30 09:48:09.942991706 -0400 |
7820 | @@ -43,7 +43,7 @@ static void kdump_nmi_callback(int cpu, | 8013 | @@ -41,7 +41,7 @@ static void kdump_nmi_callback(int cpu, |
7821 | regs = args->regs; | 8014 | regs = args->regs; |
7822 | 8015 | ||
7823 | #ifdef CONFIG_X86_32 | 8016 | #ifdef CONFIG_X86_32 |
@@ -7826,9 +8019,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/crash.c linux-2.6.29.6/arch/x86/kernel | |||
7826 | crash_fixup_ss_esp(&fixed_regs, regs); | 8019 | crash_fixup_ss_esp(&fixed_regs, regs); |
7827 | regs = &fixed_regs; | 8020 | regs = &fixed_regs; |
7828 | } | 8021 | } |
7829 | diff -urNp linux-2.6.29.6/arch/x86/kernel/doublefault_32.c linux-2.6.29.6/arch/x86/kernel/doublefault_32.c | 8022 | diff -urNp linux-2.6.30.4/arch/x86/kernel/doublefault_32.c linux-2.6.30.4/arch/x86/kernel/doublefault_32.c |
7830 | --- linux-2.6.29.6/arch/x86/kernel/doublefault_32.c 2009-07-02 19:41:20.000000000 -0400 | 8023 | --- linux-2.6.30.4/arch/x86/kernel/doublefault_32.c 2009-07-24 17:47:51.000000000 -0400 |
7831 | +++ linux-2.6.29.6/arch/x86/kernel/doublefault_32.c 2009-07-23 17:34:32.068803825 -0400 | 8024 | +++ linux-2.6.30.4/arch/x86/kernel/doublefault_32.c 2009-07-30 09:48:09.942991706 -0400 |
7832 | @@ -11,7 +11,7 @@ | 8025 | @@ -11,7 +11,7 @@ |
7833 | 8026 | ||
7834 | #define DOUBLEFAULT_STACKSIZE (1024) | 8027 | #define DOUBLEFAULT_STACKSIZE (1024) |
@@ -7860,9 +8053,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/doublefault_32.c linux-2.6.29.6/arch/x | |||
7860 | .fs = __KERNEL_PERCPU, | 8053 | .fs = __KERNEL_PERCPU, |
7861 | 8054 | ||
7862 | .__cr3 = __pa_nodebug(swapper_pg_dir), | 8055 | .__cr3 = __pa_nodebug(swapper_pg_dir), |
7863 | diff -urNp linux-2.6.29.6/arch/x86/kernel/dumpstack_32.c linux-2.6.29.6/arch/x86/kernel/dumpstack_32.c | 8056 | diff -urNp linux-2.6.30.4/arch/x86/kernel/dumpstack_32.c linux-2.6.30.4/arch/x86/kernel/dumpstack_32.c |
7864 | --- linux-2.6.29.6/arch/x86/kernel/dumpstack_32.c 2009-07-02 19:41:20.000000000 -0400 | 8057 | --- linux-2.6.30.4/arch/x86/kernel/dumpstack_32.c 2009-07-24 17:47:51.000000000 -0400 |
7865 | +++ linux-2.6.29.6/arch/x86/kernel/dumpstack_32.c 2009-07-23 17:34:32.068803825 -0400 | 8058 | +++ linux-2.6.30.4/arch/x86/kernel/dumpstack_32.c 2009-07-30 09:48:09.943696998 -0400 |
7866 | @@ -107,11 +107,12 @@ void show_registers(struct pt_regs *regs | 8059 | @@ -107,11 +107,12 @@ void show_registers(struct pt_regs *regs |
7867 | * When in-kernel, we also print out the stack and code at the | 8060 | * When in-kernel, we also print out the stack and code at the |
7868 | * time of the fault.. | 8061 | * time of the fault.. |
@@ -7907,10 +8100,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/dumpstack_32.c linux-2.6.29.6/arch/x86 | |||
7907 | if (ip < PAGE_OFFSET) | 8100 | if (ip < PAGE_OFFSET) |
7908 | return 0; | 8101 | return 0; |
7909 | if (probe_kernel_address((unsigned short *)ip, ud2)) | 8102 | if (probe_kernel_address((unsigned short *)ip, ud2)) |
7910 | diff -urNp linux-2.6.29.6/arch/x86/kernel/dumpstack.c linux-2.6.29.6/arch/x86/kernel/dumpstack.c | 8103 | diff -urNp linux-2.6.30.4/arch/x86/kernel/dumpstack.c linux-2.6.30.4/arch/x86/kernel/dumpstack.c |
7911 | --- linux-2.6.29.6/arch/x86/kernel/dumpstack.c 2009-07-02 19:41:20.000000000 -0400 | 8104 | --- linux-2.6.30.4/arch/x86/kernel/dumpstack.c 2009-07-24 17:47:51.000000000 -0400 |
7912 | +++ linux-2.6.29.6/arch/x86/kernel/dumpstack.c 2009-07-23 17:34:32.068803825 -0400 | 8105 | +++ linux-2.6.30.4/arch/x86/kernel/dumpstack.c 2009-07-30 09:48:09.942991706 -0400 |
7913 | @@ -178,7 +178,7 @@ void dump_stack(void) | 8106 | @@ -180,7 +180,7 @@ void dump_stack(void) |
7914 | #endif | 8107 | #endif |
7915 | 8108 | ||
7916 | printk("Pid: %d, comm: %.20s %s %s %.*s\n", | 8109 | printk("Pid: %d, comm: %.20s %s %s %.*s\n", |
@@ -7919,7 +8112,16 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/dumpstack.c linux-2.6.29.6/arch/x86/ke | |||
7919 | init_utsname()->release, | 8112 | init_utsname()->release, |
7920 | (int)strcspn(init_utsname()->version, " "), | 8113 | (int)strcspn(init_utsname()->version, " "), |
7921 | init_utsname()->version); | 8114 | init_utsname()->version); |
7922 | @@ -288,7 +288,7 @@ void die(const char *str, struct pt_regs | 8115 | @@ -241,7 +241,7 @@ void __kprobes oops_end(unsigned long fl |
8116 | panic("Fatal exception in interrupt"); | ||
8117 | if (panic_on_oops) | ||
8118 | panic("Fatal exception"); | ||
8119 | - do_exit(signr); | ||
8120 | + do_group_exit(signr); | ||
8121 | } | ||
8122 | |||
8123 | int __kprobes __die(const char *str, struct pt_regs *regs, long err) | ||
8124 | @@ -295,7 +295,7 @@ void die(const char *str, struct pt_regs | ||
7923 | unsigned long flags = oops_begin(); | 8125 | unsigned long flags = oops_begin(); |
7924 | int sig = SIGSEGV; | 8126 | int sig = SIGSEGV; |
7925 | 8127 | ||
@@ -7928,10 +8130,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/dumpstack.c linux-2.6.29.6/arch/x86/ke | |||
7928 | report_bug(regs->ip, regs); | 8130 | report_bug(regs->ip, regs); |
7929 | 8131 | ||
7930 | if (__die(str, regs, err)) | 8132 | if (__die(str, regs, err)) |
7931 | diff -urNp linux-2.6.29.6/arch/x86/kernel/e820.c linux-2.6.29.6/arch/x86/kernel/e820.c | 8133 | diff -urNp linux-2.6.30.4/arch/x86/kernel/e820.c linux-2.6.30.4/arch/x86/kernel/e820.c |
7932 | --- linux-2.6.29.6/arch/x86/kernel/e820.c 2009-07-02 19:41:20.000000000 -0400 | 8134 | --- linux-2.6.30.4/arch/x86/kernel/e820.c 2009-07-24 17:47:51.000000000 -0400 |
7933 | +++ linux-2.6.29.6/arch/x86/kernel/e820.c 2009-07-23 17:34:32.068803825 -0400 | 8135 | +++ linux-2.6.30.4/arch/x86/kernel/e820.c 2009-07-30 09:48:09.943696998 -0400 |
7934 | @@ -698,7 +698,10 @@ struct early_res { | 8136 | @@ -739,7 +739,10 @@ struct early_res { |
7935 | }; | 8137 | }; |
7936 | static struct early_res early_res[MAX_EARLY_RES] __initdata = { | 8138 | static struct early_res early_res[MAX_EARLY_RES] __initdata = { |
7937 | { 0, PAGE_SIZE, "BIOS data page" }, /* BIOS data page */ | 8139 | { 0, PAGE_SIZE, "BIOS data page" }, /* BIOS data page */ |
@@ -7943,9 +8145,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/e820.c linux-2.6.29.6/arch/x86/kernel/ | |||
7943 | }; | 8145 | }; |
7944 | 8146 | ||
7945 | static int __init find_overlapped_early(u64 start, u64 end) | 8147 | static int __init find_overlapped_early(u64 start, u64 end) |
7946 | diff -urNp linux-2.6.29.6/arch/x86/kernel/efi_32.c linux-2.6.29.6/arch/x86/kernel/efi_32.c | 8148 | diff -urNp linux-2.6.30.4/arch/x86/kernel/efi_32.c linux-2.6.30.4/arch/x86/kernel/efi_32.c |
7947 | --- linux-2.6.29.6/arch/x86/kernel/efi_32.c 2009-07-02 19:41:20.000000000 -0400 | 8149 | --- linux-2.6.30.4/arch/x86/kernel/efi_32.c 2009-07-24 17:47:51.000000000 -0400 |
7948 | +++ linux-2.6.29.6/arch/x86/kernel/efi_32.c 2009-07-23 17:34:32.068803825 -0400 | 8150 | +++ linux-2.6.30.4/arch/x86/kernel/efi_32.c 2009-07-30 09:48:09.943696998 -0400 |
7949 | @@ -38,70 +38,38 @@ | 8151 | @@ -38,70 +38,38 @@ |
7950 | */ | 8152 | */ |
7951 | 8153 | ||
@@ -8026,15 +8228,15 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/efi_32.c linux-2.6.29.6/arch/x86/kerne | |||
8026 | 8228 | ||
8027 | /* | 8229 | /* |
8028 | * After the lock is released, the original page table is restored. | 8230 | * After the lock is released, the original page table is restored. |
8029 | diff -urNp linux-2.6.29.6/arch/x86/kernel/efi_stub_32.S linux-2.6.29.6/arch/x86/kernel/efi_stub_32.S | 8231 | diff -urNp linux-2.6.30.4/arch/x86/kernel/efi_stub_32.S linux-2.6.30.4/arch/x86/kernel/efi_stub_32.S |
8030 | --- linux-2.6.29.6/arch/x86/kernel/efi_stub_32.S 2009-07-02 19:41:20.000000000 -0400 | 8232 | --- linux-2.6.30.4/arch/x86/kernel/efi_stub_32.S 2009-07-24 17:47:51.000000000 -0400 |
8031 | +++ linux-2.6.29.6/arch/x86/kernel/efi_stub_32.S 2009-07-23 17:34:32.068803825 -0400 | 8233 | +++ linux-2.6.30.4/arch/x86/kernel/efi_stub_32.S 2009-07-30 09:48:09.944948217 -0400 |
8032 | @@ -6,6 +6,7 @@ | 8234 | @@ -6,6 +6,7 @@ |
8033 | */ | 8235 | */ |
8034 | 8236 | ||
8035 | #include <linux/linkage.h> | 8237 | #include <linux/linkage.h> |
8036 | +#include <linux/init.h> | 8238 | +#include <linux/init.h> |
8037 | #include <asm/page.h> | 8239 | #include <asm/page_types.h> |
8038 | 8240 | ||
8039 | /* | 8241 | /* |
8040 | @@ -20,7 +21,7 @@ | 8242 | @@ -20,7 +21,7 @@ |
@@ -8085,7 +8287,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/efi_stub_32.S linux-2.6.29.6/arch/x86/ | |||
8085 | /* | 8287 | /* |
8086 | * 6. After EFI runtime service returns, control will return to | 8288 | * 6. After EFI runtime service returns, control will return to |
8087 | * following instruction. We'd better readjust stack pointer first. | 8289 | * following instruction. We'd better readjust stack pointer first. |
8088 | @@ -88,34 +80,27 @@ ENTRY(efi_call_phys) | 8290 | @@ -88,35 +80,28 @@ ENTRY(efi_call_phys) |
8089 | movl %cr0, %edx | 8291 | movl %cr0, %edx |
8090 | orl $0x80000000, %edx | 8292 | orl $0x80000000, %edx |
8091 | movl %edx, %cr0 | 8293 | movl %edx, %cr0 |
@@ -8119,6 +8321,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/efi_stub_32.S linux-2.6.29.6/arch/x86/ | |||
8119 | - pushl %ecx | 8321 | - pushl %ecx |
8120 | - ret | 8322 | - ret |
8121 | + jmpl *(saved_return_addr) | 8323 | + jmpl *(saved_return_addr) |
8324 | ENDPROC(efi_call_phys) | ||
8122 | .previous | 8325 | .previous |
8123 | 8326 | ||
8124 | -.data | 8327 | -.data |
@@ -8126,47 +8329,50 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/efi_stub_32.S linux-2.6.29.6/arch/x86/ | |||
8126 | saved_return_addr: | 8329 | saved_return_addr: |
8127 | .long 0 | 8330 | .long 0 |
8128 | efi_rt_function_ptr: | 8331 | efi_rt_function_ptr: |
8129 | diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/kernel/entry_32.S | 8332 | diff -urNp linux-2.6.30.4/arch/x86/kernel/entry_32.S linux-2.6.30.4/arch/x86/kernel/entry_32.S |
8130 | --- linux-2.6.29.6/arch/x86/kernel/entry_32.S 2009-07-02 19:41:20.000000000 -0400 | 8333 | --- linux-2.6.30.4/arch/x86/kernel/entry_32.S 2009-07-24 17:47:51.000000000 -0400 |
8131 | +++ linux-2.6.29.6/arch/x86/kernel/entry_32.S 2009-07-23 17:34:32.069868390 -0400 | 8334 | +++ linux-2.6.30.4/arch/x86/kernel/entry_32.S 2009-07-30 09:48:09.945662533 -0400 |
8132 | @@ -101,7 +101,7 @@ | 8335 | @@ -192,7 +192,7 @@ |
8133 | #define resume_userspace_sig resume_userspace | 8336 | |
8134 | #endif | 8337 | #endif /* CONFIG_X86_32_LAZY_GS */ |
8135 | 8338 | ||
8136 | -#define SAVE_ALL \ | 8339 | -.macro SAVE_ALL |
8137 | +#define __SAVE_ALL(_DS) \ | 8340 | +.macro __SAVE_ALL _DS |
8138 | cld; \ | 8341 | cld |
8139 | pushl %fs; \ | 8342 | PUSH_GS |
8140 | CFI_ADJUST_CFA_OFFSET 4;\ | 8343 | pushl %fs |
8141 | @@ -133,12 +133,26 @@ | 8344 | @@ -225,7 +225,7 @@ |
8142 | pushl %ebx; \ | 8345 | pushl %ebx |
8143 | CFI_ADJUST_CFA_OFFSET 4;\ | 8346 | CFI_ADJUST_CFA_OFFSET 4 |
8144 | CFI_REL_OFFSET ebx, 0;\ | 8347 | CFI_REL_OFFSET ebx, 0 |
8145 | - movl $(__USER_DS), %edx; \ | 8348 | - movl $(__USER_DS), %edx |
8146 | + movl $(_DS), %edx; \ | 8349 | + movl $\_DS, %edx |
8147 | movl %edx, %ds; \ | 8350 | movl %edx, %ds |
8148 | movl %edx, %es; \ | 8351 | movl %edx, %es |
8149 | movl $(__KERNEL_PERCPU), %edx; \ | 8352 | movl $(__KERNEL_PERCPU), %edx |
8150 | movl %edx, %fs | 8353 | @@ -233,6 +233,21 @@ |
8151 | 8354 | SET_KERNEL_GS %edx | |
8355 | .endm | ||
8356 | |||
8357 | +.macro SAVE_ALL | ||
8152 | +#ifdef CONFIG_PAX_KERNEXEC | 8358 | +#ifdef CONFIG_PAX_KERNEXEC |
8153 | +#define SAVE_ALL \ | 8359 | + __SAVE_ALL __KERNEL_DS |
8154 | + __SAVE_ALL(__KERNEL_DS); \ | 8360 | + GET_CR0_INTO_EDX; |
8155 | + GET_CR0_INTO_EDX; \ | 8361 | + movl %edx, %esi; |
8156 | + movl %edx, %esi; \ | 8362 | + orl $X86_CR0_WP, %edx; |
8157 | + orl $X86_CR0_WP, %edx; \ | 8363 | + xorl %edx, %esi; |
8158 | + xorl %edx, %esi; \ | ||
8159 | + SET_CR0_FROM_EDX | 8364 | + SET_CR0_FROM_EDX |
8160 | +#elif defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF) | 8365 | +#elif defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF) |
8161 | +#define SAVE_ALL __SAVE_ALL(__KERNEL_DS) | 8366 | + __SAVE_ALL __KERNEL_DS |
8162 | +#else | 8367 | +#else |
8163 | +#define SAVE_ALL __SAVE_ALL(__USER_DS) | 8368 | + __SAVE_ALL __USER_DS |
8164 | +#endif | 8369 | +#endif |
8370 | +.endm | ||
8165 | + | 8371 | + |
8166 | #define RESTORE_INT_REGS \ | 8372 | .macro RESTORE_INT_REGS |
8167 | popl %ebx; \ | 8373 | popl %ebx |
8168 | CFI_ADJUST_CFA_OFFSET -4;\ | 8374 | CFI_ADJUST_CFA_OFFSET -4 |
8169 | @@ -229,6 +243,11 @@ ENTRY(ret_from_fork) | 8375 | @@ -330,6 +345,11 @@ ENTRY(ret_from_fork) |
8170 | CFI_ADJUST_CFA_OFFSET 4 | 8376 | CFI_ADJUST_CFA_OFFSET 4 |
8171 | popfl | 8377 | popfl |
8172 | CFI_ADJUST_CFA_OFFSET -4 | 8378 | CFI_ADJUST_CFA_OFFSET -4 |
@@ -8178,7 +8384,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/ker | |||
8178 | jmp syscall_exit | 8384 | jmp syscall_exit |
8179 | CFI_ENDPROC | 8385 | CFI_ENDPROC |
8180 | END(ret_from_fork) | 8386 | END(ret_from_fork) |
8181 | @@ -252,7 +271,17 @@ check_userspace: | 8387 | @@ -353,7 +373,17 @@ check_userspace: |
8182 | movb PT_CS(%esp), %al | 8388 | movb PT_CS(%esp), %al |
8183 | andl $(X86_EFLAGS_VM | SEGMENT_RPL_MASK), %eax | 8389 | andl $(X86_EFLAGS_VM | SEGMENT_RPL_MASK), %eax |
8184 | cmpl $USER_RPL, %eax | 8390 | cmpl $USER_RPL, %eax |
@@ -8196,7 +8402,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/ker | |||
8196 | 8402 | ||
8197 | ENTRY(resume_userspace) | 8403 | ENTRY(resume_userspace) |
8198 | LOCKDEP_SYS_EXIT | 8404 | LOCKDEP_SYS_EXIT |
8199 | @@ -314,10 +343,9 @@ sysenter_past_esp: | 8405 | @@ -415,10 +445,9 @@ sysenter_past_esp: |
8200 | /*CFI_REL_OFFSET cs, 0*/ | 8406 | /*CFI_REL_OFFSET cs, 0*/ |
8201 | /* | 8407 | /* |
8202 | * Push current_thread_info()->sysenter_return to the stack. | 8408 | * Push current_thread_info()->sysenter_return to the stack. |
@@ -8209,7 +8415,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/ker | |||
8209 | CFI_ADJUST_CFA_OFFSET 4 | 8415 | CFI_ADJUST_CFA_OFFSET 4 |
8210 | CFI_REL_OFFSET eip, 0 | 8416 | CFI_REL_OFFSET eip, 0 |
8211 | 8417 | ||
8212 | @@ -330,9 +358,19 @@ sysenter_past_esp: | 8418 | @@ -431,9 +460,19 @@ sysenter_past_esp: |
8213 | * Load the potential sixth argument from user stack. | 8419 | * Load the potential sixth argument from user stack. |
8214 | * Careful about security. | 8420 | * Careful about security. |
8215 | */ | 8421 | */ |
@@ -8229,8 +8435,8 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/ker | |||
8229 | movl %ebp,PT_EBP(%esp) | 8435 | movl %ebp,PT_EBP(%esp) |
8230 | .section __ex_table,"a" | 8436 | .section __ex_table,"a" |
8231 | .align 4 | 8437 | .align 4 |
8232 | @@ -356,12 +394,23 @@ sysenter_do_call: | 8438 | @@ -456,12 +495,23 @@ sysenter_do_call: |
8233 | testw $_TIF_ALLWORK_MASK, %cx | 8439 | testl $_TIF_ALLWORK_MASK, %ecx |
8234 | jne sysexit_audit | 8440 | jne sysexit_audit |
8235 | sysenter_exit: | 8441 | sysenter_exit: |
8236 | + | 8442 | + |
@@ -8250,10 +8456,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/ker | |||
8250 | 1: mov PT_FS(%esp), %fs | 8456 | 1: mov PT_FS(%esp), %fs |
8251 | +2: mov PT_DS(%esp), %ds | 8457 | +2: mov PT_DS(%esp), %ds |
8252 | +3: mov PT_ES(%esp), %es | 8458 | +3: mov PT_ES(%esp), %es |
8459 | PTGS_TO_GS | ||
8253 | ENABLE_INTERRUPTS_SYSEXIT | 8460 | ENABLE_INTERRUPTS_SYSEXIT |
8254 | 8461 | ||
8255 | #ifdef CONFIG_AUDITSYSCALL | 8462 | @@ -505,11 +555,17 @@ sysexit_audit: |
8256 | @@ -404,11 +453,17 @@ sysexit_audit: | ||
8257 | 8463 | ||
8258 | CFI_ENDPROC | 8464 | CFI_ENDPROC |
8259 | .pushsection .fixup,"ax" | 8465 | .pushsection .fixup,"ax" |
@@ -8271,10 +8477,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/ker | |||
8271 | + .long 2b,5b | 8477 | + .long 2b,5b |
8272 | + .long 3b,6b | 8478 | + .long 3b,6b |
8273 | .popsection | 8479 | .popsection |
8480 | PTGS_TO_GS_EX | ||
8274 | ENDPROC(ia32_sysenter_target) | 8481 | ENDPROC(ia32_sysenter_target) |
8275 | 8482 | @@ -539,6 +595,10 @@ syscall_exit: | |
8276 | @@ -438,6 +493,10 @@ syscall_exit: | 8483 | testl $_TIF_ALLWORK_MASK, %ecx # current->work |
8277 | testw $_TIF_ALLWORK_MASK, %cx # current->work | ||
8278 | jne syscall_exit_work | 8484 | jne syscall_exit_work |
8279 | 8485 | ||
8280 | +#ifdef CONFIG_PAX_RANDKSTACK | 8486 | +#ifdef CONFIG_PAX_RANDKSTACK |
@@ -8284,7 +8490,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/ker | |||
8284 | restore_all: | 8490 | restore_all: |
8285 | movl PT_EFLAGS(%esp), %eax # mix EFLAGS, SS and CS | 8491 | movl PT_EFLAGS(%esp), %eax # mix EFLAGS, SS and CS |
8286 | # Warning: PT_OLDSS(%esp) contains the wrong/random values if we | 8492 | # Warning: PT_OLDSS(%esp) contains the wrong/random values if we |
8287 | @@ -531,25 +590,19 @@ work_resched: | 8493 | @@ -631,25 +691,19 @@ work_resched: |
8288 | 8494 | ||
8289 | work_notifysig: # deal with pending signals and | 8495 | work_notifysig: # deal with pending signals and |
8290 | # notify-resume requests | 8496 | # notify-resume requests |
@@ -8313,7 +8519,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/ker | |||
8313 | #endif | 8519 | #endif |
8314 | xorl %edx, %edx | 8520 | xorl %edx, %edx |
8315 | call do_notify_resume | 8521 | call do_notify_resume |
8316 | @@ -584,6 +637,10 @@ END(syscall_exit_work) | 8522 | @@ -684,6 +738,10 @@ END(syscall_exit_work) |
8317 | 8523 | ||
8318 | RING0_INT_FRAME # can't unwind into user space anyway | 8524 | RING0_INT_FRAME # can't unwind into user space anyway |
8319 | syscall_fault: | 8525 | syscall_fault: |
@@ -8324,22 +8530,11 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/ker | |||
8324 | GET_THREAD_INFO(%ebp) | 8530 | GET_THREAD_INFO(%ebp) |
8325 | movl $-EFAULT,PT_EAX(%esp) | 8531 | movl $-EFAULT,PT_EAX(%esp) |
8326 | jmp resume_userspace | 8532 | jmp resume_userspace |
8327 | @@ -595,17 +652,24 @@ syscall_badsys: | 8533 | @@ -717,7 +775,13 @@ PTREGSCALL(vm86old) |
8328 | END(syscall_badsys) | ||
8329 | CFI_ENDPROC | ||
8330 | 8534 | ||
8331 | -#define FIXUP_ESPFIX_STACK \ | 8535 | .macro FIXUP_ESPFIX_STACK |
8332 | - /* since we are on a wrong stack, we cant make it a C code :( */ \ | 8536 | /* since we are on a wrong stack, we cant make it a C code :( */ |
8333 | - PER_CPU(gdt_page, %ebx); \ | 8537 | - PER_CPU(gdt_page, %ebx) |
8334 | - GET_DESC_BASE(GDT_ENTRY_ESPFIX_SS, %ebx, %eax, %ax, %al, %ah); \ | ||
8335 | - addl %esp, %eax; \ | ||
8336 | - pushl $__KERNEL_DS; \ | ||
8337 | - CFI_ADJUST_CFA_OFFSET 4; \ | ||
8338 | - pushl %eax; \ | ||
8339 | - CFI_ADJUST_CFA_OFFSET 4; \ | ||
8340 | - lss (%esp), %esp; \ | ||
8341 | +.macro FIXUP_ESPFIX_STACK | ||
8342 | + /* since we are on a wrong stack, we cant make it a C code :( */ | ||
8343 | +#ifdef CONFIG_SMP | 8538 | +#ifdef CONFIG_SMP |
8344 | + movl PER_CPU_VAR(cpu_number), %ebx; | 8539 | + movl PER_CPU_VAR(cpu_number), %ebx; |
8345 | + shll $PAGE_SHIFT_asm, %ebx; | 8540 | + shll $PAGE_SHIFT_asm, %ebx; |
@@ -8347,19 +8542,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/ker | |||
8347 | +#else | 8542 | +#else |
8348 | + movl $cpu_gdt_table, %ebx; | 8543 | + movl $cpu_gdt_table, %ebx; |
8349 | +#endif | 8544 | +#endif |
8350 | + GET_DESC_BASE(GDT_ENTRY_ESPFIX_SS, %ebx, %eax, %ax, %al, %ah); | 8545 | GET_DESC_BASE(GDT_ENTRY_ESPFIX_SS, %ebx, %eax, %ax, %al, %ah) |
8351 | + addl %esp, %eax; | 8546 | addl %esp, %eax |
8352 | + pushl $__KERNEL_DS; | 8547 | pushl $__KERNEL_DS |
8353 | + CFI_ADJUST_CFA_OFFSET 4; | 8548 | @@ -1176,7 +1240,6 @@ return_to_handler: |
8354 | + pushl %eax; | ||
8355 | + CFI_ADJUST_CFA_OFFSET 4; | ||
8356 | + lss (%esp), %esp; | ||
8357 | CFI_ADJUST_CFA_OFFSET -8; | ||
8358 | +.endm | ||
8359 | #define UNWIND_ESPFIX_STACK \ | ||
8360 | movl %ss, %eax; \ | ||
8361 | /* see if on espfix stack */ \ | ||
8362 | @@ -1052,7 +1116,6 @@ return_to_handler: | ||
8363 | ret | 8549 | ret |
8364 | #endif | 8550 | #endif |
8365 | 8551 | ||
@@ -8367,10 +8553,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/ker | |||
8367 | #include "syscall_table_32.S" | 8553 | #include "syscall_table_32.S" |
8368 | 8554 | ||
8369 | syscall_table_size=(.-sys_call_table) | 8555 | syscall_table_size=(.-sys_call_table) |
8370 | @@ -1106,12 +1169,21 @@ error_code: | 8556 | @@ -1228,12 +1291,21 @@ error_code: |
8371 | popl %ecx | 8557 | movl %ecx, %fs |
8372 | CFI_ADJUST_CFA_OFFSET -4 | 8558 | UNWIND_ESPFIX_STACK |
8373 | /*CFI_REGISTER es, ecx*/ | 8559 | GS_TO_REG %ecx |
8374 | + | 8560 | + |
8375 | +#ifdef CONFIG_PAX_KERNEXEC | 8561 | +#ifdef CONFIG_PAX_KERNEXEC |
8376 | + GET_CR0_INTO_EDX | 8562 | + GET_CR0_INTO_EDX |
@@ -8380,17 +8566,17 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/ker | |||
8380 | + SET_CR0_FROM_EDX | 8566 | + SET_CR0_FROM_EDX |
8381 | +#endif | 8567 | +#endif |
8382 | + | 8568 | + |
8383 | movl PT_FS(%esp), %edi # get the function address | 8569 | movl PT_GS(%esp), %edi # get the function address |
8384 | movl PT_ORIG_EAX(%esp), %edx # get the error code | 8570 | movl PT_ORIG_EAX(%esp), %edx # get the error code |
8385 | movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart | 8571 | movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart |
8386 | mov %ecx, PT_FS(%esp) | 8572 | REG_TO_PTGS %ecx |
8387 | /*CFI_REL_OFFSET fs, ES*/ | 8573 | SET_KERNEL_GS %ecx |
8388 | - movl $(__USER_DS), %ecx | 8574 | - movl $(__USER_DS), %ecx |
8389 | + movl $(__KERNEL_DS), %ecx | 8575 | + movl $(__KERNEL_DS), %ecx |
8390 | movl %ecx, %ds | 8576 | movl %ecx, %ds |
8391 | movl %ecx, %es | 8577 | movl %ecx, %es |
8392 | TRACE_IRQS_OFF | 8578 | TRACE_IRQS_OFF |
8393 | @@ -1206,6 +1278,13 @@ nmi_stack_correct: | 8579 | @@ -1329,6 +1401,13 @@ nmi_stack_correct: |
8394 | xorl %edx,%edx # zero error code | 8580 | xorl %edx,%edx # zero error code |
8395 | movl %esp,%eax # pt_regs pointer | 8581 | movl %esp,%eax # pt_regs pointer |
8396 | call do_nmi | 8582 | call do_nmi |
@@ -8404,7 +8590,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/ker | |||
8404 | jmp restore_nocheck_notrace | 8590 | jmp restore_nocheck_notrace |
8405 | CFI_ENDPROC | 8591 | CFI_ENDPROC |
8406 | 8592 | ||
8407 | @@ -1246,6 +1325,13 @@ nmi_espfix_stack: | 8593 | @@ -1369,6 +1448,13 @@ nmi_espfix_stack: |
8408 | FIXUP_ESPFIX_STACK # %eax == %esp | 8594 | FIXUP_ESPFIX_STACK # %eax == %esp |
8409 | xorl %edx,%edx # zero error code | 8595 | xorl %edx,%edx # zero error code |
8410 | call do_nmi | 8596 | call do_nmi |
@@ -8418,28 +8604,23 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_32.S linux-2.6.29.6/arch/x86/ker | |||
8418 | RESTORE_REGS | 8604 | RESTORE_REGS |
8419 | lss 12+4(%esp), %esp # back to espfix stack | 8605 | lss 12+4(%esp), %esp # back to espfix stack |
8420 | CFI_ADJUST_CFA_OFFSET -24 | 8606 | CFI_ADJUST_CFA_OFFSET -24 |
8421 | diff -urNp linux-2.6.29.6/arch/x86/kernel/entry_64.S linux-2.6.29.6/arch/x86/kernel/entry_64.S | 8607 | diff -urNp linux-2.6.30.4/arch/x86/kernel/entry_64.S linux-2.6.30.4/arch/x86/kernel/entry_64.S |
8422 | --- linux-2.6.29.6/arch/x86/kernel/entry_64.S 2009-07-02 19:41:20.000000000 -0400 | 8608 | --- linux-2.6.30.4/arch/x86/kernel/entry_64.S 2009-07-24 17:47:51.000000000 -0400 |
8423 | +++ linux-2.6.29.6/arch/x86/kernel/entry_64.S 2009-07-23 17:34:32.069868390 -0400 | 8609 | +++ linux-2.6.30.4/arch/x86/kernel/entry_64.S 2009-07-30 09:48:09.945662533 -0400 |
8424 | @@ -1073,10 +1073,11 @@ ENTRY(\sym) | 8610 | @@ -1073,7 +1073,8 @@ ENTRY(\sym) |
8425 | TRACE_IRQS_OFF | 8611 | TRACE_IRQS_OFF |
8426 | movq %rsp,%rdi /* pt_regs pointer */ | 8612 | movq %rsp,%rdi /* pt_regs pointer */ |
8427 | xorl %esi,%esi /* no error code */ | 8613 | xorl %esi,%esi /* no error code */ |
8428 | - movq %gs:pda_data_offset, %rbp | 8614 | - PER_CPU(init_tss, %rbp) |
8429 | - subq $EXCEPTION_STKSZ, per_cpu__init_tss + TSS_ist + (\ist - 1) * 8(%rbp) | 8615 | + imul $TSS_size, PER_CPU_VAR(cpu_number), %ebp |
8430 | + imul $TSS_size, %gs:pda_cpunumber, %ebp | ||
8431 | + lea init_tss(%rbp), %rbp | 8616 | + lea init_tss(%rbp), %rbp |
8432 | + subq $EXCEPTION_STKSZ, TSS_ist + (\ist - 1) * 8(%rbp) | 8617 | subq $EXCEPTION_STKSZ, TSS_ist + (\ist - 1) * 8(%rbp) |
8433 | call \do_sym | 8618 | call \do_sym |
8434 | - addq $EXCEPTION_STKSZ, per_cpu__init_tss + TSS_ist + (\ist - 1) * 8(%rbp) | 8619 | addq $EXCEPTION_STKSZ, TSS_ist + (\ist - 1) * 8(%rbp) |
8435 | + addq $EXCEPTION_STKSZ, TSS_ist + (\ist - 1) * 8(%rbp) | 8620 | diff -urNp linux-2.6.30.4/arch/x86/kernel/ftrace.c linux-2.6.30.4/arch/x86/kernel/ftrace.c |
8436 | jmp paranoid_exit /* %ebx: no swapgs flag */ | 8621 | --- linux-2.6.30.4/arch/x86/kernel/ftrace.c 2009-07-24 17:47:51.000000000 -0400 |
8437 | CFI_ENDPROC | 8622 | +++ linux-2.6.30.4/arch/x86/kernel/ftrace.c 2009-07-30 09:48:09.945662533 -0400 |
8438 | END(\sym) | 8623 | @@ -284,9 +284,9 @@ int ftrace_update_ftrace_func(ftrace_fun |
8439 | diff -urNp linux-2.6.29.6/arch/x86/kernel/ftrace.c linux-2.6.29.6/arch/x86/kernel/ftrace.c | ||
8440 | --- linux-2.6.29.6/arch/x86/kernel/ftrace.c 2009-07-02 19:41:20.000000000 -0400 | ||
8441 | +++ linux-2.6.29.6/arch/x86/kernel/ftrace.c 2009-07-23 17:34:32.070744144 -0400 | ||
8442 | @@ -250,9 +250,9 @@ int ftrace_update_ftrace_func(ftrace_fun | ||
8443 | unsigned char old[MCOUNT_INSN_SIZE], *new; | 8624 | unsigned char old[MCOUNT_INSN_SIZE], *new; |
8444 | int ret; | 8625 | int ret; |
8445 | 8626 | ||
@@ -8451,9 +8632,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/ftrace.c linux-2.6.29.6/arch/x86/kerne | |||
8451 | 8632 | ||
8452 | return ret; | 8633 | return ret; |
8453 | } | 8634 | } |
8454 | diff -urNp linux-2.6.29.6/arch/x86/kernel/head32.c linux-2.6.29.6/arch/x86/kernel/head32.c | 8635 | diff -urNp linux-2.6.30.4/arch/x86/kernel/head32.c linux-2.6.30.4/arch/x86/kernel/head32.c |
8455 | --- linux-2.6.29.6/arch/x86/kernel/head32.c 2009-07-02 19:41:20.000000000 -0400 | 8636 | --- linux-2.6.30.4/arch/x86/kernel/head32.c 2009-07-24 17:47:51.000000000 -0400 |
8456 | +++ linux-2.6.29.6/arch/x86/kernel/head32.c 2009-07-23 17:34:32.070744144 -0400 | 8637 | +++ linux-2.6.30.4/arch/x86/kernel/head32.c 2009-07-30 09:48:09.946846946 -0400 |
8457 | @@ -13,12 +13,13 @@ | 8638 | @@ -13,12 +13,13 @@ |
8458 | #include <asm/e820.h> | 8639 | #include <asm/e820.h> |
8459 | #include <asm/bios_ebda.h> | 8640 | #include <asm/bios_ebda.h> |
@@ -8464,36 +8645,37 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head32.c linux-2.6.29.6/arch/x86/kerne | |||
8464 | { | 8645 | { |
8465 | reserve_trampoline_memory(); | 8646 | reserve_trampoline_memory(); |
8466 | 8647 | ||
8467 | - reserve_early(__pa_symbol(&_text), __pa_symbol(&_end), "TEXT DATA BSS"); | 8648 | - reserve_early(__pa_symbol(&_text), __pa_symbol(&__bss_stop), "TEXT DATA BSS"); |
8468 | + reserve_early(LOAD_PHYSICAL_ADDR, __pa_symbol(&_end), "TEXT DATA BSS"); | 8649 | + reserve_early(LOAD_PHYSICAL_ADDR, __pa_symbol(&__bss_stop), "TEXT DATA BSS"); |
8469 | 8650 | ||
8470 | #ifdef CONFIG_BLK_DEV_INITRD | 8651 | #ifdef CONFIG_BLK_DEV_INITRD |
8471 | /* Reserve INITRD */ | 8652 | /* Reserve INITRD */ |
8472 | diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kernel/head_32.S | 8653 | diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kernel/head_32.S |
8473 | --- linux-2.6.29.6/arch/x86/kernel/head_32.S 2009-07-02 19:41:20.000000000 -0400 | 8654 | --- linux-2.6.30.4/arch/x86/kernel/head_32.S 2009-07-24 17:47:51.000000000 -0400 |
8474 | +++ linux-2.6.29.6/arch/x86/kernel/head_32.S 2009-07-23 17:34:37.457730203 -0400 | 8655 | +++ linux-2.6.30.4/arch/x86/kernel/head_32.S 2009-07-30 19:56:23.400350396 -0400 |
8475 | @@ -19,6 +19,7 @@ | 8656 | @@ -20,6 +20,7 @@ |
8476 | #include <asm/asm-offsets.h> | ||
8477 | #include <asm/setup.h> | 8657 | #include <asm/setup.h> |
8478 | #include <asm/processor-flags.h> | 8658 | #include <asm/processor-flags.h> |
8659 | #include <asm/percpu.h> | ||
8479 | +#include <asm/msr-index.h> | 8660 | +#include <asm/msr-index.h> |
8480 | 8661 | ||
8481 | /* Physical address */ | 8662 | /* Physical address */ |
8482 | #define pa(X) ((X) - __PAGE_OFFSET) | 8663 | #define pa(X) ((X) - __PAGE_OFFSET) |
8483 | @@ -64,17 +65,22 @@ LOW_PAGES = 1<<(32-PAGE_SHIFT_asm) | 8664 | @@ -53,11 +54,7 @@ |
8484 | LOW_PAGES = LOW_PAGES + 0x1000000 | 8665 | * and small than max_low_pfn, otherwise will waste some page table entries |
8485 | #endif | 8666 | */ |
8486 | 8667 | ||
8487 | -#if PTRS_PER_PMD > 1 | 8668 | -#if PTRS_PER_PMD > 1 |
8488 | -PAGE_TABLE_SIZE = (LOW_PAGES / PTRS_PER_PMD) + PTRS_PER_PGD | 8669 | -#define PAGE_TABLE_SIZE(pages) (((pages) / PTRS_PER_PMD) + PTRS_PER_PGD) |
8489 | -#else | 8670 | -#else |
8490 | -PAGE_TABLE_SIZE = (LOW_PAGES / PTRS_PER_PGD) | 8671 | -#define PAGE_TABLE_SIZE(pages) ((pages) / PTRS_PER_PGD) |
8491 | -#endif | 8672 | -#endif |
8492 | +PAGE_TABLE_SIZE = (LOW_PAGES / PTRS_PER_PTE) | 8673 | +#define PAGE_TABLE_SIZE(pages) ((pages) / PTRS_PER_PTE) |
8493 | BOOTBITMAP_SIZE = LOW_PAGES / 8 | ||
8494 | ALLOCATOR_SLOP = 4 | ||
8495 | 8674 | ||
8496 | INIT_MAP_BEYOND_END = BOOTBITMAP_SIZE + (PAGE_TABLE_SIZE + ALLOCATOR_SLOP)*PAGE_SIZE_asm | 8675 | /* Enough space to fit pagetables for the low memory linear map */ |
8676 | MAPPING_BEYOND_END = \ | ||
8677 | @@ -74,6 +71,15 @@ INIT_MAP_SIZE = PAGE_TABLE_SIZE(KERNEL_P | ||
8678 | RESERVE_BRK(pagetables, INIT_MAP_SIZE) | ||
8497 | 8679 | ||
8498 | /* | 8680 | /* |
8499 | + * Real beginning of normal "text" segment | 8681 | + * Real beginning of normal "text" segment |
@@ -8508,7 +8690,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8508 | * 32-bit kernel entrypoint; only used by the boot CPU. On entry, | 8690 | * 32-bit kernel entrypoint; only used by the boot CPU. On entry, |
8509 | * %esi points to the real-mode code as a 32-bit pointer. | 8691 | * %esi points to the real-mode code as a 32-bit pointer. |
8510 | * CS and DS must be 4 GB flat segments, but we don't depend on | 8692 | * CS and DS must be 4 GB flat segments, but we don't depend on |
8511 | @@ -82,6 +88,12 @@ INIT_MAP_BEYOND_END = BOOTBITMAP_SIZE + | 8693 | @@ -81,6 +87,12 @@ RESERVE_BRK(pagetables, INIT_MAP_SIZE) |
8512 | * can. | 8694 | * can. |
8513 | */ | 8695 | */ |
8514 | .section .text.head,"ax",@progbits | 8696 | .section .text.head,"ax",@progbits |
@@ -8521,18 +8703,18 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8521 | ENTRY(startup_32) | 8703 | ENTRY(startup_32) |
8522 | /* test KEEP_SEGMENTS flag to see if the bootloader is asking | 8704 | /* test KEEP_SEGMENTS flag to see if the bootloader is asking |
8523 | us to not reload segments */ | 8705 | us to not reload segments */ |
8524 | @@ -99,6 +111,56 @@ ENTRY(startup_32) | 8706 | @@ -98,6 +110,56 @@ ENTRY(startup_32) |
8525 | movl %eax,%gs | 8707 | movl %eax,%gs |
8526 | 2: | 8708 | 2: |
8527 | 8709 | ||
8528 | + movl $pa(cpu_gdt_table),%edi | 8710 | + movl $pa(cpu_gdt_table),%edi |
8529 | + movl $__per_cpu_start,%eax | 8711 | + movl $__per_cpu_load,%eax |
8530 | + movw %ax,__KERNEL_PERCPU + 2(%edi) | 8712 | + movw %ax,__KERNEL_PERCPU + 2(%edi) |
8531 | + rorl $16,%eax | 8713 | + rorl $16,%eax |
8532 | + movb %al,__KERNEL_PERCPU + 4(%edi) | 8714 | + movb %al,__KERNEL_PERCPU + 4(%edi) |
8533 | + movb %ah,__KERNEL_PERCPU + 7(%edi) | 8715 | + movb %ah,__KERNEL_PERCPU + 7(%edi) |
8534 | + movl $__per_cpu_end + PERCPU_MODULE_RESERVE - 1,%eax | 8716 | + movl $__per_cpu_end - 1,%eax |
8535 | + subl $__per_cpu_start,%eax | 8717 | + subl $__per_cpu_load,%eax |
8536 | + movw %ax,__KERNEL_PERCPU + 0(%edi) | 8718 | + movw %ax,__KERNEL_PERCPU + 0(%edi) |
8537 | + | 8719 | + |
8538 | +#ifdef CONFIG_PAX_MEMORY_UDEREF | 8720 | +#ifdef CONFIG_PAX_MEMORY_UDEREF |
@@ -8578,7 +8760,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8578 | /* | 8760 | /* |
8579 | * Clear BSS first so that there are no surprises... | 8761 | * Clear BSS first so that there are no surprises... |
8580 | */ | 8762 | */ |
8581 | @@ -142,9 +204,7 @@ ENTRY(startup_32) | 8763 | @@ -141,9 +203,7 @@ ENTRY(startup_32) |
8582 | cmpl $num_subarch_entries, %eax | 8764 | cmpl $num_subarch_entries, %eax |
8583 | jae bad_subarch | 8765 | jae bad_subarch |
8584 | 8766 | ||
@@ -8589,7 +8771,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8589 | 8771 | ||
8590 | bad_subarch: | 8772 | bad_subarch: |
8591 | WEAK(lguest_entry) | 8773 | WEAK(lguest_entry) |
8592 | @@ -156,9 +216,9 @@ WEAK(xen_entry) | 8774 | @@ -155,9 +215,9 @@ WEAK(xen_entry) |
8593 | __INITDATA | 8775 | __INITDATA |
8594 | 8776 | ||
8595 | subarch_entries: | 8777 | subarch_entries: |
@@ -8602,35 +8784,41 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8602 | num_subarch_entries = (. - subarch_entries) / 4 | 8784 | num_subarch_entries = (. - subarch_entries) / 4 |
8603 | .previous | 8785 | .previous |
8604 | #endif /* CONFIG_PARAVIRT */ | 8786 | #endif /* CONFIG_PARAVIRT */ |
8605 | @@ -220,8 +280,11 @@ default_entry: | 8787 | @@ -218,8 +278,14 @@ default_entry: |
8606 | movl %eax, pa(max_pfn_mapped) | 8788 | movl %eax, pa(max_pfn_mapped) |
8607 | 8789 | ||
8608 | /* Do early initialization of the fixmap area */ | 8790 | /* Do early initialization of the fixmap area */ |
8609 | - movl $pa(swapper_pg_fixmap)+PDE_IDENT_ATTR,%eax | 8791 | - movl $pa(swapper_pg_fixmap)+PDE_IDENT_ATTR,%eax |
8610 | - movl %eax,pa(swapper_pg_pmd+0x1000*KPMDS-8) | 8792 | - movl %eax,pa(swapper_pg_pmd+0x1000*KPMDS-8) |
8611 | +#ifdef CONFIG_COMPAT_VDSO | 8793 | +#ifdef CONFIG_COMPAT_VDSO |
8612 | + movl $pa(swapper_pg_fixmap)+PDE_IDENT_ATTR+_PAGE_USER,pa(swapper_pg_pmd+0x1000*KPMDS-8) | 8794 | + movl $pa(swapper_pg_fixmap0)+PDE_IDENT_ATTR+_PAGE_USER,pa(swapper_pg_pmd+0x1000*KPMDS-8) |
8613 | +#else | 8795 | +#else |
8614 | + movl $pa(swapper_pg_fixmap)+PDE_IDENT_ATTR,pa(swapper_pg_pmd+0x1000*KPMDS-8) | 8796 | + movl $pa(swapper_pg_fixmap0)+PDE_IDENT_ATTR,pa(swapper_pg_pmd+0x1000*KPMDS-8) |
8615 | +#endif | 8797 | +#endif |
8798 | + movl $pa(swapper_pg_fixmap1)+PDE_IDENT_ATTR,pa(swapper_pg_pmd+0x1000*KPMDS-16) | ||
8799 | + movl $pa(swapper_pg_fixmap2)+PDE_IDENT_ATTR,pa(swapper_pg_pmd+0x1000*KPMDS-24) | ||
8800 | + movl $pa(swapper_pg_fixmap3)+PDE_IDENT_ATTR,pa(swapper_pg_pmd+0x1000*KPMDS-32) | ||
8616 | #else /* Not PAE */ | 8801 | #else /* Not PAE */ |
8617 | 8802 | ||
8618 | page_pde_offset = (__PAGE_OFFSET >> 20); | 8803 | page_pde_offset = (__PAGE_OFFSET >> 20); |
8619 | @@ -253,8 +316,11 @@ page_pde_offset = (__PAGE_OFFSET >> 20); | 8804 | @@ -249,8 +315,14 @@ page_pde_offset = (__PAGE_OFFSET >> 20); |
8620 | movl %eax, pa(max_pfn_mapped) | 8805 | movl %eax, pa(max_pfn_mapped) |
8621 | 8806 | ||
8622 | /* Do early initialization of the fixmap area */ | 8807 | /* Do early initialization of the fixmap area */ |
8623 | - movl $pa(swapper_pg_fixmap)+PDE_IDENT_ATTR,%eax | 8808 | - movl $pa(swapper_pg_fixmap)+PDE_IDENT_ATTR,%eax |
8624 | - movl %eax,pa(swapper_pg_dir+0xffc) | 8809 | - movl %eax,pa(swapper_pg_dir+0xffc) |
8625 | +#ifdef CONFIG_COMPAT_VDSO | 8810 | +#ifdef CONFIG_COMPAT_VDSO |
8626 | + movl $pa(swapper_pg_fixmap)+PDE_IDENT_ATTR+_PAGE_USER,pa(swapper_pg_dir+0xffc) | 8811 | + movl $pa(swapper_pg_fixmap0)+PDE_IDENT_ATTR+_PAGE_USER,pa(swapper_pg_dir+0xffc) |
8627 | +#else | 8812 | +#else |
8628 | + movl $pa(swapper_pg_fixmap)+PDE_IDENT_ATTR,pa(swapper_pg_dir+0xffc) | 8813 | + movl $pa(swapper_pg_fixmap0)+PDE_IDENT_ATTR,pa(swapper_pg_dir+0xffc) |
8629 | +#endif | 8814 | +#endif |
8815 | + movl $pa(swapper_pg_fixmap1)+PDE_IDENT_ATTR,pa(swapper_pg_dir+0xff8) | ||
8816 | + movl $pa(swapper_pg_fixmap2)+PDE_IDENT_ATTR,pa(swapper_pg_dir+0xff4) | ||
8817 | + movl $pa(swapper_pg_fixmap3)+PDE_IDENT_ATTR,pa(swapper_pg_dir+0xff0) | ||
8630 | #endif | 8818 | #endif |
8631 | jmp 3f | 8819 | jmp 3f |
8632 | /* | 8820 | /* |
8633 | @@ -318,13 +384,16 @@ ENTRY(startup_32_smp) | 8821 | @@ -314,13 +386,16 @@ ENTRY(startup_32_smp) |
8634 | jnc 6f | 8822 | jnc 6f |
8635 | 8823 | ||
8636 | /* Setup EFER (Extended Feature Enable Register) */ | 8824 | /* Setup EFER (Extended Feature Enable Register) */ |
@@ -8648,7 +8836,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8648 | 6: | 8836 | 6: |
8649 | 8837 | ||
8650 | /* | 8838 | /* |
8651 | @@ -350,9 +419,7 @@ ENTRY(startup_32_smp) | 8839 | @@ -346,9 +421,7 @@ ENTRY(startup_32_smp) |
8652 | 8840 | ||
8653 | #ifdef CONFIG_SMP | 8841 | #ifdef CONFIG_SMP |
8654 | cmpb $0, ready | 8842 | cmpb $0, ready |
@@ -8659,42 +8847,44 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8659 | #endif /* CONFIG_SMP */ | 8847 | #endif /* CONFIG_SMP */ |
8660 | 8848 | ||
8661 | /* | 8849 | /* |
8662 | @@ -429,12 +496,12 @@ is386: movl $2,%ecx # set MP | 8850 | @@ -426,7 +499,7 @@ is386: movl $2,%ecx # set MP |
8663 | ljmp $(__KERNEL_CS),$1f | ||
8664 | 1: movl $(__KERNEL_DS),%eax # reload all the segment registers | 8851 | 1: movl $(__KERNEL_DS),%eax # reload all the segment registers |
8665 | movl %eax,%ss # after changing gdt. | 8852 | movl %eax,%ss # after changing gdt. |
8666 | - movl %eax,%fs # gets reset once there's real percpu | 8853 | |
8667 | - | ||
8668 | - movl $(__USER_DS),%eax # DS/ES contains default USER segment | 8854 | - movl $(__USER_DS),%eax # DS/ES contains default USER segment |
8855 | + movl $(__KERNEL_DS),%eax # DS/ES contains default KERNEL segment | ||
8669 | movl %eax,%ds | 8856 | movl %eax,%ds |
8670 | movl %eax,%es | 8857 | movl %eax,%es |
8671 | 8858 | ||
8672 | + movl $(__KERNEL_PERCPU), %eax | 8859 | @@ -440,8 +513,9 @@ is386: movl $2,%ecx # set MP |
8673 | + movl %eax,%fs # set this cpu's percpu | 8860 | */ |
8674 | + | 8861 | cmpb $0,ready |
8675 | xorl %eax,%eax # Clear GS and LDT | 8862 | jne 1f |
8676 | movl %eax,%gs | 8863 | - movl $per_cpu__gdt_page,%eax |
8677 | lldt %ax | 8864 | + movl $cpu_gdt_table,%eax |
8678 | @@ -444,12 +511,6 @@ is386: movl $2,%ecx # set MP | 8865 | movl $per_cpu__stack_canary,%ecx |
8866 | + addl $__per_cpu_load,%ecx | ||
8867 | subl $20, %ecx | ||
8868 | movw %cx, 8 * GDT_ENTRY_STACK_CANARY + 2(%eax) | ||
8869 | shrl $16, %ecx | ||
8870 | @@ -460,10 +534,6 @@ is386: movl $2,%ecx # set MP | ||
8679 | #ifdef CONFIG_SMP | 8871 | #ifdef CONFIG_SMP |
8680 | movb ready, %cl | 8872 | movb ready, %cl |
8681 | movb $1, ready | 8873 | movb $1, ready |
8682 | - cmpb $0,%cl # the first CPU calls start_kernel | 8874 | - cmpb $0,%cl # the first CPU calls start_kernel |
8683 | - je 1f | 8875 | - je 1f |
8684 | - movl $(__KERNEL_PERCPU), %eax | ||
8685 | - movl %eax,%fs # set this cpu's percpu | ||
8686 | - movl (stack_start), %esp | 8876 | - movl (stack_start), %esp |
8687 | -1: | 8877 | -1: |
8688 | #endif /* CONFIG_SMP */ | 8878 | #endif /* CONFIG_SMP */ |
8689 | jmp *(initial_code) | 8879 | jmp *(initial_code) |
8690 | 8880 | ||
8691 | @@ -535,15 +596,15 @@ early_page_fault: | 8881 | @@ -549,22 +619,22 @@ early_page_fault: |
8692 | jmp early_fault | 8882 | jmp early_fault |
8693 | 8883 | ||
8694 | early_fault: | 8884 | early_fault: |
8695 | - cld | 8885 | - cld |
8696 | #ifdef CONFIG_PRINTK | 8886 | #ifdef CONFIG_PRINTK |
8697 | + cmpl $2,%ss:early_recursion_flag | 8887 | + cmpl $1,%ss:early_recursion_flag |
8698 | + je hlt_loop | 8888 | + je hlt_loop |
8699 | + incl %ss:early_recursion_flag | 8889 | + incl %ss:early_recursion_flag |
8700 | + cld | 8890 | + cld |
@@ -8708,17 +8898,15 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8708 | movl %cr2,%eax | 8898 | movl %cr2,%eax |
8709 | pushl %eax | 8899 | pushl %eax |
8710 | pushl %edx /* trapno */ | 8900 | pushl %edx /* trapno */ |
8711 | @@ -553,8 +614,8 @@ early_fault: | 8901 | pushl $fault_msg |
8712 | #else | ||
8713 | call printk | 8902 | call printk |
8903 | +; call dump_stack | ||
8714 | #endif | 8904 | #endif |
8715 | -#endif | 8905 | - call dump_stack |
8716 | call dump_stack | ||
8717 | +#endif | ||
8718 | hlt_loop: | 8906 | hlt_loop: |
8719 | hlt | 8907 | hlt |
8720 | jmp hlt_loop | 8908 | jmp hlt_loop |
8721 | @@ -562,8 +623,11 @@ hlt_loop: | 8909 | @@ -572,8 +642,11 @@ hlt_loop: |
8722 | /* This is the default interrupt "handler" :-) */ | 8910 | /* This is the default interrupt "handler" :-) */ |
8723 | ALIGN | 8911 | ALIGN |
8724 | ignore_int: | 8912 | ignore_int: |
@@ -8731,7 +8919,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8731 | pushl %eax | 8919 | pushl %eax |
8732 | pushl %ecx | 8920 | pushl %ecx |
8733 | pushl %edx | 8921 | pushl %edx |
8734 | @@ -572,9 +636,6 @@ ignore_int: | 8922 | @@ -582,9 +655,6 @@ ignore_int: |
8735 | movl $(__KERNEL_DS),%eax | 8923 | movl $(__KERNEL_DS),%eax |
8736 | movl %eax,%ds | 8924 | movl %eax,%ds |
8737 | movl %eax,%es | 8925 | movl %eax,%es |
@@ -8741,7 +8929,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8741 | pushl 16(%esp) | 8929 | pushl 16(%esp) |
8742 | pushl 24(%esp) | 8930 | pushl 24(%esp) |
8743 | pushl 32(%esp) | 8931 | pushl 32(%esp) |
8744 | @@ -599,36 +660,42 @@ ignore_int: | 8932 | @@ -608,37 +678,49 @@ ignore_int: |
8745 | ENTRY(initial_code) | 8933 | ENTRY(initial_code) |
8746 | .long i386_start_kernel | 8934 | .long i386_start_kernel |
8747 | 8935 | ||
@@ -8768,14 +8956,23 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8768 | #endif | 8956 | #endif |
8769 | -swapper_pg_fixmap: | 8957 | -swapper_pg_fixmap: |
8770 | + | 8958 | + |
8771 | +ENTRY(swapper_pg_fixmap) | 8959 | +ENTRY(swapper_pg_fixmap0) |
8960 | + .fill 1024,4,0 | ||
8961 | + | ||
8962 | +ENTRY(swapper_pg_fixmap1) | ||
8963 | + .fill 1024,4,0 | ||
8964 | + | ||
8965 | +ENTRY(swapper_pg_fixmap2) | ||
8966 | + .fill 1024,4,0 | ||
8967 | + | ||
8968 | +ENTRY(swapper_pg_fixmap3) | ||
8772 | .fill 1024,4,0 | 8969 | .fill 1024,4,0 |
8773 | + | 8970 | + |
8774 | +.section .empty_zero_page,"a",@progbits | 8971 | +.section .empty_zero_page,"a",@progbits |
8775 | ENTRY(empty_zero_page) | 8972 | ENTRY(empty_zero_page) |
8776 | .fill 4096,1,0 | 8973 | .fill 4096,1,0 |
8777 | + | 8974 | |
8778 | +/* | 8975 | /* |
8779 | + * The IDT has to be page-aligned to simplify the Pentium | 8976 | + * The IDT has to be page-aligned to simplify the Pentium |
8780 | + * F0 0F bug workaround.. We have a special link segment | 8977 | + * F0 0F bug workaround.. We have a special link segment |
8781 | + * for this. | 8978 | + * for this. |
@@ -8784,11 +8981,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8784 | +ENTRY(idt_table) | 8981 | +ENTRY(idt_table) |
8785 | + .fill 256,8,0 | 8982 | + .fill 256,8,0 |
8786 | + | 8983 | + |
8787 | /* | 8984 | +/* |
8788 | * This starts the data section. | 8985 | * This starts the data section. |
8789 | */ | 8986 | */ |
8790 | +.data | ||
8791 | + | ||
8792 | #ifdef CONFIG_X86_PAE | 8987 | #ifdef CONFIG_X86_PAE |
8793 | -.section ".data.page_aligned","wa" | 8988 | -.section ".data.page_aligned","wa" |
8794 | - /* Page-aligned for the benefit of paravirt? */ | 8989 | - /* Page-aligned for the benefit of paravirt? */ |
@@ -8797,7 +8992,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8797 | ENTRY(swapper_pg_dir) | 8992 | ENTRY(swapper_pg_dir) |
8798 | .long pa(swapper_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */ | 8993 | .long pa(swapper_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */ |
8799 | # if KPMDS == 3 | 8994 | # if KPMDS == 3 |
8800 | @@ -651,11 +718,12 @@ ENTRY(swapper_pg_dir) | 8995 | @@ -661,11 +743,12 @@ ENTRY(swapper_pg_dir) |
8801 | 8996 | ||
8802 | .data | 8997 | .data |
8803 | ENTRY(stack_start) | 8998 | ENTRY(stack_start) |
@@ -8811,7 +9006,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8811 | early_recursion_flag: | 9006 | early_recursion_flag: |
8812 | .long 0 | 9007 | .long 0 |
8813 | 9008 | ||
8814 | @@ -691,7 +759,7 @@ fault_msg: | 9009 | @@ -701,7 +784,7 @@ fault_msg: |
8815 | .word 0 # 32 bit align gdt_desc.address | 9010 | .word 0 # 32 bit align gdt_desc.address |
8816 | boot_gdt_descr: | 9011 | boot_gdt_descr: |
8817 | .word __BOOT_DS+7 | 9012 | .word __BOOT_DS+7 |
@@ -8820,7 +9015,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8820 | 9015 | ||
8821 | .word 0 # 32-bit align idt_desc.address | 9016 | .word 0 # 32-bit align idt_desc.address |
8822 | idt_descr: | 9017 | idt_descr: |
8823 | @@ -702,7 +770,7 @@ idt_descr: | 9018 | @@ -712,7 +795,7 @@ idt_descr: |
8824 | .word 0 # 32 bit align gdt_desc.address | 9019 | .word 0 # 32 bit align gdt_desc.address |
8825 | ENTRY(early_gdt_descr) | 9020 | ENTRY(early_gdt_descr) |
8826 | .word GDT_ENTRIES*8-1 | 9021 | .word GDT_ENTRIES*8-1 |
@@ -8829,7 +9024,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8829 | 9024 | ||
8830 | /* | 9025 | /* |
8831 | * The boot_gdt must mirror the equivalent in setup.S and is | 9026 | * The boot_gdt must mirror the equivalent in setup.S and is |
8832 | @@ -711,5 +779,59 @@ ENTRY(early_gdt_descr) | 9027 | @@ -721,5 +804,59 @@ ENTRY(early_gdt_descr) |
8833 | .align L1_CACHE_BYTES | 9028 | .align L1_CACHE_BYTES |
8834 | ENTRY(boot_gdt) | 9029 | ENTRY(boot_gdt) |
8835 | .fill GDT_ENTRY_BOOT_CS,8,0 | 9030 | .fill GDT_ENTRY_BOOT_CS,8,0 |
@@ -8883,39 +9078,18 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_32.S linux-2.6.29.6/arch/x86/kern | |||
8883 | + | 9078 | + |
8884 | + .quad 0x00c0930000000000 /* 0xd0 - ESPFIX SS */ | 9079 | + .quad 0x00c0930000000000 /* 0xd0 - ESPFIX SS */ |
8885 | + .quad 0x0040930000000000 /* 0xd8 - PERCPU */ | 9080 | + .quad 0x0040930000000000 /* 0xd8 - PERCPU */ |
8886 | + .quad 0x0000000000000000 /* 0xe0 - PCIBIOS_CS */ | 9081 | + .quad 0x0040930000000018 /* 0xe0 - STACK_CANARY */ |
8887 | + .quad 0x0000000000000000 /* 0xe8 - PCIBIOS_DS */ | 9082 | + .quad 0x0000000000000000 /* 0xe8 - PCIBIOS_CS */ |
8888 | + .quad 0x0000000000000000 /* 0xf0 - unused */ | 9083 | + .quad 0x0000000000000000 /* 0xf0 - PCIBIOS_DS */ |
8889 | + .quad 0x0000000000000000 /* 0xf8 - GDT entry 31: double-fault TSS */ | 9084 | + .quad 0x0000000000000000 /* 0xf8 - GDT entry 31: double-fault TSS */ |
8890 | + | 9085 | + |
8891 | + /* Be sure this is zeroed to avoid false validations in Xen */ | 9086 | + /* Be sure this is zeroed to avoid false validations in Xen */ |
8892 | + .fill PAGE_SIZE_asm - GDT_SIZE,1,0 | 9087 | + .fill PAGE_SIZE_asm - GDT_SIZE,1,0 |
8893 | + .endr | 9088 | + .endr |
8894 | diff -urNp linux-2.6.29.6/arch/x86/kernel/head64.c linux-2.6.29.6/arch/x86/kernel/head64.c | 9089 | diff -urNp linux-2.6.30.4/arch/x86/kernel/head_64.S linux-2.6.30.4/arch/x86/kernel/head_64.S |
8895 | --- linux-2.6.29.6/arch/x86/kernel/head64.c 2009-07-02 19:41:20.000000000 -0400 | 9090 | --- linux-2.6.30.4/arch/x86/kernel/head_64.S 2009-07-24 17:47:51.000000000 -0400 |
8896 | +++ linux-2.6.29.6/arch/x86/kernel/head64.c 2009-07-23 17:34:32.070744144 -0400 | 9091 | +++ linux-2.6.30.4/arch/x86/kernel/head_64.S 2009-08-01 08:46:06.399105315 -0400 |
8897 | @@ -94,6 +94,8 @@ void __init x86_64_start_kernel(char * r | 9092 | @@ -39,6 +39,10 @@ L4_PAGE_OFFSET = pgd_index(__PAGE_OFFSET |
8898 | /* clear bss before set_intr_gate with early_idt_handler */ | ||
8899 | clear_bss(); | ||
8900 | |||
8901 | + x86_64_init_pda(); | ||
8902 | + | ||
8903 | /* Make NULL pointers segfault */ | ||
8904 | zap_identity_mappings(); | ||
8905 | |||
8906 | @@ -112,8 +114,6 @@ void __init x86_64_start_kernel(char * r | ||
8907 | if (console_loglevel == 10) | ||
8908 | early_printk("Kernel alive\n"); | ||
8909 | |||
8910 | - x86_64_init_pda(); | ||
8911 | - | ||
8912 | x86_64_start_reservations(real_mode_data); | ||
8913 | } | ||
8914 | |||
8915 | diff -urNp linux-2.6.29.6/arch/x86/kernel/head_64.S linux-2.6.29.6/arch/x86/kernel/head_64.S | ||
8916 | --- linux-2.6.29.6/arch/x86/kernel/head_64.S 2009-07-02 19:41:20.000000000 -0400 | ||
8917 | +++ linux-2.6.29.6/arch/x86/kernel/head_64.S 2009-07-23 17:34:32.071712262 -0400 | ||
8918 | @@ -38,6 +38,10 @@ L4_PAGE_OFFSET = pgd_index(__PAGE_OFFSET | ||
8919 | L3_PAGE_OFFSET = pud_index(__PAGE_OFFSET) | 9093 | L3_PAGE_OFFSET = pud_index(__PAGE_OFFSET) |
8920 | L4_START_KERNEL = pgd_index(__START_KERNEL_map) | 9094 | L4_START_KERNEL = pgd_index(__START_KERNEL_map) |
8921 | L3_START_KERNEL = pud_index(__START_KERNEL_map) | 9095 | L3_START_KERNEL = pud_index(__START_KERNEL_map) |
@@ -8926,7 +9100,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_64.S linux-2.6.29.6/arch/x86/kern | |||
8926 | 9100 | ||
8927 | .text | 9101 | .text |
8928 | .section .text.head | 9102 | .section .text.head |
8929 | @@ -85,35 +89,22 @@ startup_64: | 9103 | @@ -86,35 +90,22 @@ startup_64: |
8930 | */ | 9104 | */ |
8931 | addq %rbp, init_level4_pgt + 0(%rip) | 9105 | addq %rbp, init_level4_pgt + 0(%rip) |
8932 | addq %rbp, init_level4_pgt + (L4_PAGE_OFFSET*8)(%rip) | 9106 | addq %rbp, init_level4_pgt + (L4_PAGE_OFFSET*8)(%rip) |
@@ -8972,7 +9146,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_64.S linux-2.6.29.6/arch/x86/kern | |||
8972 | 9146 | ||
8973 | /* | 9147 | /* |
8974 | * Fixup the kernel text+data virtual addresses. Note that | 9148 | * Fixup the kernel text+data virtual addresses. Note that |
8975 | @@ -187,6 +178,10 @@ ENTRY(secondary_startup_64) | 9149 | @@ -188,6 +179,10 @@ ENTRY(secondary_startup_64) |
8976 | btl $20,%edi /* No Execute supported? */ | 9150 | btl $20,%edi /* No Execute supported? */ |
8977 | jnc 1f | 9151 | jnc 1f |
8978 | btsl $_EFER_NX, %eax | 9152 | btsl $_EFER_NX, %eax |
@@ -8983,10 +9157,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_64.S linux-2.6.29.6/arch/x86/kern | |||
8983 | 1: wrmsr /* Make changes effective */ | 9157 | 1: wrmsr /* Make changes effective */ |
8984 | 9158 | ||
8985 | /* Setup cr0 */ | 9159 | /* Setup cr0 */ |
8986 | @@ -257,16 +252,16 @@ ENTRY(secondary_startup_64) | 9160 | @@ -263,16 +258,16 @@ ENTRY(secondary_startup_64) |
8987 | .align 8 | ||
8988 | ENTRY(initial_code) | ||
8989 | .quad x86_64_start_kernel | 9161 | .quad x86_64_start_kernel |
9162 | ENTRY(initial_gs) | ||
9163 | .quad INIT_PER_CPU_VAR(irq_stack_union) | ||
8990 | - __FINITDATA | 9164 | - __FINITDATA |
8991 | 9165 | ||
8992 | ENTRY(stack_start) | 9166 | ENTRY(stack_start) |
@@ -9002,7 +9176,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_64.S linux-2.6.29.6/arch/x86/kern | |||
9002 | #ifdef CONFIG_EARLY_PRINTK | 9176 | #ifdef CONFIG_EARLY_PRINTK |
9003 | .globl early_idt_handlers | 9177 | .globl early_idt_handlers |
9004 | early_idt_handlers: | 9178 | early_idt_handlers: |
9005 | @@ -311,18 +306,23 @@ ENTRY(early_idt_handler) | 9179 | @@ -317,18 +312,23 @@ ENTRY(early_idt_handler) |
9006 | #endif /* EARLY_PRINTK */ | 9180 | #endif /* EARLY_PRINTK */ |
9007 | 1: hlt | 9181 | 1: hlt |
9008 | jmp 1b | 9182 | jmp 1b |
@@ -9024,10 +9198,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_64.S linux-2.6.29.6/arch/x86/kern | |||
9024 | +#endif /* CONFIG_EARLY_PRINTK */ | 9198 | +#endif /* CONFIG_EARLY_PRINTK */ |
9025 | 9199 | ||
9026 | + .section .rodata,"a",@progbits | 9200 | + .section .rodata,"a",@progbits |
9027 | .balign PAGE_SIZE | ||
9028 | |||
9029 | #define NEXT_PAGE(name) \ | 9201 | #define NEXT_PAGE(name) \ |
9030 | @@ -347,13 +347,27 @@ NEXT_PAGE(init_level4_pgt) | 9202 | .balign PAGE_SIZE; \ |
9203 | ENTRY(name) | ||
9204 | @@ -351,13 +351,27 @@ NEXT_PAGE(init_level4_pgt) | ||
9031 | .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE | 9205 | .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE |
9032 | .org init_level4_pgt + L4_PAGE_OFFSET*8, 0 | 9206 | .org init_level4_pgt + L4_PAGE_OFFSET*8, 0 |
9033 | .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE | 9207 | .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE |
@@ -9056,7 +9230,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_64.S linux-2.6.29.6/arch/x86/kern | |||
9056 | 9230 | ||
9057 | NEXT_PAGE(level3_kernel_pgt) | 9231 | NEXT_PAGE(level3_kernel_pgt) |
9058 | .fill L3_START_KERNEL,8,0 | 9232 | .fill L3_START_KERNEL,8,0 |
9059 | @@ -361,20 +375,27 @@ NEXT_PAGE(level3_kernel_pgt) | 9233 | @@ -365,20 +379,27 @@ NEXT_PAGE(level3_kernel_pgt) |
9060 | .quad level2_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE | 9234 | .quad level2_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE |
9061 | .quad level2_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE | 9235 | .quad level2_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE |
9062 | 9236 | ||
@@ -9089,7 +9263,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_64.S linux-2.6.29.6/arch/x86/kern | |||
9089 | 9263 | ||
9090 | NEXT_PAGE(level2_kernel_pgt) | 9264 | NEXT_PAGE(level2_kernel_pgt) |
9091 | /* | 9265 | /* |
9092 | @@ -387,32 +408,48 @@ NEXT_PAGE(level2_kernel_pgt) | 9266 | @@ -391,33 +412,49 @@ NEXT_PAGE(level2_kernel_pgt) |
9093 | * If you want to increase this then increase MODULES_VADDR | 9267 | * If you want to increase this then increase MODULES_VADDR |
9094 | * too.) | 9268 | * too.) |
9095 | */ | 9269 | */ |
@@ -9129,7 +9303,8 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_64.S linux-2.6.29.6/arch/x86/kern | |||
9129 | .globl early_gdt_descr | 9303 | .globl early_gdt_descr |
9130 | early_gdt_descr: | 9304 | early_gdt_descr: |
9131 | .word GDT_ENTRIES*8-1 | 9305 | .word GDT_ENTRIES*8-1 |
9132 | - .quad per_cpu__gdt_page | 9306 | early_gdt_descr_base: |
9307 | - .quad INIT_PER_CPU_VAR(gdt_page) | ||
9133 | + .quad cpu_gdt_table | 9308 | + .quad cpu_gdt_table |
9134 | 9309 | ||
9135 | ENTRY(phys_base) | 9310 | ENTRY(phys_base) |
@@ -9143,14 +9318,14 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/head_64.S linux-2.6.29.6/arch/x86/kern | |||
9143 | + .section .rodata,"a",@progbits | 9318 | + .section .rodata,"a",@progbits |
9144 | .align L1_CACHE_BYTES | 9319 | .align L1_CACHE_BYTES |
9145 | ENTRY(idt_table) | 9320 | ENTRY(idt_table) |
9146 | - .skip 256 * 16 | 9321 | - .skip IDT_ENTRIES * 16 |
9147 | + .fill 512,8,0 | 9322 | + .fill 512,8,0 |
9148 | 9323 | ||
9149 | .section .bss.page_aligned, "aw", @nobits | 9324 | .section .bss.page_aligned, "aw", @nobits |
9150 | .align PAGE_SIZE | 9325 | .align PAGE_SIZE |
9151 | diff -urNp linux-2.6.29.6/arch/x86/kernel/i386_ksyms_32.c linux-2.6.29.6/arch/x86/kernel/i386_ksyms_32.c | 9326 | diff -urNp linux-2.6.30.4/arch/x86/kernel/i386_ksyms_32.c linux-2.6.30.4/arch/x86/kernel/i386_ksyms_32.c |
9152 | --- linux-2.6.29.6/arch/x86/kernel/i386_ksyms_32.c 2009-07-02 19:41:20.000000000 -0400 | 9327 | --- linux-2.6.30.4/arch/x86/kernel/i386_ksyms_32.c 2009-07-24 17:47:51.000000000 -0400 |
9153 | +++ linux-2.6.29.6/arch/x86/kernel/i386_ksyms_32.c 2009-07-23 17:34:32.071712262 -0400 | 9328 | +++ linux-2.6.30.4/arch/x86/kernel/i386_ksyms_32.c 2009-07-30 09:48:09.948476455 -0400 |
9154 | @@ -10,8 +10,12 @@ | 9329 | @@ -10,8 +10,12 @@ |
9155 | EXPORT_SYMBOL(mcount); | 9330 | EXPORT_SYMBOL(mcount); |
9156 | #endif | 9331 | #endif |
@@ -9172,9 +9347,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/i386_ksyms_32.c linux-2.6.29.6/arch/x8 | |||
9172 | +#ifdef CONFIG_PAX_KERNEXEC | 9347 | +#ifdef CONFIG_PAX_KERNEXEC |
9173 | +EXPORT_SYMBOL(KERNEL_TEXT_OFFSET); | 9348 | +EXPORT_SYMBOL(KERNEL_TEXT_OFFSET); |
9174 | +#endif | 9349 | +#endif |
9175 | diff -urNp linux-2.6.29.6/arch/x86/kernel/init_task.c linux-2.6.29.6/arch/x86/kernel/init_task.c | 9350 | diff -urNp linux-2.6.30.4/arch/x86/kernel/init_task.c linux-2.6.30.4/arch/x86/kernel/init_task.c |
9176 | --- linux-2.6.29.6/arch/x86/kernel/init_task.c 2009-07-02 19:41:20.000000000 -0400 | 9351 | --- linux-2.6.30.4/arch/x86/kernel/init_task.c 2009-07-24 17:47:51.000000000 -0400 |
9177 | +++ linux-2.6.29.6/arch/x86/kernel/init_task.c 2009-07-23 17:34:32.071712262 -0400 | 9352 | +++ linux-2.6.30.4/arch/x86/kernel/init_task.c 2009-07-30 09:48:09.948476455 -0400 |
9178 | @@ -40,5 +40,5 @@ EXPORT_SYMBOL(init_task); | 9353 | @@ -40,5 +40,5 @@ EXPORT_SYMBOL(init_task); |
9179 | * section. Since TSS's are completely CPU-local, we want them | 9354 | * section. Since TSS's are completely CPU-local, we want them |
9180 | * on exact cacheline boundaries, to eliminate cacheline ping-pong. | 9355 | * on exact cacheline boundaries, to eliminate cacheline ping-pong. |
@@ -9183,9 +9358,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/init_task.c linux-2.6.29.6/arch/x86/ke | |||
9183 | - | 9358 | - |
9184 | +struct tss_struct init_tss[NR_CPUS] ____cacheline_internodealigned_in_smp = { [0 ... NR_CPUS-1] = INIT_TSS }; | 9359 | +struct tss_struct init_tss[NR_CPUS] ____cacheline_internodealigned_in_smp = { [0 ... NR_CPUS-1] = INIT_TSS }; |
9185 | +EXPORT_SYMBOL(init_tss); | 9360 | +EXPORT_SYMBOL(init_tss); |
9186 | diff -urNp linux-2.6.29.6/arch/x86/kernel/ioport.c linux-2.6.29.6/arch/x86/kernel/ioport.c | 9361 | diff -urNp linux-2.6.30.4/arch/x86/kernel/ioport.c linux-2.6.30.4/arch/x86/kernel/ioport.c |
9187 | --- linux-2.6.29.6/arch/x86/kernel/ioport.c 2009-07-02 19:41:20.000000000 -0400 | 9362 | --- linux-2.6.30.4/arch/x86/kernel/ioport.c 2009-07-24 17:47:51.000000000 -0400 |
9188 | +++ linux-2.6.29.6/arch/x86/kernel/ioport.c 2009-07-23 17:34:32.071712262 -0400 | 9363 | +++ linux-2.6.30.4/arch/x86/kernel/ioport.c 2009-07-30 11:10:48.918448854 -0400 |
9189 | @@ -6,6 +6,7 @@ | 9364 | @@ -6,6 +6,7 @@ |
9190 | #include <linux/sched.h> | 9365 | #include <linux/sched.h> |
9191 | #include <linux/kernel.h> | 9366 | #include <linux/kernel.h> |
@@ -9216,7 +9391,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/ioport.c linux-2.6.29.6/arch/x86/kerne | |||
9216 | 9391 | ||
9217 | set_bitmap(t->io_bitmap_ptr, from, num, !turn_on); | 9392 | set_bitmap(t->io_bitmap_ptr, from, num, !turn_on); |
9218 | 9393 | ||
9219 | @@ -122,8 +129,13 @@ static int do_iopl(unsigned int level, s | 9394 | @@ -111,8 +118,13 @@ static int do_iopl(unsigned int level, s |
9220 | return -EINVAL; | 9395 | return -EINVAL; |
9221 | /* Trying to gain more privileges? */ | 9396 | /* Trying to gain more privileges? */ |
9222 | if (level > old) { | 9397 | if (level > old) { |
@@ -9230,10 +9405,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/ioport.c linux-2.6.29.6/arch/x86/kerne | |||
9230 | } | 9405 | } |
9231 | regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | (level << 12); | 9406 | regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | (level << 12); |
9232 | 9407 | ||
9233 | diff -urNp linux-2.6.29.6/arch/x86/kernel/irq_32.c linux-2.6.29.6/arch/x86/kernel/irq_32.c | 9408 | diff -urNp linux-2.6.30.4/arch/x86/kernel/irq_32.c linux-2.6.30.4/arch/x86/kernel/irq_32.c |
9234 | --- linux-2.6.29.6/arch/x86/kernel/irq_32.c 2009-07-02 19:41:20.000000000 -0400 | 9409 | --- linux-2.6.30.4/arch/x86/kernel/irq_32.c 2009-07-24 17:47:51.000000000 -0400 |
9235 | +++ linux-2.6.29.6/arch/x86/kernel/irq_32.c 2009-07-23 17:34:32.071712262 -0400 | 9410 | +++ linux-2.6.30.4/arch/x86/kernel/irq_32.c 2009-07-30 09:48:09.948476455 -0400 |
9236 | @@ -93,7 +93,7 @@ execute_on_irq_stack(int overflow, struc | 9411 | @@ -94,7 +94,7 @@ execute_on_irq_stack(int overflow, struc |
9237 | return 0; | 9412 | return 0; |
9238 | 9413 | ||
9239 | /* build the stack frame on the IRQ stack */ | 9414 | /* build the stack frame on the IRQ stack */ |
@@ -9242,7 +9417,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/irq_32.c linux-2.6.29.6/arch/x86/kerne | |||
9242 | irqctx->tinfo.task = curctx->tinfo.task; | 9417 | irqctx->tinfo.task = curctx->tinfo.task; |
9243 | irqctx->tinfo.previous_esp = current_stack_pointer; | 9418 | irqctx->tinfo.previous_esp = current_stack_pointer; |
9244 | 9419 | ||
9245 | @@ -174,7 +174,7 @@ asmlinkage void do_softirq(void) | 9420 | @@ -175,7 +175,7 @@ asmlinkage void do_softirq(void) |
9246 | irqctx->tinfo.previous_esp = current_stack_pointer; | 9421 | irqctx->tinfo.previous_esp = current_stack_pointer; |
9247 | 9422 | ||
9248 | /* build the stack frame on the softirq stack */ | 9423 | /* build the stack frame on the softirq stack */ |
@@ -9251,9 +9426,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/irq_32.c linux-2.6.29.6/arch/x86/kerne | |||
9251 | 9426 | ||
9252 | call_on_stack(__do_softirq, isp); | 9427 | call_on_stack(__do_softirq, isp); |
9253 | /* | 9428 | /* |
9254 | diff -urNp linux-2.6.29.6/arch/x86/kernel/kprobes.c linux-2.6.29.6/arch/x86/kernel/kprobes.c | 9429 | diff -urNp linux-2.6.30.4/arch/x86/kernel/kprobes.c linux-2.6.30.4/arch/x86/kernel/kprobes.c |
9255 | --- linux-2.6.29.6/arch/x86/kernel/kprobes.c 2009-07-02 19:41:20.000000000 -0400 | 9430 | --- linux-2.6.30.4/arch/x86/kernel/kprobes.c 2009-07-24 17:47:51.000000000 -0400 |
9256 | +++ linux-2.6.29.6/arch/x86/kernel/kprobes.c 2009-07-23 17:34:32.072711199 -0400 | 9431 | +++ linux-2.6.30.4/arch/x86/kernel/kprobes.c 2009-07-30 09:48:09.948476455 -0400 |
9257 | @@ -166,9 +166,24 @@ static void __kprobes set_jmp_op(void *f | 9432 | @@ -166,9 +166,24 @@ static void __kprobes set_jmp_op(void *f |
9258 | char op; | 9433 | char op; |
9259 | s32 raddr; | 9434 | s32 raddr; |
@@ -9340,7 +9515,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/kprobes.c linux-2.6.29.6/arch/x86/kern | |||
9340 | /* | 9515 | /* |
9341 | * The breakpoint instruction was removed right | 9516 | * The breakpoint instruction was removed right |
9342 | * after we hit it. Another cpu has removed | 9517 | * after we hit it. Another cpu has removed |
9343 | @@ -774,7 +802,7 @@ static void __kprobes resume_execution(s | 9518 | @@ -775,7 +803,7 @@ static void __kprobes resume_execution(s |
9344 | struct pt_regs *regs, struct kprobe_ctlblk *kcb) | 9519 | struct pt_regs *regs, struct kprobe_ctlblk *kcb) |
9345 | { | 9520 | { |
9346 | unsigned long *tos = stack_addr(regs); | 9521 | unsigned long *tos = stack_addr(regs); |
@@ -9349,7 +9524,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/kprobes.c linux-2.6.29.6/arch/x86/kern | |||
9349 | unsigned long orig_ip = (unsigned long)p->addr; | 9524 | unsigned long orig_ip = (unsigned long)p->addr; |
9350 | kprobe_opcode_t *insn = p->ainsn.insn; | 9525 | kprobe_opcode_t *insn = p->ainsn.insn; |
9351 | 9526 | ||
9352 | @@ -957,7 +985,7 @@ int __kprobes kprobe_exceptions_notify(s | 9527 | @@ -958,7 +986,7 @@ int __kprobes kprobe_exceptions_notify(s |
9353 | struct die_args *args = data; | 9528 | struct die_args *args = data; |
9354 | int ret = NOTIFY_DONE; | 9529 | int ret = NOTIFY_DONE; |
9355 | 9530 | ||
@@ -9358,9 +9533,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/kprobes.c linux-2.6.29.6/arch/x86/kern | |||
9358 | return ret; | 9533 | return ret; |
9359 | 9534 | ||
9360 | switch (val) { | 9535 | switch (val) { |
9361 | diff -urNp linux-2.6.29.6/arch/x86/kernel/ldt.c linux-2.6.29.6/arch/x86/kernel/ldt.c | 9536 | diff -urNp linux-2.6.30.4/arch/x86/kernel/ldt.c linux-2.6.30.4/arch/x86/kernel/ldt.c |
9362 | --- linux-2.6.29.6/arch/x86/kernel/ldt.c 2009-07-02 19:41:20.000000000 -0400 | 9537 | --- linux-2.6.30.4/arch/x86/kernel/ldt.c 2009-07-24 17:47:51.000000000 -0400 |
9363 | +++ linux-2.6.29.6/arch/x86/kernel/ldt.c 2009-07-23 17:34:32.072711199 -0400 | 9538 | +++ linux-2.6.30.4/arch/x86/kernel/ldt.c 2009-07-30 09:48:09.950015875 -0400 |
9364 | @@ -66,13 +66,13 @@ static int alloc_ldt(mm_context_t *pc, i | 9539 | @@ -66,13 +66,13 @@ static int alloc_ldt(mm_context_t *pc, i |
9365 | if (reload) { | 9540 | if (reload) { |
9366 | #ifdef CONFIG_SMP | 9541 | #ifdef CONFIG_SMP |
@@ -9425,9 +9600,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/ldt.c linux-2.6.29.6/arch/x86/kernel/l | |||
9425 | fill_ldt(&ldt, &ldt_info); | 9600 | fill_ldt(&ldt, &ldt_info); |
9426 | if (oldmode) | 9601 | if (oldmode) |
9427 | ldt.avl = 0; | 9602 | ldt.avl = 0; |
9428 | diff -urNp linux-2.6.29.6/arch/x86/kernel/machine_kexec_32.c linux-2.6.29.6/arch/x86/kernel/machine_kexec_32.c | 9603 | diff -urNp linux-2.6.30.4/arch/x86/kernel/machine_kexec_32.c linux-2.6.30.4/arch/x86/kernel/machine_kexec_32.c |
9429 | --- linux-2.6.29.6/arch/x86/kernel/machine_kexec_32.c 2009-07-02 19:41:20.000000000 -0400 | 9604 | --- linux-2.6.30.4/arch/x86/kernel/machine_kexec_32.c 2009-07-24 17:47:51.000000000 -0400 |
9430 | +++ linux-2.6.29.6/arch/x86/kernel/machine_kexec_32.c 2009-07-23 17:34:32.072711199 -0400 | 9605 | +++ linux-2.6.30.4/arch/x86/kernel/machine_kexec_32.c 2009-07-30 09:48:09.950015875 -0400 |
9431 | @@ -26,7 +26,7 @@ | 9606 | @@ -26,7 +26,7 @@ |
9432 | #include <asm/system.h> | 9607 | #include <asm/system.h> |
9433 | #include <asm/cacheflush.h> | 9608 | #include <asm/cacheflush.h> |
@@ -9446,7 +9621,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/machine_kexec_32.c linux-2.6.29.6/arch | |||
9446 | { | 9621 | { |
9447 | struct desc_ptr curgdt; | 9622 | struct desc_ptr curgdt; |
9448 | 9623 | ||
9449 | @@ -216,7 +216,7 @@ void machine_kexec(struct kimage *image) | 9624 | @@ -217,7 +217,7 @@ void machine_kexec(struct kimage *image) |
9450 | } | 9625 | } |
9451 | 9626 | ||
9452 | control_page = page_address(image->control_code_page); | 9627 | control_page = page_address(image->control_code_page); |
@@ -9455,9 +9630,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/machine_kexec_32.c linux-2.6.29.6/arch | |||
9455 | 9630 | ||
9456 | relocate_kernel_ptr = control_page; | 9631 | relocate_kernel_ptr = control_page; |
9457 | page_list[PA_CONTROL_PAGE] = __pa(control_page); | 9632 | page_list[PA_CONTROL_PAGE] = __pa(control_page); |
9458 | diff -urNp linux-2.6.29.6/arch/x86/kernel/module_32.c linux-2.6.29.6/arch/x86/kernel/module_32.c | 9633 | diff -urNp linux-2.6.30.4/arch/x86/kernel/module_32.c linux-2.6.30.4/arch/x86/kernel/module_32.c |
9459 | --- linux-2.6.29.6/arch/x86/kernel/module_32.c 2009-07-02 19:41:20.000000000 -0400 | 9634 | --- linux-2.6.30.4/arch/x86/kernel/module_32.c 2009-07-24 17:47:51.000000000 -0400 |
9460 | +++ linux-2.6.29.6/arch/x86/kernel/module_32.c 2009-07-23 17:34:32.072711199 -0400 | 9635 | +++ linux-2.6.30.4/arch/x86/kernel/module_32.c 2009-08-01 15:35:35.138919235 -0400 |
9461 | @@ -23,6 +23,9 @@ | 9636 | @@ -23,6 +23,9 @@ |
9462 | #include <linux/kernel.h> | 9637 | #include <linux/kernel.h> |
9463 | #include <linux/bug.h> | 9638 | #include <linux/bug.h> |
@@ -9500,8 +9675,8 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/module_32.c linux-2.6.29.6/arch/x86/ke | |||
9500 | 9675 | ||
9501 | /* Free memory returned from module_alloc */ | 9676 | /* Free memory returned from module_alloc */ |
9502 | void module_free(struct module *mod, void *module_region) | 9677 | void module_free(struct module *mod, void *module_region) |
9503 | @@ -45,6 +70,45 @@ void module_free(struct module *mod, voi | 9678 | @@ -45,6 +70,46 @@ void module_free(struct module *mod, voi |
9504 | table entries. */ | 9679 | table entries. */ |
9505 | } | 9680 | } |
9506 | 9681 | ||
9507 | +#ifdef CONFIG_PAX_KERNEXEC | 9682 | +#ifdef CONFIG_PAX_KERNEXEC |
@@ -9541,12 +9716,13 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/module_32.c linux-2.6.29.6/arch/x86/ke | |||
9541 | + WARN_ON(1); | 9716 | + WARN_ON(1); |
9542 | + } | 9717 | + } |
9543 | +} | 9718 | +} |
9719 | +EXPORT_SYMBOL(module_free_exec); | ||
9544 | +#endif | 9720 | +#endif |
9545 | + | 9721 | + |
9546 | /* We don't need anything special. */ | 9722 | /* We don't need anything special. */ |
9547 | int module_frob_arch_sections(Elf_Ehdr *hdr, | 9723 | int module_frob_arch_sections(Elf_Ehdr *hdr, |
9548 | Elf_Shdr *sechdrs, | 9724 | Elf_Shdr *sechdrs, |
9549 | @@ -63,14 +127,20 @@ int apply_relocate(Elf32_Shdr *sechdrs, | 9725 | @@ -63,14 +128,20 @@ int apply_relocate(Elf32_Shdr *sechdrs, |
9550 | unsigned int i; | 9726 | unsigned int i; |
9551 | Elf32_Rel *rel = (void *)sechdrs[relsec].sh_addr; | 9727 | Elf32_Rel *rel = (void *)sechdrs[relsec].sh_addr; |
9552 | Elf32_Sym *sym; | 9728 | Elf32_Sym *sym; |
@@ -9570,7 +9746,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/module_32.c linux-2.6.29.6/arch/x86/ke | |||
9570 | /* This is the symbol it is referring to. Note that all | 9746 | /* This is the symbol it is referring to. Note that all |
9571 | undefined symbols have been resolved. */ | 9747 | undefined symbols have been resolved. */ |
9572 | sym = (Elf32_Sym *)sechdrs[symindex].sh_addr | 9748 | sym = (Elf32_Sym *)sechdrs[symindex].sh_addr |
9573 | @@ -78,12 +148,32 @@ int apply_relocate(Elf32_Shdr *sechdrs, | 9749 | @@ -78,12 +149,32 @@ int apply_relocate(Elf32_Shdr *sechdrs, |
9574 | 9750 | ||
9575 | switch (ELF32_R_TYPE(rel[i].r_info)) { | 9751 | switch (ELF32_R_TYPE(rel[i].r_info)) { |
9576 | case R_386_32: | 9752 | case R_386_32: |
@@ -9605,11 +9781,11 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/module_32.c linux-2.6.29.6/arch/x86/ke | |||
9605 | break; | 9781 | break; |
9606 | default: | 9782 | default: |
9607 | printk(KERN_ERR "module %s: Unknown relocation: %u\n", | 9783 | printk(KERN_ERR "module %s: Unknown relocation: %u\n", |
9608 | diff -urNp linux-2.6.29.6/arch/x86/kernel/module_64.c linux-2.6.29.6/arch/x86/kernel/module_64.c | 9784 | diff -urNp linux-2.6.30.4/arch/x86/kernel/module_64.c linux-2.6.30.4/arch/x86/kernel/module_64.c |
9609 | --- linux-2.6.29.6/arch/x86/kernel/module_64.c 2009-07-02 19:41:20.000000000 -0400 | 9785 | --- linux-2.6.30.4/arch/x86/kernel/module_64.c 2009-07-24 17:47:51.000000000 -0400 |
9610 | +++ linux-2.6.29.6/arch/x86/kernel/module_64.c 2009-07-23 17:34:32.072711199 -0400 | 9786 | +++ linux-2.6.30.4/arch/x86/kernel/module_64.c 2009-08-01 15:35:35.161871747 -0400 |
9611 | @@ -40,7 +40,7 @@ void module_free(struct module *mod, voi | 9787 | @@ -40,7 +40,7 @@ void module_free(struct module *mod, voi |
9612 | table entries. */ | 9788 | table entries. */ |
9613 | } | 9789 | } |
9614 | 9790 | ||
9615 | -void *module_alloc(unsigned long size) | 9791 | -void *module_alloc(unsigned long size) |
@@ -9617,7 +9793,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/module_64.c linux-2.6.29.6/arch/x86/ke | |||
9617 | { | 9793 | { |
9618 | struct vm_struct *area; | 9794 | struct vm_struct *area; |
9619 | 9795 | ||
9620 | @@ -54,8 +54,31 @@ void *module_alloc(unsigned long size) | 9796 | @@ -54,8 +54,33 @@ void *module_alloc(unsigned long size) |
9621 | if (!area) | 9797 | if (!area) |
9622 | return NULL; | 9798 | return NULL; |
9623 | 9799 | ||
@@ -9635,10 +9811,12 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/module_64.c linux-2.6.29.6/arch/x86/ke | |||
9635 | +{ | 9811 | +{ |
9636 | + module_free(mod, module_region); | 9812 | + module_free(mod, module_region); |
9637 | +} | 9813 | +} |
9814 | +EXPORT_SYMBOL(module_free_exec); | ||
9638 | + | 9815 | + |
9639 | +void *module_alloc_exec(unsigned long size) | 9816 | +void *module_alloc_exec(unsigned long size) |
9640 | +{ | 9817 | +{ |
9641 | + return __module_alloc(size, PAGE_KERNEL_RX); | 9818 | + return __module_alloc(size, PAGE_KERNEL_RX); |
9819 | +EXPORT_SYMBOL(module_alloc_exec); | ||
9642 | } | 9820 | } |
9643 | +#else | 9821 | +#else |
9644 | +void *module_alloc(unsigned long size) | 9822 | +void *module_alloc(unsigned long size) |
@@ -9650,20 +9828,18 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/module_64.c linux-2.6.29.6/arch/x86/ke | |||
9650 | #endif | 9828 | #endif |
9651 | 9829 | ||
9652 | /* We don't need anything special. */ | 9830 | /* We don't need anything special. */ |
9653 | @@ -77,7 +100,11 @@ int apply_relocate_add(Elf64_Shdr *sechd | 9831 | @@ -79,6 +104,10 @@ int apply_relocate_add(Elf64_Shdr *sechd |
9654 | Elf64_Rela *rel = (void *)sechdrs[relsec].sh_addr; | ||
9655 | Elf64_Sym *sym; | ||
9656 | void *loc; | 9832 | void *loc; |
9657 | - u64 val; | 9833 | u64 val; |
9658 | + u64 val; | 9834 | |
9659 | + | ||
9660 | +#ifdef CONFIG_PAX_KERNEXEC | 9835 | +#ifdef CONFIG_PAX_KERNEXEC |
9661 | + unsigned long cr0; | 9836 | + unsigned long cr0; |
9662 | +#endif | 9837 | +#endif |
9663 | 9838 | + | |
9664 | DEBUGP("Applying relocate section %u to %u\n", relsec, | 9839 | DEBUGP("Applying relocate section %u to %u\n", relsec, |
9665 | sechdrs[relsec].sh_info); | 9840 | sechdrs[relsec].sh_info); |
9666 | @@ -101,21 +128,61 @@ int apply_relocate_add(Elf64_Shdr *sechd | 9841 | for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) { |
9842 | @@ -101,21 +130,61 @@ int apply_relocate_add(Elf64_Shdr *sechd | ||
9667 | case R_X86_64_NONE: | 9843 | case R_X86_64_NONE: |
9668 | break; | 9844 | break; |
9669 | case R_X86_64_64: | 9845 | case R_X86_64_64: |
@@ -9709,7 +9885,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/module_64.c linux-2.6.29.6/arch/x86/ke | |||
9709 | if ((s64)val != *(s32 *)loc) | 9885 | if ((s64)val != *(s32 *)loc) |
9710 | goto overflow; | 9886 | goto overflow; |
9711 | break; | 9887 | break; |
9712 | case R_X86_64_PC32: | 9888 | case R_X86_64_PC32: |
9713 | val -= (u64)loc; | 9889 | val -= (u64)loc; |
9714 | + | 9890 | + |
9715 | +#ifdef CONFIG_PAX_KERNEXEC | 9891 | +#ifdef CONFIG_PAX_KERNEXEC |
@@ -9724,12 +9900,12 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/module_64.c linux-2.6.29.6/arch/x86/ke | |||
9724 | + | 9900 | + |
9725 | #if 0 | 9901 | #if 0 |
9726 | if ((s64)val != *(s32 *)loc) | 9902 | if ((s64)val != *(s32 *)loc) |
9727 | goto overflow; | 9903 | goto overflow; |
9728 | diff -urNp linux-2.6.29.6/arch/x86/kernel/paravirt.c linux-2.6.29.6/arch/x86/kernel/paravirt.c | 9904 | diff -urNp linux-2.6.30.4/arch/x86/kernel/paravirt.c linux-2.6.30.4/arch/x86/kernel/paravirt.c |
9729 | --- linux-2.6.29.6/arch/x86/kernel/paravirt.c 2009-07-02 19:41:20.000000000 -0400 | 9905 | --- linux-2.6.30.4/arch/x86/kernel/paravirt.c 2009-07-24 17:47:51.000000000 -0400 |
9730 | +++ linux-2.6.29.6/arch/x86/kernel/paravirt.c 2009-07-23 17:34:32.073727851 -0400 | 9906 | +++ linux-2.6.30.4/arch/x86/kernel/paravirt.c 2009-07-30 09:48:09.950702241 -0400 |
9731 | @@ -44,7 +44,7 @@ void _paravirt_nop(void) | 9907 | @@ -54,7 +54,7 @@ u64 _paravirt_ident_64(u64 x) |
9732 | { | 9908 | return x; |
9733 | } | 9909 | } |
9734 | 9910 | ||
9735 | -static void __init default_banner(void) | 9911 | -static void __init default_banner(void) |
@@ -9737,7 +9913,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/paravirt.c linux-2.6.29.6/arch/x86/ker | |||
9737 | { | 9913 | { |
9738 | printk(KERN_INFO "Booting paravirtualized kernel on %s\n", | 9914 | printk(KERN_INFO "Booting paravirtualized kernel on %s\n", |
9739 | pv_info.name); | 9915 | pv_info.name); |
9740 | @@ -164,7 +164,7 @@ unsigned paravirt_patch_insns(void *insn | 9916 | @@ -183,7 +183,7 @@ unsigned paravirt_patch_insns(void *insn |
9741 | if (insn_len > len || start == NULL) | 9917 | if (insn_len > len || start == NULL) |
9742 | insn_len = len; | 9918 | insn_len = len; |
9743 | else | 9919 | else |
@@ -9746,7 +9922,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/paravirt.c linux-2.6.29.6/arch/x86/ker | |||
9746 | 9922 | ||
9747 | return insn_len; | 9923 | return insn_len; |
9748 | } | 9924 | } |
9749 | @@ -294,21 +294,21 @@ void arch_flush_lazy_cpu_mode(void) | 9925 | @@ -313,21 +313,21 @@ void arch_flush_lazy_cpu_mode(void) |
9750 | preempt_enable(); | 9926 | preempt_enable(); |
9751 | } | 9927 | } |
9752 | 9928 | ||
@@ -9771,16 +9947,16 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/paravirt.c linux-2.6.29.6/arch/x86/ker | |||
9771 | .time_init = hpet_time_init, | 9947 | .time_init = hpet_time_init, |
9772 | .get_wallclock = native_get_wallclock, | 9948 | .get_wallclock = native_get_wallclock, |
9773 | .set_wallclock = native_set_wallclock, | 9949 | .set_wallclock = native_set_wallclock, |
9774 | @@ -316,7 +316,7 @@ struct pv_time_ops pv_time_ops = { | 9950 | @@ -335,7 +335,7 @@ struct pv_time_ops pv_time_ops = { |
9775 | .get_tsc_khz = native_calibrate_tsc, | 9951 | .get_tsc_khz = native_calibrate_tsc, |
9776 | }; | 9952 | }; |
9777 | 9953 | ||
9778 | -struct pv_irq_ops pv_irq_ops = { | 9954 | -struct pv_irq_ops pv_irq_ops = { |
9779 | +struct pv_irq_ops pv_irq_ops __read_only = { | 9955 | +struct pv_irq_ops pv_irq_ops __read_only = { |
9780 | .init_IRQ = native_init_IRQ, | 9956 | .init_IRQ = native_init_IRQ, |
9781 | .save_fl = native_save_fl, | 9957 | .save_fl = __PV_IS_CALLEE_SAVE(native_save_fl), |
9782 | .restore_fl = native_restore_fl, | 9958 | .restore_fl = __PV_IS_CALLEE_SAVE(native_restore_fl), |
9783 | @@ -329,7 +329,7 @@ struct pv_irq_ops pv_irq_ops = { | 9959 | @@ -348,7 +348,7 @@ struct pv_irq_ops pv_irq_ops = { |
9784 | #endif | 9960 | #endif |
9785 | }; | 9961 | }; |
9786 | 9962 | ||
@@ -9789,7 +9965,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/paravirt.c linux-2.6.29.6/arch/x86/ker | |||
9789 | .cpuid = native_cpuid, | 9965 | .cpuid = native_cpuid, |
9790 | .get_debugreg = native_get_debugreg, | 9966 | .get_debugreg = native_get_debugreg, |
9791 | .set_debugreg = native_set_debugreg, | 9967 | .set_debugreg = native_set_debugreg, |
9792 | @@ -391,7 +391,7 @@ struct pv_cpu_ops pv_cpu_ops = { | 9968 | @@ -410,7 +410,7 @@ struct pv_cpu_ops pv_cpu_ops = { |
9793 | }, | 9969 | }, |
9794 | }; | 9970 | }; |
9795 | 9971 | ||
@@ -9798,18 +9974,18 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/paravirt.c linux-2.6.29.6/arch/x86/ker | |||
9798 | #ifdef CONFIG_X86_LOCAL_APIC | 9974 | #ifdef CONFIG_X86_LOCAL_APIC |
9799 | .setup_boot_clock = setup_boot_APIC_clock, | 9975 | .setup_boot_clock = setup_boot_APIC_clock, |
9800 | .setup_secondary_clock = setup_secondary_APIC_clock, | 9976 | .setup_secondary_clock = setup_secondary_APIC_clock, |
9801 | @@ -399,7 +399,7 @@ struct pv_apic_ops pv_apic_ops = { | 9977 | @@ -426,7 +426,7 @@ struct pv_apic_ops pv_apic_ops = { |
9978 | #define PTE_IDENT __PV_IS_CALLEE_SAVE(_paravirt_ident_64) | ||
9802 | #endif | 9979 | #endif |
9803 | }; | ||
9804 | 9980 | ||
9805 | -struct pv_mmu_ops pv_mmu_ops = { | 9981 | -struct pv_mmu_ops pv_mmu_ops = { |
9806 | +struct pv_mmu_ops pv_mmu_ops __read_only = { | 9982 | +struct pv_mmu_ops pv_mmu_ops __read_only = { |
9807 | #ifndef CONFIG_X86_64 | 9983 | #ifndef CONFIG_X86_64 |
9808 | .pagetable_setup_start = native_pagetable_setup_start, | 9984 | .pagetable_setup_start = native_pagetable_setup_start, |
9809 | .pagetable_setup_done = native_pagetable_setup_done, | 9985 | .pagetable_setup_done = native_pagetable_setup_done, |
9810 | diff -urNp linux-2.6.29.6/arch/x86/kernel/paravirt-spinlocks.c linux-2.6.29.6/arch/x86/kernel/paravirt-spinlocks.c | 9986 | diff -urNp linux-2.6.30.4/arch/x86/kernel/paravirt-spinlocks.c linux-2.6.30.4/arch/x86/kernel/paravirt-spinlocks.c |
9811 | --- linux-2.6.29.6/arch/x86/kernel/paravirt-spinlocks.c 2009-07-02 19:41:20.000000000 -0400 | 9987 | --- linux-2.6.30.4/arch/x86/kernel/paravirt-spinlocks.c 2009-07-24 17:47:51.000000000 -0400 |
9812 | +++ linux-2.6.29.6/arch/x86/kernel/paravirt-spinlocks.c 2009-07-23 17:34:32.073727851 -0400 | 9988 | +++ linux-2.6.30.4/arch/x86/kernel/paravirt-spinlocks.c 2009-07-30 09:48:09.950702241 -0400 |
9813 | @@ -13,7 +13,7 @@ default_spin_lock_flags(raw_spinlock_t * | 9989 | @@ -13,7 +13,7 @@ default_spin_lock_flags(raw_spinlock_t * |
9814 | __raw_spin_lock(lock); | 9990 | __raw_spin_lock(lock); |
9815 | } | 9991 | } |
@@ -9819,21 +9995,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/paravirt-spinlocks.c linux-2.6.29.6/ar | |||
9819 | #ifdef CONFIG_SMP | 9995 | #ifdef CONFIG_SMP |
9820 | .spin_is_locked = __ticket_spin_is_locked, | 9996 | .spin_is_locked = __ticket_spin_is_locked, |
9821 | .spin_is_contended = __ticket_spin_is_contended, | 9997 | .spin_is_contended = __ticket_spin_is_contended, |
9822 | diff -urNp linux-2.6.29.6/arch/x86/kernel/process_32.c linux-2.6.29.6/arch/x86/kernel/process_32.c | 9998 | diff -urNp linux-2.6.30.4/arch/x86/kernel/process_32.c linux-2.6.30.4/arch/x86/kernel/process_32.c |
9823 | --- linux-2.6.29.6/arch/x86/kernel/process_32.c 2009-07-02 19:41:20.000000000 -0400 | 9999 | --- linux-2.6.30.4/arch/x86/kernel/process_32.c 2009-07-24 17:47:51.000000000 -0400 |
9824 | +++ linux-2.6.29.6/arch/x86/kernel/process_32.c 2009-07-23 17:34:32.073727851 -0400 | 10000 | +++ linux-2.6.30.4/arch/x86/kernel/process_32.c 2009-07-30 09:48:09.951950745 -0400 |
9825 | @@ -66,8 +66,10 @@ asmlinkage void ret_from_fork(void) __as | 10001 | @@ -73,6 +73,7 @@ EXPORT_PER_CPU_SYMBOL(current_task); |
9826 | DEFINE_PER_CPU(struct task_struct *, current_task) = &init_task; | ||
9827 | EXPORT_PER_CPU_SYMBOL(current_task); | ||
9828 | |||
9829 | +#ifdef CONFIG_SMP | ||
9830 | DEFINE_PER_CPU(int, cpu_number); | ||
9831 | EXPORT_PER_CPU_SYMBOL(cpu_number); | ||
9832 | +#endif | ||
9833 | |||
9834 | /* | ||
9835 | * Return saved PC of a blocked thread. | ||
9836 | @@ -75,6 +77,7 @@ EXPORT_PER_CPU_SYMBOL(cpu_number); | ||
9837 | unsigned long thread_saved_pc(struct task_struct *tsk) | 10002 | unsigned long thread_saved_pc(struct task_struct *tsk) |
9838 | { | 10003 | { |
9839 | return ((unsigned long *)tsk->thread.sp)[3]; | 10004 | return ((unsigned long *)tsk->thread.sp)[3]; |
@@ -9841,7 +10006,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/process_32.c linux-2.6.29.6/arch/x86/k | |||
9841 | } | 10006 | } |
9842 | 10007 | ||
9843 | #ifndef CONFIG_SMP | 10008 | #ifndef CONFIG_SMP |
9844 | @@ -129,7 +132,7 @@ void __show_regs(struct pt_regs *regs, i | 10009 | @@ -135,7 +136,7 @@ void __show_regs(struct pt_regs *regs, i |
9845 | unsigned short ss, gs; | 10010 | unsigned short ss, gs; |
9846 | const char *board; | 10011 | const char *board; |
9847 | 10012 | ||
@@ -9849,8 +10014,8 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/process_32.c linux-2.6.29.6/arch/x86/k | |||
9849 | + if (user_mode(regs)) { | 10014 | + if (user_mode(regs)) { |
9850 | sp = regs->sp; | 10015 | sp = regs->sp; |
9851 | ss = regs->ss & 0xffff; | 10016 | ss = regs->ss & 0xffff; |
9852 | savesegment(gs, gs); | 10017 | gs = get_user_gs(regs); |
9853 | @@ -210,8 +213,8 @@ int kernel_thread(int (*fn)(void *), voi | 10018 | @@ -216,8 +217,8 @@ int kernel_thread(int (*fn)(void *), voi |
9854 | regs.bx = (unsigned long) fn; | 10019 | regs.bx = (unsigned long) fn; |
9855 | regs.dx = (unsigned long) arg; | 10020 | regs.dx = (unsigned long) arg; |
9856 | 10021 | ||
@@ -9859,26 +10024,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/process_32.c linux-2.6.29.6/arch/x86/k | |||
9859 | + regs.ds = __KERNEL_DS; | 10024 | + regs.ds = __KERNEL_DS; |
9860 | + regs.es = __KERNEL_DS; | 10025 | + regs.es = __KERNEL_DS; |
9861 | regs.fs = __KERNEL_PERCPU; | 10026 | regs.fs = __KERNEL_PERCPU; |
10027 | regs.gs = __KERNEL_STACK_CANARY; | ||
9862 | regs.orig_ax = -1; | 10028 | regs.orig_ax = -1; |
9863 | regs.ip = (unsigned long) kernel_thread_helper; | 10029 | @@ -253,7 +254,7 @@ int copy_thread(unsigned long clone_flag |
9864 | @@ -233,7 +236,7 @@ void exit_thread(void) | ||
9865 | struct task_struct *tsk = current; | ||
9866 | struct thread_struct *t = &tsk->thread; | ||
9867 | int cpu = get_cpu(); | ||
9868 | - struct tss_struct *tss = &per_cpu(init_tss, cpu); | ||
9869 | + struct tss_struct *tss = init_tss + cpu; | ||
9870 | |||
9871 | kfree(t->io_bitmap_ptr); | ||
9872 | t->io_bitmap_ptr = NULL; | ||
9873 | @@ -256,6 +259,7 @@ void flush_thread(void) | ||
9874 | { | ||
9875 | struct task_struct *tsk = current; | ||
9876 | |||
9877 | + loadsegment(gs, 0); | ||
9878 | tsk->thread.debugreg0 = 0; | ||
9879 | tsk->thread.debugreg1 = 0; | ||
9880 | tsk->thread.debugreg2 = 0; | ||
9881 | @@ -295,7 +299,7 @@ int copy_thread(int nr, unsigned long cl | ||
9882 | struct task_struct *tsk; | 10030 | struct task_struct *tsk; |
9883 | int err; | 10031 | int err; |
9884 | 10032 | ||
@@ -9887,7 +10035,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/process_32.c linux-2.6.29.6/arch/x86/k | |||
9887 | *childregs = *regs; | 10035 | *childregs = *regs; |
9888 | childregs->ax = 0; | 10036 | childregs->ax = 0; |
9889 | childregs->sp = sp; | 10037 | childregs->sp = sp; |
9890 | @@ -324,6 +328,7 @@ int copy_thread(int nr, unsigned long cl | 10038 | @@ -282,6 +283,7 @@ int copy_thread(unsigned long clone_flag |
9891 | * Set a new TLS for the child thread? | 10039 | * Set a new TLS for the child thread? |
9892 | */ | 10040 | */ |
9893 | if (clone_flags & CLONE_SETTLS) | 10041 | if (clone_flags & CLONE_SETTLS) |
@@ -9895,7 +10043,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/process_32.c linux-2.6.29.6/arch/x86/k | |||
9895 | err = do_set_thread_area(p, -1, | 10043 | err = do_set_thread_area(p, -1, |
9896 | (struct user_desc __user *)childregs->si, 0); | 10044 | (struct user_desc __user *)childregs->si, 0); |
9897 | 10045 | ||
9898 | @@ -514,7 +519,7 @@ __switch_to(struct task_struct *prev_p, | 10046 | @@ -351,7 +353,7 @@ __switch_to(struct task_struct *prev_p, |
9899 | struct thread_struct *prev = &prev_p->thread, | 10047 | struct thread_struct *prev = &prev_p->thread, |
9900 | *next = &next_p->thread; | 10048 | *next = &next_p->thread; |
9901 | int cpu = smp_processor_id(); | 10049 | int cpu = smp_processor_id(); |
@@ -9904,9 +10052,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/process_32.c linux-2.6.29.6/arch/x86/k | |||
9904 | 10052 | ||
9905 | /* never put a printk in __switch_to... printk() calls wake_up*() indirectly */ | 10053 | /* never put a printk in __switch_to... printk() calls wake_up*() indirectly */ |
9906 | 10054 | ||
9907 | @@ -542,6 +547,11 @@ __switch_to(struct task_struct *prev_p, | 10055 | @@ -379,6 +381,11 @@ __switch_to(struct task_struct *prev_p, |
9908 | */ | 10056 | */ |
9909 | savesegment(gs, prev->gs); | 10057 | lazy_save_gs(prev->gs); |
9910 | 10058 | ||
9911 | +#ifdef CONFIG_PAX_MEMORY_UDEREF | 10059 | +#ifdef CONFIG_PAX_MEMORY_UDEREF |
9912 | + if (!segment_eq(task_thread_info(prev_p)->addr_limit, task_thread_info(next_p)->addr_limit)) | 10060 | + if (!segment_eq(task_thread_info(prev_p)->addr_limit, task_thread_info(next_p)->addr_limit)) |
@@ -9916,7 +10064,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/process_32.c linux-2.6.29.6/arch/x86/k | |||
9916 | /* | 10064 | /* |
9917 | * Load the per-thread Thread-Local Storage descriptor. | 10065 | * Load the per-thread Thread-Local Storage descriptor. |
9918 | */ | 10066 | */ |
9919 | @@ -680,15 +690,27 @@ unsigned long get_wchan(struct task_stru | 10067 | @@ -497,15 +504,27 @@ unsigned long get_wchan(struct task_stru |
9920 | return 0; | 10068 | return 0; |
9921 | } | 10069 | } |
9922 | 10070 | ||
@@ -9953,10 +10101,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/process_32.c linux-2.6.29.6/arch/x86/k | |||
9953 | + load_sp0(init_tss + smp_processor_id(), thread); | 10101 | + load_sp0(init_tss + smp_processor_id(), thread); |
9954 | } | 10102 | } |
9955 | +#endif | 10103 | +#endif |
9956 | diff -urNp linux-2.6.29.6/arch/x86/kernel/process_64.c linux-2.6.29.6/arch/x86/kernel/process_64.c | 10104 | diff -urNp linux-2.6.30.4/arch/x86/kernel/process_64.c linux-2.6.30.4/arch/x86/kernel/process_64.c |
9957 | --- linux-2.6.29.6/arch/x86/kernel/process_64.c 2009-07-02 19:41:20.000000000 -0400 | 10105 | --- linux-2.6.30.4/arch/x86/kernel/process_64.c 2009-07-24 17:47:51.000000000 -0400 |
9958 | +++ linux-2.6.29.6/arch/x86/kernel/process_64.c 2009-07-23 17:34:32.073727851 -0400 | 10106 | +++ linux-2.6.30.4/arch/x86/kernel/process_64.c 2009-07-30 09:48:09.951950745 -0400 |
9959 | @@ -91,7 +91,7 @@ static void __exit_idle(void) | 10107 | @@ -97,7 +97,7 @@ static void __exit_idle(void) |
9960 | void exit_idle(void) | 10108 | void exit_idle(void) |
9961 | { | 10109 | { |
9962 | /* idle loop has pid 0 */ | 10110 | /* idle loop has pid 0 */ |
@@ -9965,16 +10113,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/process_64.c linux-2.6.29.6/arch/x86/k | |||
9965 | return; | 10113 | return; |
9966 | __exit_idle(); | 10114 | __exit_idle(); |
9967 | } | 10115 | } |
9968 | @@ -112,6 +112,8 @@ static inline void play_dead(void) | 10116 | @@ -176,7 +176,7 @@ void __show_regs(struct pt_regs *regs, i |
9969 | void cpu_idle(void) | ||
9970 | { | ||
9971 | current_thread_info()->status |= TS_POLLING; | ||
9972 | + current->stack_canary = pax_get_random_long(); | ||
9973 | + write_pda(stack_canary, current->stack_canary); | ||
9974 | /* endless idle loop with no priority at all */ | ||
9975 | while (1) { | ||
9976 | tick_nohz_stop_sched_tick(1); | ||
9977 | @@ -160,7 +162,7 @@ void __show_regs(struct pt_regs *regs, i | ||
9978 | if (!board) | 10117 | if (!board) |
9979 | board = ""; | 10118 | board = ""; |
9980 | printk(KERN_INFO "Pid: %d, comm: %.20s %s %s %.*s %s\n", | 10119 | printk(KERN_INFO "Pid: %d, comm: %.20s %s %s %.*s %s\n", |
@@ -9983,16 +10122,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/process_64.c linux-2.6.29.6/arch/x86/k | |||
9983 | init_utsname()->release, | 10122 | init_utsname()->release, |
9984 | (int)strcspn(init_utsname()->version, " "), | 10123 | (int)strcspn(init_utsname()->version, " "), |
9985 | init_utsname()->version, board); | 10124 | init_utsname()->version, board); |
9986 | @@ -230,7 +232,7 @@ void exit_thread(void) | 10125 | @@ -386,7 +386,7 @@ __switch_to(struct task_struct *prev_p, |
9987 | struct thread_struct *t = &me->thread; | ||
9988 | |||
9989 | if (me->thread.io_bitmap_ptr) { | ||
9990 | - struct tss_struct *tss = &per_cpu(init_tss, get_cpu()); | ||
9991 | + struct tss_struct *tss = init_tss + get_cpu(); | ||
9992 | |||
9993 | kfree(t->io_bitmap_ptr); | ||
9994 | t->io_bitmap_ptr = NULL; | ||
9995 | @@ -537,7 +539,7 @@ __switch_to(struct task_struct *prev_p, | ||
9996 | struct thread_struct *prev = &prev_p->thread; | 10126 | struct thread_struct *prev = &prev_p->thread; |
9997 | struct thread_struct *next = &next_p->thread; | 10127 | struct thread_struct *next = &next_p->thread; |
9998 | int cpu = smp_processor_id(); | 10128 | int cpu = smp_processor_id(); |
@@ -10001,15 +10131,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/process_64.c linux-2.6.29.6/arch/x86/k | |||
10001 | unsigned fsindex, gsindex; | 10131 | unsigned fsindex, gsindex; |
10002 | 10132 | ||
10003 | /* we're going to use this soon, after a few expensive things */ | 10133 | /* we're going to use this soon, after a few expensive things */ |
10004 | @@ -626,7 +628,6 @@ __switch_to(struct task_struct *prev_p, | 10134 | @@ -545,12 +545,11 @@ unsigned long get_wchan(struct task_stru |
10005 | (unsigned long)task_stack_page(next_p) + | ||
10006 | THREAD_SIZE - PDA_STACKOFFSET); | ||
10007 | #ifdef CONFIG_CC_STACKPROTECTOR | ||
10008 | - write_pda(stack_canary, next_p->stack_canary); | ||
10009 | /* | ||
10010 | * Build time only check to make sure the stack_canary is at | ||
10011 | * offset 40 in the pda; this is a gcc ABI requirement | ||
10012 | @@ -725,12 +726,11 @@ unsigned long get_wchan(struct task_stru | ||
10013 | if (!p || p == current || p->state == TASK_RUNNING) | 10135 | if (!p || p == current || p->state == TASK_RUNNING) |
10014 | return 0; | 10136 | return 0; |
10015 | stack = (unsigned long)task_stack_page(p); | 10137 | stack = (unsigned long)task_stack_page(p); |
@@ -10024,7 +10146,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/process_64.c linux-2.6.29.6/arch/x86/k | |||
10024 | return 0; | 10146 | return 0; |
10025 | ip = *(u64 *)(fp+8); | 10147 | ip = *(u64 *)(fp+8); |
10026 | if (!in_sched_functions(ip)) | 10148 | if (!in_sched_functions(ip)) |
10027 | @@ -839,16 +839,3 @@ long sys_arch_prctl(int code, unsigned l | 10149 | @@ -659,16 +658,3 @@ long sys_arch_prctl(int code, unsigned l |
10028 | { | 10150 | { |
10029 | return do_arch_prctl(current, code, addr); | 10151 | return do_arch_prctl(current, code, addr); |
10030 | } | 10152 | } |
@@ -10041,10 +10163,32 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/process_64.c linux-2.6.29.6/arch/x86/k | |||
10041 | - unsigned long range_end = mm->brk + 0x02000000; | 10163 | - unsigned long range_end = mm->brk + 0x02000000; |
10042 | - return randomize_range(mm->brk, range_end, 0) ? : mm->brk; | 10164 | - return randomize_range(mm->brk, range_end, 0) ? : mm->brk; |
10043 | -} | 10165 | -} |
10044 | diff -urNp linux-2.6.29.6/arch/x86/kernel/ptrace.c linux-2.6.29.6/arch/x86/kernel/ptrace.c | 10166 | diff -urNp linux-2.6.30.4/arch/x86/kernel/process.c linux-2.6.30.4/arch/x86/kernel/process.c |
10045 | --- linux-2.6.29.6/arch/x86/kernel/ptrace.c 2009-07-02 19:41:20.000000000 -0400 | 10167 | --- linux-2.6.30.4/arch/x86/kernel/process.c 2009-07-24 17:47:51.000000000 -0400 |
10046 | +++ linux-2.6.29.6/arch/x86/kernel/ptrace.c 2009-07-23 17:34:32.073727851 -0400 | 10168 | +++ linux-2.6.30.4/arch/x86/kernel/process.c 2009-07-30 09:48:09.950702241 -0400 |
10047 | @@ -1377,7 +1377,7 @@ void send_sigtrap(struct task_struct *ts | 10169 | @@ -71,7 +71,7 @@ void exit_thread(void) |
10170 | unsigned long *bp = t->io_bitmap_ptr; | ||
10171 | |||
10172 | if (bp) { | ||
10173 | - struct tss_struct *tss = &per_cpu(init_tss, get_cpu()); | ||
10174 | + struct tss_struct *tss = init_tss + get_cpu(); | ||
10175 | |||
10176 | t->io_bitmap_ptr = NULL; | ||
10177 | clear_thread_flag(TIF_IO_BITMAP); | ||
10178 | @@ -105,6 +105,9 @@ void flush_thread(void) | ||
10179 | |||
10180 | clear_tsk_thread_flag(tsk, TIF_DEBUG); | ||
10181 | |||
10182 | +#ifndef CONFIG_CC_STACKPROTECTOR | ||
10183 | + loadsegment(gs, 0); | ||
10184 | +#endif | ||
10185 | tsk->thread.debugreg0 = 0; | ||
10186 | tsk->thread.debugreg1 = 0; | ||
10187 | tsk->thread.debugreg2 = 0; | ||
10188 | diff -urNp linux-2.6.30.4/arch/x86/kernel/ptrace.c linux-2.6.30.4/arch/x86/kernel/ptrace.c | ||
10189 | --- linux-2.6.30.4/arch/x86/kernel/ptrace.c 2009-07-24 17:47:51.000000000 -0400 | ||
10190 | +++ linux-2.6.30.4/arch/x86/kernel/ptrace.c 2009-07-30 09:48:09.952643339 -0400 | ||
10191 | @@ -1374,7 +1374,7 @@ void send_sigtrap(struct task_struct *ts | ||
10048 | info.si_code = si_code; | 10192 | info.si_code = si_code; |
10049 | 10193 | ||
10050 | /* User-mode ip? */ | 10194 | /* User-mode ip? */ |
@@ -10053,10 +10197,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/ptrace.c linux-2.6.29.6/arch/x86/kerne | |||
10053 | 10197 | ||
10054 | /* Send us the fake SIGTRAP */ | 10198 | /* Send us the fake SIGTRAP */ |
10055 | force_sig_info(SIGTRAP, &info, tsk); | 10199 | force_sig_info(SIGTRAP, &info, tsk); |
10056 | diff -urNp linux-2.6.29.6/arch/x86/kernel/reboot.c linux-2.6.29.6/arch/x86/kernel/reboot.c | 10200 | diff -urNp linux-2.6.30.4/arch/x86/kernel/reboot.c linux-2.6.30.4/arch/x86/kernel/reboot.c |
10057 | --- linux-2.6.29.6/arch/x86/kernel/reboot.c 2009-07-02 19:41:20.000000000 -0400 | 10201 | --- linux-2.6.30.4/arch/x86/kernel/reboot.c 2009-07-24 17:47:51.000000000 -0400 |
10058 | +++ linux-2.6.29.6/arch/x86/kernel/reboot.c 2009-07-23 17:34:32.073727851 -0400 | 10202 | +++ linux-2.6.30.4/arch/x86/kernel/reboot.c 2009-07-30 09:48:09.952643339 -0400 |
10059 | @@ -32,7 +32,7 @@ void (*pm_power_off)(void); | 10203 | @@ -31,7 +31,7 @@ void (*pm_power_off)(void); |
10060 | EXPORT_SYMBOL(pm_power_off); | 10204 | EXPORT_SYMBOL(pm_power_off); |
10061 | 10205 | ||
10062 | static const struct desc_ptr no_idt = {}; | 10206 | static const struct desc_ptr no_idt = {}; |
@@ -10065,8 +10209,8 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/reboot.c linux-2.6.29.6/arch/x86/kerne | |||
10065 | enum reboot_type reboot_type = BOOT_KBD; | 10209 | enum reboot_type reboot_type = BOOT_KBD; |
10066 | int reboot_force; | 10210 | int reboot_force; |
10067 | 10211 | ||
10068 | @@ -234,7 +234,7 @@ static struct dmi_system_id __initdata r | 10212 | @@ -249,7 +249,7 @@ static struct dmi_system_id __initdata r |
10069 | DMI_MATCH(DMI_PRODUCT_NAME, "Dell XPS710"), | 10213 | DMI_MATCH(DMI_PRODUCT_NAME, "VGN-Z540N"), |
10070 | }, | 10214 | }, |
10071 | }, | 10215 | }, |
10072 | - { } | 10216 | - { } |
@@ -10074,7 +10218,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/reboot.c linux-2.6.29.6/arch/x86/kerne | |||
10074 | }; | 10218 | }; |
10075 | 10219 | ||
10076 | static int __init reboot_init(void) | 10220 | static int __init reboot_init(void) |
10077 | @@ -250,12 +250,12 @@ core_initcall(reboot_init); | 10221 | @@ -265,12 +265,12 @@ core_initcall(reboot_init); |
10078 | controller to pulse the CPU reset line, which is more thorough, but | 10222 | controller to pulse the CPU reset line, which is more thorough, but |
10079 | doesn't work with at least one type of 486 motherboard. It is easy | 10223 | doesn't work with at least one type of 486 motherboard. It is easy |
10080 | to stop this code working; hence the copious comments. */ | 10224 | to stop this code working; hence the copious comments. */ |
@@ -10092,7 +10236,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/reboot.c linux-2.6.29.6/arch/x86/kerne | |||
10092 | }; | 10236 | }; |
10093 | 10237 | ||
10094 | static const struct desc_ptr | 10238 | static const struct desc_ptr |
10095 | @@ -304,7 +304,7 @@ static const unsigned char jump_to_bios | 10239 | @@ -319,7 +319,7 @@ static const unsigned char jump_to_bios |
10096 | * specified by the code and length parameters. | 10240 | * specified by the code and length parameters. |
10097 | * We assume that length will aways be less that 100! | 10241 | * We assume that length will aways be less that 100! |
10098 | */ | 10242 | */ |
@@ -10101,7 +10245,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/reboot.c linux-2.6.29.6/arch/x86/kerne | |||
10101 | { | 10245 | { |
10102 | local_irq_disable(); | 10246 | local_irq_disable(); |
10103 | 10247 | ||
10104 | @@ -324,8 +324,8 @@ void machine_real_restart(const unsigned | 10248 | @@ -339,8 +339,8 @@ void machine_real_restart(const unsigned |
10105 | /* Remap the kernel at virtual address zero, as well as offset zero | 10249 | /* Remap the kernel at virtual address zero, as well as offset zero |
10106 | from the kernel segment. This assumes the kernel segment starts at | 10250 | from the kernel segment. This assumes the kernel segment starts at |
10107 | virtual address PAGE_OFFSET. */ | 10251 | virtual address PAGE_OFFSET. */ |
@@ -10112,7 +10256,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/reboot.c linux-2.6.29.6/arch/x86/kerne | |||
10112 | 10256 | ||
10113 | /* | 10257 | /* |
10114 | * Use `swapper_pg_dir' as our page directory. | 10258 | * Use `swapper_pg_dir' as our page directory. |
10115 | @@ -337,16 +337,15 @@ void machine_real_restart(const unsigned | 10259 | @@ -352,16 +352,15 @@ void machine_real_restart(const unsigned |
10116 | boot)". This seems like a fairly standard thing that gets set by | 10260 | boot)". This seems like a fairly standard thing that gets set by |
10117 | REBOOT.COM programs, and the previous reset routine did this | 10261 | REBOOT.COM programs, and the previous reset routine did this |
10118 | too. */ | 10262 | too. */ |
@@ -10132,10 +10276,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/reboot.c linux-2.6.29.6/arch/x86/kerne | |||
10132 | 10276 | ||
10133 | /* Set up the IDT for real mode. */ | 10277 | /* Set up the IDT for real mode. */ |
10134 | load_idt(&real_mode_idt); | 10278 | load_idt(&real_mode_idt); |
10135 | diff -urNp linux-2.6.29.6/arch/x86/kernel/setup.c linux-2.6.29.6/arch/x86/kernel/setup.c | 10279 | diff -urNp linux-2.6.30.4/arch/x86/kernel/setup.c linux-2.6.30.4/arch/x86/kernel/setup.c |
10136 | --- linux-2.6.29.6/arch/x86/kernel/setup.c 2009-07-02 19:41:20.000000000 -0400 | 10280 | --- linux-2.6.30.4/arch/x86/kernel/setup.c 2009-07-30 20:32:40.383618032 -0400 |
10137 | +++ linux-2.6.29.6/arch/x86/kernel/setup.c 2009-07-23 17:34:32.075127987 -0400 | 10281 | +++ linux-2.6.30.4/arch/x86/kernel/setup.c 2009-07-30 20:32:47.940599318 -0400 |
10138 | @@ -703,8 +703,8 @@ void __init setup_arch(char **cmdline_p) | 10282 | @@ -740,14 +740,14 @@ void __init setup_arch(char **cmdline_p) |
10139 | 10283 | ||
10140 | if (!boot_params.hdr.root_flags) | 10284 | if (!boot_params.hdr.root_flags) |
10141 | root_mountflags &= ~MS_RDONLY; | 10285 | root_mountflags &= ~MS_RDONLY; |
@@ -10144,11 +10288,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/setup.c linux-2.6.29.6/arch/x86/kernel | |||
10144 | + init_mm.start_code = ktla_ktva((unsigned long) _text); | 10288 | + init_mm.start_code = ktla_ktva((unsigned long) _text); |
10145 | + init_mm.end_code = ktla_ktva((unsigned long) _etext); | 10289 | + init_mm.end_code = ktla_ktva((unsigned long) _etext); |
10146 | init_mm.end_data = (unsigned long) _edata; | 10290 | init_mm.end_data = (unsigned long) _edata; |
10147 | #ifdef CONFIG_X86_32 | 10291 | init_mm.brk = _brk_end; |
10148 | init_mm.brk = init_pg_tables_end + PAGE_OFFSET; | ||
10149 | @@ -712,9 +712,9 @@ void __init setup_arch(char **cmdline_p) | ||
10150 | init_mm.brk = (unsigned long) &_end; | ||
10151 | #endif | ||
10152 | 10292 | ||
10153 | - code_resource.start = virt_to_phys(_text); | 10293 | - code_resource.start = virt_to_phys(_text); |
10154 | - code_resource.end = virt_to_phys(_etext)-1; | 10294 | - code_resource.end = virt_to_phys(_etext)-1; |
@@ -10159,34 +10299,101 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/setup.c linux-2.6.29.6/arch/x86/kernel | |||
10159 | data_resource.end = virt_to_phys(_edata)-1; | 10299 | data_resource.end = virt_to_phys(_edata)-1; |
10160 | bss_resource.start = virt_to_phys(&__bss_start); | 10300 | bss_resource.start = virt_to_phys(&__bss_start); |
10161 | bss_resource.end = virt_to_phys(&__bss_stop)-1; | 10301 | bss_resource.end = virt_to_phys(&__bss_stop)-1; |
10162 | diff -urNp linux-2.6.29.6/arch/x86/kernel/setup_percpu.c linux-2.6.29.6/arch/x86/kernel/setup_percpu.c | 10302 | diff -urNp linux-2.6.30.4/arch/x86/kernel/setup_percpu.c linux-2.6.30.4/arch/x86/kernel/setup_percpu.c |
10163 | --- linux-2.6.29.6/arch/x86/kernel/setup_percpu.c 2009-07-02 19:41:20.000000000 -0400 | 10303 | --- linux-2.6.30.4/arch/x86/kernel/setup_percpu.c 2009-07-24 17:47:51.000000000 -0400 |
10164 | +++ linux-2.6.29.6/arch/x86/kernel/setup_percpu.c 2009-07-23 17:34:32.075127987 -0400 | 10304 | +++ linux-2.6.30.4/arch/x86/kernel/setup_percpu.c 2009-08-04 17:52:34.388856060 -0400 |
10165 | @@ -197,7 +197,11 @@ void __init setup_per_cpu_areas(void) | 10305 | @@ -25,19 +25,17 @@ |
10166 | cpu, node, __pa(ptr)); | 10306 | # define DBG(x...) |
10167 | } | ||
10168 | #endif | 10307 | #endif |
10169 | +#ifdef CONFIG_X86_32 | 10308 | |
10170 | + __per_cpu_offset[cpu] = ptr - __per_cpu_start; | 10309 | +#ifdef CONFIG_SMP |
10171 | +#else | 10310 | DEFINE_PER_CPU(int, cpu_number); |
10172 | per_cpu_offset(cpu) = ptr - __per_cpu_start; | 10311 | EXPORT_PER_CPU_SYMBOL(cpu_number); |
10173 | +#endif | 10312 | +#endif |
10174 | memcpy(ptr, __per_cpu_start, __per_cpu_end - __per_cpu_start); | ||
10175 | } | ||
10176 | 10313 | ||
10177 | diff -urNp linux-2.6.29.6/arch/x86/kernel/signal.c linux-2.6.29.6/arch/x86/kernel/signal.c | 10314 | -#ifdef CONFIG_X86_64 |
10178 | --- linux-2.6.29.6/arch/x86/kernel/signal.c 2009-07-02 19:41:20.000000000 -0400 | 10315 | #define BOOT_PERCPU_OFFSET ((unsigned long)__per_cpu_load) |
10179 | +++ linux-2.6.29.6/arch/x86/kernel/signal.c 2009-07-23 17:34:32.075127987 -0400 | 10316 | -#else |
10180 | @@ -255,7 +255,7 @@ get_sigframe(struct k_sigaction *ka, str | 10317 | -#define BOOT_PERCPU_OFFSET 0 |
10318 | -#endif | ||
10319 | |||
10320 | DEFINE_PER_CPU(unsigned long, this_cpu_off) = BOOT_PERCPU_OFFSET; | ||
10321 | EXPORT_PER_CPU_SYMBOL(this_cpu_off); | ||
10322 | |||
10323 | -unsigned long __per_cpu_offset[NR_CPUS] __read_mostly = { | ||
10324 | +unsigned long __per_cpu_offset[NR_CPUS] __read_only = { | ||
10325 | [0 ... NR_CPUS-1] = BOOT_PERCPU_OFFSET, | ||
10326 | }; | ||
10327 | EXPORT_SYMBOL(__per_cpu_offset); | ||
10328 | @@ -333,16 +331,18 @@ out_free_ar: | ||
10329 | return ret; | ||
10330 | } | ||
10331 | |||
10332 | -static inline void setup_percpu_segment(int cpu) | ||
10333 | +static inline void setup_percpu_segment(int cpu, size_t size) | ||
10334 | { | ||
10335 | #ifdef CONFIG_X86_32 | ||
10336 | - struct desc_struct gdt; | ||
10337 | + struct desc_struct d, *gdt = get_cpu_gdt_table(cpu); | ||
10338 | + unsigned long base; | ||
10339 | |||
10340 | - pack_descriptor(&gdt, per_cpu_offset(cpu), 0xFFFFF, | ||
10341 | - 0x2 | DESCTYPE_S, 0x8); | ||
10342 | - gdt.s = 1; | ||
10343 | - write_gdt_entry(get_cpu_gdt_table(cpu), | ||
10344 | - GDT_ENTRY_PERCPU, &gdt, DESCTYPE_S); | ||
10345 | + base = per_cpu_offset(cpu); | ||
10346 | + if (size <= 64*1024) | ||
10347 | + pack_descriptor(&d, base, size-1, 0x80 | DESCTYPE_S | 0x3, 0x4); | ||
10348 | + else | ||
10349 | + pack_descriptor(&d, base, (size-1) >> PAGE_SHIFT, 0x80 | DESCTYPE_S | 0x3, 0xC); | ||
10350 | + write_gdt_entry(gdt, GDT_ENTRY_PERCPU, &d, DESCTYPE_S); | ||
10351 | #endif | ||
10352 | } | ||
10353 | |||
10354 | @@ -381,10 +381,15 @@ void __init setup_per_cpu_areas(void) | ||
10355 | /* alrighty, percpu areas up and running */ | ||
10356 | delta = (unsigned long)pcpu_base_addr - (unsigned long)__per_cpu_start; | ||
10357 | for_each_possible_cpu(cpu) { | ||
10358 | +#ifdef CONFIG_CC_STACKPROTECTOR | ||
10359 | +#ifdef CONFIG_x86_32 | ||
10360 | + unsigned long canary = per_cpu(stack_canary, cpu); | ||
10361 | +#endif | ||
10362 | +#endif | ||
10363 | per_cpu_offset(cpu) = delta + cpu * pcpu_unit_size; | ||
10364 | per_cpu(this_cpu_off, cpu) = per_cpu_offset(cpu); | ||
10365 | per_cpu(cpu_number, cpu) = cpu; | ||
10366 | - setup_percpu_segment(cpu); | ||
10367 | + setup_percpu_segment(cpu, static_size + PERCPU_MODULE_RESERVE + PERCPU_DYNAMIC_RESERVE); | ||
10368 | setup_stack_canary_segment(cpu); | ||
10369 | /* | ||
10370 | * Copy data used in early init routines from the | ||
10371 | @@ -408,6 +413,12 @@ void __init setup_per_cpu_areas(void) | ||
10372 | early_per_cpu_map(x86_cpu_to_node_map, cpu); | ||
10373 | #endif | ||
10374 | #endif | ||
10375 | +#ifdef CONFIG_CC_STACKPROTECTOR | ||
10376 | +#ifdef CONFIG_x86_32 | ||
10377 | + if (cpu == boot_cpu_id) | ||
10378 | + per_cpu(stack_canary, cpu) = canary; | ||
10379 | +#endif | ||
10380 | +#endif | ||
10381 | /* | ||
10382 | * Up to this point, the boot CPU has been using .data.init | ||
10383 | * area. Reload any changed state for the boot CPU. | ||
10384 | diff -urNp linux-2.6.30.4/arch/x86/kernel/signal.c linux-2.6.30.4/arch/x86/kernel/signal.c | ||
10385 | --- linux-2.6.30.4/arch/x86/kernel/signal.c 2009-07-24 17:47:51.000000000 -0400 | ||
10386 | +++ linux-2.6.30.4/arch/x86/kernel/signal.c 2009-07-30 09:48:09.958625901 -0400 | ||
10387 | @@ -198,7 +198,7 @@ static unsigned long align_sigframe(unsi | ||
10181 | * Align the stack pointer according to the i386 ABI, | 10388 | * Align the stack pointer according to the i386 ABI, |
10182 | * i.e. so that on function entry ((sp + 4) & 15) == 0. | 10389 | * i.e. so that on function entry ((sp + 4) & 15) == 0. |
10183 | */ | 10390 | */ |
10184 | - sp = ((sp + 4) & -16ul) - 4; | 10391 | - sp = ((sp + 4) & -16ul) - 4; |
10185 | + sp = ((sp - 12) & -16ul) - 4; | 10392 | + sp = ((sp - 12) & -16ul) - 4; |
10186 | 10393 | #else /* !CONFIG_X86_32 */ | |
10187 | return (void __user *) sp; | 10394 | sp = round_down(sp, 16) - 8; |
10188 | } | 10395 | #endif |
10189 | @@ -287,9 +287,9 @@ __setup_frame(int sig, struct k_sigactio | 10396 | @@ -308,9 +308,9 @@ __setup_frame(int sig, struct k_sigactio |
10190 | } | 10397 | } |
10191 | 10398 | ||
10192 | if (current->mm->context.vdso) | 10399 | if (current->mm->context.vdso) |
@@ -10198,16 +10405,16 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/signal.c linux-2.6.29.6/arch/x86/kerne | |||
10198 | if (ka->sa.sa_flags & SA_RESTORER) | 10405 | if (ka->sa.sa_flags & SA_RESTORER) |
10199 | restorer = ka->sa.sa_restorer; | 10406 | restorer = ka->sa.sa_restorer; |
10200 | 10407 | ||
10201 | @@ -360,7 +360,7 @@ static int __setup_rt_frame(int sig, str | 10408 | @@ -378,7 +378,7 @@ static int __setup_rt_frame(int sig, str |
10202 | return -EFAULT; | 10409 | err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); |
10203 | 10410 | ||
10204 | /* Set up to return from userspace. */ | 10411 | /* Set up to return from userspace. */ |
10205 | - restorer = VDSO32_SYMBOL(current->mm->context.vdso, rt_sigreturn); | 10412 | - restorer = VDSO32_SYMBOL(current->mm->context.vdso, rt_sigreturn); |
10206 | + restorer = (void __user *)VDSO32_SYMBOL(current->mm->context.vdso, rt_sigreturn); | 10413 | + restorer = (void __user *)VDSO32_SYMBOL(current->mm->context.vdso, rt_sigreturn); |
10207 | if (ka->sa.sa_flags & SA_RESTORER) | 10414 | if (ka->sa.sa_flags & SA_RESTORER) |
10208 | restorer = ka->sa.sa_restorer; | 10415 | restorer = ka->sa.sa_restorer; |
10209 | err |= __put_user(restorer, &frame->pretcode); | 10416 | put_user_ex(restorer, &frame->pretcode); |
10210 | @@ -811,7 +811,7 @@ static void do_signal(struct pt_regs *re | 10417 | @@ -790,7 +790,7 @@ static void do_signal(struct pt_regs *re |
10211 | * X86_32: vm86 regs switched out by assembly code before reaching | 10418 | * X86_32: vm86 regs switched out by assembly code before reaching |
10212 | * here, so testing against kernel CS suffices. | 10419 | * here, so testing against kernel CS suffices. |
10213 | */ | 10420 | */ |
@@ -10216,24 +10423,23 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/signal.c linux-2.6.29.6/arch/x86/kerne | |||
10216 | return; | 10423 | return; |
10217 | 10424 | ||
10218 | if (current_thread_info()->status & TS_RESTORE_SIGMASK) | 10425 | if (current_thread_info()->status & TS_RESTORE_SIGMASK) |
10219 | diff -urNp linux-2.6.29.6/arch/x86/kernel/smpboot.c linux-2.6.29.6/arch/x86/kernel/smpboot.c | 10426 | diff -urNp linux-2.6.30.4/arch/x86/kernel/smpboot.c linux-2.6.30.4/arch/x86/kernel/smpboot.c |
10220 | --- linux-2.6.29.6/arch/x86/kernel/smpboot.c 2009-07-02 19:41:20.000000000 -0400 | 10427 | --- linux-2.6.30.4/arch/x86/kernel/smpboot.c 2009-07-24 17:47:51.000000000 -0400 |
10221 | +++ linux-2.6.29.6/arch/x86/kernel/smpboot.c 2009-07-23 17:34:32.076107253 -0400 | 10428 | +++ linux-2.6.30.4/arch/x86/kernel/smpboot.c 2009-07-30 09:48:09.958625901 -0400 |
10222 | @@ -806,6 +806,11 @@ static int __cpuinit do_boot_cpu(int api | 10429 | @@ -685,6 +685,10 @@ static int __cpuinit do_boot_cpu(int api |
10223 | .cpu = cpu, | 10430 | .done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done), |
10224 | .done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done), | ||
10225 | }; | 10431 | }; |
10226 | + | 10432 | |
10227 | +#ifdef CONFIG_PAX_KERNEXEC | 10433 | +#ifdef CONFIG_PAX_KERNEXEC |
10228 | + unsigned long cr0; | 10434 | + unsigned long cr0; |
10229 | +#endif | 10435 | +#endif |
10230 | + | 10436 | + |
10231 | INIT_WORK(&c_idle.work, do_fork_idle); | 10437 | INIT_WORK(&c_idle.work, do_fork_idle); |
10232 | 10438 | ||
10233 | #ifdef CONFIG_X86_64 | 10439 | alternatives_smp_switch(1); |
10234 | @@ -856,7 +861,17 @@ do_rest: | 10440 | @@ -727,7 +731,17 @@ do_rest: |
10235 | cpu_pda(cpu)->pcurrent = c_idle.idle; | 10441 | (unsigned long)task_stack_page(c_idle.idle) - |
10236 | clear_tsk_thread_flag(c_idle.idle, TIF_FORK); | 10442 | KERNEL_STACK_OFFSET + THREAD_SIZE; |
10237 | #endif | 10443 | #endif |
10238 | + | 10444 | + |
10239 | +#ifdef CONFIG_PAX_KERNEXEC | 10445 | +#ifdef CONFIG_PAX_KERNEXEC |
@@ -10249,51 +10455,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/smpboot.c linux-2.6.29.6/arch/x86/kern | |||
10249 | initial_code = (unsigned long)start_secondary; | 10455 | initial_code = (unsigned long)start_secondary; |
10250 | stack_start.sp = (void *) c_idle.idle->thread.sp; | 10456 | stack_start.sp = (void *) c_idle.idle->thread.sp; |
10251 | 10457 | ||
10252 | diff -urNp linux-2.6.29.6/arch/x86/kernel/smpcommon.c linux-2.6.29.6/arch/x86/kernel/smpcommon.c | 10458 | diff -urNp linux-2.6.30.4/arch/x86/kernel/step.c linux-2.6.30.4/arch/x86/kernel/step.c |
10253 | --- linux-2.6.29.6/arch/x86/kernel/smpcommon.c 2009-07-02 19:41:20.000000000 -0400 | 10459 | --- linux-2.6.30.4/arch/x86/kernel/step.c 2009-07-24 17:47:51.000000000 -0400 |
10254 | +++ linux-2.6.29.6/arch/x86/kernel/smpcommon.c 2009-07-23 17:34:32.076107253 -0400 | 10460 | +++ linux-2.6.30.4/arch/x86/kernel/step.c 2009-07-30 09:48:09.958625901 -0400 |
10255 | @@ -3,9 +3,10 @@ | ||
10256 | */ | ||
10257 | #include <linux/module.h> | ||
10258 | #include <asm/smp.h> | ||
10259 | +#include <asm/sections.h> | ||
10260 | |||
10261 | #ifdef CONFIG_X86_32 | ||
10262 | -DEFINE_PER_CPU(unsigned long, this_cpu_off); | ||
10263 | +DEFINE_PER_CPU(unsigned long, this_cpu_off) = (unsigned long)__per_cpu_start; | ||
10264 | EXPORT_PER_CPU_SYMBOL(this_cpu_off); | ||
10265 | |||
10266 | /* | ||
10267 | @@ -15,16 +16,19 @@ EXPORT_PER_CPU_SYMBOL(this_cpu_off); | ||
10268 | */ | ||
10269 | __cpuinit void init_gdt(int cpu) | ||
10270 | { | ||
10271 | - struct desc_struct gdt; | ||
10272 | + struct desc_struct d, *gdt = get_cpu_gdt_table(cpu); | ||
10273 | + unsigned long base, limit; | ||
10274 | |||
10275 | - pack_descriptor(&gdt, __per_cpu_offset[cpu], 0xFFFFF, | ||
10276 | - 0x2 | DESCTYPE_S, 0x8); | ||
10277 | - gdt.s = 1; | ||
10278 | + base = per_cpu_offset(cpu); | ||
10279 | + limit = PERCPU_ENOUGH_ROOM - 1; | ||
10280 | + if (limit < 64*1024) | ||
10281 | + pack_descriptor(&d, base, limit, 0x80 | DESCTYPE_S | 0x3, 0x4); | ||
10282 | + else | ||
10283 | + pack_descriptor(&d, base, limit >> PAGE_SHIFT, 0x80 | DESCTYPE_S | 0x3, 0xC); | ||
10284 | |||
10285 | - write_gdt_entry(get_cpu_gdt_table(cpu), | ||
10286 | - GDT_ENTRY_PERCPU, &gdt, DESCTYPE_S); | ||
10287 | + write_gdt_entry(gdt, GDT_ENTRY_PERCPU, &d, DESCTYPE_S); | ||
10288 | |||
10289 | - per_cpu(this_cpu_off, cpu) = __per_cpu_offset[cpu]; | ||
10290 | + per_cpu(this_cpu_off, cpu) = base; | ||
10291 | per_cpu(cpu_number, cpu) = cpu; | ||
10292 | } | ||
10293 | #endif | ||
10294 | diff -urNp linux-2.6.29.6/arch/x86/kernel/step.c linux-2.6.29.6/arch/x86/kernel/step.c | ||
10295 | --- linux-2.6.29.6/arch/x86/kernel/step.c 2009-07-02 19:41:20.000000000 -0400 | ||
10296 | +++ linux-2.6.29.6/arch/x86/kernel/step.c 2009-07-23 17:34:32.076107253 -0400 | ||
10297 | @@ -23,22 +23,20 @@ unsigned long convert_ip_to_linear(struc | 10461 | @@ -23,22 +23,20 @@ unsigned long convert_ip_to_linear(struc |
10298 | * and APM bios ones we just ignore here. | 10462 | * and APM bios ones we just ignore here. |
10299 | */ | 10463 | */ |
@@ -10343,17 +10507,17 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/step.c linux-2.6.29.6/arch/x86/kernel/ | |||
10343 | /* 32-bit mode: register increment */ | 10507 | /* 32-bit mode: register increment */ |
10344 | return 0; | 10508 | return 0; |
10345 | /* 64-bit mode: REX prefix */ | 10509 | /* 64-bit mode: REX prefix */ |
10346 | diff -urNp linux-2.6.29.6/arch/x86/kernel/syscall_table_32.S linux-2.6.29.6/arch/x86/kernel/syscall_table_32.S | 10510 | diff -urNp linux-2.6.30.4/arch/x86/kernel/syscall_table_32.S linux-2.6.30.4/arch/x86/kernel/syscall_table_32.S |
10347 | --- linux-2.6.29.6/arch/x86/kernel/syscall_table_32.S 2009-07-02 19:41:20.000000000 -0400 | 10511 | --- linux-2.6.30.4/arch/x86/kernel/syscall_table_32.S 2009-07-24 17:47:51.000000000 -0400 |
10348 | +++ linux-2.6.29.6/arch/x86/kernel/syscall_table_32.S 2009-07-23 17:34:32.076778086 -0400 | 10512 | +++ linux-2.6.30.4/arch/x86/kernel/syscall_table_32.S 2009-07-30 09:48:09.959782846 -0400 |
10349 | @@ -1,3 +1,4 @@ | 10513 | @@ -1,3 +1,4 @@ |
10350 | +.section .rodata,"a",@progbits | 10514 | +.section .rodata,"a",@progbits |
10351 | ENTRY(sys_call_table) | 10515 | ENTRY(sys_call_table) |
10352 | .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */ | 10516 | .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */ |
10353 | .long sys_exit | 10517 | .long sys_exit |
10354 | diff -urNp linux-2.6.29.6/arch/x86/kernel/sys_i386_32.c linux-2.6.29.6/arch/x86/kernel/sys_i386_32.c | 10518 | diff -urNp linux-2.6.30.4/arch/x86/kernel/sys_i386_32.c linux-2.6.30.4/arch/x86/kernel/sys_i386_32.c |
10355 | --- linux-2.6.29.6/arch/x86/kernel/sys_i386_32.c 2009-07-02 19:41:20.000000000 -0400 | 10519 | --- linux-2.6.30.4/arch/x86/kernel/sys_i386_32.c 2009-07-24 17:47:51.000000000 -0400 |
10356 | +++ linux-2.6.29.6/arch/x86/kernel/sys_i386_32.c 2009-07-23 17:34:32.076778086 -0400 | 10520 | +++ linux-2.6.30.4/arch/x86/kernel/sys_i386_32.c 2009-07-30 09:48:09.958625901 -0400 |
10357 | @@ -24,6 +24,21 @@ | 10521 | @@ -24,6 +24,21 @@ |
10358 | 10522 | ||
10359 | #include <asm/syscalls.h> | 10523 | #include <asm/syscalls.h> |
@@ -10582,9 +10746,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/sys_i386_32.c linux-2.6.29.6/arch/x86/ | |||
10582 | 10746 | ||
10583 | struct sel_arg_struct { | 10747 | struct sel_arg_struct { |
10584 | unsigned long n; | 10748 | unsigned long n; |
10585 | diff -urNp linux-2.6.29.6/arch/x86/kernel/sys_x86_64.c linux-2.6.29.6/arch/x86/kernel/sys_x86_64.c | 10749 | diff -urNp linux-2.6.30.4/arch/x86/kernel/sys_x86_64.c linux-2.6.30.4/arch/x86/kernel/sys_x86_64.c |
10586 | --- linux-2.6.29.6/arch/x86/kernel/sys_x86_64.c 2009-07-02 19:41:20.000000000 -0400 | 10750 | --- linux-2.6.30.4/arch/x86/kernel/sys_x86_64.c 2009-07-24 17:47:51.000000000 -0400 |
10587 | +++ linux-2.6.29.6/arch/x86/kernel/sys_x86_64.c 2009-07-23 17:34:32.076778086 -0400 | 10751 | +++ linux-2.6.30.4/arch/x86/kernel/sys_x86_64.c 2009-07-30 09:48:09.959782846 -0400 |
10588 | @@ -47,8 +47,8 @@ out: | 10752 | @@ -47,8 +47,8 @@ out: |
10589 | return error; | 10753 | return error; |
10590 | } | 10754 | } |
@@ -10666,9 +10830,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/sys_x86_64.c linux-2.6.29.6/arch/x86/k | |||
10666 | mm->cached_hole_size = ~0UL; | 10830 | mm->cached_hole_size = ~0UL; |
10667 | 10831 | ||
10668 | return addr; | 10832 | return addr; |
10669 | diff -urNp linux-2.6.29.6/arch/x86/kernel/time_32.c linux-2.6.29.6/arch/x86/kernel/time_32.c | 10833 | diff -urNp linux-2.6.30.4/arch/x86/kernel/time_32.c linux-2.6.30.4/arch/x86/kernel/time_32.c |
10670 | --- linux-2.6.29.6/arch/x86/kernel/time_32.c 2009-07-02 19:41:20.000000000 -0400 | 10834 | --- linux-2.6.30.4/arch/x86/kernel/time_32.c 2009-07-24 17:47:51.000000000 -0400 |
10671 | +++ linux-2.6.29.6/arch/x86/kernel/time_32.c 2009-07-23 17:34:32.076778086 -0400 | 10835 | +++ linux-2.6.30.4/arch/x86/kernel/time_32.c 2009-07-30 09:48:09.959782846 -0400 |
10672 | @@ -47,22 +47,32 @@ unsigned long profile_pc(struct pt_regs | 10836 | @@ -47,22 +47,32 @@ unsigned long profile_pc(struct pt_regs |
10673 | unsigned long pc = instruction_pointer(regs); | 10837 | unsigned long pc = instruction_pointer(regs); |
10674 | 10838 | ||
@@ -10704,9 +10868,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/time_32.c linux-2.6.29.6/arch/x86/kern | |||
10704 | return pc; | 10868 | return pc; |
10705 | } | 10869 | } |
10706 | EXPORT_SYMBOL(profile_pc); | 10870 | EXPORT_SYMBOL(profile_pc); |
10707 | diff -urNp linux-2.6.29.6/arch/x86/kernel/time_64.c linux-2.6.29.6/arch/x86/kernel/time_64.c | 10871 | diff -urNp linux-2.6.30.4/arch/x86/kernel/time_64.c linux-2.6.30.4/arch/x86/kernel/time_64.c |
10708 | --- linux-2.6.29.6/arch/x86/kernel/time_64.c 2009-07-02 19:41:20.000000000 -0400 | 10872 | --- linux-2.6.30.4/arch/x86/kernel/time_64.c 2009-07-24 17:47:51.000000000 -0400 |
10709 | +++ linux-2.6.29.6/arch/x86/kernel/time_64.c 2009-07-23 17:34:32.076778086 -0400 | 10873 | +++ linux-2.6.30.4/arch/x86/kernel/time_64.c 2009-07-30 09:48:09.960740129 -0400 |
10710 | @@ -25,8 +25,6 @@ | 10874 | @@ -25,8 +25,6 @@ |
10711 | #include <asm/time.h> | 10875 | #include <asm/time.h> |
10712 | #include <asm/timer.h> | 10876 | #include <asm/timer.h> |
@@ -10725,21 +10889,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/time_64.c linux-2.6.29.6/arch/x86/kern | |||
10725 | #ifdef CONFIG_FRAME_POINTER | 10889 | #ifdef CONFIG_FRAME_POINTER |
10726 | return *(unsigned long *)(regs->bp + sizeof(long)); | 10890 | return *(unsigned long *)(regs->bp + sizeof(long)); |
10727 | #else | 10891 | #else |
10728 | diff -urNp linux-2.6.29.6/arch/x86/kernel/tlb_32.c linux-2.6.29.6/arch/x86/kernel/tlb_32.c | 10892 | diff -urNp linux-2.6.30.4/arch/x86/kernel/tls.c linux-2.6.30.4/arch/x86/kernel/tls.c |
10729 | --- linux-2.6.29.6/arch/x86/kernel/tlb_32.c 2009-07-02 19:41:20.000000000 -0400 | 10893 | --- linux-2.6.30.4/arch/x86/kernel/tls.c 2009-07-24 17:47:51.000000000 -0400 |
10730 | +++ linux-2.6.29.6/arch/x86/kernel/tlb_32.c 2009-07-23 17:34:32.076778086 -0400 | 10894 | +++ linux-2.6.30.4/arch/x86/kernel/tls.c 2009-07-30 09:48:09.960740129 -0400 |
10731 | @@ -5,7 +5,7 @@ | ||
10732 | #include <asm/tlbflush.h> | ||
10733 | |||
10734 | DEFINE_PER_CPU(struct tlb_state, cpu_tlbstate) | ||
10735 | - ____cacheline_aligned = { &init_mm, 0, }; | ||
10736 | + ____cacheline_aligned = { &init_mm, 0, {0} }; | ||
10737 | |||
10738 | /* must come after the send_IPI functions above for inlining */ | ||
10739 | #include <mach_ipi.h> | ||
10740 | diff -urNp linux-2.6.29.6/arch/x86/kernel/tls.c linux-2.6.29.6/arch/x86/kernel/tls.c | ||
10741 | --- linux-2.6.29.6/arch/x86/kernel/tls.c 2009-07-02 19:41:20.000000000 -0400 | ||
10742 | +++ linux-2.6.29.6/arch/x86/kernel/tls.c 2009-07-23 17:34:32.077892704 -0400 | ||
10743 | @@ -85,6 +85,11 @@ int do_set_thread_area(struct task_struc | 10895 | @@ -85,6 +85,11 @@ int do_set_thread_area(struct task_struc |
10744 | if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX) | 10896 | if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX) |
10745 | return -EINVAL; | 10897 | return -EINVAL; |
@@ -10752,10 +10904,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/tls.c linux-2.6.29.6/arch/x86/kernel/t | |||
10752 | set_tls_desc(p, idx, &info, 1); | 10904 | set_tls_desc(p, idx, &info, 1); |
10753 | 10905 | ||
10754 | return 0; | 10906 | return 0; |
10755 | diff -urNp linux-2.6.29.6/arch/x86/kernel/traps.c linux-2.6.29.6/arch/x86/kernel/traps.c | 10907 | diff -urNp linux-2.6.30.4/arch/x86/kernel/traps.c linux-2.6.30.4/arch/x86/kernel/traps.c |
10756 | --- linux-2.6.29.6/arch/x86/kernel/traps.c 2009-07-02 19:41:20.000000000 -0400 | 10908 | --- linux-2.6.30.4/arch/x86/kernel/traps.c 2009-07-24 17:47:51.000000000 -0400 |
10757 | +++ linux-2.6.29.6/arch/x86/kernel/traps.c 2009-07-23 17:34:32.077892704 -0400 | 10909 | +++ linux-2.6.30.4/arch/x86/kernel/traps.c 2009-07-30 09:48:09.961532028 -0400 |
10758 | @@ -71,14 +71,6 @@ asmlinkage int system_call(void); | 10910 | @@ -70,14 +70,6 @@ asmlinkage int system_call(void); |
10759 | 10911 | ||
10760 | /* Do we ignore FPU interrupts ? */ | 10912 | /* Do we ignore FPU interrupts ? */ |
10761 | char ignore_fpu_irq; | 10913 | char ignore_fpu_irq; |
@@ -10770,7 +10922,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/traps.c linux-2.6.29.6/arch/x86/kernel | |||
10770 | #endif | 10922 | #endif |
10771 | 10923 | ||
10772 | DECLARE_BITMAP(used_vectors, NR_VECTORS); | 10924 | DECLARE_BITMAP(used_vectors, NR_VECTORS); |
10773 | @@ -116,7 +108,7 @@ static inline void preempt_conditional_c | 10925 | @@ -115,7 +107,7 @@ static inline void preempt_conditional_c |
10774 | static inline void | 10926 | static inline void |
10775 | die_if_kernel(const char *str, struct pt_regs *regs, long err) | 10927 | die_if_kernel(const char *str, struct pt_regs *regs, long err) |
10776 | { | 10928 | { |
@@ -10778,17 +10930,8 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/traps.c linux-2.6.29.6/arch/x86/kernel | |||
10778 | + if (!user_mode(regs)) | 10930 | + if (!user_mode(regs)) |
10779 | die(str, regs, err); | 10931 | die(str, regs, err); |
10780 | } | 10932 | } |
10781 | 10933 | #endif | |
10782 | @@ -133,7 +125,7 @@ static int lazy_iobitmap_copy(void) | 10934 | @@ -127,7 +119,7 @@ do_trap(int trapnr, int signr, char *str |
10783 | int cpu; | ||
10784 | |||
10785 | cpu = get_cpu(); | ||
10786 | - tss = &per_cpu(init_tss, cpu); | ||
10787 | + tss = init_tss + cpu; | ||
10788 | thread = ¤t->thread; | ||
10789 | |||
10790 | if (tss->x86_tss.io_bitmap_base == INVALID_IO_BITMAP_OFFSET_LAZY && | ||
10791 | @@ -169,7 +161,7 @@ do_trap(int trapnr, int signr, char *str | ||
10792 | struct task_struct *tsk = current; | 10935 | struct task_struct *tsk = current; |
10793 | 10936 | ||
10794 | #ifdef CONFIG_X86_32 | 10937 | #ifdef CONFIG_X86_32 |
@@ -10797,7 +10940,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/traps.c linux-2.6.29.6/arch/x86/kernel | |||
10797 | /* | 10940 | /* |
10798 | * traps 0, 1, 3, 4, and 5 should be forwarded to vm86. | 10941 | * traps 0, 1, 3, 4, and 5 should be forwarded to vm86. |
10799 | * On nmi (interrupt 2), do_trap should not be called. | 10942 | * On nmi (interrupt 2), do_trap should not be called. |
10800 | @@ -180,7 +172,7 @@ do_trap(int trapnr, int signr, char *str | 10943 | @@ -138,7 +130,7 @@ do_trap(int trapnr, int signr, char *str |
10801 | } | 10944 | } |
10802 | #endif | 10945 | #endif |
10803 | 10946 | ||
@@ -10806,7 +10949,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/traps.c linux-2.6.29.6/arch/x86/kernel | |||
10806 | goto kernel_trap; | 10949 | goto kernel_trap; |
10807 | 10950 | ||
10808 | #ifdef CONFIG_X86_32 | 10951 | #ifdef CONFIG_X86_32 |
10809 | @@ -203,7 +195,7 @@ trap_signal: | 10952 | @@ -161,7 +153,7 @@ trap_signal: |
10810 | printk_ratelimit()) { | 10953 | printk_ratelimit()) { |
10811 | printk(KERN_INFO | 10954 | printk(KERN_INFO |
10812 | "%s[%d] trap %s ip:%lx sp:%lx error:%lx", | 10955 | "%s[%d] trap %s ip:%lx sp:%lx error:%lx", |
@@ -10815,7 +10958,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/traps.c linux-2.6.29.6/arch/x86/kernel | |||
10815 | regs->ip, regs->sp, error_code); | 10958 | regs->ip, regs->sp, error_code); |
10816 | print_vma_addr(" in ", regs->ip); | 10959 | print_vma_addr(" in ", regs->ip); |
10817 | printk("\n"); | 10960 | printk("\n"); |
10818 | @@ -222,6 +214,12 @@ kernel_trap: | 10961 | @@ -180,6 +172,12 @@ kernel_trap: |
10819 | tsk->thread.trap_no = trapnr; | 10962 | tsk->thread.trap_no = trapnr; |
10820 | die(str, regs, error_code); | 10963 | die(str, regs, error_code); |
10821 | } | 10964 | } |
@@ -10828,10 +10971,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/traps.c linux-2.6.29.6/arch/x86/kernel | |||
10828 | return; | 10971 | return; |
10829 | 10972 | ||
10830 | #ifdef CONFIG_X86_32 | 10973 | #ifdef CONFIG_X86_32 |
10831 | @@ -315,14 +313,30 @@ do_general_protection(struct pt_regs *re | 10974 | @@ -268,14 +266,30 @@ do_general_protection(struct pt_regs *re |
10832 | return; | 10975 | conditional_sti(regs); |
10833 | } | ||
10834 | 10976 | ||
10977 | #ifdef CONFIG_X86_32 | ||
10835 | - if (regs->flags & X86_VM_MASK) | 10978 | - if (regs->flags & X86_VM_MASK) |
10836 | + if (v8086_mode(regs)) | 10979 | + if (v8086_mode(regs)) |
10837 | goto gp_in_vm86; | 10980 | goto gp_in_vm86; |
@@ -10861,7 +11004,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/traps.c linux-2.6.29.6/arch/x86/kernel | |||
10861 | tsk->thread.error_code = error_code; | 11004 | tsk->thread.error_code = error_code; |
10862 | tsk->thread.trap_no = 13; | 11005 | tsk->thread.trap_no = 13; |
10863 | 11006 | ||
10864 | @@ -355,6 +369,13 @@ gp_in_kernel: | 11007 | @@ -308,6 +322,13 @@ gp_in_kernel: |
10865 | if (notify_die(DIE_GPF, "general protection fault", regs, | 11008 | if (notify_die(DIE_GPF, "general protection fault", regs, |
10866 | error_code, 13, SIGSEGV) == NOTIFY_STOP) | 11009 | error_code, 13, SIGSEGV) == NOTIFY_STOP) |
10867 | return; | 11010 | return; |
@@ -10875,7 +11018,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/traps.c linux-2.6.29.6/arch/x86/kernel | |||
10875 | die("general protection fault", regs, error_code); | 11018 | die("general protection fault", regs, error_code); |
10876 | } | 11019 | } |
10877 | 11020 | ||
10878 | @@ -601,7 +622,7 @@ dotraplinkage void __kprobes do_debug(st | 11021 | @@ -554,7 +575,7 @@ dotraplinkage void __kprobes do_debug(st |
10879 | } | 11022 | } |
10880 | 11023 | ||
10881 | #ifdef CONFIG_X86_32 | 11024 | #ifdef CONFIG_X86_32 |
@@ -10884,7 +11027,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/traps.c linux-2.6.29.6/arch/x86/kernel | |||
10884 | goto debug_vm86; | 11027 | goto debug_vm86; |
10885 | #endif | 11028 | #endif |
10886 | 11029 | ||
10887 | @@ -613,7 +634,7 @@ dotraplinkage void __kprobes do_debug(st | 11030 | @@ -566,7 +587,7 @@ dotraplinkage void __kprobes do_debug(st |
10888 | * kernel space (but re-enable TF when returning to user mode). | 11031 | * kernel space (but re-enable TF when returning to user mode). |
10889 | */ | 11032 | */ |
10890 | if (condition & DR_STEP) { | 11033 | if (condition & DR_STEP) { |
@@ -10893,7 +11036,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/traps.c linux-2.6.29.6/arch/x86/kernel | |||
10893 | goto clear_TF_reenable; | 11036 | goto clear_TF_reenable; |
10894 | } | 11037 | } |
10895 | 11038 | ||
10896 | @@ -800,7 +821,7 @@ do_simd_coprocessor_error(struct pt_regs | 11039 | @@ -753,7 +774,7 @@ do_simd_coprocessor_error(struct pt_regs |
10897 | * Handle strange cache flush from user space exception | 11040 | * Handle strange cache flush from user space exception |
10898 | * in all other cases. This is undocumented behaviour. | 11041 | * in all other cases. This is undocumented behaviour. |
10899 | */ | 11042 | */ |
@@ -10902,7 +11045,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/traps.c linux-2.6.29.6/arch/x86/kernel | |||
10902 | handle_vm86_fault((struct kernel_vm86_regs *)regs, error_code); | 11045 | handle_vm86_fault((struct kernel_vm86_regs *)regs, error_code); |
10903 | return; | 11046 | return; |
10904 | } | 11047 | } |
10905 | @@ -829,19 +850,14 @@ do_spurious_interrupt_bug(struct pt_regs | 11048 | @@ -782,19 +803,14 @@ do_spurious_interrupt_bug(struct pt_regs |
10906 | #ifdef CONFIG_X86_32 | 11049 | #ifdef CONFIG_X86_32 |
10907 | unsigned long patch_espfix_desc(unsigned long uesp, unsigned long kesp) | 11050 | unsigned long patch_espfix_desc(unsigned long uesp, unsigned long kesp) |
10908 | { | 11051 | { |
@@ -10925,10 +11068,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/traps.c linux-2.6.29.6/arch/x86/kernel | |||
10925 | 11068 | ||
10926 | return new_kesp; | 11069 | return new_kesp; |
10927 | } | 11070 | } |
10928 | diff -urNp linux-2.6.29.6/arch/x86/kernel/tsc.c linux-2.6.29.6/arch/x86/kernel/tsc.c | 11071 | diff -urNp linux-2.6.30.4/arch/x86/kernel/tsc.c linux-2.6.30.4/arch/x86/kernel/tsc.c |
10929 | --- linux-2.6.29.6/arch/x86/kernel/tsc.c 2009-07-02 19:41:20.000000000 -0400 | 11072 | --- linux-2.6.30.4/arch/x86/kernel/tsc.c 2009-07-24 17:47:51.000000000 -0400 |
10930 | +++ linux-2.6.29.6/arch/x86/kernel/tsc.c 2009-07-23 17:34:32.077892704 -0400 | 11073 | +++ linux-2.6.30.4/arch/x86/kernel/tsc.c 2009-07-30 09:48:09.961532028 -0400 |
10931 | @@ -765,7 +765,7 @@ static struct dmi_system_id __initdata b | 11074 | @@ -772,7 +772,7 @@ static struct dmi_system_id __initdata b |
10932 | DMI_MATCH(DMI_BOARD_NAME, "2635FA0"), | 11075 | DMI_MATCH(DMI_BOARD_NAME, "2635FA0"), |
10933 | }, | 11076 | }, |
10934 | }, | 11077 | }, |
@@ -10937,9 +11080,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/tsc.c linux-2.6.29.6/arch/x86/kernel/t | |||
10937 | }; | 11080 | }; |
10938 | 11081 | ||
10939 | static void __init check_system_tsc_reliable(void) | 11082 | static void __init check_system_tsc_reliable(void) |
10940 | diff -urNp linux-2.6.29.6/arch/x86/kernel/vm86_32.c linux-2.6.29.6/arch/x86/kernel/vm86_32.c | 11083 | diff -urNp linux-2.6.30.4/arch/x86/kernel/vm86_32.c linux-2.6.30.4/arch/x86/kernel/vm86_32.c |
10941 | --- linux-2.6.29.6/arch/x86/kernel/vm86_32.c 2009-07-02 19:41:20.000000000 -0400 | 11084 | --- linux-2.6.30.4/arch/x86/kernel/vm86_32.c 2009-07-24 17:47:51.000000000 -0400 |
10942 | +++ linux-2.6.29.6/arch/x86/kernel/vm86_32.c 2009-07-23 17:34:32.078863323 -0400 | 11085 | +++ linux-2.6.30.4/arch/x86/kernel/vm86_32.c 2009-07-30 09:48:09.961532028 -0400 |
10943 | @@ -148,7 +148,7 @@ struct pt_regs *save_v86_state(struct ke | 11086 | @@ -148,7 +148,7 @@ struct pt_regs *save_v86_state(struct ke |
10944 | do_exit(SIGSEGV); | 11087 | do_exit(SIGSEGV); |
10945 | } | 11088 | } |
@@ -10949,18 +11092,18 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vm86_32.c linux-2.6.29.6/arch/x86/kern | |||
10949 | current->thread.sp0 = current->thread.saved_sp0; | 11092 | current->thread.sp0 = current->thread.saved_sp0; |
10950 | current->thread.sysenter_cs = __KERNEL_CS; | 11093 | current->thread.sysenter_cs = __KERNEL_CS; |
10951 | load_sp0(tss, ¤t->thread); | 11094 | load_sp0(tss, ¤t->thread); |
10952 | @@ -325,7 +325,7 @@ static void do_sys_vm86(struct kernel_vm | 11095 | @@ -324,7 +324,7 @@ static void do_sys_vm86(struct kernel_vm |
10953 | tsk->thread.saved_fs = info->regs32->fs; | 11096 | tsk->thread.saved_fs = info->regs32->fs; |
10954 | savesegment(gs, tsk->thread.saved_gs); | 11097 | tsk->thread.saved_gs = get_user_gs(info->regs32); |
10955 | 11098 | ||
10956 | - tss = &per_cpu(init_tss, get_cpu()); | 11099 | - tss = &per_cpu(init_tss, get_cpu()); |
10957 | + tss = init_tss + get_cpu(); | 11100 | + tss = init_tss + get_cpu(); |
10958 | tsk->thread.sp0 = (unsigned long) &info->VM86_TSS_ESP0; | 11101 | tsk->thread.sp0 = (unsigned long) &info->VM86_TSS_ESP0; |
10959 | if (cpu_has_sep) | 11102 | if (cpu_has_sep) |
10960 | tsk->thread.sysenter_cs = 0; | 11103 | tsk->thread.sysenter_cs = 0; |
10961 | diff -urNp linux-2.6.29.6/arch/x86/kernel/vmi_32.c linux-2.6.29.6/arch/x86/kernel/vmi_32.c | 11104 | diff -urNp linux-2.6.30.4/arch/x86/kernel/vmi_32.c linux-2.6.30.4/arch/x86/kernel/vmi_32.c |
10962 | --- linux-2.6.29.6/arch/x86/kernel/vmi_32.c 2009-07-02 19:41:20.000000000 -0400 | 11105 | --- linux-2.6.30.4/arch/x86/kernel/vmi_32.c 2009-07-24 17:47:51.000000000 -0400 |
10963 | +++ linux-2.6.29.6/arch/x86/kernel/vmi_32.c 2009-07-23 17:34:32.078863323 -0400 | 11106 | +++ linux-2.6.30.4/arch/x86/kernel/vmi_32.c 2009-07-30 09:48:09.962543704 -0400 |
10964 | @@ -102,18 +102,43 @@ static unsigned patch_internal(int call, | 11107 | @@ -102,18 +102,43 @@ static unsigned patch_internal(int call, |
10965 | { | 11108 | { |
10966 | u64 reloc; | 11109 | u64 reloc; |
@@ -11005,7 +11148,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmi_32.c linux-2.6.29.6/arch/x86/kerne | |||
11005 | return 5; | 11148 | return 5; |
11006 | 11149 | ||
11007 | case VMI_RELOCATION_NOP: | 11150 | case VMI_RELOCATION_NOP: |
11008 | @@ -409,13 +434,13 @@ static void vmi_set_pud(pud_t *pudp, pud | 11151 | @@ -404,13 +429,13 @@ static void vmi_set_pud(pud_t *pudp, pud |
11009 | 11152 | ||
11010 | static void vmi_pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) | 11153 | static void vmi_pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) |
11011 | { | 11154 | { |
@@ -11021,7 +11164,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmi_32.c linux-2.6.29.6/arch/x86/kerne | |||
11021 | vmi_ops.set_pte(pte, (pte_t *)pmd, VMI_PAGE_PD); | 11164 | vmi_ops.set_pte(pte, (pte_t *)pmd, VMI_PAGE_PD); |
11022 | } | 11165 | } |
11023 | #endif | 11166 | #endif |
11024 | @@ -443,8 +468,8 @@ vmi_startup_ipi_hook(int phys_apicid, un | 11167 | @@ -438,8 +463,8 @@ vmi_startup_ipi_hook(int phys_apicid, un |
11025 | ap.ss = __KERNEL_DS; | 11168 | ap.ss = __KERNEL_DS; |
11026 | ap.esp = (unsigned long) start_esp; | 11169 | ap.esp = (unsigned long) start_esp; |
11027 | 11170 | ||
@@ -11032,7 +11175,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmi_32.c linux-2.6.29.6/arch/x86/kerne | |||
11032 | ap.fs = __KERNEL_PERCPU; | 11175 | ap.fs = __KERNEL_PERCPU; |
11033 | ap.gs = 0; | 11176 | ap.gs = 0; |
11034 | 11177 | ||
11035 | @@ -639,12 +664,20 @@ static inline int __init activate_vmi(vo | 11178 | @@ -634,12 +659,20 @@ static inline int __init activate_vmi(vo |
11036 | u64 reloc; | 11179 | u64 reloc; |
11037 | const struct vmi_relocation_info *rel = (struct vmi_relocation_info *)&reloc; | 11180 | const struct vmi_relocation_info *rel = (struct vmi_relocation_info *)&reloc; |
11038 | 11181 | ||
@@ -11053,7 +11196,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmi_32.c linux-2.6.29.6/arch/x86/kerne | |||
11053 | pv_info.paravirt_enabled = 1; | 11196 | pv_info.paravirt_enabled = 1; |
11054 | pv_info.kernel_rpl = kernel_cs & SEGMENT_RPL_MASK; | 11197 | pv_info.kernel_rpl = kernel_cs & SEGMENT_RPL_MASK; |
11055 | pv_info.name = "vmi"; | 11198 | pv_info.name = "vmi"; |
11056 | @@ -835,6 +868,10 @@ static inline int __init activate_vmi(vo | 11199 | @@ -830,6 +863,10 @@ static inline int __init activate_vmi(vo |
11057 | 11200 | ||
11058 | para_fill(pv_irq_ops.safe_halt, Halt); | 11201 | para_fill(pv_irq_ops.safe_halt, Halt); |
11059 | 11202 | ||
@@ -11064,11 +11207,11 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmi_32.c linux-2.6.29.6/arch/x86/kerne | |||
11064 | /* | 11207 | /* |
11065 | * Alternative instruction rewriting doesn't happen soon enough | 11208 | * Alternative instruction rewriting doesn't happen soon enough |
11066 | * to convert VMI_IRET to a call instead of a jump; so we have | 11209 | * to convert VMI_IRET to a call instead of a jump; so we have |
11067 | diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_32.lds.S linux-2.6.29.6/arch/x86/kernel/vmlinux_32.lds.S | 11210 | diff -urNp linux-2.6.30.4/arch/x86/kernel/vmlinux_32.lds.S linux-2.6.30.4/arch/x86/kernel/vmlinux_32.lds.S |
11068 | --- linux-2.6.29.6/arch/x86/kernel/vmlinux_32.lds.S 2009-07-02 19:41:20.000000000 -0400 | 11211 | --- linux-2.6.30.4/arch/x86/kernel/vmlinux_32.lds.S 2009-07-24 17:47:51.000000000 -0400 |
11069 | +++ linux-2.6.29.6/arch/x86/kernel/vmlinux_32.lds.S 2009-07-23 17:34:32.078863323 -0400 | 11212 | +++ linux-2.6.30.4/arch/x86/kernel/vmlinux_32.lds.S 2009-07-30 09:48:09.962543704 -0400 |
11070 | @@ -15,6 +15,20 @@ | 11213 | @@ -15,6 +15,20 @@ |
11071 | #include <asm/page.h> | 11214 | #include <asm/page_types.h> |
11072 | #include <asm/cache.h> | 11215 | #include <asm/cache.h> |
11073 | #include <asm/boot.h> | 11216 | #include <asm/boot.h> |
11074 | +#include <asm/segment.h> | 11217 | +#include <asm/segment.h> |
@@ -11107,7 +11250,8 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_32.lds.S linux-2.6.29.6/arch/x | |||
11107 | { | 11250 | { |
11108 | - . = LOAD_OFFSET + LOAD_PHYSICAL_ADDR; | 11251 | - . = LOAD_OFFSET + LOAD_PHYSICAL_ADDR; |
11109 | - phys_startup_32 = startup_32 - LOAD_OFFSET; | 11252 | - phys_startup_32 = startup_32 - LOAD_OFFSET; |
11110 | - | 11253 | + . = LOAD_OFFSET + ____LOAD_PHYSICAL_ADDR; |
11254 | |||
11111 | - .text.head : AT(ADDR(.text.head) - LOAD_OFFSET) { | 11255 | - .text.head : AT(ADDR(.text.head) - LOAD_OFFSET) { |
11112 | - _text = .; /* Text and read-only data */ | 11256 | - _text = .; /* Text and read-only data */ |
11113 | - *(.text.head) | 11257 | - *(.text.head) |
@@ -11128,8 +11272,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_32.lds.S linux-2.6.29.6/arch/x | |||
11128 | - } :text = 0x9090 | 11272 | - } :text = 0x9090 |
11129 | - | 11273 | - |
11130 | - NOTES :text :note | 11274 | - NOTES :text :note |
11131 | + . = LOAD_OFFSET + ____LOAD_PHYSICAL_ADDR; | 11275 | - |
11132 | |||
11133 | - . = ALIGN(16); /* Exception table */ | 11276 | - . = ALIGN(16); /* Exception table */ |
11134 | - __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { | 11277 | - __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { |
11135 | - __start___ex_table = .; | 11278 | - __start___ex_table = .; |
@@ -11212,29 +11355,16 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_32.lds.S linux-2.6.29.6/arch/x | |||
11212 | .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) { | 11355 | .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) { |
11213 | EXIT_DATA | 11356 | EXIT_DATA |
11214 | } | 11357 | } |
11215 | @@ -179,18 +123,139 @@ SECTIONS | 11358 | @@ -178,12 +122,130 @@ SECTIONS |
11359 | __initramfs_end = .; | ||
11216 | } | 11360 | } |
11217 | #endif | 11361 | #endif |
11362 | - PERCPU(PAGE_SIZE) | ||
11218 | . = ALIGN(PAGE_SIZE); | 11363 | . = ALIGN(PAGE_SIZE); |
11219 | - .data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) { | 11364 | + PERCPU_VADDR(0, :percpu) |
11220 | - __per_cpu_start = .; | 11365 | + . = ALIGN(PAGE_SIZE); |
11221 | - *(.data.percpu.page_aligned) | 11366 | + /* freed after init ends here */ |
11222 | + per_cpu_start = .; | 11367 | + |
11223 | + .data.percpu (0) : AT(ADDR(.data.percpu) - LOAD_OFFSET + per_cpu_start) { | ||
11224 | + __per_cpu_start = . + per_cpu_start; | ||
11225 | + LONG(0) | ||
11226 | *(.data.percpu) | ||
11227 | *(.data.percpu.shared_aligned) | ||
11228 | - __per_cpu_end = .; | ||
11229 | - } | ||
11230 | + . = ALIGN(PAGE_SIZE); | ||
11231 | + *(.data.percpu.page_aligned) | ||
11232 | + __per_cpu_end = . + per_cpu_start; | ||
11233 | + } :percpu | ||
11234 | + . += per_cpu_start; | ||
11235 | . = ALIGN(PAGE_SIZE); | ||
11236 | /* freed after init ends here */ | ||
11237 | |||
11238 | + . = ALIGN(PAGE_SIZE); /* Init code and data */ | 11368 | + . = ALIGN(PAGE_SIZE); /* Init code and data */ |
11239 | + .init.text (. - __KERNEL_TEXT_OFFSET) : AT(ADDR(.init.text) - LOAD_OFFSET + __KERNEL_TEXT_OFFSET) { | 11369 | + .init.text (. - __KERNEL_TEXT_OFFSET) : AT(ADDR(.init.text) - LOAD_OFFSET + __KERNEL_TEXT_OFFSET) { |
11240 | + _sinittext = .; | 11370 | + _sinittext = .; |
@@ -11253,8 +11383,8 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_32.lds.S linux-2.6.29.6/arch/x | |||
11253 | + . = ALIGN(2*PMD_SIZE) - 1; | 11383 | + . = ALIGN(2*PMD_SIZE) - 1; |
11254 | + } | 11384 | + } |
11255 | + | 11385 | + |
11256 | + /* freed after init ends here */ | 11386 | /* freed after init ends here */ |
11257 | + | 11387 | |
11258 | + .text.head : AT(ADDR(.text.head) - LOAD_OFFSET + __KERNEL_TEXT_OFFSET) { | 11388 | + .text.head : AT(ADDR(.text.head) - LOAD_OFFSET + __KERNEL_TEXT_OFFSET) { |
11259 | + __init_end = . + __KERNEL_TEXT_OFFSET; | 11389 | + __init_end = . + __KERNEL_TEXT_OFFSET; |
11260 | + KERNEL_TEXT_OFFSET = . + __KERNEL_TEXT_OFFSET; | 11390 | + KERNEL_TEXT_OFFSET = . + __KERNEL_TEXT_OFFSET; |
@@ -11358,16 +11488,15 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_32.lds.S linux-2.6.29.6/arch/x | |||
11358 | __bss_start = .; /* BSS */ | 11488 | __bss_start = .; /* BSS */ |
11359 | *(.bss.page_aligned) | 11489 | *(.bss.page_aligned) |
11360 | *(.bss) | 11490 | *(.bss) |
11361 | diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S | 11491 | diff -urNp linux-2.6.30.4/arch/x86/kernel/vmlinux_64.lds.S linux-2.6.30.4/arch/x86/kernel/vmlinux_64.lds.S |
11362 | --- linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S 2009-07-02 19:41:20.000000000 -0400 | 11492 | --- linux-2.6.30.4/arch/x86/kernel/vmlinux_64.lds.S 2009-07-24 17:47:51.000000000 -0400 |
11363 | +++ linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S 2009-07-23 17:34:37.458887026 -0400 | 11493 | +++ linux-2.6.30.4/arch/x86/kernel/vmlinux_64.lds.S 2009-08-01 08:46:06.438873305 -0400 |
11364 | @@ -12,12 +12,12 @@ | 11494 | @@ -13,11 +13,11 @@ |
11365 | OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") | 11495 | OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") |
11366 | OUTPUT_ARCH(i386:x86-64) | 11496 | OUTPUT_ARCH(i386:x86-64) |
11367 | ENTRY(phys_startup_64) | 11497 | ENTRY(phys_startup_64) |
11368 | -jiffies_64 = jiffies; | 11498 | -jiffies_64 = jiffies; |
11369 | +jiffies = jiffies_64; | 11499 | +jiffies = jiffies_64; |
11370 | _proxy_pda = 1; | ||
11371 | PHDRS { | 11500 | PHDRS { |
11372 | text PT_LOAD FLAGS(5); /* R_E */ | 11501 | text PT_LOAD FLAGS(5); /* R_E */ |
11373 | - data PT_LOAD FLAGS(7); /* RWE */ | 11502 | - data PT_LOAD FLAGS(7); /* RWE */ |
@@ -11375,9 +11504,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S linux-2.6.29.6/arch/x | |||
11375 | + data PT_LOAD FLAGS(6); /* RW_ */ | 11504 | + data PT_LOAD FLAGS(6); /* RW_ */ |
11376 | + user PT_LOAD FLAGS(5); /* R_E */ | 11505 | + user PT_LOAD FLAGS(5); /* R_E */ |
11377 | data.init PT_LOAD FLAGS(7); /* RWE */ | 11506 | data.init PT_LOAD FLAGS(7); /* RWE */ |
11378 | note PT_NOTE FLAGS(0); /* ___ */ | 11507 | #ifdef CONFIG_SMP |
11379 | } | 11508 | percpu PT_LOAD FLAGS(7); /* RWE */ |
11380 | @@ -50,17 +50,20 @@ SECTIONS | 11509 | @@ -54,14 +54,18 @@ SECTIONS |
11381 | __stop___ex_table = .; | 11510 | __stop___ex_table = .; |
11382 | } :text = 0x9090 | 11511 | } :text = 0x9090 |
11383 | 11512 | ||
@@ -11390,36 +11519,36 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S linux-2.6.29.6/arch/x | |||
11390 | . = ALIGN(PAGE_SIZE); /* Align data segment to page size boundary */ | 11519 | . = ALIGN(PAGE_SIZE); /* Align data segment to page size boundary */ |
11391 | +#endif | 11520 | +#endif |
11392 | /* Data */ | 11521 | /* Data */ |
11393 | + _data = .; | ||
11394 | .data : AT(ADDR(.data) - LOAD_OFFSET) { | 11522 | .data : AT(ADDR(.data) - LOAD_OFFSET) { |
11523 | + _data = .; | ||
11395 | DATA_DATA | 11524 | DATA_DATA |
11396 | CONSTRUCTORS | 11525 | CONSTRUCTORS |
11526 | - _edata = .; /* End of data section */ | ||
11397 | } :data | 11527 | } :data |
11398 | 11528 | ||
11399 | - _edata = .; /* End of data section */ | 11529 | |
11400 | - | 11530 | @@ -75,9 +79,28 @@ SECTIONS |
11401 | . = ALIGN(PAGE_SIZE); | ||
11402 | . = ALIGN(CONFIG_X86_L1_CACHE_BYTES); | ||
11403 | .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) { | ||
11404 | @@ -71,9 +74,25 @@ SECTIONS | ||
11405 | *(.data.read_mostly) | 11531 | *(.data.read_mostly) |
11406 | } | 11532 | } |
11407 | 11533 | ||
11408 | + . = ALIGN(THREAD_SIZE); /* init_task */ | ||
11409 | + .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) { | 11534 | + .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) { |
11535 | + . = ALIGN(THREAD_SIZE); /* init_task */ | ||
11410 | + *(.data.init_task) | 11536 | + *(.data.init_task) |
11411 | + }:data | 11537 | + } |
11412 | + | 11538 | + |
11413 | + . = ALIGN(PAGE_SIZE); | ||
11414 | + .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) { | 11539 | + .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) { |
11540 | + . = ALIGN(PAGE_SIZE); | ||
11415 | + *(.data.page_aligned) | 11541 | + *(.data.page_aligned) |
11416 | + } | 11542 | + } |
11417 | + | 11543 | + |
11418 | + . = ALIGN(PAGE_SIZE); | 11544 | + .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { |
11419 | + __nosave_begin = .; | 11545 | + . = ALIGN(PAGE_SIZE); |
11420 | + .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { *(.data.nosave) } | 11546 | + __nosave_begin = .; |
11421 | + . = ALIGN(PAGE_SIZE); | 11547 | + *(.data.nosave) |
11422 | + __nosave_end = .; | 11548 | + . = ALIGN(PAGE_SIZE); |
11549 | + __nosave_end = .; | ||
11550 | + _edata = .; /* End of data section */ | ||
11551 | + } | ||
11423 | + | 11552 | + |
11424 | #define VSYSCALL_ADDR (-10*1024*1024) | 11553 | #define VSYSCALL_ADDR (-10*1024*1024) |
11425 | -#define VSYSCALL_PHYS_ADDR ((LOADADDR(.data.read_mostly) + SIZEOF(.data.read_mostly) + 4095) & ~(4095)) | 11554 | -#define VSYSCALL_PHYS_ADDR ((LOADADDR(.data.read_mostly) + SIZEOF(.data.read_mostly) + 4095) & ~(4095)) |
@@ -11429,7 +11558,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S linux-2.6.29.6/arch/x | |||
11429 | 11558 | ||
11430 | #define VLOAD_OFFSET (VSYSCALL_ADDR - VSYSCALL_PHYS_ADDR) | 11559 | #define VLOAD_OFFSET (VSYSCALL_ADDR - VSYSCALL_PHYS_ADDR) |
11431 | #define VLOAD(x) (ADDR(x) - VLOAD_OFFSET) | 11560 | #define VLOAD(x) (ADDR(x) - VLOAD_OFFSET) |
11432 | @@ -104,10 +123,6 @@ SECTIONS | 11561 | @@ -108,10 +131,6 @@ SECTIONS |
11433 | .vgetcpu_mode : AT(VLOAD(.vgetcpu_mode)) { *(.vgetcpu_mode) } | 11562 | .vgetcpu_mode : AT(VLOAD(.vgetcpu_mode)) { *(.vgetcpu_mode) } |
11434 | vgetcpu_mode = VVIRT(.vgetcpu_mode); | 11563 | vgetcpu_mode = VVIRT(.vgetcpu_mode); |
11435 | 11564 | ||
@@ -11440,53 +11569,73 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vmlinux_64.lds.S linux-2.6.29.6/arch/x | |||
11440 | .vsyscall_3 ADDR(.vsyscall_0) + 3072: AT(VLOAD(.vsyscall_3)) | 11569 | .vsyscall_3 ADDR(.vsyscall_0) + 3072: AT(VLOAD(.vsyscall_3)) |
11441 | { *(.vsyscall_3) } | 11570 | { *(.vsyscall_3) } |
11442 | 11571 | ||
11443 | @@ -121,15 +136,7 @@ SECTIONS | 11572 | @@ -125,16 +144,6 @@ SECTIONS |
11444 | #undef VVIRT_OFFSET | 11573 | #undef VVIRT_OFFSET |
11445 | #undef VVIRT | 11574 | #undef VVIRT |
11446 | 11575 | ||
11447 | - . = ALIGN(THREAD_SIZE); /* init_task */ | ||
11448 | - .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) { | 11576 | - .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) { |
11577 | - . = ALIGN(THREAD_SIZE); /* init_task */ | ||
11449 | - *(.data.init_task) | 11578 | - *(.data.init_task) |
11450 | - }:data.init | 11579 | - }:data.init |
11451 | - | 11580 | - |
11452 | - . = ALIGN(PAGE_SIZE); | ||
11453 | - .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) { | 11581 | - .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) { |
11582 | - . = ALIGN(PAGE_SIZE); | ||
11454 | - *(.data.page_aligned) | 11583 | - *(.data.page_aligned) |
11455 | - } | 11584 | - } |
11456 | + _edata = .; /* End of data section */ | 11585 | - |
11457 | |||
11458 | /* might get freed after init */ | ||
11459 | . = ALIGN(PAGE_SIZE); | ||
11460 | @@ -137,7 +144,7 @@ SECTIONS | ||
11461 | __smp_locks = .; | ||
11462 | .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) { | 11586 | .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) { |
11463 | *(.smp_locks) | 11587 | /* might get freed after init */ |
11588 | . = ALIGN(PAGE_SIZE); | ||
11589 | @@ -144,7 +153,7 @@ SECTIONS | ||
11590 | __smp_locks_end = .; | ||
11591 | . = ALIGN(PAGE_SIZE); | ||
11592 | __smp_alt_end = .; | ||
11464 | - } | 11593 | - } |
11465 | + }:data.init | 11594 | + }:data.init |
11466 | __smp_locks_end = .; | 11595 | |
11467 | . = ALIGN(PAGE_SIZE); | 11596 | . = ALIGN(PAGE_SIZE); /* Init code and data */ |
11468 | __smp_alt_end = .; | 11597 | __init_begin = .; /* paired with __init_end */ |
11469 | @@ -213,16 +220,11 @@ SECTIONS | 11598 | @@ -233,27 +242,20 @@ SECTIONS |
11470 | . = ALIGN(PAGE_SIZE); | 11599 | . = ALIGN(PAGE_SIZE); |
11471 | __init_end = .; | 11600 | __init_end = .; |
11472 | 11601 | ||
11473 | - . = ALIGN(PAGE_SIZE); | 11602 | - .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { |
11474 | - __nosave_begin = .; | 11603 | - . = ALIGN(PAGE_SIZE); |
11475 | - .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { *(.data.nosave) } | 11604 | - __nosave_begin = .; |
11476 | - . = ALIGN(PAGE_SIZE); | 11605 | - *(.data.nosave) |
11477 | - __nosave_end = .; | 11606 | - . = ALIGN(PAGE_SIZE); |
11607 | - __nosave_end = .; | ||
11608 | - } :data.init2 /* use another section data.init2, see PERCPU_VADDR() above */ | ||
11478 | - | 11609 | - |
11479 | __bss_start = .; /* BSS */ | ||
11480 | .bss : AT(ADDR(.bss) - LOAD_OFFSET) { | 11610 | .bss : AT(ADDR(.bss) - LOAD_OFFSET) { |
11611 | . = ALIGN(PAGE_SIZE); | ||
11612 | __bss_start = .; /* BSS */ | ||
11481 | *(.bss.page_aligned) | 11613 | *(.bss.page_aligned) |
11482 | *(.bss) | 11614 | *(.bss) |
11615 | __bss_stop = .; | ||
11616 | - } | ||
11617 | + } :data.init2 | ||
11618 | |||
11619 | .brk : AT(ADDR(.brk) - LOAD_OFFSET) { | ||
11620 | . = ALIGN(PAGE_SIZE); | ||
11621 | __brk_base = . ; | ||
11622 | . += 64 * 1024 ; /* 64k alignment slop space */ | ||
11623 | *(.brk_reservation) /* areas brk users have reserved */ | ||
11483 | + . = ALIGN(2*1024*1024); | 11624 | + . = ALIGN(2*1024*1024); |
11484 | } | 11625 | __brk_limit = . ; |
11485 | __bss_stop = .; | 11626 | } |
11486 | 11627 | ||
11487 | diff -urNp linux-2.6.29.6/arch/x86/kernel/vsyscall_64.c linux-2.6.29.6/arch/x86/kernel/vsyscall_64.c | 11628 | @@ -276,7 +278,6 @@ SECTIONS |
11488 | --- linux-2.6.29.6/arch/x86/kernel/vsyscall_64.c 2009-07-02 19:41:20.000000000 -0400 | 11629 | * for the boot processor. |
11489 | +++ linux-2.6.29.6/arch/x86/kernel/vsyscall_64.c 2009-07-23 17:34:32.080014276 -0400 | 11630 | */ |
11631 | #define INIT_PER_CPU(x) init_per_cpu__##x = per_cpu__##x + __per_cpu_load | ||
11632 | -INIT_PER_CPU(gdt_page); | ||
11633 | INIT_PER_CPU(irq_stack_union); | ||
11634 | |||
11635 | /* | ||
11636 | diff -urNp linux-2.6.30.4/arch/x86/kernel/vsyscall_64.c linux-2.6.30.4/arch/x86/kernel/vsyscall_64.c | ||
11637 | --- linux-2.6.30.4/arch/x86/kernel/vsyscall_64.c 2009-07-24 17:47:51.000000000 -0400 | ||
11638 | +++ linux-2.6.30.4/arch/x86/kernel/vsyscall_64.c 2009-07-30 09:48:09.963690654 -0400 | ||
11490 | @@ -79,6 +79,7 @@ void update_vsyscall(struct timespec *wa | 11639 | @@ -79,6 +79,7 @@ void update_vsyscall(struct timespec *wa |
11491 | 11640 | ||
11492 | write_seqlock_irqsave(&vsyscall_gtod_data.lock, flags); | 11641 | write_seqlock_irqsave(&vsyscall_gtod_data.lock, flags); |
@@ -11495,7 +11644,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vsyscall_64.c linux-2.6.29.6/arch/x86/ | |||
11495 | vsyscall_gtod_data.clock.vread = clock->vread; | 11644 | vsyscall_gtod_data.clock.vread = clock->vread; |
11496 | vsyscall_gtod_data.clock.cycle_last = clock->cycle_last; | 11645 | vsyscall_gtod_data.clock.cycle_last = clock->cycle_last; |
11497 | vsyscall_gtod_data.clock.mask = clock->mask; | 11646 | vsyscall_gtod_data.clock.mask = clock->mask; |
11498 | @@ -209,7 +210,7 @@ vgetcpu(unsigned *cpu, unsigned *node, s | 11647 | @@ -201,7 +202,7 @@ vgetcpu(unsigned *cpu, unsigned *node, s |
11499 | We do this here because otherwise user space would do it on | 11648 | We do this here because otherwise user space would do it on |
11500 | its own in a likely inferior way (no access to jiffies). | 11649 | its own in a likely inferior way (no access to jiffies). |
11501 | If you don't like it pass NULL. */ | 11650 | If you don't like it pass NULL. */ |
@@ -11504,7 +11653,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vsyscall_64.c linux-2.6.29.6/arch/x86/ | |||
11504 | p = tcache->blob[1]; | 11653 | p = tcache->blob[1]; |
11505 | } else if (__vgetcpu_mode == VGETCPU_RDTSCP) { | 11654 | } else if (__vgetcpu_mode == VGETCPU_RDTSCP) { |
11506 | /* Load per CPU data from RDTSCP */ | 11655 | /* Load per CPU data from RDTSCP */ |
11507 | @@ -248,13 +249,13 @@ static ctl_table kernel_table2[] = { | 11656 | @@ -240,13 +241,13 @@ static ctl_table kernel_table2[] = { |
11508 | .data = &vsyscall_gtod_data.sysctl_enabled, .maxlen = sizeof(int), | 11657 | .data = &vsyscall_gtod_data.sysctl_enabled, .maxlen = sizeof(int), |
11509 | .mode = 0644, | 11658 | .mode = 0644, |
11510 | .proc_handler = vsyscall_sysctl_change }, | 11659 | .proc_handler = vsyscall_sysctl_change }, |
@@ -11520,9 +11669,9 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/vsyscall_64.c linux-2.6.29.6/arch/x86/ | |||
11520 | }; | 11669 | }; |
11521 | #endif | 11670 | #endif |
11522 | 11671 | ||
11523 | diff -urNp linux-2.6.29.6/arch/x86/kernel/x8664_ksyms_64.c linux-2.6.29.6/arch/x86/kernel/x8664_ksyms_64.c | 11672 | diff -urNp linux-2.6.30.4/arch/x86/kernel/x8664_ksyms_64.c linux-2.6.30.4/arch/x86/kernel/x8664_ksyms_64.c |
11524 | --- linux-2.6.29.6/arch/x86/kernel/x8664_ksyms_64.c 2009-07-02 19:41:20.000000000 -0400 | 11673 | --- linux-2.6.30.4/arch/x86/kernel/x8664_ksyms_64.c 2009-07-24 17:47:51.000000000 -0400 |
11525 | +++ linux-2.6.29.6/arch/x86/kernel/x8664_ksyms_64.c 2009-07-23 17:34:32.080014276 -0400 | 11674 | +++ linux-2.6.30.4/arch/x86/kernel/x8664_ksyms_64.c 2009-07-30 09:48:09.963690654 -0400 |
11526 | @@ -30,8 +30,6 @@ EXPORT_SYMBOL(__put_user_8); | 11675 | @@ -30,8 +30,6 @@ EXPORT_SYMBOL(__put_user_8); |
11527 | 11676 | ||
11528 | EXPORT_SYMBOL(copy_user_generic); | 11677 | EXPORT_SYMBOL(copy_user_generic); |
@@ -11532,10 +11681,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kernel/x8664_ksyms_64.c linux-2.6.29.6/arch/x | |||
11532 | EXPORT_SYMBOL(__copy_from_user_inatomic); | 11681 | EXPORT_SYMBOL(__copy_from_user_inatomic); |
11533 | 11682 | ||
11534 | EXPORT_SYMBOL(copy_page); | 11683 | EXPORT_SYMBOL(copy_page); |
11535 | diff -urNp linux-2.6.29.6/arch/x86/kvm/svm.c linux-2.6.29.6/arch/x86/kvm/svm.c | 11684 | diff -urNp linux-2.6.30.4/arch/x86/kvm/svm.c linux-2.6.30.4/arch/x86/kvm/svm.c |
11536 | --- linux-2.6.29.6/arch/x86/kvm/svm.c 2009-07-02 19:41:20.000000000 -0400 | 11685 | --- linux-2.6.30.4/arch/x86/kvm/svm.c 2009-07-24 17:47:51.000000000 -0400 |
11537 | +++ linux-2.6.29.6/arch/x86/kvm/svm.c 2009-07-23 17:34:32.080014276 -0400 | 11686 | +++ linux-2.6.30.4/arch/x86/kvm/svm.c 2009-07-30 09:48:09.964534231 -0400 |
11538 | @@ -1525,7 +1525,19 @@ static void reload_tss(struct kvm_vcpu * | 11687 | @@ -2226,7 +2226,19 @@ static void reload_tss(struct kvm_vcpu * |
11539 | int cpu = raw_smp_processor_id(); | 11688 | int cpu = raw_smp_processor_id(); |
11540 | 11689 | ||
11541 | struct svm_cpu_data *svm_data = per_cpu(svm_data, cpu); | 11690 | struct svm_cpu_data *svm_data = per_cpu(svm_data, cpu); |
@@ -11555,7 +11704,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kvm/svm.c linux-2.6.29.6/arch/x86/kvm/svm.c | |||
11555 | load_TR_desc(); | 11704 | load_TR_desc(); |
11556 | } | 11705 | } |
11557 | 11706 | ||
11558 | @@ -1936,7 +1948,7 @@ static int svm_get_mt_mask_shift(void) | 11707 | @@ -2622,7 +2634,7 @@ static int svm_get_mt_mask_shift(void) |
11559 | return 0; | 11708 | return 0; |
11560 | } | 11709 | } |
11561 | 11710 | ||
@@ -11564,10 +11713,10 @@ diff -urNp linux-2.6.29.6/arch/x86/kvm/svm.c linux-2.6.29.6/arch/x86/kvm/svm.c | |||
11564 | .cpu_has_kvm_support = has_svm, | 11713 | .cpu_has_kvm_support = has_svm, |
11565 | .disabled_by_bios = is_disabled, | 11714 | .disabled_by_bios = is_disabled, |
11566 | .hardware_setup = svm_hardware_setup, | 11715 | .hardware_setup = svm_hardware_setup, |
11567 | diff -urNp linux-2.6.29.6/arch/x86/kvm/vmx.c linux-2.6.29.6/arch/x86/kvm/vmx.c | 11716 | diff -urNp linux-2.6.30.4/arch/x86/kvm/vmx.c linux-2.6.30.4/arch/x86/kvm/vmx.c |
11568 | --- linux-2.6.29.6/arch/x86/kvm/vmx.c 2009-07-02 19:41:20.000000000 -0400 | 11717 | --- linux-2.6.30.4/arch/x86/kvm/vmx.c 2009-07-24 17:47:51.000000000 -0400 |
11569 | +++ linux-2.6.29.6/arch/x86/kvm/vmx.c 2009-07-23 17:34:32.080863524 -0400 | 11718 | +++ linux-2.6.30.4/arch/x86/kvm/vmx.c 2009-07-30 09:48:09.965634801 -0400 |
11570 | @@ -497,9 +497,23 @@ static void reload_tss(void) | 11719 | @@ -506,9 +506,23 @@ static void reload_tss(void) |
11571 | struct descriptor_table gdt; | 11720 | struct descriptor_table gdt; |
11572 | struct desc_struct *descs; | 11721 | struct desc_struct *descs; |
11573 | 11722 | ||
@@ -11591,7 +11740,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kvm/vmx.c linux-2.6.29.6/arch/x86/kvm/vmx.c | |||
11591 | load_TR_desc(); | 11740 | load_TR_desc(); |
11592 | } | 11741 | } |
11593 | 11742 | ||
11594 | @@ -2182,7 +2196,7 @@ static int vmx_vcpu_setup(struct vcpu_vm | 11743 | @@ -2192,7 +2206,7 @@ static int vmx_vcpu_setup(struct vcpu_vm |
11595 | vmcs_writel(HOST_IDTR_BASE, dt.base); /* 22.2.4 */ | 11744 | vmcs_writel(HOST_IDTR_BASE, dt.base); /* 22.2.4 */ |
11596 | 11745 | ||
11597 | asm("mov $.Lkvm_vmx_return, %0" : "=r"(kvm_vmx_return)); | 11746 | asm("mov $.Lkvm_vmx_return, %0" : "=r"(kvm_vmx_return)); |
@@ -11600,7 +11749,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kvm/vmx.c linux-2.6.29.6/arch/x86/kvm/vmx.c | |||
11600 | vmcs_write32(VM_EXIT_MSR_STORE_COUNT, 0); | 11749 | vmcs_write32(VM_EXIT_MSR_STORE_COUNT, 0); |
11601 | vmcs_write32(VM_EXIT_MSR_LOAD_COUNT, 0); | 11750 | vmcs_write32(VM_EXIT_MSR_LOAD_COUNT, 0); |
11602 | vmcs_write32(VM_ENTRY_MSR_LOAD_COUNT, 0); | 11751 | vmcs_write32(VM_ENTRY_MSR_LOAD_COUNT, 0); |
11603 | @@ -3379,6 +3393,12 @@ static void vmx_vcpu_run(struct kvm_vcpu | 11752 | @@ -3494,6 +3508,12 @@ static void vmx_vcpu_run(struct kvm_vcpu |
11604 | "jmp .Lkvm_vmx_return \n\t" | 11753 | "jmp .Lkvm_vmx_return \n\t" |
11605 | ".Llaunched: " __ex(ASM_VMX_VMRESUME) "\n\t" | 11754 | ".Llaunched: " __ex(ASM_VMX_VMRESUME) "\n\t" |
11606 | ".Lkvm_vmx_return: " | 11755 | ".Lkvm_vmx_return: " |
@@ -11613,7 +11762,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kvm/vmx.c linux-2.6.29.6/arch/x86/kvm/vmx.c | |||
11613 | /* Save guest registers, load host registers, keep flags */ | 11762 | /* Save guest registers, load host registers, keep flags */ |
11614 | "xchg %0, (%%"R"sp) \n\t" | 11763 | "xchg %0, (%%"R"sp) \n\t" |
11615 | "mov %%"R"ax, %c[rax](%0) \n\t" | 11764 | "mov %%"R"ax, %c[rax](%0) \n\t" |
11616 | @@ -3425,6 +3445,11 @@ static void vmx_vcpu_run(struct kvm_vcpu | 11765 | @@ -3540,6 +3560,11 @@ static void vmx_vcpu_run(struct kvm_vcpu |
11617 | [r15]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_R15])), | 11766 | [r15]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_R15])), |
11618 | #endif | 11767 | #endif |
11619 | [cr2]"i"(offsetof(struct vcpu_vmx, vcpu.arch.cr2)) | 11768 | [cr2]"i"(offsetof(struct vcpu_vmx, vcpu.arch.cr2)) |
@@ -11625,7 +11774,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kvm/vmx.c linux-2.6.29.6/arch/x86/kvm/vmx.c | |||
11625 | : "cc", "memory" | 11774 | : "cc", "memory" |
11626 | , R"bx", R"di", R"si" | 11775 | , R"bx", R"di", R"si" |
11627 | #ifdef CONFIG_X86_64 | 11776 | #ifdef CONFIG_X86_64 |
11628 | @@ -3441,7 +3466,7 @@ static void vmx_vcpu_run(struct kvm_vcpu | 11777 | @@ -3558,7 +3583,7 @@ static void vmx_vcpu_run(struct kvm_vcpu |
11629 | 11778 | ||
11630 | vmx_update_window_states(vcpu); | 11779 | vmx_update_window_states(vcpu); |
11631 | 11780 | ||
@@ -11634,7 +11783,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kvm/vmx.c linux-2.6.29.6/arch/x86/kvm/vmx.c | |||
11634 | vmx->launched = 1; | 11783 | vmx->launched = 1; |
11635 | 11784 | ||
11636 | intr_info = vmcs_read32(VM_EXIT_INTR_INFO); | 11785 | intr_info = vmcs_read32(VM_EXIT_INTR_INFO); |
11637 | @@ -3570,7 +3595,7 @@ static int vmx_get_mt_mask_shift(void) | 11786 | @@ -3694,7 +3719,7 @@ static int vmx_get_mt_mask_shift(void) |
11638 | return VMX_EPT_MT_EPTE_SHIFT; | 11787 | return VMX_EPT_MT_EPTE_SHIFT; |
11639 | } | 11788 | } |
11640 | 11789 | ||
@@ -11643,12 +11792,12 @@ diff -urNp linux-2.6.29.6/arch/x86/kvm/vmx.c linux-2.6.29.6/arch/x86/kvm/vmx.c | |||
11643 | .cpu_has_kvm_support = cpu_has_kvm_support, | 11792 | .cpu_has_kvm_support = cpu_has_kvm_support, |
11644 | .disabled_by_bios = vmx_disabled_by_bios, | 11793 | .disabled_by_bios = vmx_disabled_by_bios, |
11645 | .hardware_setup = hardware_setup, | 11794 | .hardware_setup = hardware_setup, |
11646 | diff -urNp linux-2.6.29.6/arch/x86/kvm/x86.c linux-2.6.29.6/arch/x86/kvm/x86.c | 11795 | diff -urNp linux-2.6.30.4/arch/x86/kvm/x86.c linux-2.6.30.4/arch/x86/kvm/x86.c |
11647 | --- linux-2.6.29.6/arch/x86/kvm/x86.c 2009-07-02 19:41:20.000000000 -0400 | 11796 | --- linux-2.6.30.4/arch/x86/kvm/x86.c 2009-07-24 17:47:51.000000000 -0400 |
11648 | +++ linux-2.6.29.6/arch/x86/kvm/x86.c 2009-07-23 17:34:32.081957601 -0400 | 11797 | +++ linux-2.6.30.4/arch/x86/kvm/x86.c 2009-07-30 09:48:09.966523935 -0400 |
11649 | @@ -70,44 +70,44 @@ static u64 __read_mostly efer_reserved_b | 11798 | @@ -73,44 +73,44 @@ static int kvm_dev_ioctl_get_supported_c |
11650 | static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid, | 11799 | struct kvm_cpuid_entry2 *kvm_find_cpuid_entry(struct kvm_vcpu *vcpu, |
11651 | struct kvm_cpuid_entry2 __user *entries); | 11800 | u32 function, u32 index); |
11652 | 11801 | ||
11653 | -struct kvm_x86_ops *kvm_x86_ops; | 11802 | -struct kvm_x86_ops *kvm_x86_ops; |
11654 | +const struct kvm_x86_ops *kvm_x86_ops; | 11803 | +const struct kvm_x86_ops *kvm_x86_ops; |
@@ -11726,7 +11875,7 @@ diff -urNp linux-2.6.29.6/arch/x86/kvm/x86.c linux-2.6.29.6/arch/x86/kvm/x86.c | |||
11726 | { NULL } | 11875 | { NULL } |
11727 | }; | 11876 | }; |
11728 | 11877 | ||
11729 | @@ -1372,7 +1372,7 @@ static int kvm_vcpu_ioctl_set_lapic(stru | 11878 | @@ -1417,7 +1417,7 @@ static int kvm_vcpu_ioctl_set_lapic(stru |
11730 | static int kvm_vcpu_ioctl_interrupt(struct kvm_vcpu *vcpu, | 11879 | static int kvm_vcpu_ioctl_interrupt(struct kvm_vcpu *vcpu, |
11731 | struct kvm_interrupt *irq) | 11880 | struct kvm_interrupt *irq) |
11732 | { | 11881 | { |
@@ -11735,22 +11884,33 @@ diff -urNp linux-2.6.29.6/arch/x86/kvm/x86.c linux-2.6.29.6/arch/x86/kvm/x86.c | |||
11735 | return -EINVAL; | 11884 | return -EINVAL; |
11736 | if (irqchip_in_kernel(vcpu->kvm)) | 11885 | if (irqchip_in_kernel(vcpu->kvm)) |
11737 | return -ENXIO; | 11886 | return -ENXIO; |
11738 | @@ -2591,10 +2591,10 @@ int kvm_emulate_pio_string(struct kvm_vc | 11887 | @@ -2731,10 +2731,10 @@ static struct notifier_block kvmclock_cp |
11739 | } | 11888 | .notifier_call = kvmclock_cpufreq_notifier |
11740 | EXPORT_SYMBOL_GPL(kvm_emulate_pio_string); | 11889 | }; |
11741 | 11890 | ||
11742 | -int kvm_arch_init(void *opaque) | 11891 | -int kvm_arch_init(void *opaque) |
11743 | +int kvm_arch_init(const void *opaque) | 11892 | +int kvm_arch_init(const void *opaque) |
11744 | { | 11893 | { |
11745 | int r; | 11894 | int r, cpu; |
11746 | - struct kvm_x86_ops *ops = (struct kvm_x86_ops *)opaque; | 11895 | - struct kvm_x86_ops *ops = (struct kvm_x86_ops *)opaque; |
11747 | + const struct kvm_x86_ops *ops = (const struct kvm_x86_ops *)opaque; | 11896 | + const struct kvm_x86_ops *ops = (const struct kvm_x86_ops *)opaque; |
11748 | 11897 | ||
11749 | if (kvm_x86_ops) { | 11898 | if (kvm_x86_ops) { |
11750 | printk(KERN_ERR "kvm: already loaded the other module\n"); | 11899 | printk(KERN_ERR "kvm: already loaded the other module\n"); |
11751 | diff -urNp linux-2.6.29.6/arch/x86/lib/checksum_32.S linux-2.6.29.6/arch/x86/lib/checksum_32.S | 11900 | diff -urNp linux-2.6.30.4/arch/x86/lguest/Kconfig linux-2.6.30.4/arch/x86/lguest/Kconfig |
11752 | --- linux-2.6.29.6/arch/x86/lib/checksum_32.S 2009-07-02 19:41:20.000000000 -0400 | 11901 | --- linux-2.6.30.4/arch/x86/lguest/Kconfig 2009-07-24 17:47:51.000000000 -0400 |
11753 | +++ linux-2.6.29.6/arch/x86/lib/checksum_32.S 2009-07-23 17:34:32.081957601 -0400 | 11902 | +++ linux-2.6.30.4/arch/x86/lguest/Kconfig 2009-08-02 09:47:36.165378342 -0400 |
11903 | @@ -3,6 +3,7 @@ config LGUEST_GUEST | ||
11904 | select PARAVIRT | ||
11905 | depends on X86_32 | ||
11906 | depends on !X86_PAE | ||
11907 | + depends on !PAX_KERNEXEC | ||
11908 | select VIRTIO | ||
11909 | select VIRTIO_RING | ||
11910 | select VIRTIO_CONSOLE | ||
11911 | diff -urNp linux-2.6.30.4/arch/x86/lib/checksum_32.S linux-2.6.30.4/arch/x86/lib/checksum_32.S | ||
11912 | --- linux-2.6.30.4/arch/x86/lib/checksum_32.S 2009-07-24 17:47:51.000000000 -0400 | ||
11913 | +++ linux-2.6.30.4/arch/x86/lib/checksum_32.S 2009-07-30 09:48:09.967600435 -0400 | ||
11754 | @@ -28,7 +28,8 @@ | 11914 | @@ -28,7 +28,8 @@ |
11755 | #include <linux/linkage.h> | 11915 | #include <linux/linkage.h> |
11756 | #include <asm/dwarf2.h> | 11916 | #include <asm/dwarf2.h> |
@@ -11996,9 +12156,9 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/checksum_32.S linux-2.6.29.6/arch/x86/lib | |||
11996 | 12156 | ||
11997 | #undef ROUND | 12157 | #undef ROUND |
11998 | #undef ROUND1 | 12158 | #undef ROUND1 |
11999 | diff -urNp linux-2.6.29.6/arch/x86/lib/clear_page_64.S linux-2.6.29.6/arch/x86/lib/clear_page_64.S | 12159 | diff -urNp linux-2.6.30.4/arch/x86/lib/clear_page_64.S linux-2.6.30.4/arch/x86/lib/clear_page_64.S |
12000 | --- linux-2.6.29.6/arch/x86/lib/clear_page_64.S 2009-07-02 19:41:20.000000000 -0400 | 12160 | --- linux-2.6.30.4/arch/x86/lib/clear_page_64.S 2009-07-24 17:47:51.000000000 -0400 |
12001 | +++ linux-2.6.29.6/arch/x86/lib/clear_page_64.S 2009-07-23 17:34:32.081957601 -0400 | 12161 | +++ linux-2.6.30.4/arch/x86/lib/clear_page_64.S 2009-07-30 09:48:09.967600435 -0400 |
12002 | @@ -44,7 +44,7 @@ ENDPROC(clear_page) | 12162 | @@ -44,7 +44,7 @@ ENDPROC(clear_page) |
12003 | 12163 | ||
12004 | #include <asm/cpufeature.h> | 12164 | #include <asm/cpufeature.h> |
@@ -12008,9 +12168,9 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/clear_page_64.S linux-2.6.29.6/arch/x86/l | |||
12008 | 1: .byte 0xeb /* jmp <disp8> */ | 12168 | 1: .byte 0xeb /* jmp <disp8> */ |
12009 | .byte (clear_page_c - clear_page) - (2f - 1b) /* offset */ | 12169 | .byte (clear_page_c - clear_page) - (2f - 1b) /* offset */ |
12010 | 2: | 12170 | 2: |
12011 | diff -urNp linux-2.6.29.6/arch/x86/lib/copy_page_64.S linux-2.6.29.6/arch/x86/lib/copy_page_64.S | 12171 | diff -urNp linux-2.6.30.4/arch/x86/lib/copy_page_64.S linux-2.6.30.4/arch/x86/lib/copy_page_64.S |
12012 | --- linux-2.6.29.6/arch/x86/lib/copy_page_64.S 2009-07-02 19:41:20.000000000 -0400 | 12172 | --- linux-2.6.30.4/arch/x86/lib/copy_page_64.S 2009-07-24 17:47:51.000000000 -0400 |
12013 | +++ linux-2.6.29.6/arch/x86/lib/copy_page_64.S 2009-07-23 17:34:32.081957601 -0400 | 12173 | +++ linux-2.6.30.4/arch/x86/lib/copy_page_64.S 2009-07-30 09:48:09.967600435 -0400 |
12014 | @@ -104,7 +104,7 @@ ENDPROC(copy_page) | 12174 | @@ -104,7 +104,7 @@ ENDPROC(copy_page) |
12015 | 12175 | ||
12016 | #include <asm/cpufeature.h> | 12176 | #include <asm/cpufeature.h> |
@@ -12020,9 +12180,9 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/copy_page_64.S linux-2.6.29.6/arch/x86/li | |||
12020 | 1: .byte 0xeb /* jmp <disp8> */ | 12180 | 1: .byte 0xeb /* jmp <disp8> */ |
12021 | .byte (copy_page_c - copy_page) - (2f - 1b) /* offset */ | 12181 | .byte (copy_page_c - copy_page) - (2f - 1b) /* offset */ |
12022 | 2: | 12182 | 2: |
12023 | diff -urNp linux-2.6.29.6/arch/x86/lib/copy_user_64.S linux-2.6.29.6/arch/x86/lib/copy_user_64.S | 12183 | diff -urNp linux-2.6.30.4/arch/x86/lib/copy_user_64.S linux-2.6.30.4/arch/x86/lib/copy_user_64.S |
12024 | --- linux-2.6.29.6/arch/x86/lib/copy_user_64.S 2009-07-02 19:41:20.000000000 -0400 | 12184 | --- linux-2.6.30.4/arch/x86/lib/copy_user_64.S 2009-07-24 17:47:51.000000000 -0400 |
12025 | +++ linux-2.6.29.6/arch/x86/lib/copy_user_64.S 2009-07-23 17:34:32.082759353 -0400 | 12185 | +++ linux-2.6.30.4/arch/x86/lib/copy_user_64.S 2009-07-30 09:48:09.967600435 -0400 |
12026 | @@ -21,7 +21,7 @@ | 12186 | @@ -21,7 +21,7 @@ |
12027 | .byte 0xe9 /* 32bit jump */ | 12187 | .byte 0xe9 /* 32bit jump */ |
12028 | .long \orig-1f /* by default jump to orig */ | 12188 | .long \orig-1f /* by default jump to orig */ |
@@ -12073,9 +12233,9 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/copy_user_64.S linux-2.6.29.6/arch/x86/li | |||
12073 | movl %edx,%ecx | 12233 | movl %edx,%ecx |
12074 | xorl %eax,%eax | 12234 | xorl %eax,%eax |
12075 | rep | 12235 | rep |
12076 | diff -urNp linux-2.6.29.6/arch/x86/lib/getuser.S linux-2.6.29.6/arch/x86/lib/getuser.S | 12236 | diff -urNp linux-2.6.30.4/arch/x86/lib/getuser.S linux-2.6.30.4/arch/x86/lib/getuser.S |
12077 | --- linux-2.6.29.6/arch/x86/lib/getuser.S 2009-07-02 19:41:20.000000000 -0400 | 12237 | --- linux-2.6.30.4/arch/x86/lib/getuser.S 2009-07-24 17:47:51.000000000 -0400 |
12078 | +++ linux-2.6.29.6/arch/x86/lib/getuser.S 2009-07-23 17:34:32.082759353 -0400 | 12238 | +++ linux-2.6.30.4/arch/x86/lib/getuser.S 2009-07-30 09:48:09.967600435 -0400 |
12079 | @@ -33,6 +33,7 @@ | 12239 | @@ -33,6 +33,7 @@ |
12080 | #include <asm/asm-offsets.h> | 12240 | #include <asm/asm-offsets.h> |
12081 | #include <asm/thread_info.h> | 12241 | #include <asm/thread_info.h> |
@@ -12157,21 +12317,21 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/getuser.S linux-2.6.29.6/arch/x86/lib/get | |||
12157 | xor %edx,%edx | 12317 | xor %edx,%edx |
12158 | mov $(-EFAULT),%_ASM_AX | 12318 | mov $(-EFAULT),%_ASM_AX |
12159 | ret | 12319 | ret |
12160 | diff -urNp linux-2.6.29.6/arch/x86/lib/memcpy_64.S linux-2.6.29.6/arch/x86/lib/memcpy_64.S | 12320 | diff -urNp linux-2.6.30.4/arch/x86/lib/memcpy_64.S linux-2.6.30.4/arch/x86/lib/memcpy_64.S |
12161 | --- linux-2.6.29.6/arch/x86/lib/memcpy_64.S 2009-07-02 19:41:20.000000000 -0400 | 12321 | --- linux-2.6.30.4/arch/x86/lib/memcpy_64.S 2009-07-24 17:47:51.000000000 -0400 |
12162 | +++ linux-2.6.29.6/arch/x86/lib/memcpy_64.S 2009-07-23 17:34:32.082759353 -0400 | 12322 | +++ linux-2.6.30.4/arch/x86/lib/memcpy_64.S 2009-07-30 09:48:09.968548540 -0400 |
12163 | @@ -114,7 +114,7 @@ ENDPROC(__memcpy) | 12323 | @@ -128,7 +128,7 @@ ENDPROC(__memcpy) |
12164 | /* Some CPUs run faster using the string copy instructions. | 12324 | * It is also a lot simpler. Use this when possible: |
12165 | It is also a lot simpler. Use this when possible */ | 12325 | */ |
12166 | 12326 | ||
12167 | - .section .altinstr_replacement,"ax" | 12327 | - .section .altinstr_replacement, "ax" |
12168 | + .section .altinstr_replacement,"a" | 12328 | + .section .altinstr_replacement, "a" |
12169 | 1: .byte 0xeb /* jmp <disp8> */ | 12329 | 1: .byte 0xeb /* jmp <disp8> */ |
12170 | .byte (memcpy_c - memcpy) - (2f - 1b) /* offset */ | 12330 | .byte (memcpy_c - memcpy) - (2f - 1b) /* offset */ |
12171 | 2: | 12331 | 2: |
12172 | diff -urNp linux-2.6.29.6/arch/x86/lib/memset_64.S linux-2.6.29.6/arch/x86/lib/memset_64.S | 12332 | diff -urNp linux-2.6.30.4/arch/x86/lib/memset_64.S linux-2.6.30.4/arch/x86/lib/memset_64.S |
12173 | --- linux-2.6.29.6/arch/x86/lib/memset_64.S 2009-07-02 19:41:20.000000000 -0400 | 12333 | --- linux-2.6.30.4/arch/x86/lib/memset_64.S 2009-07-24 17:47:51.000000000 -0400 |
12174 | +++ linux-2.6.29.6/arch/x86/lib/memset_64.S 2009-07-23 17:34:32.082759353 -0400 | 12334 | +++ linux-2.6.30.4/arch/x86/lib/memset_64.S 2009-07-30 09:48:09.968548540 -0400 |
12175 | @@ -118,7 +118,7 @@ ENDPROC(__memset) | 12335 | @@ -118,7 +118,7 @@ ENDPROC(__memset) |
12176 | 12336 | ||
12177 | #include <asm/cpufeature.h> | 12337 | #include <asm/cpufeature.h> |
@@ -12181,9 +12341,9 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/memset_64.S linux-2.6.29.6/arch/x86/lib/m | |||
12181 | 1: .byte 0xeb /* jmp <disp8> */ | 12341 | 1: .byte 0xeb /* jmp <disp8> */ |
12182 | .byte (memset_c - memset) - (2f - 1b) /* offset */ | 12342 | .byte (memset_c - memset) - (2f - 1b) /* offset */ |
12183 | 2: | 12343 | 2: |
12184 | diff -urNp linux-2.6.29.6/arch/x86/lib/mmx_32.c linux-2.6.29.6/arch/x86/lib/mmx_32.c | 12344 | diff -urNp linux-2.6.30.4/arch/x86/lib/mmx_32.c linux-2.6.30.4/arch/x86/lib/mmx_32.c |
12185 | --- linux-2.6.29.6/arch/x86/lib/mmx_32.c 2009-07-02 19:41:20.000000000 -0400 | 12345 | --- linux-2.6.30.4/arch/x86/lib/mmx_32.c 2009-07-24 17:47:51.000000000 -0400 |
12186 | +++ linux-2.6.29.6/arch/x86/lib/mmx_32.c 2009-07-23 17:34:32.083767334 -0400 | 12346 | +++ linux-2.6.30.4/arch/x86/lib/mmx_32.c 2009-07-30 09:48:09.968548540 -0400 |
12187 | @@ -29,6 +29,7 @@ void *_mmx_memcpy(void *to, const void * | 12347 | @@ -29,6 +29,7 @@ void *_mmx_memcpy(void *to, const void * |
12188 | { | 12348 | { |
12189 | void *p; | 12349 | void *p; |
@@ -12499,9 +12659,9 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/mmx_32.c linux-2.6.29.6/arch/x86/lib/mmx_ | |||
12499 | 12659 | ||
12500 | from += 64; | 12660 | from += 64; |
12501 | to += 64; | 12661 | to += 64; |
12502 | diff -urNp linux-2.6.29.6/arch/x86/lib/putuser.S linux-2.6.29.6/arch/x86/lib/putuser.S | 12662 | diff -urNp linux-2.6.30.4/arch/x86/lib/putuser.S linux-2.6.30.4/arch/x86/lib/putuser.S |
12503 | --- linux-2.6.29.6/arch/x86/lib/putuser.S 2009-07-02 19:41:20.000000000 -0400 | 12663 | --- linux-2.6.30.4/arch/x86/lib/putuser.S 2009-07-24 17:47:51.000000000 -0400 |
12504 | +++ linux-2.6.29.6/arch/x86/lib/putuser.S 2009-07-23 17:34:32.083767334 -0400 | 12664 | +++ linux-2.6.30.4/arch/x86/lib/putuser.S 2009-07-30 09:48:09.969494268 -0400 |
12505 | @@ -15,6 +15,7 @@ | 12665 | @@ -15,6 +15,7 @@ |
12506 | #include <asm/thread_info.h> | 12666 | #include <asm/thread_info.h> |
12507 | #include <asm/errno.h> | 12667 | #include <asm/errno.h> |
@@ -12605,9 +12765,9 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/putuser.S linux-2.6.29.6/arch/x86/lib/put | |||
12605 | movl $-EFAULT,%eax | 12765 | movl $-EFAULT,%eax |
12606 | EXIT | 12766 | EXIT |
12607 | END(bad_put_user) | 12767 | END(bad_put_user) |
12608 | diff -urNp linux-2.6.29.6/arch/x86/lib/usercopy_32.c linux-2.6.29.6/arch/x86/lib/usercopy_32.c | 12768 | diff -urNp linux-2.6.30.4/arch/x86/lib/usercopy_32.c linux-2.6.30.4/arch/x86/lib/usercopy_32.c |
12609 | --- linux-2.6.29.6/arch/x86/lib/usercopy_32.c 2009-07-02 19:41:20.000000000 -0400 | 12769 | --- linux-2.6.30.4/arch/x86/lib/usercopy_32.c 2009-07-24 17:47:51.000000000 -0400 |
12610 | +++ linux-2.6.29.6/arch/x86/lib/usercopy_32.c 2009-07-23 17:34:32.084899980 -0400 | 12770 | +++ linux-2.6.30.4/arch/x86/lib/usercopy_32.c 2009-07-30 09:48:09.969494268 -0400 |
12611 | @@ -36,31 +36,38 @@ static inline int __movsl_is_ok(unsigned | 12771 | @@ -36,31 +36,38 @@ static inline int __movsl_is_ok(unsigned |
12612 | * Copy a null terminated string from userspace. | 12772 | * Copy a null terminated string from userspace. |
12613 | */ | 12773 | */ |
@@ -13573,76 +13733,13 @@ diff -urNp linux-2.6.29.6/arch/x86/lib/usercopy_32.c linux-2.6.29.6/arch/x86/lib | |||
13573 | +#endif | 13733 | +#endif |
13574 | + | 13734 | + |
13575 | +EXPORT_SYMBOL(set_fs); | 13735 | +EXPORT_SYMBOL(set_fs); |
13576 | diff -urNp linux-2.6.29.6/arch/x86/mach-voyager/voyager_basic.c linux-2.6.29.6/arch/x86/mach-voyager/voyager_basic.c | 13736 | diff -urNp linux-2.6.30.4/arch/x86/Makefile linux-2.6.30.4/arch/x86/Makefile |
13577 | --- linux-2.6.29.6/arch/x86/mach-voyager/voyager_basic.c 2009-07-02 19:41:20.000000000 -0400 | 13737 | --- linux-2.6.30.4/arch/x86/Makefile 2009-07-24 17:47:51.000000000 -0400 |
13578 | +++ linux-2.6.29.6/arch/x86/mach-voyager/voyager_basic.c 2009-07-23 17:34:32.084899980 -0400 | 13738 | +++ linux-2.6.30.4/arch/x86/Makefile 2009-07-30 09:48:09.917626356 -0400 |
13579 | @@ -123,7 +123,7 @@ int __init voyager_memory_detect(int reg | 13739 | @@ -198,3 +198,12 @@ define archhelp |
13580 | __u8 cmos[4]; | 13740 | echo ' FDARGS="..." arguments for the booted kernel' |
13581 | ClickMap_t *map; | 13741 | echo ' FDINITRD=file initrd for the booted kernel' |
13582 | unsigned long map_addr; | 13742 | endef |
13583 | - unsigned long old; | ||
13584 | + pte_t old; | ||
13585 | |||
13586 | if (region >= CLICK_ENTRIES) { | ||
13587 | printk("Voyager: Illegal ClickMap region %d\n", region); | ||
13588 | @@ -138,7 +138,7 @@ int __init voyager_memory_detect(int reg | ||
13589 | |||
13590 | /* steal page 0 for this */ | ||
13591 | old = pg0[0]; | ||
13592 | - pg0[0] = ((map_addr & PAGE_MASK) | _PAGE_RW | _PAGE_PRESENT); | ||
13593 | + pg0[0] = __pte((map_addr & PAGE_MASK) | _PAGE_RW | _PAGE_PRESENT); | ||
13594 | local_flush_tlb(); | ||
13595 | /* now clear everything out but page 0 */ | ||
13596 | map = (ClickMap_t *) (map_addr & (~PAGE_MASK)); | ||
13597 | diff -urNp linux-2.6.29.6/arch/x86/mach-voyager/voyager_smp.c linux-2.6.29.6/arch/x86/mach-voyager/voyager_smp.c | ||
13598 | --- linux-2.6.29.6/arch/x86/mach-voyager/voyager_smp.c 2009-07-02 19:41:20.000000000 -0400 | ||
13599 | +++ linux-2.6.29.6/arch/x86/mach-voyager/voyager_smp.c 2009-07-23 17:34:32.084899980 -0400 | ||
13600 | @@ -511,6 +511,10 @@ static void __init do_boot_cpu(__u8 cpu) | ||
13601 | __u32 *hijack_vector; | ||
13602 | __u32 start_phys_address = setup_trampoline(); | ||
13603 | |||
13604 | +#ifdef CONFIG_PAX_KERNEXEC | ||
13605 | + unsigned long cr0; | ||
13606 | +#endif | ||
13607 | + | ||
13608 | /* There's a clever trick to this: The linux trampoline is | ||
13609 | * compiled to begin at absolute location zero, so make the | ||
13610 | * address zero but have the data segment selector compensate | ||
13611 | @@ -530,7 +534,17 @@ static void __init do_boot_cpu(__u8 cpu) | ||
13612 | |||
13613 | init_gdt(cpu); | ||
13614 | per_cpu(current_task, cpu) = idle; | ||
13615 | - early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu); | ||
13616 | + | ||
13617 | +#ifdef CONFIG_PAX_KERNEXEC | ||
13618 | + pax_open_kernel(cr0); | ||
13619 | +#endif | ||
13620 | + | ||
13621 | + early_gdt_descr.address = get_cpu_gdt_table(cpu); | ||
13622 | + | ||
13623 | +#ifdef CONFIG_PAX_KERNEXEC | ||
13624 | + pax_close_kernel(cr0); | ||
13625 | +#endif | ||
13626 | + | ||
13627 | irq_ctx_init(cpu); | ||
13628 | |||
13629 | /* Note: Don't modify initial ss override */ | ||
13630 | @@ -1144,7 +1158,7 @@ void smp_local_timer_interrupt(void) | ||
13631 | per_cpu(prof_counter, cpu); | ||
13632 | } | ||
13633 | |||
13634 | - update_process_times(user_mode_vm(get_irq_regs())); | ||
13635 | + update_process_times(user_mode(get_irq_regs())); | ||
13636 | } | ||
13637 | |||
13638 | if (((1 << cpu) & voyager_extended_vic_processors) == 0) | ||
13639 | diff -urNp linux-2.6.29.6/arch/x86/Makefile linux-2.6.29.6/arch/x86/Makefile | ||
13640 | --- linux-2.6.29.6/arch/x86/Makefile 2009-07-02 19:41:20.000000000 -0400 | ||
13641 | +++ linux-2.6.29.6/arch/x86/Makefile 2009-07-23 17:34:32.084899980 -0400 | ||
13642 | @@ -232,3 +232,12 @@ endef | ||
13643 | CLEAN_FILES += arch/x86/boot/fdimage \ | ||
13644 | arch/x86/boot/image.iso \ | ||
13645 | arch/x86/boot/mtools.conf | ||
13646 | + | 13743 | + |
13647 | +define OLD_LD | 13744 | +define OLD_LD |
13648 | + | 13745 | + |
@@ -13652,9 +13749,9 @@ diff -urNp linux-2.6.29.6/arch/x86/Makefile linux-2.6.29.6/arch/x86/Makefile | |||
13652 | + | 13749 | + |
13653 | +archprepare: | 13750 | +archprepare: |
13654 | + $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD))) | 13751 | + $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD))) |
13655 | diff -urNp linux-2.6.29.6/arch/x86/mm/extable.c linux-2.6.29.6/arch/x86/mm/extable.c | 13752 | diff -urNp linux-2.6.30.4/arch/x86/mm/extable.c linux-2.6.30.4/arch/x86/mm/extable.c |
13656 | --- linux-2.6.29.6/arch/x86/mm/extable.c 2009-07-02 19:41:20.000000000 -0400 | 13753 | --- linux-2.6.30.4/arch/x86/mm/extable.c 2009-07-24 17:47:51.000000000 -0400 |
13657 | +++ linux-2.6.29.6/arch/x86/mm/extable.c 2009-07-23 17:34:32.085744993 -0400 | 13754 | +++ linux-2.6.30.4/arch/x86/mm/extable.c 2009-07-30 09:48:09.970452952 -0400 |
13658 | @@ -1,14 +1,62 @@ | 13755 | @@ -1,14 +1,62 @@ |
13659 | #include <linux/module.h> | 13756 | #include <linux/module.h> |
13660 | #include <linux/spinlock.h> | 13757 | #include <linux/spinlock.h> |
@@ -13719,29 +13816,29 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/extable.c linux-2.6.29.6/arch/x86/mm/extab | |||
13719 | extern u32 pnp_bios_fault_eip, pnp_bios_fault_esp; | 13816 | extern u32 pnp_bios_fault_eip, pnp_bios_fault_esp; |
13720 | extern u32 pnp_bios_is_utter_crap; | 13817 | extern u32 pnp_bios_is_utter_crap; |
13721 | pnp_bios_is_utter_crap = 1; | 13818 | pnp_bios_is_utter_crap = 1; |
13722 | diff -urNp linux-2.6.29.6/arch/x86/mm/fault.c linux-2.6.29.6/arch/x86/mm/fault.c | 13819 | diff -urNp linux-2.6.30.4/arch/x86/mm/fault.c linux-2.6.30.4/arch/x86/mm/fault.c |
13723 | --- linux-2.6.29.6/arch/x86/mm/fault.c 2009-07-02 19:41:20.000000000 -0400 | 13820 | --- linux-2.6.30.4/arch/x86/mm/fault.c 2009-07-24 17:47:51.000000000 -0400 |
13724 | +++ linux-2.6.29.6/arch/x86/mm/fault.c 2009-07-23 17:34:32.085744993 -0400 | 13821 | +++ linux-2.6.30.4/arch/x86/mm/fault.c 2009-07-30 11:10:48.941676108 -0400 |
13725 | @@ -26,6 +26,8 @@ | 13822 | @@ -27,6 +27,8 @@ |
13726 | #include <linux/kprobes.h> | 13823 | #include <linux/tty.h> |
13727 | #include <linux/uaccess.h> | 13824 | #include <linux/smp.h> |
13728 | #include <linux/kdebug.h> | 13825 | #include <linux/mm.h> |
13729 | +#include <linux/unistd.h> | 13826 | +#include <linux/unistd.h> |
13730 | +#include <linux/compiler.h> | 13827 | +#include <linux/compiler.h> |
13731 | 13828 | ||
13732 | #include <asm/system.h> | 13829 | #include <asm-generic/sections.h> |
13733 | #include <asm/desc.h> | 13830 | |
13734 | @@ -67,7 +69,7 @@ static inline int notify_page_fault(stru | 13831 | @@ -73,7 +75,7 @@ static inline int notify_page_fault(stru |
13735 | int ret = 0; | 13832 | int ret = 0; |
13736 | 13833 | ||
13737 | /* kprobe_running() needs smp_processor_id() */ | 13834 | /* kprobe_running() needs smp_processor_id() */ |
13738 | - if (!user_mode_vm(regs)) { | 13835 | - if (kprobes_built_in() && !user_mode_vm(regs)) { |
13739 | + if (!user_mode(regs)) { | 13836 | + if (kprobes_built_in() && !user_mode(regs)) { |
13740 | preempt_disable(); | 13837 | preempt_disable(); |
13741 | if (kprobe_running() && kprobe_fault_handler(regs, 14)) | 13838 | if (kprobe_running() && kprobe_fault_handler(regs, 14)) |
13742 | ret = 1; | 13839 | ret = 1; |
13743 | @@ -265,6 +267,30 @@ bad: | 13840 | @@ -193,6 +195,30 @@ force_sig_info_fault(int si_signo, int s |
13744 | #endif | 13841 | force_sig_info(si_signo, &info, tsk); |
13745 | } | 13842 | } |
13746 | 13843 | ||
13747 | +#ifdef CONFIG_PAX_EMUTRAMP | 13844 | +#ifdef CONFIG_PAX_EMUTRAMP |
@@ -13768,36 +13865,42 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/fault.c linux-2.6.29.6/arch/x86/mm/fault.c | |||
13768 | +} | 13865 | +} |
13769 | +#endif | 13866 | +#endif |
13770 | + | 13867 | + |
13771 | #ifdef CONFIG_X86_32 | 13868 | DEFINE_SPINLOCK(pgd_lock); |
13772 | static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address) | 13869 | LIST_HEAD(pgd_list); |
13773 | { | 13870 | |
13774 | @@ -351,7 +377,7 @@ static int is_errata93(struct pt_regs *r | 13871 | @@ -571,7 +597,7 @@ static int is_errata93(struct pt_regs *r |
13775 | static int is_errata100(struct pt_regs *regs, unsigned long address) | 13872 | static int is_errata100(struct pt_regs *regs, unsigned long address) |
13776 | { | 13873 | { |
13777 | #ifdef CONFIG_X86_64 | 13874 | #ifdef CONFIG_X86_64 |
13778 | - if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) && | 13875 | - if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) && (address >> 32)) |
13779 | + if ((regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT)) && | 13876 | + if ((regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT)) && (address >> 32)) |
13780 | (address >> 32)) | ||
13781 | return 1; | 13877 | return 1; |
13782 | #endif | 13878 | #endif |
13783 | @@ -386,14 +412,31 @@ static void show_fault_oops(struct pt_re | 13879 | return 0; |
13784 | #endif | 13880 | @@ -598,7 +624,7 @@ static int is_f00f_bug(struct pt_regs *r |
13881 | } | ||
13882 | |||
13883 | static const char nx_warning[] = KERN_CRIT | ||
13884 | -"kernel tried to execute NX-protected page - exploit attempt? (uid: %d)\n"; | ||
13885 | +"kernel tried to execute NX-protected page - exploit attempt? (uid: %d, task: %s, pid: %d)\n"; | ||
13886 | |||
13887 | static void | ||
13888 | show_fault_oops(struct pt_regs *regs, unsigned long error_code, | ||
13889 | @@ -607,15 +633,31 @@ show_fault_oops(struct pt_regs *regs, un | ||
13890 | if (!oops_may_print()) | ||
13891 | return; | ||
13785 | 13892 | ||
13786 | #ifdef CONFIG_X86_PAE | ||
13787 | - if (error_code & PF_INSTR) { | 13893 | - if (error_code & PF_INSTR) { |
13788 | + if (nx_enabled && (error_code & PF_INSTR)) { | 13894 | + if (nx_enabled && (error_code & PF_INSTR)) { |
13789 | unsigned int level; | 13895 | unsigned int level; |
13896 | |||
13790 | pte_t *pte = lookup_address(address, &level); | 13897 | pte_t *pte = lookup_address(address, &level); |
13791 | 13898 | ||
13792 | if (pte && pte_present(*pte) && !pte_exec(*pte)) | 13899 | if (pte && pte_present(*pte) && !pte_exec(*pte)) |
13793 | printk(KERN_CRIT "kernel tried to execute " | 13900 | - printk(nx_warning, current_uid()); |
13794 | "NX-protected page - exploit attempt? " | 13901 | + printk(nx_warning, current_uid(), current->comm, task_pid_nr(current)); |
13795 | - "(uid: %d)\n", current_uid()); | 13902 | } |
13796 | + "(uid: %d, task: %s, pid: %d)\n", | 13903 | |
13797 | + current_uid(), current->comm, task_pid_nr(current)); | ||
13798 | + } | ||
13799 | +#endif | ||
13800 | + | ||
13801 | +#ifdef CONFIG_PAX_KERNEXEC | 13904 | +#ifdef CONFIG_PAX_KERNEXEC |
13802 | +#ifdef CONFIG_MODULES | 13905 | +#ifdef CONFIG_MODULES |
13803 | + if (init_mm.start_code <= address && address < (unsigned long)MODULES_END) | 13906 | + if (init_mm.start_code <= address && address < (unsigned long)MODULES_END) |
@@ -13811,72 +13914,96 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/fault.c linux-2.6.29.6/arch/x86/mm/fault.c | |||
13811 | + else | 13914 | + else |
13812 | + printk(KERN_ERR "PAX: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", | 13915 | + printk(KERN_ERR "PAX: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", |
13813 | + current->comm, task_pid_nr(current), current_uid(), current_euid()); | 13916 | + current->comm, task_pid_nr(current), current_uid(), current_euid()); |
13814 | } | 13917 | + } |
13815 | #endif | 13918 | +#endif |
13919 | + | ||
13920 | printk(KERN_ALERT "BUG: unable to handle kernel "); | ||
13921 | if (address < PAGE_SIZE) | ||
13922 | printk(KERN_CONT "NULL pointer dereference"); | ||
13923 | @@ -740,6 +782,68 @@ __bad_area_nosemaphore(struct pt_regs *r | ||
13924 | unsigned long address, int si_code) | ||
13925 | { | ||
13926 | struct task_struct *tsk = current; | ||
13927 | + struct mm_struct *mm = tsk->mm; | ||
13928 | + | ||
13929 | +#ifdef CONFIG_X86_64 | ||
13930 | + if (mm && (error_code & PF_INSTR)) { | ||
13931 | + if (regs->ip == (unsigned long)vgettimeofday) { | ||
13932 | + regs->ip = (unsigned long)VDSO64_SYMBOL(mm->context.vdso, fallback_gettimeofday); | ||
13933 | + return; | ||
13934 | + } else if (regs->ip == (unsigned long)vtime) { | ||
13935 | + regs->ip = (unsigned long)VDSO64_SYMBOL(mm->context.vdso, fallback_time); | ||
13936 | + return; | ||
13937 | + } else if (regs->ip == (unsigned long)vgetcpu) { | ||
13938 | + regs->ip = (unsigned long)VDSO64_SYMBOL(mm->context.vdso, getcpu); | ||
13939 | + return; | ||
13940 | + } | ||
13941 | + } | ||
13942 | +#endif | ||
13943 | + | ||
13944 | +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC) | ||
13945 | + if (mm && (error_code & PF_USER)) { | ||
13946 | + unsigned long ip = regs->ip; | ||
13947 | + | ||
13948 | + if (v8086_mode(regs)) | ||
13949 | + ip = ((regs->cs & 0xffff) << 4) + (regs->ip & 0xffff); | ||
13950 | + | ||
13951 | + /* | ||
13952 | + * It's possible to have interrupts off here: | ||
13953 | + */ | ||
13954 | + local_irq_enable(); | ||
13955 | + | ||
13956 | +#ifdef CONFIG_PAX_PAGEEXEC | ||
13957 | + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && | ||
13958 | + ((nx_enabled && (error_code & PF_INSTR)) || (!(error_code & (PF_PROT | PF_WRITE)) && regs->ip == address))) { | ||
13959 | + | ||
13960 | +#ifdef CONFIG_PAX_EMUTRAMP | ||
13961 | + switch (pax_handle_fetch_fault(regs)) { | ||
13962 | + case 2: | ||
13963 | + return; | ||
13964 | + } | ||
13965 | +#endif | ||
13966 | + | ||
13967 | + pax_report_fault(regs, (void *)regs->ip, (void *)regs->sp); | ||
13968 | + do_group_exit(SIGKILL); | ||
13969 | + } | ||
13970 | +#endif | ||
13971 | + | ||
13972 | +#ifdef CONFIG_PAX_SEGMEXEC | ||
13973 | + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && !(error_code & (PF_PROT | PF_WRITE)) && (regs->ip + SEGMEXEC_TASK_SIZE == address)) { | ||
13974 | + | ||
13975 | +#ifdef CONFIG_PAX_EMUTRAMP | ||
13976 | + switch (pax_handle_fetch_fault(regs)) { | ||
13977 | + case 2: | ||
13978 | + return; | ||
13979 | + } | ||
13980 | +#endif | ||
13981 | + | ||
13982 | + pax_report_fault(regs, (void *)regs->ip, (void *)regs->sp); | ||
13983 | + do_group_exit(SIGKILL); | ||
13984 | + } | ||
13985 | +#endif | ||
13986 | + | ||
13987 | + } | ||
13988 | +#endif | ||
13816 | 13989 | ||
13817 | @@ -586,7 +629,6 @@ void __kprobes do_page_fault(struct pt_r | 13990 | /* User mode accesses just cause a SIGSEGV */ |
13818 | struct task_struct *tsk; | 13991 | if (error_code & PF_USER) { |
13819 | struct mm_struct *mm; | 13992 | @@ -874,6 +978,106 @@ static int spurious_fault_check(unsigned |
13820 | struct vm_area_struct *vma; | 13993 | return 1; |
13821 | - unsigned long address; | 13994 | } |
13822 | int write, si_code; | ||
13823 | int fault; | ||
13824 | #ifdef CONFIG_X86_64 | ||
13825 | @@ -594,13 +636,20 @@ void __kprobes do_page_fault(struct pt_r | ||
13826 | int sig; | ||
13827 | #endif | ||
13828 | 13995 | ||
13829 | +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC) | 13996 | +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC) |
13997 | +static int pax_handle_pageexec_fault(struct pt_regs *regs, struct mm_struct *mm, unsigned long address, unsigned long error_code) | ||
13998 | +{ | ||
13830 | + pte_t *pte; | 13999 | + pte_t *pte; |
13831 | + pmd_t *pmd; | 14000 | + pmd_t *pmd; |
13832 | + spinlock_t *ptl; | 14001 | + spinlock_t *ptl; |
13833 | + unsigned char pte_mask; | 14002 | + unsigned char pte_mask; |
13834 | +#endif | ||
13835 | + | ||
13836 | + /* get the address */ | ||
13837 | + const unsigned long address = read_cr2(); | ||
13838 | + | 14003 | + |
13839 | tsk = current; | ||
13840 | mm = tsk->mm; | ||
13841 | prefetchw(&mm->mmap_sem); | ||
13842 | |||
13843 | - /* get the address */ | ||
13844 | - address = read_cr2(); | ||
13845 | - | ||
13846 | si_code = SEGV_MAPERR; | ||
13847 | |||
13848 | if (unlikely(kmmio_fault(regs, address))) | ||
13849 | @@ -653,7 +702,7 @@ void __kprobes do_page_fault(struct pt_r | ||
13850 | * User-mode registers count as a user access even for any | ||
13851 | * potential system fault or CPU buglet. | ||
13852 | */ | ||
13853 | - if (user_mode_vm(regs)) { | ||
13854 | + if (user_mode(regs)) { | ||
13855 | local_irq_enable(); | ||
13856 | error_code |= PF_USER; | ||
13857 | } else if (regs->flags & X86_EFLAGS_IF) | ||
13858 | @@ -669,7 +718,7 @@ void __kprobes do_page_fault(struct pt_r | ||
13859 | * atomic region then we must not take the fault. | ||
13860 | */ | ||
13861 | if (unlikely(in_atomic() || !mm)) | ||
13862 | - goto bad_area_nosemaphore; | ||
13863 | + goto bad_area_nopax; | ||
13864 | |||
13865 | /* | ||
13866 | * When running in the kernel we expect faults to occur only to | ||
13867 | @@ -690,10 +739,104 @@ void __kprobes do_page_fault(struct pt_r | ||
13868 | if (!down_read_trylock(&mm->mmap_sem)) { | ||
13869 | if ((error_code & PF_USER) == 0 && | ||
13870 | !search_exception_tables(regs->ip)) | ||
13871 | - goto bad_area_nosemaphore; | ||
13872 | + goto bad_area_nopax; | ||
13873 | down_read(&mm->mmap_sem); | ||
13874 | } | ||
13875 | |||
13876 | +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC) | ||
13877 | + if (nx_enabled || (error_code & (PF_PROT|PF_USER)) != (PF_PROT|PF_USER) || v8086_mode(regs) || | 14004 | + if (nx_enabled || (error_code & (PF_PROT|PF_USER)) != (PF_PROT|PF_USER) || v8086_mode(regs) || |
13878 | + !(mm->pax_flags & MF_PAX_PAGEEXEC)) | 14005 | + !(mm->pax_flags & MF_PAX_PAGEEXEC)) |
13879 | + goto not_pax_fault; | 14006 | + return 0; |
13880 | + | 14007 | + |
13881 | + /* PaX: it's our fault, let's handle it if we can */ | 14008 | + /* PaX: it's our fault, let's handle it if we can */ |
13882 | + | 14009 | + |
@@ -13888,7 +14015,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/fault.c linux-2.6.29.6/arch/x86/mm/fault.c | |||
13888 | +#ifdef CONFIG_PAX_EMUTRAMP | 14015 | +#ifdef CONFIG_PAX_EMUTRAMP |
13889 | + switch (pax_handle_fetch_fault(regs)) { | 14016 | + switch (pax_handle_fetch_fault(regs)) { |
13890 | + case 2: | 14017 | + case 2: |
13891 | + return; | 14018 | + return 1; |
13892 | + } | 14019 | + } |
13893 | +#endif | 14020 | +#endif |
13894 | + | 14021 | + |
@@ -13898,18 +14025,18 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/fault.c linux-2.6.29.6/arch/x86/mm/fault.c | |||
13898 | + | 14025 | + |
13899 | + pmd = pax_get_pmd(mm, address); | 14026 | + pmd = pax_get_pmd(mm, address); |
13900 | + if (unlikely(!pmd)) | 14027 | + if (unlikely(!pmd)) |
13901 | + goto not_pax_fault; | 14028 | + return 0; |
13902 | + | 14029 | + |
13903 | + pte = pte_offset_map_lock(mm, pmd, address, &ptl); | 14030 | + pte = pte_offset_map_lock(mm, pmd, address, &ptl); |
13904 | + if (unlikely(!(pte_val(*pte) & _PAGE_PRESENT) || pte_user(*pte))) { | 14031 | + if (unlikely(!(pte_val(*pte) & _PAGE_PRESENT) || pte_user(*pte))) { |
13905 | + pte_unmap_unlock(pte, ptl); | 14032 | + pte_unmap_unlock(pte, ptl); |
13906 | + goto not_pax_fault; | 14033 | + return 0; |
13907 | + } | 14034 | + } |
13908 | + | 14035 | + |
13909 | + if (unlikely((error_code & PF_WRITE) && !pte_write(*pte))) { | 14036 | + if (unlikely((error_code & PF_WRITE) && !pte_write(*pte))) { |
13910 | + /* write attempt to a protected page in user mode */ | 14037 | + /* write attempt to a protected page in user mode */ |
13911 | + pte_unmap_unlock(pte, ptl); | 14038 | + pte_unmap_unlock(pte, ptl); |
13912 | + goto not_pax_fault; | 14039 | + return 0; |
13913 | + } | 14040 | + } |
13914 | + | 14041 | + |
13915 | +#ifdef CONFIG_SMP | 14042 | +#ifdef CONFIG_SMP |
@@ -13922,7 +14049,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/fault.c linux-2.6.29.6/arch/x86/mm/fault.c | |||
13922 | + __flush_tlb_one(address); | 14049 | + __flush_tlb_one(address); |
13923 | + pte_unmap_unlock(pte, ptl); | 14050 | + pte_unmap_unlock(pte, ptl); |
13924 | + up_read(&mm->mmap_sem); | 14051 | + up_read(&mm->mmap_sem); |
13925 | + return; | 14052 | + return 1; |
13926 | + } | 14053 | + } |
13927 | + | 14054 | + |
13928 | + pte_mask = _PAGE_ACCESSED | _PAGE_USER | ((error_code & PF_WRITE) << (_PAGE_BIT_DIRTY-1)); | 14055 | + pte_mask = _PAGE_ACCESSED | _PAGE_USER | ((error_code & PF_WRITE) << (_PAGE_BIT_DIRTY-1)); |
@@ -13962,136 +14089,106 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/fault.c linux-2.6.29.6/arch/x86/mm/fault.c | |||
13962 | + : "memory", "cc"); | 14089 | + : "memory", "cc"); |
13963 | + pte_unmap_unlock(pte, ptl); | 14090 | + pte_unmap_unlock(pte, ptl); |
13964 | + up_read(&mm->mmap_sem); | 14091 | + up_read(&mm->mmap_sem); |
13965 | + return; | 14092 | + return 1; |
14093 | +} | ||
14094 | +#endif | ||
14095 | + | ||
14096 | /* | ||
14097 | * Handle a spurious fault caused by a stale TLB entry. | ||
14098 | * | ||
14099 | @@ -940,6 +1144,9 @@ int show_unhandled_signals = 1; | ||
14100 | static inline int | ||
14101 | access_error(unsigned long error_code, int write, struct vm_area_struct *vma) | ||
14102 | { | ||
14103 | + if (nx_enabled && (error_code & PF_INSTR) && !(vma->vm_flags & VM_EXEC)) | ||
14104 | + return 1; | ||
13966 | + | 14105 | + |
13967 | +not_pax_fault: | 14106 | if (write) { |
14107 | /* write, present and write, not present: */ | ||
14108 | if (unlikely(!(vma->vm_flags & VM_WRITE))) | ||
14109 | @@ -973,19 +1180,18 @@ do_page_fault(struct pt_regs *regs, unsi | ||
14110 | { | ||
14111 | struct vm_area_struct *vma; | ||
14112 | struct task_struct *tsk; | ||
14113 | - unsigned long address; | ||
14114 | struct mm_struct *mm; | ||
14115 | int write; | ||
14116 | int fault; | ||
14117 | |||
14118 | + /* Get the faulting address: */ | ||
14119 | + const unsigned long address = read_cr2(); | ||
14120 | + | ||
14121 | tsk = current; | ||
14122 | mm = tsk->mm; | ||
14123 | |||
14124 | prefetchw(&mm->mmap_sem); | ||
14125 | |||
14126 | - /* Get the faulting address: */ | ||
14127 | - address = read_cr2(); | ||
14128 | - | ||
14129 | if (unlikely(kmmio_fault(regs, address))) | ||
14130 | return; | ||
14131 | |||
14132 | @@ -1033,7 +1239,7 @@ do_page_fault(struct pt_regs *regs, unsi | ||
14133 | * User-mode registers count as a user access even for any | ||
14134 | * potential system fault or CPU buglet: | ||
14135 | */ | ||
14136 | - if (user_mode_vm(regs)) { | ||
14137 | + if (user_mode(regs)) { | ||
14138 | local_irq_enable(); | ||
14139 | error_code |= PF_USER; | ||
14140 | } else { | ||
14141 | @@ -1085,6 +1291,11 @@ do_page_fault(struct pt_regs *regs, unsi | ||
14142 | might_sleep(); | ||
14143 | } | ||
14144 | |||
14145 | +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC) | ||
14146 | + if (pax_handle_pageexec_fault(regs, mm, address, error_code)) | ||
14147 | + return; | ||
13968 | +#endif | 14148 | +#endif |
13969 | + | 14149 | + |
13970 | vma = find_vma(mm, address); | 14150 | vma = find_vma(mm, address); |
13971 | if (!vma) | 14151 | if (unlikely(!vma)) { |
13972 | goto bad_area; | 14152 | bad_area(regs, error_code, address); |
13973 | @@ -701,16 +844,20 @@ void __kprobes do_page_fault(struct pt_r | 14153 | @@ -1096,18 +1307,24 @@ do_page_fault(struct pt_regs *regs, unsi |
13974 | goto good_area; | 14154 | bad_area(regs, error_code, address); |
13975 | if (!(vma->vm_flags & VM_GROWSDOWN)) | 14155 | return; |
13976 | goto bad_area; | 14156 | } |
13977 | - if (error_code & PF_USER) { | 14157 | - if (error_code & PF_USER) { |
13978 | - /* | 14158 | - /* |
13979 | - * Accessing the stack below %sp is always a bug. | 14159 | - * Accessing the stack below %sp is always a bug. |
13980 | - * The large cushion allows instructions like enter | 14160 | - * The large cushion allows instructions like enter |
13981 | - * and pusha to work. ("enter $65535,$31" pushes | 14161 | - * and pusha to work. ("enter $65535, $31" pushes |
13982 | - * 32 pointers and then decrements %sp by 65535.) | 14162 | - * 32 pointers and then decrements %sp by 65535.) |
13983 | - */ | 14163 | - */ |
13984 | - if (address + 65536 + 32 * sizeof(unsigned long) < regs->sp) | 14164 | - if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < regs->sp)) { |
13985 | - goto bad_area; | 14165 | - bad_area(regs, error_code, address); |
13986 | - } | 14166 | - return; |
14167 | - } | ||
13987 | + /* | 14168 | + /* |
13988 | + * Accessing the stack below %sp is always a bug. | 14169 | + * Accessing the stack below %sp is always a bug. |
13989 | + * The large cushion allows instructions like enter | 14170 | + * The large cushion allows instructions like enter |
13990 | + * and pusha to work. ("enter $65535,$31" pushes | 14171 | + * and pusha to work. ("enter $65535, $31" pushes |
13991 | + * 32 pointers and then decrements %sp by 65535.) | 14172 | + * 32 pointers and then decrements %sp by 65535.) |
13992 | + */ | 14173 | + */ |
13993 | + if (address + 65536 + 32 * sizeof(unsigned long) < task_pt_regs(tsk)->sp) | 14174 | + if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < task_pt_regs(tsk)->sp)) { |
13994 | + goto bad_area; | 14175 | + bad_area(regs, error_code, address); |
13995 | + | 14176 | + return; |
13996 | +#ifdef CONFIG_PAX_SEGMEXEC | 14177 | } |
13997 | + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && vma->vm_end - SEGMEXEC_TASK_SIZE - 1 < address - SEGMEXEC_TASK_SIZE - 1) | ||
13998 | + goto bad_area; | ||
13999 | +#endif | ||
14000 | + | ||
14001 | if (expand_stack(vma, address)) | ||
14002 | goto bad_area; | ||
14003 | /* | ||
14004 | @@ -720,6 +867,8 @@ void __kprobes do_page_fault(struct pt_r | ||
14005 | good_area: | ||
14006 | si_code = SEGV_ACCERR; | ||
14007 | write = 0; | ||
14008 | + if (nx_enabled && (error_code & PF_INSTR) && !(vma->vm_flags & VM_EXEC)) | ||
14009 | + goto bad_area; | ||
14010 | switch (error_code & (PF_PROT|PF_WRITE)) { | ||
14011 | default: /* 3: write, present */ | ||
14012 | /* fall through */ | ||
14013 | @@ -774,6 +923,69 @@ bad_area: | ||
14014 | up_read(&mm->mmap_sem); | ||
14015 | |||
14016 | bad_area_nosemaphore: | ||
14017 | + | ||
14018 | +#ifdef CONFIG_X86_64 | ||
14019 | + if (mm && (error_code & PF_INSTR)) { | ||
14020 | + if (regs->ip == (unsigned long)vgettimeofday) { | ||
14021 | + regs->ip = (unsigned long)VDSO64_SYMBOL(mm->context.vdso, fallback_gettimeofday); | ||
14022 | + return; | ||
14023 | + } else if (regs->ip == (unsigned long)vtime) { | ||
14024 | + regs->ip = (unsigned long)VDSO64_SYMBOL(mm->context.vdso, fallback_time); | ||
14025 | + return; | ||
14026 | + } else if (regs->ip == (unsigned long)vgetcpu) { | ||
14027 | + regs->ip = (unsigned long)VDSO64_SYMBOL(mm->context.vdso, getcpu); | ||
14028 | + return; | ||
14029 | + } | ||
14030 | + } | ||
14031 | +#endif | ||
14032 | + | ||
14033 | +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC) | ||
14034 | + if (mm && (error_code & PF_USER)) { | ||
14035 | + unsigned long ip = regs->ip; | ||
14036 | + | ||
14037 | + if (v8086_mode(regs)) | ||
14038 | + ip = ((regs->cs & 0xffff) << 4) + (regs->ip & 0xffff); | ||
14039 | + | ||
14040 | + /* | ||
14041 | + * It's possible to have interrupts off here. | ||
14042 | + */ | ||
14043 | + local_irq_enable(); | ||
14044 | + | ||
14045 | +#ifdef CONFIG_PAX_PAGEEXEC | ||
14046 | + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && | ||
14047 | + ((nx_enabled && (error_code & PF_INSTR)) || (!(error_code & (PF_PROT | PF_WRITE)) && regs->ip == address))) { | ||
14048 | + | ||
14049 | +#ifdef CONFIG_PAX_EMUTRAMP | ||
14050 | + switch (pax_handle_fetch_fault(regs)) { | ||
14051 | + case 2: | ||
14052 | + return; | ||
14053 | + } | ||
14054 | +#endif | ||
14055 | + | ||
14056 | + pax_report_fault(regs, (void *)regs->ip, (void *)regs->sp); | ||
14057 | + do_group_exit(SIGKILL); | ||
14058 | + } | ||
14059 | +#endif | ||
14060 | + | 14178 | + |
14061 | +#ifdef CONFIG_PAX_SEGMEXEC | 14179 | +#ifdef CONFIG_PAX_SEGMEXEC |
14062 | + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && !(error_code & (PF_PROT | PF_WRITE)) && (regs->ip + SEGMEXEC_TASK_SIZE == address)) { | 14180 | + if (unlikely((mm->pax_flags & MF_PAX_SEGMEXEC) && vma->vm_end - SEGMEXEC_TASK_SIZE - 1 < address - SEGMEXEC_TASK_SIZE - 1)) { |
14063 | + | 14181 | + bad_area(regs, error_code, address); |
14064 | +#ifdef CONFIG_PAX_EMUTRAMP | 14182 | + return; |
14065 | + switch (pax_handle_fetch_fault(regs)) { | ||
14066 | + case 2: | ||
14067 | + return; | ||
14068 | + } | ||
14069 | +#endif | ||
14070 | + | ||
14071 | + pax_report_fault(regs, (void *)regs->ip, (void *)regs->sp); | ||
14072 | + do_group_exit(SIGKILL); | ||
14073 | + } | ||
14074 | +#endif | ||
14075 | + | ||
14076 | + } | 14183 | + } |
14077 | +#endif | 14184 | +#endif |
14078 | + | 14185 | + |
14079 | +bad_area_nopax: | 14186 | if (unlikely(expand_stack(vma, address))) { |
14080 | /* User mode accesses just cause a SIGSEGV */ | 14187 | bad_area(regs, error_code, address); |
14081 | if (error_code & PF_USER) { | 14188 | return; |
14082 | /* | 14189 | @@ -1146,3 +1363,174 @@ good_area: |
14083 | @@ -852,7 +1064,7 @@ no_context: | 14190 | |
14084 | #ifdef CONFIG_X86_32 | 14191 | up_read(&mm->mmap_sem); |
14085 | die("Oops", regs, error_code); | ||
14086 | bust_spinlocks(0); | ||
14087 | - do_exit(SIGKILL); | ||
14088 | + do_group_exit(SIGKILL); | ||
14089 | #else | ||
14090 | sig = SIGKILL; | ||
14091 | if (__die("Oops", regs, error_code)) | ||
14092 | @@ -935,3 +1147,174 @@ void vmalloc_sync_all(void) | ||
14093 | } | ||
14094 | #endif | ||
14095 | } | 14192 | } |
14096 | + | 14193 | + |
14097 | +#ifdef CONFIG_PAX_EMUTRAMP | 14194 | +#ifdef CONFIG_PAX_EMUTRAMP |
@@ -14264,10 +14361,10 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/fault.c linux-2.6.29.6/arch/x86/mm/fault.c | |||
14264 | + printk("\n"); | 14361 | + printk("\n"); |
14265 | +} | 14362 | +} |
14266 | +#endif | 14363 | +#endif |
14267 | diff -urNp linux-2.6.29.6/arch/x86/mm/highmem_32.c linux-2.6.29.6/arch/x86/mm/highmem_32.c | 14364 | diff -urNp linux-2.6.30.4/arch/x86/mm/highmem_32.c linux-2.6.30.4/arch/x86/mm/highmem_32.c |
14268 | --- linux-2.6.29.6/arch/x86/mm/highmem_32.c 2009-07-02 19:41:20.000000000 -0400 | 14365 | --- linux-2.6.30.4/arch/x86/mm/highmem_32.c 2009-07-24 17:47:51.000000000 -0400 |
14269 | +++ linux-2.6.29.6/arch/x86/mm/highmem_32.c 2009-07-23 17:34:32.085744993 -0400 | 14366 | +++ linux-2.6.30.4/arch/x86/mm/highmem_32.c 2009-07-30 09:48:09.970452952 -0400 |
14270 | @@ -74,6 +74,10 @@ void *kmap_atomic_prot(struct page *page | 14367 | @@ -32,6 +32,10 @@ void *kmap_atomic_prot(struct page *page |
14271 | enum fixed_addresses idx; | 14368 | enum fixed_addresses idx; |
14272 | unsigned long vaddr; | 14369 | unsigned long vaddr; |
14273 | 14370 | ||
@@ -14278,7 +14375,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/highmem_32.c linux-2.6.29.6/arch/x86/mm/hi | |||
14278 | /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */ | 14375 | /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */ |
14279 | pagefault_disable(); | 14376 | pagefault_disable(); |
14280 | 14377 | ||
14281 | @@ -85,7 +89,17 @@ void *kmap_atomic_prot(struct page *page | 14378 | @@ -43,7 +47,17 @@ void *kmap_atomic_prot(struct page *page |
14282 | idx = type + KM_TYPE_NR*smp_processor_id(); | 14379 | idx = type + KM_TYPE_NR*smp_processor_id(); |
14283 | vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); | 14380 | vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); |
14284 | BUG_ON(!pte_none(*(kmap_pte-idx))); | 14381 | BUG_ON(!pte_none(*(kmap_pte-idx))); |
@@ -14296,7 +14393,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/highmem_32.c linux-2.6.29.6/arch/x86/mm/hi | |||
14296 | arch_flush_lazy_mmu_mode(); | 14393 | arch_flush_lazy_mmu_mode(); |
14297 | 14394 | ||
14298 | return (void *)vaddr; | 14395 | return (void *)vaddr; |
14299 | @@ -101,15 +115,29 @@ void kunmap_atomic(void *kvaddr, enum km | 14396 | @@ -59,15 +73,29 @@ void kunmap_atomic(void *kvaddr, enum km |
14300 | unsigned long vaddr = (unsigned long) kvaddr & PAGE_MASK; | 14397 | unsigned long vaddr = (unsigned long) kvaddr & PAGE_MASK; |
14301 | enum fixed_addresses idx = type + KM_TYPE_NR*smp_processor_id(); | 14398 | enum fixed_addresses idx = type + KM_TYPE_NR*smp_processor_id(); |
14302 | 14399 | ||
@@ -14328,35 +14425,9 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/highmem_32.c linux-2.6.29.6/arch/x86/mm/hi | |||
14328 | #ifdef CONFIG_DEBUG_HIGHMEM | 14425 | #ifdef CONFIG_DEBUG_HIGHMEM |
14329 | BUG_ON(vaddr < PAGE_OFFSET); | 14426 | BUG_ON(vaddr < PAGE_OFFSET); |
14330 | BUG_ON(vaddr >= (unsigned long)high_memory); | 14427 | BUG_ON(vaddr >= (unsigned long)high_memory); |
14331 | @@ -128,11 +156,25 @@ void *kmap_atomic_pfn(unsigned long pfn, | 14428 | diff -urNp linux-2.6.30.4/arch/x86/mm/hugetlbpage.c linux-2.6.30.4/arch/x86/mm/hugetlbpage.c |
14332 | enum fixed_addresses idx; | 14429 | --- linux-2.6.30.4/arch/x86/mm/hugetlbpage.c 2009-07-24 17:47:51.000000000 -0400 |
14333 | unsigned long vaddr; | 14430 | +++ linux-2.6.30.4/arch/x86/mm/hugetlbpage.c 2009-07-30 09:48:09.971412512 -0400 |
14334 | |||
14335 | +#ifdef CONFIG_PAX_KERNEXEC | ||
14336 | + unsigned long cr0; | ||
14337 | +#endif | ||
14338 | + | ||
14339 | pagefault_disable(); | ||
14340 | |||
14341 | idx = type + KM_TYPE_NR*smp_processor_id(); | ||
14342 | vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); | ||
14343 | + | ||
14344 | +#ifdef CONFIG_PAX_KERNEXEC | ||
14345 | + pax_open_kernel(cr0); | ||
14346 | +#endif | ||
14347 | + | ||
14348 | set_pte(kmap_pte-idx, pfn_pte(pfn, kmap_prot)); | ||
14349 | + | ||
14350 | +#ifdef CONFIG_PAX_KERNEXEC | ||
14351 | + pax_close_kernel(cr0); | ||
14352 | +#endif | ||
14353 | + | ||
14354 | arch_flush_lazy_mmu_mode(); | ||
14355 | |||
14356 | return (void*) vaddr; | ||
14357 | diff -urNp linux-2.6.29.6/arch/x86/mm/hugetlbpage.c linux-2.6.29.6/arch/x86/mm/hugetlbpage.c | ||
14358 | --- linux-2.6.29.6/arch/x86/mm/hugetlbpage.c 2009-07-02 19:41:20.000000000 -0400 | ||
14359 | +++ linux-2.6.29.6/arch/x86/mm/hugetlbpage.c 2009-07-23 17:34:32.085744993 -0400 | ||
14360 | @@ -267,13 +267,18 @@ static unsigned long hugetlb_get_unmappe | 14431 | @@ -267,13 +267,18 @@ static unsigned long hugetlb_get_unmappe |
14361 | struct hstate *h = hstate_file(file); | 14432 | struct hstate *h = hstate_file(file); |
14362 | struct mm_struct *mm = current->mm; | 14433 | struct mm_struct *mm = current->mm; |
@@ -14491,18 +14562,18 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/hugetlbpage.c linux-2.6.29.6/arch/x86/mm/h | |||
14491 | (!vma || addr + len <= vma->vm_start)) | 14562 | (!vma || addr + len <= vma->vm_start)) |
14492 | return addr; | 14563 | return addr; |
14493 | } | 14564 | } |
14494 | diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_32.c | 14565 | diff -urNp linux-2.6.30.4/arch/x86/mm/init_32.c linux-2.6.30.4/arch/x86/mm/init_32.c |
14495 | --- linux-2.6.29.6/arch/x86/mm/init_32.c 2009-07-02 19:41:20.000000000 -0400 | 14566 | --- linux-2.6.30.4/arch/x86/mm/init_32.c 2009-07-24 17:47:51.000000000 -0400 |
14496 | +++ linux-2.6.29.6/arch/x86/mm/init_32.c 2009-07-23 17:34:32.086818444 -0400 | 14567 | +++ linux-2.6.30.4/arch/x86/mm/init_32.c 2009-07-30 09:48:09.972413251 -0400 |
14497 | @@ -50,6 +50,7 @@ | 14568 | @@ -50,6 +50,7 @@ |
14498 | #include <asm/setup.h> | 14569 | #include <asm/setup.h> |
14499 | #include <asm/cacheflush.h> | 14570 | #include <asm/cacheflush.h> |
14500 | #include <asm/smp.h> | 14571 | #include <asm/init.h> |
14501 | +#include <asm/desc.h> | 14572 | +#include <asm/desc.h> |
14502 | 14573 | ||
14503 | unsigned int __VMALLOC_RESERVE = 128 << 20; | 14574 | unsigned long max_low_pfn_mapped; |
14504 | 14575 | unsigned long max_pfn_mapped; | |
14505 | @@ -82,36 +83,6 @@ static __init void *alloc_low_page(void) | 14576 | @@ -75,36 +76,6 @@ static __init void *alloc_low_page(void) |
14506 | } | 14577 | } |
14507 | 14578 | ||
14508 | /* | 14579 | /* |
@@ -14517,7 +14588,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14517 | - | 14588 | - |
14518 | -#ifdef CONFIG_X86_PAE | 14589 | -#ifdef CONFIG_X86_PAE |
14519 | - if (!(pgd_val(*pgd) & _PAGE_PRESENT)) { | 14590 | - if (!(pgd_val(*pgd) & _PAGE_PRESENT)) { |
14520 | - if (after_init_bootmem) | 14591 | - if (after_bootmem) |
14521 | - pmd_table = (pmd_t *)alloc_bootmem_low_pages(PAGE_SIZE); | 14592 | - pmd_table = (pmd_t *)alloc_bootmem_low_pages(PAGE_SIZE); |
14522 | - else | 14593 | - else |
14523 | - pmd_table = (pmd_t *)alloc_low_page(); | 14594 | - pmd_table = (pmd_t *)alloc_low_page(); |
@@ -14539,7 +14610,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14539 | * Create a page table and place a pointer to it in a middle page | 14610 | * Create a page table and place a pointer to it in a middle page |
14540 | * directory entry: | 14611 | * directory entry: |
14541 | */ | 14612 | */ |
14542 | @@ -131,7 +102,11 @@ static pte_t * __init one_page_table_ini | 14613 | @@ -124,13 +95,28 @@ static pte_t * __init one_page_table_ini |
14543 | page_table = (pte_t *)alloc_low_page(); | 14614 | page_table = (pte_t *)alloc_low_page(); |
14544 | 14615 | ||
14545 | paravirt_alloc_pte(&init_mm, __pa(page_table) >> PAGE_SHIFT); | 14616 | paravirt_alloc_pte(&init_mm, __pa(page_table) >> PAGE_SHIFT); |
@@ -14551,7 +14622,24 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14551 | BUG_ON(page_table != pte_offset_kernel(pmd, 0)); | 14622 | BUG_ON(page_table != pte_offset_kernel(pmd, 0)); |
14552 | } | 14623 | } |
14553 | 14624 | ||
14554 | @@ -194,6 +169,7 @@ page_table_range_init(unsigned long star | 14625 | return pte_offset_kernel(pmd, 0); |
14626 | } | ||
14627 | |||
14628 | +static pmd_t * __init one_md_table_init(pgd_t *pgd) | ||
14629 | +{ | ||
14630 | + pud_t *pud; | ||
14631 | + pmd_t *pmd_table; | ||
14632 | + | ||
14633 | + pud = pud_offset(pgd, 0); | ||
14634 | + pmd_table = pmd_offset(pud, 0); | ||
14635 | + | ||
14636 | + return pmd_table; | ||
14637 | +} | ||
14638 | + | ||
14639 | pmd_t * __init populate_extra_pmd(unsigned long vaddr) | ||
14640 | { | ||
14641 | int pgd_idx = pgd_index(vaddr); | ||
14642 | @@ -204,6 +190,7 @@ page_table_range_init(unsigned long star | ||
14555 | int pgd_idx, pmd_idx; | 14643 | int pgd_idx, pmd_idx; |
14556 | unsigned long vaddr; | 14644 | unsigned long vaddr; |
14557 | pgd_t *pgd; | 14645 | pgd_t *pgd; |
@@ -14559,7 +14647,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14559 | pmd_t *pmd; | 14647 | pmd_t *pmd; |
14560 | pte_t *pte = NULL; | 14648 | pte_t *pte = NULL; |
14561 | 14649 | ||
14562 | @@ -203,8 +179,13 @@ page_table_range_init(unsigned long star | 14650 | @@ -213,8 +200,13 @@ page_table_range_init(unsigned long star |
14563 | pgd = pgd_base + pgd_idx; | 14651 | pgd = pgd_base + pgd_idx; |
14564 | 14652 | ||
14565 | for ( ; (pgd_idx < PTRS_PER_PGD) && (vaddr != end); pgd++, pgd_idx++) { | 14653 | for ( ; (pgd_idx < PTRS_PER_PGD) && (vaddr != end); pgd++, pgd_idx++) { |
@@ -14575,7 +14663,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14575 | for (; (pmd_idx < PTRS_PER_PMD) && (vaddr != end); | 14663 | for (; (pmd_idx < PTRS_PER_PMD) && (vaddr != end); |
14576 | pmd++, pmd_idx++) { | 14664 | pmd++, pmd_idx++) { |
14577 | pte = page_table_kmap_check(one_page_table_init(pmd), | 14665 | pte = page_table_kmap_check(one_page_table_init(pmd), |
14578 | @@ -216,11 +197,23 @@ page_table_range_init(unsigned long star | 14666 | @@ -226,11 +218,23 @@ page_table_range_init(unsigned long star |
14579 | } | 14667 | } |
14580 | } | 14668 | } |
14581 | 14669 | ||
@@ -14603,10 +14691,10 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14603 | } | 14691 | } |
14604 | 14692 | ||
14605 | /* | 14693 | /* |
14606 | @@ -233,9 +226,10 @@ static void __init kernel_physical_mappi | 14694 | @@ -246,9 +250,10 @@ kernel_physical_mapping_init(unsigned lo |
14607 | unsigned long end_pfn, | 14695 | int use_pse = page_size_mask == (1<<PG_LEVEL_2M); |
14608 | int use_pse) | 14696 | unsigned long start_pfn, end_pfn; |
14609 | { | 14697 | pgd_t *pgd_base = swapper_pg_dir; |
14610 | - int pgd_idx, pmd_idx, pte_ofs; | 14698 | - int pgd_idx, pmd_idx, pte_ofs; |
14611 | + unsigned int pgd_idx, pmd_idx, pte_ofs; | 14699 | + unsigned int pgd_idx, pmd_idx, pte_ofs; |
14612 | unsigned long pfn; | 14700 | unsigned long pfn; |
@@ -14615,7 +14703,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14615 | pmd_t *pmd; | 14703 | pmd_t *pmd; |
14616 | pte_t *pte; | 14704 | pte_t *pte; |
14617 | unsigned pages_2m, pages_4k; | 14705 | unsigned pages_2m, pages_4k; |
14618 | @@ -265,8 +259,13 @@ repeat: | 14706 | @@ -281,8 +286,13 @@ repeat: |
14619 | pfn = start_pfn; | 14707 | pfn = start_pfn; |
14620 | pgd_idx = pgd_index((pfn<<PAGE_SHIFT) + PAGE_OFFSET); | 14708 | pgd_idx = pgd_index((pfn<<PAGE_SHIFT) + PAGE_OFFSET); |
14621 | pgd = pgd_base + pgd_idx; | 14709 | pgd = pgd_base + pgd_idx; |
@@ -14631,7 +14719,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14631 | 14719 | ||
14632 | if (pfn >= end_pfn) | 14720 | if (pfn >= end_pfn) |
14633 | continue; | 14721 | continue; |
14634 | @@ -278,14 +277,13 @@ repeat: | 14722 | @@ -294,14 +304,13 @@ repeat: |
14635 | #endif | 14723 | #endif |
14636 | for (; pmd_idx < PTRS_PER_PMD && pfn < end_pfn; | 14724 | for (; pmd_idx < PTRS_PER_PMD && pfn < end_pfn; |
14637 | pmd++, pmd_idx++) { | 14725 | pmd++, pmd_idx++) { |
@@ -14647,7 +14735,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14647 | pgprot_t prot = PAGE_KERNEL_LARGE; | 14735 | pgprot_t prot = PAGE_KERNEL_LARGE; |
14648 | /* | 14736 | /* |
14649 | * first pass will use the same initial | 14737 | * first pass will use the same initial |
14650 | @@ -295,11 +293,7 @@ repeat: | 14738 | @@ -311,11 +320,7 @@ repeat: |
14651 | __pgprot(PTE_IDENT_ATTR | | 14739 | __pgprot(PTE_IDENT_ATTR | |
14652 | _PAGE_PSE); | 14740 | _PAGE_PSE); |
14653 | 14741 | ||
@@ -14660,7 +14748,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14660 | prot = PAGE_KERNEL_LARGE_EXEC; | 14748 | prot = PAGE_KERNEL_LARGE_EXEC; |
14661 | 14749 | ||
14662 | pages_2m++; | 14750 | pages_2m++; |
14663 | @@ -316,7 +310,7 @@ repeat: | 14751 | @@ -332,7 +337,7 @@ repeat: |
14664 | pte_ofs = pte_index((pfn<<PAGE_SHIFT) + PAGE_OFFSET); | 14752 | pte_ofs = pte_index((pfn<<PAGE_SHIFT) + PAGE_OFFSET); |
14665 | pte += pte_ofs; | 14753 | pte += pte_ofs; |
14666 | for (; pte_ofs < PTRS_PER_PTE && pfn < end_pfn; | 14754 | for (; pte_ofs < PTRS_PER_PTE && pfn < end_pfn; |
@@ -14669,7 +14757,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14669 | pgprot_t prot = PAGE_KERNEL; | 14757 | pgprot_t prot = PAGE_KERNEL; |
14670 | /* | 14758 | /* |
14671 | * first pass will use the same initial | 14759 | * first pass will use the same initial |
14672 | @@ -324,7 +318,7 @@ repeat: | 14760 | @@ -340,7 +345,7 @@ repeat: |
14673 | */ | 14761 | */ |
14674 | pgprot_t init_prot = __pgprot(PTE_IDENT_ATTR); | 14762 | pgprot_t init_prot = __pgprot(PTE_IDENT_ATTR); |
14675 | 14763 | ||
@@ -14678,22 +14766,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14678 | prot = PAGE_KERNEL_EXEC; | 14766 | prot = PAGE_KERNEL_EXEC; |
14679 | 14767 | ||
14680 | pages_4k++; | 14768 | pages_4k++; |
14681 | @@ -369,7 +363,13 @@ repeat: | 14769 | @@ -492,7 +497,7 @@ void __init native_pagetable_setup_start |
14682 | */ | ||
14683 | int devmem_is_allowed(unsigned long pagenr) | ||
14684 | { | ||
14685 | - if (pagenr <= 256) | ||
14686 | + if (!pagenr) | ||
14687 | + return 1; | ||
14688 | +#ifdef CONFIG_VM86 | ||
14689 | + if (pagenr < (ISA_START_ADDRESS >> PAGE_SHIFT)) | ||
14690 | + return 1; | ||
14691 | +#endif | ||
14692 | + if ((ISA_START_ADDRESS >> PAGE_SHIFT) <= pagenr && pagenr < (ISA_END_ADDRESS >> PAGE_SHIFT)) | ||
14693 | return 1; | ||
14694 | if (iomem_is_exclusive(pagenr << PAGE_SHIFT)) | ||
14695 | return 0; | ||
14696 | @@ -508,7 +508,7 @@ void __init native_pagetable_setup_start | ||
14697 | 14770 | ||
14698 | pud = pud_offset(pgd, va); | 14771 | pud = pud_offset(pgd, va); |
14699 | pmd = pmd_offset(pud, va); | 14772 | pmd = pmd_offset(pud, va); |
@@ -14702,7 +14775,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14702 | break; | 14775 | break; |
14703 | 14776 | ||
14704 | pte = pte_offset_kernel(pmd, va); | 14777 | pte = pte_offset_kernel(pmd, va); |
14705 | @@ -559,9 +559,7 @@ static void __init early_ioremap_page_ta | 14778 | @@ -544,9 +549,7 @@ void __init early_ioremap_page_table_ran |
14706 | 14779 | ||
14707 | static void __init pagetable_init(void) | 14780 | static void __init pagetable_init(void) |
14708 | { | 14781 | { |
@@ -14713,7 +14786,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14713 | } | 14786 | } |
14714 | 14787 | ||
14715 | #ifdef CONFIG_ACPI_SLEEP | 14788 | #ifdef CONFIG_ACPI_SLEEP |
14716 | @@ -569,12 +567,12 @@ static void __init pagetable_init(void) | 14789 | @@ -554,12 +557,12 @@ static void __init pagetable_init(void) |
14717 | * ACPI suspend needs this for resume, because things like the intel-agp | 14790 | * ACPI suspend needs this for resume, because things like the intel-agp |
14718 | * driver might have split up a kernel 4MB mapping. | 14791 | * driver might have split up a kernel 4MB mapping. |
14719 | */ | 14792 | */ |
@@ -14728,7 +14801,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14728 | } | 14801 | } |
14729 | #else /* !CONFIG_ACPI_SLEEP */ | 14802 | #else /* !CONFIG_ACPI_SLEEP */ |
14730 | static inline void save_pg_dir(void) | 14803 | static inline void save_pg_dir(void) |
14731 | @@ -604,13 +602,11 @@ void zap_low_mappings(void) | 14804 | @@ -589,13 +592,11 @@ void zap_low_mappings(void) |
14732 | 14805 | ||
14733 | int nx_enabled; | 14806 | int nx_enabled; |
14734 | 14807 | ||
@@ -14743,7 +14816,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14743 | /* | 14816 | /* |
14744 | * noexec = on|off | 14817 | * noexec = on|off |
14745 | * | 14818 | * |
14746 | @@ -619,40 +615,33 @@ static int disable_nx __initdata; | 14819 | @@ -604,40 +605,33 @@ static int disable_nx __initdata; |
14747 | * on Enable | 14820 | * on Enable |
14748 | * off Disable | 14821 | * off Disable |
14749 | */ | 14822 | */ |
@@ -14774,7 +14847,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14774 | early_param("noexec", noexec_setup); | 14847 | early_param("noexec", noexec_setup); |
14775 | +#endif | 14848 | +#endif |
14776 | 14849 | ||
14777 | static void __init set_nx(void) | 14850 | void __init set_nx(void) |
14778 | { | 14851 | { |
14779 | - unsigned int v[4], l, h; | 14852 | - unsigned int v[4], l, h; |
14780 | + if (!nx_enabled && cpu_has_nx) { | 14853 | + if (!nx_enabled && cpu_has_nx) { |
@@ -14797,7 +14870,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14797 | } | 14870 | } |
14798 | } | 14871 | } |
14799 | #endif | 14872 | #endif |
14800 | @@ -1035,7 +1024,7 @@ void __init mem_init(void) | 14873 | @@ -934,7 +928,7 @@ void __init mem_init(void) |
14801 | set_highmem_pages_init(); | 14874 | set_highmem_pages_init(); |
14802 | 14875 | ||
14803 | codesize = (unsigned long) &_etext - (unsigned long) &_text; | 14876 | codesize = (unsigned long) &_etext - (unsigned long) &_text; |
@@ -14806,7 +14879,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14806 | initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin; | 14879 | initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin; |
14807 | 14880 | ||
14808 | kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT); | 14881 | kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT); |
14809 | @@ -1081,10 +1070,10 @@ void __init mem_init(void) | 14882 | @@ -980,10 +974,10 @@ void __init mem_init(void) |
14810 | ((unsigned long)&__init_end - | 14883 | ((unsigned long)&__init_end - |
14811 | (unsigned long)&__init_begin) >> 10, | 14884 | (unsigned long)&__init_begin) >> 10, |
14812 | 14885 | ||
@@ -14820,57 +14893,10 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_32.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14820 | ((unsigned long)&_etext - (unsigned long)&_text) >> 10); | 14893 | ((unsigned long)&_etext - (unsigned long)&_text) >> 10); |
14821 | 14894 | ||
14822 | /* | 14895 | /* |
14823 | @@ -1227,6 +1216,46 @@ void free_init_pages(char *what, unsigne | 14896 | diff -urNp linux-2.6.30.4/arch/x86/mm/init_64.c linux-2.6.30.4/arch/x86/mm/init_64.c |
14824 | 14897 | --- linux-2.6.30.4/arch/x86/mm/init_64.c 2009-07-24 17:47:51.000000000 -0400 | |
14825 | void free_initmem(void) | 14898 | +++ linux-2.6.30.4/arch/x86/mm/init_64.c 2009-07-30 09:48:09.972413251 -0400 |
14826 | { | 14899 | @@ -202,12 +202,24 @@ void set_pte_vaddr_pud(pud_t *pud_page, |
14827 | + | ||
14828 | +#ifdef CONFIG_PAX_KERNEXEC | ||
14829 | + /* PaX: limit KERNEL_CS to actual size */ | ||
14830 | + unsigned long addr, limit; | ||
14831 | + struct desc_struct d; | ||
14832 | + int cpu; | ||
14833 | + pgd_t *pgd; | ||
14834 | + pud_t *pud; | ||
14835 | + pmd_t *pmd; | ||
14836 | + | ||
14837 | +#ifdef CONFIG_MODULES | ||
14838 | + limit = ktva_ktla((unsigned long)&MODULES_END); | ||
14839 | +#else | ||
14840 | + limit = (unsigned long)&_etext; | ||
14841 | +#endif | ||
14842 | + limit = (limit - 1UL) >> PAGE_SHIFT; | ||
14843 | + | ||
14844 | + for (cpu = 0; cpu < NR_CPUS; cpu++) { | ||
14845 | + pack_descriptor(&d, get_desc_base(&get_cpu_gdt_table(cpu)[GDT_ENTRY_KERNEL_CS]), limit, 0x9B, 0xC); | ||
14846 | + write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_KERNEL_CS, &d, DESCTYPE_S); | ||
14847 | + } | ||
14848 | + | ||
14849 | + /* PaX: make KERNEL_CS read-only */ | ||
14850 | + for (addr = ktla_ktva((unsigned long)&_text); addr < (unsigned long)&_data; addr += PMD_SIZE) { | ||
14851 | + pgd = pgd_offset_k(addr); | ||
14852 | + pud = pud_offset(pgd, addr); | ||
14853 | + pmd = pmd_offset(pud, addr); | ||
14854 | + set_pmd(pmd, __pmd(pmd_val(*pmd) & ~_PAGE_RW)); | ||
14855 | + } | ||
14856 | +#ifdef CONFIG_X86_PAE | ||
14857 | + for (addr = (unsigned long)&__init_begin; addr < (unsigned long)&__init_end; addr += PMD_SIZE) { | ||
14858 | + pgd = pgd_offset_k(addr); | ||
14859 | + pud = pud_offset(pgd, addr); | ||
14860 | + pmd = pmd_offset(pud, addr); | ||
14861 | + set_pmd(pmd, __pmd(pmd_val(*pmd) | (_PAGE_NX & __supported_pte_mask))); | ||
14862 | + } | ||
14863 | +#endif | ||
14864 | + flush_tlb_all(); | ||
14865 | +#endif | ||
14866 | + | ||
14867 | free_init_pages("unused kernel memory", | ||
14868 | (unsigned long)(&__init_begin), | ||
14869 | (unsigned long)(&__init_end)); | ||
14870 | diff -urNp linux-2.6.29.6/arch/x86/mm/init_64.c linux-2.6.29.6/arch/x86/mm/init_64.c | ||
14871 | --- linux-2.6.29.6/arch/x86/mm/init_64.c 2009-07-02 19:41:20.000000000 -0400 | ||
14872 | +++ linux-2.6.29.6/arch/x86/mm/init_64.c 2009-07-23 17:34:32.086818444 -0400 | ||
14873 | @@ -175,6 +175,10 @@ set_pte_vaddr_pud(pud_t *pud_page, unsig | ||
14874 | pmd_t *pmd; | 14900 | pmd_t *pmd; |
14875 | pte_t *pte; | 14901 | pte_t *pte; |
14876 | 14902 | ||
@@ -14879,13 +14905,9 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_64.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14879 | +#endif | 14905 | +#endif |
14880 | + | 14906 | + |
14881 | pud = pud_page + pud_index(vaddr); | 14907 | pud = pud_page + pud_index(vaddr); |
14882 | if (pud_none(*pud)) { | 14908 | pmd = fill_pmd(pud, vaddr); |
14883 | pmd = (pmd_t *) spp_getpage(); | 14909 | pte = fill_pte(pmd, vaddr); |
14884 | @@ -196,8 +200,17 @@ set_pte_vaddr_pud(pud_t *pud_page, unsig | ||
14885 | } | ||
14886 | 14910 | ||
14887 | pte = pte_offset_kernel(pmd, vaddr); | ||
14888 | + | ||
14889 | +#ifdef CONFIG_PAX_KERNEXEC | 14911 | +#ifdef CONFIG_PAX_KERNEXEC |
14890 | + pax_open_kernel(cr0); | 14912 | + pax_open_kernel(cr0); |
14891 | +#endif | 14913 | +#endif |
@@ -14899,7 +14921,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_64.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14899 | /* | 14921 | /* |
14900 | * It's enough to flush this one mapping. | 14922 | * It's enough to flush this one mapping. |
14901 | * (PGE mappings get flushed as well) | 14923 | * (PGE mappings get flushed as well) |
14902 | @@ -238,14 +251,12 @@ static void __init __init_extra_mapping( | 14924 | @@ -265,14 +277,12 @@ static void __init __init_extra_mapping( |
14903 | pgd = pgd_offset_k((unsigned long)__va(phys)); | 14925 | pgd = pgd_offset_k((unsigned long)__va(phys)); |
14904 | if (pgd_none(*pgd)) { | 14926 | if (pgd_none(*pgd)) { |
14905 | pud = (pud_t *) spp_getpage(); | 14927 | pud = (pud_t *) spp_getpage(); |
@@ -14916,28 +14938,90 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_64.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14916 | } | 14938 | } |
14917 | pmd = pmd_offset(pud, phys); | 14939 | pmd = pmd_offset(pud, phys); |
14918 | BUG_ON(!pmd_none(*pmd)); | 14940 | BUG_ON(!pmd_none(*pmd)); |
14919 | @@ -888,7 +899,9 @@ EXPORT_SYMBOL_GPL(memory_add_physaddr_to | 14941 | @@ -882,8 +892,8 @@ int kern_addr_valid(unsigned long addr) |
14942 | static struct vm_area_struct gate_vma = { | ||
14943 | .vm_start = VSYSCALL_START, | ||
14944 | .vm_end = VSYSCALL_START + (VSYSCALL_MAPPED_PAGES * PAGE_SIZE), | ||
14945 | - .vm_page_prot = PAGE_READONLY_EXEC, | ||
14946 | - .vm_flags = VM_READ | VM_EXEC | ||
14947 | + .vm_page_prot = PAGE_READONLY, | ||
14948 | + .vm_flags = VM_READ | ||
14949 | }; | ||
14950 | |||
14951 | struct vm_area_struct *get_gate_vma(struct task_struct *tsk) | ||
14952 | @@ -917,7 +927,7 @@ int in_gate_area_no_task(unsigned long a | ||
14953 | |||
14954 | const char *arch_vma_name(struct vm_area_struct *vma) | ||
14955 | { | ||
14956 | - if (vma->vm_mm && vma->vm_start == (long)vma->vm_mm->context.vdso) | ||
14957 | + if (vma->vm_mm && vma->vm_start == vma->vm_mm->context.vdso) | ||
14958 | return "[vdso]"; | ||
14959 | if (vma == &gate_vma) | ||
14960 | return "[vsyscall]"; | ||
14961 | diff -urNp linux-2.6.30.4/arch/x86/mm/init.c linux-2.6.30.4/arch/x86/mm/init.c | ||
14962 | --- linux-2.6.30.4/arch/x86/mm/init.c 2009-07-24 17:47:51.000000000 -0400 | ||
14963 | +++ linux-2.6.30.4/arch/x86/mm/init.c 2009-07-30 09:48:09.971412512 -0400 | ||
14964 | @@ -348,7 +348,13 @@ unsigned long __init_refok init_memory_m | ||
14920 | */ | 14965 | */ |
14921 | int devmem_is_allowed(unsigned long pagenr) | 14966 | int devmem_is_allowed(unsigned long pagenr) |
14922 | { | 14967 | { |
14923 | - if (pagenr <= 256) | 14968 | - if (pagenr <= 256) |
14924 | + if (!pagenr) | 14969 | + if (!pagenr) |
14925 | + return 1; | 14970 | + return 1; |
14971 | +#ifdef CONFIG_VM86 | ||
14972 | + if (pagenr < (ISA_START_ADDRESS >> PAGE_SHIFT)) | ||
14973 | + return 1; | ||
14974 | +#endif | ||
14926 | + if ((ISA_START_ADDRESS >> PAGE_SHIFT) <= pagenr && pagenr < (ISA_END_ADDRESS >> PAGE_SHIFT)) | 14975 | + if ((ISA_START_ADDRESS >> PAGE_SHIFT) <= pagenr && pagenr < (ISA_END_ADDRESS >> PAGE_SHIFT)) |
14927 | return 1; | 14976 | return 1; |
14928 | if (iomem_is_exclusive(pagenr << PAGE_SHIFT)) | 14977 | if (iomem_is_exclusive(pagenr << PAGE_SHIFT)) |
14929 | return 0; | 14978 | return 0; |
14930 | @@ -979,6 +992,39 @@ void free_init_pages(char *what, unsigne | 14979 | @@ -396,6 +402,75 @@ void free_init_pages(char *what, unsigne |
14931 | 14980 | ||
14932 | void free_initmem(void) | 14981 | void free_initmem(void) |
14933 | { | 14982 | { |
14934 | + | 14983 | + |
14935 | +#ifdef CONFIG_PAX_KERNEXEC | 14984 | +#ifdef CONFIG_PAX_KERNEXEC |
14936 | + unsigned long addr, end; | ||
14937 | + pgd_t *pgd; | 14985 | + pgd_t *pgd; |
14938 | + pud_t *pud; | 14986 | + pud_t *pud; |
14939 | + pmd_t *pmd; | 14987 | + pmd_t *pmd; |
14940 | + | 14988 | + |
14989 | +#ifdef CONFIG_X86_32 | ||
14990 | + /* PaX: limit KERNEL_CS to actual size */ | ||
14991 | + unsigned long addr, limit; | ||
14992 | + struct desc_struct d; | ||
14993 | + int cpu; | ||
14994 | + | ||
14995 | +#ifdef CONFIG_MODULES | ||
14996 | + limit = ktva_ktla((unsigned long)&MODULES_END); | ||
14997 | +#else | ||
14998 | + limit = (unsigned long)&_etext; | ||
14999 | +#endif | ||
15000 | + limit = (limit - 1UL) >> PAGE_SHIFT; | ||
15001 | + | ||
15002 | + for (cpu = 0; cpu < NR_CPUS; cpu++) { | ||
15003 | + pack_descriptor(&d, get_desc_base(&get_cpu_gdt_table(cpu)[GDT_ENTRY_KERNEL_CS]), limit, 0x9B, 0xC); | ||
15004 | + write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_KERNEL_CS, &d, DESCTYPE_S); | ||
15005 | + } | ||
15006 | + | ||
15007 | + /* PaX: make KERNEL_CS read-only */ | ||
15008 | + for (addr = ktla_ktva((unsigned long)&_text); addr < (unsigned long)&_data; addr += PMD_SIZE) { | ||
15009 | + pgd = pgd_offset_k(addr); | ||
15010 | + pud = pud_offset(pgd, addr); | ||
15011 | + pmd = pmd_offset(pud, addr); | ||
15012 | + set_pmd(pmd, __pmd(pmd_val(*pmd) & ~_PAGE_RW)); | ||
15013 | + } | ||
15014 | +#ifdef CONFIG_X86_PAE | ||
15015 | + for (addr = (unsigned long)&__init_begin; addr < (unsigned long)&__init_end; addr += PMD_SIZE) { | ||
15016 | + pgd = pgd_offset_k(addr); | ||
15017 | + pud = pud_offset(pgd, addr); | ||
15018 | + pmd = pmd_offset(pud, addr); | ||
15019 | + set_pmd(pmd, __pmd(pmd_val(*pmd) | (_PAGE_NX & __supported_pte_mask))); | ||
15020 | + } | ||
15021 | +#endif | ||
15022 | +#else | ||
15023 | + unsigned long addr, end; | ||
15024 | + | ||
14941 | + /* PaX: make kernel code/rodata read-only, rest non-executable */ | 15025 | + /* PaX: make kernel code/rodata read-only, rest non-executable */ |
14942 | + for (addr = __START_KERNEL_map; addr < __START_KERNEL_map + KERNEL_IMAGE_SIZE; addr += PMD_SIZE) { | 15026 | + for (addr = __START_KERNEL_map; addr < __START_KERNEL_map + KERNEL_IMAGE_SIZE; addr += PMD_SIZE) { |
14943 | + pgd = pgd_offset_k(addr); | 15027 | + pgd = pgd_offset_k(addr); |
@@ -14960,6 +15044,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_64.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14960 | + else | 15044 | + else |
14961 | + set_pmd(pmd, __pmd(pmd_val(*pmd) | (_PAGE_NX & __supported_pte_mask))); | 15045 | + set_pmd(pmd, __pmd(pmd_val(*pmd) | (_PAGE_NX & __supported_pte_mask))); |
14962 | + } | 15046 | + } |
15047 | +#endif | ||
14963 | + | 15048 | + |
14964 | + flush_tlb_all(); | 15049 | + flush_tlb_all(); |
14965 | +#endif | 15050 | +#endif |
@@ -14967,42 +15052,40 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/init_64.c linux-2.6.29.6/arch/x86/mm/init_ | |||
14967 | free_init_pages("unused kernel memory", | 15052 | free_init_pages("unused kernel memory", |
14968 | (unsigned long)(&__init_begin), | 15053 | (unsigned long)(&__init_begin), |
14969 | (unsigned long)(&__init_end)); | 15054 | (unsigned long)(&__init_end)); |
14970 | @@ -1116,8 +1162,8 @@ int kern_addr_valid(unsigned long addr) | 15055 | diff -urNp linux-2.6.30.4/arch/x86/mm/iomap_32.c linux-2.6.30.4/arch/x86/mm/iomap_32.c |
14971 | static struct vm_area_struct gate_vma = { | 15056 | --- linux-2.6.30.4/arch/x86/mm/iomap_32.c 2009-07-24 17:47:51.000000000 -0400 |
14972 | .vm_start = VSYSCALL_START, | 15057 | +++ linux-2.6.30.4/arch/x86/mm/iomap_32.c 2009-07-30 09:48:09.973477350 -0400 |
14973 | .vm_end = VSYSCALL_START + (VSYSCALL_MAPPED_PAGES * PAGE_SIZE), | 15058 | @@ -37,12 +37,26 @@ void *kmap_atomic_prot_pfn(unsigned long |
14974 | - .vm_page_prot = PAGE_READONLY_EXEC, | 15059 | enum fixed_addresses idx; |
14975 | - .vm_flags = VM_READ | VM_EXEC | 15060 | unsigned long vaddr; |
14976 | + .vm_page_prot = PAGE_READONLY, | ||
14977 | + .vm_flags = VM_READ | ||
14978 | }; | ||
14979 | 15061 | ||
14980 | struct vm_area_struct *get_gate_vma(struct task_struct *tsk) | 15062 | +#ifdef CONFIG_PAX_KERNEXEC |
14981 | @@ -1151,7 +1197,7 @@ int in_gate_area_no_task(unsigned long a | 15063 | + unsigned long cr0; |
15064 | +#endif | ||
15065 | + | ||
15066 | pagefault_disable(); | ||
14982 | 15067 | ||
14983 | const char *arch_vma_name(struct vm_area_struct *vma) | 15068 | debug_kmap_atomic(type); |
14984 | { | 15069 | idx = type + KM_TYPE_NR * smp_processor_id(); |
14985 | - if (vma->vm_mm && vma->vm_start == (long)vma->vm_mm->context.vdso) | 15070 | vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); |
14986 | + if (vma->vm_mm && vma->vm_start == vma->vm_mm->context.vdso) | 15071 | + |
14987 | return "[vdso]"; | 15072 | +#ifdef CONFIG_PAX_KERNEXEC |
14988 | if (vma == &gate_vma) | 15073 | + pax_open_kernel(cr0); |
14989 | return "[vsyscall]"; | 15074 | +#endif |
14990 | diff -urNp linux-2.6.29.6/arch/x86/mm/iomap_32.c linux-2.6.29.6/arch/x86/mm/iomap_32.c | 15075 | + |
14991 | --- linux-2.6.29.6/arch/x86/mm/iomap_32.c 2009-07-02 19:41:20.000000000 -0400 | 15076 | set_pte(kmap_pte - idx, pfn_pte(pfn, prot)); |
14992 | +++ linux-2.6.29.6/arch/x86/mm/iomap_32.c 2009-07-23 17:34:32.086818444 -0400 | 15077 | + |
14993 | @@ -24,7 +24,7 @@ int is_io_mapping_possible(resource_size | 15078 | +#ifdef CONFIG_PAX_KERNEXEC |
14994 | { | 15079 | + pax_close_kernel(cr0); |
14995 | #ifndef CONFIG_X86_PAE | 15080 | +#endif |
14996 | /* There is no way to map greater than 1 << 32 address without PAE */ | 15081 | + |
14997 | - if (base + size > 0x100000000ULL) | 15082 | arch_flush_lazy_mmu_mode(); |
14998 | + if ((u64)base + size > 0x100000000ULL) | 15083 | |
14999 | return 0; | 15084 | return (void *)vaddr; |
15000 | #endif | 15085 | diff -urNp linux-2.6.30.4/arch/x86/mm/ioremap.c linux-2.6.30.4/arch/x86/mm/ioremap.c |
15001 | return 1; | 15086 | --- linux-2.6.30.4/arch/x86/mm/ioremap.c 2009-07-24 17:47:51.000000000 -0400 |
15002 | diff -urNp linux-2.6.29.6/arch/x86/mm/ioremap.c linux-2.6.29.6/arch/x86/mm/ioremap.c | 15087 | +++ linux-2.6.30.4/arch/x86/mm/ioremap.c 2009-07-30 19:56:23.514032300 -0400 |
15003 | --- linux-2.6.29.6/arch/x86/mm/ioremap.c 2009-07-02 19:41:20.000000000 -0400 | 15088 | @@ -111,8 +111,8 @@ int page_is_ram(unsigned long pagenr) |
15004 | +++ linux-2.6.29.6/arch/x86/mm/ioremap.c 2009-07-23 17:34:37.458887026 -0400 | ||
15005 | @@ -114,8 +114,8 @@ int page_is_ram(unsigned long pagenr) | ||
15006 | * Second special case: Some BIOSen report the PC BIOS | 15089 | * Second special case: Some BIOSen report the PC BIOS |
15007 | * area (640->1Mb) as ram even though it is not. | 15090 | * area (640->1Mb) as ram even though it is not. |
15008 | */ | 15091 | */ |
@@ -15013,7 +15096,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/ioremap.c linux-2.6.29.6/arch/x86/mm/iorem | |||
15013 | return 0; | 15096 | return 0; |
15014 | 15097 | ||
15015 | for (i = 0; i < e820.nr_map; i++) { | 15098 | for (i = 0; i < e820.nr_map; i++) { |
15016 | @@ -210,10 +210,7 @@ static void __iomem *__ioremap_caller(re | 15099 | @@ -207,10 +207,7 @@ static void __iomem *__ioremap_caller(re |
15017 | /* | 15100 | /* |
15018 | * Don't allow anybody to remap normal RAM that we're using.. | 15101 | * Don't allow anybody to remap normal RAM that we're using.. |
15019 | */ | 15102 | */ |
@@ -15025,7 +15108,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/ioremap.c linux-2.6.29.6/arch/x86/mm/iorem | |||
15025 | int is_ram = page_is_ram(pfn); | 15108 | int is_ram = page_is_ram(pfn); |
15026 | 15109 | ||
15027 | if (is_ram && pfn_valid(pfn) && !PageReserved(pfn_to_page(pfn))) | 15110 | if (is_ram && pfn_valid(pfn) && !PageReserved(pfn_to_page(pfn))) |
15028 | @@ -275,6 +272,8 @@ static void __iomem *__ioremap_caller(re | 15111 | @@ -272,6 +269,8 @@ static void __iomem *__ioremap_caller(re |
15029 | break; | 15112 | break; |
15030 | } | 15113 | } |
15031 | 15114 | ||
@@ -15034,7 +15117,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/ioremap.c linux-2.6.29.6/arch/x86/mm/iorem | |||
15034 | /* | 15117 | /* |
15035 | * Ok, go for it.. | 15118 | * Ok, go for it.. |
15036 | */ | 15119 | */ |
15037 | @@ -490,7 +489,6 @@ static int __init early_ioremap_debug_se | 15120 | @@ -489,7 +488,6 @@ static int __init early_ioremap_debug_se |
15038 | early_param("early_ioremap_debug", early_ioremap_debug_setup); | 15121 | early_param("early_ioremap_debug", early_ioremap_debug_setup); |
15039 | 15122 | ||
15040 | static __initdata int after_paging_init; | 15123 | static __initdata int after_paging_init; |
@@ -15042,21 +15125,20 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/ioremap.c linux-2.6.29.6/arch/x86/mm/iorem | |||
15042 | 15125 | ||
15043 | static inline pmd_t * __init early_ioremap_pmd(unsigned long addr) | 15126 | static inline pmd_t * __init early_ioremap_pmd(unsigned long addr) |
15044 | { | 15127 | { |
15045 | @@ -505,7 +503,11 @@ static inline pmd_t * __init early_iorem | 15128 | @@ -502,11 +500,6 @@ static inline pmd_t * __init early_iorem |
15129 | return pmd; | ||
15130 | } | ||
15046 | 15131 | ||
15047 | static inline pte_t * __init early_ioremap_pte(unsigned long addr) | 15132 | -static inline pte_t * __init early_ioremap_pte(unsigned long addr) |
15048 | { | 15133 | -{ |
15049 | - return &bm_pte[pte_index(addr)]; | 15134 | - return &bm_pte[pte_index(addr)]; |
15050 | +#ifdef CONFIG_X86_32 | 15135 | -} |
15051 | + return &swapper_pg_fixmap[pte_index(addr)]; | 15136 | - |
15052 | +#else | 15137 | static unsigned long slot_virt[FIX_BTMAPS_SLOTS] __initdata; |
15053 | + return &level1_fixmap_pgt[pte_index(addr)]; | ||
15054 | +#endif | ||
15055 | } | ||
15056 | 15138 | ||
15057 | void __init early_ioremap_init(void) | 15139 | void __init early_ioremap_init(void) |
15058 | @@ -516,8 +518,6 @@ void __init early_ioremap_init(void) | 15140 | @@ -521,8 +514,6 @@ void __init early_ioremap_init(void) |
15059 | printk(KERN_INFO "early_ioremap_init()\n"); | 15141 | slot_virt[i] = __fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i); |
15060 | 15142 | ||
15061 | pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN)); | 15143 | pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN)); |
15062 | - memset(bm_pte, 0, sizeof(bm_pte)); | 15144 | - memset(bm_pte, 0, sizeof(bm_pte)); |
@@ -15064,9 +15146,26 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/ioremap.c linux-2.6.29.6/arch/x86/mm/iorem | |||
15064 | 15146 | ||
15065 | /* | 15147 | /* |
15066 | * The boot-ioremap range spans multiple pmds, for which | 15148 | * The boot-ioremap range spans multiple pmds, for which |
15067 | diff -urNp linux-2.6.29.6/arch/x86/mm/mmap.c linux-2.6.29.6/arch/x86/mm/mmap.c | 15149 | @@ -552,13 +543,15 @@ static void __init __early_set_fixmap(en |
15068 | --- linux-2.6.29.6/arch/x86/mm/mmap.c 2009-07-02 19:41:20.000000000 -0400 | 15150 | phys_addr_t phys, pgprot_t flags) |
15069 | +++ linux-2.6.29.6/arch/x86/mm/mmap.c 2009-07-23 17:34:32.087725848 -0400 | 15151 | { |
15152 | unsigned long addr = __fix_to_virt(idx); | ||
15153 | + unsigned int level; | ||
15154 | pte_t *pte; | ||
15155 | |||
15156 | if (idx >= __end_of_fixed_addresses) { | ||
15157 | BUG(); | ||
15158 | return; | ||
15159 | } | ||
15160 | - pte = early_ioremap_pte(addr); | ||
15161 | + pte = lookup_address(addr, &level); | ||
15162 | + BUG_ON(!pte || level != PG_LEVEL_4K); | ||
15163 | |||
15164 | if (pgprot_val(flags)) | ||
15165 | set_pte(pte, pfn_pte(phys >> PAGE_SHIFT, flags)); | ||
15166 | diff -urNp linux-2.6.30.4/arch/x86/mm/mmap.c linux-2.6.30.4/arch/x86/mm/mmap.c | ||
15167 | --- linux-2.6.30.4/arch/x86/mm/mmap.c 2009-07-24 17:47:51.000000000 -0400 | ||
15168 | +++ linux-2.6.30.4/arch/x86/mm/mmap.c 2009-07-30 09:48:09.973477350 -0400 | ||
15070 | @@ -36,7 +36,7 @@ | 15169 | @@ -36,7 +36,7 @@ |
15071 | * Leave an at least ~128 MB hole. | 15170 | * Leave an at least ~128 MB hole. |
15072 | */ | 15171 | */ |
@@ -15148,9 +15247,9 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/mmap.c linux-2.6.29.6/arch/x86/mm/mmap.c | |||
15148 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; | 15247 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; |
15149 | mm->unmap_area = arch_unmap_area_topdown; | 15248 | mm->unmap_area = arch_unmap_area_topdown; |
15150 | } | 15249 | } |
15151 | diff -urNp linux-2.6.29.6/arch/x86/mm/numa_32.c linux-2.6.29.6/arch/x86/mm/numa_32.c | 15250 | diff -urNp linux-2.6.30.4/arch/x86/mm/numa_32.c linux-2.6.30.4/arch/x86/mm/numa_32.c |
15152 | --- linux-2.6.29.6/arch/x86/mm/numa_32.c 2009-07-02 19:41:20.000000000 -0400 | 15251 | --- linux-2.6.30.4/arch/x86/mm/numa_32.c 2009-07-24 17:47:51.000000000 -0400 |
15153 | +++ linux-2.6.29.6/arch/x86/mm/numa_32.c 2009-07-23 17:34:32.087725848 -0400 | 15252 | +++ linux-2.6.30.4/arch/x86/mm/numa_32.c 2009-07-30 09:48:09.974436034 -0400 |
15154 | @@ -98,7 +98,6 @@ unsigned long node_memmap_size_bytes(int | 15253 | @@ -98,7 +98,6 @@ unsigned long node_memmap_size_bytes(int |
15155 | } | 15254 | } |
15156 | #endif | 15255 | #endif |
@@ -15159,10 +15258,10 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/numa_32.c linux-2.6.29.6/arch/x86/mm/numa_ | |||
15159 | extern unsigned long highend_pfn, highstart_pfn; | 15258 | extern unsigned long highend_pfn, highstart_pfn; |
15160 | 15259 | ||
15161 | #define LARGE_PAGE_BYTES (PTRS_PER_PTE * PAGE_SIZE) | 15260 | #define LARGE_PAGE_BYTES (PTRS_PER_PTE * PAGE_SIZE) |
15162 | diff -urNp linux-2.6.29.6/arch/x86/mm/pageattr.c linux-2.6.29.6/arch/x86/mm/pageattr.c | 15261 | diff -urNp linux-2.6.30.4/arch/x86/mm/pageattr.c linux-2.6.30.4/arch/x86/mm/pageattr.c |
15163 | --- linux-2.6.29.6/arch/x86/mm/pageattr.c 2009-07-02 19:41:20.000000000 -0400 | 15262 | --- linux-2.6.30.4/arch/x86/mm/pageattr.c 2009-07-24 17:47:51.000000000 -0400 |
15164 | +++ linux-2.6.29.6/arch/x86/mm/pageattr.c 2009-07-23 17:34:32.087725848 -0400 | 15263 | +++ linux-2.6.30.4/arch/x86/mm/pageattr.c 2009-07-30 09:48:09.974436034 -0400 |
15165 | @@ -20,6 +20,7 @@ | 15264 | @@ -21,6 +21,7 @@ |
15166 | #include <asm/pgalloc.h> | 15265 | #include <asm/pgalloc.h> |
15167 | #include <asm/proto.h> | 15266 | #include <asm/proto.h> |
15168 | #include <asm/pat.h> | 15267 | #include <asm/pat.h> |
@@ -15170,7 +15269,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/pageattr.c linux-2.6.29.6/arch/x86/mm/page | |||
15170 | 15269 | ||
15171 | /* | 15270 | /* |
15172 | * The current flushing context - we pass it instead of 5 arguments: | 15271 | * The current flushing context - we pass it instead of 5 arguments: |
15173 | @@ -259,9 +260,10 @@ static inline pgprot_t static_protection | 15272 | @@ -265,9 +266,10 @@ static inline pgprot_t static_protection |
15174 | * Does not cover __inittext since that is gone later on. On | 15273 | * Does not cover __inittext since that is gone later on. On |
15175 | * 64bit we do not enforce !NX on the low mapping | 15274 | * 64bit we do not enforce !NX on the low mapping |
15176 | */ | 15275 | */ |
@@ -15182,7 +15281,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/pageattr.c linux-2.6.29.6/arch/x86/mm/page | |||
15182 | /* | 15281 | /* |
15183 | * The .rodata section needs to be read-only. Using the pfn | 15282 | * The .rodata section needs to be read-only. Using the pfn |
15184 | * catches all aliases. | 15283 | * catches all aliases. |
15185 | @@ -269,6 +271,7 @@ static inline pgprot_t static_protection | 15284 | @@ -275,6 +277,7 @@ static inline pgprot_t static_protection |
15186 | if (within(pfn, __pa((unsigned long)__start_rodata) >> PAGE_SHIFT, | 15285 | if (within(pfn, __pa((unsigned long)__start_rodata) >> PAGE_SHIFT, |
15187 | __pa((unsigned long)__end_rodata) >> PAGE_SHIFT)) | 15286 | __pa((unsigned long)__end_rodata) >> PAGE_SHIFT)) |
15188 | pgprot_val(forbidden) |= _PAGE_RW; | 15287 | pgprot_val(forbidden) |= _PAGE_RW; |
@@ -15190,7 +15289,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/pageattr.c linux-2.6.29.6/arch/x86/mm/page | |||
15190 | 15289 | ||
15191 | prot = __pgprot(pgprot_val(prot) & ~pgprot_val(forbidden)); | 15290 | prot = __pgprot(pgprot_val(prot) & ~pgprot_val(forbidden)); |
15192 | 15291 | ||
15193 | @@ -321,8 +324,20 @@ EXPORT_SYMBOL_GPL(lookup_address); | 15292 | @@ -327,8 +330,20 @@ EXPORT_SYMBOL_GPL(lookup_address); |
15194 | */ | 15293 | */ |
15195 | static void __set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte) | 15294 | static void __set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte) |
15196 | { | 15295 | { |
@@ -15211,9 +15310,9 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/pageattr.c linux-2.6.29.6/arch/x86/mm/page | |||
15211 | #ifdef CONFIG_X86_32 | 15310 | #ifdef CONFIG_X86_32 |
15212 | if (!SHARED_KERNEL_PMD) { | 15311 | if (!SHARED_KERNEL_PMD) { |
15213 | struct page *page; | 15312 | struct page *page; |
15214 | diff -urNp linux-2.6.29.6/arch/x86/mm/pageattr-test.c linux-2.6.29.6/arch/x86/mm/pageattr-test.c | 15313 | diff -urNp linux-2.6.30.4/arch/x86/mm/pageattr-test.c linux-2.6.30.4/arch/x86/mm/pageattr-test.c |
15215 | --- linux-2.6.29.6/arch/x86/mm/pageattr-test.c 2009-07-02 19:41:20.000000000 -0400 | 15314 | --- linux-2.6.30.4/arch/x86/mm/pageattr-test.c 2009-07-24 17:47:51.000000000 -0400 |
15216 | +++ linux-2.6.29.6/arch/x86/mm/pageattr-test.c 2009-07-23 17:34:32.088730317 -0400 | 15315 | +++ linux-2.6.30.4/arch/x86/mm/pageattr-test.c 2009-07-30 09:48:09.974436034 -0400 |
15217 | @@ -36,7 +36,7 @@ enum { | 15316 | @@ -36,7 +36,7 @@ enum { |
15218 | 15317 | ||
15219 | static int pte_testbit(pte_t pte) | 15318 | static int pte_testbit(pte_t pte) |
@@ -15223,10 +15322,10 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/pageattr-test.c linux-2.6.29.6/arch/x86/mm | |||
15223 | } | 15322 | } |
15224 | 15323 | ||
15225 | struct split_state { | 15324 | struct split_state { |
15226 | diff -urNp linux-2.6.29.6/arch/x86/mm/pat.c linux-2.6.29.6/arch/x86/mm/pat.c | 15325 | diff -urNp linux-2.6.30.4/arch/x86/mm/pat.c linux-2.6.30.4/arch/x86/mm/pat.c |
15227 | --- linux-2.6.29.6/arch/x86/mm/pat.c 2009-07-02 19:41:20.000000000 -0400 | 15326 | --- linux-2.6.30.4/arch/x86/mm/pat.c 2009-07-24 17:47:51.000000000 -0400 |
15228 | +++ linux-2.6.29.6/arch/x86/mm/pat.c 2009-07-23 18:40:27.466429820 -0400 | 15327 | +++ linux-2.6.30.4/arch/x86/mm/pat.c 2009-07-30 09:48:09.975412278 -0400 |
15229 | @@ -204,7 +204,7 @@ chk_conflict(struct memtype *new, struct | 15328 | @@ -213,7 +213,7 @@ chk_conflict(struct memtype *new, struct |
15230 | 15329 | ||
15231 | conflict: | 15330 | conflict: |
15232 | printk(KERN_INFO "%s:%d conflicting memory types " | 15331 | printk(KERN_INFO "%s:%d conflicting memory types " |
@@ -15235,7 +15334,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/pat.c linux-2.6.29.6/arch/x86/mm/pat.c | |||
15235 | new->end, cattr_name(new->type), cattr_name(entry->type)); | 15334 | new->end, cattr_name(new->type), cattr_name(entry->type)); |
15236 | return -EBUSY; | 15335 | return -EBUSY; |
15237 | } | 15336 | } |
15238 | @@ -488,7 +488,7 @@ int free_memtype(u64 start, u64 end) | 15337 | @@ -487,7 +487,7 @@ int free_memtype(u64 start, u64 end) |
15239 | 15338 | ||
15240 | if (err) { | 15339 | if (err) { |
15241 | printk(KERN_INFO "%s:%d freeing invalid memtype %Lx-%Lx\n", | 15340 | printk(KERN_INFO "%s:%d freeing invalid memtype %Lx-%Lx\n", |
@@ -15244,25 +15343,16 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/pat.c linux-2.6.29.6/arch/x86/mm/pat.c | |||
15244 | } | 15343 | } |
15245 | 15344 | ||
15246 | dprintk("free_memtype request 0x%Lx-0x%Lx\n", start, end); | 15345 | dprintk("free_memtype request 0x%Lx-0x%Lx\n", start, end); |
15247 | @@ -590,7 +590,7 @@ int phys_mem_access_prot_allowed(struct | 15346 | @@ -588,7 +588,7 @@ int kernel_map_sync_memtype(u64 base, un |
15248 | free_memtype(offset, offset + size); | ||
15249 | printk(KERN_INFO | 15347 | printk(KERN_INFO |
15250 | "%s:%d /dev/mem ioremap_change_attr failed %s for %Lx-%Lx\n", | 15348 | "%s:%d ioremap_change_attr failed %s " |
15349 | "for %Lx-%Lx\n", | ||
15251 | - current->comm, current->pid, | 15350 | - current->comm, current->pid, |
15252 | + current->comm, task_pid_nr(current), | 15351 | + current->comm, task_pid_nr(current), |
15253 | cattr_name(flags), | 15352 | cattr_name(flags), |
15254 | offset, (unsigned long long)(offset + size)); | 15353 | base, (unsigned long long)(base + size)); |
15255 | return 0; | 15354 | return -EINVAL; |
15256 | @@ -611,7 +611,7 @@ void map_devmem(unsigned long pfn, unsig | 15355 | @@ -627,7 +627,7 @@ static int reserve_pfn_range(u64 paddr, |
15257 | if (flags != want_flags) { | ||
15258 | printk(KERN_INFO | ||
15259 | "%s:%d /dev/mem expected mapping type %s for %Lx-%Lx, got %s\n", | ||
15260 | - current->comm, current->pid, | ||
15261 | + current->comm, task_pid_nr(current), | ||
15262 | cattr_name(want_flags), | ||
15263 | addr, (unsigned long long)(addr + size), | ||
15264 | cattr_name(flags)); | ||
15265 | @@ -656,7 +656,7 @@ static int reserve_pfn_range(u64 paddr, | ||
15266 | free_memtype(paddr, paddr + size); | 15356 | free_memtype(paddr, paddr + size); |
15267 | printk(KERN_ERR "%s:%d map pfn expected mapping type %s" | 15357 | printk(KERN_ERR "%s:%d map pfn expected mapping type %s" |
15268 | " for %Lx-%Lx, got %s\n", | 15358 | " for %Lx-%Lx, got %s\n", |
@@ -15271,16 +15361,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/pat.c linux-2.6.29.6/arch/x86/mm/pat.c | |||
15271 | cattr_name(want_flags), | 15361 | cattr_name(want_flags), |
15272 | (unsigned long long)paddr, | 15362 | (unsigned long long)paddr, |
15273 | (unsigned long long)(paddr + size), | 15363 | (unsigned long long)(paddr + size), |
15274 | @@ -685,7 +685,7 @@ static int reserve_pfn_range(u64 paddr, | 15364 | @@ -826,7 +826,7 @@ static int memtype_seq_show(struct seq_f |
15275 | printk(KERN_ERR | ||
15276 | "%s:%d reserve_pfn_range ioremap_change_attr failed %s " | ||
15277 | "for %Lx-%Lx\n", | ||
15278 | - current->comm, current->pid, | ||
15279 | + current->comm, task_pid_nr(current), | ||
15280 | cattr_name(flags), | ||
15281 | (unsigned long long)paddr, | ||
15282 | (unsigned long long)(paddr + size)); | ||
15283 | @@ -870,7 +870,7 @@ static int memtype_seq_show(struct seq_f | ||
15284 | return 0; | 15365 | return 0; |
15285 | } | 15366 | } |
15286 | 15367 | ||
@@ -15289,10 +15370,10 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/pat.c linux-2.6.29.6/arch/x86/mm/pat.c | |||
15289 | .start = memtype_seq_start, | 15370 | .start = memtype_seq_start, |
15290 | .next = memtype_seq_next, | 15371 | .next = memtype_seq_next, |
15291 | .stop = memtype_seq_stop, | 15372 | .stop = memtype_seq_stop, |
15292 | diff -urNp linux-2.6.29.6/arch/x86/mm/pgtable_32.c linux-2.6.29.6/arch/x86/mm/pgtable_32.c | 15373 | diff -urNp linux-2.6.30.4/arch/x86/mm/pgtable_32.c linux-2.6.30.4/arch/x86/mm/pgtable_32.c |
15293 | --- linux-2.6.29.6/arch/x86/mm/pgtable_32.c 2009-07-02 19:41:20.000000000 -0400 | 15374 | --- linux-2.6.30.4/arch/x86/mm/pgtable_32.c 2009-07-24 17:47:51.000000000 -0400 |
15294 | +++ linux-2.6.29.6/arch/x86/mm/pgtable_32.c 2009-07-23 17:34:32.088730317 -0400 | 15375 | +++ linux-2.6.30.4/arch/x86/mm/pgtable_32.c 2009-07-30 09:48:09.975412278 -0400 |
15295 | @@ -31,6 +31,10 @@ void set_pte_vaddr(unsigned long vaddr, | 15376 | @@ -33,6 +33,10 @@ void set_pte_vaddr(unsigned long vaddr, |
15296 | pmd_t *pmd; | 15377 | pmd_t *pmd; |
15297 | pte_t *pte; | 15378 | pte_t *pte; |
15298 | 15379 | ||
@@ -15303,7 +15384,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/pgtable_32.c linux-2.6.29.6/arch/x86/mm/pg | |||
15303 | pgd = swapper_pg_dir + pgd_index(vaddr); | 15384 | pgd = swapper_pg_dir + pgd_index(vaddr); |
15304 | if (pgd_none(*pgd)) { | 15385 | if (pgd_none(*pgd)) { |
15305 | BUG(); | 15386 | BUG(); |
15306 | @@ -47,11 +51,20 @@ void set_pte_vaddr(unsigned long vaddr, | 15387 | @@ -49,11 +53,20 @@ void set_pte_vaddr(unsigned long vaddr, |
15307 | return; | 15388 | return; |
15308 | } | 15389 | } |
15309 | pte = pte_offset_kernel(pmd, vaddr); | 15390 | pte = pte_offset_kernel(pmd, vaddr); |
@@ -15313,7 +15394,7 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/pgtable_32.c linux-2.6.29.6/arch/x86/mm/pg | |||
15313 | +#endif | 15394 | +#endif |
15314 | + | 15395 | + |
15315 | if (pte_val(pteval)) | 15396 | if (pte_val(pteval)) |
15316 | set_pte_present(&init_mm, vaddr, pte, pteval); | 15397 | set_pte_at(&init_mm, vaddr, pte, pteval); |
15317 | else | 15398 | else |
15318 | pte_clear(&init_mm, vaddr, pte); | 15399 | pte_clear(&init_mm, vaddr, pte); |
15319 | 15400 | ||
@@ -15324,9 +15405,21 @@ diff -urNp linux-2.6.29.6/arch/x86/mm/pgtable_32.c linux-2.6.29.6/arch/x86/mm/pg | |||
15324 | /* | 15405 | /* |
15325 | * It's enough to flush this one mapping. | 15406 | * It's enough to flush this one mapping. |
15326 | * (PGE mappings get flushed as well) | 15407 | * (PGE mappings get flushed as well) |
15327 | diff -urNp linux-2.6.29.6/arch/x86/oprofile/backtrace.c linux-2.6.29.6/arch/x86/oprofile/backtrace.c | 15408 | diff -urNp linux-2.6.30.4/arch/x86/mm/tlb.c linux-2.6.30.4/arch/x86/mm/tlb.c |
15328 | --- linux-2.6.29.6/arch/x86/oprofile/backtrace.c 2009-07-02 19:41:20.000000000 -0400 | 15409 | --- linux-2.6.30.4/arch/x86/mm/tlb.c 2009-07-24 17:47:51.000000000 -0400 |
15329 | +++ linux-2.6.29.6/arch/x86/oprofile/backtrace.c 2009-07-23 17:34:32.088730317 -0400 | 15410 | +++ linux-2.6.30.4/arch/x86/mm/tlb.c 2009-07-30 09:48:09.975412278 -0400 |
15411 | @@ -12,7 +12,7 @@ | ||
15412 | #include <asm/uv/uv.h> | ||
15413 | |||
15414 | DEFINE_PER_CPU_SHARED_ALIGNED(struct tlb_state, cpu_tlbstate) | ||
15415 | - = { &init_mm, 0, }; | ||
15416 | + = { &init_mm, 0 }; | ||
15417 | |||
15418 | /* | ||
15419 | * Smarter SMP flushing macros. | ||
15420 | diff -urNp linux-2.6.30.4/arch/x86/oprofile/backtrace.c linux-2.6.30.4/arch/x86/oprofile/backtrace.c | ||
15421 | --- linux-2.6.30.4/arch/x86/oprofile/backtrace.c 2009-07-24 17:47:51.000000000 -0400 | ||
15422 | +++ linux-2.6.30.4/arch/x86/oprofile/backtrace.c 2009-07-30 09:48:09.975412278 -0400 | ||
15330 | @@ -37,7 +37,7 @@ static void backtrace_address(void *data | 15423 | @@ -37,7 +37,7 @@ static void backtrace_address(void *data |
15331 | unsigned int *depth = data; | 15424 | unsigned int *depth = data; |
15332 | 15425 | ||
@@ -15336,18 +15429,18 @@ diff -urNp linux-2.6.29.6/arch/x86/oprofile/backtrace.c linux-2.6.29.6/arch/x86/ | |||
15336 | } | 15429 | } |
15337 | 15430 | ||
15338 | static struct stacktrace_ops backtrace_ops = { | 15431 | static struct stacktrace_ops backtrace_ops = { |
15339 | @@ -78,7 +78,7 @@ x86_backtrace(struct pt_regs * const reg | 15432 | @@ -77,7 +77,7 @@ x86_backtrace(struct pt_regs * const reg |
15433 | { | ||
15340 | struct frame_head *head = (struct frame_head *)frame_pointer(regs); | 15434 | struct frame_head *head = (struct frame_head *)frame_pointer(regs); |
15341 | unsigned long stack = kernel_trap_sp(regs); | ||
15342 | 15435 | ||
15343 | - if (!user_mode_vm(regs)) { | 15436 | - if (!user_mode_vm(regs)) { |
15344 | + if (!user_mode(regs)) { | 15437 | + if (!user_mode(regs)) { |
15438 | unsigned long stack = kernel_stack_pointer(regs); | ||
15345 | if (depth) | 15439 | if (depth) |
15346 | dump_trace(NULL, regs, (unsigned long *)stack, 0, | 15440 | dump_trace(NULL, regs, (unsigned long *)stack, 0, |
15347 | &backtrace_ops, &depth); | 15441 | diff -urNp linux-2.6.30.4/arch/x86/oprofile/op_model_p4.c linux-2.6.30.4/arch/x86/oprofile/op_model_p4.c |
15348 | diff -urNp linux-2.6.29.6/arch/x86/oprofile/op_model_p4.c linux-2.6.29.6/arch/x86/oprofile/op_model_p4.c | 15442 | --- linux-2.6.30.4/arch/x86/oprofile/op_model_p4.c 2009-07-24 17:47:51.000000000 -0400 |
15349 | --- linux-2.6.29.6/arch/x86/oprofile/op_model_p4.c 2009-07-02 19:41:20.000000000 -0400 | 15443 | +++ linux-2.6.30.4/arch/x86/oprofile/op_model_p4.c 2009-07-30 09:48:09.976413155 -0400 |
15350 | +++ linux-2.6.29.6/arch/x86/oprofile/op_model_p4.c 2009-07-23 17:34:32.089719706 -0400 | ||
15351 | @@ -48,7 +48,7 @@ static inline void setup_num_counters(vo | 15444 | @@ -48,7 +48,7 @@ static inline void setup_num_counters(vo |
15352 | #endif | 15445 | #endif |
15353 | } | 15446 | } |
@@ -15357,10 +15450,10 @@ diff -urNp linux-2.6.29.6/arch/x86/oprofile/op_model_p4.c linux-2.6.29.6/arch/x8 | |||
15357 | { | 15450 | { |
15358 | #ifdef CONFIG_SMP | 15451 | #ifdef CONFIG_SMP |
15359 | return smp_num_siblings == 2 ? 2 : 1; | 15452 | return smp_num_siblings == 2 ? 2 : 1; |
15360 | diff -urNp linux-2.6.29.6/arch/x86/pci/common.c linux-2.6.29.6/arch/x86/pci/common.c | 15453 | diff -urNp linux-2.6.30.4/arch/x86/pci/common.c linux-2.6.30.4/arch/x86/pci/common.c |
15361 | --- linux-2.6.29.6/arch/x86/pci/common.c 2009-07-02 19:41:20.000000000 -0400 | 15454 | --- linux-2.6.30.4/arch/x86/pci/common.c 2009-07-24 17:47:51.000000000 -0400 |
15362 | +++ linux-2.6.29.6/arch/x86/pci/common.c 2009-07-23 17:34:32.089719706 -0400 | 15455 | +++ linux-2.6.30.4/arch/x86/pci/common.c 2009-07-30 09:48:09.976413155 -0400 |
15363 | @@ -367,7 +367,7 @@ static struct dmi_system_id __devinitdat | 15456 | @@ -370,7 +370,7 @@ static const struct dmi_system_id __devi |
15364 | DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL585 G2"), | 15457 | DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL585 G2"), |
15365 | }, | 15458 | }, |
15366 | }, | 15459 | }, |
@@ -15369,10 +15462,10 @@ diff -urNp linux-2.6.29.6/arch/x86/pci/common.c linux-2.6.29.6/arch/x86/pci/comm | |||
15369 | }; | 15462 | }; |
15370 | 15463 | ||
15371 | void __init dmi_check_pciprobe(void) | 15464 | void __init dmi_check_pciprobe(void) |
15372 | diff -urNp linux-2.6.29.6/arch/x86/pci/fixup.c linux-2.6.29.6/arch/x86/pci/fixup.c | 15465 | diff -urNp linux-2.6.30.4/arch/x86/pci/fixup.c linux-2.6.30.4/arch/x86/pci/fixup.c |
15373 | --- linux-2.6.29.6/arch/x86/pci/fixup.c 2009-07-02 19:41:20.000000000 -0400 | 15466 | --- linux-2.6.30.4/arch/x86/pci/fixup.c 2009-07-24 17:47:51.000000000 -0400 |
15374 | +++ linux-2.6.29.6/arch/x86/pci/fixup.c 2009-07-23 17:34:32.089719706 -0400 | 15467 | +++ linux-2.6.30.4/arch/x86/pci/fixup.c 2009-07-30 09:48:09.976413155 -0400 |
15375 | @@ -364,7 +364,7 @@ static struct dmi_system_id __devinitdat | 15468 | @@ -364,7 +364,7 @@ static const struct dmi_system_id __devi |
15376 | DMI_MATCH(DMI_PRODUCT_NAME, "MS-6702E"), | 15469 | DMI_MATCH(DMI_PRODUCT_NAME, "MS-6702E"), |
15377 | }, | 15470 | }, |
15378 | }, | 15471 | }, |
@@ -15381,7 +15474,7 @@ diff -urNp linux-2.6.29.6/arch/x86/pci/fixup.c linux-2.6.29.6/arch/x86/pci/fixup | |||
15381 | }; | 15474 | }; |
15382 | 15475 | ||
15383 | /* | 15476 | /* |
15384 | @@ -435,7 +435,7 @@ static struct dmi_system_id __devinitdat | 15477 | @@ -435,7 +435,7 @@ static const struct dmi_system_id __devi |
15385 | DMI_MATCH(DMI_PRODUCT_VERSION, "PSA40U"), | 15478 | DMI_MATCH(DMI_PRODUCT_VERSION, "PSA40U"), |
15386 | }, | 15479 | }, |
15387 | }, | 15480 | }, |
@@ -15390,21 +15483,21 @@ diff -urNp linux-2.6.29.6/arch/x86/pci/fixup.c linux-2.6.29.6/arch/x86/pci/fixup | |||
15390 | }; | 15483 | }; |
15391 | 15484 | ||
15392 | static void __devinit pci_pre_fixup_toshiba_ohci1394(struct pci_dev *dev) | 15485 | static void __devinit pci_pre_fixup_toshiba_ohci1394(struct pci_dev *dev) |
15393 | diff -urNp linux-2.6.29.6/arch/x86/pci/i386.c linux-2.6.29.6/arch/x86/pci/i386.c | 15486 | diff -urNp linux-2.6.30.4/arch/x86/pci/i386.c linux-2.6.30.4/arch/x86/pci/i386.c |
15394 | --- linux-2.6.29.6/arch/x86/pci/i386.c 2009-07-02 19:41:20.000000000 -0400 | 15487 | --- linux-2.6.30.4/arch/x86/pci/i386.c 2009-07-30 20:32:40.384629006 -0400 |
15395 | +++ linux-2.6.29.6/arch/x86/pci/i386.c 2009-07-23 18:40:27.495305970 -0400 | 15488 | +++ linux-2.6.30.4/arch/x86/pci/i386.c 2009-07-30 20:32:47.941604516 -0400 |
15396 | @@ -273,7 +273,7 @@ static void pci_track_mmap_page_range(st | 15489 | @@ -269,7 +269,7 @@ void pcibios_set_master(struct pci_dev * |
15397 | reserve_memtype(addr, addr + vma->vm_end - vma->vm_start, flags, NULL); | 15490 | pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat); |
15398 | } | 15491 | } |
15399 | 15492 | ||
15400 | -static struct vm_operations_struct pci_mmap_ops = { | 15493 | -static struct vm_operations_struct pci_mmap_ops = { |
15401 | +static const struct vm_operations_struct pci_mmap_ops = { | 15494 | +static const struct vm_operations_struct pci_mmap_ops = { |
15402 | .open = pci_track_mmap_page_range, | ||
15403 | .close = pci_unmap_page_range, | ||
15404 | .access = generic_access_phys, | 15495 | .access = generic_access_phys, |
15405 | diff -urNp linux-2.6.29.6/arch/x86/pci/irq.c linux-2.6.29.6/arch/x86/pci/irq.c | 15496 | }; |
15406 | --- linux-2.6.29.6/arch/x86/pci/irq.c 2009-07-02 19:41:20.000000000 -0400 | 15497 | |
15407 | +++ linux-2.6.29.6/arch/x86/pci/irq.c 2009-07-23 17:34:32.089719706 -0400 | 15498 | diff -urNp linux-2.6.30.4/arch/x86/pci/irq.c linux-2.6.30.4/arch/x86/pci/irq.c |
15499 | --- linux-2.6.30.4/arch/x86/pci/irq.c 2009-07-24 17:47:51.000000000 -0400 | ||
15500 | +++ linux-2.6.30.4/arch/x86/pci/irq.c 2009-07-30 09:48:09.976413155 -0400 | ||
15408 | @@ -543,7 +543,7 @@ static __init int intel_router_probe(str | 15501 | @@ -543,7 +543,7 @@ static __init int intel_router_probe(str |
15409 | static struct pci_device_id __initdata pirq_440gx[] = { | 15502 | static struct pci_device_id __initdata pirq_440gx[] = { |
15410 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443GX_0) }, | 15503 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443GX_0) }, |
@@ -15423,9 +15516,9 @@ diff -urNp linux-2.6.29.6/arch/x86/pci/irq.c linux-2.6.29.6/arch/x86/pci/irq.c | |||
15423 | }; | 15516 | }; |
15424 | 15517 | ||
15425 | int __init pcibios_irq_init(void) | 15518 | int __init pcibios_irq_init(void) |
15426 | diff -urNp linux-2.6.29.6/arch/x86/pci/pcbios.c linux-2.6.29.6/arch/x86/pci/pcbios.c | 15519 | diff -urNp linux-2.6.30.4/arch/x86/pci/pcbios.c linux-2.6.30.4/arch/x86/pci/pcbios.c |
15427 | --- linux-2.6.29.6/arch/x86/pci/pcbios.c 2009-07-02 19:41:20.000000000 -0400 | 15520 | --- linux-2.6.30.4/arch/x86/pci/pcbios.c 2009-07-24 17:47:51.000000000 -0400 |
15428 | +++ linux-2.6.29.6/arch/x86/pci/pcbios.c 2009-07-23 17:34:32.090717052 -0400 | 15521 | +++ linux-2.6.30.4/arch/x86/pci/pcbios.c 2009-07-30 09:48:09.976413155 -0400 |
15429 | @@ -56,50 +56,120 @@ union bios32 { | 15522 | @@ -56,50 +56,120 @@ union bios32 { |
15430 | static struct { | 15523 | static struct { |
15431 | unsigned long address; | 15524 | unsigned long address; |
@@ -15757,10 +15850,10 @@ diff -urNp linux-2.6.29.6/arch/x86/pci/pcbios.c linux-2.6.29.6/arch/x86/pci/pcbi | |||
15757 | return !(ret & 0xff00); | 15850 | return !(ret & 0xff00); |
15758 | } | 15851 | } |
15759 | EXPORT_SYMBOL(pcibios_set_irq_routing); | 15852 | EXPORT_SYMBOL(pcibios_set_irq_routing); |
15760 | diff -urNp linux-2.6.29.6/arch/x86/power/cpu_32.c linux-2.6.29.6/arch/x86/power/cpu_32.c | 15853 | diff -urNp linux-2.6.30.4/arch/x86/power/cpu_32.c linux-2.6.30.4/arch/x86/power/cpu_32.c |
15761 | --- linux-2.6.29.6/arch/x86/power/cpu_32.c 2009-07-02 19:41:20.000000000 -0400 | 15854 | --- linux-2.6.30.4/arch/x86/power/cpu_32.c 2009-07-24 17:47:51.000000000 -0400 |
15762 | +++ linux-2.6.29.6/arch/x86/power/cpu_32.c 2009-07-23 17:34:32.090717052 -0400 | 15855 | +++ linux-2.6.30.4/arch/x86/power/cpu_32.c 2009-07-30 09:48:09.976413155 -0400 |
15763 | @@ -67,7 +67,7 @@ static void do_fpu_end(void) | 15856 | @@ -68,7 +68,7 @@ static void do_fpu_end(void) |
15764 | static void fix_processor_context(void) | 15857 | static void fix_processor_context(void) |
15765 | { | 15858 | { |
15766 | int cpu = smp_processor_id(); | 15859 | int cpu = smp_processor_id(); |
@@ -15769,10 +15862,10 @@ diff -urNp linux-2.6.29.6/arch/x86/power/cpu_32.c linux-2.6.29.6/arch/x86/power/ | |||
15769 | 15862 | ||
15770 | set_tss_desc(cpu, t); /* | 15863 | set_tss_desc(cpu, t); /* |
15771 | * This just modifies memory; should not be | 15864 | * This just modifies memory; should not be |
15772 | diff -urNp linux-2.6.29.6/arch/x86/power/cpu_64.c linux-2.6.29.6/arch/x86/power/cpu_64.c | 15865 | diff -urNp linux-2.6.30.4/arch/x86/power/cpu_64.c linux-2.6.30.4/arch/x86/power/cpu_64.c |
15773 | --- linux-2.6.29.6/arch/x86/power/cpu_64.c 2009-07-02 19:41:20.000000000 -0400 | 15866 | --- linux-2.6.30.4/arch/x86/power/cpu_64.c 2009-07-24 17:47:51.000000000 -0400 |
15774 | +++ linux-2.6.29.6/arch/x86/power/cpu_64.c 2009-07-23 17:34:32.090717052 -0400 | 15867 | +++ linux-2.6.30.4/arch/x86/power/cpu_64.c 2009-07-30 09:48:09.978339754 -0400 |
15775 | @@ -143,7 +143,11 @@ void restore_processor_state(void) | 15868 | @@ -144,7 +144,11 @@ void restore_processor_state(void) |
15776 | static void fix_processor_context(void) | 15869 | static void fix_processor_context(void) |
15777 | { | 15870 | { |
15778 | int cpu = smp_processor_id(); | 15871 | int cpu = smp_processor_id(); |
@@ -15785,7 +15878,7 @@ diff -urNp linux-2.6.29.6/arch/x86/power/cpu_64.c linux-2.6.29.6/arch/x86/power/ | |||
15785 | 15878 | ||
15786 | /* | 15879 | /* |
15787 | * This just modifies memory; should not be necessary. But... This | 15880 | * This just modifies memory; should not be necessary. But... This |
15788 | @@ -152,8 +156,16 @@ static void fix_processor_context(void) | 15881 | @@ -153,8 +157,16 @@ static void fix_processor_context(void) |
15789 | */ | 15882 | */ |
15790 | set_tss_desc(cpu, t); | 15883 | set_tss_desc(cpu, t); |
15791 | 15884 | ||
@@ -15802,9 +15895,9 @@ diff -urNp linux-2.6.29.6/arch/x86/power/cpu_64.c linux-2.6.29.6/arch/x86/power/ | |||
15802 | syscall_init(); /* This sets MSR_*STAR and related */ | 15895 | syscall_init(); /* This sets MSR_*STAR and related */ |
15803 | load_TR_desc(); /* This does ltr */ | 15896 | load_TR_desc(); /* This does ltr */ |
15804 | load_LDT(¤t->active_mm->context); /* This does lldt */ | 15897 | load_LDT(¤t->active_mm->context); /* This does lldt */ |
15805 | diff -urNp linux-2.6.29.6/arch/x86/vdso/Makefile linux-2.6.29.6/arch/x86/vdso/Makefile | 15898 | diff -urNp linux-2.6.30.4/arch/x86/vdso/Makefile linux-2.6.30.4/arch/x86/vdso/Makefile |
15806 | --- linux-2.6.29.6/arch/x86/vdso/Makefile 2009-07-02 19:41:20.000000000 -0400 | 15899 | --- linux-2.6.30.4/arch/x86/vdso/Makefile 2009-07-24 17:47:51.000000000 -0400 |
15807 | +++ linux-2.6.29.6/arch/x86/vdso/Makefile 2009-07-23 17:34:32.090717052 -0400 | 15900 | +++ linux-2.6.30.4/arch/x86/vdso/Makefile 2009-07-30 09:48:09.978339754 -0400 |
15808 | @@ -122,7 +122,7 @@ quiet_cmd_vdso = VDSO $@ | 15901 | @@ -122,7 +122,7 @@ quiet_cmd_vdso = VDSO $@ |
15809 | $(VDSO_LDFLAGS) $(VDSO_LDFLAGS_$(filter %.lds,$(^F))) \ | 15902 | $(VDSO_LDFLAGS) $(VDSO_LDFLAGS_$(filter %.lds,$(^F))) \ |
15810 | -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) | 15903 | -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) |
@@ -15814,9 +15907,9 @@ diff -urNp linux-2.6.29.6/arch/x86/vdso/Makefile linux-2.6.29.6/arch/x86/vdso/Ma | |||
15814 | 15907 | ||
15815 | # | 15908 | # |
15816 | # Install the unstripped copy of vdso*.so listed in $(vdso-install-y). | 15909 | # Install the unstripped copy of vdso*.so listed in $(vdso-install-y). |
15817 | diff -urNp linux-2.6.29.6/arch/x86/vdso/vclock_gettime.c linux-2.6.29.6/arch/x86/vdso/vclock_gettime.c | 15910 | diff -urNp linux-2.6.30.4/arch/x86/vdso/vclock_gettime.c linux-2.6.30.4/arch/x86/vdso/vclock_gettime.c |
15818 | --- linux-2.6.29.6/arch/x86/vdso/vclock_gettime.c 2009-07-02 19:41:20.000000000 -0400 | 15911 | --- linux-2.6.30.4/arch/x86/vdso/vclock_gettime.c 2009-07-24 17:47:51.000000000 -0400 |
15819 | +++ linux-2.6.29.6/arch/x86/vdso/vclock_gettime.c 2009-07-23 17:34:32.091740281 -0400 | 15912 | +++ linux-2.6.30.4/arch/x86/vdso/vclock_gettime.c 2009-07-30 09:48:09.978662746 -0400 |
15820 | @@ -26,20 +26,43 @@ | 15913 | @@ -26,20 +26,43 @@ |
15821 | 15914 | ||
15822 | #define gtod vdso_vsyscall_gtod_data | 15915 | #define gtod vdso_vsyscall_gtod_data |
@@ -15896,10 +15989,10 @@ diff -urNp linux-2.6.29.6/arch/x86/vdso/vclock_gettime.c linux-2.6.29.6/arch/x86 | |||
15896 | + ((gtod->clock.name[0] == 'h' && gtod->clock.name[1] == 'p' && gtod->clock.name[2] == 'e' && gtod->clock.name[3] == 't' && !gtod->clock.name[4]) || | 15989 | + ((gtod->clock.name[0] == 'h' && gtod->clock.name[1] == 'p' && gtod->clock.name[2] == 'e' && gtod->clock.name[3] == 't' && !gtod->clock.name[4]) || |
15897 | + (gtod->clock.name[0] == 't' && gtod->clock.name[1] == 's' && gtod->clock.name[2] == 'c' && !gtod->clock.name[3])))) | 15990 | + (gtod->clock.name[0] == 't' && gtod->clock.name[1] == 's' && gtod->clock.name[2] == 'c' && !gtod->clock.name[3])))) |
15898 | + { | 15991 | + { |
15899 | BUILD_BUG_ON(offsetof(struct timeval, tv_usec) != | 15992 | if (likely(tv != NULL)) { |
15900 | offsetof(struct timespec, tv_nsec) || | 15993 | BUILD_BUG_ON(offsetof(struct timeval, tv_usec) != |
15901 | sizeof(*tv) != sizeof(struct timespec)); | 15994 | offsetof(struct timespec, tv_nsec) || |
15902 | @@ -116,9 +151,7 @@ notrace int __vdso_gettimeofday(struct t | 15995 | @@ -118,9 +153,7 @@ notrace int __vdso_gettimeofday(struct t |
15903 | } | 15996 | } |
15904 | return 0; | 15997 | return 0; |
15905 | } | 15998 | } |
@@ -15910,9 +16003,9 @@ diff -urNp linux-2.6.29.6/arch/x86/vdso/vclock_gettime.c linux-2.6.29.6/arch/x86 | |||
15910 | } | 16003 | } |
15911 | int gettimeofday(struct timeval *, struct timezone *) | 16004 | int gettimeofday(struct timeval *, struct timezone *) |
15912 | __attribute__((weak, alias("__vdso_gettimeofday"))); | 16005 | __attribute__((weak, alias("__vdso_gettimeofday"))); |
15913 | diff -urNp linux-2.6.29.6/arch/x86/vdso/vdso32-setup.c linux-2.6.29.6/arch/x86/vdso/vdso32-setup.c | 16006 | diff -urNp linux-2.6.30.4/arch/x86/vdso/vdso32-setup.c linux-2.6.30.4/arch/x86/vdso/vdso32-setup.c |
15914 | --- linux-2.6.29.6/arch/x86/vdso/vdso32-setup.c 2009-07-02 19:41:20.000000000 -0400 | 16007 | --- linux-2.6.30.4/arch/x86/vdso/vdso32-setup.c 2009-07-24 17:47:51.000000000 -0400 |
15915 | +++ linux-2.6.29.6/arch/x86/vdso/vdso32-setup.c 2009-07-23 17:34:32.091740281 -0400 | 16008 | +++ linux-2.6.30.4/arch/x86/vdso/vdso32-setup.c 2009-07-30 09:48:09.979439324 -0400 |
15916 | @@ -226,7 +226,7 @@ static inline void map_compat_vdso(int m | 16009 | @@ -226,7 +226,7 @@ static inline void map_compat_vdso(int m |
15917 | void enable_sep_cpu(void) | 16010 | void enable_sep_cpu(void) |
15918 | { | 16011 | { |
@@ -15992,9 +16085,9 @@ diff -urNp linux-2.6.29.6/arch/x86/vdso/vdso32-setup.c linux-2.6.29.6/arch/x86/v | |||
15992 | return &gate_vma; | 16085 | return &gate_vma; |
15993 | return NULL; | 16086 | return NULL; |
15994 | } | 16087 | } |
15995 | diff -urNp linux-2.6.29.6/arch/x86/vdso/vdso.lds.S linux-2.6.29.6/arch/x86/vdso/vdso.lds.S | 16088 | diff -urNp linux-2.6.30.4/arch/x86/vdso/vdso.lds.S linux-2.6.30.4/arch/x86/vdso/vdso.lds.S |
15996 | --- linux-2.6.29.6/arch/x86/vdso/vdso.lds.S 2009-07-02 19:41:20.000000000 -0400 | 16089 | --- linux-2.6.30.4/arch/x86/vdso/vdso.lds.S 2009-07-24 17:47:51.000000000 -0400 |
15997 | +++ linux-2.6.29.6/arch/x86/vdso/vdso.lds.S 2009-07-23 17:34:32.091740281 -0400 | 16090 | +++ linux-2.6.30.4/arch/x86/vdso/vdso.lds.S 2009-07-30 09:48:09.978662746 -0400 |
15998 | @@ -35,3 +35,9 @@ VDSO64_PRELINK = VDSO_PRELINK; | 16091 | @@ -35,3 +35,9 @@ VDSO64_PRELINK = VDSO_PRELINK; |
15999 | #define VEXTERN(x) VDSO64_ ## x = vdso_ ## x; | 16092 | #define VEXTERN(x) VDSO64_ ## x = vdso_ ## x; |
16000 | #include "vextern.h" | 16093 | #include "vextern.h" |
@@ -16005,9 +16098,9 @@ diff -urNp linux-2.6.29.6/arch/x86/vdso/vdso.lds.S linux-2.6.29.6/arch/x86/vdso/ | |||
16005 | +VEXTERN(fallback_time) | 16098 | +VEXTERN(fallback_time) |
16006 | +VEXTERN(getcpu) | 16099 | +VEXTERN(getcpu) |
16007 | +#undef VEXTERN | 16100 | +#undef VEXTERN |
16008 | diff -urNp linux-2.6.29.6/arch/x86/vdso/vextern.h linux-2.6.29.6/arch/x86/vdso/vextern.h | 16101 | diff -urNp linux-2.6.30.4/arch/x86/vdso/vextern.h linux-2.6.30.4/arch/x86/vdso/vextern.h |
16009 | --- linux-2.6.29.6/arch/x86/vdso/vextern.h 2009-07-02 19:41:20.000000000 -0400 | 16102 | --- linux-2.6.30.4/arch/x86/vdso/vextern.h 2009-07-24 17:47:51.000000000 -0400 |
16010 | +++ linux-2.6.29.6/arch/x86/vdso/vextern.h 2009-07-23 17:34:32.091740281 -0400 | 16103 | +++ linux-2.6.30.4/arch/x86/vdso/vextern.h 2009-07-30 09:48:09.979439324 -0400 |
16011 | @@ -11,6 +11,5 @@ | 16104 | @@ -11,6 +11,5 @@ |
16012 | put into vextern.h and be referenced as a pointer with vdso prefix. | 16105 | put into vextern.h and be referenced as a pointer with vdso prefix. |
16013 | The main kernel later fills in the values. */ | 16106 | The main kernel later fills in the values. */ |
@@ -16015,9 +16108,9 @@ diff -urNp linux-2.6.29.6/arch/x86/vdso/vextern.h linux-2.6.29.6/arch/x86/vdso/v | |||
16015 | -VEXTERN(jiffies) | 16108 | -VEXTERN(jiffies) |
16016 | VEXTERN(vgetcpu_mode) | 16109 | VEXTERN(vgetcpu_mode) |
16017 | VEXTERN(vsyscall_gtod_data) | 16110 | VEXTERN(vsyscall_gtod_data) |
16018 | diff -urNp linux-2.6.29.6/arch/x86/vdso/vma.c linux-2.6.29.6/arch/x86/vdso/vma.c | 16111 | diff -urNp linux-2.6.30.4/arch/x86/vdso/vma.c linux-2.6.30.4/arch/x86/vdso/vma.c |
16019 | --- linux-2.6.29.6/arch/x86/vdso/vma.c 2009-07-02 19:41:20.000000000 -0400 | 16112 | --- linux-2.6.30.4/arch/x86/vdso/vma.c 2009-07-24 17:47:51.000000000 -0400 |
16020 | +++ linux-2.6.29.6/arch/x86/vdso/vma.c 2009-07-23 17:34:37.458887026 -0400 | 16113 | +++ linux-2.6.30.4/arch/x86/vdso/vma.c 2009-07-30 09:48:09.979439324 -0400 |
16021 | @@ -8,6 +8,7 @@ | 16114 | @@ -8,6 +8,7 @@ |
16022 | #include <linux/sched.h> | 16115 | #include <linux/sched.h> |
16023 | #include <linux/init.h> | 16116 | #include <linux/init.h> |
@@ -16060,9 +16153,9 @@ diff -urNp linux-2.6.29.6/arch/x86/vdso/vma.c linux-2.6.29.6/arch/x86/vdso/vma.c | |||
16060 | - return 0; | 16153 | - return 0; |
16061 | -} | 16154 | -} |
16062 | -__setup("vdso=", vdso_setup); | 16155 | -__setup("vdso=", vdso_setup); |
16063 | diff -urNp linux-2.6.29.6/arch/x86/xen/debugfs.c linux-2.6.29.6/arch/x86/xen/debugfs.c | 16156 | diff -urNp linux-2.6.30.4/arch/x86/xen/debugfs.c linux-2.6.30.4/arch/x86/xen/debugfs.c |
16064 | --- linux-2.6.29.6/arch/x86/xen/debugfs.c 2009-07-02 19:41:20.000000000 -0400 | 16157 | --- linux-2.6.30.4/arch/x86/xen/debugfs.c 2009-07-24 17:47:51.000000000 -0400 |
16065 | +++ linux-2.6.29.6/arch/x86/xen/debugfs.c 2009-07-23 18:40:27.496274044 -0400 | 16158 | +++ linux-2.6.30.4/arch/x86/xen/debugfs.c 2009-07-30 09:48:09.979439324 -0400 |
16066 | @@ -100,7 +100,7 @@ static int xen_array_release(struct inod | 16159 | @@ -100,7 +100,7 @@ static int xen_array_release(struct inod |
16067 | return 0; | 16160 | return 0; |
16068 | } | 16161 | } |
@@ -16072,28 +16165,19 @@ diff -urNp linux-2.6.29.6/arch/x86/xen/debugfs.c linux-2.6.29.6/arch/x86/xen/deb | |||
16072 | .owner = THIS_MODULE, | 16165 | .owner = THIS_MODULE, |
16073 | .open = u32_array_open, | 16166 | .open = u32_array_open, |
16074 | .release= xen_array_release, | 16167 | .release= xen_array_release, |
16075 | diff -urNp linux-2.6.29.6/arch/x86/xen/enlighten.c linux-2.6.29.6/arch/x86/xen/enlighten.c | 16168 | diff -urNp linux-2.6.30.4/arch/x86/xen/enlighten.c linux-2.6.30.4/arch/x86/xen/enlighten.c |
16076 | --- linux-2.6.29.6/arch/x86/xen/enlighten.c 2009-07-02 19:41:20.000000000 -0400 | 16169 | --- linux-2.6.30.4/arch/x86/xen/enlighten.c 2009-07-24 17:47:51.000000000 -0400 |
16077 | +++ linux-2.6.29.6/arch/x86/xen/enlighten.c 2009-07-23 17:34:32.092715999 -0400 | 16170 | +++ linux-2.6.30.4/arch/x86/xen/enlighten.c 2009-08-04 17:23:47.808223131 -0400 |
16078 | @@ -319,7 +319,7 @@ static void xen_set_ldt(const void *addr | 16171 | @@ -67,8 +67,6 @@ EXPORT_SYMBOL_GPL(xen_start_info); |
16079 | static void xen_load_gdt(const struct desc_ptr *dtr) | 16172 | |
16080 | { | 16173 | struct shared_info xen_dummy_shared_info; |
16081 | unsigned long *frames; | 16174 | |
16082 | - unsigned long va = dtr->address; | 16175 | -void *xen_initial_gdt; |
16083 | + unsigned long va = (unsigned long)dtr->address; | 16176 | - |
16084 | unsigned int size = dtr->size + 1; | 16177 | /* |
16085 | unsigned pages = (size + PAGE_SIZE - 1) / PAGE_SIZE; | 16178 | * Point at some empty memory to start with. We map the real shared_info |
16086 | int f; | 16179 | * page as soon as fixmap is up and running. |
16087 | @@ -334,7 +334,7 @@ static void xen_load_gdt(const struct de | 16180 | @@ -454,7 +452,7 @@ static void xen_write_idt_entry(gate_des |
16088 | mcs = xen_mc_entry(sizeof(*frames) * pages); | ||
16089 | frames = mcs.args; | ||
16090 | |||
16091 | - for (f = 0; va < dtr->address + size; va += PAGE_SIZE, f++) { | ||
16092 | + for (f = 0; va < (unsigned long)dtr->address + size; va += PAGE_SIZE, f++) { | ||
16093 | frames[f] = virt_to_mfn(va); | ||
16094 | make_lowmem_page_readonly((void *)va); | ||
16095 | } | ||
16096 | @@ -442,7 +442,7 @@ static void xen_write_idt_entry(gate_des | ||
16097 | 16181 | ||
16098 | preempt_disable(); | 16182 | preempt_disable(); |
16099 | 16183 | ||
@@ -16102,7 +16186,34 @@ diff -urNp linux-2.6.29.6/arch/x86/xen/enlighten.c linux-2.6.29.6/arch/x86/xen/e | |||
16102 | end = start + __get_cpu_var(idt_desc).size + 1; | 16186 | end = start + __get_cpu_var(idt_desc).size + 1; |
16103 | 16187 | ||
16104 | xen_mc_flush(); | 16188 | xen_mc_flush(); |
16105 | @@ -1528,6 +1528,8 @@ static __init pgd_t *xen_setup_kernel_pa | 16189 | @@ -962,12 +960,6 @@ asmlinkage void __init xen_start_kernel( |
16190 | */ | ||
16191 | load_percpu_segment(0); | ||
16192 | #endif | ||
16193 | - /* | ||
16194 | - * The only reliable way to retain the initial address of the | ||
16195 | - * percpu gdt_page is to remember it here, so we can go and | ||
16196 | - * mark it RW later, when the initial percpu area is freed. | ||
16197 | - */ | ||
16198 | - xen_initial_gdt = &per_cpu(gdt_page, 0); | ||
16199 | |||
16200 | xen_smp_init(); | ||
16201 | |||
16202 | diff -urNp linux-2.6.30.4/arch/x86/xen/Kconfig linux-2.6.30.4/arch/x86/xen/Kconfig | ||
16203 | --- linux-2.6.30.4/arch/x86/xen/Kconfig 2009-07-24 17:47:51.000000000 -0400 | ||
16204 | +++ linux-2.6.30.4/arch/x86/xen/Kconfig 2009-08-02 09:47:15.079210101 -0400 | ||
16205 | @@ -8,6 +8,7 @@ config XEN | ||
16206 | select PARAVIRT_CLOCK | ||
16207 | depends on X86_64 || (X86_32 && X86_PAE && !X86_VISWS) | ||
16208 | depends on X86_CMPXCHG && X86_TSC | ||
16209 | + depends on !PAX_KERNEXEC | ||
16210 | help | ||
16211 | This is the Linux Xen port. Enabling this will allow the | ||
16212 | kernel to boot in a paravirtualized environment under the | ||
16213 | diff -urNp linux-2.6.30.4/arch/x86/xen/mmu.c linux-2.6.30.4/arch/x86/xen/mmu.c | ||
16214 | --- linux-2.6.30.4/arch/x86/xen/mmu.c 2009-07-24 17:47:51.000000000 -0400 | ||
16215 | +++ linux-2.6.30.4/arch/x86/xen/mmu.c 2009-07-30 09:48:09.980662517 -0400 | ||
16216 | @@ -1716,6 +1716,8 @@ __init pgd_t *xen_setup_kernel_pagetable | ||
16106 | convert_pfn_mfn(init_level4_pgt); | 16217 | convert_pfn_mfn(init_level4_pgt); |
16107 | convert_pfn_mfn(level3_ident_pgt); | 16218 | convert_pfn_mfn(level3_ident_pgt); |
16108 | convert_pfn_mfn(level3_kernel_pgt); | 16219 | convert_pfn_mfn(level3_kernel_pgt); |
@@ -16111,7 +16222,7 @@ diff -urNp linux-2.6.29.6/arch/x86/xen/enlighten.c linux-2.6.29.6/arch/x86/xen/e | |||
16111 | 16222 | ||
16112 | l3 = m2v(pgd[pgd_index(__START_KERNEL_map)].pgd); | 16223 | l3 = m2v(pgd[pgd_index(__START_KERNEL_map)].pgd); |
16113 | l2 = m2v(l3[pud_index(__START_KERNEL_map)].pud); | 16224 | l2 = m2v(l3[pud_index(__START_KERNEL_map)].pud); |
16114 | @@ -1546,9 +1548,12 @@ static __init pgd_t *xen_setup_kernel_pa | 16225 | @@ -1734,9 +1736,12 @@ __init pgd_t *xen_setup_kernel_pagetable |
16115 | set_page_prot(init_level4_pgt, PAGE_KERNEL_RO); | 16226 | set_page_prot(init_level4_pgt, PAGE_KERNEL_RO); |
16116 | set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO); | 16227 | set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO); |
16117 | set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO); | 16228 | set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO); |
@@ -16124,22 +16235,22 @@ diff -urNp linux-2.6.29.6/arch/x86/xen/enlighten.c linux-2.6.29.6/arch/x86/xen/e | |||
16124 | 16235 | ||
16125 | /* Pin down new L4 */ | 16236 | /* Pin down new L4 */ |
16126 | pin_pagetable_pfn(MMUEXT_PIN_L4_TABLE, | 16237 | pin_pagetable_pfn(MMUEXT_PIN_L4_TABLE, |
16127 | diff -urNp linux-2.6.29.6/arch/x86/xen/smp.c linux-2.6.29.6/arch/x86/xen/smp.c | 16238 | diff -urNp linux-2.6.30.4/arch/x86/xen/smp.c linux-2.6.30.4/arch/x86/xen/smp.c |
16128 | --- linux-2.6.29.6/arch/x86/xen/smp.c 2009-07-02 19:41:20.000000000 -0400 | 16239 | --- linux-2.6.30.4/arch/x86/xen/smp.c 2009-07-24 17:47:51.000000000 -0400 |
16129 | +++ linux-2.6.29.6/arch/x86/xen/smp.c 2009-07-23 17:34:32.092715999 -0400 | 16240 | +++ linux-2.6.30.4/arch/x86/xen/smp.c 2009-07-30 09:48:09.981489035 -0400 |
16130 | @@ -171,11 +171,6 @@ static void __init xen_smp_prepare_boot_ | 16241 | @@ -167,11 +167,6 @@ static void __init xen_smp_prepare_boot_ |
16131 | { | 16242 | { |
16132 | BUG_ON(smp_processor_id() != 0); | 16243 | BUG_ON(smp_processor_id() != 0); |
16133 | native_smp_prepare_boot_cpu(); | 16244 | native_smp_prepare_boot_cpu(); |
16134 | - | 16245 | - |
16135 | - /* We've switched to the "real" per-cpu gdt, so make sure the | 16246 | - /* We've switched to the "real" per-cpu gdt, so make sure the |
16136 | - old memory can be recycled */ | 16247 | - old memory can be recycled */ |
16137 | - make_lowmem_page_readwrite(&per_cpu_var(gdt_page)); | 16248 | - make_lowmem_page_readwrite(xen_initial_gdt); |
16138 | - | 16249 | - |
16139 | xen_setup_vcpu_info_placement(); | 16250 | xen_setup_vcpu_info_placement(); |
16140 | } | 16251 | } |
16141 | 16252 | ||
16142 | @@ -234,8 +229,8 @@ cpu_initialize_context(unsigned int cpu, | 16253 | @@ -231,8 +226,8 @@ cpu_initialize_context(unsigned int cpu, |
16143 | gdt = get_cpu_gdt_table(cpu); | 16254 | gdt = get_cpu_gdt_table(cpu); |
16144 | 16255 | ||
16145 | ctxt->flags = VGCF_IN_KERNEL; | 16256 | ctxt->flags = VGCF_IN_KERNEL; |
@@ -16150,9 +16261,21 @@ diff -urNp linux-2.6.29.6/arch/x86/xen/smp.c linux-2.6.29.6/arch/x86/xen/smp.c | |||
16150 | ctxt->user_regs.ss = __KERNEL_DS; | 16261 | ctxt->user_regs.ss = __KERNEL_DS; |
16151 | #ifdef CONFIG_X86_32 | 16262 | #ifdef CONFIG_X86_32 |
16152 | ctxt->user_regs.fs = __KERNEL_PERCPU; | 16263 | ctxt->user_regs.fs = __KERNEL_PERCPU; |
16153 | diff -urNp linux-2.6.29.6/arch/xtensa/include/asm/atomic.h linux-2.6.29.6/arch/xtensa/include/asm/atomic.h | 16264 | diff -urNp linux-2.6.30.4/arch/x86/xen/xen-ops.h linux-2.6.30.4/arch/x86/xen/xen-ops.h |
16154 | --- linux-2.6.29.6/arch/xtensa/include/asm/atomic.h 2009-07-02 19:41:20.000000000 -0400 | 16265 | --- linux-2.6.30.4/arch/x86/xen/xen-ops.h 2009-07-24 17:47:51.000000000 -0400 |
16155 | +++ linux-2.6.29.6/arch/xtensa/include/asm/atomic.h 2009-07-23 17:34:32.092715999 -0400 | 16266 | +++ linux-2.6.30.4/arch/x86/xen/xen-ops.h 2009-08-04 17:23:47.809460830 -0400 |
16267 | @@ -10,8 +10,6 @@ | ||
16268 | extern const char xen_hypervisor_callback[]; | ||
16269 | extern const char xen_failsafe_callback[]; | ||
16270 | |||
16271 | -extern void *xen_initial_gdt; | ||
16272 | - | ||
16273 | struct trap_info; | ||
16274 | void xen_copy_trap_info(struct trap_info *traps); | ||
16275 | |||
16276 | diff -urNp linux-2.6.30.4/arch/xtensa/include/asm/atomic.h linux-2.6.30.4/arch/xtensa/include/asm/atomic.h | ||
16277 | --- linux-2.6.30.4/arch/xtensa/include/asm/atomic.h 2009-07-24 17:47:51.000000000 -0400 | ||
16278 | +++ linux-2.6.30.4/arch/xtensa/include/asm/atomic.h 2009-07-30 09:48:09.981489035 -0400 | ||
16156 | @@ -165,6 +165,9 @@ static inline int atomic_sub_return(int | 16279 | @@ -165,6 +165,9 @@ static inline int atomic_sub_return(int |
16157 | * Atomically increments @v by 1. | 16280 | * Atomically increments @v by 1. |
16158 | */ | 16281 | */ |
@@ -16163,9 +16286,9 @@ diff -urNp linux-2.6.29.6/arch/xtensa/include/asm/atomic.h linux-2.6.29.6/arch/x | |||
16163 | 16286 | ||
16164 | /** | 16287 | /** |
16165 | * atomic_inc - increment atomic variable | 16288 | * atomic_inc - increment atomic variable |
16166 | diff -urNp linux-2.6.29.6/arch/xtensa/include/asm/kmap_types.h linux-2.6.29.6/arch/xtensa/include/asm/kmap_types.h | 16289 | diff -urNp linux-2.6.30.4/arch/xtensa/include/asm/kmap_types.h linux-2.6.30.4/arch/xtensa/include/asm/kmap_types.h |
16167 | --- linux-2.6.29.6/arch/xtensa/include/asm/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 16290 | --- linux-2.6.30.4/arch/xtensa/include/asm/kmap_types.h 2009-07-24 17:47:51.000000000 -0400 |
16168 | +++ linux-2.6.29.6/arch/xtensa/include/asm/kmap_types.h 2009-07-23 17:34:32.092715999 -0400 | 16291 | +++ linux-2.6.30.4/arch/xtensa/include/asm/kmap_types.h 2009-07-30 09:48:09.981489035 -0400 |
16169 | @@ -25,6 +25,7 @@ enum km_type { | 16292 | @@ -25,6 +25,7 @@ enum km_type { |
16170 | KM_IRQ1, | 16293 | KM_IRQ1, |
16171 | KM_SOFTIRQ0, | 16294 | KM_SOFTIRQ0, |
@@ -16174,9 +16297,9 @@ diff -urNp linux-2.6.29.6/arch/xtensa/include/asm/kmap_types.h linux-2.6.29.6/ar | |||
16174 | KM_TYPE_NR | 16297 | KM_TYPE_NR |
16175 | }; | 16298 | }; |
16176 | 16299 | ||
16177 | diff -urNp linux-2.6.29.6/crypto/lrw.c linux-2.6.29.6/crypto/lrw.c | 16300 | diff -urNp linux-2.6.30.4/crypto/lrw.c linux-2.6.30.4/crypto/lrw.c |
16178 | --- linux-2.6.29.6/crypto/lrw.c 2009-07-02 19:41:20.000000000 -0400 | 16301 | --- linux-2.6.30.4/crypto/lrw.c 2009-07-24 17:47:51.000000000 -0400 |
16179 | +++ linux-2.6.29.6/crypto/lrw.c 2009-07-23 17:34:32.092715999 -0400 | 16302 | +++ linux-2.6.30.4/crypto/lrw.c 2009-07-30 09:48:09.982442014 -0400 |
16180 | @@ -60,7 +60,7 @@ static int setkey(struct crypto_tfm *par | 16303 | @@ -60,7 +60,7 @@ static int setkey(struct crypto_tfm *par |
16181 | struct priv *ctx = crypto_tfm_ctx(parent); | 16304 | struct priv *ctx = crypto_tfm_ctx(parent); |
16182 | struct crypto_cipher *child = ctx->child; | 16305 | struct crypto_cipher *child = ctx->child; |
@@ -16186,9 +16309,9 @@ diff -urNp linux-2.6.29.6/crypto/lrw.c linux-2.6.29.6/crypto/lrw.c | |||
16186 | int bsize = crypto_cipher_blocksize(child); | 16309 | int bsize = crypto_cipher_blocksize(child); |
16187 | 16310 | ||
16188 | crypto_cipher_clear_flags(child, CRYPTO_TFM_REQ_MASK); | 16311 | crypto_cipher_clear_flags(child, CRYPTO_TFM_REQ_MASK); |
16189 | diff -urNp linux-2.6.29.6/Documentation/dontdiff linux-2.6.29.6/Documentation/dontdiff | 16312 | diff -urNp linux-2.6.30.4/Documentation/dontdiff linux-2.6.30.4/Documentation/dontdiff |
16190 | --- linux-2.6.29.6/Documentation/dontdiff 2009-07-02 19:41:20.000000000 -0400 | 16313 | --- linux-2.6.30.4/Documentation/dontdiff 2009-07-24 17:47:51.000000000 -0400 |
16191 | +++ linux-2.6.29.6/Documentation/dontdiff 2009-07-23 17:34:32.093837355 -0400 | 16314 | +++ linux-2.6.30.4/Documentation/dontdiff 2009-08-04 17:23:49.932547446 -0400 |
16192 | @@ -3,6 +3,7 @@ | 16315 | @@ -3,6 +3,7 @@ |
16193 | *.bin | 16316 | *.bin |
16194 | *.cpio | 16317 | *.cpio |
@@ -16208,15 +16331,7 @@ diff -urNp linux-2.6.29.6/Documentation/dontdiff linux-2.6.29.6/Documentation/do | |||
16208 | Image | 16331 | Image |
16209 | Kerntypes | 16332 | Kerntypes |
16210 | Module.markers | 16333 | Module.markers |
16211 | @@ -62,7 +67,6 @@ aic7*reg_print.c* | 16334 | @@ -76,6 +81,7 @@ btfixupprep |
16212 | aic7*seq.h* | ||
16213 | aicasm | ||
16214 | aicdb.h* | ||
16215 | -asm | ||
16216 | asm-offsets.h | ||
16217 | asm_offsets.h | ||
16218 | autoconf.h* | ||
16219 | @@ -77,6 +81,7 @@ btfixupprep | ||
16220 | build | 16335 | build |
16221 | bvmlinux | 16336 | bvmlinux |
16222 | bzImage* | 16337 | bzImage* |
@@ -16224,7 +16339,7 @@ diff -urNp linux-2.6.29.6/Documentation/dontdiff linux-2.6.29.6/Documentation/do | |||
16224 | classlist.h* | 16339 | classlist.h* |
16225 | comp*.log | 16340 | comp*.log |
16226 | compile.h* | 16341 | compile.h* |
16227 | @@ -104,6 +109,7 @@ gen_crc32table | 16342 | @@ -103,9 +109,11 @@ gen_crc32table |
16228 | gen_init_cpio | 16343 | gen_init_cpio |
16229 | genksyms | 16344 | genksyms |
16230 | *_gray256.c | 16345 | *_gray256.c |
@@ -16232,7 +16347,11 @@ diff -urNp linux-2.6.29.6/Documentation/dontdiff linux-2.6.29.6/Documentation/do | |||
16232 | ihex2fw | 16347 | ihex2fw |
16233 | ikconfig.h* | 16348 | ikconfig.h* |
16234 | initramfs_data.cpio | 16349 | initramfs_data.cpio |
16235 | @@ -165,6 +171,7 @@ setup | 16350 | +initramfs_data.cpio.bz2 |
16351 | initramfs_data.cpio.gz | ||
16352 | initramfs_list | ||
16353 | kallsyms | ||
16354 | @@ -164,6 +172,7 @@ setup | ||
16236 | setup.bin | 16355 | setup.bin |
16237 | setup.elf | 16356 | setup.elf |
16238 | sImage | 16357 | sImage |
@@ -16240,11 +16359,12 @@ diff -urNp linux-2.6.29.6/Documentation/dontdiff linux-2.6.29.6/Documentation/do | |||
16240 | sm_tbl* | 16359 | sm_tbl* |
16241 | split-include | 16360 | split-include |
16242 | syscalltab.h | 16361 | syscalltab.h |
16243 | @@ -188,12 +195,15 @@ version.h* | 16362 | @@ -187,12 +196,16 @@ version.h* |
16244 | vmlinux | 16363 | vmlinux |
16245 | vmlinux-* | 16364 | vmlinux-* |
16246 | vmlinux.aout | 16365 | vmlinux.aout |
16247 | +vmlinux.bin.all | 16366 | +vmlinux.bin.all |
16367 | +vmlinux.bin.bz2 | ||
16248 | vmlinux.lds | 16368 | vmlinux.lds |
16249 | +vmlinux.relocs | 16369 | +vmlinux.relocs |
16250 | vsyscall.lds | 16370 | vsyscall.lds |
@@ -16256,9 +16376,9 @@ diff -urNp linux-2.6.29.6/Documentation/dontdiff linux-2.6.29.6/Documentation/do | |||
16256 | wakeup.bin | 16376 | wakeup.bin |
16257 | wakeup.elf | 16377 | wakeup.elf |
16258 | wakeup.lds | 16378 | wakeup.lds |
16259 | diff -urNp linux-2.6.29.6/drivers/acpi/blacklist.c linux-2.6.29.6/drivers/acpi/blacklist.c | 16379 | diff -urNp linux-2.6.30.4/drivers/acpi/blacklist.c linux-2.6.30.4/drivers/acpi/blacklist.c |
16260 | --- linux-2.6.29.6/drivers/acpi/blacklist.c 2009-07-02 19:41:20.000000000 -0400 | 16380 | --- linux-2.6.30.4/drivers/acpi/blacklist.c 2009-07-24 17:47:51.000000000 -0400 |
16261 | +++ linux-2.6.29.6/drivers/acpi/blacklist.c 2009-07-23 17:34:32.093837355 -0400 | 16381 | +++ linux-2.6.30.4/drivers/acpi/blacklist.c 2009-07-30 09:48:09.982442014 -0400 |
16262 | @@ -71,7 +71,7 @@ static struct acpi_blacklist_item acpi_b | 16382 | @@ -71,7 +71,7 @@ static struct acpi_blacklist_item acpi_b |
16263 | {"IBM ", "TP600E ", 0x00000105, ACPI_SIG_DSDT, less_than_or_equal, | 16383 | {"IBM ", "TP600E ", 0x00000105, ACPI_SIG_DSDT, less_than_or_equal, |
16264 | "Incorrect _ADR", 1}, | 16384 | "Incorrect _ADR", 1}, |
@@ -16268,22 +16388,10 @@ diff -urNp linux-2.6.29.6/drivers/acpi/blacklist.c linux-2.6.29.6/drivers/acpi/b | |||
16268 | }; | 16388 | }; |
16269 | 16389 | ||
16270 | #if CONFIG_ACPI_BLACKLIST_YEAR | 16390 | #if CONFIG_ACPI_BLACKLIST_YEAR |
16271 | diff -urNp linux-2.6.29.6/drivers/acpi/ec.c linux-2.6.29.6/drivers/acpi/ec.c | 16391 | diff -urNp linux-2.6.30.4/drivers/acpi/osl.c linux-2.6.30.4/drivers/acpi/osl.c |
16272 | --- linux-2.6.29.6/drivers/acpi/ec.c 2009-07-02 19:41:20.000000000 -0400 | 16392 | --- linux-2.6.30.4/drivers/acpi/osl.c 2009-07-24 17:47:51.000000000 -0400 |
16273 | +++ linux-2.6.29.6/drivers/acpi/ec.c 2009-07-23 18:40:27.516638001 -0400 | 16393 | +++ linux-2.6.30.4/drivers/acpi/osl.c 2009-07-30 09:48:09.986535027 -0400 |
16274 | @@ -672,7 +672,7 @@ static int acpi_ec_info_open_fs(struct i | 16394 | @@ -492,6 +492,8 @@ acpi_os_read_memory(acpi_physical_addres |
16275 | return single_open(file, acpi_ec_read_info, PDE(inode)->data); | ||
16276 | } | ||
16277 | |||
16278 | -static struct file_operations acpi_ec_info_ops = { | ||
16279 | +static const struct file_operations acpi_ec_info_ops = { | ||
16280 | .open = acpi_ec_info_open_fs, | ||
16281 | .read = seq_read, | ||
16282 | .llseek = seq_lseek, | ||
16283 | diff -urNp linux-2.6.29.6/drivers/acpi/osl.c linux-2.6.29.6/drivers/acpi/osl.c | ||
16284 | --- linux-2.6.29.6/drivers/acpi/osl.c 2009-07-02 19:41:20.000000000 -0400 | ||
16285 | +++ linux-2.6.29.6/drivers/acpi/osl.c 2009-07-23 17:34:32.093837355 -0400 | ||
16286 | @@ -483,6 +483,8 @@ acpi_os_read_memory(acpi_physical_addres | ||
16287 | void __iomem *virt_addr; | 16395 | void __iomem *virt_addr; |
16288 | 16396 | ||
16289 | virt_addr = ioremap(phys_addr, width); | 16397 | virt_addr = ioremap(phys_addr, width); |
@@ -16292,7 +16400,7 @@ diff -urNp linux-2.6.29.6/drivers/acpi/osl.c linux-2.6.29.6/drivers/acpi/osl.c | |||
16292 | if (!value) | 16400 | if (!value) |
16293 | value = &dummy; | 16401 | value = &dummy; |
16294 | 16402 | ||
16295 | @@ -511,6 +513,8 @@ acpi_os_write_memory(acpi_physical_addre | 16403 | @@ -520,6 +522,8 @@ acpi_os_write_memory(acpi_physical_addre |
16296 | void __iomem *virt_addr; | 16404 | void __iomem *virt_addr; |
16297 | 16405 | ||
16298 | virt_addr = ioremap(phys_addr, width); | 16406 | virt_addr = ioremap(phys_addr, width); |
@@ -16301,10 +16409,10 @@ diff -urNp linux-2.6.29.6/drivers/acpi/osl.c linux-2.6.29.6/drivers/acpi/osl.c | |||
16301 | 16409 | ||
16302 | switch (width) { | 16410 | switch (width) { |
16303 | case 8: | 16411 | case 8: |
16304 | diff -urNp linux-2.6.29.6/drivers/acpi/processor_core.c linux-2.6.29.6/drivers/acpi/processor_core.c | 16412 | diff -urNp linux-2.6.30.4/drivers/acpi/processor_core.c linux-2.6.30.4/drivers/acpi/processor_core.c |
16305 | --- linux-2.6.29.6/drivers/acpi/processor_core.c 2009-07-02 19:41:20.000000000 -0400 | 16413 | --- linux-2.6.30.4/drivers/acpi/processor_core.c 2009-07-24 17:47:51.000000000 -0400 |
16306 | +++ linux-2.6.29.6/drivers/acpi/processor_core.c 2009-07-23 17:34:32.093837355 -0400 | 16414 | +++ linux-2.6.30.4/drivers/acpi/processor_core.c 2009-07-30 09:48:09.986535027 -0400 |
16307 | @@ -678,7 +678,7 @@ static int __cpuinit acpi_processor_star | 16415 | @@ -703,7 +703,7 @@ static int __cpuinit acpi_processor_star |
16308 | return 0; | 16416 | return 0; |
16309 | } | 16417 | } |
16310 | 16418 | ||
@@ -16313,10 +16421,10 @@ diff -urNp linux-2.6.29.6/drivers/acpi/processor_core.c linux-2.6.29.6/drivers/a | |||
16313 | 16421 | ||
16314 | /* | 16422 | /* |
16315 | * Buggy BIOS check | 16423 | * Buggy BIOS check |
16316 | diff -urNp linux-2.6.29.6/drivers/acpi/processor_idle.c linux-2.6.29.6/drivers/acpi/processor_idle.c | 16424 | diff -urNp linux-2.6.30.4/drivers/acpi/processor_idle.c linux-2.6.30.4/drivers/acpi/processor_idle.c |
16317 | --- linux-2.6.29.6/drivers/acpi/processor_idle.c 2009-07-02 19:41:20.000000000 -0400 | 16425 | --- linux-2.6.30.4/drivers/acpi/processor_idle.c 2009-07-24 17:47:51.000000000 -0400 |
16318 | +++ linux-2.6.29.6/drivers/acpi/processor_idle.c 2009-07-23 17:34:32.094936160 -0400 | 16426 | +++ linux-2.6.30.4/drivers/acpi/processor_idle.c 2009-07-30 09:48:09.987663767 -0400 |
16319 | @@ -156,7 +156,7 @@ static struct dmi_system_id __cpuinitdat | 16427 | @@ -108,7 +108,7 @@ static struct dmi_system_id __cpuinitdat |
16320 | DMI_MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"), | 16428 | DMI_MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"), |
16321 | DMI_MATCH(DMI_BIOS_VERSION,"SHE845M0.86C.0013.D.0302131307")}, | 16429 | DMI_MATCH(DMI_BIOS_VERSION,"SHE845M0.86C.0013.D.0302131307")}, |
16322 | (void *)2}, | 16430 | (void *)2}, |
@@ -16324,236 +16432,23 @@ diff -urNp linux-2.6.29.6/drivers/acpi/processor_idle.c linux-2.6.29.6/drivers/a | |||
16324 | + { NULL, NULL, {DMI_MATCH(DMI_NONE, {0})}, NULL}, | 16432 | + { NULL, NULL, {DMI_MATCH(DMI_NONE, {0})}, NULL}, |
16325 | }; | 16433 | }; |
16326 | 16434 | ||
16327 | static inline u32 ticks_elapsed(u32 t1, u32 t2) | ||
16328 | diff -urNp linux-2.6.29.6/drivers/acpi/processor_thermal.c linux-2.6.29.6/drivers/acpi/processor_thermal.c | ||
16329 | --- linux-2.6.29.6/drivers/acpi/processor_thermal.c 2009-07-02 19:41:20.000000000 -0400 | ||
16330 | +++ linux-2.6.29.6/drivers/acpi/processor_thermal.c 2009-07-23 18:40:27.533990873 -0400 | ||
16331 | @@ -507,7 +507,7 @@ static ssize_t acpi_processor_write_limi | ||
16332 | return count; | ||
16333 | } | ||
16334 | |||
16335 | -struct file_operations acpi_processor_limit_fops = { | ||
16336 | +const struct file_operations acpi_processor_limit_fops = { | ||
16337 | .owner = THIS_MODULE, | ||
16338 | .open = acpi_processor_limit_open_fs, | ||
16339 | .read = seq_read, | ||
16340 | diff -urNp linux-2.6.29.6/drivers/acpi/processor_throttling.c linux-2.6.29.6/drivers/acpi/processor_throttling.c | ||
16341 | --- linux-2.6.29.6/drivers/acpi/processor_throttling.c 2009-07-02 19:41:20.000000000 -0400 | ||
16342 | +++ linux-2.6.29.6/drivers/acpi/processor_throttling.c 2009-07-23 18:40:27.545437588 -0400 | ||
16343 | @@ -1291,7 +1291,7 @@ static ssize_t acpi_processor_write_thro | ||
16344 | return count; | ||
16345 | } | ||
16346 | |||
16347 | -struct file_operations acpi_processor_throttling_fops = { | ||
16348 | +const struct file_operations acpi_processor_throttling_fops = { | ||
16349 | .owner = THIS_MODULE, | ||
16350 | .open = acpi_processor_throttling_open_fs, | ||
16351 | .read = seq_read, | ||
16352 | diff -urNp linux-2.6.29.6/drivers/acpi/sbs.c linux-2.6.29.6/drivers/acpi/sbs.c | ||
16353 | --- linux-2.6.29.6/drivers/acpi/sbs.c 2009-07-02 19:41:20.000000000 -0400 | ||
16354 | +++ linux-2.6.29.6/drivers/acpi/sbs.c 2009-07-23 18:40:27.556300663 -0400 | ||
16355 | @@ -479,9 +479,9 @@ static int | ||
16356 | acpi_sbs_add_fs(struct proc_dir_entry **dir, | ||
16357 | struct proc_dir_entry *parent_dir, | ||
16358 | char *dir_name, | ||
16359 | - struct file_operations *info_fops, | ||
16360 | - struct file_operations *state_fops, | ||
16361 | - struct file_operations *alarm_fops, void *data) | ||
16362 | + const struct file_operations *info_fops, | ||
16363 | + const struct file_operations *state_fops, | ||
16364 | + const struct file_operations *alarm_fops, void *data) | ||
16365 | { | ||
16366 | if (!*dir) { | ||
16367 | *dir = proc_mkdir(dir_name, parent_dir); | ||
16368 | @@ -677,7 +677,7 @@ static int acpi_battery_alarm_open_fs(st | ||
16369 | return single_open(file, acpi_battery_read_alarm, PDE(inode)->data); | ||
16370 | } | ||
16371 | |||
16372 | -static struct file_operations acpi_battery_info_fops = { | ||
16373 | +static const struct file_operations acpi_battery_info_fops = { | ||
16374 | .open = acpi_battery_info_open_fs, | ||
16375 | .read = seq_read, | ||
16376 | .llseek = seq_lseek, | ||
16377 | @@ -685,7 +685,7 @@ static struct file_operations acpi_batte | ||
16378 | .owner = THIS_MODULE, | ||
16379 | }; | ||
16380 | |||
16381 | -static struct file_operations acpi_battery_state_fops = { | ||
16382 | +static const struct file_operations acpi_battery_state_fops = { | ||
16383 | .open = acpi_battery_state_open_fs, | ||
16384 | .read = seq_read, | ||
16385 | .llseek = seq_lseek, | ||
16386 | @@ -693,7 +693,7 @@ static struct file_operations acpi_batte | ||
16387 | .owner = THIS_MODULE, | ||
16388 | }; | ||
16389 | |||
16390 | -static struct file_operations acpi_battery_alarm_fops = { | ||
16391 | +static const struct file_operations acpi_battery_alarm_fops = { | ||
16392 | .open = acpi_battery_alarm_open_fs, | ||
16393 | .read = seq_read, | ||
16394 | .write = acpi_battery_write_alarm, | ||
16395 | @@ -725,7 +725,7 @@ static int acpi_ac_state_open_fs(struct | ||
16396 | return single_open(file, acpi_ac_read_state, PDE(inode)->data); | ||
16397 | } | ||
16398 | |||
16399 | -static struct file_operations acpi_ac_state_fops = { | ||
16400 | +static const struct file_operations acpi_ac_state_fops = { | ||
16401 | .open = acpi_ac_state_open_fs, | ||
16402 | .read = seq_read, | ||
16403 | .llseek = seq_lseek, | ||
16404 | diff -urNp linux-2.6.29.6/drivers/acpi/video.c linux-2.6.29.6/drivers/acpi/video.c | ||
16405 | --- linux-2.6.29.6/drivers/acpi/video.c 2009-07-02 19:41:20.000000000 -0400 | ||
16406 | +++ linux-2.6.29.6/drivers/acpi/video.c 2009-07-23 18:40:27.557273014 -0400 | ||
16407 | @@ -189,7 +189,7 @@ struct acpi_video_device { | ||
16408 | |||
16409 | /* bus */ | ||
16410 | static int acpi_video_bus_info_open_fs(struct inode *inode, struct file *file); | ||
16411 | -static struct file_operations acpi_video_bus_info_fops = { | ||
16412 | +static const struct file_operations acpi_video_bus_info_fops = { | ||
16413 | .owner = THIS_MODULE, | ||
16414 | .open = acpi_video_bus_info_open_fs, | ||
16415 | .read = seq_read, | ||
16416 | @@ -198,7 +198,7 @@ static struct file_operations acpi_video | ||
16417 | }; | ||
16418 | |||
16419 | static int acpi_video_bus_ROM_open_fs(struct inode *inode, struct file *file); | ||
16420 | -static struct file_operations acpi_video_bus_ROM_fops = { | ||
16421 | +static const struct file_operations acpi_video_bus_ROM_fops = { | ||
16422 | .owner = THIS_MODULE, | ||
16423 | .open = acpi_video_bus_ROM_open_fs, | ||
16424 | .read = seq_read, | ||
16425 | @@ -208,7 +208,7 @@ static struct file_operations acpi_video | ||
16426 | |||
16427 | static int acpi_video_bus_POST_info_open_fs(struct inode *inode, | ||
16428 | struct file *file); | ||
16429 | -static struct file_operations acpi_video_bus_POST_info_fops = { | ||
16430 | +static const struct file_operations acpi_video_bus_POST_info_fops = { | ||
16431 | .owner = THIS_MODULE, | ||
16432 | .open = acpi_video_bus_POST_info_open_fs, | ||
16433 | .read = seq_read, | ||
16434 | @@ -217,19 +217,29 @@ static struct file_operations acpi_video | ||
16435 | }; | ||
16436 | |||
16437 | static int acpi_video_bus_POST_open_fs(struct inode *inode, struct file *file); | ||
16438 | -static struct file_operations acpi_video_bus_POST_fops = { | ||
16439 | +static ssize_t | ||
16440 | +acpi_video_bus_write_POST(struct file *file, | ||
16441 | + const char __user * buffer, | ||
16442 | + size_t count, loff_t * data); | ||
16443 | +static const struct file_operations acpi_video_bus_POST_fops = { | ||
16444 | .owner = THIS_MODULE, | ||
16445 | .open = acpi_video_bus_POST_open_fs, | ||
16446 | .read = seq_read, | ||
16447 | + .write = acpi_video_bus_write_POST, | ||
16448 | .llseek = seq_lseek, | ||
16449 | .release = single_release, | ||
16450 | }; | ||
16451 | 16435 | ||
16452 | static int acpi_video_bus_DOS_open_fs(struct inode *inode, struct file *file); | 16436 | diff -urNp linux-2.6.30.4/drivers/acpi/video.c linux-2.6.30.4/drivers/acpi/video.c |
16453 | -static struct file_operations acpi_video_bus_DOS_fops = { | 16437 | --- linux-2.6.30.4/drivers/acpi/video.c 2009-07-24 17:47:51.000000000 -0400 |
16454 | +static ssize_t | 16438 | +++ linux-2.6.30.4/drivers/acpi/video.c 2009-07-30 12:06:52.099841502 -0400 |
16455 | +acpi_video_bus_write_DOS(struct file *file, | 16439 | @@ -282,7 +282,7 @@ static int acpi_video_device_brightness_ |
16456 | + const char __user * buffer, | ||
16457 | + size_t count, loff_t * data); | ||
16458 | +static const struct file_operations acpi_video_bus_DOS_fops = { | ||
16459 | .owner = THIS_MODULE, | ||
16460 | .open = acpi_video_bus_DOS_open_fs, | ||
16461 | .read = seq_read, | ||
16462 | + .write = acpi_video_bus_write_DOS, | ||
16463 | .llseek = seq_lseek, | ||
16464 | .release = single_release, | ||
16465 | }; | ||
16466 | @@ -237,7 +247,7 @@ static struct file_operations acpi_video | ||
16467 | /* device */ | ||
16468 | static int acpi_video_device_info_open_fs(struct inode *inode, | ||
16469 | struct file *file); | ||
16470 | -static struct file_operations acpi_video_device_info_fops = { | ||
16471 | +static const struct file_operations acpi_video_device_info_fops = { | ||
16472 | .owner = THIS_MODULE, | ||
16473 | .open = acpi_video_device_info_open_fs, | ||
16474 | .read = seq_read, | ||
16475 | @@ -247,27 +257,37 @@ static struct file_operations acpi_video | ||
16476 | |||
16477 | static int acpi_video_device_state_open_fs(struct inode *inode, | ||
16478 | struct file *file); | ||
16479 | -static struct file_operations acpi_video_device_state_fops = { | ||
16480 | +static ssize_t | ||
16481 | +acpi_video_device_write_state(struct file *file, | ||
16482 | + const char __user * buffer, | ||
16483 | + size_t count, loff_t * data); | ||
16484 | +static const struct file_operations acpi_video_device_state_fops = { | ||
16485 | .owner = THIS_MODULE, | ||
16486 | .open = acpi_video_device_state_open_fs, | ||
16487 | .read = seq_read, | ||
16488 | + .write = acpi_video_device_write_state, | ||
16489 | .llseek = seq_lseek, | ||
16490 | .release = single_release, | ||
16491 | }; | ||
16492 | |||
16493 | static int acpi_video_device_brightness_open_fs(struct inode *inode, | ||
16494 | struct file *file); | 16440 | struct file *file); |
16441 | static ssize_t acpi_video_device_write_brightness(struct file *file, | ||
16442 | const char __user *buffer, size_t count, loff_t *data); | ||
16495 | -static struct file_operations acpi_video_device_brightness_fops = { | 16443 | -static struct file_operations acpi_video_device_brightness_fops = { |
16496 | +static ssize_t | ||
16497 | +acpi_video_device_write_brightness(struct file *file, | ||
16498 | + const char __user * buffer, | ||
16499 | + size_t count, loff_t * data); | ||
16500 | +static const struct file_operations acpi_video_device_brightness_fops = { | 16444 | +static const struct file_operations acpi_video_device_brightness_fops = { |
16501 | .owner = THIS_MODULE, | 16445 | .owner = THIS_MODULE, |
16502 | .open = acpi_video_device_brightness_open_fs, | 16446 | .open = acpi_video_device_brightness_open_fs, |
16503 | .read = seq_read, | 16447 | .read = seq_read, |
16504 | + .write = acpi_video_device_write_brightness, | 16448 | diff -urNp linux-2.6.30.4/drivers/ata/ahci.c linux-2.6.30.4/drivers/ata/ahci.c |
16505 | .llseek = seq_lseek, | 16449 | --- linux-2.6.30.4/drivers/ata/ahci.c 2009-07-24 17:47:51.000000000 -0400 |
16506 | .release = single_release, | 16450 | +++ linux-2.6.30.4/drivers/ata/ahci.c 2009-07-30 09:48:09.987663767 -0400 |
16507 | }; | 16451 | @@ -622,7 +622,7 @@ static const struct pci_device_id ahci_p |
16508 | |||
16509 | static int acpi_video_device_EDID_open_fs(struct inode *inode, | ||
16510 | struct file *file); | ||
16511 | -static struct file_operations acpi_video_device_EDID_fops = { | ||
16512 | +static const struct file_operations acpi_video_device_EDID_fops = { | ||
16513 | .owner = THIS_MODULE, | ||
16514 | .open = acpi_video_device_EDID_open_fs, | ||
16515 | .read = seq_read, | ||
16516 | @@ -1133,8 +1153,6 @@ static int acpi_video_device_add_fs(stru | ||
16517 | if (!entry) | ||
16518 | goto err_remove_dir; | ||
16519 | |||
16520 | - /* 'state' [R/W] */ | ||
16521 | - acpi_video_device_state_fops.write = acpi_video_device_write_state; | ||
16522 | entry = proc_create_data("state", S_IFREG | S_IRUGO | S_IWUSR, | ||
16523 | device_dir, | ||
16524 | &acpi_video_device_state_fops, | ||
16525 | @@ -1142,9 +1160,6 @@ static int acpi_video_device_add_fs(stru | ||
16526 | if (!entry) | ||
16527 | goto err_remove_info; | ||
16528 | |||
16529 | - /* 'brightness' [R/W] */ | ||
16530 | - acpi_video_device_brightness_fops.write = | ||
16531 | - acpi_video_device_write_brightness; | ||
16532 | entry = proc_create_data("brightness", S_IFREG | S_IRUGO | S_IWUSR, | ||
16533 | device_dir, | ||
16534 | &acpi_video_device_brightness_fops, | ||
16535 | @@ -1426,8 +1441,6 @@ static int acpi_video_bus_add_fs(struct | ||
16536 | if (!entry) | ||
16537 | goto err_remove_rom; | ||
16538 | |||
16539 | - /* 'POST' [R/W] */ | ||
16540 | - acpi_video_bus_POST_fops.write = acpi_video_bus_write_POST; | ||
16541 | entry = proc_create_data("POST", S_IFREG | S_IRUGO | S_IWUSR, | ||
16542 | device_dir, | ||
16543 | &acpi_video_bus_POST_fops, | ||
16544 | @@ -1435,8 +1448,6 @@ static int acpi_video_bus_add_fs(struct | ||
16545 | if (!entry) | ||
16546 | goto err_remove_post_info; | ||
16547 | |||
16548 | - /* 'DOS' [R/W] */ | ||
16549 | - acpi_video_bus_DOS_fops.write = acpi_video_bus_write_DOS; | ||
16550 | entry = proc_create_data("DOS", S_IFREG | S_IRUGO | S_IWUSR, | ||
16551 | device_dir, | ||
16552 | &acpi_video_bus_DOS_fops, | ||
16553 | diff -urNp linux-2.6.29.6/drivers/ata/ahci.c linux-2.6.29.6/drivers/ata/ahci.c | ||
16554 | --- linux-2.6.29.6/drivers/ata/ahci.c 2009-07-02 19:41:20.000000000 -0400 | ||
16555 | +++ linux-2.6.29.6/drivers/ata/ahci.c 2009-07-23 17:34:32.094936160 -0400 | ||
16556 | @@ -611,7 +611,7 @@ static const struct pci_device_id ahci_p | ||
16557 | { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, | 16452 | { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, |
16558 | PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci }, | 16453 | PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci }, |
16559 | 16454 | ||
@@ -16562,10 +16457,10 @@ diff -urNp linux-2.6.29.6/drivers/ata/ahci.c linux-2.6.29.6/drivers/ata/ahci.c | |||
16562 | }; | 16457 | }; |
16563 | 16458 | ||
16564 | 16459 | ||
16565 | diff -urNp linux-2.6.29.6/drivers/ata/ata_piix.c linux-2.6.29.6/drivers/ata/ata_piix.c | 16460 | diff -urNp linux-2.6.30.4/drivers/ata/ata_piix.c linux-2.6.30.4/drivers/ata/ata_piix.c |
16566 | --- linux-2.6.29.6/drivers/ata/ata_piix.c 2009-07-02 19:41:20.000000000 -0400 | 16461 | --- linux-2.6.30.4/drivers/ata/ata_piix.c 2009-07-24 17:47:51.000000000 -0400 |
16567 | +++ linux-2.6.29.6/drivers/ata/ata_piix.c 2009-07-23 17:34:32.095849165 -0400 | 16462 | +++ linux-2.6.30.4/drivers/ata/ata_piix.c 2009-07-30 09:48:09.988577262 -0400 |
16568 | @@ -291,7 +291,7 @@ static const struct pci_device_id piix_p | 16463 | @@ -293,7 +293,7 @@ static const struct pci_device_id piix_p |
16569 | { 0x8086, 0x3b2d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, | 16464 | { 0x8086, 0x3b2d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, |
16570 | /* SATA Controller IDE (PCH) */ | 16465 | /* SATA Controller IDE (PCH) */ |
16571 | { 0x8086, 0x3b2e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata }, | 16466 | { 0x8086, 0x3b2e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata }, |
@@ -16574,16 +16469,16 @@ diff -urNp linux-2.6.29.6/drivers/ata/ata_piix.c linux-2.6.29.6/drivers/ata/ata_ | |||
16574 | }; | 16469 | }; |
16575 | 16470 | ||
16576 | static struct pci_driver piix_pci_driver = { | 16471 | static struct pci_driver piix_pci_driver = { |
16577 | @@ -595,7 +595,7 @@ static const struct ich_laptop ich_lapto | 16472 | @@ -607,7 +607,7 @@ static const struct ich_laptop ich_lapto |
16578 | { 0x266F, 0x1025, 0x0066 }, /* ICH6 on ACER Aspire 1694WLMi */ | ||
16579 | { 0x2653, 0x1043, 0x82D8 }, /* ICH6M on Asus Eee 701 */ | 16473 | { 0x2653, 0x1043, 0x82D8 }, /* ICH6M on Asus Eee 701 */ |
16474 | { 0x27df, 0x104d, 0x900e }, /* ICH7 on Sony TZ-90 */ | ||
16580 | /* end marker */ | 16475 | /* end marker */ |
16581 | - { 0, } | 16476 | - { 0, } |
16582 | + { 0, 0, 0 } | 16477 | + { 0, 0, 0 } |
16583 | }; | 16478 | }; |
16584 | 16479 | ||
16585 | /** | 16480 | /** |
16586 | @@ -1054,7 +1054,7 @@ static int piix_broken_suspend(void) | 16481 | @@ -1073,7 +1073,7 @@ static int piix_broken_suspend(void) |
16587 | }, | 16482 | }, |
16588 | }, | 16483 | }, |
16589 | 16484 | ||
@@ -16592,10 +16487,10 @@ diff -urNp linux-2.6.29.6/drivers/ata/ata_piix.c linux-2.6.29.6/drivers/ata/ata_ | |||
16592 | }; | 16487 | }; |
16593 | static const char *oemstrs[] = { | 16488 | static const char *oemstrs[] = { |
16594 | "Tecra M3,", | 16489 | "Tecra M3,", |
16595 | diff -urNp linux-2.6.29.6/drivers/ata/libata-core.c linux-2.6.29.6/drivers/ata/libata-core.c | 16490 | diff -urNp linux-2.6.30.4/drivers/ata/libata-core.c linux-2.6.30.4/drivers/ata/libata-core.c |
16596 | --- linux-2.6.29.6/drivers/ata/libata-core.c 2009-07-02 19:41:20.000000000 -0400 | 16491 | --- linux-2.6.30.4/drivers/ata/libata-core.c 2009-07-24 17:47:51.000000000 -0400 |
16597 | +++ linux-2.6.29.6/drivers/ata/libata-core.c 2009-07-23 17:34:32.096707424 -0400 | 16492 | +++ linux-2.6.30.4/drivers/ata/libata-core.c 2009-07-30 09:48:09.989999430 -0400 |
16598 | @@ -889,7 +889,7 @@ static const struct ata_xfer_ent { | 16493 | @@ -890,7 +890,7 @@ static const struct ata_xfer_ent { |
16599 | { ATA_SHIFT_PIO, ATA_NR_PIO_MODES, XFER_PIO_0 }, | 16494 | { ATA_SHIFT_PIO, ATA_NR_PIO_MODES, XFER_PIO_0 }, |
16600 | { ATA_SHIFT_MWDMA, ATA_NR_MWDMA_MODES, XFER_MW_DMA_0 }, | 16495 | { ATA_SHIFT_MWDMA, ATA_NR_MWDMA_MODES, XFER_MW_DMA_0 }, |
16601 | { ATA_SHIFT_UDMA, ATA_NR_UDMA_MODES, XFER_UDMA_0 }, | 16496 | { ATA_SHIFT_UDMA, ATA_NR_UDMA_MODES, XFER_UDMA_0 }, |
@@ -16604,7 +16499,7 @@ diff -urNp linux-2.6.29.6/drivers/ata/libata-core.c linux-2.6.29.6/drivers/ata/l | |||
16604 | }; | 16499 | }; |
16605 | 16500 | ||
16606 | /** | 16501 | /** |
16607 | @@ -3105,7 +3105,7 @@ static const struct ata_timing ata_timin | 16502 | @@ -3129,7 +3129,7 @@ static const struct ata_timing ata_timin |
16608 | { XFER_UDMA_5, 0, 0, 0, 0, 0, 0, 0, 0, 20 }, | 16503 | { XFER_UDMA_5, 0, 0, 0, 0, 0, 0, 0, 0, 20 }, |
16609 | { XFER_UDMA_6, 0, 0, 0, 0, 0, 0, 0, 0, 15 }, | 16504 | { XFER_UDMA_6, 0, 0, 0, 0, 0, 0, 0, 0, 15 }, |
16610 | 16505 | ||
@@ -16613,7 +16508,7 @@ diff -urNp linux-2.6.29.6/drivers/ata/libata-core.c linux-2.6.29.6/drivers/ata/l | |||
16613 | }; | 16508 | }; |
16614 | 16509 | ||
16615 | #define ENOUGH(v, unit) (((v)-1)/(unit)+1) | 16510 | #define ENOUGH(v, unit) (((v)-1)/(unit)+1) |
16616 | @@ -4267,7 +4267,7 @@ static const struct ata_blacklist_entry | 16511 | @@ -4293,7 +4293,7 @@ static const struct ata_blacklist_entry |
16617 | { "WD My Book", NULL, ATA_HORKAGE_1_5_GBPS, }, | 16512 | { "WD My Book", NULL, ATA_HORKAGE_1_5_GBPS, }, |
16618 | 16513 | ||
16619 | /* End Marker */ | 16514 | /* End Marker */ |
@@ -16622,9 +16517,9 @@ diff -urNp linux-2.6.29.6/drivers/ata/libata-core.c linux-2.6.29.6/drivers/ata/l | |||
16622 | }; | 16517 | }; |
16623 | 16518 | ||
16624 | static int strn_pattern_cmp(const char *patt, const char *name, int wildchar) | 16519 | static int strn_pattern_cmp(const char *patt, const char *name, int wildchar) |
16625 | diff -urNp linux-2.6.29.6/drivers/atm/adummy.c linux-2.6.29.6/drivers/atm/adummy.c | 16520 | diff -urNp linux-2.6.30.4/drivers/atm/adummy.c linux-2.6.30.4/drivers/atm/adummy.c |
16626 | --- linux-2.6.29.6/drivers/atm/adummy.c 2009-07-02 19:41:20.000000000 -0400 | 16521 | --- linux-2.6.30.4/drivers/atm/adummy.c 2009-07-24 17:47:51.000000000 -0400 |
16627 | +++ linux-2.6.29.6/drivers/atm/adummy.c 2009-07-23 17:34:32.096707424 -0400 | 16522 | +++ linux-2.6.30.4/drivers/atm/adummy.c 2009-07-30 09:48:09.989999430 -0400 |
16628 | @@ -77,7 +77,7 @@ adummy_send(struct atm_vcc *vcc, struct | 16523 | @@ -77,7 +77,7 @@ adummy_send(struct atm_vcc *vcc, struct |
16629 | vcc->pop(vcc, skb); | 16524 | vcc->pop(vcc, skb); |
16630 | else | 16525 | else |
@@ -16634,9 +16529,9 @@ diff -urNp linux-2.6.29.6/drivers/atm/adummy.c linux-2.6.29.6/drivers/atm/adummy | |||
16634 | 16529 | ||
16635 | return 0; | 16530 | return 0; |
16636 | } | 16531 | } |
16637 | diff -urNp linux-2.6.29.6/drivers/atm/ambassador.c linux-2.6.29.6/drivers/atm/ambassador.c | 16532 | diff -urNp linux-2.6.30.4/drivers/atm/ambassador.c linux-2.6.30.4/drivers/atm/ambassador.c |
16638 | --- linux-2.6.29.6/drivers/atm/ambassador.c 2009-07-02 19:41:20.000000000 -0400 | 16533 | --- linux-2.6.30.4/drivers/atm/ambassador.c 2009-07-24 17:47:51.000000000 -0400 |
16639 | +++ linux-2.6.29.6/drivers/atm/ambassador.c 2009-07-23 17:34:32.096707424 -0400 | 16534 | +++ linux-2.6.30.4/drivers/atm/ambassador.c 2009-07-30 09:48:09.990535817 -0400 |
16640 | @@ -453,7 +453,7 @@ static void tx_complete (amb_dev * dev, | 16535 | @@ -453,7 +453,7 @@ static void tx_complete (amb_dev * dev, |
16641 | PRINTD (DBG_FLOW|DBG_TX, "tx_complete %p %p", dev, tx); | 16536 | PRINTD (DBG_FLOW|DBG_TX, "tx_complete %p %p", dev, tx); |
16642 | 16537 | ||
@@ -16673,9 +16568,9 @@ diff -urNp linux-2.6.29.6/drivers/atm/ambassador.c linux-2.6.29.6/drivers/atm/am | |||
16673 | return -ENOMEM; // ? | 16568 | return -ENOMEM; // ? |
16674 | } | 16569 | } |
16675 | 16570 | ||
16676 | diff -urNp linux-2.6.29.6/drivers/atm/atmtcp.c linux-2.6.29.6/drivers/atm/atmtcp.c | 16571 | diff -urNp linux-2.6.30.4/drivers/atm/atmtcp.c linux-2.6.30.4/drivers/atm/atmtcp.c |
16677 | --- linux-2.6.29.6/drivers/atm/atmtcp.c 2009-07-02 19:41:20.000000000 -0400 | 16572 | --- linux-2.6.30.4/drivers/atm/atmtcp.c 2009-07-24 17:47:51.000000000 -0400 |
16678 | +++ linux-2.6.29.6/drivers/atm/atmtcp.c 2009-07-23 17:34:32.097932924 -0400 | 16573 | +++ linux-2.6.30.4/drivers/atm/atmtcp.c 2009-07-30 09:48:09.991629377 -0400 |
16679 | @@ -206,7 +206,7 @@ static int atmtcp_v_send(struct atm_vcc | 16574 | @@ -206,7 +206,7 @@ static int atmtcp_v_send(struct atm_vcc |
16680 | if (vcc->pop) vcc->pop(vcc,skb); | 16575 | if (vcc->pop) vcc->pop(vcc,skb); |
16681 | else dev_kfree_skb(skb); | 16576 | else dev_kfree_skb(skb); |
@@ -16725,9 +16620,9 @@ diff -urNp linux-2.6.29.6/drivers/atm/atmtcp.c linux-2.6.29.6/drivers/atm/atmtcp | |||
16725 | done: | 16620 | done: |
16726 | if (vcc->pop) vcc->pop(vcc,skb); | 16621 | if (vcc->pop) vcc->pop(vcc,skb); |
16727 | else dev_kfree_skb(skb); | 16622 | else dev_kfree_skb(skb); |
16728 | diff -urNp linux-2.6.29.6/drivers/atm/eni.c linux-2.6.29.6/drivers/atm/eni.c | 16623 | diff -urNp linux-2.6.30.4/drivers/atm/eni.c linux-2.6.30.4/drivers/atm/eni.c |
16729 | --- linux-2.6.29.6/drivers/atm/eni.c 2009-07-02 19:41:20.000000000 -0400 | 16624 | --- linux-2.6.30.4/drivers/atm/eni.c 2009-07-24 17:47:51.000000000 -0400 |
16730 | +++ linux-2.6.29.6/drivers/atm/eni.c 2009-07-23 17:34:32.097932924 -0400 | 16625 | +++ linux-2.6.30.4/drivers/atm/eni.c 2009-07-30 09:48:09.991629377 -0400 |
16731 | @@ -525,7 +525,7 @@ static int rx_aal0(struct atm_vcc *vcc) | 16626 | @@ -525,7 +525,7 @@ static int rx_aal0(struct atm_vcc *vcc) |
16732 | DPRINTK(DEV_LABEL "(itf %d): trashing empty cell\n", | 16627 | DPRINTK(DEV_LABEL "(itf %d): trashing empty cell\n", |
16733 | vcc->dev->number); | 16628 | vcc->dev->number); |
@@ -16773,9 +16668,9 @@ diff -urNp linux-2.6.29.6/drivers/atm/eni.c linux-2.6.29.6/drivers/atm/eni.c | |||
16773 | wake_up(&eni_dev->tx_wait); | 16668 | wake_up(&eni_dev->tx_wait); |
16774 | dma_complete++; | 16669 | dma_complete++; |
16775 | } | 16670 | } |
16776 | diff -urNp linux-2.6.29.6/drivers/atm/firestream.c linux-2.6.29.6/drivers/atm/firestream.c | 16671 | diff -urNp linux-2.6.30.4/drivers/atm/firestream.c linux-2.6.30.4/drivers/atm/firestream.c |
16777 | --- linux-2.6.29.6/drivers/atm/firestream.c 2009-07-02 19:41:20.000000000 -0400 | 16672 | --- linux-2.6.30.4/drivers/atm/firestream.c 2009-07-24 17:47:51.000000000 -0400 |
16778 | +++ linux-2.6.29.6/drivers/atm/firestream.c 2009-07-23 17:34:32.098993493 -0400 | 16673 | +++ linux-2.6.30.4/drivers/atm/firestream.c 2009-07-30 09:48:09.992530374 -0400 |
16779 | @@ -748,7 +748,7 @@ static void process_txdone_queue (struct | 16674 | @@ -748,7 +748,7 @@ static void process_txdone_queue (struct |
16780 | } | 16675 | } |
16781 | } | 16676 | } |
@@ -16809,9 +16704,9 @@ diff -urNp linux-2.6.29.6/drivers/atm/firestream.c linux-2.6.29.6/drivers/atm/fi | |||
16809 | break; | 16704 | break; |
16810 | default: /* Hmm. Haven't written the code to handle the others yet... -- REW */ | 16705 | default: /* Hmm. Haven't written the code to handle the others yet... -- REW */ |
16811 | printk (KERN_WARNING "Don't know what to do with RX status %x: %s.\n", | 16706 | printk (KERN_WARNING "Don't know what to do with RX status %x: %s.\n", |
16812 | diff -urNp linux-2.6.29.6/drivers/atm/fore200e.c linux-2.6.29.6/drivers/atm/fore200e.c | 16707 | diff -urNp linux-2.6.30.4/drivers/atm/fore200e.c linux-2.6.30.4/drivers/atm/fore200e.c |
16813 | --- linux-2.6.29.6/drivers/atm/fore200e.c 2009-07-02 19:41:20.000000000 -0400 | 16708 | --- linux-2.6.30.4/drivers/atm/fore200e.c 2009-07-24 17:47:51.000000000 -0400 |
16814 | +++ linux-2.6.29.6/drivers/atm/fore200e.c 2009-07-23 17:34:32.099818881 -0400 | 16709 | +++ linux-2.6.30.4/drivers/atm/fore200e.c 2009-07-30 09:48:09.993922247 -0400 |
16815 | @@ -931,9 +931,9 @@ fore200e_tx_irq(struct fore200e* fore200 | 16710 | @@ -931,9 +931,9 @@ fore200e_tx_irq(struct fore200e* fore200 |
16816 | #endif | 16711 | #endif |
16817 | /* check error condition */ | 16712 | /* check error condition */ |
@@ -16868,9 +16763,9 @@ diff -urNp linux-2.6.29.6/drivers/atm/fore200e.c linux-2.6.29.6/drivers/atm/fore | |||
16868 | 16763 | ||
16869 | fore200e->tx_sat++; | 16764 | fore200e->tx_sat++; |
16870 | DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n", | 16765 | DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n", |
16871 | diff -urNp linux-2.6.29.6/drivers/atm/he.c linux-2.6.29.6/drivers/atm/he.c | 16766 | diff -urNp linux-2.6.30.4/drivers/atm/he.c linux-2.6.30.4/drivers/atm/he.c |
16872 | --- linux-2.6.29.6/drivers/atm/he.c 2009-07-02 19:41:20.000000000 -0400 | 16767 | --- linux-2.6.30.4/drivers/atm/he.c 2009-07-24 17:47:51.000000000 -0400 |
16873 | +++ linux-2.6.29.6/drivers/atm/he.c 2009-07-23 18:42:59.306868260 -0400 | 16768 | +++ linux-2.6.30.4/drivers/atm/he.c 2009-07-30 09:48:09.994421569 -0400 |
16874 | @@ -1728,7 +1728,7 @@ he_service_rbrq(struct he_dev *he_dev, i | 16769 | @@ -1728,7 +1728,7 @@ he_service_rbrq(struct he_dev *he_dev, i |
16875 | 16770 | ||
16876 | if (RBRQ_HBUF_ERR(he_dev->rbrq_head)) { | 16771 | if (RBRQ_HBUF_ERR(he_dev->rbrq_head)) { |
@@ -16952,9 +16847,9 @@ diff -urNp linux-2.6.29.6/drivers/atm/he.c linux-2.6.29.6/drivers/atm/he.c | |||
16952 | 16847 | ||
16953 | return 0; | 16848 | return 0; |
16954 | } | 16849 | } |
16955 | diff -urNp linux-2.6.29.6/drivers/atm/horizon.c linux-2.6.29.6/drivers/atm/horizon.c | 16850 | diff -urNp linux-2.6.30.4/drivers/atm/horizon.c linux-2.6.30.4/drivers/atm/horizon.c |
16956 | --- linux-2.6.29.6/drivers/atm/horizon.c 2009-07-02 19:41:20.000000000 -0400 | 16851 | --- linux-2.6.30.4/drivers/atm/horizon.c 2009-07-24 17:47:51.000000000 -0400 |
16957 | +++ linux-2.6.29.6/drivers/atm/horizon.c 2009-07-23 17:34:32.100806142 -0400 | 16852 | +++ linux-2.6.30.4/drivers/atm/horizon.c 2009-07-30 09:48:09.994421569 -0400 |
16958 | @@ -1033,7 +1033,7 @@ static void rx_schedule (hrz_dev * dev, | 16853 | @@ -1033,7 +1033,7 @@ static void rx_schedule (hrz_dev * dev, |
16959 | { | 16854 | { |
16960 | struct atm_vcc * vcc = ATM_SKB(skb)->vcc; | 16855 | struct atm_vcc * vcc = ATM_SKB(skb)->vcc; |
@@ -16973,9 +16868,9 @@ diff -urNp linux-2.6.29.6/drivers/atm/horizon.c linux-2.6.29.6/drivers/atm/horiz | |||
16973 | 16868 | ||
16974 | // free the skb | 16869 | // free the skb |
16975 | hrz_kfree_skb (skb); | 16870 | hrz_kfree_skb (skb); |
16976 | diff -urNp linux-2.6.29.6/drivers/atm/idt77252.c linux-2.6.29.6/drivers/atm/idt77252.c | 16871 | diff -urNp linux-2.6.30.4/drivers/atm/idt77252.c linux-2.6.30.4/drivers/atm/idt77252.c |
16977 | --- linux-2.6.29.6/drivers/atm/idt77252.c 2009-07-02 19:41:20.000000000 -0400 | 16872 | --- linux-2.6.30.4/drivers/atm/idt77252.c 2009-07-24 17:47:51.000000000 -0400 |
16978 | +++ linux-2.6.29.6/drivers/atm/idt77252.c 2009-07-23 17:34:32.101982733 -0400 | 16873 | +++ linux-2.6.30.4/drivers/atm/idt77252.c 2009-07-30 09:48:09.995868107 -0400 |
16979 | @@ -810,7 +810,7 @@ drain_scq(struct idt77252_dev *card, str | 16874 | @@ -810,7 +810,7 @@ drain_scq(struct idt77252_dev *card, str |
16980 | else | 16875 | else |
16981 | dev_kfree_skb(skb); | 16876 | dev_kfree_skb(skb); |
@@ -17130,10 +17025,10 @@ diff -urNp linux-2.6.29.6/drivers/atm/idt77252.c linux-2.6.29.6/drivers/atm/idt7 | |||
17130 | return -ENOMEM; | 17025 | return -ENOMEM; |
17131 | } | 17026 | } |
17132 | atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc); | 17027 | atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc); |
17133 | diff -urNp linux-2.6.29.6/drivers/atm/iphase.c linux-2.6.29.6/drivers/atm/iphase.c | 17028 | diff -urNp linux-2.6.30.4/drivers/atm/iphase.c linux-2.6.30.4/drivers/atm/iphase.c |
17134 | --- linux-2.6.29.6/drivers/atm/iphase.c 2009-07-02 19:41:20.000000000 -0400 | 17029 | --- linux-2.6.30.4/drivers/atm/iphase.c 2009-07-24 17:47:51.000000000 -0400 |
17135 | +++ linux-2.6.29.6/drivers/atm/iphase.c 2009-07-23 17:34:32.102777929 -0400 | 17030 | +++ linux-2.6.30.4/drivers/atm/iphase.c 2009-07-30 09:48:09.996522301 -0400 |
17136 | @@ -1125,7 +1125,7 @@ static int rx_pkt(struct atm_dev *dev) | 17031 | @@ -1123,7 +1123,7 @@ static int rx_pkt(struct atm_dev *dev) |
17137 | status = (u_short) (buf_desc_ptr->desc_mode); | 17032 | status = (u_short) (buf_desc_ptr->desc_mode); |
17138 | if (status & (RX_CER | RX_PTE | RX_OFL)) | 17033 | if (status & (RX_CER | RX_PTE | RX_OFL)) |
17139 | { | 17034 | { |
@@ -17142,7 +17037,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/iphase.c linux-2.6.29.6/drivers/atm/iphase | |||
17142 | IF_ERR(printk("IA: bad packet, dropping it");) | 17037 | IF_ERR(printk("IA: bad packet, dropping it");) |
17143 | if (status & RX_CER) { | 17038 | if (status & RX_CER) { |
17144 | IF_ERR(printk(" cause: packet CRC error\n");) | 17039 | IF_ERR(printk(" cause: packet CRC error\n");) |
17145 | @@ -1148,7 +1148,7 @@ static int rx_pkt(struct atm_dev *dev) | 17040 | @@ -1146,7 +1146,7 @@ static int rx_pkt(struct atm_dev *dev) |
17146 | len = dma_addr - buf_addr; | 17041 | len = dma_addr - buf_addr; |
17147 | if (len > iadev->rx_buf_sz) { | 17042 | if (len > iadev->rx_buf_sz) { |
17148 | printk("Over %d bytes sdu received, dropped!!!\n", iadev->rx_buf_sz); | 17043 | printk("Over %d bytes sdu received, dropped!!!\n", iadev->rx_buf_sz); |
@@ -17151,7 +17046,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/iphase.c linux-2.6.29.6/drivers/atm/iphase | |||
17151 | goto out_free_desc; | 17046 | goto out_free_desc; |
17152 | } | 17047 | } |
17153 | 17048 | ||
17154 | @@ -1298,7 +1298,7 @@ static void rx_dle_intr(struct atm_dev * | 17049 | @@ -1296,7 +1296,7 @@ static void rx_dle_intr(struct atm_dev * |
17155 | ia_vcc = INPH_IA_VCC(vcc); | 17050 | ia_vcc = INPH_IA_VCC(vcc); |
17156 | if (ia_vcc == NULL) | 17051 | if (ia_vcc == NULL) |
17157 | { | 17052 | { |
@@ -17160,7 +17055,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/iphase.c linux-2.6.29.6/drivers/atm/iphase | |||
17160 | dev_kfree_skb_any(skb); | 17055 | dev_kfree_skb_any(skb); |
17161 | atm_return(vcc, atm_guess_pdu2truesize(len)); | 17056 | atm_return(vcc, atm_guess_pdu2truesize(len)); |
17162 | goto INCR_DLE; | 17057 | goto INCR_DLE; |
17163 | @@ -1310,7 +1310,7 @@ static void rx_dle_intr(struct atm_dev * | 17058 | @@ -1308,7 +1308,7 @@ static void rx_dle_intr(struct atm_dev * |
17164 | if ((length > iadev->rx_buf_sz) || (length > | 17059 | if ((length > iadev->rx_buf_sz) || (length > |
17165 | (skb->len - sizeof(struct cpcs_trailer)))) | 17060 | (skb->len - sizeof(struct cpcs_trailer)))) |
17166 | { | 17061 | { |
@@ -17169,7 +17064,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/iphase.c linux-2.6.29.6/drivers/atm/iphase | |||
17169 | IF_ERR(printk("rx_dle_intr: Bad AAL5 trailer %d (skb len %d)", | 17064 | IF_ERR(printk("rx_dle_intr: Bad AAL5 trailer %d (skb len %d)", |
17170 | length, skb->len);) | 17065 | length, skb->len);) |
17171 | dev_kfree_skb_any(skb); | 17066 | dev_kfree_skb_any(skb); |
17172 | @@ -1326,7 +1326,7 @@ static void rx_dle_intr(struct atm_dev * | 17067 | @@ -1324,7 +1324,7 @@ static void rx_dle_intr(struct atm_dev * |
17173 | 17068 | ||
17174 | IF_RX(printk("rx_dle_intr: skb push");) | 17069 | IF_RX(printk("rx_dle_intr: skb push");) |
17175 | vcc->push(vcc,skb); | 17070 | vcc->push(vcc,skb); |
@@ -17178,7 +17073,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/iphase.c linux-2.6.29.6/drivers/atm/iphase | |||
17178 | iadev->rx_pkt_cnt++; | 17073 | iadev->rx_pkt_cnt++; |
17179 | } | 17074 | } |
17180 | INCR_DLE: | 17075 | INCR_DLE: |
17181 | @@ -2921,7 +2921,7 @@ static int ia_pkt_tx (struct atm_vcc *vc | 17076 | @@ -2919,7 +2919,7 @@ static int ia_pkt_tx (struct atm_vcc *vc |
17182 | if ((desc == 0) || (desc > iadev->num_tx_desc)) | 17077 | if ((desc == 0) || (desc > iadev->num_tx_desc)) |
17183 | { | 17078 | { |
17184 | IF_ERR(printk(DEV_LABEL "invalid desc for send: %d\n", desc);) | 17079 | IF_ERR(printk(DEV_LABEL "invalid desc for send: %d\n", desc);) |
@@ -17187,7 +17082,7 @@ diff -urNp linux-2.6.29.6/drivers/atm/iphase.c linux-2.6.29.6/drivers/atm/iphase | |||
17187 | if (vcc->pop) | 17082 | if (vcc->pop) |
17188 | vcc->pop(vcc, skb); | 17083 | vcc->pop(vcc, skb); |
17189 | else | 17084 | else |
17190 | @@ -3026,7 +3026,7 @@ static int ia_pkt_tx (struct atm_vcc *vc | 17085 | @@ -3024,7 +3024,7 @@ static int ia_pkt_tx (struct atm_vcc *vc |
17191 | ATM_DESC(skb) = vcc->vci; | 17086 | ATM_DESC(skb) = vcc->vci; |
17192 | skb_queue_tail(&iadev->tx_dma_q, skb); | 17087 | skb_queue_tail(&iadev->tx_dma_q, skb); |
17193 | 17088 | ||
@@ -17196,9 +17091,9 @@ diff -urNp linux-2.6.29.6/drivers/atm/iphase.c linux-2.6.29.6/drivers/atm/iphase | |||
17196 | iadev->tx_pkt_cnt++; | 17091 | iadev->tx_pkt_cnt++; |
17197 | /* Increment transaction counter */ | 17092 | /* Increment transaction counter */ |
17198 | writel(2, iadev->dma+IPHASE5575_TX_COUNTER); | 17093 | writel(2, iadev->dma+IPHASE5575_TX_COUNTER); |
17199 | diff -urNp linux-2.6.29.6/drivers/atm/lanai.c linux-2.6.29.6/drivers/atm/lanai.c | 17094 | diff -urNp linux-2.6.30.4/drivers/atm/lanai.c linux-2.6.30.4/drivers/atm/lanai.c |
17200 | --- linux-2.6.29.6/drivers/atm/lanai.c 2009-07-02 19:41:20.000000000 -0400 | 17095 | --- linux-2.6.30.4/drivers/atm/lanai.c 2009-07-24 17:47:51.000000000 -0400 |
17201 | +++ linux-2.6.29.6/drivers/atm/lanai.c 2009-07-23 17:34:32.103950524 -0400 | 17096 | +++ linux-2.6.30.4/drivers/atm/lanai.c 2009-07-30 09:48:09.997872955 -0400 |
17202 | @@ -1305,7 +1305,7 @@ static void lanai_send_one_aal5(struct l | 17097 | @@ -1305,7 +1305,7 @@ static void lanai_send_one_aal5(struct l |
17203 | vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0); | 17098 | vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0); |
17204 | lanai_endtx(lanai, lvcc); | 17099 | lanai_endtx(lanai, lvcc); |
@@ -17253,9 +17148,9 @@ diff -urNp linux-2.6.29.6/drivers/atm/lanai.c linux-2.6.29.6/drivers/atm/lanai.c | |||
17253 | lvcc->stats.x.aal5.service_rxcrc++; | 17148 | lvcc->stats.x.aal5.service_rxcrc++; |
17254 | lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4]; | 17149 | lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4]; |
17255 | cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr); | 17150 | cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr); |
17256 | diff -urNp linux-2.6.29.6/drivers/atm/nicstar.c linux-2.6.29.6/drivers/atm/nicstar.c | 17151 | diff -urNp linux-2.6.30.4/drivers/atm/nicstar.c linux-2.6.30.4/drivers/atm/nicstar.c |
17257 | --- linux-2.6.29.6/drivers/atm/nicstar.c 2009-07-02 19:41:20.000000000 -0400 | 17152 | --- linux-2.6.30.4/drivers/atm/nicstar.c 2009-07-24 17:47:51.000000000 -0400 |
17258 | +++ linux-2.6.29.6/drivers/atm/nicstar.c 2009-07-23 17:34:32.104830194 -0400 | 17153 | +++ linux-2.6.30.4/drivers/atm/nicstar.c 2009-07-30 09:48:09.998576713 -0400 |
17259 | @@ -1723,7 +1723,7 @@ static int ns_send(struct atm_vcc *vcc, | 17154 | @@ -1723,7 +1723,7 @@ static int ns_send(struct atm_vcc *vcc, |
17260 | if ((vc = (vc_map *) vcc->dev_data) == NULL) | 17155 | if ((vc = (vc_map *) vcc->dev_data) == NULL) |
17261 | { | 17156 | { |
@@ -17458,10 +17353,10 @@ diff -urNp linux-2.6.29.6/drivers/atm/nicstar.c linux-2.6.29.6/drivers/atm/nicst | |||
17458 | } | 17353 | } |
17459 | } | 17354 | } |
17460 | 17355 | ||
17461 | diff -urNp linux-2.6.29.6/drivers/atm/solos-pci.c linux-2.6.29.6/drivers/atm/solos-pci.c | 17356 | diff -urNp linux-2.6.30.4/drivers/atm/solos-pci.c linux-2.6.30.4/drivers/atm/solos-pci.c |
17462 | --- linux-2.6.29.6/drivers/atm/solos-pci.c 2009-07-02 19:41:20.000000000 -0400 | 17357 | --- linux-2.6.30.4/drivers/atm/solos-pci.c 2009-07-24 17:47:51.000000000 -0400 |
17463 | +++ linux-2.6.29.6/drivers/atm/solos-pci.c 2009-07-23 17:34:32.104830194 -0400 | 17358 | +++ linux-2.6.30.4/drivers/atm/solos-pci.c 2009-07-30 09:48:09.998576713 -0400 |
17464 | @@ -261,7 +261,7 @@ void solos_bh(unsigned long card_arg) | 17359 | @@ -663,7 +663,7 @@ void solos_bh(unsigned long card_arg) |
17465 | } | 17360 | } |
17466 | atm_charge(vcc, skb->truesize); | 17361 | atm_charge(vcc, skb->truesize); |
17467 | vcc->push(vcc, skb); | 17362 | vcc->push(vcc, skb); |
@@ -17469,31 +17364,19 @@ diff -urNp linux-2.6.29.6/drivers/atm/solos-pci.c linux-2.6.29.6/drivers/atm/sol | |||
17469 | + atomic_inc_unchecked(&vcc->stats->rx); | 17364 | + atomic_inc_unchecked(&vcc->stats->rx); |
17470 | break; | 17365 | break; |
17471 | 17366 | ||
17472 | case PKT_COMMAND: | 17367 | case PKT_STATUS: |
17473 | @@ -487,7 +487,7 @@ static int fpga_tx(struct solos_card *ca | 17368 | @@ -966,7 +966,7 @@ static uint32_t fpga_tx(struct solos_car |
17474 | vcc = *(void **)skb->cb; | 17369 | vcc = SKB_CB(oldskb)->vcc; |
17475 | 17370 | ||
17476 | if (vcc) { | 17371 | if (vcc) { |
17477 | - atomic_inc(&vcc->stats->tx); | 17372 | - atomic_inc(&vcc->stats->tx); |
17478 | + atomic_inc_unchecked(&vcc->stats->tx); | 17373 | + atomic_inc_unchecked(&vcc->stats->tx); |
17479 | solos_pop(vcc, skb); | 17374 | solos_pop(vcc, oldskb); |
17480 | } else | 17375 | } else |
17481 | dev_kfree_skb_irq(skb); | 17376 | dev_kfree_skb_irq(oldskb); |
17482 | @@ -517,9 +517,9 @@ static int psend(struct atm_vcc *vcc, st | 17377 | diff -urNp linux-2.6.30.4/drivers/atm/suni.c linux-2.6.30.4/drivers/atm/suni.c |
17483 | memcpy(skb2->data, skb->data, skb->len); | 17378 | --- linux-2.6.30.4/drivers/atm/suni.c 2009-07-24 17:47:51.000000000 -0400 |
17484 | skb_put(skb2, skb->len); | 17379 | +++ linux-2.6.30.4/drivers/atm/suni.c 2009-07-30 09:48:09.998576713 -0400 |
17485 | vcc->push(vcc, skb2); | ||
17486 | - atomic_inc(&vcc->stats->rx); | ||
17487 | + atomic_inc_unchecked(&vcc->stats->rx); | ||
17488 | } | ||
17489 | - atomic_inc(&vcc->stats->tx); | ||
17490 | + atomic_inc_unchecked(&vcc->stats->tx); | ||
17491 | solos_pop(vcc, skb); | ||
17492 | return 0; | ||
17493 | } | ||
17494 | diff -urNp linux-2.6.29.6/drivers/atm/suni.c linux-2.6.29.6/drivers/atm/suni.c | ||
17495 | --- linux-2.6.29.6/drivers/atm/suni.c 2009-07-02 19:41:20.000000000 -0400 | ||
17496 | +++ linux-2.6.29.6/drivers/atm/suni.c 2009-07-23 17:34:32.104830194 -0400 | ||
17497 | @@ -49,7 +49,7 @@ static DEFINE_SPINLOCK(sunis_lock); | 17380 | @@ -49,7 +49,7 @@ static DEFINE_SPINLOCK(sunis_lock); |
17498 | 17381 | ||
17499 | 17382 | ||
@@ -17503,9 +17386,9 @@ diff -urNp linux-2.6.29.6/drivers/atm/suni.c linux-2.6.29.6/drivers/atm/suni.c | |||
17503 | if (atomic_read(&stats->s) < 0) atomic_set(&stats->s,INT_MAX); | 17386 | if (atomic_read(&stats->s) < 0) atomic_set(&stats->s,INT_MAX); |
17504 | 17387 | ||
17505 | 17388 | ||
17506 | diff -urNp linux-2.6.29.6/drivers/atm/uPD98402.c linux-2.6.29.6/drivers/atm/uPD98402.c | 17389 | diff -urNp linux-2.6.30.4/drivers/atm/uPD98402.c linux-2.6.30.4/drivers/atm/uPD98402.c |
17507 | --- linux-2.6.29.6/drivers/atm/uPD98402.c 2009-07-02 19:41:20.000000000 -0400 | 17390 | --- linux-2.6.30.4/drivers/atm/uPD98402.c 2009-07-24 17:47:51.000000000 -0400 |
17508 | +++ linux-2.6.29.6/drivers/atm/uPD98402.c 2009-07-23 17:34:32.105906562 -0400 | 17391 | +++ linux-2.6.30.4/drivers/atm/uPD98402.c 2009-07-30 09:48:09.999830275 -0400 |
17509 | @@ -41,7 +41,7 @@ static int fetch_stats(struct atm_dev *d | 17392 | @@ -41,7 +41,7 @@ static int fetch_stats(struct atm_dev *d |
17510 | struct sonet_stats tmp; | 17393 | struct sonet_stats tmp; |
17511 | int error = 0; | 17394 | int error = 0; |
@@ -17533,9 +17416,9 @@ diff -urNp linux-2.6.29.6/drivers/atm/uPD98402.c linux-2.6.29.6/drivers/atm/uPD9 | |||
17533 | &PRIV(dev)->sonet_stats.uncorr_hcs); | 17416 | &PRIV(dev)->sonet_stats.uncorr_hcs); |
17534 | } | 17417 | } |
17535 | if ((reason & uPD98402_INT_RFO) && | 17418 | if ((reason & uPD98402_INT_RFO) && |
17536 | diff -urNp linux-2.6.29.6/drivers/atm/zatm.c linux-2.6.29.6/drivers/atm/zatm.c | 17419 | diff -urNp linux-2.6.30.4/drivers/atm/zatm.c linux-2.6.30.4/drivers/atm/zatm.c |
17537 | --- linux-2.6.29.6/drivers/atm/zatm.c 2009-07-02 19:41:20.000000000 -0400 | 17420 | --- linux-2.6.30.4/drivers/atm/zatm.c 2009-07-24 17:47:51.000000000 -0400 |
17538 | +++ linux-2.6.29.6/drivers/atm/zatm.c 2009-07-23 17:34:32.105906562 -0400 | 17421 | +++ linux-2.6.30.4/drivers/atm/zatm.c 2009-07-30 09:48:09.999830275 -0400 |
17539 | @@ -458,7 +458,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy | 17422 | @@ -458,7 +458,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy |
17540 | } | 17423 | } |
17541 | if (!size) { | 17424 | if (!size) { |
@@ -17563,10 +17446,10 @@ diff -urNp linux-2.6.29.6/drivers/atm/zatm.c linux-2.6.29.6/drivers/atm/zatm.c | |||
17563 | wake_up(&zatm_vcc->tx_wait); | 17446 | wake_up(&zatm_vcc->tx_wait); |
17564 | } | 17447 | } |
17565 | 17448 | ||
17566 | diff -urNp linux-2.6.29.6/drivers/block/cciss.c linux-2.6.29.6/drivers/block/cciss.c | 17449 | diff -urNp linux-2.6.30.4/drivers/block/cciss.c linux-2.6.30.4/drivers/block/cciss.c |
17567 | --- linux-2.6.29.6/drivers/block/cciss.c 2009-07-02 19:41:20.000000000 -0400 | 17450 | --- linux-2.6.30.4/drivers/block/cciss.c 2009-07-24 17:47:51.000000000 -0400 |
17568 | +++ linux-2.6.29.6/drivers/block/cciss.c 2009-07-23 18:40:27.585424777 -0400 | 17451 | +++ linux-2.6.30.4/drivers/block/cciss.c 2009-07-30 09:48:10.000592968 -0400 |
17569 | @@ -348,7 +348,7 @@ static void cciss_seq_stop(struct seq_fi | 17452 | @@ -351,7 +351,7 @@ static void cciss_seq_stop(struct seq_fi |
17570 | h->busy_configuring = 0; | 17453 | h->busy_configuring = 0; |
17571 | } | 17454 | } |
17572 | 17455 | ||
@@ -17575,7 +17458,7 @@ diff -urNp linux-2.6.29.6/drivers/block/cciss.c linux-2.6.29.6/drivers/block/cci | |||
17575 | .start = cciss_seq_start, | 17458 | .start = cciss_seq_start, |
17576 | .show = cciss_seq_show, | 17459 | .show = cciss_seq_show, |
17577 | .next = cciss_seq_next, | 17460 | .next = cciss_seq_next, |
17578 | @@ -411,7 +411,7 @@ out: | 17461 | @@ -414,7 +414,7 @@ out: |
17579 | return err; | 17462 | return err; |
17580 | } | 17463 | } |
17581 | 17464 | ||
@@ -17584,9 +17467,9 @@ diff -urNp linux-2.6.29.6/drivers/block/cciss.c linux-2.6.29.6/drivers/block/cci | |||
17584 | .owner = THIS_MODULE, | 17467 | .owner = THIS_MODULE, |
17585 | .open = cciss_seq_open, | 17468 | .open = cciss_seq_open, |
17586 | .read = seq_read, | 17469 | .read = seq_read, |
17587 | diff -urNp linux-2.6.29.6/drivers/char/agp/alpha-agp.c linux-2.6.29.6/drivers/char/agp/alpha-agp.c | 17470 | diff -urNp linux-2.6.30.4/drivers/char/agp/alpha-agp.c linux-2.6.30.4/drivers/char/agp/alpha-agp.c |
17588 | --- linux-2.6.29.6/drivers/char/agp/alpha-agp.c 2009-07-02 19:41:20.000000000 -0400 | 17471 | --- linux-2.6.30.4/drivers/char/agp/alpha-agp.c 2009-07-24 17:47:51.000000000 -0400 |
17589 | +++ linux-2.6.29.6/drivers/char/agp/alpha-agp.c 2009-07-23 18:40:27.599275730 -0400 | 17472 | +++ linux-2.6.30.4/drivers/char/agp/alpha-agp.c 2009-07-30 09:48:10.000592968 -0400 |
17590 | @@ -40,7 +40,7 @@ static struct aper_size_info_fixed alpha | 17473 | @@ -40,7 +40,7 @@ static struct aper_size_info_fixed alpha |
17591 | { 0, 0, 0 }, /* filled in by alpha_core_agp_setup */ | 17474 | { 0, 0, 0 }, /* filled in by alpha_core_agp_setup */ |
17592 | }; | 17475 | }; |
@@ -17596,9 +17479,9 @@ diff -urNp linux-2.6.29.6/drivers/char/agp/alpha-agp.c linux-2.6.29.6/drivers/ch | |||
17596 | .fault = alpha_core_agp_vm_fault, | 17479 | .fault = alpha_core_agp_vm_fault, |
17597 | }; | 17480 | }; |
17598 | 17481 | ||
17599 | diff -urNp linux-2.6.29.6/drivers/char/agp/frontend.c linux-2.6.29.6/drivers/char/agp/frontend.c | 17482 | diff -urNp linux-2.6.30.4/drivers/char/agp/frontend.c linux-2.6.30.4/drivers/char/agp/frontend.c |
17600 | --- linux-2.6.29.6/drivers/char/agp/frontend.c 2009-07-02 19:41:20.000000000 -0400 | 17483 | --- linux-2.6.30.4/drivers/char/agp/frontend.c 2009-07-24 17:47:51.000000000 -0400 |
17601 | +++ linux-2.6.29.6/drivers/char/agp/frontend.c 2009-07-23 17:34:32.106888179 -0400 | 17484 | +++ linux-2.6.30.4/drivers/char/agp/frontend.c 2009-07-30 09:48:10.001783459 -0400 |
17602 | @@ -824,7 +824,7 @@ static int agpioc_reserve_wrap(struct ag | 17485 | @@ -824,7 +824,7 @@ static int agpioc_reserve_wrap(struct ag |
17603 | if (copy_from_user(&reserve, arg, sizeof(struct agp_region))) | 17486 | if (copy_from_user(&reserve, arg, sizeof(struct agp_region))) |
17604 | return -EFAULT; | 17487 | return -EFAULT; |
@@ -17608,10 +17491,10 @@ diff -urNp linux-2.6.29.6/drivers/char/agp/frontend.c linux-2.6.29.6/drivers/cha | |||
17608 | return -EFAULT; | 17491 | return -EFAULT; |
17609 | 17492 | ||
17610 | client = agp_find_client_by_pid(reserve.pid); | 17493 | client = agp_find_client_by_pid(reserve.pid); |
17611 | diff -urNp linux-2.6.29.6/drivers/char/agp/intel-agp.c linux-2.6.29.6/drivers/char/agp/intel-agp.c | 17494 | diff -urNp linux-2.6.30.4/drivers/char/agp/intel-agp.c linux-2.6.30.4/drivers/char/agp/intel-agp.c |
17612 | --- linux-2.6.29.6/drivers/char/agp/intel-agp.c 2009-07-02 19:41:20.000000000 -0400 | 17495 | --- linux-2.6.30.4/drivers/char/agp/intel-agp.c 2009-07-24 17:47:51.000000000 -0400 |
17613 | +++ linux-2.6.29.6/drivers/char/agp/intel-agp.c 2009-07-23 17:34:32.106888179 -0400 | 17496 | +++ linux-2.6.30.4/drivers/char/agp/intel-agp.c 2009-07-30 09:48:10.002661044 -0400 |
17614 | @@ -2369,7 +2369,7 @@ static struct pci_device_id agp_intel_pc | 17497 | @@ -2387,7 +2387,7 @@ static struct pci_device_id agp_intel_pc |
17615 | ID(PCI_DEVICE_ID_INTEL_Q45_HB), | 17498 | ID(PCI_DEVICE_ID_INTEL_Q45_HB), |
17616 | ID(PCI_DEVICE_ID_INTEL_G45_HB), | 17499 | ID(PCI_DEVICE_ID_INTEL_G45_HB), |
17617 | ID(PCI_DEVICE_ID_INTEL_G41_HB), | 17500 | ID(PCI_DEVICE_ID_INTEL_G41_HB), |
@@ -17620,9 +17503,9 @@ diff -urNp linux-2.6.29.6/drivers/char/agp/intel-agp.c linux-2.6.29.6/drivers/ch | |||
17620 | }; | 17503 | }; |
17621 | 17504 | ||
17622 | MODULE_DEVICE_TABLE(pci, agp_intel_pci_table); | 17505 | MODULE_DEVICE_TABLE(pci, agp_intel_pci_table); |
17623 | diff -urNp linux-2.6.29.6/drivers/char/apm-emulation.c linux-2.6.29.6/drivers/char/apm-emulation.c | 17506 | diff -urNp linux-2.6.30.4/drivers/char/apm-emulation.c linux-2.6.30.4/drivers/char/apm-emulation.c |
17624 | --- linux-2.6.29.6/drivers/char/apm-emulation.c 2009-07-02 19:41:20.000000000 -0400 | 17507 | --- linux-2.6.30.4/drivers/char/apm-emulation.c 2009-07-24 17:47:51.000000000 -0400 |
17625 | +++ linux-2.6.29.6/drivers/char/apm-emulation.c 2009-07-23 18:40:27.609518419 -0400 | 17508 | +++ linux-2.6.30.4/drivers/char/apm-emulation.c 2009-07-30 09:48:10.002661044 -0400 |
17626 | @@ -393,7 +393,7 @@ static int apm_open(struct inode * inode | 17509 | @@ -393,7 +393,7 @@ static int apm_open(struct inode * inode |
17627 | return as ? 0 : -ENOMEM; | 17510 | return as ? 0 : -ENOMEM; |
17628 | } | 17511 | } |
@@ -17632,9 +17515,9 @@ diff -urNp linux-2.6.29.6/drivers/char/apm-emulation.c linux-2.6.29.6/drivers/ch | |||
17632 | .owner = THIS_MODULE, | 17515 | .owner = THIS_MODULE, |
17633 | .read = apm_read, | 17516 | .read = apm_read, |
17634 | .poll = apm_poll, | 17517 | .poll = apm_poll, |
17635 | diff -urNp linux-2.6.29.6/drivers/char/bfin-otp.c linux-2.6.29.6/drivers/char/bfin-otp.c | 17518 | diff -urNp linux-2.6.30.4/drivers/char/bfin-otp.c linux-2.6.30.4/drivers/char/bfin-otp.c |
17636 | --- linux-2.6.29.6/drivers/char/bfin-otp.c 2009-07-02 19:41:20.000000000 -0400 | 17519 | --- linux-2.6.30.4/drivers/char/bfin-otp.c 2009-07-24 17:47:51.000000000 -0400 |
17637 | +++ linux-2.6.29.6/drivers/char/bfin-otp.c 2009-07-23 18:40:27.623278888 -0400 | 17520 | +++ linux-2.6.30.4/drivers/char/bfin-otp.c 2009-07-30 09:48:10.003480690 -0400 |
17638 | @@ -133,7 +133,7 @@ static ssize_t bfin_otp_write(struct fil | 17521 | @@ -133,7 +133,7 @@ static ssize_t bfin_otp_write(struct fil |
17639 | # define bfin_otp_write NULL | 17522 | # define bfin_otp_write NULL |
17640 | #endif | 17523 | #endif |
@@ -17644,10 +17527,10 @@ diff -urNp linux-2.6.29.6/drivers/char/bfin-otp.c linux-2.6.29.6/drivers/char/bf | |||
17644 | .owner = THIS_MODULE, | 17527 | .owner = THIS_MODULE, |
17645 | .read = bfin_otp_read, | 17528 | .read = bfin_otp_read, |
17646 | .write = bfin_otp_write, | 17529 | .write = bfin_otp_write, |
17647 | diff -urNp linux-2.6.29.6/drivers/char/hpet.c linux-2.6.29.6/drivers/char/hpet.c | 17530 | diff -urNp linux-2.6.30.4/drivers/char/hpet.c linux-2.6.30.4/drivers/char/hpet.c |
17648 | --- linux-2.6.29.6/drivers/char/hpet.c 2009-07-02 19:41:20.000000000 -0400 | 17531 | --- linux-2.6.30.4/drivers/char/hpet.c 2009-07-24 17:47:51.000000000 -0400 |
17649 | +++ linux-2.6.29.6/drivers/char/hpet.c 2009-07-23 17:34:32.107872457 -0400 | 17532 | +++ linux-2.6.30.4/drivers/char/hpet.c 2009-07-30 09:48:10.003480690 -0400 |
17650 | @@ -975,7 +975,7 @@ static struct acpi_driver hpet_acpi_driv | 17533 | @@ -995,7 +995,7 @@ static struct acpi_driver hpet_acpi_driv |
17651 | }, | 17534 | }, |
17652 | }; | 17535 | }; |
17653 | 17536 | ||
@@ -17656,10 +17539,10 @@ diff -urNp linux-2.6.29.6/drivers/char/hpet.c linux-2.6.29.6/drivers/char/hpet.c | |||
17656 | 17539 | ||
17657 | static int __init hpet_init(void) | 17540 | static int __init hpet_init(void) |
17658 | { | 17541 | { |
17659 | diff -urNp linux-2.6.29.6/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.29.6/drivers/char/ipmi/ipmi_msghandler.c | 17542 | diff -urNp linux-2.6.30.4/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.30.4/drivers/char/ipmi/ipmi_msghandler.c |
17660 | --- linux-2.6.29.6/drivers/char/ipmi/ipmi_msghandler.c 2009-07-02 19:41:20.000000000 -0400 | 17543 | --- linux-2.6.30.4/drivers/char/ipmi/ipmi_msghandler.c 2009-07-24 17:47:51.000000000 -0400 |
17661 | +++ linux-2.6.29.6/drivers/char/ipmi/ipmi_msghandler.c 2009-07-23 17:34:32.108842847 -0400 | 17544 | +++ linux-2.6.30.4/drivers/char/ipmi/ipmi_msghandler.c 2009-07-30 09:48:10.004509700 -0400 |
17662 | @@ -408,7 +408,7 @@ struct ipmi_smi { | 17545 | @@ -413,7 +413,7 @@ struct ipmi_smi { |
17663 | struct proc_dir_entry *proc_dir; | 17546 | struct proc_dir_entry *proc_dir; |
17664 | char proc_dir_name[10]; | 17547 | char proc_dir_name[10]; |
17665 | 17548 | ||
@@ -17668,7 +17551,7 @@ diff -urNp linux-2.6.29.6/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.29.6/dri | |||
17668 | 17551 | ||
17669 | /* | 17552 | /* |
17670 | * run_to_completion duplicate of smb_info, smi_info | 17553 | * run_to_completion duplicate of smb_info, smi_info |
17671 | @@ -441,7 +441,7 @@ static DEFINE_MUTEX(smi_watchers_mutex); | 17554 | @@ -446,7 +446,7 @@ static DEFINE_MUTEX(smi_watchers_mutex); |
17672 | 17555 | ||
17673 | 17556 | ||
17674 | #define ipmi_inc_stat(intf, stat) \ | 17557 | #define ipmi_inc_stat(intf, stat) \ |
@@ -17677,10 +17560,10 @@ diff -urNp linux-2.6.29.6/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.29.6/dri | |||
17677 | #define ipmi_get_stat(intf, stat) \ | 17560 | #define ipmi_get_stat(intf, stat) \ |
17678 | ((unsigned int) atomic_read(&(intf)->stats[IPMI_STAT_ ## stat])) | 17561 | ((unsigned int) atomic_read(&(intf)->stats[IPMI_STAT_ ## stat])) |
17679 | 17562 | ||
17680 | diff -urNp linux-2.6.29.6/drivers/char/ipmi/ipmi_si_intf.c linux-2.6.29.6/drivers/char/ipmi/ipmi_si_intf.c | 17563 | diff -urNp linux-2.6.30.4/drivers/char/ipmi/ipmi_si_intf.c linux-2.6.30.4/drivers/char/ipmi/ipmi_si_intf.c |
17681 | --- linux-2.6.29.6/drivers/char/ipmi/ipmi_si_intf.c 2009-07-02 19:41:20.000000000 -0400 | 17564 | --- linux-2.6.30.4/drivers/char/ipmi/ipmi_si_intf.c 2009-07-24 17:47:51.000000000 -0400 |
17682 | +++ linux-2.6.29.6/drivers/char/ipmi/ipmi_si_intf.c 2009-07-23 17:34:37.458887026 -0400 | 17565 | +++ linux-2.6.30.4/drivers/char/ipmi/ipmi_si_intf.c 2009-07-30 09:48:10.005414644 -0400 |
17683 | @@ -280,7 +280,7 @@ struct smi_info { | 17566 | @@ -277,7 +277,7 @@ struct smi_info { |
17684 | unsigned char slave_addr; | 17567 | unsigned char slave_addr; |
17685 | 17568 | ||
17686 | /* Counters and things for the proc filesystem. */ | 17569 | /* Counters and things for the proc filesystem. */ |
@@ -17689,7 +17572,7 @@ diff -urNp linux-2.6.29.6/drivers/char/ipmi/ipmi_si_intf.c linux-2.6.29.6/driver | |||
17689 | 17572 | ||
17690 | struct task_struct *thread; | 17573 | struct task_struct *thread; |
17691 | 17574 | ||
17692 | @@ -288,7 +288,7 @@ struct smi_info { | 17575 | @@ -285,7 +285,7 @@ struct smi_info { |
17693 | }; | 17576 | }; |
17694 | 17577 | ||
17695 | #define smi_inc_stat(smi, stat) \ | 17578 | #define smi_inc_stat(smi, stat) \ |
@@ -17698,9 +17581,9 @@ diff -urNp linux-2.6.29.6/drivers/char/ipmi/ipmi_si_intf.c linux-2.6.29.6/driver | |||
17698 | #define smi_get_stat(smi, stat) \ | 17581 | #define smi_get_stat(smi, stat) \ |
17699 | ((unsigned int) atomic_read(&(smi)->stats[SI_STAT_ ## stat])) | 17582 | ((unsigned int) atomic_read(&(smi)->stats[SI_STAT_ ## stat])) |
17700 | 17583 | ||
17701 | diff -urNp linux-2.6.29.6/drivers/char/keyboard.c linux-2.6.29.6/drivers/char/keyboard.c | 17584 | diff -urNp linux-2.6.30.4/drivers/char/keyboard.c linux-2.6.30.4/drivers/char/keyboard.c |
17702 | --- linux-2.6.29.6/drivers/char/keyboard.c 2009-07-02 19:41:20.000000000 -0400 | 17585 | --- linux-2.6.30.4/drivers/char/keyboard.c 2009-07-24 17:47:51.000000000 -0400 |
17703 | +++ linux-2.6.29.6/drivers/char/keyboard.c 2009-07-23 17:34:32.110802772 -0400 | 17586 | +++ linux-2.6.30.4/drivers/char/keyboard.c 2009-07-30 11:10:48.982870250 -0400 |
17704 | @@ -635,6 +635,16 @@ static void k_spec(struct vc_data *vc, u | 17587 | @@ -635,6 +635,16 @@ static void k_spec(struct vc_data *vc, u |
17705 | kbd->kbdmode == VC_MEDIUMRAW) && | 17588 | kbd->kbdmode == VC_MEDIUMRAW) && |
17706 | value != KVAL(K_SAK)) | 17589 | value != KVAL(K_SAK)) |
@@ -17727,9 +17610,9 @@ diff -urNp linux-2.6.29.6/drivers/char/keyboard.c linux-2.6.29.6/drivers/char/ke | |||
17727 | }; | 17610 | }; |
17728 | 17611 | ||
17729 | MODULE_DEVICE_TABLE(input, kbd_ids); | 17612 | MODULE_DEVICE_TABLE(input, kbd_ids); |
17730 | diff -urNp linux-2.6.29.6/drivers/char/mem.c linux-2.6.29.6/drivers/char/mem.c | 17613 | diff -urNp linux-2.6.30.4/drivers/char/mem.c linux-2.6.30.4/drivers/char/mem.c |
17731 | --- linux-2.6.29.6/drivers/char/mem.c 2009-07-02 19:41:20.000000000 -0400 | 17614 | --- linux-2.6.30.4/drivers/char/mem.c 2009-07-24 17:47:51.000000000 -0400 |
17732 | +++ linux-2.6.29.6/drivers/char/mem.c 2009-07-23 19:28:45.822497906 -0400 | 17615 | +++ linux-2.6.30.4/drivers/char/mem.c 2009-07-30 12:07:09.578070399 -0400 |
17733 | @@ -18,6 +18,7 @@ | 17616 | @@ -18,6 +18,7 @@ |
17734 | #include <linux/raw.h> | 17617 | #include <linux/raw.h> |
17735 | #include <linux/tty.h> | 17618 | #include <linux/tty.h> |
@@ -17761,16 +17644,16 @@ diff -urNp linux-2.6.29.6/drivers/char/mem.c linux-2.6.29.6/drivers/char/mem.c | |||
17761 | written = 0; | 17644 | written = 0; |
17762 | 17645 | ||
17763 | #ifdef __ARCH_HAS_NO_PAGE_ZERO_MAPPED | 17646 | #ifdef __ARCH_HAS_NO_PAGE_ZERO_MAPPED |
17764 | @@ -325,7 +335,7 @@ static void mmap_mem_close(struct vm_are | 17647 | @@ -301,7 +311,7 @@ static inline int private_mapping_ok(str |
17765 | vma->vm_page_prot); | ||
17766 | } | 17648 | } |
17649 | #endif | ||
17767 | 17650 | ||
17768 | -static struct vm_operations_struct mmap_mem_ops = { | 17651 | -static struct vm_operations_struct mmap_mem_ops = { |
17769 | +static const struct vm_operations_struct mmap_mem_ops = { | 17652 | +static const struct vm_operations_struct mmap_mem_ops = { |
17770 | .open = mmap_mem_open, | ||
17771 | .close = mmap_mem_close, | ||
17772 | #ifdef CONFIG_HAVE_IOREMAP_PROT | 17653 | #ifdef CONFIG_HAVE_IOREMAP_PROT |
17773 | @@ -350,6 +360,11 @@ static int mmap_mem(struct file * file, | 17654 | .access = generic_access_phys |
17655 | #endif | ||
17656 | @@ -324,6 +334,11 @@ static int mmap_mem(struct file * file, | ||
17774 | &vma->vm_page_prot)) | 17657 | &vma->vm_page_prot)) |
17775 | return -EINVAL; | 17658 | return -EINVAL; |
17776 | 17659 | ||
@@ -17782,7 +17665,7 @@ diff -urNp linux-2.6.29.6/drivers/char/mem.c linux-2.6.29.6/drivers/char/mem.c | |||
17782 | vma->vm_page_prot = phys_mem_access_prot(file, vma->vm_pgoff, | 17665 | vma->vm_page_prot = phys_mem_access_prot(file, vma->vm_pgoff, |
17783 | size, | 17666 | size, |
17784 | vma->vm_page_prot); | 17667 | vma->vm_page_prot); |
17785 | @@ -585,6 +600,11 @@ static ssize_t write_kmem(struct file * | 17668 | @@ -558,6 +573,11 @@ static ssize_t write_kmem(struct file * |
17786 | ssize_t written; | 17669 | ssize_t written; |
17787 | char * kbuf; /* k-addr because vwrite() takes vmlist_lock rwlock */ | 17670 | char * kbuf; /* k-addr because vwrite() takes vmlist_lock rwlock */ |
17788 | 17671 | ||
@@ -17794,7 +17677,7 @@ diff -urNp linux-2.6.29.6/drivers/char/mem.c linux-2.6.29.6/drivers/char/mem.c | |||
17794 | if (p < (unsigned long) high_memory) { | 17677 | if (p < (unsigned long) high_memory) { |
17795 | 17678 | ||
17796 | wrote = count; | 17679 | wrote = count; |
17797 | @@ -788,6 +808,16 @@ static loff_t memory_lseek(struct file * | 17680 | @@ -764,6 +784,16 @@ static loff_t memory_lseek(struct file * |
17798 | 17681 | ||
17799 | static int open_port(struct inode * inode, struct file * filp) | 17682 | static int open_port(struct inode * inode, struct file * filp) |
17800 | { | 17683 | { |
@@ -17811,7 +17694,7 @@ diff -urNp linux-2.6.29.6/drivers/char/mem.c linux-2.6.29.6/drivers/char/mem.c | |||
17811 | return capable(CAP_SYS_RAWIO) ? 0 : -EPERM; | 17694 | return capable(CAP_SYS_RAWIO) ? 0 : -EPERM; |
17812 | } | 17695 | } |
17813 | 17696 | ||
17814 | @@ -795,7 +825,6 @@ static int open_port(struct inode * inod | 17697 | @@ -771,7 +801,6 @@ static int open_port(struct inode * inod |
17815 | #define full_lseek null_lseek | 17698 | #define full_lseek null_lseek |
17816 | #define write_zero write_null | 17699 | #define write_zero write_null |
17817 | #define read_full read_zero | 17700 | #define read_full read_zero |
@@ -17819,7 +17702,7 @@ diff -urNp linux-2.6.29.6/drivers/char/mem.c linux-2.6.29.6/drivers/char/mem.c | |||
17819 | #define open_kmem open_mem | 17702 | #define open_kmem open_mem |
17820 | #define open_oldmem open_mem | 17703 | #define open_oldmem open_mem |
17821 | 17704 | ||
17822 | @@ -935,6 +964,11 @@ static int memory_open(struct inode * in | 17705 | @@ -911,6 +940,11 @@ static int memory_open(struct inode * in |
17823 | filp->f_op = &oldmem_fops; | 17706 | filp->f_op = &oldmem_fops; |
17824 | break; | 17707 | break; |
17825 | #endif | 17708 | #endif |
@@ -17831,7 +17714,7 @@ diff -urNp linux-2.6.29.6/drivers/char/mem.c linux-2.6.29.6/drivers/char/mem.c | |||
17831 | default: | 17714 | default: |
17832 | unlock_kernel(); | 17715 | unlock_kernel(); |
17833 | return -ENXIO; | 17716 | return -ENXIO; |
17834 | @@ -971,6 +1005,9 @@ static const struct { | 17717 | @@ -947,6 +981,9 @@ static const struct { |
17835 | #ifdef CONFIG_CRASH_DUMP | 17718 | #ifdef CONFIG_CRASH_DUMP |
17836 | {12,"oldmem", S_IRUSR | S_IWUSR | S_IRGRP, &oldmem_fops}, | 17719 | {12,"oldmem", S_IRUSR | S_IWUSR | S_IRGRP, &oldmem_fops}, |
17837 | #endif | 17720 | #endif |
@@ -17841,9 +17724,9 @@ diff -urNp linux-2.6.29.6/drivers/char/mem.c linux-2.6.29.6/drivers/char/mem.c | |||
17841 | }; | 17724 | }; |
17842 | 17725 | ||
17843 | static struct class *mem_class; | 17726 | static struct class *mem_class; |
17844 | diff -urNp linux-2.6.29.6/drivers/char/misc.c linux-2.6.29.6/drivers/char/misc.c | 17727 | diff -urNp linux-2.6.30.4/drivers/char/misc.c linux-2.6.30.4/drivers/char/misc.c |
17845 | --- linux-2.6.29.6/drivers/char/misc.c 2009-07-02 19:41:20.000000000 -0400 | 17728 | --- linux-2.6.30.4/drivers/char/misc.c 2009-07-24 17:47:51.000000000 -0400 |
17846 | +++ linux-2.6.29.6/drivers/char/misc.c 2009-07-23 18:40:27.623278888 -0400 | 17729 | +++ linux-2.6.30.4/drivers/char/misc.c 2009-07-30 09:48:10.006662764 -0400 |
17847 | @@ -91,7 +91,7 @@ static int misc_seq_show(struct seq_file | 17730 | @@ -91,7 +91,7 @@ static int misc_seq_show(struct seq_file |
17848 | } | 17731 | } |
17849 | 17732 | ||
@@ -17853,9 +17736,9 @@ diff -urNp linux-2.6.29.6/drivers/char/misc.c linux-2.6.29.6/drivers/char/misc.c | |||
17853 | .start = misc_seq_start, | 17736 | .start = misc_seq_start, |
17854 | .next = misc_seq_next, | 17737 | .next = misc_seq_next, |
17855 | .stop = misc_seq_stop, | 17738 | .stop = misc_seq_stop, |
17856 | diff -urNp linux-2.6.29.6/drivers/char/mspec.c linux-2.6.29.6/drivers/char/mspec.c | 17739 | diff -urNp linux-2.6.30.4/drivers/char/mspec.c linux-2.6.30.4/drivers/char/mspec.c |
17857 | --- linux-2.6.29.6/drivers/char/mspec.c 2009-07-02 19:41:20.000000000 -0400 | 17740 | --- linux-2.6.30.4/drivers/char/mspec.c 2009-07-24 17:47:51.000000000 -0400 |
17858 | +++ linux-2.6.29.6/drivers/char/mspec.c 2009-07-23 18:40:27.630131161 -0400 | 17741 | +++ linux-2.6.30.4/drivers/char/mspec.c 2009-07-30 09:48:10.006662764 -0400 |
17859 | @@ -239,7 +239,7 @@ mspec_fault(struct vm_area_struct *vma, | 17742 | @@ -239,7 +239,7 @@ mspec_fault(struct vm_area_struct *vma, |
17860 | return VM_FAULT_NOPAGE; | 17743 | return VM_FAULT_NOPAGE; |
17861 | } | 17744 | } |
@@ -17865,9 +17748,9 @@ diff -urNp linux-2.6.29.6/drivers/char/mspec.c linux-2.6.29.6/drivers/char/mspec | |||
17865 | .open = mspec_open, | 17748 | .open = mspec_open, |
17866 | .close = mspec_close, | 17749 | .close = mspec_close, |
17867 | .fault = mspec_fault, | 17750 | .fault = mspec_fault, |
17868 | diff -urNp linux-2.6.29.6/drivers/char/nvram.c linux-2.6.29.6/drivers/char/nvram.c | 17751 | diff -urNp linux-2.6.30.4/drivers/char/nvram.c linux-2.6.30.4/drivers/char/nvram.c |
17869 | --- linux-2.6.29.6/drivers/char/nvram.c 2009-07-02 19:41:20.000000000 -0400 | 17752 | --- linux-2.6.30.4/drivers/char/nvram.c 2009-07-24 17:47:51.000000000 -0400 |
17870 | +++ linux-2.6.29.6/drivers/char/nvram.c 2009-07-23 17:34:32.110802772 -0400 | 17753 | +++ linux-2.6.30.4/drivers/char/nvram.c 2009-07-30 09:48:10.006662764 -0400 |
17871 | @@ -429,7 +429,10 @@ static const struct file_operations nvra | 17754 | @@ -429,7 +429,10 @@ static const struct file_operations nvra |
17872 | static struct miscdevice nvram_dev = { | 17755 | static struct miscdevice nvram_dev = { |
17873 | NVRAM_MINOR, | 17756 | NVRAM_MINOR, |
@@ -17880,10 +17763,10 @@ diff -urNp linux-2.6.29.6/drivers/char/nvram.c linux-2.6.29.6/drivers/char/nvram | |||
17880 | }; | 17763 | }; |
17881 | 17764 | ||
17882 | static int __init nvram_init(void) | 17765 | static int __init nvram_init(void) |
17883 | diff -urNp linux-2.6.29.6/drivers/char/random.c linux-2.6.29.6/drivers/char/random.c | 17766 | diff -urNp linux-2.6.30.4/drivers/char/random.c linux-2.6.30.4/drivers/char/random.c |
17884 | --- linux-2.6.29.6/drivers/char/random.c 2009-07-02 19:41:20.000000000 -0400 | 17767 | --- linux-2.6.30.4/drivers/char/random.c 2009-07-24 17:47:51.000000000 -0400 |
17885 | +++ linux-2.6.29.6/drivers/char/random.c 2009-07-23 17:34:32.111778535 -0400 | 17768 | +++ linux-2.6.30.4/drivers/char/random.c 2009-07-30 11:10:48.992521357 -0400 |
17886 | @@ -249,8 +249,13 @@ | 17769 | @@ -253,8 +253,13 @@ |
17887 | /* | 17770 | /* |
17888 | * Configuration information | 17771 | * Configuration information |
17889 | */ | 17772 | */ |
@@ -17897,7 +17780,7 @@ diff -urNp linux-2.6.29.6/drivers/char/random.c linux-2.6.29.6/drivers/char/rand | |||
17897 | #define SEC_XFER_SIZE 512 | 17780 | #define SEC_XFER_SIZE 512 |
17898 | 17781 | ||
17899 | /* | 17782 | /* |
17900 | @@ -287,10 +292,17 @@ static struct poolinfo { | 17783 | @@ -291,10 +296,17 @@ static struct poolinfo { |
17901 | int poolwords; | 17784 | int poolwords; |
17902 | int tap1, tap2, tap3, tap4, tap5; | 17785 | int tap1, tap2, tap3, tap4, tap5; |
17903 | } poolinfo_table[] = { | 17786 | } poolinfo_table[] = { |
@@ -17915,7 +17798,7 @@ diff -urNp linux-2.6.29.6/drivers/char/random.c linux-2.6.29.6/drivers/char/rand | |||
17915 | #if 0 | 17798 | #if 0 |
17916 | /* x^2048 + x^1638 + x^1231 + x^819 + x^411 + x + 1 -- 115 */ | 17799 | /* x^2048 + x^1638 + x^1231 + x^819 + x^411 + x + 1 -- 115 */ |
17917 | { 2048, 1638, 1231, 819, 411, 1 }, | 17800 | { 2048, 1638, 1231, 819, 411, 1 }, |
17918 | @@ -1200,7 +1212,7 @@ EXPORT_SYMBOL(generate_random_uuid); | 17801 | @@ -1204,7 +1216,7 @@ EXPORT_SYMBOL(generate_random_uuid); |
17919 | #include <linux/sysctl.h> | 17802 | #include <linux/sysctl.h> |
17920 | 17803 | ||
17921 | static int min_read_thresh = 8, min_write_thresh; | 17804 | static int min_read_thresh = 8, min_write_thresh; |
@@ -17924,9 +17807,9 @@ diff -urNp linux-2.6.29.6/drivers/char/random.c linux-2.6.29.6/drivers/char/rand | |||
17924 | static int max_write_thresh = INPUT_POOL_WORDS * 32; | 17807 | static int max_write_thresh = INPUT_POOL_WORDS * 32; |
17925 | static char sysctl_bootid[16]; | 17808 | static char sysctl_bootid[16]; |
17926 | 17809 | ||
17927 | diff -urNp linux-2.6.29.6/drivers/char/tpm/tpm_bios.c linux-2.6.29.6/drivers/char/tpm/tpm_bios.c | 17810 | diff -urNp linux-2.6.30.4/drivers/char/tpm/tpm_bios.c linux-2.6.30.4/drivers/char/tpm/tpm_bios.c |
17928 | --- linux-2.6.29.6/drivers/char/tpm/tpm_bios.c 2009-07-02 19:41:20.000000000 -0400 | 17811 | --- linux-2.6.30.4/drivers/char/tpm/tpm_bios.c 2009-07-24 17:47:51.000000000 -0400 |
17929 | +++ linux-2.6.29.6/drivers/char/tpm/tpm_bios.c 2009-07-23 18:40:27.636145642 -0400 | 17812 | +++ linux-2.6.30.4/drivers/char/tpm/tpm_bios.c 2009-07-30 09:48:10.007651841 -0400 |
17930 | @@ -343,14 +343,14 @@ static int tpm_ascii_bios_measurements_s | 17813 | @@ -343,14 +343,14 @@ static int tpm_ascii_bios_measurements_s |
17931 | return 0; | 17814 | return 0; |
17932 | } | 17815 | } |
@@ -17944,10 +17827,10 @@ diff -urNp linux-2.6.29.6/drivers/char/tpm/tpm_bios.c linux-2.6.29.6/drivers/cha | |||
17944 | .start = tpm_bios_measurements_start, | 17827 | .start = tpm_bios_measurements_start, |
17945 | .next = tpm_bios_measurements_next, | 17828 | .next = tpm_bios_measurements_next, |
17946 | .stop = tpm_bios_measurements_stop, | 17829 | .stop = tpm_bios_measurements_stop, |
17947 | diff -urNp linux-2.6.29.6/drivers/char/tty_ldisc.c linux-2.6.29.6/drivers/char/tty_ldisc.c | 17830 | diff -urNp linux-2.6.30.4/drivers/char/tty_ldisc.c linux-2.6.30.4/drivers/char/tty_ldisc.c |
17948 | --- linux-2.6.29.6/drivers/char/tty_ldisc.c 2009-07-02 19:41:20.000000000 -0400 | 17831 | --- linux-2.6.30.4/drivers/char/tty_ldisc.c 2009-07-24 17:47:51.000000000 -0400 |
17949 | +++ linux-2.6.29.6/drivers/char/tty_ldisc.c 2009-07-23 17:34:32.112769665 -0400 | 17832 | +++ linux-2.6.30.4/drivers/char/tty_ldisc.c 2009-07-30 09:48:10.008436205 -0400 |
17950 | @@ -74,7 +74,7 @@ int tty_register_ldisc(int disc, struct | 17833 | @@ -73,7 +73,7 @@ int tty_register_ldisc(int disc, struct |
17951 | spin_lock_irqsave(&tty_ldisc_lock, flags); | 17834 | spin_lock_irqsave(&tty_ldisc_lock, flags); |
17952 | tty_ldiscs[disc] = new_ldisc; | 17835 | tty_ldiscs[disc] = new_ldisc; |
17953 | new_ldisc->num = disc; | 17836 | new_ldisc->num = disc; |
@@ -17956,7 +17839,7 @@ diff -urNp linux-2.6.29.6/drivers/char/tty_ldisc.c linux-2.6.29.6/drivers/char/t | |||
17956 | spin_unlock_irqrestore(&tty_ldisc_lock, flags); | 17839 | spin_unlock_irqrestore(&tty_ldisc_lock, flags); |
17957 | 17840 | ||
17958 | return ret; | 17841 | return ret; |
17959 | @@ -102,7 +102,7 @@ int tty_unregister_ldisc(int disc) | 17842 | @@ -101,7 +101,7 @@ int tty_unregister_ldisc(int disc) |
17960 | return -EINVAL; | 17843 | return -EINVAL; |
17961 | 17844 | ||
17962 | spin_lock_irqsave(&tty_ldisc_lock, flags); | 17845 | spin_lock_irqsave(&tty_ldisc_lock, flags); |
@@ -17965,7 +17848,7 @@ diff -urNp linux-2.6.29.6/drivers/char/tty_ldisc.c linux-2.6.29.6/drivers/char/t | |||
17965 | ret = -EBUSY; | 17848 | ret = -EBUSY; |
17966 | else | 17849 | else |
17967 | tty_ldiscs[disc] = NULL; | 17850 | tty_ldiscs[disc] = NULL; |
17968 | @@ -139,7 +139,7 @@ static int tty_ldisc_try_get(int disc, s | 17851 | @@ -138,7 +138,7 @@ static int tty_ldisc_try_get(int disc, s |
17969 | err = -EAGAIN; | 17852 | err = -EAGAIN; |
17970 | else { | 17853 | else { |
17971 | /* lock it */ | 17854 | /* lock it */ |
@@ -17974,7 +17857,7 @@ diff -urNp linux-2.6.29.6/drivers/char/tty_ldisc.c linux-2.6.29.6/drivers/char/t | |||
17974 | ld->ops = ldops; | 17857 | ld->ops = ldops; |
17975 | err = 0; | 17858 | err = 0; |
17976 | } | 17859 | } |
17977 | @@ -196,8 +196,8 @@ static void tty_ldisc_put(struct tty_ldi | 17860 | @@ -195,8 +195,8 @@ static void tty_ldisc_put(struct tty_ldi |
17978 | 17861 | ||
17979 | spin_lock_irqsave(&tty_ldisc_lock, flags); | 17862 | spin_lock_irqsave(&tty_ldisc_lock, flags); |
17980 | ld = tty_ldiscs[disc]; | 17863 | ld = tty_ldiscs[disc]; |
@@ -17985,7 +17868,7 @@ diff -urNp linux-2.6.29.6/drivers/char/tty_ldisc.c linux-2.6.29.6/drivers/char/t | |||
17985 | module_put(ld->owner); | 17868 | module_put(ld->owner); |
17986 | spin_unlock_irqrestore(&tty_ldisc_lock, flags); | 17869 | spin_unlock_irqrestore(&tty_ldisc_lock, flags); |
17987 | } | 17870 | } |
17988 | @@ -264,7 +264,7 @@ const struct file_operations tty_ldiscs_ | 17871 | @@ -263,7 +263,7 @@ const struct file_operations tty_ldiscs_ |
17989 | 17872 | ||
17990 | static void tty_ldisc_assign(struct tty_struct *tty, struct tty_ldisc *ld) | 17873 | static void tty_ldisc_assign(struct tty_struct *tty, struct tty_ldisc *ld) |
17991 | { | 17874 | { |
@@ -17994,7 +17877,7 @@ diff -urNp linux-2.6.29.6/drivers/char/tty_ldisc.c linux-2.6.29.6/drivers/char/t | |||
17994 | tty->ldisc = *ld; | 17877 | tty->ldisc = *ld; |
17995 | } | 17878 | } |
17996 | 17879 | ||
17997 | @@ -289,7 +289,7 @@ static int tty_ldisc_try(struct tty_stru | 17880 | @@ -288,7 +288,7 @@ static int tty_ldisc_try(struct tty_stru |
17998 | spin_lock_irqsave(&tty_ldisc_lock, flags); | 17881 | spin_lock_irqsave(&tty_ldisc_lock, flags); |
17999 | ld = &tty->ldisc; | 17882 | ld = &tty->ldisc; |
18000 | if (test_bit(TTY_LDISC, &tty->flags)) { | 17883 | if (test_bit(TTY_LDISC, &tty->flags)) { |
@@ -18003,7 +17886,7 @@ diff -urNp linux-2.6.29.6/drivers/char/tty_ldisc.c linux-2.6.29.6/drivers/char/t | |||
18003 | ret = 1; | 17886 | ret = 1; |
18004 | } | 17887 | } |
18005 | spin_unlock_irqrestore(&tty_ldisc_lock, flags); | 17888 | spin_unlock_irqrestore(&tty_ldisc_lock, flags); |
18006 | @@ -316,7 +316,7 @@ struct tty_ldisc *tty_ldisc_ref_wait(str | 17889 | @@ -315,7 +315,7 @@ struct tty_ldisc *tty_ldisc_ref_wait(str |
18007 | { | 17890 | { |
18008 | /* wait_event is a macro */ | 17891 | /* wait_event is a macro */ |
18009 | wait_event(tty_ldisc_wait, tty_ldisc_try(tty)); | 17892 | wait_event(tty_ldisc_wait, tty_ldisc_try(tty)); |
@@ -18012,7 +17895,7 @@ diff -urNp linux-2.6.29.6/drivers/char/tty_ldisc.c linux-2.6.29.6/drivers/char/t | |||
18012 | return &tty->ldisc; | 17895 | return &tty->ldisc; |
18013 | } | 17896 | } |
18014 | 17897 | ||
18015 | @@ -359,11 +359,9 @@ void tty_ldisc_deref(struct tty_ldisc *l | 17898 | @@ -358,11 +358,9 @@ void tty_ldisc_deref(struct tty_ldisc *l |
18016 | BUG_ON(ld == NULL); | 17899 | BUG_ON(ld == NULL); |
18017 | 17900 | ||
18018 | spin_lock_irqsave(&tty_ldisc_lock, flags); | 17901 | spin_lock_irqsave(&tty_ldisc_lock, flags); |
@@ -18026,7 +17909,7 @@ diff -urNp linux-2.6.29.6/drivers/char/tty_ldisc.c linux-2.6.29.6/drivers/char/t | |||
18026 | wake_up(&tty_ldisc_wait); | 17909 | wake_up(&tty_ldisc_wait); |
18027 | spin_unlock_irqrestore(&tty_ldisc_lock, flags); | 17910 | spin_unlock_irqrestore(&tty_ldisc_lock, flags); |
18028 | } | 17911 | } |
18029 | @@ -507,8 +505,8 @@ restart: | 17912 | @@ -506,8 +504,8 @@ restart: |
18030 | clear_bit(TTY_LDISC, &o_tty->flags); | 17913 | clear_bit(TTY_LDISC, &o_tty->flags); |
18031 | 17914 | ||
18032 | spin_lock_irqsave(&tty_ldisc_lock, flags); | 17915 | spin_lock_irqsave(&tty_ldisc_lock, flags); |
@@ -18037,7 +17920,7 @@ diff -urNp linux-2.6.29.6/drivers/char/tty_ldisc.c linux-2.6.29.6/drivers/char/t | |||
18037 | /* Free the new ldisc we grabbed. Must drop the lock | 17920 | /* Free the new ldisc we grabbed. Must drop the lock |
18038 | first. */ | 17921 | first. */ |
18039 | spin_unlock_irqrestore(&tty_ldisc_lock, flags); | 17922 | spin_unlock_irqrestore(&tty_ldisc_lock, flags); |
18040 | @@ -520,14 +518,14 @@ restart: | 17923 | @@ -519,14 +517,14 @@ restart: |
18041 | * and retries if we made tty_ldisc_wait() smarter. | 17924 | * and retries if we made tty_ldisc_wait() smarter. |
18042 | * That is up for discussion. | 17925 | * That is up for discussion. |
18043 | */ | 17926 | */ |
@@ -18055,7 +17938,7 @@ diff -urNp linux-2.6.29.6/drivers/char/tty_ldisc.c linux-2.6.29.6/drivers/char/t | |||
18055 | return -ERESTARTSYS; | 17938 | return -ERESTARTSYS; |
18056 | goto restart; | 17939 | goto restart; |
18057 | } | 17940 | } |
18058 | @@ -670,9 +668,9 @@ void tty_ldisc_release(struct tty_struct | 17941 | @@ -669,9 +667,9 @@ void tty_ldisc_release(struct tty_struct |
18059 | * side is zero. | 17942 | * side is zero. |
18060 | */ | 17943 | */ |
18061 | spin_lock_irqsave(&tty_ldisc_lock, flags); | 17944 | spin_lock_irqsave(&tty_ldisc_lock, flags); |
@@ -18067,9 +17950,9 @@ diff -urNp linux-2.6.29.6/drivers/char/tty_ldisc.c linux-2.6.29.6/drivers/char/t | |||
18067 | spin_lock_irqsave(&tty_ldisc_lock, flags); | 17950 | spin_lock_irqsave(&tty_ldisc_lock, flags); |
18068 | } | 17951 | } |
18069 | spin_unlock_irqrestore(&tty_ldisc_lock, flags); | 17952 | spin_unlock_irqrestore(&tty_ldisc_lock, flags); |
18070 | diff -urNp linux-2.6.29.6/drivers/char/vt_ioctl.c linux-2.6.29.6/drivers/char/vt_ioctl.c | 17953 | diff -urNp linux-2.6.30.4/drivers/char/vt_ioctl.c linux-2.6.30.4/drivers/char/vt_ioctl.c |
18071 | --- linux-2.6.29.6/drivers/char/vt_ioctl.c 2009-07-02 19:41:20.000000000 -0400 | 17954 | --- linux-2.6.30.4/drivers/char/vt_ioctl.c 2009-07-24 17:47:51.000000000 -0400 |
18072 | +++ linux-2.6.29.6/drivers/char/vt_ioctl.c 2009-07-23 17:34:32.112769665 -0400 | 17955 | +++ linux-2.6.30.4/drivers/char/vt_ioctl.c 2009-07-30 11:10:49.002716445 -0400 |
18073 | @@ -96,6 +96,12 @@ do_kdsk_ioctl(int cmd, struct kbentry __ | 17956 | @@ -96,6 +96,12 @@ do_kdsk_ioctl(int cmd, struct kbentry __ |
18074 | case KDSKBENT: | 17957 | case KDSKBENT: |
18075 | if (!perm) | 17958 | if (!perm) |
@@ -18097,9 +17980,9 @@ diff -urNp linux-2.6.29.6/drivers/char/vt_ioctl.c linux-2.6.29.6/drivers/char/vt | |||
18097 | q = func_table[i]; | 17980 | q = func_table[i]; |
18098 | first_free = funcbufptr + (funcbufsize - funcbufleft); | 17981 | first_free = funcbufptr + (funcbufsize - funcbufleft); |
18099 | for (j = i+1; j < MAX_NR_FUNC && !func_table[j]; j++) | 17982 | for (j = i+1; j < MAX_NR_FUNC && !func_table[j]; j++) |
18100 | diff -urNp linux-2.6.29.6/drivers/char/xilinx_hwicap/xilinx_hwicap.c linux-2.6.29.6/drivers/char/xilinx_hwicap/xilinx_hwicap.c | 17983 | diff -urNp linux-2.6.30.4/drivers/char/xilinx_hwicap/xilinx_hwicap.c linux-2.6.30.4/drivers/char/xilinx_hwicap/xilinx_hwicap.c |
18101 | --- linux-2.6.29.6/drivers/char/xilinx_hwicap/xilinx_hwicap.c 2009-07-02 19:41:20.000000000 -0400 | 17984 | --- linux-2.6.30.4/drivers/char/xilinx_hwicap/xilinx_hwicap.c 2009-07-24 17:47:51.000000000 -0400 |
18102 | +++ linux-2.6.29.6/drivers/char/xilinx_hwicap/xilinx_hwicap.c 2009-07-23 18:40:27.636398793 -0400 | 17985 | +++ linux-2.6.30.4/drivers/char/xilinx_hwicap/xilinx_hwicap.c 2009-07-30 09:48:10.008436205 -0400 |
18103 | @@ -559,7 +559,7 @@ static int hwicap_release(struct inode * | 17986 | @@ -559,7 +559,7 @@ static int hwicap_release(struct inode * |
18104 | return status; | 17987 | return status; |
18105 | } | 17988 | } |
@@ -18109,10 +17992,10 @@ diff -urNp linux-2.6.29.6/drivers/char/xilinx_hwicap/xilinx_hwicap.c linux-2.6.2 | |||
18109 | .owner = THIS_MODULE, | 17992 | .owner = THIS_MODULE, |
18110 | .write = hwicap_write, | 17993 | .write = hwicap_write, |
18111 | .read = hwicap_read, | 17994 | .read = hwicap_read, |
18112 | diff -urNp linux-2.6.29.6/drivers/edac/edac_core.h linux-2.6.29.6/drivers/edac/edac_core.h | 17995 | diff -urNp linux-2.6.30.4/drivers/edac/edac_core.h linux-2.6.30.4/drivers/edac/edac_core.h |
18113 | --- linux-2.6.29.6/drivers/edac/edac_core.h 2009-07-02 19:41:20.000000000 -0400 | 17996 | --- linux-2.6.30.4/drivers/edac/edac_core.h 2009-07-24 17:47:51.000000000 -0400 |
18114 | +++ linux-2.6.29.6/drivers/edac/edac_core.h 2009-07-23 17:34:32.113723476 -0400 | 17997 | +++ linux-2.6.30.4/drivers/edac/edac_core.h 2009-07-30 09:48:10.008436205 -0400 |
18115 | @@ -85,11 +85,11 @@ extern int edac_debug_level; | 17998 | @@ -98,11 +98,11 @@ extern int edac_debug_level; |
18116 | 17999 | ||
18117 | #else /* !CONFIG_EDAC_DEBUG */ | 18000 | #else /* !CONFIG_EDAC_DEBUG */ |
18118 | 18001 | ||
@@ -18129,10 +18012,10 @@ diff -urNp linux-2.6.29.6/drivers/edac/edac_core.h linux-2.6.29.6/drivers/edac/e | |||
18129 | 18012 | ||
18130 | #endif /* !CONFIG_EDAC_DEBUG */ | 18013 | #endif /* !CONFIG_EDAC_DEBUG */ |
18131 | 18014 | ||
18132 | diff -urNp linux-2.6.29.6/drivers/firmware/dmi_scan.c linux-2.6.29.6/drivers/firmware/dmi_scan.c | 18015 | diff -urNp linux-2.6.30.4/drivers/firmware/dmi_scan.c linux-2.6.30.4/drivers/firmware/dmi_scan.c |
18133 | --- linux-2.6.29.6/drivers/firmware/dmi_scan.c 2009-07-02 19:41:20.000000000 -0400 | 18016 | --- linux-2.6.30.4/drivers/firmware/dmi_scan.c 2009-07-24 17:47:51.000000000 -0400 |
18134 | +++ linux-2.6.29.6/drivers/firmware/dmi_scan.c 2009-07-23 17:34:32.113723476 -0400 | 18017 | +++ linux-2.6.30.4/drivers/firmware/dmi_scan.c 2009-07-30 09:48:10.009412825 -0400 |
18135 | @@ -389,11 +389,6 @@ void __init dmi_scan_machine(void) | 18018 | @@ -391,11 +391,6 @@ void __init dmi_scan_machine(void) |
18136 | } | 18019 | } |
18137 | } | 18020 | } |
18138 | else { | 18021 | else { |
@@ -18144,10 +18027,10 @@ diff -urNp linux-2.6.29.6/drivers/firmware/dmi_scan.c linux-2.6.29.6/drivers/fir | |||
18144 | p = dmi_ioremap(0xF0000, 0x10000); | 18027 | p = dmi_ioremap(0xF0000, 0x10000); |
18145 | if (p == NULL) | 18028 | if (p == NULL) |
18146 | goto error; | 18029 | goto error; |
18147 | diff -urNp linux-2.6.29.6/drivers/gpio/gpiolib.c linux-2.6.29.6/drivers/gpio/gpiolib.c | 18030 | diff -urNp linux-2.6.30.4/drivers/gpio/gpiolib.c linux-2.6.30.4/drivers/gpio/gpiolib.c |
18148 | --- linux-2.6.29.6/drivers/gpio/gpiolib.c 2009-07-02 19:41:20.000000000 -0400 | 18031 | --- linux-2.6.30.4/drivers/gpio/gpiolib.c 2009-07-24 17:47:51.000000000 -0400 |
18149 | +++ linux-2.6.29.6/drivers/gpio/gpiolib.c 2009-07-23 18:40:27.648309826 -0400 | 18032 | +++ linux-2.6.30.4/drivers/gpio/gpiolib.c 2009-07-30 09:48:10.009412825 -0400 |
18150 | @@ -1235,7 +1235,7 @@ static int gpiolib_open(struct inode *in | 18033 | @@ -1244,7 +1244,7 @@ static int gpiolib_open(struct inode *in |
18151 | return single_open(file, gpiolib_show, NULL); | 18034 | return single_open(file, gpiolib_show, NULL); |
18152 | } | 18035 | } |
18153 | 18036 | ||
@@ -18156,10 +18039,10 @@ diff -urNp linux-2.6.29.6/drivers/gpio/gpiolib.c linux-2.6.29.6/drivers/gpio/gpi | |||
18156 | .open = gpiolib_open, | 18039 | .open = gpiolib_open, |
18157 | .read = seq_read, | 18040 | .read = seq_read, |
18158 | .llseek = seq_lseek, | 18041 | .llseek = seq_lseek, |
18159 | diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_drv.c linux-2.6.29.6/drivers/gpu/drm/drm_drv.c | 18042 | diff -urNp linux-2.6.30.4/drivers/gpu/drm/drm_drv.c linux-2.6.30.4/drivers/gpu/drm/drm_drv.c |
18160 | --- linux-2.6.29.6/drivers/gpu/drm/drm_drv.c 2009-07-02 19:41:20.000000000 -0400 | 18043 | --- linux-2.6.30.4/drivers/gpu/drm/drm_drv.c 2009-07-24 17:47:51.000000000 -0400 |
18161 | +++ linux-2.6.29.6/drivers/gpu/drm/drm_drv.c 2009-07-23 17:34:32.113723476 -0400 | 18044 | +++ linux-2.6.30.4/drivers/gpu/drm/drm_drv.c 2009-07-30 09:48:10.010417819 -0400 |
18162 | @@ -461,7 +461,7 @@ int drm_ioctl(struct inode *inode, struc | 18045 | @@ -425,7 +425,7 @@ int drm_ioctl(struct inode *inode, struc |
18163 | char *kdata = NULL; | 18046 | char *kdata = NULL; |
18164 | 18047 | ||
18165 | atomic_inc(&dev->ioctl_count); | 18048 | atomic_inc(&dev->ioctl_count); |
@@ -18168,9 +18051,9 @@ diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_drv.c linux-2.6.29.6/drivers/gpu/d | |||
18168 | ++file_priv->ioctl_count; | 18051 | ++file_priv->ioctl_count; |
18169 | 18052 | ||
18170 | DRM_DEBUG("pid=%d, cmd=0x%02x, nr=0x%02x, dev 0x%lx, auth=%d\n", | 18053 | DRM_DEBUG("pid=%d, cmd=0x%02x, nr=0x%02x, dev 0x%lx, auth=%d\n", |
18171 | diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_fops.c linux-2.6.29.6/drivers/gpu/drm/drm_fops.c | 18054 | diff -urNp linux-2.6.30.4/drivers/gpu/drm/drm_fops.c linux-2.6.30.4/drivers/gpu/drm/drm_fops.c |
18172 | --- linux-2.6.29.6/drivers/gpu/drm/drm_fops.c 2009-07-02 19:41:20.000000000 -0400 | 18055 | --- linux-2.6.30.4/drivers/gpu/drm/drm_fops.c 2009-07-24 17:47:51.000000000 -0400 |
18173 | +++ linux-2.6.29.6/drivers/gpu/drm/drm_fops.c 2009-07-23 17:34:32.113723476 -0400 | 18056 | +++ linux-2.6.30.4/drivers/gpu/drm/drm_fops.c 2009-07-30 09:48:10.010417819 -0400 |
18174 | @@ -130,9 +130,9 @@ int drm_open(struct inode *inode, struct | 18057 | @@ -130,9 +130,9 @@ int drm_open(struct inode *inode, struct |
18175 | 18058 | ||
18176 | retcode = drm_open_helper(inode, filp, dev); | 18059 | retcode = drm_open_helper(inode, filp, dev); |
@@ -18183,7 +18066,7 @@ diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_fops.c linux-2.6.29.6/drivers/gpu/ | |||
18183 | spin_unlock(&dev->count_lock); | 18066 | spin_unlock(&dev->count_lock); |
18184 | retcode = drm_setup(dev); | 18067 | retcode = drm_setup(dev); |
18185 | goto out; | 18068 | goto out; |
18186 | @@ -436,7 +436,7 @@ int drm_release(struct inode *inode, str | 18069 | @@ -433,7 +433,7 @@ int drm_release(struct inode *inode, str |
18187 | 18070 | ||
18188 | lock_kernel(); | 18071 | lock_kernel(); |
18189 | 18072 | ||
@@ -18192,7 +18075,7 @@ diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_fops.c linux-2.6.29.6/drivers/gpu/ | |||
18192 | 18075 | ||
18193 | if (dev->driver->preclose) | 18076 | if (dev->driver->preclose) |
18194 | dev->driver->preclose(dev, file_priv); | 18077 | dev->driver->preclose(dev, file_priv); |
18195 | @@ -448,7 +448,7 @@ int drm_release(struct inode *inode, str | 18078 | @@ -445,7 +445,7 @@ int drm_release(struct inode *inode, str |
18196 | DRM_DEBUG("pid = %d, device = 0x%lx, open_count = %d\n", | 18079 | DRM_DEBUG("pid = %d, device = 0x%lx, open_count = %d\n", |
18197 | task_pid_nr(current), | 18080 | task_pid_nr(current), |
18198 | (long)old_encode_dev(file_priv->minor->device), | 18081 | (long)old_encode_dev(file_priv->minor->device), |
@@ -18201,7 +18084,7 @@ diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_fops.c linux-2.6.29.6/drivers/gpu/ | |||
18201 | 18084 | ||
18202 | /* if the master has gone away we can't do anything with the lock */ | 18085 | /* if the master has gone away we can't do anything with the lock */ |
18203 | if (file_priv->minor->master) | 18086 | if (file_priv->minor->master) |
18204 | @@ -525,9 +525,9 @@ int drm_release(struct inode *inode, str | 18087 | @@ -522,9 +522,9 @@ int drm_release(struct inode *inode, str |
18205 | * End inline drm_release | 18088 | * End inline drm_release |
18206 | */ | 18089 | */ |
18207 | 18090 | ||
@@ -18213,9 +18096,9 @@ diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_fops.c linux-2.6.29.6/drivers/gpu/ | |||
18213 | if (atomic_read(&dev->ioctl_count)) { | 18096 | if (atomic_read(&dev->ioctl_count)) { |
18214 | DRM_ERROR("Device busy: %d\n", | 18097 | DRM_ERROR("Device busy: %d\n", |
18215 | atomic_read(&dev->ioctl_count)); | 18098 | atomic_read(&dev->ioctl_count)); |
18216 | diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_lock.c linux-2.6.29.6/drivers/gpu/drm/drm_lock.c | 18099 | diff -urNp linux-2.6.30.4/drivers/gpu/drm/drm_lock.c linux-2.6.30.4/drivers/gpu/drm/drm_lock.c |
18217 | --- linux-2.6.29.6/drivers/gpu/drm/drm_lock.c 2009-07-02 19:41:20.000000000 -0400 | 18100 | --- linux-2.6.30.4/drivers/gpu/drm/drm_lock.c 2009-07-24 17:47:51.000000000 -0400 |
18218 | +++ linux-2.6.29.6/drivers/gpu/drm/drm_lock.c 2009-07-23 17:34:32.114929924 -0400 | 18101 | +++ linux-2.6.30.4/drivers/gpu/drm/drm_lock.c 2009-07-30 09:48:10.010417819 -0400 |
18219 | @@ -87,7 +87,7 @@ int drm_lock(struct drm_device *dev, voi | 18102 | @@ -87,7 +87,7 @@ int drm_lock(struct drm_device *dev, voi |
18220 | if (drm_lock_take(&master->lock, lock->context)) { | 18103 | if (drm_lock_take(&master->lock, lock->context)) { |
18221 | master->lock.file_priv = file_priv; | 18104 | master->lock.file_priv = file_priv; |
@@ -18234,10 +18117,10 @@ diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_lock.c linux-2.6.29.6/drivers/gpu/ | |||
18234 | 18117 | ||
18235 | /* kernel_context_switch isn't used by any of the x86 drm | 18118 | /* kernel_context_switch isn't used by any of the x86 drm |
18236 | * modules but is required by the Sparc driver. | 18119 | * modules but is required by the Sparc driver. |
18237 | diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_vm.c linux-2.6.29.6/drivers/gpu/drm/drm_vm.c | 18120 | diff -urNp linux-2.6.30.4/drivers/gpu/drm/drm_vm.c linux-2.6.30.4/drivers/gpu/drm/drm_vm.c |
18238 | --- linux-2.6.29.6/drivers/gpu/drm/drm_vm.c 2009-07-02 19:41:20.000000000 -0400 | 18121 | --- linux-2.6.30.4/drivers/gpu/drm/drm_vm.c 2009-07-24 17:47:51.000000000 -0400 |
18239 | +++ linux-2.6.29.6/drivers/gpu/drm/drm_vm.c 2009-07-23 18:40:27.661305427 -0400 | 18122 | +++ linux-2.6.30.4/drivers/gpu/drm/drm_vm.c 2009-07-30 09:48:10.011410038 -0400 |
18240 | @@ -367,28 +367,28 @@ static int drm_vm_sg_fault(struct vm_are | 18123 | @@ -369,28 +369,28 @@ static int drm_vm_sg_fault(struct vm_are |
18241 | } | 18124 | } |
18242 | 18125 | ||
18243 | /** AGP virtual memory operations */ | 18126 | /** AGP virtual memory operations */ |
@@ -18270,9 +18153,9 @@ diff -urNp linux-2.6.29.6/drivers/gpu/drm/drm_vm.c linux-2.6.29.6/drivers/gpu/dr | |||
18270 | .fault = drm_vm_sg_fault, | 18153 | .fault = drm_vm_sg_fault, |
18271 | .open = drm_vm_open, | 18154 | .open = drm_vm_open, |
18272 | .close = drm_vm_close, | 18155 | .close = drm_vm_close, |
18273 | diff -urNp linux-2.6.29.6/drivers/gpu/drm/i810/i810_dma.c linux-2.6.29.6/drivers/gpu/drm/i810/i810_dma.c | 18156 | diff -urNp linux-2.6.30.4/drivers/gpu/drm/i810/i810_dma.c linux-2.6.30.4/drivers/gpu/drm/i810/i810_dma.c |
18274 | --- linux-2.6.29.6/drivers/gpu/drm/i810/i810_dma.c 2009-07-02 19:41:20.000000000 -0400 | 18157 | --- linux-2.6.30.4/drivers/gpu/drm/i810/i810_dma.c 2009-07-24 17:47:51.000000000 -0400 |
18275 | +++ linux-2.6.29.6/drivers/gpu/drm/i810/i810_dma.c 2009-07-23 17:34:32.114929924 -0400 | 18158 | +++ linux-2.6.30.4/drivers/gpu/drm/i810/i810_dma.c 2009-07-30 09:48:10.011410038 -0400 |
18276 | @@ -954,8 +954,8 @@ static int i810_dma_vertex(struct drm_de | 18159 | @@ -954,8 +954,8 @@ static int i810_dma_vertex(struct drm_de |
18277 | dma->buflist[vertex->idx], | 18160 | dma->buflist[vertex->idx], |
18278 | vertex->discard, vertex->used); | 18161 | vertex->discard, vertex->used); |
@@ -18295,11 +18178,11 @@ diff -urNp linux-2.6.29.6/drivers/gpu/drm/i810/i810_dma.c linux-2.6.29.6/drivers | |||
18295 | sarea_priv->last_enqueue = dev_priv->counter - 1; | 18178 | sarea_priv->last_enqueue = dev_priv->counter - 1; |
18296 | sarea_priv->last_dispatch = (int)hw_status[5]; | 18179 | sarea_priv->last_dispatch = (int)hw_status[5]; |
18297 | 18180 | ||
18298 | diff -urNp linux-2.6.29.6/drivers/gpu/drm/i915/i915_drv.c linux-2.6.29.6/drivers/gpu/drm/i915/i915_drv.c | 18181 | diff -urNp linux-2.6.30.4/drivers/gpu/drm/i915/i915_drv.c linux-2.6.30.4/drivers/gpu/drm/i915/i915_drv.c |
18299 | --- linux-2.6.29.6/drivers/gpu/drm/i915/i915_drv.c 2009-07-02 19:41:20.000000000 -0400 | 18182 | --- linux-2.6.30.4/drivers/gpu/drm/i915/i915_drv.c 2009-07-24 17:47:51.000000000 -0400 |
18300 | +++ linux-2.6.29.6/drivers/gpu/drm/i915/i915_drv.c 2009-07-23 18:40:27.674490572 -0400 | 18183 | +++ linux-2.6.30.4/drivers/gpu/drm/i915/i915_drv.c 2009-07-30 12:07:09.579971370 -0400 |
18301 | @@ -117,7 +117,7 @@ static int i915_resume(struct drm_device | 18184 | @@ -149,7 +149,7 @@ i915_pci_resume(struct pci_dev *pdev) |
18302 | return ret; | 18185 | return i915_resume(dev); |
18303 | } | 18186 | } |
18304 | 18187 | ||
18305 | -static struct vm_operations_struct i915_gem_vm_ops = { | 18188 | -static struct vm_operations_struct i915_gem_vm_ops = { |
@@ -18307,10 +18190,10 @@ diff -urNp linux-2.6.29.6/drivers/gpu/drm/i915/i915_drv.c linux-2.6.29.6/drivers | |||
18307 | .fault = i915_gem_fault, | 18190 | .fault = i915_gem_fault, |
18308 | .open = drm_gem_vm_open, | 18191 | .open = drm_gem_vm_open, |
18309 | .close = drm_gem_vm_close, | 18192 | .close = drm_gem_vm_close, |
18310 | diff -urNp linux-2.6.29.6/drivers/hwmon/fschmd.c linux-2.6.29.6/drivers/hwmon/fschmd.c | 18193 | diff -urNp linux-2.6.30.4/drivers/hwmon/fschmd.c linux-2.6.30.4/drivers/hwmon/fschmd.c |
18311 | --- linux-2.6.29.6/drivers/hwmon/fschmd.c 2009-07-02 19:41:20.000000000 -0400 | 18194 | --- linux-2.6.30.4/drivers/hwmon/fschmd.c 2009-07-24 17:47:51.000000000 -0400 |
18312 | +++ linux-2.6.29.6/drivers/hwmon/fschmd.c 2009-07-23 18:40:27.674490572 -0400 | 18195 | +++ linux-2.6.30.4/drivers/hwmon/fschmd.c 2009-07-30 09:48:10.011410038 -0400 |
18313 | @@ -840,7 +840,7 @@ static int watchdog_ioctl(struct inode * | 18196 | @@ -915,7 +915,7 @@ static int watchdog_ioctl(struct inode * |
18314 | return ret; | 18197 | return ret; |
18315 | } | 18198 | } |
18316 | 18199 | ||
@@ -18319,9 +18202,9 @@ diff -urNp linux-2.6.29.6/drivers/hwmon/fschmd.c linux-2.6.29.6/drivers/hwmon/fs | |||
18319 | .owner = THIS_MODULE, | 18202 | .owner = THIS_MODULE, |
18320 | .llseek = no_llseek, | 18203 | .llseek = no_llseek, |
18321 | .open = watchdog_open, | 18204 | .open = watchdog_open, |
18322 | diff -urNp linux-2.6.29.6/drivers/hwmon/fscpos.c linux-2.6.29.6/drivers/hwmon/fscpos.c | 18205 | diff -urNp linux-2.6.30.4/drivers/hwmon/fscpos.c linux-2.6.30.4/drivers/hwmon/fscpos.c |
18323 | --- linux-2.6.29.6/drivers/hwmon/fscpos.c 2009-07-02 19:41:20.000000000 -0400 | 18206 | --- linux-2.6.30.4/drivers/hwmon/fscpos.c 2009-07-24 17:47:51.000000000 -0400 |
18324 | +++ linux-2.6.29.6/drivers/hwmon/fscpos.c 2009-07-23 17:34:32.115850370 -0400 | 18207 | +++ linux-2.6.30.4/drivers/hwmon/fscpos.c 2009-07-30 09:48:10.015465337 -0400 |
18325 | @@ -240,7 +240,6 @@ static ssize_t set_pwm(struct i2c_client | 18208 | @@ -240,7 +240,6 @@ static ssize_t set_pwm(struct i2c_client |
18326 | unsigned long v = simple_strtoul(buf, NULL, 10); | 18209 | unsigned long v = simple_strtoul(buf, NULL, 10); |
18327 | 18210 | ||
@@ -18330,9 +18213,9 @@ diff -urNp linux-2.6.29.6/drivers/hwmon/fscpos.c linux-2.6.29.6/drivers/hwmon/fs | |||
18330 | if (v > 255) v = 255; | 18213 | if (v > 255) v = 255; |
18331 | 18214 | ||
18332 | mutex_lock(&data->update_lock); | 18215 | mutex_lock(&data->update_lock); |
18333 | diff -urNp linux-2.6.29.6/drivers/hwmon/k8temp.c linux-2.6.29.6/drivers/hwmon/k8temp.c | 18216 | diff -urNp linux-2.6.30.4/drivers/hwmon/k8temp.c linux-2.6.30.4/drivers/hwmon/k8temp.c |
18334 | --- linux-2.6.29.6/drivers/hwmon/k8temp.c 2009-07-02 19:41:20.000000000 -0400 | 18217 | --- linux-2.6.30.4/drivers/hwmon/k8temp.c 2009-07-24 17:47:51.000000000 -0400 |
18335 | +++ linux-2.6.29.6/drivers/hwmon/k8temp.c 2009-07-23 17:34:32.115850370 -0400 | 18218 | +++ linux-2.6.30.4/drivers/hwmon/k8temp.c 2009-07-30 09:48:10.016410845 -0400 |
18336 | @@ -138,7 +138,7 @@ static DEVICE_ATTR(name, S_IRUGO, show_n | 18219 | @@ -138,7 +138,7 @@ static DEVICE_ATTR(name, S_IRUGO, show_n |
18337 | 18220 | ||
18338 | static struct pci_device_id k8temp_ids[] = { | 18221 | static struct pci_device_id k8temp_ids[] = { |
@@ -18342,9 +18225,9 @@ diff -urNp linux-2.6.29.6/drivers/hwmon/k8temp.c linux-2.6.29.6/drivers/hwmon/k8 | |||
18342 | }; | 18225 | }; |
18343 | 18226 | ||
18344 | MODULE_DEVICE_TABLE(pci, k8temp_ids); | 18227 | MODULE_DEVICE_TABLE(pci, k8temp_ids); |
18345 | diff -urNp linux-2.6.29.6/drivers/hwmon/sis5595.c linux-2.6.29.6/drivers/hwmon/sis5595.c | 18228 | diff -urNp linux-2.6.30.4/drivers/hwmon/sis5595.c linux-2.6.30.4/drivers/hwmon/sis5595.c |
18346 | --- linux-2.6.29.6/drivers/hwmon/sis5595.c 2009-07-02 19:41:20.000000000 -0400 | 18229 | --- linux-2.6.30.4/drivers/hwmon/sis5595.c 2009-07-24 17:47:51.000000000 -0400 |
18347 | +++ linux-2.6.29.6/drivers/hwmon/sis5595.c 2009-07-23 17:34:32.115850370 -0400 | 18230 | +++ linux-2.6.30.4/drivers/hwmon/sis5595.c 2009-07-30 09:48:10.016410845 -0400 |
18348 | @@ -699,7 +699,7 @@ static struct sis5595_data *sis5595_upda | 18231 | @@ -699,7 +699,7 @@ static struct sis5595_data *sis5595_upda |
18349 | 18232 | ||
18350 | static struct pci_device_id sis5595_pci_ids[] = { | 18233 | static struct pci_device_id sis5595_pci_ids[] = { |
@@ -18354,9 +18237,9 @@ diff -urNp linux-2.6.29.6/drivers/hwmon/sis5595.c linux-2.6.29.6/drivers/hwmon/s | |||
18354 | }; | 18237 | }; |
18355 | 18238 | ||
18356 | MODULE_DEVICE_TABLE(pci, sis5595_pci_ids); | 18239 | MODULE_DEVICE_TABLE(pci, sis5595_pci_ids); |
18357 | diff -urNp linux-2.6.29.6/drivers/hwmon/via686a.c linux-2.6.29.6/drivers/hwmon/via686a.c | 18240 | diff -urNp linux-2.6.30.4/drivers/hwmon/via686a.c linux-2.6.30.4/drivers/hwmon/via686a.c |
18358 | --- linux-2.6.29.6/drivers/hwmon/via686a.c 2009-07-02 19:41:20.000000000 -0400 | 18241 | --- linux-2.6.30.4/drivers/hwmon/via686a.c 2009-07-24 17:47:51.000000000 -0400 |
18359 | +++ linux-2.6.29.6/drivers/hwmon/via686a.c 2009-07-23 17:34:32.116869808 -0400 | 18242 | +++ linux-2.6.30.4/drivers/hwmon/via686a.c 2009-07-30 09:48:10.016410845 -0400 |
18360 | @@ -769,7 +769,7 @@ static struct via686a_data *via686a_upda | 18243 | @@ -769,7 +769,7 @@ static struct via686a_data *via686a_upda |
18361 | 18244 | ||
18362 | static struct pci_device_id via686a_pci_ids[] = { | 18245 | static struct pci_device_id via686a_pci_ids[] = { |
@@ -18366,9 +18249,9 @@ diff -urNp linux-2.6.29.6/drivers/hwmon/via686a.c linux-2.6.29.6/drivers/hwmon/v | |||
18366 | }; | 18249 | }; |
18367 | 18250 | ||
18368 | MODULE_DEVICE_TABLE(pci, via686a_pci_ids); | 18251 | MODULE_DEVICE_TABLE(pci, via686a_pci_ids); |
18369 | diff -urNp linux-2.6.29.6/drivers/hwmon/vt8231.c linux-2.6.29.6/drivers/hwmon/vt8231.c | 18252 | diff -urNp linux-2.6.30.4/drivers/hwmon/vt8231.c linux-2.6.30.4/drivers/hwmon/vt8231.c |
18370 | --- linux-2.6.29.6/drivers/hwmon/vt8231.c 2009-07-02 19:41:20.000000000 -0400 | 18253 | --- linux-2.6.30.4/drivers/hwmon/vt8231.c 2009-07-24 17:47:51.000000000 -0400 |
18371 | +++ linux-2.6.29.6/drivers/hwmon/vt8231.c 2009-07-23 17:34:32.116869808 -0400 | 18254 | +++ linux-2.6.30.4/drivers/hwmon/vt8231.c 2009-07-30 09:48:10.017409539 -0400 |
18372 | @@ -699,7 +699,7 @@ static struct platform_driver vt8231_dri | 18255 | @@ -699,7 +699,7 @@ static struct platform_driver vt8231_dri |
18373 | 18256 | ||
18374 | static struct pci_device_id vt8231_pci_ids[] = { | 18257 | static struct pci_device_id vt8231_pci_ids[] = { |
@@ -18378,9 +18261,9 @@ diff -urNp linux-2.6.29.6/drivers/hwmon/vt8231.c linux-2.6.29.6/drivers/hwmon/vt | |||
18378 | }; | 18261 | }; |
18379 | 18262 | ||
18380 | MODULE_DEVICE_TABLE(pci, vt8231_pci_ids); | 18263 | MODULE_DEVICE_TABLE(pci, vt8231_pci_ids); |
18381 | diff -urNp linux-2.6.29.6/drivers/hwmon/w83791d.c linux-2.6.29.6/drivers/hwmon/w83791d.c | 18264 | diff -urNp linux-2.6.30.4/drivers/hwmon/w83791d.c linux-2.6.30.4/drivers/hwmon/w83791d.c |
18382 | --- linux-2.6.29.6/drivers/hwmon/w83791d.c 2009-07-02 19:41:20.000000000 -0400 | 18265 | --- linux-2.6.30.4/drivers/hwmon/w83791d.c 2009-07-24 17:47:51.000000000 -0400 |
18383 | +++ linux-2.6.29.6/drivers/hwmon/w83791d.c 2009-07-23 17:34:32.117858467 -0400 | 18266 | +++ linux-2.6.30.4/drivers/hwmon/w83791d.c 2009-07-30 09:48:10.017409539 -0400 |
18384 | @@ -330,8 +330,8 @@ static int w83791d_detect(struct i2c_cli | 18267 | @@ -330,8 +330,8 @@ static int w83791d_detect(struct i2c_cli |
18385 | struct i2c_board_info *info); | 18268 | struct i2c_board_info *info); |
18386 | static int w83791d_remove(struct i2c_client *client); | 18269 | static int w83791d_remove(struct i2c_client *client); |
@@ -18392,10 +18275,10 @@ diff -urNp linux-2.6.29.6/drivers/hwmon/w83791d.c linux-2.6.29.6/drivers/hwmon/w | |||
18392 | static struct w83791d_data *w83791d_update_device(struct device *dev); | 18275 | static struct w83791d_data *w83791d_update_device(struct device *dev); |
18393 | 18276 | ||
18394 | #ifdef DEBUG | 18277 | #ifdef DEBUG |
18395 | diff -urNp linux-2.6.29.6/drivers/i2c/busses/i2c-i801.c linux-2.6.29.6/drivers/i2c/busses/i2c-i801.c | 18278 | diff -urNp linux-2.6.30.4/drivers/i2c/busses/i2c-i801.c linux-2.6.30.4/drivers/i2c/busses/i2c-i801.c |
18396 | --- linux-2.6.29.6/drivers/i2c/busses/i2c-i801.c 2009-07-02 19:41:20.000000000 -0400 | 18279 | --- linux-2.6.30.4/drivers/i2c/busses/i2c-i801.c 2009-07-24 17:47:51.000000000 -0400 |
18397 | +++ linux-2.6.29.6/drivers/i2c/busses/i2c-i801.c 2009-07-23 17:34:32.117858467 -0400 | 18280 | +++ linux-2.6.30.4/drivers/i2c/busses/i2c-i801.c 2009-07-30 09:48:10.018424106 -0400 |
18398 | @@ -577,7 +577,7 @@ static struct pci_device_id i801_ids[] = | 18281 | @@ -578,7 +578,7 @@ static struct pci_device_id i801_ids[] = |
18399 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH10_4) }, | 18282 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH10_4) }, |
18400 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH10_5) }, | 18283 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH10_5) }, |
18401 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PCH_SMBUS) }, | 18284 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PCH_SMBUS) }, |
@@ -18404,9 +18287,9 @@ diff -urNp linux-2.6.29.6/drivers/i2c/busses/i2c-i801.c linux-2.6.29.6/drivers/i | |||
18404 | }; | 18287 | }; |
18405 | 18288 | ||
18406 | MODULE_DEVICE_TABLE (pci, i801_ids); | 18289 | MODULE_DEVICE_TABLE (pci, i801_ids); |
18407 | diff -urNp linux-2.6.29.6/drivers/i2c/busses/i2c-piix4.c linux-2.6.29.6/drivers/i2c/busses/i2c-piix4.c | 18290 | diff -urNp linux-2.6.30.4/drivers/i2c/busses/i2c-piix4.c linux-2.6.30.4/drivers/i2c/busses/i2c-piix4.c |
18408 | --- linux-2.6.29.6/drivers/i2c/busses/i2c-piix4.c 2009-07-02 19:41:20.000000000 -0400 | 18291 | --- linux-2.6.30.4/drivers/i2c/busses/i2c-piix4.c 2009-07-24 17:47:51.000000000 -0400 |
18409 | +++ linux-2.6.29.6/drivers/i2c/busses/i2c-piix4.c 2009-07-23 17:34:32.118755337 -0400 | 18292 | +++ linux-2.6.30.4/drivers/i2c/busses/i2c-piix4.c 2009-07-30 09:48:10.018424106 -0400 |
18410 | @@ -123,7 +123,7 @@ static struct dmi_system_id __devinitdat | 18293 | @@ -123,7 +123,7 @@ static struct dmi_system_id __devinitdat |
18411 | .ident = "IBM", | 18294 | .ident = "IBM", |
18412 | .matches = { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), }, | 18295 | .matches = { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), }, |
@@ -18416,18 +18299,18 @@ diff -urNp linux-2.6.29.6/drivers/i2c/busses/i2c-piix4.c linux-2.6.29.6/drivers/ | |||
18416 | }; | 18299 | }; |
18417 | 18300 | ||
18418 | static int __devinit piix4_setup(struct pci_dev *PIIX4_dev, | 18301 | static int __devinit piix4_setup(struct pci_dev *PIIX4_dev, |
18419 | @@ -423,7 +423,7 @@ static struct pci_device_id piix4_ids[] | 18302 | @@ -489,7 +489,7 @@ static struct pci_device_id piix4_ids[] |
18420 | PCI_DEVICE_ID_SERVERWORKS_CSB6) }, | ||
18421 | { PCI_DEVICE(PCI_VENDOR_ID_SERVERWORKS, | ||
18422 | PCI_DEVICE_ID_SERVERWORKS_HT1000SB) }, | 18303 | PCI_DEVICE_ID_SERVERWORKS_HT1000SB) }, |
18304 | { PCI_DEVICE(PCI_VENDOR_ID_SERVERWORKS, | ||
18305 | PCI_DEVICE_ID_SERVERWORKS_HT1100LD) }, | ||
18423 | - { 0, } | 18306 | - { 0, } |
18424 | + { 0, 0, 0, 0, 0, 0, 0 } | 18307 | + { 0, 0, 0, 0, 0, 0, 0 } |
18425 | }; | 18308 | }; |
18426 | 18309 | ||
18427 | MODULE_DEVICE_TABLE (pci, piix4_ids); | 18310 | MODULE_DEVICE_TABLE (pci, piix4_ids); |
18428 | diff -urNp linux-2.6.29.6/drivers/i2c/busses/i2c-sis630.c linux-2.6.29.6/drivers/i2c/busses/i2c-sis630.c | 18311 | diff -urNp linux-2.6.30.4/drivers/i2c/busses/i2c-sis630.c linux-2.6.30.4/drivers/i2c/busses/i2c-sis630.c |
18429 | --- linux-2.6.29.6/drivers/i2c/busses/i2c-sis630.c 2009-07-02 19:41:20.000000000 -0400 | 18312 | --- linux-2.6.30.4/drivers/i2c/busses/i2c-sis630.c 2009-07-24 17:47:51.000000000 -0400 |
18430 | +++ linux-2.6.29.6/drivers/i2c/busses/i2c-sis630.c 2009-07-23 17:34:32.118755337 -0400 | 18313 | +++ linux-2.6.30.4/drivers/i2c/busses/i2c-sis630.c 2009-07-30 09:48:10.018424106 -0400 |
18431 | @@ -471,7 +471,7 @@ static struct i2c_adapter sis630_adapter | 18314 | @@ -471,7 +471,7 @@ static struct i2c_adapter sis630_adapter |
18432 | static struct pci_device_id sis630_ids[] __devinitdata = { | 18315 | static struct pci_device_id sis630_ids[] __devinitdata = { |
18433 | { PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503) }, | 18316 | { PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503) }, |
@@ -18437,9 +18320,9 @@ diff -urNp linux-2.6.29.6/drivers/i2c/busses/i2c-sis630.c linux-2.6.29.6/drivers | |||
18437 | }; | 18320 | }; |
18438 | 18321 | ||
18439 | MODULE_DEVICE_TABLE (pci, sis630_ids); | 18322 | MODULE_DEVICE_TABLE (pci, sis630_ids); |
18440 | diff -urNp linux-2.6.29.6/drivers/i2c/busses/i2c-sis96x.c linux-2.6.29.6/drivers/i2c/busses/i2c-sis96x.c | 18323 | diff -urNp linux-2.6.30.4/drivers/i2c/busses/i2c-sis96x.c linux-2.6.30.4/drivers/i2c/busses/i2c-sis96x.c |
18441 | --- linux-2.6.29.6/drivers/i2c/busses/i2c-sis96x.c 2009-07-02 19:41:20.000000000 -0400 | 18324 | --- linux-2.6.30.4/drivers/i2c/busses/i2c-sis96x.c 2009-07-24 17:47:51.000000000 -0400 |
18442 | +++ linux-2.6.29.6/drivers/i2c/busses/i2c-sis96x.c 2009-07-23 17:34:32.118755337 -0400 | 18325 | +++ linux-2.6.30.4/drivers/i2c/busses/i2c-sis96x.c 2009-07-30 09:48:10.018424106 -0400 |
18443 | @@ -247,7 +247,7 @@ static struct i2c_adapter sis96x_adapter | 18326 | @@ -247,7 +247,7 @@ static struct i2c_adapter sis96x_adapter |
18444 | 18327 | ||
18445 | static struct pci_device_id sis96x_ids[] = { | 18328 | static struct pci_device_id sis96x_ids[] = { |
@@ -18449,9 +18332,9 @@ diff -urNp linux-2.6.29.6/drivers/i2c/busses/i2c-sis96x.c linux-2.6.29.6/drivers | |||
18449 | }; | 18332 | }; |
18450 | 18333 | ||
18451 | MODULE_DEVICE_TABLE (pci, sis96x_ids); | 18334 | MODULE_DEVICE_TABLE (pci, sis96x_ids); |
18452 | diff -urNp linux-2.6.29.6/drivers/ieee1394/dma.c linux-2.6.29.6/drivers/ieee1394/dma.c | 18335 | diff -urNp linux-2.6.30.4/drivers/ieee1394/dma.c linux-2.6.30.4/drivers/ieee1394/dma.c |
18453 | --- linux-2.6.29.6/drivers/ieee1394/dma.c 2009-07-02 19:41:20.000000000 -0400 | 18336 | --- linux-2.6.30.4/drivers/ieee1394/dma.c 2009-07-24 17:47:51.000000000 -0400 |
18454 | +++ linux-2.6.29.6/drivers/ieee1394/dma.c 2009-07-23 18:40:27.685680148 -0400 | 18337 | +++ linux-2.6.30.4/drivers/ieee1394/dma.c 2009-07-30 09:48:10.018424106 -0400 |
18455 | @@ -247,7 +247,7 @@ static int dma_region_pagefault(struct v | 18338 | @@ -247,7 +247,7 @@ static int dma_region_pagefault(struct v |
18456 | return 0; | 18339 | return 0; |
18457 | } | 18340 | } |
@@ -18461,9 +18344,9 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/dma.c linux-2.6.29.6/drivers/ieee1394 | |||
18461 | .fault = dma_region_pagefault, | 18344 | .fault = dma_region_pagefault, |
18462 | }; | 18345 | }; |
18463 | 18346 | ||
18464 | diff -urNp linux-2.6.29.6/drivers/ieee1394/dv1394.c linux-2.6.29.6/drivers/ieee1394/dv1394.c | 18347 | diff -urNp linux-2.6.30.4/drivers/ieee1394/dv1394.c linux-2.6.30.4/drivers/ieee1394/dv1394.c |
18465 | --- linux-2.6.29.6/drivers/ieee1394/dv1394.c 2009-07-02 19:41:20.000000000 -0400 | 18348 | --- linux-2.6.30.4/drivers/ieee1394/dv1394.c 2009-07-24 17:47:51.000000000 -0400 |
18466 | +++ linux-2.6.29.6/drivers/ieee1394/dv1394.c 2009-07-23 17:34:32.119753604 -0400 | 18349 | +++ linux-2.6.30.4/drivers/ieee1394/dv1394.c 2009-07-30 09:48:10.020336753 -0400 |
18467 | @@ -739,7 +739,7 @@ static void frame_prepare(struct video_c | 18350 | @@ -739,7 +739,7 @@ static void frame_prepare(struct video_c |
18468 | based upon DIF section and sequence | 18351 | based upon DIF section and sequence |
18469 | */ | 18352 | */ |
@@ -18473,7 +18356,7 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/dv1394.c linux-2.6.29.6/drivers/ieee1 | |||
18473 | frame_put_packet (struct frame *f, struct packet *p) | 18356 | frame_put_packet (struct frame *f, struct packet *p) |
18474 | { | 18357 | { |
18475 | int section_type = p->data[0] >> 5; /* section type is in bits 5 - 7 */ | 18358 | int section_type = p->data[0] >> 5; /* section type is in bits 5 - 7 */ |
18476 | @@ -2181,7 +2181,7 @@ static struct ieee1394_device_id dv1394_ | 18359 | @@ -2177,7 +2177,7 @@ static const struct ieee1394_device_id d |
18477 | .specifier_id = AVC_UNIT_SPEC_ID_ENTRY & 0xffffff, | 18360 | .specifier_id = AVC_UNIT_SPEC_ID_ENTRY & 0xffffff, |
18478 | .version = AVC_SW_VERSION_ENTRY & 0xffffff | 18361 | .version = AVC_SW_VERSION_ENTRY & 0xffffff |
18479 | }, | 18362 | }, |
@@ -18482,10 +18365,10 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/dv1394.c linux-2.6.29.6/drivers/ieee1 | |||
18482 | }; | 18365 | }; |
18483 | 18366 | ||
18484 | MODULE_DEVICE_TABLE(ieee1394, dv1394_id_table); | 18367 | MODULE_DEVICE_TABLE(ieee1394, dv1394_id_table); |
18485 | diff -urNp linux-2.6.29.6/drivers/ieee1394/eth1394.c linux-2.6.29.6/drivers/ieee1394/eth1394.c | 18368 | diff -urNp linux-2.6.30.4/drivers/ieee1394/eth1394.c linux-2.6.30.4/drivers/ieee1394/eth1394.c |
18486 | --- linux-2.6.29.6/drivers/ieee1394/eth1394.c 2009-07-02 19:41:20.000000000 -0400 | 18369 | --- linux-2.6.30.4/drivers/ieee1394/eth1394.c 2009-07-24 17:47:51.000000000 -0400 |
18487 | +++ linux-2.6.29.6/drivers/ieee1394/eth1394.c 2009-07-23 17:34:32.119753604 -0400 | 18370 | +++ linux-2.6.30.4/drivers/ieee1394/eth1394.c 2009-07-30 09:48:10.020336753 -0400 |
18488 | @@ -445,7 +445,7 @@ static struct ieee1394_device_id eth1394 | 18371 | @@ -445,7 +445,7 @@ static const struct ieee1394_device_id e |
18489 | .specifier_id = ETHER1394_GASP_SPECIFIER_ID, | 18372 | .specifier_id = ETHER1394_GASP_SPECIFIER_ID, |
18490 | .version = ETHER1394_GASP_VERSION, | 18373 | .version = ETHER1394_GASP_VERSION, |
18491 | }, | 18374 | }, |
@@ -18494,9 +18377,9 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/eth1394.c linux-2.6.29.6/drivers/ieee | |||
18494 | }; | 18377 | }; |
18495 | 18378 | ||
18496 | MODULE_DEVICE_TABLE(ieee1394, eth1394_id_table); | 18379 | MODULE_DEVICE_TABLE(ieee1394, eth1394_id_table); |
18497 | diff -urNp linux-2.6.29.6/drivers/ieee1394/hosts.c linux-2.6.29.6/drivers/ieee1394/hosts.c | 18380 | diff -urNp linux-2.6.30.4/drivers/ieee1394/hosts.c linux-2.6.30.4/drivers/ieee1394/hosts.c |
18498 | --- linux-2.6.29.6/drivers/ieee1394/hosts.c 2009-07-02 19:41:20.000000000 -0400 | 18381 | --- linux-2.6.30.4/drivers/ieee1394/hosts.c 2009-07-24 17:47:51.000000000 -0400 |
18499 | +++ linux-2.6.29.6/drivers/ieee1394/hosts.c 2009-07-23 17:34:32.120767858 -0400 | 18382 | +++ linux-2.6.30.4/drivers/ieee1394/hosts.c 2009-07-30 09:48:10.020336753 -0400 |
18500 | @@ -78,6 +78,7 @@ static int dummy_isoctl(struct hpsb_iso | 18383 | @@ -78,6 +78,7 @@ static int dummy_isoctl(struct hpsb_iso |
18501 | } | 18384 | } |
18502 | 18385 | ||
@@ -18505,9 +18388,9 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/hosts.c linux-2.6.29.6/drivers/ieee13 | |||
18505 | .transmit_packet = dummy_transmit_packet, | 18388 | .transmit_packet = dummy_transmit_packet, |
18506 | .devctl = dummy_devctl, | 18389 | .devctl = dummy_devctl, |
18507 | .isoctl = dummy_isoctl | 18390 | .isoctl = dummy_isoctl |
18508 | diff -urNp linux-2.6.29.6/drivers/ieee1394/ohci1394.c linux-2.6.29.6/drivers/ieee1394/ohci1394.c | 18391 | diff -urNp linux-2.6.30.4/drivers/ieee1394/ohci1394.c linux-2.6.30.4/drivers/ieee1394/ohci1394.c |
18509 | --- linux-2.6.29.6/drivers/ieee1394/ohci1394.c 2009-07-02 19:41:20.000000000 -0400 | 18392 | --- linux-2.6.30.4/drivers/ieee1394/ohci1394.c 2009-07-24 17:47:51.000000000 -0400 |
18510 | +++ linux-2.6.29.6/drivers/ieee1394/ohci1394.c 2009-07-23 17:34:32.120767858 -0400 | 18393 | +++ linux-2.6.30.4/drivers/ieee1394/ohci1394.c 2009-07-30 09:48:10.020862787 -0400 |
18511 | @@ -147,9 +147,9 @@ printk(level "%s: " fmt "\n" , OHCI1394_ | 18394 | @@ -147,9 +147,9 @@ printk(level "%s: " fmt "\n" , OHCI1394_ |
18512 | printk(level "%s: fw-host%d: " fmt "\n" , OHCI1394_DRIVER_NAME, ohci->host->id , ## args) | 18395 | printk(level "%s: fw-host%d: " fmt "\n" , OHCI1394_DRIVER_NAME, ohci->host->id , ## args) |
18513 | 18396 | ||
@@ -18529,10 +18412,10 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/ohci1394.c linux-2.6.29.6/drivers/iee | |||
18529 | }; | 18412 | }; |
18530 | 18413 | ||
18531 | MODULE_DEVICE_TABLE(pci, ohci1394_pci_tbl); | 18414 | MODULE_DEVICE_TABLE(pci, ohci1394_pci_tbl); |
18532 | diff -urNp linux-2.6.29.6/drivers/ieee1394/raw1394.c linux-2.6.29.6/drivers/ieee1394/raw1394.c | 18415 | diff -urNp linux-2.6.30.4/drivers/ieee1394/raw1394.c linux-2.6.30.4/drivers/ieee1394/raw1394.c |
18533 | --- linux-2.6.29.6/drivers/ieee1394/raw1394.c 2009-07-02 19:41:20.000000000 -0400 | 18416 | --- linux-2.6.30.4/drivers/ieee1394/raw1394.c 2009-07-24 17:47:51.000000000 -0400 |
18534 | +++ linux-2.6.29.6/drivers/ieee1394/raw1394.c 2009-07-23 17:34:32.121756795 -0400 | 18417 | +++ linux-2.6.30.4/drivers/ieee1394/raw1394.c 2009-07-30 09:48:10.022270946 -0400 |
18535 | @@ -2995,7 +2995,7 @@ static struct ieee1394_device_id raw1394 | 18418 | @@ -2999,7 +2999,7 @@ static const struct ieee1394_device_id r |
18536 | .match_flags = IEEE1394_MATCH_SPECIFIER_ID | IEEE1394_MATCH_VERSION, | 18419 | .match_flags = IEEE1394_MATCH_SPECIFIER_ID | IEEE1394_MATCH_VERSION, |
18537 | .specifier_id = CAMERA_UNIT_SPEC_ID_ENTRY & 0xffffff, | 18420 | .specifier_id = CAMERA_UNIT_SPEC_ID_ENTRY & 0xffffff, |
18538 | .version = (CAMERA_SW_VERSION_ENTRY + 2) & 0xffffff}, | 18421 | .version = (CAMERA_SW_VERSION_ENTRY + 2) & 0xffffff}, |
@@ -18541,10 +18424,10 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/raw1394.c linux-2.6.29.6/drivers/ieee | |||
18541 | }; | 18424 | }; |
18542 | 18425 | ||
18543 | MODULE_DEVICE_TABLE(ieee1394, raw1394_id_table); | 18426 | MODULE_DEVICE_TABLE(ieee1394, raw1394_id_table); |
18544 | diff -urNp linux-2.6.29.6/drivers/ieee1394/sbp2.c linux-2.6.29.6/drivers/ieee1394/sbp2.c | 18427 | diff -urNp linux-2.6.30.4/drivers/ieee1394/sbp2.c linux-2.6.30.4/drivers/ieee1394/sbp2.c |
18545 | --- linux-2.6.29.6/drivers/ieee1394/sbp2.c 2009-07-02 19:41:20.000000000 -0400 | 18428 | --- linux-2.6.30.4/drivers/ieee1394/sbp2.c 2009-07-24 17:47:51.000000000 -0400 |
18546 | +++ linux-2.6.29.6/drivers/ieee1394/sbp2.c 2009-07-23 17:34:32.122774195 -0400 | 18429 | +++ linux-2.6.30.4/drivers/ieee1394/sbp2.c 2009-07-30 09:48:10.022270946 -0400 |
18547 | @@ -290,7 +290,7 @@ static struct ieee1394_device_id sbp2_id | 18430 | @@ -290,7 +290,7 @@ static const struct ieee1394_device_id s |
18548 | .match_flags = IEEE1394_MATCH_SPECIFIER_ID | IEEE1394_MATCH_VERSION, | 18431 | .match_flags = IEEE1394_MATCH_SPECIFIER_ID | IEEE1394_MATCH_VERSION, |
18549 | .specifier_id = SBP2_UNIT_SPEC_ID_ENTRY & 0xffffff, | 18432 | .specifier_id = SBP2_UNIT_SPEC_ID_ENTRY & 0xffffff, |
18550 | .version = SBP2_SW_VERSION_ENTRY & 0xffffff}, | 18433 | .version = SBP2_SW_VERSION_ENTRY & 0xffffff}, |
@@ -18553,7 +18436,7 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/sbp2.c linux-2.6.29.6/drivers/ieee139 | |||
18553 | }; | 18436 | }; |
18554 | MODULE_DEVICE_TABLE(ieee1394, sbp2_id_table); | 18437 | MODULE_DEVICE_TABLE(ieee1394, sbp2_id_table); |
18555 | 18438 | ||
18556 | @@ -2112,7 +2112,7 @@ MODULE_DESCRIPTION("IEEE-1394 SBP-2 prot | 18439 | @@ -2111,7 +2111,7 @@ MODULE_DESCRIPTION("IEEE-1394 SBP-2 prot |
18557 | MODULE_SUPPORTED_DEVICE(SBP2_DEVICE_NAME); | 18440 | MODULE_SUPPORTED_DEVICE(SBP2_DEVICE_NAME); |
18558 | MODULE_LICENSE("GPL"); | 18441 | MODULE_LICENSE("GPL"); |
18559 | 18442 | ||
@@ -18562,10 +18445,10 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/sbp2.c linux-2.6.29.6/drivers/ieee139 | |||
18562 | { | 18445 | { |
18563 | int ret; | 18446 | int ret; |
18564 | 18447 | ||
18565 | diff -urNp linux-2.6.29.6/drivers/ieee1394/video1394.c linux-2.6.29.6/drivers/ieee1394/video1394.c | 18448 | diff -urNp linux-2.6.30.4/drivers/ieee1394/video1394.c linux-2.6.30.4/drivers/ieee1394/video1394.c |
18566 | --- linux-2.6.29.6/drivers/ieee1394/video1394.c 2009-07-02 19:41:20.000000000 -0400 | 18449 | --- linux-2.6.30.4/drivers/ieee1394/video1394.c 2009-07-24 17:47:51.000000000 -0400 |
18567 | +++ linux-2.6.29.6/drivers/ieee1394/video1394.c 2009-07-23 17:34:32.123823981 -0400 | 18450 | +++ linux-2.6.30.4/drivers/ieee1394/video1394.c 2009-07-30 09:48:10.022535006 -0400 |
18568 | @@ -1310,7 +1310,7 @@ static struct ieee1394_device_id video13 | 18451 | @@ -1310,7 +1310,7 @@ static const struct ieee1394_device_id v |
18569 | .specifier_id = CAMERA_UNIT_SPEC_ID_ENTRY & 0xffffff, | 18452 | .specifier_id = CAMERA_UNIT_SPEC_ID_ENTRY & 0xffffff, |
18570 | .version = (CAMERA_SW_VERSION_ENTRY + 2) & 0xffffff | 18453 | .version = (CAMERA_SW_VERSION_ENTRY + 2) & 0xffffff |
18571 | }, | 18454 | }, |
@@ -18574,9 +18457,9 @@ diff -urNp linux-2.6.29.6/drivers/ieee1394/video1394.c linux-2.6.29.6/drivers/ie | |||
18574 | }; | 18457 | }; |
18575 | 18458 | ||
18576 | MODULE_DEVICE_TABLE(ieee1394, video1394_id_table); | 18459 | MODULE_DEVICE_TABLE(ieee1394, video1394_id_table); |
18577 | diff -urNp linux-2.6.29.6/drivers/infiniband/hw/ehca/ehca_uverbs.c linux-2.6.29.6/drivers/infiniband/hw/ehca/ehca_uverbs.c | 18460 | diff -urNp linux-2.6.30.4/drivers/infiniband/hw/ehca/ehca_uverbs.c linux-2.6.30.4/drivers/infiniband/hw/ehca/ehca_uverbs.c |
18578 | --- linux-2.6.29.6/drivers/infiniband/hw/ehca/ehca_uverbs.c 2009-07-02 19:41:20.000000000 -0400 | 18461 | --- linux-2.6.30.4/drivers/infiniband/hw/ehca/ehca_uverbs.c 2009-07-24 17:47:51.000000000 -0400 |
18579 | +++ linux-2.6.29.6/drivers/infiniband/hw/ehca/ehca_uverbs.c 2009-07-23 18:40:27.691179918 -0400 | 18462 | +++ linux-2.6.30.4/drivers/infiniband/hw/ehca/ehca_uverbs.c 2009-07-30 09:48:10.023536535 -0400 |
18580 | @@ -95,7 +95,7 @@ static void ehca_mm_close(struct vm_area | 18463 | @@ -95,7 +95,7 @@ static void ehca_mm_close(struct vm_area |
18581 | vma->vm_start, vma->vm_end, *count); | 18464 | vma->vm_start, vma->vm_end, *count); |
18582 | } | 18465 | } |
@@ -18586,9 +18469,9 @@ diff -urNp linux-2.6.29.6/drivers/infiniband/hw/ehca/ehca_uverbs.c linux-2.6.29. | |||
18586 | .open = ehca_mm_open, | 18469 | .open = ehca_mm_open, |
18587 | .close = ehca_mm_close, | 18470 | .close = ehca_mm_close, |
18588 | }; | 18471 | }; |
18589 | diff -urNp linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_file_ops.c linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_file_ops.c | 18472 | diff -urNp linux-2.6.30.4/drivers/infiniband/hw/ipath/ipath_file_ops.c linux-2.6.30.4/drivers/infiniband/hw/ipath/ipath_file_ops.c |
18590 | --- linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_file_ops.c 2009-07-02 19:41:20.000000000 -0400 | 18473 | --- linux-2.6.30.4/drivers/infiniband/hw/ipath/ipath_file_ops.c 2009-07-24 17:47:51.000000000 -0400 |
18591 | +++ linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_file_ops.c 2009-07-23 18:40:27.711522279 -0400 | 18474 | +++ linux-2.6.30.4/drivers/infiniband/hw/ipath/ipath_file_ops.c 2009-07-30 09:48:10.023536535 -0400 |
18592 | @@ -1151,7 +1151,7 @@ static int ipath_file_vma_fault(struct v | 18475 | @@ -1151,7 +1151,7 @@ static int ipath_file_vma_fault(struct v |
18593 | return 0; | 18476 | return 0; |
18594 | } | 18477 | } |
@@ -18598,9 +18481,9 @@ diff -urNp linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_file_ops.c linux-2.6 | |||
18598 | .fault = ipath_file_vma_fault, | 18481 | .fault = ipath_file_vma_fault, |
18599 | }; | 18482 | }; |
18600 | 18483 | ||
18601 | diff -urNp linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_mmap.c linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_mmap.c | 18484 | diff -urNp linux-2.6.30.4/drivers/infiniband/hw/ipath/ipath_mmap.c linux-2.6.30.4/drivers/infiniband/hw/ipath/ipath_mmap.c |
18602 | --- linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_mmap.c 2009-07-02 19:41:20.000000000 -0400 | 18485 | --- linux-2.6.30.4/drivers/infiniband/hw/ipath/ipath_mmap.c 2009-07-24 17:47:51.000000000 -0400 |
18603 | +++ linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_mmap.c 2009-07-23 18:40:27.724998803 -0400 | 18486 | +++ linux-2.6.30.4/drivers/infiniband/hw/ipath/ipath_mmap.c 2009-07-30 09:48:10.024683962 -0400 |
18604 | @@ -74,7 +74,7 @@ static void ipath_vma_close(struct vm_ar | 18487 | @@ -74,7 +74,7 @@ static void ipath_vma_close(struct vm_ar |
18605 | kref_put(&ip->ref, ipath_release_mmap_info); | 18488 | kref_put(&ip->ref, ipath_release_mmap_info); |
18606 | } | 18489 | } |
@@ -18610,9 +18493,9 @@ diff -urNp linux-2.6.29.6/drivers/infiniband/hw/ipath/ipath_mmap.c linux-2.6.29. | |||
18610 | .open = ipath_vma_open, | 18493 | .open = ipath_vma_open, |
18611 | .close = ipath_vma_close, | 18494 | .close = ipath_vma_close, |
18612 | }; | 18495 | }; |
18613 | diff -urNp linux-2.6.29.6/drivers/input/keyboard/atkbd.c linux-2.6.29.6/drivers/input/keyboard/atkbd.c | 18496 | diff -urNp linux-2.6.30.4/drivers/input/keyboard/atkbd.c linux-2.6.30.4/drivers/input/keyboard/atkbd.c |
18614 | --- linux-2.6.29.6/drivers/input/keyboard/atkbd.c 2009-07-02 19:41:20.000000000 -0400 | 18497 | --- linux-2.6.30.4/drivers/input/keyboard/atkbd.c 2009-07-24 17:47:51.000000000 -0400 |
18615 | +++ linux-2.6.29.6/drivers/input/keyboard/atkbd.c 2009-07-23 17:34:32.123823981 -0400 | 18498 | +++ linux-2.6.30.4/drivers/input/keyboard/atkbd.c 2009-07-30 09:48:10.024683962 -0400 |
18616 | @@ -1166,7 +1166,7 @@ static struct serio_device_id atkbd_seri | 18499 | @@ -1166,7 +1166,7 @@ static struct serio_device_id atkbd_seri |
18617 | .id = SERIO_ANY, | 18500 | .id = SERIO_ANY, |
18618 | .extra = SERIO_ANY, | 18501 | .extra = SERIO_ANY, |
@@ -18622,10 +18505,10 @@ diff -urNp linux-2.6.29.6/drivers/input/keyboard/atkbd.c linux-2.6.29.6/drivers/ | |||
18622 | }; | 18505 | }; |
18623 | 18506 | ||
18624 | MODULE_DEVICE_TABLE(serio, atkbd_serio_ids); | 18507 | MODULE_DEVICE_TABLE(serio, atkbd_serio_ids); |
18625 | diff -urNp linux-2.6.29.6/drivers/input/mouse/lifebook.c linux-2.6.29.6/drivers/input/mouse/lifebook.c | 18508 | diff -urNp linux-2.6.30.4/drivers/input/mouse/lifebook.c linux-2.6.30.4/drivers/input/mouse/lifebook.c |
18626 | --- linux-2.6.29.6/drivers/input/mouse/lifebook.c 2009-07-02 19:41:20.000000000 -0400 | 18509 | --- linux-2.6.30.4/drivers/input/mouse/lifebook.c 2009-07-24 17:47:51.000000000 -0400 |
18627 | +++ linux-2.6.29.6/drivers/input/mouse/lifebook.c 2009-07-23 17:34:32.124774542 -0400 | 18510 | +++ linux-2.6.30.4/drivers/input/mouse/lifebook.c 2009-07-30 09:48:10.025535593 -0400 |
18628 | @@ -110,7 +110,7 @@ static const struct dmi_system_id lifebo | 18511 | @@ -116,7 +116,7 @@ static const struct dmi_system_id lifebo |
18629 | DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B142"), | 18512 | DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B142"), |
18630 | }, | 18513 | }, |
18631 | }, | 18514 | }, |
@@ -18634,9 +18517,9 @@ diff -urNp linux-2.6.29.6/drivers/input/mouse/lifebook.c linux-2.6.29.6/drivers/ | |||
18634 | }; | 18517 | }; |
18635 | 18518 | ||
18636 | static psmouse_ret_t lifebook_process_byte(struct psmouse *psmouse) | 18519 | static psmouse_ret_t lifebook_process_byte(struct psmouse *psmouse) |
18637 | diff -urNp linux-2.6.29.6/drivers/input/mouse/psmouse-base.c linux-2.6.29.6/drivers/input/mouse/psmouse-base.c | 18520 | diff -urNp linux-2.6.30.4/drivers/input/mouse/psmouse-base.c linux-2.6.30.4/drivers/input/mouse/psmouse-base.c |
18638 | --- linux-2.6.29.6/drivers/input/mouse/psmouse-base.c 2009-07-02 19:41:20.000000000 -0400 | 18521 | --- linux-2.6.30.4/drivers/input/mouse/psmouse-base.c 2009-07-24 17:47:51.000000000 -0400 |
18639 | +++ linux-2.6.29.6/drivers/input/mouse/psmouse-base.c 2009-07-23 17:34:32.124774542 -0400 | 18522 | +++ linux-2.6.30.4/drivers/input/mouse/psmouse-base.c 2009-07-30 09:48:10.025535593 -0400 |
18640 | @@ -1378,7 +1378,7 @@ static struct serio_device_id psmouse_se | 18523 | @@ -1378,7 +1378,7 @@ static struct serio_device_id psmouse_se |
18641 | .id = SERIO_ANY, | 18524 | .id = SERIO_ANY, |
18642 | .extra = SERIO_ANY, | 18525 | .extra = SERIO_ANY, |
@@ -18646,9 +18529,9 @@ diff -urNp linux-2.6.29.6/drivers/input/mouse/psmouse-base.c linux-2.6.29.6/driv | |||
18646 | }; | 18529 | }; |
18647 | 18530 | ||
18648 | MODULE_DEVICE_TABLE(serio, psmouse_serio_ids); | 18531 | MODULE_DEVICE_TABLE(serio, psmouse_serio_ids); |
18649 | diff -urNp linux-2.6.29.6/drivers/input/mouse/synaptics.c linux-2.6.29.6/drivers/input/mouse/synaptics.c | 18532 | diff -urNp linux-2.6.30.4/drivers/input/mouse/synaptics.c linux-2.6.30.4/drivers/input/mouse/synaptics.c |
18650 | --- linux-2.6.29.6/drivers/input/mouse/synaptics.c 2009-07-02 19:41:20.000000000 -0400 | 18533 | --- linux-2.6.30.4/drivers/input/mouse/synaptics.c 2009-07-24 17:47:51.000000000 -0400 |
18651 | +++ linux-2.6.29.6/drivers/input/mouse/synaptics.c 2009-07-23 17:34:32.124774542 -0400 | 18534 | +++ linux-2.6.30.4/drivers/input/mouse/synaptics.c 2009-07-30 09:48:10.026633372 -0400 |
18652 | @@ -412,7 +412,7 @@ static void synaptics_process_packet(str | 18535 | @@ -412,7 +412,7 @@ static void synaptics_process_packet(str |
18653 | break; | 18536 | break; |
18654 | case 2: | 18537 | case 2: |
@@ -18667,10 +18550,10 @@ diff -urNp linux-2.6.29.6/drivers/input/mouse/synaptics.c linux-2.6.29.6/drivers | |||
18667 | }; | 18550 | }; |
18668 | #endif | 18551 | #endif |
18669 | 18552 | ||
18670 | diff -urNp linux-2.6.29.6/drivers/input/mousedev.c linux-2.6.29.6/drivers/input/mousedev.c | 18553 | diff -urNp linux-2.6.30.4/drivers/input/mousedev.c linux-2.6.30.4/drivers/input/mousedev.c |
18671 | --- linux-2.6.29.6/drivers/input/mousedev.c 2009-07-02 19:41:20.000000000 -0400 | 18554 | --- linux-2.6.30.4/drivers/input/mousedev.c 2009-07-24 17:47:51.000000000 -0400 |
18672 | +++ linux-2.6.29.6/drivers/input/mousedev.c 2009-07-23 17:34:32.125938815 -0400 | 18555 | +++ linux-2.6.30.4/drivers/input/mousedev.c 2009-07-30 09:48:10.026633372 -0400 |
18673 | @@ -1062,7 +1062,7 @@ static struct input_handler mousedev_han | 18556 | @@ -1059,7 +1059,7 @@ static struct input_handler mousedev_han |
18674 | 18557 | ||
18675 | #ifdef CONFIG_INPUT_MOUSEDEV_PSAUX | 18558 | #ifdef CONFIG_INPUT_MOUSEDEV_PSAUX |
18676 | static struct miscdevice psaux_mouse = { | 18559 | static struct miscdevice psaux_mouse = { |
@@ -18679,11 +18562,11 @@ diff -urNp linux-2.6.29.6/drivers/input/mousedev.c linux-2.6.29.6/drivers/input/ | |||
18679 | }; | 18562 | }; |
18680 | static int psaux_registered; | 18563 | static int psaux_registered; |
18681 | #endif | 18564 | #endif |
18682 | diff -urNp linux-2.6.29.6/drivers/input/serio/i8042-x86ia64io.h linux-2.6.29.6/drivers/input/serio/i8042-x86ia64io.h | 18565 | diff -urNp linux-2.6.30.4/drivers/input/serio/i8042-x86ia64io.h linux-2.6.30.4/drivers/input/serio/i8042-x86ia64io.h |
18683 | --- linux-2.6.29.6/drivers/input/serio/i8042-x86ia64io.h 2009-07-02 19:41:20.000000000 -0400 | 18566 | --- linux-2.6.30.4/drivers/input/serio/i8042-x86ia64io.h 2009-07-24 17:47:51.000000000 -0400 |
18684 | +++ linux-2.6.29.6/drivers/input/serio/i8042-x86ia64io.h 2009-07-23 17:34:32.125938815 -0400 | 18567 | +++ linux-2.6.30.4/drivers/input/serio/i8042-x86ia64io.h 2009-07-30 09:48:10.027427071 -0400 |
18685 | @@ -151,7 +151,7 @@ static struct dmi_system_id __initdata i | 18568 | @@ -159,7 +159,7 @@ static struct dmi_system_id __initdata i |
18686 | DMI_MATCH(DMI_PRODUCT_VERSION, "01"), | 18569 | DMI_MATCH(DMI_PRODUCT_VERSION, "Rev 1"), |
18687 | }, | 18570 | }, |
18688 | }, | 18571 | }, |
18689 | - { } | 18572 | - { } |
@@ -18691,7 +18574,7 @@ diff -urNp linux-2.6.29.6/drivers/input/serio/i8042-x86ia64io.h linux-2.6.29.6/d | |||
18691 | }; | 18574 | }; |
18692 | 18575 | ||
18693 | /* | 18576 | /* |
18694 | @@ -366,7 +366,7 @@ static struct dmi_system_id __initdata i | 18577 | @@ -374,7 +374,7 @@ static struct dmi_system_id __initdata i |
18695 | DMI_MATCH(DMI_PRODUCT_NAME, "Vostro1510"), | 18578 | DMI_MATCH(DMI_PRODUCT_NAME, "Vostro1510"), |
18696 | }, | 18579 | }, |
18697 | }, | 18580 | }, |
@@ -18699,9 +18582,18 @@ diff -urNp linux-2.6.29.6/drivers/input/serio/i8042-x86ia64io.h linux-2.6.29.6/d | |||
18699 | + { NULL, NULL, {DMI_MATCH(DMI_NONE, {0})}, NULL } | 18582 | + { NULL, NULL, {DMI_MATCH(DMI_NONE, {0})}, NULL } |
18700 | }; | 18583 | }; |
18701 | 18584 | ||
18585 | static struct dmi_system_id __initdata i8042_dmi_reset_table[] = { | ||
18586 | @@ -392,7 +392,7 @@ static struct dmi_system_id __initdata i | ||
18587 | DMI_MATCH(DMI_BOARD_VENDOR, "LG Electronics Inc."), | ||
18588 | }, | ||
18589 | }, | ||
18590 | - { } | ||
18591 | + { NULL, NULL, {DMI_MATCH(DMI_NONE, {0})}, NULL } | ||
18592 | }; | ||
18593 | |||
18702 | #ifdef CONFIG_PNP | 18594 | #ifdef CONFIG_PNP |
18703 | @@ -378,7 +378,7 @@ static struct dmi_system_id __initdata i | 18595 | @@ -411,7 +411,7 @@ static struct dmi_system_id __initdata i |
18704 | DMI_MATCH(DMI_BOARD_VENDOR, "Intel Corporation"), | 18596 | DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"), |
18705 | }, | 18597 | }, |
18706 | }, | 18598 | }, |
18707 | - { } | 18599 | - { } |
@@ -18709,7 +18601,7 @@ diff -urNp linux-2.6.29.6/drivers/input/serio/i8042-x86ia64io.h linux-2.6.29.6/d | |||
18709 | }; | 18601 | }; |
18710 | #endif | 18602 | #endif |
18711 | 18603 | ||
18712 | @@ -445,7 +445,7 @@ static struct dmi_system_id __initdata i | 18604 | @@ -478,7 +478,7 @@ static struct dmi_system_id __initdata i |
18713 | DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 4280"), | 18605 | DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 4280"), |
18714 | }, | 18606 | }, |
18715 | }, | 18607 | }, |
@@ -18718,10 +18610,10 @@ diff -urNp linux-2.6.29.6/drivers/input/serio/i8042-x86ia64io.h linux-2.6.29.6/d | |||
18718 | }; | 18610 | }; |
18719 | 18611 | ||
18720 | #endif /* CONFIG_X86 */ | 18612 | #endif /* CONFIG_X86 */ |
18721 | diff -urNp linux-2.6.29.6/drivers/input/serio/serio_raw.c linux-2.6.29.6/drivers/input/serio/serio_raw.c | 18613 | diff -urNp linux-2.6.30.4/drivers/input/serio/serio_raw.c linux-2.6.30.4/drivers/input/serio/serio_raw.c |
18722 | --- linux-2.6.29.6/drivers/input/serio/serio_raw.c 2009-07-02 19:41:20.000000000 -0400 | 18614 | --- linux-2.6.30.4/drivers/input/serio/serio_raw.c 2009-07-24 17:47:51.000000000 -0400 |
18723 | +++ linux-2.6.29.6/drivers/input/serio/serio_raw.c 2009-07-23 17:34:32.126724952 -0400 | 18615 | +++ linux-2.6.30.4/drivers/input/serio/serio_raw.c 2009-07-30 09:48:10.027427071 -0400 |
18724 | @@ -378,7 +378,7 @@ static struct serio_device_id serio_raw_ | 18616 | @@ -376,7 +376,7 @@ static struct serio_device_id serio_raw_ |
18725 | .id = SERIO_ANY, | 18617 | .id = SERIO_ANY, |
18726 | .extra = SERIO_ANY, | 18618 | .extra = SERIO_ANY, |
18727 | }, | 18619 | }, |
@@ -18730,9 +18622,9 @@ diff -urNp linux-2.6.29.6/drivers/input/serio/serio_raw.c linux-2.6.29.6/drivers | |||
18730 | }; | 18622 | }; |
18731 | 18623 | ||
18732 | MODULE_DEVICE_TABLE(serio, serio_raw_serio_ids); | 18624 | MODULE_DEVICE_TABLE(serio, serio_raw_serio_ids); |
18733 | diff -urNp linux-2.6.29.6/drivers/isdn/capi/kcapi_proc.c linux-2.6.29.6/drivers/isdn/capi/kcapi_proc.c | 18625 | diff -urNp linux-2.6.30.4/drivers/isdn/capi/kcapi_proc.c linux-2.6.30.4/drivers/isdn/capi/kcapi_proc.c |
18734 | --- linux-2.6.29.6/drivers/isdn/capi/kcapi_proc.c 2009-07-02 19:41:20.000000000 -0400 | 18626 | --- linux-2.6.30.4/drivers/isdn/capi/kcapi_proc.c 2009-07-24 17:47:51.000000000 -0400 |
18735 | +++ linux-2.6.29.6/drivers/isdn/capi/kcapi_proc.c 2009-07-23 18:40:27.725292323 -0400 | 18627 | +++ linux-2.6.30.4/drivers/isdn/capi/kcapi_proc.c 2009-07-30 09:48:10.027427071 -0400 |
18736 | @@ -89,14 +89,14 @@ static int contrstats_show(struct seq_fi | 18628 | @@ -89,14 +89,14 @@ static int contrstats_show(struct seq_fi |
18737 | return 0; | 18629 | return 0; |
18738 | } | 18630 | } |
@@ -18767,7 +18659,7 @@ diff -urNp linux-2.6.29.6/drivers/isdn/capi/kcapi_proc.c linux-2.6.29.6/drivers/ | |||
18767 | .start = applications_start, | 18659 | .start = applications_start, |
18768 | .next = applications_next, | 18660 | .next = applications_next, |
18769 | .stop = applications_stop, | 18661 | .stop = applications_stop, |
18770 | @@ -262,7 +262,7 @@ static int capi_driver_show(struct seq_f | 18662 | @@ -264,7 +264,7 @@ static int capi_driver_show(struct seq_f |
18771 | return 0; | 18663 | return 0; |
18772 | } | 18664 | } |
18773 | 18665 | ||
@@ -18776,10 +18668,10 @@ diff -urNp linux-2.6.29.6/drivers/isdn/capi/kcapi_proc.c linux-2.6.29.6/drivers/ | |||
18776 | .start = capi_driver_start, | 18668 | .start = capi_driver_start, |
18777 | .next = capi_driver_next, | 18669 | .next = capi_driver_next, |
18778 | .stop = capi_driver_stop, | 18670 | .stop = capi_driver_stop, |
18779 | diff -urNp linux-2.6.29.6/drivers/isdn/mISDN/timerdev.c linux-2.6.29.6/drivers/isdn/mISDN/timerdev.c | 18671 | diff -urNp linux-2.6.30.4/drivers/isdn/mISDN/timerdev.c linux-2.6.30.4/drivers/isdn/mISDN/timerdev.c |
18780 | --- linux-2.6.29.6/drivers/isdn/mISDN/timerdev.c 2009-07-02 19:41:20.000000000 -0400 | 18672 | --- linux-2.6.30.4/drivers/isdn/mISDN/timerdev.c 2009-07-24 17:47:51.000000000 -0400 |
18781 | +++ linux-2.6.29.6/drivers/isdn/mISDN/timerdev.c 2009-07-23 18:40:27.725292323 -0400 | 18673 | +++ linux-2.6.30.4/drivers/isdn/mISDN/timerdev.c 2009-07-30 09:48:10.028469662 -0400 |
18782 | @@ -260,7 +260,7 @@ mISDN_ioctl(struct inode *inode, struct | 18674 | @@ -259,7 +259,7 @@ mISDN_ioctl(struct inode *inode, struct |
18783 | return ret; | 18675 | return ret; |
18784 | } | 18676 | } |
18785 | 18677 | ||
@@ -18788,9 +18680,9 @@ diff -urNp linux-2.6.29.6/drivers/isdn/mISDN/timerdev.c linux-2.6.29.6/drivers/i | |||
18788 | .read = mISDN_read, | 18680 | .read = mISDN_read, |
18789 | .poll = mISDN_poll, | 18681 | .poll = mISDN_poll, |
18790 | .ioctl = mISDN_ioctl, | 18682 | .ioctl = mISDN_ioctl, |
18791 | diff -urNp linux-2.6.29.6/drivers/lguest/core.c linux-2.6.29.6/drivers/lguest/core.c | 18683 | diff -urNp linux-2.6.30.4/drivers/lguest/core.c linux-2.6.30.4/drivers/lguest/core.c |
18792 | --- linux-2.6.29.6/drivers/lguest/core.c 2009-07-02 19:41:20.000000000 -0400 | 18684 | --- linux-2.6.30.4/drivers/lguest/core.c 2009-07-24 17:47:51.000000000 -0400 |
18793 | +++ linux-2.6.29.6/drivers/lguest/core.c 2009-07-23 17:34:32.126724952 -0400 | 18685 | +++ linux-2.6.30.4/drivers/lguest/core.c 2009-07-30 09:48:10.028469662 -0400 |
18794 | @@ -80,9 +80,17 @@ static __init int map_switcher(void) | 18686 | @@ -80,9 +80,17 @@ static __init int map_switcher(void) |
18795 | * (SWITCHER_ADDR). We might not get it in theory, but in practice | 18687 | * (SWITCHER_ADDR). We might not get it in theory, but in practice |
18796 | * it's worked so far. The end address needs +1 because __get_vm_area | 18688 | * it's worked so far. The end address needs +1 because __get_vm_area |
@@ -18809,9 +18701,9 @@ diff -urNp linux-2.6.29.6/drivers/lguest/core.c linux-2.6.29.6/drivers/lguest/co | |||
18809 | if (!switcher_vma) { | 18701 | if (!switcher_vma) { |
18810 | err = -ENOMEM; | 18702 | err = -ENOMEM; |
18811 | printk("lguest: could not map switcher pages high\n"); | 18703 | printk("lguest: could not map switcher pages high\n"); |
18812 | diff -urNp linux-2.6.29.6/drivers/lguest/lguest_user.c linux-2.6.29.6/drivers/lguest/lguest_user.c | 18704 | diff -urNp linux-2.6.30.4/drivers/lguest/lguest_user.c linux-2.6.30.4/drivers/lguest/lguest_user.c |
18813 | --- linux-2.6.29.6/drivers/lguest/lguest_user.c 2009-07-02 19:41:20.000000000 -0400 | 18705 | --- linux-2.6.30.4/drivers/lguest/lguest_user.c 2009-07-24 17:47:51.000000000 -0400 |
18814 | +++ linux-2.6.29.6/drivers/lguest/lguest_user.c 2009-07-23 18:40:27.725292323 -0400 | 18706 | +++ linux-2.6.30.4/drivers/lguest/lguest_user.c 2009-07-30 09:48:10.028469662 -0400 |
18815 | @@ -329,7 +329,7 @@ static int close(struct inode *inode, st | 18707 | @@ -329,7 +329,7 @@ static int close(struct inode *inode, st |
18816 | * We begin our understanding with the Host kernel interface which the Launcher | 18708 | * We begin our understanding with the Host kernel interface which the Launcher |
18817 | * uses: reading and writing a character device called /dev/lguest. All the | 18709 | * uses: reading and writing a character device called /dev/lguest. All the |
@@ -18821,10 +18713,10 @@ diff -urNp linux-2.6.29.6/drivers/lguest/lguest_user.c linux-2.6.29.6/drivers/lg | |||
18821 | .owner = THIS_MODULE, | 18713 | .owner = THIS_MODULE, |
18822 | .release = close, | 18714 | .release = close, |
18823 | .write = write, | 18715 | .write = write, |
18824 | diff -urNp linux-2.6.29.6/drivers/md/bitmap.c linux-2.6.29.6/drivers/md/bitmap.c | 18716 | diff -urNp linux-2.6.30.4/drivers/md/bitmap.c linux-2.6.30.4/drivers/md/bitmap.c |
18825 | --- linux-2.6.29.6/drivers/md/bitmap.c 2009-07-02 19:41:20.000000000 -0400 | 18717 | --- linux-2.6.30.4/drivers/md/bitmap.c 2009-07-24 17:47:51.000000000 -0400 |
18826 | +++ linux-2.6.29.6/drivers/md/bitmap.c 2009-07-23 17:34:32.126724952 -0400 | 18718 | +++ linux-2.6.30.4/drivers/md/bitmap.c 2009-07-30 09:48:10.029590223 -0400 |
18827 | @@ -57,7 +57,7 @@ | 18719 | @@ -58,7 +58,7 @@ |
18828 | # if DEBUG > 0 | 18720 | # if DEBUG > 0 |
18829 | # define PRINTK(x...) printk(KERN_DEBUG x) | 18721 | # define PRINTK(x...) printk(KERN_DEBUG x) |
18830 | # else | 18722 | # else |
@@ -18833,10 +18725,10 @@ diff -urNp linux-2.6.29.6/drivers/md/bitmap.c linux-2.6.29.6/drivers/md/bitmap.c | |||
18833 | # endif | 18725 | # endif |
18834 | #endif | 18726 | #endif |
18835 | 18727 | ||
18836 | diff -urNp linux-2.6.29.6/drivers/md/md.c linux-2.6.29.6/drivers/md/md.c | 18728 | diff -urNp linux-2.6.30.4/drivers/md/md.c linux-2.6.30.4/drivers/md/md.c |
18837 | --- linux-2.6.29.6/drivers/md/md.c 2009-07-02 19:41:20.000000000 -0400 | 18729 | --- linux-2.6.30.4/drivers/md/md.c 2009-07-24 17:47:51.000000000 -0400 |
18838 | +++ linux-2.6.29.6/drivers/md/md.c 2009-07-23 18:40:27.467400762 -0400 | 18730 | +++ linux-2.6.30.4/drivers/md/md.c 2009-07-30 09:48:10.031075937 -0400 |
18839 | @@ -5637,7 +5637,7 @@ static int md_seq_show(struct seq_file * | 18731 | @@ -5973,7 +5973,7 @@ static int md_seq_show(struct seq_file * |
18840 | chunk_kb ? "KB" : "B"); | 18732 | chunk_kb ? "KB" : "B"); |
18841 | if (bitmap->file) { | 18733 | if (bitmap->file) { |
18842 | seq_printf(seq, ", file: "); | 18734 | seq_printf(seq, ", file: "); |
@@ -18845,19 +18737,46 @@ diff -urNp linux-2.6.29.6/drivers/md/md.c linux-2.6.29.6/drivers/md/md.c | |||
18845 | } | 18737 | } |
18846 | 18738 | ||
18847 | seq_printf(seq, "\n"); | 18739 | seq_printf(seq, "\n"); |
18848 | @@ -5651,7 +5651,7 @@ static int md_seq_show(struct seq_file * | 18740 | diff -urNp linux-2.6.30.4/drivers/md/md.h linux-2.6.30.4/drivers/md/md.h |
18849 | return 0; | 18741 | --- linux-2.6.30.4/drivers/md/md.h 2009-07-24 17:47:51.000000000 -0400 |
18742 | +++ linux-2.6.30.4/drivers/md/md.h 2009-07-30 09:48:10.031075937 -0400 | ||
18743 | @@ -299,7 +299,7 @@ static inline void rdev_dec_pending(mdk_ | ||
18744 | |||
18745 | static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors) | ||
18746 | { | ||
18747 | - atomic_add(nr_sectors, &bdev->bd_contains->bd_disk->sync_io); | ||
18748 | + atomic_add_unchecked(nr_sectors, &bdev->bd_contains->bd_disk->sync_io); | ||
18850 | } | 18749 | } |
18851 | 18750 | ||
18852 | -static struct seq_operations md_seq_ops = { | 18751 | struct mdk_personality |
18853 | +static const struct seq_operations md_seq_ops = { | 18752 | diff -urNp linux-2.6.30.4/drivers/media/dvb/dvb-core/dmxdev.c linux-2.6.30.4/drivers/media/dvb/dvb-core/dmxdev.c |
18854 | .start = md_seq_start, | 18753 | --- linux-2.6.30.4/drivers/media/dvb/dvb-core/dmxdev.c 2009-07-24 17:47:51.000000000 -0400 |
18855 | .next = md_seq_next, | 18754 | +++ linux-2.6.30.4/drivers/media/dvb/dvb-core/dmxdev.c 2009-07-30 12:06:52.108842402 -0400 |
18856 | .stop = md_seq_stop, | 18755 | @@ -1092,7 +1092,7 @@ static unsigned int dvb_dvr_poll(struct |
18857 | diff -urNp linux-2.6.29.6/drivers/media/video/cafe_ccic.c linux-2.6.29.6/drivers/media/video/cafe_ccic.c | 18756 | return mask; |
18858 | --- linux-2.6.29.6/drivers/media/video/cafe_ccic.c 2009-07-02 19:41:20.000000000 -0400 | 18757 | } |
18859 | +++ linux-2.6.29.6/drivers/media/video/cafe_ccic.c 2009-07-23 18:40:27.758392151 -0400 | 18758 | |
18860 | @@ -1428,7 +1428,7 @@ static void cafe_v4l_vm_close(struct vm_ | 18759 | -static struct file_operations dvb_dvr_fops = { |
18760 | +static const struct file_operations dvb_dvr_fops = { | ||
18761 | .owner = THIS_MODULE, | ||
18762 | .read = dvb_dvr_read, | ||
18763 | .write = dvb_dvr_write, | ||
18764 | diff -urNp linux-2.6.30.4/drivers/media/dvb/firewire/firedtv-ci.c linux-2.6.30.4/drivers/media/dvb/firewire/firedtv-ci.c | ||
18765 | --- linux-2.6.30.4/drivers/media/dvb/firewire/firedtv-ci.c 2009-07-24 17:47:51.000000000 -0400 | ||
18766 | +++ linux-2.6.30.4/drivers/media/dvb/firewire/firedtv-ci.c 2009-07-30 12:06:52.110732547 -0400 | ||
18767 | @@ -215,7 +215,7 @@ static unsigned int fdtv_ca_io_poll(stru | ||
18768 | return POLLIN; | ||
18769 | } | ||
18770 | |||
18771 | -static struct file_operations fdtv_ca_fops = { | ||
18772 | +static const struct file_operations fdtv_ca_fops = { | ||
18773 | .owner = THIS_MODULE, | ||
18774 | .ioctl = dvb_generic_ioctl, | ||
18775 | .open = dvb_generic_open, | ||
18776 | diff -urNp linux-2.6.30.4/drivers/media/video/cafe_ccic.c linux-2.6.30.4/drivers/media/video/cafe_ccic.c | ||
18777 | --- linux-2.6.30.4/drivers/media/video/cafe_ccic.c 2009-07-24 17:47:51.000000000 -0400 | ||
18778 | +++ linux-2.6.30.4/drivers/media/video/cafe_ccic.c 2009-07-30 09:48:10.031530096 -0400 | ||
18779 | @@ -1326,7 +1326,7 @@ static void cafe_v4l_vm_close(struct vm_ | ||
18861 | mutex_unlock(&sbuf->cam->s_mutex); | 18780 | mutex_unlock(&sbuf->cam->s_mutex); |
18862 | } | 18781 | } |
18863 | 18782 | ||
@@ -18866,9 +18785,9 @@ diff -urNp linux-2.6.29.6/drivers/media/video/cafe_ccic.c linux-2.6.29.6/drivers | |||
18866 | .open = cafe_v4l_vm_open, | 18785 | .open = cafe_v4l_vm_open, |
18867 | .close = cafe_v4l_vm_close | 18786 | .close = cafe_v4l_vm_close |
18868 | }; | 18787 | }; |
18869 | diff -urNp linux-2.6.29.6/drivers/media/video/et61x251/et61x251_core.c linux-2.6.29.6/drivers/media/video/et61x251/et61x251_core.c | 18788 | diff -urNp linux-2.6.30.4/drivers/media/video/et61x251/et61x251_core.c linux-2.6.30.4/drivers/media/video/et61x251/et61x251_core.c |
18870 | --- linux-2.6.29.6/drivers/media/video/et61x251/et61x251_core.c 2009-07-02 19:41:20.000000000 -0400 | 18789 | --- linux-2.6.30.4/drivers/media/video/et61x251/et61x251_core.c 2009-07-24 17:47:51.000000000 -0400 |
18871 | +++ linux-2.6.29.6/drivers/media/video/et61x251/et61x251_core.c 2009-07-23 18:40:27.771668760 -0400 | 18790 | +++ linux-2.6.30.4/drivers/media/video/et61x251/et61x251_core.c 2009-07-30 09:48:10.031530096 -0400 |
18872 | @@ -1494,7 +1494,7 @@ static void et61x251_vm_close(struct vm_ | 18791 | @@ -1494,7 +1494,7 @@ static void et61x251_vm_close(struct vm_ |
18873 | } | 18792 | } |
18874 | 18793 | ||
@@ -18878,10 +18797,10 @@ diff -urNp linux-2.6.29.6/drivers/media/video/et61x251/et61x251_core.c linux-2.6 | |||
18878 | .open = et61x251_vm_open, | 18797 | .open = et61x251_vm_open, |
18879 | .close = et61x251_vm_close, | 18798 | .close = et61x251_vm_close, |
18880 | }; | 18799 | }; |
18881 | diff -urNp linux-2.6.29.6/drivers/media/video/gspca/gspca.c linux-2.6.29.6/drivers/media/video/gspca/gspca.c | 18800 | diff -urNp linux-2.6.30.4/drivers/media/video/gspca/gspca.c linux-2.6.30.4/drivers/media/video/gspca/gspca.c |
18882 | --- linux-2.6.29.6/drivers/media/video/gspca/gspca.c 2009-07-02 19:41:20.000000000 -0400 | 18801 | --- linux-2.6.30.4/drivers/media/video/gspca/gspca.c 2009-07-24 17:47:51.000000000 -0400 |
18883 | +++ linux-2.6.29.6/drivers/media/video/gspca/gspca.c 2009-07-23 18:40:27.778527732 -0400 | 18802 | +++ linux-2.6.30.4/drivers/media/video/gspca/gspca.c 2009-07-30 09:48:10.032627590 -0400 |
18884 | @@ -98,7 +98,7 @@ static void gspca_vm_close(struct vm_are | 18803 | @@ -99,7 +99,7 @@ static void gspca_vm_close(struct vm_are |
18885 | frame->v4l2_buf.flags &= ~V4L2_BUF_FLAG_MAPPED; | 18804 | frame->v4l2_buf.flags &= ~V4L2_BUF_FLAG_MAPPED; |
18886 | } | 18805 | } |
18887 | 18806 | ||
@@ -18890,10 +18809,10 @@ diff -urNp linux-2.6.29.6/drivers/media/video/gspca/gspca.c linux-2.6.29.6/drive | |||
18890 | .open = gspca_vm_open, | 18809 | .open = gspca_vm_open, |
18891 | .close = gspca_vm_close, | 18810 | .close = gspca_vm_close, |
18892 | }; | 18811 | }; |
18893 | diff -urNp linux-2.6.29.6/drivers/media/video/meye.c linux-2.6.29.6/drivers/media/video/meye.c | 18812 | diff -urNp linux-2.6.30.4/drivers/media/video/meye.c linux-2.6.30.4/drivers/media/video/meye.c |
18894 | --- linux-2.6.29.6/drivers/media/video/meye.c 2009-07-02 19:41:20.000000000 -0400 | 18813 | --- linux-2.6.30.4/drivers/media/video/meye.c 2009-07-24 17:47:51.000000000 -0400 |
18895 | +++ linux-2.6.29.6/drivers/media/video/meye.c 2009-07-23 18:40:27.788416673 -0400 | 18814 | +++ linux-2.6.30.4/drivers/media/video/meye.c 2009-07-30 09:48:10.032627590 -0400 |
18896 | @@ -1628,7 +1628,7 @@ static void meye_vm_close(struct vm_area | 18815 | @@ -1589,7 +1589,7 @@ static void meye_vm_close(struct vm_area |
18897 | meye.vma_use_count[idx]--; | 18816 | meye.vma_use_count[idx]--; |
18898 | } | 18817 | } |
18899 | 18818 | ||
@@ -18902,9 +18821,9 @@ diff -urNp linux-2.6.29.6/drivers/media/video/meye.c linux-2.6.29.6/drivers/medi | |||
18902 | .open = meye_vm_open, | 18821 | .open = meye_vm_open, |
18903 | .close = meye_vm_close, | 18822 | .close = meye_vm_close, |
18904 | }; | 18823 | }; |
18905 | diff -urNp linux-2.6.29.6/drivers/media/video/sn9c102/sn9c102_core.c linux-2.6.29.6/drivers/media/video/sn9c102/sn9c102_core.c | 18824 | diff -urNp linux-2.6.30.4/drivers/media/video/sn9c102/sn9c102_core.c linux-2.6.30.4/drivers/media/video/sn9c102/sn9c102_core.c |
18906 | --- linux-2.6.29.6/drivers/media/video/sn9c102/sn9c102_core.c 2009-07-02 19:41:20.000000000 -0400 | 18825 | --- linux-2.6.30.4/drivers/media/video/sn9c102/sn9c102_core.c 2009-07-24 17:47:51.000000000 -0400 |
18907 | +++ linux-2.6.29.6/drivers/media/video/sn9c102/sn9c102_core.c 2009-07-23 18:40:27.796800559 -0400 | 18826 | +++ linux-2.6.30.4/drivers/media/video/sn9c102/sn9c102_core.c 2009-07-30 09:48:10.033630131 -0400 |
18908 | @@ -2075,7 +2075,7 @@ static void sn9c102_vm_close(struct vm_a | 18827 | @@ -2075,7 +2075,7 @@ static void sn9c102_vm_close(struct vm_a |
18909 | } | 18828 | } |
18910 | 18829 | ||
@@ -18914,9 +18833,9 @@ diff -urNp linux-2.6.29.6/drivers/media/video/sn9c102/sn9c102_core.c linux-2.6.2 | |||
18914 | .open = sn9c102_vm_open, | 18833 | .open = sn9c102_vm_open, |
18915 | .close = sn9c102_vm_close, | 18834 | .close = sn9c102_vm_close, |
18916 | }; | 18835 | }; |
18917 | diff -urNp linux-2.6.29.6/drivers/media/video/stk-webcam.c linux-2.6.29.6/drivers/media/video/stk-webcam.c | 18836 | diff -urNp linux-2.6.30.4/drivers/media/video/stk-webcam.c linux-2.6.30.4/drivers/media/video/stk-webcam.c |
18918 | --- linux-2.6.29.6/drivers/media/video/stk-webcam.c 2009-07-02 19:41:20.000000000 -0400 | 18837 | --- linux-2.6.30.4/drivers/media/video/stk-webcam.c 2009-07-24 17:47:51.000000000 -0400 |
18919 | +++ linux-2.6.29.6/drivers/media/video/stk-webcam.c 2009-07-23 18:40:27.803525619 -0400 | 18838 | +++ linux-2.6.30.4/drivers/media/video/stk-webcam.c 2009-07-30 09:48:10.033630131 -0400 |
18920 | @@ -789,7 +789,7 @@ static void stk_v4l_vm_close(struct vm_a | 18839 | @@ -789,7 +789,7 @@ static void stk_v4l_vm_close(struct vm_a |
18921 | if (sbuf->mapcount == 0) | 18840 | if (sbuf->mapcount == 0) |
18922 | sbuf->v4lbuf.flags &= ~V4L2_BUF_FLAG_MAPPED; | 18841 | sbuf->v4lbuf.flags &= ~V4L2_BUF_FLAG_MAPPED; |
@@ -18926,10 +18845,10 @@ diff -urNp linux-2.6.29.6/drivers/media/video/stk-webcam.c linux-2.6.29.6/driver | |||
18926 | .open = stk_v4l_vm_open, | 18845 | .open = stk_v4l_vm_open, |
18927 | .close = stk_v4l_vm_close | 18846 | .close = stk_v4l_vm_close |
18928 | }; | 18847 | }; |
18929 | diff -urNp linux-2.6.29.6/drivers/media/video/uvc/uvc_v4l2.c linux-2.6.29.6/drivers/media/video/uvc/uvc_v4l2.c | 18848 | diff -urNp linux-2.6.30.4/drivers/media/video/uvc/uvc_v4l2.c linux-2.6.30.4/drivers/media/video/uvc/uvc_v4l2.c |
18930 | --- linux-2.6.29.6/drivers/media/video/uvc/uvc_v4l2.c 2009-07-02 19:41:20.000000000 -0400 | 18849 | --- linux-2.6.30.4/drivers/media/video/uvc/uvc_v4l2.c 2009-07-24 17:47:51.000000000 -0400 |
18931 | +++ linux-2.6.29.6/drivers/media/video/uvc/uvc_v4l2.c 2009-07-23 18:40:27.817489179 -0400 | 18850 | +++ linux-2.6.30.4/drivers/media/video/uvc/uvc_v4l2.c 2009-07-30 09:48:10.034661447 -0400 |
18932 | @@ -1030,7 +1030,7 @@ static void uvc_vm_close(struct vm_area_ | 18851 | @@ -1036,7 +1036,7 @@ static void uvc_vm_close(struct vm_area_ |
18933 | buffer->vma_use_count--; | 18852 | buffer->vma_use_count--; |
18934 | } | 18853 | } |
18935 | 18854 | ||
@@ -18938,9 +18857,9 @@ diff -urNp linux-2.6.29.6/drivers/media/video/uvc/uvc_v4l2.c linux-2.6.29.6/driv | |||
18938 | .open = uvc_vm_open, | 18857 | .open = uvc_vm_open, |
18939 | .close = uvc_vm_close, | 18858 | .close = uvc_vm_close, |
18940 | }; | 18859 | }; |
18941 | diff -urNp linux-2.6.29.6/drivers/media/video/videobuf-dma-contig.c linux-2.6.29.6/drivers/media/video/videobuf-dma-contig.c | 18860 | diff -urNp linux-2.6.30.4/drivers/media/video/videobuf-dma-contig.c linux-2.6.30.4/drivers/media/video/videobuf-dma-contig.c |
18942 | --- linux-2.6.29.6/drivers/media/video/videobuf-dma-contig.c 2009-07-02 19:41:20.000000000 -0400 | 18861 | --- linux-2.6.30.4/drivers/media/video/videobuf-dma-contig.c 2009-07-24 17:47:51.000000000 -0400 |
18943 | +++ linux-2.6.29.6/drivers/media/video/videobuf-dma-contig.c 2009-07-23 18:40:27.828475979 -0400 | 18862 | +++ linux-2.6.30.4/drivers/media/video/videobuf-dma-contig.c 2009-07-30 09:48:10.034661447 -0400 |
18944 | @@ -103,7 +103,7 @@ static void videobuf_vm_close(struct vm_ | 18863 | @@ -103,7 +103,7 @@ static void videobuf_vm_close(struct vm_ |
18945 | } | 18864 | } |
18946 | } | 18865 | } |
@@ -18950,10 +18869,10 @@ diff -urNp linux-2.6.29.6/drivers/media/video/videobuf-dma-contig.c linux-2.6.29 | |||
18950 | .open = videobuf_vm_open, | 18869 | .open = videobuf_vm_open, |
18951 | .close = videobuf_vm_close, | 18870 | .close = videobuf_vm_close, |
18952 | }; | 18871 | }; |
18953 | diff -urNp linux-2.6.29.6/drivers/media/video/vino.c linux-2.6.29.6/drivers/media/video/vino.c | 18872 | diff -urNp linux-2.6.30.4/drivers/media/video/vino.c linux-2.6.30.4/drivers/media/video/vino.c |
18954 | --- linux-2.6.29.6/drivers/media/video/vino.c 2009-07-02 19:41:20.000000000 -0400 | 18873 | --- linux-2.6.30.4/drivers/media/video/vino.c 2009-07-24 17:47:51.000000000 -0400 |
18955 | +++ linux-2.6.29.6/drivers/media/video/vino.c 2009-07-23 18:40:27.838748348 -0400 | 18874 | +++ linux-2.6.30.4/drivers/media/video/vino.c 2009-07-30 09:48:10.035537043 -0400 |
18956 | @@ -4088,7 +4088,7 @@ static void vino_vm_close(struct vm_area | 18875 | @@ -3858,7 +3858,7 @@ static void vino_vm_close(struct vm_area |
18957 | dprintk("vino_vm_close(): count = %d\n", fb->map_count); | 18876 | dprintk("vino_vm_close(): count = %d\n", fb->map_count); |
18958 | } | 18877 | } |
18959 | 18878 | ||
@@ -18962,9 +18881,9 @@ diff -urNp linux-2.6.29.6/drivers/media/video/vino.c linux-2.6.29.6/drivers/medi | |||
18962 | .open = vino_vm_open, | 18881 | .open = vino_vm_open, |
18963 | .close = vino_vm_close, | 18882 | .close = vino_vm_close, |
18964 | }; | 18883 | }; |
18965 | diff -urNp linux-2.6.29.6/drivers/media/video/zc0301/zc0301_core.c linux-2.6.29.6/drivers/media/video/zc0301/zc0301_core.c | 18884 | diff -urNp linux-2.6.30.4/drivers/media/video/zc0301/zc0301_core.c linux-2.6.30.4/drivers/media/video/zc0301/zc0301_core.c |
18966 | --- linux-2.6.29.6/drivers/media/video/zc0301/zc0301_core.c 2009-07-02 19:41:20.000000000 -0400 | 18885 | --- linux-2.6.30.4/drivers/media/video/zc0301/zc0301_core.c 2009-07-24 17:47:51.000000000 -0400 |
18967 | +++ linux-2.6.29.6/drivers/media/video/zc0301/zc0301_core.c 2009-07-23 18:40:27.845358958 -0400 | 18886 | +++ linux-2.6.30.4/drivers/media/video/zc0301/zc0301_core.c 2009-07-30 09:48:10.036598829 -0400 |
18968 | @@ -933,7 +933,7 @@ static void zc0301_vm_close(struct vm_ar | 18887 | @@ -933,7 +933,7 @@ static void zc0301_vm_close(struct vm_ar |
18969 | } | 18888 | } |
18970 | 18889 | ||
@@ -18974,11 +18893,11 @@ diff -urNp linux-2.6.29.6/drivers/media/video/zc0301/zc0301_core.c linux-2.6.29. | |||
18974 | .open = zc0301_vm_open, | 18893 | .open = zc0301_vm_open, |
18975 | .close = zc0301_vm_close, | 18894 | .close = zc0301_vm_close, |
18976 | }; | 18895 | }; |
18977 | diff -urNp linux-2.6.29.6/drivers/media/video/zoran/zoran_driver.c linux-2.6.29.6/drivers/media/video/zoran/zoran_driver.c | 18896 | diff -urNp linux-2.6.30.4/drivers/media/video/zoran/zoran_driver.c linux-2.6.30.4/drivers/media/video/zoran/zoran_driver.c |
18978 | --- linux-2.6.29.6/drivers/media/video/zoran/zoran_driver.c 2009-07-02 19:41:20.000000000 -0400 | 18897 | --- linux-2.6.30.4/drivers/media/video/zoran/zoran_driver.c 2009-07-24 17:47:51.000000000 -0400 |
18979 | +++ linux-2.6.29.6/drivers/media/video/zoran/zoran_driver.c 2009-07-23 18:40:27.858649863 -0400 | 18898 | +++ linux-2.6.30.4/drivers/media/video/zoran/zoran_driver.c 2009-07-30 12:07:09.597971485 -0400 |
18980 | @@ -4359,7 +4359,7 @@ zoran_vm_close (struct vm_area_struct *v | 18899 | @@ -3177,7 +3177,7 @@ zoran_vm_close (struct vm_area_struct *v |
18981 | } | 18900 | mutex_unlock(&zr->resource_lock); |
18982 | } | 18901 | } |
18983 | 18902 | ||
18984 | -static struct vm_operations_struct zoran_vm_ops = { | 18903 | -static struct vm_operations_struct zoran_vm_ops = { |
@@ -18986,9 +18905,9 @@ diff -urNp linux-2.6.29.6/drivers/media/video/zoran/zoran_driver.c linux-2.6.29. | |||
18986 | .open = zoran_vm_open, | 18905 | .open = zoran_vm_open, |
18987 | .close = zoran_vm_close, | 18906 | .close = zoran_vm_close, |
18988 | }; | 18907 | }; |
18989 | diff -urNp linux-2.6.29.6/drivers/misc/ibmasm/ibmasmfs.c linux-2.6.29.6/drivers/misc/ibmasm/ibmasmfs.c | 18908 | diff -urNp linux-2.6.30.4/drivers/misc/ibmasm/ibmasmfs.c linux-2.6.30.4/drivers/misc/ibmasm/ibmasmfs.c |
18990 | --- linux-2.6.29.6/drivers/misc/ibmasm/ibmasmfs.c 2009-07-02 19:41:20.000000000 -0400 | 18909 | --- linux-2.6.30.4/drivers/misc/ibmasm/ibmasmfs.c 2009-07-24 17:47:51.000000000 -0400 |
18991 | +++ linux-2.6.29.6/drivers/misc/ibmasm/ibmasmfs.c 2009-07-23 18:40:27.864885246 -0400 | 18910 | +++ linux-2.6.30.4/drivers/misc/ibmasm/ibmasmfs.c 2009-07-30 09:48:10.036598829 -0400 |
18992 | @@ -97,7 +97,7 @@ static int ibmasmfs_get_super(struct fil | 18911 | @@ -97,7 +97,7 @@ static int ibmasmfs_get_super(struct fil |
18993 | return get_sb_single(fst, flags, data, ibmasmfs_fill_super, mnt); | 18912 | return get_sb_single(fst, flags, data, ibmasmfs_fill_super, mnt); |
18994 | } | 18913 | } |
@@ -18998,9 +18917,9 @@ diff -urNp linux-2.6.29.6/drivers/misc/ibmasm/ibmasmfs.c linux-2.6.29.6/drivers/ | |||
18998 | .statfs = simple_statfs, | 18917 | .statfs = simple_statfs, |
18999 | .drop_inode = generic_delete_inode, | 18918 | .drop_inode = generic_delete_inode, |
19000 | }; | 18919 | }; |
19001 | diff -urNp linux-2.6.29.6/drivers/misc/phantom.c linux-2.6.29.6/drivers/misc/phantom.c | 18920 | diff -urNp linux-2.6.30.4/drivers/misc/phantom.c linux-2.6.30.4/drivers/misc/phantom.c |
19002 | --- linux-2.6.29.6/drivers/misc/phantom.c 2009-07-02 19:41:20.000000000 -0400 | 18921 | --- linux-2.6.30.4/drivers/misc/phantom.c 2009-07-24 17:47:51.000000000 -0400 |
19003 | +++ linux-2.6.29.6/drivers/misc/phantom.c 2009-07-23 18:40:27.874264006 -0400 | 18922 | +++ linux-2.6.30.4/drivers/misc/phantom.c 2009-07-30 09:48:10.037448258 -0400 |
19004 | @@ -271,7 +271,7 @@ static unsigned int phantom_poll(struct | 18923 | @@ -271,7 +271,7 @@ static unsigned int phantom_poll(struct |
19005 | return mask; | 18924 | return mask; |
19006 | } | 18925 | } |
@@ -19010,10 +18929,10 @@ diff -urNp linux-2.6.29.6/drivers/misc/phantom.c linux-2.6.29.6/drivers/misc/pha | |||
19010 | .open = phantom_open, | 18929 | .open = phantom_open, |
19011 | .release = phantom_release, | 18930 | .release = phantom_release, |
19012 | .unlocked_ioctl = phantom_ioctl, | 18931 | .unlocked_ioctl = phantom_ioctl, |
19013 | diff -urNp linux-2.6.29.6/drivers/misc/sgi-gru/grufile.c linux-2.6.29.6/drivers/misc/sgi-gru/grufile.c | 18932 | diff -urNp linux-2.6.30.4/drivers/misc/sgi-gru/grufile.c linux-2.6.30.4/drivers/misc/sgi-gru/grufile.c |
19014 | --- linux-2.6.29.6/drivers/misc/sgi-gru/grufile.c 2009-07-02 19:41:20.000000000 -0400 | 18933 | --- linux-2.6.30.4/drivers/misc/sgi-gru/grufile.c 2009-07-24 17:47:51.000000000 -0400 |
19015 | +++ linux-2.6.29.6/drivers/misc/sgi-gru/grufile.c 2009-07-23 18:40:27.879624060 -0400 | 18934 | +++ linux-2.6.30.4/drivers/misc/sgi-gru/grufile.c 2009-07-30 17:46:03.273720317 -0400 |
19016 | @@ -63,7 +63,7 @@ struct gru_stats_s gru_stats; | 18935 | @@ -53,7 +53,7 @@ struct gru_stats_s gru_stats; |
19017 | /* Guaranteed user available resources on each node */ | 18936 | /* Guaranteed user available resources on each node */ |
19018 | static int max_user_cbrs, max_user_dsr_bytes; | 18937 | static int max_user_cbrs, max_user_dsr_bytes; |
19019 | 18938 | ||
@@ -19022,7 +18941,7 @@ diff -urNp linux-2.6.29.6/drivers/misc/sgi-gru/grufile.c linux-2.6.29.6/drivers/ | |||
19022 | static struct miscdevice gru_miscdev; | 18941 | static struct miscdevice gru_miscdev; |
19023 | 18942 | ||
19024 | 18943 | ||
19025 | @@ -464,7 +464,7 @@ static void __exit gru_exit(void) | 18944 | @@ -460,7 +460,7 @@ static void __exit gru_exit(void) |
19026 | gru_proc_exit(); | 18945 | gru_proc_exit(); |
19027 | } | 18946 | } |
19028 | 18947 | ||
@@ -19031,19 +18950,43 @@ diff -urNp linux-2.6.29.6/drivers/misc/sgi-gru/grufile.c linux-2.6.29.6/drivers/ | |||
19031 | .owner = THIS_MODULE, | 18950 | .owner = THIS_MODULE, |
19032 | .unlocked_ioctl = gru_file_unlocked_ioctl, | 18951 | .unlocked_ioctl = gru_file_unlocked_ioctl, |
19033 | .mmap = gru_file_mmap, | 18952 | .mmap = gru_file_mmap, |
19034 | @@ -476,7 +476,7 @@ static struct miscdevice gru_miscdev = { | 18953 | @@ -472,7 +472,7 @@ static struct miscdevice gru_miscdev = { |
19035 | .fops = &gru_fops, | 18954 | .fops = &gru_fops, |
19036 | }; | 18955 | }; |
19037 | 18956 | ||
19038 | -struct vm_operations_struct gru_vm_ops = { | 18957 | -struct vm_operations_struct gru_vm_ops = { |
19039 | +struct const vm_operations_struct gru_vm_ops = { | 18958 | +const struct vm_operations_struct gru_vm_ops = { |
19040 | .close = gru_vma_close, | 18959 | .close = gru_vma_close, |
19041 | .fault = gru_fault, | 18960 | .fault = gru_fault, |
19042 | }; | 18961 | }; |
19043 | diff -urNp linux-2.6.29.6/drivers/mtd/devices/doc2000.c linux-2.6.29.6/drivers/mtd/devices/doc2000.c | 18962 | diff -urNp linux-2.6.30.4/drivers/misc/sgi-gru/grutables.h linux-2.6.30.4/drivers/misc/sgi-gru/grutables.h |
19044 | --- linux-2.6.29.6/drivers/mtd/devices/doc2000.c 2009-07-02 19:41:20.000000000 -0400 | 18963 | --- linux-2.6.30.4/drivers/misc/sgi-gru/grutables.h 2009-07-24 17:47:51.000000000 -0400 |
19045 | +++ linux-2.6.29.6/drivers/mtd/devices/doc2000.c 2009-07-23 17:34:32.128864545 -0400 | 18964 | +++ linux-2.6.30.4/drivers/misc/sgi-gru/grutables.h 2009-07-30 17:46:28.013592240 -0400 |
19046 | @@ -777,7 +777,7 @@ static int doc_write(struct mtd_info *mt | 18965 | @@ -589,7 +589,7 @@ static inline void unlock_tgh_handle(str |
18966 | */ | ||
18967 | struct gru_unload_context_req; | ||
18968 | |||
18969 | -extern struct vm_operations_struct gru_vm_ops; | ||
18970 | +extern const struct vm_operations_struct gru_vm_ops; | ||
18971 | extern struct device *grudev; | ||
18972 | |||
18973 | extern struct gru_vma_data *gru_alloc_vma_data(struct vm_area_struct *vma, | ||
18974 | diff -urNp linux-2.6.30.4/drivers/mmc/core/debugfs.c linux-2.6.30.4/drivers/mmc/core/debugfs.c | ||
18975 | --- linux-2.6.30.4/drivers/mmc/core/debugfs.c 2009-07-24 17:47:51.000000000 -0400 | ||
18976 | +++ linux-2.6.30.4/drivers/mmc/core/debugfs.c 2009-07-30 12:06:52.113899680 -0400 | ||
18977 | @@ -240,7 +240,7 @@ static int mmc_ext_csd_release(struct in | ||
18978 | return 0; | ||
18979 | } | ||
18980 | |||
18981 | -static struct file_operations mmc_dbg_ext_csd_fops = { | ||
18982 | +static const struct file_operations mmc_dbg_ext_csd_fops = { | ||
18983 | .open = mmc_ext_csd_open, | ||
18984 | .read = mmc_ext_csd_read, | ||
18985 | .release = mmc_ext_csd_release, | ||
18986 | diff -urNp linux-2.6.30.4/drivers/mtd/devices/doc2000.c linux-2.6.30.4/drivers/mtd/devices/doc2000.c | ||
18987 | --- linux-2.6.30.4/drivers/mtd/devices/doc2000.c 2009-07-24 17:47:51.000000000 -0400 | ||
18988 | +++ linux-2.6.30.4/drivers/mtd/devices/doc2000.c 2009-07-30 09:48:10.037448258 -0400 | ||
18989 | @@ -776,7 +776,7 @@ static int doc_write(struct mtd_info *mt | ||
19047 | 18990 | ||
19048 | /* The ECC will not be calculated correctly if less than 512 is written */ | 18991 | /* The ECC will not be calculated correctly if less than 512 is written */ |
19049 | /* DBB- | 18992 | /* DBB- |
@@ -19052,10 +18995,10 @@ diff -urNp linux-2.6.29.6/drivers/mtd/devices/doc2000.c linux-2.6.29.6/drivers/m | |||
19052 | printk(KERN_WARNING | 18995 | printk(KERN_WARNING |
19053 | "ECC needs a full sector write (adr: %lx size %lx)\n", | 18996 | "ECC needs a full sector write (adr: %lx size %lx)\n", |
19054 | (long) to, (long) len); | 18997 | (long) to, (long) len); |
19055 | diff -urNp linux-2.6.29.6/drivers/mtd/devices/doc2001.c linux-2.6.29.6/drivers/mtd/devices/doc2001.c | 18998 | diff -urNp linux-2.6.30.4/drivers/mtd/devices/doc2001.c linux-2.6.30.4/drivers/mtd/devices/doc2001.c |
19056 | --- linux-2.6.29.6/drivers/mtd/devices/doc2001.c 2009-07-02 19:41:20.000000000 -0400 | 18999 | --- linux-2.6.30.4/drivers/mtd/devices/doc2001.c 2009-07-24 17:47:51.000000000 -0400 |
19057 | +++ linux-2.6.29.6/drivers/mtd/devices/doc2001.c 2009-07-23 17:34:32.128864545 -0400 | 19000 | +++ linux-2.6.30.4/drivers/mtd/devices/doc2001.c 2009-07-30 11:10:49.040301758 -0400 |
19058 | @@ -396,6 +396,8 @@ static int doc_read (struct mtd_info *mt | 19001 | @@ -395,6 +395,8 @@ static int doc_read (struct mtd_info *mt |
19059 | /* Don't allow read past end of device */ | 19002 | /* Don't allow read past end of device */ |
19060 | if (from >= this->totlen) | 19003 | if (from >= this->totlen) |
19061 | return -EINVAL; | 19004 | return -EINVAL; |
@@ -19064,9 +19007,9 @@ diff -urNp linux-2.6.29.6/drivers/mtd/devices/doc2001.c linux-2.6.29.6/drivers/m | |||
19064 | 19007 | ||
19065 | /* Don't allow a single read to cross a 512-byte block boundary */ | 19008 | /* Don't allow a single read to cross a 512-byte block boundary */ |
19066 | if (from + len > ((from | 0x1ff) + 1)) | 19009 | if (from + len > ((from | 0x1ff) + 1)) |
19067 | diff -urNp linux-2.6.29.6/drivers/mtd/ubi/build.c linux-2.6.29.6/drivers/mtd/ubi/build.c | 19010 | diff -urNp linux-2.6.30.4/drivers/mtd/ubi/build.c linux-2.6.30.4/drivers/mtd/ubi/build.c |
19068 | --- linux-2.6.29.6/drivers/mtd/ubi/build.c 2009-07-02 19:41:20.000000000 -0400 | 19011 | --- linux-2.6.30.4/drivers/mtd/ubi/build.c 2009-07-24 17:47:51.000000000 -0400 |
19069 | +++ linux-2.6.29.6/drivers/mtd/ubi/build.c 2009-07-23 17:34:32.128864545 -0400 | 19012 | +++ linux-2.6.30.4/drivers/mtd/ubi/build.c 2009-07-30 09:48:10.038828720 -0400 |
19070 | @@ -1112,7 +1112,7 @@ static int __init bytes_str_to_int(const | 19013 | @@ -1112,7 +1112,7 @@ static int __init bytes_str_to_int(const |
19071 | unsigned long result; | 19014 | unsigned long result; |
19072 | 19015 | ||
@@ -19076,57 +19019,9 @@ diff -urNp linux-2.6.29.6/drivers/mtd/ubi/build.c linux-2.6.29.6/drivers/mtd/ubi | |||
19076 | printk(KERN_ERR "UBI error: incorrect bytes count: \"%s\"\n", | 19019 | printk(KERN_ERR "UBI error: incorrect bytes count: \"%s\"\n", |
19077 | str); | 19020 | str); |
19078 | return -EINVAL; | 19021 | return -EINVAL; |
19079 | diff -urNp linux-2.6.29.6/drivers/net/bonding/bond_main.c linux-2.6.29.6/drivers/net/bonding/bond_main.c | 19022 | diff -urNp linux-2.6.30.4/drivers/net/irda/vlsi_ir.c linux-2.6.30.4/drivers/net/irda/vlsi_ir.c |
19080 | --- linux-2.6.29.6/drivers/net/bonding/bond_main.c 2009-07-02 19:41:20.000000000 -0400 | 19023 | --- linux-2.6.30.4/drivers/net/irda/vlsi_ir.c 2009-07-24 17:47:51.000000000 -0400 |
19081 | +++ linux-2.6.29.6/drivers/net/bonding/bond_main.c 2009-07-23 18:40:27.880597977 -0400 | 19024 | +++ linux-2.6.30.4/drivers/net/irda/vlsi_ir.c 2009-07-30 09:48:10.038828720 -0400 |
19082 | @@ -3368,7 +3368,7 @@ static int bond_info_seq_show(struct seq | ||
19083 | return 0; | ||
19084 | } | ||
19085 | |||
19086 | -static struct seq_operations bond_info_seq_ops = { | ||
19087 | +static const struct seq_operations bond_info_seq_ops = { | ||
19088 | .start = bond_info_seq_start, | ||
19089 | .next = bond_info_seq_next, | ||
19090 | .stop = bond_info_seq_stop, | ||
19091 | diff -urNp linux-2.6.29.6/drivers/net/hamradio/bpqether.c linux-2.6.29.6/drivers/net/hamradio/bpqether.c | ||
19092 | --- linux-2.6.29.6/drivers/net/hamradio/bpqether.c 2009-07-02 19:41:20.000000000 -0400 | ||
19093 | +++ linux-2.6.29.6/drivers/net/hamradio/bpqether.c 2009-07-23 18:40:27.886801730 -0400 | ||
19094 | @@ -454,7 +454,7 @@ static int bpq_seq_show(struct seq_file | ||
19095 | return 0; | ||
19096 | } | ||
19097 | |||
19098 | -static struct seq_operations bpq_seqops = { | ||
19099 | +static const struct seq_operations bpq_seqops = { | ||
19100 | .start = bpq_seq_start, | ||
19101 | .next = bpq_seq_next, | ||
19102 | .stop = bpq_seq_stop, | ||
19103 | diff -urNp linux-2.6.29.6/drivers/net/hamradio/scc.c linux-2.6.29.6/drivers/net/hamradio/scc.c | ||
19104 | --- linux-2.6.29.6/drivers/net/hamradio/scc.c 2009-07-02 19:41:20.000000000 -0400 | ||
19105 | +++ linux-2.6.29.6/drivers/net/hamradio/scc.c 2009-07-23 18:40:27.887355447 -0400 | ||
19106 | @@ -2073,7 +2073,7 @@ static int scc_net_seq_show(struct seq_f | ||
19107 | return 0; | ||
19108 | } | ||
19109 | |||
19110 | -static struct seq_operations scc_net_seq_ops = { | ||
19111 | +static const struct seq_operations scc_net_seq_ops = { | ||
19112 | .start = scc_net_seq_start, | ||
19113 | .next = scc_net_seq_next, | ||
19114 | .stop = scc_net_seq_stop, | ||
19115 | diff -urNp linux-2.6.29.6/drivers/net/hamradio/yam.c linux-2.6.29.6/drivers/net/hamradio/yam.c | ||
19116 | --- linux-2.6.29.6/drivers/net/hamradio/yam.c 2009-07-02 19:41:20.000000000 -0400 | ||
19117 | +++ linux-2.6.29.6/drivers/net/hamradio/yam.c 2009-07-23 18:40:27.889386996 -0400 | ||
19118 | @@ -787,7 +787,7 @@ static int yam_seq_show(struct seq_file | ||
19119 | return 0; | ||
19120 | } | ||
19121 | |||
19122 | -static struct seq_operations yam_seqops = { | ||
19123 | +static const struct seq_operations yam_seqops = { | ||
19124 | .start = yam_seq_start, | ||
19125 | .next = yam_seq_next, | ||
19126 | .stop = yam_seq_stop, | ||
19127 | diff -urNp linux-2.6.29.6/drivers/net/irda/vlsi_ir.c linux-2.6.29.6/drivers/net/irda/vlsi_ir.c | ||
19128 | --- linux-2.6.29.6/drivers/net/irda/vlsi_ir.c 2009-07-02 19:41:20.000000000 -0400 | ||
19129 | +++ linux-2.6.29.6/drivers/net/irda/vlsi_ir.c 2009-07-23 17:34:32.129778413 -0400 | ||
19130 | @@ -906,13 +906,12 @@ static int vlsi_hard_start_xmit(struct s | 19025 | @@ -906,13 +906,12 @@ static int vlsi_hard_start_xmit(struct s |
19131 | /* no race - tx-ring already empty */ | 19026 | /* no race - tx-ring already empty */ |
19132 | vlsi_set_baud(idev, iobase); | 19027 | vlsi_set_baud(idev, iobase); |
@@ -19143,9 +19038,9 @@ diff -urNp linux-2.6.29.6/drivers/net/irda/vlsi_ir.c linux-2.6.29.6/drivers/net/ | |||
19143 | spin_unlock_irqrestore(&idev->lock, flags); | 19038 | spin_unlock_irqrestore(&idev->lock, flags); |
19144 | dev_kfree_skb_any(skb); | 19039 | dev_kfree_skb_any(skb); |
19145 | return 0; | 19040 | return 0; |
19146 | diff -urNp linux-2.6.29.6/drivers/net/pcnet32.c linux-2.6.29.6/drivers/net/pcnet32.c | 19041 | diff -urNp linux-2.6.30.4/drivers/net/pcnet32.c linux-2.6.30.4/drivers/net/pcnet32.c |
19147 | --- linux-2.6.29.6/drivers/net/pcnet32.c 2009-07-02 19:41:20.000000000 -0400 | 19042 | --- linux-2.6.30.4/drivers/net/pcnet32.c 2009-07-24 17:47:51.000000000 -0400 |
19148 | +++ linux-2.6.29.6/drivers/net/pcnet32.c 2009-07-23 17:34:32.129778413 -0400 | 19043 | +++ linux-2.6.30.4/drivers/net/pcnet32.c 2009-07-30 09:48:10.039525961 -0400 |
19149 | @@ -78,7 +78,7 @@ static int cards_found; | 19044 | @@ -78,7 +78,7 @@ static int cards_found; |
19150 | /* | 19045 | /* |
19151 | * VLB I/O addresses | 19046 | * VLB I/O addresses |
@@ -19155,42 +19050,9 @@ diff -urNp linux-2.6.29.6/drivers/net/pcnet32.c linux-2.6.29.6/drivers/net/pcnet | |||
19155 | { 0x300, 0x320, 0x340, 0x360, 0 }; | 19050 | { 0x300, 0x320, 0x340, 0x360, 0 }; |
19156 | 19051 | ||
19157 | static int pcnet32_debug = 0; | 19052 | static int pcnet32_debug = 0; |
19158 | diff -urNp linux-2.6.29.6/drivers/net/pppoe.c linux-2.6.29.6/drivers/net/pppoe.c | 19053 | diff -urNp linux-2.6.30.4/drivers/net/tg3.h linux-2.6.30.4/drivers/net/tg3.h |
19159 | --- linux-2.6.29.6/drivers/net/pppoe.c 2009-07-02 19:41:20.000000000 -0400 | 19054 | --- linux-2.6.30.4/drivers/net/tg3.h 2009-07-24 17:47:51.000000000 -0400 |
19160 | +++ linux-2.6.29.6/drivers/net/pppoe.c 2009-07-23 18:40:27.897571007 -0400 | 19055 | +++ linux-2.6.30.4/drivers/net/tg3.h 2009-07-30 09:48:10.040563677 -0400 |
19161 | @@ -1030,7 +1030,7 @@ static void pppoe_seq_stop(struct seq_fi | ||
19162 | read_unlock_bh(&pppoe_hash_lock); | ||
19163 | } | ||
19164 | |||
19165 | -static struct seq_operations pppoe_seq_ops = { | ||
19166 | +static const struct seq_operations pppoe_seq_ops = { | ||
19167 | .start = pppoe_seq_start, | ||
19168 | .next = pppoe_seq_next, | ||
19169 | .stop = pppoe_seq_stop, | ||
19170 | diff -urNp linux-2.6.29.6/drivers/net/pppol2tp.c linux-2.6.29.6/drivers/net/pppol2tp.c | ||
19171 | --- linux-2.6.29.6/drivers/net/pppol2tp.c 2009-07-02 19:41:20.000000000 -0400 | ||
19172 | +++ linux-2.6.29.6/drivers/net/pppol2tp.c 2009-07-23 18:40:27.913336405 -0400 | ||
19173 | @@ -2517,7 +2517,7 @@ out: | ||
19174 | return 0; | ||
19175 | } | ||
19176 | |||
19177 | -static struct seq_operations pppol2tp_seq_ops = { | ||
19178 | +static const struct seq_operations pppol2tp_seq_ops = { | ||
19179 | .start = pppol2tp_seq_start, | ||
19180 | .next = pppol2tp_seq_next, | ||
19181 | .stop = pppol2tp_seq_stop, | ||
19182 | @@ -2565,7 +2565,7 @@ static int pppol2tp_proc_release(struct | ||
19183 | return seq_release(inode, file); | ||
19184 | } | ||
19185 | |||
19186 | -static struct file_operations pppol2tp_proc_fops = { | ||
19187 | +static const struct file_operations pppol2tp_proc_fops = { | ||
19188 | .owner = THIS_MODULE, | ||
19189 | .open = pppol2tp_proc_open, | ||
19190 | .read = seq_read, | ||
19191 | diff -urNp linux-2.6.29.6/drivers/net/tg3.h linux-2.6.29.6/drivers/net/tg3.h | ||
19192 | --- linux-2.6.29.6/drivers/net/tg3.h 2009-07-02 19:41:20.000000000 -0400 | ||
19193 | +++ linux-2.6.29.6/drivers/net/tg3.h 2009-07-23 17:34:32.130708691 -0400 | ||
19194 | @@ -89,6 +89,7 @@ | 19056 | @@ -89,6 +89,7 @@ |
19195 | #define CHIPREV_ID_5750_A0 0x4000 | 19057 | #define CHIPREV_ID_5750_A0 0x4000 |
19196 | #define CHIPREV_ID_5750_A1 0x4001 | 19058 | #define CHIPREV_ID_5750_A1 0x4001 |
@@ -19199,46 +19061,10 @@ diff -urNp linux-2.6.29.6/drivers/net/tg3.h linux-2.6.29.6/drivers/net/tg3.h | |||
19199 | #define CHIPREV_ID_5750_C2 0x4202 | 19061 | #define CHIPREV_ID_5750_C2 0x4202 |
19200 | #define CHIPREV_ID_5752_A0_HW 0x5000 | 19062 | #define CHIPREV_ID_5752_A0_HW 0x5000 |
19201 | #define CHIPREV_ID_5752_A0 0x6000 | 19063 | #define CHIPREV_ID_5752_A0 0x6000 |
19202 | diff -urNp linux-2.6.29.6/drivers/net/wireless/ath5k/debug.c linux-2.6.29.6/drivers/net/wireless/ath5k/debug.c | 19064 | diff -urNp linux-2.6.30.4/drivers/oprofile/buffer_sync.c linux-2.6.30.4/drivers/oprofile/buffer_sync.c |
19203 | --- linux-2.6.29.6/drivers/net/wireless/ath5k/debug.c 2009-07-02 19:41:20.000000000 -0400 | 19065 | --- linux-2.6.30.4/drivers/oprofile/buffer_sync.c 2009-07-24 17:47:51.000000000 -0400 |
19204 | +++ linux-2.6.29.6/drivers/net/wireless/ath5k/debug.c 2009-07-23 18:40:27.920274556 -0400 | 19066 | +++ linux-2.6.30.4/drivers/oprofile/buffer_sync.c 2009-07-30 09:48:10.040563677 -0400 |
19205 | @@ -165,7 +165,7 @@ static int reg_show(struct seq_file *seq | 19067 | @@ -341,7 +341,7 @@ static void add_data(struct op_entry *en |
19206 | return 0; | ||
19207 | } | ||
19208 | |||
19209 | -static struct seq_operations register_seq_ops = { | ||
19210 | +static const struct seq_operations register_seq_ops = { | ||
19211 | .start = reg_start, | ||
19212 | .next = reg_next, | ||
19213 | .stop = reg_stop, | ||
19214 | diff -urNp linux-2.6.29.6/drivers/net/wireless/libertas/debugfs.c linux-2.6.29.6/drivers/net/wireless/libertas/debugfs.c | ||
19215 | --- linux-2.6.29.6/drivers/net/wireless/libertas/debugfs.c 2009-07-02 19:41:20.000000000 -0400 | ||
19216 | +++ linux-2.6.29.6/drivers/net/wireless/libertas/debugfs.c 2009-07-23 18:40:27.933357619 -0400 | ||
19217 | @@ -938,7 +938,7 @@ static ssize_t lbs_debugfs_write(struct | ||
19218 | return (ssize_t)cnt; | ||
19219 | } | ||
19220 | |||
19221 | -static struct file_operations lbs_debug_fops = { | ||
19222 | +static const struct file_operations lbs_debug_fops = { | ||
19223 | .owner = THIS_MODULE, | ||
19224 | .open = open_file_generic, | ||
19225 | .write = lbs_debugfs_write, | ||
19226 | diff -urNp linux-2.6.29.6/drivers/net/wireless/strip.c linux-2.6.29.6/drivers/net/wireless/strip.c | ||
19227 | --- linux-2.6.29.6/drivers/net/wireless/strip.c 2009-07-02 19:41:20.000000000 -0400 | ||
19228 | +++ linux-2.6.29.6/drivers/net/wireless/strip.c 2009-07-23 18:40:27.958265010 -0400 | ||
19229 | @@ -1125,7 +1125,7 @@ static int strip_seq_show(struct seq_fil | ||
19230 | } | ||
19231 | |||
19232 | |||
19233 | -static struct seq_operations strip_seq_ops = { | ||
19234 | +static const struct seq_operations strip_seq_ops = { | ||
19235 | .start = strip_seq_start, | ||
19236 | .next = strip_seq_next, | ||
19237 | .stop = strip_seq_stop, | ||
19238 | diff -urNp linux-2.6.29.6/drivers/oprofile/buffer_sync.c linux-2.6.29.6/drivers/oprofile/buffer_sync.c | ||
19239 | --- linux-2.6.29.6/drivers/oprofile/buffer_sync.c 2009-07-02 19:41:20.000000000 -0400 | ||
19240 | +++ linux-2.6.29.6/drivers/oprofile/buffer_sync.c 2009-07-23 17:34:32.130708691 -0400 | ||
19241 | @@ -335,7 +335,7 @@ static void add_data(struct op_entry *en | ||
19242 | if (cookie == NO_COOKIE) | 19068 | if (cookie == NO_COOKIE) |
19243 | offset = pc; | 19069 | offset = pc; |
19244 | if (cookie == INVALID_COOKIE) { | 19070 | if (cookie == INVALID_COOKIE) { |
@@ -19247,7 +19073,7 @@ diff -urNp linux-2.6.29.6/drivers/oprofile/buffer_sync.c linux-2.6.29.6/drivers/ | |||
19247 | offset = pc; | 19073 | offset = pc; |
19248 | } | 19074 | } |
19249 | if (cookie != last_cookie) { | 19075 | if (cookie != last_cookie) { |
19250 | @@ -379,14 +379,14 @@ add_sample(struct mm_struct *mm, struct | 19076 | @@ -385,14 +385,14 @@ add_sample(struct mm_struct *mm, struct |
19251 | /* add userspace sample */ | 19077 | /* add userspace sample */ |
19252 | 19078 | ||
19253 | if (!mm) { | 19079 | if (!mm) { |
@@ -19264,7 +19090,7 @@ diff -urNp linux-2.6.29.6/drivers/oprofile/buffer_sync.c linux-2.6.29.6/drivers/ | |||
19264 | return 0; | 19090 | return 0; |
19265 | } | 19091 | } |
19266 | 19092 | ||
19267 | @@ -555,7 +555,7 @@ void sync_buffer(int cpu) | 19093 | @@ -561,7 +561,7 @@ void sync_buffer(int cpu) |
19268 | /* ignore backtraces if failed to add a sample */ | 19094 | /* ignore backtraces if failed to add a sample */ |
19269 | if (state == sb_bt_start) { | 19095 | if (state == sb_bt_start) { |
19270 | state = sb_bt_ignore; | 19096 | state = sb_bt_ignore; |
@@ -19273,9 +19099,9 @@ diff -urNp linux-2.6.29.6/drivers/oprofile/buffer_sync.c linux-2.6.29.6/drivers/ | |||
19273 | } | 19099 | } |
19274 | } | 19100 | } |
19275 | release_mm(mm); | 19101 | release_mm(mm); |
19276 | diff -urNp linux-2.6.29.6/drivers/oprofile/event_buffer.c linux-2.6.29.6/drivers/oprofile/event_buffer.c | 19102 | diff -urNp linux-2.6.30.4/drivers/oprofile/event_buffer.c linux-2.6.30.4/drivers/oprofile/event_buffer.c |
19277 | --- linux-2.6.29.6/drivers/oprofile/event_buffer.c 2009-07-02 19:41:20.000000000 -0400 | 19103 | --- linux-2.6.30.4/drivers/oprofile/event_buffer.c 2009-07-24 17:47:51.000000000 -0400 |
19278 | +++ linux-2.6.29.6/drivers/oprofile/event_buffer.c 2009-07-23 17:34:32.130708691 -0400 | 19104 | +++ linux-2.6.30.4/drivers/oprofile/event_buffer.c 2009-07-30 09:48:10.040563677 -0400 |
19279 | @@ -42,7 +42,7 @@ static atomic_t buffer_ready = ATOMIC_IN | 19105 | @@ -42,7 +42,7 @@ static atomic_t buffer_ready = ATOMIC_IN |
19280 | void add_event_entry(unsigned long value) | 19106 | void add_event_entry(unsigned long value) |
19281 | { | 19107 | { |
@@ -19285,9 +19111,9 @@ diff -urNp linux-2.6.29.6/drivers/oprofile/event_buffer.c linux-2.6.29.6/drivers | |||
19285 | return; | 19111 | return; |
19286 | } | 19112 | } |
19287 | 19113 | ||
19288 | diff -urNp linux-2.6.29.6/drivers/oprofile/oprofilefs.c linux-2.6.29.6/drivers/oprofile/oprofilefs.c | 19114 | diff -urNp linux-2.6.30.4/drivers/oprofile/oprofilefs.c linux-2.6.30.4/drivers/oprofile/oprofilefs.c |
19289 | --- linux-2.6.29.6/drivers/oprofile/oprofilefs.c 2009-07-02 19:41:20.000000000 -0400 | 19115 | --- linux-2.6.30.4/drivers/oprofile/oprofilefs.c 2009-07-24 17:47:51.000000000 -0400 |
19290 | +++ linux-2.6.29.6/drivers/oprofile/oprofilefs.c 2009-07-23 18:40:27.469277997 -0400 | 19116 | +++ linux-2.6.30.4/drivers/oprofile/oprofilefs.c 2009-07-30 09:48:10.043540480 -0400 |
19291 | @@ -35,7 +35,7 @@ static struct inode *oprofilefs_get_inod | 19117 | @@ -35,7 +35,7 @@ static struct inode *oprofilefs_get_inod |
19292 | } | 19118 | } |
19293 | 19119 | ||
@@ -19306,9 +19132,9 @@ diff -urNp linux-2.6.29.6/drivers/oprofile/oprofilefs.c linux-2.6.29.6/drivers/o | |||
19306 | { | 19132 | { |
19307 | struct dentry *d = __oprofilefs_create_file(sb, root, name, | 19133 | struct dentry *d = __oprofilefs_create_file(sb, root, name, |
19308 | &atomic_ro_fops, 0444); | 19134 | &atomic_ro_fops, 0444); |
19309 | diff -urNp linux-2.6.29.6/drivers/oprofile/oprofile_stats.h linux-2.6.29.6/drivers/oprofile/oprofile_stats.h | 19135 | diff -urNp linux-2.6.30.4/drivers/oprofile/oprofile_stats.h linux-2.6.30.4/drivers/oprofile/oprofile_stats.h |
19310 | --- linux-2.6.29.6/drivers/oprofile/oprofile_stats.h 2009-07-02 19:41:20.000000000 -0400 | 19136 | --- linux-2.6.30.4/drivers/oprofile/oprofile_stats.h 2009-07-24 17:47:51.000000000 -0400 |
19311 | +++ linux-2.6.29.6/drivers/oprofile/oprofile_stats.h 2009-07-23 17:34:32.131798606 -0400 | 19137 | +++ linux-2.6.30.4/drivers/oprofile/oprofile_stats.h 2009-07-30 09:48:10.043540480 -0400 |
19312 | @@ -13,10 +13,10 @@ | 19138 | @@ -13,10 +13,10 @@ |
19313 | #include <asm/atomic.h> | 19139 | #include <asm/atomic.h> |
19314 | 19140 | ||
@@ -19324,9 +19150,9 @@ diff -urNp linux-2.6.29.6/drivers/oprofile/oprofile_stats.h linux-2.6.29.6/drive | |||
19324 | }; | 19150 | }; |
19325 | 19151 | ||
19326 | extern struct oprofile_stat_struct oprofile_stats; | 19152 | extern struct oprofile_stat_struct oprofile_stats; |
19327 | diff -urNp linux-2.6.29.6/drivers/pci/hotplug/cpqphp.h linux-2.6.29.6/drivers/pci/hotplug/cpqphp.h | 19153 | diff -urNp linux-2.6.30.4/drivers/pci/hotplug/cpqphp.h linux-2.6.30.4/drivers/pci/hotplug/cpqphp.h |
19328 | --- linux-2.6.29.6/drivers/pci/hotplug/cpqphp.h 2009-07-02 19:41:20.000000000 -0400 | 19154 | --- linux-2.6.30.4/drivers/pci/hotplug/cpqphp.h 2009-07-24 17:47:51.000000000 -0400 |
19329 | +++ linux-2.6.29.6/drivers/pci/hotplug/cpqphp.h 2009-07-23 18:40:27.972087415 -0400 | 19155 | +++ linux-2.6.30.4/drivers/pci/hotplug/cpqphp.h 2009-07-30 09:48:10.043540480 -0400 |
19330 | @@ -449,7 +449,7 @@ extern u8 cpqhp_disk_irq; | 19156 | @@ -449,7 +449,7 @@ extern u8 cpqhp_disk_irq; |
19331 | 19157 | ||
19332 | /* inline functions */ | 19158 | /* inline functions */ |
@@ -19336,9 +19162,9 @@ diff -urNp linux-2.6.29.6/drivers/pci/hotplug/cpqphp.h linux-2.6.29.6/drivers/pc | |||
19336 | { | 19162 | { |
19337 | return hotplug_slot_name(slot->hotplug_slot); | 19163 | return hotplug_slot_name(slot->hotplug_slot); |
19338 | } | 19164 | } |
19339 | diff -urNp linux-2.6.29.6/drivers/pci/hotplug/cpqphp_nvram.c linux-2.6.29.6/drivers/pci/hotplug/cpqphp_nvram.c | 19165 | diff -urNp linux-2.6.30.4/drivers/pci/hotplug/cpqphp_nvram.c linux-2.6.30.4/drivers/pci/hotplug/cpqphp_nvram.c |
19340 | --- linux-2.6.29.6/drivers/pci/hotplug/cpqphp_nvram.c 2009-07-02 19:41:20.000000000 -0400 | 19166 | --- linux-2.6.30.4/drivers/pci/hotplug/cpqphp_nvram.c 2009-07-24 17:47:51.000000000 -0400 |
19341 | +++ linux-2.6.29.6/drivers/pci/hotplug/cpqphp_nvram.c 2009-07-23 17:34:32.131798606 -0400 | 19167 | +++ linux-2.6.30.4/drivers/pci/hotplug/cpqphp_nvram.c 2009-07-30 09:48:10.043540480 -0400 |
19342 | @@ -425,9 +425,13 @@ static u32 store_HRT (void __iomem *rom_ | 19168 | @@ -425,9 +425,13 @@ static u32 store_HRT (void __iomem *rom_ |
19343 | 19169 | ||
19344 | void compaq_nvram_init (void __iomem *rom_start) | 19170 | void compaq_nvram_init (void __iomem *rom_start) |
@@ -19353,21 +19179,9 @@ diff -urNp linux-2.6.29.6/drivers/pci/hotplug/cpqphp_nvram.c linux-2.6.29.6/driv | |||
19353 | dbg("int15 entry = %p\n", compaq_int15_entry_point); | 19179 | dbg("int15 entry = %p\n", compaq_int15_entry_point); |
19354 | 19180 | ||
19355 | /* initialize our int15 lock */ | 19181 | /* initialize our int15 lock */ |
19356 | diff -urNp linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv.c linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv.c | 19182 | diff -urNp linux-2.6.30.4/drivers/pci/pcie/aer/aerdrv_core.c linux-2.6.30.4/drivers/pci/pcie/aer/aerdrv_core.c |
19357 | --- linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv.c 2009-07-02 19:41:20.000000000 -0400 | 19183 | --- linux-2.6.30.4/drivers/pci/pcie/aer/aerdrv_core.c 2009-07-24 17:47:51.000000000 -0400 |
19358 | +++ linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv.c 2009-07-23 17:34:32.131798606 -0400 | 19184 | +++ linux-2.6.30.4/drivers/pci/pcie/aer/aerdrv_core.c 2009-07-30 09:48:10.044753152 -0400 |
19359 | @@ -59,7 +59,7 @@ static struct pcie_port_service_id aer_i | ||
19360 | .port_type = PCIE_RC_PORT, | ||
19361 | .service_type = PCIE_PORT_SERVICE_AER, | ||
19362 | }, | ||
19363 | - { /* end: all zeroes */ } | ||
19364 | + { 0, 0, 0, 0, 0, 0, 0, 0, 0 } | ||
19365 | }; | ||
19366 | |||
19367 | static struct pci_error_handlers aer_error_handlers = { | ||
19368 | diff -urNp linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv_core.c linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv_core.c | ||
19369 | --- linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv_core.c 2009-07-02 19:41:20.000000000 -0400 | ||
19370 | +++ linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv_core.c 2009-07-23 17:34:32.132779386 -0400 | ||
19371 | @@ -670,7 +670,7 @@ static void aer_isr_one_error(struct pci | 19185 | @@ -670,7 +670,7 @@ static void aer_isr_one_error(struct pci |
19372 | struct aer_err_source *e_src) | 19186 | struct aer_err_source *e_src) |
19373 | { | 19187 | { |
@@ -19377,10 +19191,10 @@ diff -urNp linux-2.6.29.6/drivers/pci/pcie/aer/aerdrv_core.c linux-2.6.29.6/driv | |||
19377 | int i; | 19191 | int i; |
19378 | u16 id; | 19192 | u16 id; |
19379 | 19193 | ||
19380 | diff -urNp linux-2.6.29.6/drivers/pci/pcie/portdrv_pci.c linux-2.6.29.6/drivers/pci/pcie/portdrv_pci.c | 19194 | diff -urNp linux-2.6.30.4/drivers/pci/pcie/portdrv_pci.c linux-2.6.30.4/drivers/pci/pcie/portdrv_pci.c |
19381 | --- linux-2.6.29.6/drivers/pci/pcie/portdrv_pci.c 2009-07-02 19:41:20.000000000 -0400 | 19195 | --- linux-2.6.30.4/drivers/pci/pcie/portdrv_pci.c 2009-07-24 17:47:51.000000000 -0400 |
19382 | +++ linux-2.6.29.6/drivers/pci/pcie/portdrv_pci.c 2009-07-23 17:34:32.132779386 -0400 | 19196 | +++ linux-2.6.30.4/drivers/pci/pcie/portdrv_pci.c 2009-07-30 09:48:10.044753152 -0400 |
19383 | @@ -260,7 +260,7 @@ static void pcie_portdrv_err_resume(stru | 19197 | @@ -249,7 +249,7 @@ static void pcie_portdrv_err_resume(stru |
19384 | static const struct pci_device_id port_pci_ids[] = { { | 19198 | static const struct pci_device_id port_pci_ids[] = { { |
19385 | /* handle any PCI-Express port */ | 19199 | /* handle any PCI-Express port */ |
19386 | PCI_DEVICE_CLASS(((PCI_CLASS_BRIDGE_PCI << 8) | 0x00), ~0), | 19200 | PCI_DEVICE_CLASS(((PCI_CLASS_BRIDGE_PCI << 8) | 0x00), ~0), |
@@ -19389,9 +19203,9 @@ diff -urNp linux-2.6.29.6/drivers/pci/pcie/portdrv_pci.c linux-2.6.29.6/drivers/ | |||
19389 | }; | 19203 | }; |
19390 | MODULE_DEVICE_TABLE(pci, port_pci_ids); | 19204 | MODULE_DEVICE_TABLE(pci, port_pci_ids); |
19391 | 19205 | ||
19392 | diff -urNp linux-2.6.29.6/drivers/pci/proc.c linux-2.6.29.6/drivers/pci/proc.c | 19206 | diff -urNp linux-2.6.30.4/drivers/pci/proc.c linux-2.6.30.4/drivers/pci/proc.c |
19393 | --- linux-2.6.29.6/drivers/pci/proc.c 2009-07-02 19:41:20.000000000 -0400 | 19207 | --- linux-2.6.30.4/drivers/pci/proc.c 2009-07-24 17:47:51.000000000 -0400 |
19394 | +++ linux-2.6.29.6/drivers/pci/proc.c 2009-07-23 17:34:32.132779386 -0400 | 19208 | +++ linux-2.6.30.4/drivers/pci/proc.c 2009-07-30 11:10:49.067392504 -0400 |
19395 | @@ -480,7 +480,16 @@ static const struct file_operations proc | 19209 | @@ -480,7 +480,16 @@ static const struct file_operations proc |
19396 | static int __init pci_proc_init(void) | 19210 | static int __init pci_proc_init(void) |
19397 | { | 19211 | { |
@@ -19409,9 +19223,9 @@ diff -urNp linux-2.6.29.6/drivers/pci/proc.c linux-2.6.29.6/drivers/pci/proc.c | |||
19409 | proc_create("devices", 0, proc_bus_pci_dir, | 19223 | proc_create("devices", 0, proc_bus_pci_dir, |
19410 | &proc_bus_pci_dev_operations); | 19224 | &proc_bus_pci_dev_operations); |
19411 | proc_initialized = 1; | 19225 | proc_initialized = 1; |
19412 | diff -urNp linux-2.6.29.6/drivers/pcmcia/ti113x.h linux-2.6.29.6/drivers/pcmcia/ti113x.h | 19226 | diff -urNp linux-2.6.30.4/drivers/pcmcia/ti113x.h linux-2.6.30.4/drivers/pcmcia/ti113x.h |
19413 | --- linux-2.6.29.6/drivers/pcmcia/ti113x.h 2009-07-02 19:41:20.000000000 -0400 | 19227 | --- linux-2.6.30.4/drivers/pcmcia/ti113x.h 2009-07-24 17:47:51.000000000 -0400 |
19414 | +++ linux-2.6.29.6/drivers/pcmcia/ti113x.h 2009-07-23 17:34:32.132779386 -0400 | 19228 | +++ linux-2.6.30.4/drivers/pcmcia/ti113x.h 2009-07-30 09:48:10.044753152 -0400 |
19415 | @@ -903,7 +903,7 @@ static struct pci_device_id ene_tune_tbl | 19229 | @@ -903,7 +903,7 @@ static struct pci_device_id ene_tune_tbl |
19416 | DEVID(PCI_VENDOR_ID_MOTOROLA, 0x3410, 0xECC0, PCI_ANY_ID, | 19230 | DEVID(PCI_VENDOR_ID_MOTOROLA, 0x3410, 0xECC0, PCI_ANY_ID, |
19417 | ENE_TEST_C9_TLTENABLE | ENE_TEST_C9_PFENABLE, ENE_TEST_C9_TLTENABLE), | 19231 | ENE_TEST_C9_TLTENABLE | ENE_TEST_C9_PFENABLE, ENE_TEST_C9_TLTENABLE), |
@@ -19421,9 +19235,9 @@ diff -urNp linux-2.6.29.6/drivers/pcmcia/ti113x.h linux-2.6.29.6/drivers/pcmcia/ | |||
19421 | }; | 19235 | }; |
19422 | 19236 | ||
19423 | static void ene_tune_bridge(struct pcmcia_socket *sock, struct pci_bus *bus) | 19237 | static void ene_tune_bridge(struct pcmcia_socket *sock, struct pci_bus *bus) |
19424 | diff -urNp linux-2.6.29.6/drivers/pcmcia/yenta_socket.c linux-2.6.29.6/drivers/pcmcia/yenta_socket.c | 19238 | diff -urNp linux-2.6.30.4/drivers/pcmcia/yenta_socket.c linux-2.6.30.4/drivers/pcmcia/yenta_socket.c |
19425 | --- linux-2.6.29.6/drivers/pcmcia/yenta_socket.c 2009-07-02 19:41:20.000000000 -0400 | 19239 | --- linux-2.6.30.4/drivers/pcmcia/yenta_socket.c 2009-07-24 17:47:51.000000000 -0400 |
19426 | +++ linux-2.6.29.6/drivers/pcmcia/yenta_socket.c 2009-07-23 17:34:32.133745041 -0400 | 19240 | +++ linux-2.6.30.4/drivers/pcmcia/yenta_socket.c 2009-07-30 09:48:10.045642944 -0400 |
19427 | @@ -1366,7 +1366,7 @@ static struct pci_device_id yenta_table | 19241 | @@ -1366,7 +1366,7 @@ static struct pci_device_id yenta_table |
19428 | 19242 | ||
19429 | /* match any cardbus bridge */ | 19243 | /* match any cardbus bridge */ |
@@ -19433,9 +19247,9 @@ diff -urNp linux-2.6.29.6/drivers/pcmcia/yenta_socket.c linux-2.6.29.6/drivers/p | |||
19433 | }; | 19247 | }; |
19434 | MODULE_DEVICE_TABLE(pci, yenta_table); | 19248 | MODULE_DEVICE_TABLE(pci, yenta_table); |
19435 | 19249 | ||
19436 | diff -urNp linux-2.6.29.6/drivers/pnp/pnpbios/bioscalls.c linux-2.6.29.6/drivers/pnp/pnpbios/bioscalls.c | 19250 | diff -urNp linux-2.6.30.4/drivers/pnp/pnpbios/bioscalls.c linux-2.6.30.4/drivers/pnp/pnpbios/bioscalls.c |
19437 | --- linux-2.6.29.6/drivers/pnp/pnpbios/bioscalls.c 2009-07-02 19:41:20.000000000 -0400 | 19251 | --- linux-2.6.30.4/drivers/pnp/pnpbios/bioscalls.c 2009-07-24 17:47:51.000000000 -0400 |
19438 | +++ linux-2.6.29.6/drivers/pnp/pnpbios/bioscalls.c 2009-07-23 17:34:32.133745041 -0400 | 19252 | +++ linux-2.6.30.4/drivers/pnp/pnpbios/bioscalls.c 2009-07-30 09:48:10.045642944 -0400 |
19439 | @@ -60,7 +60,7 @@ set_base(gdt[(selname) >> 3], (u32)(addr | 19253 | @@ -60,7 +60,7 @@ set_base(gdt[(selname) >> 3], (u32)(addr |
19440 | set_limit(gdt[(selname) >> 3], size); \ | 19254 | set_limit(gdt[(selname) >> 3], size); \ |
19441 | } while(0) | 19255 | } while(0) |
@@ -19528,9 +19342,9 @@ diff -urNp linux-2.6.29.6/drivers/pnp/pnpbios/bioscalls.c linux-2.6.29.6/drivers | |||
19528 | +#endif | 19342 | +#endif |
19529 | + | 19343 | + |
19530 | } | 19344 | } |
19531 | diff -urNp linux-2.6.29.6/drivers/pnp/quirks.c linux-2.6.29.6/drivers/pnp/quirks.c | 19345 | diff -urNp linux-2.6.30.4/drivers/pnp/quirks.c linux-2.6.30.4/drivers/pnp/quirks.c |
19532 | --- linux-2.6.29.6/drivers/pnp/quirks.c 2009-07-02 19:41:20.000000000 -0400 | 19346 | --- linux-2.6.30.4/drivers/pnp/quirks.c 2009-07-24 17:47:51.000000000 -0400 |
19533 | +++ linux-2.6.29.6/drivers/pnp/quirks.c 2009-07-23 17:34:32.133745041 -0400 | 19347 | +++ linux-2.6.30.4/drivers/pnp/quirks.c 2009-07-30 09:48:10.045642944 -0400 |
19534 | @@ -327,7 +327,7 @@ static struct pnp_fixup pnp_fixups[] = { | 19348 | @@ -327,7 +327,7 @@ static struct pnp_fixup pnp_fixups[] = { |
19535 | /* PnP resources that might overlap PCI BARs */ | 19349 | /* PnP resources that might overlap PCI BARs */ |
19536 | {"PNP0c01", quirk_system_pci_resources}, | 19350 | {"PNP0c01", quirk_system_pci_resources}, |
@@ -19540,9 +19354,9 @@ diff -urNp linux-2.6.29.6/drivers/pnp/quirks.c linux-2.6.29.6/drivers/pnp/quirks | |||
19540 | }; | 19354 | }; |
19541 | 19355 | ||
19542 | void pnp_fixup_device(struct pnp_dev *dev) | 19356 | void pnp_fixup_device(struct pnp_dev *dev) |
19543 | diff -urNp linux-2.6.29.6/drivers/pnp/resource.c linux-2.6.29.6/drivers/pnp/resource.c | 19357 | diff -urNp linux-2.6.30.4/drivers/pnp/resource.c linux-2.6.30.4/drivers/pnp/resource.c |
19544 | --- linux-2.6.29.6/drivers/pnp/resource.c 2009-07-02 19:41:20.000000000 -0400 | 19358 | --- linux-2.6.30.4/drivers/pnp/resource.c 2009-07-24 17:47:51.000000000 -0400 |
19545 | +++ linux-2.6.29.6/drivers/pnp/resource.c 2009-07-23 17:34:32.133745041 -0400 | 19359 | +++ linux-2.6.30.4/drivers/pnp/resource.c 2009-07-30 09:48:10.045642944 -0400 |
19546 | @@ -355,7 +355,7 @@ int pnp_check_irq(struct pnp_dev *dev, s | 19360 | @@ -355,7 +355,7 @@ int pnp_check_irq(struct pnp_dev *dev, s |
19547 | return 1; | 19361 | return 1; |
19548 | 19362 | ||
@@ -19561,10 +19375,10 @@ diff -urNp linux-2.6.29.6/drivers/pnp/resource.c linux-2.6.29.6/drivers/pnp/reso | |||
19561 | return 0; | 19375 | return 0; |
19562 | 19376 | ||
19563 | /* check if the resource is reserved */ | 19377 | /* check if the resource is reserved */ |
19564 | diff -urNp linux-2.6.29.6/drivers/s390/cio/qdio_debug.c linux-2.6.29.6/drivers/s390/cio/qdio_debug.c | 19378 | diff -urNp linux-2.6.30.4/drivers/s390/cio/qdio_debug.c linux-2.6.30.4/drivers/s390/cio/qdio_debug.c |
19565 | --- linux-2.6.29.6/drivers/s390/cio/qdio_debug.c 2009-07-02 19:41:20.000000000 -0400 | 19379 | --- linux-2.6.30.4/drivers/s390/cio/qdio_debug.c 2009-07-24 17:47:51.000000000 -0400 |
19566 | +++ linux-2.6.29.6/drivers/s390/cio/qdio_debug.c 2009-07-23 18:40:27.977694137 -0400 | 19380 | +++ linux-2.6.30.4/drivers/s390/cio/qdio_debug.c 2009-07-30 09:48:10.046735063 -0400 |
19567 | @@ -144,7 +144,7 @@ static void remove_debugfs_entry(struct | 19381 | @@ -145,7 +145,7 @@ static void remove_debugfs_entry(struct |
19568 | } | 19382 | } |
19569 | } | 19383 | } |
19570 | 19384 | ||
@@ -19573,9 +19387,9 @@ diff -urNp linux-2.6.29.6/drivers/s390/cio/qdio_debug.c linux-2.6.29.6/drivers/s | |||
19573 | .owner = THIS_MODULE, | 19387 | .owner = THIS_MODULE, |
19574 | .open = qstat_seq_open, | 19388 | .open = qstat_seq_open, |
19575 | .read = seq_read, | 19389 | .read = seq_read, |
19576 | diff -urNp linux-2.6.29.6/drivers/s390/cio/qdio_perf.c linux-2.6.29.6/drivers/s390/cio/qdio_perf.c | 19390 | diff -urNp linux-2.6.30.4/drivers/s390/cio/qdio_perf.c linux-2.6.30.4/drivers/s390/cio/qdio_perf.c |
19577 | --- linux-2.6.29.6/drivers/s390/cio/qdio_perf.c 2009-07-02 19:41:20.000000000 -0400 | 19391 | --- linux-2.6.30.4/drivers/s390/cio/qdio_perf.c 2009-07-24 17:47:51.000000000 -0400 |
19578 | +++ linux-2.6.29.6/drivers/s390/cio/qdio_perf.c 2009-07-23 18:40:27.982430466 -0400 | 19392 | +++ linux-2.6.30.4/drivers/s390/cio/qdio_perf.c 2009-07-30 09:48:10.046735063 -0400 |
19579 | @@ -96,7 +96,7 @@ static int qdio_perf_seq_open(struct ino | 19393 | @@ -96,7 +96,7 @@ static int qdio_perf_seq_open(struct ino |
19580 | return single_open(filp, qdio_perf_proc_show, NULL); | 19394 | return single_open(filp, qdio_perf_proc_show, NULL); |
19581 | } | 19395 | } |
@@ -19585,9 +19399,9 @@ diff -urNp linux-2.6.29.6/drivers/s390/cio/qdio_perf.c linux-2.6.29.6/drivers/s3 | |||
19585 | .owner = THIS_MODULE, | 19399 | .owner = THIS_MODULE, |
19586 | .open = qdio_perf_seq_open, | 19400 | .open = qdio_perf_seq_open, |
19587 | .read = seq_read, | 19401 | .read = seq_read, |
19588 | diff -urNp linux-2.6.29.6/drivers/scsi/libfc/fc_exch.c linux-2.6.29.6/drivers/scsi/libfc/fc_exch.c | 19402 | diff -urNp linux-2.6.30.4/drivers/scsi/libfc/fc_exch.c linux-2.6.30.4/drivers/scsi/libfc/fc_exch.c |
19589 | --- linux-2.6.29.6/drivers/scsi/libfc/fc_exch.c 2009-07-02 19:41:20.000000000 -0400 | 19403 | --- linux-2.6.30.4/drivers/scsi/libfc/fc_exch.c 2009-07-24 17:47:51.000000000 -0400 |
19590 | +++ linux-2.6.29.6/drivers/scsi/libfc/fc_exch.c 2009-07-23 17:34:32.134722055 -0400 | 19404 | +++ linux-2.6.30.4/drivers/scsi/libfc/fc_exch.c 2009-07-30 09:48:10.047458850 -0400 |
19591 | @@ -84,12 +84,12 @@ struct fc_exch_mgr { | 19405 | @@ -84,12 +84,12 @@ struct fc_exch_mgr { |
19592 | * all together if not used XXX | 19406 | * all together if not used XXX |
19593 | */ | 19407 | */ |
@@ -19705,84 +19519,9 @@ diff -urNp linux-2.6.29.6/drivers/scsi/libfc/fc_exch.c linux-2.6.29.6/drivers/sc | |||
19705 | FC_DEBUG_EXCH("non-BLS response to sequence"); | 19519 | FC_DEBUG_EXCH("non-BLS response to sequence"); |
19706 | } | 19520 | } |
19707 | fc_frame_free(fp); | 19521 | fc_frame_free(fp); |
19708 | diff -urNp linux-2.6.29.6/drivers/scsi/lpfc/lpfc_debugfs.c linux-2.6.29.6/drivers/scsi/lpfc/lpfc_debugfs.c | 19522 | diff -urNp linux-2.6.30.4/drivers/scsi/scsi_logging.h linux-2.6.30.4/drivers/scsi/scsi_logging.h |
19709 | --- linux-2.6.29.6/drivers/scsi/lpfc/lpfc_debugfs.c 2009-07-02 19:41:20.000000000 -0400 | 19523 | --- linux-2.6.30.4/drivers/scsi/scsi_logging.h 2009-07-24 17:47:51.000000000 -0400 |
19710 | +++ linux-2.6.29.6/drivers/scsi/lpfc/lpfc_debugfs.c 2009-07-23 18:40:27.982430466 -0400 | 19524 | +++ linux-2.6.30.4/drivers/scsi/scsi_logging.h 2009-07-30 09:48:10.047458850 -0400 |
19711 | @@ -1132,7 +1132,7 @@ lpfc_debugfs_dumpDataDif_release(struct | ||
19712 | } | ||
19713 | |||
19714 | #undef lpfc_debugfs_op_disc_trc | ||
19715 | -static struct file_operations lpfc_debugfs_op_disc_trc = { | ||
19716 | +static const struct file_operations lpfc_debugfs_op_disc_trc = { | ||
19717 | .owner = THIS_MODULE, | ||
19718 | .open = lpfc_debugfs_disc_trc_open, | ||
19719 | .llseek = lpfc_debugfs_lseek, | ||
19720 | @@ -1141,7 +1141,7 @@ static struct file_operations lpfc_debug | ||
19721 | }; | ||
19722 | |||
19723 | #undef lpfc_debugfs_op_nodelist | ||
19724 | -static struct file_operations lpfc_debugfs_op_nodelist = { | ||
19725 | +static const struct file_operations lpfc_debugfs_op_nodelist = { | ||
19726 | .owner = THIS_MODULE, | ||
19727 | .open = lpfc_debugfs_nodelist_open, | ||
19728 | .llseek = lpfc_debugfs_lseek, | ||
19729 | @@ -1150,7 +1150,7 @@ static struct file_operations lpfc_debug | ||
19730 | }; | ||
19731 | |||
19732 | #undef lpfc_debugfs_op_hbqinfo | ||
19733 | -static struct file_operations lpfc_debugfs_op_hbqinfo = { | ||
19734 | +static const struct file_operations lpfc_debugfs_op_hbqinfo = { | ||
19735 | .owner = THIS_MODULE, | ||
19736 | .open = lpfc_debugfs_hbqinfo_open, | ||
19737 | .llseek = lpfc_debugfs_lseek, | ||
19738 | @@ -1159,7 +1159,7 @@ static struct file_operations lpfc_debug | ||
19739 | }; | ||
19740 | |||
19741 | #undef lpfc_debugfs_op_dumpHBASlim | ||
19742 | -static struct file_operations lpfc_debugfs_op_dumpHBASlim = { | ||
19743 | +static const struct file_operations lpfc_debugfs_op_dumpHBASlim = { | ||
19744 | .owner = THIS_MODULE, | ||
19745 | .open = lpfc_debugfs_dumpHBASlim_open, | ||
19746 | .llseek = lpfc_debugfs_lseek, | ||
19747 | @@ -1168,7 +1168,7 @@ static struct file_operations lpfc_debug | ||
19748 | }; | ||
19749 | |||
19750 | #undef lpfc_debugfs_op_dumpHostSlim | ||
19751 | -static struct file_operations lpfc_debugfs_op_dumpHostSlim = { | ||
19752 | +static const struct file_operations lpfc_debugfs_op_dumpHostSlim = { | ||
19753 | .owner = THIS_MODULE, | ||
19754 | .open = lpfc_debugfs_dumpHostSlim_open, | ||
19755 | .llseek = lpfc_debugfs_lseek, | ||
19756 | @@ -1177,7 +1177,7 @@ static struct file_operations lpfc_debug | ||
19757 | }; | ||
19758 | |||
19759 | #undef lpfc_debugfs_op_dumpData | ||
19760 | -static struct file_operations lpfc_debugfs_op_dumpData = { | ||
19761 | +static const struct file_operations lpfc_debugfs_op_dumpData = { | ||
19762 | .owner = THIS_MODULE, | ||
19763 | .open = lpfc_debugfs_dumpData_open, | ||
19764 | .llseek = lpfc_debugfs_lseek, | ||
19765 | @@ -1187,7 +1187,7 @@ static struct file_operations lpfc_debug | ||
19766 | }; | ||
19767 | |||
19768 | #undef lpfc_debugfs_op_dumpDif | ||
19769 | -static struct file_operations lpfc_debugfs_op_dumpDif = { | ||
19770 | +static const struct file_operations lpfc_debugfs_op_dumpDif = { | ||
19771 | .owner = THIS_MODULE, | ||
19772 | .open = lpfc_debugfs_dumpDif_open, | ||
19773 | .llseek = lpfc_debugfs_lseek, | ||
19774 | @@ -1197,7 +1197,7 @@ static struct file_operations lpfc_debug | ||
19775 | }; | ||
19776 | |||
19777 | #undef lpfc_debugfs_op_slow_ring_trc | ||
19778 | -static struct file_operations lpfc_debugfs_op_slow_ring_trc = { | ||
19779 | +static const struct file_operations lpfc_debugfs_op_slow_ring_trc = { | ||
19780 | .owner = THIS_MODULE, | ||
19781 | .open = lpfc_debugfs_slow_ring_trc_open, | ||
19782 | .llseek = lpfc_debugfs_lseek, | ||
19783 | diff -urNp linux-2.6.29.6/drivers/scsi/scsi_logging.h linux-2.6.29.6/drivers/scsi/scsi_logging.h | ||
19784 | --- linux-2.6.29.6/drivers/scsi/scsi_logging.h 2009-07-02 19:41:20.000000000 -0400 | ||
19785 | +++ linux-2.6.29.6/drivers/scsi/scsi_logging.h 2009-07-23 17:34:32.134722055 -0400 | ||
19786 | @@ -51,7 +51,7 @@ do { \ | 19525 | @@ -51,7 +51,7 @@ do { \ |
19787 | } while (0); \ | 19526 | } while (0); \ |
19788 | } while (0) | 19527 | } while (0) |
@@ -19792,10 +19531,10 @@ diff -urNp linux-2.6.29.6/drivers/scsi/scsi_logging.h linux-2.6.29.6/drivers/scs | |||
19792 | #endif /* CONFIG_SCSI_LOGGING */ | 19531 | #endif /* CONFIG_SCSI_LOGGING */ |
19793 | 19532 | ||
19794 | /* | 19533 | /* |
19795 | diff -urNp linux-2.6.29.6/drivers/scsi/sg.c linux-2.6.29.6/drivers/scsi/sg.c | 19534 | diff -urNp linux-2.6.30.4/drivers/scsi/sg.c linux-2.6.30.4/drivers/scsi/sg.c |
19796 | --- linux-2.6.29.6/drivers/scsi/sg.c 2009-07-02 19:41:20.000000000 -0400 | 19535 | --- linux-2.6.30.4/drivers/scsi/sg.c 2009-07-30 20:32:40.512605937 -0400 |
19797 | +++ linux-2.6.29.6/drivers/scsi/sg.c 2009-07-23 18:40:27.983261819 -0400 | 19536 | +++ linux-2.6.30.4/drivers/scsi/sg.c 2009-07-30 20:32:47.966608613 -0400 |
19798 | @@ -1197,7 +1197,7 @@ sg_vma_fault(struct vm_area_struct *vma, | 19537 | @@ -1186,7 +1186,7 @@ sg_vma_fault(struct vm_area_struct *vma, |
19799 | return VM_FAULT_SIGBUS; | 19538 | return VM_FAULT_SIGBUS; |
19800 | } | 19539 | } |
19801 | 19540 | ||
@@ -19804,7 +19543,7 @@ diff -urNp linux-2.6.29.6/drivers/scsi/sg.c linux-2.6.29.6/drivers/scsi/sg.c | |||
19804 | .fault = sg_vma_fault, | 19543 | .fault = sg_vma_fault, |
19805 | }; | 19544 | }; |
19806 | 19545 | ||
19807 | @@ -1329,7 +1329,7 @@ static void sg_rq_end_io(struct request | 19546 | @@ -1318,7 +1318,7 @@ static void sg_rq_end_io(struct request |
19808 | } | 19547 | } |
19809 | } | 19548 | } |
19810 | 19549 | ||
@@ -19813,7 +19552,7 @@ diff -urNp linux-2.6.29.6/drivers/scsi/sg.c linux-2.6.29.6/drivers/scsi/sg.c | |||
19813 | .owner = THIS_MODULE, | 19552 | .owner = THIS_MODULE, |
19814 | .read = sg_read, | 19553 | .read = sg_read, |
19815 | .write = sg_write, | 19554 | .write = sg_write, |
19816 | @@ -2222,8 +2222,11 @@ static int sg_proc_seq_show_int(struct s | 19555 | @@ -2194,8 +2194,11 @@ static int sg_proc_seq_show_int(struct s |
19817 | static int sg_proc_single_open_adio(struct inode *inode, struct file *file); | 19556 | static int sg_proc_single_open_adio(struct inode *inode, struct file *file); |
19818 | static ssize_t sg_proc_write_adio(struct file *filp, const char __user *buffer, | 19557 | static ssize_t sg_proc_write_adio(struct file *filp, const char __user *buffer, |
19819 | size_t count, loff_t *off); | 19558 | size_t count, loff_t *off); |
@@ -19827,7 +19566,7 @@ diff -urNp linux-2.6.29.6/drivers/scsi/sg.c linux-2.6.29.6/drivers/scsi/sg.c | |||
19827 | .open = sg_proc_single_open_adio, | 19566 | .open = sg_proc_single_open_adio, |
19828 | .write = sg_proc_write_adio, | 19567 | .write = sg_proc_write_adio, |
19829 | .release = single_release, | 19568 | .release = single_release, |
19830 | @@ -2232,7 +2235,10 @@ static struct file_operations adio_fops | 19569 | @@ -2204,7 +2207,10 @@ static struct file_operations adio_fops |
19831 | static int sg_proc_single_open_dressz(struct inode *inode, struct file *file); | 19570 | static int sg_proc_single_open_dressz(struct inode *inode, struct file *file); |
19832 | static ssize_t sg_proc_write_dressz(struct file *filp, | 19571 | static ssize_t sg_proc_write_dressz(struct file *filp, |
19833 | const char __user *buffer, size_t count, loff_t *off); | 19572 | const char __user *buffer, size_t count, loff_t *off); |
@@ -19839,7 +19578,7 @@ diff -urNp linux-2.6.29.6/drivers/scsi/sg.c linux-2.6.29.6/drivers/scsi/sg.c | |||
19839 | .open = sg_proc_single_open_dressz, | 19578 | .open = sg_proc_single_open_dressz, |
19840 | .write = sg_proc_write_dressz, | 19579 | .write = sg_proc_write_dressz, |
19841 | .release = single_release, | 19580 | .release = single_release, |
19842 | @@ -2240,14 +2246,20 @@ static struct file_operations dressz_fop | 19581 | @@ -2212,14 +2218,20 @@ static struct file_operations dressz_fop |
19843 | 19582 | ||
19844 | static int sg_proc_seq_show_version(struct seq_file *s, void *v); | 19583 | static int sg_proc_seq_show_version(struct seq_file *s, void *v); |
19845 | static int sg_proc_single_open_version(struct inode *inode, struct file *file); | 19584 | static int sg_proc_single_open_version(struct inode *inode, struct file *file); |
@@ -19862,7 +19601,7 @@ diff -urNp linux-2.6.29.6/drivers/scsi/sg.c linux-2.6.29.6/drivers/scsi/sg.c | |||
19862 | .open = sg_proc_single_open_devhdr, | 19601 | .open = sg_proc_single_open_devhdr, |
19863 | .release = single_release, | 19602 | .release = single_release, |
19864 | }; | 19603 | }; |
19865 | @@ -2257,11 +2269,14 @@ static int sg_proc_open_dev(struct inode | 19604 | @@ -2229,11 +2241,14 @@ static int sg_proc_open_dev(struct inode |
19866 | static void * dev_seq_start(struct seq_file *s, loff_t *pos); | 19605 | static void * dev_seq_start(struct seq_file *s, loff_t *pos); |
19867 | static void * dev_seq_next(struct seq_file *s, void *v, loff_t *pos); | 19606 | static void * dev_seq_next(struct seq_file *s, void *v, loff_t *pos); |
19868 | static void dev_seq_stop(struct seq_file *s, void *v); | 19607 | static void dev_seq_stop(struct seq_file *s, void *v); |
@@ -19879,7 +19618,7 @@ diff -urNp linux-2.6.29.6/drivers/scsi/sg.c linux-2.6.29.6/drivers/scsi/sg.c | |||
19879 | .start = dev_seq_start, | 19618 | .start = dev_seq_start, |
19880 | .next = dev_seq_next, | 19619 | .next = dev_seq_next, |
19881 | .stop = dev_seq_stop, | 19620 | .stop = dev_seq_stop, |
19882 | @@ -2270,11 +2285,14 @@ static struct seq_operations dev_seq_ops | 19621 | @@ -2242,11 +2257,14 @@ static struct seq_operations dev_seq_ops |
19883 | 19622 | ||
19884 | static int sg_proc_seq_show_devstrs(struct seq_file *s, void *v); | 19623 | static int sg_proc_seq_show_devstrs(struct seq_file *s, void *v); |
19885 | static int sg_proc_open_devstrs(struct inode *inode, struct file *file); | 19624 | static int sg_proc_open_devstrs(struct inode *inode, struct file *file); |
@@ -19896,7 +19635,7 @@ diff -urNp linux-2.6.29.6/drivers/scsi/sg.c linux-2.6.29.6/drivers/scsi/sg.c | |||
19896 | .start = dev_seq_start, | 19635 | .start = dev_seq_start, |
19897 | .next = dev_seq_next, | 19636 | .next = dev_seq_next, |
19898 | .stop = dev_seq_stop, | 19637 | .stop = dev_seq_stop, |
19899 | @@ -2283,11 +2301,14 @@ static struct seq_operations devstrs_seq | 19638 | @@ -2255,11 +2273,14 @@ static struct seq_operations devstrs_seq |
19900 | 19639 | ||
19901 | static int sg_proc_seq_show_debug(struct seq_file *s, void *v); | 19640 | static int sg_proc_seq_show_debug(struct seq_file *s, void *v); |
19902 | static int sg_proc_open_debug(struct inode *inode, struct file *file); | 19641 | static int sg_proc_open_debug(struct inode *inode, struct file *file); |
@@ -19913,7 +19652,7 @@ diff -urNp linux-2.6.29.6/drivers/scsi/sg.c linux-2.6.29.6/drivers/scsi/sg.c | |||
19913 | .start = dev_seq_start, | 19652 | .start = dev_seq_start, |
19914 | .next = dev_seq_next, | 19653 | .next = dev_seq_next, |
19915 | .stop = dev_seq_stop, | 19654 | .stop = dev_seq_stop, |
19916 | @@ -2297,7 +2318,7 @@ static struct seq_operations debug_seq_o | 19655 | @@ -2269,7 +2290,7 @@ static struct seq_operations debug_seq_o |
19917 | 19656 | ||
19918 | struct sg_proc_leaf { | 19657 | struct sg_proc_leaf { |
19919 | const char * name; | 19658 | const char * name; |
@@ -19922,7 +19661,7 @@ diff -urNp linux-2.6.29.6/drivers/scsi/sg.c linux-2.6.29.6/drivers/scsi/sg.c | |||
19922 | }; | 19661 | }; |
19923 | 19662 | ||
19924 | static struct sg_proc_leaf sg_proc_leaf_arr[] = { | 19663 | static struct sg_proc_leaf sg_proc_leaf_arr[] = { |
19925 | @@ -2323,9 +2344,6 @@ sg_proc_init(void) | 19664 | @@ -2295,9 +2316,6 @@ sg_proc_init(void) |
19926 | for (k = 0; k < num_leaves; ++k) { | 19665 | for (k = 0; k < num_leaves; ++k) { |
19927 | leaf = &sg_proc_leaf_arr[k]; | 19666 | leaf = &sg_proc_leaf_arr[k]; |
19928 | mask = leaf->fops->write ? S_IRUGO | S_IWUSR : S_IRUGO; | 19667 | mask = leaf->fops->write ? S_IRUGO | S_IWUSR : S_IRUGO; |
@@ -19932,10 +19671,10 @@ diff -urNp linux-2.6.29.6/drivers/scsi/sg.c linux-2.6.29.6/drivers/scsi/sg.c | |||
19932 | proc_create(leaf->name, mask, sg_proc_sgp, leaf->fops); | 19671 | proc_create(leaf->name, mask, sg_proc_sgp, leaf->fops); |
19933 | } | 19672 | } |
19934 | return 0; | 19673 | return 0; |
19935 | diff -urNp linux-2.6.29.6/drivers/serial/8250_pci.c linux-2.6.29.6/drivers/serial/8250_pci.c | 19674 | diff -urNp linux-2.6.30.4/drivers/serial/8250_pci.c linux-2.6.30.4/drivers/serial/8250_pci.c |
19936 | --- linux-2.6.29.6/drivers/serial/8250_pci.c 2009-07-02 19:41:20.000000000 -0400 | 19675 | --- linux-2.6.30.4/drivers/serial/8250_pci.c 2009-07-24 17:47:51.000000000 -0400 |
19937 | +++ linux-2.6.29.6/drivers/serial/8250_pci.c 2009-07-23 17:34:32.135751373 -0400 | 19676 | +++ linux-2.6.30.4/drivers/serial/8250_pci.c 2009-07-30 09:48:10.048531085 -0400 |
19938 | @@ -3162,7 +3162,7 @@ static struct pci_device_id serial_pci_t | 19677 | @@ -3572,7 +3572,7 @@ static struct pci_device_id serial_pci_t |
19939 | PCI_ANY_ID, PCI_ANY_ID, | 19678 | PCI_ANY_ID, PCI_ANY_ID, |
19940 | PCI_CLASS_COMMUNICATION_MULTISERIAL << 8, | 19679 | PCI_CLASS_COMMUNICATION_MULTISERIAL << 8, |
19941 | 0xffff00, pbn_default }, | 19680 | 0xffff00, pbn_default }, |
@@ -19944,9 +19683,9 @@ diff -urNp linux-2.6.29.6/drivers/serial/8250_pci.c linux-2.6.29.6/drivers/seria | |||
19944 | }; | 19683 | }; |
19945 | 19684 | ||
19946 | static struct pci_driver serial_pci_driver = { | 19685 | static struct pci_driver serial_pci_driver = { |
19947 | diff -urNp linux-2.6.29.6/drivers/spi/spidev.c linux-2.6.29.6/drivers/spi/spidev.c | 19686 | diff -urNp linux-2.6.30.4/drivers/spi/spidev.c linux-2.6.30.4/drivers/spi/spidev.c |
19948 | --- linux-2.6.29.6/drivers/spi/spidev.c 2009-07-02 19:41:20.000000000 -0400 | 19687 | --- linux-2.6.30.4/drivers/spi/spidev.c 2009-07-24 17:47:51.000000000 -0400 |
19949 | +++ linux-2.6.29.6/drivers/spi/spidev.c 2009-07-23 18:40:27.984271636 -0400 | 19688 | +++ linux-2.6.30.4/drivers/spi/spidev.c 2009-07-30 09:48:10.049614710 -0400 |
19950 | @@ -532,7 +532,7 @@ static int spidev_release(struct inode * | 19689 | @@ -532,7 +532,7 @@ static int spidev_release(struct inode * |
19951 | return status; | 19690 | return status; |
19952 | } | 19691 | } |
@@ -19956,23 +19695,11 @@ diff -urNp linux-2.6.29.6/drivers/spi/spidev.c linux-2.6.29.6/drivers/spi/spidev | |||
19956 | .owner = THIS_MODULE, | 19695 | .owner = THIS_MODULE, |
19957 | /* REVISIT switch to aio primitives, so that userspace | 19696 | /* REVISIT switch to aio primitives, so that userspace |
19958 | * gets more complete API coverage. It'll simplify things | 19697 | * gets more complete API coverage. It'll simplify things |
19959 | diff -urNp linux-2.6.29.6/drivers/staging/altpciechdma/altpciechdma.c linux-2.6.29.6/drivers/staging/altpciechdma/altpciechdma.c | 19698 | diff -urNp linux-2.6.30.4/drivers/staging/android/binder.c linux-2.6.30.4/drivers/staging/android/binder.c |
19960 | --- linux-2.6.29.6/drivers/staging/altpciechdma/altpciechdma.c 2009-07-02 19:41:20.000000000 -0400 | 19699 | --- linux-2.6.30.4/drivers/staging/android/binder.c 2009-07-24 17:47:51.000000000 -0400 |
19961 | +++ linux-2.6.29.6/drivers/staging/altpciechdma/altpciechdma.c 2009-07-23 18:40:27.989802153 -0400 | 19700 | +++ linux-2.6.30.4/drivers/staging/android/binder.c 2009-07-30 12:07:09.614975906 -0400 |
19962 | @@ -1085,7 +1085,7 @@ static ssize_t sg_write(struct file *fil | 19701 | @@ -2699,7 +2699,7 @@ static void binder_vma_close(struct vm_a |
19963 | /* | 19702 | binder_defer_work(proc, BINDER_DEFERRED_PUT_FILES); |
19964 | * character device file operations | ||
19965 | */ | ||
19966 | -static struct file_operations sg_fops = { | ||
19967 | +static const struct file_operations sg_fops = { | ||
19968 | .owner = THIS_MODULE, | ||
19969 | .open = sg_open, | ||
19970 | .release = sg_close, | ||
19971 | diff -urNp linux-2.6.29.6/drivers/staging/android/binder.c linux-2.6.29.6/drivers/staging/android/binder.c | ||
19972 | --- linux-2.6.29.6/drivers/staging/android/binder.c 2009-07-02 19:41:20.000000000 -0400 | ||
19973 | +++ linux-2.6.29.6/drivers/staging/android/binder.c 2009-07-23 18:40:28.031683554 -0400 | ||
19974 | @@ -2660,7 +2660,7 @@ static void binder_vma_close(struct vm_a | ||
19975 | proc->vma = NULL; | ||
19976 | } | 19703 | } |
19977 | 19704 | ||
19978 | -static struct vm_operations_struct binder_vm_ops = { | 19705 | -static struct vm_operations_struct binder_vm_ops = { |
@@ -19980,7 +19707,7 @@ diff -urNp linux-2.6.29.6/drivers/staging/android/binder.c linux-2.6.29.6/driver | |||
19980 | .open = binder_vma_open, | 19707 | .open = binder_vma_open, |
19981 | .close = binder_vma_close, | 19708 | .close = binder_vma_close, |
19982 | }; | 19709 | }; |
19983 | @@ -3464,7 +3464,7 @@ static int binder_read_proc_transaction_ | 19710 | @@ -3579,7 +3579,7 @@ static int binder_read_proc_transaction_ |
19984 | return len < count ? len : count; | 19711 | return len < count ? len : count; |
19985 | } | 19712 | } |
19986 | 19713 | ||
@@ -19989,9 +19716,9 @@ diff -urNp linux-2.6.29.6/drivers/staging/android/binder.c linux-2.6.29.6/driver | |||
19989 | .owner = THIS_MODULE, | 19716 | .owner = THIS_MODULE, |
19990 | .poll = binder_poll, | 19717 | .poll = binder_poll, |
19991 | .unlocked_ioctl = binder_ioctl, | 19718 | .unlocked_ioctl = binder_ioctl, |
19992 | diff -urNp linux-2.6.29.6/drivers/staging/android/logger.c linux-2.6.29.6/drivers/staging/android/logger.c | 19719 | diff -urNp linux-2.6.30.4/drivers/staging/android/logger.c linux-2.6.30.4/drivers/staging/android/logger.c |
19993 | --- linux-2.6.29.6/drivers/staging/android/logger.c 2009-07-02 19:41:20.000000000 -0400 | 19720 | --- linux-2.6.30.4/drivers/staging/android/logger.c 2009-07-24 17:47:51.000000000 -0400 |
19994 | +++ linux-2.6.29.6/drivers/staging/android/logger.c 2009-07-23 18:40:28.043741799 -0400 | 19721 | +++ linux-2.6.30.4/drivers/staging/android/logger.c 2009-07-30 09:48:10.050638667 -0400 |
19995 | @@ -519,7 +519,7 @@ static long logger_ioctl(struct file *fi | 19722 | @@ -519,7 +519,7 @@ static long logger_ioctl(struct file *fi |
19996 | return ret; | 19723 | return ret; |
19997 | } | 19724 | } |
@@ -20001,9 +19728,9 @@ diff -urNp linux-2.6.29.6/drivers/staging/android/logger.c linux-2.6.29.6/driver | |||
20001 | .owner = THIS_MODULE, | 19728 | .owner = THIS_MODULE, |
20002 | .read = logger_read, | 19729 | .read = logger_read, |
20003 | .aio_write = logger_aio_write, | 19730 | .aio_write = logger_aio_write, |
20004 | diff -urNp linux-2.6.29.6/drivers/staging/android/ram_console.c linux-2.6.29.6/drivers/staging/android/ram_console.c | 19731 | diff -urNp linux-2.6.30.4/drivers/staging/android/ram_console.c linux-2.6.30.4/drivers/staging/android/ram_console.c |
20005 | --- linux-2.6.29.6/drivers/staging/android/ram_console.c 2009-07-02 19:41:20.000000000 -0400 | 19732 | --- linux-2.6.30.4/drivers/staging/android/ram_console.c 2009-07-24 17:47:51.000000000 -0400 |
20006 | +++ linux-2.6.29.6/drivers/staging/android/ram_console.c 2009-07-23 18:40:28.044366592 -0400 | 19733 | +++ linux-2.6.30.4/drivers/staging/android/ram_console.c 2009-07-30 09:48:10.050638667 -0400 |
20007 | @@ -365,7 +365,7 @@ static ssize_t ram_console_read_old(stru | 19734 | @@ -365,7 +365,7 @@ static ssize_t ram_console_read_old(stru |
20008 | return count; | 19735 | return count; |
20009 | } | 19736 | } |
@@ -20013,10 +19740,31 @@ diff -urNp linux-2.6.29.6/drivers/staging/android/ram_console.c linux-2.6.29.6/d | |||
20013 | .owner = THIS_MODULE, | 19740 | .owner = THIS_MODULE, |
20014 | .read = ram_console_read_old, | 19741 | .read = ram_console_read_old, |
20015 | }; | 19742 | }; |
20016 | diff -urNp linux-2.6.29.6/drivers/staging/comedi/comedi_fops.c linux-2.6.29.6/drivers/staging/comedi/comedi_fops.c | 19743 | diff -urNp linux-2.6.30.4/drivers/staging/b3dfg/b3dfg.c linux-2.6.30.4/drivers/staging/b3dfg/b3dfg.c |
20017 | --- linux-2.6.29.6/drivers/staging/comedi/comedi_fops.c 2009-07-02 19:41:20.000000000 -0400 | 19744 | --- linux-2.6.30.4/drivers/staging/b3dfg/b3dfg.c 2009-07-24 17:47:51.000000000 -0400 |
20018 | +++ linux-2.6.29.6/drivers/staging/comedi/comedi_fops.c 2009-07-23 18:40:28.047286541 -0400 | 19745 | +++ linux-2.6.30.4/drivers/staging/b3dfg/b3dfg.c 2009-07-30 12:07:09.622002360 -0400 |
20019 | @@ -1385,7 +1385,7 @@ void comedi_unmap(struct vm_area_struct | 19746 | @@ -455,7 +455,7 @@ static int b3dfg_vma_fault(struct vm_are |
19747 | return VM_FAULT_NOPAGE; | ||
19748 | } | ||
19749 | |||
19750 | -static struct vm_operations_struct b3dfg_vm_ops = { | ||
19751 | +static const struct vm_operations_struct b3dfg_vm_ops = { | ||
19752 | .fault = b3dfg_vma_fault, | ||
19753 | }; | ||
19754 | |||
19755 | @@ -855,7 +855,7 @@ static int b3dfg_mmap(struct file *filp, | ||
19756 | return r; | ||
19757 | } | ||
19758 | |||
19759 | -static struct file_operations b3dfg_fops = { | ||
19760 | +static const struct file_operations b3dfg_fops = { | ||
19761 | .owner = THIS_MODULE, | ||
19762 | .open = b3dfg_open, | ||
19763 | .release = b3dfg_release, | ||
19764 | diff -urNp linux-2.6.30.4/drivers/staging/comedi/comedi_fops.c linux-2.6.30.4/drivers/staging/comedi/comedi_fops.c | ||
19765 | --- linux-2.6.30.4/drivers/staging/comedi/comedi_fops.c 2009-07-24 17:47:51.000000000 -0400 | ||
19766 | +++ linux-2.6.30.4/drivers/staging/comedi/comedi_fops.c 2009-07-30 09:48:10.051586138 -0400 | ||
19767 | @@ -1395,7 +1395,7 @@ void comedi_unmap(struct vm_area_struct | ||
20020 | mutex_unlock(&dev->mutex); | 19768 | mutex_unlock(&dev->mutex); |
20021 | } | 19769 | } |
20022 | 19770 | ||
@@ -20025,10 +19773,10 @@ diff -urNp linux-2.6.29.6/drivers/staging/comedi/comedi_fops.c linux-2.6.29.6/dr | |||
20025 | .close = comedi_unmap, | 19773 | .close = comedi_unmap, |
20026 | }; | 19774 | }; |
20027 | 19775 | ||
20028 | diff -urNp linux-2.6.29.6/drivers/staging/epl/EplApiLinuxKernel.c linux-2.6.29.6/drivers/staging/epl/EplApiLinuxKernel.c | 19776 | diff -urNp linux-2.6.30.4/drivers/staging/epl/EplApiLinuxKernel.c linux-2.6.30.4/drivers/staging/epl/EplApiLinuxKernel.c |
20029 | --- linux-2.6.29.6/drivers/staging/epl/EplApiLinuxKernel.c 2009-07-02 19:41:20.000000000 -0400 | 19777 | --- linux-2.6.30.4/drivers/staging/epl/EplApiLinuxKernel.c 2009-07-24 17:47:51.000000000 -0400 |
20030 | +++ linux-2.6.29.6/drivers/staging/epl/EplApiLinuxKernel.c 2009-07-23 18:40:28.056426086 -0400 | 19778 | +++ linux-2.6.30.4/drivers/staging/epl/EplApiLinuxKernel.c 2009-07-30 09:48:10.051586138 -0400 |
20031 | @@ -231,7 +231,7 @@ EXPORT_NO_SYMBOLS; | 19779 | @@ -203,7 +203,7 @@ static int EplLinIoctl(struct inode *pDe |
20032 | module_init(EplLinInit); | 19780 | module_init(EplLinInit); |
20033 | module_exit(EplLinExit); | 19781 | module_exit(EplLinExit); |
20034 | 19782 | ||
@@ -20037,9 +19785,9 @@ diff -urNp linux-2.6.29.6/drivers/staging/epl/EplApiLinuxKernel.c linux-2.6.29.6 | |||
20037 | .owner = THIS_MODULE, | 19785 | .owner = THIS_MODULE, |
20038 | .open = EplLinOpen, | 19786 | .open = EplLinOpen, |
20039 | .release = EplLinRelease, | 19787 | .release = EplLinRelease, |
20040 | diff -urNp linux-2.6.29.6/drivers/staging/go7007/go7007-v4l2.c linux-2.6.29.6/drivers/staging/go7007/go7007-v4l2.c | 19788 | diff -urNp linux-2.6.30.4/drivers/staging/go7007/go7007-v4l2.c linux-2.6.30.4/drivers/staging/go7007/go7007-v4l2.c |
20041 | --- linux-2.6.29.6/drivers/staging/go7007/go7007-v4l2.c 2009-07-02 19:41:20.000000000 -0400 | 19789 | --- linux-2.6.30.4/drivers/staging/go7007/go7007-v4l2.c 2009-07-24 17:47:51.000000000 -0400 |
20042 | +++ linux-2.6.29.6/drivers/staging/go7007/go7007-v4l2.c 2009-07-23 18:40:28.061800902 -0400 | 19790 | +++ linux-2.6.30.4/drivers/staging/go7007/go7007-v4l2.c 2009-07-30 09:48:10.052768252 -0400 |
20043 | @@ -1717,7 +1717,7 @@ static int go7007_vm_fault(struct vm_are | 19791 | @@ -1717,7 +1717,7 @@ static int go7007_vm_fault(struct vm_are |
20044 | return 0; | 19792 | return 0; |
20045 | } | 19793 | } |
@@ -20049,125 +19797,10 @@ diff -urNp linux-2.6.29.6/drivers/staging/go7007/go7007-v4l2.c linux-2.6.29.6/dr | |||
20049 | .open = go7007_vm_open, | 19797 | .open = go7007_vm_open, |
20050 | .close = go7007_vm_close, | 19798 | .close = go7007_vm_close, |
20051 | .fault = go7007_vm_fault, | 19799 | .fault = go7007_vm_fault, |
20052 | diff -urNp linux-2.6.29.6/drivers/staging/me4000/me4000.c linux-2.6.29.6/drivers/staging/me4000/me4000.c | 19800 | diff -urNp linux-2.6.30.4/drivers/staging/meilhaus/memain.c linux-2.6.30.4/drivers/staging/meilhaus/memain.c |
20053 | --- linux-2.6.29.6/drivers/staging/me4000/me4000.c 2009-07-02 19:41:20.000000000 -0400 | 19801 | --- linux-2.6.30.4/drivers/staging/meilhaus/memain.c 2009-07-24 17:47:51.000000000 -0400 |
20054 | +++ linux-2.6.29.6/drivers/staging/me4000/me4000.c 2009-07-23 18:40:28.080446994 -0400 | 19802 | +++ linux-2.6.30.4/drivers/staging/meilhaus/memain.c 2009-07-30 09:48:10.052768252 -0400 |
20055 | @@ -309,7 +309,7 @@ static struct pci_driver me4000_driver = | 19803 | @@ -108,7 +108,7 @@ static struct cdev *cdevp; |
20056 | .probe = me4000_probe | ||
20057 | }; | ||
20058 | |||
20059 | -static struct file_operations me4000_ao_fops_sing = { | ||
20060 | +static const struct file_operations me4000_ao_fops_sing = { | ||
20061 | .owner = THIS_MODULE, | ||
20062 | .write = me4000_ao_write_sing, | ||
20063 | .ioctl = me4000_ao_ioctl_sing, | ||
20064 | @@ -317,7 +317,7 @@ static struct file_operations me4000_ao_ | ||
20065 | .release = me4000_release, | ||
20066 | }; | ||
20067 | |||
20068 | -static struct file_operations me4000_ao_fops_wrap = { | ||
20069 | +static const struct file_operations me4000_ao_fops_wrap = { | ||
20070 | .owner = THIS_MODULE, | ||
20071 | .write = me4000_ao_write_wrap, | ||
20072 | .ioctl = me4000_ao_ioctl_wrap, | ||
20073 | @@ -325,7 +325,7 @@ static struct file_operations me4000_ao_ | ||
20074 | .release = me4000_release, | ||
20075 | }; | ||
20076 | |||
20077 | -static struct file_operations me4000_ao_fops_cont = { | ||
20078 | +static const struct file_operations me4000_ao_fops_cont = { | ||
20079 | .owner = THIS_MODULE, | ||
20080 | .write = me4000_ao_write_cont, | ||
20081 | .poll = me4000_ao_poll_cont, | ||
20082 | @@ -335,14 +335,14 @@ static struct file_operations me4000_ao_ | ||
20083 | .fsync = me4000_ao_fsync_cont, | ||
20084 | }; | ||
20085 | |||
20086 | -static struct file_operations me4000_ai_fops_sing = { | ||
20087 | +static const struct file_operations me4000_ai_fops_sing = { | ||
20088 | .owner = THIS_MODULE, | ||
20089 | .ioctl = me4000_ai_ioctl_sing, | ||
20090 | .open = me4000_open, | ||
20091 | .release = me4000_release, | ||
20092 | }; | ||
20093 | |||
20094 | -static struct file_operations me4000_ai_fops_cont_sw = { | ||
20095 | +static const struct file_operations me4000_ai_fops_cont_sw = { | ||
20096 | .owner = THIS_MODULE, | ||
20097 | .read = me4000_ai_read, | ||
20098 | .poll = me4000_ai_poll, | ||
20099 | @@ -352,7 +352,7 @@ static struct file_operations me4000_ai_ | ||
20100 | .fasync = me4000_ai_fasync, | ||
20101 | }; | ||
20102 | |||
20103 | -static struct file_operations me4000_ai_fops_cont_et = { | ||
20104 | +static const struct file_operations me4000_ai_fops_cont_et = { | ||
20105 | .owner = THIS_MODULE, | ||
20106 | .read = me4000_ai_read, | ||
20107 | .poll = me4000_ai_poll, | ||
20108 | @@ -361,7 +361,7 @@ static struct file_operations me4000_ai_ | ||
20109 | .release = me4000_release, | ||
20110 | }; | ||
20111 | |||
20112 | -static struct file_operations me4000_ai_fops_cont_et_value = { | ||
20113 | +static const struct file_operations me4000_ai_fops_cont_et_value = { | ||
20114 | .owner = THIS_MODULE, | ||
20115 | .read = me4000_ai_read, | ||
20116 | .poll = me4000_ai_poll, | ||
20117 | @@ -370,7 +370,7 @@ static struct file_operations me4000_ai_ | ||
20118 | .release = me4000_release, | ||
20119 | }; | ||
20120 | |||
20121 | -static struct file_operations me4000_ai_fops_cont_et_chanlist = { | ||
20122 | +static const struct file_operations me4000_ai_fops_cont_et_chanlist = { | ||
20123 | .owner = THIS_MODULE, | ||
20124 | .read = me4000_ai_read, | ||
20125 | .poll = me4000_ai_poll, | ||
20126 | @@ -379,21 +379,21 @@ static struct file_operations me4000_ai_ | ||
20127 | .release = me4000_release, | ||
20128 | }; | ||
20129 | |||
20130 | -static struct file_operations me4000_dio_fops = { | ||
20131 | +static const struct file_operations me4000_dio_fops = { | ||
20132 | .owner = THIS_MODULE, | ||
20133 | .ioctl = me4000_dio_ioctl, | ||
20134 | .open = me4000_open, | ||
20135 | .release = me4000_release, | ||
20136 | }; | ||
20137 | |||
20138 | -static struct file_operations me4000_cnt_fops = { | ||
20139 | +static const struct file_operations me4000_cnt_fops = { | ||
20140 | .owner = THIS_MODULE, | ||
20141 | .ioctl = me4000_cnt_ioctl, | ||
20142 | .open = me4000_open, | ||
20143 | .release = me4000_release, | ||
20144 | }; | ||
20145 | |||
20146 | -static struct file_operations me4000_ext_int_fops = { | ||
20147 | +static const struct file_operations me4000_ext_int_fops = { | ||
20148 | .owner = THIS_MODULE, | ||
20149 | .ioctl = me4000_ext_int_ioctl, | ||
20150 | .open = me4000_open, | ||
20151 | @@ -401,13 +401,13 @@ static struct file_operations me4000_ext | ||
20152 | .fasync = me4000_ext_int_fasync, | ||
20153 | }; | ||
20154 | |||
20155 | -static struct file_operations *me4000_ao_fops_array[] = { | ||
20156 | +static const struct file_operations *me4000_ao_fops_array[] = { | ||
20157 | &me4000_ao_fops_sing, // single operations | ||
20158 | &me4000_ao_fops_wrap, // wraparound operations | ||
20159 | &me4000_ao_fops_cont, // continous operations | ||
20160 | }; | ||
20161 | |||
20162 | -static struct file_operations *me4000_ai_fops_array[] = { | ||
20163 | +static const struct file_operations *me4000_ai_fops_array[] = { | ||
20164 | &me4000_ai_fops_sing, // single operations | ||
20165 | &me4000_ai_fops_cont_sw, // continuous operations with software start | ||
20166 | &me4000_ai_fops_cont_et, // continous operations with external trigger | ||
20167 | diff -urNp linux-2.6.29.6/drivers/staging/meilhaus/memain.c linux-2.6.29.6/drivers/staging/meilhaus/memain.c | ||
20168 | --- linux-2.6.29.6/drivers/staging/meilhaus/memain.c 2009-07-02 19:41:20.000000000 -0400 | ||
20169 | +++ linux-2.6.29.6/drivers/staging/meilhaus/memain.c 2009-07-23 18:40:28.086506170 -0400 | ||
20170 | @@ -107,7 +107,7 @@ static struct cdev *cdevp; | ||
20171 | /* File operations provided by the module | 19804 | /* File operations provided by the module |
20172 | */ | 19805 | */ |
20173 | 19806 | ||
@@ -20176,9 +19809,9 @@ diff -urNp linux-2.6.29.6/drivers/staging/meilhaus/memain.c linux-2.6.29.6/drive | |||
20176 | .owner = THIS_MODULE, | 19809 | .owner = THIS_MODULE, |
20177 | .ioctl = me_ioctl, | 19810 | .ioctl = me_ioctl, |
20178 | .open = me_open, | 19811 | .open = me_open, |
20179 | diff -urNp linux-2.6.29.6/drivers/staging/panel/panel.c linux-2.6.29.6/drivers/staging/panel/panel.c | 19812 | diff -urNp linux-2.6.30.4/drivers/staging/panel/panel.c linux-2.6.30.4/drivers/staging/panel/panel.c |
20180 | --- linux-2.6.29.6/drivers/staging/panel/panel.c 2009-07-02 19:41:20.000000000 -0400 | 19813 | --- linux-2.6.30.4/drivers/staging/panel/panel.c 2009-07-24 17:47:51.000000000 -0400 |
20181 | +++ linux-2.6.29.6/drivers/staging/panel/panel.c 2009-07-23 18:40:28.087439625 -0400 | 19814 | +++ linux-2.6.30.4/drivers/staging/panel/panel.c 2009-07-30 09:48:10.053870849 -0400 |
20182 | @@ -1263,7 +1263,7 @@ static int lcd_release(struct inode *ino | 19815 | @@ -1263,7 +1263,7 @@ static int lcd_release(struct inode *ino |
20183 | return 0; | 19816 | return 0; |
20184 | } | 19817 | } |
@@ -20197,9 +19830,9 @@ diff -urNp linux-2.6.29.6/drivers/staging/panel/panel.c linux-2.6.29.6/drivers/s | |||
20197 | .read = keypad_read, /* read */ | 19830 | .read = keypad_read, /* read */ |
20198 | .open = keypad_open, /* open */ | 19831 | .open = keypad_open, /* open */ |
20199 | .release = keypad_release, /* close */ | 19832 | .release = keypad_release, /* close */ |
20200 | diff -urNp linux-2.6.29.6/drivers/staging/poch/poch.c linux-2.6.29.6/drivers/staging/poch/poch.c | 19833 | diff -urNp linux-2.6.30.4/drivers/staging/poch/poch.c linux-2.6.30.4/drivers/staging/poch/poch.c |
20201 | --- linux-2.6.29.6/drivers/staging/poch/poch.c 2009-07-02 19:41:20.000000000 -0400 | 19834 | --- linux-2.6.30.4/drivers/staging/poch/poch.c 2009-07-24 17:47:51.000000000 -0400 |
20202 | +++ linux-2.6.29.6/drivers/staging/poch/poch.c 2009-07-23 18:40:28.100950832 -0400 | 19835 | +++ linux-2.6.30.4/drivers/staging/poch/poch.c 2009-07-30 09:48:10.053870849 -0400 |
20203 | @@ -1056,7 +1056,7 @@ static int poch_ioctl(struct inode *inod | 19836 | @@ -1056,7 +1056,7 @@ static int poch_ioctl(struct inode *inod |
20204 | return 0; | 19837 | return 0; |
20205 | } | 19838 | } |
@@ -20209,9 +19842,9 @@ diff -urNp linux-2.6.29.6/drivers/staging/poch/poch.c linux-2.6.29.6/drivers/sta | |||
20209 | .owner = THIS_MODULE, | 19842 | .owner = THIS_MODULE, |
20210 | .open = poch_open, | 19843 | .open = poch_open, |
20211 | .release = poch_release, | 19844 | .release = poch_release, |
20212 | diff -urNp linux-2.6.29.6/drivers/staging/rspiusb/rspiusb.c linux-2.6.29.6/drivers/staging/rspiusb/rspiusb.c | 19845 | diff -urNp linux-2.6.30.4/drivers/staging/rspiusb/rspiusb.c linux-2.6.30.4/drivers/staging/rspiusb/rspiusb.c |
20213 | --- linux-2.6.29.6/drivers/staging/rspiusb/rspiusb.c 2009-07-02 19:41:20.000000000 -0400 | 19846 | --- linux-2.6.30.4/drivers/staging/rspiusb/rspiusb.c 2009-07-24 17:47:51.000000000 -0400 |
20214 | +++ linux-2.6.29.6/drivers/staging/rspiusb/rspiusb.c 2009-07-23 18:40:28.104254239 -0400 | 19847 | +++ linux-2.6.30.4/drivers/staging/rspiusb/rspiusb.c 2009-07-30 09:48:10.053870849 -0400 |
20215 | @@ -708,7 +708,7 @@ static int MapUserBuffer(struct ioctl_st | 19848 | @@ -708,7 +708,7 @@ static int MapUserBuffer(struct ioctl_st |
20216 | return 0; | 19849 | return 0; |
20217 | } | 19850 | } |
@@ -20221,10 +19854,10 @@ diff -urNp linux-2.6.29.6/drivers/staging/rspiusb/rspiusb.c linux-2.6.29.6/drive | |||
20221 | .owner = THIS_MODULE, | 19854 | .owner = THIS_MODULE, |
20222 | .ioctl = piusb_ioctl, | 19855 | .ioctl = piusb_ioctl, |
20223 | .open = piusb_open, | 19856 | .open = piusb_open, |
20224 | diff -urNp linux-2.6.29.6/drivers/uio/uio.c linux-2.6.29.6/drivers/uio/uio.c | 19857 | diff -urNp linux-2.6.30.4/drivers/uio/uio.c linux-2.6.30.4/drivers/uio/uio.c |
20225 | --- linux-2.6.29.6/drivers/uio/uio.c 2009-07-02 19:41:20.000000000 -0400 | 19858 | --- linux-2.6.30.4/drivers/uio/uio.c 2009-07-24 17:47:51.000000000 -0400 |
20226 | +++ linux-2.6.29.6/drivers/uio/uio.c 2009-07-23 18:40:28.106388317 -0400 | 19859 | +++ linux-2.6.30.4/drivers/uio/uio.c 2009-07-30 09:48:10.053870849 -0400 |
20227 | @@ -636,7 +636,7 @@ static int uio_vma_fault(struct vm_area_ | 19860 | @@ -658,7 +658,7 @@ static int uio_vma_fault(struct vm_area_ |
20228 | return 0; | 19861 | return 0; |
20229 | } | 19862 | } |
20230 | 19863 | ||
@@ -20233,9 +19866,9 @@ diff -urNp linux-2.6.29.6/drivers/uio/uio.c linux-2.6.29.6/drivers/uio/uio.c | |||
20233 | .open = uio_vma_open, | 19866 | .open = uio_vma_open, |
20234 | .close = uio_vma_close, | 19867 | .close = uio_vma_close, |
20235 | .fault = uio_vma_fault, | 19868 | .fault = uio_vma_fault, |
20236 | diff -urNp linux-2.6.29.6/drivers/usb/atm/usbatm.c linux-2.6.29.6/drivers/usb/atm/usbatm.c | 19869 | diff -urNp linux-2.6.30.4/drivers/usb/atm/usbatm.c linux-2.6.30.4/drivers/usb/atm/usbatm.c |
20237 | --- linux-2.6.29.6/drivers/usb/atm/usbatm.c 2009-07-02 19:41:20.000000000 -0400 | 19870 | --- linux-2.6.30.4/drivers/usb/atm/usbatm.c 2009-07-24 17:47:51.000000000 -0400 |
20238 | +++ linux-2.6.29.6/drivers/usb/atm/usbatm.c 2009-07-23 17:34:32.135751373 -0400 | 19871 | +++ linux-2.6.30.4/drivers/usb/atm/usbatm.c 2009-07-30 09:48:10.055402995 -0400 |
20239 | @@ -333,7 +333,7 @@ static void usbatm_extract_one_cell(stru | 19872 | @@ -333,7 +333,7 @@ static void usbatm_extract_one_cell(stru |
20240 | if (printk_ratelimit()) | 19873 | if (printk_ratelimit()) |
20241 | atm_warn(instance, "%s: OAM not supported (vpi %d, vci %d)!\n", | 19874 | atm_warn(instance, "%s: OAM not supported (vpi %d, vci %d)!\n", |
@@ -20298,10 +19931,10 @@ diff -urNp linux-2.6.29.6/drivers/usb/atm/usbatm.c linux-2.6.29.6/drivers/usb/at | |||
20298 | 19931 | ||
20299 | skb = skb_dequeue(&instance->sndqueue); | 19932 | skb = skb_dequeue(&instance->sndqueue); |
20300 | } | 19933 | } |
20301 | diff -urNp linux-2.6.29.6/drivers/usb/class/cdc-acm.c linux-2.6.29.6/drivers/usb/class/cdc-acm.c | 19934 | diff -urNp linux-2.6.30.4/drivers/usb/class/cdc-acm.c linux-2.6.30.4/drivers/usb/class/cdc-acm.c |
20302 | --- linux-2.6.29.6/drivers/usb/class/cdc-acm.c 2009-07-02 19:41:20.000000000 -0400 | 19935 | --- linux-2.6.30.4/drivers/usb/class/cdc-acm.c 2009-07-24 17:47:51.000000000 -0400 |
20303 | +++ linux-2.6.29.6/drivers/usb/class/cdc-acm.c 2009-07-23 17:34:32.135751373 -0400 | 19936 | +++ linux-2.6.30.4/drivers/usb/class/cdc-acm.c 2009-07-30 09:48:10.055402995 -0400 |
20304 | @@ -1397,7 +1397,7 @@ static struct usb_device_id acm_ids[] = | 19937 | @@ -1403,7 +1403,7 @@ static struct usb_device_id acm_ids[] = |
20305 | USB_CDC_ACM_PROTO_AT_CDMA) }, | 19938 | USB_CDC_ACM_PROTO_AT_CDMA) }, |
20306 | 19939 | ||
20307 | /* NOTE: COMM/ACM/0xff is likely MSFT RNDIS ... NOT a modem!! */ | 19940 | /* NOTE: COMM/ACM/0xff is likely MSFT RNDIS ... NOT a modem!! */ |
@@ -20310,9 +19943,9 @@ diff -urNp linux-2.6.29.6/drivers/usb/class/cdc-acm.c linux-2.6.29.6/drivers/usb | |||
20310 | }; | 19943 | }; |
20311 | 19944 | ||
20312 | MODULE_DEVICE_TABLE (usb, acm_ids); | 19945 | MODULE_DEVICE_TABLE (usb, acm_ids); |
20313 | diff -urNp linux-2.6.29.6/drivers/usb/class/usblp.c linux-2.6.29.6/drivers/usb/class/usblp.c | 19946 | diff -urNp linux-2.6.30.4/drivers/usb/class/usblp.c linux-2.6.30.4/drivers/usb/class/usblp.c |
20314 | --- linux-2.6.29.6/drivers/usb/class/usblp.c 2009-07-02 19:41:20.000000000 -0400 | 19947 | --- linux-2.6.30.4/drivers/usb/class/usblp.c 2009-07-24 17:47:51.000000000 -0400 |
20315 | +++ linux-2.6.29.6/drivers/usb/class/usblp.c 2009-07-23 17:34:32.136781202 -0400 | 19948 | +++ linux-2.6.30.4/drivers/usb/class/usblp.c 2009-07-30 09:48:10.055402995 -0400 |
20316 | @@ -228,7 +228,7 @@ static const struct quirk_printer_struct | 19949 | @@ -228,7 +228,7 @@ static const struct quirk_printer_struct |
20317 | { 0x0482, 0x0010, USBLP_QUIRK_BIDIR }, /* Kyocera Mita FS 820, by zut <kernel@zut.de> */ | 19950 | { 0x0482, 0x0010, USBLP_QUIRK_BIDIR }, /* Kyocera Mita FS 820, by zut <kernel@zut.de> */ |
20318 | { 0x04f9, 0x000d, USBLP_QUIRK_BIDIR }, /* Brother Industries, Ltd HL-1440 Laser Printer */ | 19951 | { 0x04f9, 0x000d, USBLP_QUIRK_BIDIR }, /* Brother Industries, Ltd HL-1440 Laser Printer */ |
@@ -20322,7 +19955,7 @@ diff -urNp linux-2.6.29.6/drivers/usb/class/usblp.c linux-2.6.29.6/drivers/usb/c | |||
20322 | }; | 19955 | }; |
20323 | 19956 | ||
20324 | static int usblp_wwait(struct usblp *usblp, int nonblock); | 19957 | static int usblp_wwait(struct usblp *usblp, int nonblock); |
20325 | @@ -1403,7 +1403,7 @@ static struct usb_device_id usblp_ids [] | 19958 | @@ -1406,7 +1406,7 @@ static struct usb_device_id usblp_ids [] |
20326 | { USB_INTERFACE_INFO(7, 1, 2) }, | 19959 | { USB_INTERFACE_INFO(7, 1, 2) }, |
20327 | { USB_INTERFACE_INFO(7, 1, 3) }, | 19960 | { USB_INTERFACE_INFO(7, 1, 3) }, |
20328 | { USB_DEVICE(0x04b8, 0x0202) }, /* Seiko Epson Receipt Printer M129C */ | 19961 | { USB_DEVICE(0x04b8, 0x0202) }, /* Seiko Epson Receipt Printer M129C */ |
@@ -20331,9 +19964,9 @@ diff -urNp linux-2.6.29.6/drivers/usb/class/usblp.c linux-2.6.29.6/drivers/usb/c | |||
20331 | }; | 19964 | }; |
20332 | 19965 | ||
20333 | MODULE_DEVICE_TABLE (usb, usblp_ids); | 19966 | MODULE_DEVICE_TABLE (usb, usblp_ids); |
20334 | diff -urNp linux-2.6.29.6/drivers/usb/class/usbtmc.c linux-2.6.29.6/drivers/usb/class/usbtmc.c | 19967 | diff -urNp linux-2.6.30.4/drivers/usb/class/usbtmc.c linux-2.6.30.4/drivers/usb/class/usbtmc.c |
20335 | --- linux-2.6.29.6/drivers/usb/class/usbtmc.c 2009-07-02 19:41:20.000000000 -0400 | 19968 | --- linux-2.6.30.4/drivers/usb/class/usbtmc.c 2009-07-24 17:47:51.000000000 -0400 |
20336 | +++ linux-2.6.29.6/drivers/usb/class/usbtmc.c 2009-07-23 18:40:28.107490981 -0400 | 19969 | +++ linux-2.6.30.4/drivers/usb/class/usbtmc.c 2009-07-30 09:48:10.055402995 -0400 |
20337 | @@ -954,7 +954,7 @@ static long usbtmc_ioctl(struct file *fi | 19970 | @@ -954,7 +954,7 @@ static long usbtmc_ioctl(struct file *fi |
20338 | return retval; | 19971 | return retval; |
20339 | } | 19972 | } |
@@ -20343,10 +19976,10 @@ diff -urNp linux-2.6.29.6/drivers/usb/class/usbtmc.c linux-2.6.29.6/drivers/usb/ | |||
20343 | .owner = THIS_MODULE, | 19976 | .owner = THIS_MODULE, |
20344 | .read = usbtmc_read, | 19977 | .read = usbtmc_read, |
20345 | .write = usbtmc_write, | 19978 | .write = usbtmc_write, |
20346 | diff -urNp linux-2.6.29.6/drivers/usb/core/hub.c linux-2.6.29.6/drivers/usb/core/hub.c | 19979 | diff -urNp linux-2.6.30.4/drivers/usb/core/hub.c linux-2.6.30.4/drivers/usb/core/hub.c |
20347 | --- linux-2.6.29.6/drivers/usb/core/hub.c 2009-07-02 19:41:20.000000000 -0400 | 19980 | --- linux-2.6.30.4/drivers/usb/core/hub.c 2009-07-24 17:47:51.000000000 -0400 |
20348 | +++ linux-2.6.29.6/drivers/usb/core/hub.c 2009-07-23 17:34:32.136781202 -0400 | 19981 | +++ linux-2.6.30.4/drivers/usb/core/hub.c 2009-07-30 09:48:10.057446184 -0400 |
20349 | @@ -3193,7 +3193,7 @@ static struct usb_device_id hub_id_table | 19982 | @@ -3194,7 +3194,7 @@ static struct usb_device_id hub_id_table |
20350 | .bDeviceClass = USB_CLASS_HUB}, | 19983 | .bDeviceClass = USB_CLASS_HUB}, |
20351 | { .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS, | 19984 | { .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS, |
20352 | .bInterfaceClass = USB_CLASS_HUB}, | 19985 | .bInterfaceClass = USB_CLASS_HUB}, |
@@ -20355,9 +19988,9 @@ diff -urNp linux-2.6.29.6/drivers/usb/core/hub.c linux-2.6.29.6/drivers/usb/core | |||
20355 | }; | 19988 | }; |
20356 | 19989 | ||
20357 | MODULE_DEVICE_TABLE (usb, hub_id_table); | 19990 | MODULE_DEVICE_TABLE (usb, hub_id_table); |
20358 | diff -urNp linux-2.6.29.6/drivers/usb/core/inode.c linux-2.6.29.6/drivers/usb/core/inode.c | 19991 | diff -urNp linux-2.6.30.4/drivers/usb/core/inode.c linux-2.6.30.4/drivers/usb/core/inode.c |
20359 | --- linux-2.6.29.6/drivers/usb/core/inode.c 2009-07-02 19:41:20.000000000 -0400 | 19992 | --- linux-2.6.30.4/drivers/usb/core/inode.c 2009-07-24 17:47:51.000000000 -0400 |
20360 | +++ linux-2.6.29.6/drivers/usb/core/inode.c 2009-07-23 18:40:28.126687499 -0400 | 19993 | +++ linux-2.6.30.4/drivers/usb/core/inode.c 2009-07-30 09:48:10.057446184 -0400 |
20361 | @@ -47,7 +47,7 @@ | 19994 | @@ -47,7 +47,7 @@ |
20362 | #define USBFS_DEFAULT_BUSMODE (S_IXUGO | S_IRUGO) | 19995 | #define USBFS_DEFAULT_BUSMODE (S_IXUGO | S_IRUGO) |
20363 | #define USBFS_DEFAULT_LISTMODE S_IRUGO | 19996 | #define USBFS_DEFAULT_LISTMODE S_IRUGO |
@@ -20376,22 +20009,23 @@ diff -urNp linux-2.6.29.6/drivers/usb/core/inode.c linux-2.6.29.6/drivers/usb/co | |||
20376 | .statfs = simple_statfs, | 20009 | .statfs = simple_statfs, |
20377 | .drop_inode = generic_delete_inode, | 20010 | .drop_inode = generic_delete_inode, |
20378 | .remount_fs = remount, | 20011 | .remount_fs = remount, |
20379 | diff -urNp linux-2.6.29.6/drivers/usb/core/message.c linux-2.6.29.6/drivers/usb/core/message.c | 20012 | diff -urNp linux-2.6.30.4/drivers/usb/core/message.c linux-2.6.30.4/drivers/usb/core/message.c |
20380 | --- linux-2.6.29.6/drivers/usb/core/message.c 2009-07-02 19:41:20.000000000 -0400 | 20013 | --- linux-2.6.30.4/drivers/usb/core/message.c 2009-07-30 20:32:40.522633558 -0400 |
20381 | +++ linux-2.6.29.6/drivers/usb/core/message.c 2009-07-23 17:34:32.137720292 -0400 | 20014 | +++ linux-2.6.30.4/drivers/usb/core/message.c 2009-07-30 20:32:47.970590702 -0400 |
20382 | @@ -866,7 +866,8 @@ char *usb_cache_string(struct usb_device | 20015 | @@ -890,8 +890,8 @@ char *usb_cache_string(struct usb_device |
20016 | buf = kmalloc(256, GFP_KERNEL); | ||
20383 | if (buf) { | 20017 | if (buf) { |
20384 | len = usb_string(udev, index, buf, 256); | 20018 | len = usb_string(udev, index, buf, 256); |
20385 | if (len > 0) { | 20019 | - if (len > 0) { |
20386 | - smallbuf = kmalloc(++len, GFP_KERNEL); | 20020 | - smallbuf = kmalloc(++len, GFP_KERNEL); |
20387 | + ++len; | 20021 | + if (len++ > 0) { |
20388 | + smallbuf = kmalloc(len, GFP_KERNEL); | 20022 | + smallbuf = kmalloc(len, GFP_KERNEL); |
20389 | if (!smallbuf) | 20023 | if (!smallbuf) |
20390 | return buf; | 20024 | return buf; |
20391 | memcpy(smallbuf, buf, len); | 20025 | memcpy(smallbuf, buf, len); |
20392 | diff -urNp linux-2.6.29.6/drivers/usb/gadget/inode.c linux-2.6.29.6/drivers/usb/gadget/inode.c | 20026 | diff -urNp linux-2.6.30.4/drivers/usb/gadget/inode.c linux-2.6.30.4/drivers/usb/gadget/inode.c |
20393 | --- linux-2.6.29.6/drivers/usb/gadget/inode.c 2009-07-02 19:41:20.000000000 -0400 | 20027 | --- linux-2.6.30.4/drivers/usb/gadget/inode.c 2009-07-24 17:47:51.000000000 -0400 |
20394 | +++ linux-2.6.29.6/drivers/usb/gadget/inode.c 2009-07-23 18:40:28.126687499 -0400 | 20028 | +++ linux-2.6.30.4/drivers/usb/gadget/inode.c 2009-07-30 09:48:10.057446184 -0400 |
20395 | @@ -2035,7 +2035,7 @@ gadgetfs_create_file (struct super_block | 20029 | @@ -2035,7 +2035,7 @@ gadgetfs_create_file (struct super_block |
20396 | return inode; | 20030 | return inode; |
20397 | } | 20031 | } |
@@ -20401,9 +20035,9 @@ diff -urNp linux-2.6.29.6/drivers/usb/gadget/inode.c linux-2.6.29.6/drivers/usb/ | |||
20401 | .statfs = simple_statfs, | 20035 | .statfs = simple_statfs, |
20402 | .drop_inode = generic_delete_inode, | 20036 | .drop_inode = generic_delete_inode, |
20403 | }; | 20037 | }; |
20404 | diff -urNp linux-2.6.29.6/drivers/usb/gadget/printer.c linux-2.6.29.6/drivers/usb/gadget/printer.c | 20038 | diff -urNp linux-2.6.30.4/drivers/usb/gadget/printer.c linux-2.6.30.4/drivers/usb/gadget/printer.c |
20405 | --- linux-2.6.29.6/drivers/usb/gadget/printer.c 2009-07-02 19:41:20.000000000 -0400 | 20039 | --- linux-2.6.30.4/drivers/usb/gadget/printer.c 2009-07-24 17:47:51.000000000 -0400 |
20406 | +++ linux-2.6.29.6/drivers/usb/gadget/printer.c 2009-07-23 18:40:28.127445994 -0400 | 20040 | +++ linux-2.6.30.4/drivers/usb/gadget/printer.c 2009-07-30 09:48:10.059376894 -0400 |
20407 | @@ -875,7 +875,7 @@ printer_ioctl(struct file *fd, unsigned | 20041 | @@ -875,7 +875,7 @@ printer_ioctl(struct file *fd, unsigned |
20408 | } | 20042 | } |
20409 | 20043 | ||
@@ -20413,9 +20047,9 @@ diff -urNp linux-2.6.29.6/drivers/usb/gadget/printer.c linux-2.6.29.6/drivers/us | |||
20413 | .owner = THIS_MODULE, | 20047 | .owner = THIS_MODULE, |
20414 | .open = printer_open, | 20048 | .open = printer_open, |
20415 | .read = printer_read, | 20049 | .read = printer_read, |
20416 | diff -urNp linux-2.6.29.6/drivers/usb/host/ehci-pci.c linux-2.6.29.6/drivers/usb/host/ehci-pci.c | 20050 | diff -urNp linux-2.6.30.4/drivers/usb/host/ehci-pci.c linux-2.6.30.4/drivers/usb/host/ehci-pci.c |
20417 | --- linux-2.6.29.6/drivers/usb/host/ehci-pci.c 2009-07-02 19:41:20.000000000 -0400 | 20051 | --- linux-2.6.30.4/drivers/usb/host/ehci-pci.c 2009-07-24 17:47:51.000000000 -0400 |
20418 | +++ linux-2.6.29.6/drivers/usb/host/ehci-pci.c 2009-07-23 17:34:32.137720292 -0400 | 20052 | +++ linux-2.6.30.4/drivers/usb/host/ehci-pci.c 2009-07-30 09:48:10.059376894 -0400 |
20419 | @@ -418,7 +418,7 @@ static const struct pci_device_id pci_id | 20053 | @@ -418,7 +418,7 @@ static const struct pci_device_id pci_id |
20420 | PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_EHCI, ~0), | 20054 | PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_EHCI, ~0), |
20421 | .driver_data = (unsigned long) &ehci_pci_hc_driver, | 20055 | .driver_data = (unsigned long) &ehci_pci_hc_driver, |
@@ -20425,9 +20059,9 @@ diff -urNp linux-2.6.29.6/drivers/usb/host/ehci-pci.c linux-2.6.29.6/drivers/usb | |||
20425 | }; | 20059 | }; |
20426 | MODULE_DEVICE_TABLE(pci, pci_ids); | 20060 | MODULE_DEVICE_TABLE(pci, pci_ids); |
20427 | 20061 | ||
20428 | diff -urNp linux-2.6.29.6/drivers/usb/host/uhci-hcd.c linux-2.6.29.6/drivers/usb/host/uhci-hcd.c | 20062 | diff -urNp linux-2.6.30.4/drivers/usb/host/uhci-hcd.c linux-2.6.30.4/drivers/usb/host/uhci-hcd.c |
20429 | --- linux-2.6.29.6/drivers/usb/host/uhci-hcd.c 2009-07-02 19:41:20.000000000 -0400 | 20063 | --- linux-2.6.30.4/drivers/usb/host/uhci-hcd.c 2009-07-24 17:47:51.000000000 -0400 |
20430 | +++ linux-2.6.29.6/drivers/usb/host/uhci-hcd.c 2009-07-23 17:34:32.138862216 -0400 | 20064 | +++ linux-2.6.30.4/drivers/usb/host/uhci-hcd.c 2009-07-30 09:48:10.059941908 -0400 |
20431 | @@ -927,7 +927,7 @@ static const struct pci_device_id uhci_p | 20065 | @@ -927,7 +927,7 @@ static const struct pci_device_id uhci_p |
20432 | /* handle any USB UHCI controller */ | 20066 | /* handle any USB UHCI controller */ |
20433 | PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_UHCI, ~0), | 20067 | PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_UHCI, ~0), |
@@ -20437,9 +20071,9 @@ diff -urNp linux-2.6.29.6/drivers/usb/host/uhci-hcd.c linux-2.6.29.6/drivers/usb | |||
20437 | }; | 20071 | }; |
20438 | 20072 | ||
20439 | MODULE_DEVICE_TABLE(pci, uhci_pci_ids); | 20073 | MODULE_DEVICE_TABLE(pci, uhci_pci_ids); |
20440 | diff -urNp linux-2.6.29.6/drivers/usb/host/whci/debug.c linux-2.6.29.6/drivers/usb/host/whci/debug.c | 20074 | diff -urNp linux-2.6.30.4/drivers/usb/host/whci/debug.c linux-2.6.30.4/drivers/usb/host/whci/debug.c |
20441 | --- linux-2.6.29.6/drivers/usb/host/whci/debug.c 2009-07-02 19:41:20.000000000 -0400 | 20075 | --- linux-2.6.30.4/drivers/usb/host/whci/debug.c 2009-07-24 17:47:51.000000000 -0400 |
20442 | +++ linux-2.6.29.6/drivers/usb/host/whci/debug.c 2009-07-23 18:40:28.128284960 -0400 | 20076 | +++ linux-2.6.30.4/drivers/usb/host/whci/debug.c 2009-07-30 09:48:10.059941908 -0400 |
20443 | @@ -134,7 +134,7 @@ static int pzl_open(struct inode *inode, | 20077 | @@ -134,7 +134,7 @@ static int pzl_open(struct inode *inode, |
20444 | return single_open(file, pzl_print, inode->i_private); | 20078 | return single_open(file, pzl_print, inode->i_private); |
20445 | } | 20079 | } |
@@ -20467,10 +20101,10 @@ diff -urNp linux-2.6.29.6/drivers/usb/host/whci/debug.c linux-2.6.29.6/drivers/u | |||
20467 | .open = pzl_open, | 20101 | .open = pzl_open, |
20468 | .read = seq_read, | 20102 | .read = seq_read, |
20469 | .llseek = seq_lseek, | 20103 | .llseek = seq_lseek, |
20470 | diff -urNp linux-2.6.29.6/drivers/usb/mon/mon_bin.c linux-2.6.29.6/drivers/usb/mon/mon_bin.c | 20104 | diff -urNp linux-2.6.30.4/drivers/usb/mon/mon_bin.c linux-2.6.30.4/drivers/usb/mon/mon_bin.c |
20471 | --- linux-2.6.29.6/drivers/usb/mon/mon_bin.c 2009-07-02 19:41:20.000000000 -0400 | 20105 | --- linux-2.6.30.4/drivers/usb/mon/mon_bin.c 2009-07-24 17:47:51.000000000 -0400 |
20472 | +++ linux-2.6.29.6/drivers/usb/mon/mon_bin.c 2009-07-23 18:40:28.128284960 -0400 | 20106 | +++ linux-2.6.30.4/drivers/usb/mon/mon_bin.c 2009-07-30 09:48:10.059941908 -0400 |
20473 | @@ -1094,7 +1094,7 @@ static int mon_bin_vma_fault(struct vm_a | 20107 | @@ -1184,7 +1184,7 @@ static int mon_bin_vma_fault(struct vm_a |
20474 | return 0; | 20108 | return 0; |
20475 | } | 20109 | } |
20476 | 20110 | ||
@@ -20479,9 +20113,9 @@ diff -urNp linux-2.6.29.6/drivers/usb/mon/mon_bin.c linux-2.6.29.6/drivers/usb/m | |||
20479 | .open = mon_bin_vma_open, | 20113 | .open = mon_bin_vma_open, |
20480 | .close = mon_bin_vma_close, | 20114 | .close = mon_bin_vma_close, |
20481 | .fault = mon_bin_vma_fault, | 20115 | .fault = mon_bin_vma_fault, |
20482 | diff -urNp linux-2.6.29.6/drivers/usb/storage/debug.h linux-2.6.29.6/drivers/usb/storage/debug.h | 20116 | diff -urNp linux-2.6.30.4/drivers/usb/storage/debug.h linux-2.6.30.4/drivers/usb/storage/debug.h |
20483 | --- linux-2.6.29.6/drivers/usb/storage/debug.h 2009-07-02 19:41:20.000000000 -0400 | 20117 | --- linux-2.6.30.4/drivers/usb/storage/debug.h 2009-07-24 17:47:51.000000000 -0400 |
20484 | +++ linux-2.6.29.6/drivers/usb/storage/debug.h 2009-07-23 17:34:32.138862216 -0400 | 20118 | +++ linux-2.6.30.4/drivers/usb/storage/debug.h 2009-07-30 09:48:10.059941908 -0400 |
20485 | @@ -54,9 +54,9 @@ void usb_stor_show_sense( unsigned char | 20119 | @@ -54,9 +54,9 @@ void usb_stor_show_sense( unsigned char |
20486 | #define US_DEBUGPX(x...) printk( x ) | 20120 | #define US_DEBUGPX(x...) printk( x ) |
20487 | #define US_DEBUG(x) x | 20121 | #define US_DEBUG(x) x |
@@ -20495,30 +20129,33 @@ diff -urNp linux-2.6.29.6/drivers/usb/storage/debug.h linux-2.6.29.6/drivers/usb | |||
20495 | #endif | 20129 | #endif |
20496 | 20130 | ||
20497 | #endif | 20131 | #endif |
20498 | diff -urNp linux-2.6.29.6/drivers/usb/storage/usb.c linux-2.6.29.6/drivers/usb/storage/usb.c | 20132 | diff -urNp linux-2.6.30.4/drivers/usb/storage/usb.c linux-2.6.30.4/drivers/usb/storage/usb.c |
20499 | --- linux-2.6.29.6/drivers/usb/storage/usb.c 2009-07-02 19:41:20.000000000 -0400 | 20133 | --- linux-2.6.30.4/drivers/usb/storage/usb.c 2009-07-24 17:47:51.000000000 -0400 |
20500 | +++ linux-2.6.29.6/drivers/usb/storage/usb.c 2009-07-23 17:34:32.138862216 -0400 | 20134 | +++ linux-2.6.30.4/drivers/usb/storage/usb.c 2009-07-30 09:48:10.061383402 -0400 |
20501 | @@ -141,7 +141,7 @@ static struct usb_device_id storage_usb_ | 20135 | @@ -118,7 +118,7 @@ MODULE_PARM_DESC(quirks, "supplemental l |
20502 | #undef COMPLIANT_DEV | 20136 | |
20503 | #undef USUAL_DEV | 20137 | static struct us_unusual_dev us_unusual_dev_list[] = { |
20504 | /* Terminating entry */ | 20138 | # include "unusual_devs.h" |
20505 | - { } | 20139 | - { } /* Terminating entry */ |
20506 | + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } | 20140 | + { NULL, NULL, 0, 0, NULL } /* Terminating entry */ |
20507 | }; | 20141 | }; |
20508 | 20142 | ||
20509 | MODULE_DEVICE_TABLE (usb, storage_usb_ids); | 20143 | #undef UNUSUAL_DEV |
20510 | @@ -184,7 +184,7 @@ static struct us_unusual_dev us_unusual_ | 20144 | diff -urNp linux-2.6.30.4/drivers/usb/storage/usual-tables.c linux-2.6.30.4/drivers/usb/storage/usual-tables.c |
20511 | # undef USUAL_DEV | 20145 | --- linux-2.6.30.4/drivers/usb/storage/usual-tables.c 2009-07-24 17:47:51.000000000 -0400 |
20512 | 20146 | +++ linux-2.6.30.4/drivers/usb/storage/usual-tables.c 2009-07-30 09:48:10.061383402 -0400 | |
20513 | /* Terminating entry */ | 20147 | @@ -48,7 +48,7 @@ |
20514 | - { NULL } | 20148 | |
20515 | + { NULL, NULL, 0, 0, NULL } | 20149 | struct usb_device_id usb_storage_usb_ids[] = { |
20150 | # include "unusual_devs.h" | ||
20151 | - { } /* Terminating entry */ | ||
20152 | + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } /* Terminating entry */ | ||
20516 | }; | 20153 | }; |
20154 | EXPORT_SYMBOL_GPL(usb_storage_usb_ids); | ||
20517 | 20155 | ||
20518 | 20156 | diff -urNp linux-2.6.30.4/drivers/uwb/uwb-debug.c linux-2.6.30.4/drivers/uwb/uwb-debug.c | |
20519 | diff -urNp linux-2.6.29.6/drivers/uwb/uwb-debug.c linux-2.6.29.6/drivers/uwb/uwb-debug.c | 20157 | --- linux-2.6.30.4/drivers/uwb/uwb-debug.c 2009-07-24 17:47:51.000000000 -0400 |
20520 | --- linux-2.6.29.6/drivers/uwb/uwb-debug.c 2009-07-02 19:41:20.000000000 -0400 | 20158 | +++ linux-2.6.30.4/drivers/uwb/uwb-debug.c 2009-07-30 09:48:10.061383402 -0400 |
20521 | +++ linux-2.6.29.6/drivers/uwb/uwb-debug.c 2009-07-23 18:40:28.137381953 -0400 | ||
20522 | @@ -205,7 +205,7 @@ static ssize_t command_write(struct file | 20159 | @@ -205,7 +205,7 @@ static ssize_t command_write(struct file |
20523 | return ret < 0 ? ret : len; | 20160 | return ret < 0 ? ret : len; |
20524 | } | 20161 | } |
@@ -20546,9 +20183,9 @@ diff -urNp linux-2.6.29.6/drivers/uwb/uwb-debug.c linux-2.6.29.6/drivers/uwb/uwb | |||
20546 | .open = drp_avail_open, | 20183 | .open = drp_avail_open, |
20547 | .read = seq_read, | 20184 | .read = seq_read, |
20548 | .llseek = seq_lseek, | 20185 | .llseek = seq_lseek, |
20549 | diff -urNp linux-2.6.29.6/drivers/uwb/wlp/messages.c linux-2.6.29.6/drivers/uwb/wlp/messages.c | 20186 | diff -urNp linux-2.6.30.4/drivers/uwb/wlp/messages.c linux-2.6.30.4/drivers/uwb/wlp/messages.c |
20550 | --- linux-2.6.29.6/drivers/uwb/wlp/messages.c 2009-07-02 19:41:20.000000000 -0400 | 20187 | --- linux-2.6.30.4/drivers/uwb/wlp/messages.c 2009-07-24 17:47:51.000000000 -0400 |
20551 | +++ linux-2.6.29.6/drivers/uwb/wlp/messages.c 2009-07-23 17:34:32.139921746 -0400 | 20188 | +++ linux-2.6.30.4/drivers/uwb/wlp/messages.c 2009-07-30 09:48:10.062348453 -0400 |
20552 | @@ -903,7 +903,7 @@ int wlp_parse_f0(struct wlp *wlp, struct | 20189 | @@ -903,7 +903,7 @@ int wlp_parse_f0(struct wlp *wlp, struct |
20553 | size_t len = skb->len; | 20190 | size_t len = skb->len; |
20554 | size_t used; | 20191 | size_t used; |
@@ -20558,9 +20195,9 @@ diff -urNp linux-2.6.29.6/drivers/uwb/wlp/messages.c linux-2.6.29.6/drivers/uwb/ | |||
20558 | enum wlp_assc_error assc_err; | 20195 | enum wlp_assc_error assc_err; |
20559 | char enonce_buf[WLP_WSS_NONCE_STRSIZE]; | 20196 | char enonce_buf[WLP_WSS_NONCE_STRSIZE]; |
20560 | char rnonce_buf[WLP_WSS_NONCE_STRSIZE]; | 20197 | char rnonce_buf[WLP_WSS_NONCE_STRSIZE]; |
20561 | diff -urNp linux-2.6.29.6/drivers/video/fb_defio.c linux-2.6.29.6/drivers/video/fb_defio.c | 20198 | diff -urNp linux-2.6.30.4/drivers/video/fb_defio.c linux-2.6.30.4/drivers/video/fb_defio.c |
20562 | --- linux-2.6.29.6/drivers/video/fb_defio.c 2009-07-02 19:41:20.000000000 -0400 | 20199 | --- linux-2.6.30.4/drivers/video/fb_defio.c 2009-07-24 17:47:51.000000000 -0400 |
20563 | +++ linux-2.6.29.6/drivers/video/fb_defio.c 2009-07-23 18:40:28.143844676 -0400 | 20200 | +++ linux-2.6.30.4/drivers/video/fb_defio.c 2009-07-30 09:48:10.062348453 -0400 |
20564 | @@ -125,7 +125,7 @@ page_already_added: | 20201 | @@ -125,7 +125,7 @@ page_already_added: |
20565 | return 0; | 20202 | return 0; |
20566 | } | 20203 | } |
@@ -20570,10 +20207,10 @@ diff -urNp linux-2.6.29.6/drivers/video/fb_defio.c linux-2.6.29.6/drivers/video/ | |||
20570 | .fault = fb_deferred_io_fault, | 20207 | .fault = fb_deferred_io_fault, |
20571 | .page_mkwrite = fb_deferred_io_mkwrite, | 20208 | .page_mkwrite = fb_deferred_io_mkwrite, |
20572 | }; | 20209 | }; |
20573 | diff -urNp linux-2.6.29.6/drivers/video/fbmem.c linux-2.6.29.6/drivers/video/fbmem.c | 20210 | diff -urNp linux-2.6.30.4/drivers/video/fbmem.c linux-2.6.30.4/drivers/video/fbmem.c |
20574 | --- linux-2.6.29.6/drivers/video/fbmem.c 2009-07-02 19:41:20.000000000 -0400 | 20211 | --- linux-2.6.30.4/drivers/video/fbmem.c 2009-07-24 17:47:51.000000000 -0400 |
20575 | +++ linux-2.6.29.6/drivers/video/fbmem.c 2009-07-23 17:34:32.140710667 -0400 | 20212 | +++ linux-2.6.30.4/drivers/video/fbmem.c 2009-07-30 09:48:10.062348453 -0400 |
20576 | @@ -393,7 +393,7 @@ static void fb_do_show_logo(struct fb_in | 20213 | @@ -404,7 +404,7 @@ static void fb_do_show_logo(struct fb_in |
20577 | image->dx += image->width + 8; | 20214 | image->dx += image->width + 8; |
20578 | } | 20215 | } |
20579 | } else if (rotate == FB_ROTATE_UD) { | 20216 | } else if (rotate == FB_ROTATE_UD) { |
@@ -20582,7 +20219,7 @@ diff -urNp linux-2.6.29.6/drivers/video/fbmem.c linux-2.6.29.6/drivers/video/fbm | |||
20582 | info->fbops->fb_imageblit(info, image); | 20219 | info->fbops->fb_imageblit(info, image); |
20583 | image->dx -= image->width + 8; | 20220 | image->dx -= image->width + 8; |
20584 | } | 20221 | } |
20585 | @@ -405,7 +405,7 @@ static void fb_do_show_logo(struct fb_in | 20222 | @@ -416,7 +416,7 @@ static void fb_do_show_logo(struct fb_in |
20586 | image->dy += image->height + 8; | 20223 | image->dy += image->height + 8; |
20587 | } | 20224 | } |
20588 | } else if (rotate == FB_ROTATE_CCW) { | 20225 | } else if (rotate == FB_ROTATE_CCW) { |
@@ -20591,7 +20228,7 @@ diff -urNp linux-2.6.29.6/drivers/video/fbmem.c linux-2.6.29.6/drivers/video/fbm | |||
20591 | info->fbops->fb_imageblit(info, image); | 20228 | info->fbops->fb_imageblit(info, image); |
20592 | image->dy -= image->height + 8; | 20229 | image->dy -= image->height + 8; |
20593 | } | 20230 | } |
20594 | @@ -1098,7 +1098,7 @@ static long do_fb_ioctl(struct fb_info * | 20231 | @@ -1109,7 +1109,7 @@ static long do_fb_ioctl(struct fb_info * |
20595 | return -EFAULT; | 20232 | return -EFAULT; |
20596 | if (con2fb.console < 1 || con2fb.console > MAX_NR_CONSOLES) | 20233 | if (con2fb.console < 1 || con2fb.console > MAX_NR_CONSOLES) |
20597 | return -EINVAL; | 20234 | return -EINVAL; |
@@ -20600,9 +20237,9 @@ diff -urNp linux-2.6.29.6/drivers/video/fbmem.c linux-2.6.29.6/drivers/video/fbm | |||
20600 | return -EINVAL; | 20237 | return -EINVAL; |
20601 | if (!registered_fb[con2fb.framebuffer]) | 20238 | if (!registered_fb[con2fb.framebuffer]) |
20602 | request_module("fb%d", con2fb.framebuffer); | 20239 | request_module("fb%d", con2fb.framebuffer); |
20603 | diff -urNp linux-2.6.29.6/drivers/video/fbmon.c linux-2.6.29.6/drivers/video/fbmon.c | 20240 | diff -urNp linux-2.6.30.4/drivers/video/fbmon.c linux-2.6.30.4/drivers/video/fbmon.c |
20604 | --- linux-2.6.29.6/drivers/video/fbmon.c 2009-07-02 19:41:20.000000000 -0400 | 20241 | --- linux-2.6.30.4/drivers/video/fbmon.c 2009-07-24 17:47:51.000000000 -0400 |
20605 | +++ linux-2.6.29.6/drivers/video/fbmon.c 2009-07-23 17:34:32.140710667 -0400 | 20242 | +++ linux-2.6.30.4/drivers/video/fbmon.c 2009-07-30 09:48:10.063350135 -0400 |
20606 | @@ -45,7 +45,7 @@ | 20243 | @@ -45,7 +45,7 @@ |
20607 | #ifdef DEBUG | 20244 | #ifdef DEBUG |
20608 | #define DPRINTK(fmt, args...) printk(fmt,## args) | 20245 | #define DPRINTK(fmt, args...) printk(fmt,## args) |
@@ -20612,9 +20249,9 @@ diff -urNp linux-2.6.29.6/drivers/video/fbmon.c linux-2.6.29.6/drivers/video/fbm | |||
20612 | #endif | 20249 | #endif |
20613 | 20250 | ||
20614 | #define FBMON_FIX_HEADER 1 | 20251 | #define FBMON_FIX_HEADER 1 |
20615 | diff -urNp linux-2.6.29.6/drivers/video/i810/i810_accel.c linux-2.6.29.6/drivers/video/i810/i810_accel.c | 20252 | diff -urNp linux-2.6.30.4/drivers/video/i810/i810_accel.c linux-2.6.30.4/drivers/video/i810/i810_accel.c |
20616 | --- linux-2.6.29.6/drivers/video/i810/i810_accel.c 2009-07-02 19:41:20.000000000 -0400 | 20253 | --- linux-2.6.30.4/drivers/video/i810/i810_accel.c 2009-07-24 17:47:51.000000000 -0400 |
20617 | +++ linux-2.6.29.6/drivers/video/i810/i810_accel.c 2009-07-23 17:34:32.140710667 -0400 | 20254 | +++ linux-2.6.30.4/drivers/video/i810/i810_accel.c 2009-07-30 09:48:10.063350135 -0400 |
20618 | @@ -73,6 +73,7 @@ static inline int wait_for_space(struct | 20255 | @@ -73,6 +73,7 @@ static inline int wait_for_space(struct |
20619 | } | 20256 | } |
20620 | } | 20257 | } |
@@ -20623,9 +20260,9 @@ diff -urNp linux-2.6.29.6/drivers/video/i810/i810_accel.c linux-2.6.29.6/drivers | |||
20623 | i810_report_error(mmio); | 20260 | i810_report_error(mmio); |
20624 | par->dev_flags |= LOCKUP; | 20261 | par->dev_flags |= LOCKUP; |
20625 | info->pixmap.scan_align = 1; | 20262 | info->pixmap.scan_align = 1; |
20626 | diff -urNp linux-2.6.29.6/drivers/video/i810/i810_main.c linux-2.6.29.6/drivers/video/i810/i810_main.c | 20263 | diff -urNp linux-2.6.30.4/drivers/video/i810/i810_main.c linux-2.6.30.4/drivers/video/i810/i810_main.c |
20627 | --- linux-2.6.29.6/drivers/video/i810/i810_main.c 2009-07-02 19:41:20.000000000 -0400 | 20264 | --- linux-2.6.30.4/drivers/video/i810/i810_main.c 2009-07-24 17:47:51.000000000 -0400 |
20628 | +++ linux-2.6.29.6/drivers/video/i810/i810_main.c 2009-07-23 17:34:32.141886076 -0400 | 20265 | +++ linux-2.6.30.4/drivers/video/i810/i810_main.c 2009-07-30 09:48:10.064300485 -0400 |
20629 | @@ -120,7 +120,7 @@ static struct pci_device_id i810fb_pci_t | 20266 | @@ -120,7 +120,7 @@ static struct pci_device_id i810fb_pci_t |
20630 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 }, | 20267 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 }, |
20631 | { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82815_CGC, | 20268 | { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82815_CGC, |
@@ -20635,9 +20272,9 @@ diff -urNp linux-2.6.29.6/drivers/video/i810/i810_main.c linux-2.6.29.6/drivers/ | |||
20635 | }; | 20272 | }; |
20636 | 20273 | ||
20637 | static struct pci_driver i810fb_driver = { | 20274 | static struct pci_driver i810fb_driver = { |
20638 | diff -urNp linux-2.6.29.6/drivers/video/modedb.c linux-2.6.29.6/drivers/video/modedb.c | 20275 | diff -urNp linux-2.6.30.4/drivers/video/modedb.c linux-2.6.30.4/drivers/video/modedb.c |
20639 | --- linux-2.6.29.6/drivers/video/modedb.c 2009-07-02 19:41:20.000000000 -0400 | 20276 | --- linux-2.6.30.4/drivers/video/modedb.c 2009-07-24 17:47:51.000000000 -0400 |
20640 | +++ linux-2.6.29.6/drivers/video/modedb.c 2009-07-23 17:34:32.141886076 -0400 | 20277 | +++ linux-2.6.30.4/drivers/video/modedb.c 2009-07-30 09:48:10.064300485 -0400 |
20641 | @@ -38,232 +38,232 @@ static const struct fb_videomode modedb[ | 20278 | @@ -38,232 +38,232 @@ static const struct fb_videomode modedb[ |
20642 | { | 20279 | { |
20643 | /* 640x400 @ 70 Hz, 31.5 kHz hsync */ | 20280 | /* 640x400 @ 70 Hz, 31.5 kHz hsync */ |
@@ -20928,10 +20565,10 @@ diff -urNp linux-2.6.29.6/drivers/video/modedb.c linux-2.6.29.6/drivers/video/mo | |||
20928 | }, | 20565 | }, |
20929 | }; | 20566 | }; |
20930 | 20567 | ||
20931 | diff -urNp linux-2.6.29.6/drivers/video/omap/dispc.c linux-2.6.29.6/drivers/video/omap/dispc.c | 20568 | diff -urNp linux-2.6.30.4/drivers/video/omap/dispc.c linux-2.6.30.4/drivers/video/omap/dispc.c |
20932 | --- linux-2.6.29.6/drivers/video/omap/dispc.c 2009-07-02 19:41:20.000000000 -0400 | 20569 | --- linux-2.6.30.4/drivers/video/omap/dispc.c 2009-07-24 17:47:51.000000000 -0400 |
20933 | +++ linux-2.6.29.6/drivers/video/omap/dispc.c 2009-07-23 18:40:28.146299850 -0400 | 20570 | +++ linux-2.6.30.4/drivers/video/omap/dispc.c 2009-07-30 09:48:10.065250322 -0400 |
20934 | @@ -1011,7 +1011,7 @@ static void mmap_user_close(struct vm_ar | 20571 | @@ -1013,7 +1013,7 @@ static void mmap_user_close(struct vm_ar |
20935 | atomic_dec(&dispc.map_count[plane]); | 20572 | atomic_dec(&dispc.map_count[plane]); |
20936 | } | 20573 | } |
20937 | 20574 | ||
@@ -20940,9 +20577,9 @@ diff -urNp linux-2.6.29.6/drivers/video/omap/dispc.c linux-2.6.29.6/drivers/vide | |||
20940 | .open = mmap_user_open, | 20577 | .open = mmap_user_open, |
20941 | .close = mmap_user_close, | 20578 | .close = mmap_user_close, |
20942 | }; | 20579 | }; |
20943 | diff -urNp linux-2.6.29.6/drivers/video/uvesafb.c linux-2.6.29.6/drivers/video/uvesafb.c | 20580 | diff -urNp linux-2.6.30.4/drivers/video/uvesafb.c linux-2.6.30.4/drivers/video/uvesafb.c |
20944 | --- linux-2.6.29.6/drivers/video/uvesafb.c 2009-07-02 19:41:20.000000000 -0400 | 20581 | --- linux-2.6.30.4/drivers/video/uvesafb.c 2009-07-24 17:47:51.000000000 -0400 |
20945 | +++ linux-2.6.29.6/drivers/video/uvesafb.c 2009-07-23 17:34:32.142789474 -0400 | 20582 | +++ linux-2.6.30.4/drivers/video/uvesafb.c 2009-07-30 09:48:10.065250322 -0400 |
20946 | @@ -18,6 +18,7 @@ | 20583 | @@ -18,6 +18,7 @@ |
20947 | #include <linux/fb.h> | 20584 | #include <linux/fb.h> |
20948 | #include <linux/io.h> | 20585 | #include <linux/io.h> |
@@ -20951,7 +20588,7 @@ diff -urNp linux-2.6.29.6/drivers/video/uvesafb.c linux-2.6.29.6/drivers/video/u | |||
20951 | #include <video/edid.h> | 20588 | #include <video/edid.h> |
20952 | #include <video/uvesafb.h> | 20589 | #include <video/uvesafb.h> |
20953 | #ifdef CONFIG_X86 | 20590 | #ifdef CONFIG_X86 |
20954 | @@ -117,7 +118,7 @@ static int uvesafb_helper_start(void) | 20591 | @@ -118,7 +119,7 @@ static int uvesafb_helper_start(void) |
20955 | NULL, | 20592 | NULL, |
20956 | }; | 20593 | }; |
20957 | 20594 | ||
@@ -20960,7 +20597,7 @@ diff -urNp linux-2.6.29.6/drivers/video/uvesafb.c linux-2.6.29.6/drivers/video/u | |||
20960 | } | 20597 | } |
20961 | 20598 | ||
20962 | /* | 20599 | /* |
20963 | @@ -574,10 +575,34 @@ static int __devinit uvesafb_vbe_getpmi( | 20600 | @@ -566,10 +567,34 @@ static int __devinit uvesafb_vbe_getpmi( |
20964 | if ((task->t.regs.eax & 0xffff) != 0x4f || task->t.regs.es < 0xc000) { | 20601 | if ((task->t.regs.eax & 0xffff) != 0x4f || task->t.regs.es < 0xc000) { |
20965 | par->pmi_setpal = par->ypan = 0; | 20602 | par->pmi_setpal = par->ypan = 0; |
20966 | } else { | 20603 | } else { |
@@ -20995,7 +20632,7 @@ diff -urNp linux-2.6.29.6/drivers/video/uvesafb.c linux-2.6.29.6/drivers/video/u | |||
20995 | printk(KERN_INFO "uvesafb: protected mode interface info at " | 20632 | printk(KERN_INFO "uvesafb: protected mode interface info at " |
20996 | "%04x:%04x\n", | 20633 | "%04x:%04x\n", |
20997 | (u16)task->t.regs.es, (u16)task->t.regs.edi); | 20634 | (u16)task->t.regs.es, (u16)task->t.regs.edi); |
20998 | @@ -1832,6 +1857,11 @@ out: | 20635 | @@ -1825,6 +1850,11 @@ out: |
20999 | if (par->vbe_modes) | 20636 | if (par->vbe_modes) |
21000 | kfree(par->vbe_modes); | 20637 | kfree(par->vbe_modes); |
21001 | 20638 | ||
@@ -21007,7 +20644,7 @@ diff -urNp linux-2.6.29.6/drivers/video/uvesafb.c linux-2.6.29.6/drivers/video/u | |||
21007 | framebuffer_release(info); | 20644 | framebuffer_release(info); |
21008 | return err; | 20645 | return err; |
21009 | } | 20646 | } |
21010 | @@ -1858,6 +1888,12 @@ static int uvesafb_remove(struct platfor | 20647 | @@ -1851,6 +1881,12 @@ static int uvesafb_remove(struct platfor |
21011 | kfree(par->vbe_state_orig); | 20648 | kfree(par->vbe_state_orig); |
21012 | if (par->vbe_state_saved) | 20649 | if (par->vbe_state_saved) |
21013 | kfree(par->vbe_state_saved); | 20650 | kfree(par->vbe_state_saved); |
@@ -21020,9 +20657,9 @@ diff -urNp linux-2.6.29.6/drivers/video/uvesafb.c linux-2.6.29.6/drivers/video/u | |||
21020 | } | 20657 | } |
21021 | 20658 | ||
21022 | framebuffer_release(info); | 20659 | framebuffer_release(info); |
21023 | diff -urNp linux-2.6.29.6/drivers/video/vesafb.c linux-2.6.29.6/drivers/video/vesafb.c | 20660 | diff -urNp linux-2.6.30.4/drivers/video/vesafb.c linux-2.6.30.4/drivers/video/vesafb.c |
21024 | --- linux-2.6.29.6/drivers/video/vesafb.c 2009-07-02 19:41:20.000000000 -0400 | 20661 | --- linux-2.6.30.4/drivers/video/vesafb.c 2009-07-24 17:47:51.000000000 -0400 |
21025 | +++ linux-2.6.29.6/drivers/video/vesafb.c 2009-07-23 17:34:32.142789474 -0400 | 20662 | +++ linux-2.6.30.4/drivers/video/vesafb.c 2009-07-30 09:48:10.066262821 -0400 |
21026 | @@ -9,6 +9,7 @@ | 20663 | @@ -9,6 +9,7 @@ |
21027 | */ | 20664 | */ |
21028 | 20665 | ||
@@ -21130,65 +20767,9 @@ diff -urNp linux-2.6.29.6/drivers/video/vesafb.c linux-2.6.29.6/drivers/video/ve | |||
21130 | if (info->screen_base) | 20767 | if (info->screen_base) |
21131 | iounmap(info->screen_base); | 20768 | iounmap(info->screen_base); |
21132 | framebuffer_release(info); | 20769 | framebuffer_release(info); |
21133 | diff -urNp linux-2.6.29.6/drivers/watchdog/hpwdt.c linux-2.6.29.6/drivers/watchdog/hpwdt.c | 20770 | diff -urNp linux-2.6.30.4/fs/9p/vfs_inode.c linux-2.6.30.4/fs/9p/vfs_inode.c |
21134 | --- linux-2.6.29.6/drivers/watchdog/hpwdt.c 2009-07-02 19:41:20.000000000 -0400 | 20771 | --- linux-2.6.30.4/fs/9p/vfs_inode.c 2009-07-24 17:47:51.000000000 -0400 |
21135 | +++ linux-2.6.29.6/drivers/watchdog/hpwdt.c 2009-07-23 18:40:28.157294684 -0400 | 20772 | +++ linux-2.6.30.4/fs/9p/vfs_inode.c 2009-07-30 09:48:10.066262821 -0400 |
21136 | @@ -605,7 +605,7 @@ static long hpwdt_ioctl(struct file *fil | ||
21137 | /* | ||
21138 | * Kernel interfaces | ||
21139 | */ | ||
21140 | -static struct file_operations hpwdt_fops = { | ||
21141 | +static const struct file_operations hpwdt_fops = { | ||
21142 | .owner = THIS_MODULE, | ||
21143 | .llseek = no_llseek, | ||
21144 | .write = hpwdt_write, | ||
21145 | diff -urNp linux-2.6.29.6/drivers/watchdog/rc32434_wdt.c linux-2.6.29.6/drivers/watchdog/rc32434_wdt.c | ||
21146 | --- linux-2.6.29.6/drivers/watchdog/rc32434_wdt.c 2009-07-02 19:41:20.000000000 -0400 | ||
21147 | +++ linux-2.6.29.6/drivers/watchdog/rc32434_wdt.c 2009-07-23 18:40:28.159486351 -0400 | ||
21148 | @@ -227,7 +227,7 @@ static long rc32434_wdt_ioctl(struct fil | ||
21149 | return 0; | ||
21150 | } | ||
21151 | |||
21152 | -static struct file_operations rc32434_wdt_fops = { | ||
21153 | +static const struct file_operations rc32434_wdt_fops = { | ||
21154 | .owner = THIS_MODULE, | ||
21155 | .llseek = no_llseek, | ||
21156 | .write = rc32434_wdt_write, | ||
21157 | diff -urNp linux-2.6.29.6/fs/9p/v9fs_vfs.h linux-2.6.29.6/fs/9p/v9fs_vfs.h | ||
21158 | --- linux-2.6.29.6/fs/9p/v9fs_vfs.h 2009-07-02 19:41:20.000000000 -0400 | ||
21159 | +++ linux-2.6.29.6/fs/9p/v9fs_vfs.h 2009-07-23 18:40:28.173305021 -0400 | ||
21160 | @@ -41,8 +41,8 @@ extern struct file_system_type v9fs_fs_t | ||
21161 | extern const struct address_space_operations v9fs_addr_operations; | ||
21162 | extern const struct file_operations v9fs_file_operations; | ||
21163 | extern const struct file_operations v9fs_dir_operations; | ||
21164 | -extern struct dentry_operations v9fs_dentry_operations; | ||
21165 | -extern struct dentry_operations v9fs_cached_dentry_operations; | ||
21166 | +extern const struct dentry_operations v9fs_dentry_operations; | ||
21167 | +extern const struct dentry_operations v9fs_cached_dentry_operations; | ||
21168 | |||
21169 | struct inode *v9fs_get_inode(struct super_block *sb, int mode); | ||
21170 | ino_t v9fs_qid2ino(struct p9_qid *qid); | ||
21171 | diff -urNp linux-2.6.29.6/fs/9p/vfs_dentry.c linux-2.6.29.6/fs/9p/vfs_dentry.c | ||
21172 | --- linux-2.6.29.6/fs/9p/vfs_dentry.c 2009-07-02 19:41:20.000000000 -0400 | ||
21173 | +++ linux-2.6.29.6/fs/9p/vfs_dentry.c 2009-07-23 18:40:28.185251831 -0400 | ||
21174 | @@ -104,12 +104,12 @@ void v9fs_dentry_release(struct dentry * | ||
21175 | } | ||
21176 | } | ||
21177 | |||
21178 | -struct dentry_operations v9fs_cached_dentry_operations = { | ||
21179 | +const struct dentry_operations v9fs_cached_dentry_operations = { | ||
21180 | .d_delete = v9fs_cached_dentry_delete, | ||
21181 | .d_release = v9fs_dentry_release, | ||
21182 | }; | ||
21183 | |||
21184 | -struct dentry_operations v9fs_dentry_operations = { | ||
21185 | +const struct dentry_operations v9fs_dentry_operations = { | ||
21186 | .d_delete = v9fs_dentry_delete, | ||
21187 | .d_release = v9fs_dentry_release, | ||
21188 | }; | ||
21189 | diff -urNp linux-2.6.29.6/fs/9p/vfs_inode.c linux-2.6.29.6/fs/9p/vfs_inode.c | ||
21190 | --- linux-2.6.29.6/fs/9p/vfs_inode.c 2009-07-02 19:41:20.000000000 -0400 | ||
21191 | +++ linux-2.6.29.6/fs/9p/vfs_inode.c 2009-07-23 17:34:32.142789474 -0400 | ||
21192 | @@ -1021,7 +1021,7 @@ static void *v9fs_vfs_follow_link(struct | 20773 | @@ -1021,7 +1021,7 @@ static void *v9fs_vfs_follow_link(struct |
21193 | static void | 20774 | static void |
21194 | v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p) | 20775 | v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p) |
@@ -21198,77 +20779,9 @@ diff -urNp linux-2.6.29.6/fs/9p/vfs_inode.c linux-2.6.29.6/fs/9p/vfs_inode.c | |||
21198 | 20779 | ||
21199 | P9_DPRINTK(P9_DEBUG_VFS, " %s %s\n", dentry->d_name.name, | 20780 | P9_DPRINTK(P9_DEBUG_VFS, " %s %s\n", dentry->d_name.name, |
21200 | IS_ERR(s) ? "<error>" : s); | 20781 | IS_ERR(s) ? "<error>" : s); |
21201 | diff -urNp linux-2.6.29.6/fs/adfs/adfs.h linux-2.6.29.6/fs/adfs/adfs.h | 20782 | diff -urNp linux-2.6.30.4/fs/afs/proc.c linux-2.6.30.4/fs/afs/proc.c |
21202 | --- linux-2.6.29.6/fs/adfs/adfs.h 2009-07-02 19:41:20.000000000 -0400 | 20783 | --- linux-2.6.30.4/fs/afs/proc.c 2009-07-24 17:47:51.000000000 -0400 |
21203 | +++ linux-2.6.29.6/fs/adfs/adfs.h 2009-07-23 18:40:28.197959261 -0400 | 20784 | +++ linux-2.6.30.4/fs/afs/proc.c 2009-07-30 09:48:10.066262821 -0400 |
21204 | @@ -86,7 +86,7 @@ void __adfs_error(struct super_block *sb | ||
21205 | /* dir_*.c */ | ||
21206 | extern const struct inode_operations adfs_dir_inode_operations; | ||
21207 | extern const struct file_operations adfs_dir_operations; | ||
21208 | -extern struct dentry_operations adfs_dentry_operations; | ||
21209 | +extern const struct dentry_operations adfs_dentry_operations; | ||
21210 | extern struct adfs_dir_ops adfs_f_dir_ops; | ||
21211 | extern struct adfs_dir_ops adfs_fplus_dir_ops; | ||
21212 | |||
21213 | diff -urNp linux-2.6.29.6/fs/adfs/dir.c linux-2.6.29.6/fs/adfs/dir.c | ||
21214 | --- linux-2.6.29.6/fs/adfs/dir.c 2009-07-02 19:41:20.000000000 -0400 | ||
21215 | +++ linux-2.6.29.6/fs/adfs/dir.c 2009-07-23 18:40:28.198372454 -0400 | ||
21216 | @@ -263,7 +263,7 @@ adfs_compare(struct dentry *parent, stru | ||
21217 | return 0; | ||
21218 | } | ||
21219 | |||
21220 | -struct dentry_operations adfs_dentry_operations = { | ||
21221 | +const struct dentry_operations adfs_dentry_operations = { | ||
21222 | .d_hash = adfs_hash, | ||
21223 | .d_compare = adfs_compare, | ||
21224 | }; | ||
21225 | diff -urNp linux-2.6.29.6/fs/affs/affs.h linux-2.6.29.6/fs/affs/affs.h | ||
21226 | --- linux-2.6.29.6/fs/affs/affs.h 2009-07-02 19:41:20.000000000 -0400 | ||
21227 | +++ linux-2.6.29.6/fs/affs/affs.h 2009-07-23 18:40:28.203573277 -0400 | ||
21228 | @@ -199,8 +199,8 @@ extern const struct address_space_operat | ||
21229 | extern const struct address_space_operations affs_aops; | ||
21230 | extern const struct address_space_operations affs_aops_ofs; | ||
21231 | |||
21232 | -extern struct dentry_operations affs_dentry_operations; | ||
21233 | -extern struct dentry_operations affs_dentry_operations_intl; | ||
21234 | +extern const struct dentry_operations affs_dentry_operations; | ||
21235 | +extern const struct dentry_operations affs_dentry_operations_intl; | ||
21236 | |||
21237 | static inline void | ||
21238 | affs_set_blocksize(struct super_block *sb, int size) | ||
21239 | diff -urNp linux-2.6.29.6/fs/affs/namei.c linux-2.6.29.6/fs/affs/namei.c | ||
21240 | --- linux-2.6.29.6/fs/affs/namei.c 2009-07-02 19:41:20.000000000 -0400 | ||
21241 | +++ linux-2.6.29.6/fs/affs/namei.c 2009-07-23 18:40:28.222351680 -0400 | ||
21242 | @@ -19,12 +19,12 @@ static int affs_intl_toupper(int ch); | ||
21243 | static int affs_intl_hash_dentry(struct dentry *, struct qstr *); | ||
21244 | static int affs_intl_compare_dentry(struct dentry *, struct qstr *, struct qstr *); | ||
21245 | |||
21246 | -struct dentry_operations affs_dentry_operations = { | ||
21247 | +const struct dentry_operations affs_dentry_operations = { | ||
21248 | .d_hash = affs_hash_dentry, | ||
21249 | .d_compare = affs_compare_dentry, | ||
21250 | }; | ||
21251 | |||
21252 | -static struct dentry_operations affs_intl_dentry_operations = { | ||
21253 | +static const struct dentry_operations affs_intl_dentry_operations = { | ||
21254 | .d_hash = affs_intl_hash_dentry, | ||
21255 | .d_compare = affs_intl_compare_dentry, | ||
21256 | }; | ||
21257 | diff -urNp linux-2.6.29.6/fs/afs/dir.c linux-2.6.29.6/fs/afs/dir.c | ||
21258 | --- linux-2.6.29.6/fs/afs/dir.c 2009-07-02 19:41:20.000000000 -0400 | ||
21259 | +++ linux-2.6.29.6/fs/afs/dir.c 2009-07-23 18:40:28.235494421 -0400 | ||
21260 | @@ -62,7 +62,7 @@ const struct inode_operations afs_dir_in | ||
21261 | .setattr = afs_setattr, | ||
21262 | }; | ||
21263 | |||
21264 | -static struct dentry_operations afs_fs_dentry_operations = { | ||
21265 | +static const struct dentry_operations afs_fs_dentry_operations = { | ||
21266 | .d_revalidate = afs_d_revalidate, | ||
21267 | .d_delete = afs_d_delete, | ||
21268 | .d_release = afs_d_release, | ||
21269 | diff -urNp linux-2.6.29.6/fs/afs/proc.c linux-2.6.29.6/fs/afs/proc.c | ||
21270 | --- linux-2.6.29.6/fs/afs/proc.c 2009-07-02 19:41:20.000000000 -0400 | ||
21271 | +++ linux-2.6.29.6/fs/afs/proc.c 2009-07-23 18:40:28.235494421 -0400 | ||
21272 | @@ -28,7 +28,7 @@ static int afs_proc_cells_show(struct se | 20785 | @@ -28,7 +28,7 @@ static int afs_proc_cells_show(struct se |
21273 | static ssize_t afs_proc_cells_write(struct file *file, const char __user *buf, | 20786 | static ssize_t afs_proc_cells_write(struct file *file, const char __user *buf, |
21274 | size_t size, loff_t *_pos); | 20787 | size_t size, loff_t *_pos); |
@@ -21305,9 +20818,9 @@ diff -urNp linux-2.6.29.6/fs/afs/proc.c linux-2.6.29.6/fs/afs/proc.c | |||
21305 | .start = afs_proc_cell_servers_start, | 20818 | .start = afs_proc_cell_servers_start, |
21306 | .next = afs_proc_cell_servers_next, | 20819 | .next = afs_proc_cell_servers_next, |
21307 | .stop = afs_proc_cell_servers_stop, | 20820 | .stop = afs_proc_cell_servers_stop, |
21308 | diff -urNp linux-2.6.29.6/fs/aio.c linux-2.6.29.6/fs/aio.c | 20821 | diff -urNp linux-2.6.30.4/fs/aio.c linux-2.6.30.4/fs/aio.c |
21309 | --- linux-2.6.29.6/fs/aio.c 2009-07-02 19:41:20.000000000 -0400 | 20822 | --- linux-2.6.30.4/fs/aio.c 2009-07-24 17:47:51.000000000 -0400 |
21310 | +++ linux-2.6.29.6/fs/aio.c 2009-07-23 17:34:32.143911823 -0400 | 20823 | +++ linux-2.6.30.4/fs/aio.c 2009-07-30 09:48:10.067233652 -0400 |
21311 | @@ -114,7 +114,7 @@ static int aio_setup_ring(struct kioctx | 20824 | @@ -114,7 +114,7 @@ static int aio_setup_ring(struct kioctx |
21312 | size += sizeof(struct io_event) * nr_events; | 20825 | size += sizeof(struct io_event) * nr_events; |
21313 | nr_pages = (size + PAGE_SIZE-1) >> PAGE_SHIFT; | 20826 | nr_pages = (size + PAGE_SIZE-1) >> PAGE_SHIFT; |
@@ -21317,74 +20830,22 @@ diff -urNp linux-2.6.29.6/fs/aio.c linux-2.6.29.6/fs/aio.c | |||
21317 | return -EINVAL; | 20830 | return -EINVAL; |
21318 | 20831 | ||
21319 | nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) / sizeof(struct io_event); | 20832 | nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) / sizeof(struct io_event); |
21320 | diff -urNp linux-2.6.29.6/fs/anon_inodes.c linux-2.6.29.6/fs/anon_inodes.c | 20833 | diff -urNp linux-2.6.30.4/fs/autofs/root.c linux-2.6.30.4/fs/autofs/root.c |
21321 | --- linux-2.6.29.6/fs/anon_inodes.c 2009-07-02 19:41:20.000000000 -0400 | 20834 | --- linux-2.6.30.4/fs/autofs/root.c 2009-07-24 17:47:51.000000000 -0400 |
21322 | +++ linux-2.6.29.6/fs/anon_inodes.c 2009-07-23 18:40:28.246761754 -0400 | 20835 | +++ linux-2.6.30.4/fs/autofs/root.c 2009-07-30 09:48:10.067811135 -0400 |
21323 | @@ -48,7 +48,7 @@ static struct file_system_type anon_inod | ||
21324 | .get_sb = anon_inodefs_get_sb, | ||
21325 | .kill_sb = kill_anon_super, | ||
21326 | }; | ||
21327 | -static struct dentry_operations anon_inodefs_dentry_operations = { | ||
21328 | +static const struct dentry_operations anon_inodefs_dentry_operations = { | ||
21329 | .d_delete = anon_inodefs_delete_dentry, | ||
21330 | }; | ||
21331 | |||
21332 | diff -urNp linux-2.6.29.6/fs/autofs/root.c linux-2.6.29.6/fs/autofs/root.c | ||
21333 | --- linux-2.6.29.6/fs/autofs/root.c 2009-07-02 19:41:20.000000000 -0400 | ||
21334 | +++ linux-2.6.29.6/fs/autofs/root.c 2009-07-23 18:40:27.469277997 -0400 | ||
21335 | @@ -192,7 +192,7 @@ static int autofs_revalidate(struct dent | ||
21336 | return 1; | ||
21337 | } | ||
21338 | |||
21339 | -static struct dentry_operations autofs_dentry_operations = { | ||
21340 | +static const struct dentry_operations autofs_dentry_operations = { | ||
21341 | .d_revalidate = autofs_revalidate, | ||
21342 | }; | ||
21343 | |||
21344 | @@ -299,7 +299,8 @@ static int autofs_root_symlink(struct in | 20836 | @@ -299,7 +299,8 @@ static int autofs_root_symlink(struct in |
21345 | set_bit(n,sbi->symlink_bitmap); | 20837 | set_bit(n,sbi->symlink_bitmap); |
21346 | sl = &sbi->symlink[n]; | 20838 | sl = &sbi->symlink[n]; |
21347 | sl->len = strlen(symname); | 20839 | sl->len = strlen(symname); |
21348 | - sl->data = kmalloc(slsize = sl->len+1, GFP_KERNEL); | 20840 | - sl->data = kmalloc(slsize = sl->len+1, GFP_KERNEL); |
21349 | + slsize = sl->len + 1; | 20841 | + slsize = sl->len+1; |
21350 | + sl->data = kmalloc(slsize, GFP_KERNEL); | 20842 | + sl->data = kmalloc(slsize, GFP_KERNEL); |
21351 | if (!sl->data) { | 20843 | if (!sl->data) { |
21352 | clear_bit(n,sbi->symlink_bitmap); | 20844 | clear_bit(n,sbi->symlink_bitmap); |
21353 | unlock_kernel(); | 20845 | unlock_kernel(); |
21354 | diff -urNp linux-2.6.29.6/fs/autofs4/inode.c linux-2.6.29.6/fs/autofs4/inode.c | 20846 | diff -urNp linux-2.6.30.4/fs/autofs4/symlink.c linux-2.6.30.4/fs/autofs4/symlink.c |
21355 | --- linux-2.6.29.6/fs/autofs4/inode.c 2009-07-02 19:41:20.000000000 -0400 | 20847 | --- linux-2.6.30.4/fs/autofs4/symlink.c 2009-07-24 17:47:51.000000000 -0400 |
21356 | +++ linux-2.6.29.6/fs/autofs4/inode.c 2009-07-23 18:40:28.247289762 -0400 | 20848 | +++ linux-2.6.30.4/fs/autofs4/symlink.c 2009-07-30 09:48:10.067811135 -0400 |
21357 | @@ -310,7 +310,7 @@ static struct autofs_info *autofs4_mkroo | ||
21358 | return ino; | ||
21359 | } | ||
21360 | |||
21361 | -static struct dentry_operations autofs4_sb_dentry_operations = { | ||
21362 | +static const struct dentry_operations autofs4_sb_dentry_operations = { | ||
21363 | .d_release = autofs4_dentry_release, | ||
21364 | }; | ||
21365 | |||
21366 | diff -urNp linux-2.6.29.6/fs/autofs4/root.c linux-2.6.29.6/fs/autofs4/root.c | ||
21367 | --- linux-2.6.29.6/fs/autofs4/root.c 2009-07-02 19:41:20.000000000 -0400 | ||
21368 | +++ linux-2.6.29.6/fs/autofs4/root.c 2009-07-23 18:40:28.260399846 -0400 | ||
21369 | @@ -349,13 +349,13 @@ void autofs4_dentry_release(struct dentr | ||
21370 | } | ||
21371 | |||
21372 | /* For dentries of directories in the root dir */ | ||
21373 | -static struct dentry_operations autofs4_root_dentry_operations = { | ||
21374 | +static const struct dentry_operations autofs4_root_dentry_operations = { | ||
21375 | .d_revalidate = autofs4_revalidate, | ||
21376 | .d_release = autofs4_dentry_release, | ||
21377 | }; | ||
21378 | |||
21379 | /* For other dentries */ | ||
21380 | -static struct dentry_operations autofs4_dentry_operations = { | ||
21381 | +static const struct dentry_operations autofs4_dentry_operations = { | ||
21382 | .d_revalidate = autofs4_revalidate, | ||
21383 | .d_release = autofs4_dentry_release, | ||
21384 | }; | ||
21385 | diff -urNp linux-2.6.29.6/fs/autofs4/symlink.c linux-2.6.29.6/fs/autofs4/symlink.c | ||
21386 | --- linux-2.6.29.6/fs/autofs4/symlink.c 2009-07-02 19:41:20.000000000 -0400 | ||
21387 | +++ linux-2.6.29.6/fs/autofs4/symlink.c 2009-07-23 17:34:32.143911823 -0400 | ||
21388 | @@ -15,7 +15,7 @@ | 20849 | @@ -15,7 +15,7 @@ |
21389 | static void *autofs4_follow_link(struct dentry *dentry, struct nameidata *nd) | 20850 | static void *autofs4_follow_link(struct dentry *dentry, struct nameidata *nd) |
21390 | { | 20851 | { |
@@ -21394,9 +20855,9 @@ diff -urNp linux-2.6.29.6/fs/autofs4/symlink.c linux-2.6.29.6/fs/autofs4/symlink | |||
21394 | return NULL; | 20855 | return NULL; |
21395 | } | 20856 | } |
21396 | 20857 | ||
21397 | diff -urNp linux-2.6.29.6/fs/befs/linuxvfs.c linux-2.6.29.6/fs/befs/linuxvfs.c | 20858 | diff -urNp linux-2.6.30.4/fs/befs/linuxvfs.c linux-2.6.30.4/fs/befs/linuxvfs.c |
21398 | --- linux-2.6.29.6/fs/befs/linuxvfs.c 2009-07-02 19:41:20.000000000 -0400 | 20859 | --- linux-2.6.30.4/fs/befs/linuxvfs.c 2009-07-24 17:47:51.000000000 -0400 |
21399 | +++ linux-2.6.29.6/fs/befs/linuxvfs.c 2009-07-23 17:34:32.144798896 -0400 | 20860 | +++ linux-2.6.30.4/fs/befs/linuxvfs.c 2009-07-30 09:48:10.067811135 -0400 |
21400 | @@ -493,7 +493,7 @@ static void befs_put_link(struct dentry | 20861 | @@ -493,7 +493,7 @@ static void befs_put_link(struct dentry |
21401 | { | 20862 | { |
21402 | befs_inode_info *befs_ino = BEFS_I(dentry->d_inode); | 20863 | befs_inode_info *befs_ino = BEFS_I(dentry->d_inode); |
@@ -21406,9 +20867,9 @@ diff -urNp linux-2.6.29.6/fs/befs/linuxvfs.c linux-2.6.29.6/fs/befs/linuxvfs.c | |||
21406 | if (!IS_ERR(link)) | 20867 | if (!IS_ERR(link)) |
21407 | kfree(link); | 20868 | kfree(link); |
21408 | } | 20869 | } |
21409 | diff -urNp linux-2.6.29.6/fs/binfmt_aout.c linux-2.6.29.6/fs/binfmt_aout.c | 20870 | diff -urNp linux-2.6.30.4/fs/binfmt_aout.c linux-2.6.30.4/fs/binfmt_aout.c |
21410 | --- linux-2.6.29.6/fs/binfmt_aout.c 2009-07-02 19:41:20.000000000 -0400 | 20871 | --- linux-2.6.30.4/fs/binfmt_aout.c 2009-07-24 17:47:51.000000000 -0400 |
21411 | +++ linux-2.6.29.6/fs/binfmt_aout.c 2009-07-23 17:34:32.144798896 -0400 | 20872 | +++ linux-2.6.30.4/fs/binfmt_aout.c 2009-07-30 11:10:49.111321779 -0400 |
21412 | @@ -16,6 +16,7 @@ | 20873 | @@ -16,6 +16,7 @@ |
21413 | #include <linux/string.h> | 20874 | #include <linux/string.h> |
21414 | #include <linux/fs.h> | 20875 | #include <linux/fs.h> |
@@ -21476,10 +20937,10 @@ diff -urNp linux-2.6.29.6/fs/binfmt_aout.c linux-2.6.29.6/fs/binfmt_aout.c | |||
21476 | MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE | MAP_EXECUTABLE, | 20937 | MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE | MAP_EXECUTABLE, |
21477 | fd_offset + ex.a_text); | 20938 | fd_offset + ex.a_text); |
21478 | up_write(¤t->mm->mmap_sem); | 20939 | up_write(¤t->mm->mmap_sem); |
21479 | diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | 20940 | diff -urNp linux-2.6.30.4/fs/binfmt_elf.c linux-2.6.30.4/fs/binfmt_elf.c |
21480 | --- linux-2.6.29.6/fs/binfmt_elf.c 2009-07-02 19:41:20.000000000 -0400 | 20941 | --- linux-2.6.30.4/fs/binfmt_elf.c 2009-07-30 20:32:40.526845645 -0400 |
21481 | +++ linux-2.6.29.6/fs/binfmt_elf.c 2009-07-23 17:34:32.146933187 -0400 | 20942 | +++ linux-2.6.30.4/fs/binfmt_elf.c 2009-07-30 20:32:47.974595765 -0400 |
21482 | @@ -42,6 +42,10 @@ | 20943 | @@ -35,6 +35,10 @@ |
21483 | #include <asm/param.h> | 20944 | #include <asm/param.h> |
21484 | #include <asm/page.h> | 20945 | #include <asm/page.h> |
21485 | 20946 | ||
@@ -21490,7 +20951,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21490 | static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs); | 20951 | static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs); |
21491 | static int load_elf_library(struct file *); | 20952 | static int load_elf_library(struct file *); |
21492 | static unsigned long elf_map(struct file *, unsigned long, struct elf_phdr *, | 20953 | static unsigned long elf_map(struct file *, unsigned long, struct elf_phdr *, |
21493 | @@ -57,6 +61,10 @@ static int elf_core_dump(long signr, str | 20954 | @@ -50,6 +54,10 @@ static int elf_core_dump(long signr, str |
21494 | #define elf_core_dump NULL | 20955 | #define elf_core_dump NULL |
21495 | #endif | 20956 | #endif |
21496 | 20957 | ||
@@ -21501,7 +20962,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21501 | #if ELF_EXEC_PAGESIZE > PAGE_SIZE | 20962 | #if ELF_EXEC_PAGESIZE > PAGE_SIZE |
21502 | #define ELF_MIN_ALIGN ELF_EXEC_PAGESIZE | 20963 | #define ELF_MIN_ALIGN ELF_EXEC_PAGESIZE |
21503 | #else | 20964 | #else |
21504 | @@ -76,6 +84,11 @@ static struct linux_binfmt elf_format = | 20965 | @@ -69,6 +77,11 @@ static struct linux_binfmt elf_format = |
21505 | .load_binary = load_elf_binary, | 20966 | .load_binary = load_elf_binary, |
21506 | .load_shlib = load_elf_library, | 20967 | .load_shlib = load_elf_library, |
21507 | .core_dump = elf_core_dump, | 20968 | .core_dump = elf_core_dump, |
@@ -21513,7 +20974,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21513 | .min_coredump = ELF_EXEC_PAGESIZE, | 20974 | .min_coredump = ELF_EXEC_PAGESIZE, |
21514 | .hasvdso = 1 | 20975 | .hasvdso = 1 |
21515 | }; | 20976 | }; |
21516 | @@ -84,6 +97,8 @@ static struct linux_binfmt elf_format = | 20977 | @@ -77,6 +90,8 @@ static struct linux_binfmt elf_format = |
21517 | 20978 | ||
21518 | static int set_brk(unsigned long start, unsigned long end) | 20979 | static int set_brk(unsigned long start, unsigned long end) |
21519 | { | 20980 | { |
@@ -21522,7 +20983,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21522 | start = ELF_PAGEALIGN(start); | 20983 | start = ELF_PAGEALIGN(start); |
21523 | end = ELF_PAGEALIGN(end); | 20984 | end = ELF_PAGEALIGN(end); |
21524 | if (end > start) { | 20985 | if (end > start) { |
21525 | @@ -94,7 +109,7 @@ static int set_brk(unsigned long start, | 20986 | @@ -87,7 +102,7 @@ static int set_brk(unsigned long start, |
21526 | if (BAD_ADDR(addr)) | 20987 | if (BAD_ADDR(addr)) |
21527 | return addr; | 20988 | return addr; |
21528 | } | 20989 | } |
@@ -21531,7 +20992,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21531 | return 0; | 20992 | return 0; |
21532 | } | 20993 | } |
21533 | 20994 | ||
21534 | @@ -155,7 +170,7 @@ create_elf_tables(struct linux_binprm *b | 20995 | @@ -148,7 +163,7 @@ create_elf_tables(struct linux_binprm *b |
21535 | elf_addr_t __user *u_rand_bytes; | 20996 | elf_addr_t __user *u_rand_bytes; |
21536 | const char *k_platform = ELF_PLATFORM; | 20997 | const char *k_platform = ELF_PLATFORM; |
21537 | const char *k_base_platform = ELF_BASE_PLATFORM; | 20998 | const char *k_base_platform = ELF_BASE_PLATFORM; |
@@ -21540,7 +21001,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21540 | int items; | 21001 | int items; |
21541 | elf_addr_t *elf_info; | 21002 | elf_addr_t *elf_info; |
21542 | int ei_index = 0; | 21003 | int ei_index = 0; |
21543 | @@ -202,6 +217,10 @@ create_elf_tables(struct linux_binprm *b | 21004 | @@ -195,6 +210,10 @@ create_elf_tables(struct linux_binprm *b |
21544 | * Generate 16 random bytes for userspace PRNG seeding. | 21005 | * Generate 16 random bytes for userspace PRNG seeding. |
21545 | */ | 21006 | */ |
21546 | get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes)); | 21007 | get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes)); |
@@ -21551,7 +21012,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21551 | u_rand_bytes = (elf_addr_t __user *) | 21012 | u_rand_bytes = (elf_addr_t __user *) |
21552 | STACK_ALLOC(p, sizeof(k_rand_bytes)); | 21013 | STACK_ALLOC(p, sizeof(k_rand_bytes)); |
21553 | if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes))) | 21014 | if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes))) |
21554 | @@ -392,10 +411,10 @@ static unsigned long load_elf_interp(str | 21015 | @@ -385,10 +404,10 @@ static unsigned long load_elf_interp(str |
21555 | { | 21016 | { |
21556 | struct elf_phdr *elf_phdata; | 21017 | struct elf_phdr *elf_phdata; |
21557 | struct elf_phdr *eppnt; | 21018 | struct elf_phdr *eppnt; |
@@ -21564,7 +21025,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21564 | unsigned long total_size; | 21025 | unsigned long total_size; |
21565 | int retval, i, size; | 21026 | int retval, i, size; |
21566 | 21027 | ||
21567 | @@ -441,6 +460,11 @@ static unsigned long load_elf_interp(str | 21028 | @@ -434,6 +453,11 @@ static unsigned long load_elf_interp(str |
21568 | goto out_close; | 21029 | goto out_close; |
21569 | } | 21030 | } |
21570 | 21031 | ||
@@ -21576,7 +21037,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21576 | eppnt = elf_phdata; | 21037 | eppnt = elf_phdata; |
21577 | for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) { | 21038 | for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) { |
21578 | if (eppnt->p_type == PT_LOAD) { | 21039 | if (eppnt->p_type == PT_LOAD) { |
21579 | @@ -484,8 +508,8 @@ static unsigned long load_elf_interp(str | 21040 | @@ -477,8 +501,8 @@ static unsigned long load_elf_interp(str |
21580 | k = load_addr + eppnt->p_vaddr; | 21041 | k = load_addr + eppnt->p_vaddr; |
21581 | if (BAD_ADDR(k) || | 21042 | if (BAD_ADDR(k) || |
21582 | eppnt->p_filesz > eppnt->p_memsz || | 21043 | eppnt->p_filesz > eppnt->p_memsz || |
@@ -21587,7 +21048,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21587 | error = -ENOMEM; | 21048 | error = -ENOMEM; |
21588 | goto out_close; | 21049 | goto out_close; |
21589 | } | 21050 | } |
21590 | @@ -539,6 +563,177 @@ out: | 21051 | @@ -532,6 +556,177 @@ out: |
21591 | return error; | 21052 | return error; |
21592 | } | 21053 | } |
21593 | 21054 | ||
@@ -21765,7 +21226,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21765 | /* | 21226 | /* |
21766 | * These are the functions used to load ELF style executables and shared | 21227 | * These are the functions used to load ELF style executables and shared |
21767 | * libraries. There is no binary dependent code anywhere else. | 21228 | * libraries. There is no binary dependent code anywhere else. |
21768 | @@ -555,6 +750,11 @@ static unsigned long randomize_stack_top | 21229 | @@ -548,6 +743,11 @@ static unsigned long randomize_stack_top |
21769 | { | 21230 | { |
21770 | unsigned int random_variable = 0; | 21231 | unsigned int random_variable = 0; |
21771 | 21232 | ||
@@ -21777,7 +21238,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21777 | if ((current->flags & PF_RANDOMIZE) && | 21238 | if ((current->flags & PF_RANDOMIZE) && |
21778 | !(current->personality & ADDR_NO_RANDOMIZE)) { | 21239 | !(current->personality & ADDR_NO_RANDOMIZE)) { |
21779 | random_variable = get_random_int() & STACK_RND_MASK; | 21240 | random_variable = get_random_int() & STACK_RND_MASK; |
21780 | @@ -573,7 +773,7 @@ static int load_elf_binary(struct linux_ | 21241 | @@ -566,7 +766,7 @@ static int load_elf_binary(struct linux_ |
21781 | unsigned long load_addr = 0, load_bias = 0; | 21242 | unsigned long load_addr = 0, load_bias = 0; |
21782 | int load_addr_set = 0; | 21243 | int load_addr_set = 0; |
21783 | char * elf_interpreter = NULL; | 21244 | char * elf_interpreter = NULL; |
@@ -21785,8 +21246,8 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21785 | + unsigned long error = 0; | 21246 | + unsigned long error = 0; |
21786 | struct elf_phdr *elf_ppnt, *elf_phdata; | 21247 | struct elf_phdr *elf_ppnt, *elf_phdata; |
21787 | unsigned long elf_bss, elf_brk; | 21248 | unsigned long elf_bss, elf_brk; |
21788 | int elf_exec_fileno; | 21249 | int retval, i; |
21789 | @@ -584,11 +784,11 @@ static int load_elf_binary(struct linux_ | 21250 | @@ -576,11 +776,11 @@ static int load_elf_binary(struct linux_ |
21790 | unsigned long start_code, end_code, start_data, end_data; | 21251 | unsigned long start_code, end_code, start_data, end_data; |
21791 | unsigned long reloc_func_desc = 0; | 21252 | unsigned long reloc_func_desc = 0; |
21792 | int executable_stack = EXSTACK_DEFAULT; | 21253 | int executable_stack = EXSTACK_DEFAULT; |
@@ -21799,7 +21260,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21799 | 21260 | ||
21800 | loc = kmalloc(sizeof(*loc), GFP_KERNEL); | 21261 | loc = kmalloc(sizeof(*loc), GFP_KERNEL); |
21801 | if (!loc) { | 21262 | if (!loc) { |
21802 | @@ -756,11 +956,80 @@ static int load_elf_binary(struct linux_ | 21263 | @@ -742,11 +942,80 @@ static int load_elf_binary(struct linux_ |
21803 | 21264 | ||
21804 | /* OK, This is the point of no return */ | 21265 | /* OK, This is the point of no return */ |
21805 | current->flags &= ~PF_FORKNOEXEC; | 21266 | current->flags &= ~PF_FORKNOEXEC; |
@@ -21881,7 +21342,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21881 | if (elf_read_implies_exec(loc->elf_ex, executable_stack)) | 21342 | if (elf_read_implies_exec(loc->elf_ex, executable_stack)) |
21882 | current->personality |= READ_IMPLIES_EXEC; | 21343 | current->personality |= READ_IMPLIES_EXEC; |
21883 | 21344 | ||
21884 | @@ -841,6 +1110,20 @@ static int load_elf_binary(struct linux_ | 21345 | @@ -827,6 +1096,20 @@ static int load_elf_binary(struct linux_ |
21885 | #else | 21346 | #else |
21886 | load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr); | 21347 | load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr); |
21887 | #endif | 21348 | #endif |
@@ -21902,7 +21363,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21902 | } | 21363 | } |
21903 | 21364 | ||
21904 | error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt, | 21365 | error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt, |
21905 | @@ -873,9 +1156,9 @@ static int load_elf_binary(struct linux_ | 21366 | @@ -859,9 +1142,9 @@ static int load_elf_binary(struct linux_ |
21906 | * allowed task size. Note that p_filesz must always be | 21367 | * allowed task size. Note that p_filesz must always be |
21907 | * <= p_memsz so it is only necessary to check p_memsz. | 21368 | * <= p_memsz so it is only necessary to check p_memsz. |
21908 | */ | 21369 | */ |
@@ -21915,7 +21376,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21915 | /* set_brk can never work. Avoid overflows. */ | 21376 | /* set_brk can never work. Avoid overflows. */ |
21916 | send_sig(SIGKILL, current, 0); | 21377 | send_sig(SIGKILL, current, 0); |
21917 | retval = -EINVAL; | 21378 | retval = -EINVAL; |
21918 | @@ -903,6 +1186,11 @@ static int load_elf_binary(struct linux_ | 21379 | @@ -889,6 +1172,11 @@ static int load_elf_binary(struct linux_ |
21919 | start_data += load_bias; | 21380 | start_data += load_bias; |
21920 | end_data += load_bias; | 21381 | end_data += load_bias; |
21921 | 21382 | ||
@@ -21927,7 +21388,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21927 | /* Calling set_brk effectively mmaps the pages that we need | 21388 | /* Calling set_brk effectively mmaps the pages that we need |
21928 | * for the bss and break sections. We must do this before | 21389 | * for the bss and break sections. We must do this before |
21929 | * mapping in the interpreter, to make sure it doesn't wind | 21390 | * mapping in the interpreter, to make sure it doesn't wind |
21930 | @@ -914,9 +1202,11 @@ static int load_elf_binary(struct linux_ | 21391 | @@ -900,9 +1188,11 @@ static int load_elf_binary(struct linux_ |
21931 | goto out_free_dentry; | 21392 | goto out_free_dentry; |
21932 | } | 21393 | } |
21933 | if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) { | 21394 | if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) { |
@@ -21942,7 +21403,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21942 | } | 21403 | } |
21943 | 21404 | ||
21944 | if (elf_interpreter) { | 21405 | if (elf_interpreter) { |
21945 | @@ -1153,8 +1443,10 @@ static int dump_seek(struct file *file, | 21406 | @@ -1135,8 +1425,10 @@ static int dump_seek(struct file *file, |
21946 | unsigned long n = off; | 21407 | unsigned long n = off; |
21947 | if (n > PAGE_SIZE) | 21408 | if (n > PAGE_SIZE) |
21948 | n = PAGE_SIZE; | 21409 | n = PAGE_SIZE; |
@@ -21954,7 +21415,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21954 | off -= n; | 21415 | off -= n; |
21955 | } | 21416 | } |
21956 | free_page((unsigned long)buf); | 21417 | free_page((unsigned long)buf); |
21957 | @@ -1166,7 +1458,7 @@ static int dump_seek(struct file *file, | 21418 | @@ -1148,7 +1440,7 @@ static int dump_seek(struct file *file, |
21958 | * Decide what to dump of a segment, part, all or none. | 21419 | * Decide what to dump of a segment, part, all or none. |
21959 | */ | 21420 | */ |
21960 | static unsigned long vma_dump_size(struct vm_area_struct *vma, | 21421 | static unsigned long vma_dump_size(struct vm_area_struct *vma, |
@@ -21963,7 +21424,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21963 | { | 21424 | { |
21964 | #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type)) | 21425 | #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type)) |
21965 | 21426 | ||
21966 | @@ -1200,7 +1492,7 @@ static unsigned long vma_dump_size(struc | 21427 | @@ -1182,7 +1474,7 @@ static unsigned long vma_dump_size(struc |
21967 | if (vma->vm_file == NULL) | 21428 | if (vma->vm_file == NULL) |
21968 | return 0; | 21429 | return 0; |
21969 | 21430 | ||
@@ -21972,7 +21433,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21972 | goto whole; | 21433 | goto whole; |
21973 | 21434 | ||
21974 | /* | 21435 | /* |
21975 | @@ -1296,8 +1588,11 @@ static int writenote(struct memelfnote * | 21436 | @@ -1278,8 +1570,11 @@ static int writenote(struct memelfnote * |
21976 | #undef DUMP_WRITE | 21437 | #undef DUMP_WRITE |
21977 | 21438 | ||
21978 | #define DUMP_WRITE(addr, nr) \ | 21439 | #define DUMP_WRITE(addr, nr) \ |
@@ -21985,7 +21446,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21985 | #define DUMP_SEEK(off) \ | 21446 | #define DUMP_SEEK(off) \ |
21986 | if (!dump_seek(file, (off))) \ | 21447 | if (!dump_seek(file, (off))) \ |
21987 | goto end_coredump; | 21448 | goto end_coredump; |
21988 | @@ -2002,7 +2297,7 @@ static int elf_core_dump(long signr, str | 21449 | @@ -1984,7 +2279,7 @@ static int elf_core_dump(long signr, str |
21989 | phdr.p_offset = offset; | 21450 | phdr.p_offset = offset; |
21990 | phdr.p_vaddr = vma->vm_start; | 21451 | phdr.p_vaddr = vma->vm_start; |
21991 | phdr.p_paddr = 0; | 21452 | phdr.p_paddr = 0; |
@@ -21994,7 +21455,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
21994 | phdr.p_memsz = vma->vm_end - vma->vm_start; | 21455 | phdr.p_memsz = vma->vm_end - vma->vm_start; |
21995 | offset += phdr.p_filesz; | 21456 | offset += phdr.p_filesz; |
21996 | phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0; | 21457 | phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0; |
21997 | @@ -2034,7 +2329,7 @@ static int elf_core_dump(long signr, str | 21458 | @@ -2016,7 +2311,7 @@ static int elf_core_dump(long signr, str |
21998 | unsigned long addr; | 21459 | unsigned long addr; |
21999 | unsigned long end; | 21460 | unsigned long end; |
22000 | 21461 | ||
@@ -22003,7 +21464,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
22003 | 21464 | ||
22004 | for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) { | 21465 | for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) { |
22005 | struct page *page; | 21466 | struct page *page; |
22006 | @@ -2054,6 +2349,7 @@ static int elf_core_dump(long signr, str | 21467 | @@ -2036,6 +2331,7 @@ static int elf_core_dump(long signr, str |
22007 | flush_cache_page(tmp_vma, addr, | 21468 | flush_cache_page(tmp_vma, addr, |
22008 | page_to_pfn(page)); | 21469 | page_to_pfn(page)); |
22009 | kaddr = kmap(page); | 21470 | kaddr = kmap(page); |
@@ -22011,7 +21472,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
22011 | if ((size += PAGE_SIZE) > limit || | 21472 | if ((size += PAGE_SIZE) > limit || |
22012 | !dump_write(file, kaddr, | 21473 | !dump_write(file, kaddr, |
22013 | PAGE_SIZE)) { | 21474 | PAGE_SIZE)) { |
22014 | @@ -2084,6 +2380,99 @@ out: | 21475 | @@ -2066,6 +2362,99 @@ out: |
22015 | 21476 | ||
22016 | #endif /* USE_ELF_CORE_DUMP */ | 21477 | #endif /* USE_ELF_CORE_DUMP */ |
22017 | 21478 | ||
@@ -22111,10 +21572,10 @@ diff -urNp linux-2.6.29.6/fs/binfmt_elf.c linux-2.6.29.6/fs/binfmt_elf.c | |||
22111 | static int __init init_elf_binfmt(void) | 21572 | static int __init init_elf_binfmt(void) |
22112 | { | 21573 | { |
22113 | return register_binfmt(&elf_format); | 21574 | return register_binfmt(&elf_format); |
22114 | diff -urNp linux-2.6.29.6/fs/binfmt_flat.c linux-2.6.29.6/fs/binfmt_flat.c | 21575 | diff -urNp linux-2.6.30.4/fs/binfmt_flat.c linux-2.6.30.4/fs/binfmt_flat.c |
22115 | --- linux-2.6.29.6/fs/binfmt_flat.c 2009-07-02 19:41:20.000000000 -0400 | 21576 | --- linux-2.6.30.4/fs/binfmt_flat.c 2009-07-24 17:47:51.000000000 -0400 |
22116 | +++ linux-2.6.29.6/fs/binfmt_flat.c 2009-07-23 17:34:32.148887586 -0400 | 21577 | +++ linux-2.6.30.4/fs/binfmt_flat.c 2009-07-30 09:48:10.069189169 -0400 |
22117 | @@ -554,7 +554,9 @@ static int load_flat_file(struct linux_b | 21578 | @@ -565,7 +565,9 @@ static int load_flat_file(struct linux_b |
22118 | realdatastart = (unsigned long) -ENOMEM; | 21579 | realdatastart = (unsigned long) -ENOMEM; |
22119 | printk("Unable to allocate RAM for process data, errno %d\n", | 21580 | printk("Unable to allocate RAM for process data, errno %d\n", |
22120 | (int)-realdatastart); | 21581 | (int)-realdatastart); |
@@ -22124,7 +21585,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_flat.c linux-2.6.29.6/fs/binfmt_flat.c | |||
22124 | ret = realdatastart; | 21585 | ret = realdatastart; |
22125 | goto err; | 21586 | goto err; |
22126 | } | 21587 | } |
22127 | @@ -576,8 +578,10 @@ static int load_flat_file(struct linux_b | 21588 | @@ -589,8 +591,10 @@ static int load_flat_file(struct linux_b |
22128 | } | 21589 | } |
22129 | if (result >= (unsigned long)-4096) { | 21590 | if (result >= (unsigned long)-4096) { |
22130 | printk("Unable to read data+bss, errno %d\n", (int)-result); | 21591 | printk("Unable to read data+bss, errno %d\n", (int)-result); |
@@ -22135,7 +21596,7 @@ diff -urNp linux-2.6.29.6/fs/binfmt_flat.c linux-2.6.29.6/fs/binfmt_flat.c | |||
22135 | ret = result; | 21596 | ret = result; |
22136 | goto err; | 21597 | goto err; |
22137 | } | 21598 | } |
22138 | @@ -643,8 +647,10 @@ static int load_flat_file(struct linux_b | 21599 | @@ -659,8 +663,10 @@ static int load_flat_file(struct linux_b |
22139 | } | 21600 | } |
22140 | if (result >= (unsigned long)-4096) { | 21601 | if (result >= (unsigned long)-4096) { |
22141 | printk("Unable to read code+data+bss, errno %d\n",(int)-result); | 21602 | printk("Unable to read code+data+bss, errno %d\n",(int)-result); |
@@ -22146,9 +21607,9 @@ diff -urNp linux-2.6.29.6/fs/binfmt_flat.c linux-2.6.29.6/fs/binfmt_flat.c | |||
22146 | ret = result; | 21607 | ret = result; |
22147 | goto err; | 21608 | goto err; |
22148 | } | 21609 | } |
22149 | diff -urNp linux-2.6.29.6/fs/binfmt_misc.c linux-2.6.29.6/fs/binfmt_misc.c | 21610 | diff -urNp linux-2.6.30.4/fs/binfmt_misc.c linux-2.6.30.4/fs/binfmt_misc.c |
22150 | --- linux-2.6.29.6/fs/binfmt_misc.c 2009-07-02 19:41:20.000000000 -0400 | 21611 | --- linux-2.6.30.4/fs/binfmt_misc.c 2009-07-24 17:47:51.000000000 -0400 |
22151 | +++ linux-2.6.29.6/fs/binfmt_misc.c 2009-07-23 17:34:32.148887586 -0400 | 21612 | +++ linux-2.6.30.4/fs/binfmt_misc.c 2009-07-30 09:48:10.070138647 -0400 |
22152 | @@ -693,7 +693,7 @@ static int bm_fill_super(struct super_bl | 21613 | @@ -693,7 +693,7 @@ static int bm_fill_super(struct super_bl |
22153 | static struct tree_descr bm_files[] = { | 21614 | static struct tree_descr bm_files[] = { |
22154 | [2] = {"status", &bm_status_operations, S_IWUSR|S_IRUGO}, | 21615 | [2] = {"status", &bm_status_operations, S_IWUSR|S_IRUGO}, |
@@ -22158,10 +21619,10 @@ diff -urNp linux-2.6.29.6/fs/binfmt_misc.c linux-2.6.29.6/fs/binfmt_misc.c | |||
22158 | }; | 21619 | }; |
22159 | int err = simple_fill_super(sb, 0x42494e4d, bm_files); | 21620 | int err = simple_fill_super(sb, 0x42494e4d, bm_files); |
22160 | if (!err) | 21621 | if (!err) |
22161 | diff -urNp linux-2.6.29.6/fs/bio.c linux-2.6.29.6/fs/bio.c | 21622 | diff -urNp linux-2.6.30.4/fs/bio.c linux-2.6.30.4/fs/bio.c |
22162 | --- linux-2.6.29.6/fs/bio.c 2009-07-02 19:41:20.000000000 -0400 | 21623 | --- linux-2.6.30.4/fs/bio.c 2009-07-30 20:32:40.527789063 -0400 |
22163 | +++ linux-2.6.29.6/fs/bio.c 2009-07-23 17:34:32.148887586 -0400 | 21624 | +++ linux-2.6.30.4/fs/bio.c 2009-07-30 20:32:47.975645587 -0400 |
22164 | @@ -710,7 +710,7 @@ static int __bio_copy_iov(struct bio *bi | 21625 | @@ -720,7 +720,7 @@ static int __bio_copy_iov(struct bio *bi |
22165 | 21626 | ||
22166 | while (bv_len && iov_idx < iov_count) { | 21627 | while (bv_len && iov_idx < iov_count) { |
22167 | unsigned int bytes; | 21628 | unsigned int bytes; |
@@ -22170,10 +21631,10 @@ diff -urNp linux-2.6.29.6/fs/bio.c linux-2.6.29.6/fs/bio.c | |||
22170 | 21631 | ||
22171 | bytes = min_t(unsigned int, | 21632 | bytes = min_t(unsigned int, |
22172 | iov[iov_idx].iov_len - iov_off, bv_len); | 21633 | iov[iov_idx].iov_len - iov_off, bv_len); |
22173 | diff -urNp linux-2.6.29.6/fs/btrfs/ctree.h linux-2.6.29.6/fs/btrfs/ctree.h | 21634 | diff -urNp linux-2.6.30.4/fs/btrfs/ctree.h linux-2.6.30.4/fs/btrfs/ctree.h |
22174 | --- linux-2.6.29.6/fs/btrfs/ctree.h 2009-07-02 19:41:20.000000000 -0400 | 21635 | --- linux-2.6.30.4/fs/btrfs/ctree.h 2009-07-24 17:47:51.000000000 -0400 |
22175 | +++ linux-2.6.29.6/fs/btrfs/ctree.h 2009-07-23 18:40:28.276499409 -0400 | 21636 | +++ linux-2.6.30.4/fs/btrfs/ctree.h 2009-07-30 09:48:10.071936994 -0400 |
22176 | @@ -2099,7 +2099,7 @@ int btrfs_sync_file(struct file *file, s | 21637 | @@ -2174,7 +2174,7 @@ int btrfs_sync_file(struct file *file, s |
22177 | int btrfs_drop_extent_cache(struct inode *inode, u64 start, u64 end, | 21638 | int btrfs_drop_extent_cache(struct inode *inode, u64 start, u64 end, |
22178 | int skip_pinned); | 21639 | int skip_pinned); |
22179 | int btrfs_check_file(struct btrfs_root *root, struct inode *inode); | 21640 | int btrfs_check_file(struct btrfs_root *root, struct inode *inode); |
@@ -22181,23 +21642,23 @@ diff -urNp linux-2.6.29.6/fs/btrfs/ctree.h linux-2.6.29.6/fs/btrfs/ctree.h | |||
22181 | +extern const struct file_operations btrfs_file_operations; | 21642 | +extern const struct file_operations btrfs_file_operations; |
22182 | int btrfs_drop_extents(struct btrfs_trans_handle *trans, | 21643 | int btrfs_drop_extents(struct btrfs_trans_handle *trans, |
22183 | struct btrfs_root *root, struct inode *inode, | 21644 | struct btrfs_root *root, struct inode *inode, |
22184 | u64 start, u64 end, u64 inline_limit, u64 *hint_block); | 21645 | u64 start, u64 end, u64 locked_end, |
22185 | diff -urNp linux-2.6.29.6/fs/btrfs/disk-io.c linux-2.6.29.6/fs/btrfs/disk-io.c | 21646 | diff -urNp linux-2.6.30.4/fs/btrfs/disk-io.c linux-2.6.30.4/fs/btrfs/disk-io.c |
22186 | --- linux-2.6.29.6/fs/btrfs/disk-io.c 2009-07-02 19:41:20.000000000 -0400 | 21647 | --- linux-2.6.30.4/fs/btrfs/disk-io.c 2009-07-24 17:47:51.000000000 -0400 |
22187 | +++ linux-2.6.29.6/fs/btrfs/disk-io.c 2009-07-23 18:40:28.282751578 -0400 | 21648 | +++ linux-2.6.30.4/fs/btrfs/disk-io.c 2009-07-30 12:07:28.366973168 -0400 |
22188 | @@ -768,7 +768,7 @@ static int btree_writepage(struct page * | 21649 | @@ -771,7 +771,7 @@ static void btree_invalidatepage(struct |
21650 | } | ||
22189 | } | 21651 | } |
22190 | #endif | ||
22191 | 21652 | ||
22192 | -static struct address_space_operations btree_aops = { | 21653 | -static struct address_space_operations btree_aops = { |
22193 | +static const struct address_space_operations btree_aops = { | 21654 | +static const struct address_space_operations btree_aops = { |
22194 | .readpage = btree_readpage, | 21655 | .readpage = btree_readpage, |
22195 | .writepage = btree_writepage, | 21656 | .writepage = btree_writepage, |
22196 | .writepages = btree_writepages, | 21657 | .writepages = btree_writepages, |
22197 | diff -urNp linux-2.6.29.6/fs/btrfs/file.c linux-2.6.29.6/fs/btrfs/file.c | 21658 | diff -urNp linux-2.6.30.4/fs/btrfs/file.c linux-2.6.30.4/fs/btrfs/file.c |
22198 | --- linux-2.6.29.6/fs/btrfs/file.c 2009-07-02 19:41:20.000000000 -0400 | 21659 | --- linux-2.6.30.4/fs/btrfs/file.c 2009-07-24 17:47:51.000000000 -0400 |
22199 | +++ linux-2.6.29.6/fs/btrfs/file.c 2009-07-23 18:40:28.305635485 -0400 | 21660 | +++ linux-2.6.30.4/fs/btrfs/file.c 2009-07-30 09:48:10.073009918 -0400 |
22200 | @@ -1268,7 +1268,7 @@ out: | 21661 | @@ -1231,7 +1231,7 @@ out: |
22201 | return ret > 0 ? EIO : ret; | 21662 | return ret > 0 ? EIO : ret; |
22202 | } | 21663 | } |
22203 | 21664 | ||
@@ -22206,7 +21667,7 @@ diff -urNp linux-2.6.29.6/fs/btrfs/file.c linux-2.6.29.6/fs/btrfs/file.c | |||
22206 | .fault = filemap_fault, | 21667 | .fault = filemap_fault, |
22207 | .page_mkwrite = btrfs_page_mkwrite, | 21668 | .page_mkwrite = btrfs_page_mkwrite, |
22208 | }; | 21669 | }; |
22209 | @@ -1280,7 +1280,7 @@ static int btrfs_file_mmap(struct file * | 21670 | @@ -1243,7 +1243,7 @@ static int btrfs_file_mmap(struct file * |
22210 | return 0; | 21671 | return 0; |
22211 | } | 21672 | } |
22212 | 21673 | ||
@@ -22215,9 +21676,9 @@ diff -urNp linux-2.6.29.6/fs/btrfs/file.c linux-2.6.29.6/fs/btrfs/file.c | |||
22215 | .llseek = generic_file_llseek, | 21676 | .llseek = generic_file_llseek, |
22216 | .read = do_sync_read, | 21677 | .read = do_sync_read, |
22217 | .aio_read = generic_file_aio_read, | 21678 | .aio_read = generic_file_aio_read, |
22218 | diff -urNp linux-2.6.29.6/fs/btrfs/inode.c linux-2.6.29.6/fs/btrfs/inode.c | 21679 | diff -urNp linux-2.6.30.4/fs/btrfs/inode.c linux-2.6.30.4/fs/btrfs/inode.c |
22219 | --- linux-2.6.29.6/fs/btrfs/inode.c 2009-07-02 19:41:20.000000000 -0400 | 21680 | --- linux-2.6.30.4/fs/btrfs/inode.c 2009-07-24 17:47:51.000000000 -0400 |
22220 | +++ linux-2.6.29.6/fs/btrfs/inode.c 2009-07-23 18:40:28.316264775 -0400 | 21681 | +++ linux-2.6.30.4/fs/btrfs/inode.c 2009-07-30 09:48:10.073009918 -0400 |
22221 | @@ -57,14 +57,14 @@ struct btrfs_iget_args { | 21682 | @@ -57,14 +57,14 @@ struct btrfs_iget_args { |
22222 | struct btrfs_root *root; | 21683 | struct btrfs_root *root; |
22223 | }; | 21684 | }; |
@@ -22241,7 +21702,7 @@ diff -urNp linux-2.6.29.6/fs/btrfs/inode.c linux-2.6.29.6/fs/btrfs/inode.c | |||
22241 | static struct extent_io_ops btrfs_extent_io_ops; | 21702 | static struct extent_io_ops btrfs_extent_io_ops; |
22242 | 21703 | ||
22243 | static struct kmem_cache *btrfs_inode_cachep; | 21704 | static struct kmem_cache *btrfs_inode_cachep; |
22244 | @@ -4955,7 +4955,7 @@ static int btrfs_permission(struct inode | 21705 | @@ -5187,7 +5187,7 @@ static int btrfs_permission(struct inode |
22245 | return generic_permission(inode, mask, btrfs_check_acl); | 21706 | return generic_permission(inode, mask, btrfs_check_acl); |
22246 | } | 21707 | } |
22247 | 21708 | ||
@@ -22250,7 +21711,7 @@ diff -urNp linux-2.6.29.6/fs/btrfs/inode.c linux-2.6.29.6/fs/btrfs/inode.c | |||
22250 | .getattr = btrfs_getattr, | 21711 | .getattr = btrfs_getattr, |
22251 | .lookup = btrfs_lookup, | 21712 | .lookup = btrfs_lookup, |
22252 | .create = btrfs_create, | 21713 | .create = btrfs_create, |
22253 | @@ -4973,11 +4973,11 @@ static struct inode_operations btrfs_dir | 21714 | @@ -5205,11 +5205,11 @@ static struct inode_operations btrfs_dir |
22254 | .removexattr = btrfs_removexattr, | 21715 | .removexattr = btrfs_removexattr, |
22255 | .permission = btrfs_permission, | 21716 | .permission = btrfs_permission, |
22256 | }; | 21717 | }; |
@@ -22264,7 +21725,7 @@ diff -urNp linux-2.6.29.6/fs/btrfs/inode.c linux-2.6.29.6/fs/btrfs/inode.c | |||
22264 | .llseek = generic_file_llseek, | 21725 | .llseek = generic_file_llseek, |
22265 | .read = generic_read_dir, | 21726 | .read = generic_read_dir, |
22266 | .readdir = btrfs_real_readdir, | 21727 | .readdir = btrfs_real_readdir, |
22267 | @@ -5013,7 +5013,7 @@ static struct extent_io_ops btrfs_extent | 21728 | @@ -5245,7 +5245,7 @@ static struct extent_io_ops btrfs_extent |
22268 | * | 21729 | * |
22269 | * For now we're avoiding this by dropping bmap. | 21730 | * For now we're avoiding this by dropping bmap. |
22270 | */ | 21731 | */ |
@@ -22273,7 +21734,7 @@ diff -urNp linux-2.6.29.6/fs/btrfs/inode.c linux-2.6.29.6/fs/btrfs/inode.c | |||
22273 | .readpage = btrfs_readpage, | 21734 | .readpage = btrfs_readpage, |
22274 | .writepage = btrfs_writepage, | 21735 | .writepage = btrfs_writepage, |
22275 | .writepages = btrfs_writepages, | 21736 | .writepages = btrfs_writepages, |
22276 | @@ -5025,14 +5025,14 @@ static struct address_space_operations b | 21737 | @@ -5257,14 +5257,14 @@ static struct address_space_operations b |
22277 | .set_page_dirty = btrfs_set_page_dirty, | 21738 | .set_page_dirty = btrfs_set_page_dirty, |
22278 | }; | 21739 | }; |
22279 | 21740 | ||
@@ -22290,7 +21751,7 @@ diff -urNp linux-2.6.29.6/fs/btrfs/inode.c linux-2.6.29.6/fs/btrfs/inode.c | |||
22290 | .truncate = btrfs_truncate, | 21751 | .truncate = btrfs_truncate, |
22291 | .getattr = btrfs_getattr, | 21752 | .getattr = btrfs_getattr, |
22292 | .setattr = btrfs_setattr, | 21753 | .setattr = btrfs_setattr, |
22293 | @@ -5044,7 +5044,7 @@ static struct inode_operations btrfs_fil | 21754 | @@ -5276,7 +5276,7 @@ static struct inode_operations btrfs_fil |
22294 | .fallocate = btrfs_fallocate, | 21755 | .fallocate = btrfs_fallocate, |
22295 | .fiemap = btrfs_fiemap, | 21756 | .fiemap = btrfs_fiemap, |
22296 | }; | 21757 | }; |
@@ -22299,7 +21760,7 @@ diff -urNp linux-2.6.29.6/fs/btrfs/inode.c linux-2.6.29.6/fs/btrfs/inode.c | |||
22299 | .getattr = btrfs_getattr, | 21760 | .getattr = btrfs_getattr, |
22300 | .setattr = btrfs_setattr, | 21761 | .setattr = btrfs_setattr, |
22301 | .permission = btrfs_permission, | 21762 | .permission = btrfs_permission, |
22302 | @@ -5053,7 +5053,7 @@ static struct inode_operations btrfs_spe | 21763 | @@ -5285,7 +5285,7 @@ static struct inode_operations btrfs_spe |
22303 | .listxattr = btrfs_listxattr, | 21764 | .listxattr = btrfs_listxattr, |
22304 | .removexattr = btrfs_removexattr, | 21765 | .removexattr = btrfs_removexattr, |
22305 | }; | 21766 | }; |
@@ -22308,10 +21769,10 @@ diff -urNp linux-2.6.29.6/fs/btrfs/inode.c linux-2.6.29.6/fs/btrfs/inode.c | |||
22308 | .readlink = generic_readlink, | 21769 | .readlink = generic_readlink, |
22309 | .follow_link = page_follow_link_light, | 21770 | .follow_link = page_follow_link_light, |
22310 | .put_link = page_put_link, | 21771 | .put_link = page_put_link, |
22311 | diff -urNp linux-2.6.29.6/fs/btrfs/super.c linux-2.6.29.6/fs/btrfs/super.c | 21772 | diff -urNp linux-2.6.30.4/fs/btrfs/super.c linux-2.6.30.4/fs/btrfs/super.c |
22312 | --- linux-2.6.29.6/fs/btrfs/super.c 2009-07-02 19:41:20.000000000 -0400 | 21773 | --- linux-2.6.30.4/fs/btrfs/super.c 2009-07-24 17:47:51.000000000 -0400 |
22313 | +++ linux-2.6.29.6/fs/btrfs/super.c 2009-07-23 18:40:28.317383091 -0400 | 21774 | +++ linux-2.6.30.4/fs/btrfs/super.c 2009-07-30 09:48:10.074085184 -0400 |
22314 | @@ -52,7 +52,7 @@ | 21775 | @@ -53,7 +53,7 @@ |
22315 | #include "compression.h" | 21776 | #include "compression.h" |
22316 | 21777 | ||
22317 | 21778 | ||
@@ -22320,7 +21781,7 @@ diff -urNp linux-2.6.29.6/fs/btrfs/super.c linux-2.6.29.6/fs/btrfs/super.c | |||
22320 | 21781 | ||
22321 | static void btrfs_put_super(struct super_block *sb) | 21782 | static void btrfs_put_super(struct super_block *sb) |
22322 | { | 21783 | { |
22323 | @@ -625,7 +625,7 @@ static int btrfs_unfreeze(struct super_b | 21784 | @@ -675,7 +675,7 @@ static int btrfs_unfreeze(struct super_b |
22324 | return 0; | 21785 | return 0; |
22325 | } | 21786 | } |
22326 | 21787 | ||
@@ -22329,9 +21790,9 @@ diff -urNp linux-2.6.29.6/fs/btrfs/super.c linux-2.6.29.6/fs/btrfs/super.c | |||
22329 | .delete_inode = btrfs_delete_inode, | 21790 | .delete_inode = btrfs_delete_inode, |
22330 | .put_super = btrfs_put_super, | 21791 | .put_super = btrfs_put_super, |
22331 | .write_super = btrfs_write_super, | 21792 | .write_super = btrfs_write_super, |
22332 | diff -urNp linux-2.6.29.6/fs/buffer.c linux-2.6.29.6/fs/buffer.c | 21793 | diff -urNp linux-2.6.30.4/fs/buffer.c linux-2.6.30.4/fs/buffer.c |
22333 | --- linux-2.6.29.6/fs/buffer.c 2009-07-02 19:41:20.000000000 -0400 | 21794 | --- linux-2.6.30.4/fs/buffer.c 2009-07-24 17:47:51.000000000 -0400 |
22334 | +++ linux-2.6.29.6/fs/buffer.c 2009-07-23 17:34:32.149864089 -0400 | 21795 | +++ linux-2.6.30.4/fs/buffer.c 2009-07-30 11:10:49.132480423 -0400 |
22335 | @@ -25,6 +25,7 @@ | 21796 | @@ -25,6 +25,7 @@ |
22336 | #include <linux/percpu.h> | 21797 | #include <linux/percpu.h> |
22337 | #include <linux/slab.h> | 21798 | #include <linux/slab.h> |
@@ -22340,7 +21801,7 @@ diff -urNp linux-2.6.29.6/fs/buffer.c linux-2.6.29.6/fs/buffer.c | |||
22340 | #include <linux/blkdev.h> | 21801 | #include <linux/blkdev.h> |
22341 | #include <linux/file.h> | 21802 | #include <linux/file.h> |
22342 | #include <linux/quotaops.h> | 21803 | #include <linux/quotaops.h> |
22343 | @@ -2312,6 +2313,7 @@ int generic_cont_expand_simple(struct in | 21804 | @@ -2230,6 +2231,7 @@ int generic_cont_expand_simple(struct in |
22344 | 21805 | ||
22345 | err = -EFBIG; | 21806 | err = -EFBIG; |
22346 | limit = current->signal->rlim[RLIMIT_FSIZE].rlim_cur; | 21807 | limit = current->signal->rlim[RLIMIT_FSIZE].rlim_cur; |
@@ -22348,10 +21809,10 @@ diff -urNp linux-2.6.29.6/fs/buffer.c linux-2.6.29.6/fs/buffer.c | |||
22348 | if (limit != RLIM_INFINITY && size > (loff_t)limit) { | 21809 | if (limit != RLIM_INFINITY && size > (loff_t)limit) { |
22349 | send_sig(SIGXFSZ, current, 0); | 21810 | send_sig(SIGXFSZ, current, 0); |
22350 | goto out; | 21811 | goto out; |
22351 | diff -urNp linux-2.6.29.6/fs/cifs/cifs_dfs_ref.c linux-2.6.29.6/fs/cifs/cifs_dfs_ref.c | 21812 | diff -urNp linux-2.6.30.4/fs/cifs/cifs_dfs_ref.c linux-2.6.30.4/fs/cifs/cifs_dfs_ref.c |
22352 | --- linux-2.6.29.6/fs/cifs/cifs_dfs_ref.c 2009-07-02 19:41:20.000000000 -0400 | 21813 | --- linux-2.6.30.4/fs/cifs/cifs_dfs_ref.c 2009-07-24 17:47:51.000000000 -0400 |
22353 | +++ linux-2.6.29.6/fs/cifs/cifs_dfs_ref.c 2009-07-23 18:40:28.330897960 -0400 | 21814 | +++ linux-2.6.30.4/fs/cifs/cifs_dfs_ref.c 2009-07-30 09:48:10.074085184 -0400 |
22354 | @@ -387,7 +387,7 @@ out_err: | 21815 | @@ -379,7 +379,7 @@ out_err: |
22355 | goto out; | 21816 | goto out; |
22356 | } | 21817 | } |
22357 | 21818 | ||
@@ -22360,9 +21821,9 @@ diff -urNp linux-2.6.29.6/fs/cifs/cifs_dfs_ref.c linux-2.6.29.6/fs/cifs/cifs_dfs | |||
22360 | .follow_link = cifs_dfs_follow_mountpoint, | 21821 | .follow_link = cifs_dfs_follow_mountpoint, |
22361 | }; | 21822 | }; |
22362 | 21823 | ||
22363 | diff -urNp linux-2.6.29.6/fs/cifs/cifsfs.h linux-2.6.29.6/fs/cifs/cifsfs.h | 21824 | diff -urNp linux-2.6.30.4/fs/cifs/cifsfs.h linux-2.6.30.4/fs/cifs/cifsfs.h |
22364 | --- linux-2.6.29.6/fs/cifs/cifsfs.h 2009-07-02 19:41:20.000000000 -0400 | 21825 | --- linux-2.6.30.4/fs/cifs/cifsfs.h 2009-07-24 17:47:51.000000000 -0400 |
22365 | +++ linux-2.6.29.6/fs/cifs/cifsfs.h 2009-07-23 18:40:28.331788628 -0400 | 21826 | +++ linux-2.6.30.4/fs/cifs/cifsfs.h 2009-07-30 09:48:10.075044089 -0400 |
22366 | @@ -54,7 +54,7 @@ extern int cifs_setattr(struct dentry *, | 21827 | @@ -54,7 +54,7 @@ extern int cifs_setattr(struct dentry *, |
22367 | 21828 | ||
22368 | extern const struct inode_operations cifs_file_inode_ops; | 21829 | extern const struct inode_operations cifs_file_inode_ops; |
@@ -22372,20 +21833,9 @@ diff -urNp linux-2.6.29.6/fs/cifs/cifsfs.h linux-2.6.29.6/fs/cifs/cifsfs.h | |||
22372 | 21833 | ||
22373 | 21834 | ||
22374 | /* Functions related to files and directories */ | 21835 | /* Functions related to files and directories */ |
22375 | @@ -78,8 +78,8 @@ extern int cifs_dir_open(struct inode *i | 21836 | diff -urNp linux-2.6.30.4/fs/cifs/cifs_uniupr.h linux-2.6.30.4/fs/cifs/cifs_uniupr.h |
22376 | extern int cifs_readdir(struct file *file, void *direntry, filldir_t filldir); | 21837 | --- linux-2.6.30.4/fs/cifs/cifs_uniupr.h 2009-07-24 17:47:51.000000000 -0400 |
22377 | 21838 | +++ linux-2.6.30.4/fs/cifs/cifs_uniupr.h 2009-07-30 09:48:10.074085184 -0400 | |
22378 | /* Functions related to dir entries */ | ||
22379 | -extern struct dentry_operations cifs_dentry_ops; | ||
22380 | -extern struct dentry_operations cifs_ci_dentry_ops; | ||
22381 | +extern const struct dentry_operations cifs_dentry_ops; | ||
22382 | +extern const struct dentry_operations cifs_ci_dentry_ops; | ||
22383 | |||
22384 | /* Functions related to symlinks */ | ||
22385 | extern void *cifs_follow_link(struct dentry *direntry, struct nameidata *nd); | ||
22386 | diff -urNp linux-2.6.29.6/fs/cifs/cifs_uniupr.h linux-2.6.29.6/fs/cifs/cifs_uniupr.h | ||
22387 | --- linux-2.6.29.6/fs/cifs/cifs_uniupr.h 2009-07-02 19:41:20.000000000 -0400 | ||
22388 | +++ linux-2.6.29.6/fs/cifs/cifs_uniupr.h 2009-07-23 17:34:32.150758980 -0400 | ||
22389 | @@ -132,7 +132,7 @@ const struct UniCaseRange CifsUniUpperRa | 21839 | @@ -132,7 +132,7 @@ const struct UniCaseRange CifsUniUpperRa |
22390 | {0x0490, 0x04cc, UniCaseRangeU0490}, | 21840 | {0x0490, 0x04cc, UniCaseRangeU0490}, |
22391 | {0x1e00, 0x1ffc, UniCaseRangeU1e00}, | 21841 | {0x1e00, 0x1ffc, UniCaseRangeU1e00}, |
@@ -22395,31 +21845,10 @@ diff -urNp linux-2.6.29.6/fs/cifs/cifs_uniupr.h linux-2.6.29.6/fs/cifs/cifs_uniu | |||
22395 | }; | 21845 | }; |
22396 | #endif | 21846 | #endif |
22397 | 21847 | ||
22398 | diff -urNp linux-2.6.29.6/fs/cifs/dir.c linux-2.6.29.6/fs/cifs/dir.c | 21848 | diff -urNp linux-2.6.30.4/fs/cifs/link.c linux-2.6.30.4/fs/cifs/link.c |
22399 | --- linux-2.6.29.6/fs/cifs/dir.c 2009-07-02 19:41:20.000000000 -0400 | 21849 | --- linux-2.6.30.4/fs/cifs/link.c 2009-07-24 17:47:51.000000000 -0400 |
22400 | +++ linux-2.6.29.6/fs/cifs/dir.c 2009-07-23 18:40:28.331788628 -0400 | 21850 | +++ linux-2.6.30.4/fs/cifs/link.c 2009-07-30 09:48:10.075668043 -0400 |
22401 | @@ -699,7 +699,7 @@ cifs_d_revalidate(struct dentry *direntr | 21851 | @@ -214,7 +214,7 @@ cifs_symlink(struct inode *inode, struct |
22402 | return rc; | ||
22403 | } */ | ||
22404 | |||
22405 | -struct dentry_operations cifs_dentry_ops = { | ||
22406 | +const struct dentry_operations cifs_dentry_ops = { | ||
22407 | .d_revalidate = cifs_d_revalidate, | ||
22408 | /* d_delete: cifs_d_delete, */ /* not needed except for debugging */ | ||
22409 | }; | ||
22410 | @@ -737,7 +737,7 @@ static int cifs_ci_compare(struct dentry | ||
22411 | return 1; | ||
22412 | } | ||
22413 | |||
22414 | -struct dentry_operations cifs_ci_dentry_ops = { | ||
22415 | +const struct dentry_operations cifs_ci_dentry_ops = { | ||
22416 | .d_revalidate = cifs_d_revalidate, | ||
22417 | .d_hash = cifs_ci_hash, | ||
22418 | .d_compare = cifs_ci_compare, | ||
22419 | diff -urNp linux-2.6.29.6/fs/cifs/link.c linux-2.6.29.6/fs/cifs/link.c | ||
22420 | --- linux-2.6.29.6/fs/cifs/link.c 2009-07-02 19:41:20.000000000 -0400 | ||
22421 | +++ linux-2.6.29.6/fs/cifs/link.c 2009-07-23 17:34:32.150758980 -0400 | ||
22422 | @@ -318,7 +318,7 @@ cifs_readlink(struct dentry *direntry, c | ||
22423 | 21852 | ||
22424 | void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie) | 21853 | void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie) |
22425 | { | 21854 | { |
@@ -22428,10 +21857,10 @@ diff -urNp linux-2.6.29.6/fs/cifs/link.c linux-2.6.29.6/fs/cifs/link.c | |||
22428 | if (!IS_ERR(p)) | 21857 | if (!IS_ERR(p)) |
22429 | kfree(p); | 21858 | kfree(p); |
22430 | } | 21859 | } |
22431 | diff -urNp linux-2.6.29.6/fs/compat.c linux-2.6.29.6/fs/compat.c | 21860 | diff -urNp linux-2.6.30.4/fs/compat.c linux-2.6.30.4/fs/compat.c |
22432 | --- linux-2.6.29.6/fs/compat.c 2009-07-02 19:41:20.000000000 -0400 | 21861 | --- linux-2.6.30.4/fs/compat.c 2009-07-24 17:47:51.000000000 -0400 |
22433 | +++ linux-2.6.29.6/fs/compat.c 2009-07-23 17:34:32.150758980 -0400 | 21862 | +++ linux-2.6.30.4/fs/compat.c 2009-07-30 11:10:49.133453691 -0400 |
22434 | @@ -1338,14 +1338,12 @@ static int compat_copy_strings(int argc, | 21863 | @@ -1420,14 +1420,12 @@ static int compat_copy_strings(int argc, |
22435 | if (!kmapped_page || kpos != (pos & PAGE_MASK)) { | 21864 | if (!kmapped_page || kpos != (pos & PAGE_MASK)) { |
22436 | struct page *page; | 21865 | struct page *page; |
22437 | 21866 | ||
@@ -22446,7 +21875,7 @@ diff -urNp linux-2.6.29.6/fs/compat.c linux-2.6.29.6/fs/compat.c | |||
22446 | ret = get_user_pages(current, bprm->mm, pos, | 21875 | ret = get_user_pages(current, bprm->mm, pos, |
22447 | 1, 1, 1, &page, NULL); | 21876 | 1, 1, 1, &page, NULL); |
22448 | if (ret <= 0) { | 21877 | if (ret <= 0) { |
22449 | @@ -1391,6 +1389,11 @@ int compat_do_execve(char * filename, | 21878 | @@ -1473,6 +1471,11 @@ int compat_do_execve(char * filename, |
22450 | compat_uptr_t __user *envp, | 21879 | compat_uptr_t __user *envp, |
22451 | struct pt_regs * regs) | 21880 | struct pt_regs * regs) |
22452 | { | 21881 | { |
@@ -22458,7 +21887,7 @@ diff -urNp linux-2.6.29.6/fs/compat.c linux-2.6.29.6/fs/compat.c | |||
22458 | struct linux_binprm *bprm; | 21887 | struct linux_binprm *bprm; |
22459 | struct file *file; | 21888 | struct file *file; |
22460 | struct files_struct *displaced; | 21889 | struct files_struct *displaced; |
22461 | @@ -1431,6 +1434,14 @@ int compat_do_execve(char * filename, | 21890 | @@ -1514,6 +1517,14 @@ int compat_do_execve(char * filename, |
22462 | bprm->filename = filename; | 21891 | bprm->filename = filename; |
22463 | bprm->interp = filename; | 21892 | bprm->interp = filename; |
22464 | 21893 | ||
@@ -22473,7 +21902,7 @@ diff -urNp linux-2.6.29.6/fs/compat.c linux-2.6.29.6/fs/compat.c | |||
22473 | retval = bprm_mm_init(bprm); | 21902 | retval = bprm_mm_init(bprm); |
22474 | if (retval) | 21903 | if (retval) |
22475 | goto out_file; | 21904 | goto out_file; |
22476 | @@ -1460,9 +1471,40 @@ int compat_do_execve(char * filename, | 21905 | @@ -1543,9 +1554,40 @@ int compat_do_execve(char * filename, |
22477 | if (retval < 0) | 21906 | if (retval < 0) |
22478 | goto out; | 21907 | goto out; |
22479 | 21908 | ||
@@ -22515,7 +21944,7 @@ diff -urNp linux-2.6.29.6/fs/compat.c linux-2.6.29.6/fs/compat.c | |||
22515 | 21944 | ||
22516 | /* execve succeeded */ | 21945 | /* execve succeeded */ |
22517 | current->fs->in_exec = 0; | 21946 | current->fs->in_exec = 0; |
22518 | @@ -1473,6 +1515,14 @@ int compat_do_execve(char * filename, | 21947 | @@ -1557,6 +1599,14 @@ int compat_do_execve(char * filename, |
22519 | put_files_struct(displaced); | 21948 | put_files_struct(displaced); |
22520 | return retval; | 21949 | return retval; |
22521 | 21950 | ||
@@ -22530,10 +21959,10 @@ diff -urNp linux-2.6.29.6/fs/compat.c linux-2.6.29.6/fs/compat.c | |||
22530 | out: | 21959 | out: |
22531 | if (bprm->mm) | 21960 | if (bprm->mm) |
22532 | mmput(bprm->mm); | 21961 | mmput(bprm->mm); |
22533 | diff -urNp linux-2.6.29.6/fs/compat_ioctl.c linux-2.6.29.6/fs/compat_ioctl.c | 21962 | diff -urNp linux-2.6.30.4/fs/compat_ioctl.c linux-2.6.30.4/fs/compat_ioctl.c |
22534 | --- linux-2.6.29.6/fs/compat_ioctl.c 2009-07-02 19:41:20.000000000 -0400 | 21963 | --- linux-2.6.30.4/fs/compat_ioctl.c 2009-07-24 17:47:51.000000000 -0400 |
22535 | +++ linux-2.6.29.6/fs/compat_ioctl.c 2009-07-23 17:34:32.151817730 -0400 | 21964 | +++ linux-2.6.30.4/fs/compat_ioctl.c 2009-07-30 09:48:10.080197700 -0400 |
22536 | @@ -1832,15 +1832,15 @@ struct ioctl_trans { | 21965 | @@ -1837,15 +1837,15 @@ struct ioctl_trans { |
22537 | }; | 21966 | }; |
22538 | 21967 | ||
22539 | #define HANDLE_IOCTL(cmd,handler) \ | 21968 | #define HANDLE_IOCTL(cmd,handler) \ |
@@ -22552,22 +21981,10 @@ diff -urNp linux-2.6.29.6/fs/compat_ioctl.c linux-2.6.29.6/fs/compat_ioctl.c | |||
22552 | 21981 | ||
22553 | /* ioctl should not be warned about even if it's not implemented. | 21982 | /* ioctl should not be warned about even if it's not implemented. |
22554 | Valid reasons to use this: | 21983 | Valid reasons to use this: |
22555 | diff -urNp linux-2.6.29.6/fs/configfs/dir.c linux-2.6.29.6/fs/configfs/dir.c | 21984 | diff -urNp linux-2.6.30.4/fs/debugfs/inode.c linux-2.6.30.4/fs/debugfs/inode.c |
22556 | --- linux-2.6.29.6/fs/configfs/dir.c 2009-07-02 19:41:20.000000000 -0400 | 21985 | --- linux-2.6.30.4/fs/debugfs/inode.c 2009-07-24 17:47:51.000000000 -0400 |
22557 | +++ linux-2.6.29.6/fs/configfs/dir.c 2009-07-23 18:40:28.343404417 -0400 | 21986 | +++ linux-2.6.30.4/fs/debugfs/inode.c 2009-07-30 09:48:10.080909461 -0400 |
22558 | @@ -72,7 +72,7 @@ static int configfs_d_delete(struct dent | 21987 | @@ -118,7 +118,7 @@ static inline int debugfs_positive(struc |
22559 | return 1; | ||
22560 | } | ||
22561 | |||
22562 | -static struct dentry_operations configfs_dentry_ops = { | ||
22563 | +static const struct dentry_operations configfs_dentry_ops = { | ||
22564 | .d_iput = configfs_d_iput, | ||
22565 | /* simple_delete_dentry() isn't exported */ | ||
22566 | .d_delete = configfs_d_delete, | ||
22567 | diff -urNp linux-2.6.29.6/fs/debugfs/inode.c linux-2.6.29.6/fs/debugfs/inode.c | ||
22568 | --- linux-2.6.29.6/fs/debugfs/inode.c 2009-07-02 19:41:20.000000000 -0400 | ||
22569 | +++ linux-2.6.29.6/fs/debugfs/inode.c 2009-07-23 17:34:32.151817730 -0400 | ||
22570 | @@ -117,7 +117,7 @@ static inline int debugfs_positive(struc | ||
22571 | 21988 | ||
22572 | static int debug_fill_super(struct super_block *sb, void *data, int silent) | 21989 | static int debug_fill_super(struct super_block *sb, void *data, int silent) |
22573 | { | 21990 | { |
@@ -22576,9 +21993,9 @@ diff -urNp linux-2.6.29.6/fs/debugfs/inode.c linux-2.6.29.6/fs/debugfs/inode.c | |||
22576 | 21993 | ||
22577 | return simple_fill_super(sb, DEBUGFS_MAGIC, debug_files); | 21994 | return simple_fill_super(sb, DEBUGFS_MAGIC, debug_files); |
22578 | } | 21995 | } |
22579 | diff -urNp linux-2.6.29.6/fs/dlm/debug_fs.c linux-2.6.29.6/fs/dlm/debug_fs.c | 21996 | diff -urNp linux-2.6.30.4/fs/dlm/debug_fs.c linux-2.6.30.4/fs/dlm/debug_fs.c |
22580 | --- linux-2.6.29.6/fs/dlm/debug_fs.c 2009-07-02 19:41:20.000000000 -0400 | 21997 | --- linux-2.6.30.4/fs/dlm/debug_fs.c 2009-07-24 17:47:51.000000000 -0400 |
22581 | +++ linux-2.6.29.6/fs/dlm/debug_fs.c 2009-07-23 18:40:28.344280728 -0400 | 21998 | +++ linux-2.6.30.4/fs/dlm/debug_fs.c 2009-07-30 09:48:10.080909461 -0400 |
22582 | @@ -386,9 +386,9 @@ static int table_seq_show(struct seq_fil | 21999 | @@ -386,9 +386,9 @@ static int table_seq_show(struct seq_fil |
22583 | return rv; | 22000 | return rv; |
22584 | } | 22001 | } |
@@ -22617,36 +22034,22 @@ diff -urNp linux-2.6.29.6/fs/dlm/debug_fs.c linux-2.6.29.6/fs/dlm/debug_fs.c | |||
22617 | .start = table_seq_start, | 22034 | .start = table_seq_start, |
22618 | .next = table_seq_next, | 22035 | .next = table_seq_next, |
22619 | .stop = table_seq_stop, | 22036 | .stop = table_seq_stop, |
22620 | diff -urNp linux-2.6.29.6/fs/ecryptfs/dentry.c linux-2.6.29.6/fs/ecryptfs/dentry.c | 22037 | diff -urNp linux-2.6.30.4/fs/ecryptfs/ecryptfs_kernel.h linux-2.6.30.4/fs/ecryptfs/ecryptfs_kernel.h |
22621 | --- linux-2.6.29.6/fs/ecryptfs/dentry.c 2009-07-02 19:41:20.000000000 -0400 | 22038 | --- linux-2.6.30.4/fs/ecryptfs/ecryptfs_kernel.h 2009-07-24 17:47:51.000000000 -0400 |
22622 | +++ linux-2.6.29.6/fs/ecryptfs/dentry.c 2009-07-23 18:40:28.358643960 -0400 | 22039 | +++ linux-2.6.30.4/fs/ecryptfs/ecryptfs_kernel.h 2009-07-30 12:43:20.416601232 -0400 |
22623 | @@ -89,7 +89,7 @@ static void ecryptfs_d_release(struct de | 22040 | @@ -582,7 +582,7 @@ extern const struct inode_operations ecr |
22624 | return; | ||
22625 | } | ||
22626 | |||
22627 | -struct dentry_operations ecryptfs_dops = { | ||
22628 | +const struct dentry_operations ecryptfs_dops = { | ||
22629 | .d_revalidate = ecryptfs_d_revalidate, | ||
22630 | .d_release = ecryptfs_d_release, | ||
22631 | }; | ||
22632 | diff -urNp linux-2.6.29.6/fs/ecryptfs/ecryptfs_kernel.h linux-2.6.29.6/fs/ecryptfs/ecryptfs_kernel.h | ||
22633 | --- linux-2.6.29.6/fs/ecryptfs/ecryptfs_kernel.h 2009-07-02 19:41:20.000000000 -0400 | ||
22634 | +++ linux-2.6.29.6/fs/ecryptfs/ecryptfs_kernel.h 2009-07-23 18:40:28.368274094 -0400 | ||
22635 | @@ -580,8 +580,8 @@ extern const struct inode_operations ecr | ||
22636 | extern const struct inode_operations ecryptfs_dir_iops; | ||
22637 | extern const struct inode_operations ecryptfs_symlink_iops; | 22041 | extern const struct inode_operations ecryptfs_symlink_iops; |
22638 | extern const struct super_operations ecryptfs_sops; | 22042 | extern const struct super_operations ecryptfs_sops; |
22639 | -extern struct dentry_operations ecryptfs_dops; | 22043 | extern const struct dentry_operations ecryptfs_dops; |
22640 | -extern struct address_space_operations ecryptfs_aops; | 22044 | -extern struct address_space_operations ecryptfs_aops; |
22641 | +extern const struct dentry_operations ecryptfs_dops; | ||
22642 | +extern const struct address_space_operations ecryptfs_aops; | 22045 | +extern const struct address_space_operations ecryptfs_aops; |
22643 | extern int ecryptfs_verbosity; | 22046 | extern int ecryptfs_verbosity; |
22644 | extern unsigned int ecryptfs_message_buf_len; | 22047 | extern unsigned int ecryptfs_message_buf_len; |
22645 | extern signed long ecryptfs_message_wait_timeout; | 22048 | extern signed long ecryptfs_message_wait_timeout; |
22646 | diff -urNp linux-2.6.29.6/fs/ecryptfs/mmap.c linux-2.6.29.6/fs/ecryptfs/mmap.c | 22049 | diff -urNp linux-2.6.30.4/fs/ecryptfs/mmap.c linux-2.6.30.4/fs/ecryptfs/mmap.c |
22647 | --- linux-2.6.29.6/fs/ecryptfs/mmap.c 2009-07-02 19:41:20.000000000 -0400 | 22050 | --- linux-2.6.30.4/fs/ecryptfs/mmap.c 2009-07-24 17:47:51.000000000 -0400 |
22648 | +++ linux-2.6.29.6/fs/ecryptfs/mmap.c 2009-07-23 18:40:28.369285541 -0400 | 22051 | +++ linux-2.6.30.4/fs/ecryptfs/mmap.c 2009-07-30 09:48:10.080909461 -0400 |
22649 | @@ -534,7 +534,7 @@ static sector_t ecryptfs_bmap(struct add | 22052 | @@ -545,7 +545,7 @@ static sector_t ecryptfs_bmap(struct add |
22650 | return rc; | 22053 | return rc; |
22651 | } | 22054 | } |
22652 | 22055 | ||
@@ -22655,13 +22058,13 @@ diff -urNp linux-2.6.29.6/fs/ecryptfs/mmap.c linux-2.6.29.6/fs/ecryptfs/mmap.c | |||
22655 | .writepage = ecryptfs_writepage, | 22058 | .writepage = ecryptfs_writepage, |
22656 | .readpage = ecryptfs_readpage, | 22059 | .readpage = ecryptfs_readpage, |
22657 | .write_begin = ecryptfs_write_begin, | 22060 | .write_begin = ecryptfs_write_begin, |
22658 | diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c | 22061 | diff -urNp linux-2.6.30.4/fs/exec.c linux-2.6.30.4/fs/exec.c |
22659 | --- linux-2.6.29.6/fs/exec.c 2009-07-02 19:41:20.000000000 -0400 | 22062 | --- linux-2.6.30.4/fs/exec.c 2009-07-24 17:47:51.000000000 -0400 |
22660 | +++ linux-2.6.29.6/fs/exec.c 2009-07-23 17:34:32.152780047 -0400 | 22063 | +++ linux-2.6.30.4/fs/exec.c 2009-08-01 14:58:11.881121157 -0400 |
22661 | @@ -52,12 +52,24 @@ | 22064 | @@ -54,12 +54,24 @@ |
22662 | #include <linux/tracehook.h> | ||
22663 | #include <linux/kmod.h> | 22065 | #include <linux/kmod.h> |
22664 | #include <linux/fsnotify.h> | 22066 | #include <linux/fsnotify.h> |
22067 | #include <linux/fs_struct.h> | ||
22665 | +#include <linux/random.h> | 22068 | +#include <linux/random.h> |
22666 | +#include <linux/seq_file.h> | 22069 | +#include <linux/seq_file.h> |
22667 | + | 22070 | + |
@@ -22683,7 +22086,16 @@ diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c | |||
22683 | int core_uses_pid; | 22086 | int core_uses_pid; |
22684 | char core_pattern[CORENAME_MAX_SIZE] = "core"; | 22087 | char core_pattern[CORENAME_MAX_SIZE] = "core"; |
22685 | int suid_dumpable = 0; | 22088 | int suid_dumpable = 0; |
22686 | @@ -169,18 +181,10 @@ static struct page *get_arg_page(struct | 22089 | @@ -112,7 +124,7 @@ SYSCALL_DEFINE1(uselib, const char __use |
22090 | goto out; | ||
22091 | |||
22092 | file = do_filp_open(AT_FDCWD, tmp, | ||
22093 | - O_LARGEFILE | O_RDONLY | FMODE_EXEC, 0, | ||
22094 | + O_LARGEFILE | O_RDONLY | FMODE_EXEC | FMODE_GREXEC, 0, | ||
22095 | MAY_READ | MAY_EXEC | MAY_OPEN); | ||
22096 | putname(tmp); | ||
22097 | error = PTR_ERR(file); | ||
22098 | @@ -160,18 +172,10 @@ static struct page *get_arg_page(struct | ||
22687 | int write) | 22099 | int write) |
22688 | { | 22100 | { |
22689 | struct page *page; | 22101 | struct page *page; |
@@ -22705,7 +22117,7 @@ diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c | |||
22705 | return NULL; | 22117 | return NULL; |
22706 | 22118 | ||
22707 | if (write) { | 22119 | if (write) { |
22708 | @@ -252,6 +256,11 @@ static int __bprm_mm_init(struct linux_b | 22120 | @@ -243,6 +247,11 @@ static int __bprm_mm_init(struct linux_b |
22709 | vma->vm_end = STACK_TOP_MAX; | 22121 | vma->vm_end = STACK_TOP_MAX; |
22710 | vma->vm_start = vma->vm_end - PAGE_SIZE; | 22122 | vma->vm_start = vma->vm_end - PAGE_SIZE; |
22711 | vma->vm_flags = VM_STACK_FLAGS; | 22123 | vma->vm_flags = VM_STACK_FLAGS; |
@@ -22717,7 +22129,7 @@ diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c | |||
22717 | vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); | 22129 | vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); |
22718 | err = insert_vm_struct(mm, vma); | 22130 | err = insert_vm_struct(mm, vma); |
22719 | if (err) | 22131 | if (err) |
22720 | @@ -260,6 +269,12 @@ static int __bprm_mm_init(struct linux_b | 22132 | @@ -251,6 +260,12 @@ static int __bprm_mm_init(struct linux_b |
22721 | mm->stack_vm = mm->total_vm = 1; | 22133 | mm->stack_vm = mm->total_vm = 1; |
22722 | up_write(&mm->mmap_sem); | 22134 | up_write(&mm->mmap_sem); |
22723 | bprm->p = vma->vm_end - sizeof(void *); | 22135 | bprm->p = vma->vm_end - sizeof(void *); |
@@ -22730,7 +22142,7 @@ diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c | |||
22730 | return 0; | 22142 | return 0; |
22731 | err: | 22143 | err: |
22732 | up_write(&mm->mmap_sem); | 22144 | up_write(&mm->mmap_sem); |
22733 | @@ -520,6 +535,10 @@ static int shift_arg_pages(struct vm_are | 22145 | @@ -511,6 +526,10 @@ static int shift_arg_pages(struct vm_are |
22734 | if (vma != find_vma(mm, new_start)) | 22146 | if (vma != find_vma(mm, new_start)) |
22735 | return -EFAULT; | 22147 | return -EFAULT; |
22736 | 22148 | ||
@@ -22741,7 +22153,7 @@ diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c | |||
22741 | /* | 22153 | /* |
22742 | * cover the whole range: [new_start, old_end) | 22154 | * cover the whole range: [new_start, old_end) |
22743 | */ | 22155 | */ |
22744 | @@ -608,6 +627,14 @@ int setup_arg_pages(struct linux_binprm | 22156 | @@ -599,6 +618,14 @@ int setup_arg_pages(struct linux_binprm |
22745 | bprm->exec -= stack_shift; | 22157 | bprm->exec -= stack_shift; |
22746 | 22158 | ||
22747 | down_write(&mm->mmap_sem); | 22159 | down_write(&mm->mmap_sem); |
@@ -22756,7 +22168,7 @@ diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c | |||
22756 | vm_flags = VM_STACK_FLAGS; | 22168 | vm_flags = VM_STACK_FLAGS; |
22757 | 22169 | ||
22758 | /* | 22170 | /* |
22759 | @@ -621,21 +648,24 @@ int setup_arg_pages(struct linux_binprm | 22171 | @@ -612,21 +639,24 @@ int setup_arg_pages(struct linux_binprm |
22760 | vm_flags &= ~VM_EXEC; | 22172 | vm_flags &= ~VM_EXEC; |
22761 | vm_flags |= mm->def_flags; | 22173 | vm_flags |= mm->def_flags; |
22762 | 22174 | ||
@@ -22790,7 +22202,7 @@ diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c | |||
22790 | #ifdef CONFIG_STACK_GROWSUP | 22202 | #ifdef CONFIG_STACK_GROWSUP |
22791 | stack_base = vma->vm_end + EXTRA_STACK_VM_PAGES * PAGE_SIZE; | 22203 | stack_base = vma->vm_end + EXTRA_STACK_VM_PAGES * PAGE_SIZE; |
22792 | #else | 22204 | #else |
22793 | @@ -647,7 +677,7 @@ int setup_arg_pages(struct linux_binprm | 22205 | @@ -638,7 +668,7 @@ int setup_arg_pages(struct linux_binprm |
22794 | 22206 | ||
22795 | out_unlock: | 22207 | out_unlock: |
22796 | up_write(&mm->mmap_sem); | 22208 | up_write(&mm->mmap_sem); |
@@ -22799,7 +22211,16 @@ diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c | |||
22799 | } | 22211 | } |
22800 | EXPORT_SYMBOL(setup_arg_pages); | 22212 | EXPORT_SYMBOL(setup_arg_pages); |
22801 | 22213 | ||
22802 | @@ -1066,7 +1096,7 @@ int check_unsafe_exec(struct linux_binpr | 22214 | @@ -650,7 +680,7 @@ struct file *open_exec(const char *name) |
22215 | int err; | ||
22216 | |||
22217 | file = do_filp_open(AT_FDCWD, name, | ||
22218 | - O_LARGEFILE | O_RDONLY | FMODE_EXEC, 0, | ||
22219 | + O_LARGEFILE | O_RDONLY | FMODE_EXEC | FMODE_GREXEC, 0, | ||
22220 | MAY_EXEC | MAY_OPEN); | ||
22221 | if (IS_ERR(file)) | ||
22222 | goto out; | ||
22223 | @@ -1046,7 +1076,7 @@ int check_unsafe_exec(struct linux_binpr | ||
22803 | } | 22224 | } |
22804 | rcu_read_unlock(); | 22225 | rcu_read_unlock(); |
22805 | 22226 | ||
@@ -22808,7 +22229,7 @@ diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c | |||
22808 | bprm->unsafe |= LSM_UNSAFE_SHARE; | 22229 | bprm->unsafe |= LSM_UNSAFE_SHARE; |
22809 | } else { | 22230 | } else { |
22810 | res = -EAGAIN; | 22231 | res = -EAGAIN; |
22811 | @@ -1270,6 +1300,11 @@ int do_execve(char * filename, | 22232 | @@ -1253,6 +1283,11 @@ int do_execve(char * filename, |
22812 | char __user *__user *envp, | 22233 | char __user *__user *envp, |
22813 | struct pt_regs * regs) | 22234 | struct pt_regs * regs) |
22814 | { | 22235 | { |
@@ -22820,7 +22241,7 @@ diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c | |||
22820 | struct linux_binprm *bprm; | 22241 | struct linux_binprm *bprm; |
22821 | struct file *file; | 22242 | struct file *file; |
22822 | struct files_struct *displaced; | 22243 | struct files_struct *displaced; |
22823 | @@ -1310,6 +1345,18 @@ int do_execve(char * filename, | 22244 | @@ -1294,6 +1329,18 @@ int do_execve(char * filename, |
22824 | bprm->filename = filename; | 22245 | bprm->filename = filename; |
22825 | bprm->interp = filename; | 22246 | bprm->interp = filename; |
22826 | 22247 | ||
@@ -22839,7 +22260,7 @@ diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c | |||
22839 | retval = bprm_mm_init(bprm); | 22260 | retval = bprm_mm_init(bprm); |
22840 | if (retval) | 22261 | if (retval) |
22841 | goto out_file; | 22262 | goto out_file; |
22842 | @@ -1339,10 +1386,41 @@ int do_execve(char * filename, | 22263 | @@ -1323,10 +1370,41 @@ int do_execve(char * filename, |
22843 | if (retval < 0) | 22264 | if (retval < 0) |
22844 | goto out; | 22265 | goto out; |
22845 | 22266 | ||
@@ -22882,7 +22303,7 @@ diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c | |||
22882 | 22303 | ||
22883 | /* execve succeeded */ | 22304 | /* execve succeeded */ |
22884 | current->fs->in_exec = 0; | 22305 | current->fs->in_exec = 0; |
22885 | @@ -1353,6 +1431,14 @@ int do_execve(char * filename, | 22306 | @@ -1338,6 +1416,14 @@ int do_execve(char * filename, |
22886 | put_files_struct(displaced); | 22307 | put_files_struct(displaced); |
22887 | return retval; | 22308 | return retval; |
22888 | 22309 | ||
@@ -22897,7 +22318,7 @@ diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c | |||
22897 | out: | 22318 | out: |
22898 | if (bprm->mm) | 22319 | if (bprm->mm) |
22899 | mmput (bprm->mm); | 22320 | mmput (bprm->mm); |
22900 | @@ -1520,6 +1606,164 @@ out: | 22321 | @@ -1506,6 +1592,164 @@ out: |
22901 | return ispipe; | 22322 | return ispipe; |
22902 | } | 22323 | } |
22903 | 22324 | ||
@@ -23062,7 +22483,7 @@ diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c | |||
23062 | static int zap_process(struct task_struct *start) | 22483 | static int zap_process(struct task_struct *start) |
23063 | { | 22484 | { |
23064 | struct task_struct *t; | 22485 | struct task_struct *t; |
23065 | @@ -1779,6 +2023,10 @@ void do_coredump(long signr, int exit_co | 22486 | @@ -1765,6 +2009,10 @@ void do_coredump(long signr, int exit_co |
23066 | */ | 22487 | */ |
23067 | clear_thread_flag(TIF_SIGPENDING); | 22488 | clear_thread_flag(TIF_SIGPENDING); |
23068 | 22489 | ||
@@ -23073,9 +22494,9 @@ diff -urNp linux-2.6.29.6/fs/exec.c linux-2.6.29.6/fs/exec.c | |||
23073 | /* | 22494 | /* |
23074 | * lock_kernel() because format_corename() is controlled by sysctl, which | 22495 | * lock_kernel() because format_corename() is controlled by sysctl, which |
23075 | * uses lock_kernel() | 22496 | * uses lock_kernel() |
23076 | diff -urNp linux-2.6.29.6/fs/ext2/balloc.c linux-2.6.29.6/fs/ext2/balloc.c | 22497 | diff -urNp linux-2.6.30.4/fs/ext2/balloc.c linux-2.6.30.4/fs/ext2/balloc.c |
23077 | --- linux-2.6.29.6/fs/ext2/balloc.c 2009-07-02 19:41:20.000000000 -0400 | 22498 | --- linux-2.6.30.4/fs/ext2/balloc.c 2009-07-24 17:47:51.000000000 -0400 |
23078 | +++ linux-2.6.29.6/fs/ext2/balloc.c 2009-07-23 17:34:32.152780047 -0400 | 22499 | +++ linux-2.6.30.4/fs/ext2/balloc.c 2009-07-30 11:10:49.161377797 -0400 |
23079 | @@ -1192,7 +1192,7 @@ static int ext2_has_free_blocks(struct e | 22500 | @@ -1192,7 +1192,7 @@ static int ext2_has_free_blocks(struct e |
23080 | 22501 | ||
23081 | free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter); | 22502 | free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter); |
@@ -23085,9 +22506,9 @@ diff -urNp linux-2.6.29.6/fs/ext2/balloc.c linux-2.6.29.6/fs/ext2/balloc.c | |||
23085 | sbi->s_resuid != current_fsuid() && | 22506 | sbi->s_resuid != current_fsuid() && |
23086 | (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) { | 22507 | (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) { |
23087 | return 0; | 22508 | return 0; |
23088 | diff -urNp linux-2.6.29.6/fs/ext3/balloc.c linux-2.6.29.6/fs/ext3/balloc.c | 22509 | diff -urNp linux-2.6.30.4/fs/ext3/balloc.c linux-2.6.30.4/fs/ext3/balloc.c |
23089 | --- linux-2.6.29.6/fs/ext3/balloc.c 2009-07-02 19:41:20.000000000 -0400 | 22510 | --- linux-2.6.30.4/fs/ext3/balloc.c 2009-07-24 17:47:51.000000000 -0400 |
23090 | +++ linux-2.6.29.6/fs/ext3/balloc.c 2009-07-23 17:34:32.153715921 -0400 | 22511 | +++ linux-2.6.30.4/fs/ext3/balloc.c 2009-07-30 11:10:49.178426808 -0400 |
23091 | @@ -1421,7 +1421,7 @@ static int ext3_has_free_blocks(struct e | 22512 | @@ -1421,7 +1421,7 @@ static int ext3_has_free_blocks(struct e |
23092 | 22513 | ||
23093 | free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter); | 22514 | free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter); |
@@ -23097,10 +22518,10 @@ diff -urNp linux-2.6.29.6/fs/ext3/balloc.c linux-2.6.29.6/fs/ext3/balloc.c | |||
23097 | sbi->s_resuid != current_fsuid() && | 22518 | sbi->s_resuid != current_fsuid() && |
23098 | (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) { | 22519 | (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) { |
23099 | return 0; | 22520 | return 0; |
23100 | diff -urNp linux-2.6.29.6/fs/ext3/namei.c linux-2.6.29.6/fs/ext3/namei.c | 22521 | diff -urNp linux-2.6.30.4/fs/ext3/namei.c linux-2.6.30.4/fs/ext3/namei.c |
23101 | --- linux-2.6.29.6/fs/ext3/namei.c 2009-07-02 19:41:20.000000000 -0400 | 22522 | --- linux-2.6.30.4/fs/ext3/namei.c 2009-07-24 17:47:51.000000000 -0400 |
23102 | +++ linux-2.6.29.6/fs/ext3/namei.c 2009-07-23 17:34:32.153715921 -0400 | 22523 | +++ linux-2.6.30.4/fs/ext3/namei.c 2009-07-30 09:48:10.082882469 -0400 |
23103 | @@ -1159,7 +1159,7 @@ static struct ext3_dir_entry_2 *do_split | 22524 | @@ -1168,7 +1168,7 @@ static struct ext3_dir_entry_2 *do_split |
23104 | char *data1 = (*bh)->b_data, *data2; | 22525 | char *data1 = (*bh)->b_data, *data2; |
23105 | unsigned split, move, size; | 22526 | unsigned split, move, size; |
23106 | struct ext3_dir_entry_2 *de = NULL, *de2; | 22527 | struct ext3_dir_entry_2 *de = NULL, *de2; |
@@ -23109,9 +22530,9 @@ diff -urNp linux-2.6.29.6/fs/ext3/namei.c linux-2.6.29.6/fs/ext3/namei.c | |||
23109 | 22530 | ||
23110 | bh2 = ext3_append (handle, dir, &newblock, &err); | 22531 | bh2 = ext3_append (handle, dir, &newblock, &err); |
23111 | if (!(bh2)) { | 22532 | if (!(bh2)) { |
23112 | diff -urNp linux-2.6.29.6/fs/ext3/xattr.c linux-2.6.29.6/fs/ext3/xattr.c | 22533 | diff -urNp linux-2.6.30.4/fs/ext3/xattr.c linux-2.6.30.4/fs/ext3/xattr.c |
23113 | --- linux-2.6.29.6/fs/ext3/xattr.c 2009-07-02 19:41:20.000000000 -0400 | 22534 | --- linux-2.6.30.4/fs/ext3/xattr.c 2009-07-24 17:47:51.000000000 -0400 |
23114 | +++ linux-2.6.29.6/fs/ext3/xattr.c 2009-07-23 17:34:32.154747281 -0400 | 22535 | +++ linux-2.6.30.4/fs/ext3/xattr.c 2009-07-30 09:48:10.082882469 -0400 |
23115 | @@ -89,8 +89,8 @@ | 22536 | @@ -89,8 +89,8 @@ |
23116 | printk("\n"); \ | 22537 | printk("\n"); \ |
23117 | } while (0) | 22538 | } while (0) |
@@ -23123,10 +22544,10 @@ diff -urNp linux-2.6.29.6/fs/ext3/xattr.c linux-2.6.29.6/fs/ext3/xattr.c | |||
23123 | #endif | 22544 | #endif |
23124 | 22545 | ||
23125 | static void ext3_xattr_cache_insert(struct buffer_head *); | 22546 | static void ext3_xattr_cache_insert(struct buffer_head *); |
23126 | diff -urNp linux-2.6.29.6/fs/ext4/balloc.c linux-2.6.29.6/fs/ext4/balloc.c | 22547 | diff -urNp linux-2.6.30.4/fs/ext4/balloc.c linux-2.6.30.4/fs/ext4/balloc.c |
23127 | --- linux-2.6.29.6/fs/ext4/balloc.c 2009-07-02 19:41:20.000000000 -0400 | 22548 | --- linux-2.6.30.4/fs/ext4/balloc.c 2009-07-24 17:47:51.000000000 -0400 |
23128 | +++ linux-2.6.29.6/fs/ext4/balloc.c 2009-07-23 17:34:32.154747281 -0400 | 22549 | +++ linux-2.6.30.4/fs/ext4/balloc.c 2009-07-30 11:10:49.209900020 -0400 |
23129 | @@ -577,7 +577,7 @@ int ext4_has_free_blocks(struct ext4_sb_ | 22550 | @@ -573,7 +573,7 @@ int ext4_has_free_blocks(struct ext4_sb_ |
23130 | /* Hm, nope. Are (enough) root reserved blocks available? */ | 22551 | /* Hm, nope. Are (enough) root reserved blocks available? */ |
23131 | if (sbi->s_resuid == current_fsuid() || | 22552 | if (sbi->s_resuid == current_fsuid() || |
23132 | ((sbi->s_resgid != 0) && in_group_p(sbi->s_resgid)) || | 22553 | ((sbi->s_resgid != 0) && in_group_p(sbi->s_resgid)) || |
@@ -23135,9 +22556,9 @@ diff -urNp linux-2.6.29.6/fs/ext4/balloc.c linux-2.6.29.6/fs/ext4/balloc.c | |||
23135 | if (free_blocks >= (nblocks + dirty_blocks)) | 22556 | if (free_blocks >= (nblocks + dirty_blocks)) |
23136 | return 1; | 22557 | return 1; |
23137 | } | 22558 | } |
23138 | diff -urNp linux-2.6.29.6/fs/ext4/file.c linux-2.6.29.6/fs/ext4/file.c | 22559 | diff -urNp linux-2.6.30.4/fs/ext4/file.c linux-2.6.30.4/fs/ext4/file.c |
23139 | --- linux-2.6.29.6/fs/ext4/file.c 2009-07-02 19:41:20.000000000 -0400 | 22560 | --- linux-2.6.30.4/fs/ext4/file.c 2009-07-24 17:47:51.000000000 -0400 |
23140 | +++ linux-2.6.29.6/fs/ext4/file.c 2009-07-23 18:40:28.377699187 -0400 | 22561 | +++ linux-2.6.30.4/fs/ext4/file.c 2009-07-30 09:48:10.082882469 -0400 |
23141 | @@ -128,7 +128,7 @@ force_commit: | 22562 | @@ -128,7 +128,7 @@ force_commit: |
23142 | return ret; | 22563 | return ret; |
23143 | } | 22564 | } |
@@ -23147,10 +22568,10 @@ diff -urNp linux-2.6.29.6/fs/ext4/file.c linux-2.6.29.6/fs/ext4/file.c | |||
23147 | .fault = filemap_fault, | 22568 | .fault = filemap_fault, |
23148 | .page_mkwrite = ext4_page_mkwrite, | 22569 | .page_mkwrite = ext4_page_mkwrite, |
23149 | }; | 22570 | }; |
23150 | diff -urNp linux-2.6.29.6/fs/ext4/mballoc.c linux-2.6.29.6/fs/ext4/mballoc.c | 22571 | diff -urNp linux-2.6.30.4/fs/ext4/mballoc.c linux-2.6.30.4/fs/ext4/mballoc.c |
23151 | --- linux-2.6.29.6/fs/ext4/mballoc.c 2009-07-02 19:41:20.000000000 -0400 | 22572 | --- linux-2.6.30.4/fs/ext4/mballoc.c 2009-07-24 17:47:51.000000000 -0400 |
23152 | +++ linux-2.6.29.6/fs/ext4/mballoc.c 2009-07-23 18:40:28.389509253 -0400 | 22573 | +++ linux-2.6.30.4/fs/ext4/mballoc.c 2009-07-30 09:48:10.083824497 -0400 |
23153 | @@ -2215,7 +2215,7 @@ static void ext4_mb_seq_history_stop(str | 22574 | @@ -2221,7 +2221,7 @@ static void ext4_mb_seq_history_stop(str |
23154 | { | 22575 | { |
23155 | } | 22576 | } |
23156 | 22577 | ||
@@ -23159,7 +22580,7 @@ diff -urNp linux-2.6.29.6/fs/ext4/mballoc.c linux-2.6.29.6/fs/ext4/mballoc.c | |||
23159 | .start = ext4_mb_seq_history_start, | 22580 | .start = ext4_mb_seq_history_start, |
23160 | .next = ext4_mb_seq_history_next, | 22581 | .next = ext4_mb_seq_history_next, |
23161 | .stop = ext4_mb_seq_history_stop, | 22582 | .stop = ext4_mb_seq_history_stop, |
23162 | @@ -2297,7 +2297,7 @@ static ssize_t ext4_mb_seq_history_write | 22583 | @@ -2303,7 +2303,7 @@ static ssize_t ext4_mb_seq_history_write |
23163 | return count; | 22584 | return count; |
23164 | } | 22585 | } |
23165 | 22586 | ||
@@ -23168,7 +22589,7 @@ diff -urNp linux-2.6.29.6/fs/ext4/mballoc.c linux-2.6.29.6/fs/ext4/mballoc.c | |||
23168 | .owner = THIS_MODULE, | 22589 | .owner = THIS_MODULE, |
23169 | .open = ext4_mb_seq_history_open, | 22590 | .open = ext4_mb_seq_history_open, |
23170 | .read = seq_read, | 22591 | .read = seq_read, |
23171 | @@ -2379,7 +2379,7 @@ static void ext4_mb_seq_groups_stop(stru | 22592 | @@ -2385,7 +2385,7 @@ static void ext4_mb_seq_groups_stop(stru |
23172 | { | 22593 | { |
23173 | } | 22594 | } |
23174 | 22595 | ||
@@ -23177,7 +22598,7 @@ diff -urNp linux-2.6.29.6/fs/ext4/mballoc.c linux-2.6.29.6/fs/ext4/mballoc.c | |||
23177 | .start = ext4_mb_seq_groups_start, | 22598 | .start = ext4_mb_seq_groups_start, |
23178 | .next = ext4_mb_seq_groups_next, | 22599 | .next = ext4_mb_seq_groups_next, |
23179 | .stop = ext4_mb_seq_groups_stop, | 22600 | .stop = ext4_mb_seq_groups_stop, |
23180 | @@ -2400,7 +2400,7 @@ static int ext4_mb_seq_groups_open(struc | 22601 | @@ -2406,7 +2406,7 @@ static int ext4_mb_seq_groups_open(struc |
23181 | 22602 | ||
23182 | } | 22603 | } |
23183 | 22604 | ||
@@ -23186,10 +22607,10 @@ diff -urNp linux-2.6.29.6/fs/ext4/mballoc.c linux-2.6.29.6/fs/ext4/mballoc.c | |||
23186 | .owner = THIS_MODULE, | 22607 | .owner = THIS_MODULE, |
23187 | .open = ext4_mb_seq_groups_open, | 22608 | .open = ext4_mb_seq_groups_open, |
23188 | .read = seq_read, | 22609 | .read = seq_read, |
23189 | diff -urNp linux-2.6.29.6/fs/ext4/namei.c linux-2.6.29.6/fs/ext4/namei.c | 22610 | diff -urNp linux-2.6.30.4/fs/ext4/namei.c linux-2.6.30.4/fs/ext4/namei.c |
23190 | --- linux-2.6.29.6/fs/ext4/namei.c 2009-07-02 19:41:20.000000000 -0400 | 22611 | --- linux-2.6.30.4/fs/ext4/namei.c 2009-07-24 17:47:51.000000000 -0400 |
23191 | +++ linux-2.6.29.6/fs/ext4/namei.c 2009-07-23 17:34:32.154747281 -0400 | 22612 | +++ linux-2.6.30.4/fs/ext4/namei.c 2009-07-30 09:48:10.084769862 -0400 |
23192 | @@ -1177,7 +1177,7 @@ static struct ext4_dir_entry_2 *do_split | 22613 | @@ -1203,7 +1203,7 @@ static struct ext4_dir_entry_2 *do_split |
23193 | char *data1 = (*bh)->b_data, *data2; | 22614 | char *data1 = (*bh)->b_data, *data2; |
23194 | unsigned split, move, size; | 22615 | unsigned split, move, size; |
23195 | struct ext4_dir_entry_2 *de = NULL, *de2; | 22616 | struct ext4_dir_entry_2 *de = NULL, *de2; |
@@ -23198,40 +22619,9 @@ diff -urNp linux-2.6.29.6/fs/ext4/namei.c linux-2.6.29.6/fs/ext4/namei.c | |||
23198 | 22619 | ||
23199 | bh2 = ext4_append (handle, dir, &newblock, &err); | 22620 | bh2 = ext4_append (handle, dir, &newblock, &err); |
23200 | if (!(bh2)) { | 22621 | if (!(bh2)) { |
23201 | diff -urNp linux-2.6.29.6/fs/fat/namei_msdos.c linux-2.6.29.6/fs/fat/namei_msdos.c | 22622 | diff -urNp linux-2.6.30.4/fs/fcntl.c linux-2.6.30.4/fs/fcntl.c |
23202 | --- linux-2.6.29.6/fs/fat/namei_msdos.c 2009-07-02 19:41:20.000000000 -0400 | 22623 | --- linux-2.6.30.4/fs/fcntl.c 2009-07-24 17:47:51.000000000 -0400 |
23203 | +++ linux-2.6.29.6/fs/fat/namei_msdos.c 2009-07-23 18:40:28.403484970 -0400 | 22624 | +++ linux-2.6.30.4/fs/fcntl.c 2009-07-30 11:10:49.218051199 -0400 |
23204 | @@ -188,7 +188,7 @@ old_compare: | ||
23205 | goto out; | ||
23206 | } | ||
23207 | |||
23208 | -static struct dentry_operations msdos_dentry_operations = { | ||
23209 | +static const struct dentry_operations msdos_dentry_operations = { | ||
23210 | .d_hash = msdos_hash, | ||
23211 | .d_compare = msdos_cmp, | ||
23212 | }; | ||
23213 | diff -urNp linux-2.6.29.6/fs/fat/namei_vfat.c linux-2.6.29.6/fs/fat/namei_vfat.c | ||
23214 | --- linux-2.6.29.6/fs/fat/namei_vfat.c 2009-07-02 19:41:20.000000000 -0400 | ||
23215 | +++ linux-2.6.29.6/fs/fat/namei_vfat.c 2009-07-23 18:40:28.405445251 -0400 | ||
23216 | @@ -166,13 +166,13 @@ static int vfat_cmp(struct dentry *dentr | ||
23217 | return 1; | ||
23218 | } | ||
23219 | |||
23220 | -static struct dentry_operations vfat_ci_dentry_ops = { | ||
23221 | +static const struct dentry_operations vfat_ci_dentry_ops = { | ||
23222 | .d_revalidate = vfat_revalidate_ci, | ||
23223 | .d_hash = vfat_hashi, | ||
23224 | .d_compare = vfat_cmpi, | ||
23225 | }; | ||
23226 | |||
23227 | -static struct dentry_operations vfat_dentry_ops = { | ||
23228 | +static const struct dentry_operations vfat_dentry_ops = { | ||
23229 | .d_revalidate = vfat_revalidate, | ||
23230 | .d_hash = vfat_hash, | ||
23231 | .d_compare = vfat_cmp, | ||
23232 | diff -urNp linux-2.6.29.6/fs/fcntl.c linux-2.6.29.6/fs/fcntl.c | ||
23233 | --- linux-2.6.29.6/fs/fcntl.c 2009-07-02 19:41:20.000000000 -0400 | ||
23234 | +++ linux-2.6.29.6/fs/fcntl.c 2009-07-23 17:34:32.155702568 -0400 | ||
23235 | @@ -269,6 +269,7 @@ static long do_fcntl(int fd, unsigned in | 22625 | @@ -269,6 +269,7 @@ static long do_fcntl(int fd, unsigned in |
23236 | switch (cmd) { | 22626 | switch (cmd) { |
23237 | case F_DUPFD: | 22627 | case F_DUPFD: |
@@ -23250,9 +22640,9 @@ diff -urNp linux-2.6.29.6/fs/fcntl.c linux-2.6.29.6/fs/fcntl.c | |||
23250 | rcu_read_unlock(); | 22640 | rcu_read_unlock(); |
23251 | return ret; | 22641 | return ret; |
23252 | } | 22642 | } |
23253 | diff -urNp linux-2.6.29.6/fs/file.c linux-2.6.29.6/fs/file.c | 22643 | diff -urNp linux-2.6.30.4/fs/file.c linux-2.6.30.4/fs/file.c |
23254 | --- linux-2.6.29.6/fs/file.c 2009-07-02 19:41:20.000000000 -0400 | 22644 | --- linux-2.6.30.4/fs/file.c 2009-07-24 17:47:51.000000000 -0400 |
23255 | +++ linux-2.6.29.6/fs/file.c 2009-07-23 17:34:32.155702568 -0400 | 22645 | +++ linux-2.6.30.4/fs/file.c 2009-07-30 11:10:49.226664348 -0400 |
23256 | @@ -13,6 +13,7 @@ | 22646 | @@ -13,6 +13,7 @@ |
23257 | #include <linux/slab.h> | 22647 | #include <linux/slab.h> |
23258 | #include <linux/vmalloc.h> | 22648 | #include <linux/vmalloc.h> |
@@ -23270,10 +22660,10 @@ diff -urNp linux-2.6.29.6/fs/file.c linux-2.6.29.6/fs/file.c | |||
23270 | if (nr >= current->signal->rlim[RLIMIT_NOFILE].rlim_cur) | 22660 | if (nr >= current->signal->rlim[RLIMIT_NOFILE].rlim_cur) |
23271 | return -EMFILE; | 22661 | return -EMFILE; |
23272 | 22662 | ||
23273 | diff -urNp linux-2.6.29.6/fs/fs_struct.c linux-2.6.29.6/fs/fs_struct.c | 22663 | diff -urNp linux-2.6.30.4/fs/fs_struct.c linux-2.6.30.4/fs/fs_struct.c |
23274 | --- linux-2.6.29.6/fs/fs_struct.c 2009-07-02 19:41:20.000000000 -0400 | 22664 | --- linux-2.6.30.4/fs/fs_struct.c 2009-07-24 17:47:51.000000000 -0400 |
23275 | +++ linux-2.6.29.6/fs/fs_struct.c 2009-07-23 17:34:32.155702568 -0400 | 22665 | +++ linux-2.6.30.4/fs/fs_struct.c 2009-07-30 09:48:10.084769862 -0400 |
23276 | @@ -88,7 +88,7 @@ void exit_fs(struct task_struct *tsk) | 22666 | @@ -89,7 +89,7 @@ void exit_fs(struct task_struct *tsk) |
23277 | task_lock(tsk); | 22667 | task_lock(tsk); |
23278 | write_lock(&fs->lock); | 22668 | write_lock(&fs->lock); |
23279 | tsk->fs = NULL; | 22669 | tsk->fs = NULL; |
@@ -23282,7 +22672,7 @@ diff -urNp linux-2.6.29.6/fs/fs_struct.c linux-2.6.29.6/fs/fs_struct.c | |||
23282 | write_unlock(&fs->lock); | 22672 | write_unlock(&fs->lock); |
23283 | task_unlock(tsk); | 22673 | task_unlock(tsk); |
23284 | if (kill) | 22674 | if (kill) |
23285 | @@ -101,7 +101,7 @@ struct fs_struct *copy_fs_struct(struct | 22675 | @@ -102,7 +102,7 @@ struct fs_struct *copy_fs_struct(struct |
23286 | struct fs_struct *fs = kmem_cache_alloc(fs_cachep, GFP_KERNEL); | 22676 | struct fs_struct *fs = kmem_cache_alloc(fs_cachep, GFP_KERNEL); |
23287 | /* We don't need to lock fs - think why ;-) */ | 22677 | /* We don't need to lock fs - think why ;-) */ |
23288 | if (fs) { | 22678 | if (fs) { |
@@ -23291,7 +22681,7 @@ diff -urNp linux-2.6.29.6/fs/fs_struct.c linux-2.6.29.6/fs/fs_struct.c | |||
23291 | fs->in_exec = 0; | 22681 | fs->in_exec = 0; |
23292 | rwlock_init(&fs->lock); | 22682 | rwlock_init(&fs->lock); |
23293 | fs->umask = old->umask; | 22683 | fs->umask = old->umask; |
23294 | @@ -126,7 +126,7 @@ int unshare_fs_struct(void) | 22684 | @@ -127,7 +127,7 @@ int unshare_fs_struct(void) |
23295 | 22685 | ||
23296 | task_lock(current); | 22686 | task_lock(current); |
23297 | write_lock(&fs->lock); | 22687 | write_lock(&fs->lock); |
@@ -23300,7 +22690,7 @@ diff -urNp linux-2.6.29.6/fs/fs_struct.c linux-2.6.29.6/fs/fs_struct.c | |||
23300 | current->fs = new_fs; | 22690 | current->fs = new_fs; |
23301 | write_unlock(&fs->lock); | 22691 | write_unlock(&fs->lock); |
23302 | task_unlock(current); | 22692 | task_unlock(current); |
23303 | @@ -140,7 +140,7 @@ EXPORT_SYMBOL_GPL(unshare_fs_struct); | 22693 | @@ -147,7 +147,7 @@ EXPORT_SYMBOL(current_umask); |
23304 | 22694 | ||
23305 | /* to be mentioned only in INIT_TASK */ | 22695 | /* to be mentioned only in INIT_TASK */ |
23306 | struct fs_struct init_fs = { | 22696 | struct fs_struct init_fs = { |
@@ -23309,7 +22699,7 @@ diff -urNp linux-2.6.29.6/fs/fs_struct.c linux-2.6.29.6/fs/fs_struct.c | |||
23309 | .lock = __RW_LOCK_UNLOCKED(init_fs.lock), | 22699 | .lock = __RW_LOCK_UNLOCKED(init_fs.lock), |
23310 | .umask = 0022, | 22700 | .umask = 0022, |
23311 | }; | 22701 | }; |
23312 | @@ -155,12 +155,12 @@ void daemonize_fs_struct(void) | 22702 | @@ -162,12 +162,12 @@ void daemonize_fs_struct(void) |
23313 | task_lock(current); | 22703 | task_lock(current); |
23314 | 22704 | ||
23315 | write_lock(&init_fs.lock); | 22705 | write_lock(&init_fs.lock); |
@@ -23324,9 +22714,9 @@ diff -urNp linux-2.6.29.6/fs/fs_struct.c linux-2.6.29.6/fs/fs_struct.c | |||
23324 | write_unlock(&fs->lock); | 22714 | write_unlock(&fs->lock); |
23325 | 22715 | ||
23326 | task_unlock(current); | 22716 | task_unlock(current); |
23327 | diff -urNp linux-2.6.29.6/fs/fuse/control.c linux-2.6.29.6/fs/fuse/control.c | 22717 | diff -urNp linux-2.6.30.4/fs/fuse/control.c linux-2.6.30.4/fs/fuse/control.c |
23328 | --- linux-2.6.29.6/fs/fuse/control.c 2009-07-02 19:41:20.000000000 -0400 | 22718 | --- linux-2.6.30.4/fs/fuse/control.c 2009-07-24 17:47:51.000000000 -0400 |
23329 | +++ linux-2.6.29.6/fs/fuse/control.c 2009-07-23 17:34:32.155702568 -0400 | 22719 | +++ linux-2.6.30.4/fs/fuse/control.c 2009-07-30 09:48:10.084769862 -0400 |
23330 | @@ -161,7 +161,7 @@ void fuse_ctl_remove_conn(struct fuse_co | 22720 | @@ -161,7 +161,7 @@ void fuse_ctl_remove_conn(struct fuse_co |
23331 | 22721 | ||
23332 | static int fuse_ctl_fill_super(struct super_block *sb, void *data, int silent) | 22722 | static int fuse_ctl_fill_super(struct super_block *sb, void *data, int silent) |
@@ -23336,19 +22726,10 @@ diff -urNp linux-2.6.29.6/fs/fuse/control.c linux-2.6.29.6/fs/fuse/control.c | |||
23336 | struct fuse_conn *fc; | 22726 | struct fuse_conn *fc; |
23337 | int err; | 22727 | int err; |
23338 | 22728 | ||
23339 | diff -urNp linux-2.6.29.6/fs/fuse/dir.c linux-2.6.29.6/fs/fuse/dir.c | 22729 | diff -urNp linux-2.6.30.4/fs/fuse/dir.c linux-2.6.30.4/fs/fuse/dir.c |
23340 | --- linux-2.6.29.6/fs/fuse/dir.c 2009-07-02 19:41:20.000000000 -0400 | 22730 | --- linux-2.6.30.4/fs/fuse/dir.c 2009-07-24 17:47:51.000000000 -0400 |
23341 | +++ linux-2.6.29.6/fs/fuse/dir.c 2009-07-23 18:40:27.470335769 -0400 | 22731 | +++ linux-2.6.30.4/fs/fuse/dir.c 2009-07-30 09:48:10.085789827 -0400 |
23342 | @@ -224,7 +224,7 @@ static int invalid_nodeid(u64 nodeid) | 22732 | @@ -1082,7 +1082,7 @@ static char *read_link(struct dentry *de |
23343 | return !nodeid || nodeid == FUSE_ROOT_ID; | ||
23344 | } | ||
23345 | |||
23346 | -struct dentry_operations fuse_dentry_operations = { | ||
23347 | +const struct dentry_operations fuse_dentry_operations = { | ||
23348 | .d_revalidate = fuse_dentry_revalidate, | ||
23349 | }; | ||
23350 | |||
23351 | @@ -1081,7 +1081,7 @@ static char *read_link(struct dentry *de | ||
23352 | return link; | 22733 | return link; |
23353 | } | 22734 | } |
23354 | 22735 | ||
@@ -23357,10 +22738,10 @@ diff -urNp linux-2.6.29.6/fs/fuse/dir.c linux-2.6.29.6/fs/fuse/dir.c | |||
23357 | { | 22738 | { |
23358 | if (!IS_ERR(link)) | 22739 | if (!IS_ERR(link)) |
23359 | free_page((unsigned long) link); | 22740 | free_page((unsigned long) link); |
23360 | diff -urNp linux-2.6.29.6/fs/fuse/file.c linux-2.6.29.6/fs/fuse/file.c | 22741 | diff -urNp linux-2.6.30.4/fs/fuse/file.c linux-2.6.30.4/fs/fuse/file.c |
23361 | --- linux-2.6.29.6/fs/fuse/file.c 2009-07-02 19:41:20.000000000 -0400 | 22742 | --- linux-2.6.30.4/fs/fuse/file.c 2009-07-24 17:47:51.000000000 -0400 |
23362 | +++ linux-2.6.29.6/fs/fuse/file.c 2009-07-23 18:40:28.411550599 -0400 | 22743 | +++ linux-2.6.30.4/fs/fuse/file.c 2009-07-30 09:48:10.085789827 -0400 |
23363 | @@ -1247,7 +1247,7 @@ static int fuse_page_mkwrite(struct vm_a | 22744 | @@ -1265,7 +1265,7 @@ static int fuse_page_mkwrite(struct vm_a |
23364 | return 0; | 22745 | return 0; |
23365 | } | 22746 | } |
23366 | 22747 | ||
@@ -23369,34 +22750,10 @@ diff -urNp linux-2.6.29.6/fs/fuse/file.c linux-2.6.29.6/fs/fuse/file.c | |||
23369 | .close = fuse_vma_close, | 22750 | .close = fuse_vma_close, |
23370 | .fault = filemap_fault, | 22751 | .fault = filemap_fault, |
23371 | .page_mkwrite = fuse_page_mkwrite, | 22752 | .page_mkwrite = fuse_page_mkwrite, |
23372 | diff -urNp linux-2.6.29.6/fs/fuse/fuse_i.h linux-2.6.29.6/fs/fuse/fuse_i.h | 22753 | diff -urNp linux-2.6.30.4/fs/gfs2/ops_file.c linux-2.6.30.4/fs/gfs2/ops_file.c |
23373 | --- linux-2.6.29.6/fs/fuse/fuse_i.h 2009-07-02 19:41:20.000000000 -0400 | 22754 | --- linux-2.6.30.4/fs/gfs2/ops_file.c 2009-07-24 17:47:51.000000000 -0400 |
23374 | +++ linux-2.6.29.6/fs/fuse/fuse_i.h 2009-07-23 18:40:28.412448044 -0400 | 22755 | +++ linux-2.6.30.4/fs/gfs2/ops_file.c 2009-07-30 09:48:10.086770196 -0400 |
23375 | @@ -493,7 +493,7 @@ static inline u64 get_node_id(struct ino | 22756 | @@ -420,7 +420,7 @@ out: |
23376 | /** Device operations */ | ||
23377 | extern const struct file_operations fuse_dev_operations; | ||
23378 | |||
23379 | -extern struct dentry_operations fuse_dentry_operations; | ||
23380 | +extern const struct dentry_operations fuse_dentry_operations; | ||
23381 | |||
23382 | /** | ||
23383 | * Get a filled in inode | ||
23384 | diff -urNp linux-2.6.29.6/fs/gfs2/ops_dentry.c linux-2.6.29.6/fs/gfs2/ops_dentry.c | ||
23385 | --- linux-2.6.29.6/fs/gfs2/ops_dentry.c 2009-07-02 19:41:20.000000000 -0400 | ||
23386 | +++ linux-2.6.29.6/fs/gfs2/ops_dentry.c 2009-07-23 18:40:28.417529345 -0400 | ||
23387 | @@ -108,7 +108,7 @@ static int gfs2_dhash(struct dentry *den | ||
23388 | return 0; | ||
23389 | } | ||
23390 | |||
23391 | -struct dentry_operations gfs2_dops = { | ||
23392 | +const struct dentry_operations gfs2_dops = { | ||
23393 | .d_revalidate = gfs2_drevalidate, | ||
23394 | .d_hash = gfs2_dhash, | ||
23395 | }; | ||
23396 | diff -urNp linux-2.6.29.6/fs/gfs2/ops_file.c linux-2.6.29.6/fs/gfs2/ops_file.c | ||
23397 | --- linux-2.6.29.6/fs/gfs2/ops_file.c 2009-07-02 19:41:20.000000000 -0400 | ||
23398 | +++ linux-2.6.29.6/fs/gfs2/ops_file.c 2009-07-23 18:40:28.423342085 -0400 | ||
23399 | @@ -417,7 +417,7 @@ out: | ||
23400 | return ret; | 22757 | return ret; |
23401 | } | 22758 | } |
23402 | 22759 | ||
@@ -23405,22 +22762,10 @@ diff -urNp linux-2.6.29.6/fs/gfs2/ops_file.c linux-2.6.29.6/fs/gfs2/ops_file.c | |||
23405 | .fault = filemap_fault, | 22762 | .fault = filemap_fault, |
23406 | .page_mkwrite = gfs2_page_mkwrite, | 22763 | .page_mkwrite = gfs2_page_mkwrite, |
23407 | }; | 22764 | }; |
23408 | diff -urNp linux-2.6.29.6/fs/gfs2/super.h linux-2.6.29.6/fs/gfs2/super.h | 22765 | diff -urNp linux-2.6.30.4/fs/hfs/inode.c linux-2.6.30.4/fs/hfs/inode.c |
23409 | --- linux-2.6.29.6/fs/gfs2/super.h 2009-07-02 19:41:20.000000000 -0400 | 22766 | --- linux-2.6.30.4/fs/hfs/inode.c 2009-07-24 17:47:51.000000000 -0400 |
23410 | +++ linux-2.6.29.6/fs/gfs2/super.h 2009-07-23 18:40:28.431261400 -0400 | 22767 | +++ linux-2.6.30.4/fs/hfs/inode.c 2009-07-30 09:48:10.086770196 -0400 |
23411 | @@ -47,7 +47,7 @@ extern struct file_system_type gfs2_fs_t | 22768 | @@ -423,7 +423,7 @@ int hfs_write_inode(struct inode *inode, |
23412 | extern struct file_system_type gfs2meta_fs_type; | ||
23413 | extern const struct export_operations gfs2_export_ops; | ||
23414 | extern const struct super_operations gfs2_super_ops; | ||
23415 | -extern struct dentry_operations gfs2_dops; | ||
23416 | +extern const struct dentry_operations gfs2_dops; | ||
23417 | |||
23418 | #endif /* __SUPER_DOT_H__ */ | ||
23419 | |||
23420 | diff -urNp linux-2.6.29.6/fs/hfs/inode.c linux-2.6.29.6/fs/hfs/inode.c | ||
23421 | --- linux-2.6.29.6/fs/hfs/inode.c 2009-07-02 19:41:20.000000000 -0400 | ||
23422 | +++ linux-2.6.29.6/fs/hfs/inode.c 2009-07-23 17:34:32.156720374 -0400 | ||
23423 | @@ -419,7 +419,7 @@ int hfs_write_inode(struct inode *inode, | ||
23424 | 22769 | ||
23425 | if (S_ISDIR(main_inode->i_mode)) { | 22770 | if (S_ISDIR(main_inode->i_mode)) { |
23426 | if (fd.entrylength < sizeof(struct hfs_cat_dir)) | 22771 | if (fd.entrylength < sizeof(struct hfs_cat_dir)) |
@@ -23429,7 +22774,7 @@ diff -urNp linux-2.6.29.6/fs/hfs/inode.c linux-2.6.29.6/fs/hfs/inode.c | |||
23429 | hfs_bnode_read(fd.bnode, &rec, fd.entryoffset, | 22774 | hfs_bnode_read(fd.bnode, &rec, fd.entryoffset, |
23430 | sizeof(struct hfs_cat_dir)); | 22775 | sizeof(struct hfs_cat_dir)); |
23431 | if (rec.type != HFS_CDR_DIR || | 22776 | if (rec.type != HFS_CDR_DIR || |
23432 | @@ -440,7 +440,7 @@ int hfs_write_inode(struct inode *inode, | 22777 | @@ -444,7 +444,7 @@ int hfs_write_inode(struct inode *inode, |
23433 | sizeof(struct hfs_cat_file)); | 22778 | sizeof(struct hfs_cat_file)); |
23434 | } else { | 22779 | } else { |
23435 | if (fd.entrylength < sizeof(struct hfs_cat_file)) | 22780 | if (fd.entrylength < sizeof(struct hfs_cat_file)) |
@@ -23438,30 +22783,9 @@ diff -urNp linux-2.6.29.6/fs/hfs/inode.c linux-2.6.29.6/fs/hfs/inode.c | |||
23438 | hfs_bnode_read(fd.bnode, &rec, fd.entryoffset, | 22783 | hfs_bnode_read(fd.bnode, &rec, fd.entryoffset, |
23439 | sizeof(struct hfs_cat_file)); | 22784 | sizeof(struct hfs_cat_file)); |
23440 | if (rec.type != HFS_CDR_FIL || | 22785 | if (rec.type != HFS_CDR_FIL || |
23441 | diff -urNp linux-2.6.29.6/fs/hfsplus/hfsplus_fs.h linux-2.6.29.6/fs/hfsplus/hfsplus_fs.h | 22786 | diff -urNp linux-2.6.30.4/fs/hfsplus/inode.c linux-2.6.30.4/fs/hfsplus/inode.c |
23442 | --- linux-2.6.29.6/fs/hfsplus/hfsplus_fs.h 2009-07-02 19:41:20.000000000 -0400 | 22787 | --- linux-2.6.30.4/fs/hfsplus/inode.c 2009-07-24 17:47:51.000000000 -0400 |
23443 | +++ linux-2.6.29.6/fs/hfsplus/hfsplus_fs.h 2009-07-23 18:40:28.441324863 -0400 | 22788 | +++ linux-2.6.30.4/fs/hfsplus/inode.c 2009-07-30 09:48:10.086770196 -0400 |
23444 | @@ -327,7 +327,7 @@ void hfsplus_file_truncate(struct inode | ||
23445 | /* inode.c */ | ||
23446 | extern const struct address_space_operations hfsplus_aops; | ||
23447 | extern const struct address_space_operations hfsplus_btree_aops; | ||
23448 | -extern struct dentry_operations hfsplus_dentry_operations; | ||
23449 | +extern const struct dentry_operations hfsplus_dentry_operations; | ||
23450 | |||
23451 | void hfsplus_inode_read_fork(struct inode *, struct hfsplus_fork_raw *); | ||
23452 | void hfsplus_inode_write_fork(struct inode *, struct hfsplus_fork_raw *); | ||
23453 | diff -urNp linux-2.6.29.6/fs/hfsplus/inode.c linux-2.6.29.6/fs/hfsplus/inode.c | ||
23454 | --- linux-2.6.29.6/fs/hfsplus/inode.c 2009-07-02 19:41:20.000000000 -0400 | ||
23455 | +++ linux-2.6.29.6/fs/hfsplus/inode.c 2009-07-23 18:40:27.470335769 -0400 | ||
23456 | @@ -137,7 +137,7 @@ const struct address_space_operations hf | ||
23457 | .writepages = hfsplus_writepages, | ||
23458 | }; | ||
23459 | |||
23460 | -struct dentry_operations hfsplus_dentry_operations = { | ||
23461 | +const struct dentry_operations hfsplus_dentry_operations = { | ||
23462 | .d_hash = hfsplus_hash_dentry, | ||
23463 | .d_compare = hfsplus_compare_dentry, | ||
23464 | }; | ||
23465 | @@ -406,7 +406,7 @@ int hfsplus_cat_read_inode(struct inode | 22789 | @@ -406,7 +406,7 @@ int hfsplus_cat_read_inode(struct inode |
23466 | struct hfsplus_cat_folder *folder = &entry.folder; | 22790 | struct hfsplus_cat_folder *folder = &entry.folder; |
23467 | 22791 | ||
@@ -23498,45 +22822,9 @@ diff -urNp linux-2.6.29.6/fs/hfsplus/inode.c linux-2.6.29.6/fs/hfsplus/inode.c | |||
23498 | hfs_bnode_read(fd.bnode, &entry, fd.entryoffset, | 22822 | hfs_bnode_read(fd.bnode, &entry, fd.entryoffset, |
23499 | sizeof(struct hfsplus_cat_file)); | 22823 | sizeof(struct hfsplus_cat_file)); |
23500 | hfsplus_inode_write_fork(inode, &file->data_fork); | 22824 | hfsplus_inode_write_fork(inode, &file->data_fork); |
23501 | diff -urNp linux-2.6.29.6/fs/hostfs/hostfs_kern.c linux-2.6.29.6/fs/hostfs/hostfs_kern.c | 22825 | diff -urNp linux-2.6.30.4/fs/jbd2/journal.c linux-2.6.30.4/fs/jbd2/journal.c |
23502 | --- linux-2.6.29.6/fs/hostfs/hostfs_kern.c 2009-07-02 19:41:20.000000000 -0400 | 22826 | --- linux-2.6.30.4/fs/jbd2/journal.c 2009-07-24 17:47:51.000000000 -0400 |
23503 | +++ linux-2.6.29.6/fs/hostfs/hostfs_kern.c 2009-07-23 18:40:28.461464563 -0400 | 22827 | +++ linux-2.6.30.4/fs/jbd2/journal.c 2009-07-30 09:48:10.087743830 -0400 |
23504 | @@ -36,7 +36,7 @@ int hostfs_d_delete(struct dentry *dentr | ||
23505 | return 1; | ||
23506 | } | ||
23507 | |||
23508 | -struct dentry_operations hostfs_dentry_ops = { | ||
23509 | +const struct dentry_operations hostfs_dentry_ops = { | ||
23510 | .d_delete = hostfs_d_delete, | ||
23511 | }; | ||
23512 | |||
23513 | diff -urNp linux-2.6.29.6/fs/hpfs/dentry.c linux-2.6.29.6/fs/hpfs/dentry.c | ||
23514 | --- linux-2.6.29.6/fs/hpfs/dentry.c 2009-07-02 19:41:20.000000000 -0400 | ||
23515 | +++ linux-2.6.29.6/fs/hpfs/dentry.c 2009-07-23 18:40:28.465659763 -0400 | ||
23516 | @@ -49,7 +49,7 @@ static int hpfs_compare_dentry(struct de | ||
23517 | return 0; | ||
23518 | } | ||
23519 | |||
23520 | -static struct dentry_operations hpfs_dentry_operations = { | ||
23521 | +static const struct dentry_operations hpfs_dentry_operations = { | ||
23522 | .d_hash = hpfs_hash_dentry, | ||
23523 | .d_compare = hpfs_compare_dentry, | ||
23524 | }; | ||
23525 | diff -urNp linux-2.6.29.6/fs/isofs/inode.c linux-2.6.29.6/fs/isofs/inode.c | ||
23526 | --- linux-2.6.29.6/fs/isofs/inode.c 2009-07-02 19:41:20.000000000 -0400 | ||
23527 | +++ linux-2.6.29.6/fs/isofs/inode.c 2009-07-23 18:40:28.473700311 -0400 | ||
23528 | @@ -114,7 +114,7 @@ static const struct super_operations iso | ||
23529 | }; | ||
23530 | |||
23531 | |||
23532 | -static struct dentry_operations isofs_dentry_ops[] = { | ||
23533 | +static const struct dentry_operations isofs_dentry_ops[] = { | ||
23534 | { | ||
23535 | .d_hash = isofs_hash, | ||
23536 | .d_compare = isofs_dentry_cmp, | ||
23537 | diff -urNp linux-2.6.29.6/fs/jbd2/journal.c linux-2.6.29.6/fs/jbd2/journal.c | ||
23538 | --- linux-2.6.29.6/fs/jbd2/journal.c 2009-07-02 19:41:20.000000000 -0400 | ||
23539 | +++ linux-2.6.29.6/fs/jbd2/journal.c 2009-07-23 18:40:28.491739581 -0400 | ||
23540 | @@ -762,7 +762,7 @@ static void jbd2_seq_history_stop(struct | 22828 | @@ -762,7 +762,7 @@ static void jbd2_seq_history_stop(struct |
23541 | { | 22829 | { |
23542 | } | 22830 | } |
@@ -23573,9 +22861,9 @@ diff -urNp linux-2.6.29.6/fs/jbd2/journal.c linux-2.6.29.6/fs/jbd2/journal.c | |||
23573 | .owner = THIS_MODULE, | 22861 | .owner = THIS_MODULE, |
23574 | .open = jbd2_seq_info_open, | 22862 | .open = jbd2_seq_info_open, |
23575 | .read = seq_read, | 22863 | .read = seq_read, |
23576 | diff -urNp linux-2.6.29.6/fs/jffs2/debug.h linux-2.6.29.6/fs/jffs2/debug.h | 22864 | diff -urNp linux-2.6.30.4/fs/jffs2/debug.h linux-2.6.30.4/fs/jffs2/debug.h |
23577 | --- linux-2.6.29.6/fs/jffs2/debug.h 2009-07-02 19:41:20.000000000 -0400 | 22865 | --- linux-2.6.30.4/fs/jffs2/debug.h 2009-07-24 17:47:51.000000000 -0400 |
23578 | +++ linux-2.6.29.6/fs/jffs2/debug.h 2009-07-23 17:34:32.156720374 -0400 | 22866 | +++ linux-2.6.30.4/fs/jffs2/debug.h 2009-07-30 09:48:10.087743830 -0400 |
23579 | @@ -52,13 +52,13 @@ | 22867 | @@ -52,13 +52,13 @@ |
23580 | #if CONFIG_JFFS2_FS_DEBUG > 0 | 22868 | #if CONFIG_JFFS2_FS_DEBUG > 0 |
23581 | #define D1(x) x | 22869 | #define D1(x) x |
@@ -23677,9 +22965,9 @@ diff -urNp linux-2.6.29.6/fs/jffs2/debug.h linux-2.6.29.6/fs/jffs2/debug.h | |||
23677 | #endif | 22965 | #endif |
23678 | 22966 | ||
23679 | /* "Sanity" checks */ | 22967 | /* "Sanity" checks */ |
23680 | diff -urNp linux-2.6.29.6/fs/jffs2/erase.c linux-2.6.29.6/fs/jffs2/erase.c | 22968 | diff -urNp linux-2.6.30.4/fs/jffs2/erase.c linux-2.6.30.4/fs/jffs2/erase.c |
23681 | --- linux-2.6.29.6/fs/jffs2/erase.c 2009-07-02 19:41:20.000000000 -0400 | 22969 | --- linux-2.6.30.4/fs/jffs2/erase.c 2009-07-24 17:47:51.000000000 -0400 |
23682 | +++ linux-2.6.29.6/fs/jffs2/erase.c 2009-07-23 17:34:32.157742760 -0400 | 22970 | +++ linux-2.6.30.4/fs/jffs2/erase.c 2009-07-30 09:48:10.087743830 -0400 |
23683 | @@ -432,7 +432,8 @@ static void jffs2_mark_erased_block(stru | 22971 | @@ -432,7 +432,8 @@ static void jffs2_mark_erased_block(stru |
23684 | struct jffs2_unknown_node marker = { | 22972 | struct jffs2_unknown_node marker = { |
23685 | .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK), | 22973 | .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK), |
@@ -23690,9 +22978,9 @@ diff -urNp linux-2.6.29.6/fs/jffs2/erase.c linux-2.6.29.6/fs/jffs2/erase.c | |||
23690 | }; | 22978 | }; |
23691 | 22979 | ||
23692 | jffs2_prealloc_raw_node_refs(c, jeb, 1); | 22980 | jffs2_prealloc_raw_node_refs(c, jeb, 1); |
23693 | diff -urNp linux-2.6.29.6/fs/jffs2/summary.h linux-2.6.29.6/fs/jffs2/summary.h | 22981 | diff -urNp linux-2.6.30.4/fs/jffs2/summary.h linux-2.6.30.4/fs/jffs2/summary.h |
23694 | --- linux-2.6.29.6/fs/jffs2/summary.h 2009-07-02 19:41:20.000000000 -0400 | 22982 | --- linux-2.6.30.4/fs/jffs2/summary.h 2009-07-24 17:47:51.000000000 -0400 |
23695 | +++ linux-2.6.29.6/fs/jffs2/summary.h 2009-07-23 17:34:32.157742760 -0400 | 22983 | +++ linux-2.6.30.4/fs/jffs2/summary.h 2009-07-30 09:48:10.088709552 -0400 |
23696 | @@ -194,18 +194,18 @@ int jffs2_sum_scan_sumnode(struct jffs2_ | 22984 | @@ -194,18 +194,18 @@ int jffs2_sum_scan_sumnode(struct jffs2_ |
23697 | 22985 | ||
23698 | #define jffs2_sum_active() (0) | 22986 | #define jffs2_sum_active() (0) |
@@ -23721,9 +23009,9 @@ diff -urNp linux-2.6.29.6/fs/jffs2/summary.h linux-2.6.29.6/fs/jffs2/summary.h | |||
23721 | #define jffs2_sum_scan_sumnode(a,b,c,d,e) (0) | 23009 | #define jffs2_sum_scan_sumnode(a,b,c,d,e) (0) |
23722 | 23010 | ||
23723 | #endif /* CONFIG_JFFS2_SUMMARY */ | 23011 | #endif /* CONFIG_JFFS2_SUMMARY */ |
23724 | diff -urNp linux-2.6.29.6/fs/jffs2/wbuf.c linux-2.6.29.6/fs/jffs2/wbuf.c | 23012 | diff -urNp linux-2.6.30.4/fs/jffs2/wbuf.c linux-2.6.30.4/fs/jffs2/wbuf.c |
23725 | --- linux-2.6.29.6/fs/jffs2/wbuf.c 2009-07-02 19:41:20.000000000 -0400 | 23013 | --- linux-2.6.30.4/fs/jffs2/wbuf.c 2009-07-24 17:47:51.000000000 -0400 |
23726 | +++ linux-2.6.29.6/fs/jffs2/wbuf.c 2009-07-23 17:34:32.157742760 -0400 | 23014 | +++ linux-2.6.30.4/fs/jffs2/wbuf.c 2009-07-30 09:48:10.088709552 -0400 |
23727 | @@ -1012,7 +1012,8 @@ static const struct jffs2_unknown_node o | 23015 | @@ -1012,7 +1012,8 @@ static const struct jffs2_unknown_node o |
23728 | { | 23016 | { |
23729 | .magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK), | 23017 | .magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK), |
@@ -23734,9 +23022,9 @@ diff -urNp linux-2.6.29.6/fs/jffs2/wbuf.c linux-2.6.29.6/fs/jffs2/wbuf.c | |||
23734 | }; | 23022 | }; |
23735 | 23023 | ||
23736 | /* | 23024 | /* |
23737 | diff -urNp linux-2.6.29.6/fs/locks.c linux-2.6.29.6/fs/locks.c | 23025 | diff -urNp linux-2.6.30.4/fs/locks.c linux-2.6.30.4/fs/locks.c |
23738 | --- linux-2.6.29.6/fs/locks.c 2009-07-02 19:41:20.000000000 -0400 | 23026 | --- linux-2.6.30.4/fs/locks.c 2009-07-24 17:47:51.000000000 -0400 |
23739 | +++ linux-2.6.29.6/fs/locks.c 2009-07-23 17:34:32.158731356 -0400 | 23027 | +++ linux-2.6.30.4/fs/locks.c 2009-07-30 09:48:10.089659107 -0400 |
23740 | @@ -2006,16 +2006,16 @@ void locks_remove_flock(struct file *fil | 23028 | @@ -2006,16 +2006,16 @@ void locks_remove_flock(struct file *fil |
23741 | return; | 23029 | return; |
23742 | 23030 | ||
@@ -23758,10 +23046,10 @@ diff -urNp linux-2.6.29.6/fs/locks.c linux-2.6.29.6/fs/locks.c | |||
23758 | } | 23046 | } |
23759 | 23047 | ||
23760 | lock_kernel(); | 23048 | lock_kernel(); |
23761 | diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | 23049 | diff -urNp linux-2.6.30.4/fs/namei.c linux-2.6.30.4/fs/namei.c |
23762 | --- linux-2.6.29.6/fs/namei.c 2009-07-02 19:41:20.000000000 -0400 | 23050 | --- linux-2.6.30.4/fs/namei.c 2009-07-24 17:47:51.000000000 -0400 |
23763 | +++ linux-2.6.29.6/fs/namei.c 2009-07-23 17:34:32.158731356 -0400 | 23051 | +++ linux-2.6.30.4/fs/namei.c 2009-07-30 11:33:24.872476011 -0400 |
23764 | @@ -622,7 +622,7 @@ static __always_inline int __do_follow_l | 23052 | @@ -624,7 +624,7 @@ static __always_inline int __do_follow_l |
23765 | cookie = dentry->d_inode->i_op->follow_link(dentry, nd); | 23053 | cookie = dentry->d_inode->i_op->follow_link(dentry, nd); |
23766 | error = PTR_ERR(cookie); | 23054 | error = PTR_ERR(cookie); |
23767 | if (!IS_ERR(cookie)) { | 23055 | if (!IS_ERR(cookie)) { |
@@ -23770,7 +23058,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23770 | error = 0; | 23058 | error = 0; |
23771 | if (s) | 23059 | if (s) |
23772 | error = __vfs_follow_link(nd, s); | 23060 | error = __vfs_follow_link(nd, s); |
23773 | @@ -653,6 +653,13 @@ static inline int do_follow_link(struct | 23061 | @@ -655,6 +655,13 @@ static inline int do_follow_link(struct |
23774 | err = security_inode_follow_link(path->dentry, nd); | 23062 | err = security_inode_follow_link(path->dentry, nd); |
23775 | if (err) | 23063 | if (err) |
23776 | goto loop; | 23064 | goto loop; |
@@ -23784,7 +23072,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23784 | current->link_count++; | 23072 | current->link_count++; |
23785 | current->total_link_count++; | 23073 | current->total_link_count++; |
23786 | nd->depth++; | 23074 | nd->depth++; |
23787 | @@ -996,11 +1003,18 @@ return_reval: | 23075 | @@ -1000,11 +1007,18 @@ return_reval: |
23788 | break; | 23076 | break; |
23789 | } | 23077 | } |
23790 | return_base: | 23078 | return_base: |
@@ -23803,7 +23091,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23803 | path_put(&nd->path); | 23091 | path_put(&nd->path); |
23804 | return_err: | 23092 | return_err: |
23805 | return err; | 23093 | return err; |
23806 | @@ -1571,12 +1585,19 @@ static int __open_namei_create(struct na | 23094 | @@ -1580,12 +1594,19 @@ static int __open_namei_create(struct na |
23807 | int error; | 23095 | int error; |
23808 | struct dentry *dir = nd->path.dentry; | 23096 | struct dentry *dir = nd->path.dentry; |
23809 | 23097 | ||
@@ -23813,7 +23101,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23813 | + } | 23101 | + } |
23814 | + | 23102 | + |
23815 | if (!IS_POSIXACL(dir->d_inode)) | 23103 | if (!IS_POSIXACL(dir->d_inode)) |
23816 | mode &= ~current->fs->umask; | 23104 | mode &= ~current_umask(); |
23817 | error = security_path_mknod(&nd->path, path->dentry, mode, 0); | 23105 | error = security_path_mknod(&nd->path, path->dentry, mode, 0); |
23818 | if (error) | 23106 | if (error) |
23819 | goto out_unlock; | 23107 | goto out_unlock; |
@@ -23823,7 +23111,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23823 | out_unlock: | 23111 | out_unlock: |
23824 | mutex_unlock(&dir->d_inode->i_mutex); | 23112 | mutex_unlock(&dir->d_inode->i_mutex); |
23825 | dput(nd->path.dentry); | 23113 | dput(nd->path.dentry); |
23826 | @@ -1658,6 +1679,17 @@ struct file *do_filp_open(int dfd, const | 23114 | @@ -1668,6 +1689,17 @@ struct file *do_filp_open(int dfd, const |
23827 | &nd, flag); | 23115 | &nd, flag); |
23828 | if (error) | 23116 | if (error) |
23829 | return ERR_PTR(error); | 23117 | return ERR_PTR(error); |
@@ -23841,7 +23129,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23841 | goto ok; | 23129 | goto ok; |
23842 | } | 23130 | } |
23843 | 23131 | ||
23844 | @@ -1730,6 +1762,20 @@ do_last: | 23132 | @@ -1740,6 +1772,20 @@ do_last: |
23845 | /* | 23133 | /* |
23846 | * It already exists. | 23134 | * It already exists. |
23847 | */ | 23135 | */ |
@@ -23862,7 +23150,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23862 | mutex_unlock(&dir->d_inode->i_mutex); | 23150 | mutex_unlock(&dir->d_inode->i_mutex); |
23863 | audit_inode(pathname, path.dentry); | 23151 | audit_inode(pathname, path.dentry); |
23864 | 23152 | ||
23865 | @@ -1815,6 +1861,13 @@ do_link: | 23153 | @@ -1825,6 +1871,13 @@ do_link: |
23866 | error = security_inode_follow_link(path.dentry, &nd); | 23154 | error = security_inode_follow_link(path.dentry, &nd); |
23867 | if (error) | 23155 | if (error) |
23868 | goto exit_dput; | 23156 | goto exit_dput; |
@@ -23876,7 +23164,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23876 | error = __do_follow_link(&path, &nd); | 23164 | error = __do_follow_link(&path, &nd); |
23877 | if (error) { | 23165 | if (error) { |
23878 | /* Does someone understand code flow here? Or it is only | 23166 | /* Does someone understand code flow here? Or it is only |
23879 | @@ -1987,6 +2040,17 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const | 23167 | @@ -1997,6 +2050,17 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const |
23880 | error = may_mknod(mode); | 23168 | error = may_mknod(mode); |
23881 | if (error) | 23169 | if (error) |
23882 | goto out_dput; | 23170 | goto out_dput; |
@@ -23894,7 +23182,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23894 | error = mnt_want_write(nd.path.mnt); | 23182 | error = mnt_want_write(nd.path.mnt); |
23895 | if (error) | 23183 | if (error) |
23896 | goto out_dput; | 23184 | goto out_dput; |
23897 | @@ -2007,6 +2071,9 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const | 23185 | @@ -2017,6 +2081,9 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const |
23898 | } | 23186 | } |
23899 | out_drop_write: | 23187 | out_drop_write: |
23900 | mnt_drop_write(nd.path.mnt); | 23188 | mnt_drop_write(nd.path.mnt); |
@@ -23904,7 +23192,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23904 | out_dput: | 23192 | out_dput: |
23905 | dput(dentry); | 23193 | dput(dentry); |
23906 | out_unlock: | 23194 | out_unlock: |
23907 | @@ -2060,6 +2127,11 @@ SYSCALL_DEFINE3(mkdirat, int, dfd, const | 23195 | @@ -2070,6 +2137,11 @@ SYSCALL_DEFINE3(mkdirat, int, dfd, const |
23908 | if (IS_ERR(dentry)) | 23196 | if (IS_ERR(dentry)) |
23909 | goto out_unlock; | 23197 | goto out_unlock; |
23910 | 23198 | ||
@@ -23914,9 +23202,9 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23914 | + } | 23202 | + } |
23915 | + | 23203 | + |
23916 | if (!IS_POSIXACL(nd.path.dentry->d_inode)) | 23204 | if (!IS_POSIXACL(nd.path.dentry->d_inode)) |
23917 | mode &= ~current->fs->umask; | 23205 | mode &= ~current_umask(); |
23918 | error = mnt_want_write(nd.path.mnt); | 23206 | error = mnt_want_write(nd.path.mnt); |
23919 | @@ -2071,6 +2143,10 @@ SYSCALL_DEFINE3(mkdirat, int, dfd, const | 23207 | @@ -2081,6 +2153,10 @@ SYSCALL_DEFINE3(mkdirat, int, dfd, const |
23920 | error = vfs_mkdir(nd.path.dentry->d_inode, dentry, mode); | 23208 | error = vfs_mkdir(nd.path.dentry->d_inode, dentry, mode); |
23921 | out_drop_write: | 23209 | out_drop_write: |
23922 | mnt_drop_write(nd.path.mnt); | 23210 | mnt_drop_write(nd.path.mnt); |
@@ -23927,7 +23215,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23927 | out_dput: | 23215 | out_dput: |
23928 | dput(dentry); | 23216 | dput(dentry); |
23929 | out_unlock: | 23217 | out_unlock: |
23930 | @@ -2152,6 +2228,8 @@ static long do_rmdir(int dfd, const char | 23218 | @@ -2162,6 +2238,8 @@ static long do_rmdir(int dfd, const char |
23931 | char * name; | 23219 | char * name; |
23932 | struct dentry *dentry; | 23220 | struct dentry *dentry; |
23933 | struct nameidata nd; | 23221 | struct nameidata nd; |
@@ -23936,7 +23224,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23936 | 23224 | ||
23937 | error = user_path_parent(dfd, pathname, &nd, &name); | 23225 | error = user_path_parent(dfd, pathname, &nd, &name); |
23938 | if (error) | 23226 | if (error) |
23939 | @@ -2176,6 +2254,19 @@ static long do_rmdir(int dfd, const char | 23227 | @@ -2186,6 +2264,19 @@ static long do_rmdir(int dfd, const char |
23940 | error = PTR_ERR(dentry); | 23228 | error = PTR_ERR(dentry); |
23941 | if (IS_ERR(dentry)) | 23229 | if (IS_ERR(dentry)) |
23942 | goto exit2; | 23230 | goto exit2; |
@@ -23956,7 +23244,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23956 | error = mnt_want_write(nd.path.mnt); | 23244 | error = mnt_want_write(nd.path.mnt); |
23957 | if (error) | 23245 | if (error) |
23958 | goto exit3; | 23246 | goto exit3; |
23959 | @@ -2183,6 +2274,8 @@ static long do_rmdir(int dfd, const char | 23247 | @@ -2193,6 +2284,8 @@ static long do_rmdir(int dfd, const char |
23960 | if (error) | 23248 | if (error) |
23961 | goto exit4; | 23249 | goto exit4; |
23962 | error = vfs_rmdir(nd.path.dentry->d_inode, dentry); | 23250 | error = vfs_rmdir(nd.path.dentry->d_inode, dentry); |
@@ -23965,7 +23253,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23965 | exit4: | 23253 | exit4: |
23966 | mnt_drop_write(nd.path.mnt); | 23254 | mnt_drop_write(nd.path.mnt); |
23967 | exit3: | 23255 | exit3: |
23968 | @@ -2244,6 +2337,8 @@ static long do_unlinkat(int dfd, const c | 23256 | @@ -2254,6 +2347,8 @@ static long do_unlinkat(int dfd, const c |
23969 | struct dentry *dentry; | 23257 | struct dentry *dentry; |
23970 | struct nameidata nd; | 23258 | struct nameidata nd; |
23971 | struct inode *inode = NULL; | 23259 | struct inode *inode = NULL; |
@@ -23974,7 +23262,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23974 | 23262 | ||
23975 | error = user_path_parent(dfd, pathname, &nd, &name); | 23263 | error = user_path_parent(dfd, pathname, &nd, &name); |
23976 | if (error) | 23264 | if (error) |
23977 | @@ -2263,8 +2358,19 @@ static long do_unlinkat(int dfd, const c | 23265 | @@ -2273,8 +2368,19 @@ static long do_unlinkat(int dfd, const c |
23978 | if (nd.last.name[nd.last.len]) | 23266 | if (nd.last.name[nd.last.len]) |
23979 | goto slashes; | 23267 | goto slashes; |
23980 | inode = dentry->d_inode; | 23268 | inode = dentry->d_inode; |
@@ -23995,7 +23283,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
23995 | error = mnt_want_write(nd.path.mnt); | 23283 | error = mnt_want_write(nd.path.mnt); |
23996 | if (error) | 23284 | if (error) |
23997 | goto exit2; | 23285 | goto exit2; |
23998 | @@ -2272,6 +2378,8 @@ static long do_unlinkat(int dfd, const c | 23286 | @@ -2282,6 +2388,8 @@ static long do_unlinkat(int dfd, const c |
23999 | if (error) | 23287 | if (error) |
24000 | goto exit3; | 23288 | goto exit3; |
24001 | error = vfs_unlink(nd.path.dentry->d_inode, dentry); | 23289 | error = vfs_unlink(nd.path.dentry->d_inode, dentry); |
@@ -24004,7 +23292,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
24004 | exit3: | 23292 | exit3: |
24005 | mnt_drop_write(nd.path.mnt); | 23293 | mnt_drop_write(nd.path.mnt); |
24006 | exit2: | 23294 | exit2: |
24007 | @@ -2350,6 +2458,11 @@ SYSCALL_DEFINE3(symlinkat, const char __ | 23295 | @@ -2360,6 +2468,11 @@ SYSCALL_DEFINE3(symlinkat, const char __ |
24008 | if (IS_ERR(dentry)) | 23296 | if (IS_ERR(dentry)) |
24009 | goto out_unlock; | 23297 | goto out_unlock; |
24010 | 23298 | ||
@@ -24016,7 +23304,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
24016 | error = mnt_want_write(nd.path.mnt); | 23304 | error = mnt_want_write(nd.path.mnt); |
24017 | if (error) | 23305 | if (error) |
24018 | goto out_dput; | 23306 | goto out_dput; |
24019 | @@ -2357,6 +2470,8 @@ SYSCALL_DEFINE3(symlinkat, const char __ | 23307 | @@ -2367,6 +2480,8 @@ SYSCALL_DEFINE3(symlinkat, const char __ |
24020 | if (error) | 23308 | if (error) |
24021 | goto out_drop_write; | 23309 | goto out_drop_write; |
24022 | error = vfs_symlink(nd.path.dentry->d_inode, dentry, from); | 23310 | error = vfs_symlink(nd.path.dentry->d_inode, dentry, from); |
@@ -24025,7 +23313,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
24025 | out_drop_write: | 23313 | out_drop_write: |
24026 | mnt_drop_write(nd.path.mnt); | 23314 | mnt_drop_write(nd.path.mnt); |
24027 | out_dput: | 23315 | out_dput: |
24028 | @@ -2450,6 +2565,20 @@ SYSCALL_DEFINE5(linkat, int, olddfd, con | 23316 | @@ -2460,6 +2575,20 @@ SYSCALL_DEFINE5(linkat, int, olddfd, con |
24029 | error = PTR_ERR(new_dentry); | 23317 | error = PTR_ERR(new_dentry); |
24030 | if (IS_ERR(new_dentry)) | 23318 | if (IS_ERR(new_dentry)) |
24031 | goto out_unlock; | 23319 | goto out_unlock; |
@@ -24046,7 +23334,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
24046 | error = mnt_want_write(nd.path.mnt); | 23334 | error = mnt_want_write(nd.path.mnt); |
24047 | if (error) | 23335 | if (error) |
24048 | goto out_dput; | 23336 | goto out_dput; |
24049 | @@ -2457,6 +2586,8 @@ SYSCALL_DEFINE5(linkat, int, olddfd, con | 23337 | @@ -2467,6 +2596,8 @@ SYSCALL_DEFINE5(linkat, int, olddfd, con |
24050 | if (error) | 23338 | if (error) |
24051 | goto out_drop_write; | 23339 | goto out_drop_write; |
24052 | error = vfs_link(old_path.dentry, nd.path.dentry->d_inode, new_dentry); | 23340 | error = vfs_link(old_path.dentry, nd.path.dentry->d_inode, new_dentry); |
@@ -24055,7 +23343,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
24055 | out_drop_write: | 23343 | out_drop_write: |
24056 | mnt_drop_write(nd.path.mnt); | 23344 | mnt_drop_write(nd.path.mnt); |
24057 | out_dput: | 23345 | out_dput: |
24058 | @@ -2690,6 +2821,12 @@ SYSCALL_DEFINE4(renameat, int, olddfd, c | 23346 | @@ -2700,6 +2831,12 @@ SYSCALL_DEFINE4(renameat, int, olddfd, c |
24059 | if (new_dentry == trap) | 23347 | if (new_dentry == trap) |
24060 | goto exit5; | 23348 | goto exit5; |
24061 | 23349 | ||
@@ -24068,7 +23356,7 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
24068 | error = mnt_want_write(oldnd.path.mnt); | 23356 | error = mnt_want_write(oldnd.path.mnt); |
24069 | if (error) | 23357 | if (error) |
24070 | goto exit5; | 23358 | goto exit5; |
24071 | @@ -2699,6 +2836,9 @@ SYSCALL_DEFINE4(renameat, int, olddfd, c | 23359 | @@ -2709,6 +2846,9 @@ SYSCALL_DEFINE4(renameat, int, olddfd, c |
24072 | goto exit6; | 23360 | goto exit6; |
24073 | error = vfs_rename(old_dir->d_inode, old_dentry, | 23361 | error = vfs_rename(old_dir->d_inode, old_dentry, |
24074 | new_dir->d_inode, new_dentry); | 23362 | new_dir->d_inode, new_dentry); |
@@ -24078,10 +23366,10 @@ diff -urNp linux-2.6.29.6/fs/namei.c linux-2.6.29.6/fs/namei.c | |||
24078 | exit6: | 23366 | exit6: |
24079 | mnt_drop_write(oldnd.path.mnt); | 23367 | mnt_drop_write(oldnd.path.mnt); |
24080 | exit5: | 23368 | exit5: |
24081 | diff -urNp linux-2.6.29.6/fs/namespace.c linux-2.6.29.6/fs/namespace.c | 23369 | diff -urNp linux-2.6.30.4/fs/namespace.c linux-2.6.30.4/fs/namespace.c |
24082 | --- linux-2.6.29.6/fs/namespace.c 2009-07-02 19:41:20.000000000 -0400 | 23370 | --- linux-2.6.30.4/fs/namespace.c 2009-07-24 17:47:51.000000000 -0400 |
24083 | +++ linux-2.6.29.6/fs/namespace.c 2009-07-23 17:34:32.159721739 -0400 | 23371 | +++ linux-2.6.30.4/fs/namespace.c 2009-07-30 11:10:49.247492786 -0400 |
24084 | @@ -1096,6 +1096,8 @@ static int do_umount(struct vfsmount *mn | 23372 | @@ -1110,6 +1110,8 @@ static int do_umount(struct vfsmount *mn |
24085 | lock_kernel(); | 23373 | lock_kernel(); |
24086 | retval = do_remount_sb(sb, MS_RDONLY, NULL, 0); | 23374 | retval = do_remount_sb(sb, MS_RDONLY, NULL, 0); |
24087 | unlock_kernel(); | 23375 | unlock_kernel(); |
@@ -24090,7 +23378,7 @@ diff -urNp linux-2.6.29.6/fs/namespace.c linux-2.6.29.6/fs/namespace.c | |||
24090 | } | 23378 | } |
24091 | up_write(&sb->s_umount); | 23379 | up_write(&sb->s_umount); |
24092 | return retval; | 23380 | return retval; |
24093 | @@ -1119,6 +1121,9 @@ static int do_umount(struct vfsmount *mn | 23381 | @@ -1133,6 +1135,9 @@ static int do_umount(struct vfsmount *mn |
24094 | security_sb_umount_busy(mnt); | 23382 | security_sb_umount_busy(mnt); |
24095 | up_write(&namespace_sem); | 23383 | up_write(&namespace_sem); |
24096 | release_mounts(&umount_list); | 23384 | release_mounts(&umount_list); |
@@ -24100,7 +23388,7 @@ diff -urNp linux-2.6.29.6/fs/namespace.c linux-2.6.29.6/fs/namespace.c | |||
24100 | return retval; | 23388 | return retval; |
24101 | } | 23389 | } |
24102 | 23390 | ||
24103 | @@ -1948,6 +1953,11 @@ long do_mount(char *dev_name, char *dir_ | 23391 | @@ -1967,6 +1972,11 @@ long do_mount(char *dev_name, char *dir_ |
24104 | if (retval) | 23392 | if (retval) |
24105 | goto dput_out; | 23393 | goto dput_out; |
24106 | 23394 | ||
@@ -24112,7 +23400,7 @@ diff -urNp linux-2.6.29.6/fs/namespace.c linux-2.6.29.6/fs/namespace.c | |||
24112 | if (flags & MS_REMOUNT) | 23400 | if (flags & MS_REMOUNT) |
24113 | retval = do_remount(&path, flags & ~MS_REMOUNT, mnt_flags, | 23401 | retval = do_remount(&path, flags & ~MS_REMOUNT, mnt_flags, |
24114 | data_page); | 23402 | data_page); |
24115 | @@ -1962,6 +1972,9 @@ long do_mount(char *dev_name, char *dir_ | 23403 | @@ -1981,6 +1991,9 @@ long do_mount(char *dev_name, char *dir_ |
24116 | dev_name, data_page); | 23404 | dev_name, data_page); |
24117 | dput_out: | 23405 | dput_out: |
24118 | path_put(&path); | 23406 | path_put(&path); |
@@ -24122,7 +23410,7 @@ diff -urNp linux-2.6.29.6/fs/namespace.c linux-2.6.29.6/fs/namespace.c | |||
24122 | return retval; | 23410 | return retval; |
24123 | } | 23411 | } |
24124 | 23412 | ||
24125 | @@ -2073,6 +2086,9 @@ SYSCALL_DEFINE5(mount, char __user *, de | 23413 | @@ -2092,6 +2105,9 @@ SYSCALL_DEFINE5(mount, char __user *, de |
24126 | if (retval < 0) | 23414 | if (retval < 0) |
24127 | goto out3; | 23415 | goto out3; |
24128 | 23416 | ||
@@ -24132,10 +23420,10 @@ diff -urNp linux-2.6.29.6/fs/namespace.c linux-2.6.29.6/fs/namespace.c | |||
24132 | lock_kernel(); | 23420 | lock_kernel(); |
24133 | retval = do_mount((char *)dev_page, dir_page, (char *)type_page, | 23421 | retval = do_mount((char *)dev_page, dir_page, (char *)type_page, |
24134 | flags, (void *)data_page); | 23422 | flags, (void *)data_page); |
24135 | diff -urNp linux-2.6.29.6/fs/nfs/client.c linux-2.6.29.6/fs/nfs/client.c | 23423 | diff -urNp linux-2.6.30.4/fs/nfs/client.c linux-2.6.30.4/fs/nfs/client.c |
24136 | --- linux-2.6.29.6/fs/nfs/client.c 2009-07-02 19:41:20.000000000 -0400 | 23424 | --- linux-2.6.30.4/fs/nfs/client.c 2009-07-24 17:47:51.000000000 -0400 |
24137 | +++ linux-2.6.29.6/fs/nfs/client.c 2009-07-23 18:40:28.513673349 -0400 | 23425 | +++ linux-2.6.30.4/fs/nfs/client.c 2009-07-30 09:48:10.090670547 -0400 |
24138 | @@ -1409,7 +1409,7 @@ static void *nfs_server_list_next(struct | 23426 | @@ -1404,7 +1404,7 @@ static void *nfs_server_list_next(struct |
24139 | static void nfs_server_list_stop(struct seq_file *p, void *v); | 23427 | static void nfs_server_list_stop(struct seq_file *p, void *v); |
24140 | static int nfs_server_list_show(struct seq_file *m, void *v); | 23428 | static int nfs_server_list_show(struct seq_file *m, void *v); |
24141 | 23429 | ||
@@ -24144,7 +23432,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/client.c linux-2.6.29.6/fs/nfs/client.c | |||
24144 | .start = nfs_server_list_start, | 23432 | .start = nfs_server_list_start, |
24145 | .next = nfs_server_list_next, | 23433 | .next = nfs_server_list_next, |
24146 | .stop = nfs_server_list_stop, | 23434 | .stop = nfs_server_list_stop, |
24147 | @@ -1430,7 +1430,7 @@ static void *nfs_volume_list_next(struct | 23435 | @@ -1425,7 +1425,7 @@ static void *nfs_volume_list_next(struct |
24148 | static void nfs_volume_list_stop(struct seq_file *p, void *v); | 23436 | static void nfs_volume_list_stop(struct seq_file *p, void *v); |
24149 | static int nfs_volume_list_show(struct seq_file *m, void *v); | 23437 | static int nfs_volume_list_show(struct seq_file *m, void *v); |
24150 | 23438 | ||
@@ -24153,31 +23441,10 @@ diff -urNp linux-2.6.29.6/fs/nfs/client.c linux-2.6.29.6/fs/nfs/client.c | |||
24153 | .start = nfs_volume_list_start, | 23441 | .start = nfs_volume_list_start, |
24154 | .next = nfs_volume_list_next, | 23442 | .next = nfs_volume_list_next, |
24155 | .stop = nfs_volume_list_stop, | 23443 | .stop = nfs_volume_list_stop, |
24156 | diff -urNp linux-2.6.29.6/fs/nfs/dir.c linux-2.6.29.6/fs/nfs/dir.c | 23444 | diff -urNp linux-2.6.30.4/fs/nfs/file.c linux-2.6.30.4/fs/nfs/file.c |
24157 | --- linux-2.6.29.6/fs/nfs/dir.c 2009-07-02 19:41:20.000000000 -0400 | 23445 | --- linux-2.6.30.4/fs/nfs/file.c 2009-07-24 17:47:51.000000000 -0400 |
24158 | +++ linux-2.6.29.6/fs/nfs/dir.c 2009-07-23 18:40:28.514291879 -0400 | 23446 | +++ linux-2.6.30.4/fs/nfs/file.c 2009-07-30 09:48:10.090670547 -0400 |
24159 | @@ -899,7 +899,7 @@ static void nfs_dentry_iput(struct dentr | 23447 | @@ -57,7 +57,7 @@ static int nfs_lock(struct file *filp, i |
24160 | iput(inode); | ||
24161 | } | ||
24162 | |||
24163 | -struct dentry_operations nfs_dentry_operations = { | ||
24164 | +const struct dentry_operations nfs_dentry_operations = { | ||
24165 | .d_revalidate = nfs_lookup_revalidate, | ||
24166 | .d_delete = nfs_dentry_delete, | ||
24167 | .d_iput = nfs_dentry_iput, | ||
24168 | @@ -967,7 +967,7 @@ out: | ||
24169 | #ifdef CONFIG_NFS_V4 | ||
24170 | static int nfs_open_revalidate(struct dentry *, struct nameidata *); | ||
24171 | |||
24172 | -struct dentry_operations nfs4_dentry_operations = { | ||
24173 | +const struct dentry_operations nfs4_dentry_operations = { | ||
24174 | .d_revalidate = nfs_open_revalidate, | ||
24175 | .d_delete = nfs_dentry_delete, | ||
24176 | .d_iput = nfs_dentry_iput, | ||
24177 | diff -urNp linux-2.6.29.6/fs/nfs/file.c linux-2.6.29.6/fs/nfs/file.c | ||
24178 | --- linux-2.6.29.6/fs/nfs/file.c 2009-07-02 19:41:20.000000000 -0400 | ||
24179 | +++ linux-2.6.29.6/fs/nfs/file.c 2009-07-23 18:40:28.515401169 -0400 | ||
24180 | @@ -56,7 +56,7 @@ static int nfs_lock(struct file *filp, i | ||
24181 | static int nfs_flock(struct file *filp, int cmd, struct file_lock *fl); | 23448 | static int nfs_flock(struct file *filp, int cmd, struct file_lock *fl); |
24182 | static int nfs_setlease(struct file *file, long arg, struct file_lock **fl); | 23449 | static int nfs_setlease(struct file *file, long arg, struct file_lock **fl); |
24183 | 23450 | ||
@@ -24186,7 +23453,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/file.c linux-2.6.29.6/fs/nfs/file.c | |||
24186 | 23453 | ||
24187 | const struct file_operations nfs_file_operations = { | 23454 | const struct file_operations nfs_file_operations = { |
24188 | .llseek = nfs_file_llseek, | 23455 | .llseek = nfs_file_llseek, |
24189 | @@ -487,7 +487,7 @@ out_unlock: | 23456 | @@ -523,7 +523,7 @@ out_unlock: |
24190 | return VM_FAULT_SIGBUS; | 23457 | return VM_FAULT_SIGBUS; |
24191 | } | 23458 | } |
24192 | 23459 | ||
@@ -24195,22 +23462,10 @@ diff -urNp linux-2.6.29.6/fs/nfs/file.c linux-2.6.29.6/fs/nfs/file.c | |||
24195 | .fault = filemap_fault, | 23462 | .fault = filemap_fault, |
24196 | .page_mkwrite = nfs_vm_page_mkwrite, | 23463 | .page_mkwrite = nfs_vm_page_mkwrite, |
24197 | }; | 23464 | }; |
24198 | diff -urNp linux-2.6.29.6/fs/nfs/nfs4_fs.h linux-2.6.29.6/fs/nfs/nfs4_fs.h | 23465 | diff -urNp linux-2.6.30.4/fs/nfs/nfs4proc.c linux-2.6.30.4/fs/nfs/nfs4proc.c |
24199 | --- linux-2.6.29.6/fs/nfs/nfs4_fs.h 2009-07-02 19:41:20.000000000 -0400 | 23466 | --- linux-2.6.30.4/fs/nfs/nfs4proc.c 2009-07-24 17:47:51.000000000 -0400 |
24200 | +++ linux-2.6.29.6/fs/nfs/nfs4_fs.h 2009-07-23 18:40:28.516258510 -0400 | 23467 | +++ linux-2.6.30.4/fs/nfs/nfs4proc.c 2009-07-30 09:48:10.091839047 -0400 |
24201 | @@ -179,7 +179,7 @@ struct nfs4_state_recovery_ops { | 23468 | @@ -755,7 +755,7 @@ static int _nfs4_do_open_reclaim(struct |
24202 | int (*recover_lock)(struct nfs4_state *, struct file_lock *); | ||
24203 | }; | ||
24204 | |||
24205 | -extern struct dentry_operations nfs4_dentry_operations; | ||
24206 | +extern const struct dentry_operations nfs4_dentry_operations; | ||
24207 | extern const struct inode_operations nfs4_dir_inode_operations; | ||
24208 | |||
24209 | /* inode.c */ | ||
24210 | diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | ||
24211 | --- linux-2.6.29.6/fs/nfs/nfs4proc.c 2009-07-02 19:41:20.000000000 -0400 | ||
24212 | +++ linux-2.6.29.6/fs/nfs/nfs4proc.c 2009-07-23 17:34:32.161096484 -0400 | ||
24213 | @@ -763,7 +763,7 @@ static int _nfs4_do_open_reclaim(struct | ||
24214 | static int nfs4_do_open_reclaim(struct nfs_open_context *ctx, struct nfs4_state *state) | 23469 | static int nfs4_do_open_reclaim(struct nfs_open_context *ctx, struct nfs4_state *state) |
24215 | { | 23470 | { |
24216 | struct nfs_server *server = NFS_SERVER(state->inode); | 23471 | struct nfs_server *server = NFS_SERVER(state->inode); |
@@ -24219,7 +23474,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24219 | int err; | 23474 | int err; |
24220 | do { | 23475 | do { |
24221 | err = _nfs4_do_open_reclaim(ctx, state); | 23476 | err = _nfs4_do_open_reclaim(ctx, state); |
24222 | @@ -805,7 +805,7 @@ static int _nfs4_open_delegation_recall( | 23477 | @@ -797,7 +797,7 @@ static int _nfs4_open_delegation_recall( |
24223 | 23478 | ||
24224 | int nfs4_open_delegation_recall(struct nfs_open_context *ctx, struct nfs4_state *state, const nfs4_stateid *stateid) | 23479 | int nfs4_open_delegation_recall(struct nfs_open_context *ctx, struct nfs4_state *state, const nfs4_stateid *stateid) |
24225 | { | 23480 | { |
@@ -24228,7 +23483,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24228 | struct nfs_server *server = NFS_SERVER(state->inode); | 23483 | struct nfs_server *server = NFS_SERVER(state->inode); |
24229 | int err; | 23484 | int err; |
24230 | do { | 23485 | do { |
24231 | @@ -1099,7 +1099,7 @@ static int _nfs4_open_expired(struct nfs | 23486 | @@ -1091,7 +1091,7 @@ static int _nfs4_open_expired(struct nfs |
24232 | static inline int nfs4_do_open_expired(struct nfs_open_context *ctx, struct nfs4_state *state) | 23487 | static inline int nfs4_do_open_expired(struct nfs_open_context *ctx, struct nfs4_state *state) |
24233 | { | 23488 | { |
24234 | struct nfs_server *server = NFS_SERVER(state->inode); | 23489 | struct nfs_server *server = NFS_SERVER(state->inode); |
@@ -24237,7 +23492,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24237 | int err; | 23492 | int err; |
24238 | 23493 | ||
24239 | do { | 23494 | do { |
24240 | @@ -1197,7 +1197,7 @@ out_err: | 23495 | @@ -1189,7 +1189,7 @@ out_err: |
24241 | 23496 | ||
24242 | static struct nfs4_state *nfs4_do_open(struct inode *dir, struct path *path, fmode_t fmode, int flags, struct iattr *sattr, struct rpc_cred *cred) | 23497 | static struct nfs4_state *nfs4_do_open(struct inode *dir, struct path *path, fmode_t fmode, int flags, struct iattr *sattr, struct rpc_cred *cred) |
24243 | { | 23498 | { |
@@ -24246,7 +23501,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24246 | struct nfs4_state *res; | 23501 | struct nfs4_state *res; |
24247 | int status; | 23502 | int status; |
24248 | 23503 | ||
24249 | @@ -1288,7 +1288,7 @@ static int nfs4_do_setattr(struct inode | 23504 | @@ -1280,7 +1280,7 @@ static int nfs4_do_setattr(struct inode |
24250 | struct nfs4_state *state) | 23505 | struct nfs4_state *state) |
24251 | { | 23506 | { |
24252 | struct nfs_server *server = NFS_SERVER(inode); | 23507 | struct nfs_server *server = NFS_SERVER(inode); |
@@ -24255,7 +23510,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24255 | int err; | 23510 | int err; |
24256 | do { | 23511 | do { |
24257 | err = nfs4_handle_exception(server, | 23512 | err = nfs4_handle_exception(server, |
24258 | @@ -1607,7 +1607,7 @@ static int _nfs4_server_capabilities(str | 23513 | @@ -1611,7 +1611,7 @@ static int _nfs4_server_capabilities(str |
24259 | 23514 | ||
24260 | int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle) | 23515 | int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle) |
24261 | { | 23516 | { |
@@ -24264,7 +23519,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24264 | int err; | 23519 | int err; |
24265 | do { | 23520 | do { |
24266 | err = nfs4_handle_exception(server, | 23521 | err = nfs4_handle_exception(server, |
24267 | @@ -1640,7 +1640,7 @@ static int _nfs4_lookup_root(struct nfs_ | 23522 | @@ -1644,7 +1644,7 @@ static int _nfs4_lookup_root(struct nfs_ |
24268 | static int nfs4_lookup_root(struct nfs_server *server, struct nfs_fh *fhandle, | 23523 | static int nfs4_lookup_root(struct nfs_server *server, struct nfs_fh *fhandle, |
24269 | struct nfs_fsinfo *info) | 23524 | struct nfs_fsinfo *info) |
24270 | { | 23525 | { |
@@ -24273,7 +23528,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24273 | int err; | 23528 | int err; |
24274 | do { | 23529 | do { |
24275 | err = nfs4_handle_exception(server, | 23530 | err = nfs4_handle_exception(server, |
24276 | @@ -1729,7 +1729,7 @@ static int _nfs4_proc_getattr(struct nfs | 23531 | @@ -1733,7 +1733,7 @@ static int _nfs4_proc_getattr(struct nfs |
24277 | 23532 | ||
24278 | static int nfs4_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle, struct nfs_fattr *fattr) | 23533 | static int nfs4_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle, struct nfs_fattr *fattr) |
24279 | { | 23534 | { |
@@ -24282,7 +23537,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24282 | int err; | 23537 | int err; |
24283 | do { | 23538 | do { |
24284 | err = nfs4_handle_exception(server, | 23539 | err = nfs4_handle_exception(server, |
24285 | @@ -1817,7 +1817,7 @@ static int nfs4_proc_lookupfh(struct nfs | 23540 | @@ -1821,7 +1821,7 @@ static int nfs4_proc_lookupfh(struct nfs |
24286 | struct qstr *name, struct nfs_fh *fhandle, | 23541 | struct qstr *name, struct nfs_fh *fhandle, |
24287 | struct nfs_fattr *fattr) | 23542 | struct nfs_fattr *fattr) |
24288 | { | 23543 | { |
@@ -24291,7 +23546,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24291 | int err; | 23546 | int err; |
24292 | do { | 23547 | do { |
24293 | err = _nfs4_proc_lookupfh(server, dirfh, name, fhandle, fattr); | 23548 | err = _nfs4_proc_lookupfh(server, dirfh, name, fhandle, fattr); |
24294 | @@ -1846,7 +1846,7 @@ static int _nfs4_proc_lookup(struct inod | 23549 | @@ -1850,7 +1850,7 @@ static int _nfs4_proc_lookup(struct inod |
24295 | 23550 | ||
24296 | static int nfs4_proc_lookup(struct inode *dir, struct qstr *name, struct nfs_fh *fhandle, struct nfs_fattr *fattr) | 23551 | static int nfs4_proc_lookup(struct inode *dir, struct qstr *name, struct nfs_fh *fhandle, struct nfs_fattr *fattr) |
24297 | { | 23552 | { |
@@ -24300,7 +23555,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24300 | int err; | 23555 | int err; |
24301 | do { | 23556 | do { |
24302 | err = nfs4_handle_exception(NFS_SERVER(dir), | 23557 | err = nfs4_handle_exception(NFS_SERVER(dir), |
24303 | @@ -1910,7 +1910,7 @@ static int _nfs4_proc_access(struct inod | 23558 | @@ -1914,7 +1914,7 @@ static int _nfs4_proc_access(struct inod |
24304 | 23559 | ||
24305 | static int nfs4_proc_access(struct inode *inode, struct nfs_access_entry *entry) | 23560 | static int nfs4_proc_access(struct inode *inode, struct nfs_access_entry *entry) |
24306 | { | 23561 | { |
@@ -24309,7 +23564,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24309 | int err; | 23564 | int err; |
24310 | do { | 23565 | do { |
24311 | err = nfs4_handle_exception(NFS_SERVER(inode), | 23566 | err = nfs4_handle_exception(NFS_SERVER(inode), |
24312 | @@ -1965,7 +1965,7 @@ static int _nfs4_proc_readlink(struct in | 23567 | @@ -1969,7 +1969,7 @@ static int _nfs4_proc_readlink(struct in |
24313 | static int nfs4_proc_readlink(struct inode *inode, struct page *page, | 23568 | static int nfs4_proc_readlink(struct inode *inode, struct page *page, |
24314 | unsigned int pgbase, unsigned int pglen) | 23569 | unsigned int pgbase, unsigned int pglen) |
24315 | { | 23570 | { |
@@ -24318,7 +23573,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24318 | int err; | 23573 | int err; |
24319 | do { | 23574 | do { |
24320 | err = nfs4_handle_exception(NFS_SERVER(inode), | 23575 | err = nfs4_handle_exception(NFS_SERVER(inode), |
24321 | @@ -2063,7 +2063,7 @@ static int _nfs4_proc_remove(struct inod | 23576 | @@ -2067,7 +2067,7 @@ static int _nfs4_proc_remove(struct inod |
24322 | 23577 | ||
24323 | static int nfs4_proc_remove(struct inode *dir, struct qstr *name) | 23578 | static int nfs4_proc_remove(struct inode *dir, struct qstr *name) |
24324 | { | 23579 | { |
@@ -24327,7 +23582,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24327 | int err; | 23582 | int err; |
24328 | do { | 23583 | do { |
24329 | err = nfs4_handle_exception(NFS_SERVER(dir), | 23584 | err = nfs4_handle_exception(NFS_SERVER(dir), |
24330 | @@ -2135,7 +2135,7 @@ static int _nfs4_proc_rename(struct inod | 23585 | @@ -2139,7 +2139,7 @@ static int _nfs4_proc_rename(struct inod |
24331 | static int nfs4_proc_rename(struct inode *old_dir, struct qstr *old_name, | 23586 | static int nfs4_proc_rename(struct inode *old_dir, struct qstr *old_name, |
24332 | struct inode *new_dir, struct qstr *new_name) | 23587 | struct inode *new_dir, struct qstr *new_name) |
24333 | { | 23588 | { |
@@ -24336,7 +23591,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24336 | int err; | 23591 | int err; |
24337 | do { | 23592 | do { |
24338 | err = nfs4_handle_exception(NFS_SERVER(old_dir), | 23593 | err = nfs4_handle_exception(NFS_SERVER(old_dir), |
24339 | @@ -2182,7 +2182,7 @@ static int _nfs4_proc_link(struct inode | 23594 | @@ -2186,7 +2186,7 @@ static int _nfs4_proc_link(struct inode |
24340 | 23595 | ||
24341 | static int nfs4_proc_link(struct inode *inode, struct inode *dir, struct qstr *name) | 23596 | static int nfs4_proc_link(struct inode *inode, struct inode *dir, struct qstr *name) |
24342 | { | 23597 | { |
@@ -24345,7 +23600,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24345 | int err; | 23600 | int err; |
24346 | do { | 23601 | do { |
24347 | err = nfs4_handle_exception(NFS_SERVER(inode), | 23602 | err = nfs4_handle_exception(NFS_SERVER(inode), |
24348 | @@ -2273,7 +2273,7 @@ out: | 23603 | @@ -2277,7 +2277,7 @@ out: |
24349 | static int nfs4_proc_symlink(struct inode *dir, struct dentry *dentry, | 23604 | static int nfs4_proc_symlink(struct inode *dir, struct dentry *dentry, |
24350 | struct page *page, unsigned int len, struct iattr *sattr) | 23605 | struct page *page, unsigned int len, struct iattr *sattr) |
24351 | { | 23606 | { |
@@ -24354,7 +23609,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24354 | int err; | 23609 | int err; |
24355 | do { | 23610 | do { |
24356 | err = nfs4_handle_exception(NFS_SERVER(dir), | 23611 | err = nfs4_handle_exception(NFS_SERVER(dir), |
24357 | @@ -2304,7 +2304,7 @@ out: | 23612 | @@ -2308,7 +2308,7 @@ out: |
24358 | static int nfs4_proc_mkdir(struct inode *dir, struct dentry *dentry, | 23613 | static int nfs4_proc_mkdir(struct inode *dir, struct dentry *dentry, |
24359 | struct iattr *sattr) | 23614 | struct iattr *sattr) |
24360 | { | 23615 | { |
@@ -24363,7 +23618,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24363 | int err; | 23618 | int err; |
24364 | do { | 23619 | do { |
24365 | err = nfs4_handle_exception(NFS_SERVER(dir), | 23620 | err = nfs4_handle_exception(NFS_SERVER(dir), |
24366 | @@ -2353,7 +2353,7 @@ static int _nfs4_proc_readdir(struct den | 23621 | @@ -2357,7 +2357,7 @@ static int _nfs4_proc_readdir(struct den |
24367 | static int nfs4_proc_readdir(struct dentry *dentry, struct rpc_cred *cred, | 23622 | static int nfs4_proc_readdir(struct dentry *dentry, struct rpc_cred *cred, |
24368 | u64 cookie, struct page *page, unsigned int count, int plus) | 23623 | u64 cookie, struct page *page, unsigned int count, int plus) |
24369 | { | 23624 | { |
@@ -24372,7 +23627,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24372 | int err; | 23627 | int err; |
24373 | do { | 23628 | do { |
24374 | err = nfs4_handle_exception(NFS_SERVER(dentry->d_inode), | 23629 | err = nfs4_handle_exception(NFS_SERVER(dentry->d_inode), |
24375 | @@ -2401,7 +2401,7 @@ out: | 23630 | @@ -2405,7 +2405,7 @@ out: |
24376 | static int nfs4_proc_mknod(struct inode *dir, struct dentry *dentry, | 23631 | static int nfs4_proc_mknod(struct inode *dir, struct dentry *dentry, |
24377 | struct iattr *sattr, dev_t rdev) | 23632 | struct iattr *sattr, dev_t rdev) |
24378 | { | 23633 | { |
@@ -24381,7 +23636,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24381 | int err; | 23636 | int err; |
24382 | do { | 23637 | do { |
24383 | err = nfs4_handle_exception(NFS_SERVER(dir), | 23638 | err = nfs4_handle_exception(NFS_SERVER(dir), |
24384 | @@ -2430,7 +2430,7 @@ static int _nfs4_proc_statfs(struct nfs_ | 23639 | @@ -2434,7 +2434,7 @@ static int _nfs4_proc_statfs(struct nfs_ |
24385 | 23640 | ||
24386 | static int nfs4_proc_statfs(struct nfs_server *server, struct nfs_fh *fhandle, struct nfs_fsstat *fsstat) | 23641 | static int nfs4_proc_statfs(struct nfs_server *server, struct nfs_fh *fhandle, struct nfs_fsstat *fsstat) |
24387 | { | 23642 | { |
@@ -24390,7 +23645,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24390 | int err; | 23645 | int err; |
24391 | do { | 23646 | do { |
24392 | err = nfs4_handle_exception(server, | 23647 | err = nfs4_handle_exception(server, |
24393 | @@ -2458,7 +2458,7 @@ static int _nfs4_do_fsinfo(struct nfs_se | 23648 | @@ -2462,7 +2462,7 @@ static int _nfs4_do_fsinfo(struct nfs_se |
24394 | 23649 | ||
24395 | static int nfs4_do_fsinfo(struct nfs_server *server, struct nfs_fh *fhandle, struct nfs_fsinfo *fsinfo) | 23650 | static int nfs4_do_fsinfo(struct nfs_server *server, struct nfs_fh *fhandle, struct nfs_fsinfo *fsinfo) |
24396 | { | 23651 | { |
@@ -24399,7 +23654,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24399 | int err; | 23654 | int err; |
24400 | 23655 | ||
24401 | do { | 23656 | do { |
24402 | @@ -2501,7 +2501,7 @@ static int _nfs4_proc_pathconf(struct nf | 23657 | @@ -2505,7 +2505,7 @@ static int _nfs4_proc_pathconf(struct nf |
24403 | static int nfs4_proc_pathconf(struct nfs_server *server, struct nfs_fh *fhandle, | 23658 | static int nfs4_proc_pathconf(struct nfs_server *server, struct nfs_fh *fhandle, |
24404 | struct nfs_pathconf *pathconf) | 23659 | struct nfs_pathconf *pathconf) |
24405 | { | 23660 | { |
@@ -24408,7 +23663,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24408 | int err; | 23663 | int err; |
24409 | 23664 | ||
24410 | do { | 23665 | do { |
24411 | @@ -2788,7 +2788,7 @@ out_free: | 23666 | @@ -2789,7 +2789,7 @@ out_free: |
24412 | 23667 | ||
24413 | static ssize_t nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t buflen) | 23668 | static ssize_t nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t buflen) |
24414 | { | 23669 | { |
@@ -24417,7 +23672,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24417 | ssize_t ret; | 23672 | ssize_t ret; |
24418 | do { | 23673 | do { |
24419 | ret = __nfs4_get_acl_uncached(inode, buf, buflen); | 23674 | ret = __nfs4_get_acl_uncached(inode, buf, buflen); |
24420 | @@ -2845,7 +2845,7 @@ static int __nfs4_proc_set_acl(struct in | 23675 | @@ -2846,7 +2846,7 @@ static int __nfs4_proc_set_acl(struct in |
24421 | 23676 | ||
24422 | static int nfs4_proc_set_acl(struct inode *inode, const void *buf, size_t buflen) | 23677 | static int nfs4_proc_set_acl(struct inode *inode, const void *buf, size_t buflen) |
24423 | { | 23678 | { |
@@ -24426,7 +23681,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24426 | int err; | 23681 | int err; |
24427 | do { | 23682 | do { |
24428 | err = nfs4_handle_exception(NFS_SERVER(inode), | 23683 | err = nfs4_handle_exception(NFS_SERVER(inode), |
24429 | @@ -3068,7 +3068,7 @@ out: | 23684 | @@ -3069,7 +3069,7 @@ out: |
24430 | int nfs4_proc_delegreturn(struct inode *inode, struct rpc_cred *cred, const nfs4_stateid *stateid, int issync) | 23685 | int nfs4_proc_delegreturn(struct inode *inode, struct rpc_cred *cred, const nfs4_stateid *stateid, int issync) |
24431 | { | 23686 | { |
24432 | struct nfs_server *server = NFS_SERVER(inode); | 23687 | struct nfs_server *server = NFS_SERVER(inode); |
@@ -24435,7 +23690,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24435 | int err; | 23690 | int err; |
24436 | do { | 23691 | do { |
24437 | err = _nfs4_proc_delegreturn(inode, cred, stateid, issync); | 23692 | err = _nfs4_proc_delegreturn(inode, cred, stateid, issync); |
24438 | @@ -3141,7 +3141,7 @@ out: | 23693 | @@ -3142,7 +3142,7 @@ out: |
24439 | 23694 | ||
24440 | static int nfs4_proc_getlk(struct nfs4_state *state, int cmd, struct file_lock *request) | 23695 | static int nfs4_proc_getlk(struct nfs4_state *state, int cmd, struct file_lock *request) |
24441 | { | 23696 | { |
@@ -24444,7 +23699,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24444 | int err; | 23699 | int err; |
24445 | 23700 | ||
24446 | do { | 23701 | do { |
24447 | @@ -3498,7 +3498,7 @@ static int _nfs4_do_setlk(struct nfs4_st | 23702 | @@ -3499,7 +3499,7 @@ static int _nfs4_do_setlk(struct nfs4_st |
24448 | static int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request) | 23703 | static int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request) |
24449 | { | 23704 | { |
24450 | struct nfs_server *server = NFS_SERVER(state->inode); | 23705 | struct nfs_server *server = NFS_SERVER(state->inode); |
@@ -24453,7 +23708,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24453 | int err; | 23708 | int err; |
24454 | 23709 | ||
24455 | do { | 23710 | do { |
24456 | @@ -3516,7 +3516,7 @@ static int nfs4_lock_reclaim(struct nfs4 | 23711 | @@ -3517,7 +3517,7 @@ static int nfs4_lock_reclaim(struct nfs4 |
24457 | static int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request) | 23712 | static int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request) |
24458 | { | 23713 | { |
24459 | struct nfs_server *server = NFS_SERVER(state->inode); | 23714 | struct nfs_server *server = NFS_SERVER(state->inode); |
@@ -24462,7 +23717,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24462 | int err; | 23717 | int err; |
24463 | 23718 | ||
24464 | err = nfs4_set_lock_state(state, request); | 23719 | err = nfs4_set_lock_state(state, request); |
24465 | @@ -3571,7 +3571,7 @@ out: | 23720 | @@ -3572,7 +3572,7 @@ out: |
24466 | 23721 | ||
24467 | static int nfs4_proc_setlk(struct nfs4_state *state, int cmd, struct file_lock *request) | 23722 | static int nfs4_proc_setlk(struct nfs4_state *state, int cmd, struct file_lock *request) |
24468 | { | 23723 | { |
@@ -24471,7 +23726,7 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24471 | int err; | 23726 | int err; |
24472 | 23727 | ||
24473 | do { | 23728 | do { |
24474 | @@ -3621,7 +3621,7 @@ nfs4_proc_lock(struct file *filp, int cm | 23729 | @@ -3622,7 +3622,7 @@ nfs4_proc_lock(struct file *filp, int cm |
24475 | int nfs4_lock_delegation_recall(struct nfs4_state *state, struct file_lock *fl) | 23730 | int nfs4_lock_delegation_recall(struct nfs4_state *state, struct file_lock *fl) |
24476 | { | 23731 | { |
24477 | struct nfs_server *server = NFS_SERVER(state->inode); | 23732 | struct nfs_server *server = NFS_SERVER(state->inode); |
@@ -24480,9 +23735,9 @@ diff -urNp linux-2.6.29.6/fs/nfs/nfs4proc.c linux-2.6.29.6/fs/nfs/nfs4proc.c | |||
24480 | int err; | 23735 | int err; |
24481 | 23736 | ||
24482 | err = nfs4_set_lock_state(state, fl); | 23737 | err = nfs4_set_lock_state(state, fl); |
24483 | diff -urNp linux-2.6.29.6/fs/nfsd/export.c linux-2.6.29.6/fs/nfsd/export.c | 23738 | diff -urNp linux-2.6.30.4/fs/nfsd/export.c linux-2.6.30.4/fs/nfsd/export.c |
24484 | --- linux-2.6.29.6/fs/nfsd/export.c 2009-07-02 19:41:20.000000000 -0400 | 23739 | --- linux-2.6.30.4/fs/nfsd/export.c 2009-07-24 17:47:51.000000000 -0400 |
24485 | +++ linux-2.6.29.6/fs/nfsd/export.c 2009-07-23 18:40:27.471265103 -0400 | 23740 | +++ linux-2.6.30.4/fs/nfsd/export.c 2009-07-30 09:48:10.092682326 -0400 |
24486 | @@ -472,7 +472,7 @@ static int secinfo_parse(char **mesg, ch | 23741 | @@ -472,7 +472,7 @@ static int secinfo_parse(char **mesg, ch |
24487 | * probably discover the problem when someone fails to | 23742 | * probably discover the problem when someone fails to |
24488 | * authenticate. | 23743 | * authenticate. |
@@ -24501,9 +23756,162 @@ diff -urNp linux-2.6.29.6/fs/nfsd/export.c linux-2.6.29.6/fs/nfsd/export.c | |||
24501 | .start = e_start, | 23756 | .start = e_start, |
24502 | .next = e_next, | 23757 | .next = e_next, |
24503 | .stop = e_stop, | 23758 | .stop = e_stop, |
24504 | diff -urNp linux-2.6.29.6/fs/nls/nls_base.c linux-2.6.29.6/fs/nls/nls_base.c | 23759 | diff -urNp linux-2.6.30.4/fs/nfsd/nfsctl.c linux-2.6.30.4/fs/nfsd/nfsctl.c |
24505 | --- linux-2.6.29.6/fs/nls/nls_base.c 2009-07-02 19:41:20.000000000 -0400 | 23760 | --- linux-2.6.30.4/fs/nfsd/nfsctl.c 2009-07-24 17:47:51.000000000 -0400 |
24506 | +++ linux-2.6.29.6/fs/nls/nls_base.c 2009-07-23 17:34:32.161096484 -0400 | 23761 | +++ linux-2.6.30.4/fs/nfsd/nfsctl.c 2009-07-30 12:06:52.128724203 -0400 |
23762 | @@ -175,7 +175,7 @@ static const struct file_operations expo | ||
23763 | |||
23764 | extern int nfsd_pool_stats_open(struct inode *inode, struct file *file); | ||
23765 | |||
23766 | -static struct file_operations pool_stats_operations = { | ||
23767 | +static const struct file_operations pool_stats_operations = { | ||
23768 | .open = nfsd_pool_stats_open, | ||
23769 | .read = seq_read, | ||
23770 | .llseek = seq_lseek, | ||
23771 | diff -urNp linux-2.6.30.4/fs/nilfs2/dir.c linux-2.6.30.4/fs/nilfs2/dir.c | ||
23772 | --- linux-2.6.30.4/fs/nilfs2/dir.c 2009-07-24 17:47:51.000000000 -0400 | ||
23773 | +++ linux-2.6.30.4/fs/nilfs2/dir.c 2009-07-30 12:06:52.132720832 -0400 | ||
23774 | @@ -698,7 +698,7 @@ not_empty: | ||
23775 | return 0; | ||
23776 | } | ||
23777 | |||
23778 | -struct file_operations nilfs_dir_operations = { | ||
23779 | +const struct file_operations nilfs_dir_operations = { | ||
23780 | .llseek = generic_file_llseek, | ||
23781 | .read = generic_read_dir, | ||
23782 | .readdir = nilfs_readdir, | ||
23783 | diff -urNp linux-2.6.30.4/fs/nilfs2/file.c linux-2.6.30.4/fs/nilfs2/file.c | ||
23784 | --- linux-2.6.30.4/fs/nilfs2/file.c 2009-07-24 17:47:51.000000000 -0400 | ||
23785 | +++ linux-2.6.30.4/fs/nilfs2/file.c 2009-07-30 12:07:09.623977752 -0400 | ||
23786 | @@ -117,7 +117,7 @@ static int nilfs_page_mkwrite(struct vm_ | ||
23787 | return 0; | ||
23788 | } | ||
23789 | |||
23790 | -struct vm_operations_struct nilfs_file_vm_ops = { | ||
23791 | +const struct vm_operations_struct nilfs_file_vm_ops = { | ||
23792 | .fault = filemap_fault, | ||
23793 | .page_mkwrite = nilfs_page_mkwrite, | ||
23794 | }; | ||
23795 | @@ -134,7 +134,7 @@ static int nilfs_file_mmap(struct file * | ||
23796 | * We have mostly NULL's here: the current defaults are ok for | ||
23797 | * the nilfs filesystem. | ||
23798 | */ | ||
23799 | -struct file_operations nilfs_file_operations = { | ||
23800 | +const struct file_operations nilfs_file_operations = { | ||
23801 | .llseek = generic_file_llseek, | ||
23802 | .read = do_sync_read, | ||
23803 | .write = do_sync_write, | ||
23804 | @@ -151,7 +151,7 @@ struct file_operations nilfs_file_operat | ||
23805 | .splice_read = generic_file_splice_read, | ||
23806 | }; | ||
23807 | |||
23808 | -struct inode_operations nilfs_file_inode_operations = { | ||
23809 | +const struct inode_operations nilfs_file_inode_operations = { | ||
23810 | .truncate = nilfs_truncate, | ||
23811 | .setattr = nilfs_setattr, | ||
23812 | .permission = nilfs_permission, | ||
23813 | diff -urNp linux-2.6.30.4/fs/nilfs2/gcinode.c linux-2.6.30.4/fs/nilfs2/gcinode.c | ||
23814 | --- linux-2.6.30.4/fs/nilfs2/gcinode.c 2009-07-24 17:47:51.000000000 -0400 | ||
23815 | +++ linux-2.6.30.4/fs/nilfs2/gcinode.c 2009-07-30 12:07:28.369023156 -0400 | ||
23816 | @@ -52,7 +52,7 @@ | ||
23817 | #include "dat.h" | ||
23818 | #include "ifile.h" | ||
23819 | |||
23820 | -static struct address_space_operations def_gcinode_aops = {}; | ||
23821 | +static const struct address_space_operations def_gcinode_aops = {}; | ||
23822 | /* XXX need def_gcinode_iops/fops? */ | ||
23823 | |||
23824 | /* | ||
23825 | diff -urNp linux-2.6.30.4/fs/nilfs2/inode.c linux-2.6.30.4/fs/nilfs2/inode.c | ||
23826 | --- linux-2.6.30.4/fs/nilfs2/inode.c 2009-07-24 17:47:51.000000000 -0400 | ||
23827 | +++ linux-2.6.30.4/fs/nilfs2/inode.c 2009-07-30 12:07:28.374397645 -0400 | ||
23828 | @@ -237,7 +237,7 @@ nilfs_direct_IO(int rw, struct kiocb *io | ||
23829 | return size; | ||
23830 | } | ||
23831 | |||
23832 | -struct address_space_operations nilfs_aops = { | ||
23833 | +const struct address_space_operations nilfs_aops = { | ||
23834 | .writepage = nilfs_writepage, | ||
23835 | .readpage = nilfs_readpage, | ||
23836 | /* .sync_page = nilfs_sync_page, */ | ||
23837 | diff -urNp linux-2.6.30.4/fs/nilfs2/mdt.c linux-2.6.30.4/fs/nilfs2/mdt.c | ||
23838 | --- linux-2.6.30.4/fs/nilfs2/mdt.c 2009-07-24 17:47:51.000000000 -0400 | ||
23839 | +++ linux-2.6.30.4/fs/nilfs2/mdt.c 2009-07-30 12:07:28.379284534 -0400 | ||
23840 | @@ -428,7 +428,7 @@ nilfs_mdt_write_page(struct page *page, | ||
23841 | } | ||
23842 | |||
23843 | |||
23844 | -static struct address_space_operations def_mdt_aops = { | ||
23845 | +static const struct address_space_operations def_mdt_aops = { | ||
23846 | .writepage = nilfs_mdt_write_page, | ||
23847 | }; | ||
23848 | |||
23849 | diff -urNp linux-2.6.30.4/fs/nilfs2/namei.c linux-2.6.30.4/fs/nilfs2/namei.c | ||
23850 | --- linux-2.6.30.4/fs/nilfs2/namei.c 2009-07-24 17:47:51.000000000 -0400 | ||
23851 | +++ linux-2.6.30.4/fs/nilfs2/namei.c 2009-07-30 12:07:02.764163011 -0400 | ||
23852 | @@ -448,7 +448,7 @@ out: | ||
23853 | return err; | ||
23854 | } | ||
23855 | |||
23856 | -struct inode_operations nilfs_dir_inode_operations = { | ||
23857 | +const struct inode_operations nilfs_dir_inode_operations = { | ||
23858 | .create = nilfs_create, | ||
23859 | .lookup = nilfs_lookup, | ||
23860 | .link = nilfs_link, | ||
23861 | @@ -462,12 +462,12 @@ struct inode_operations nilfs_dir_inode_ | ||
23862 | .permission = nilfs_permission, | ||
23863 | }; | ||
23864 | |||
23865 | -struct inode_operations nilfs_special_inode_operations = { | ||
23866 | +const struct inode_operations nilfs_special_inode_operations = { | ||
23867 | .setattr = nilfs_setattr, | ||
23868 | .permission = nilfs_permission, | ||
23869 | }; | ||
23870 | |||
23871 | -struct inode_operations nilfs_symlink_inode_operations = { | ||
23872 | +const struct inode_operations nilfs_symlink_inode_operations = { | ||
23873 | .readlink = generic_readlink, | ||
23874 | .follow_link = page_follow_link_light, | ||
23875 | .put_link = page_put_link, | ||
23876 | diff -urNp linux-2.6.30.4/fs/nilfs2/nilfs.h linux-2.6.30.4/fs/nilfs2/nilfs.h | ||
23877 | --- linux-2.6.30.4/fs/nilfs2/nilfs.h 2009-07-24 17:47:51.000000000 -0400 | ||
23878 | +++ linux-2.6.30.4/fs/nilfs2/nilfs.h 2009-07-30 12:47:17.035918280 -0400 | ||
23879 | @@ -297,13 +297,13 @@ void nilfs_clear_gcdat_inode(struct the_ | ||
23880 | /* | ||
23881 | * Inodes and files operations | ||
23882 | */ | ||
23883 | -extern struct file_operations nilfs_dir_operations; | ||
23884 | -extern struct inode_operations nilfs_file_inode_operations; | ||
23885 | -extern struct file_operations nilfs_file_operations; | ||
23886 | -extern struct address_space_operations nilfs_aops; | ||
23887 | -extern struct inode_operations nilfs_dir_inode_operations; | ||
23888 | -extern struct inode_operations nilfs_special_inode_operations; | ||
23889 | -extern struct inode_operations nilfs_symlink_inode_operations; | ||
23890 | +extern const struct file_operations nilfs_dir_operations; | ||
23891 | +extern const struct inode_operations nilfs_file_inode_operations; | ||
23892 | +extern const struct file_operations nilfs_file_operations; | ||
23893 | +extern const struct address_space_operations nilfs_aops; | ||
23894 | +extern const struct inode_operations nilfs_dir_inode_operations; | ||
23895 | +extern const struct inode_operations nilfs_special_inode_operations; | ||
23896 | +extern const struct inode_operations nilfs_symlink_inode_operations; | ||
23897 | |||
23898 | /* | ||
23899 | * filesystem type | ||
23900 | diff -urNp linux-2.6.30.4/fs/nilfs2/super.c linux-2.6.30.4/fs/nilfs2/super.c | ||
23901 | --- linux-2.6.30.4/fs/nilfs2/super.c 2009-07-24 17:47:51.000000000 -0400 | ||
23902 | +++ linux-2.6.30.4/fs/nilfs2/super.c 2009-07-30 12:07:21.041339808 -0400 | ||
23903 | @@ -520,7 +520,7 @@ static int nilfs_statfs(struct dentry *d | ||
23904 | return 0; | ||
23905 | } | ||
23906 | |||
23907 | -static struct super_operations nilfs_sops = { | ||
23908 | +static const struct super_operations nilfs_sops = { | ||
23909 | .alloc_inode = nilfs_alloc_inode, | ||
23910 | .destroy_inode = nilfs_destroy_inode, | ||
23911 | .dirty_inode = nilfs_dirty_inode, | ||
23912 | diff -urNp linux-2.6.30.4/fs/nls/nls_base.c linux-2.6.30.4/fs/nls/nls_base.c | ||
23913 | --- linux-2.6.30.4/fs/nls/nls_base.c 2009-07-24 17:47:51.000000000 -0400 | ||
23914 | +++ linux-2.6.30.4/fs/nls/nls_base.c 2009-07-30 09:48:10.092682326 -0400 | ||
24507 | @@ -40,7 +40,7 @@ static const struct utf8_table utf8_tabl | 23915 | @@ -40,7 +40,7 @@ static const struct utf8_table utf8_tabl |
24508 | {0xF8, 0xF0, 3*6, 0x1FFFFF, 0x10000, /* 4 byte sequence */}, | 23916 | {0xF8, 0xF0, 3*6, 0x1FFFFF, 0x10000, /* 4 byte sequence */}, |
24509 | {0xFC, 0xF8, 4*6, 0x3FFFFFF, 0x200000, /* 5 byte sequence */}, | 23917 | {0xFC, 0xF8, 4*6, 0x3FFFFFF, 0x200000, /* 5 byte sequence */}, |
@@ -24513,9 +23921,9 @@ diff -urNp linux-2.6.29.6/fs/nls/nls_base.c linux-2.6.29.6/fs/nls/nls_base.c | |||
24513 | }; | 23921 | }; |
24514 | 23922 | ||
24515 | int | 23923 | int |
24516 | diff -urNp linux-2.6.29.6/fs/ntfs/file.c linux-2.6.29.6/fs/ntfs/file.c | 23924 | diff -urNp linux-2.6.30.4/fs/ntfs/file.c linux-2.6.30.4/fs/ntfs/file.c |
24517 | --- linux-2.6.29.6/fs/ntfs/file.c 2009-07-02 19:41:20.000000000 -0400 | 23925 | --- linux-2.6.30.4/fs/ntfs/file.c 2009-07-24 17:47:51.000000000 -0400 |
24518 | +++ linux-2.6.29.6/fs/ntfs/file.c 2009-07-23 17:34:32.162058358 -0400 | 23926 | +++ linux-2.6.30.4/fs/ntfs/file.c 2009-07-30 09:48:10.092682326 -0400 |
24519 | @@ -2291,6 +2291,6 @@ const struct inode_operations ntfs_file_ | 23927 | @@ -2291,6 +2291,6 @@ const struct inode_operations ntfs_file_ |
24520 | #endif /* NTFS_RW */ | 23928 | #endif /* NTFS_RW */ |
24521 | }; | 23929 | }; |
@@ -24525,9 +23933,21 @@ diff -urNp linux-2.6.29.6/fs/ntfs/file.c linux-2.6.29.6/fs/ntfs/file.c | |||
24525 | 23933 | ||
24526 | -const struct inode_operations ntfs_empty_inode_ops = {}; | 23934 | -const struct inode_operations ntfs_empty_inode_ops = {}; |
24527 | +const struct inode_operations ntfs_empty_inode_ops; | 23935 | +const struct inode_operations ntfs_empty_inode_ops; |
24528 | diff -urNp linux-2.6.29.6/fs/ocfs2/cluster/netdebug.c linux-2.6.29.6/fs/ocfs2/cluster/netdebug.c | 23936 | diff -urNp linux-2.6.30.4/fs/ocfs2/cluster/heartbeat.c linux-2.6.30.4/fs/ocfs2/cluster/heartbeat.c |
24529 | --- linux-2.6.29.6/fs/ocfs2/cluster/netdebug.c 2009-07-02 19:41:20.000000000 -0400 | 23937 | --- linux-2.6.30.4/fs/ocfs2/cluster/heartbeat.c 2009-07-24 17:47:51.000000000 -0400 |
24530 | +++ linux-2.6.29.6/fs/ocfs2/cluster/netdebug.c 2009-07-23 18:40:28.530706067 -0400 | 23938 | +++ linux-2.6.30.4/fs/ocfs2/cluster/heartbeat.c 2009-07-30 12:06:52.144842473 -0400 |
23939 | @@ -966,7 +966,7 @@ static ssize_t o2hb_debug_read(struct fi | ||
23940 | } | ||
23941 | #endif /* CONFIG_DEBUG_FS */ | ||
23942 | |||
23943 | -static struct file_operations o2hb_debug_fops = { | ||
23944 | +static const struct file_operations o2hb_debug_fops = { | ||
23945 | .open = o2hb_debug_open, | ||
23946 | .release = o2hb_debug_release, | ||
23947 | .read = o2hb_debug_read, | ||
23948 | diff -urNp linux-2.6.30.4/fs/ocfs2/cluster/netdebug.c linux-2.6.30.4/fs/ocfs2/cluster/netdebug.c | ||
23949 | --- linux-2.6.30.4/fs/ocfs2/cluster/netdebug.c 2009-07-24 17:47:51.000000000 -0400 | ||
23950 | +++ linux-2.6.30.4/fs/ocfs2/cluster/netdebug.c 2009-07-30 09:48:10.092682326 -0400 | ||
24531 | @@ -163,7 +163,7 @@ static void nst_seq_stop(struct seq_file | 23951 | @@ -163,7 +163,7 @@ static void nst_seq_stop(struct seq_file |
24532 | { | 23952 | { |
24533 | } | 23953 | } |
@@ -24564,34 +23984,10 @@ diff -urNp linux-2.6.29.6/fs/ocfs2/cluster/netdebug.c linux-2.6.29.6/fs/ocfs2/cl | |||
24564 | .open = sc_fop_open, | 23984 | .open = sc_fop_open, |
24565 | .read = seq_read, | 23985 | .read = seq_read, |
24566 | .llseek = seq_lseek, | 23986 | .llseek = seq_lseek, |
24567 | diff -urNp linux-2.6.29.6/fs/ocfs2/dcache.c linux-2.6.29.6/fs/ocfs2/dcache.c | 23987 | diff -urNp linux-2.6.30.4/fs/ocfs2/dlm/dlmdebug.c linux-2.6.30.4/fs/ocfs2/dlm/dlmdebug.c |
24568 | --- linux-2.6.29.6/fs/ocfs2/dcache.c 2009-07-02 19:41:20.000000000 -0400 | 23988 | --- linux-2.6.30.4/fs/ocfs2/dlm/dlmdebug.c 2009-07-24 17:47:51.000000000 -0400 |
24569 | +++ linux-2.6.29.6/fs/ocfs2/dcache.c 2009-07-23 18:40:28.532382020 -0400 | 23989 | +++ linux-2.6.30.4/fs/ocfs2/dlm/dlmdebug.c 2009-07-30 09:48:10.092682326 -0400 |
24570 | @@ -455,7 +455,7 @@ out_move: | 23990 | @@ -479,7 +479,7 @@ bail: |
24571 | d_move(dentry, target); | ||
24572 | } | ||
24573 | |||
24574 | -struct dentry_operations ocfs2_dentry_ops = { | ||
24575 | +const struct dentry_operations ocfs2_dentry_ops = { | ||
24576 | .d_revalidate = ocfs2_dentry_revalidate, | ||
24577 | .d_iput = ocfs2_dentry_iput, | ||
24578 | }; | ||
24579 | diff -urNp linux-2.6.29.6/fs/ocfs2/dcache.h linux-2.6.29.6/fs/ocfs2/dcache.h | ||
24580 | --- linux-2.6.29.6/fs/ocfs2/dcache.h 2009-07-02 19:41:20.000000000 -0400 | ||
24581 | +++ linux-2.6.29.6/fs/ocfs2/dcache.h 2009-07-23 18:40:28.544320633 -0400 | ||
24582 | @@ -26,7 +26,7 @@ | ||
24583 | #ifndef OCFS2_DCACHE_H | ||
24584 | #define OCFS2_DCACHE_H | ||
24585 | |||
24586 | -extern struct dentry_operations ocfs2_dentry_ops; | ||
24587 | +extern const struct dentry_operations ocfs2_dentry_ops; | ||
24588 | |||
24589 | struct ocfs2_dentry_lock { | ||
24590 | /* Use count of dentry lock */ | ||
24591 | diff -urNp linux-2.6.29.6/fs/ocfs2/dlm/dlmdebug.c linux-2.6.29.6/fs/ocfs2/dlm/dlmdebug.c | ||
24592 | --- linux-2.6.29.6/fs/ocfs2/dlm/dlmdebug.c 2009-07-02 19:41:20.000000000 -0400 | ||
24593 | +++ linux-2.6.29.6/fs/ocfs2/dlm/dlmdebug.c 2009-07-23 18:40:28.549511769 -0400 | ||
24594 | @@ -489,7 +489,7 @@ bail: | ||
24595 | return -ENOMEM; | 23991 | return -ENOMEM; |
24596 | } | 23992 | } |
24597 | 23993 | ||
@@ -24627,7 +24023,7 @@ diff -urNp linux-2.6.29.6/fs/ocfs2/dlm/dlmdebug.c linux-2.6.29.6/fs/ocfs2/dlm/dl | |||
24627 | .open = debug_lockres_open, | 24023 | .open = debug_lockres_open, |
24628 | .release = debug_lockres_release, | 24024 | .release = debug_lockres_release, |
24629 | .read = seq_read, | 24025 | .read = seq_read, |
24630 | @@ -903,7 +903,7 @@ bail: | 24026 | @@ -926,7 +926,7 @@ bail: |
24631 | return -ENOMEM; | 24027 | return -ENOMEM; |
24632 | } | 24028 | } |
24633 | 24029 | ||
@@ -24636,10 +24032,10 @@ diff -urNp linux-2.6.29.6/fs/ocfs2/dlm/dlmdebug.c linux-2.6.29.6/fs/ocfs2/dlm/dl | |||
24636 | .open = debug_state_open, | 24032 | .open = debug_state_open, |
24637 | .release = debug_buffer_release, | 24033 | .release = debug_buffer_release, |
24638 | .read = debug_buffer_read, | 24034 | .read = debug_buffer_read, |
24639 | diff -urNp linux-2.6.29.6/fs/ocfs2/localalloc.c linux-2.6.29.6/fs/ocfs2/localalloc.c | 24035 | diff -urNp linux-2.6.30.4/fs/ocfs2/localalloc.c linux-2.6.30.4/fs/ocfs2/localalloc.c |
24640 | --- linux-2.6.29.6/fs/ocfs2/localalloc.c 2009-07-02 19:41:20.000000000 -0400 | 24036 | --- linux-2.6.30.4/fs/ocfs2/localalloc.c 2009-07-24 17:47:51.000000000 -0400 |
24641 | +++ linux-2.6.29.6/fs/ocfs2/localalloc.c 2009-07-23 17:34:32.162793620 -0400 | 24037 | +++ linux-2.6.30.4/fs/ocfs2/localalloc.c 2009-07-30 09:48:10.094563975 -0400 |
24642 | @@ -1272,7 +1272,7 @@ static int ocfs2_local_alloc_slide_windo | 24038 | @@ -1186,7 +1186,7 @@ static int ocfs2_local_alloc_slide_windo |
24643 | goto bail; | 24039 | goto bail; |
24644 | } | 24040 | } |
24645 | 24041 | ||
@@ -24648,9 +24044,9 @@ diff -urNp linux-2.6.29.6/fs/ocfs2/localalloc.c linux-2.6.29.6/fs/ocfs2/localall | |||
24648 | 24044 | ||
24649 | status = 0; | 24045 | status = 0; |
24650 | bail: | 24046 | bail: |
24651 | diff -urNp linux-2.6.29.6/fs/ocfs2/mmap.c linux-2.6.29.6/fs/ocfs2/mmap.c | 24047 | diff -urNp linux-2.6.30.4/fs/ocfs2/mmap.c linux-2.6.30.4/fs/ocfs2/mmap.c |
24652 | --- linux-2.6.29.6/fs/ocfs2/mmap.c 2009-07-02 19:41:20.000000000 -0400 | 24048 | --- linux-2.6.30.4/fs/ocfs2/mmap.c 2009-07-24 17:47:51.000000000 -0400 |
24653 | +++ linux-2.6.29.6/fs/ocfs2/mmap.c 2009-07-23 18:40:28.550266995 -0400 | 24049 | +++ linux-2.6.30.4/fs/ocfs2/mmap.c 2009-07-30 09:48:10.094563975 -0400 |
24654 | @@ -202,7 +202,7 @@ out: | 24050 | @@ -202,7 +202,7 @@ out: |
24655 | return ret; | 24051 | return ret; |
24656 | } | 24052 | } |
@@ -24660,9 +24056,9 @@ diff -urNp linux-2.6.29.6/fs/ocfs2/mmap.c linux-2.6.29.6/fs/ocfs2/mmap.c | |||
24660 | .fault = ocfs2_fault, | 24056 | .fault = ocfs2_fault, |
24661 | .page_mkwrite = ocfs2_page_mkwrite, | 24057 | .page_mkwrite = ocfs2_page_mkwrite, |
24662 | }; | 24058 | }; |
24663 | diff -urNp linux-2.6.29.6/fs/ocfs2/ocfs2.h linux-2.6.29.6/fs/ocfs2/ocfs2.h | 24059 | diff -urNp linux-2.6.30.4/fs/ocfs2/ocfs2.h linux-2.6.30.4/fs/ocfs2/ocfs2.h |
24664 | --- linux-2.6.29.6/fs/ocfs2/ocfs2.h 2009-07-02 19:41:20.000000000 -0400 | 24060 | --- linux-2.6.30.4/fs/ocfs2/ocfs2.h 2009-07-24 17:47:51.000000000 -0400 |
24665 | +++ linux-2.6.29.6/fs/ocfs2/ocfs2.h 2009-07-23 17:34:32.162793620 -0400 | 24061 | +++ linux-2.6.30.4/fs/ocfs2/ocfs2.h 2009-07-30 09:48:10.094563975 -0400 |
24666 | @@ -168,11 +168,11 @@ enum ocfs2_vol_state | 24062 | @@ -168,11 +168,11 @@ enum ocfs2_vol_state |
24667 | 24063 | ||
24668 | struct ocfs2_alloc_stats | 24064 | struct ocfs2_alloc_stats |
@@ -24680,10 +24076,10 @@ diff -urNp linux-2.6.29.6/fs/ocfs2/ocfs2.h linux-2.6.29.6/fs/ocfs2/ocfs2.h | |||
24680 | }; | 24076 | }; |
24681 | 24077 | ||
24682 | enum ocfs2_local_alloc_state | 24078 | enum ocfs2_local_alloc_state |
24683 | diff -urNp linux-2.6.29.6/fs/ocfs2/suballoc.c linux-2.6.29.6/fs/ocfs2/suballoc.c | 24079 | diff -urNp linux-2.6.30.4/fs/ocfs2/suballoc.c linux-2.6.30.4/fs/ocfs2/suballoc.c |
24684 | --- linux-2.6.29.6/fs/ocfs2/suballoc.c 2009-07-02 19:41:20.000000000 -0400 | 24080 | --- linux-2.6.30.4/fs/ocfs2/suballoc.c 2009-07-24 17:47:51.000000000 -0400 |
24685 | +++ linux-2.6.29.6/fs/ocfs2/suballoc.c 2009-07-23 17:34:32.162793620 -0400 | 24081 | +++ linux-2.6.30.4/fs/ocfs2/suballoc.c 2009-07-30 09:48:10.094563975 -0400 |
24686 | @@ -602,7 +602,7 @@ static int ocfs2_reserve_suballoc_bits(s | 24082 | @@ -620,7 +620,7 @@ static int ocfs2_reserve_suballoc_bits(s |
24687 | mlog_errno(status); | 24083 | mlog_errno(status); |
24688 | goto bail; | 24084 | goto bail; |
24689 | } | 24085 | } |
@@ -24692,7 +24088,7 @@ diff -urNp linux-2.6.29.6/fs/ocfs2/suballoc.c linux-2.6.29.6/fs/ocfs2/suballoc.c | |||
24692 | 24088 | ||
24693 | /* You should never ask for this much metadata */ | 24089 | /* You should never ask for this much metadata */ |
24694 | BUG_ON(bits_wanted > | 24090 | BUG_ON(bits_wanted > |
24695 | @@ -1608,7 +1608,7 @@ int ocfs2_claim_metadata(struct ocfs2_su | 24091 | @@ -1641,7 +1641,7 @@ int ocfs2_claim_metadata(struct ocfs2_su |
24696 | mlog_errno(status); | 24092 | mlog_errno(status); |
24697 | goto bail; | 24093 | goto bail; |
24698 | } | 24094 | } |
@@ -24701,7 +24097,7 @@ diff -urNp linux-2.6.29.6/fs/ocfs2/suballoc.c linux-2.6.29.6/fs/ocfs2/suballoc.c | |||
24701 | 24097 | ||
24702 | *blkno_start = bg_blkno + (u64) *suballoc_bit_start; | 24098 | *blkno_start = bg_blkno + (u64) *suballoc_bit_start; |
24703 | ac->ac_bits_given += (*num_bits); | 24099 | ac->ac_bits_given += (*num_bits); |
24704 | @@ -1647,7 +1647,7 @@ int ocfs2_claim_new_inode(struct ocfs2_s | 24100 | @@ -1715,7 +1715,7 @@ int ocfs2_claim_new_inode(struct ocfs2_s |
24705 | mlog_errno(status); | 24101 | mlog_errno(status); |
24706 | goto bail; | 24102 | goto bail; |
24707 | } | 24103 | } |
@@ -24710,7 +24106,7 @@ diff -urNp linux-2.6.29.6/fs/ocfs2/suballoc.c linux-2.6.29.6/fs/ocfs2/suballoc.c | |||
24710 | 24106 | ||
24711 | BUG_ON(num_bits != 1); | 24107 | BUG_ON(num_bits != 1); |
24712 | 24108 | ||
24713 | @@ -1748,7 +1748,7 @@ int __ocfs2_claim_clusters(struct ocfs2_ | 24109 | @@ -1817,7 +1817,7 @@ int __ocfs2_claim_clusters(struct ocfs2_ |
24714 | cluster_start, | 24110 | cluster_start, |
24715 | num_clusters); | 24111 | num_clusters); |
24716 | if (!status) | 24112 | if (!status) |
@@ -24719,7 +24115,7 @@ diff -urNp linux-2.6.29.6/fs/ocfs2/suballoc.c linux-2.6.29.6/fs/ocfs2/suballoc.c | |||
24719 | } else { | 24115 | } else { |
24720 | if (min_clusters > (osb->bitmap_cpg - 1)) { | 24116 | if (min_clusters > (osb->bitmap_cpg - 1)) { |
24721 | /* The only paths asking for contiguousness | 24117 | /* The only paths asking for contiguousness |
24722 | @@ -1776,7 +1776,7 @@ int __ocfs2_claim_clusters(struct ocfs2_ | 24118 | @@ -1845,7 +1845,7 @@ int __ocfs2_claim_clusters(struct ocfs2_ |
24723 | ocfs2_desc_bitmap_to_cluster_off(ac->ac_inode, | 24119 | ocfs2_desc_bitmap_to_cluster_off(ac->ac_inode, |
24724 | bg_blkno, | 24120 | bg_blkno, |
24725 | bg_bit_off); | 24121 | bg_bit_off); |
@@ -24728,9 +24124,21 @@ diff -urNp linux-2.6.29.6/fs/ocfs2/suballoc.c linux-2.6.29.6/fs/ocfs2/suballoc.c | |||
24728 | } | 24124 | } |
24729 | } | 24125 | } |
24730 | if (status < 0) { | 24126 | if (status < 0) { |
24731 | diff -urNp linux-2.6.29.6/fs/omfs/dir.c linux-2.6.29.6/fs/omfs/dir.c | 24127 | diff -urNp linux-2.6.30.4/fs/ocfs2/super.c linux-2.6.30.4/fs/ocfs2/super.c |
24732 | --- linux-2.6.29.6/fs/omfs/dir.c 2009-07-02 19:41:20.000000000 -0400 | 24128 | --- linux-2.6.30.4/fs/ocfs2/super.c 2009-07-24 17:47:51.000000000 -0400 |
24733 | +++ linux-2.6.29.6/fs/omfs/dir.c 2009-07-23 18:40:28.558460904 -0400 | 24129 | +++ linux-2.6.30.4/fs/ocfs2/super.c 2009-07-30 12:06:52.187885986 -0400 |
24130 | @@ -362,7 +362,7 @@ static ssize_t ocfs2_debug_read(struct f | ||
24131 | } | ||
24132 | #endif /* CONFIG_DEBUG_FS */ | ||
24133 | |||
24134 | -static struct file_operations ocfs2_osb_debug_fops = { | ||
24135 | +static const struct file_operations ocfs2_osb_debug_fops = { | ||
24136 | .open = ocfs2_osb_debug_open, | ||
24137 | .release = ocfs2_debug_release, | ||
24138 | .read = ocfs2_debug_read, | ||
24139 | diff -urNp linux-2.6.30.4/fs/omfs/dir.c linux-2.6.30.4/fs/omfs/dir.c | ||
24140 | --- linux-2.6.30.4/fs/omfs/dir.c 2009-07-24 17:47:51.000000000 -0400 | ||
24141 | +++ linux-2.6.30.4/fs/omfs/dir.c 2009-07-30 09:48:10.094563975 -0400 | ||
24734 | @@ -489,7 +489,7 @@ out: | 24142 | @@ -489,7 +489,7 @@ out: |
24735 | return ret; | 24143 | return ret; |
24736 | } | 24144 | } |
@@ -24749,9 +24157,9 @@ diff -urNp linux-2.6.29.6/fs/omfs/dir.c linux-2.6.29.6/fs/omfs/dir.c | |||
24749 | .read = generic_read_dir, | 24157 | .read = generic_read_dir, |
24750 | .readdir = omfs_readdir, | 24158 | .readdir = omfs_readdir, |
24751 | .llseek = generic_file_llseek, | 24159 | .llseek = generic_file_llseek, |
24752 | diff -urNp linux-2.6.29.6/fs/omfs/file.c linux-2.6.29.6/fs/omfs/file.c | 24160 | diff -urNp linux-2.6.30.4/fs/omfs/file.c linux-2.6.30.4/fs/omfs/file.c |
24753 | --- linux-2.6.29.6/fs/omfs/file.c 2009-07-02 19:41:20.000000000 -0400 | 24161 | --- linux-2.6.30.4/fs/omfs/file.c 2009-07-24 17:47:51.000000000 -0400 |
24754 | +++ linux-2.6.29.6/fs/omfs/file.c 2009-07-23 18:40:28.558460904 -0400 | 24162 | +++ linux-2.6.30.4/fs/omfs/file.c 2009-07-30 09:48:10.094563975 -0400 |
24755 | @@ -337,7 +337,7 @@ static sector_t omfs_bmap(struct address | 24163 | @@ -337,7 +337,7 @@ static sector_t omfs_bmap(struct address |
24756 | return generic_block_bmap(mapping, block, omfs_get_block); | 24164 | return generic_block_bmap(mapping, block, omfs_get_block); |
24757 | } | 24165 | } |
@@ -24775,10 +24183,10 @@ diff -urNp linux-2.6.29.6/fs/omfs/file.c linux-2.6.29.6/fs/omfs/file.c | |||
24775 | .readpage = omfs_readpage, | 24183 | .readpage = omfs_readpage, |
24776 | .readpages = omfs_readpages, | 24184 | .readpages = omfs_readpages, |
24777 | .writepage = omfs_writepage, | 24185 | .writepage = omfs_writepage, |
24778 | diff -urNp linux-2.6.29.6/fs/omfs/inode.c linux-2.6.29.6/fs/omfs/inode.c | 24186 | diff -urNp linux-2.6.30.4/fs/omfs/inode.c linux-2.6.30.4/fs/omfs/inode.c |
24779 | --- linux-2.6.29.6/fs/omfs/inode.c 2009-07-02 19:41:20.000000000 -0400 | 24187 | --- linux-2.6.30.4/fs/omfs/inode.c 2009-07-24 17:47:51.000000000 -0400 |
24780 | +++ linux-2.6.29.6/fs/omfs/inode.c 2009-07-23 18:40:28.559411985 -0400 | 24188 | +++ linux-2.6.30.4/fs/omfs/inode.c 2009-07-30 09:48:10.096509014 -0400 |
24781 | @@ -273,7 +273,7 @@ static int omfs_statfs(struct dentry *de | 24189 | @@ -278,7 +278,7 @@ static int omfs_statfs(struct dentry *de |
24782 | return 0; | 24190 | return 0; |
24783 | } | 24191 | } |
24784 | 24192 | ||
@@ -24787,9 +24195,9 @@ diff -urNp linux-2.6.29.6/fs/omfs/inode.c linux-2.6.29.6/fs/omfs/inode.c | |||
24787 | .write_inode = omfs_write_inode, | 24195 | .write_inode = omfs_write_inode, |
24788 | .delete_inode = omfs_delete_inode, | 24196 | .delete_inode = omfs_delete_inode, |
24789 | .put_super = omfs_put_super, | 24197 | .put_super = omfs_put_super, |
24790 | diff -urNp linux-2.6.29.6/fs/omfs/omfs.h linux-2.6.29.6/fs/omfs/omfs.h | 24198 | diff -urNp linux-2.6.30.4/fs/omfs/omfs.h linux-2.6.30.4/fs/omfs/omfs.h |
24791 | --- linux-2.6.29.6/fs/omfs/omfs.h 2009-07-02 19:41:20.000000000 -0400 | 24199 | --- linux-2.6.30.4/fs/omfs/omfs.h 2009-07-24 17:47:51.000000000 -0400 |
24792 | +++ linux-2.6.29.6/fs/omfs/omfs.h 2009-07-23 18:40:28.560275663 -0400 | 24200 | +++ linux-2.6.30.4/fs/omfs/omfs.h 2009-07-30 09:48:10.096509014 -0400 |
24793 | @@ -44,16 +44,16 @@ extern int omfs_allocate_range(struct su | 24201 | @@ -44,16 +44,16 @@ extern int omfs_allocate_range(struct su |
24794 | extern int omfs_clear_range(struct super_block *sb, u64 block, int count); | 24202 | extern int omfs_clear_range(struct super_block *sb, u64 block, int count); |
24795 | 24203 | ||
@@ -24812,10 +24220,10 @@ diff -urNp linux-2.6.29.6/fs/omfs/omfs.h linux-2.6.29.6/fs/omfs/omfs.h | |||
24812 | extern void omfs_make_empty_table(struct buffer_head *bh, int offset); | 24220 | extern void omfs_make_empty_table(struct buffer_head *bh, int offset); |
24813 | extern int omfs_shrink_inode(struct inode *inode); | 24221 | extern int omfs_shrink_inode(struct inode *inode); |
24814 | 24222 | ||
24815 | diff -urNp linux-2.6.29.6/fs/open.c linux-2.6.29.6/fs/open.c | 24223 | diff -urNp linux-2.6.30.4/fs/open.c linux-2.6.30.4/fs/open.c |
24816 | --- linux-2.6.29.6/fs/open.c 2009-07-02 19:41:20.000000000 -0400 | 24224 | --- linux-2.6.30.4/fs/open.c 2009-07-24 17:47:51.000000000 -0400 |
24817 | +++ linux-2.6.29.6/fs/open.c 2009-07-23 17:34:32.164099579 -0400 | 24225 | +++ linux-2.6.30.4/fs/open.c 2009-07-30 11:10:49.258897345 -0400 |
24818 | @@ -205,6 +205,9 @@ int do_truncate(struct dentry *dentry, l | 24226 | @@ -206,6 +206,9 @@ int do_truncate(struct dentry *dentry, l |
24819 | if (length < 0) | 24227 | if (length < 0) |
24820 | return -EINVAL; | 24228 | return -EINVAL; |
24821 | 24229 | ||
@@ -24825,7 +24233,7 @@ diff -urNp linux-2.6.29.6/fs/open.c linux-2.6.29.6/fs/open.c | |||
24825 | newattrs.ia_size = length; | 24233 | newattrs.ia_size = length; |
24826 | newattrs.ia_valid = ATTR_SIZE | time_attrs; | 24234 | newattrs.ia_valid = ATTR_SIZE | time_attrs; |
24827 | if (filp) { | 24235 | if (filp) { |
24828 | @@ -509,6 +512,9 @@ SYSCALL_DEFINE3(faccessat, int, dfd, con | 24236 | @@ -510,6 +513,9 @@ SYSCALL_DEFINE3(faccessat, int, dfd, con |
24829 | if (__mnt_is_readonly(path.mnt)) | 24237 | if (__mnt_is_readonly(path.mnt)) |
24830 | res = -EROFS; | 24238 | res = -EROFS; |
24831 | 24239 | ||
@@ -24835,7 +24243,7 @@ diff -urNp linux-2.6.29.6/fs/open.c linux-2.6.29.6/fs/open.c | |||
24835 | out_path_release: | 24243 | out_path_release: |
24836 | path_put(&path); | 24244 | path_put(&path); |
24837 | out: | 24245 | out: |
24838 | @@ -535,6 +541,8 @@ SYSCALL_DEFINE1(chdir, const char __user | 24246 | @@ -536,6 +542,8 @@ SYSCALL_DEFINE1(chdir, const char __user |
24839 | if (error) | 24247 | if (error) |
24840 | goto dput_and_out; | 24248 | goto dput_and_out; |
24841 | 24249 | ||
@@ -24844,7 +24252,7 @@ diff -urNp linux-2.6.29.6/fs/open.c linux-2.6.29.6/fs/open.c | |||
24844 | set_fs_pwd(current->fs, &path); | 24252 | set_fs_pwd(current->fs, &path); |
24845 | 24253 | ||
24846 | dput_and_out: | 24254 | dput_and_out: |
24847 | @@ -561,6 +569,13 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd | 24255 | @@ -562,6 +570,13 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd |
24848 | goto out_putf; | 24256 | goto out_putf; |
24849 | 24257 | ||
24850 | error = inode_permission(inode, MAY_EXEC | MAY_ACCESS); | 24258 | error = inode_permission(inode, MAY_EXEC | MAY_ACCESS); |
@@ -24858,7 +24266,7 @@ diff -urNp linux-2.6.29.6/fs/open.c linux-2.6.29.6/fs/open.c | |||
24858 | if (!error) | 24266 | if (!error) |
24859 | set_fs_pwd(current->fs, &file->f_path); | 24267 | set_fs_pwd(current->fs, &file->f_path); |
24860 | out_putf: | 24268 | out_putf: |
24861 | @@ -586,7 +601,18 @@ SYSCALL_DEFINE1(chroot, const char __use | 24269 | @@ -587,7 +602,18 @@ SYSCALL_DEFINE1(chroot, const char __use |
24862 | if (!capable(CAP_SYS_CHROOT)) | 24270 | if (!capable(CAP_SYS_CHROOT)) |
24863 | goto dput_and_out; | 24271 | goto dput_and_out; |
24864 | 24272 | ||
@@ -24877,7 +24285,7 @@ diff -urNp linux-2.6.29.6/fs/open.c linux-2.6.29.6/fs/open.c | |||
24877 | error = 0; | 24285 | error = 0; |
24878 | dput_and_out: | 24286 | dput_and_out: |
24879 | path_put(&path); | 24287 | path_put(&path); |
24880 | @@ -614,13 +640,28 @@ SYSCALL_DEFINE2(fchmod, unsigned int, fd | 24288 | @@ -615,13 +641,28 @@ SYSCALL_DEFINE2(fchmod, unsigned int, fd |
24881 | err = mnt_want_write(file->f_path.mnt); | 24289 | err = mnt_want_write(file->f_path.mnt); |
24882 | if (err) | 24290 | if (err) |
24883 | goto out_putf; | 24291 | goto out_putf; |
@@ -24906,7 +24314,7 @@ diff -urNp linux-2.6.29.6/fs/open.c linux-2.6.29.6/fs/open.c | |||
24906 | mnt_drop_write(file->f_path.mnt); | 24314 | mnt_drop_write(file->f_path.mnt); |
24907 | out_putf: | 24315 | out_putf: |
24908 | fput(file); | 24316 | fput(file); |
24909 | @@ -643,13 +684,28 @@ SYSCALL_DEFINE3(fchmodat, int, dfd, cons | 24317 | @@ -644,13 +685,28 @@ SYSCALL_DEFINE3(fchmodat, int, dfd, cons |
24910 | error = mnt_want_write(path.mnt); | 24318 | error = mnt_want_write(path.mnt); |
24911 | if (error) | 24319 | if (error) |
24912 | goto dput_and_out; | 24320 | goto dput_and_out; |
@@ -24935,7 +24343,7 @@ diff -urNp linux-2.6.29.6/fs/open.c linux-2.6.29.6/fs/open.c | |||
24935 | mnt_drop_write(path.mnt); | 24343 | mnt_drop_write(path.mnt); |
24936 | dput_and_out: | 24344 | dput_and_out: |
24937 | path_put(&path); | 24345 | path_put(&path); |
24938 | @@ -662,12 +718,15 @@ SYSCALL_DEFINE2(chmod, const char __user | 24346 | @@ -663,12 +719,15 @@ SYSCALL_DEFINE2(chmod, const char __user |
24939 | return sys_fchmodat(AT_FDCWD, filename, mode); | 24347 | return sys_fchmodat(AT_FDCWD, filename, mode); |
24940 | } | 24348 | } |
24941 | 24349 | ||
@@ -24952,7 +24360,7 @@ diff -urNp linux-2.6.29.6/fs/open.c linux-2.6.29.6/fs/open.c | |||
24952 | newattrs.ia_valid = ATTR_CTIME; | 24360 | newattrs.ia_valid = ATTR_CTIME; |
24953 | if (user != (uid_t) -1) { | 24361 | if (user != (uid_t) -1) { |
24954 | newattrs.ia_valid |= ATTR_UID; | 24362 | newattrs.ia_valid |= ATTR_UID; |
24955 | @@ -698,7 +757,7 @@ SYSCALL_DEFINE3(chown, const char __user | 24363 | @@ -699,7 +758,7 @@ SYSCALL_DEFINE3(chown, const char __user |
24956 | error = mnt_want_write(path.mnt); | 24364 | error = mnt_want_write(path.mnt); |
24957 | if (error) | 24365 | if (error) |
24958 | goto out_release; | 24366 | goto out_release; |
@@ -24961,7 +24369,7 @@ diff -urNp linux-2.6.29.6/fs/open.c linux-2.6.29.6/fs/open.c | |||
24961 | mnt_drop_write(path.mnt); | 24369 | mnt_drop_write(path.mnt); |
24962 | out_release: | 24370 | out_release: |
24963 | path_put(&path); | 24371 | path_put(&path); |
24964 | @@ -723,7 +782,7 @@ SYSCALL_DEFINE5(fchownat, int, dfd, cons | 24372 | @@ -724,7 +783,7 @@ SYSCALL_DEFINE5(fchownat, int, dfd, cons |
24965 | error = mnt_want_write(path.mnt); | 24373 | error = mnt_want_write(path.mnt); |
24966 | if (error) | 24374 | if (error) |
24967 | goto out_release; | 24375 | goto out_release; |
@@ -24970,7 +24378,7 @@ diff -urNp linux-2.6.29.6/fs/open.c linux-2.6.29.6/fs/open.c | |||
24970 | mnt_drop_write(path.mnt); | 24378 | mnt_drop_write(path.mnt); |
24971 | out_release: | 24379 | out_release: |
24972 | path_put(&path); | 24380 | path_put(&path); |
24973 | @@ -742,7 +801,7 @@ SYSCALL_DEFINE3(lchown, const char __use | 24381 | @@ -743,7 +802,7 @@ SYSCALL_DEFINE3(lchown, const char __use |
24974 | error = mnt_want_write(path.mnt); | 24382 | error = mnt_want_write(path.mnt); |
24975 | if (error) | 24383 | if (error) |
24976 | goto out_release; | 24384 | goto out_release; |
@@ -24979,7 +24387,7 @@ diff -urNp linux-2.6.29.6/fs/open.c linux-2.6.29.6/fs/open.c | |||
24979 | mnt_drop_write(path.mnt); | 24387 | mnt_drop_write(path.mnt); |
24980 | out_release: | 24388 | out_release: |
24981 | path_put(&path); | 24389 | path_put(&path); |
24982 | @@ -765,7 +824,7 @@ SYSCALL_DEFINE3(fchown, unsigned int, fd | 24390 | @@ -766,7 +825,7 @@ SYSCALL_DEFINE3(fchown, unsigned int, fd |
24983 | goto out_fput; | 24391 | goto out_fput; |
24984 | dentry = file->f_path.dentry; | 24392 | dentry = file->f_path.dentry; |
24985 | audit_inode(NULL, dentry); | 24393 | audit_inode(NULL, dentry); |
@@ -24988,10 +24396,10 @@ diff -urNp linux-2.6.29.6/fs/open.c linux-2.6.29.6/fs/open.c | |||
24988 | mnt_drop_write(file->f_path.mnt); | 24396 | mnt_drop_write(file->f_path.mnt); |
24989 | out_fput: | 24397 | out_fput: |
24990 | fput(file); | 24398 | fput(file); |
24991 | diff -urNp linux-2.6.29.6/fs/pipe.c linux-2.6.29.6/fs/pipe.c | 24399 | diff -urNp linux-2.6.30.4/fs/pipe.c linux-2.6.30.4/fs/pipe.c |
24992 | --- linux-2.6.29.6/fs/pipe.c 2009-07-02 19:41:20.000000000 -0400 | 24400 | --- linux-2.6.30.4/fs/pipe.c 2009-07-24 17:47:51.000000000 -0400 |
24993 | +++ linux-2.6.29.6/fs/pipe.c 2009-07-23 18:40:28.560275663 -0400 | 24401 | +++ linux-2.6.30.4/fs/pipe.c 2009-07-30 11:10:49.268433019 -0400 |
24994 | @@ -848,7 +848,7 @@ void free_pipe_info(struct inode *inode) | 24402 | @@ -872,7 +872,7 @@ void free_pipe_info(struct inode *inode) |
24995 | inode->i_pipe = NULL; | 24403 | inode->i_pipe = NULL; |
24996 | } | 24404 | } |
24997 | 24405 | ||
@@ -25000,18 +24408,9 @@ diff -urNp linux-2.6.29.6/fs/pipe.c linux-2.6.29.6/fs/pipe.c | |||
25000 | static int pipefs_delete_dentry(struct dentry *dentry) | 24408 | static int pipefs_delete_dentry(struct dentry *dentry) |
25001 | { | 24409 | { |
25002 | /* | 24410 | /* |
25003 | @@ -870,7 +870,7 @@ static char *pipefs_dname(struct dentry | 24411 | diff -urNp linux-2.6.30.4/fs/proc/array.c linux-2.6.30.4/fs/proc/array.c |
25004 | dentry->d_inode->i_ino); | 24412 | --- linux-2.6.30.4/fs/proc/array.c 2009-07-24 17:47:51.000000000 -0400 |
25005 | } | 24413 | +++ linux-2.6.30.4/fs/proc/array.c 2009-07-30 11:10:49.279288424 -0400 |
25006 | |||
25007 | -static struct dentry_operations pipefs_dentry_operations = { | ||
25008 | +static const struct dentry_operations pipefs_dentry_operations = { | ||
25009 | .d_delete = pipefs_delete_dentry, | ||
25010 | .d_dname = pipefs_dname, | ||
25011 | }; | ||
25012 | diff -urNp linux-2.6.29.6/fs/proc/array.c linux-2.6.29.6/fs/proc/array.c | ||
25013 | --- linux-2.6.29.6/fs/proc/array.c 2009-07-02 19:41:20.000000000 -0400 | ||
25014 | +++ linux-2.6.29.6/fs/proc/array.c 2009-07-23 17:34:32.164990172 -0400 | ||
25015 | @@ -321,6 +321,21 @@ static inline void task_context_switch_c | 24414 | @@ -321,6 +321,21 @@ static inline void task_context_switch_c |
25016 | p->nivcsw); | 24415 | p->nivcsw); |
25017 | } | 24416 | } |
@@ -25102,10 +24501,10 @@ diff -urNp linux-2.6.29.6/fs/proc/array.c linux-2.6.29.6/fs/proc/array.c | |||
25102 | + return sprintf(buffer, "%u.%u.%u.%u\n", NIPQUAD(task->signal->curr_ip)); | 24501 | + return sprintf(buffer, "%u.%u.%u.%u\n", NIPQUAD(task->signal->curr_ip)); |
25103 | +} | 24502 | +} |
25104 | +#endif | 24503 | +#endif |
25105 | diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | 24504 | diff -urNp linux-2.6.30.4/fs/proc/base.c linux-2.6.30.4/fs/proc/base.c |
25106 | --- linux-2.6.29.6/fs/proc/base.c 2009-07-02 19:41:20.000000000 -0400 | 24505 | --- linux-2.6.30.4/fs/proc/base.c 2009-07-24 17:47:51.000000000 -0400 |
25107 | +++ linux-2.6.29.6/fs/proc/base.c 2009-07-23 17:34:32.165782392 -0400 | 24506 | +++ linux-2.6.30.4/fs/proc/base.c 2009-07-30 11:10:49.291551908 -0400 |
25108 | @@ -212,6 +212,9 @@ static int check_mem_permission(struct t | 24507 | @@ -213,6 +213,9 @@ static int check_mem_permission(struct t |
25109 | if (task == current) | 24508 | if (task == current) |
25110 | return 0; | 24509 | return 0; |
25111 | 24510 | ||
@@ -25115,7 +24514,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25115 | /* | 24514 | /* |
25116 | * If current is actively ptrace'ing, and would also be | 24515 | * If current is actively ptrace'ing, and would also be |
25117 | * permitted to freshly attach with ptrace now, permit it. | 24516 | * permitted to freshly attach with ptrace now, permit it. |
25118 | @@ -262,6 +265,9 @@ static int proc_pid_cmdline(struct task_ | 24517 | @@ -263,6 +266,9 @@ static int proc_pid_cmdline(struct task_ |
25119 | if (!mm->arg_end) | 24518 | if (!mm->arg_end) |
25120 | goto out_mm; /* Shh! No looking before we're done */ | 24519 | goto out_mm; /* Shh! No looking before we're done */ |
25121 | 24520 | ||
@@ -25125,7 +24524,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25125 | len = mm->arg_end - mm->arg_start; | 24524 | len = mm->arg_end - mm->arg_start; |
25126 | 24525 | ||
25127 | if (len > PAGE_SIZE) | 24526 | if (len > PAGE_SIZE) |
25128 | @@ -289,12 +295,26 @@ out: | 24527 | @@ -290,12 +296,26 @@ out: |
25129 | return res; | 24528 | return res; |
25130 | } | 24529 | } |
25131 | 24530 | ||
@@ -25152,7 +24551,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25152 | do { | 24551 | do { |
25153 | nwords += 2; | 24552 | nwords += 2; |
25154 | } while (mm->saved_auxv[nwords - 2] != 0); /* AT_NULL */ | 24553 | } while (mm->saved_auxv[nwords - 2] != 0); /* AT_NULL */ |
25155 | @@ -330,7 +350,7 @@ static int proc_pid_wchan(struct task_st | 24554 | @@ -331,7 +351,7 @@ static int proc_pid_wchan(struct task_st |
25156 | } | 24555 | } |
25157 | #endif /* CONFIG_KALLSYMS */ | 24556 | #endif /* CONFIG_KALLSYMS */ |
25158 | 24557 | ||
@@ -25161,7 +24560,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25161 | 24560 | ||
25162 | #define MAX_STACK_TRACE_DEPTH 64 | 24561 | #define MAX_STACK_TRACE_DEPTH 64 |
25163 | 24562 | ||
25164 | @@ -523,7 +543,7 @@ static int proc_pid_limits(struct task_s | 24563 | @@ -524,7 +544,7 @@ static int proc_pid_limits(struct task_s |
25165 | return count; | 24564 | return count; |
25166 | } | 24565 | } |
25167 | 24566 | ||
@@ -25170,7 +24569,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25170 | static int proc_pid_syscall(struct task_struct *task, char *buffer) | 24569 | static int proc_pid_syscall(struct task_struct *task, char *buffer) |
25171 | { | 24570 | { |
25172 | long nr; | 24571 | long nr; |
25173 | @@ -937,6 +957,9 @@ static ssize_t environ_read(struct file | 24572 | @@ -938,6 +958,9 @@ static ssize_t environ_read(struct file |
25174 | if (!task) | 24573 | if (!task) |
25175 | goto out_no_task; | 24574 | goto out_no_task; |
25176 | 24575 | ||
@@ -25180,7 +24579,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25180 | if (!ptrace_may_access(task, PTRACE_MODE_READ)) | 24579 | if (!ptrace_may_access(task, PTRACE_MODE_READ)) |
25181 | goto out; | 24580 | goto out; |
25182 | 24581 | ||
25183 | @@ -1440,7 +1463,11 @@ static struct inode *proc_pid_make_inode | 24582 | @@ -1441,7 +1464,11 @@ static struct inode *proc_pid_make_inode |
25184 | rcu_read_lock(); | 24583 | rcu_read_lock(); |
25185 | cred = __task_cred(task); | 24584 | cred = __task_cred(task); |
25186 | inode->i_uid = cred->euid; | 24585 | inode->i_uid = cred->euid; |
@@ -25192,7 +24591,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25192 | rcu_read_unlock(); | 24591 | rcu_read_unlock(); |
25193 | } | 24592 | } |
25194 | security_task_to_inode(task, inode); | 24593 | security_task_to_inode(task, inode); |
25195 | @@ -1458,6 +1485,9 @@ static int pid_getattr(struct vfsmount * | 24594 | @@ -1459,6 +1486,9 @@ static int pid_getattr(struct vfsmount * |
25196 | struct inode *inode = dentry->d_inode; | 24595 | struct inode *inode = dentry->d_inode; |
25197 | struct task_struct *task; | 24596 | struct task_struct *task; |
25198 | const struct cred *cred; | 24597 | const struct cred *cred; |
@@ -25202,7 +24601,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25202 | 24601 | ||
25203 | generic_fillattr(inode, stat); | 24602 | generic_fillattr(inode, stat); |
25204 | 24603 | ||
25205 | @@ -1465,12 +1495,34 @@ static int pid_getattr(struct vfsmount * | 24604 | @@ -1466,12 +1496,34 @@ static int pid_getattr(struct vfsmount * |
25206 | stat->uid = 0; | 24605 | stat->uid = 0; |
25207 | stat->gid = 0; | 24606 | stat->gid = 0; |
25208 | task = pid_task(proc_pid(inode), PIDTYPE_PID); | 24607 | task = pid_task(proc_pid(inode), PIDTYPE_PID); |
@@ -25238,7 +24637,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25238 | } | 24637 | } |
25239 | } | 24638 | } |
25240 | rcu_read_unlock(); | 24639 | rcu_read_unlock(); |
25241 | @@ -1502,11 +1554,20 @@ static int pid_revalidate(struct dentry | 24640 | @@ -1503,11 +1555,20 @@ static int pid_revalidate(struct dentry |
25242 | 24641 | ||
25243 | if (task) { | 24642 | if (task) { |
25244 | if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) || | 24643 | if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) || |
@@ -25259,7 +24658,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25259 | rcu_read_unlock(); | 24658 | rcu_read_unlock(); |
25260 | } else { | 24659 | } else { |
25261 | inode->i_uid = 0; | 24660 | inode->i_uid = 0; |
25262 | @@ -1627,7 +1688,8 @@ static int proc_fd_info(struct inode *in | 24661 | @@ -1628,7 +1689,8 @@ static int proc_fd_info(struct inode *in |
25263 | int fd = proc_fd(inode); | 24662 | int fd = proc_fd(inode); |
25264 | 24663 | ||
25265 | if (task) { | 24664 | if (task) { |
@@ -25269,7 +24668,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25269 | put_task_struct(task); | 24668 | put_task_struct(task); |
25270 | } | 24669 | } |
25271 | if (files) { | 24670 | if (files) { |
25272 | @@ -1879,12 +1941,22 @@ static const struct file_operations proc | 24671 | @@ -1880,12 +1942,22 @@ static const struct file_operations proc |
25273 | static int proc_fd_permission(struct inode *inode, int mask) | 24672 | static int proc_fd_permission(struct inode *inode, int mask) |
25274 | { | 24673 | { |
25275 | int rv; | 24674 | int rv; |
@@ -25294,7 +24693,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25294 | return rv; | 24693 | return rv; |
25295 | } | 24694 | } |
25296 | 24695 | ||
25297 | @@ -1993,6 +2065,9 @@ static struct dentry *proc_pident_lookup | 24696 | @@ -1994,6 +2066,9 @@ static struct dentry *proc_pident_lookup |
25298 | if (!task) | 24697 | if (!task) |
25299 | goto out_no_task; | 24698 | goto out_no_task; |
25300 | 24699 | ||
@@ -25304,7 +24703,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25304 | /* | 24703 | /* |
25305 | * Yes, it does not scale. And it should not. Don't add | 24704 | * Yes, it does not scale. And it should not. Don't add |
25306 | * new entries into /proc/<tgid>/ without very good reasons. | 24705 | * new entries into /proc/<tgid>/ without very good reasons. |
25307 | @@ -2037,6 +2112,9 @@ static int proc_pident_readdir(struct fi | 24706 | @@ -2038,6 +2113,9 @@ static int proc_pident_readdir(struct fi |
25308 | if (!task) | 24707 | if (!task) |
25309 | goto out_no_task; | 24708 | goto out_no_task; |
25310 | 24709 | ||
@@ -25314,7 +24713,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25314 | ret = 0; | 24713 | ret = 0; |
25315 | i = filp->f_pos; | 24714 | i = filp->f_pos; |
25316 | switch (i) { | 24715 | switch (i) { |
25317 | @@ -2397,6 +2475,9 @@ static struct dentry *proc_base_lookup(s | 24716 | @@ -2398,6 +2476,9 @@ static struct dentry *proc_base_lookup(s |
25318 | if (p > last) | 24717 | if (p > last) |
25319 | goto out; | 24718 | goto out; |
25320 | 24719 | ||
@@ -25324,7 +24723,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25324 | error = proc_base_instantiate(dir, dentry, task, p); | 24723 | error = proc_base_instantiate(dir, dentry, task, p); |
25325 | 24724 | ||
25326 | out: | 24725 | out: |
25327 | @@ -2483,7 +2564,7 @@ static const struct pid_entry tgid_base_ | 24726 | @@ -2484,7 +2565,7 @@ static const struct pid_entry tgid_base_ |
25328 | #ifdef CONFIG_SCHED_DEBUG | 24727 | #ifdef CONFIG_SCHED_DEBUG |
25329 | REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations), | 24728 | REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations), |
25330 | #endif | 24729 | #endif |
@@ -25333,7 +24732,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25333 | INF("syscall", S_IRUSR, proc_pid_syscall), | 24732 | INF("syscall", S_IRUSR, proc_pid_syscall), |
25334 | #endif | 24733 | #endif |
25335 | INF("cmdline", S_IRUGO, proc_pid_cmdline), | 24734 | INF("cmdline", S_IRUGO, proc_pid_cmdline), |
25336 | @@ -2511,7 +2592,7 @@ static const struct pid_entry tgid_base_ | 24735 | @@ -2512,7 +2593,7 @@ static const struct pid_entry tgid_base_ |
25337 | #ifdef CONFIG_KALLSYMS | 24736 | #ifdef CONFIG_KALLSYMS |
25338 | INF("wchan", S_IRUGO, proc_pid_wchan), | 24737 | INF("wchan", S_IRUGO, proc_pid_wchan), |
25339 | #endif | 24738 | #endif |
@@ -25342,7 +24741,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25342 | ONE("stack", S_IRUSR, proc_pid_stack), | 24741 | ONE("stack", S_IRUSR, proc_pid_stack), |
25343 | #endif | 24742 | #endif |
25344 | #ifdef CONFIG_SCHEDSTATS | 24743 | #ifdef CONFIG_SCHEDSTATS |
25345 | @@ -2541,6 +2622,9 @@ static const struct pid_entry tgid_base_ | 24744 | @@ -2542,6 +2623,9 @@ static const struct pid_entry tgid_base_ |
25346 | #ifdef CONFIG_TASK_IO_ACCOUNTING | 24745 | #ifdef CONFIG_TASK_IO_ACCOUNTING |
25347 | INF("io", S_IRUGO, proc_tgid_io_accounting), | 24746 | INF("io", S_IRUGO, proc_tgid_io_accounting), |
25348 | #endif | 24747 | #endif |
@@ -25352,7 +24751,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25352 | }; | 24751 | }; |
25353 | 24752 | ||
25354 | static int proc_tgid_base_readdir(struct file * filp, | 24753 | static int proc_tgid_base_readdir(struct file * filp, |
25355 | @@ -2670,7 +2754,14 @@ static struct dentry *proc_pid_instantia | 24754 | @@ -2671,7 +2755,14 @@ static struct dentry *proc_pid_instantia |
25356 | if (!inode) | 24755 | if (!inode) |
25357 | goto out; | 24756 | goto out; |
25358 | 24757 | ||
@@ -25367,7 +24766,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25367 | inode->i_op = &proc_tgid_base_inode_operations; | 24766 | inode->i_op = &proc_tgid_base_inode_operations; |
25368 | inode->i_fop = &proc_tgid_base_operations; | 24767 | inode->i_fop = &proc_tgid_base_operations; |
25369 | inode->i_flags|=S_IMMUTABLE; | 24768 | inode->i_flags|=S_IMMUTABLE; |
25370 | @@ -2712,7 +2803,11 @@ struct dentry *proc_pid_lookup(struct in | 24769 | @@ -2713,7 +2804,11 @@ struct dentry *proc_pid_lookup(struct in |
25371 | if (!task) | 24770 | if (!task) |
25372 | goto out; | 24771 | goto out; |
25373 | 24772 | ||
@@ -25379,7 +24778,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25379 | put_task_struct(task); | 24778 | put_task_struct(task); |
25380 | out: | 24779 | out: |
25381 | return result; | 24780 | return result; |
25382 | @@ -2777,6 +2872,10 @@ int proc_pid_readdir(struct file * filp, | 24781 | @@ -2778,6 +2873,10 @@ int proc_pid_readdir(struct file * filp, |
25383 | { | 24782 | { |
25384 | unsigned int nr = filp->f_pos - FIRST_PROCESS_ENTRY; | 24783 | unsigned int nr = filp->f_pos - FIRST_PROCESS_ENTRY; |
25385 | struct task_struct *reaper = get_proc_task(filp->f_path.dentry->d_inode); | 24784 | struct task_struct *reaper = get_proc_task(filp->f_path.dentry->d_inode); |
@@ -25390,7 +24789,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25390 | struct tgid_iter iter; | 24789 | struct tgid_iter iter; |
25391 | struct pid_namespace *ns; | 24790 | struct pid_namespace *ns; |
25392 | 24791 | ||
25393 | @@ -2795,6 +2894,20 @@ int proc_pid_readdir(struct file * filp, | 24792 | @@ -2796,6 +2895,20 @@ int proc_pid_readdir(struct file * filp, |
25394 | for (iter = next_tgid(ns, iter); | 24793 | for (iter = next_tgid(ns, iter); |
25395 | iter.task; | 24794 | iter.task; |
25396 | iter.tgid += 1, iter = next_tgid(ns, iter)) { | 24795 | iter.tgid += 1, iter = next_tgid(ns, iter)) { |
@@ -25411,7 +24810,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25411 | filp->f_pos = iter.tgid + TGID_OFFSET; | 24810 | filp->f_pos = iter.tgid + TGID_OFFSET; |
25412 | if (proc_pid_fill_cache(filp, dirent, filldir, iter) < 0) { | 24811 | if (proc_pid_fill_cache(filp, dirent, filldir, iter) < 0) { |
25413 | put_task_struct(iter.task); | 24812 | put_task_struct(iter.task); |
25414 | @@ -2822,7 +2935,7 @@ static const struct pid_entry tid_base_s | 24813 | @@ -2823,7 +2936,7 @@ static const struct pid_entry tid_base_s |
25415 | #ifdef CONFIG_SCHED_DEBUG | 24814 | #ifdef CONFIG_SCHED_DEBUG |
25416 | REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations), | 24815 | REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations), |
25417 | #endif | 24816 | #endif |
@@ -25420,7 +24819,7 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25420 | INF("syscall", S_IRUSR, proc_pid_syscall), | 24819 | INF("syscall", S_IRUSR, proc_pid_syscall), |
25421 | #endif | 24820 | #endif |
25422 | INF("cmdline", S_IRUGO, proc_pid_cmdline), | 24821 | INF("cmdline", S_IRUGO, proc_pid_cmdline), |
25423 | @@ -2849,7 +2962,7 @@ static const struct pid_entry tid_base_s | 24822 | @@ -2850,7 +2963,7 @@ static const struct pid_entry tid_base_s |
25424 | #ifdef CONFIG_KALLSYMS | 24823 | #ifdef CONFIG_KALLSYMS |
25425 | INF("wchan", S_IRUGO, proc_pid_wchan), | 24824 | INF("wchan", S_IRUGO, proc_pid_wchan), |
25426 | #endif | 24825 | #endif |
@@ -25429,9 +24828,9 @@ diff -urNp linux-2.6.29.6/fs/proc/base.c linux-2.6.29.6/fs/proc/base.c | |||
25429 | ONE("stack", S_IRUSR, proc_pid_stack), | 24828 | ONE("stack", S_IRUSR, proc_pid_stack), |
25430 | #endif | 24829 | #endif |
25431 | #ifdef CONFIG_SCHEDSTATS | 24830 | #ifdef CONFIG_SCHEDSTATS |
25432 | diff -urNp linux-2.6.29.6/fs/proc/cmdline.c linux-2.6.29.6/fs/proc/cmdline.c | 24831 | diff -urNp linux-2.6.30.4/fs/proc/cmdline.c linux-2.6.30.4/fs/proc/cmdline.c |
25433 | --- linux-2.6.29.6/fs/proc/cmdline.c 2009-07-02 19:41:20.000000000 -0400 | 24832 | --- linux-2.6.30.4/fs/proc/cmdline.c 2009-07-24 17:47:51.000000000 -0400 |
25434 | +++ linux-2.6.29.6/fs/proc/cmdline.c 2009-07-23 17:34:32.166858420 -0400 | 24833 | +++ linux-2.6.30.4/fs/proc/cmdline.c 2009-07-30 11:10:49.303499047 -0400 |
25435 | @@ -23,7 +23,11 @@ static const struct file_operations cmdl | 24834 | @@ -23,7 +23,11 @@ static const struct file_operations cmdl |
25436 | 24835 | ||
25437 | static int __init proc_cmdline_init(void) | 24836 | static int __init proc_cmdline_init(void) |
@@ -25444,9 +24843,9 @@ diff -urNp linux-2.6.29.6/fs/proc/cmdline.c linux-2.6.29.6/fs/proc/cmdline.c | |||
25444 | return 0; | 24843 | return 0; |
25445 | } | 24844 | } |
25446 | module_init(proc_cmdline_init); | 24845 | module_init(proc_cmdline_init); |
25447 | diff -urNp linux-2.6.29.6/fs/proc/devices.c linux-2.6.29.6/fs/proc/devices.c | 24846 | diff -urNp linux-2.6.30.4/fs/proc/devices.c linux-2.6.30.4/fs/proc/devices.c |
25448 | --- linux-2.6.29.6/fs/proc/devices.c 2009-07-02 19:41:20.000000000 -0400 | 24847 | --- linux-2.6.30.4/fs/proc/devices.c 2009-07-24 17:47:51.000000000 -0400 |
25449 | +++ linux-2.6.29.6/fs/proc/devices.c 2009-07-23 17:34:32.166858420 -0400 | 24848 | +++ linux-2.6.30.4/fs/proc/devices.c 2009-07-30 11:10:49.304300221 -0400 |
25450 | @@ -64,7 +64,11 @@ static const struct file_operations proc | 24849 | @@ -64,7 +64,11 @@ static const struct file_operations proc |
25451 | 24850 | ||
25452 | static int __init proc_devices_init(void) | 24851 | static int __init proc_devices_init(void) |
@@ -25459,10 +24858,10 @@ diff -urNp linux-2.6.29.6/fs/proc/devices.c linux-2.6.29.6/fs/proc/devices.c | |||
25459 | return 0; | 24858 | return 0; |
25460 | } | 24859 | } |
25461 | module_init(proc_devices_init); | 24860 | module_init(proc_devices_init); |
25462 | diff -urNp linux-2.6.29.6/fs/proc/inode.c linux-2.6.29.6/fs/proc/inode.c | 24861 | diff -urNp linux-2.6.30.4/fs/proc/inode.c linux-2.6.30.4/fs/proc/inode.c |
25463 | --- linux-2.6.29.6/fs/proc/inode.c 2009-07-02 19:41:20.000000000 -0400 | 24862 | --- linux-2.6.30.4/fs/proc/inode.c 2009-07-24 17:47:51.000000000 -0400 |
25464 | +++ linux-2.6.29.6/fs/proc/inode.c 2009-07-23 17:34:32.166858420 -0400 | 24863 | +++ linux-2.6.30.4/fs/proc/inode.c 2009-07-30 11:10:49.304300221 -0400 |
25465 | @@ -463,7 +463,11 @@ struct inode *proc_get_inode(struct supe | 24864 | @@ -457,7 +457,11 @@ struct inode *proc_get_inode(struct supe |
25466 | if (de->mode) { | 24865 | if (de->mode) { |
25467 | inode->i_mode = de->mode; | 24866 | inode->i_mode = de->mode; |
25468 | inode->i_uid = de->uid; | 24867 | inode->i_uid = de->uid; |
@@ -25474,9 +24873,9 @@ diff -urNp linux-2.6.29.6/fs/proc/inode.c linux-2.6.29.6/fs/proc/inode.c | |||
25474 | } | 24873 | } |
25475 | if (de->size) | 24874 | if (de->size) |
25476 | inode->i_size = de->size; | 24875 | inode->i_size = de->size; |
25477 | diff -urNp linux-2.6.29.6/fs/proc/internal.h linux-2.6.29.6/fs/proc/internal.h | 24876 | diff -urNp linux-2.6.30.4/fs/proc/internal.h linux-2.6.30.4/fs/proc/internal.h |
25478 | --- linux-2.6.29.6/fs/proc/internal.h 2009-07-02 19:41:20.000000000 -0400 | 24877 | --- linux-2.6.30.4/fs/proc/internal.h 2009-07-24 17:47:51.000000000 -0400 |
25479 | +++ linux-2.6.29.6/fs/proc/internal.h 2009-07-23 17:34:32.166858420 -0400 | 24878 | +++ linux-2.6.30.4/fs/proc/internal.h 2009-07-30 11:10:49.305386482 -0400 |
25480 | @@ -51,6 +51,9 @@ extern int proc_pid_status(struct seq_fi | 24879 | @@ -51,6 +51,9 @@ extern int proc_pid_status(struct seq_fi |
25481 | struct pid *pid, struct task_struct *task); | 24880 | struct pid *pid, struct task_struct *task); |
25482 | extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns, | 24881 | extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns, |
@@ -25487,9 +24886,9 @@ diff -urNp linux-2.6.29.6/fs/proc/internal.h linux-2.6.29.6/fs/proc/internal.h | |||
25487 | extern loff_t mem_lseek(struct file *file, loff_t offset, int orig); | 24886 | extern loff_t mem_lseek(struct file *file, loff_t offset, int orig); |
25488 | 24887 | ||
25489 | extern const struct file_operations proc_maps_operations; | 24888 | extern const struct file_operations proc_maps_operations; |
25490 | diff -urNp linux-2.6.29.6/fs/proc/Kconfig linux-2.6.29.6/fs/proc/Kconfig | 24889 | diff -urNp linux-2.6.30.4/fs/proc/Kconfig linux-2.6.30.4/fs/proc/Kconfig |
25491 | --- linux-2.6.29.6/fs/proc/Kconfig 2009-07-02 19:41:20.000000000 -0400 | 24890 | --- linux-2.6.30.4/fs/proc/Kconfig 2009-07-24 17:47:51.000000000 -0400 |
25492 | +++ linux-2.6.29.6/fs/proc/Kconfig 2009-07-23 17:34:32.166858420 -0400 | 24891 | +++ linux-2.6.30.4/fs/proc/Kconfig 2009-07-30 11:10:49.305386482 -0400 |
25493 | @@ -30,12 +30,12 @@ config PROC_FS | 24892 | @@ -30,12 +30,12 @@ config PROC_FS |
25494 | 24893 | ||
25495 | config PROC_KCORE | 24894 | config PROC_KCORE |
@@ -25517,9 +24916,9 @@ diff -urNp linux-2.6.29.6/fs/proc/Kconfig linux-2.6.29.6/fs/proc/Kconfig | |||
25517 | bool "Enable /proc page monitoring" if EMBEDDED | 24916 | bool "Enable /proc page monitoring" if EMBEDDED |
25518 | help | 24917 | help |
25519 | Various /proc files exist to monitor process memory utilization: | 24918 | Various /proc files exist to monitor process memory utilization: |
25520 | diff -urNp linux-2.6.29.6/fs/proc/kcore.c linux-2.6.29.6/fs/proc/kcore.c | 24919 | diff -urNp linux-2.6.30.4/fs/proc/kcore.c linux-2.6.30.4/fs/proc/kcore.c |
25521 | --- linux-2.6.29.6/fs/proc/kcore.c 2009-07-02 19:41:20.000000000 -0400 | 24920 | --- linux-2.6.30.4/fs/proc/kcore.c 2009-07-24 17:47:51.000000000 -0400 |
25522 | +++ linux-2.6.29.6/fs/proc/kcore.c 2009-07-23 17:34:32.167803575 -0400 | 24921 | +++ linux-2.6.30.4/fs/proc/kcore.c 2009-07-30 11:10:49.306366172 -0400 |
25523 | @@ -404,10 +404,12 @@ read_kcore(struct file *file, char __use | 24922 | @@ -404,10 +404,12 @@ read_kcore(struct file *file, char __use |
25524 | 24923 | ||
25525 | static int __init proc_kcore_init(void) | 24924 | static int __init proc_kcore_init(void) |
@@ -25533,9 +24932,9 @@ diff -urNp linux-2.6.29.6/fs/proc/kcore.c linux-2.6.29.6/fs/proc/kcore.c | |||
25533 | return 0; | 24932 | return 0; |
25534 | } | 24933 | } |
25535 | module_init(proc_kcore_init); | 24934 | module_init(proc_kcore_init); |
25536 | diff -urNp linux-2.6.29.6/fs/proc/nommu.c linux-2.6.29.6/fs/proc/nommu.c | 24935 | diff -urNp linux-2.6.30.4/fs/proc/nommu.c linux-2.6.30.4/fs/proc/nommu.c |
25537 | --- linux-2.6.29.6/fs/proc/nommu.c 2009-07-02 19:41:20.000000000 -0400 | 24936 | --- linux-2.6.30.4/fs/proc/nommu.c 2009-07-24 17:47:51.000000000 -0400 |
25538 | +++ linux-2.6.29.6/fs/proc/nommu.c 2009-07-23 18:40:27.471265103 -0400 | 24937 | +++ linux-2.6.30.4/fs/proc/nommu.c 2009-07-30 09:48:10.096509014 -0400 |
25539 | @@ -67,7 +67,7 @@ static int nommu_region_show(struct seq_ | 24938 | @@ -67,7 +67,7 @@ static int nommu_region_show(struct seq_ |
25540 | if (len < 1) | 24939 | if (len < 1) |
25541 | len = 1; | 24940 | len = 1; |
@@ -25554,9 +24953,9 @@ diff -urNp linux-2.6.29.6/fs/proc/nommu.c linux-2.6.29.6/fs/proc/nommu.c | |||
25554 | .start = nommu_region_list_start, | 24953 | .start = nommu_region_list_start, |
25555 | .next = nommu_region_list_next, | 24954 | .next = nommu_region_list_next, |
25556 | .stop = nommu_region_list_stop, | 24955 | .stop = nommu_region_list_stop, |
25557 | diff -urNp linux-2.6.29.6/fs/proc/proc_net.c linux-2.6.29.6/fs/proc/proc_net.c | 24956 | diff -urNp linux-2.6.30.4/fs/proc/proc_net.c linux-2.6.30.4/fs/proc/proc_net.c |
25558 | --- linux-2.6.29.6/fs/proc/proc_net.c 2009-07-02 19:41:20.000000000 -0400 | 24957 | --- linux-2.6.30.4/fs/proc/proc_net.c 2009-07-24 17:47:51.000000000 -0400 |
25559 | +++ linux-2.6.29.6/fs/proc/proc_net.c 2009-07-23 17:34:32.167803575 -0400 | 24958 | +++ linux-2.6.30.4/fs/proc/proc_net.c 2009-07-30 11:10:49.306366172 -0400 |
25560 | @@ -104,6 +104,17 @@ static struct net *get_proc_task_net(str | 24959 | @@ -104,6 +104,17 @@ static struct net *get_proc_task_net(str |
25561 | struct task_struct *task; | 24960 | struct task_struct *task; |
25562 | struct nsproxy *ns; | 24961 | struct nsproxy *ns; |
@@ -25575,20 +24974,18 @@ diff -urNp linux-2.6.29.6/fs/proc/proc_net.c linux-2.6.29.6/fs/proc/proc_net.c | |||
25575 | 24974 | ||
25576 | rcu_read_lock(); | 24975 | rcu_read_lock(); |
25577 | task = pid_task(proc_pid(dir), PIDTYPE_PID); | 24976 | task = pid_task(proc_pid(dir), PIDTYPE_PID); |
25578 | diff -urNp linux-2.6.29.6/fs/proc/proc_sysctl.c linux-2.6.29.6/fs/proc/proc_sysctl.c | 24977 | diff -urNp linux-2.6.30.4/fs/proc/proc_sysctl.c linux-2.6.30.4/fs/proc/proc_sysctl.c |
25579 | --- linux-2.6.29.6/fs/proc/proc_sysctl.c 2009-07-02 19:41:20.000000000 -0400 | 24978 | --- linux-2.6.30.4/fs/proc/proc_sysctl.c 2009-07-24 17:47:51.000000000 -0400 |
25580 | +++ linux-2.6.29.6/fs/proc/proc_sysctl.c 2009-07-23 19:28:12.262381898 -0400 | 24979 | +++ linux-2.6.30.4/fs/proc/proc_sysctl.c 2009-07-30 11:10:49.307381327 -0400 |
25581 | @@ -7,7 +7,9 @@ | 24980 | @@ -7,6 +7,8 @@ |
25582 | #include <linux/security.h> | 24981 | #include <linux/security.h> |
25583 | #include "internal.h" | 24982 | #include "internal.h" |
25584 | 24983 | ||
25585 | -static struct dentry_operations proc_sys_dentry_operations; | ||
25586 | +extern __u32 gr_handle_sysctl(const struct ctl_table *table, const int op); | 24984 | +extern __u32 gr_handle_sysctl(const struct ctl_table *table, const int op); |
25587 | + | 24985 | + |
25588 | +static const struct dentry_operations proc_sys_dentry_operations; | 24986 | static const struct dentry_operations proc_sys_dentry_operations; |
25589 | static const struct file_operations proc_sys_file_operations; | 24987 | static const struct file_operations proc_sys_file_operations; |
25590 | static const struct inode_operations proc_sys_inode_operations; | 24988 | static const struct inode_operations proc_sys_inode_operations; |
25591 | static const struct file_operations proc_sys_dir_file_operations; | ||
25592 | @@ -109,6 +111,9 @@ static struct dentry *proc_sys_lookup(st | 24989 | @@ -109,6 +111,9 @@ static struct dentry *proc_sys_lookup(st |
25593 | if (!p) | 24990 | if (!p) |
25594 | goto out; | 24991 | goto out; |
@@ -25619,18 +25016,9 @@ diff -urNp linux-2.6.29.6/fs/proc/proc_sysctl.c linux-2.6.29.6/fs/proc/proc_sysc | |||
25619 | generic_fillattr(inode, stat); | 25016 | generic_fillattr(inode, stat); |
25620 | if (table) | 25017 | if (table) |
25621 | stat->mode = (stat->mode & S_IFMT) | table->mode; | 25018 | stat->mode = (stat->mode & S_IFMT) | table->mode; |
25622 | @@ -396,7 +407,7 @@ static int proc_sys_compare(struct dentr | 25019 | diff -urNp linux-2.6.30.4/fs/proc/root.c linux-2.6.30.4/fs/proc/root.c |
25623 | return !sysctl_is_seen(PROC_I(dentry->d_inode)->sysctl); | 25020 | --- linux-2.6.30.4/fs/proc/root.c 2009-07-24 17:47:51.000000000 -0400 |
25624 | } | 25021 | +++ linux-2.6.30.4/fs/proc/root.c 2009-07-30 11:10:49.307381327 -0400 |
25625 | |||
25626 | -static struct dentry_operations proc_sys_dentry_operations = { | ||
25627 | +static const struct dentry_operations proc_sys_dentry_operations = { | ||
25628 | .d_revalidate = proc_sys_revalidate, | ||
25629 | .d_delete = proc_sys_delete, | ||
25630 | .d_compare = proc_sys_compare, | ||
25631 | diff -urNp linux-2.6.29.6/fs/proc/root.c linux-2.6.29.6/fs/proc/root.c | ||
25632 | --- linux-2.6.29.6/fs/proc/root.c 2009-07-02 19:41:20.000000000 -0400 | ||
25633 | +++ linux-2.6.29.6/fs/proc/root.c 2009-07-23 17:34:32.167803575 -0400 | ||
25634 | @@ -101,6 +101,11 @@ static struct file_system_type proc_fs_t | 25022 | @@ -101,6 +101,11 @@ static struct file_system_type proc_fs_t |
25635 | .kill_sb = proc_kill_sb, | 25023 | .kill_sb = proc_kill_sb, |
25636 | }; | 25024 | }; |
@@ -25665,9 +25053,9 @@ diff -urNp linux-2.6.29.6/fs/proc/root.c linux-2.6.29.6/fs/proc/root.c | |||
25665 | } | 25053 | } |
25666 | 25054 | ||
25667 | static int proc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat | 25055 | static int proc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat |
25668 | diff -urNp linux-2.6.29.6/fs/proc/task_mmu.c linux-2.6.29.6/fs/proc/task_mmu.c | 25056 | diff -urNp linux-2.6.30.4/fs/proc/task_mmu.c linux-2.6.30.4/fs/proc/task_mmu.c |
25669 | --- linux-2.6.29.6/fs/proc/task_mmu.c 2009-07-02 19:41:20.000000000 -0400 | 25057 | --- linux-2.6.30.4/fs/proc/task_mmu.c 2009-07-24 17:47:51.000000000 -0400 |
25670 | +++ linux-2.6.29.6/fs/proc/task_mmu.c 2009-07-23 17:34:32.168754984 -0400 | 25058 | +++ linux-2.6.30.4/fs/proc/task_mmu.c 2009-07-30 11:27:12.967439752 -0400 |
25671 | @@ -46,15 +46,26 @@ void task_mem(struct seq_file *m, struct | 25059 | @@ -46,15 +46,26 @@ void task_mem(struct seq_file *m, struct |
25672 | "VmStk:\t%8lu kB\n" | 25060 | "VmStk:\t%8lu kB\n" |
25673 | "VmExe:\t%8lu kB\n" | 25061 | "VmExe:\t%8lu kB\n" |
@@ -25711,7 +25099,7 @@ diff -urNp linux-2.6.29.6/fs/proc/task_mmu.c linux-2.6.29.6/fs/proc/task_mmu.c | |||
25711 | static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma) | 25099 | static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma) |
25712 | { | 25100 | { |
25713 | struct mm_struct *mm = vma->vm_mm; | 25101 | struct mm_struct *mm = vma->vm_mm; |
25714 | @@ -214,13 +231,22 @@ static void show_map_vma(struct seq_file | 25102 | @@ -216,13 +233,22 @@ static void show_map_vma(struct seq_file |
25715 | } | 25103 | } |
25716 | 25104 | ||
25717 | seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n", | 25105 | seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n", |
@@ -25727,14 +25115,14 @@ diff -urNp linux-2.6.29.6/fs/proc/task_mmu.c linux-2.6.29.6/fs/proc/task_mmu.c | |||
25727 | flags & VM_EXEC ? 'x' : '-', | 25115 | flags & VM_EXEC ? 'x' : '-', |
25728 | flags & VM_MAYSHARE ? 's' : 'p', | 25116 | flags & VM_MAYSHARE ? 's' : 'p', |
25729 | +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP | 25117 | +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP |
25730 | + PAX_RAND_FLAGS(mm) ? 0UL : ((loff_t)vma->vm_pgoff) << PAGE_SHIFT, | 25118 | + PAX_RAND_FLAGS(mm) ? 0UL : pgoff, |
25731 | +#else | 25119 | +#else |
25732 | ((loff_t)vma->vm_pgoff) << PAGE_SHIFT, | 25120 | pgoff, |
25733 | +#endif | 25121 | +#endif |
25734 | MAJOR(dev), MINOR(dev), ino, &len); | 25122 | MAJOR(dev), MINOR(dev), ino, &len); |
25735 | 25123 | ||
25736 | /* | 25124 | /* |
25737 | @@ -229,16 +255,16 @@ static void show_map_vma(struct seq_file | 25125 | @@ -231,16 +257,16 @@ static void show_map_vma(struct seq_file |
25738 | */ | 25126 | */ |
25739 | if (file) { | 25127 | if (file) { |
25740 | pad_len_spaces(m, len); | 25128 | pad_len_spaces(m, len); |
@@ -25756,7 +25144,7 @@ diff -urNp linux-2.6.29.6/fs/proc/task_mmu.c linux-2.6.29.6/fs/proc/task_mmu.c | |||
25756 | name = "[stack]"; | 25144 | name = "[stack]"; |
25757 | } | 25145 | } |
25758 | } else { | 25146 | } else { |
25759 | @@ -381,9 +407,16 @@ static int show_smap(struct seq_file *m, | 25147 | @@ -383,9 +409,16 @@ static int show_smap(struct seq_file *m, |
25760 | }; | 25148 | }; |
25761 | 25149 | ||
25762 | memset(&mss, 0, sizeof mss); | 25150 | memset(&mss, 0, sizeof mss); |
@@ -25776,7 +25164,7 @@ diff -urNp linux-2.6.29.6/fs/proc/task_mmu.c linux-2.6.29.6/fs/proc/task_mmu.c | |||
25776 | 25164 | ||
25777 | show_map_vma(m, vma); | 25165 | show_map_vma(m, vma); |
25778 | 25166 | ||
25779 | @@ -399,7 +432,11 @@ static int show_smap(struct seq_file *m, | 25167 | @@ -401,7 +434,11 @@ static int show_smap(struct seq_file *m, |
25780 | "Swap: %8lu kB\n" | 25168 | "Swap: %8lu kB\n" |
25781 | "KernelPageSize: %8lu kB\n" | 25169 | "KernelPageSize: %8lu kB\n" |
25782 | "MMUPageSize: %8lu kB\n", | 25170 | "MMUPageSize: %8lu kB\n", |
@@ -25788,10 +25176,10 @@ diff -urNp linux-2.6.29.6/fs/proc/task_mmu.c linux-2.6.29.6/fs/proc/task_mmu.c | |||
25788 | mss.resident >> 10, | 25176 | mss.resident >> 10, |
25789 | (unsigned long)(mss.pss >> (10 + PSS_SHIFT)), | 25177 | (unsigned long)(mss.pss >> (10 + PSS_SHIFT)), |
25790 | mss.shared_clean >> 10, | 25178 | mss.shared_clean >> 10, |
25791 | diff -urNp linux-2.6.29.6/fs/proc/task_nommu.c linux-2.6.29.6/fs/proc/task_nommu.c | 25179 | diff -urNp linux-2.6.30.4/fs/proc/task_nommu.c linux-2.6.30.4/fs/proc/task_nommu.c |
25792 | --- linux-2.6.29.6/fs/proc/task_nommu.c 2009-07-02 19:41:20.000000000 -0400 | 25180 | --- linux-2.6.30.4/fs/proc/task_nommu.c 2009-07-24 17:47:51.000000000 -0400 |
25793 | +++ linux-2.6.29.6/fs/proc/task_nommu.c 2009-07-23 17:34:32.168754984 -0400 | 25181 | +++ linux-2.6.30.4/fs/proc/task_nommu.c 2009-07-30 09:48:10.096509014 -0400 |
25794 | @@ -49,7 +49,7 @@ void task_mem(struct seq_file *m, struct | 25182 | @@ -50,7 +50,7 @@ void task_mem(struct seq_file *m, struct |
25795 | else | 25183 | else |
25796 | bytes += kobjsize(mm); | 25184 | bytes += kobjsize(mm); |
25797 | 25185 | ||
@@ -25800,7 +25188,7 @@ diff -urNp linux-2.6.29.6/fs/proc/task_nommu.c linux-2.6.29.6/fs/proc/task_nommu | |||
25800 | sbytes += kobjsize(current->fs); | 25188 | sbytes += kobjsize(current->fs); |
25801 | else | 25189 | else |
25802 | bytes += kobjsize(current->fs); | 25190 | bytes += kobjsize(current->fs); |
25803 | @@ -151,7 +151,7 @@ static int nommu_vma_show(struct seq_fil | 25191 | @@ -154,7 +154,7 @@ static int nommu_vma_show(struct seq_fil |
25804 | if (len < 1) | 25192 | if (len < 1) |
25805 | len = 1; | 25193 | len = 1; |
25806 | seq_printf(m, "%*c", len, ' '); | 25194 | seq_printf(m, "%*c", len, ' '); |
@@ -25809,9 +25197,9 @@ diff -urNp linux-2.6.29.6/fs/proc/task_nommu.c linux-2.6.29.6/fs/proc/task_nommu | |||
25809 | } | 25197 | } |
25810 | 25198 | ||
25811 | seq_putc(m, '\n'); | 25199 | seq_putc(m, '\n'); |
25812 | diff -urNp linux-2.6.29.6/fs/readdir.c linux-2.6.29.6/fs/readdir.c | 25200 | diff -urNp linux-2.6.30.4/fs/readdir.c linux-2.6.30.4/fs/readdir.c |
25813 | --- linux-2.6.29.6/fs/readdir.c 2009-07-02 19:41:20.000000000 -0400 | 25201 | --- linux-2.6.30.4/fs/readdir.c 2009-07-24 17:47:51.000000000 -0400 |
25814 | +++ linux-2.6.29.6/fs/readdir.c 2009-07-23 17:34:32.168754984 -0400 | 25202 | +++ linux-2.6.30.4/fs/readdir.c 2009-07-30 11:10:49.318449083 -0400 |
25815 | @@ -16,6 +16,7 @@ | 25203 | @@ -16,6 +16,7 @@ |
25816 | #include <linux/security.h> | 25204 | #include <linux/security.h> |
25817 | #include <linux/syscalls.h> | 25205 | #include <linux/syscalls.h> |
@@ -25901,10 +25289,10 @@ diff -urNp linux-2.6.29.6/fs/readdir.c linux-2.6.29.6/fs/readdir.c | |||
25901 | buf.count = count; | 25289 | buf.count = count; |
25902 | buf.error = 0; | 25290 | buf.error = 0; |
25903 | 25291 | ||
25904 | diff -urNp linux-2.6.29.6/fs/reiserfs/do_balan.c linux-2.6.29.6/fs/reiserfs/do_balan.c | 25292 | diff -urNp linux-2.6.30.4/fs/reiserfs/do_balan.c linux-2.6.30.4/fs/reiserfs/do_balan.c |
25905 | --- linux-2.6.29.6/fs/reiserfs/do_balan.c 2009-07-02 19:41:20.000000000 -0400 | 25293 | --- linux-2.6.30.4/fs/reiserfs/do_balan.c 2009-07-24 17:47:51.000000000 -0400 |
25906 | +++ linux-2.6.29.6/fs/reiserfs/do_balan.c 2009-07-23 17:34:32.169708808 -0400 | 25294 | +++ linux-2.6.30.4/fs/reiserfs/do_balan.c 2009-07-30 09:48:10.096509014 -0400 |
25907 | @@ -2114,7 +2114,7 @@ void do_balance(struct tree_balance *tb, | 25295 | @@ -2059,7 +2059,7 @@ void do_balance(struct tree_balance *tb, |
25908 | return; | 25296 | return; |
25909 | } | 25297 | } |
25910 | 25298 | ||
@@ -25913,21 +25301,21 @@ diff -urNp linux-2.6.29.6/fs/reiserfs/do_balan.c linux-2.6.29.6/fs/reiserfs/do_b | |||
25913 | do_balance_starts(tb); | 25301 | do_balance_starts(tb); |
25914 | 25302 | ||
25915 | /* balance leaf returns 0 except if combining L R and S into | 25303 | /* balance leaf returns 0 except if combining L R and S into |
25916 | diff -urNp linux-2.6.29.6/fs/reiserfs/xattr.c linux-2.6.29.6/fs/reiserfs/xattr.c | 25304 | diff -urNp linux-2.6.30.4/fs/romfs/super.c linux-2.6.30.4/fs/romfs/super.c |
25917 | --- linux-2.6.29.6/fs/reiserfs/xattr.c 2009-07-02 19:41:20.000000000 -0400 | 25305 | --- linux-2.6.30.4/fs/romfs/super.c 2009-07-24 17:47:51.000000000 -0400 |
25918 | +++ linux-2.6.29.6/fs/reiserfs/xattr.c 2009-07-23 18:40:28.566682353 -0400 | 25306 | +++ linux-2.6.30.4/fs/romfs/super.c 2009-07-30 12:07:02.769214712 -0400 |
25919 | @@ -1136,7 +1136,7 @@ xattr_lookup_poison(struct dentry *dentr | 25307 | @@ -284,7 +284,7 @@ static const struct file_operations romf |
25920 | return 1; | 25308 | .readdir = romfs_readdir, |
25921 | } | 25309 | }; |
25922 | 25310 | ||
25923 | -static struct dentry_operations xattr_lookup_poison_ops = { | 25311 | -static struct inode_operations romfs_dir_inode_operations = { |
25924 | +static const struct dentry_operations xattr_lookup_poison_ops = { | 25312 | +static const struct inode_operations romfs_dir_inode_operations = { |
25925 | .d_compare = xattr_lookup_poison, | 25313 | .lookup = romfs_lookup, |
25926 | }; | 25314 | }; |
25927 | 25315 | ||
25928 | diff -urNp linux-2.6.29.6/fs/select.c linux-2.6.29.6/fs/select.c | 25316 | diff -urNp linux-2.6.30.4/fs/select.c linux-2.6.30.4/fs/select.c |
25929 | --- linux-2.6.29.6/fs/select.c 2009-07-02 19:41:20.000000000 -0400 | 25317 | --- linux-2.6.30.4/fs/select.c 2009-07-24 17:47:51.000000000 -0400 |
25930 | +++ linux-2.6.29.6/fs/select.c 2009-07-23 17:34:32.169708808 -0400 | 25318 | +++ linux-2.6.30.4/fs/select.c 2009-07-30 11:10:49.324080336 -0400 |
25931 | @@ -19,6 +19,7 @@ | 25319 | @@ -19,6 +19,7 @@ |
25932 | #include <linux/module.h> | 25320 | #include <linux/module.h> |
25933 | #include <linux/slab.h> | 25321 | #include <linux/slab.h> |
@@ -25944,9 +25332,9 @@ diff -urNp linux-2.6.29.6/fs/select.c linux-2.6.29.6/fs/select.c | |||
25944 | if (nfds > current->signal->rlim[RLIMIT_NOFILE].rlim_cur) | 25332 | if (nfds > current->signal->rlim[RLIMIT_NOFILE].rlim_cur) |
25945 | return -EINVAL; | 25333 | return -EINVAL; |
25946 | 25334 | ||
25947 | diff -urNp linux-2.6.29.6/fs/seq_file.c linux-2.6.29.6/fs/seq_file.c | 25335 | diff -urNp linux-2.6.30.4/fs/seq_file.c linux-2.6.30.4/fs/seq_file.c |
25948 | --- linux-2.6.29.6/fs/seq_file.c 2009-07-02 19:41:20.000000000 -0400 | 25336 | --- linux-2.6.30.4/fs/seq_file.c 2009-07-24 17:47:51.000000000 -0400 |
25949 | +++ linux-2.6.29.6/fs/seq_file.c 2009-07-23 17:34:32.169708808 -0400 | 25337 | +++ linux-2.6.30.4/fs/seq_file.c 2009-07-30 11:10:49.336155631 -0400 |
25950 | @@ -76,7 +76,8 @@ static int traverse(struct seq_file *m, | 25338 | @@ -76,7 +76,8 @@ static int traverse(struct seq_file *m, |
25951 | return 0; | 25339 | return 0; |
25952 | } | 25340 | } |
@@ -25987,9 +25375,9 @@ diff -urNp linux-2.6.29.6/fs/seq_file.c linux-2.6.29.6/fs/seq_file.c | |||
25987 | if (!m->buf) | 25375 | if (!m->buf) |
25988 | goto Enomem; | 25376 | goto Enomem; |
25989 | m->count = 0; | 25377 | m->count = 0; |
25990 | diff -urNp linux-2.6.29.6/fs/smbfs/symlink.c linux-2.6.29.6/fs/smbfs/symlink.c | 25378 | diff -urNp linux-2.6.30.4/fs/smbfs/symlink.c linux-2.6.30.4/fs/smbfs/symlink.c |
25991 | --- linux-2.6.29.6/fs/smbfs/symlink.c 2009-07-02 19:41:20.000000000 -0400 | 25379 | --- linux-2.6.30.4/fs/smbfs/symlink.c 2009-07-24 17:47:51.000000000 -0400 |
25992 | +++ linux-2.6.29.6/fs/smbfs/symlink.c 2009-07-23 17:34:32.169708808 -0400 | 25380 | +++ linux-2.6.30.4/fs/smbfs/symlink.c 2009-07-30 09:48:10.098443569 -0400 |
25993 | @@ -55,7 +55,7 @@ static void *smb_follow_link(struct dent | 25381 | @@ -55,7 +55,7 @@ static void *smb_follow_link(struct dent |
25994 | 25382 | ||
25995 | static void smb_put_link(struct dentry *dentry, struct nameidata *nd, void *p) | 25383 | static void smb_put_link(struct dentry *dentry, struct nameidata *nd, void *p) |
@@ -25999,9 +25387,9 @@ diff -urNp linux-2.6.29.6/fs/smbfs/symlink.c linux-2.6.29.6/fs/smbfs/symlink.c | |||
25999 | if (!IS_ERR(s)) | 25387 | if (!IS_ERR(s)) |
26000 | __putname(s); | 25388 | __putname(s); |
26001 | } | 25389 | } |
26002 | diff -urNp linux-2.6.29.6/fs/squashfs/super.c linux-2.6.29.6/fs/squashfs/super.c | 25390 | diff -urNp linux-2.6.30.4/fs/squashfs/super.c linux-2.6.30.4/fs/squashfs/super.c |
26003 | --- linux-2.6.29.6/fs/squashfs/super.c 2009-07-02 19:41:20.000000000 -0400 | 25391 | --- linux-2.6.30.4/fs/squashfs/super.c 2009-07-24 17:47:51.000000000 -0400 |
26004 | +++ linux-2.6.29.6/fs/squashfs/super.c 2009-07-23 18:40:28.577043173 -0400 | 25392 | +++ linux-2.6.30.4/fs/squashfs/super.c 2009-07-30 09:48:10.098443569 -0400 |
26005 | @@ -43,7 +43,7 @@ | 25393 | @@ -43,7 +43,7 @@ |
26006 | #include "squashfs.h" | 25394 | #include "squashfs.h" |
26007 | 25395 | ||
@@ -26011,7 +25399,7 @@ diff -urNp linux-2.6.29.6/fs/squashfs/super.c linux-2.6.29.6/fs/squashfs/super.c | |||
26011 | 25399 | ||
26012 | static int supported_squashfs_filesystem(short major, short minor, short comp) | 25400 | static int supported_squashfs_filesystem(short major, short minor, short comp) |
26013 | { | 25401 | { |
26014 | @@ -426,7 +426,7 @@ static struct file_system_type squashfs_ | 25402 | @@ -439,7 +439,7 @@ static struct file_system_type squashfs_ |
26015 | .fs_flags = FS_REQUIRES_DEV | 25403 | .fs_flags = FS_REQUIRES_DEV |
26016 | }; | 25404 | }; |
26017 | 25405 | ||
@@ -26020,21 +25408,30 @@ diff -urNp linux-2.6.29.6/fs/squashfs/super.c linux-2.6.29.6/fs/squashfs/super.c | |||
26020 | .alloc_inode = squashfs_alloc_inode, | 25408 | .alloc_inode = squashfs_alloc_inode, |
26021 | .destroy_inode = squashfs_destroy_inode, | 25409 | .destroy_inode = squashfs_destroy_inode, |
26022 | .statfs = squashfs_statfs, | 25410 | .statfs = squashfs_statfs, |
26023 | diff -urNp linux-2.6.29.6/fs/sysfs/dir.c linux-2.6.29.6/fs/sysfs/dir.c | 25411 | diff -urNp linux-2.6.30.4/fs/sysfs/bin.c linux-2.6.30.4/fs/sysfs/bin.c |
26024 | --- linux-2.6.29.6/fs/sysfs/dir.c 2009-07-02 19:41:20.000000000 -0400 | 25412 | --- linux-2.6.30.4/fs/sysfs/bin.c 2009-07-24 17:47:51.000000000 -0400 |
26025 | +++ linux-2.6.29.6/fs/sysfs/dir.c 2009-07-23 18:40:28.589290669 -0400 | 25413 | +++ linux-2.6.30.4/fs/sysfs/bin.c 2009-07-30 12:02:44.278047822 -0400 |
26026 | @@ -302,7 +302,7 @@ static void sysfs_d_iput(struct dentry * | 25414 | @@ -40,7 +40,7 @@ struct bin_buffer { |
26027 | iput(inode); | 25415 | struct mutex mutex; |
25416 | void *buffer; | ||
25417 | int mmapped; | ||
25418 | - struct vm_operations_struct *vm_ops; | ||
25419 | + const struct vm_operations_struct *vm_ops; | ||
25420 | struct file *file; | ||
25421 | struct hlist_node list; | ||
25422 | }; | ||
25423 | @@ -330,7 +330,7 @@ static int bin_migrate(struct vm_area_st | ||
26028 | } | 25424 | } |
25425 | #endif | ||
26029 | 25426 | ||
26030 | -static struct dentry_operations sysfs_dentry_ops = { | 25427 | -static struct vm_operations_struct bin_vm_ops = { |
26031 | +static const struct dentry_operations sysfs_dentry_ops = { | 25428 | +static const struct vm_operations_struct bin_vm_ops = { |
26032 | .d_iput = sysfs_d_iput, | 25429 | .open = bin_vma_open, |
26033 | }; | 25430 | .close = bin_vma_close, |
26034 | 25431 | .fault = bin_fault, | |
26035 | diff -urNp linux-2.6.29.6/fs/sysfs/symlink.c linux-2.6.29.6/fs/sysfs/symlink.c | 25432 | diff -urNp linux-2.6.30.4/fs/sysfs/symlink.c linux-2.6.30.4/fs/sysfs/symlink.c |
26036 | --- linux-2.6.29.6/fs/sysfs/symlink.c 2009-07-02 19:41:20.000000000 -0400 | 25433 | --- linux-2.6.30.4/fs/sysfs/symlink.c 2009-07-24 17:47:51.000000000 -0400 |
26037 | +++ linux-2.6.29.6/fs/sysfs/symlink.c 2009-07-23 17:34:32.169708808 -0400 | 25434 | +++ linux-2.6.30.4/fs/sysfs/symlink.c 2009-07-30 09:48:10.098443569 -0400 |
26038 | @@ -200,7 +200,7 @@ static void *sysfs_follow_link(struct de | 25435 | @@ -200,7 +200,7 @@ static void *sysfs_follow_link(struct de |
26039 | 25436 | ||
26040 | static void sysfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie) | 25437 | static void sysfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie) |
@@ -26044,34 +25441,10 @@ diff -urNp linux-2.6.29.6/fs/sysfs/symlink.c linux-2.6.29.6/fs/sysfs/symlink.c | |||
26044 | if (!IS_ERR(page)) | 25441 | if (!IS_ERR(page)) |
26045 | free_page((unsigned long)page); | 25442 | free_page((unsigned long)page); |
26046 | } | 25443 | } |
26047 | diff -urNp linux-2.6.29.6/fs/sysv/namei.c linux-2.6.29.6/fs/sysv/namei.c | 25444 | diff -urNp linux-2.6.30.4/fs/ubifs/file.c linux-2.6.30.4/fs/ubifs/file.c |
26048 | --- linux-2.6.29.6/fs/sysv/namei.c 2009-07-02 19:41:20.000000000 -0400 | 25445 | --- linux-2.6.30.4/fs/ubifs/file.c 2009-07-24 17:47:51.000000000 -0400 |
26049 | +++ linux-2.6.29.6/fs/sysv/namei.c 2009-07-23 18:40:28.589290669 -0400 | 25446 | +++ linux-2.6.30.4/fs/ubifs/file.c 2009-07-30 09:48:10.100960655 -0400 |
26050 | @@ -38,7 +38,7 @@ static int sysv_hash(struct dentry *dent | 25447 | @@ -1536,7 +1536,7 @@ out_unlock: |
26051 | return 0; | ||
26052 | } | ||
26053 | |||
26054 | -struct dentry_operations sysv_dentry_operations = { | ||
26055 | +const struct dentry_operations sysv_dentry_operations = { | ||
26056 | .d_hash = sysv_hash, | ||
26057 | }; | ||
26058 | |||
26059 | diff -urNp linux-2.6.29.6/fs/sysv/sysv.h linux-2.6.29.6/fs/sysv/sysv.h | ||
26060 | --- linux-2.6.29.6/fs/sysv/sysv.h 2009-07-02 19:41:20.000000000 -0400 | ||
26061 | +++ linux-2.6.29.6/fs/sysv/sysv.h 2009-07-23 18:40:28.590278279 -0400 | ||
26062 | @@ -170,7 +170,7 @@ extern const struct file_operations sysv | ||
26063 | extern const struct file_operations sysv_dir_operations; | ||
26064 | extern const struct address_space_operations sysv_aops; | ||
26065 | extern const struct super_operations sysv_sops; | ||
26066 | -extern struct dentry_operations sysv_dentry_operations; | ||
26067 | +extern const struct dentry_operations sysv_dentry_operations; | ||
26068 | |||
26069 | |||
26070 | enum { | ||
26071 | diff -urNp linux-2.6.29.6/fs/ubifs/file.c linux-2.6.29.6/fs/ubifs/file.c | ||
26072 | --- linux-2.6.29.6/fs/ubifs/file.c 2009-07-02 19:41:20.000000000 -0400 | ||
26073 | +++ linux-2.6.29.6/fs/ubifs/file.c 2009-07-23 18:40:28.610477859 -0400 | ||
26074 | @@ -1526,7 +1526,7 @@ out_unlock: | ||
26075 | return err; | 25448 | return err; |
26076 | } | 25449 | } |
26077 | 25450 | ||
@@ -26080,21 +25453,21 @@ diff -urNp linux-2.6.29.6/fs/ubifs/file.c linux-2.6.29.6/fs/ubifs/file.c | |||
26080 | .fault = filemap_fault, | 25453 | .fault = filemap_fault, |
26081 | .page_mkwrite = ubifs_vm_page_mkwrite, | 25454 | .page_mkwrite = ubifs_vm_page_mkwrite, |
26082 | }; | 25455 | }; |
26083 | diff -urNp linux-2.6.29.6/fs/udf/balloc.c linux-2.6.29.6/fs/udf/balloc.c | 25456 | diff -urNp linux-2.6.30.4/fs/udf/balloc.c linux-2.6.30.4/fs/udf/balloc.c |
26084 | --- linux-2.6.29.6/fs/udf/balloc.c 2009-07-02 19:41:20.000000000 -0400 | 25457 | --- linux-2.6.30.4/fs/udf/balloc.c 2009-07-24 17:47:51.000000000 -0400 |
26085 | +++ linux-2.6.29.6/fs/udf/balloc.c 2009-07-23 17:34:32.170868529 -0400 | 25458 | +++ linux-2.6.30.4/fs/udf/balloc.c 2009-07-30 09:48:10.100960655 -0400 |
26086 | @@ -169,9 +169,7 @@ static void udf_bitmap_free_blocks(struc | 25459 | @@ -172,9 +172,7 @@ static void udf_bitmap_free_blocks(struc |
26087 | unsigned long overflow; | ||
26088 | 25460 | ||
26089 | mutex_lock(&sbi->s_alloc_mutex); | 25461 | mutex_lock(&sbi->s_alloc_mutex); |
26090 | - if (bloc.logicalBlockNum < 0 || | 25462 | partmap = &sbi->s_partmaps[bloc->partitionReferenceNum]; |
26091 | - (bloc.logicalBlockNum + count) > | 25463 | - if (bloc->logicalBlockNum < 0 || |
26092 | - sbi->s_partmaps[bloc.partitionReferenceNum].s_partition_len) { | 25464 | - (bloc->logicalBlockNum + count) > |
26093 | + if (bloc.logicalBlockNum + count > sbi->s_partmaps[bloc.partitionReferenceNum].s_partition_len) { | 25465 | - partmap->s_partition_len) { |
25466 | + if ((bloc->logicalBlockNum + count) > partmap->s_partition_len) { | ||
26094 | udf_debug("%d < %d || %d + %d > %d\n", | 25467 | udf_debug("%d < %d || %d + %d > %d\n", |
26095 | bloc.logicalBlockNum, 0, bloc.logicalBlockNum, count, | 25468 | bloc->logicalBlockNum, 0, bloc->logicalBlockNum, |
26096 | sbi->s_partmaps[bloc.partitionReferenceNum]. | 25469 | count, partmap->s_partition_len); |
26097 | @@ -239,7 +237,7 @@ static int udf_bitmap_prealloc_blocks(st | 25470 | @@ -238,7 +236,7 @@ static int udf_bitmap_prealloc_blocks(st |
26098 | 25471 | ||
26099 | mutex_lock(&sbi->s_alloc_mutex); | 25472 | mutex_lock(&sbi->s_alloc_mutex); |
26100 | part_len = sbi->s_partmaps[partition].s_partition_len; | 25473 | part_len = sbi->s_partmaps[partition].s_partition_len; |
@@ -26103,7 +25476,7 @@ diff -urNp linux-2.6.29.6/fs/udf/balloc.c linux-2.6.29.6/fs/udf/balloc.c | |||
26103 | goto out; | 25476 | goto out; |
26104 | 25477 | ||
26105 | if (first_block + block_count > part_len) | 25478 | if (first_block + block_count > part_len) |
26106 | @@ -300,7 +298,7 @@ static int udf_bitmap_new_block(struct s | 25479 | @@ -297,7 +295,7 @@ static int udf_bitmap_new_block(struct s |
26107 | mutex_lock(&sbi->s_alloc_mutex); | 25480 | mutex_lock(&sbi->s_alloc_mutex); |
26108 | 25481 | ||
26109 | repeat: | 25482 | repeat: |
@@ -26112,18 +25485,18 @@ diff -urNp linux-2.6.29.6/fs/udf/balloc.c linux-2.6.29.6/fs/udf/balloc.c | |||
26112 | goal = 0; | 25485 | goal = 0; |
26113 | 25486 | ||
26114 | nr_groups = bitmap->s_nr_groups; | 25487 | nr_groups = bitmap->s_nr_groups; |
26115 | @@ -438,9 +436,7 @@ static void udf_table_free_blocks(struct | 25488 | @@ -436,9 +434,7 @@ static void udf_table_free_blocks(struct |
26116 | struct udf_inode_info *iinfo; | ||
26117 | 25489 | ||
26118 | mutex_lock(&sbi->s_alloc_mutex); | 25490 | mutex_lock(&sbi->s_alloc_mutex); |
26119 | - if (bloc.logicalBlockNum < 0 || | 25491 | partmap = &sbi->s_partmaps[bloc->partitionReferenceNum]; |
26120 | - (bloc.logicalBlockNum + count) > | 25492 | - if (bloc->logicalBlockNum < 0 || |
26121 | - sbi->s_partmaps[bloc.partitionReferenceNum].s_partition_len) { | 25493 | - (bloc->logicalBlockNum + count) > |
26122 | + if (bloc.logicalBlockNum + count > sbi->s_partmaps[bloc.partitionReferenceNum].s_partition_len) { | 25494 | - partmap->s_partition_len) { |
25495 | + if ((bloc->logicalBlockNum + count) > partmap->s_partition_len) { | ||
26123 | udf_debug("%d < %d || %d + %d > %d\n", | 25496 | udf_debug("%d < %d || %d + %d > %d\n", |
26124 | bloc.logicalBlockNum, 0, bloc.logicalBlockNum, count, | 25497 | bloc.logicalBlockNum, 0, bloc.logicalBlockNum, count, |
26125 | sbi->s_partmaps[bloc.partitionReferenceNum]. | 25498 | partmap->s_partition_len); |
26126 | @@ -671,8 +667,7 @@ static int udf_table_prealloc_blocks(str | 25499 | @@ -666,8 +662,7 @@ static int udf_table_prealloc_blocks(str |
26127 | int8_t etype = -1; | 25500 | int8_t etype = -1; |
26128 | struct udf_inode_info *iinfo; | 25501 | struct udf_inode_info *iinfo; |
26129 | 25502 | ||
@@ -26133,7 +25506,7 @@ diff -urNp linux-2.6.29.6/fs/udf/balloc.c linux-2.6.29.6/fs/udf/balloc.c | |||
26133 | return 0; | 25506 | return 0; |
26134 | 25507 | ||
26135 | iinfo = UDF_I(table); | 25508 | iinfo = UDF_I(table); |
26136 | @@ -750,7 +745,7 @@ static int udf_table_new_block(struct su | 25509 | @@ -743,7 +738,7 @@ static int udf_table_new_block(struct su |
26137 | return newblock; | 25510 | return newblock; |
26138 | 25511 | ||
26139 | mutex_lock(&sbi->s_alloc_mutex); | 25512 | mutex_lock(&sbi->s_alloc_mutex); |
@@ -26142,9 +25515,9 @@ diff -urNp linux-2.6.29.6/fs/udf/balloc.c linux-2.6.29.6/fs/udf/balloc.c | |||
26142 | goal = 0; | 25515 | goal = 0; |
26143 | 25516 | ||
26144 | /* We search for the closest matching block to goal. If we find | 25517 | /* We search for the closest matching block to goal. If we find |
26145 | diff -urNp linux-2.6.29.6/fs/ufs/inode.c linux-2.6.29.6/fs/ufs/inode.c | 25518 | diff -urNp linux-2.6.30.4/fs/ufs/inode.c linux-2.6.30.4/fs/ufs/inode.c |
26146 | --- linux-2.6.29.6/fs/ufs/inode.c 2009-07-02 19:41:20.000000000 -0400 | 25519 | --- linux-2.6.30.4/fs/ufs/inode.c 2009-07-24 17:47:51.000000000 -0400 |
26147 | +++ linux-2.6.29.6/fs/ufs/inode.c 2009-07-23 17:34:32.170868529 -0400 | 25520 | +++ linux-2.6.30.4/fs/ufs/inode.c 2009-07-30 09:48:10.101729491 -0400 |
26148 | @@ -56,9 +56,7 @@ static int ufs_block_to_path(struct inod | 25521 | @@ -56,9 +56,7 @@ static int ufs_block_to_path(struct inod |
26149 | 25522 | ||
26150 | 25523 | ||
@@ -26176,9 +25549,9 @@ diff -urNp linux-2.6.29.6/fs/ufs/inode.c linux-2.6.29.6/fs/ufs/inode.c | |||
26176 | abort_too_big: | 25549 | abort_too_big: |
26177 | ufs_warning(sb, "ufs_get_block", "block > big"); | 25550 | ufs_warning(sb, "ufs_get_block", "block > big"); |
26178 | goto abort; | 25551 | goto abort; |
26179 | diff -urNp linux-2.6.29.6/fs/utimes.c linux-2.6.29.6/fs/utimes.c | 25552 | diff -urNp linux-2.6.30.4/fs/utimes.c linux-2.6.30.4/fs/utimes.c |
26180 | --- linux-2.6.29.6/fs/utimes.c 2009-07-02 19:41:20.000000000 -0400 | 25553 | --- linux-2.6.30.4/fs/utimes.c 2009-07-24 17:47:51.000000000 -0400 |
26181 | +++ linux-2.6.29.6/fs/utimes.c 2009-07-23 17:34:32.170868529 -0400 | 25554 | +++ linux-2.6.30.4/fs/utimes.c 2009-07-30 11:10:49.345424878 -0400 |
26182 | @@ -1,6 +1,7 @@ | 25555 | @@ -1,6 +1,7 @@ |
26183 | #include <linux/compiler.h> | 25556 | #include <linux/compiler.h> |
26184 | #include <linux/file.h> | 25557 | #include <linux/file.h> |
@@ -26200,9 +25573,9 @@ diff -urNp linux-2.6.29.6/fs/utimes.c linux-2.6.29.6/fs/utimes.c | |||
26200 | mutex_lock(&inode->i_mutex); | 25573 | mutex_lock(&inode->i_mutex); |
26201 | error = notify_change(path->dentry, &newattrs); | 25574 | error = notify_change(path->dentry, &newattrs); |
26202 | mutex_unlock(&inode->i_mutex); | 25575 | mutex_unlock(&inode->i_mutex); |
26203 | diff -urNp linux-2.6.29.6/fs/xfs/linux-2.6/xfs_file.c linux-2.6.29.6/fs/xfs/linux-2.6/xfs_file.c | 25576 | diff -urNp linux-2.6.30.4/fs/xfs/linux-2.6/xfs_file.c linux-2.6.30.4/fs/xfs/linux-2.6/xfs_file.c |
26204 | --- linux-2.6.29.6/fs/xfs/linux-2.6/xfs_file.c 2009-07-02 19:41:20.000000000 -0400 | 25577 | --- linux-2.6.30.4/fs/xfs/linux-2.6/xfs_file.c 2009-07-24 17:47:51.000000000 -0400 |
26205 | +++ linux-2.6.29.6/fs/xfs/linux-2.6/xfs_file.c 2009-07-23 18:40:28.621302411 -0400 | 25578 | +++ linux-2.6.30.4/fs/xfs/linux-2.6/xfs_file.c 2009-07-30 09:48:10.102932228 -0400 |
26206 | @@ -43,7 +43,7 @@ | 25579 | @@ -43,7 +43,7 @@ |
26207 | #include <linux/dcache.h> | 25580 | #include <linux/dcache.h> |
26208 | #include <linux/smp_lock.h> | 25581 | #include <linux/smp_lock.h> |
@@ -26221,10 +25594,10 @@ diff -urNp linux-2.6.29.6/fs/xfs/linux-2.6/xfs_file.c linux-2.6.29.6/fs/xfs/linu | |||
26221 | .fault = filemap_fault, | 25594 | .fault = filemap_fault, |
26222 | .page_mkwrite = xfs_vm_page_mkwrite, | 25595 | .page_mkwrite = xfs_vm_page_mkwrite, |
26223 | }; | 25596 | }; |
26224 | diff -urNp linux-2.6.29.6/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.29.6/fs/xfs/linux-2.6/xfs_iops.c | 25597 | diff -urNp linux-2.6.30.4/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.30.4/fs/xfs/linux-2.6/xfs_iops.c |
26225 | --- linux-2.6.29.6/fs/xfs/linux-2.6/xfs_iops.c 2009-07-02 19:41:20.000000000 -0400 | 25598 | --- linux-2.6.30.4/fs/xfs/linux-2.6/xfs_iops.c 2009-07-24 17:47:51.000000000 -0400 |
26226 | +++ linux-2.6.29.6/fs/xfs/linux-2.6/xfs_iops.c 2009-07-23 17:34:32.170868529 -0400 | 25599 | +++ linux-2.6.30.4/fs/xfs/linux-2.6/xfs_iops.c 2009-07-30 09:48:10.102932228 -0400 |
26227 | @@ -494,7 +494,7 @@ xfs_vn_put_link( | 25600 | @@ -482,7 +482,7 @@ xfs_vn_put_link( |
26228 | struct nameidata *nd, | 25601 | struct nameidata *nd, |
26229 | void *p) | 25602 | void *p) |
26230 | { | 25603 | { |
@@ -26233,19 +25606,19 @@ diff -urNp linux-2.6.29.6/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.29.6/fs/xfs/linu | |||
26233 | 25606 | ||
26234 | if (!IS_ERR(s)) | 25607 | if (!IS_ERR(s)) |
26235 | kfree(s); | 25608 | kfree(s); |
26236 | diff -urNp linux-2.6.29.6/fs/xfs/linux-2.6/xfs_super.c linux-2.6.29.6/fs/xfs/linux-2.6/xfs_super.c | 25609 | diff -urNp linux-2.6.30.4/fs/xfs/linux-2.6/xfs_super.c linux-2.6.30.4/fs/xfs/linux-2.6/xfs_super.c |
26237 | --- linux-2.6.29.6/fs/xfs/linux-2.6/xfs_super.c 2009-07-02 19:41:20.000000000 -0400 | 25610 | --- linux-2.6.30.4/fs/xfs/linux-2.6/xfs_super.c 2009-07-24 17:47:51.000000000 -0400 |
26238 | +++ linux-2.6.29.6/fs/xfs/linux-2.6/xfs_super.c 2009-07-23 18:40:28.631296881 -0400 | 25611 | +++ linux-2.6.30.4/fs/xfs/linux-2.6/xfs_super.c 2009-07-30 13:03:07.229966859 -0400 |
26239 | @@ -69,7 +69,7 @@ | 25612 | @@ -68,7 +68,7 @@ |
25613 | #include <linux/freezer.h> | ||
26240 | #include <linux/parser.h> | 25614 | #include <linux/parser.h> |
26241 | 25615 | ||
26242 | static struct quotactl_ops xfs_quotactl_operations; | ||
26243 | -static struct super_operations xfs_super_operations; | 25616 | -static struct super_operations xfs_super_operations; |
26244 | +static const struct super_operations xfs_super_operations; | 25617 | +static const struct super_operations xfs_super_operations; |
26245 | static kmem_zone_t *xfs_ioend_zone; | 25618 | static kmem_zone_t *xfs_ioend_zone; |
26246 | mempool_t *xfs_ioend_pool; | 25619 | mempool_t *xfs_ioend_pool; |
26247 | 25620 | ||
26248 | @@ -1564,7 +1564,7 @@ xfs_fs_get_sb( | 25621 | @@ -1527,7 +1527,7 @@ xfs_fs_get_sb( |
26249 | mnt); | 25622 | mnt); |
26250 | } | 25623 | } |
26251 | 25624 | ||
@@ -26254,9 +25627,9 @@ diff -urNp linux-2.6.29.6/fs/xfs/linux-2.6/xfs_super.c linux-2.6.29.6/fs/xfs/lin | |||
26254 | .alloc_inode = xfs_fs_alloc_inode, | 25627 | .alloc_inode = xfs_fs_alloc_inode, |
26255 | .destroy_inode = xfs_fs_destroy_inode, | 25628 | .destroy_inode = xfs_fs_destroy_inode, |
26256 | .write_inode = xfs_fs_write_inode, | 25629 | .write_inode = xfs_fs_write_inode, |
26257 | diff -urNp linux-2.6.29.6/fs/xfs/xfs_bmap.c linux-2.6.29.6/fs/xfs/xfs_bmap.c | 25630 | diff -urNp linux-2.6.30.4/fs/xfs/xfs_bmap.c linux-2.6.30.4/fs/xfs/xfs_bmap.c |
26258 | --- linux-2.6.29.6/fs/xfs/xfs_bmap.c 2009-07-02 19:41:20.000000000 -0400 | 25631 | --- linux-2.6.30.4/fs/xfs/xfs_bmap.c 2009-07-24 17:47:51.000000000 -0400 |
26259 | +++ linux-2.6.29.6/fs/xfs/xfs_bmap.c 2009-07-23 17:34:32.171850695 -0400 | 25632 | +++ linux-2.6.30.4/fs/xfs/xfs_bmap.c 2009-07-30 09:48:10.103749934 -0400 |
26260 | @@ -360,7 +360,7 @@ xfs_bmap_validate_ret( | 25633 | @@ -360,7 +360,7 @@ xfs_bmap_validate_ret( |
26261 | int nmap, | 25634 | int nmap, |
26262 | int ret_nmap); | 25635 | int ret_nmap); |
@@ -26266,9 +25639,9 @@ diff -urNp linux-2.6.29.6/fs/xfs/xfs_bmap.c linux-2.6.29.6/fs/xfs/xfs_bmap.c | |||
26266 | #endif /* DEBUG */ | 25639 | #endif /* DEBUG */ |
26267 | 25640 | ||
26268 | #if defined(XFS_RW_TRACE) | 25641 | #if defined(XFS_RW_TRACE) |
26269 | diff -urNp linux-2.6.29.6/grsecurity/gracl_alloc.c linux-2.6.29.6/grsecurity/gracl_alloc.c | 25642 | diff -urNp linux-2.6.30.4/grsecurity/gracl_alloc.c linux-2.6.30.4/grsecurity/gracl_alloc.c |
26270 | --- linux-2.6.29.6/grsecurity/gracl_alloc.c 1969-12-31 19:00:00.000000000 -0500 | 25643 | --- linux-2.6.30.4/grsecurity/gracl_alloc.c 1969-12-31 19:00:00.000000000 -0500 |
26271 | +++ linux-2.6.29.6/grsecurity/gracl_alloc.c 2009-07-23 17:34:32.172792791 -0400 | 25644 | +++ linux-2.6.30.4/grsecurity/gracl_alloc.c 2009-07-30 11:10:49.345424878 -0400 |
26272 | @@ -0,0 +1,105 @@ | 25645 | @@ -0,0 +1,105 @@ |
26273 | +#include <linux/kernel.h> | 25646 | +#include <linux/kernel.h> |
26274 | +#include <linux/mm.h> | 25647 | +#include <linux/mm.h> |
@@ -26375,9 +25748,9 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_alloc.c linux-2.6.29.6/grsecurity/gra | |||
26375 | + else | 25748 | + else |
26376 | + return 1; | 25749 | + return 1; |
26377 | +} | 25750 | +} |
26378 | diff -urNp linux-2.6.29.6/grsecurity/gracl.c linux-2.6.29.6/grsecurity/gracl.c | 25751 | diff -urNp linux-2.6.30.4/grsecurity/gracl.c linux-2.6.30.4/grsecurity/gracl.c |
26379 | --- linux-2.6.29.6/grsecurity/gracl.c 1969-12-31 19:00:00.000000000 -0500 | 25752 | --- linux-2.6.30.4/grsecurity/gracl.c 1969-12-31 19:00:00.000000000 -0500 |
26380 | +++ linux-2.6.29.6/grsecurity/gracl.c 2009-07-23 18:43:31.274004949 -0400 | 25753 | +++ linux-2.6.30.4/grsecurity/gracl.c 2009-07-30 11:10:49.345424878 -0400 |
26381 | @@ -0,0 +1,3892 @@ | 25754 | @@ -0,0 +1,3892 @@ |
26382 | +#include <linux/kernel.h> | 25755 | +#include <linux/kernel.h> |
26383 | +#include <linux/module.h> | 25756 | +#include <linux/module.h> |
@@ -30271,9 +29644,9 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl.c linux-2.6.29.6/grsecurity/gracl.c | |||
30271 | +EXPORT_SYMBOL(gr_check_group_change); | 29644 | +EXPORT_SYMBOL(gr_check_group_change); |
30272 | +#endif | 29645 | +#endif |
30273 | + | 29646 | + |
30274 | diff -urNp linux-2.6.29.6/grsecurity/gracl_cap.c linux-2.6.29.6/grsecurity/gracl_cap.c | 29647 | diff -urNp linux-2.6.30.4/grsecurity/gracl_cap.c linux-2.6.30.4/grsecurity/gracl_cap.c |
30275 | --- linux-2.6.29.6/grsecurity/gracl_cap.c 1969-12-31 19:00:00.000000000 -0500 | 29648 | --- linux-2.6.30.4/grsecurity/gracl_cap.c 1969-12-31 19:00:00.000000000 -0500 |
30276 | +++ linux-2.6.29.6/grsecurity/gracl_cap.c 2009-07-23 17:34:32.174773311 -0400 | 29649 | +++ linux-2.6.30.4/grsecurity/gracl_cap.c 2009-07-30 11:10:49.347341041 -0400 |
30277 | @@ -0,0 +1,131 @@ | 29650 | @@ -0,0 +1,131 @@ |
30278 | +#include <linux/kernel.h> | 29651 | +#include <linux/kernel.h> |
30279 | +#include <linux/module.h> | 29652 | +#include <linux/module.h> |
@@ -30406,10 +29779,10 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_cap.c linux-2.6.29.6/grsecurity/gracl | |||
30406 | + return 0; | 29779 | + return 0; |
30407 | +} | 29780 | +} |
30408 | + | 29781 | + |
30409 | diff -urNp linux-2.6.29.6/grsecurity/gracl_fs.c linux-2.6.29.6/grsecurity/gracl_fs.c | 29782 | diff -urNp linux-2.6.30.4/grsecurity/gracl_fs.c linux-2.6.30.4/grsecurity/gracl_fs.c |
30410 | --- linux-2.6.29.6/grsecurity/gracl_fs.c 1969-12-31 19:00:00.000000000 -0500 | 29783 | --- linux-2.6.30.4/grsecurity/gracl_fs.c 1969-12-31 19:00:00.000000000 -0500 |
30411 | +++ linux-2.6.29.6/grsecurity/gracl_fs.c 2009-07-23 17:34:32.174773311 -0400 | 29784 | +++ linux-2.6.30.4/grsecurity/gracl_fs.c 2009-08-01 15:00:28.098114831 -0400 |
30412 | @@ -0,0 +1,423 @@ | 29785 | @@ -0,0 +1,424 @@ |
30413 | +#include <linux/kernel.h> | 29786 | +#include <linux/kernel.h> |
30414 | +#include <linux/sched.h> | 29787 | +#include <linux/sched.h> |
30415 | +#include <linux/types.h> | 29788 | +#include <linux/types.h> |
@@ -30460,7 +29833,8 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_fs.c linux-2.6.29.6/grsecurity/gracl_ | |||
30460 | + reqmode |= GR_WRITE; | 29833 | + reqmode |= GR_WRITE; |
30461 | + if (likely((fmode & FMODE_READ) && !(fmode & O_DIRECTORY))) | 29834 | + if (likely((fmode & FMODE_READ) && !(fmode & O_DIRECTORY))) |
30462 | + reqmode |= GR_READ; | 29835 | + reqmode |= GR_READ; |
30463 | + | 29836 | + if ((fmode & FMODE_GREXEC) && (fmode & FMODE_EXEC)) |
29837 | + reqmode &= ~GR_READ; | ||
30464 | + mode = | 29838 | + mode = |
30465 | + gr_search_file(dentry, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS, | 29839 | + gr_search_file(dentry, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS, |
30466 | + mnt); | 29840 | + mnt); |
@@ -30833,9 +30207,9 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_fs.c linux-2.6.29.6/grsecurity/gracl_ | |||
30833 | + | 30207 | + |
30834 | + return 0; | 30208 | + return 0; |
30835 | +} | 30209 | +} |
30836 | diff -urNp linux-2.6.29.6/grsecurity/gracl_ip.c linux-2.6.29.6/grsecurity/gracl_ip.c | 30210 | diff -urNp linux-2.6.30.4/grsecurity/gracl_ip.c linux-2.6.30.4/grsecurity/gracl_ip.c |
30837 | --- linux-2.6.29.6/grsecurity/gracl_ip.c 1969-12-31 19:00:00.000000000 -0500 | 30211 | --- linux-2.6.30.4/grsecurity/gracl_ip.c 1969-12-31 19:00:00.000000000 -0500 |
30838 | +++ linux-2.6.29.6/grsecurity/gracl_ip.c 2009-07-23 17:34:32.174773311 -0400 | 30212 | +++ linux-2.6.30.4/grsecurity/gracl_ip.c 2009-07-30 11:10:49.347341041 -0400 |
30839 | @@ -0,0 +1,340 @@ | 30213 | @@ -0,0 +1,340 @@ |
30840 | +#include <linux/kernel.h> | 30214 | +#include <linux/kernel.h> |
30841 | +#include <asm/uaccess.h> | 30215 | +#include <asm/uaccess.h> |
@@ -31177,9 +30551,9 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_ip.c linux-2.6.29.6/grsecurity/gracl_ | |||
31177 | + | 30551 | + |
31178 | + return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM); | 30552 | + return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM); |
31179 | +} | 30553 | +} |
31180 | diff -urNp linux-2.6.29.6/grsecurity/gracl_learn.c linux-2.6.29.6/grsecurity/gracl_learn.c | 30554 | diff -urNp linux-2.6.30.4/grsecurity/gracl_learn.c linux-2.6.30.4/grsecurity/gracl_learn.c |
31181 | --- linux-2.6.29.6/grsecurity/gracl_learn.c 1969-12-31 19:00:00.000000000 -0500 | 30555 | --- linux-2.6.30.4/grsecurity/gracl_learn.c 1969-12-31 19:00:00.000000000 -0500 |
31182 | +++ linux-2.6.29.6/grsecurity/gracl_learn.c 2009-07-23 18:43:31.274004949 -0400 | 30556 | +++ linux-2.6.30.4/grsecurity/gracl_learn.c 2009-07-30 11:10:49.347341041 -0400 |
31183 | @@ -0,0 +1,211 @@ | 30557 | @@ -0,0 +1,211 @@ |
31184 | +#include <linux/kernel.h> | 30558 | +#include <linux/kernel.h> |
31185 | +#include <linux/mm.h> | 30559 | +#include <linux/mm.h> |
@@ -31392,9 +30766,9 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_learn.c linux-2.6.29.6/grsecurity/gra | |||
31392 | + .release = close_learn, | 30766 | + .release = close_learn, |
31393 | + .poll = poll_learn, | 30767 | + .poll = poll_learn, |
31394 | +}; | 30768 | +}; |
31395 | diff -urNp linux-2.6.29.6/grsecurity/gracl_res.c linux-2.6.29.6/grsecurity/gracl_res.c | 30769 | diff -urNp linux-2.6.30.4/grsecurity/gracl_res.c linux-2.6.30.4/grsecurity/gracl_res.c |
31396 | --- linux-2.6.29.6/grsecurity/gracl_res.c 1969-12-31 19:00:00.000000000 -0500 | 30770 | --- linux-2.6.30.4/grsecurity/gracl_res.c 1969-12-31 19:00:00.000000000 -0500 |
31397 | +++ linux-2.6.29.6/grsecurity/gracl_res.c 2009-07-23 17:34:32.175727734 -0400 | 30771 | +++ linux-2.6.30.4/grsecurity/gracl_res.c 2009-07-30 11:10:49.347341041 -0400 |
31398 | @@ -0,0 +1,58 @@ | 30772 | @@ -0,0 +1,58 @@ |
31399 | +#include <linux/kernel.h> | 30773 | +#include <linux/kernel.h> |
31400 | +#include <linux/sched.h> | 30774 | +#include <linux/sched.h> |
@@ -31454,9 +30828,9 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_res.c linux-2.6.29.6/grsecurity/gracl | |||
31454 | + | 30828 | + |
31455 | + return; | 30829 | + return; |
31456 | +} | 30830 | +} |
31457 | diff -urNp linux-2.6.29.6/grsecurity/gracl_segv.c linux-2.6.29.6/grsecurity/gracl_segv.c | 30831 | diff -urNp linux-2.6.30.4/grsecurity/gracl_segv.c linux-2.6.30.4/grsecurity/gracl_segv.c |
31458 | --- linux-2.6.29.6/grsecurity/gracl_segv.c 1969-12-31 19:00:00.000000000 -0500 | 30832 | --- linux-2.6.30.4/grsecurity/gracl_segv.c 1969-12-31 19:00:00.000000000 -0500 |
31459 | +++ linux-2.6.29.6/grsecurity/gracl_segv.c 2009-07-23 17:34:32.175727734 -0400 | 30833 | +++ linux-2.6.30.4/grsecurity/gracl_segv.c 2009-07-30 11:10:49.347341041 -0400 |
31460 | @@ -0,0 +1,307 @@ | 30834 | @@ -0,0 +1,307 @@ |
31461 | +#include <linux/kernel.h> | 30835 | +#include <linux/kernel.h> |
31462 | +#include <linux/mm.h> | 30836 | +#include <linux/mm.h> |
@@ -31765,9 +31139,9 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_segv.c linux-2.6.29.6/grsecurity/grac | |||
31765 | + | 31139 | + |
31766 | + return; | 31140 | + return; |
31767 | +} | 31141 | +} |
31768 | diff -urNp linux-2.6.29.6/grsecurity/gracl_shm.c linux-2.6.29.6/grsecurity/gracl_shm.c | 31142 | diff -urNp linux-2.6.30.4/grsecurity/gracl_shm.c linux-2.6.30.4/grsecurity/gracl_shm.c |
31769 | --- linux-2.6.29.6/grsecurity/gracl_shm.c 1969-12-31 19:00:00.000000000 -0500 | 31143 | --- linux-2.6.30.4/grsecurity/gracl_shm.c 1969-12-31 19:00:00.000000000 -0500 |
31770 | +++ linux-2.6.29.6/grsecurity/gracl_shm.c 2009-07-23 17:34:32.175727734 -0400 | 31144 | +++ linux-2.6.30.4/grsecurity/gracl_shm.c 2009-07-30 11:10:49.347341041 -0400 |
31771 | @@ -0,0 +1,37 @@ | 31145 | @@ -0,0 +1,37 @@ |
31772 | +#include <linux/kernel.h> | 31146 | +#include <linux/kernel.h> |
31773 | +#include <linux/mm.h> | 31147 | +#include <linux/mm.h> |
@@ -31806,9 +31180,9 @@ diff -urNp linux-2.6.29.6/grsecurity/gracl_shm.c linux-2.6.29.6/grsecurity/gracl | |||
31806 | + | 31180 | + |
31807 | + return 1; | 31181 | + return 1; |
31808 | +} | 31182 | +} |
31809 | diff -urNp linux-2.6.29.6/grsecurity/grsec_chdir.c linux-2.6.29.6/grsecurity/grsec_chdir.c | 31183 | diff -urNp linux-2.6.30.4/grsecurity/grsec_chdir.c linux-2.6.30.4/grsecurity/grsec_chdir.c |
31810 | --- linux-2.6.29.6/grsecurity/grsec_chdir.c 1969-12-31 19:00:00.000000000 -0500 | 31184 | --- linux-2.6.30.4/grsecurity/grsec_chdir.c 1969-12-31 19:00:00.000000000 -0500 |
31811 | +++ linux-2.6.29.6/grsecurity/grsec_chdir.c 2009-07-23 17:34:32.175727734 -0400 | 31185 | +++ linux-2.6.30.4/grsecurity/grsec_chdir.c 2009-07-30 11:10:49.347341041 -0400 |
31812 | @@ -0,0 +1,19 @@ | 31186 | @@ -0,0 +1,19 @@ |
31813 | +#include <linux/kernel.h> | 31187 | +#include <linux/kernel.h> |
31814 | +#include <linux/sched.h> | 31188 | +#include <linux/sched.h> |
@@ -31829,9 +31203,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_chdir.c linux-2.6.29.6/grsecurity/grs | |||
31829 | +#endif | 31203 | +#endif |
31830 | + return; | 31204 | + return; |
31831 | +} | 31205 | +} |
31832 | diff -urNp linux-2.6.29.6/grsecurity/grsec_chroot.c linux-2.6.29.6/grsecurity/grsec_chroot.c | 31206 | diff -urNp linux-2.6.30.4/grsecurity/grsec_chroot.c linux-2.6.30.4/grsecurity/grsec_chroot.c |
31833 | --- linux-2.6.29.6/grsecurity/grsec_chroot.c 1969-12-31 19:00:00.000000000 -0500 | 31207 | --- linux-2.6.30.4/grsecurity/grsec_chroot.c 1969-12-31 19:00:00.000000000 -0500 |
31834 | +++ linux-2.6.29.6/grsecurity/grsec_chroot.c 2009-07-23 17:34:32.175727734 -0400 | 31208 | +++ linux-2.6.30.4/grsecurity/grsec_chroot.c 2009-07-30 11:10:49.347341041 -0400 |
31835 | @@ -0,0 +1,350 @@ | 31209 | @@ -0,0 +1,350 @@ |
31836 | +#include <linux/kernel.h> | 31210 | +#include <linux/kernel.h> |
31837 | +#include <linux/module.h> | 31211 | +#include <linux/module.h> |
@@ -32183,9 +31557,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_chroot.c linux-2.6.29.6/grsecurity/gr | |||
32183 | +#ifdef CONFIG_SECURITY | 31557 | +#ifdef CONFIG_SECURITY |
32184 | +EXPORT_SYMBOL(gr_handle_chroot_caps); | 31558 | +EXPORT_SYMBOL(gr_handle_chroot_caps); |
32185 | +#endif | 31559 | +#endif |
32186 | diff -urNp linux-2.6.29.6/grsecurity/grsec_disabled.c linux-2.6.29.6/grsecurity/grsec_disabled.c | 31560 | diff -urNp linux-2.6.30.4/grsecurity/grsec_disabled.c linux-2.6.30.4/grsecurity/grsec_disabled.c |
32187 | --- linux-2.6.29.6/grsecurity/grsec_disabled.c 1969-12-31 19:00:00.000000000 -0500 | 31561 | --- linux-2.6.30.4/grsecurity/grsec_disabled.c 1969-12-31 19:00:00.000000000 -0500 |
32188 | +++ linux-2.6.29.6/grsecurity/grsec_disabled.c 2009-07-23 17:34:32.175727734 -0400 | 31562 | +++ linux-2.6.30.4/grsecurity/grsec_disabled.c 2009-07-30 11:10:49.347341041 -0400 |
32189 | @@ -0,0 +1,426 @@ | 31563 | @@ -0,0 +1,426 @@ |
32190 | +#include <linux/kernel.h> | 31564 | +#include <linux/kernel.h> |
32191 | +#include <linux/module.h> | 31565 | +#include <linux/module.h> |
@@ -32613,9 +31987,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_disabled.c linux-2.6.29.6/grsecurity/ | |||
32613 | +EXPORT_SYMBOL(gr_check_user_change); | 31987 | +EXPORT_SYMBOL(gr_check_user_change); |
32614 | +EXPORT_SYMBOL(gr_check_group_change); | 31988 | +EXPORT_SYMBOL(gr_check_group_change); |
32615 | +#endif | 31989 | +#endif |
32616 | diff -urNp linux-2.6.29.6/grsecurity/grsec_exec.c linux-2.6.29.6/grsecurity/grsec_exec.c | 31990 | diff -urNp linux-2.6.30.4/grsecurity/grsec_exec.c linux-2.6.30.4/grsecurity/grsec_exec.c |
32617 | --- linux-2.6.29.6/grsecurity/grsec_exec.c 1969-12-31 19:00:00.000000000 -0500 | 31991 | --- linux-2.6.30.4/grsecurity/grsec_exec.c 1969-12-31 19:00:00.000000000 -0500 |
32618 | +++ linux-2.6.29.6/grsecurity/grsec_exec.c 2009-07-23 17:34:32.176740408 -0400 | 31992 | +++ linux-2.6.30.4/grsecurity/grsec_exec.c 2009-07-30 11:10:49.347341041 -0400 |
32619 | @@ -0,0 +1,89 @@ | 31993 | @@ -0,0 +1,89 @@ |
32620 | +#include <linux/kernel.h> | 31994 | +#include <linux/kernel.h> |
32621 | +#include <linux/sched.h> | 31995 | +#include <linux/sched.h> |
@@ -32706,9 +32080,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_exec.c linux-2.6.29.6/grsecurity/grse | |||
32706 | +#endif | 32080 | +#endif |
32707 | + return; | 32081 | + return; |
32708 | +} | 32082 | +} |
32709 | diff -urNp linux-2.6.29.6/grsecurity/grsec_fifo.c linux-2.6.29.6/grsecurity/grsec_fifo.c | 32083 | diff -urNp linux-2.6.30.4/grsecurity/grsec_fifo.c linux-2.6.30.4/grsecurity/grsec_fifo.c |
32710 | --- linux-2.6.29.6/grsecurity/grsec_fifo.c 1969-12-31 19:00:00.000000000 -0500 | 32084 | --- linux-2.6.30.4/grsecurity/grsec_fifo.c 1969-12-31 19:00:00.000000000 -0500 |
32711 | +++ linux-2.6.29.6/grsecurity/grsec_fifo.c 2009-07-23 17:34:32.176740408 -0400 | 32085 | +++ linux-2.6.30.4/grsecurity/grsec_fifo.c 2009-07-30 11:10:49.347341041 -0400 |
32712 | @@ -0,0 +1,24 @@ | 32086 | @@ -0,0 +1,24 @@ |
32713 | +#include <linux/kernel.h> | 32087 | +#include <linux/kernel.h> |
32714 | +#include <linux/sched.h> | 32088 | +#include <linux/sched.h> |
@@ -32734,9 +32108,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_fifo.c linux-2.6.29.6/grsecurity/grse | |||
32734 | +#endif | 32108 | +#endif |
32735 | + return 0; | 32109 | + return 0; |
32736 | +} | 32110 | +} |
32737 | diff -urNp linux-2.6.29.6/grsecurity/grsec_fork.c linux-2.6.29.6/grsecurity/grsec_fork.c | 32111 | diff -urNp linux-2.6.30.4/grsecurity/grsec_fork.c linux-2.6.30.4/grsecurity/grsec_fork.c |
32738 | --- linux-2.6.29.6/grsecurity/grsec_fork.c 1969-12-31 19:00:00.000000000 -0500 | 32112 | --- linux-2.6.30.4/grsecurity/grsec_fork.c 1969-12-31 19:00:00.000000000 -0500 |
32739 | +++ linux-2.6.29.6/grsecurity/grsec_fork.c 2009-07-23 17:34:32.176740408 -0400 | 32113 | +++ linux-2.6.30.4/grsecurity/grsec_fork.c 2009-07-30 11:10:49.349503559 -0400 |
32740 | @@ -0,0 +1,15 @@ | 32114 | @@ -0,0 +1,15 @@ |
32741 | +#include <linux/kernel.h> | 32115 | +#include <linux/kernel.h> |
32742 | +#include <linux/sched.h> | 32116 | +#include <linux/sched.h> |
@@ -32753,9 +32127,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_fork.c linux-2.6.29.6/grsecurity/grse | |||
32753 | +#endif | 32127 | +#endif |
32754 | + return; | 32128 | + return; |
32755 | +} | 32129 | +} |
32756 | diff -urNp linux-2.6.29.6/grsecurity/grsec_init.c linux-2.6.29.6/grsecurity/grsec_init.c | 32130 | diff -urNp linux-2.6.30.4/grsecurity/grsec_init.c linux-2.6.30.4/grsecurity/grsec_init.c |
32757 | --- linux-2.6.29.6/grsecurity/grsec_init.c 1969-12-31 19:00:00.000000000 -0500 | 32131 | --- linux-2.6.30.4/grsecurity/grsec_init.c 1969-12-31 19:00:00.000000000 -0500 |
32758 | +++ linux-2.6.29.6/grsecurity/grsec_init.c 2009-07-23 18:43:31.274004949 -0400 | 32132 | +++ linux-2.6.30.4/grsecurity/grsec_init.c 2009-08-02 09:38:20.116597572 -0400 |
32759 | @@ -0,0 +1,230 @@ | 32133 | @@ -0,0 +1,230 @@ |
32760 | +#include <linux/kernel.h> | 32134 | +#include <linux/kernel.h> |
32761 | +#include <linux/sched.h> | 32135 | +#include <linux/sched.h> |
@@ -32836,7 +32210,7 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_init.c linux-2.6.29.6/grsecurity/grse | |||
32836 | +#endif | 32210 | +#endif |
32837 | + | 32211 | + |
32838 | + for (j = 0; j < 4; j++) { | 32212 | + for (j = 0; j < 4; j++) { |
32839 | + gr_shared_page[j] = (char *)__alloc_percpu(PAGE_SIZE); | 32213 | + gr_shared_page[j] = (char *)__alloc_percpu(PAGE_SIZE, __alignof__(unsigned long long)); |
32840 | + if (gr_shared_page[j] == NULL) { | 32214 | + if (gr_shared_page[j] == NULL) { |
32841 | + panic("Unable to allocate grsecurity shared page"); | 32215 | + panic("Unable to allocate grsecurity shared page"); |
32842 | + return; | 32216 | + return; |
@@ -32987,9 +32361,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_init.c linux-2.6.29.6/grsecurity/grse | |||
32987 | + | 32361 | + |
32988 | + return; | 32362 | + return; |
32989 | +} | 32363 | +} |
32990 | diff -urNp linux-2.6.29.6/grsecurity/grsec_ipc.c linux-2.6.29.6/grsecurity/grsec_ipc.c | 32364 | diff -urNp linux-2.6.30.4/grsecurity/grsec_ipc.c linux-2.6.30.4/grsecurity/grsec_ipc.c |
32991 | --- linux-2.6.29.6/grsecurity/grsec_ipc.c 1969-12-31 19:00:00.000000000 -0500 | 32365 | --- linux-2.6.30.4/grsecurity/grsec_ipc.c 1969-12-31 19:00:00.000000000 -0500 |
32992 | +++ linux-2.6.29.6/grsecurity/grsec_ipc.c 2009-07-23 17:34:32.176740408 -0400 | 32366 | +++ linux-2.6.30.4/grsecurity/grsec_ipc.c 2009-07-30 11:10:49.349503559 -0400 |
32993 | @@ -0,0 +1,81 @@ | 32367 | @@ -0,0 +1,81 @@ |
32994 | +#include <linux/kernel.h> | 32368 | +#include <linux/kernel.h> |
32995 | +#include <linux/sched.h> | 32369 | +#include <linux/sched.h> |
@@ -33072,9 +32446,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_ipc.c linux-2.6.29.6/grsecurity/grsec | |||
33072 | +#endif | 32446 | +#endif |
33073 | + return; | 32447 | + return; |
33074 | +} | 32448 | +} |
33075 | diff -urNp linux-2.6.29.6/grsecurity/grsec_link.c linux-2.6.29.6/grsecurity/grsec_link.c | 32449 | diff -urNp linux-2.6.30.4/grsecurity/grsec_link.c linux-2.6.30.4/grsecurity/grsec_link.c |
33076 | --- linux-2.6.29.6/grsecurity/grsec_link.c 1969-12-31 19:00:00.000000000 -0500 | 32450 | --- linux-2.6.30.4/grsecurity/grsec_link.c 1969-12-31 19:00:00.000000000 -0500 |
33077 | +++ linux-2.6.29.6/grsecurity/grsec_link.c 2009-07-23 17:34:32.176740408 -0400 | 32451 | +++ linux-2.6.30.4/grsecurity/grsec_link.c 2009-07-30 11:10:49.349503559 -0400 |
33078 | @@ -0,0 +1,43 @@ | 32452 | @@ -0,0 +1,43 @@ |
33079 | +#include <linux/kernel.h> | 32453 | +#include <linux/kernel.h> |
33080 | +#include <linux/sched.h> | 32454 | +#include <linux/sched.h> |
@@ -33119,9 +32493,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_link.c linux-2.6.29.6/grsecurity/grse | |||
33119 | +#endif | 32493 | +#endif |
33120 | + return 0; | 32494 | + return 0; |
33121 | +} | 32495 | +} |
33122 | diff -urNp linux-2.6.29.6/grsecurity/grsec_log.c linux-2.6.29.6/grsecurity/grsec_log.c | 32496 | diff -urNp linux-2.6.30.4/grsecurity/grsec_log.c linux-2.6.30.4/grsecurity/grsec_log.c |
33123 | --- linux-2.6.29.6/grsecurity/grsec_log.c 1969-12-31 19:00:00.000000000 -0500 | 32497 | --- linux-2.6.30.4/grsecurity/grsec_log.c 1969-12-31 19:00:00.000000000 -0500 |
33124 | +++ linux-2.6.29.6/grsecurity/grsec_log.c 2009-07-23 17:34:32.177726844 -0400 | 32498 | +++ linux-2.6.30.4/grsecurity/grsec_log.c 2009-07-30 11:10:49.350327012 -0400 |
33125 | @@ -0,0 +1,288 @@ | 32499 | @@ -0,0 +1,288 @@ |
33126 | +#include <linux/kernel.h> | 32500 | +#include <linux/kernel.h> |
33127 | +#include <linux/sched.h> | 32501 | +#include <linux/sched.h> |
@@ -33411,9 +32785,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_log.c linux-2.6.29.6/grsecurity/grsec | |||
33411 | + gr_log_end(audit); | 32785 | + gr_log_end(audit); |
33412 | + END_LOCKS(audit); | 32786 | + END_LOCKS(audit); |
33413 | +} | 32787 | +} |
33414 | diff -urNp linux-2.6.29.6/grsecurity/grsec_mem.c linux-2.6.29.6/grsecurity/grsec_mem.c | 32788 | diff -urNp linux-2.6.30.4/grsecurity/grsec_mem.c linux-2.6.30.4/grsecurity/grsec_mem.c |
33415 | --- linux-2.6.29.6/grsecurity/grsec_mem.c 1969-12-31 19:00:00.000000000 -0500 | 32789 | --- linux-2.6.30.4/grsecurity/grsec_mem.c 1969-12-31 19:00:00.000000000 -0500 |
33416 | +++ linux-2.6.29.6/grsecurity/grsec_mem.c 2009-07-23 17:34:32.177726844 -0400 | 32790 | +++ linux-2.6.30.4/grsecurity/grsec_mem.c 2009-07-30 11:10:49.350327012 -0400 |
33417 | @@ -0,0 +1,71 @@ | 32791 | @@ -0,0 +1,71 @@ |
33418 | +#include <linux/kernel.h> | 32792 | +#include <linux/kernel.h> |
33419 | +#include <linux/sched.h> | 32793 | +#include <linux/sched.h> |
@@ -33486,9 +32860,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_mem.c linux-2.6.29.6/grsecurity/grsec | |||
33486 | + | 32860 | + |
33487 | + return 0; | 32861 | + return 0; |
33488 | +} | 32862 | +} |
33489 | diff -urNp linux-2.6.29.6/grsecurity/grsec_mount.c linux-2.6.29.6/grsecurity/grsec_mount.c | 32863 | diff -urNp linux-2.6.30.4/grsecurity/grsec_mount.c linux-2.6.30.4/grsecurity/grsec_mount.c |
33490 | --- linux-2.6.29.6/grsecurity/grsec_mount.c 1969-12-31 19:00:00.000000000 -0500 | 32864 | --- linux-2.6.30.4/grsecurity/grsec_mount.c 1969-12-31 19:00:00.000000000 -0500 |
33491 | +++ linux-2.6.29.6/grsecurity/grsec_mount.c 2009-07-23 17:34:32.177726844 -0400 | 32865 | +++ linux-2.6.30.4/grsecurity/grsec_mount.c 2009-07-30 11:10:49.350327012 -0400 |
33492 | @@ -0,0 +1,34 @@ | 32866 | @@ -0,0 +1,34 @@ |
33493 | +#include <linux/kernel.h> | 32867 | +#include <linux/kernel.h> |
33494 | +#include <linux/sched.h> | 32868 | +#include <linux/sched.h> |
@@ -33524,9 +32898,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_mount.c linux-2.6.29.6/grsecurity/grs | |||
33524 | +#endif | 32898 | +#endif |
33525 | + return; | 32899 | + return; |
33526 | +} | 32900 | +} |
33527 | diff -urNp linux-2.6.29.6/grsecurity/grsec_sig.c linux-2.6.29.6/grsecurity/grsec_sig.c | 32901 | diff -urNp linux-2.6.30.4/grsecurity/grsec_sig.c linux-2.6.30.4/grsecurity/grsec_sig.c |
33528 | --- linux-2.6.29.6/grsecurity/grsec_sig.c 1969-12-31 19:00:00.000000000 -0500 | 32902 | --- linux-2.6.30.4/grsecurity/grsec_sig.c 1969-12-31 19:00:00.000000000 -0500 |
33529 | +++ linux-2.6.29.6/grsecurity/grsec_sig.c 2009-07-23 17:34:32.177726844 -0400 | 32903 | +++ linux-2.6.30.4/grsecurity/grsec_sig.c 2009-07-30 11:10:49.350327012 -0400 |
33530 | @@ -0,0 +1,58 @@ | 32904 | @@ -0,0 +1,58 @@ |
33531 | +#include <linux/kernel.h> | 32905 | +#include <linux/kernel.h> |
33532 | +#include <linux/sched.h> | 32906 | +#include <linux/sched.h> |
@@ -33586,9 +32960,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_sig.c linux-2.6.29.6/grsecurity/grsec | |||
33586 | + return; | 32960 | + return; |
33587 | +} | 32961 | +} |
33588 | + | 32962 | + |
33589 | diff -urNp linux-2.6.29.6/grsecurity/grsec_sock.c linux-2.6.29.6/grsecurity/grsec_sock.c | 32963 | diff -urNp linux-2.6.30.4/grsecurity/grsec_sock.c linux-2.6.30.4/grsecurity/grsec_sock.c |
33590 | --- linux-2.6.29.6/grsecurity/grsec_sock.c 1969-12-31 19:00:00.000000000 -0500 | 32964 | --- linux-2.6.30.4/grsecurity/grsec_sock.c 1969-12-31 19:00:00.000000000 -0500 |
33591 | +++ linux-2.6.29.6/grsecurity/grsec_sock.c 2009-07-23 17:34:32.177726844 -0400 | 32965 | +++ linux-2.6.30.4/grsecurity/grsec_sock.c 2009-07-30 11:10:49.350327012 -0400 |
33592 | @@ -0,0 +1,269 @@ | 32966 | @@ -0,0 +1,269 @@ |
33593 | +#include <linux/kernel.h> | 32967 | +#include <linux/kernel.h> |
33594 | +#include <linux/module.h> | 32968 | +#include <linux/module.h> |
@@ -33859,9 +33233,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_sock.c linux-2.6.29.6/grsecurity/grse | |||
33859 | + return current_cap(); | 33233 | + return current_cap(); |
33860 | +#endif | 33234 | +#endif |
33861 | +} | 33235 | +} |
33862 | diff -urNp linux-2.6.29.6/grsecurity/grsec_sysctl.c linux-2.6.29.6/grsecurity/grsec_sysctl.c | 33236 | diff -urNp linux-2.6.30.4/grsecurity/grsec_sysctl.c linux-2.6.30.4/grsecurity/grsec_sysctl.c |
33863 | --- linux-2.6.29.6/grsecurity/grsec_sysctl.c 1969-12-31 19:00:00.000000000 -0500 | 33237 | --- linux-2.6.30.4/grsecurity/grsec_sysctl.c 1969-12-31 19:00:00.000000000 -0500 |
33864 | +++ linux-2.6.29.6/grsecurity/grsec_sysctl.c 2009-07-23 17:34:32.178838233 -0400 | 33238 | +++ linux-2.6.30.4/grsecurity/grsec_sysctl.c 2009-07-30 11:10:49.351429069 -0400 |
33865 | @@ -0,0 +1,435 @@ | 33239 | @@ -0,0 +1,435 @@ |
33866 | +#include <linux/kernel.h> | 33240 | +#include <linux/kernel.h> |
33867 | +#include <linux/sched.h> | 33241 | +#include <linux/sched.h> |
@@ -34298,9 +33672,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_sysctl.c linux-2.6.29.6/grsecurity/gr | |||
34298 | +#endif | 33672 | +#endif |
34299 | + return 0; | 33673 | + return 0; |
34300 | +} | 33674 | +} |
34301 | diff -urNp linux-2.6.29.6/grsecurity/grsec_textrel.c linux-2.6.29.6/grsecurity/grsec_textrel.c | 33675 | diff -urNp linux-2.6.30.4/grsecurity/grsec_textrel.c linux-2.6.30.4/grsecurity/grsec_textrel.c |
34302 | --- linux-2.6.29.6/grsecurity/grsec_textrel.c 1969-12-31 19:00:00.000000000 -0500 | 33676 | --- linux-2.6.30.4/grsecurity/grsec_textrel.c 1969-12-31 19:00:00.000000000 -0500 |
34303 | +++ linux-2.6.29.6/grsecurity/grsec_textrel.c 2009-07-23 17:34:32.178838233 -0400 | 33677 | +++ linux-2.6.30.4/grsecurity/grsec_textrel.c 2009-07-30 11:10:49.351429069 -0400 |
34304 | @@ -0,0 +1,16 @@ | 33678 | @@ -0,0 +1,16 @@ |
34305 | +#include <linux/kernel.h> | 33679 | +#include <linux/kernel.h> |
34306 | +#include <linux/sched.h> | 33680 | +#include <linux/sched.h> |
@@ -34318,9 +33692,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_textrel.c linux-2.6.29.6/grsecurity/g | |||
34318 | +#endif | 33692 | +#endif |
34319 | + return; | 33693 | + return; |
34320 | +} | 33694 | +} |
34321 | diff -urNp linux-2.6.29.6/grsecurity/grsec_time.c linux-2.6.29.6/grsecurity/grsec_time.c | 33695 | diff -urNp linux-2.6.30.4/grsecurity/grsec_time.c linux-2.6.30.4/grsecurity/grsec_time.c |
34322 | --- linux-2.6.29.6/grsecurity/grsec_time.c 1969-12-31 19:00:00.000000000 -0500 | 33696 | --- linux-2.6.30.4/grsecurity/grsec_time.c 1969-12-31 19:00:00.000000000 -0500 |
34323 | +++ linux-2.6.29.6/grsecurity/grsec_time.c 2009-07-23 17:34:32.178838233 -0400 | 33697 | +++ linux-2.6.30.4/grsecurity/grsec_time.c 2009-07-30 11:10:49.351429069 -0400 |
34324 | @@ -0,0 +1,13 @@ | 33698 | @@ -0,0 +1,13 @@ |
34325 | +#include <linux/kernel.h> | 33699 | +#include <linux/kernel.h> |
34326 | +#include <linux/sched.h> | 33700 | +#include <linux/sched.h> |
@@ -34335,9 +33709,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_time.c linux-2.6.29.6/grsecurity/grse | |||
34335 | +#endif | 33709 | +#endif |
34336 | + return; | 33710 | + return; |
34337 | +} | 33711 | +} |
34338 | diff -urNp linux-2.6.29.6/grsecurity/grsec_tpe.c linux-2.6.29.6/grsecurity/grsec_tpe.c | 33712 | diff -urNp linux-2.6.30.4/grsecurity/grsec_tpe.c linux-2.6.30.4/grsecurity/grsec_tpe.c |
34339 | --- linux-2.6.29.6/grsecurity/grsec_tpe.c 1969-12-31 19:00:00.000000000 -0500 | 33713 | --- linux-2.6.30.4/grsecurity/grsec_tpe.c 1969-12-31 19:00:00.000000000 -0500 |
34340 | +++ linux-2.6.29.6/grsecurity/grsec_tpe.c 2009-07-23 17:34:32.178838233 -0400 | 33714 | +++ linux-2.6.30.4/grsecurity/grsec_tpe.c 2009-07-30 11:10:49.351429069 -0400 |
34341 | @@ -0,0 +1,38 @@ | 33715 | @@ -0,0 +1,38 @@ |
34342 | +#include <linux/kernel.h> | 33716 | +#include <linux/kernel.h> |
34343 | +#include <linux/sched.h> | 33717 | +#include <linux/sched.h> |
@@ -34377,9 +33751,9 @@ diff -urNp linux-2.6.29.6/grsecurity/grsec_tpe.c linux-2.6.29.6/grsecurity/grsec | |||
34377 | +#endif | 33751 | +#endif |
34378 | + return 1; | 33752 | + return 1; |
34379 | +} | 33753 | +} |
34380 | diff -urNp linux-2.6.29.6/grsecurity/grsum.c linux-2.6.29.6/grsecurity/grsum.c | 33754 | diff -urNp linux-2.6.30.4/grsecurity/grsum.c linux-2.6.30.4/grsecurity/grsum.c |
34381 | --- linux-2.6.29.6/grsecurity/grsum.c 1969-12-31 19:00:00.000000000 -0500 | 33755 | --- linux-2.6.30.4/grsecurity/grsum.c 1969-12-31 19:00:00.000000000 -0500 |
34382 | +++ linux-2.6.29.6/grsecurity/grsum.c 2009-07-23 17:34:32.179767198 -0400 | 33756 | +++ linux-2.6.30.4/grsecurity/grsum.c 2009-07-30 11:10:49.351429069 -0400 |
34383 | @@ -0,0 +1,59 @@ | 33757 | @@ -0,0 +1,59 @@ |
34384 | +#include <linux/err.h> | 33758 | +#include <linux/err.h> |
34385 | +#include <linux/kernel.h> | 33759 | +#include <linux/kernel.h> |
@@ -34440,10 +33814,10 @@ diff -urNp linux-2.6.29.6/grsecurity/grsum.c linux-2.6.29.6/grsecurity/grsum.c | |||
34440 | + | 33814 | + |
34441 | + return retval; | 33815 | + return retval; |
34442 | +} | 33816 | +} |
34443 | diff -urNp linux-2.6.29.6/grsecurity/Kconfig linux-2.6.29.6/grsecurity/Kconfig | 33817 | diff -urNp linux-2.6.30.4/grsecurity/Kconfig linux-2.6.30.4/grsecurity/Kconfig |
34444 | --- linux-2.6.29.6/grsecurity/Kconfig 1969-12-31 19:00:00.000000000 -0500 | 33818 | --- linux-2.6.30.4/grsecurity/Kconfig 1969-12-31 19:00:00.000000000 -0500 |
34445 | +++ linux-2.6.29.6/grsecurity/Kconfig 2009-07-23 17:36:47.298949106 -0400 | 33819 | +++ linux-2.6.30.4/grsecurity/Kconfig 2009-07-30 11:21:32.668508126 -0400 |
34446 | @@ -0,0 +1,894 @@ | 33820 | @@ -0,0 +1,895 @@ |
34447 | +# | 33821 | +# |
34448 | +# grecurity configuration | 33822 | +# grecurity configuration |
34449 | +# | 33823 | +# |
@@ -34596,11 +33970,11 @@ diff -urNp linux-2.6.29.6/grsecurity/Kconfig linux-2.6.29.6/grsecurity/Kconfig | |||
34596 | + select PAX_EI_PAX | 33970 | + select PAX_EI_PAX |
34597 | + select PAX_PT_PAX_FLAGS | 33971 | + select PAX_PT_PAX_FLAGS |
34598 | + select PAX_HAVE_ACL_FLAGS | 33972 | + select PAX_HAVE_ACL_FLAGS |
34599 | + select PAX_KERNEXEC if (X86 && !EFI && !COMPAT_VDSO && !PARAVIRT && (!X86_32 || X86_WP_WORKS_OK)) | 33973 | + select PAX_KERNEXEC if (X86 && (!X86_32 || X86_WP_WORKS_OK)) |
34600 | + select PAX_MEMORY_UDEREF if (!X86_64 && !COMPAT_VDSO) | 33974 | + select PAX_MEMORY_UDEREF if (X86_32) |
34601 | + select PAX_RANDKSTACK if (X86_TSC && !X86_64) | 33975 | + select PAX_RANDKSTACK if (X86_TSC && !X86_64) |
34602 | + select PAX_SEGMEXEC if (X86 && !X86_64) | 33976 | + select PAX_SEGMEXEC if (X86_32) |
34603 | + select PAX_PAGEEXEC if (!X86) | 33977 | + select PAX_PAGEEXEC |
34604 | + select PAX_EMUPLT if (ALPHA || PARISC || PPC32 || SPARC32 || SPARC64) | 33978 | + select PAX_EMUPLT if (ALPHA || PARISC || PPC32 || SPARC32 || SPARC64) |
34605 | + select PAX_DLRESOLVE if (SPARC32 || SPARC64) | 33979 | + select PAX_DLRESOLVE if (SPARC32 || SPARC64) |
34606 | + select PAX_SYSCALL if (PPC32) | 33980 | + select PAX_SYSCALL if (PPC32) |
@@ -34692,6 +34066,7 @@ diff -urNp linux-2.6.29.6/grsecurity/Kconfig linux-2.6.29.6/grsecurity/Kconfig | |||
34692 | + | 34066 | + |
34693 | +config GRKERNSEC_PROC_MEMMAP | 34067 | +config GRKERNSEC_PROC_MEMMAP |
34694 | + bool "Remove addresses from /proc/<pid>/[smaps|maps|stat]" | 34068 | + bool "Remove addresses from /proc/<pid>/[smaps|maps|stat]" |
34069 | + default y if (PAX_NOEXEC || PAX_ASLR) | ||
34695 | + depends on PAX_NOEXEC || PAX_ASLR | 34070 | + depends on PAX_NOEXEC || PAX_ASLR |
34696 | + help | 34071 | + help |
34697 | + If you say Y here, the /proc/<pid>/maps and /proc/<pid>/stat files will | 34072 | + If you say Y here, the /proc/<pid>/maps and /proc/<pid>/stat files will |
@@ -34962,8 +34337,8 @@ diff -urNp linux-2.6.29.6/grsecurity/Kconfig linux-2.6.29.6/grsecurity/Kconfig | |||
34962 | + depends on GRKERNSEC_CHROOT | 34337 | + depends on GRKERNSEC_CHROOT |
34963 | + help | 34338 | + help |
34964 | + If you say Y here, processes inside a chroot will not be able to | 34339 | + If you say Y here, processes inside a chroot will not be able to |
34965 | + kill, send signals with fcntl, ptrace, capget, getpgid, getsid, | 34340 | + kill, send signals with fcntl, ptrace, capget, getpgid, setpgid, |
34966 | + or view any process outside of the chroot. If the sysctl | 34341 | + getsid, or view any process outside of the chroot. If the sysctl |
34967 | + option is enabled, a sysctl option with name "chroot_findtask" is | 34342 | + option is enabled, a sysctl option with name "chroot_findtask" is |
34968 | + created. | 34343 | + created. |
34969 | + | 34344 | + |
@@ -35338,9 +34713,9 @@ diff -urNp linux-2.6.29.6/grsecurity/Kconfig linux-2.6.29.6/grsecurity/Kconfig | |||
35338 | +endmenu | 34713 | +endmenu |
35339 | + | 34714 | + |
35340 | +endmenu | 34715 | +endmenu |
35341 | diff -urNp linux-2.6.29.6/grsecurity/Makefile linux-2.6.29.6/grsecurity/Makefile | 34716 | diff -urNp linux-2.6.30.4/grsecurity/Makefile linux-2.6.30.4/grsecurity/Makefile |
35342 | --- linux-2.6.29.6/grsecurity/Makefile 1969-12-31 19:00:00.000000000 -0500 | 34717 | --- linux-2.6.30.4/grsecurity/Makefile 1969-12-31 19:00:00.000000000 -0500 |
35343 | +++ linux-2.6.29.6/grsecurity/Makefile 2009-07-23 17:34:32.180729893 -0400 | 34718 | +++ linux-2.6.30.4/grsecurity/Makefile 2009-07-30 11:10:49.352668479 -0400 |
35344 | @@ -0,0 +1,21 @@ | 34719 | @@ -0,0 +1,21 @@ |
35345 | +# grsecurity's ACL system was originally written in 2001 by Michael Dalton | 34720 | +# grsecurity's ACL system was originally written in 2001 by Michael Dalton |
35346 | +# during 2001-2005 it has been completely redesigned by Brad Spengler | 34721 | +# during 2001-2005 it has been completely redesigned by Brad Spengler |
@@ -35363,55 +34738,9 @@ diff -urNp linux-2.6.29.6/grsecurity/Makefile linux-2.6.29.6/grsecurity/Makefile | |||
35363 | +obj-y += grsec_disabled.o | 34738 | +obj-y += grsec_disabled.o |
35364 | +endif | 34739 | +endif |
35365 | + | 34740 | + |
35366 | diff -urNp linux-2.6.29.6/include/acpi/processor.h linux-2.6.29.6/include/acpi/processor.h | 34741 | diff -urNp linux-2.6.30.4/include/asm-generic/futex.h linux-2.6.30.4/include/asm-generic/futex.h |
35367 | --- linux-2.6.29.6/include/acpi/processor.h 2009-07-02 19:41:20.000000000 -0400 | 34742 | --- linux-2.6.30.4/include/asm-generic/futex.h 2009-07-24 17:47:51.000000000 -0400 |
35368 | +++ linux-2.6.29.6/include/acpi/processor.h 2009-07-23 18:40:28.648332539 -0400 | 34743 | +++ linux-2.6.30.4/include/asm-generic/futex.h 2009-07-30 09:48:10.105294791 -0400 |
35369 | @@ -322,7 +322,7 @@ static inline int acpi_processor_ppc_has | ||
35370 | int acpi_processor_tstate_has_changed(struct acpi_processor *pr); | ||
35371 | int acpi_processor_get_throttling_info(struct acpi_processor *pr); | ||
35372 | extern int acpi_processor_set_throttling(struct acpi_processor *pr, int state); | ||
35373 | -extern struct file_operations acpi_processor_throttling_fops; | ||
35374 | +extern const struct file_operations acpi_processor_throttling_fops; | ||
35375 | extern void acpi_processor_throttling_init(void); | ||
35376 | /* in processor_idle.c */ | ||
35377 | int acpi_processor_power_init(struct acpi_processor *pr, | ||
35378 | @@ -336,7 +336,7 @@ extern struct cpuidle_driver acpi_idle_d | ||
35379 | |||
35380 | /* in processor_thermal.c */ | ||
35381 | int acpi_processor_get_limit_info(struct acpi_processor *pr); | ||
35382 | -extern struct file_operations acpi_processor_limit_fops; | ||
35383 | +extern const struct file_operations acpi_processor_limit_fops; | ||
35384 | extern struct thermal_cooling_device_ops processor_cooling_ops; | ||
35385 | #ifdef CONFIG_CPU_FREQ | ||
35386 | void acpi_thermal_cpufreq_init(void); | ||
35387 | diff -urNp linux-2.6.29.6/include/asm-frv/atomic.h linux-2.6.29.6/include/asm-frv/atomic.h | ||
35388 | --- linux-2.6.29.6/include/asm-frv/atomic.h 2009-07-02 19:41:20.000000000 -0400 | ||
35389 | +++ linux-2.6.29.6/include/asm-frv/atomic.h 2009-07-23 17:34:32.180729893 -0400 | ||
35390 | @@ -114,6 +114,10 @@ static inline void atomic_dec(atomic_t * | ||
35391 | atomic_sub_return(1, v); | ||
35392 | } | ||
35393 | |||
35394 | +#define atomic_inc_unchecked(v) atomic_inc(v) | ||
35395 | +#define atomic_add_unchecked(i,v) atomic_add((i),(v)) | ||
35396 | +#define atomic_sub_unchecked(i,v) atomic_sub((i),(v)) | ||
35397 | + | ||
35398 | #define atomic_dec_return(v) atomic_sub_return(1, (v)) | ||
35399 | #define atomic_inc_return(v) atomic_add_return(1, (v)) | ||
35400 | |||
35401 | diff -urNp linux-2.6.29.6/include/asm-frv/kmap_types.h linux-2.6.29.6/include/asm-frv/kmap_types.h | ||
35402 | --- linux-2.6.29.6/include/asm-frv/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | ||
35403 | +++ linux-2.6.29.6/include/asm-frv/kmap_types.h 2009-07-23 17:34:32.180729893 -0400 | ||
35404 | @@ -23,6 +23,7 @@ enum km_type { | ||
35405 | KM_IRQ1, | ||
35406 | KM_SOFTIRQ0, | ||
35407 | KM_SOFTIRQ1, | ||
35408 | + KM_CLEARPAGE, | ||
35409 | KM_TYPE_NR | ||
35410 | }; | ||
35411 | |||
35412 | diff -urNp linux-2.6.29.6/include/asm-generic/futex.h linux-2.6.29.6/include/asm-generic/futex.h | ||
35413 | --- linux-2.6.29.6/include/asm-generic/futex.h 2009-07-02 19:41:20.000000000 -0400 | ||
35414 | +++ linux-2.6.29.6/include/asm-generic/futex.h 2009-07-23 17:34:32.180729893 -0400 | ||
35415 | @@ -6,7 +6,7 @@ | 34744 | @@ -6,7 +6,7 @@ |
35416 | #include <asm/errno.h> | 34745 | #include <asm/errno.h> |
35417 | 34746 | ||
@@ -35430,9 +34759,9 @@ diff -urNp linux-2.6.29.6/include/asm-generic/futex.h linux-2.6.29.6/include/asm | |||
35430 | { | 34759 | { |
35431 | return -ENOSYS; | 34760 | return -ENOSYS; |
35432 | } | 34761 | } |
35433 | diff -urNp linux-2.6.29.6/include/asm-generic/int-l64.h linux-2.6.29.6/include/asm-generic/int-l64.h | 34762 | diff -urNp linux-2.6.30.4/include/asm-generic/int-l64.h linux-2.6.30.4/include/asm-generic/int-l64.h |
35434 | --- linux-2.6.29.6/include/asm-generic/int-l64.h 2009-07-02 19:41:20.000000000 -0400 | 34763 | --- linux-2.6.30.4/include/asm-generic/int-l64.h 2009-07-24 17:47:51.000000000 -0400 |
35435 | +++ linux-2.6.29.6/include/asm-generic/int-l64.h 2009-07-23 17:34:32.180729893 -0400 | 34764 | +++ linux-2.6.30.4/include/asm-generic/int-l64.h 2009-07-30 09:48:10.105294791 -0400 |
35436 | @@ -44,6 +44,8 @@ typedef unsigned int u32; | 34765 | @@ -44,6 +44,8 @@ typedef unsigned int u32; |
35437 | typedef signed long s64; | 34766 | typedef signed long s64; |
35438 | typedef unsigned long u64; | 34767 | typedef unsigned long u64; |
@@ -35442,9 +34771,9 @@ diff -urNp linux-2.6.29.6/include/asm-generic/int-l64.h linux-2.6.29.6/include/a | |||
35442 | #define S8_C(x) x | 34771 | #define S8_C(x) x |
35443 | #define U8_C(x) x ## U | 34772 | #define U8_C(x) x ## U |
35444 | #define S16_C(x) x | 34773 | #define S16_C(x) x |
35445 | diff -urNp linux-2.6.29.6/include/asm-generic/int-ll64.h linux-2.6.29.6/include/asm-generic/int-ll64.h | 34774 | diff -urNp linux-2.6.30.4/include/asm-generic/int-ll64.h linux-2.6.30.4/include/asm-generic/int-ll64.h |
35446 | --- linux-2.6.29.6/include/asm-generic/int-ll64.h 2009-07-02 19:41:20.000000000 -0400 | 34775 | --- linux-2.6.30.4/include/asm-generic/int-ll64.h 2009-07-24 17:47:51.000000000 -0400 |
35447 | +++ linux-2.6.29.6/include/asm-generic/int-ll64.h 2009-07-23 17:34:32.180729893 -0400 | 34776 | +++ linux-2.6.30.4/include/asm-generic/int-ll64.h 2009-07-30 09:48:10.105294791 -0400 |
35448 | @@ -49,6 +49,8 @@ typedef unsigned int u32; | 34777 | @@ -49,6 +49,8 @@ typedef unsigned int u32; |
35449 | typedef signed long long s64; | 34778 | typedef signed long long s64; |
35450 | typedef unsigned long long u64; | 34779 | typedef unsigned long long u64; |
@@ -35454,10 +34783,10 @@ diff -urNp linux-2.6.29.6/include/asm-generic/int-ll64.h linux-2.6.29.6/include/ | |||
35454 | #define S8_C(x) x | 34783 | #define S8_C(x) x |
35455 | #define U8_C(x) x ## U | 34784 | #define U8_C(x) x ## U |
35456 | #define S16_C(x) x | 34785 | #define S16_C(x) x |
35457 | diff -urNp linux-2.6.29.6/include/asm-generic/vmlinux.lds.h linux-2.6.29.6/include/asm-generic/vmlinux.lds.h | 34786 | diff -urNp linux-2.6.30.4/include/asm-generic/vmlinux.lds.h linux-2.6.30.4/include/asm-generic/vmlinux.lds.h |
35458 | --- linux-2.6.29.6/include/asm-generic/vmlinux.lds.h 2009-07-02 19:41:20.000000000 -0400 | 34787 | --- linux-2.6.30.4/include/asm-generic/vmlinux.lds.h 2009-07-24 17:47:51.000000000 -0400 |
35459 | +++ linux-2.6.29.6/include/asm-generic/vmlinux.lds.h 2009-07-23 17:34:32.181776916 -0400 | 34788 | +++ linux-2.6.30.4/include/asm-generic/vmlinux.lds.h 2009-08-04 17:52:34.399966119 -0400 |
35460 | @@ -88,6 +88,7 @@ | 34789 | @@ -121,6 +121,7 @@ |
35461 | .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ | 34790 | .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ |
35462 | VMLINUX_SYMBOL(__start_rodata) = .; \ | 34791 | VMLINUX_SYMBOL(__start_rodata) = .; \ |
35463 | *(.rodata) *(.rodata.*) \ | 34792 | *(.rodata) *(.rodata.*) \ |
@@ -35465,71 +34794,30 @@ diff -urNp linux-2.6.29.6/include/asm-generic/vmlinux.lds.h linux-2.6.29.6/inclu | |||
35465 | *(__vermagic) /* Kernel version magic */ \ | 34794 | *(__vermagic) /* Kernel version magic */ \ |
35466 | *(__markers_strings) /* Markers: strings */ \ | 34795 | *(__markers_strings) /* Markers: strings */ \ |
35467 | *(__tracepoints_strings)/* Tracepoints: strings */ \ | 34796 | *(__tracepoints_strings)/* Tracepoints: strings */ \ |
35468 | diff -urNp linux-2.6.29.6/include/asm-m32r/atomic.h linux-2.6.29.6/include/asm-m32r/atomic.h | 34797 | @@ -476,8 +477,10 @@ |
35469 | --- linux-2.6.29.6/include/asm-m32r/atomic.h 2009-07-02 19:41:20.000000000 -0400 | 34798 | VMLINUX_SYMBOL(__per_cpu_load) = .; \ |
35470 | +++ linux-2.6.29.6/include/asm-m32r/atomic.h 2009-07-23 17:34:32.181776916 -0400 | 34799 | .data.percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load) \ |
35471 | @@ -308,6 +308,10 @@ static __inline__ void atomic_set_mask(u | 34800 | - LOAD_OFFSET) { \ |
35472 | local_irq_restore(flags); | 34801 | + VMLINUX_SYMBOL(__per_cpu_load) = . + __per_cpu_load; \ |
35473 | } | 34802 | VMLINUX_SYMBOL(__per_cpu_start) = .; \ |
35474 | 34803 | *(.data.percpu.first) \ | |
35475 | +#define atomic_inc_unchecked(v) atomic_inc(v) | 34804 | + . = ALIGN(PAGE_SIZE); \ |
35476 | +#define atomic_add_unchecked(i,v) atomic_add((i),(v)) | 34805 | *(.data.percpu.page_aligned) \ |
35477 | +#define atomic_sub_unchecked(i,v) atomic_sub((i),(v)) | 34806 | *(.data.percpu) \ |
35478 | + | 34807 | *(.data.percpu.shared_aligned) \ |
35479 | /* Atomic operations are already serializing on m32r */ | 34808 | diff -urNp linux-2.6.30.4/include/drm/drm_pciids.h linux-2.6.30.4/include/drm/drm_pciids.h |
35480 | #define smp_mb__before_atomic_dec() barrier() | 34809 | --- linux-2.6.30.4/include/drm/drm_pciids.h 2009-07-24 17:47:51.000000000 -0400 |
35481 | #define smp_mb__after_atomic_dec() barrier() | 34810 | +++ linux-2.6.30.4/include/drm/drm_pciids.h 2009-07-30 09:48:10.106233963 -0400 |
35482 | diff -urNp linux-2.6.29.6/include/asm-m32r/kmap_types.h linux-2.6.29.6/include/asm-m32r/kmap_types.h | 34811 | @@ -356,7 +356,7 @@ |
35483 | --- linux-2.6.29.6/include/asm-m32r/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | 34812 | {0x1002, 0x9614, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
35484 | +++ linux-2.6.29.6/include/asm-m32r/kmap_types.h 2009-07-23 17:34:32.181776916 -0400 | 34813 | {0x1002, 0x9615, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
35485 | @@ -21,7 +21,8 @@ D(9) KM_IRQ0, | 34814 | {0x1002, 0x9616, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
35486 | D(10) KM_IRQ1, | ||
35487 | D(11) KM_SOFTIRQ0, | ||
35488 | D(12) KM_SOFTIRQ1, | ||
35489 | -D(13) KM_TYPE_NR | ||
35490 | +D(13) KM_CLEARPAGE, | ||
35491 | +D(14) KM_TYPE_NR | ||
35492 | }; | ||
35493 | |||
35494 | #undef D | ||
35495 | diff -urNp linux-2.6.29.6/include/asm-mn10300/atomic.h linux-2.6.29.6/include/asm-mn10300/atomic.h | ||
35496 | --- linux-2.6.29.6/include/asm-mn10300/atomic.h 2009-07-02 19:41:20.000000000 -0400 | ||
35497 | +++ linux-2.6.29.6/include/asm-mn10300/atomic.h 2009-07-23 17:34:32.181776916 -0400 | ||
35498 | @@ -145,6 +145,10 @@ static inline void atomic_clear_mask(uns | ||
35499 | #define atomic_xchg(ptr, v) (xchg(&(ptr)->counter, (v))) | ||
35500 | #define atomic_cmpxchg(v, old, new) (cmpxchg(&((v)->counter), (old), (new))) | ||
35501 | |||
35502 | +#define atomic_inc_unchecked(v) atomic_inc(v) | ||
35503 | +#define atomic_add_unchecked(i,v) atomic_add((i),(v)) | ||
35504 | +#define atomic_sub_unchecked(i,v) atomic_sub((i),(v)) | ||
35505 | + | ||
35506 | /* Atomic operations are already serializing on MN10300??? */ | ||
35507 | #define smp_mb__before_atomic_dec() barrier() | ||
35508 | #define smp_mb__after_atomic_dec() barrier() | ||
35509 | diff -urNp linux-2.6.29.6/include/asm-mn10300/kmap_types.h linux-2.6.29.6/include/asm-mn10300/kmap_types.h | ||
35510 | --- linux-2.6.29.6/include/asm-mn10300/kmap_types.h 2009-07-02 19:41:20.000000000 -0400 | ||
35511 | +++ linux-2.6.29.6/include/asm-mn10300/kmap_types.h 2009-07-23 17:34:32.181776916 -0400 | ||
35512 | @@ -25,6 +25,7 @@ enum km_type { | ||
35513 | KM_IRQ1, | ||
35514 | KM_SOFTIRQ0, | ||
35515 | KM_SOFTIRQ1, | ||
35516 | + KM_CLEARPAGE, | ||
35517 | KM_TYPE_NR | ||
35518 | }; | ||
35519 | |||
35520 | diff -urNp linux-2.6.29.6/include/drm/drm_pciids.h linux-2.6.29.6/include/drm/drm_pciids.h | ||
35521 | --- linux-2.6.29.6/include/drm/drm_pciids.h 2009-07-02 19:41:20.000000000 -0400 | ||
35522 | +++ linux-2.6.29.6/include/drm/drm_pciids.h 2009-07-23 17:34:32.182748165 -0400 | ||
35523 | @@ -243,7 +243,7 @@ | ||
35524 | {0x1002, 0x796d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS740|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \ | ||
35525 | {0x1002, 0x796e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS740|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \ | ||
35526 | {0x1002, 0x796f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS740|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \ | ||
35527 | - {0, 0, 0} | 34815 | - {0, 0, 0} |
35528 | + {0, 0, 0, 0, 0, 0} | 34816 | + {0, 0, 0, 0, 0, 0} |
35529 | 34817 | ||
35530 | #define r128_PCI_IDS \ | 34818 | #define r128_PCI_IDS \ |
35531 | {0x1002, 0x4c45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34819 | {0x1002, 0x4c45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
35532 | @@ -283,14 +283,14 @@ | 34820 | @@ -396,14 +396,14 @@ |
35533 | {0x1002, 0x5446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34821 | {0x1002, 0x5446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
35534 | {0x1002, 0x544C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34822 | {0x1002, 0x544C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
35535 | {0x1002, 0x5452, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34823 | {0x1002, 0x5452, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
@@ -35546,7 +34834,7 @@ diff -urNp linux-2.6.29.6/include/drm/drm_pciids.h linux-2.6.29.6/include/drm/dr | |||
35546 | 34834 | ||
35547 | #define mach64_PCI_IDS \ | 34835 | #define mach64_PCI_IDS \ |
35548 | {0x1002, 0x4749, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34836 | {0x1002, 0x4749, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
35549 | @@ -313,7 +313,7 @@ | 34837 | @@ -426,7 +426,7 @@ |
35550 | {0x1002, 0x4c53, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34838 | {0x1002, 0x4c53, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
35551 | {0x1002, 0x4c4d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34839 | {0x1002, 0x4c4d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
35552 | {0x1002, 0x4c4e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34840 | {0x1002, 0x4c4e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
@@ -35555,7 +34843,7 @@ diff -urNp linux-2.6.29.6/include/drm/drm_pciids.h linux-2.6.29.6/include/drm/dr | |||
35555 | 34843 | ||
35556 | #define sisdrv_PCI_IDS \ | 34844 | #define sisdrv_PCI_IDS \ |
35557 | {0x1039, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34845 | {0x1039, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
35558 | @@ -324,7 +324,7 @@ | 34846 | @@ -437,7 +437,7 @@ |
35559 | {0x1039, 0x7300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34847 | {0x1039, 0x7300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
35560 | {0x18CA, 0x0040, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \ | 34848 | {0x18CA, 0x0040, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \ |
35561 | {0x18CA, 0x0042, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \ | 34849 | {0x18CA, 0x0042, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \ |
@@ -35564,7 +34852,7 @@ diff -urNp linux-2.6.29.6/include/drm/drm_pciids.h linux-2.6.29.6/include/drm/dr | |||
35564 | 34852 | ||
35565 | #define tdfx_PCI_IDS \ | 34853 | #define tdfx_PCI_IDS \ |
35566 | {0x121a, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34854 | {0x121a, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
35567 | @@ -333,7 +333,7 @@ | 34855 | @@ -446,7 +446,7 @@ |
35568 | {0x121a, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34856 | {0x121a, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
35569 | {0x121a, 0x0009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34857 | {0x121a, 0x0009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
35570 | {0x121a, 0x000b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34858 | {0x121a, 0x000b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
@@ -35573,7 +34861,7 @@ diff -urNp linux-2.6.29.6/include/drm/drm_pciids.h linux-2.6.29.6/include/drm/dr | |||
35573 | 34861 | ||
35574 | #define viadrv_PCI_IDS \ | 34862 | #define viadrv_PCI_IDS \ |
35575 | {0x1106, 0x3022, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34863 | {0x1106, 0x3022, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
35576 | @@ -345,25 +345,25 @@ | 34864 | @@ -458,14 +458,14 @@ |
35577 | {0x1106, 0x3343, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34865 | {0x1106, 0x3343, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
35578 | {0x1106, 0x3230, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_DX9_0}, \ | 34866 | {0x1106, 0x3230, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_DX9_0}, \ |
35579 | {0x1106, 0x3157, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_PRO_GROUP_A}, \ | 34867 | {0x1106, 0x3157, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_PRO_GROUP_A}, \ |
@@ -35590,9 +34878,10 @@ diff -urNp linux-2.6.29.6/include/drm/drm_pciids.h linux-2.6.29.6/include/drm/dr | |||
35590 | 34878 | ||
35591 | #define i830_PCI_IDS \ | 34879 | #define i830_PCI_IDS \ |
35592 | {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34880 | {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
35593 | {0x8086, 0x2562, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34881 | @@ -473,11 +473,11 @@ |
35594 | {0x8086, 0x3582, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34882 | {0x8086, 0x3582, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
35595 | {0x8086, 0x2572, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 34883 | {0x8086, 0x2572, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
34884 | {0x8086, 0x358e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | ||
35596 | - {0, 0, 0} | 34885 | - {0, 0, 0} |
35597 | + {0, 0, 0, 0, 0, 0} | 34886 | + {0, 0, 0, 0, 0, 0} |
35598 | 34887 | ||
@@ -35603,7 +34892,7 @@ diff -urNp linux-2.6.29.6/include/drm/drm_pciids.h linux-2.6.29.6/include/drm/dr | |||
35603 | 34892 | ||
35604 | #define savage_PCI_IDS \ | 34893 | #define savage_PCI_IDS \ |
35605 | {0x5333, 0x8a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE3D}, \ | 34894 | {0x5333, 0x8a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE3D}, \ |
35606 | @@ -389,10 +389,10 @@ | 34895 | @@ -503,10 +503,10 @@ |
35607 | {0x5333, 0x8d02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_TWISTER}, \ | 34896 | {0x5333, 0x8d02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_TWISTER}, \ |
35608 | {0x5333, 0x8d03, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \ | 34897 | {0x5333, 0x8d03, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \ |
35609 | {0x5333, 0x8d04, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \ | 34898 | {0x5333, 0x8d04, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \ |
@@ -35616,16 +34905,16 @@ diff -urNp linux-2.6.29.6/include/drm/drm_pciids.h linux-2.6.29.6/include/drm/dr | |||
35616 | 34905 | ||
35617 | #define i915_PCI_IDS \ | 34906 | #define i915_PCI_IDS \ |
35618 | {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ | 34907 | {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ |
35619 | @@ -419,4 +419,4 @@ | 34908 | @@ -536,4 +536,4 @@ |
35620 | {0x8086, 0x2e12, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ | 34909 | {0x8086, 0xa001, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ |
35621 | {0x8086, 0x2e22, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ | 34910 | {0x8086, 0xa011, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ |
35622 | {0x8086, 0x2e32, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ | 34911 | {0x8086, 0x35e8, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ |
35623 | - {0, 0, 0} | 34912 | - {0, 0, 0} |
35624 | + {0, 0, 0, 0, 0, 0} | 34913 | + {0, 0, 0, 0, 0, 0} |
35625 | diff -urNp linux-2.6.29.6/include/drm/drmP.h linux-2.6.29.6/include/drm/drmP.h | 34914 | diff -urNp linux-2.6.30.4/include/drm/drmP.h linux-2.6.30.4/include/drm/drmP.h |
35626 | --- linux-2.6.29.6/include/drm/drmP.h 2009-07-02 19:41:20.000000000 -0400 | 34915 | --- linux-2.6.30.4/include/drm/drmP.h 2009-07-24 17:47:51.000000000 -0400 |
35627 | +++ linux-2.6.29.6/include/drm/drmP.h 2009-07-23 18:40:27.472293076 -0400 | 34916 | +++ linux-2.6.30.4/include/drm/drmP.h 2009-07-30 09:48:10.106233963 -0400 |
35628 | @@ -769,7 +769,7 @@ struct drm_driver { | 34917 | @@ -783,7 +783,7 @@ struct drm_driver { |
35629 | void (*gem_free_object) (struct drm_gem_object *obj); | 34918 | void (*gem_free_object) (struct drm_gem_object *obj); |
35630 | 34919 | ||
35631 | /* Driver private ops for this object */ | 34920 | /* Driver private ops for this object */ |
@@ -35634,7 +34923,7 @@ diff -urNp linux-2.6.29.6/include/drm/drmP.h linux-2.6.29.6/include/drm/drmP.h | |||
35634 | 34923 | ||
35635 | int major; | 34924 | int major; |
35636 | int minor; | 34925 | int minor; |
35637 | @@ -825,7 +825,7 @@ struct drm_device { | 34926 | @@ -886,7 +886,7 @@ struct drm_device { |
35638 | 34927 | ||
35639 | /** \name Usage Counters */ | 34928 | /** \name Usage Counters */ |
35640 | /*@{ */ | 34929 | /*@{ */ |
@@ -35643,7 +34932,7 @@ diff -urNp linux-2.6.29.6/include/drm/drmP.h linux-2.6.29.6/include/drm/drmP.h | |||
35643 | atomic_t ioctl_count; /**< Outstanding IOCTLs pending */ | 34932 | atomic_t ioctl_count; /**< Outstanding IOCTLs pending */ |
35644 | atomic_t vma_count; /**< Outstanding vma areas open */ | 34933 | atomic_t vma_count; /**< Outstanding vma areas open */ |
35645 | int buf_use; /**< Buffers in use -- cannot alloc */ | 34934 | int buf_use; /**< Buffers in use -- cannot alloc */ |
35646 | @@ -836,7 +836,7 @@ struct drm_device { | 34935 | @@ -897,7 +897,7 @@ struct drm_device { |
35647 | /*@{ */ | 34936 | /*@{ */ |
35648 | unsigned long counters; | 34937 | unsigned long counters; |
35649 | enum drm_stat_type types[15]; | 34938 | enum drm_stat_type types[15]; |
@@ -35652,9 +34941,9 @@ diff -urNp linux-2.6.29.6/include/drm/drmP.h linux-2.6.29.6/include/drm/drmP.h | |||
35652 | /*@} */ | 34941 | /*@} */ |
35653 | 34942 | ||
35654 | struct list_head filelist; | 34943 | struct list_head filelist; |
35655 | diff -urNp linux-2.6.29.6/include/linux/a.out.h linux-2.6.29.6/include/linux/a.out.h | 34944 | diff -urNp linux-2.6.30.4/include/linux/a.out.h linux-2.6.30.4/include/linux/a.out.h |
35656 | --- linux-2.6.29.6/include/linux/a.out.h 2009-07-02 19:41:20.000000000 -0400 | 34945 | --- linux-2.6.30.4/include/linux/a.out.h 2009-07-24 17:47:51.000000000 -0400 |
35657 | +++ linux-2.6.29.6/include/linux/a.out.h 2009-07-23 17:34:32.184929094 -0400 | 34946 | +++ linux-2.6.30.4/include/linux/a.out.h 2009-07-30 09:48:10.107682096 -0400 |
35658 | @@ -39,6 +39,14 @@ enum machine_type { | 34947 | @@ -39,6 +39,14 @@ enum machine_type { |
35659 | M_MIPS2 = 152 /* MIPS R6000/R4000 binary */ | 34948 | M_MIPS2 = 152 /* MIPS R6000/R4000 binary */ |
35660 | }; | 34949 | }; |
@@ -35670,9 +34959,9 @@ diff -urNp linux-2.6.29.6/include/linux/a.out.h linux-2.6.29.6/include/linux/a.o | |||
35670 | #if !defined (N_MAGIC) | 34959 | #if !defined (N_MAGIC) |
35671 | #define N_MAGIC(exec) ((exec).a_info & 0xffff) | 34960 | #define N_MAGIC(exec) ((exec).a_info & 0xffff) |
35672 | #endif | 34961 | #endif |
35673 | diff -urNp linux-2.6.29.6/include/linux/atmdev.h linux-2.6.29.6/include/linux/atmdev.h | 34962 | diff -urNp linux-2.6.30.4/include/linux/atmdev.h linux-2.6.30.4/include/linux/atmdev.h |
35674 | --- linux-2.6.29.6/include/linux/atmdev.h 2009-07-02 19:41:20.000000000 -0400 | 34963 | --- linux-2.6.30.4/include/linux/atmdev.h 2009-07-24 17:47:51.000000000 -0400 |
35675 | +++ linux-2.6.29.6/include/linux/atmdev.h 2009-07-23 17:34:32.185714643 -0400 | 34964 | +++ linux-2.6.30.4/include/linux/atmdev.h 2009-07-30 09:48:10.107682096 -0400 |
35676 | @@ -237,7 +237,7 @@ struct compat_atm_iobuf { | 34965 | @@ -237,7 +237,7 @@ struct compat_atm_iobuf { |
35677 | #endif | 34966 | #endif |
35678 | 34967 | ||
@@ -35682,10 +34971,10 @@ diff -urNp linux-2.6.29.6/include/linux/atmdev.h linux-2.6.29.6/include/linux/at | |||
35682 | __AAL_STAT_ITEMS | 34971 | __AAL_STAT_ITEMS |
35683 | #undef __HANDLE_ITEM | 34972 | #undef __HANDLE_ITEM |
35684 | }; | 34973 | }; |
35685 | diff -urNp linux-2.6.29.6/include/linux/binfmts.h linux-2.6.29.6/include/linux/binfmts.h | 34974 | diff -urNp linux-2.6.30.4/include/linux/binfmts.h linux-2.6.30.4/include/linux/binfmts.h |
35686 | --- linux-2.6.29.6/include/linux/binfmts.h 2009-07-02 19:41:20.000000000 -0400 | 34975 | --- linux-2.6.30.4/include/linux/binfmts.h 2009-07-24 17:47:51.000000000 -0400 |
35687 | +++ linux-2.6.29.6/include/linux/binfmts.h 2009-07-23 17:34:32.186791450 -0400 | 34976 | +++ linux-2.6.30.4/include/linux/binfmts.h 2009-07-30 09:48:10.107682096 -0400 |
35688 | @@ -79,6 +79,7 @@ struct linux_binfmt { | 34977 | @@ -78,6 +78,7 @@ struct linux_binfmt { |
35689 | int (*load_binary)(struct linux_binprm *, struct pt_regs * regs); | 34978 | int (*load_binary)(struct linux_binprm *, struct pt_regs * regs); |
35690 | int (*load_shlib)(struct file *); | 34979 | int (*load_shlib)(struct file *); |
35691 | int (*core_dump)(long signr, struct pt_regs *regs, struct file *file, unsigned long limit); | 34980 | int (*core_dump)(long signr, struct pt_regs *regs, struct file *file, unsigned long limit); |
@@ -35693,9 +34982,9 @@ diff -urNp linux-2.6.29.6/include/linux/binfmts.h linux-2.6.29.6/include/linux/b | |||
35693 | unsigned long min_coredump; /* minimal dump size */ | 34982 | unsigned long min_coredump; /* minimal dump size */ |
35694 | int hasvdso; | 34983 | int hasvdso; |
35695 | }; | 34984 | }; |
35696 | diff -urNp linux-2.6.29.6/include/linux/cache.h linux-2.6.29.6/include/linux/cache.h | 34985 | diff -urNp linux-2.6.30.4/include/linux/cache.h linux-2.6.30.4/include/linux/cache.h |
35697 | --- linux-2.6.29.6/include/linux/cache.h 2009-07-02 19:41:20.000000000 -0400 | 34986 | --- linux-2.6.30.4/include/linux/cache.h 2009-07-24 17:47:51.000000000 -0400 |
35698 | +++ linux-2.6.29.6/include/linux/cache.h 2009-07-23 17:34:32.186791450 -0400 | 34987 | +++ linux-2.6.30.4/include/linux/cache.h 2009-07-30 09:48:10.107682096 -0400 |
35699 | @@ -16,6 +16,10 @@ | 34988 | @@ -16,6 +16,10 @@ |
35700 | #define __read_mostly | 34989 | #define __read_mostly |
35701 | #endif | 34990 | #endif |
@@ -35707,9 +34996,9 @@ diff -urNp linux-2.6.29.6/include/linux/cache.h linux-2.6.29.6/include/linux/cac | |||
35707 | #ifndef ____cacheline_aligned | 34996 | #ifndef ____cacheline_aligned |
35708 | #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES))) | 34997 | #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES))) |
35709 | #endif | 34998 | #endif |
35710 | diff -urNp linux-2.6.29.6/include/linux/capability.h linux-2.6.29.6/include/linux/capability.h | 34999 | diff -urNp linux-2.6.30.4/include/linux/capability.h linux-2.6.30.4/include/linux/capability.h |
35711 | --- linux-2.6.29.6/include/linux/capability.h 2009-07-02 19:41:20.000000000 -0400 | 35000 | --- linux-2.6.30.4/include/linux/capability.h 2009-07-24 17:47:51.000000000 -0400 |
35712 | +++ linux-2.6.29.6/include/linux/capability.h 2009-07-23 17:34:32.186791450 -0400 | 35001 | +++ linux-2.6.30.4/include/linux/capability.h 2009-07-30 11:10:49.423442785 -0400 |
35713 | @@ -563,6 +563,7 @@ extern const kernel_cap_t __cap_init_eff | 35002 | @@ -563,6 +563,7 @@ extern const kernel_cap_t __cap_init_eff |
35714 | (security_real_capable_noaudit((t), (cap)) == 0) | 35003 | (security_real_capable_noaudit((t), (cap)) == 0) |
35715 | 35004 | ||
@@ -35718,10 +35007,10 @@ diff -urNp linux-2.6.29.6/include/linux/capability.h linux-2.6.29.6/include/linu | |||
35718 | 35007 | ||
35719 | /* audit system wants to get cap info from files as well */ | 35008 | /* audit system wants to get cap info from files as well */ |
35720 | struct dentry; | 35009 | struct dentry; |
35721 | diff -urNp linux-2.6.29.6/include/linux/cgroup.h linux-2.6.29.6/include/linux/cgroup.h | 35010 | diff -urNp linux-2.6.30.4/include/linux/cgroup.h linux-2.6.30.4/include/linux/cgroup.h |
35722 | --- linux-2.6.29.6/include/linux/cgroup.h 2009-07-02 19:41:20.000000000 -0400 | 35011 | --- linux-2.6.30.4/include/linux/cgroup.h 2009-07-24 17:47:51.000000000 -0400 |
35723 | +++ linux-2.6.29.6/include/linux/cgroup.h 2009-07-23 18:40:28.658648615 -0400 | 35012 | +++ linux-2.6.30.4/include/linux/cgroup.h 2009-07-30 09:48:10.107682096 -0400 |
35724 | @@ -35,7 +35,7 @@ extern void cgroup_exit(struct task_stru | 35013 | @@ -37,7 +37,7 @@ extern void cgroup_exit(struct task_stru |
35725 | extern int cgroupstats_build(struct cgroupstats *stats, | 35014 | extern int cgroupstats_build(struct cgroupstats *stats, |
35726 | struct dentry *dentry); | 35015 | struct dentry *dentry); |
35727 | 35016 | ||
@@ -35730,9 +35019,9 @@ diff -urNp linux-2.6.29.6/include/linux/cgroup.h linux-2.6.29.6/include/linux/cg | |||
35730 | 35019 | ||
35731 | /* Define the enumeration of all cgroup subsystems */ | 35020 | /* Define the enumeration of all cgroup subsystems */ |
35732 | #define SUBSYS(_x) _x ## _subsys_id, | 35021 | #define SUBSYS(_x) _x ## _subsys_id, |
35733 | diff -urNp linux-2.6.29.6/include/linux/cpumask.h linux-2.6.29.6/include/linux/cpumask.h | 35022 | diff -urNp linux-2.6.30.4/include/linux/cpumask.h linux-2.6.30.4/include/linux/cpumask.h |
35734 | --- linux-2.6.29.6/include/linux/cpumask.h 2009-07-02 19:41:20.000000000 -0400 | 35023 | --- linux-2.6.30.4/include/linux/cpumask.h 2009-07-24 17:47:51.000000000 -0400 |
35735 | +++ linux-2.6.29.6/include/linux/cpumask.h 2009-07-23 17:34:32.187810630 -0400 | 35024 | +++ linux-2.6.30.4/include/linux/cpumask.h 2009-07-30 09:48:10.109008378 -0400 |
35736 | @@ -142,7 +142,6 @@ | 35025 | @@ -142,7 +142,6 @@ |
35737 | #include <linux/bitmap.h> | 35026 | #include <linux/bitmap.h> |
35738 | 35027 | ||
@@ -35741,21 +35030,9 @@ diff -urNp linux-2.6.29.6/include/linux/cpumask.h linux-2.6.29.6/include/linux/c | |||
35741 | 35030 | ||
35742 | #ifndef CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS | 35031 | #ifndef CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS |
35743 | #define cpu_set(cpu, dst) __cpu_set((cpu), &(dst)) | 35032 | #define cpu_set(cpu, dst) __cpu_set((cpu), &(dst)) |
35744 | diff -urNp linux-2.6.29.6/include/linux/dcache.h linux-2.6.29.6/include/linux/dcache.h | 35033 | diff -urNp linux-2.6.30.4/include/linux/elf.h linux-2.6.30.4/include/linux/elf.h |
35745 | --- linux-2.6.29.6/include/linux/dcache.h 2009-07-02 19:41:20.000000000 -0400 | 35034 | --- linux-2.6.30.4/include/linux/elf.h 2009-07-24 17:47:51.000000000 -0400 |
35746 | +++ linux-2.6.29.6/include/linux/dcache.h 2009-07-23 18:40:28.672304095 -0400 | 35035 | +++ linux-2.6.30.4/include/linux/elf.h 2009-07-30 09:48:10.109008378 -0400 |
35747 | @@ -112,7 +112,7 @@ struct dentry { | ||
35748 | struct list_head d_subdirs; /* our children */ | ||
35749 | struct list_head d_alias; /* inode alias list */ | ||
35750 | unsigned long d_time; /* used by d_revalidate */ | ||
35751 | - struct dentry_operations *d_op; | ||
35752 | + const struct dentry_operations *d_op; | ||
35753 | struct super_block *d_sb; /* The root of the dentry tree */ | ||
35754 | void *d_fsdata; /* fs-specific data */ | ||
35755 | |||
35756 | diff -urNp linux-2.6.29.6/include/linux/elf.h linux-2.6.29.6/include/linux/elf.h | ||
35757 | --- linux-2.6.29.6/include/linux/elf.h 2009-07-02 19:41:20.000000000 -0400 | ||
35758 | +++ linux-2.6.29.6/include/linux/elf.h 2009-07-23 17:34:32.187810630 -0400 | ||
35759 | @@ -49,6 +49,17 @@ typedef __s64 Elf64_Sxword; | 35036 | @@ -49,6 +49,17 @@ typedef __s64 Elf64_Sxword; |
35760 | #define PT_GNU_EH_FRAME 0x6474e550 | 35037 | #define PT_GNU_EH_FRAME 0x6474e550 |
35761 | 35038 | ||
@@ -35828,10 +35105,21 @@ diff -urNp linux-2.6.29.6/include/linux/elf.h linux-2.6.29.6/include/linux/elf.h | |||
35828 | 35105 | ||
35829 | #endif | 35106 | #endif |
35830 | 35107 | ||
35831 | diff -urNp linux-2.6.29.6/include/linux/fs.h linux-2.6.29.6/include/linux/fs.h | 35108 | diff -urNp linux-2.6.30.4/include/linux/fs.h linux-2.6.30.4/include/linux/fs.h |
35832 | --- linux-2.6.29.6/include/linux/fs.h 2009-07-02 19:41:20.000000000 -0400 | 35109 | --- linux-2.6.30.4/include/linux/fs.h 2009-07-24 17:47:51.000000000 -0400 |
35833 | +++ linux-2.6.29.6/include/linux/fs.h 2009-07-23 18:40:28.682280722 -0400 | 35110 | +++ linux-2.6.30.4/include/linux/fs.h 2009-08-01 14:57:12.341093728 -0400 |
35834 | @@ -2207,7 +2207,7 @@ static int __fops ## _open(struct inode | 35111 | @@ -87,6 +87,10 @@ struct inodes_stat_t { |
35112 | */ | ||
35113 | #define FMODE_NOCMTIME ((__force fmode_t)2048) | ||
35114 | |||
35115 | +/* Hack for grsec so as not to require read permission simply to execute | ||
35116 | + a binary */ | ||
35117 | +#define FMODE_GREXEC ((__force fmode_t)8192) | ||
35118 | + | ||
35119 | /* | ||
35120 | * The below are the various read and write types that we support. Some of | ||
35121 | * them include behavioral modifiers that send information down to the | ||
35122 | @@ -2423,7 +2427,7 @@ static int __fops ## _open(struct inode | ||
35835 | __simple_attr_check_format(__fmt, 0ull); \ | 35123 | __simple_attr_check_format(__fmt, 0ull); \ |
35836 | return simple_attr_open(inode, file, __get, __set, __fmt); \ | 35124 | return simple_attr_open(inode, file, __get, __set, __fmt); \ |
35837 | } \ | 35125 | } \ |
@@ -35840,9 +35128,9 @@ diff -urNp linux-2.6.29.6/include/linux/fs.h linux-2.6.29.6/include/linux/fs.h | |||
35840 | .owner = THIS_MODULE, \ | 35128 | .owner = THIS_MODULE, \ |
35841 | .open = __fops ## _open, \ | 35129 | .open = __fops ## _open, \ |
35842 | .release = simple_attr_release, \ | 35130 | .release = simple_attr_release, \ |
35843 | diff -urNp linux-2.6.29.6/include/linux/fs_struct.h linux-2.6.29.6/include/linux/fs_struct.h | 35131 | diff -urNp linux-2.6.30.4/include/linux/fs_struct.h linux-2.6.30.4/include/linux/fs_struct.h |
35844 | --- linux-2.6.29.6/include/linux/fs_struct.h 2009-07-02 19:41:20.000000000 -0400 | 35132 | --- linux-2.6.30.4/include/linux/fs_struct.h 2009-07-24 17:47:51.000000000 -0400 |
35845 | +++ linux-2.6.29.6/include/linux/fs_struct.h 2009-07-23 17:34:32.187810630 -0400 | 35133 | +++ linux-2.6.30.4/include/linux/fs_struct.h 2009-07-30 09:48:10.109883773 -0400 |
35846 | @@ -4,7 +4,7 @@ | 35134 | @@ -4,7 +4,7 @@ |
35847 | #include <linux/path.h> | 35135 | #include <linux/path.h> |
35848 | 35136 | ||
@@ -35852,9 +35140,9 @@ diff -urNp linux-2.6.29.6/include/linux/fs_struct.h linux-2.6.29.6/include/linux | |||
35852 | rwlock_t lock; | 35140 | rwlock_t lock; |
35853 | int umask; | 35141 | int umask; |
35854 | int in_exec; | 35142 | int in_exec; |
35855 | diff -urNp linux-2.6.29.6/include/linux/genhd.h linux-2.6.29.6/include/linux/genhd.h | 35143 | diff -urNp linux-2.6.30.4/include/linux/genhd.h linux-2.6.30.4/include/linux/genhd.h |
35856 | --- linux-2.6.29.6/include/linux/genhd.h 2009-07-02 19:41:20.000000000 -0400 | 35144 | --- linux-2.6.30.4/include/linux/genhd.h 2009-07-24 17:47:51.000000000 -0400 |
35857 | +++ linux-2.6.29.6/include/linux/genhd.h 2009-07-23 17:34:32.188714513 -0400 | 35145 | +++ linux-2.6.30.4/include/linux/genhd.h 2009-07-30 09:48:10.109883773 -0400 |
35858 | @@ -159,7 +159,7 @@ struct gendisk { | 35146 | @@ -159,7 +159,7 @@ struct gendisk { |
35859 | 35147 | ||
35860 | struct timer_rand_state *random; | 35148 | struct timer_rand_state *random; |
@@ -35864,9 +35152,9 @@ diff -urNp linux-2.6.29.6/include/linux/genhd.h linux-2.6.29.6/include/linux/gen | |||
35864 | struct work_struct async_notify; | 35152 | struct work_struct async_notify; |
35865 | #ifdef CONFIG_BLK_DEV_INTEGRITY | 35153 | #ifdef CONFIG_BLK_DEV_INTEGRITY |
35866 | struct blk_integrity *integrity; | 35154 | struct blk_integrity *integrity; |
35867 | diff -urNp linux-2.6.29.6/include/linux/gracl.h linux-2.6.29.6/include/linux/gracl.h | 35155 | diff -urNp linux-2.6.30.4/include/linux/gracl.h linux-2.6.30.4/include/linux/gracl.h |
35868 | --- linux-2.6.29.6/include/linux/gracl.h 1969-12-31 19:00:00.000000000 -0500 | 35156 | --- linux-2.6.30.4/include/linux/gracl.h 1969-12-31 19:00:00.000000000 -0500 |
35869 | +++ linux-2.6.29.6/include/linux/gracl.h 2009-07-23 17:34:32.188714513 -0400 | 35157 | +++ linux-2.6.30.4/include/linux/gracl.h 2009-07-30 11:10:49.440849797 -0400 |
35870 | @@ -0,0 +1,318 @@ | 35158 | @@ -0,0 +1,318 @@ |
35871 | +#ifndef GR_ACL_H | 35159 | +#ifndef GR_ACL_H |
35872 | +#define GR_ACL_H | 35160 | +#define GR_ACL_H |
@@ -36186,9 +35474,9 @@ diff -urNp linux-2.6.29.6/include/linux/gracl.h linux-2.6.29.6/include/linux/gra | |||
36186 | + | 35474 | + |
36187 | +#endif | 35475 | +#endif |
36188 | + | 35476 | + |
36189 | diff -urNp linux-2.6.29.6/include/linux/gralloc.h linux-2.6.29.6/include/linux/gralloc.h | 35477 | diff -urNp linux-2.6.30.4/include/linux/gralloc.h linux-2.6.30.4/include/linux/gralloc.h |
36190 | --- linux-2.6.29.6/include/linux/gralloc.h 1969-12-31 19:00:00.000000000 -0500 | 35478 | --- linux-2.6.30.4/include/linux/gralloc.h 1969-12-31 19:00:00.000000000 -0500 |
36191 | +++ linux-2.6.29.6/include/linux/gralloc.h 2009-07-23 17:34:32.188714513 -0400 | 35479 | +++ linux-2.6.30.4/include/linux/gralloc.h 2009-07-30 11:10:49.444477054 -0400 |
36192 | @@ -0,0 +1,9 @@ | 35480 | @@ -0,0 +1,9 @@ |
36193 | +#ifndef __GRALLOC_H | 35481 | +#ifndef __GRALLOC_H |
36194 | +#define __GRALLOC_H | 35482 | +#define __GRALLOC_H |
@@ -36199,9 +35487,9 @@ diff -urNp linux-2.6.29.6/include/linux/gralloc.h linux-2.6.29.6/include/linux/g | |||
36199 | +void *acl_alloc_num(unsigned long num, unsigned long len); | 35487 | +void *acl_alloc_num(unsigned long num, unsigned long len); |
36200 | + | 35488 | + |
36201 | +#endif | 35489 | +#endif |
36202 | diff -urNp linux-2.6.29.6/include/linux/grdefs.h linux-2.6.29.6/include/linux/grdefs.h | 35490 | diff -urNp linux-2.6.30.4/include/linux/grdefs.h linux-2.6.30.4/include/linux/grdefs.h |
36203 | --- linux-2.6.29.6/include/linux/grdefs.h 1969-12-31 19:00:00.000000000 -0500 | 35491 | --- linux-2.6.30.4/include/linux/grdefs.h 1969-12-31 19:00:00.000000000 -0500 |
36204 | +++ linux-2.6.29.6/include/linux/grdefs.h 2009-07-23 17:34:32.188714513 -0400 | 35492 | +++ linux-2.6.30.4/include/linux/grdefs.h 2009-07-30 11:10:49.454486092 -0400 |
36205 | @@ -0,0 +1,136 @@ | 35493 | @@ -0,0 +1,136 @@ |
36206 | +#ifndef GRDEFS_H | 35494 | +#ifndef GRDEFS_H |
36207 | +#define GRDEFS_H | 35495 | +#define GRDEFS_H |
@@ -36339,9 +35627,9 @@ diff -urNp linux-2.6.29.6/include/linux/grdefs.h linux-2.6.29.6/include/linux/gr | |||
36339 | +}; | 35627 | +}; |
36340 | + | 35628 | + |
36341 | +#endif | 35629 | +#endif |
36342 | diff -urNp linux-2.6.29.6/include/linux/grinternal.h linux-2.6.29.6/include/linux/grinternal.h | 35630 | diff -urNp linux-2.6.30.4/include/linux/grinternal.h linux-2.6.30.4/include/linux/grinternal.h |
36343 | --- linux-2.6.29.6/include/linux/grinternal.h 1969-12-31 19:00:00.000000000 -0500 | 35631 | --- linux-2.6.30.4/include/linux/grinternal.h 1969-12-31 19:00:00.000000000 -0500 |
36344 | +++ linux-2.6.29.6/include/linux/grinternal.h 2009-07-23 17:34:32.188714513 -0400 | 35632 | +++ linux-2.6.30.4/include/linux/grinternal.h 2009-07-30 11:10:49.454486092 -0400 |
36345 | @@ -0,0 +1,211 @@ | 35633 | @@ -0,0 +1,211 @@ |
36346 | +#ifndef __GRINTERNAL_H | 35634 | +#ifndef __GRINTERNAL_H |
36347 | +#define __GRINTERNAL_H | 35635 | +#define __GRINTERNAL_H |
@@ -36554,9 +35842,9 @@ diff -urNp linux-2.6.29.6/include/linux/grinternal.h linux-2.6.29.6/include/linu | |||
36554 | +#endif | 35842 | +#endif |
36555 | + | 35843 | + |
36556 | +#endif | 35844 | +#endif |
36557 | diff -urNp linux-2.6.29.6/include/linux/grmsg.h linux-2.6.29.6/include/linux/grmsg.h | 35845 | diff -urNp linux-2.6.30.4/include/linux/grmsg.h linux-2.6.30.4/include/linux/grmsg.h |
36558 | --- linux-2.6.29.6/include/linux/grmsg.h 1969-12-31 19:00:00.000000000 -0500 | 35846 | --- linux-2.6.30.4/include/linux/grmsg.h 1969-12-31 19:00:00.000000000 -0500 |
36559 | +++ linux-2.6.29.6/include/linux/grmsg.h 2009-07-23 17:34:32.188714513 -0400 | 35847 | +++ linux-2.6.30.4/include/linux/grmsg.h 2009-07-30 11:10:49.454486092 -0400 |
36560 | @@ -0,0 +1,108 @@ | 35848 | @@ -0,0 +1,108 @@ |
36561 | +#define DEFAULTSECMSG "%.256s[%.16s:%d] uid/euid:%u/%u gid/egid:%u/%u, parent %.256s[%.16s:%d] uid/euid:%u/%u gid/egid:%u/%u" | 35849 | +#define DEFAULTSECMSG "%.256s[%.16s:%d] uid/euid:%u/%u gid/egid:%u/%u, parent %.256s[%.16s:%d] uid/euid:%u/%u gid/egid:%u/%u" |
36562 | +#define GR_ACL_PROCACCT_MSG "%.256s[%.16s:%d] IP:%u.%u.%u.%u TTY:%.64s uid/euid:%u/%u gid/egid:%u/%u run time:[%ud %uh %um %us] cpu time:[%ud %uh %um %us] %s with exit code %ld, parent %.256s[%.16s:%d] IP:%u.%u.%u.%u TTY:%.64s uid/euid:%u/%u gid/egid:%u/%u" | 35850 | +#define GR_ACL_PROCACCT_MSG "%.256s[%.16s:%d] IP:%u.%u.%u.%u TTY:%.64s uid/euid:%u/%u gid/egid:%u/%u run time:[%ud %uh %um %us] cpu time:[%ud %uh %um %us] %s with exit code %ld, parent %.256s[%.16s:%d] IP:%u.%u.%u.%u TTY:%.64s uid/euid:%u/%u gid/egid:%u/%u" |
@@ -36666,13 +35954,14 @@ diff -urNp linux-2.6.29.6/include/linux/grmsg.h linux-2.6.29.6/include/linux/grm | |||
36666 | +#define GR_SHMR_AUDIT_MSG "shared memory of uid:%u euid:%u removed by " | 35954 | +#define GR_SHMR_AUDIT_MSG "shared memory of uid:%u euid:%u removed by " |
36667 | +#define GR_RESOURCE_MSG "denied resource overstep by requesting %lu for %.16s against limit %lu for " | 35955 | +#define GR_RESOURCE_MSG "denied resource overstep by requesting %lu for %.16s against limit %lu for " |
36668 | +#define GR_TEXTREL_AUDIT_MSG "text relocation in %s, VMA:0x%08lx 0x%08lx by " | 35956 | +#define GR_TEXTREL_AUDIT_MSG "text relocation in %s, VMA:0x%08lx 0x%08lx by " |
36669 | diff -urNp linux-2.6.29.6/include/linux/grsecurity.h linux-2.6.29.6/include/linux/grsecurity.h | 35957 | diff -urNp linux-2.6.30.4/include/linux/grsecurity.h linux-2.6.30.4/include/linux/grsecurity.h |
36670 | --- linux-2.6.29.6/include/linux/grsecurity.h 1969-12-31 19:00:00.000000000 -0500 | 35958 | --- linux-2.6.30.4/include/linux/grsecurity.h 1969-12-31 19:00:00.000000000 -0500 |
36671 | +++ linux-2.6.29.6/include/linux/grsecurity.h 2009-07-23 17:34:32.189932774 -0400 | 35959 | +++ linux-2.6.30.4/include/linux/grsecurity.h 2009-07-30 11:54:10.952982697 -0400 |
36672 | @@ -0,0 +1,201 @@ | 35960 | @@ -0,0 +1,202 @@ |
36673 | +#ifndef GR_SECURITY_H | 35961 | +#ifndef GR_SECURITY_H |
36674 | +#define GR_SECURITY_H | 35962 | +#define GR_SECURITY_H |
36675 | +#include <linux/fs.h> | 35963 | +#include <linux/fs.h> |
35964 | +#include <linux/fs_struct.h> | ||
36676 | +#include <linux/binfmts.h> | 35965 | +#include <linux/binfmts.h> |
36677 | +#include <linux/gracl.h> | 35966 | +#include <linux/gracl.h> |
36678 | + | 35967 | + |
@@ -36871,10 +36160,10 @@ diff -urNp linux-2.6.29.6/include/linux/grsecurity.h linux-2.6.29.6/include/linu | |||
36871 | +#endif | 36160 | +#endif |
36872 | + | 36161 | + |
36873 | +#endif | 36162 | +#endif |
36874 | diff -urNp linux-2.6.29.6/include/linux/highmem.h linux-2.6.29.6/include/linux/highmem.h | 36163 | diff -urNp linux-2.6.30.4/include/linux/highmem.h linux-2.6.30.4/include/linux/highmem.h |
36875 | --- linux-2.6.29.6/include/linux/highmem.h 2009-07-02 19:41:20.000000000 -0400 | 36164 | --- linux-2.6.30.4/include/linux/highmem.h 2009-07-24 17:47:51.000000000 -0400 |
36876 | +++ linux-2.6.29.6/include/linux/highmem.h 2009-07-23 17:34:32.189932774 -0400 | 36165 | +++ linux-2.6.30.4/include/linux/highmem.h 2009-07-30 09:48:10.109883773 -0400 |
36877 | @@ -124,6 +124,18 @@ static inline void clear_highpage(struct | 36166 | @@ -135,6 +135,18 @@ static inline void clear_highpage(struct |
36878 | kunmap_atomic(kaddr, KM_USER0); | 36167 | kunmap_atomic(kaddr, KM_USER0); |
36879 | } | 36168 | } |
36880 | 36169 | ||
@@ -36893,9 +36182,9 @@ diff -urNp linux-2.6.29.6/include/linux/highmem.h linux-2.6.29.6/include/linux/h | |||
36893 | static inline void zero_user_segments(struct page *page, | 36182 | static inline void zero_user_segments(struct page *page, |
36894 | unsigned start1, unsigned end1, | 36183 | unsigned start1, unsigned end1, |
36895 | unsigned start2, unsigned end2) | 36184 | unsigned start2, unsigned end2) |
36896 | diff -urNp linux-2.6.29.6/include/linux/hugetlb.h linux-2.6.29.6/include/linux/hugetlb.h | 36185 | diff -urNp linux-2.6.30.4/include/linux/hugetlb.h linux-2.6.30.4/include/linux/hugetlb.h |
36897 | --- linux-2.6.29.6/include/linux/hugetlb.h 2009-07-02 19:41:20.000000000 -0400 | 36186 | --- linux-2.6.30.4/include/linux/hugetlb.h 2009-07-24 17:47:51.000000000 -0400 |
36898 | +++ linux-2.6.29.6/include/linux/hugetlb.h 2009-07-23 18:40:28.693352210 -0400 | 36187 | +++ linux-2.6.30.4/include/linux/hugetlb.h 2009-07-30 09:48:10.109883773 -0400 |
36899 | @@ -138,7 +138,7 @@ static inline struct hugetlbfs_sb_info * | 36188 | @@ -138,7 +138,7 @@ static inline struct hugetlbfs_sb_info * |
36900 | } | 36189 | } |
36901 | 36190 | ||
@@ -36905,9 +36194,9 @@ diff -urNp linux-2.6.29.6/include/linux/hugetlb.h linux-2.6.29.6/include/linux/h | |||
36905 | struct file *hugetlb_file_setup(const char *name, size_t, int); | 36194 | struct file *hugetlb_file_setup(const char *name, size_t, int); |
36906 | int hugetlb_get_quota(struct address_space *mapping, long delta); | 36195 | int hugetlb_get_quota(struct address_space *mapping, long delta); |
36907 | void hugetlb_put_quota(struct address_space *mapping, long delta); | 36196 | void hugetlb_put_quota(struct address_space *mapping, long delta); |
36908 | diff -urNp linux-2.6.29.6/include/linux/jbd2.h linux-2.6.29.6/include/linux/jbd2.h | 36197 | diff -urNp linux-2.6.30.4/include/linux/jbd2.h linux-2.6.30.4/include/linux/jbd2.h |
36909 | --- linux-2.6.29.6/include/linux/jbd2.h 2009-07-02 19:41:20.000000000 -0400 | 36198 | --- linux-2.6.30.4/include/linux/jbd2.h 2009-07-24 17:47:51.000000000 -0400 |
36910 | +++ linux-2.6.29.6/include/linux/jbd2.h 2009-07-23 17:34:32.189932774 -0400 | 36199 | +++ linux-2.6.30.4/include/linux/jbd2.h 2009-07-30 09:48:10.111182036 -0400 |
36911 | @@ -66,7 +66,7 @@ extern u8 jbd2_journal_enable_debug; | 36200 | @@ -66,7 +66,7 @@ extern u8 jbd2_journal_enable_debug; |
36912 | } \ | 36201 | } \ |
36913 | } while (0) | 36202 | } while (0) |
@@ -36917,9 +36206,9 @@ diff -urNp linux-2.6.29.6/include/linux/jbd2.h linux-2.6.29.6/include/linux/jbd2 | |||
36917 | #endif | 36206 | #endif |
36918 | 36207 | ||
36919 | static inline void *jbd2_alloc(size_t size, gfp_t flags) | 36208 | static inline void *jbd2_alloc(size_t size, gfp_t flags) |
36920 | diff -urNp linux-2.6.29.6/include/linux/jbd.h linux-2.6.29.6/include/linux/jbd.h | 36209 | diff -urNp linux-2.6.30.4/include/linux/jbd.h linux-2.6.30.4/include/linux/jbd.h |
36921 | --- linux-2.6.29.6/include/linux/jbd.h 2009-07-02 19:41:20.000000000 -0400 | 36210 | --- linux-2.6.30.4/include/linux/jbd.h 2009-07-24 17:47:51.000000000 -0400 |
36922 | +++ linux-2.6.29.6/include/linux/jbd.h 2009-07-23 17:34:32.189932774 -0400 | 36211 | +++ linux-2.6.30.4/include/linux/jbd.h 2009-07-30 09:48:10.111182036 -0400 |
36923 | @@ -66,7 +66,7 @@ extern u8 journal_enable_debug; | 36212 | @@ -66,7 +66,7 @@ extern u8 journal_enable_debug; |
36924 | } \ | 36213 | } \ |
36925 | } while (0) | 36214 | } while (0) |
@@ -36929,10 +36218,10 @@ diff -urNp linux-2.6.29.6/include/linux/jbd.h linux-2.6.29.6/include/linux/jbd.h | |||
36929 | #endif | 36218 | #endif |
36930 | 36219 | ||
36931 | static inline void *jbd_alloc(size_t size, gfp_t flags) | 36220 | static inline void *jbd_alloc(size_t size, gfp_t flags) |
36932 | diff -urNp linux-2.6.29.6/include/linux/kvm_host.h linux-2.6.29.6/include/linux/kvm_host.h | 36221 | diff -urNp linux-2.6.30.4/include/linux/kvm_host.h linux-2.6.30.4/include/linux/kvm_host.h |
36933 | --- linux-2.6.29.6/include/linux/kvm_host.h 2009-07-02 19:41:20.000000000 -0400 | 36222 | --- linux-2.6.30.4/include/linux/kvm_host.h 2009-07-24 17:47:51.000000000 -0400 |
36934 | +++ linux-2.6.29.6/include/linux/kvm_host.h 2009-07-23 17:34:32.189932774 -0400 | 36223 | +++ linux-2.6.30.4/include/linux/kvm_host.h 2009-07-30 09:48:10.112173628 -0400 |
36935 | @@ -155,7 +155,7 @@ void kvm_vcpu_uninit(struct kvm_vcpu *vc | 36224 | @@ -172,7 +172,7 @@ void kvm_vcpu_uninit(struct kvm_vcpu *vc |
36936 | void vcpu_load(struct kvm_vcpu *vcpu); | 36225 | void vcpu_load(struct kvm_vcpu *vcpu); |
36937 | void vcpu_put(struct kvm_vcpu *vcpu); | 36226 | void vcpu_put(struct kvm_vcpu *vcpu); |
36938 | 36227 | ||
@@ -36941,8 +36230,8 @@ diff -urNp linux-2.6.29.6/include/linux/kvm_host.h linux-2.6.29.6/include/linux/ | |||
36941 | struct module *module); | 36230 | struct module *module); |
36942 | void kvm_exit(void); | 36231 | void kvm_exit(void); |
36943 | 36232 | ||
36944 | @@ -263,7 +263,7 @@ int kvm_arch_vcpu_ioctl_debug_guest(stru | 36233 | @@ -279,7 +279,7 @@ int kvm_arch_vcpu_ioctl_set_guest_debug( |
36945 | struct kvm_debug_guest *dbg); | 36234 | struct kvm_guest_debug *dbg); |
36946 | int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run); | 36235 | int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run); |
36947 | 36236 | ||
36948 | -int kvm_arch_init(void *opaque); | 36237 | -int kvm_arch_init(void *opaque); |
@@ -36950,9 +36239,9 @@ diff -urNp linux-2.6.29.6/include/linux/kvm_host.h linux-2.6.29.6/include/linux/ | |||
36950 | void kvm_arch_exit(void); | 36239 | void kvm_arch_exit(void); |
36951 | 36240 | ||
36952 | int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu); | 36241 | int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu); |
36953 | diff -urNp linux-2.6.29.6/include/linux/libata.h linux-2.6.29.6/include/linux/libata.h | 36242 | diff -urNp linux-2.6.30.4/include/linux/libata.h linux-2.6.30.4/include/linux/libata.h |
36954 | --- linux-2.6.29.6/include/linux/libata.h 2009-07-02 19:41:20.000000000 -0400 | 36243 | --- linux-2.6.30.4/include/linux/libata.h 2009-07-24 17:47:51.000000000 -0400 |
36955 | +++ linux-2.6.29.6/include/linux/libata.h 2009-07-23 17:34:32.190921738 -0400 | 36244 | +++ linux-2.6.30.4/include/linux/libata.h 2009-07-30 09:48:10.113041063 -0400 |
36956 | @@ -64,11 +64,11 @@ | 36245 | @@ -64,11 +64,11 @@ |
36957 | #ifdef ATA_VERBOSE_DEBUG | 36246 | #ifdef ATA_VERBOSE_DEBUG |
36958 | #define VPRINTK(fmt, args...) printk(KERN_ERR "%s: " fmt, __func__, ## args) | 36247 | #define VPRINTK(fmt, args...) printk(KERN_ERR "%s: " fmt, __func__, ## args) |
@@ -36968,9 +36257,9 @@ diff -urNp linux-2.6.29.6/include/linux/libata.h linux-2.6.29.6/include/linux/li | |||
36968 | #endif /* ATA_DEBUG */ | 36257 | #endif /* ATA_DEBUG */ |
36969 | 36258 | ||
36970 | #define BPRINTK(fmt, args...) if (ap->flags & ATA_FLAG_DEBUGMSG) printk(KERN_ERR "%s: " fmt, __func__, ## args) | 36259 | #define BPRINTK(fmt, args...) if (ap->flags & ATA_FLAG_DEBUGMSG) printk(KERN_ERR "%s: " fmt, __func__, ## args) |
36971 | diff -urNp linux-2.6.29.6/include/linux/mm.h linux-2.6.29.6/include/linux/mm.h | 36260 | diff -urNp linux-2.6.30.4/include/linux/mm.h linux-2.6.30.4/include/linux/mm.h |
36972 | --- linux-2.6.29.6/include/linux/mm.h 2009-07-02 19:41:20.000000000 -0400 | 36261 | --- linux-2.6.30.4/include/linux/mm.h 2009-07-24 17:47:51.000000000 -0400 |
36973 | +++ linux-2.6.29.6/include/linux/mm.h 2009-07-23 17:34:32.190921738 -0400 | 36262 | +++ linux-2.6.30.4/include/linux/mm.h 2009-07-30 09:48:10.113041063 -0400 |
36974 | @@ -39,6 +39,7 @@ extern unsigned long mmap_min_addr; | 36263 | @@ -39,6 +39,7 @@ extern unsigned long mmap_min_addr; |
36975 | #include <asm/page.h> | 36264 | #include <asm/page.h> |
36976 | #include <asm/pgtable.h> | 36265 | #include <asm/pgtable.h> |
@@ -36979,18 +36268,18 @@ diff -urNp linux-2.6.29.6/include/linux/mm.h linux-2.6.29.6/include/linux/mm.h | |||
36979 | 36268 | ||
36980 | #define nth_page(page,n) pfn_to_page(page_to_pfn((page)) + (n)) | 36269 | #define nth_page(page,n) pfn_to_page(page_to_pfn((page)) + (n)) |
36981 | 36270 | ||
36982 | @@ -105,6 +106,10 @@ extern unsigned int kobjsize(const void | 36271 | @@ -106,6 +107,10 @@ extern unsigned int kobjsize(const void |
36983 | #define VM_MIXEDMAP 0x10000000 /* Can contain "struct page" and pure PFN pages */ | ||
36984 | #define VM_SAO 0x20000000 /* Strong Access Ordering (powerpc) */ | 36272 | #define VM_SAO 0x20000000 /* Strong Access Ordering (powerpc) */ |
36273 | #define VM_PFN_AT_MMAP 0x40000000 /* PFNMAP vma that is fully mapped at mmap time */ | ||
36985 | 36274 | ||
36986 | +#ifdef CONFIG_PAX_PAGEEXEC | 36275 | +#ifdef CONFIG_PAX_PAGEEXEC |
36987 | +#define VM_PAGEEXEC 0x40000000 /* vma->vm_page_prot needs special handling */ | 36276 | +#define VM_PAGEEXEC 0x80000000 /* vma->vm_page_prot needs special handling */ |
36988 | +#endif | 36277 | +#endif |
36989 | + | 36278 | + |
36990 | #ifndef VM_STACK_DEFAULT_FLAGS /* arch can override this */ | 36279 | #ifndef VM_STACK_DEFAULT_FLAGS /* arch can override this */ |
36991 | #define VM_STACK_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS | 36280 | #define VM_STACK_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS |
36992 | #endif | 36281 | #endif |
36993 | @@ -899,6 +904,8 @@ struct shrinker { | 36282 | @@ -888,6 +893,8 @@ struct shrinker { |
36994 | extern void register_shrinker(struct shrinker *); | 36283 | extern void register_shrinker(struct shrinker *); |
36995 | extern void unregister_shrinker(struct shrinker *); | 36284 | extern void unregister_shrinker(struct shrinker *); |
36996 | 36285 | ||
@@ -36999,7 +36288,7 @@ diff -urNp linux-2.6.29.6/include/linux/mm.h linux-2.6.29.6/include/linux/mm.h | |||
36999 | int vma_wants_writenotify(struct vm_area_struct *vma); | 36288 | int vma_wants_writenotify(struct vm_area_struct *vma); |
37000 | 36289 | ||
37001 | extern pte_t *get_locked_pte(struct mm_struct *mm, unsigned long addr, spinlock_t **ptl); | 36290 | extern pte_t *get_locked_pte(struct mm_struct *mm, unsigned long addr, spinlock_t **ptl); |
37002 | @@ -1170,6 +1177,7 @@ out: | 36291 | @@ -1159,6 +1166,7 @@ out: |
37003 | } | 36292 | } |
37004 | 36293 | ||
37005 | extern int do_munmap(struct mm_struct *, unsigned long, size_t); | 36294 | extern int do_munmap(struct mm_struct *, unsigned long, size_t); |
@@ -37007,7 +36296,7 @@ diff -urNp linux-2.6.29.6/include/linux/mm.h linux-2.6.29.6/include/linux/mm.h | |||
37007 | 36296 | ||
37008 | extern unsigned long do_brk(unsigned long, unsigned long); | 36297 | extern unsigned long do_brk(unsigned long, unsigned long); |
37009 | 36298 | ||
37010 | @@ -1223,6 +1231,10 @@ extern struct vm_area_struct * find_vma( | 36299 | @@ -1212,6 +1220,10 @@ extern struct vm_area_struct * find_vma( |
37011 | extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr, | 36300 | extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr, |
37012 | struct vm_area_struct **pprev); | 36301 | struct vm_area_struct **pprev); |
37013 | 36302 | ||
@@ -37018,7 +36307,7 @@ diff -urNp linux-2.6.29.6/include/linux/mm.h linux-2.6.29.6/include/linux/mm.h | |||
37018 | /* Look up the first VMA which intersects the interval start_addr..end_addr-1, | 36307 | /* Look up the first VMA which intersects the interval start_addr..end_addr-1, |
37019 | NULL if none. Assume start_addr < end_addr. */ | 36308 | NULL if none. Assume start_addr < end_addr. */ |
37020 | static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr) | 36309 | static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr) |
37021 | @@ -1239,7 +1251,6 @@ static inline unsigned long vma_pages(st | 36310 | @@ -1228,7 +1240,6 @@ static inline unsigned long vma_pages(st |
37022 | return (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; | 36311 | return (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; |
37023 | } | 36312 | } |
37024 | 36313 | ||
@@ -37026,7 +36315,7 @@ diff -urNp linux-2.6.29.6/include/linux/mm.h linux-2.6.29.6/include/linux/mm.h | |||
37026 | struct vm_area_struct *find_extend_vma(struct mm_struct *, unsigned long addr); | 36315 | struct vm_area_struct *find_extend_vma(struct mm_struct *, unsigned long addr); |
37027 | int remap_pfn_range(struct vm_area_struct *, unsigned long addr, | 36316 | int remap_pfn_range(struct vm_area_struct *, unsigned long addr, |
37028 | unsigned long pfn, unsigned long size, pgprot_t); | 36317 | unsigned long pfn, unsigned long size, pgprot_t); |
37029 | @@ -1331,5 +1342,12 @@ void vmemmap_populate_print_last(void); | 36318 | @@ -1320,5 +1331,12 @@ void vmemmap_populate_print_last(void); |
37030 | extern void *alloc_locked_buffer(size_t size); | 36319 | extern void *alloc_locked_buffer(size_t size); |
37031 | extern void free_locked_buffer(void *buffer, size_t size); | 36320 | extern void free_locked_buffer(void *buffer, size_t size); |
37032 | extern void release_locked_buffer(void *buffer, size_t size); | 36321 | extern void release_locked_buffer(void *buffer, size_t size); |
@@ -37039,10 +36328,10 @@ diff -urNp linux-2.6.29.6/include/linux/mm.h linux-2.6.29.6/include/linux/mm.h | |||
37039 | + | 36328 | + |
37040 | #endif /* __KERNEL__ */ | 36329 | #endif /* __KERNEL__ */ |
37041 | #endif /* _LINUX_MM_H */ | 36330 | #endif /* _LINUX_MM_H */ |
37042 | diff -urNp linux-2.6.29.6/include/linux/mm_types.h linux-2.6.29.6/include/linux/mm_types.h | 36331 | diff -urNp linux-2.6.30.4/include/linux/mm_types.h linux-2.6.30.4/include/linux/mm_types.h |
37043 | --- linux-2.6.29.6/include/linux/mm_types.h 2009-07-02 19:41:20.000000000 -0400 | 36332 | --- linux-2.6.30.4/include/linux/mm_types.h 2009-07-24 17:47:51.000000000 -0400 |
37044 | +++ linux-2.6.29.6/include/linux/mm_types.h 2009-07-23 18:40:27.472293076 -0400 | 36333 | +++ linux-2.6.30.4/include/linux/mm_types.h 2009-07-30 09:48:10.114071629 -0400 |
37045 | @@ -159,7 +159,7 @@ struct vm_area_struct { | 36334 | @@ -163,7 +163,7 @@ struct vm_area_struct { |
37046 | struct anon_vma *anon_vma; /* Serialized by page_table_lock */ | 36335 | struct anon_vma *anon_vma; /* Serialized by page_table_lock */ |
37047 | 36336 | ||
37048 | /* Function pointers to deal with this struct. */ | 36337 | /* Function pointers to deal with this struct. */ |
@@ -37051,7 +36340,7 @@ diff -urNp linux-2.6.29.6/include/linux/mm_types.h linux-2.6.29.6/include/linux/ | |||
37051 | 36340 | ||
37052 | /* Information about our backing store: */ | 36341 | /* Information about our backing store: */ |
37053 | unsigned long vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE | 36342 | unsigned long vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE |
37054 | @@ -174,6 +174,8 @@ struct vm_area_struct { | 36343 | @@ -178,6 +178,8 @@ struct vm_area_struct { |
37055 | #ifdef CONFIG_NUMA | 36344 | #ifdef CONFIG_NUMA |
37056 | struct mempolicy *vm_policy; /* NUMA policy for the VMA */ | 36345 | struct mempolicy *vm_policy; /* NUMA policy for the VMA */ |
37057 | #endif | 36346 | #endif |
@@ -37060,7 +36349,7 @@ diff -urNp linux-2.6.29.6/include/linux/mm_types.h linux-2.6.29.6/include/linux/ | |||
37060 | }; | 36349 | }; |
37061 | 36350 | ||
37062 | struct core_thread { | 36351 | struct core_thread { |
37063 | @@ -274,6 +276,24 @@ struct mm_struct { | 36352 | @@ -278,6 +280,24 @@ struct mm_struct { |
37064 | #ifdef CONFIG_MMU_NOTIFIER | 36353 | #ifdef CONFIG_MMU_NOTIFIER |
37065 | struct mmu_notifier_mm *mmu_notifier_mm; | 36354 | struct mmu_notifier_mm *mmu_notifier_mm; |
37066 | #endif | 36355 | #endif |
@@ -37085,10 +36374,10 @@ diff -urNp linux-2.6.29.6/include/linux/mm_types.h linux-2.6.29.6/include/linux/ | |||
37085 | }; | 36374 | }; |
37086 | 36375 | ||
37087 | /* Future-safe accessor for struct mm_struct's cpu_vm_mask. */ | 36376 | /* Future-safe accessor for struct mm_struct's cpu_vm_mask. */ |
37088 | diff -urNp linux-2.6.29.6/include/linux/module.h linux-2.6.29.6/include/linux/module.h | 36377 | diff -urNp linux-2.6.30.4/include/linux/module.h linux-2.6.30.4/include/linux/module.h |
37089 | --- linux-2.6.29.6/include/linux/module.h 2009-07-02 19:41:20.000000000 -0400 | 36378 | --- linux-2.6.30.4/include/linux/module.h 2009-07-24 17:47:51.000000000 -0400 |
37090 | +++ linux-2.6.29.6/include/linux/module.h 2009-07-23 17:34:32.191875265 -0400 | 36379 | +++ linux-2.6.30.4/include/linux/module.h 2009-07-30 09:48:10.114071629 -0400 |
37091 | @@ -278,16 +278,16 @@ struct module | 36380 | @@ -282,16 +282,16 @@ struct module |
37092 | int (*init)(void); | 36381 | int (*init)(void); |
37093 | 36382 | ||
37094 | /* If this is non-NULL, vfree after init() returns */ | 36383 | /* If this is non-NULL, vfree after init() returns */ |
@@ -37109,9 +36398,9 @@ diff -urNp linux-2.6.29.6/include/linux/module.h linux-2.6.29.6/include/linux/mo | |||
37109 | 36398 | ||
37110 | /* Arch-specific module values */ | 36399 | /* Arch-specific module values */ |
37111 | struct mod_arch_specific arch; | 36400 | struct mod_arch_specific arch; |
37112 | @@ -363,16 +363,46 @@ struct module *module_text_address(unsig | 36401 | @@ -374,16 +374,46 @@ struct module *__module_address(unsigned |
37113 | struct module *__module_text_address(unsigned long addr); | 36402 | bool is_module_address(unsigned long addr); |
37114 | int is_module_address(unsigned long addr); | 36403 | bool is_module_text_address(unsigned long addr); |
37115 | 36404 | ||
37116 | +static inline int within_module_range(unsigned long addr, void *start, unsigned long size) | 36405 | +static inline int within_module_range(unsigned long addr, void *start, unsigned long size) |
37117 | +{ | 36406 | +{ |
@@ -37159,8 +36448,8 @@ diff -urNp linux-2.6.29.6/include/linux/module.h linux-2.6.29.6/include/linux/mo | |||
37159 | + return within_module_init_rx(addr, mod) || within_module_init_rw(addr, mod); | 36448 | + return within_module_init_rx(addr, mod) || within_module_init_rw(addr, mod); |
37160 | } | 36449 | } |
37161 | 36450 | ||
37162 | /* Returns 0 and fills in value, defined and namebuf, or -ERANGE if | 36451 | /* Search for module by name: must hold module_mutex. */ |
37163 | @@ -396,7 +426,11 @@ void symbol_put_addr(void *addr); | 36452 | @@ -436,7 +466,11 @@ void symbol_put_addr(void *addr); |
37164 | static inline local_t *__module_ref_addr(struct module *mod, int cpu) | 36453 | static inline local_t *__module_ref_addr(struct module *mod, int cpu) |
37165 | { | 36454 | { |
37166 | #ifdef CONFIG_SMP | 36455 | #ifdef CONFIG_SMP |
@@ -37172,9 +36461,9 @@ diff -urNp linux-2.6.29.6/include/linux/module.h linux-2.6.29.6/include/linux/mo | |||
37172 | #else | 36461 | #else |
37173 | return &mod->ref; | 36462 | return &mod->ref; |
37174 | #endif | 36463 | #endif |
37175 | diff -urNp linux-2.6.29.6/include/linux/moduleloader.h linux-2.6.29.6/include/linux/moduleloader.h | 36464 | diff -urNp linux-2.6.30.4/include/linux/moduleloader.h linux-2.6.30.4/include/linux/moduleloader.h |
37176 | --- linux-2.6.29.6/include/linux/moduleloader.h 2009-07-02 19:41:20.000000000 -0400 | 36465 | --- linux-2.6.30.4/include/linux/moduleloader.h 2009-07-24 17:47:51.000000000 -0400 |
37177 | +++ linux-2.6.29.6/include/linux/moduleloader.h 2009-07-23 17:34:32.192794045 -0400 | 36466 | +++ linux-2.6.30.4/include/linux/moduleloader.h 2009-07-30 09:48:10.114071629 -0400 |
37178 | @@ -20,9 +20,21 @@ unsigned int arch_mod_section_prepend(st | 36467 | @@ -20,9 +20,21 @@ unsigned int arch_mod_section_prepend(st |
37179 | sections. Returns NULL on failure. */ | 36468 | sections. Returns NULL on failure. */ |
37180 | void *module_alloc(unsigned long size); | 36469 | void *module_alloc(unsigned long size); |
@@ -37197,9 +36486,9 @@ diff -urNp linux-2.6.29.6/include/linux/moduleloader.h linux-2.6.29.6/include/li | |||
37197 | /* Apply the given relocation to the (simplified) ELF. Return -error | 36486 | /* Apply the given relocation to the (simplified) ELF. Return -error |
37198 | or 0. */ | 36487 | or 0. */ |
37199 | int apply_relocate(Elf_Shdr *sechdrs, | 36488 | int apply_relocate(Elf_Shdr *sechdrs, |
37200 | diff -urNp linux-2.6.29.6/include/linux/namei.h linux-2.6.29.6/include/linux/namei.h | 36489 | diff -urNp linux-2.6.30.4/include/linux/namei.h linux-2.6.30.4/include/linux/namei.h |
37201 | --- linux-2.6.29.6/include/linux/namei.h 2009-07-02 19:41:20.000000000 -0400 | 36490 | --- linux-2.6.30.4/include/linux/namei.h 2009-07-24 17:47:51.000000000 -0400 |
37202 | +++ linux-2.6.29.6/include/linux/namei.h 2009-07-23 17:34:32.192794045 -0400 | 36491 | +++ linux-2.6.30.4/include/linux/namei.h 2009-07-30 09:48:10.115035001 -0400 |
37203 | @@ -21,7 +21,7 @@ struct nameidata { | 36492 | @@ -21,7 +21,7 @@ struct nameidata { |
37204 | unsigned int flags; | 36493 | unsigned int flags; |
37205 | int last_type; | 36494 | int last_type; |
@@ -37209,7 +36498,7 @@ diff -urNp linux-2.6.29.6/include/linux/namei.h linux-2.6.29.6/include/linux/nam | |||
37209 | 36498 | ||
37210 | /* Intent data */ | 36499 | /* Intent data */ |
37211 | union { | 36500 | union { |
37212 | @@ -84,12 +84,12 @@ extern int follow_up(struct vfsmount **, | 36501 | @@ -83,12 +83,12 @@ extern int follow_up(struct vfsmount **, |
37213 | extern struct dentry *lock_rename(struct dentry *, struct dentry *); | 36502 | extern struct dentry *lock_rename(struct dentry *, struct dentry *); |
37214 | extern void unlock_rename(struct dentry *, struct dentry *); | 36503 | extern void unlock_rename(struct dentry *, struct dentry *); |
37215 | 36504 | ||
@@ -37224,10 +36513,10 @@ diff -urNp linux-2.6.29.6/include/linux/namei.h linux-2.6.29.6/include/linux/nam | |||
37224 | { | 36513 | { |
37225 | return nd->saved_names[nd->depth]; | 36514 | return nd->saved_names[nd->depth]; |
37226 | } | 36515 | } |
37227 | diff -urNp linux-2.6.29.6/include/linux/nfsd/nfsd.h linux-2.6.29.6/include/linux/nfsd/nfsd.h | 36516 | diff -urNp linux-2.6.30.4/include/linux/nfsd/nfsd.h linux-2.6.30.4/include/linux/nfsd/nfsd.h |
37228 | --- linux-2.6.29.6/include/linux/nfsd/nfsd.h 2009-07-02 19:41:20.000000000 -0400 | 36517 | --- linux-2.6.30.4/include/linux/nfsd/nfsd.h 2009-07-24 17:47:51.000000000 -0400 |
37229 | +++ linux-2.6.29.6/include/linux/nfsd/nfsd.h 2009-07-23 18:40:28.718303595 -0400 | 36518 | +++ linux-2.6.30.4/include/linux/nfsd/nfsd.h 2009-07-30 09:48:10.115035001 -0400 |
37230 | @@ -56,7 +56,7 @@ extern struct svc_version nfsd_version2, | 36519 | @@ -57,7 +57,7 @@ extern u32 nfsd_supported_minorversion |
37231 | extern struct mutex nfsd_mutex; | 36520 | extern struct mutex nfsd_mutex; |
37232 | extern struct svc_serv *nfsd_serv; | 36521 | extern struct svc_serv *nfsd_serv; |
37233 | 36522 | ||
@@ -37236,33 +36525,9 @@ diff -urNp linux-2.6.29.6/include/linux/nfsd/nfsd.h linux-2.6.29.6/include/linux | |||
37236 | 36525 | ||
37237 | /* | 36526 | /* |
37238 | * Function prototypes. | 36527 | * Function prototypes. |
37239 | diff -urNp linux-2.6.29.6/include/linux/nfs_fs.h linux-2.6.29.6/include/linux/nfs_fs.h | 36528 | diff -urNp linux-2.6.30.4/include/linux/nodemask.h linux-2.6.30.4/include/linux/nodemask.h |
37240 | --- linux-2.6.29.6/include/linux/nfs_fs.h 2009-07-02 19:41:20.000000000 -0400 | 36529 | --- linux-2.6.30.4/include/linux/nodemask.h 2009-07-24 17:47:51.000000000 -0400 |
37241 | +++ linux-2.6.29.6/include/linux/nfs_fs.h 2009-07-23 18:40:28.706582042 -0400 | 36530 | +++ linux-2.6.30.4/include/linux/nodemask.h 2009-07-30 09:48:10.115035001 -0400 |
37242 | @@ -415,7 +415,7 @@ extern const struct inode_operations nfs | ||
37243 | extern const struct inode_operations nfs3_dir_inode_operations; | ||
37244 | #endif /* CONFIG_NFS_V3 */ | ||
37245 | extern const struct file_operations nfs_dir_operations; | ||
37246 | -extern struct dentry_operations nfs_dentry_operations; | ||
37247 | +extern const struct dentry_operations nfs_dentry_operations; | ||
37248 | |||
37249 | extern void nfs_force_lookup_revalidate(struct inode *dir); | ||
37250 | extern int nfs_instantiate(struct dentry *dentry, struct nfs_fh *fh, struct nfs_fattr *fattr); | ||
37251 | diff -urNp linux-2.6.29.6/include/linux/nfs_xdr.h linux-2.6.29.6/include/linux/nfs_xdr.h | ||
37252 | --- linux-2.6.29.6/include/linux/nfs_xdr.h 2009-07-02 19:41:20.000000000 -0400 | ||
37253 | +++ linux-2.6.29.6/include/linux/nfs_xdr.h 2009-07-23 18:40:28.713831736 -0400 | ||
37254 | @@ -785,7 +785,7 @@ struct nfs_access_entry; | ||
37255 | */ | ||
37256 | struct nfs_rpc_ops { | ||
37257 | u32 version; /* Protocol version */ | ||
37258 | - struct dentry_operations *dentry_ops; | ||
37259 | + const struct dentry_operations *dentry_ops; | ||
37260 | const struct inode_operations *dir_inode_ops; | ||
37261 | const struct inode_operations *file_inode_ops; | ||
37262 | |||
37263 | diff -urNp linux-2.6.29.6/include/linux/nodemask.h linux-2.6.29.6/include/linux/nodemask.h | ||
37264 | --- linux-2.6.29.6/include/linux/nodemask.h 2009-07-02 19:41:20.000000000 -0400 | ||
37265 | +++ linux-2.6.29.6/include/linux/nodemask.h 2009-07-23 17:34:32.192794045 -0400 | ||
37266 | @@ -442,11 +442,11 @@ static inline int num_node_state(enum no | 36531 | @@ -442,11 +442,11 @@ static inline int num_node_state(enum no |
37267 | 36532 | ||
37268 | #define any_online_node(mask) \ | 36533 | #define any_online_node(mask) \ |
@@ -37279,9 +36544,9 @@ diff -urNp linux-2.6.29.6/include/linux/nodemask.h linux-2.6.29.6/include/linux/ | |||
37279 | }) | 36544 | }) |
37280 | 36545 | ||
37281 | #define num_online_nodes() num_node_state(N_ONLINE) | 36546 | #define num_online_nodes() num_node_state(N_ONLINE) |
37282 | diff -urNp linux-2.6.29.6/include/linux/oprofile.h linux-2.6.29.6/include/linux/oprofile.h | 36547 | diff -urNp linux-2.6.30.4/include/linux/oprofile.h linux-2.6.30.4/include/linux/oprofile.h |
37283 | --- linux-2.6.29.6/include/linux/oprofile.h 2009-07-02 19:41:20.000000000 -0400 | 36548 | --- linux-2.6.30.4/include/linux/oprofile.h 2009-07-24 17:47:51.000000000 -0400 |
37284 | +++ linux-2.6.29.6/include/linux/oprofile.h 2009-07-23 17:34:32.192794045 -0400 | 36549 | +++ linux-2.6.30.4/include/linux/oprofile.h 2009-07-30 09:48:10.116076362 -0400 |
37285 | @@ -128,7 +128,7 @@ int oprofilefs_create_ro_ulong(struct su | 36550 | @@ -128,7 +128,7 @@ int oprofilefs_create_ro_ulong(struct su |
37286 | 36551 | ||
37287 | /** Create a file for read-only access to an atomic_t. */ | 36552 | /** Create a file for read-only access to an atomic_t. */ |
@@ -37291,33 +36556,9 @@ diff -urNp linux-2.6.29.6/include/linux/oprofile.h linux-2.6.29.6/include/linux/ | |||
37291 | 36556 | ||
37292 | /** create a directory */ | 36557 | /** create a directory */ |
37293 | struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root, | 36558 | struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root, |
37294 | diff -urNp linux-2.6.29.6/include/linux/percpu.h linux-2.6.29.6/include/linux/percpu.h | 36559 | diff -urNp linux-2.6.30.4/include/linux/poison.h linux-2.6.30.4/include/linux/poison.h |
37295 | --- linux-2.6.29.6/include/linux/percpu.h 2009-07-02 19:41:20.000000000 -0400 | 36560 | --- linux-2.6.30.4/include/linux/poison.h 2009-07-24 17:47:51.000000000 -0400 |
37296 | +++ linux-2.6.29.6/include/linux/percpu.h 2009-07-23 17:34:32.192794045 -0400 | 36561 | +++ linux-2.6.30.4/include/linux/poison.h 2009-07-30 09:48:10.116076362 -0400 |
37297 | @@ -50,7 +50,7 @@ | ||
37298 | #endif | ||
37299 | |||
37300 | #define PERCPU_ENOUGH_ROOM \ | ||
37301 | - (__per_cpu_end - __per_cpu_start + PERCPU_MODULE_RESERVE) | ||
37302 | + ((unsigned long)(__per_cpu_end - __per_cpu_start + PERCPU_MODULE_RESERVE)) | ||
37303 | #endif /* PERCPU_ENOUGH_ROOM */ | ||
37304 | |||
37305 | /* | ||
37306 | diff -urNp linux-2.6.29.6/include/linux/personality.h linux-2.6.29.6/include/linux/personality.h | ||
37307 | --- linux-2.6.29.6/include/linux/personality.h 2009-07-02 19:41:20.000000000 -0400 | ||
37308 | +++ linux-2.6.29.6/include/linux/personality.h 2009-07-23 17:34:32.192794045 -0400 | ||
37309 | @@ -40,7 +40,7 @@ enum { | ||
37310 | * Security-relevant compatibility flags that must be | ||
37311 | * cleared upon setuid or setgid exec: | ||
37312 | */ | ||
37313 | -#define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC|ADDR_NO_RANDOMIZE) | ||
37314 | +#define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC|ADDR_NO_RANDOMIZE|ADDR_COMPAT_LAYOUT|MMAP_PAGE_ZERO) | ||
37315 | |||
37316 | /* | ||
37317 | * Personality types. | ||
37318 | diff -urNp linux-2.6.29.6/include/linux/poison.h linux-2.6.29.6/include/linux/poison.h | ||
37319 | --- linux-2.6.29.6/include/linux/poison.h 2009-07-02 19:41:20.000000000 -0400 | ||
37320 | +++ linux-2.6.29.6/include/linux/poison.h 2009-07-23 17:34:32.193834517 -0400 | ||
37321 | @@ -7,8 +7,8 @@ | 36562 | @@ -7,8 +7,8 @@ |
37322 | * under normal circumstances, used to verify that nobody uses | 36563 | * under normal circumstances, used to verify that nobody uses |
37323 | * non-initialized list entries. | 36564 | * non-initialized list entries. |
@@ -37329,10 +36570,10 @@ diff -urNp linux-2.6.29.6/include/linux/poison.h linux-2.6.29.6/include/linux/po | |||
37329 | 36570 | ||
37330 | /********** include/linux/timer.h **********/ | 36571 | /********** include/linux/timer.h **********/ |
37331 | /* | 36572 | /* |
37332 | diff -urNp linux-2.6.29.6/include/linux/proc_fs.h linux-2.6.29.6/include/linux/proc_fs.h | 36573 | diff -urNp linux-2.6.30.4/include/linux/proc_fs.h linux-2.6.30.4/include/linux/proc_fs.h |
37333 | --- linux-2.6.29.6/include/linux/proc_fs.h 2009-07-02 19:41:20.000000000 -0400 | 36574 | --- linux-2.6.30.4/include/linux/proc_fs.h 2009-07-24 17:47:51.000000000 -0400 |
37334 | +++ linux-2.6.29.6/include/linux/proc_fs.h 2009-07-23 17:34:32.193834517 -0400 | 36575 | +++ linux-2.6.30.4/include/linux/proc_fs.h 2009-07-30 11:10:49.495569147 -0400 |
37335 | @@ -174,6 +174,19 @@ static inline struct proc_dir_entry *pro | 36576 | @@ -170,6 +170,19 @@ static inline struct proc_dir_entry *pro |
37336 | return proc_create_data(name, mode, parent, proc_fops, NULL); | 36577 | return proc_create_data(name, mode, parent, proc_fops, NULL); |
37337 | } | 36578 | } |
37338 | 36579 | ||
@@ -37352,21 +36593,9 @@ diff -urNp linux-2.6.29.6/include/linux/proc_fs.h linux-2.6.29.6/include/linux/p | |||
37352 | static inline struct proc_dir_entry *create_proc_read_entry(const char *name, | 36593 | static inline struct proc_dir_entry *create_proc_read_entry(const char *name, |
37353 | mode_t mode, struct proc_dir_entry *base, | 36594 | mode_t mode, struct proc_dir_entry *base, |
37354 | read_proc_t *read_proc, void * data) | 36595 | read_proc_t *read_proc, void * data) |
37355 | diff -urNp linux-2.6.29.6/include/linux/raid/md_k.h linux-2.6.29.6/include/linux/raid/md_k.h | 36596 | diff -urNp linux-2.6.30.4/include/linux/random.h linux-2.6.30.4/include/linux/random.h |
37356 | --- linux-2.6.29.6/include/linux/raid/md_k.h 2009-07-02 19:41:20.000000000 -0400 | 36597 | --- linux-2.6.30.4/include/linux/random.h 2009-07-24 17:47:51.000000000 -0400 |
37357 | +++ linux-2.6.29.6/include/linux/raid/md_k.h 2009-07-23 17:34:32.193834517 -0400 | 36598 | +++ linux-2.6.30.4/include/linux/random.h 2009-07-30 09:48:10.116076362 -0400 |
37358 | @@ -293,7 +293,7 @@ static inline void rdev_dec_pending(mdk_ | ||
37359 | |||
37360 | static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors) | ||
37361 | { | ||
37362 | - atomic_add(nr_sectors, &bdev->bd_contains->bd_disk->sync_io); | ||
37363 | + atomic_add_unchecked(nr_sectors, &bdev->bd_contains->bd_disk->sync_io); | ||
37364 | } | ||
37365 | |||
37366 | struct mdk_personality | ||
37367 | diff -urNp linux-2.6.29.6/include/linux/random.h linux-2.6.29.6/include/linux/random.h | ||
37368 | --- linux-2.6.29.6/include/linux/random.h 2009-07-02 19:41:20.000000000 -0400 | ||
37369 | +++ linux-2.6.29.6/include/linux/random.h 2009-07-23 17:34:32.193834517 -0400 | ||
37370 | @@ -74,6 +74,11 @@ unsigned long randomize_range(unsigned l | 36599 | @@ -74,6 +74,11 @@ unsigned long randomize_range(unsigned l |
37371 | u32 random32(void); | 36600 | u32 random32(void); |
37372 | void srandom32(u32 seed); | 36601 | void srandom32(u32 seed); |
@@ -37379,10 +36608,10 @@ diff -urNp linux-2.6.29.6/include/linux/random.h linux-2.6.29.6/include/linux/ra | |||
37379 | #endif /* __KERNEL___ */ | 36608 | #endif /* __KERNEL___ */ |
37380 | 36609 | ||
37381 | #endif /* _LINUX_RANDOM_H */ | 36610 | #endif /* _LINUX_RANDOM_H */ |
37382 | diff -urNp linux-2.6.29.6/include/linux/reiserfs_fs_sb.h linux-2.6.29.6/include/linux/reiserfs_fs_sb.h | 36611 | diff -urNp linux-2.6.30.4/include/linux/reiserfs_fs_sb.h linux-2.6.30.4/include/linux/reiserfs_fs_sb.h |
37383 | --- linux-2.6.29.6/include/linux/reiserfs_fs_sb.h 2009-07-02 19:41:20.000000000 -0400 | 36612 | --- linux-2.6.30.4/include/linux/reiserfs_fs_sb.h 2009-07-24 17:47:51.000000000 -0400 |
37384 | +++ linux-2.6.29.6/include/linux/reiserfs_fs_sb.h 2009-07-23 17:34:32.194808945 -0400 | 36613 | +++ linux-2.6.30.4/include/linux/reiserfs_fs_sb.h 2009-07-30 09:48:10.116076362 -0400 |
37385 | @@ -374,7 +374,7 @@ struct reiserfs_sb_info { | 36614 | @@ -377,7 +377,7 @@ struct reiserfs_sb_info { |
37386 | /* Comment? -Hans */ | 36615 | /* Comment? -Hans */ |
37387 | wait_queue_head_t s_wait; | 36616 | wait_queue_head_t s_wait; |
37388 | /* To be obsoleted soon by per buffer seals.. -Hans */ | 36617 | /* To be obsoleted soon by per buffer seals.. -Hans */ |
@@ -37391,18 +36620,18 @@ diff -urNp linux-2.6.29.6/include/linux/reiserfs_fs_sb.h linux-2.6.29.6/include/ | |||
37391 | // tree gets re-balanced | 36620 | // tree gets re-balanced |
37392 | unsigned long s_properties; /* File system properties. Currently holds | 36621 | unsigned long s_properties; /* File system properties. Currently holds |
37393 | on-disk FS format */ | 36622 | on-disk FS format */ |
37394 | diff -urNp linux-2.6.29.6/include/linux/sched.h linux-2.6.29.6/include/linux/sched.h | 36623 | diff -urNp linux-2.6.30.4/include/linux/sched.h linux-2.6.30.4/include/linux/sched.h |
37395 | --- linux-2.6.29.6/include/linux/sched.h 2009-07-02 19:41:20.000000000 -0400 | 36624 | --- linux-2.6.30.4/include/linux/sched.h 2009-07-30 20:32:40.547619620 -0400 |
37396 | +++ linux-2.6.29.6/include/linux/sched.h 2009-07-23 17:34:32.195781799 -0400 | 36625 | +++ linux-2.6.30.4/include/linux/sched.h 2009-07-30 20:32:48.019825232 -0400 |
37397 | @@ -97,6 +97,7 @@ struct futex_pi_state; | 36626 | @@ -98,6 +98,7 @@ struct robust_list_head; |
37398 | struct robust_list_head; | ||
37399 | struct bio; | 36627 | struct bio; |
37400 | struct bts_tracer; | 36628 | struct bts_tracer; |
36629 | struct fs_struct; | ||
37401 | +struct linux_binprm; | 36630 | +struct linux_binprm; |
37402 | 36631 | ||
37403 | /* | 36632 | /* |
37404 | * List of flags we want to share for kernel threads, | 36633 | * List of flags we want to share for kernel threads, |
37405 | @@ -606,6 +607,15 @@ struct signal_struct { | 36634 | @@ -604,6 +605,15 @@ struct signal_struct { |
37406 | unsigned audit_tty; | 36635 | unsigned audit_tty; |
37407 | struct tty_audit_buf *tty_audit_buf; | 36636 | struct tty_audit_buf *tty_audit_buf; |
37408 | #endif | 36637 | #endif |
@@ -37418,7 +36647,7 @@ diff -urNp linux-2.6.29.6/include/linux/sched.h linux-2.6.29.6/include/linux/sch | |||
37418 | }; | 36647 | }; |
37419 | 36648 | ||
37420 | /* Context switch must be unlocked if interrupts are to be enabled */ | 36649 | /* Context switch must be unlocked if interrupts are to be enabled */ |
37421 | @@ -1114,7 +1124,7 @@ struct sched_rt_entity { | 36650 | @@ -1116,7 +1126,7 @@ struct sched_rt_entity { |
37422 | 36651 | ||
37423 | struct task_struct { | 36652 | struct task_struct { |
37424 | volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ | 36653 | volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ |
@@ -37427,19 +36656,7 @@ diff -urNp linux-2.6.29.6/include/linux/sched.h linux-2.6.29.6/include/linux/sch | |||
37427 | atomic_t usage; | 36656 | atomic_t usage; |
37428 | unsigned int flags; /* per process flags, defined below */ | 36657 | unsigned int flags; /* per process flags, defined below */ |
37429 | unsigned int ptrace; | 36658 | unsigned int ptrace; |
37430 | @@ -1179,10 +1189,9 @@ struct task_struct { | 36659 | @@ -1227,8 +1237,8 @@ struct task_struct { |
37431 | pid_t pid; | ||
37432 | pid_t tgid; | ||
37433 | |||
37434 | -#ifdef CONFIG_CC_STACKPROTECTOR | ||
37435 | /* Canary value for the -fstack-protector gcc feature */ | ||
37436 | unsigned long stack_canary; | ||
37437 | -#endif | ||
37438 | + | ||
37439 | /* | ||
37440 | * pointers to (original) parent process, youngest child, younger sibling, | ||
37441 | * older sibling, respectively. (p->father can be replaced with | ||
37442 | @@ -1223,8 +1232,8 @@ struct task_struct { | ||
37443 | struct list_head thread_group; | 36660 | struct list_head thread_group; |
37444 | 36661 | ||
37445 | struct completion *vfork_done; /* for vfork() */ | 36662 | struct completion *vfork_done; /* for vfork() */ |
@@ -37450,7 +36667,7 @@ diff -urNp linux-2.6.29.6/include/linux/sched.h linux-2.6.29.6/include/linux/sch | |||
37450 | 36667 | ||
37451 | cputime_t utime, stime, utimescaled, stimescaled; | 36668 | cputime_t utime, stime, utimescaled, stimescaled; |
37452 | cputime_t gtime; | 36669 | cputime_t gtime; |
37453 | @@ -1418,8 +1427,66 @@ struct task_struct { | 36670 | @@ -1429,8 +1439,66 @@ struct task_struct { |
37454 | /* state flags for use by tracers */ | 36671 | /* state flags for use by tracers */ |
37455 | unsigned long trace; | 36672 | unsigned long trace; |
37456 | #endif | 36673 | #endif |
@@ -37517,7 +36734,7 @@ diff -urNp linux-2.6.29.6/include/linux/sched.h linux-2.6.29.6/include/linux/sch | |||
37517 | /* Future-safe accessor for struct task_struct's cpus_allowed. */ | 36734 | /* Future-safe accessor for struct task_struct's cpus_allowed. */ |
37518 | #define tsk_cpumask(tsk) (&(tsk)->cpus_allowed) | 36735 | #define tsk_cpumask(tsk) (&(tsk)->cpus_allowed) |
37519 | 36736 | ||
37520 | @@ -1961,7 +2028,7 @@ extern void __cleanup_sighand(struct sig | 36737 | @@ -1988,7 +2056,7 @@ extern void __cleanup_sighand(struct sig |
37521 | extern void exit_itimers(struct signal_struct *); | 36738 | extern void exit_itimers(struct signal_struct *); |
37522 | extern void flush_itimer_signals(void); | 36739 | extern void flush_itimer_signals(void); |
37523 | 36740 | ||
@@ -37526,7 +36743,7 @@ diff -urNp linux-2.6.29.6/include/linux/sched.h linux-2.6.29.6/include/linux/sch | |||
37526 | 36743 | ||
37527 | extern void daemonize(const char *, ...); | 36744 | extern void daemonize(const char *, ...); |
37528 | extern int allow_signal(int); | 36745 | extern int allow_signal(int); |
37529 | @@ -2066,8 +2133,8 @@ static inline void unlock_task_sighand(s | 36746 | @@ -2098,8 +2166,8 @@ static inline void unlock_task_sighand(s |
37530 | 36747 | ||
37531 | #ifndef __HAVE_THREAD_FUNCTIONS | 36748 | #ifndef __HAVE_THREAD_FUNCTIONS |
37532 | 36749 | ||
@@ -37537,9 +36754,18 @@ diff -urNp linux-2.6.29.6/include/linux/sched.h linux-2.6.29.6/include/linux/sch | |||
37537 | 36754 | ||
37538 | static inline void setup_thread_stack(struct task_struct *p, struct task_struct *org) | 36755 | static inline void setup_thread_stack(struct task_struct *p, struct task_struct *org) |
37539 | { | 36756 | { |
37540 | diff -urNp linux-2.6.29.6/include/linux/screen_info.h linux-2.6.29.6/include/linux/screen_info.h | 36757 | @@ -2114,7 +2182,7 @@ static inline unsigned long *end_of_stac |
37541 | --- linux-2.6.29.6/include/linux/screen_info.h 2009-07-02 19:41:20.000000000 -0400 | 36758 | |
37542 | +++ linux-2.6.29.6/include/linux/screen_info.h 2009-07-23 17:34:32.195781799 -0400 | 36759 | #endif |
36760 | |||
36761 | -static inline int object_is_on_stack(void *obj) | ||
36762 | +static inline int object_is_on_stack(const void *obj) | ||
36763 | { | ||
36764 | void *stack = task_stack_page(current); | ||
36765 | |||
36766 | diff -urNp linux-2.6.30.4/include/linux/screen_info.h linux-2.6.30.4/include/linux/screen_info.h | ||
36767 | --- linux-2.6.30.4/include/linux/screen_info.h 2009-07-24 17:47:51.000000000 -0400 | ||
36768 | +++ linux-2.6.30.4/include/linux/screen_info.h 2009-07-30 09:48:10.117039309 -0400 | ||
37543 | @@ -42,7 +42,8 @@ struct screen_info { | 36769 | @@ -42,7 +42,8 @@ struct screen_info { |
37544 | __u16 pages; /* 0x32 */ | 36770 | __u16 pages; /* 0x32 */ |
37545 | __u16 vesa_attributes; /* 0x34 */ | 36771 | __u16 vesa_attributes; /* 0x34 */ |
@@ -37550,20 +36776,20 @@ diff -urNp linux-2.6.29.6/include/linux/screen_info.h linux-2.6.29.6/include/lin | |||
37550 | } __attribute__((packed)); | 36776 | } __attribute__((packed)); |
37551 | 36777 | ||
37552 | #define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */ | 36778 | #define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */ |
37553 | diff -urNp linux-2.6.29.6/include/linux/security.h linux-2.6.29.6/include/linux/security.h | 36779 | diff -urNp linux-2.6.30.4/include/linux/security.h linux-2.6.30.4/include/linux/security.h |
37554 | --- linux-2.6.29.6/include/linux/security.h 2009-07-02 19:41:20.000000000 -0400 | 36780 | --- linux-2.6.30.4/include/linux/security.h 2009-07-24 17:47:51.000000000 -0400 |
37555 | +++ linux-2.6.29.6/include/linux/security.h 2009-07-23 17:34:32.196774213 -0400 | 36781 | +++ linux-2.6.30.4/include/linux/security.h 2009-07-30 11:22:42.449401037 -0400 |
37556 | @@ -32,6 +32,7 @@ | 36782 | @@ -33,6 +33,7 @@ |
37557 | #include <linux/sched.h> | ||
37558 | #include <linux/key.h> | 36783 | #include <linux/key.h> |
37559 | #include <linux/xfrm.h> | 36784 | #include <linux/xfrm.h> |
36785 | #include <linux/gfp.h> | ||
37560 | +#include <linux/grsecurity.h> | 36786 | +#include <linux/grsecurity.h> |
37561 | #include <net/flow.h> | 36787 | #include <net/flow.h> |
37562 | 36788 | ||
37563 | /* Maximum number of letters for an LSM name string */ | 36789 | /* Maximum number of letters for an LSM name string */ |
37564 | diff -urNp linux-2.6.29.6/include/linux/shm.h linux-2.6.29.6/include/linux/shm.h | 36790 | diff -urNp linux-2.6.30.4/include/linux/shm.h linux-2.6.30.4/include/linux/shm.h |
37565 | --- linux-2.6.29.6/include/linux/shm.h 2009-07-02 19:41:20.000000000 -0400 | 36791 | --- linux-2.6.30.4/include/linux/shm.h 2009-07-24 17:47:51.000000000 -0400 |
37566 | +++ linux-2.6.29.6/include/linux/shm.h 2009-07-23 17:34:32.196774213 -0400 | 36792 | +++ linux-2.6.30.4/include/linux/shm.h 2009-07-30 11:10:49.530519651 -0400 |
37567 | @@ -95,6 +95,10 @@ struct shmid_kernel /* private to the ke | 36793 | @@ -95,6 +95,10 @@ struct shmid_kernel /* private to the ke |
37568 | pid_t shm_cprid; | 36794 | pid_t shm_cprid; |
37569 | pid_t shm_lprid; | 36795 | pid_t shm_lprid; |
@@ -37575,9 +36801,9 @@ diff -urNp linux-2.6.29.6/include/linux/shm.h linux-2.6.29.6/include/linux/shm.h | |||
37575 | }; | 36801 | }; |
37576 | 36802 | ||
37577 | /* shm_mode upper byte flags */ | 36803 | /* shm_mode upper byte flags */ |
37578 | diff -urNp linux-2.6.29.6/include/linux/slab.h linux-2.6.29.6/include/linux/slab.h | 36804 | diff -urNp linux-2.6.30.4/include/linux/slab.h linux-2.6.30.4/include/linux/slab.h |
37579 | --- linux-2.6.29.6/include/linux/slab.h 2009-07-02 19:41:20.000000000 -0400 | 36805 | --- linux-2.6.30.4/include/linux/slab.h 2009-07-24 17:47:51.000000000 -0400 |
37580 | +++ linux-2.6.29.6/include/linux/slab.h 2009-07-23 17:34:32.196774213 -0400 | 36806 | +++ linux-2.6.30.4/include/linux/slab.h 2009-07-30 09:48:10.117976173 -0400 |
37581 | @@ -73,10 +73,9 @@ | 36807 | @@ -73,10 +73,9 @@ |
37582 | * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can. | 36808 | * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can. |
37583 | * Both make kfree a no-op. | 36809 | * Both make kfree a no-op. |
@@ -37599,45 +36825,47 @@ diff -urNp linux-2.6.29.6/include/linux/slab.h linux-2.6.29.6/include/linux/slab | |||
37599 | 36825 | ||
37600 | /* | 36826 | /* |
37601 | * Allocator specific definitions. These are mainly used to establish optimized | 36827 | * Allocator specific definitions. These are mainly used to establish optimized |
37602 | @@ -317,4 +317,35 @@ static inline void *kzalloc_node(size_t | 36828 | @@ -317,4 +317,37 @@ static inline void *kzalloc_node(size_t |
37603 | return kmalloc_node(size, flags | __GFP_ZERO, node); | 36829 | return kmalloc_node(size, flags | __GFP_ZERO, node); |
37604 | } | 36830 | } |
37605 | 36831 | ||
37606 | +#define kmalloc(x,y) \ | 36832 | +#define kmalloc(x, y) \ |
37607 | + ({ \ | 36833 | +({ \ |
37608 | + void *___retval; \ | 36834 | + void *___retval; \ |
37609 | + intoverflow_t ___x = (intoverflow_t)x; \ | 36835 | + intoverflow_t ___x = (intoverflow_t)x; \ |
37610 | + if (likely(___x <= ULONG_MAX)) \ | 36836 | + if (WARN(___x > ULONG_MAX, "kmalloc size overflow\n"))\ |
37611 | + ___retval = kmalloc((size_t)___x, y); \ | 36837 | + ___retval = NULL; \ |
37612 | + else \ | 36838 | + else \ |
37613 | + ___retval = NULL; \ | 36839 | + ___retval = kmalloc((size_t)___x, (y)); \ |
37614 | + ___retval; \ | 36840 | + ___retval; \ |
37615 | + }) | 36841 | +}) |
37616 | +#define kmalloc_node(x,y,z) \ | 36842 | + |
37617 | + ({ \ | 36843 | +#define kmalloc_node(x, y, z) \ |
37618 | + void *___retval; \ | 36844 | +({ \ |
37619 | + intoverflow_t ___x = (intoverflow_t)x; \ | 36845 | + void *___retval; \ |
37620 | + if (likely(___x <= ULONG_MAX)) \ | 36846 | + intoverflow_t ___x = (intoverflow_t)x; \ |
37621 | + ___retval = kmalloc_node((size_t)___x, y, z); \ | 36847 | + if (WARN(___x > ULONG_MAX, "kmalloc_node size overflow\n"))\ |
37622 | + else \ | 36848 | + ___retval = NULL; \ |
37623 | + ___retval = NULL; \ | 36849 | + else \ |
37624 | + ___retval; \ | 36850 | + ___retval = kmalloc_node((size_t)___x, (y), (z));\ |
37625 | + }) | 36851 | + ___retval; \ |
37626 | +#define kzalloc(x,y) \ | 36852 | +}) |
37627 | + ({ \ | 36853 | + |
37628 | + void *___retval; \ | 36854 | +#define kzalloc(x, y) \ |
37629 | + intoverflow_t ___x = (intoverflow_t)x; \ | 36855 | +({ \ |
37630 | + if (likely(___x <= ULONG_MAX)) \ | 36856 | + void *___retval; \ |
37631 | + ___retval = kzalloc((size_t)___x, y); \ | 36857 | + intoverflow_t ___x = (intoverflow_t)x; \ |
37632 | + else \ | 36858 | + if (WARN(___x > ULONG_MAX, "kzalloc size overflow\n"))\ |
37633 | + ___retval = NULL; \ | 36859 | + ___retval = NULL; \ |
37634 | + ___retval; \ | 36860 | + else \ |
37635 | + }) | 36861 | + ___retval = kzalloc((size_t)___x, (y)); \ |
36862 | + ___retval; \ | ||
36863 | +}) | ||
37636 | + | 36864 | + |
37637 | #endif /* _LINUX_SLAB_H */ | 36865 | #endif /* _LINUX_SLAB_H */ |
37638 | diff -urNp linux-2.6.29.6/include/linux/slub_def.h linux-2.6.29.6/include/linux/slub_def.h | 36866 | diff -urNp linux-2.6.30.4/include/linux/slub_def.h linux-2.6.30.4/include/linux/slub_def.h |
37639 | --- linux-2.6.29.6/include/linux/slub_def.h 2009-07-02 19:41:20.000000000 -0400 | 36867 | --- linux-2.6.30.4/include/linux/slub_def.h 2009-07-24 17:47:51.000000000 -0400 |
37640 | +++ linux-2.6.29.6/include/linux/slub_def.h 2009-07-23 17:34:32.196774213 -0400 | 36868 | +++ linux-2.6.30.4/include/linux/slub_def.h 2009-07-30 09:48:10.117976173 -0400 |
37641 | @@ -85,7 +85,7 @@ struct kmem_cache { | 36869 | @@ -85,7 +85,7 @@ struct kmem_cache { |
37642 | struct kmem_cache_order_objects max; | 36870 | struct kmem_cache_order_objects max; |
37643 | struct kmem_cache_order_objects min; | 36871 | struct kmem_cache_order_objects min; |
@@ -37647,9 +36875,9 @@ diff -urNp linux-2.6.29.6/include/linux/slub_def.h linux-2.6.29.6/include/linux/ | |||
37647 | void (*ctor)(void *); | 36875 | void (*ctor)(void *); |
37648 | int inuse; /* Offset to metadata */ | 36876 | int inuse; /* Offset to metadata */ |
37649 | int align; /* Alignment */ | 36877 | int align; /* Alignment */ |
37650 | diff -urNp linux-2.6.29.6/include/linux/sonet.h linux-2.6.29.6/include/linux/sonet.h | 36878 | diff -urNp linux-2.6.30.4/include/linux/sonet.h linux-2.6.30.4/include/linux/sonet.h |
37651 | --- linux-2.6.29.6/include/linux/sonet.h 2009-07-02 19:41:20.000000000 -0400 | 36879 | --- linux-2.6.30.4/include/linux/sonet.h 2009-07-24 17:47:51.000000000 -0400 |
37652 | +++ linux-2.6.29.6/include/linux/sonet.h 2009-07-23 17:34:37.460011249 -0400 | 36880 | +++ linux-2.6.30.4/include/linux/sonet.h 2009-07-30 09:48:10.118663996 -0400 |
37653 | @@ -61,7 +61,7 @@ struct sonet_stats { | 36881 | @@ -61,7 +61,7 @@ struct sonet_stats { |
37654 | #include <asm/atomic.h> | 36882 | #include <asm/atomic.h> |
37655 | 36883 | ||
@@ -37659,9 +36887,9 @@ diff -urNp linux-2.6.29.6/include/linux/sonet.h linux-2.6.29.6/include/linux/son | |||
37659 | __SONET_ITEMS | 36887 | __SONET_ITEMS |
37660 | #undef __HANDLE_ITEM | 36888 | #undef __HANDLE_ITEM |
37661 | }; | 36889 | }; |
37662 | diff -urNp linux-2.6.29.6/include/linux/sysctl.h linux-2.6.29.6/include/linux/sysctl.h | 36890 | diff -urNp linux-2.6.30.4/include/linux/sysctl.h linux-2.6.30.4/include/linux/sysctl.h |
37663 | --- linux-2.6.29.6/include/linux/sysctl.h 2009-07-02 19:41:20.000000000 -0400 | 36891 | --- linux-2.6.30.4/include/linux/sysctl.h 2009-07-24 17:47:51.000000000 -0400 |
37664 | +++ linux-2.6.29.6/include/linux/sysctl.h 2009-07-23 17:34:32.197772567 -0400 | 36892 | +++ linux-2.6.30.4/include/linux/sysctl.h 2009-07-30 09:48:10.118663996 -0400 |
37665 | @@ -165,7 +165,11 @@ enum | 36893 | @@ -165,7 +165,11 @@ enum |
37666 | KERN_PANIC_ON_NMI=76, /* int: whether we will panic on an unrecovered */ | 36894 | KERN_PANIC_ON_NMI=76, /* int: whether we will panic on an unrecovered */ |
37667 | }; | 36895 | }; |
@@ -37675,9 +36903,9 @@ diff -urNp linux-2.6.29.6/include/linux/sysctl.h linux-2.6.29.6/include/linux/sy | |||
37675 | 36903 | ||
37676 | /* CTL_VM names: */ | 36904 | /* CTL_VM names: */ |
37677 | enum | 36905 | enum |
37678 | diff -urNp linux-2.6.29.6/include/linux/thread_info.h linux-2.6.29.6/include/linux/thread_info.h | 36906 | diff -urNp linux-2.6.30.4/include/linux/thread_info.h linux-2.6.30.4/include/linux/thread_info.h |
37679 | --- linux-2.6.29.6/include/linux/thread_info.h 2009-07-02 19:41:20.000000000 -0400 | 36907 | --- linux-2.6.30.4/include/linux/thread_info.h 2009-07-24 17:47:51.000000000 -0400 |
37680 | +++ linux-2.6.29.6/include/linux/thread_info.h 2009-07-23 17:34:32.197772567 -0400 | 36908 | +++ linux-2.6.30.4/include/linux/thread_info.h 2009-07-30 09:48:10.118663996 -0400 |
37681 | @@ -23,7 +23,7 @@ struct restart_block { | 36909 | @@ -23,7 +23,7 @@ struct restart_block { |
37682 | }; | 36910 | }; |
37683 | /* For futex_wait */ | 36911 | /* For futex_wait */ |
@@ -37687,9 +36915,9 @@ diff -urNp linux-2.6.29.6/include/linux/thread_info.h linux-2.6.29.6/include/lin | |||
37687 | u32 val; | 36915 | u32 val; |
37688 | u32 flags; | 36916 | u32 flags; |
37689 | u32 bitset; | 36917 | u32 bitset; |
37690 | diff -urNp linux-2.6.29.6/include/linux/tty_ldisc.h linux-2.6.29.6/include/linux/tty_ldisc.h | 36918 | diff -urNp linux-2.6.30.4/include/linux/tty_ldisc.h linux-2.6.30.4/include/linux/tty_ldisc.h |
37691 | --- linux-2.6.29.6/include/linux/tty_ldisc.h 2009-07-02 19:41:20.000000000 -0400 | 36919 | --- linux-2.6.30.4/include/linux/tty_ldisc.h 2009-07-24 17:47:51.000000000 -0400 |
37692 | +++ linux-2.6.29.6/include/linux/tty_ldisc.h 2009-07-23 17:34:32.197772567 -0400 | 36920 | +++ linux-2.6.30.4/include/linux/tty_ldisc.h 2009-07-30 09:48:10.118663996 -0400 |
37693 | @@ -139,12 +139,12 @@ struct tty_ldisc_ops { | 36921 | @@ -139,12 +139,12 @@ struct tty_ldisc_ops { |
37694 | 36922 | ||
37695 | struct module *owner; | 36923 | struct module *owner; |
@@ -37705,10 +36933,10 @@ diff -urNp linux-2.6.29.6/include/linux/tty_ldisc.h linux-2.6.29.6/include/linux | |||
37705 | }; | 36933 | }; |
37706 | 36934 | ||
37707 | #define TTY_LDISC_MAGIC 0x5403 | 36935 | #define TTY_LDISC_MAGIC 0x5403 |
37708 | diff -urNp linux-2.6.29.6/include/linux/types.h linux-2.6.29.6/include/linux/types.h | 36936 | diff -urNp linux-2.6.30.4/include/linux/types.h linux-2.6.30.4/include/linux/types.h |
37709 | --- linux-2.6.29.6/include/linux/types.h 2009-07-02 19:41:20.000000000 -0400 | 36937 | --- linux-2.6.30.4/include/linux/types.h 2009-07-24 17:47:51.000000000 -0400 |
37710 | +++ linux-2.6.29.6/include/linux/types.h 2009-07-23 17:34:32.197772567 -0400 | 36938 | +++ linux-2.6.30.4/include/linux/types.h 2009-07-30 09:48:10.118663996 -0400 |
37711 | @@ -198,10 +198,26 @@ typedef struct { | 36939 | @@ -191,10 +191,26 @@ typedef struct { |
37712 | volatile int counter; | 36940 | volatile int counter; |
37713 | } atomic_t; | 36941 | } atomic_t; |
37714 | 36942 | ||
@@ -37735,9 +36963,9 @@ diff -urNp linux-2.6.29.6/include/linux/types.h linux-2.6.29.6/include/linux/typ | |||
37735 | #endif | 36963 | #endif |
37736 | 36964 | ||
37737 | struct ustat { | 36965 | struct ustat { |
37738 | diff -urNp linux-2.6.29.6/include/linux/uaccess.h linux-2.6.29.6/include/linux/uaccess.h | 36966 | diff -urNp linux-2.6.30.4/include/linux/uaccess.h linux-2.6.30.4/include/linux/uaccess.h |
37739 | --- linux-2.6.29.6/include/linux/uaccess.h 2009-07-02 19:41:20.000000000 -0400 | 36967 | --- linux-2.6.30.4/include/linux/uaccess.h 2009-07-24 17:47:51.000000000 -0400 |
37740 | +++ linux-2.6.29.6/include/linux/uaccess.h 2009-07-23 17:34:32.197772567 -0400 | 36968 | +++ linux-2.6.30.4/include/linux/uaccess.h 2009-07-30 09:48:10.118663996 -0400 |
37741 | @@ -76,11 +76,11 @@ static inline unsigned long __copy_from_ | 36969 | @@ -76,11 +76,11 @@ static inline unsigned long __copy_from_ |
37742 | long ret; \ | 36970 | long ret; \ |
37743 | mm_segment_t old_fs = get_fs(); \ | 36971 | mm_segment_t old_fs = get_fs(); \ |
@@ -37752,9 +36980,9 @@ diff -urNp linux-2.6.29.6/include/linux/uaccess.h linux-2.6.29.6/include/linux/u | |||
37752 | ret; \ | 36980 | ret; \ |
37753 | }) | 36981 | }) |
37754 | 36982 | ||
37755 | diff -urNp linux-2.6.29.6/include/linux/vmalloc.h linux-2.6.29.6/include/linux/vmalloc.h | 36983 | diff -urNp linux-2.6.30.4/include/linux/vmalloc.h linux-2.6.30.4/include/linux/vmalloc.h |
37756 | --- linux-2.6.29.6/include/linux/vmalloc.h 2009-07-02 19:41:20.000000000 -0400 | 36984 | --- linux-2.6.30.4/include/linux/vmalloc.h 2009-07-24 17:47:51.000000000 -0400 |
37757 | +++ linux-2.6.29.6/include/linux/vmalloc.h 2009-07-23 17:34:32.197772567 -0400 | 36985 | +++ linux-2.6.30.4/include/linux/vmalloc.h 2009-07-30 09:48:10.119975963 -0400 |
37758 | @@ -13,6 +13,11 @@ struct vm_area_struct; /* vma defining | 36986 | @@ -13,6 +13,11 @@ struct vm_area_struct; /* vma defining |
37759 | #define VM_MAP 0x00000004 /* vmap()ed pages */ | 36987 | #define VM_MAP 0x00000004 /* vmap()ed pages */ |
37760 | #define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */ | 36988 | #define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */ |
@@ -37767,86 +36995,92 @@ diff -urNp linux-2.6.29.6/include/linux/vmalloc.h linux-2.6.29.6/include/linux/v | |||
37767 | /* bits [20..32] reserved for arch specific ioremap internals */ | 36995 | /* bits [20..32] reserved for arch specific ioremap internals */ |
37768 | 36996 | ||
37769 | /* | 36997 | /* |
37770 | @@ -111,4 +116,75 @@ extern long vwrite(char *buf, char *addr | 36998 | @@ -115,4 +120,81 @@ extern rwlock_t vmlist_lock; |
37771 | extern rwlock_t vmlist_lock; | ||
37772 | extern struct vm_struct *vmlist; | 36999 | extern struct vm_struct *vmlist; |
37773 | 37000 | extern __init void vm_area_register_early(struct vm_struct *vm, size_t align); | |
37774 | +#define vmalloc(x) \ | 37001 | |
37775 | + ({ \ | 37002 | +#define vmalloc(x) \ |
37776 | + void *___retval; \ | 37003 | +({ \ |
37777 | + intoverflow_t ___x = (intoverflow_t)x; \ | 37004 | + void *___retval; \ |
37778 | + if (likely(___x <= ULONG_MAX)) \ | 37005 | + intoverflow_t ___x = (intoverflow_t)x; \ |
37779 | + ___retval = vmalloc((unsigned long)___x); \ | 37006 | + if (WARN(___x > ULONG_MAX, "vmalloc size overflow\n")) \ |
37780 | + else \ | 37007 | + ___retval = NULL; \ |
37781 | + ___retval = NULL; \ | 37008 | + else \ |
37782 | + ___retval; \ | 37009 | + ___retval = vmalloc((unsigned long)___x); \ |
37783 | + }) | 37010 | + ___retval; \ |
37784 | +#define __vmalloc(x,y,z) \ | 37011 | +}) |
37785 | + ({ \ | 37012 | + |
37786 | + void *___retval; \ | 37013 | +#define __vmalloc(x, y, z) \ |
37787 | + intoverflow_t ___x = (intoverflow_t)x; \ | 37014 | +({ \ |
37788 | + if (likely(___x <= ULONG_MAX)) \ | 37015 | + void *___retval; \ |
37789 | + ___retval = __vmalloc((unsigned long)___x, y, z); \ | 37016 | + intoverflow_t ___x = (intoverflow_t)x; \ |
37790 | + else \ | 37017 | + if (WARN(___x > ULONG_MAX, "__vmalloc size overflow\n"))\ |
37791 | + ___retval = NULL; \ | 37018 | + ___retval = NULL; \ |
37792 | + ___retval; \ | 37019 | + else \ |
37793 | + }) | 37020 | + ___retval = __vmalloc((unsigned long)___x, (y), (z));\ |
37794 | +#define vmalloc_user(x) \ | 37021 | + ___retval; \ |
37795 | + ({ \ | 37022 | +}) |
37796 | + void *___retval; \ | 37023 | + |
37797 | + intoverflow_t ___x = (intoverflow_t)x; \ | 37024 | +#define vmalloc_user(x) \ |
37798 | + if (likely(___x <= ULONG_MAX)) \ | 37025 | +({ \ |
37799 | + ___retval = vmalloc_user((unsigned long)___x); \ | 37026 | + void *___retval; \ |
37800 | + else \ | 37027 | + intoverflow_t ___x = (intoverflow_t)x; \ |
37801 | + ___retval = NULL; \ | 37028 | + if (WARN(___x > ULONG_MAX, "vmalloc_user size overflow\n"))\ |
37802 | + ___retval; \ | 37029 | + ___retval = NULL; \ |
37803 | + }) | 37030 | + else \ |
37804 | +#define vmalloc_exec(x) \ | 37031 | + ___retval = vmalloc_user((unsigned long)___x); \ |
37805 | + ({ \ | 37032 | + ___retval; \ |
37806 | + void *___retval; \ | 37033 | +}) |
37807 | + intoverflow_t ___x = (intoverflow_t)x; \ | 37034 | + |
37808 | + if (likely(___x <= ULONG_MAX)) \ | 37035 | +#define vmalloc_exec(x) \ |
37809 | + ___retval = vmalloc_exec((unsigned long)___x); \ | 37036 | +({ \ |
37810 | + else \ | 37037 | + void *___retval; \ |
37811 | + ___retval = NULL; \ | 37038 | + intoverflow_t ___x = (intoverflow_t)x; \ |
37812 | + ___retval; \ | 37039 | + if (WARN(___x > ULONG_MAX, "vmalloc_exec size overflow\n"))\ |
37813 | + }) | 37040 | + ___retval = NULL; \ |
37814 | +#define vmalloc_node(x,y) \ | 37041 | + else \ |
37815 | + ({ \ | 37042 | + ___retval = vmalloc_exec((unsigned long)___x); \ |
37816 | + void *___retval; \ | 37043 | + ___retval; \ |
37817 | + intoverflow_t ___x = (intoverflow_t)x; \ | 37044 | +}) |
37818 | + if (likely(___x <= ULONG_MAX)) \ | 37045 | + |
37819 | + ___retval = vmalloc_node((unsigned long)___x,y); \ | 37046 | +#define vmalloc_node(x, y) \ |
37820 | + else \ | 37047 | +({ \ |
37821 | + ___retval = NULL; \ | 37048 | + void *___retval; \ |
37822 | + ___retval; \ | 37049 | + intoverflow_t ___x = (intoverflow_t)x; \ |
37823 | + }) | 37050 | + if (WARN(___x > ULONG_MAX, "vmalloc_node size overflow\n"))\ |
37824 | +#define vmalloc_32(x) \ | 37051 | + ___retval = NULL; \ |
37825 | + ({ \ | 37052 | + else \ |
37826 | + void *___retval; \ | 37053 | + ___retval = vmalloc_node((unsigned long)___x, (y));\ |
37827 | + intoverflow_t ___x = (intoverflow_t)x; \ | 37054 | + ___retval; \ |
37828 | + if (likely(___x <= ULONG_MAX)) \ | 37055 | +}) |
37829 | + ___retval = vmalloc_32((unsigned long)___x); \ | 37056 | + |
37830 | + else \ | 37057 | +#define vmalloc_32(x) \ |
37831 | + ___retval = NULL; \ | 37058 | +({ \ |
37832 | + ___retval; \ | 37059 | + void *___retval; \ |
37833 | + }) | 37060 | + intoverflow_t ___x = (intoverflow_t)x; \ |
37834 | +#define vmalloc_32_user(x) \ | 37061 | + if (WARN(___x > ULONG_MAX, "vmalloc_32 size overflow\n"))\ |
37835 | + ({ \ | 37062 | + ___retval = NULL; \ |
37836 | + void *___retval; \ | 37063 | + else \ |
37837 | + intoverflow_t ___x = (intoverflow_t)x; \ | 37064 | + ___retval = vmalloc_32((unsigned long)___x); \ |
37838 | + if (likely(___x <= ULONG_MAX)) \ | 37065 | + ___retval; \ |
37839 | + ___retval = vmalloc_32_user((unsigned long)___x); \ | 37066 | +}) |
37840 | + else \ | 37067 | + |
37841 | + ___retval = NULL; \ | 37068 | +#define vmalloc_32_user(x) \ |
37842 | + ___retval; \ | 37069 | +({ \ |
37843 | + }) | 37070 | + void *___retval; \ |
37071 | + intoverflow_t ___x = (intoverflow_t)x; \ | ||
37072 | + if (WARN(___x > ULONG_MAX, "vmalloc_32_user size overflow\n"))\ | ||
37073 | + ___retval = NULL; \ | ||
37074 | + else \ | ||
37075 | + ___retval = vmalloc_32_user((unsigned long)___x);\ | ||
37076 | + ___retval; \ | ||
37077 | +}) | ||
37844 | + | 37078 | + |
37845 | #endif /* _LINUX_VMALLOC_H */ | 37079 | #endif /* _LINUX_VMALLOC_H */ |
37846 | diff -urNp linux-2.6.29.6/include/net/sctp/sctp.h linux-2.6.29.6/include/net/sctp/sctp.h | 37080 | diff -urNp linux-2.6.30.4/include/net/sctp/sctp.h linux-2.6.30.4/include/net/sctp/sctp.h |
37847 | --- linux-2.6.29.6/include/net/sctp/sctp.h 2009-07-02 19:41:20.000000000 -0400 | 37081 | --- linux-2.6.30.4/include/net/sctp/sctp.h 2009-07-24 17:47:51.000000000 -0400 |
37848 | +++ linux-2.6.29.6/include/net/sctp/sctp.h 2009-07-23 17:34:32.198741602 -0400 | 37082 | +++ linux-2.6.30.4/include/net/sctp/sctp.h 2009-07-30 09:48:10.119975963 -0400 |
37849 | @@ -310,8 +310,8 @@ extern int sctp_debug_flag; | 37083 | @@ -305,8 +305,8 @@ extern int sctp_debug_flag; |
37850 | 37084 | ||
37851 | #else /* SCTP_DEBUG */ | 37085 | #else /* SCTP_DEBUG */ |
37852 | 37086 | ||
@@ -37857,10 +37091,10 @@ diff -urNp linux-2.6.29.6/include/net/sctp/sctp.h linux-2.6.29.6/include/net/sct | |||
37857 | #define SCTP_ENABLE_DEBUG | 37091 | #define SCTP_ENABLE_DEBUG |
37858 | #define SCTP_DISABLE_DEBUG | 37092 | #define SCTP_DISABLE_DEBUG |
37859 | #define SCTP_ASSERT(expr, str, func) | 37093 | #define SCTP_ASSERT(expr, str, func) |
37860 | diff -urNp linux-2.6.29.6/include/sound/core.h linux-2.6.29.6/include/sound/core.h | 37094 | diff -urNp linux-2.6.30.4/include/sound/core.h linux-2.6.30.4/include/sound/core.h |
37861 | --- linux-2.6.29.6/include/sound/core.h 2009-07-02 19:41:20.000000000 -0400 | 37095 | --- linux-2.6.30.4/include/sound/core.h 2009-07-24 17:47:51.000000000 -0400 |
37862 | +++ linux-2.6.29.6/include/sound/core.h 2009-07-23 17:34:32.198741602 -0400 | 37096 | +++ linux-2.6.30.4/include/sound/core.h 2009-07-30 09:48:10.119975963 -0400 |
37863 | @@ -427,7 +427,7 @@ static inline int __snd_bug_on(int cond) | 37097 | @@ -439,7 +439,7 @@ static inline int __snd_bug_on(int cond) |
37864 | */ | 37098 | */ |
37865 | #define snd_printdd(format, args...) snd_printk(format, ##args) | 37099 | #define snd_printdd(format, args...) snd_printk(format, ##args) |
37866 | #else | 37100 | #else |
@@ -37869,9 +37103,9 @@ diff -urNp linux-2.6.29.6/include/sound/core.h linux-2.6.29.6/include/sound/core | |||
37869 | #endif | 37103 | #endif |
37870 | 37104 | ||
37871 | 37105 | ||
37872 | diff -urNp linux-2.6.29.6/include/video/uvesafb.h linux-2.6.29.6/include/video/uvesafb.h | 37106 | diff -urNp linux-2.6.30.4/include/video/uvesafb.h linux-2.6.30.4/include/video/uvesafb.h |
37873 | --- linux-2.6.29.6/include/video/uvesafb.h 2009-07-02 19:41:20.000000000 -0400 | 37107 | --- linux-2.6.30.4/include/video/uvesafb.h 2009-07-24 17:47:51.000000000 -0400 |
37874 | +++ linux-2.6.29.6/include/video/uvesafb.h 2009-07-23 17:34:32.198741602 -0400 | 37108 | +++ linux-2.6.30.4/include/video/uvesafb.h 2009-07-30 09:48:10.120938150 -0400 |
37875 | @@ -177,6 +177,7 @@ struct uvesafb_par { | 37109 | @@ -177,6 +177,7 @@ struct uvesafb_par { |
37876 | u8 ypan; /* 0 - nothing, 1 - ypan, 2 - ywrap */ | 37110 | u8 ypan; /* 0 - nothing, 1 - ypan, 2 - ywrap */ |
37877 | u8 pmi_setpal; /* PMI for palette changes */ | 37111 | u8 pmi_setpal; /* PMI for palette changes */ |
@@ -37880,10 +37114,10 @@ diff -urNp linux-2.6.29.6/include/video/uvesafb.h linux-2.6.29.6/include/video/u | |||
37880 | void *pmi_start; | 37114 | void *pmi_start; |
37881 | void *pmi_pal; | 37115 | void *pmi_pal; |
37882 | u8 *vbe_state_orig; /* | 37116 | u8 *vbe_state_orig; /* |
37883 | diff -urNp linux-2.6.29.6/init/do_mounts.c linux-2.6.29.6/init/do_mounts.c | 37117 | diff -urNp linux-2.6.30.4/init/do_mounts.c linux-2.6.30.4/init/do_mounts.c |
37884 | --- linux-2.6.29.6/init/do_mounts.c 2009-07-02 19:41:20.000000000 -0400 | 37118 | --- linux-2.6.30.4/init/do_mounts.c 2009-07-24 17:47:51.000000000 -0400 |
37885 | +++ linux-2.6.29.6/init/do_mounts.c 2009-07-23 17:34:32.198741602 -0400 | 37119 | +++ linux-2.6.30.4/init/do_mounts.c 2009-07-30 09:48:10.121806882 -0400 |
37886 | @@ -215,11 +215,11 @@ static void __init get_fs_names(char *pa | 37120 | @@ -216,11 +216,11 @@ static void __init get_fs_names(char *pa |
37887 | 37121 | ||
37888 | static int __init do_mount_root(char *name, char *fs, int flags, void *data) | 37122 | static int __init do_mount_root(char *name, char *fs, int flags, void *data) |
37889 | { | 37123 | { |
@@ -37897,7 +37131,7 @@ diff -urNp linux-2.6.29.6/init/do_mounts.c linux-2.6.29.6/init/do_mounts.c | |||
37897 | ROOT_DEV = current->fs->pwd.mnt->mnt_sb->s_dev; | 37131 | ROOT_DEV = current->fs->pwd.mnt->mnt_sb->s_dev; |
37898 | printk("VFS: Mounted root (%s filesystem)%s on device %u:%u.\n", | 37132 | printk("VFS: Mounted root (%s filesystem)%s on device %u:%u.\n", |
37899 | current->fs->pwd.mnt->mnt_sb->s_type->name, | 37133 | current->fs->pwd.mnt->mnt_sb->s_type->name, |
37900 | @@ -309,18 +309,18 @@ void __init change_floppy(char *fmt, ... | 37134 | @@ -310,18 +310,18 @@ void __init change_floppy(char *fmt, ... |
37901 | va_start(args, fmt); | 37135 | va_start(args, fmt); |
37902 | vsprintf(buf, fmt, args); | 37136 | vsprintf(buf, fmt, args); |
37903 | va_end(args); | 37137 | va_end(args); |
@@ -37919,7 +37153,7 @@ diff -urNp linux-2.6.29.6/init/do_mounts.c linux-2.6.29.6/init/do_mounts.c | |||
37919 | termios.c_lflag |= ICANON; | 37153 | termios.c_lflag |= ICANON; |
37920 | sys_ioctl(fd, TCSETSF, (long)&termios); | 37154 | sys_ioctl(fd, TCSETSF, (long)&termios); |
37921 | sys_close(fd); | 37155 | sys_close(fd); |
37922 | @@ -413,7 +413,7 @@ void __init prepare_namespace(void) | 37156 | @@ -414,7 +414,7 @@ void __init prepare_namespace(void) |
37923 | 37157 | ||
37924 | mount_root(); | 37158 | mount_root(); |
37925 | out: | 37159 | out: |
@@ -37929,10 +37163,10 @@ diff -urNp linux-2.6.29.6/init/do_mounts.c linux-2.6.29.6/init/do_mounts.c | |||
37929 | + sys_chroot((char __user *)"."); | 37163 | + sys_chroot((char __user *)"."); |
37930 | } | 37164 | } |
37931 | 37165 | ||
37932 | diff -urNp linux-2.6.29.6/init/do_mounts.h linux-2.6.29.6/init/do_mounts.h | 37166 | diff -urNp linux-2.6.30.4/init/do_mounts.h linux-2.6.30.4/init/do_mounts.h |
37933 | --- linux-2.6.29.6/init/do_mounts.h 2009-07-02 19:41:20.000000000 -0400 | 37167 | --- linux-2.6.30.4/init/do_mounts.h 2009-07-24 17:47:51.000000000 -0400 |
37934 | +++ linux-2.6.29.6/init/do_mounts.h 2009-07-23 17:34:32.198741602 -0400 | 37168 | +++ linux-2.6.30.4/init/do_mounts.h 2009-07-30 09:48:10.121806882 -0400 |
37935 | @@ -14,15 +14,15 @@ extern int root_mountflags; | 37169 | @@ -15,15 +15,15 @@ extern int root_mountflags; |
37936 | 37170 | ||
37937 | static inline int create_dev(char *name, dev_t dev) | 37171 | static inline int create_dev(char *name, dev_t dev) |
37938 | { | 37172 | { |
@@ -37951,9 +37185,9 @@ diff -urNp linux-2.6.29.6/init/do_mounts.h linux-2.6.29.6/init/do_mounts.h | |||
37951 | return 0; | 37185 | return 0; |
37952 | if (!S_ISBLK(stat.st_mode)) | 37186 | if (!S_ISBLK(stat.st_mode)) |
37953 | return 0; | 37187 | return 0; |
37954 | diff -urNp linux-2.6.29.6/init/do_mounts_initrd.c linux-2.6.29.6/init/do_mounts_initrd.c | 37188 | diff -urNp linux-2.6.30.4/init/do_mounts_initrd.c linux-2.6.30.4/init/do_mounts_initrd.c |
37955 | --- linux-2.6.29.6/init/do_mounts_initrd.c 2009-07-02 19:41:20.000000000 -0400 | 37189 | --- linux-2.6.30.4/init/do_mounts_initrd.c 2009-07-24 17:47:51.000000000 -0400 |
37956 | +++ linux-2.6.29.6/init/do_mounts_initrd.c 2009-07-23 17:34:32.199729497 -0400 | 37190 | +++ linux-2.6.30.4/init/do_mounts_initrd.c 2009-07-30 09:48:10.121806882 -0400 |
37957 | @@ -32,7 +32,7 @@ static int __init do_linuxrc(void * shel | 37191 | @@ -32,7 +32,7 @@ static int __init do_linuxrc(void * shel |
37958 | sys_close(old_fd);sys_close(root_fd); | 37192 | sys_close(old_fd);sys_close(root_fd); |
37959 | sys_close(0);sys_close(1);sys_close(2); | 37193 | sys_close(0);sys_close(1);sys_close(2); |
@@ -38037,10 +37271,10 @@ diff -urNp linux-2.6.29.6/init/do_mounts_initrd.c linux-2.6.29.6/init/do_mounts_ | |||
38037 | + sys_unlink((const char __user *)"/initrd.image"); | 37271 | + sys_unlink((const char __user *)"/initrd.image"); |
38038 | return 0; | 37272 | return 0; |
38039 | } | 37273 | } |
38040 | diff -urNp linux-2.6.29.6/init/do_mounts_md.c linux-2.6.29.6/init/do_mounts_md.c | 37274 | diff -urNp linux-2.6.30.4/init/do_mounts_md.c linux-2.6.30.4/init/do_mounts_md.c |
38041 | --- linux-2.6.29.6/init/do_mounts_md.c 2009-07-02 19:41:20.000000000 -0400 | 37275 | --- linux-2.6.30.4/init/do_mounts_md.c 2009-07-24 17:47:51.000000000 -0400 |
38042 | +++ linux-2.6.29.6/init/do_mounts_md.c 2009-07-23 17:34:32.199729497 -0400 | 37276 | +++ linux-2.6.30.4/init/do_mounts_md.c 2009-07-30 09:48:10.121806882 -0400 |
38043 | @@ -171,7 +171,7 @@ static void __init md_setup_drive(void) | 37277 | @@ -170,7 +170,7 @@ static void __init md_setup_drive(void) |
38044 | partitioned ? "_d" : "", minor, | 37278 | partitioned ? "_d" : "", minor, |
38045 | md_setup_args[ent].device_names); | 37279 | md_setup_args[ent].device_names); |
38046 | 37280 | ||
@@ -38049,7 +37283,7 @@ diff -urNp linux-2.6.29.6/init/do_mounts_md.c linux-2.6.29.6/init/do_mounts_md.c | |||
38049 | if (fd < 0) { | 37283 | if (fd < 0) { |
38050 | printk(KERN_ERR "md: open failed - cannot start " | 37284 | printk(KERN_ERR "md: open failed - cannot start " |
38051 | "array %s\n", name); | 37285 | "array %s\n", name); |
38052 | @@ -234,7 +234,7 @@ static void __init md_setup_drive(void) | 37286 | @@ -233,7 +233,7 @@ static void __init md_setup_drive(void) |
38053 | * array without it | 37287 | * array without it |
38054 | */ | 37288 | */ |
38055 | sys_close(fd); | 37289 | sys_close(fd); |
@@ -38058,7 +37292,7 @@ diff -urNp linux-2.6.29.6/init/do_mounts_md.c linux-2.6.29.6/init/do_mounts_md.c | |||
38058 | sys_ioctl(fd, BLKRRPART, 0); | 37292 | sys_ioctl(fd, BLKRRPART, 0); |
38059 | } | 37293 | } |
38060 | sys_close(fd); | 37294 | sys_close(fd); |
38061 | @@ -284,7 +284,7 @@ static void __init autodetect_raid(void) | 37295 | @@ -283,7 +283,7 @@ static void __init autodetect_raid(void) |
38062 | 37296 | ||
38063 | wait_for_device_probe(); | 37297 | wait_for_device_probe(); |
38064 | 37298 | ||
@@ -38067,10 +37301,10 @@ diff -urNp linux-2.6.29.6/init/do_mounts_md.c linux-2.6.29.6/init/do_mounts_md.c | |||
38067 | if (fd >= 0) { | 37301 | if (fd >= 0) { |
38068 | sys_ioctl(fd, RAID_AUTORUN, raid_autopart); | 37302 | sys_ioctl(fd, RAID_AUTORUN, raid_autopart); |
38069 | sys_close(fd); | 37303 | sys_close(fd); |
38070 | diff -urNp linux-2.6.29.6/init/initramfs.c linux-2.6.29.6/init/initramfs.c | 37304 | diff -urNp linux-2.6.30.4/init/initramfs.c linux-2.6.30.4/init/initramfs.c |
38071 | --- linux-2.6.29.6/init/initramfs.c 2009-07-02 19:41:20.000000000 -0400 | 37305 | --- linux-2.6.30.4/init/initramfs.c 2009-07-24 17:47:51.000000000 -0400 |
38072 | +++ linux-2.6.29.6/init/initramfs.c 2009-07-23 17:34:32.199729497 -0400 | 37306 | +++ linux-2.6.30.4/init/initramfs.c 2009-07-30 09:48:10.121806882 -0400 |
38073 | @@ -276,7 +276,7 @@ static int __init maybe_link(void) | 37307 | @@ -271,7 +271,7 @@ static int __init maybe_link(void) |
38074 | if (nlink >= 2) { | 37308 | if (nlink >= 2) { |
38075 | char *old = find_link(major, minor, ino, mode, collected); | 37309 | char *old = find_link(major, minor, ino, mode, collected); |
38076 | if (old) | 37310 | if (old) |
@@ -38079,7 +37313,7 @@ diff -urNp linux-2.6.29.6/init/initramfs.c linux-2.6.29.6/init/initramfs.c | |||
38079 | } | 37313 | } |
38080 | return 0; | 37314 | return 0; |
38081 | } | 37315 | } |
38082 | @@ -285,11 +285,11 @@ static void __init clean_path(char *path | 37316 | @@ -280,11 +280,11 @@ static void __init clean_path(char *path |
38083 | { | 37317 | { |
38084 | struct stat st; | 37318 | struct stat st; |
38085 | 37319 | ||
@@ -38094,7 +37328,7 @@ diff -urNp linux-2.6.29.6/init/initramfs.c linux-2.6.29.6/init/initramfs.c | |||
38094 | } | 37328 | } |
38095 | } | 37329 | } |
38096 | 37330 | ||
38097 | @@ -312,7 +312,7 @@ static int __init do_name(void) | 37331 | @@ -305,7 +305,7 @@ static int __init do_name(void) |
38098 | int openflags = O_WRONLY|O_CREAT; | 37332 | int openflags = O_WRONLY|O_CREAT; |
38099 | if (ml != 1) | 37333 | if (ml != 1) |
38100 | openflags |= O_TRUNC; | 37334 | openflags |= O_TRUNC; |
@@ -38103,7 +37337,7 @@ diff -urNp linux-2.6.29.6/init/initramfs.c linux-2.6.29.6/init/initramfs.c | |||
38103 | 37337 | ||
38104 | if (wfd >= 0) { | 37338 | if (wfd >= 0) { |
38105 | sys_fchown(wfd, uid, gid); | 37339 | sys_fchown(wfd, uid, gid); |
38106 | @@ -323,16 +323,16 @@ static int __init do_name(void) | 37340 | @@ -317,16 +317,16 @@ static int __init do_name(void) |
38107 | } | 37341 | } |
38108 | } | 37342 | } |
38109 | } else if (S_ISDIR(mode)) { | 37343 | } else if (S_ISDIR(mode)) { |
@@ -38126,7 +37360,7 @@ diff -urNp linux-2.6.29.6/init/initramfs.c linux-2.6.29.6/init/initramfs.c | |||
38126 | do_utime(collected, mtime); | 37360 | do_utime(collected, mtime); |
38127 | } | 37361 | } |
38128 | } | 37362 | } |
38129 | @@ -342,7 +342,7 @@ static int __init do_name(void) | 37363 | @@ -336,7 +336,7 @@ static int __init do_name(void) |
38130 | static int __init do_copy(void) | 37364 | static int __init do_copy(void) |
38131 | { | 37365 | { |
38132 | if (count >= body_len) { | 37366 | if (count >= body_len) { |
@@ -38135,7 +37369,7 @@ diff -urNp linux-2.6.29.6/init/initramfs.c linux-2.6.29.6/init/initramfs.c | |||
38135 | sys_close(wfd); | 37369 | sys_close(wfd); |
38136 | do_utime(vcollected, mtime); | 37370 | do_utime(vcollected, mtime); |
38137 | kfree(vcollected); | 37371 | kfree(vcollected); |
38138 | @@ -350,7 +350,7 @@ static int __init do_copy(void) | 37372 | @@ -344,7 +344,7 @@ static int __init do_copy(void) |
38139 | state = SkipIt; | 37373 | state = SkipIt; |
38140 | return 0; | 37374 | return 0; |
38141 | } else { | 37375 | } else { |
@@ -38144,7 +37378,7 @@ diff -urNp linux-2.6.29.6/init/initramfs.c linux-2.6.29.6/init/initramfs.c | |||
38144 | body_len -= count; | 37378 | body_len -= count; |
38145 | eat(count); | 37379 | eat(count); |
38146 | return 1; | 37380 | return 1; |
38147 | @@ -361,8 +361,8 @@ static int __init do_symlink(void) | 37381 | @@ -355,8 +355,8 @@ static int __init do_symlink(void) |
38148 | { | 37382 | { |
38149 | collected[N_ALIGN(name_len) + body_len] = '\0'; | 37383 | collected[N_ALIGN(name_len) + body_len] = '\0'; |
38150 | clean_path(collected, 0); | 37384 | clean_path(collected, 0); |
@@ -38155,10 +37389,10 @@ diff -urNp linux-2.6.29.6/init/initramfs.c linux-2.6.29.6/init/initramfs.c | |||
38155 | do_utime(collected, mtime); | 37389 | do_utime(collected, mtime); |
38156 | state = SkipIt; | 37390 | state = SkipIt; |
38157 | next_state = Reset; | 37391 | next_state = Reset; |
38158 | diff -urNp linux-2.6.29.6/init/Kconfig linux-2.6.29.6/init/Kconfig | 37392 | diff -urNp linux-2.6.30.4/init/Kconfig linux-2.6.30.4/init/Kconfig |
38159 | --- linux-2.6.29.6/init/Kconfig 2009-07-02 19:41:20.000000000 -0400 | 37393 | --- linux-2.6.30.4/init/Kconfig 2009-07-24 17:47:51.000000000 -0400 |
38160 | +++ linux-2.6.29.6/init/Kconfig 2009-07-23 17:34:32.199729497 -0400 | 37394 | +++ linux-2.6.30.4/init/Kconfig 2009-07-30 11:10:49.547309962 -0400 |
38161 | @@ -712,6 +712,7 @@ config SYSCTL_SYSCALL | 37395 | @@ -780,6 +780,7 @@ config SYSCTL_SYSCALL |
38162 | config KALLSYMS | 37396 | config KALLSYMS |
38163 | bool "Load all symbols for debugging/ksymoops" if EMBEDDED | 37397 | bool "Load all symbols for debugging/ksymoops" if EMBEDDED |
38164 | default y | 37398 | default y |
@@ -38166,7 +37400,7 @@ diff -urNp linux-2.6.29.6/init/Kconfig linux-2.6.29.6/init/Kconfig | |||
38166 | help | 37400 | help |
38167 | Say Y here to let the kernel print out symbolic crash information and | 37401 | Say Y here to let the kernel print out symbolic crash information and |
38168 | symbolic stack backtraces. This increases the size of the kernel | 37402 | symbolic stack backtraces. This increases the size of the kernel |
38169 | @@ -887,7 +888,7 @@ config SLUB_DEBUG | 37403 | @@ -963,7 +964,7 @@ config SLUB_DEBUG |
38170 | 37404 | ||
38171 | config COMPAT_BRK | 37405 | config COMPAT_BRK |
38172 | bool "Disable heap randomization" | 37406 | bool "Disable heap randomization" |
@@ -38175,7 +37409,7 @@ diff -urNp linux-2.6.29.6/init/Kconfig linux-2.6.29.6/init/Kconfig | |||
38175 | help | 37409 | help |
38176 | Randomizing heap placement makes heap exploits harder, but it | 37410 | Randomizing heap placement makes heap exploits harder, but it |
38177 | also breaks ancient binaries (including anything libc5 based). | 37411 | also breaks ancient binaries (including anything libc5 based). |
38178 | @@ -960,9 +961,9 @@ config HAVE_GENERIC_DMA_COHERENT | 37412 | @@ -1050,9 +1051,9 @@ config HAVE_GENERIC_DMA_COHERENT |
38179 | 37413 | ||
38180 | config SLABINFO | 37414 | config SLABINFO |
38181 | bool | 37415 | bool |
@@ -38187,10 +37421,10 @@ diff -urNp linux-2.6.29.6/init/Kconfig linux-2.6.29.6/init/Kconfig | |||
38187 | 37421 | ||
38188 | config RT_MUTEXES | 37422 | config RT_MUTEXES |
38189 | boolean | 37423 | boolean |
38190 | diff -urNp linux-2.6.29.6/init/main.c linux-2.6.29.6/init/main.c | 37424 | diff -urNp linux-2.6.30.4/init/main.c linux-2.6.30.4/init/main.c |
38191 | --- linux-2.6.29.6/init/main.c 2009-07-02 19:41:20.000000000 -0400 | 37425 | --- linux-2.6.30.4/init/main.c 2009-07-24 17:47:51.000000000 -0400 |
38192 | +++ linux-2.6.29.6/init/main.c 2009-07-23 17:34:32.200835198 -0400 | 37426 | +++ linux-2.6.30.4/init/main.c 2009-07-30 11:10:49.548504780 -0400 |
38193 | @@ -96,6 +96,7 @@ static inline void mark_rodata_ro(void) | 37427 | @@ -98,6 +98,7 @@ static inline void mark_rodata_ro(void) |
38194 | #ifdef CONFIG_TC | 37428 | #ifdef CONFIG_TC |
38195 | extern void tc_init(void); | 37429 | extern void tc_init(void); |
38196 | #endif | 37430 | #endif |
@@ -38198,7 +37432,7 @@ diff -urNp linux-2.6.29.6/init/main.c linux-2.6.29.6/init/main.c | |||
38198 | 37432 | ||
38199 | enum system_states system_state __read_mostly; | 37433 | enum system_states system_state __read_mostly; |
38200 | EXPORT_SYMBOL(system_state); | 37434 | EXPORT_SYMBOL(system_state); |
38201 | @@ -182,6 +183,40 @@ static int __init set_reset_devices(char | 37435 | @@ -184,6 +185,40 @@ static int __init set_reset_devices(char |
38202 | 37436 | ||
38203 | __setup("reset_devices", set_reset_devices); | 37437 | __setup("reset_devices", set_reset_devices); |
38204 | 37438 | ||
@@ -38239,7 +37473,7 @@ diff -urNp linux-2.6.29.6/init/main.c linux-2.6.29.6/init/main.c | |||
38239 | static char * argv_init[MAX_INIT_ARGS+2] = { "init", NULL, }; | 37473 | static char * argv_init[MAX_INIT_ARGS+2] = { "init", NULL, }; |
38240 | char * envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, }; | 37474 | char * envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, }; |
38241 | static const char *panic_later, *panic_param; | 37475 | static const char *panic_later, *panic_param; |
38242 | @@ -375,7 +410,7 @@ static void __init setup_nr_cpu_ids(void | 37476 | @@ -377,7 +412,7 @@ static void __init setup_nr_cpu_ids(void |
38243 | } | 37477 | } |
38244 | 37478 | ||
38245 | #ifndef CONFIG_HAVE_SETUP_PER_CPU_AREA | 37479 | #ifndef CONFIG_HAVE_SETUP_PER_CPU_AREA |
@@ -38248,7 +37482,7 @@ diff -urNp linux-2.6.29.6/init/main.c linux-2.6.29.6/init/main.c | |||
38248 | 37482 | ||
38249 | EXPORT_SYMBOL(__per_cpu_offset); | 37483 | EXPORT_SYMBOL(__per_cpu_offset); |
38250 | 37484 | ||
38251 | @@ -694,6 +729,7 @@ int do_one_initcall(initcall_t fn) | 37485 | @@ -706,6 +741,7 @@ int do_one_initcall(initcall_t fn) |
38252 | { | 37486 | { |
38253 | int count = preempt_count(); | 37487 | int count = preempt_count(); |
38254 | ktime_t calltime, delta, rettime; | 37488 | ktime_t calltime, delta, rettime; |
@@ -38256,7 +37490,7 @@ diff -urNp linux-2.6.29.6/init/main.c linux-2.6.29.6/init/main.c | |||
38256 | char msgbuf[64]; | 37490 | char msgbuf[64]; |
38257 | struct boot_trace_call call; | 37491 | struct boot_trace_call call; |
38258 | struct boot_trace_ret ret; | 37492 | struct boot_trace_ret ret; |
38259 | @@ -724,15 +760,15 @@ int do_one_initcall(initcall_t fn) | 37493 | @@ -736,15 +772,15 @@ int do_one_initcall(initcall_t fn) |
38260 | sprintf(msgbuf, "error code %d ", ret.result); | 37494 | sprintf(msgbuf, "error code %d ", ret.result); |
38261 | 37495 | ||
38262 | if (preempt_count() != count) { | 37496 | if (preempt_count() != count) { |
@@ -38276,7 +37510,7 @@ diff -urNp linux-2.6.29.6/init/main.c linux-2.6.29.6/init/main.c | |||
38276 | } | 37510 | } |
38277 | 37511 | ||
38278 | return ret.result; | 37512 | return ret.result; |
38279 | @@ -873,6 +909,8 @@ static int __init kernel_init(void * unu | 37513 | @@ -885,6 +921,8 @@ static int __init kernel_init(void * unu |
38280 | prepare_namespace(); | 37514 | prepare_namespace(); |
38281 | } | 37515 | } |
38282 | 37516 | ||
@@ -38285,9 +37519,9 @@ diff -urNp linux-2.6.29.6/init/main.c linux-2.6.29.6/init/main.c | |||
38285 | /* | 37519 | /* |
38286 | * Ok, we have completed the initial bootup, and | 37520 | * Ok, we have completed the initial bootup, and |
38287 | * we're essentially up and running. Get rid of the | 37521 | * we're essentially up and running. Get rid of the |
38288 | diff -urNp linux-2.6.29.6/init/noinitramfs.c linux-2.6.29.6/init/noinitramfs.c | 37522 | diff -urNp linux-2.6.30.4/init/noinitramfs.c linux-2.6.30.4/init/noinitramfs.c |
38289 | --- linux-2.6.29.6/init/noinitramfs.c 2009-07-02 19:41:20.000000000 -0400 | 37523 | --- linux-2.6.30.4/init/noinitramfs.c 2009-07-24 17:47:51.000000000 -0400 |
38290 | +++ linux-2.6.29.6/init/noinitramfs.c 2009-07-23 17:34:32.200835198 -0400 | 37524 | +++ linux-2.6.30.4/init/noinitramfs.c 2009-07-30 09:48:10.122895747 -0400 |
38291 | @@ -29,7 +29,7 @@ static int __init default_rootfs(void) | 37525 | @@ -29,7 +29,7 @@ static int __init default_rootfs(void) |
38292 | { | 37526 | { |
38293 | int err; | 37527 | int err; |
@@ -38306,9 +37540,9 @@ diff -urNp linux-2.6.29.6/init/noinitramfs.c linux-2.6.29.6/init/noinitramfs.c | |||
38306 | if (err < 0) | 37540 | if (err < 0) |
38307 | goto out; | 37541 | goto out; |
38308 | 37542 | ||
38309 | diff -urNp linux-2.6.29.6/ipc/ipc_sysctl.c linux-2.6.29.6/ipc/ipc_sysctl.c | 37543 | diff -urNp linux-2.6.30.4/ipc/ipc_sysctl.c linux-2.6.30.4/ipc/ipc_sysctl.c |
38310 | --- linux-2.6.29.6/ipc/ipc_sysctl.c 2009-07-02 19:41:20.000000000 -0400 | 37544 | --- linux-2.6.30.4/ipc/ipc_sysctl.c 2009-07-24 17:47:51.000000000 -0400 |
38311 | +++ linux-2.6.29.6/ipc/ipc_sysctl.c 2009-07-23 17:34:32.200835198 -0400 | 37545 | +++ linux-2.6.30.4/ipc/ipc_sysctl.c 2009-07-30 09:48:10.122895747 -0400 |
38312 | @@ -267,7 +267,7 @@ static struct ctl_table ipc_kern_table[] | 37546 | @@ -267,7 +267,7 @@ static struct ctl_table ipc_kern_table[] |
38313 | .extra1 = &zero, | 37547 | .extra1 = &zero, |
38314 | .extra2 = &one, | 37548 | .extra2 = &one, |
@@ -38327,10 +37561,10 @@ diff -urNp linux-2.6.29.6/ipc/ipc_sysctl.c linux-2.6.29.6/ipc/ipc_sysctl.c | |||
38327 | }; | 37561 | }; |
38328 | 37562 | ||
38329 | static int __init ipc_sysctl_init(void) | 37563 | static int __init ipc_sysctl_init(void) |
38330 | diff -urNp linux-2.6.29.6/ipc/mqueue.c linux-2.6.29.6/ipc/mqueue.c | 37564 | diff -urNp linux-2.6.30.4/ipc/mqueue.c linux-2.6.30.4/ipc/mqueue.c |
38331 | --- linux-2.6.29.6/ipc/mqueue.c 2009-07-02 19:41:20.000000000 -0400 | 37565 | --- linux-2.6.30.4/ipc/mqueue.c 2009-07-24 17:47:51.000000000 -0400 |
38332 | +++ linux-2.6.29.6/ipc/mqueue.c 2009-07-23 18:40:28.718303595 -0400 | 37566 | +++ linux-2.6.30.4/ipc/mqueue.c 2009-07-30 11:10:49.559299006 -0400 |
38333 | @@ -90,7 +90,7 @@ struct mqueue_inode_info { | 37567 | @@ -76,7 +76,7 @@ struct mqueue_inode_info { |
38334 | 37568 | ||
38335 | static const struct inode_operations mqueue_dir_inode_operations; | 37569 | static const struct inode_operations mqueue_dir_inode_operations; |
38336 | static const struct file_operations mqueue_file_operations; | 37570 | static const struct file_operations mqueue_file_operations; |
@@ -38338,8 +37572,8 @@ diff -urNp linux-2.6.29.6/ipc/mqueue.c linux-2.6.29.6/ipc/mqueue.c | |||
38338 | +static const struct super_operations mqueue_super_ops; | 37572 | +static const struct super_operations mqueue_super_ops; |
38339 | static void remove_notification(struct mqueue_inode_info *info); | 37573 | static void remove_notification(struct mqueue_inode_info *info); |
38340 | 37574 | ||
38341 | static spinlock_t mq_lock; | 37575 | static struct kmem_cache *mqueue_inode_cachep; |
38342 | @@ -151,6 +151,7 @@ static struct inode *mqueue_get_inode(st | 37576 | @@ -149,6 +149,7 @@ static struct inode *mqueue_get_inode(st |
38343 | mq_bytes = (mq_msg_tblsz + | 37577 | mq_bytes = (mq_msg_tblsz + |
38344 | (info->attr.mq_maxmsg * info->attr.mq_msgsize)); | 37578 | (info->attr.mq_maxmsg * info->attr.mq_msgsize)); |
38345 | 37579 | ||
@@ -38347,7 +37581,7 @@ diff -urNp linux-2.6.29.6/ipc/mqueue.c linux-2.6.29.6/ipc/mqueue.c | |||
38347 | spin_lock(&mq_lock); | 37581 | spin_lock(&mq_lock); |
38348 | if (u->mq_bytes + mq_bytes < u->mq_bytes || | 37582 | if (u->mq_bytes + mq_bytes < u->mq_bytes || |
38349 | u->mq_bytes + mq_bytes > | 37583 | u->mq_bytes + mq_bytes > |
38350 | @@ -1189,7 +1190,7 @@ static const struct file_operations mque | 37584 | @@ -1222,7 +1223,7 @@ static const struct file_operations mque |
38351 | .read = mqueue_read_file, | 37585 | .read = mqueue_read_file, |
38352 | }; | 37586 | }; |
38353 | 37587 | ||
@@ -38356,9 +37590,9 @@ diff -urNp linux-2.6.29.6/ipc/mqueue.c linux-2.6.29.6/ipc/mqueue.c | |||
38356 | .alloc_inode = mqueue_alloc_inode, | 37590 | .alloc_inode = mqueue_alloc_inode, |
38357 | .destroy_inode = mqueue_destroy_inode, | 37591 | .destroy_inode = mqueue_destroy_inode, |
38358 | .statfs = simple_statfs, | 37592 | .statfs = simple_statfs, |
38359 | diff -urNp linux-2.6.29.6/ipc/msg.c linux-2.6.29.6/ipc/msg.c | 37593 | diff -urNp linux-2.6.30.4/ipc/msg.c linux-2.6.30.4/ipc/msg.c |
38360 | --- linux-2.6.29.6/ipc/msg.c 2009-07-02 19:41:20.000000000 -0400 | 37594 | --- linux-2.6.30.4/ipc/msg.c 2009-07-24 17:47:51.000000000 -0400 |
38361 | +++ linux-2.6.29.6/ipc/msg.c 2009-07-23 17:34:32.201947567 -0400 | 37595 | +++ linux-2.6.30.4/ipc/msg.c 2009-07-30 11:10:49.568315799 -0400 |
38362 | @@ -314,6 +314,7 @@ SYSCALL_DEFINE2(msgget, key_t, key, int, | 37596 | @@ -314,6 +314,7 @@ SYSCALL_DEFINE2(msgget, key_t, key, int, |
38363 | struct ipc_namespace *ns; | 37597 | struct ipc_namespace *ns; |
38364 | struct ipc_ops msg_ops; | 37598 | struct ipc_ops msg_ops; |
@@ -38388,9 +37622,9 @@ diff -urNp linux-2.6.29.6/ipc/msg.c linux-2.6.29.6/ipc/msg.c | |||
38388 | freeque(ns, ipcp); | 37622 | freeque(ns, ipcp); |
38389 | goto out_up; | 37623 | goto out_up; |
38390 | case IPC_SET: | 37624 | case IPC_SET: |
38391 | diff -urNp linux-2.6.29.6/ipc/sem.c linux-2.6.29.6/ipc/sem.c | 37625 | diff -urNp linux-2.6.30.4/ipc/sem.c linux-2.6.30.4/ipc/sem.c |
38392 | --- linux-2.6.29.6/ipc/sem.c 2009-07-02 19:41:20.000000000 -0400 | 37626 | --- linux-2.6.30.4/ipc/sem.c 2009-07-24 17:47:51.000000000 -0400 |
38393 | +++ linux-2.6.29.6/ipc/sem.c 2009-07-23 17:34:32.201947567 -0400 | 37627 | +++ linux-2.6.30.4/ipc/sem.c 2009-07-30 11:10:49.579322291 -0400 |
38394 | @@ -313,6 +313,7 @@ SYSCALL_DEFINE3(semget, key_t, key, int, | 37628 | @@ -313,6 +313,7 @@ SYSCALL_DEFINE3(semget, key_t, key, int, |
38395 | struct ipc_namespace *ns; | 37629 | struct ipc_namespace *ns; |
38396 | struct ipc_ops sem_ops; | 37630 | struct ipc_ops sem_ops; |
@@ -38420,10 +37654,10 @@ diff -urNp linux-2.6.29.6/ipc/sem.c linux-2.6.29.6/ipc/sem.c | |||
38420 | freeary(ns, ipcp); | 37654 | freeary(ns, ipcp); |
38421 | goto out_up; | 37655 | goto out_up; |
38422 | case IPC_SET: | 37656 | case IPC_SET: |
38423 | diff -urNp linux-2.6.29.6/ipc/shm.c linux-2.6.29.6/ipc/shm.c | 37657 | diff -urNp linux-2.6.30.4/ipc/shm.c linux-2.6.30.4/ipc/shm.c |
38424 | --- linux-2.6.29.6/ipc/shm.c 2009-07-02 19:41:20.000000000 -0400 | 37658 | --- linux-2.6.30.4/ipc/shm.c 2009-07-24 17:47:51.000000000 -0400 |
38425 | +++ linux-2.6.29.6/ipc/shm.c 2009-07-23 19:29:38.792396623 -0400 | 37659 | +++ linux-2.6.30.4/ipc/shm.c 2009-07-30 11:10:49.582310282 -0400 |
38426 | @@ -54,7 +54,7 @@ struct shm_file_data { | 37660 | @@ -55,7 +55,7 @@ struct shm_file_data { |
38427 | #define shm_file_data(file) (*((struct shm_file_data **)&(file)->private_data)) | 37661 | #define shm_file_data(file) (*((struct shm_file_data **)&(file)->private_data)) |
38428 | 37662 | ||
38429 | static const struct file_operations shm_file_operations; | 37663 | static const struct file_operations shm_file_operations; |
@@ -38432,7 +37666,7 @@ diff -urNp linux-2.6.29.6/ipc/shm.c linux-2.6.29.6/ipc/shm.c | |||
38432 | 37666 | ||
38433 | #define shm_ids(ns) ((ns)->ids[IPC_SHM_IDS]) | 37667 | #define shm_ids(ns) ((ns)->ids[IPC_SHM_IDS]) |
38434 | 37668 | ||
38435 | @@ -69,6 +69,14 @@ static void shm_destroy (struct ipc_name | 37669 | @@ -70,6 +70,14 @@ static void shm_destroy (struct ipc_name |
38436 | static int sysvipc_shm_proc_show(struct seq_file *s, void *it); | 37670 | static int sysvipc_shm_proc_show(struct seq_file *s, void *it); |
38437 | #endif | 37671 | #endif |
38438 | 37672 | ||
@@ -38447,7 +37681,7 @@ diff -urNp linux-2.6.29.6/ipc/shm.c linux-2.6.29.6/ipc/shm.c | |||
38447 | void shm_init_ns(struct ipc_namespace *ns) | 37681 | void shm_init_ns(struct ipc_namespace *ns) |
38448 | { | 37682 | { |
38449 | ns->shm_ctlmax = SHMMAX; | 37683 | ns->shm_ctlmax = SHMMAX; |
38450 | @@ -87,6 +95,8 @@ static void do_shm_rmid(struct ipc_names | 37684 | @@ -88,6 +96,8 @@ static void do_shm_rmid(struct ipc_names |
38451 | struct shmid_kernel *shp; | 37685 | struct shmid_kernel *shp; |
38452 | shp = container_of(ipcp, struct shmid_kernel, shm_perm); | 37686 | shp = container_of(ipcp, struct shmid_kernel, shm_perm); |
38453 | 37687 | ||
@@ -38456,7 +37690,7 @@ diff -urNp linux-2.6.29.6/ipc/shm.c linux-2.6.29.6/ipc/shm.c | |||
38456 | if (shp->shm_nattch){ | 37690 | if (shp->shm_nattch){ |
38457 | shp->shm_perm.mode |= SHM_DEST; | 37691 | shp->shm_perm.mode |= SHM_DEST; |
38458 | /* Do not find it any more */ | 37692 | /* Do not find it any more */ |
38459 | @@ -311,7 +321,7 @@ static const struct file_operations shm_ | 37693 | @@ -312,7 +322,7 @@ static const struct file_operations shm_ |
38460 | .get_unmapped_area = shm_get_unmapped_area, | 37694 | .get_unmapped_area = shm_get_unmapped_area, |
38461 | }; | 37695 | }; |
38462 | 37696 | ||
@@ -38465,7 +37699,7 @@ diff -urNp linux-2.6.29.6/ipc/shm.c linux-2.6.29.6/ipc/shm.c | |||
38465 | .open = shm_open, /* callback for a new vm-area open */ | 37699 | .open = shm_open, /* callback for a new vm-area open */ |
38466 | .close = shm_close, /* callback for when the vm-area is released */ | 37700 | .close = shm_close, /* callback for when the vm-area is released */ |
38467 | .fault = shm_fault, | 37701 | .fault = shm_fault, |
38468 | @@ -394,6 +404,14 @@ static int newseg(struct ipc_namespace * | 37702 | @@ -396,6 +406,14 @@ static int newseg(struct ipc_namespace * |
38469 | shp->shm_lprid = 0; | 37703 | shp->shm_lprid = 0; |
38470 | shp->shm_atim = shp->shm_dtim = 0; | 37704 | shp->shm_atim = shp->shm_dtim = 0; |
38471 | shp->shm_ctim = get_seconds(); | 37705 | shp->shm_ctim = get_seconds(); |
@@ -38480,7 +37714,7 @@ diff -urNp linux-2.6.29.6/ipc/shm.c linux-2.6.29.6/ipc/shm.c | |||
38480 | shp->shm_segsz = size; | 37714 | shp->shm_segsz = size; |
38481 | shp->shm_nattch = 0; | 37715 | shp->shm_nattch = 0; |
38482 | shp->shm_file = file; | 37716 | shp->shm_file = file; |
38483 | @@ -447,6 +465,7 @@ SYSCALL_DEFINE3(shmget, key_t, key, size | 37717 | @@ -449,6 +467,7 @@ SYSCALL_DEFINE3(shmget, key_t, key, size |
38484 | struct ipc_namespace *ns; | 37718 | struct ipc_namespace *ns; |
38485 | struct ipc_ops shm_ops; | 37719 | struct ipc_ops shm_ops; |
38486 | struct ipc_params shm_params; | 37720 | struct ipc_params shm_params; |
@@ -38488,7 +37722,7 @@ diff -urNp linux-2.6.29.6/ipc/shm.c linux-2.6.29.6/ipc/shm.c | |||
38488 | 37722 | ||
38489 | ns = current->nsproxy->ipc_ns; | 37723 | ns = current->nsproxy->ipc_ns; |
38490 | 37724 | ||
38491 | @@ -458,7 +477,11 @@ SYSCALL_DEFINE3(shmget, key_t, key, size | 37725 | @@ -460,7 +479,11 @@ SYSCALL_DEFINE3(shmget, key_t, key, size |
38492 | shm_params.flg = shmflg; | 37726 | shm_params.flg = shmflg; |
38493 | shm_params.u.size = size; | 37727 | shm_params.u.size = size; |
38494 | 37728 | ||
@@ -38501,7 +37735,7 @@ diff -urNp linux-2.6.29.6/ipc/shm.c linux-2.6.29.6/ipc/shm.c | |||
38501 | } | 37735 | } |
38502 | 37736 | ||
38503 | static inline unsigned long copy_shmid_to_user(void __user *buf, struct shmid64_ds *in, int version) | 37737 | static inline unsigned long copy_shmid_to_user(void __user *buf, struct shmid64_ds *in, int version) |
38504 | @@ -873,9 +896,21 @@ long do_shmat(int shmid, char __user *sh | 37738 | @@ -877,9 +900,21 @@ long do_shmat(int shmid, char __user *sh |
38505 | if (err) | 37739 | if (err) |
38506 | goto out_unlock; | 37740 | goto out_unlock; |
38507 | 37741 | ||
@@ -38523,10 +37757,10 @@ diff -urNp linux-2.6.29.6/ipc/shm.c linux-2.6.29.6/ipc/shm.c | |||
38523 | size = i_size_read(path.dentry->d_inode); | 37757 | size = i_size_read(path.dentry->d_inode); |
38524 | shm_unlock(shp); | 37758 | shm_unlock(shp); |
38525 | 37759 | ||
38526 | diff -urNp linux-2.6.29.6/ipc/util.c linux-2.6.29.6/ipc/util.c | 37760 | diff -urNp linux-2.6.30.4/ipc/util.c linux-2.6.30.4/ipc/util.c |
38527 | --- linux-2.6.29.6/ipc/util.c 2009-07-02 19:41:20.000000000 -0400 | 37761 | --- linux-2.6.30.4/ipc/util.c 2009-07-24 17:47:51.000000000 -0400 |
38528 | +++ linux-2.6.29.6/ipc/util.c 2009-07-23 18:40:28.718303595 -0400 | 37762 | +++ linux-2.6.30.4/ipc/util.c 2009-07-30 09:48:10.123853712 -0400 |
38529 | @@ -951,7 +951,7 @@ static int sysvipc_proc_show(struct seq_ | 37763 | @@ -942,7 +942,7 @@ static int sysvipc_proc_show(struct seq_ |
38530 | return iface->show(s, it); | 37764 | return iface->show(s, it); |
38531 | } | 37765 | } |
38532 | 37766 | ||
@@ -38535,9 +37769,9 @@ diff -urNp linux-2.6.29.6/ipc/util.c linux-2.6.29.6/ipc/util.c | |||
38535 | .start = sysvipc_proc_start, | 37769 | .start = sysvipc_proc_start, |
38536 | .stop = sysvipc_proc_stop, | 37770 | .stop = sysvipc_proc_stop, |
38537 | .next = sysvipc_proc_next, | 37771 | .next = sysvipc_proc_next, |
38538 | diff -urNp linux-2.6.29.6/kernel/acct.c linux-2.6.29.6/kernel/acct.c | 37772 | diff -urNp linux-2.6.30.4/kernel/acct.c linux-2.6.30.4/kernel/acct.c |
38539 | --- linux-2.6.29.6/kernel/acct.c 2009-07-02 19:41:20.000000000 -0400 | 37773 | --- linux-2.6.30.4/kernel/acct.c 2009-07-24 17:47:51.000000000 -0400 |
38540 | +++ linux-2.6.29.6/kernel/acct.c 2009-07-23 17:34:32.202812463 -0400 | 37774 | +++ linux-2.6.30.4/kernel/acct.c 2009-07-30 09:48:10.124859675 -0400 |
38541 | @@ -574,7 +574,7 @@ static void do_acct_process(struct bsd_a | 37775 | @@ -574,7 +574,7 @@ static void do_acct_process(struct bsd_a |
38542 | */ | 37776 | */ |
38543 | flim = current->signal->rlim[RLIMIT_FSIZE].rlim_cur; | 37777 | flim = current->signal->rlim[RLIMIT_FSIZE].rlim_cur; |
@@ -38547,9 +37781,9 @@ diff -urNp linux-2.6.29.6/kernel/acct.c linux-2.6.29.6/kernel/acct.c | |||
38547 | sizeof(acct_t), &file->f_pos); | 37781 | sizeof(acct_t), &file->f_pos); |
38548 | current->signal->rlim[RLIMIT_FSIZE].rlim_cur = flim; | 37782 | current->signal->rlim[RLIMIT_FSIZE].rlim_cur = flim; |
38549 | set_fs(fs); | 37783 | set_fs(fs); |
38550 | diff -urNp linux-2.6.29.6/kernel/capability.c linux-2.6.29.6/kernel/capability.c | 37784 | diff -urNp linux-2.6.30.4/kernel/capability.c linux-2.6.30.4/kernel/capability.c |
38551 | --- linux-2.6.29.6/kernel/capability.c 2009-07-02 19:41:20.000000000 -0400 | 37785 | --- linux-2.6.30.4/kernel/capability.c 2009-07-24 17:47:51.000000000 -0400 |
38552 | +++ linux-2.6.29.6/kernel/capability.c 2009-07-23 17:34:32.203740622 -0400 | 37786 | +++ linux-2.6.30.4/kernel/capability.c 2009-07-30 11:10:49.599076288 -0400 |
38553 | @@ -306,10 +306,21 @@ int capable(int cap) | 37787 | @@ -306,10 +306,21 @@ int capable(int cap) |
38554 | BUG(); | 37788 | BUG(); |
38555 | } | 37789 | } |
@@ -38573,10 +37807,10 @@ diff -urNp linux-2.6.29.6/kernel/capability.c linux-2.6.29.6/kernel/capability.c | |||
38573 | + | 37807 | + |
38574 | EXPORT_SYMBOL(capable); | 37808 | EXPORT_SYMBOL(capable); |
38575 | +EXPORT_SYMBOL(capable_nolog); | 37809 | +EXPORT_SYMBOL(capable_nolog); |
38576 | diff -urNp linux-2.6.29.6/kernel/cgroup.c linux-2.6.29.6/kernel/cgroup.c | 37810 | diff -urNp linux-2.6.30.4/kernel/cgroup.c linux-2.6.30.4/kernel/cgroup.c |
38577 | --- linux-2.6.29.6/kernel/cgroup.c 2009-07-02 19:41:20.000000000 -0400 | 37811 | --- linux-2.6.30.4/kernel/cgroup.c 2009-07-24 17:47:51.000000000 -0400 |
38578 | +++ linux-2.6.29.6/kernel/cgroup.c 2009-07-23 18:40:28.719355936 -0400 | 37812 | +++ linux-2.6.30.4/kernel/cgroup.c 2009-07-30 09:48:10.125699437 -0400 |
38579 | @@ -560,8 +560,8 @@ void cgroup_unlock(void) | 37813 | @@ -594,8 +594,8 @@ void cgroup_unlock(void) |
38580 | static int cgroup_mkdir(struct inode *dir, struct dentry *dentry, int mode); | 37814 | static int cgroup_mkdir(struct inode *dir, struct dentry *dentry, int mode); |
38581 | static int cgroup_rmdir(struct inode *unused_dir, struct dentry *dentry); | 37815 | static int cgroup_rmdir(struct inode *unused_dir, struct dentry *dentry); |
38582 | static int cgroup_populate_dir(struct cgroup *cgrp); | 37816 | static int cgroup_populate_dir(struct cgroup *cgrp); |
@@ -38587,7 +37821,7 @@ diff -urNp linux-2.6.29.6/kernel/cgroup.c linux-2.6.29.6/kernel/cgroup.c | |||
38587 | 37821 | ||
38588 | static struct backing_dev_info cgroup_backing_dev_info = { | 37822 | static struct backing_dev_info cgroup_backing_dev_info = { |
38589 | .capabilities = BDI_CAP_NO_ACCT_AND_WRITEBACK, | 37823 | .capabilities = BDI_CAP_NO_ACCT_AND_WRITEBACK, |
38590 | @@ -872,7 +872,7 @@ static int cgroup_remount(struct super_b | 37824 | @@ -930,7 +930,7 @@ static int cgroup_remount(struct super_b |
38591 | return ret; | 37825 | return ret; |
38592 | } | 37826 | } |
38593 | 37827 | ||
@@ -38596,7 +37830,7 @@ diff -urNp linux-2.6.29.6/kernel/cgroup.c linux-2.6.29.6/kernel/cgroup.c | |||
38596 | .statfs = simple_statfs, | 37830 | .statfs = simple_statfs, |
38597 | .drop_inode = generic_delete_inode, | 37831 | .drop_inode = generic_delete_inode, |
38598 | .show_options = cgroup_show_options, | 37832 | .show_options = cgroup_show_options, |
38599 | @@ -1550,7 +1550,7 @@ static int cgroup_seqfile_release(struct | 37833 | @@ -1612,7 +1612,7 @@ static int cgroup_seqfile_release(struct |
38600 | return single_release(inode, file); | 37834 | return single_release(inode, file); |
38601 | } | 37835 | } |
38602 | 37836 | ||
@@ -38605,7 +37839,7 @@ diff -urNp linux-2.6.29.6/kernel/cgroup.c linux-2.6.29.6/kernel/cgroup.c | |||
38605 | .read = seq_read, | 37839 | .read = seq_read, |
38606 | .write = cgroup_file_write, | 37840 | .write = cgroup_file_write, |
38607 | .llseek = seq_lseek, | 37841 | .llseek = seq_lseek, |
38608 | @@ -1609,7 +1609,7 @@ static int cgroup_rename(struct inode *o | 37842 | @@ -1671,7 +1671,7 @@ static int cgroup_rename(struct inode *o |
38609 | return simple_rename(old_dir, old_dentry, new_dir, new_dentry); | 37843 | return simple_rename(old_dir, old_dentry, new_dir, new_dentry); |
38610 | } | 37844 | } |
38611 | 37845 | ||
@@ -38614,7 +37848,7 @@ diff -urNp linux-2.6.29.6/kernel/cgroup.c linux-2.6.29.6/kernel/cgroup.c | |||
38614 | .read = cgroup_file_read, | 37848 | .read = cgroup_file_read, |
38615 | .write = cgroup_file_write, | 37849 | .write = cgroup_file_write, |
38616 | .llseek = generic_file_llseek, | 37850 | .llseek = generic_file_llseek, |
38617 | @@ -1617,7 +1617,7 @@ static struct file_operations cgroup_fil | 37851 | @@ -1679,7 +1679,7 @@ static struct file_operations cgroup_fil |
38618 | .release = cgroup_file_release, | 37852 | .release = cgroup_file_release, |
38619 | }; | 37853 | }; |
38620 | 37854 | ||
@@ -38623,7 +37857,7 @@ diff -urNp linux-2.6.29.6/kernel/cgroup.c linux-2.6.29.6/kernel/cgroup.c | |||
38623 | .lookup = simple_lookup, | 37857 | .lookup = simple_lookup, |
38624 | .mkdir = cgroup_mkdir, | 37858 | .mkdir = cgroup_mkdir, |
38625 | .rmdir = cgroup_rmdir, | 37859 | .rmdir = cgroup_rmdir, |
38626 | @@ -2171,7 +2171,7 @@ static int cgroup_tasks_show(struct seq_ | 37860 | @@ -2262,7 +2262,7 @@ static int cgroup_tasks_show(struct seq_ |
38627 | return seq_printf(s, "%d\n", *(int *)v); | 37861 | return seq_printf(s, "%d\n", *(int *)v); |
38628 | } | 37862 | } |
38629 | 37863 | ||
@@ -38632,7 +37866,7 @@ diff -urNp linux-2.6.29.6/kernel/cgroup.c linux-2.6.29.6/kernel/cgroup.c | |||
38632 | .start = cgroup_tasks_start, | 37866 | .start = cgroup_tasks_start, |
38633 | .stop = cgroup_tasks_stop, | 37867 | .stop = cgroup_tasks_stop, |
38634 | .next = cgroup_tasks_next, | 37868 | .next = cgroup_tasks_next, |
38635 | @@ -2201,7 +2201,7 @@ static int cgroup_tasks_release(struct i | 37869 | @@ -2292,7 +2292,7 @@ static int cgroup_tasks_release(struct i |
38636 | return seq_release(inode, file); | 37870 | return seq_release(inode, file); |
38637 | } | 37871 | } |
38638 | 37872 | ||
@@ -38641,7 +37875,7 @@ diff -urNp linux-2.6.29.6/kernel/cgroup.c linux-2.6.29.6/kernel/cgroup.c | |||
38641 | .read = seq_read, | 37875 | .read = seq_read, |
38642 | .llseek = seq_lseek, | 37876 | .llseek = seq_lseek, |
38643 | .write = cgroup_file_write, | 37877 | .write = cgroup_file_write, |
38644 | @@ -2796,7 +2796,7 @@ static int cgroup_open(struct inode *ino | 37878 | @@ -2930,7 +2930,7 @@ static int cgroup_open(struct inode *ino |
38645 | return single_open(file, proc_cgroup_show, pid); | 37879 | return single_open(file, proc_cgroup_show, pid); |
38646 | } | 37880 | } |
38647 | 37881 | ||
@@ -38650,7 +37884,7 @@ diff -urNp linux-2.6.29.6/kernel/cgroup.c linux-2.6.29.6/kernel/cgroup.c | |||
38650 | .open = cgroup_open, | 37884 | .open = cgroup_open, |
38651 | .read = seq_read, | 37885 | .read = seq_read, |
38652 | .llseek = seq_lseek, | 37886 | .llseek = seq_lseek, |
38653 | @@ -2825,7 +2825,7 @@ static int cgroupstats_open(struct inode | 37887 | @@ -2959,7 +2959,7 @@ static int cgroupstats_open(struct inode |
38654 | return single_open(file, proc_cgroupstats_show, NULL); | 37888 | return single_open(file, proc_cgroupstats_show, NULL); |
38655 | } | 37889 | } |
38656 | 37890 | ||
@@ -38659,9 +37893,9 @@ diff -urNp linux-2.6.29.6/kernel/cgroup.c linux-2.6.29.6/kernel/cgroup.c | |||
38659 | .open = cgroupstats_open, | 37893 | .open = cgroupstats_open, |
38660 | .read = seq_read, | 37894 | .read = seq_read, |
38661 | .llseek = seq_lseek, | 37895 | .llseek = seq_lseek, |
38662 | diff -urNp linux-2.6.29.6/kernel/configs.c linux-2.6.29.6/kernel/configs.c | 37896 | diff -urNp linux-2.6.30.4/kernel/configs.c linux-2.6.30.4/kernel/configs.c |
38663 | --- linux-2.6.29.6/kernel/configs.c 2009-07-02 19:41:20.000000000 -0400 | 37897 | --- linux-2.6.30.4/kernel/configs.c 2009-07-24 17:47:51.000000000 -0400 |
38664 | +++ linux-2.6.29.6/kernel/configs.c 2009-07-23 17:34:32.203740622 -0400 | 37898 | +++ linux-2.6.30.4/kernel/configs.c 2009-07-30 11:10:49.609950770 -0400 |
38665 | @@ -73,8 +73,19 @@ static int __init ikconfig_init(void) | 37899 | @@ -73,8 +73,19 @@ static int __init ikconfig_init(void) |
38666 | struct proc_dir_entry *entry; | 37900 | struct proc_dir_entry *entry; |
38667 | 37901 | ||
@@ -38682,9 +37916,9 @@ diff -urNp linux-2.6.29.6/kernel/configs.c linux-2.6.29.6/kernel/configs.c | |||
38682 | if (!entry) | 37916 | if (!entry) |
38683 | return -ENOMEM; | 37917 | return -ENOMEM; |
38684 | 37918 | ||
38685 | diff -urNp linux-2.6.29.6/kernel/cpu.c linux-2.6.29.6/kernel/cpu.c | 37919 | diff -urNp linux-2.6.30.4/kernel/cpu.c linux-2.6.30.4/kernel/cpu.c |
38686 | --- linux-2.6.29.6/kernel/cpu.c 2009-07-02 19:41:20.000000000 -0400 | 37920 | --- linux-2.6.30.4/kernel/cpu.c 2009-07-24 17:47:51.000000000 -0400 |
38687 | +++ linux-2.6.29.6/kernel/cpu.c 2009-07-23 17:34:32.203740622 -0400 | 37921 | +++ linux-2.6.30.4/kernel/cpu.c 2009-07-30 09:48:10.125699437 -0400 |
38688 | @@ -19,7 +19,7 @@ | 37922 | @@ -19,7 +19,7 @@ |
38689 | /* Serializes the updates to cpu_online_mask, cpu_present_mask */ | 37923 | /* Serializes the updates to cpu_online_mask, cpu_present_mask */ |
38690 | static DEFINE_MUTEX(cpu_add_remove_lock); | 37924 | static DEFINE_MUTEX(cpu_add_remove_lock); |
@@ -38694,9 +37928,9 @@ diff -urNp linux-2.6.29.6/kernel/cpu.c linux-2.6.29.6/kernel/cpu.c | |||
38694 | 37928 | ||
38695 | /* If set, cpu_up and cpu_down will return -EBUSY and do nothing. | 37929 | /* If set, cpu_up and cpu_down will return -EBUSY and do nothing. |
38696 | * Should always be manipulated under cpu_add_remove_lock | 37930 | * Should always be manipulated under cpu_add_remove_lock |
38697 | diff -urNp linux-2.6.29.6/kernel/cred.c linux-2.6.29.6/kernel/cred.c | 37931 | diff -urNp linux-2.6.30.4/kernel/cred.c linux-2.6.30.4/kernel/cred.c |
38698 | --- linux-2.6.29.6/kernel/cred.c 2009-07-02 19:41:20.000000000 -0400 | 37932 | --- linux-2.6.30.4/kernel/cred.c 2009-07-24 17:47:51.000000000 -0400 |
38699 | +++ linux-2.6.29.6/kernel/cred.c 2009-07-23 17:34:32.203740622 -0400 | 37933 | +++ linux-2.6.30.4/kernel/cred.c 2009-07-30 11:10:49.610408907 -0400 |
38700 | @@ -366,6 +366,8 @@ int commit_creds(struct cred *new) | 37934 | @@ -366,6 +366,8 @@ int commit_creds(struct cred *new) |
38701 | 37935 | ||
38702 | get_cred(new); /* we will require a ref for the subj creds too */ | 37936 | get_cred(new); /* we will require a ref for the subj creds too */ |
@@ -38706,10 +37940,10 @@ diff -urNp linux-2.6.29.6/kernel/cred.c linux-2.6.29.6/kernel/cred.c | |||
38706 | /* dumpability changes */ | 37940 | /* dumpability changes */ |
38707 | if (old->euid != new->euid || | 37941 | if (old->euid != new->euid || |
38708 | old->egid != new->egid || | 37942 | old->egid != new->egid || |
38709 | diff -urNp linux-2.6.29.6/kernel/exit.c linux-2.6.29.6/kernel/exit.c | 37943 | diff -urNp linux-2.6.30.4/kernel/exit.c linux-2.6.30.4/kernel/exit.c |
38710 | --- linux-2.6.29.6/kernel/exit.c 2009-07-02 19:41:20.000000000 -0400 | 37944 | --- linux-2.6.30.4/kernel/exit.c 2009-07-24 17:47:51.000000000 -0400 |
38711 | +++ linux-2.6.29.6/kernel/exit.c 2009-07-23 17:34:32.204997623 -0400 | 37945 | +++ linux-2.6.30.4/kernel/exit.c 2009-07-30 11:10:49.617311944 -0400 |
38712 | @@ -59,6 +59,10 @@ DEFINE_TRACE(sched_process_free); | 37946 | @@ -60,6 +60,10 @@ DEFINE_TRACE(sched_process_free); |
38713 | DEFINE_TRACE(sched_process_exit); | 37947 | DEFINE_TRACE(sched_process_exit); |
38714 | DEFINE_TRACE(sched_process_wait); | 37948 | DEFINE_TRACE(sched_process_wait); |
38715 | 37949 | ||
@@ -38719,8 +37953,8 @@ diff -urNp linux-2.6.29.6/kernel/exit.c linux-2.6.29.6/kernel/exit.c | |||
38719 | + | 37953 | + |
38720 | static void exit_mm(struct task_struct * tsk); | 37954 | static void exit_mm(struct task_struct * tsk); |
38721 | 37955 | ||
38722 | static inline int task_detached(struct task_struct *p) | 37956 | static void __unhash_process(struct task_struct *p) |
38723 | @@ -172,6 +176,8 @@ void release_task(struct task_struct * p | 37957 | @@ -168,6 +172,8 @@ void release_task(struct task_struct * p |
38724 | struct task_struct *leader; | 37958 | struct task_struct *leader; |
38725 | int zap_leader; | 37959 | int zap_leader; |
38726 | repeat: | 37960 | repeat: |
@@ -38729,7 +37963,7 @@ diff -urNp linux-2.6.29.6/kernel/exit.c linux-2.6.29.6/kernel/exit.c | |||
38729 | tracehook_prepare_release_task(p); | 37963 | tracehook_prepare_release_task(p); |
38730 | /* don't need to get the RCU readlock here - the process is dead and | 37964 | /* don't need to get the RCU readlock here - the process is dead and |
38731 | * can't be modifying its own credentials */ | 37965 | * can't be modifying its own credentials */ |
38732 | @@ -338,11 +344,22 @@ static void reparent_to_kthreadd(void) | 37966 | @@ -334,11 +340,22 @@ static void reparent_to_kthreadd(void) |
38733 | { | 37967 | { |
38734 | write_lock_irq(&tasklist_lock); | 37968 | write_lock_irq(&tasklist_lock); |
38735 | 37969 | ||
@@ -38752,7 +37986,7 @@ diff -urNp linux-2.6.29.6/kernel/exit.c linux-2.6.29.6/kernel/exit.c | |||
38752 | /* Set the exit signal to SIGCHLD so we signal init on exit */ | 37986 | /* Set the exit signal to SIGCHLD so we signal init on exit */ |
38753 | current->exit_signal = SIGCHLD; | 37987 | current->exit_signal = SIGCHLD; |
38754 | 37988 | ||
38755 | @@ -435,6 +452,17 @@ void daemonize(const char *name, ...) | 37989 | @@ -427,6 +444,17 @@ void daemonize(const char *name, ...) |
38756 | vsnprintf(current->comm, sizeof(current->comm), name, args); | 37990 | vsnprintf(current->comm, sizeof(current->comm), name, args); |
38757 | va_end(args); | 37991 | va_end(args); |
38758 | 37992 | ||
@@ -38770,7 +38004,7 @@ diff -urNp linux-2.6.29.6/kernel/exit.c linux-2.6.29.6/kernel/exit.c | |||
38770 | /* | 38004 | /* |
38771 | * If we were started as result of loading a module, close all of the | 38005 | * If we were started as result of loading a module, close all of the |
38772 | * user space pages. We don't need them, and if we didn't close them | 38006 | * user space pages. We don't need them, and if we didn't close them |
38773 | @@ -1034,6 +1062,9 @@ NORET_TYPE void do_exit(long code) | 38007 | @@ -954,6 +982,9 @@ NORET_TYPE void do_exit(long code) |
38774 | tsk->exit_code = code; | 38008 | tsk->exit_code = code; |
38775 | taskstats_exit(tsk, group_dead); | 38009 | taskstats_exit(tsk, group_dead); |
38776 | 38010 | ||
@@ -38780,7 +38014,7 @@ diff -urNp linux-2.6.29.6/kernel/exit.c linux-2.6.29.6/kernel/exit.c | |||
38780 | exit_mm(tsk); | 38014 | exit_mm(tsk); |
38781 | 38015 | ||
38782 | if (group_dead) | 38016 | if (group_dead) |
38783 | @@ -1238,7 +1269,7 @@ static int wait_task_zombie(struct task_ | 38017 | @@ -1158,7 +1189,7 @@ static int wait_task_zombie(struct task_ |
38784 | 38018 | ||
38785 | if (unlikely(options & WNOWAIT)) { | 38019 | if (unlikely(options & WNOWAIT)) { |
38786 | int exit_code = p->exit_code; | 38020 | int exit_code = p->exit_code; |
@@ -38789,11 +38023,11 @@ diff -urNp linux-2.6.29.6/kernel/exit.c linux-2.6.29.6/kernel/exit.c | |||
38789 | 38023 | ||
38790 | get_task_struct(p); | 38024 | get_task_struct(p); |
38791 | read_unlock(&tasklist_lock); | 38025 | read_unlock(&tasklist_lock); |
38792 | diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c | 38026 | diff -urNp linux-2.6.30.4/kernel/fork.c linux-2.6.30.4/kernel/fork.c |
38793 | --- linux-2.6.29.6/kernel/fork.c 2009-07-02 19:41:20.000000000 -0400 | 38027 | --- linux-2.6.30.4/kernel/fork.c 2009-07-24 17:47:51.000000000 -0400 |
38794 | +++ linux-2.6.29.6/kernel/fork.c 2009-07-23 17:34:32.205707403 -0400 | 38028 | +++ linux-2.6.30.4/kernel/fork.c 2009-07-30 11:10:49.618406568 -0400 |
38795 | @@ -239,7 +239,7 @@ static struct task_struct *dup_task_stru | 38029 | @@ -245,7 +245,7 @@ static struct task_struct *dup_task_stru |
38796 | setup_thread_stack(tsk, orig); | 38030 | *stackend = STACK_END_MAGIC; /* for overflow detection */ |
38797 | 38031 | ||
38798 | #ifdef CONFIG_CC_STACKPROTECTOR | 38032 | #ifdef CONFIG_CC_STACKPROTECTOR |
38799 | - tsk->stack_canary = get_random_int(); | 38033 | - tsk->stack_canary = get_random_int(); |
@@ -38801,7 +38035,7 @@ diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c | |||
38801 | #endif | 38035 | #endif |
38802 | 38036 | ||
38803 | /* One for us, one for whoever does the "release_task()" (usually parent) */ | 38037 | /* One for us, one for whoever does the "release_task()" (usually parent) */ |
38804 | @@ -276,8 +276,8 @@ static int dup_mmap(struct mm_struct *mm | 38038 | @@ -282,8 +282,8 @@ static int dup_mmap(struct mm_struct *mm |
38805 | mm->locked_vm = 0; | 38039 | mm->locked_vm = 0; |
38806 | mm->mmap = NULL; | 38040 | mm->mmap = NULL; |
38807 | mm->mmap_cache = NULL; | 38041 | mm->mmap_cache = NULL; |
@@ -38810,9 +38044,9 @@ diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c | |||
38810 | + mm->free_area_cache = oldmm->free_area_cache; | 38044 | + mm->free_area_cache = oldmm->free_area_cache; |
38811 | + mm->cached_hole_size = oldmm->cached_hole_size; | 38045 | + mm->cached_hole_size = oldmm->cached_hole_size; |
38812 | mm->map_count = 0; | 38046 | mm->map_count = 0; |
38813 | cpus_clear(mm->cpu_vm_mask); | 38047 | cpumask_clear(mm_cpumask(mm)); |
38814 | mm->mm_rb = RB_ROOT; | 38048 | mm->mm_rb = RB_ROOT; |
38815 | @@ -314,6 +314,7 @@ static int dup_mmap(struct mm_struct *mm | 38049 | @@ -320,6 +320,7 @@ static int dup_mmap(struct mm_struct *mm |
38816 | tmp->vm_flags &= ~VM_LOCKED; | 38050 | tmp->vm_flags &= ~VM_LOCKED; |
38817 | tmp->vm_mm = mm; | 38051 | tmp->vm_mm = mm; |
38818 | tmp->vm_next = NULL; | 38052 | tmp->vm_next = NULL; |
@@ -38820,7 +38054,7 @@ diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c | |||
38820 | anon_vma_link(tmp); | 38054 | anon_vma_link(tmp); |
38821 | file = tmp->vm_file; | 38055 | file = tmp->vm_file; |
38822 | if (file) { | 38056 | if (file) { |
38823 | @@ -361,6 +362,31 @@ static int dup_mmap(struct mm_struct *mm | 38057 | @@ -367,6 +368,31 @@ static int dup_mmap(struct mm_struct *mm |
38824 | if (retval) | 38058 | if (retval) |
38825 | goto out; | 38059 | goto out; |
38826 | } | 38060 | } |
@@ -38852,7 +38086,7 @@ diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c | |||
38852 | /* a new mm has just been created */ | 38086 | /* a new mm has just been created */ |
38853 | arch_dup_mmap(oldmm, mm); | 38087 | arch_dup_mmap(oldmm, mm); |
38854 | retval = 0; | 38088 | retval = 0; |
38855 | @@ -541,9 +567,11 @@ void mm_release(struct task_struct *tsk, | 38089 | @@ -547,9 +573,11 @@ void mm_release(struct task_struct *tsk, |
38856 | #ifdef CONFIG_FUTEX | 38090 | #ifdef CONFIG_FUTEX |
38857 | if (unlikely(tsk->robust_list)) | 38091 | if (unlikely(tsk->robust_list)) |
38858 | exit_robust_list(tsk); | 38092 | exit_robust_list(tsk); |
@@ -38864,7 +38098,7 @@ diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c | |||
38864 | #endif | 38098 | #endif |
38865 | #endif | 38099 | #endif |
38866 | 38100 | ||
38867 | @@ -565,7 +593,7 @@ void mm_release(struct task_struct *tsk, | 38101 | @@ -571,7 +599,7 @@ void mm_release(struct task_struct *tsk, |
38868 | if (tsk->clear_child_tid | 38102 | if (tsk->clear_child_tid |
38869 | && !(tsk->flags & PF_SIGNALED) | 38103 | && !(tsk->flags & PF_SIGNALED) |
38870 | && atomic_read(&mm->mm_users) > 1) { | 38104 | && atomic_read(&mm->mm_users) > 1) { |
@@ -38873,7 +38107,7 @@ diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c | |||
38873 | tsk->clear_child_tid = NULL; | 38107 | tsk->clear_child_tid = NULL; |
38874 | 38108 | ||
38875 | /* | 38109 | /* |
38876 | @@ -573,7 +601,7 @@ void mm_release(struct task_struct *tsk, | 38110 | @@ -579,7 +607,7 @@ void mm_release(struct task_struct *tsk, |
38877 | * not set up a proper pointer then tough luck. | 38111 | * not set up a proper pointer then tough luck. |
38878 | */ | 38112 | */ |
38879 | put_user(0, tidptr); | 38113 | put_user(0, tidptr); |
@@ -38882,7 +38116,7 @@ diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c | |||
38882 | } | 38116 | } |
38883 | } | 38117 | } |
38884 | 38118 | ||
38885 | @@ -686,7 +714,7 @@ static int copy_fs(unsigned long clone_f | 38119 | @@ -695,7 +723,7 @@ static int copy_fs(unsigned long clone_f |
38886 | write_unlock(&fs->lock); | 38120 | write_unlock(&fs->lock); |
38887 | return -EAGAIN; | 38121 | return -EAGAIN; |
38888 | } | 38122 | } |
@@ -38891,7 +38125,7 @@ diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c | |||
38891 | write_unlock(&fs->lock); | 38125 | write_unlock(&fs->lock); |
38892 | return 0; | 38126 | return 0; |
38893 | } | 38127 | } |
38894 | @@ -978,6 +1006,9 @@ static struct task_struct *copy_process( | 38128 | @@ -989,6 +1017,9 @@ static struct task_struct *copy_process( |
38895 | DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled); | 38129 | DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled); |
38896 | #endif | 38130 | #endif |
38897 | retval = -EAGAIN; | 38131 | retval = -EAGAIN; |
@@ -38901,7 +38135,7 @@ diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c | |||
38901 | if (atomic_read(&p->real_cred->user->processes) >= | 38135 | if (atomic_read(&p->real_cred->user->processes) >= |
38902 | p->signal->rlim[RLIMIT_NPROC].rlim_cur) { | 38136 | p->signal->rlim[RLIMIT_NPROC].rlim_cur) { |
38903 | if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE) && | 38137 | if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE) && |
38904 | @@ -1138,6 +1169,8 @@ static struct task_struct *copy_process( | 38138 | @@ -1144,6 +1175,8 @@ static struct task_struct *copy_process( |
38905 | goto bad_fork_free_graph; | 38139 | goto bad_fork_free_graph; |
38906 | } | 38140 | } |
38907 | 38141 | ||
@@ -38910,7 +38144,7 @@ diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c | |||
38910 | p->set_child_tid = (clone_flags & CLONE_CHILD_SETTID) ? child_tidptr : NULL; | 38144 | p->set_child_tid = (clone_flags & CLONE_CHILD_SETTID) ? child_tidptr : NULL; |
38911 | /* | 38145 | /* |
38912 | * Clear TID on mm_release()? | 38146 | * Clear TID on mm_release()? |
38913 | @@ -1306,6 +1339,8 @@ bad_fork_cleanup_count: | 38147 | @@ -1310,6 +1343,8 @@ bad_fork_cleanup_count: |
38914 | bad_fork_free: | 38148 | bad_fork_free: |
38915 | free_task(p); | 38149 | free_task(p); |
38916 | fork_out: | 38150 | fork_out: |
@@ -38919,7 +38153,7 @@ diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c | |||
38919 | return ERR_PTR(retval); | 38153 | return ERR_PTR(retval); |
38920 | } | 38154 | } |
38921 | 38155 | ||
38922 | @@ -1399,6 +1434,8 @@ long do_fork(unsigned long clone_flags, | 38156 | @@ -1403,6 +1438,8 @@ long do_fork(unsigned long clone_flags, |
38923 | if (clone_flags & CLONE_PARENT_SETTID) | 38157 | if (clone_flags & CLONE_PARENT_SETTID) |
38924 | put_user(nr, parent_tidptr); | 38158 | put_user(nr, parent_tidptr); |
38925 | 38159 | ||
@@ -38928,7 +38162,7 @@ diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c | |||
38928 | if (clone_flags & CLONE_VFORK) { | 38162 | if (clone_flags & CLONE_VFORK) { |
38929 | p->vfork_done = &vfork; | 38163 | p->vfork_done = &vfork; |
38930 | init_completion(&vfork); | 38164 | init_completion(&vfork); |
38931 | @@ -1530,7 +1567,7 @@ static int unshare_fs(unsigned long unsh | 38165 | @@ -1535,7 +1572,7 @@ static int unshare_fs(unsigned long unsh |
38932 | return 0; | 38166 | return 0; |
38933 | 38167 | ||
38934 | /* don't need lock here; in the worst case we'll do useless copy */ | 38168 | /* don't need lock here; in the worst case we'll do useless copy */ |
@@ -38937,7 +38171,7 @@ diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c | |||
38937 | return 0; | 38171 | return 0; |
38938 | 38172 | ||
38939 | *new_fsp = copy_fs_struct(fs); | 38173 | *new_fsp = copy_fs_struct(fs); |
38940 | @@ -1653,7 +1690,7 @@ SYSCALL_DEFINE1(unshare, unsigned long, | 38174 | @@ -1658,7 +1695,7 @@ SYSCALL_DEFINE1(unshare, unsigned long, |
38941 | fs = current->fs; | 38175 | fs = current->fs; |
38942 | write_lock(&fs->lock); | 38176 | write_lock(&fs->lock); |
38943 | current->fs = new_fs; | 38177 | current->fs = new_fs; |
@@ -38946,10 +38180,10 @@ diff -urNp linux-2.6.29.6/kernel/fork.c linux-2.6.29.6/kernel/fork.c | |||
38946 | new_fs = NULL; | 38180 | new_fs = NULL; |
38947 | else | 38181 | else |
38948 | new_fs = fs; | 38182 | new_fs = fs; |
38949 | diff -urNp linux-2.6.29.6/kernel/futex.c linux-2.6.29.6/kernel/futex.c | 38183 | diff -urNp linux-2.6.30.4/kernel/futex.c linux-2.6.30.4/kernel/futex.c |
38950 | --- linux-2.6.29.6/kernel/futex.c 2009-07-02 19:41:20.000000000 -0400 | 38184 | --- linux-2.6.30.4/kernel/futex.c 2009-07-24 17:47:51.000000000 -0400 |
38951 | +++ linux-2.6.29.6/kernel/futex.c 2009-07-23 17:34:32.205707403 -0400 | 38185 | +++ linux-2.6.30.4/kernel/futex.c 2009-07-30 09:48:10.127681569 -0400 |
38952 | @@ -213,6 +213,11 @@ get_futex_key(u32 __user *uaddr, int fsh | 38186 | @@ -212,6 +212,11 @@ get_futex_key(u32 __user *uaddr, int fsh |
38953 | struct page *page; | 38187 | struct page *page; |
38954 | int err; | 38188 | int err; |
38955 | 38189 | ||
@@ -38961,7 +38195,7 @@ diff -urNp linux-2.6.29.6/kernel/futex.c linux-2.6.29.6/kernel/futex.c | |||
38961 | /* | 38195 | /* |
38962 | * The futex address must be "naturally" aligned. | 38196 | * The futex address must be "naturally" aligned. |
38963 | */ | 38197 | */ |
38964 | @@ -1306,7 +1311,7 @@ retry: | 38198 | @@ -1285,7 +1290,7 @@ retry_private: |
38965 | 38199 | ||
38966 | restart = ¤t_thread_info()->restart_block; | 38200 | restart = ¤t_thread_info()->restart_block; |
38967 | restart->fn = futex_wait_restart; | 38201 | restart->fn = futex_wait_restart; |
@@ -38970,7 +38204,7 @@ diff -urNp linux-2.6.29.6/kernel/futex.c linux-2.6.29.6/kernel/futex.c | |||
38970 | restart->futex.val = val; | 38204 | restart->futex.val = val; |
38971 | restart->futex.time = abs_time->tv64; | 38205 | restart->futex.time = abs_time->tv64; |
38972 | restart->futex.bitset = bitset; | 38206 | restart->futex.bitset = bitset; |
38973 | @@ -1848,7 +1853,7 @@ retry: | 38207 | @@ -1809,7 +1814,7 @@ retry: |
38974 | */ | 38208 | */ |
38975 | static inline int fetch_robust_entry(struct robust_list __user **entry, | 38209 | static inline int fetch_robust_entry(struct robust_list __user **entry, |
38976 | struct robust_list __user * __user *head, | 38210 | struct robust_list __user * __user *head, |
@@ -38979,22 +38213,9 @@ diff -urNp linux-2.6.29.6/kernel/futex.c linux-2.6.29.6/kernel/futex.c | |||
38979 | { | 38213 | { |
38980 | unsigned long uentry; | 38214 | unsigned long uentry; |
38981 | 38215 | ||
38982 | diff -urNp linux-2.6.29.6/kernel/irq/handle.c linux-2.6.29.6/kernel/irq/handle.c | 38216 | diff -urNp linux-2.6.30.4/kernel/kallsyms.c linux-2.6.30.4/kernel/kallsyms.c |
38983 | --- linux-2.6.29.6/kernel/irq/handle.c 2009-07-02 19:41:20.000000000 -0400 | 38217 | --- linux-2.6.30.4/kernel/kallsyms.c 2009-07-24 17:47:51.000000000 -0400 |
38984 | +++ linux-2.6.29.6/kernel/irq/handle.c 2009-07-23 17:34:32.206808804 -0400 | 38218 | +++ linux-2.6.30.4/kernel/kallsyms.c 2009-07-30 11:10:49.619428708 -0400 |
38985 | @@ -222,7 +222,8 @@ struct irq_desc irq_desc[NR_IRQS] __cach | ||
38986 | .depth = 1, | ||
38987 | .lock = __SPIN_LOCK_UNLOCKED(irq_desc->lock), | ||
38988 | #ifdef CONFIG_SMP | ||
38989 | - .affinity = CPU_MASK_ALL | ||
38990 | + .affinity = CPU_MASK_ALL, | ||
38991 | + .cpu = 0, | ||
38992 | #endif | ||
38993 | } | ||
38994 | }; | ||
38995 | diff -urNp linux-2.6.29.6/kernel/kallsyms.c linux-2.6.29.6/kernel/kallsyms.c | ||
38996 | --- linux-2.6.29.6/kernel/kallsyms.c 2009-07-02 19:41:20.000000000 -0400 | ||
38997 | +++ linux-2.6.29.6/kernel/kallsyms.c 2009-07-23 17:34:32.206808804 -0400 | ||
38998 | @@ -62,6 +62,18 @@ static inline int is_kernel_text(unsigne | 38219 | @@ -62,6 +62,18 @@ static inline int is_kernel_text(unsigne |
38999 | 38220 | ||
39000 | static inline int is_kernel(unsigned long addr) | 38221 | static inline int is_kernel(unsigned long addr) |
@@ -39014,7 +38235,7 @@ diff -urNp linux-2.6.29.6/kernel/kallsyms.c linux-2.6.29.6/kernel/kallsyms.c | |||
39014 | if (addr >= (unsigned long)_stext && addr <= (unsigned long)_end) | 38235 | if (addr >= (unsigned long)_stext && addr <= (unsigned long)_end) |
39015 | return 1; | 38236 | return 1; |
39016 | return in_gate_area_no_task(addr); | 38237 | return in_gate_area_no_task(addr); |
39017 | @@ -372,7 +384,6 @@ static unsigned long get_ksymbol_core(st | 38238 | @@ -391,7 +403,6 @@ static unsigned long get_ksymbol_core(st |
39018 | 38239 | ||
39019 | static void reset_iter(struct kallsym_iter *iter, loff_t new_pos) | 38240 | static void reset_iter(struct kallsym_iter *iter, loff_t new_pos) |
39020 | { | 38241 | { |
@@ -39022,7 +38243,7 @@ diff -urNp linux-2.6.29.6/kernel/kallsyms.c linux-2.6.29.6/kernel/kallsyms.c | |||
39022 | iter->nameoff = get_symbol_offset(new_pos); | 38243 | iter->nameoff = get_symbol_offset(new_pos); |
39023 | iter->pos = new_pos; | 38244 | iter->pos = new_pos; |
39024 | } | 38245 | } |
39025 | @@ -456,7 +467,7 @@ static int kallsyms_open(struct inode *i | 38246 | @@ -475,7 +486,7 @@ static int kallsyms_open(struct inode *i |
39026 | struct kallsym_iter *iter; | 38247 | struct kallsym_iter *iter; |
39027 | int ret; | 38248 | int ret; |
39028 | 38249 | ||
@@ -39031,7 +38252,7 @@ diff -urNp linux-2.6.29.6/kernel/kallsyms.c linux-2.6.29.6/kernel/kallsyms.c | |||
39031 | if (!iter) | 38252 | if (!iter) |
39032 | return -ENOMEM; | 38253 | return -ENOMEM; |
39033 | reset_iter(iter, 0); | 38254 | reset_iter(iter, 0); |
39034 | @@ -478,7 +489,15 @@ static const struct file_operations kall | 38255 | @@ -497,7 +508,15 @@ static const struct file_operations kall |
39035 | 38256 | ||
39036 | static int __init kallsyms_init(void) | 38257 | static int __init kallsyms_init(void) |
39037 | { | 38258 | { |
@@ -39047,22 +38268,10 @@ diff -urNp linux-2.6.29.6/kernel/kallsyms.c linux-2.6.29.6/kernel/kallsyms.c | |||
39047 | return 0; | 38268 | return 0; |
39048 | } | 38269 | } |
39049 | __initcall(kallsyms_init); | 38270 | __initcall(kallsyms_init); |
39050 | diff -urNp linux-2.6.29.6/kernel/kmod.c linux-2.6.29.6/kernel/kmod.c | 38271 | diff -urNp linux-2.6.30.4/kernel/kprobes.c linux-2.6.30.4/kernel/kprobes.c |
39051 | --- linux-2.6.29.6/kernel/kmod.c 2009-07-02 19:41:20.000000000 -0400 | 38272 | --- linux-2.6.30.4/kernel/kprobes.c 2009-07-24 17:47:51.000000000 -0400 |
39052 | +++ linux-2.6.29.6/kernel/kmod.c 2009-07-23 17:34:32.206808804 -0400 | 38273 | +++ linux-2.6.30.4/kernel/kprobes.c 2009-07-30 09:48:10.128762672 -0400 |
39053 | @@ -108,7 +108,7 @@ int request_module(const char *fmt, ...) | 38274 | @@ -184,7 +184,7 @@ static kprobe_opcode_t __kprobes *__get_ |
39054 | return -ENOMEM; | ||
39055 | } | ||
39056 | |||
39057 | - ret = call_usermodehelper(modprobe_path, argv, envp, 1); | ||
39058 | + ret = call_usermodehelper(modprobe_path, argv, envp, UMH_WAIT_PROC); | ||
39059 | atomic_dec(&kmod_concurrent); | ||
39060 | return ret; | ||
39061 | } | ||
39062 | diff -urNp linux-2.6.29.6/kernel/kprobes.c linux-2.6.29.6/kernel/kprobes.c | ||
39063 | --- linux-2.6.29.6/kernel/kprobes.c 2009-07-02 19:41:20.000000000 -0400 | ||
39064 | +++ linux-2.6.29.6/kernel/kprobes.c 2009-07-23 18:40:27.474712638 -0400 | ||
39065 | @@ -183,7 +183,7 @@ static kprobe_opcode_t __kprobes *__get_ | ||
39066 | * kernel image and loaded module images reside. This is required | 38275 | * kernel image and loaded module images reside. This is required |
39067 | * so x86_64 can correctly handle the %rip-relative fixups. | 38276 | * so x86_64 can correctly handle the %rip-relative fixups. |
39068 | */ | 38277 | */ |
@@ -39071,7 +38280,7 @@ diff -urNp linux-2.6.29.6/kernel/kprobes.c linux-2.6.29.6/kernel/kprobes.c | |||
39071 | if (!kip->insns) { | 38280 | if (!kip->insns) { |
39072 | kfree(kip); | 38281 | kfree(kip); |
39073 | return NULL; | 38282 | return NULL; |
39074 | @@ -224,7 +224,7 @@ static int __kprobes collect_one_slot(st | 38283 | @@ -225,7 +225,7 @@ static int __kprobes collect_one_slot(st |
39075 | hlist_add_head(&kip->hlist, | 38284 | hlist_add_head(&kip->hlist, |
39076 | &kprobe_insn_pages); | 38285 | &kprobe_insn_pages); |
39077 | } else { | 38286 | } else { |
@@ -39080,7 +38289,7 @@ diff -urNp linux-2.6.29.6/kernel/kprobes.c linux-2.6.29.6/kernel/kprobes.c | |||
39080 | kfree(kip); | 38289 | kfree(kip); |
39081 | } | 38290 | } |
39082 | return 1; | 38291 | return 1; |
39083 | @@ -1246,7 +1246,7 @@ static int __kprobes show_kprobe_addr(st | 38292 | @@ -1333,7 +1333,7 @@ static int __kprobes show_kprobe_addr(st |
39084 | return 0; | 38293 | return 0; |
39085 | } | 38294 | } |
39086 | 38295 | ||
@@ -39089,7 +38298,7 @@ diff -urNp linux-2.6.29.6/kernel/kprobes.c linux-2.6.29.6/kernel/kprobes.c | |||
39089 | .start = kprobe_seq_start, | 38298 | .start = kprobe_seq_start, |
39090 | .next = kprobe_seq_next, | 38299 | .next = kprobe_seq_next, |
39091 | .stop = kprobe_seq_stop, | 38300 | .stop = kprobe_seq_stop, |
39092 | @@ -1258,7 +1258,7 @@ static int __kprobes kprobes_open(struct | 38301 | @@ -1345,7 +1345,7 @@ static int __kprobes kprobes_open(struct |
39093 | return seq_open(filp, &kprobes_seq_ops); | 38302 | return seq_open(filp, &kprobes_seq_ops); |
39094 | } | 38303 | } |
39095 | 38304 | ||
@@ -39098,7 +38307,7 @@ diff -urNp linux-2.6.29.6/kernel/kprobes.c linux-2.6.29.6/kernel/kprobes.c | |||
39098 | .open = kprobes_open, | 38307 | .open = kprobes_open, |
39099 | .read = seq_read, | 38308 | .read = seq_read, |
39100 | .llseek = seq_lseek, | 38309 | .llseek = seq_lseek, |
39101 | @@ -1371,7 +1371,7 @@ static ssize_t write_enabled_file_bool(s | 38310 | @@ -1527,7 +1527,7 @@ static ssize_t write_enabled_file_bool(s |
39102 | return count; | 38311 | return count; |
39103 | } | 38312 | } |
39104 | 38313 | ||
@@ -39107,22 +38316,10 @@ diff -urNp linux-2.6.29.6/kernel/kprobes.c linux-2.6.29.6/kernel/kprobes.c | |||
39107 | .read = read_enabled_file_bool, | 38316 | .read = read_enabled_file_bool, |
39108 | .write = write_enabled_file_bool, | 38317 | .write = write_enabled_file_bool, |
39109 | }; | 38318 | }; |
39110 | diff -urNp linux-2.6.29.6/kernel/latencytop.c linux-2.6.29.6/kernel/latencytop.c | 38319 | diff -urNp linux-2.6.30.4/kernel/lockdep.c linux-2.6.30.4/kernel/lockdep.c |
39111 | --- linux-2.6.29.6/kernel/latencytop.c 2009-07-02 19:41:20.000000000 -0400 | 38320 | --- linux-2.6.30.4/kernel/lockdep.c 2009-07-24 17:47:51.000000000 -0400 |
39112 | +++ linux-2.6.29.6/kernel/latencytop.c 2009-07-23 18:40:28.720267146 -0400 | 38321 | +++ linux-2.6.30.4/kernel/lockdep.c 2009-07-30 09:48:10.130698443 -0400 |
39113 | @@ -223,7 +223,7 @@ static int lstats_open(struct inode *ino | 38322 | @@ -628,6 +628,10 @@ static int static_obj(void *obj) |
39114 | return single_open(filp, lstats_show, NULL); | ||
39115 | } | ||
39116 | |||
39117 | -static struct file_operations lstats_fops = { | ||
39118 | +static const struct file_operations lstats_fops = { | ||
39119 | .open = lstats_open, | ||
39120 | .read = seq_read, | ||
39121 | .write = lstats_write, | ||
39122 | diff -urNp linux-2.6.29.6/kernel/lockdep.c linux-2.6.29.6/kernel/lockdep.c | ||
39123 | --- linux-2.6.29.6/kernel/lockdep.c 2009-07-02 19:41:20.000000000 -0400 | ||
39124 | +++ linux-2.6.29.6/kernel/lockdep.c 2009-07-23 17:34:32.207852017 -0400 | ||
39125 | @@ -631,6 +631,10 @@ static int static_obj(void *obj) | ||
39126 | int i; | 38323 | int i; |
39127 | #endif | 38324 | #endif |
39128 | 38325 | ||
@@ -39133,7 +38330,7 @@ diff -urNp linux-2.6.29.6/kernel/lockdep.c linux-2.6.29.6/kernel/lockdep.c | |||
39133 | /* | 38330 | /* |
39134 | * static variable? | 38331 | * static variable? |
39135 | */ | 38332 | */ |
39136 | @@ -642,9 +646,12 @@ static int static_obj(void *obj) | 38333 | @@ -639,9 +643,12 @@ static int static_obj(void *obj) |
39137 | * percpu var? | 38334 | * percpu var? |
39138 | */ | 38335 | */ |
39139 | for_each_possible_cpu(i) { | 38336 | for_each_possible_cpu(i) { |
@@ -39148,10 +38345,10 @@ diff -urNp linux-2.6.29.6/kernel/lockdep.c linux-2.6.29.6/kernel/lockdep.c | |||
39148 | 38345 | ||
39149 | if ((addr >= start) && (addr < end)) | 38346 | if ((addr >= start) && (addr < end)) |
39150 | return 1; | 38347 | return 1; |
39151 | diff -urNp linux-2.6.29.6/kernel/lockdep_proc.c linux-2.6.29.6/kernel/lockdep_proc.c | 38348 | diff -urNp linux-2.6.30.4/kernel/lockdep_proc.c linux-2.6.30.4/kernel/lockdep_proc.c |
39152 | --- linux-2.6.29.6/kernel/lockdep_proc.c 2009-07-02 19:41:20.000000000 -0400 | 38349 | --- linux-2.6.30.4/kernel/lockdep_proc.c 2009-07-24 17:47:51.000000000 -0400 |
39153 | +++ linux-2.6.29.6/kernel/lockdep_proc.c 2009-07-23 18:40:28.720267146 -0400 | 38350 | +++ linux-2.6.30.4/kernel/lockdep_proc.c 2009-07-30 09:48:10.130698443 -0400 |
39154 | @@ -666,7 +666,7 @@ static int ls_show(struct seq_file *m, v | 38351 | @@ -670,7 +670,7 @@ static int ls_show(struct seq_file *m, v |
39155 | return 0; | 38352 | return 0; |
39156 | } | 38353 | } |
39157 | 38354 | ||
@@ -39160,9 +38357,9 @@ diff -urNp linux-2.6.29.6/kernel/lockdep_proc.c linux-2.6.29.6/kernel/lockdep_pr | |||
39160 | .start = ls_start, | 38357 | .start = ls_start, |
39161 | .next = ls_next, | 38358 | .next = ls_next, |
39162 | .stop = ls_stop, | 38359 | .stop = ls_stop, |
39163 | diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | 38360 | diff -urNp linux-2.6.30.4/kernel/module.c linux-2.6.30.4/kernel/module.c |
39164 | --- linux-2.6.29.6/kernel/module.c 2009-07-02 19:41:20.000000000 -0400 | 38361 | --- linux-2.6.30.4/kernel/module.c 2009-07-24 17:47:51.000000000 -0400 |
39165 | +++ linux-2.6.29.6/kernel/module.c 2009-07-23 17:34:32.207852017 -0400 | 38362 | +++ linux-2.6.30.4/kernel/module.c 2009-08-04 17:52:34.401055170 -0400 |
39166 | @@ -46,6 +46,11 @@ | 38363 | @@ -46,6 +46,11 @@ |
39167 | #include <linux/rculist.h> | 38364 | #include <linux/rculist.h> |
39168 | #include <asm/uaccess.h> | 38365 | #include <asm/uaccess.h> |
@@ -39175,10 +38372,10 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39175 | #include <linux/license.h> | 38372 | #include <linux/license.h> |
39176 | #include <asm/sections.h> | 38373 | #include <asm/sections.h> |
39177 | #include <linux/tracepoint.h> | 38374 | #include <linux/tracepoint.h> |
39178 | @@ -76,7 +81,10 @@ static DECLARE_WAIT_QUEUE_HEAD(module_wq | 38375 | @@ -78,7 +83,10 @@ static DECLARE_WAIT_QUEUE_HEAD(module_wq |
39179 | static BLOCKING_NOTIFIER_HEAD(module_notify_list); | 38376 | static BLOCKING_NOTIFIER_HEAD(module_notify_list); |
39180 | 38377 | ||
39181 | /* Bounds of module allocation, for speeding __module_text_address */ | 38378 | /* Bounds of module allocation, for speeding __module_address */ |
39182 | -static unsigned long module_addr_min = -1UL, module_addr_max = 0; | 38379 | -static unsigned long module_addr_min = -1UL, module_addr_max = 0; |
39183 | +static unsigned long module_addr_min_rw = -1UL, module_addr_max_rw = 0; | 38380 | +static unsigned long module_addr_min_rw = -1UL, module_addr_max_rw = 0; |
39184 | +static unsigned long module_addr_min_rx = -1UL, module_addr_max_rx = 0; | 38381 | +static unsigned long module_addr_min_rx = -1UL, module_addr_max_rx = 0; |
@@ -39187,7 +38384,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39187 | 38384 | ||
39188 | int register_module_notifier(struct notifier_block * nb) | 38385 | int register_module_notifier(struct notifier_block * nb) |
39189 | { | 38386 | { |
39190 | @@ -245,7 +253,7 @@ static bool each_symbol(bool (*fn)(const | 38387 | @@ -234,7 +242,7 @@ bool each_symbol(bool (*fn)(const struct |
39191 | return true; | 38388 | return true; |
39192 | 38389 | ||
39193 | list_for_each_entry_rcu(mod, &modules, list) { | 38390 | list_for_each_entry_rcu(mod, &modules, list) { |
@@ -39196,7 +38393,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39196 | { mod->syms, mod->syms + mod->num_syms, mod->crcs, | 38393 | { mod->syms, mod->syms + mod->num_syms, mod->crcs, |
39197 | NOT_GPL_ONLY, false }, | 38394 | NOT_GPL_ONLY, false }, |
39198 | { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms, | 38395 | { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms, |
39199 | @@ -267,7 +275,7 @@ static bool each_symbol(bool (*fn)(const | 38396 | @@ -256,7 +264,7 @@ bool each_symbol(bool (*fn)(const struct |
39200 | #endif | 38397 | #endif |
39201 | }; | 38398 | }; |
39202 | 38399 | ||
@@ -39205,16 +38402,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39205 | return true; | 38402 | return true; |
39206 | } | 38403 | } |
39207 | return false; | 38404 | return false; |
39208 | @@ -403,6 +411,8 @@ static inline unsigned int block_size(in | 38405 | @@ -430,7 +438,7 @@ static void *percpu_modalloc(unsigned lo |
39209 | return val; | ||
39210 | } | ||
39211 | |||
39212 | +EXPORT_SYMBOL(__per_cpu_start); | ||
39213 | + | ||
39214 | static void *percpu_modalloc(unsigned long size, unsigned long align, | ||
39215 | const char *name) | ||
39216 | { | ||
39217 | @@ -410,7 +420,7 @@ static void *percpu_modalloc(unsigned lo | ||
39218 | unsigned int i; | 38406 | unsigned int i; |
39219 | void *ptr; | 38407 | void *ptr; |
39220 | 38408 | ||
@@ -39223,7 +38411,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39223 | printk(KERN_WARNING "%s: per-cpu alignment %li > %li\n", | 38411 | printk(KERN_WARNING "%s: per-cpu alignment %li > %li\n", |
39224 | name, align, PAGE_SIZE); | 38412 | name, align, PAGE_SIZE); |
39225 | align = PAGE_SIZE; | 38413 | align = PAGE_SIZE; |
39226 | @@ -492,7 +502,11 @@ static void percpu_modcopy(void *pcpudes | 38414 | @@ -533,7 +541,11 @@ static void percpu_modcopy(void *pcpudes |
39227 | int cpu; | 38415 | int cpu; |
39228 | 38416 | ||
39229 | for_each_possible_cpu(cpu) | 38417 | for_each_possible_cpu(cpu) |
@@ -39234,8 +38422,8 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39234 | +#endif | 38422 | +#endif |
39235 | } | 38423 | } |
39236 | 38424 | ||
39237 | static int percpu_modinit(void) | 38425 | #else /* ... !CONFIG_SMP */ |
39238 | @@ -751,6 +765,9 @@ SYSCALL_DEFINE2(delete_module, const cha | 38426 | @@ -777,6 +789,9 @@ SYSCALL_DEFINE2(delete_module, const cha |
39239 | char name[MODULE_NAME_LEN]; | 38427 | char name[MODULE_NAME_LEN]; |
39240 | int ret, forced = 0; | 38428 | int ret, forced = 0; |
39241 | 38429 | ||
@@ -39245,8 +38433,8 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39245 | if (!capable(CAP_SYS_MODULE)) | 38433 | if (!capable(CAP_SYS_MODULE)) |
39246 | return -EPERM; | 38434 | return -EPERM; |
39247 | 38435 | ||
39248 | @@ -1458,10 +1475,11 @@ static void free_module(struct module *m | 38436 | @@ -1490,10 +1505,11 @@ static void free_module(struct module *m |
39249 | module_unload_free(mod); | 38437 | destroy_params(mod->kp, mod->num_kp); |
39250 | 38438 | ||
39251 | /* release any pointers to mcount in this module */ | 38439 | /* release any pointers to mcount in this module */ |
39252 | - ftrace_release(mod->module_core, mod->core_size); | 38440 | - ftrace_release(mod->module_core, mod->core_size); |
@@ -39259,7 +38447,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39259 | kfree(mod->args); | 38447 | kfree(mod->args); |
39260 | if (mod->percpu) | 38448 | if (mod->percpu) |
39261 | percpu_modfree(mod->percpu); | 38449 | percpu_modfree(mod->percpu); |
39262 | @@ -1470,10 +1488,12 @@ static void free_module(struct module *m | 38450 | @@ -1502,10 +1518,12 @@ static void free_module(struct module *m |
39263 | percpu_modfree(mod->refptr); | 38451 | percpu_modfree(mod->refptr); |
39264 | #endif | 38452 | #endif |
39265 | /* Free lock-classes: */ | 38453 | /* Free lock-classes: */ |
@@ -39274,14 +38462,9 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39274 | } | 38462 | } |
39275 | 38463 | ||
39276 | void *__symbol_get(const char *symbol) | 38464 | void *__symbol_get(const char *symbol) |
39277 | @@ -1539,10 +1559,14 @@ static int simplify_symbols(Elf_Shdr *se | 38465 | @@ -1573,6 +1591,10 @@ static int simplify_symbols(Elf_Shdr *se |
39278 | struct module *mod) | ||
39279 | { | ||
39280 | Elf_Sym *sym = (void *)sechdrs[symindex].sh_addr; | ||
39281 | - unsigned long secbase; | ||
39282 | + unsigned long secbase, symbol; | ||
39283 | unsigned int i, n = sechdrs[symindex].sh_size / sizeof(Elf_Sym); | ||
39284 | int ret = 0; | 38466 | int ret = 0; |
38467 | const struct kernel_symbol *ksym; | ||
39285 | 38468 | ||
39286 | +#ifdef CONFIG_PAX_KERNEXEC | 38469 | +#ifdef CONFIG_PAX_KERNEXEC |
39287 | + unsigned long cr0; | 38470 | + unsigned long cr0; |
@@ -39290,43 +38473,27 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39290 | for (i = 1; i < n; i++) { | 38473 | for (i = 1; i < n; i++) { |
39291 | switch (sym[i].st_shndx) { | 38474 | switch (sym[i].st_shndx) { |
39292 | case SHN_COMMON: | 38475 | case SHN_COMMON: |
39293 | @@ -1561,10 +1585,19 @@ static int simplify_symbols(Elf_Shdr *se | 38476 | @@ -1595,7 +1617,17 @@ static int simplify_symbols(Elf_Shdr *se |
39294 | break; | 38477 | strtab + sym[i].st_name, mod); |
39295 | 38478 | /* Ok if resolved. */ | |
39296 | case SHN_UNDEF: | 38479 | if (ksym) { |
39297 | - sym[i].st_value | 38480 | + |
39298 | - = resolve_symbol(sechdrs, versindex, | ||
39299 | + symbol = resolve_symbol(sechdrs, versindex, | ||
39300 | strtab + sym[i].st_name, mod); | ||
39301 | |||
39302 | +#ifdef CONFIG_PAX_KERNEXEC | 38481 | +#ifdef CONFIG_PAX_KERNEXEC |
39303 | + pax_open_kernel(cr0); | 38482 | + pax_open_kernel(cr0); |
39304 | +#endif | 38483 | +#endif |
39305 | + | 38484 | + |
39306 | + sym[i].st_value = symbol; | 38485 | sym[i].st_value = ksym->value; |
39307 | + | 38486 | + |
39308 | +#ifdef CONFIG_PAX_KERNEXEC | 38487 | +#ifdef CONFIG_PAX_KERNEXEC |
39309 | + pax_close_kernel(cr0); | 38488 | + pax_close_kernel(cr0); |
39310 | +#endif | 38489 | +#endif |
39311 | + | 38490 | + |
39312 | /* Ok if resolved. */ | ||
39313 | if (!IS_ERR_VALUE(sym[i].st_value)) | ||
39314 | break; | 38491 | break; |
39315 | @@ -1579,11 +1612,27 @@ static int simplify_symbols(Elf_Shdr *se | 38492 | } |
39316 | 38493 | ||
39317 | default: | 38494 | @@ -1614,7 +1646,17 @@ static int simplify_symbols(Elf_Shdr *se |
39318 | /* Divert to percpu allocation if a percpu var. */ | ||
39319 | - if (sym[i].st_shndx == pcpuindex) | ||
39320 | + if (sym[i].st_shndx == pcpuindex) { | ||
39321 | + | ||
39322 | +#if defined(CONFIG_X86_32) && defined(CONFIG_SMP) | ||
39323 | + secbase = (unsigned long)mod->percpu - (unsigned long)__per_cpu_start; | ||
39324 | +#else | ||
39325 | secbase = (unsigned long)mod->percpu; | 38495 | secbase = (unsigned long)mod->percpu; |
39326 | - else | 38496 | else |
39327 | +#endif | ||
39328 | + | ||
39329 | + } else | ||
39330 | secbase = sechdrs[sym[i].st_shndx].sh_addr; | 38497 | secbase = sechdrs[sym[i].st_shndx].sh_addr; |
39331 | + | 38498 | + |
39332 | +#ifdef CONFIG_PAX_KERNEXEC | 38499 | +#ifdef CONFIG_PAX_KERNEXEC |
@@ -39342,9 +38509,9 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39342 | break; | 38509 | break; |
39343 | } | 38510 | } |
39344 | } | 38511 | } |
39345 | @@ -1645,11 +1694,12 @@ static void layout_sections(struct modul | 38512 | @@ -1675,11 +1717,12 @@ static void layout_sections(struct modul |
39346 | || strncmp(secstrings + s->sh_name, | 38513 | || s->sh_entsize != ~0UL |
39347 | ".init", 5) == 0) | 38514 | || strstarts(secstrings + s->sh_name, ".init")) |
39348 | continue; | 38515 | continue; |
39349 | - s->sh_entsize = get_offset(mod, &mod->core_size, s, i); | 38516 | - s->sh_entsize = get_offset(mod, &mod->core_size, s, i); |
39350 | + if ((s->sh_flags & SHF_WRITE) || !(s->sh_flags & SHF_ALLOC)) | 38517 | + if ((s->sh_flags & SHF_WRITE) || !(s->sh_flags & SHF_ALLOC)) |
@@ -39358,9 +38525,9 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39358 | } | 38525 | } |
39359 | 38526 | ||
39360 | DEBUGP("Init section allocation order:\n"); | 38527 | DEBUGP("Init section allocation order:\n"); |
39361 | @@ -1663,12 +1713,13 @@ static void layout_sections(struct modul | 38528 | @@ -1692,12 +1735,13 @@ static void layout_sections(struct modul |
39362 | || strncmp(secstrings + s->sh_name, | 38529 | || s->sh_entsize != ~0UL |
39363 | ".init", 5) != 0) | 38530 | || !strstarts(secstrings + s->sh_name, ".init")) |
39364 | continue; | 38531 | continue; |
39365 | - s->sh_entsize = (get_offset(mod, &mod->init_size, s, i) | 38532 | - s->sh_entsize = (get_offset(mod, &mod->init_size, s, i) |
39366 | - | INIT_OFFSET_MASK); | 38533 | - | INIT_OFFSET_MASK); |
@@ -39376,7 +38543,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39376 | } | 38543 | } |
39377 | } | 38544 | } |
39378 | 38545 | ||
39379 | @@ -1808,14 +1859,31 @@ static void add_kallsyms(struct module * | 38546 | @@ -1836,14 +1880,31 @@ static void add_kallsyms(struct module * |
39380 | { | 38547 | { |
39381 | unsigned int i; | 38548 | unsigned int i; |
39382 | 38549 | ||
@@ -39411,8 +38578,8 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39411 | } | 38578 | } |
39412 | #else | 38579 | #else |
39413 | static inline void add_kallsyms(struct module *mod, | 38580 | static inline void add_kallsyms(struct module *mod, |
39414 | @@ -1842,16 +1910,30 @@ static void dynamic_printk_setup(struct | 38581 | @@ -1864,16 +1925,30 @@ static void dynamic_debug_setup(struct _ |
39415 | #endif /* CONFIG_DYNAMIC_PRINTK_DEBUG */ | 38582 | #endif |
39416 | } | 38583 | } |
39417 | 38584 | ||
39418 | -static void *module_alloc_update_bounds(unsigned long size) | 38585 | -static void *module_alloc_update_bounds(unsigned long size) |
@@ -39447,7 +38614,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39447 | } | 38614 | } |
39448 | return ret; | 38615 | return ret; |
39449 | } | 38616 | } |
39450 | @@ -1878,6 +1960,10 @@ static noinline struct module *load_modu | 38617 | @@ -1899,6 +1974,10 @@ static noinline struct module *load_modu |
39451 | unsigned long *mseg; | 38618 | unsigned long *mseg; |
39452 | mm_segment_t old_fs; | 38619 | mm_segment_t old_fs; |
39453 | 38620 | ||
@@ -39458,7 +38625,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39458 | DEBUGP("load_module: umod=%p, len=%lu, uargs=%p\n", | 38625 | DEBUGP("load_module: umod=%p, len=%lu, uargs=%p\n", |
39459 | umod, len, uargs); | 38626 | umod, len, uargs); |
39460 | if (len < sizeof(*hdr)) | 38627 | if (len < sizeof(*hdr)) |
39461 | @@ -2034,22 +2120,57 @@ static noinline struct module *load_modu | 38628 | @@ -2049,22 +2128,57 @@ static noinline struct module *load_modu |
39462 | layout_sections(mod, hdr, sechdrs, secstrings); | 38629 | layout_sections(mod, hdr, sechdrs, secstrings); |
39463 | 38630 | ||
39464 | /* Do the allocs. */ | 38631 | /* Do the allocs. */ |
@@ -39480,21 +38647,24 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39480 | + } | 38647 | + } |
39481 | + memset(ptr, 0, mod->init_size_rw); | 38648 | + memset(ptr, 0, mod->init_size_rw); |
39482 | + mod->module_init_rw = ptr; | 38649 | + mod->module_init_rw = ptr; |
39483 | + | 38650 | |
38651 | - ptr = module_alloc_update_bounds(mod->init_size); | ||
38652 | - if (!ptr && mod->init_size) { | ||
39484 | + ptr = module_alloc_update_bounds_rx(mod->core_size_rx); | 38653 | + ptr = module_alloc_update_bounds_rx(mod->core_size_rx); |
39485 | + if (!ptr) { | 38654 | + if (!ptr) { |
39486 | + err = -ENOMEM; | 38655 | err = -ENOMEM; |
38656 | - goto free_core; | ||
39487 | + goto free_init_rw; | 38657 | + goto free_init_rw; |
39488 | + } | 38658 | } |
39489 | + | 38659 | - memset(ptr, 0, mod->init_size); |
38660 | - mod->module_init = ptr; | ||
38661 | |||
39490 | +#ifdef CONFIG_PAX_KERNEXEC | 38662 | +#ifdef CONFIG_PAX_KERNEXEC |
39491 | + pax_open_kernel(cr0); | 38663 | + pax_open_kernel(cr0); |
39492 | +#endif | 38664 | +#endif |
39493 | + | 38665 | + |
39494 | + memset(ptr, 0, mod->core_size_rx); | 38666 | + memset(ptr, 0, mod->core_size_rx); |
39495 | 38667 | + | |
39496 | - ptr = module_alloc_update_bounds(mod->init_size); | ||
39497 | - if (!ptr && mod->init_size) { | ||
39498 | +#ifdef CONFIG_PAX_KERNEXEC | 38668 | +#ifdef CONFIG_PAX_KERNEXEC |
39499 | + pax_close_kernel(cr0); | 38669 | + pax_close_kernel(cr0); |
39500 | +#endif | 38670 | +#endif |
@@ -39503,13 +38673,10 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39503 | + | 38673 | + |
39504 | + ptr = module_alloc_update_bounds_rx(mod->init_size_rx); | 38674 | + ptr = module_alloc_update_bounds_rx(mod->init_size_rx); |
39505 | + if (!ptr && mod->init_size_rx) { | 38675 | + if (!ptr && mod->init_size_rx) { |
39506 | err = -ENOMEM; | 38676 | + err = -ENOMEM; |
39507 | - goto free_core; | ||
39508 | + goto free_core_rx; | 38677 | + goto free_core_rx; |
39509 | } | 38678 | + } |
39510 | - memset(ptr, 0, mod->init_size); | 38679 | + |
39511 | - mod->module_init = ptr; | ||
39512 | |||
39513 | +#ifdef CONFIG_PAX_KERNEXEC | 38680 | +#ifdef CONFIG_PAX_KERNEXEC |
39514 | + pax_open_kernel(cr0); | 38681 | + pax_open_kernel(cr0); |
39515 | +#endif | 38682 | +#endif |
@@ -39524,7 +38691,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39524 | /* Transfer each section which specifies SHF_ALLOC */ | 38691 | /* Transfer each section which specifies SHF_ALLOC */ |
39525 | DEBUGP("final section addresses:\n"); | 38692 | DEBUGP("final section addresses:\n"); |
39526 | for (i = 0; i < hdr->e_shnum; i++) { | 38693 | for (i = 0; i < hdr->e_shnum; i++) { |
39527 | @@ -2058,17 +2179,41 @@ static noinline struct module *load_modu | 38694 | @@ -2073,17 +2187,41 @@ static noinline struct module *load_modu |
39528 | if (!(sechdrs[i].sh_flags & SHF_ALLOC)) | 38695 | if (!(sechdrs[i].sh_flags & SHF_ALLOC)) |
39529 | continue; | 38696 | continue; |
39530 | 38697 | ||
@@ -39546,10 +38713,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39546 | + else | 38713 | + else |
39547 | + dest = mod->module_core_rx + sechdrs[i].sh_entsize; | 38714 | + dest = mod->module_core_rx + sechdrs[i].sh_entsize; |
39548 | + } | 38715 | + } |
39549 | 38716 | + | |
39550 | - if (sechdrs[i].sh_type != SHT_NOBITS) | ||
39551 | - memcpy(dest, (void *)sechdrs[i].sh_addr, | ||
39552 | - sechdrs[i].sh_size); | ||
39553 | + if (sechdrs[i].sh_type != SHT_NOBITS) { | 38717 | + if (sechdrs[i].sh_type != SHT_NOBITS) { |
39554 | + | 38718 | + |
39555 | +#ifdef CONFIG_PAX_KERNEXEC | 38719 | +#ifdef CONFIG_PAX_KERNEXEC |
@@ -39559,7 +38723,10 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39559 | + pax_close_kernel(cr0); | 38723 | + pax_close_kernel(cr0); |
39560 | + } else | 38724 | + } else |
39561 | +#endif | 38725 | +#endif |
39562 | + | 38726 | |
38727 | - if (sechdrs[i].sh_type != SHT_NOBITS) | ||
38728 | - memcpy(dest, (void *)sechdrs[i].sh_addr, | ||
38729 | - sechdrs[i].sh_size); | ||
39563 | + memcpy(dest, (void *)sechdrs[i].sh_addr, sechdrs[i].sh_size); | 38730 | + memcpy(dest, (void *)sechdrs[i].sh_addr, sechdrs[i].sh_size); |
39564 | + } | 38731 | + } |
39565 | /* Update sh_addr to point to copy in image. */ | 38732 | /* Update sh_addr to point to copy in image. */ |
@@ -39575,7 +38742,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39575 | DEBUGP("\t0x%lx %s\n", sechdrs[i].sh_addr, secstrings + sechdrs[i].sh_name); | 38742 | DEBUGP("\t0x%lx %s\n", sechdrs[i].sh_addr, secstrings + sechdrs[i].sh_name); |
39576 | } | 38743 | } |
39577 | /* Module has been moved. */ | 38744 | /* Module has been moved. */ |
39578 | @@ -2079,7 +2224,7 @@ static noinline struct module *load_modu | 38745 | @@ -2094,7 +2232,7 @@ static noinline struct module *load_modu |
39579 | mod->name); | 38746 | mod->name); |
39580 | if (!mod->refptr) { | 38747 | if (!mod->refptr) { |
39581 | err = -ENOMEM; | 38748 | err = -ENOMEM; |
@@ -39584,7 +38751,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39584 | } | 38751 | } |
39585 | #endif | 38752 | #endif |
39586 | /* Now we've moved module, initialize linked lists, etc. */ | 38753 | /* Now we've moved module, initialize linked lists, etc. */ |
39587 | @@ -2176,8 +2321,8 @@ static noinline struct module *load_modu | 38754 | @@ -2191,8 +2329,8 @@ static noinline struct module *load_modu |
39588 | 38755 | ||
39589 | /* Now do relocations. */ | 38756 | /* Now do relocations. */ |
39590 | for (i = 1; i < hdr->e_shnum; i++) { | 38757 | for (i = 1; i < hdr->e_shnum; i++) { |
@@ -39594,7 +38761,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39594 | 38761 | ||
39595 | /* Not a valid relocation section? */ | 38762 | /* Not a valid relocation section? */ |
39596 | if (info >= hdr->e_shnum) | 38763 | if (info >= hdr->e_shnum) |
39597 | @@ -2239,12 +2384,12 @@ static noinline struct module *load_modu | 38764 | @@ -2255,12 +2393,12 @@ static noinline struct module *load_modu |
39598 | * Do it before processing of module parameters, so the module | 38765 | * Do it before processing of module parameters, so the module |
39599 | * can provide parameter accessor functions of its own. | 38766 | * can provide parameter accessor functions of its own. |
39600 | */ | 38767 | */ |
@@ -39613,7 +38780,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39613 | 38780 | ||
39614 | set_fs(old_fs); | 38781 | set_fs(old_fs); |
39615 | 38782 | ||
39616 | @@ -2285,16 +2430,20 @@ static noinline struct module *load_modu | 38783 | @@ -2302,16 +2440,20 @@ static noinline struct module *load_modu |
39617 | cleanup: | 38784 | cleanup: |
39618 | kobject_del(&mod->mkobj.kobj); | 38785 | kobject_del(&mod->mkobj.kobj); |
39619 | kobject_put(&mod->mkobj.kobj); | 38786 | kobject_put(&mod->mkobj.kobj); |
@@ -39621,9 +38788,9 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39621 | + ftrace_release(mod->module_core_rx, mod->core_size_rx); | 38788 | + ftrace_release(mod->module_core_rx, mod->core_size_rx); |
39622 | free_unload: | 38789 | free_unload: |
39623 | module_unload_free(mod); | 38790 | module_unload_free(mod); |
38791 | #if defined(CONFIG_MODULE_UNLOAD) && defined(CONFIG_SMP) | ||
39624 | - free_init: | 38792 | - free_init: |
39625 | + free_init_rx: | 38793 | + free_init_rx: |
39626 | #if defined(CONFIG_MODULE_UNLOAD) && defined(CONFIG_SMP) | ||
39627 | percpu_modfree(mod->refptr); | 38794 | percpu_modfree(mod->refptr); |
39628 | #endif | 38795 | #endif |
39629 | - module_free(mod, mod->module_init); | 38796 | - module_free(mod, mod->module_init); |
@@ -39639,7 +38806,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39639 | /* mod will be freed with core. Don't access it beyond this line! */ | 38806 | /* mod will be freed with core. Don't access it beyond this line! */ |
39640 | free_percpu: | 38807 | free_percpu: |
39641 | if (percpu) | 38808 | if (percpu) |
39642 | @@ -2319,6 +2468,9 @@ SYSCALL_DEFINE3(init_module, void __user | 38809 | @@ -2335,6 +2477,9 @@ SYSCALL_DEFINE3(init_module, void __user |
39643 | struct module *mod; | 38810 | struct module *mod; |
39644 | int ret = 0; | 38811 | int ret = 0; |
39645 | 38812 | ||
@@ -39649,7 +38816,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39649 | /* Must have permission */ | 38816 | /* Must have permission */ |
39650 | if (!capable(CAP_SYS_MODULE)) | 38817 | if (!capable(CAP_SYS_MODULE)) |
39651 | return -EPERM; | 38818 | return -EPERM; |
39652 | @@ -2375,20 +2527,17 @@ SYSCALL_DEFINE3(init_module, void __user | 38819 | @@ -2394,20 +2539,17 @@ SYSCALL_DEFINE3(init_module, void __user |
39653 | mutex_lock(&module_mutex); | 38820 | mutex_lock(&module_mutex); |
39654 | /* Drop initial reference. */ | 38821 | /* Drop initial reference. */ |
39655 | module_put(mod); | 38822 | module_put(mod); |
@@ -39676,7 +38843,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39676 | #ifdef CONFIG_KALLSYMS | 38843 | #ifdef CONFIG_KALLSYMS |
39677 | /* | 38844 | /* |
39678 | * This ignores the intensely annoying "mapping symbols" found | 38845 | * This ignores the intensely annoying "mapping symbols" found |
39679 | @@ -2409,10 +2558,16 @@ static const char *get_ksymbol(struct mo | 38846 | @@ -2428,10 +2570,16 @@ static const char *get_ksymbol(struct mo |
39680 | unsigned long nextval; | 38847 | unsigned long nextval; |
39681 | 38848 | ||
39682 | /* At worse, next value is at end of module */ | 38849 | /* At worse, next value is at end of module */ |
@@ -39696,7 +38863,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39696 | 38863 | ||
39697 | /* Scan for closest preceeding symbol, and next symbol. (ELF | 38864 | /* Scan for closest preceeding symbol, and next symbol. (ELF |
39698 | starts real symbols at 1). */ | 38865 | starts real symbols at 1). */ |
39699 | @@ -2639,7 +2794,7 @@ static int m_show(struct seq_file *m, vo | 38866 | @@ -2677,7 +2825,7 @@ static int m_show(struct seq_file *m, vo |
39700 | char buf[8]; | 38867 | char buf[8]; |
39701 | 38868 | ||
39702 | seq_printf(m, "%s %u", | 38869 | seq_printf(m, "%s %u", |
@@ -39705,7 +38872,7 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39705 | print_unload_info(m, mod); | 38872 | print_unload_info(m, mod); |
39706 | 38873 | ||
39707 | /* Informative for users. */ | 38874 | /* Informative for users. */ |
39708 | @@ -2648,7 +2803,7 @@ static int m_show(struct seq_file *m, vo | 38875 | @@ -2686,7 +2834,7 @@ static int m_show(struct seq_file *m, vo |
39709 | mod->state == MODULE_STATE_COMING ? "Loading": | 38876 | mod->state == MODULE_STATE_COMING ? "Loading": |
39710 | "Live"); | 38877 | "Live"); |
39711 | /* Used by oprofile and other similar tools. */ | 38878 | /* Used by oprofile and other similar tools. */ |
@@ -39714,29 +38881,50 @@ diff -urNp linux-2.6.29.6/kernel/module.c linux-2.6.29.6/kernel/module.c | |||
39714 | 38881 | ||
39715 | /* Taints info */ | 38882 | /* Taints info */ |
39716 | if (mod->taints) | 38883 | if (mod->taints) |
39717 | @@ -2741,12 +2896,15 @@ __notrace_funcgraph struct module *__mod | 38884 | @@ -2781,12 +2929,12 @@ struct module *__module_address(unsigned |
39718 | { | 38885 | { |
39719 | struct module *mod; | 38886 | struct module *mod; |
39720 | 38887 | ||
39721 | - if (addr < module_addr_min || addr > module_addr_max) | 38888 | - if (addr < module_addr_min || addr > module_addr_max) |
39722 | +#ifdef CONFIG_X86_32 | 38889 | + if ((addr < module_addr_min_rx || addr > module_addr_max_rx) && |
39723 | + addr = ktla_ktva(addr); | 38890 | + (addr < module_addr_min_rw || addr > module_addr_max_rw)) |
39724 | +#endif | ||
39725 | + | ||
39726 | + if (addr < module_addr_min_rx || addr > module_addr_max_rx) | ||
39727 | return NULL; | 38891 | return NULL; |
39728 | 38892 | ||
39729 | list_for_each_entry_rcu(mod, &modules, list) | 38893 | list_for_each_entry_rcu(mod, &modules, list) |
39730 | - if (within(addr, mod->module_init, mod->init_text_size) | 38894 | - if (within_module_core(addr, mod) |
39731 | - || within(addr, mod->module_core, mod->core_text_size)) | 38895 | - || within_module_init(addr, mod)) |
39732 | + if (within_module_init_rx(addr, mod) || within_module_core_rx(addr, mod)) | 38896 | + if (within_module_init(addr, mod) || within_module_core(addr, mod)) |
39733 | return mod; | 38897 | return mod; |
39734 | return NULL; | 38898 | return NULL; |
39735 | } | 38899 | } |
39736 | diff -urNp linux-2.6.29.6/kernel/mutex.c linux-2.6.29.6/kernel/mutex.c | 38900 | @@ -2820,11 +2968,20 @@ bool is_module_text_address(unsigned lon |
39737 | --- linux-2.6.29.6/kernel/mutex.c 2009-07-02 19:41:20.000000000 -0400 | 38901 | */ |
39738 | +++ linux-2.6.29.6/kernel/mutex.c 2009-07-23 17:34:32.208921522 -0400 | 38902 | struct module *__module_text_address(unsigned long addr) |
39739 | @@ -83,7 +83,7 @@ __mutex_lock_slowpath(atomic_t *lock_cou | 38903 | { |
38904 | - struct module *mod = __module_address(addr); | ||
38905 | + struct module *mod; | ||
38906 | + | ||
38907 | +#ifdef CONFIG_X86_32 | ||
38908 | + addr = ktla_ktva(addr); | ||
38909 | +#endif | ||
38910 | + | ||
38911 | + if (addr < module_addr_min_rx || addr > module_addr_max_rx) | ||
38912 | + return NULL; | ||
38913 | + | ||
38914 | + mod = __module_address(addr); | ||
38915 | + | ||
38916 | if (mod) { | ||
38917 | /* Make sure it's within the text section. */ | ||
38918 | - if (!within(addr, mod->module_init, mod->init_text_size) | ||
38919 | - && !within(addr, mod->module_core, mod->core_text_size)) | ||
38920 | + if (!within_module_init_rx(addr, mod) && !within_module_core_rx(addr, mod)) | ||
38921 | mod = NULL; | ||
38922 | } | ||
38923 | return mod; | ||
38924 | diff -urNp linux-2.6.30.4/kernel/mutex.c linux-2.6.30.4/kernel/mutex.c | ||
38925 | --- linux-2.6.30.4/kernel/mutex.c 2009-07-24 17:47:51.000000000 -0400 | ||
38926 | +++ linux-2.6.30.4/kernel/mutex.c 2009-07-30 09:48:10.131672113 -0400 | ||
38927 | @@ -89,7 +89,7 @@ __mutex_lock_slowpath(atomic_t *lock_cou | ||
39740 | * | 38928 | * |
39741 | * This function is similar to (but not equivalent to) down(). | 38929 | * This function is similar to (but not equivalent to) down(). |
39742 | */ | 38930 | */ |
@@ -39745,22 +38933,22 @@ diff -urNp linux-2.6.29.6/kernel/mutex.c linux-2.6.29.6/kernel/mutex.c | |||
39745 | { | 38933 | { |
39746 | might_sleep(); | 38934 | might_sleep(); |
39747 | /* | 38935 | /* |
39748 | diff -urNp linux-2.6.29.6/kernel/panic.c linux-2.6.29.6/kernel/panic.c | 38936 | diff -urNp linux-2.6.30.4/kernel/panic.c linux-2.6.30.4/kernel/panic.c |
39749 | --- linux-2.6.29.6/kernel/panic.c 2009-07-02 19:41:20.000000000 -0400 | 38937 | --- linux-2.6.30.4/kernel/panic.c 2009-07-24 17:47:51.000000000 -0400 |
39750 | +++ linux-2.6.29.6/kernel/panic.c 2009-07-23 17:34:32.208921522 -0400 | 38938 | +++ linux-2.6.30.4/kernel/panic.c 2009-07-30 09:48:10.131672113 -0400 |
39751 | @@ -361,7 +361,8 @@ EXPORT_SYMBOL(warn_slowpath); | 38939 | @@ -390,7 +390,8 @@ EXPORT_SYMBOL(warn_slowpath_null); |
39752 | */ | 38940 | */ |
39753 | void __stack_chk_fail(void) | 38941 | void __stack_chk_fail(void) |
39754 | { | 38942 | { |
39755 | - panic("stack-protector: Kernel stack is corrupted"); | 38943 | - panic("stack-protector: Kernel stack is corrupted in: %p\n", |
39756 | + dump_stack(); | 38944 | + dump_stack(); |
39757 | + panic("stack-protector: Kernel stack is corrupted in: %pS\n", __builtin_return_address(0)); | 38945 | + panic("stack-protector: Kernel stack is corrupted in: %pS\n", |
38946 | __builtin_return_address(0)); | ||
39758 | } | 38947 | } |
39759 | EXPORT_SYMBOL(__stack_chk_fail); | 38948 | EXPORT_SYMBOL(__stack_chk_fail); |
39760 | #endif | 38949 | diff -urNp linux-2.6.30.4/kernel/pid.c linux-2.6.30.4/kernel/pid.c |
39761 | diff -urNp linux-2.6.29.6/kernel/pid.c linux-2.6.29.6/kernel/pid.c | 38950 | --- linux-2.6.30.4/kernel/pid.c 2009-07-24 17:47:51.000000000 -0400 |
39762 | --- linux-2.6.29.6/kernel/pid.c 2009-07-02 19:41:20.000000000 -0400 | 38951 | +++ linux-2.6.30.4/kernel/pid.c 2009-07-30 11:10:49.635626798 -0400 |
39763 | +++ linux-2.6.29.6/kernel/pid.c 2009-07-23 17:34:32.208921522 -0400 | ||
39764 | @@ -33,6 +33,7 @@ | 38952 | @@ -33,6 +33,7 @@ |
39765 | #include <linux/rculist.h> | 38953 | #include <linux/rculist.h> |
39766 | #include <linux/bootmem.h> | 38954 | #include <linux/bootmem.h> |
@@ -39794,9 +38982,9 @@ diff -urNp linux-2.6.29.6/kernel/pid.c linux-2.6.29.6/kernel/pid.c | |||
39794 | } | 38982 | } |
39795 | 38983 | ||
39796 | EXPORT_SYMBOL(find_task_by_pid_type_ns); | 38984 | EXPORT_SYMBOL(find_task_by_pid_type_ns); |
39797 | diff -urNp linux-2.6.29.6/kernel/posix-cpu-timers.c linux-2.6.29.6/kernel/posix-cpu-timers.c | 38985 | diff -urNp linux-2.6.30.4/kernel/posix-cpu-timers.c linux-2.6.30.4/kernel/posix-cpu-timers.c |
39798 | --- linux-2.6.29.6/kernel/posix-cpu-timers.c 2009-07-02 19:41:20.000000000 -0400 | 38986 | --- linux-2.6.30.4/kernel/posix-cpu-timers.c 2009-07-24 17:47:51.000000000 -0400 |
39799 | +++ linux-2.6.29.6/kernel/posix-cpu-timers.c 2009-07-23 17:34:32.209811964 -0400 | 38987 | +++ linux-2.6.30.4/kernel/posix-cpu-timers.c 2009-07-30 11:10:49.652340336 -0400 |
39800 | @@ -6,6 +6,7 @@ | 38988 | @@ -6,6 +6,7 @@ |
39801 | #include <linux/posix-timers.h> | 38989 | #include <linux/posix-timers.h> |
39802 | #include <linux/errno.h> | 38990 | #include <linux/errno.h> |
@@ -39821,30 +39009,9 @@ diff -urNp linux-2.6.29.6/kernel/posix-cpu-timers.c linux-2.6.29.6/kernel/posix- | |||
39821 | if (psecs >= sig->rlim[RLIMIT_CPU].rlim_cur) { | 39009 | if (psecs >= sig->rlim[RLIMIT_CPU].rlim_cur) { |
39822 | /* | 39010 | /* |
39823 | * At the soft limit, send a SIGXCPU every second. | 39011 | * At the soft limit, send a SIGXCPU every second. |
39824 | @@ -1419,17 +1422,17 @@ void run_posix_cpu_timers(struct task_st | 39012 | diff -urNp linux-2.6.30.4/kernel/power/poweroff.c linux-2.6.30.4/kernel/power/poweroff.c |
39825 | * timer call will interfere. | 39013 | --- linux-2.6.30.4/kernel/power/poweroff.c 2009-07-24 17:47:51.000000000 -0400 |
39826 | */ | 39014 | +++ linux-2.6.30.4/kernel/power/poweroff.c 2009-07-30 09:48:10.132674489 -0400 |
39827 | list_for_each_entry_safe(timer, next, &firing, it.cpu.entry) { | ||
39828 | - int firing; | ||
39829 | + int __firing; | ||
39830 | spin_lock(&timer->it_lock); | ||
39831 | list_del_init(&timer->it.cpu.entry); | ||
39832 | - firing = timer->it.cpu.firing; | ||
39833 | + __firing = timer->it.cpu.firing; | ||
39834 | timer->it.cpu.firing = 0; | ||
39835 | /* | ||
39836 | * The firing flag is -1 if we collided with a reset | ||
39837 | * of the timer, which already reported this | ||
39838 | * almost-firing as an overrun. So don't generate an event. | ||
39839 | */ | ||
39840 | - if (likely(firing >= 0)) { | ||
39841 | + if (likely(__firing >= 0)) { | ||
39842 | cpu_timer_fire(timer); | ||
39843 | } | ||
39844 | spin_unlock(&timer->it_lock); | ||
39845 | diff -urNp linux-2.6.29.6/kernel/power/poweroff.c linux-2.6.29.6/kernel/power/poweroff.c | ||
39846 | --- linux-2.6.29.6/kernel/power/poweroff.c 2009-07-02 19:41:20.000000000 -0400 | ||
39847 | +++ linux-2.6.29.6/kernel/power/poweroff.c 2009-07-23 17:34:32.209811964 -0400 | ||
39848 | @@ -37,7 +37,7 @@ static struct sysrq_key_op sysrq_powerof | 39015 | @@ -37,7 +37,7 @@ static struct sysrq_key_op sysrq_powerof |
39849 | .enable_mask = SYSRQ_ENABLE_BOOT, | 39016 | .enable_mask = SYSRQ_ENABLE_BOOT, |
39850 | }; | 39017 | }; |
@@ -39854,10 +39021,10 @@ diff -urNp linux-2.6.29.6/kernel/power/poweroff.c linux-2.6.29.6/kernel/power/po | |||
39854 | { | 39021 | { |
39855 | register_sysrq_key('o', &sysrq_poweroff_op); | 39022 | register_sysrq_key('o', &sysrq_poweroff_op); |
39856 | return 0; | 39023 | return 0; |
39857 | diff -urNp linux-2.6.29.6/kernel/printk.c linux-2.6.29.6/kernel/printk.c | 39024 | diff -urNp linux-2.6.30.4/kernel/printk.c linux-2.6.30.4/kernel/printk.c |
39858 | --- linux-2.6.29.6/kernel/printk.c 2009-07-02 19:41:20.000000000 -0400 | 39025 | --- linux-2.6.30.4/kernel/printk.c 2009-07-24 17:47:51.000000000 -0400 |
39859 | +++ linux-2.6.29.6/kernel/printk.c 2009-07-23 17:34:32.209811964 -0400 | 39026 | +++ linux-2.6.30.4/kernel/printk.c 2009-07-30 11:10:49.653305213 -0400 |
39860 | @@ -253,6 +253,11 @@ int do_syslog(int type, char __user *buf | 39027 | @@ -272,6 +272,11 @@ int do_syslog(int type, char __user *buf |
39861 | char c; | 39028 | char c; |
39862 | int error = 0; | 39029 | int error = 0; |
39863 | 39030 | ||
@@ -39869,10 +39036,10 @@ diff -urNp linux-2.6.29.6/kernel/printk.c linux-2.6.29.6/kernel/printk.c | |||
39869 | error = security_syslog(type); | 39036 | error = security_syslog(type); |
39870 | if (error) | 39037 | if (error) |
39871 | return error; | 39038 | return error; |
39872 | diff -urNp linux-2.6.29.6/kernel/ptrace.c linux-2.6.29.6/kernel/ptrace.c | 39039 | diff -urNp linux-2.6.30.4/kernel/ptrace.c linux-2.6.30.4/kernel/ptrace.c |
39873 | --- linux-2.6.29.6/kernel/ptrace.c 2009-07-02 19:41:20.000000000 -0400 | 39040 | --- linux-2.6.30.4/kernel/ptrace.c 2009-07-24 17:47:51.000000000 -0400 |
39874 | +++ linux-2.6.29.6/kernel/ptrace.c 2009-07-23 17:34:32.210756226 -0400 | 39041 | +++ linux-2.6.30.4/kernel/ptrace.c 2009-07-30 11:10:49.654304318 -0400 |
39875 | @@ -149,7 +149,7 @@ int __ptrace_may_access(struct task_stru | 39042 | @@ -151,7 +151,7 @@ int __ptrace_may_access(struct task_stru |
39876 | cred->gid != tcred->egid || | 39043 | cred->gid != tcred->egid || |
39877 | cred->gid != tcred->sgid || | 39044 | cred->gid != tcred->sgid || |
39878 | cred->gid != tcred->gid) && | 39045 | cred->gid != tcred->gid) && |
@@ -39881,7 +39048,7 @@ diff -urNp linux-2.6.29.6/kernel/ptrace.c linux-2.6.29.6/kernel/ptrace.c | |||
39881 | rcu_read_unlock(); | 39048 | rcu_read_unlock(); |
39882 | return -EPERM; | 39049 | return -EPERM; |
39883 | } | 39050 | } |
39884 | @@ -157,7 +157,7 @@ int __ptrace_may_access(struct task_stru | 39051 | @@ -159,7 +159,7 @@ int __ptrace_may_access(struct task_stru |
39885 | smp_rmb(); | 39052 | smp_rmb(); |
39886 | if (task->mm) | 39053 | if (task->mm) |
39887 | dumpable = get_dumpable(task->mm); | 39054 | dumpable = get_dumpable(task->mm); |
@@ -39890,7 +39057,7 @@ diff -urNp linux-2.6.29.6/kernel/ptrace.c linux-2.6.29.6/kernel/ptrace.c | |||
39890 | return -EPERM; | 39057 | return -EPERM; |
39891 | 39058 | ||
39892 | return security_ptrace_may_access(task, mode); | 39059 | return security_ptrace_may_access(task, mode); |
39893 | @@ -221,7 +221,7 @@ repeat: | 39060 | @@ -223,7 +223,7 @@ repeat: |
39894 | 39061 | ||
39895 | /* Go */ | 39062 | /* Go */ |
39896 | task->ptrace |= PT_PTRACED; | 39063 | task->ptrace |= PT_PTRACED; |
@@ -39899,7 +39066,7 @@ diff -urNp linux-2.6.29.6/kernel/ptrace.c linux-2.6.29.6/kernel/ptrace.c | |||
39899 | task->ptrace |= PT_PTRACE_CAP; | 39066 | task->ptrace |= PT_PTRACE_CAP; |
39900 | 39067 | ||
39901 | __ptrace_link(task, current); | 39068 | __ptrace_link(task, current); |
39902 | @@ -612,6 +612,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l | 39069 | @@ -687,6 +687,11 @@ SYSCALL_DEFINE4(ptrace, long, request, l |
39903 | if (ret < 0) | 39070 | if (ret < 0) |
39904 | goto out_put_task_struct; | 39071 | goto out_put_task_struct; |
39905 | 39072 | ||
@@ -39909,11 +39076,11 @@ diff -urNp linux-2.6.29.6/kernel/ptrace.c linux-2.6.29.6/kernel/ptrace.c | |||
39909 | + } | 39076 | + } |
39910 | + | 39077 | + |
39911 | ret = arch_ptrace(child, request, addr, data); | 39078 | ret = arch_ptrace(child, request, addr, data); |
39912 | if (ret < 0) | 39079 | |
39913 | goto out_put_task_struct; | 39080 | out_put_task_struct: |
39914 | diff -urNp linux-2.6.29.6/kernel/rcupreempt_trace.c linux-2.6.29.6/kernel/rcupreempt_trace.c | 39081 | diff -urNp linux-2.6.30.4/kernel/rcupreempt_trace.c linux-2.6.30.4/kernel/rcupreempt_trace.c |
39915 | --- linux-2.6.29.6/kernel/rcupreempt_trace.c 2009-07-02 19:41:20.000000000 -0400 | 39082 | --- linux-2.6.30.4/kernel/rcupreempt_trace.c 2009-07-24 17:47:51.000000000 -0400 |
39916 | +++ linux-2.6.29.6/kernel/rcupreempt_trace.c 2009-07-23 18:40:28.721271955 -0400 | 39083 | +++ linux-2.6.30.4/kernel/rcupreempt_trace.c 2009-07-30 09:48:10.132674489 -0400 |
39917 | @@ -261,17 +261,17 @@ static ssize_t rcuctrs_read(struct file | 39084 | @@ -261,17 +261,17 @@ static ssize_t rcuctrs_read(struct file |
39918 | return bcount; | 39085 | return bcount; |
39919 | } | 39086 | } |
@@ -39935,9 +39102,9 @@ diff -urNp linux-2.6.29.6/kernel/rcupreempt_trace.c linux-2.6.29.6/kernel/rcupre | |||
39935 | .owner = THIS_MODULE, | 39102 | .owner = THIS_MODULE, |
39936 | .read = rcuctrs_read, | 39103 | .read = rcuctrs_read, |
39937 | }; | 39104 | }; |
39938 | diff -urNp linux-2.6.29.6/kernel/rcutree_trace.c linux-2.6.29.6/kernel/rcutree_trace.c | 39105 | diff -urNp linux-2.6.30.4/kernel/rcutree_trace.c linux-2.6.30.4/kernel/rcutree_trace.c |
39939 | --- linux-2.6.29.6/kernel/rcutree_trace.c 2009-07-02 19:41:20.000000000 -0400 | 39106 | --- linux-2.6.30.4/kernel/rcutree_trace.c 2009-07-24 17:47:51.000000000 -0400 |
39940 | +++ linux-2.6.29.6/kernel/rcutree_trace.c 2009-07-23 18:40:28.721271955 -0400 | 39107 | +++ linux-2.6.30.4/kernel/rcutree_trace.c 2009-07-30 09:48:10.132674489 -0400 |
39941 | @@ -88,7 +88,7 @@ static int rcudata_open(struct inode *in | 39108 | @@ -88,7 +88,7 @@ static int rcudata_open(struct inode *in |
39942 | return single_open(file, show_rcudata, NULL); | 39109 | return single_open(file, show_rcudata, NULL); |
39943 | } | 39110 | } |
@@ -39947,7 +39114,7 @@ diff -urNp linux-2.6.29.6/kernel/rcutree_trace.c linux-2.6.29.6/kernel/rcutree_t | |||
39947 | .owner = THIS_MODULE, | 39114 | .owner = THIS_MODULE, |
39948 | .open = rcudata_open, | 39115 | .open = rcudata_open, |
39949 | .read = seq_read, | 39116 | .read = seq_read, |
39950 | @@ -138,7 +138,7 @@ static int rcudata_csv_open(struct inode | 39117 | @@ -136,7 +136,7 @@ static int rcudata_csv_open(struct inode |
39951 | return single_open(file, show_rcudata_csv, NULL); | 39118 | return single_open(file, show_rcudata_csv, NULL); |
39952 | } | 39119 | } |
39953 | 39120 | ||
@@ -39956,7 +39123,7 @@ diff -urNp linux-2.6.29.6/kernel/rcutree_trace.c linux-2.6.29.6/kernel/rcutree_t | |||
39956 | .owner = THIS_MODULE, | 39123 | .owner = THIS_MODULE, |
39957 | .open = rcudata_csv_open, | 39124 | .open = rcudata_csv_open, |
39958 | .read = seq_read, | 39125 | .read = seq_read, |
39959 | @@ -185,7 +185,7 @@ static int rcuhier_open(struct inode *in | 39126 | @@ -183,7 +183,7 @@ static int rcuhier_open(struct inode *in |
39960 | return single_open(file, show_rcuhier, NULL); | 39127 | return single_open(file, show_rcuhier, NULL); |
39961 | } | 39128 | } |
39962 | 39129 | ||
@@ -39965,7 +39132,7 @@ diff -urNp linux-2.6.29.6/kernel/rcutree_trace.c linux-2.6.29.6/kernel/rcutree_t | |||
39965 | .owner = THIS_MODULE, | 39132 | .owner = THIS_MODULE, |
39966 | .open = rcuhier_open, | 39133 | .open = rcuhier_open, |
39967 | .read = seq_read, | 39134 | .read = seq_read, |
39968 | @@ -207,7 +207,7 @@ static int rcugp_open(struct inode *inod | 39135 | @@ -205,7 +205,7 @@ static int rcugp_open(struct inode *inod |
39969 | return single_open(file, show_rcugp, NULL); | 39136 | return single_open(file, show_rcugp, NULL); |
39970 | } | 39137 | } |
39971 | 39138 | ||
@@ -39974,9 +39141,9 @@ diff -urNp linux-2.6.29.6/kernel/rcutree_trace.c linux-2.6.29.6/kernel/rcutree_t | |||
39974 | .owner = THIS_MODULE, | 39141 | .owner = THIS_MODULE, |
39975 | .open = rcugp_open, | 39142 | .open = rcugp_open, |
39976 | .read = seq_read, | 39143 | .read = seq_read, |
39977 | diff -urNp linux-2.6.29.6/kernel/relay.c linux-2.6.29.6/kernel/relay.c | 39144 | diff -urNp linux-2.6.30.4/kernel/relay.c linux-2.6.30.4/kernel/relay.c |
39978 | --- linux-2.6.29.6/kernel/relay.c 2009-07-02 19:41:20.000000000 -0400 | 39145 | --- linux-2.6.30.4/kernel/relay.c 2009-07-24 17:47:51.000000000 -0400 |
39979 | +++ linux-2.6.29.6/kernel/relay.c 2009-07-23 18:40:27.474712638 -0400 | 39146 | +++ linux-2.6.30.4/kernel/relay.c 2009-07-30 09:48:10.133766067 -0400 |
39980 | @@ -60,7 +60,7 @@ static int relay_buf_fault(struct vm_are | 39147 | @@ -60,7 +60,7 @@ static int relay_buf_fault(struct vm_are |
39981 | /* | 39148 | /* |
39982 | * vm_ops for relay file mappings. | 39149 | * vm_ops for relay file mappings. |
@@ -39995,9 +39162,9 @@ diff -urNp linux-2.6.29.6/kernel/relay.c linux-2.6.29.6/kernel/relay.c | |||
39995 | return ret; | 39162 | return ret; |
39996 | 39163 | ||
39997 | if (read_start + ret == nonpad_end) | 39164 | if (read_start + ret == nonpad_end) |
39998 | diff -urNp linux-2.6.29.6/kernel/resource.c linux-2.6.29.6/kernel/resource.c | 39165 | diff -urNp linux-2.6.30.4/kernel/resource.c linux-2.6.30.4/kernel/resource.c |
39999 | --- linux-2.6.29.6/kernel/resource.c 2009-07-02 19:41:20.000000000 -0400 | 39166 | --- linux-2.6.30.4/kernel/resource.c 2009-07-24 17:47:51.000000000 -0400 |
40000 | +++ linux-2.6.29.6/kernel/resource.c 2009-07-23 17:34:32.210756226 -0400 | 39167 | +++ linux-2.6.30.4/kernel/resource.c 2009-07-30 11:10:49.657454572 -0400 |
40001 | @@ -132,8 +132,18 @@ static const struct file_operations proc | 39168 | @@ -132,8 +132,18 @@ static const struct file_operations proc |
40002 | 39169 | ||
40003 | static int __init ioresources_init(void) | 39170 | static int __init ioresources_init(void) |
@@ -40017,10 +39184,10 @@ diff -urNp linux-2.6.29.6/kernel/resource.c linux-2.6.29.6/kernel/resource.c | |||
40017 | return 0; | 39184 | return 0; |
40018 | } | 39185 | } |
40019 | __initcall(ioresources_init); | 39186 | __initcall(ioresources_init); |
40020 | diff -urNp linux-2.6.29.6/kernel/sched.c linux-2.6.29.6/kernel/sched.c | 39187 | diff -urNp linux-2.6.30.4/kernel/sched.c linux-2.6.30.4/kernel/sched.c |
40021 | --- linux-2.6.29.6/kernel/sched.c 2009-07-02 19:41:20.000000000 -0400 | 39188 | --- linux-2.6.30.4/kernel/sched.c 2009-07-30 20:32:40.551917543 -0400 |
40022 | +++ linux-2.6.29.6/kernel/sched.c 2009-07-23 18:40:27.477441834 -0400 | 39189 | +++ linux-2.6.30.4/kernel/sched.c 2009-07-30 20:32:48.093586870 -0400 |
40023 | @@ -801,7 +801,7 @@ static int sched_feat_open(struct inode | 39190 | @@ -819,7 +819,7 @@ static int sched_feat_open(struct inode |
40024 | return single_open(filp, sched_feat_show, NULL); | 39191 | return single_open(filp, sched_feat_show, NULL); |
40025 | } | 39192 | } |
40026 | 39193 | ||
@@ -40029,7 +39196,7 @@ diff -urNp linux-2.6.29.6/kernel/sched.c linux-2.6.29.6/kernel/sched.c | |||
40029 | .open = sched_feat_open, | 39196 | .open = sched_feat_open, |
40030 | .write = sched_feat_write, | 39197 | .write = sched_feat_write, |
40031 | .read = seq_read, | 39198 | .read = seq_read, |
40032 | @@ -5175,6 +5175,8 @@ int can_nice(const struct task_struct *p | 39199 | @@ -5663,6 +5663,8 @@ int can_nice(const struct task_struct *p |
40033 | /* convert nice value [19,-20] to rlimit style value [1,40] */ | 39200 | /* convert nice value [19,-20] to rlimit style value [1,40] */ |
40034 | int nice_rlim = 20 - nice; | 39201 | int nice_rlim = 20 - nice; |
40035 | 39202 | ||
@@ -40038,7 +39205,7 @@ diff -urNp linux-2.6.29.6/kernel/sched.c linux-2.6.29.6/kernel/sched.c | |||
40038 | return (nice_rlim <= p->signal->rlim[RLIMIT_NICE].rlim_cur || | 39205 | return (nice_rlim <= p->signal->rlim[RLIMIT_NICE].rlim_cur || |
40039 | capable(CAP_SYS_NICE)); | 39206 | capable(CAP_SYS_NICE)); |
40040 | } | 39207 | } |
40041 | @@ -5208,7 +5210,8 @@ SYSCALL_DEFINE1(nice, int, increment) | 39208 | @@ -5696,7 +5698,8 @@ SYSCALL_DEFINE1(nice, int, increment) |
40042 | if (nice > 19) | 39209 | if (nice > 19) |
40043 | nice = 19; | 39210 | nice = 19; |
40044 | 39211 | ||
@@ -40048,7 +39215,7 @@ diff -urNp linux-2.6.29.6/kernel/sched.c linux-2.6.29.6/kernel/sched.c | |||
40048 | return -EPERM; | 39215 | return -EPERM; |
40049 | 39216 | ||
40050 | retval = security_task_setnice(current, nice); | 39217 | retval = security_task_setnice(current, nice); |
40051 | @@ -5350,6 +5353,8 @@ recheck: | 39218 | @@ -5838,6 +5841,8 @@ recheck: |
40052 | if (rt_policy(policy)) { | 39219 | if (rt_policy(policy)) { |
40053 | unsigned long rlim_rtprio; | 39220 | unsigned long rlim_rtprio; |
40054 | 39221 | ||
@@ -40057,7 +39224,7 @@ diff -urNp linux-2.6.29.6/kernel/sched.c linux-2.6.29.6/kernel/sched.c | |||
40057 | if (!lock_task_sighand(p, &flags)) | 39224 | if (!lock_task_sighand(p, &flags)) |
40058 | return -ESRCH; | 39225 | return -ESRCH; |
40059 | rlim_rtprio = p->signal->rlim[RLIMIT_RTPRIO].rlim_cur; | 39226 | rlim_rtprio = p->signal->rlim[RLIMIT_RTPRIO].rlim_cur; |
40060 | @@ -6497,7 +6502,7 @@ static struct ctl_table sd_ctl_dir[] = { | 39227 | @@ -6980,7 +6985,7 @@ static struct ctl_table sd_ctl_dir[] = { |
40061 | .procname = "sched_domain", | 39228 | .procname = "sched_domain", |
40062 | .mode = 0555, | 39229 | .mode = 0555, |
40063 | }, | 39230 | }, |
@@ -40066,7 +39233,7 @@ diff -urNp linux-2.6.29.6/kernel/sched.c linux-2.6.29.6/kernel/sched.c | |||
40066 | }; | 39233 | }; |
40067 | 39234 | ||
40068 | static struct ctl_table sd_ctl_root[] = { | 39235 | static struct ctl_table sd_ctl_root[] = { |
40069 | @@ -6507,7 +6512,7 @@ static struct ctl_table sd_ctl_root[] = | 39236 | @@ -6990,7 +6995,7 @@ static struct ctl_table sd_ctl_root[] = |
40070 | .mode = 0555, | 39237 | .mode = 0555, |
40071 | .child = sd_ctl_dir, | 39238 | .child = sd_ctl_dir, |
40072 | }, | 39239 | }, |
@@ -40075,10 +39242,10 @@ diff -urNp linux-2.6.29.6/kernel/sched.c linux-2.6.29.6/kernel/sched.c | |||
40075 | }; | 39242 | }; |
40076 | 39243 | ||
40077 | static struct ctl_table *sd_alloc_ctl_entry(int n) | 39244 | static struct ctl_table *sd_alloc_ctl_entry(int n) |
40078 | diff -urNp linux-2.6.29.6/kernel/signal.c linux-2.6.29.6/kernel/signal.c | 39245 | diff -urNp linux-2.6.30.4/kernel/signal.c linux-2.6.30.4/kernel/signal.c |
40079 | --- linux-2.6.29.6/kernel/signal.c 2009-07-02 19:41:20.000000000 -0400 | 39246 | --- linux-2.6.30.4/kernel/signal.c 2009-07-24 17:47:51.000000000 -0400 |
40080 | +++ linux-2.6.29.6/kernel/signal.c 2009-07-23 17:34:32.213855277 -0400 | 39247 | +++ linux-2.6.30.4/kernel/signal.c 2009-07-30 11:10:49.687338803 -0400 |
40081 | @@ -198,6 +198,9 @@ static struct sigqueue *__sigqueue_alloc | 39248 | @@ -209,6 +209,9 @@ static struct sigqueue *__sigqueue_alloc |
40082 | */ | 39249 | */ |
40083 | user = get_uid(__task_cred(t)->user); | 39250 | user = get_uid(__task_cred(t)->user); |
40084 | atomic_inc(&user->sigpending); | 39251 | atomic_inc(&user->sigpending); |
@@ -40088,7 +39255,7 @@ diff -urNp linux-2.6.29.6/kernel/signal.c linux-2.6.29.6/kernel/signal.c | |||
40088 | if (override_rlimit || | 39255 | if (override_rlimit || |
40089 | atomic_read(&user->sigpending) <= | 39256 | atomic_read(&user->sigpending) <= |
40090 | t->signal->rlim[RLIMIT_SIGPENDING].rlim_cur) | 39257 | t->signal->rlim[RLIMIT_SIGPENDING].rlim_cur) |
40091 | @@ -611,6 +614,9 @@ static int check_kill_permission(int sig | 39258 | @@ -622,6 +625,9 @@ static int check_kill_permission(int sig |
40092 | } | 39259 | } |
40093 | } | 39260 | } |
40094 | 39261 | ||
@@ -40098,7 +39265,7 @@ diff -urNp linux-2.6.29.6/kernel/signal.c linux-2.6.29.6/kernel/signal.c | |||
40098 | return security_task_kill(t, info, sig, 0); | 39265 | return security_task_kill(t, info, sig, 0); |
40099 | } | 39266 | } |
40100 | 39267 | ||
40101 | @@ -903,8 +909,8 @@ static void print_fatal_signal(struct pt | 39268 | @@ -931,8 +937,8 @@ static void print_fatal_signal(struct pt |
40102 | for (i = 0; i < 16; i++) { | 39269 | for (i = 0; i < 16; i++) { |
40103 | unsigned char insn; | 39270 | unsigned char insn; |
40104 | 39271 | ||
@@ -40109,7 +39276,7 @@ diff -urNp linux-2.6.29.6/kernel/signal.c linux-2.6.29.6/kernel/signal.c | |||
40109 | } | 39276 | } |
40110 | } | 39277 | } |
40111 | #endif | 39278 | #endif |
40112 | @@ -929,7 +935,7 @@ __group_send_sig_info(int sig, struct si | 39279 | @@ -957,7 +963,7 @@ __group_send_sig_info(int sig, struct si |
40113 | return send_signal(sig, info, p, 1); | 39280 | return send_signal(sig, info, p, 1); |
40114 | } | 39281 | } |
40115 | 39282 | ||
@@ -40118,7 +39285,7 @@ diff -urNp linux-2.6.29.6/kernel/signal.c linux-2.6.29.6/kernel/signal.c | |||
40118 | specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t) | 39285 | specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t) |
40119 | { | 39286 | { |
40120 | return send_signal(sig, info, t, 0); | 39287 | return send_signal(sig, info, t, 0); |
40121 | @@ -969,6 +975,9 @@ force_sig_info(int sig, struct siginfo * | 39288 | @@ -997,6 +1003,9 @@ force_sig_info(int sig, struct siginfo * |
40122 | ret = specific_send_sig_info(sig, info, t); | 39289 | ret = specific_send_sig_info(sig, info, t); |
40123 | spin_unlock_irqrestore(&t->sighand->siglock, flags); | 39290 | spin_unlock_irqrestore(&t->sighand->siglock, flags); |
40124 | 39291 | ||
@@ -40128,7 +39295,7 @@ diff -urNp linux-2.6.29.6/kernel/signal.c linux-2.6.29.6/kernel/signal.c | |||
40128 | return ret; | 39295 | return ret; |
40129 | } | 39296 | } |
40130 | 39297 | ||
40131 | @@ -1043,6 +1052,8 @@ int group_send_sig_info(int sig, struct | 39298 | @@ -1071,6 +1080,8 @@ int group_send_sig_info(int sig, struct |
40132 | ret = __group_send_sig_info(sig, info, p); | 39299 | ret = __group_send_sig_info(sig, info, p); |
40133 | unlock_task_sighand(p, &flags); | 39300 | unlock_task_sighand(p, &flags); |
40134 | } | 39301 | } |
@@ -40137,25 +39304,10 @@ diff -urNp linux-2.6.29.6/kernel/signal.c linux-2.6.29.6/kernel/signal.c | |||
40137 | } | 39304 | } |
40138 | 39305 | ||
40139 | return ret; | 39306 | return ret; |
40140 | diff -urNp linux-2.6.29.6/kernel/softirq.c linux-2.6.29.6/kernel/softirq.c | 39307 | diff -urNp linux-2.6.30.4/kernel/sys.c linux-2.6.30.4/kernel/sys.c |
40141 | --- linux-2.6.29.6/kernel/softirq.c 2009-07-02 19:41:20.000000000 -0400 | 39308 | --- linux-2.6.30.4/kernel/sys.c 2009-07-24 17:47:51.000000000 -0400 |
40142 | +++ linux-2.6.29.6/kernel/softirq.c 2009-07-23 17:34:32.213855277 -0400 | 39309 | +++ linux-2.6.30.4/kernel/sys.c 2009-07-30 11:10:49.695716903 -0400 |
40143 | @@ -450,9 +450,9 @@ void tasklet_kill(struct tasklet_struct | 39310 | @@ -132,6 +132,12 @@ static int set_one_prio(struct task_stru |
40144 | printk("Attempt to kill tasklet from interrupt\n"); | ||
40145 | |||
40146 | while (test_and_set_bit(TASKLET_STATE_SCHED, &t->state)) { | ||
40147 | - do | ||
40148 | + do { | ||
40149 | yield(); | ||
40150 | - while (test_bit(TASKLET_STATE_SCHED, &t->state)); | ||
40151 | + } while (test_bit(TASKLET_STATE_SCHED, &t->state)); | ||
40152 | } | ||
40153 | tasklet_unlock_wait(t); | ||
40154 | clear_bit(TASKLET_STATE_SCHED, &t->state); | ||
40155 | diff -urNp linux-2.6.29.6/kernel/sys.c linux-2.6.29.6/kernel/sys.c | ||
40156 | --- linux-2.6.29.6/kernel/sys.c 2009-07-02 19:41:20.000000000 -0400 | ||
40157 | +++ linux-2.6.29.6/kernel/sys.c 2009-07-23 17:34:32.214754476 -0400 | ||
40158 | @@ -131,6 +131,12 @@ static int set_one_prio(struct task_stru | ||
40159 | error = -EACCES; | 39311 | error = -EACCES; |
40160 | goto out; | 39312 | goto out; |
40161 | } | 39313 | } |
@@ -40168,15 +39320,7 @@ diff -urNp linux-2.6.29.6/kernel/sys.c linux-2.6.29.6/kernel/sys.c | |||
40168 | no_nice = security_task_setnice(p, niceval); | 39320 | no_nice = security_task_setnice(p, niceval); |
40169 | if (no_nice) { | 39321 | if (no_nice) { |
40170 | error = no_nice; | 39322 | error = no_nice; |
40171 | @@ -503,6 +509,7 @@ SYSCALL_DEFINE2(setregid, gid_t, rgid, g | 39323 | @@ -508,6 +514,9 @@ SYSCALL_DEFINE2(setregid, gid_t, rgid, g |
40172 | else | ||
40173 | goto error; | ||
40174 | } | ||
40175 | + | ||
40176 | if (egid != (gid_t) -1) { | ||
40177 | if (old->gid == egid || | ||
40178 | old->egid == egid || | ||
40179 | @@ -513,6 +520,9 @@ SYSCALL_DEFINE2(setregid, gid_t, rgid, g | ||
40180 | goto error; | 39324 | goto error; |
40181 | } | 39325 | } |
40182 | 39326 | ||
@@ -40186,7 +39330,7 @@ diff -urNp linux-2.6.29.6/kernel/sys.c linux-2.6.29.6/kernel/sys.c | |||
40186 | if (rgid != (gid_t) -1 || | 39330 | if (rgid != (gid_t) -1 || |
40187 | (egid != (gid_t) -1 && egid != old->gid)) | 39331 | (egid != (gid_t) -1 && egid != old->gid)) |
40188 | new->sgid = new->egid; | 39332 | new->sgid = new->egid; |
40189 | @@ -546,6 +556,10 @@ SYSCALL_DEFINE1(setgid, gid_t, gid) | 39333 | @@ -541,6 +550,10 @@ SYSCALL_DEFINE1(setgid, gid_t, gid) |
40190 | goto error; | 39334 | goto error; |
40191 | 39335 | ||
40192 | retval = -EPERM; | 39336 | retval = -EPERM; |
@@ -40197,7 +39341,7 @@ diff -urNp linux-2.6.29.6/kernel/sys.c linux-2.6.29.6/kernel/sys.c | |||
40197 | if (capable(CAP_SETGID)) | 39341 | if (capable(CAP_SETGID)) |
40198 | new->gid = new->egid = new->sgid = new->fsgid = gid; | 39342 | new->gid = new->egid = new->sgid = new->fsgid = gid; |
40199 | else if (gid == old->gid || gid == old->sgid) | 39343 | else if (gid == old->gid || gid == old->sgid) |
40200 | @@ -636,6 +650,9 @@ SYSCALL_DEFINE2(setreuid, uid_t, ruid, u | 39344 | @@ -631,6 +644,9 @@ SYSCALL_DEFINE2(setreuid, uid_t, ruid, u |
40201 | goto error; | 39345 | goto error; |
40202 | } | 39346 | } |
40203 | 39347 | ||
@@ -40207,7 +39351,7 @@ diff -urNp linux-2.6.29.6/kernel/sys.c linux-2.6.29.6/kernel/sys.c | |||
40207 | if (new->uid != old->uid) { | 39351 | if (new->uid != old->uid) { |
40208 | retval = set_user(new); | 39352 | retval = set_user(new); |
40209 | if (retval < 0) | 39353 | if (retval < 0) |
40210 | @@ -684,6 +701,12 @@ SYSCALL_DEFINE1(setuid, uid_t, uid) | 39354 | @@ -679,6 +695,12 @@ SYSCALL_DEFINE1(setuid, uid_t, uid) |
40211 | goto error; | 39355 | goto error; |
40212 | 39356 | ||
40213 | retval = -EPERM; | 39357 | retval = -EPERM; |
@@ -40220,7 +39364,7 @@ diff -urNp linux-2.6.29.6/kernel/sys.c linux-2.6.29.6/kernel/sys.c | |||
40220 | if (capable(CAP_SETUID)) { | 39364 | if (capable(CAP_SETUID)) { |
40221 | new->suid = new->uid = uid; | 39365 | new->suid = new->uid = uid; |
40222 | if (uid != old->uid) { | 39366 | if (uid != old->uid) { |
40223 | @@ -741,6 +764,9 @@ SYSCALL_DEFINE3(setresuid, uid_t, ruid, | 39367 | @@ -736,6 +758,9 @@ SYSCALL_DEFINE3(setresuid, uid_t, ruid, |
40224 | goto error; | 39368 | goto error; |
40225 | } | 39369 | } |
40226 | 39370 | ||
@@ -40230,7 +39374,7 @@ diff -urNp linux-2.6.29.6/kernel/sys.c linux-2.6.29.6/kernel/sys.c | |||
40230 | if (ruid != (uid_t) -1) { | 39374 | if (ruid != (uid_t) -1) { |
40231 | new->uid = ruid; | 39375 | new->uid = ruid; |
40232 | if (ruid != old->uid) { | 39376 | if (ruid != old->uid) { |
40233 | @@ -809,6 +835,9 @@ SYSCALL_DEFINE3(setresgid, gid_t, rgid, | 39377 | @@ -804,6 +829,9 @@ SYSCALL_DEFINE3(setresgid, gid_t, rgid, |
40234 | goto error; | 39378 | goto error; |
40235 | } | 39379 | } |
40236 | 39380 | ||
@@ -40240,7 +39384,7 @@ diff -urNp linux-2.6.29.6/kernel/sys.c linux-2.6.29.6/kernel/sys.c | |||
40240 | if (rgid != (gid_t) -1) | 39384 | if (rgid != (gid_t) -1) |
40241 | new->gid = rgid; | 39385 | new->gid = rgid; |
40242 | if (egid != (gid_t) -1) | 39386 | if (egid != (gid_t) -1) |
40243 | @@ -858,6 +887,9 @@ SYSCALL_DEFINE1(setfsuid, uid_t, uid) | 39387 | @@ -853,6 +881,9 @@ SYSCALL_DEFINE1(setfsuid, uid_t, uid) |
40244 | if (security_task_setuid(uid, (uid_t)-1, (uid_t)-1, LSM_SETID_FS) < 0) | 39388 | if (security_task_setuid(uid, (uid_t)-1, (uid_t)-1, LSM_SETID_FS) < 0) |
40245 | goto error; | 39389 | goto error; |
40246 | 39390 | ||
@@ -40250,7 +39394,7 @@ diff -urNp linux-2.6.29.6/kernel/sys.c linux-2.6.29.6/kernel/sys.c | |||
40250 | if (uid == old->uid || uid == old->euid || | 39394 | if (uid == old->uid || uid == old->euid || |
40251 | uid == old->suid || uid == old->fsuid || | 39395 | uid == old->suid || uid == old->fsuid || |
40252 | capable(CAP_SETUID)) { | 39396 | capable(CAP_SETUID)) { |
40253 | @@ -898,6 +930,9 @@ SYSCALL_DEFINE1(setfsgid, gid_t, gid) | 39397 | @@ -893,6 +924,9 @@ SYSCALL_DEFINE1(setfsgid, gid_t, gid) |
40254 | if (gid == old->gid || gid == old->egid || | 39398 | if (gid == old->gid || gid == old->egid || |
40255 | gid == old->sgid || gid == old->fsgid || | 39399 | gid == old->sgid || gid == old->fsgid || |
40256 | capable(CAP_SETGID)) { | 39400 | capable(CAP_SETGID)) { |
@@ -40260,19 +39404,7 @@ diff -urNp linux-2.6.29.6/kernel/sys.c linux-2.6.29.6/kernel/sys.c | |||
40260 | if (gid != old_fsgid) { | 39404 | if (gid != old_fsgid) { |
40261 | new->fsgid = gid; | 39405 | new->fsgid = gid; |
40262 | goto change_okay; | 39406 | goto change_okay; |
40263 | @@ -974,7 +1009,10 @@ SYSCALL_DEFINE2(setpgid, pid_t, pid, pid | 39407 | @@ -1725,7 +1759,7 @@ SYSCALL_DEFINE5(prctl, int, option, unsi |
40264 | write_lock_irq(&tasklist_lock); | ||
40265 | |||
40266 | err = -ESRCH; | ||
40267 | - p = find_task_by_vpid(pid); | ||
40268 | + /* grsec: replaced find_task_by_vpid with equivalent call which | ||
40269 | + lacks the chroot restriction | ||
40270 | + */ | ||
40271 | + p = pid_task(find_pid_ns(pid, current->nsproxy->pid_ns), PIDTYPE_PID); | ||
40272 | if (!p) | ||
40273 | goto out; | ||
40274 | |||
40275 | @@ -1732,7 +1770,7 @@ SYSCALL_DEFINE5(prctl, int, option, unsi | ||
40276 | error = get_dumpable(me->mm); | 39408 | error = get_dumpable(me->mm); |
40277 | break; | 39409 | break; |
40278 | case PR_SET_DUMPABLE: | 39410 | case PR_SET_DUMPABLE: |
@@ -40281,10 +39413,10 @@ diff -urNp linux-2.6.29.6/kernel/sys.c linux-2.6.29.6/kernel/sys.c | |||
40281 | error = -EINVAL; | 39413 | error = -EINVAL; |
40282 | break; | 39414 | break; |
40283 | } | 39415 | } |
40284 | diff -urNp linux-2.6.29.6/kernel/sysctl.c linux-2.6.29.6/kernel/sysctl.c | 39416 | diff -urNp linux-2.6.30.4/kernel/sysctl.c linux-2.6.30.4/kernel/sysctl.c |
40285 | --- linux-2.6.29.6/kernel/sysctl.c 2009-07-02 19:41:20.000000000 -0400 | 39417 | --- linux-2.6.30.4/kernel/sysctl.c 2009-07-24 17:47:51.000000000 -0400 |
40286 | +++ linux-2.6.29.6/kernel/sysctl.c 2009-07-23 17:34:32.215815558 -0400 | 39418 | +++ linux-2.6.30.4/kernel/sysctl.c 2009-08-04 17:52:34.402065998 -0400 |
40287 | @@ -61,6 +61,13 @@ | 39419 | @@ -62,6 +62,13 @@ |
40288 | static int deprecated_sysctl_warning(struct __sysctl_args *args); | 39420 | static int deprecated_sysctl_warning(struct __sysctl_args *args); |
40289 | 39421 | ||
40290 | #if defined(CONFIG_SYSCTL) | 39422 | #if defined(CONFIG_SYSCTL) |
@@ -40298,7 +39430,7 @@ diff -urNp linux-2.6.29.6/kernel/sysctl.c linux-2.6.29.6/kernel/sysctl.c | |||
40298 | 39430 | ||
40299 | /* External variables not in a header file. */ | 39431 | /* External variables not in a header file. */ |
40300 | extern int C_A_D; | 39432 | extern int C_A_D; |
40301 | @@ -155,6 +162,7 @@ static int proc_do_cad_pid(struct ctl_ta | 39433 | @@ -159,6 +166,7 @@ static int proc_do_cad_pid(struct ctl_ta |
40302 | static int proc_taint(struct ctl_table *table, int write, struct file *filp, | 39434 | static int proc_taint(struct ctl_table *table, int write, struct file *filp, |
40303 | void __user *buffer, size_t *lenp, loff_t *ppos); | 39435 | void __user *buffer, size_t *lenp, loff_t *ppos); |
40304 | #endif | 39436 | #endif |
@@ -40306,7 +39438,7 @@ diff -urNp linux-2.6.29.6/kernel/sysctl.c linux-2.6.29.6/kernel/sysctl.c | |||
40306 | 39438 | ||
40307 | static struct ctl_table root_table[]; | 39439 | static struct ctl_table root_table[]; |
40308 | static struct ctl_table_root sysctl_table_root; | 39440 | static struct ctl_table_root sysctl_table_root; |
40309 | @@ -187,6 +195,21 @@ extern struct ctl_table epoll_table[]; | 39441 | @@ -191,6 +199,21 @@ extern struct ctl_table epoll_table[]; |
40310 | int sysctl_legacy_va_layout; | 39442 | int sysctl_legacy_va_layout; |
40311 | #endif | 39443 | #endif |
40312 | 39444 | ||
@@ -40328,11 +39460,10 @@ diff -urNp linux-2.6.29.6/kernel/sysctl.c linux-2.6.29.6/kernel/sysctl.c | |||
40328 | extern int prove_locking; | 39460 | extern int prove_locking; |
40329 | extern int lock_stat; | 39461 | extern int lock_stat; |
40330 | 39462 | ||
40331 | @@ -897,6 +920,25 @@ static struct ctl_table kern_table[] = { | 39463 | @@ -242,6 +265,24 @@ static int max_wakeup_granularity_ns = N |
40332 | .proc_handler = &scan_unevictable_handler, | ||
40333 | }, | ||
40334 | #endif | 39464 | #endif |
40335 | + | 39465 | |
39466 | static struct ctl_table kern_table[] = { | ||
40336 | +#if defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_MODSTOP) | 39467 | +#if defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_MODSTOP) |
40337 | + { | 39468 | + { |
40338 | + .ctl_name = CTL_UNNUMBERED, | 39469 | + .ctl_name = CTL_UNNUMBERED, |
@@ -40351,10 +39482,10 @@ diff -urNp linux-2.6.29.6/kernel/sysctl.c linux-2.6.29.6/kernel/sysctl.c | |||
40351 | + }, | 39482 | + }, |
40352 | +#endif | 39483 | +#endif |
40353 | + | 39484 | + |
40354 | /* | 39485 | #ifdef CONFIG_SCHED_DEBUG |
40355 | * NOTE: do not add new entries to this table unless you have read | 39486 | { |
40356 | * Documentation/sysctl/ctl_unnumbered.txt | 39487 | .ctl_name = CTL_UNNUMBERED, |
40357 | @@ -1634,6 +1676,8 @@ static int do_sysctl_strategy(struct ctl | 39488 | @@ -1657,6 +1698,8 @@ static int do_sysctl_strategy(struct ctl |
40358 | return 0; | 39489 | return 0; |
40359 | } | 39490 | } |
40360 | 39491 | ||
@@ -40363,7 +39494,7 @@ diff -urNp linux-2.6.29.6/kernel/sysctl.c linux-2.6.29.6/kernel/sysctl.c | |||
40363 | static int parse_table(int __user *name, int nlen, | 39494 | static int parse_table(int __user *name, int nlen, |
40364 | void __user *oldval, size_t __user *oldlenp, | 39495 | void __user *oldval, size_t __user *oldlenp, |
40365 | void __user *newval, size_t newlen, | 39496 | void __user *newval, size_t newlen, |
40366 | @@ -1652,7 +1696,7 @@ repeat: | 39497 | @@ -1675,7 +1718,7 @@ repeat: |
40367 | if (n == table->ctl_name) { | 39498 | if (n == table->ctl_name) { |
40368 | int error; | 39499 | int error; |
40369 | if (table->child) { | 39500 | if (table->child) { |
@@ -40372,7 +39503,7 @@ diff -urNp linux-2.6.29.6/kernel/sysctl.c linux-2.6.29.6/kernel/sysctl.c | |||
40372 | return -EPERM; | 39503 | return -EPERM; |
40373 | name++; | 39504 | name++; |
40374 | nlen--; | 39505 | nlen--; |
40375 | @@ -1737,6 +1781,33 @@ int sysctl_perm(struct ctl_table_root *r | 39506 | @@ -1760,6 +1803,33 @@ int sysctl_perm(struct ctl_table_root *r |
40376 | int error; | 39507 | int error; |
40377 | int mode; | 39508 | int mode; |
40378 | 39509 | ||
@@ -40406,9 +39537,9 @@ diff -urNp linux-2.6.29.6/kernel/sysctl.c linux-2.6.29.6/kernel/sysctl.c | |||
40406 | error = security_sysctl(table, op & (MAY_READ | MAY_WRITE | MAY_EXEC)); | 39537 | error = security_sysctl(table, op & (MAY_READ | MAY_WRITE | MAY_EXEC)); |
40407 | if (error) | 39538 | if (error) |
40408 | return error; | 39539 | return error; |
40409 | diff -urNp linux-2.6.29.6/kernel/taskstats.c linux-2.6.29.6/kernel/taskstats.c | 39540 | diff -urNp linux-2.6.30.4/kernel/taskstats.c linux-2.6.30.4/kernel/taskstats.c |
40410 | --- linux-2.6.29.6/kernel/taskstats.c 2009-07-02 19:41:20.000000000 -0400 | 39541 | --- linux-2.6.30.4/kernel/taskstats.c 2009-07-24 17:47:51.000000000 -0400 |
40411 | +++ linux-2.6.29.6/kernel/taskstats.c 2009-07-23 17:34:32.215815558 -0400 | 39542 | +++ linux-2.6.30.4/kernel/taskstats.c 2009-07-30 11:10:49.711410081 -0400 |
40412 | @@ -26,9 +26,12 @@ | 39543 | @@ -26,9 +26,12 @@ |
40413 | #include <linux/cgroup.h> | 39544 | #include <linux/cgroup.h> |
40414 | #include <linux/fs.h> | 39545 | #include <linux/fs.h> |
@@ -40432,9 +39563,9 @@ diff -urNp linux-2.6.29.6/kernel/taskstats.c linux-2.6.29.6/kernel/taskstats.c | |||
40432 | if (!alloc_cpumask_var(&mask, GFP_KERNEL)) | 39563 | if (!alloc_cpumask_var(&mask, GFP_KERNEL)) |
40433 | return -ENOMEM; | 39564 | return -ENOMEM; |
40434 | 39565 | ||
40435 | diff -urNp linux-2.6.29.6/kernel/time/tick-broadcast.c linux-2.6.29.6/kernel/time/tick-broadcast.c | 39566 | diff -urNp linux-2.6.30.4/kernel/time/tick-broadcast.c linux-2.6.30.4/kernel/time/tick-broadcast.c |
40436 | --- linux-2.6.29.6/kernel/time/tick-broadcast.c 2009-07-02 19:41:20.000000000 -0400 | 39567 | --- linux-2.6.30.4/kernel/time/tick-broadcast.c 2009-07-24 17:47:51.000000000 -0400 |
40437 | +++ linux-2.6.29.6/kernel/time/tick-broadcast.c 2009-07-23 17:34:32.216793372 -0400 | 39568 | +++ linux-2.6.30.4/kernel/time/tick-broadcast.c 2009-07-30 09:48:10.137714626 -0400 |
40438 | @@ -116,7 +116,7 @@ int tick_device_uses_broadcast(struct cl | 39569 | @@ -116,7 +116,7 @@ int tick_device_uses_broadcast(struct cl |
40439 | * then clear the broadcast bit. | 39570 | * then clear the broadcast bit. |
40440 | */ | 39571 | */ |
@@ -40444,9 +39575,9 @@ diff -urNp linux-2.6.29.6/kernel/time/tick-broadcast.c linux-2.6.29.6/kernel/tim | |||
40444 | 39575 | ||
40445 | cpumask_clear_cpu(cpu, tick_get_broadcast_mask()); | 39576 | cpumask_clear_cpu(cpu, tick_get_broadcast_mask()); |
40446 | tick_broadcast_clear_oneshot(cpu); | 39577 | tick_broadcast_clear_oneshot(cpu); |
40447 | diff -urNp linux-2.6.29.6/kernel/time/timer_list.c linux-2.6.29.6/kernel/time/timer_list.c | 39578 | diff -urNp linux-2.6.30.4/kernel/time/timer_list.c linux-2.6.30.4/kernel/time/timer_list.c |
40448 | --- linux-2.6.29.6/kernel/time/timer_list.c 2009-07-02 19:41:20.000000000 -0400 | 39579 | --- linux-2.6.30.4/kernel/time/timer_list.c 2009-07-24 17:47:51.000000000 -0400 |
40449 | +++ linux-2.6.29.6/kernel/time/timer_list.c 2009-07-23 18:40:28.721271955 -0400 | 39580 | +++ linux-2.6.30.4/kernel/time/timer_list.c 2009-07-30 09:48:10.137714626 -0400 |
40450 | @@ -275,7 +275,7 @@ static int timer_list_open(struct inode | 39581 | @@ -275,7 +275,7 @@ static int timer_list_open(struct inode |
40451 | return single_open(filp, timer_list_show, NULL); | 39582 | return single_open(filp, timer_list_show, NULL); |
40452 | } | 39583 | } |
@@ -40456,9 +39587,9 @@ diff -urNp linux-2.6.29.6/kernel/time/timer_list.c linux-2.6.29.6/kernel/time/ti | |||
40456 | .open = timer_list_open, | 39587 | .open = timer_list_open, |
40457 | .read = seq_read, | 39588 | .read = seq_read, |
40458 | .llseek = seq_lseek, | 39589 | .llseek = seq_lseek, |
40459 | diff -urNp linux-2.6.29.6/kernel/time/timer_stats.c linux-2.6.29.6/kernel/time/timer_stats.c | 39590 | diff -urNp linux-2.6.30.4/kernel/time/timer_stats.c linux-2.6.30.4/kernel/time/timer_stats.c |
40460 | --- linux-2.6.29.6/kernel/time/timer_stats.c 2009-07-02 19:41:20.000000000 -0400 | 39591 | --- linux-2.6.30.4/kernel/time/timer_stats.c 2009-07-24 17:47:51.000000000 -0400 |
40461 | +++ linux-2.6.29.6/kernel/time/timer_stats.c 2009-07-23 18:40:28.722279043 -0400 | 39592 | +++ linux-2.6.30.4/kernel/time/timer_stats.c 2009-07-30 09:48:10.138707979 -0400 |
40462 | @@ -395,7 +395,7 @@ static int tstats_open(struct inode *ino | 39593 | @@ -395,7 +395,7 @@ static int tstats_open(struct inode *ino |
40463 | return single_open(filp, tstats_show, NULL); | 39594 | return single_open(filp, tstats_show, NULL); |
40464 | } | 39595 | } |
@@ -40468,9 +39599,9 @@ diff -urNp linux-2.6.29.6/kernel/time/timer_stats.c linux-2.6.29.6/kernel/time/t | |||
40468 | .open = tstats_open, | 39599 | .open = tstats_open, |
40469 | .read = seq_read, | 39600 | .read = seq_read, |
40470 | .write = tstats_write, | 39601 | .write = tstats_write, |
40471 | diff -urNp linux-2.6.29.6/kernel/time.c linux-2.6.29.6/kernel/time.c | 39602 | diff -urNp linux-2.6.30.4/kernel/time.c linux-2.6.30.4/kernel/time.c |
40472 | --- linux-2.6.29.6/kernel/time.c 2009-07-02 19:41:20.000000000 -0400 | 39603 | --- linux-2.6.30.4/kernel/time.c 2009-07-24 17:47:51.000000000 -0400 |
40473 | +++ linux-2.6.29.6/kernel/time.c 2009-07-23 17:34:32.216793372 -0400 | 39604 | +++ linux-2.6.30.4/kernel/time.c 2009-07-30 11:10:49.712371224 -0400 |
40474 | @@ -94,6 +94,9 @@ SYSCALL_DEFINE1(stime, time_t __user *, | 39605 | @@ -94,6 +94,9 @@ SYSCALL_DEFINE1(stime, time_t __user *, |
40475 | return err; | 39606 | return err; |
40476 | 39607 | ||
@@ -40508,10 +39639,10 @@ diff -urNp linux-2.6.29.6/kernel/time.c linux-2.6.29.6/kernel/time.c | |||
40508 | { | 39639 | { |
40509 | #if HZ <= USEC_PER_SEC && !(USEC_PER_SEC % HZ) | 39640 | #if HZ <= USEC_PER_SEC && !(USEC_PER_SEC % HZ) |
40510 | return (USEC_PER_SEC / HZ) * j; | 39641 | return (USEC_PER_SEC / HZ) * j; |
40511 | diff -urNp linux-2.6.29.6/kernel/trace/ftrace.c linux-2.6.29.6/kernel/trace/ftrace.c | 39642 | diff -urNp linux-2.6.30.4/kernel/trace/ftrace.c linux-2.6.30.4/kernel/trace/ftrace.c |
40512 | --- linux-2.6.29.6/kernel/trace/ftrace.c 2009-07-02 19:41:20.000000000 -0400 | 39643 | --- linux-2.6.30.4/kernel/trace/ftrace.c 2009-07-24 17:47:51.000000000 -0400 |
40513 | +++ linux-2.6.29.6/kernel/trace/ftrace.c 2009-07-23 18:40:28.722279043 -0400 | 39644 | +++ linux-2.6.30.4/kernel/trace/ftrace.c 2009-07-30 09:48:10.139681175 -0400 |
40514 | @@ -873,7 +873,7 @@ static int t_show(struct seq_file *m, vo | 39645 | @@ -1001,7 +1001,7 @@ static int t_show(struct seq_file *m, vo |
40515 | return 0; | 39646 | return 0; |
40516 | } | 39647 | } |
40517 | 39648 | ||
@@ -40520,41 +39651,7 @@ diff -urNp linux-2.6.29.6/kernel/trace/ftrace.c linux-2.6.29.6/kernel/trace/ftra | |||
40520 | .start = t_start, | 39651 | .start = t_start, |
40521 | .next = t_next, | 39652 | .next = t_next, |
40522 | .stop = t_stop, | 39653 | .stop = t_stop, |
40523 | @@ -1303,21 +1303,21 @@ ftrace_notrace_release(struct inode *ino | 39654 | @@ -1956,7 +1956,7 @@ static int g_show(struct seq_file *m, vo |
40524 | return ftrace_regex_release(inode, file, 0); | ||
40525 | } | ||
40526 | |||
40527 | -static struct file_operations ftrace_avail_fops = { | ||
40528 | +static const struct file_operations ftrace_avail_fops = { | ||
40529 | .open = ftrace_avail_open, | ||
40530 | .read = seq_read, | ||
40531 | .llseek = seq_lseek, | ||
40532 | .release = ftrace_avail_release, | ||
40533 | }; | ||
40534 | |||
40535 | -static struct file_operations ftrace_failures_fops = { | ||
40536 | +static const struct file_operations ftrace_failures_fops = { | ||
40537 | .open = ftrace_failures_open, | ||
40538 | .read = seq_read, | ||
40539 | .llseek = seq_lseek, | ||
40540 | .release = ftrace_avail_release, | ||
40541 | }; | ||
40542 | |||
40543 | -static struct file_operations ftrace_filter_fops = { | ||
40544 | +static const struct file_operations ftrace_filter_fops = { | ||
40545 | .open = ftrace_filter_open, | ||
40546 | .read = ftrace_regex_read, | ||
40547 | .write = ftrace_filter_write, | ||
40548 | @@ -1325,7 +1325,7 @@ static struct file_operations ftrace_fil | ||
40549 | .release = ftrace_filter_release, | ||
40550 | }; | ||
40551 | |||
40552 | -static struct file_operations ftrace_notrace_fops = { | ||
40553 | +static const struct file_operations ftrace_notrace_fops = { | ||
40554 | .open = ftrace_notrace_open, | ||
40555 | .read = ftrace_regex_read, | ||
40556 | .write = ftrace_notrace_write, | ||
40557 | @@ -1385,7 +1385,7 @@ static int g_show(struct seq_file *m, vo | ||
40558 | return 0; | 39655 | return 0; |
40559 | } | 39656 | } |
40560 | 39657 | ||
@@ -40563,71 +39660,29 @@ diff -urNp linux-2.6.29.6/kernel/trace/ftrace.c linux-2.6.29.6/kernel/trace/ftra | |||
40563 | .start = g_start, | 39660 | .start = g_start, |
40564 | .next = g_next, | 39661 | .next = g_next, |
40565 | .stop = g_stop, | 39662 | .stop = g_stop, |
40566 | @@ -1840,7 +1840,7 @@ ftrace_pid_write(struct file *filp, cons | 39663 | diff -urNp linux-2.6.30.4/kernel/trace/Kconfig linux-2.6.30.4/kernel/trace/Kconfig |
40567 | return cnt; | 39664 | --- linux-2.6.30.4/kernel/trace/Kconfig 2009-07-24 17:47:51.000000000 -0400 |
40568 | } | 39665 | +++ linux-2.6.30.4/kernel/trace/Kconfig 2009-07-30 11:13:44.980492661 -0400 |
40569 | 39666 | @@ -78,6 +78,7 @@ menu "Tracers" | |
40570 | -static struct file_operations ftrace_pid_fops = { | 39667 | config FUNCTION_TRACER |
40571 | +static const struct file_operations ftrace_pid_fops = { | ||
40572 | .read = ftrace_pid_read, | ||
40573 | .write = ftrace_pid_write, | ||
40574 | }; | ||
40575 | diff -urNp linux-2.6.29.6/kernel/trace/Kconfig linux-2.6.29.6/kernel/trace/Kconfig | ||
40576 | --- linux-2.6.29.6/kernel/trace/Kconfig 2009-07-02 19:41:20.000000000 -0400 | ||
40577 | +++ linux-2.6.29.6/kernel/trace/Kconfig 2009-07-23 18:43:34.850823161 -0400 | ||
40578 | @@ -51,6 +51,7 @@ config FUNCTION_TRACER | ||
40579 | bool "Kernel Function Tracer" | 39668 | bool "Kernel Function Tracer" |
40580 | depends on HAVE_FUNCTION_TRACER | 39669 | depends on HAVE_FUNCTION_TRACER |
40581 | depends on DEBUG_KERNEL | ||
40582 | + depends on !PAX_KERNEXEC | 39670 | + depends on !PAX_KERNEXEC |
40583 | select FRAME_POINTER | 39671 | select FRAME_POINTER |
40584 | select KALLSYMS | 39672 | select KALLSYMS |
40585 | select TRACING | 39673 | select TRACING |
40586 | @@ -237,6 +238,7 @@ config STACK_TRACER | 39674 | @@ -271,6 +272,7 @@ config POWER_TRACER |
39675 | config STACK_TRACER | ||
40587 | bool "Trace max stack" | 39676 | bool "Trace max stack" |
40588 | depends on HAVE_FUNCTION_TRACER | 39677 | depends on HAVE_FUNCTION_TRACER |
40589 | depends on DEBUG_KERNEL | ||
40590 | + depends on !PAX_KERNEXEC | 39678 | + depends on !PAX_KERNEXEC |
40591 | select FUNCTION_TRACER | 39679 | select FUNCTION_TRACER |
40592 | select STACKTRACE | 39680 | select STACKTRACE |
40593 | select KALLSYMS | 39681 | select KALLSYMS |
40594 | diff -urNp linux-2.6.29.6/kernel/trace/ring_buffer.c linux-2.6.29.6/kernel/trace/ring_buffer.c | 39682 | diff -urNp linux-2.6.30.4/kernel/trace/trace.c linux-2.6.30.4/kernel/trace/trace.c |
40595 | --- linux-2.6.29.6/kernel/trace/ring_buffer.c 2009-07-02 19:41:20.000000000 -0400 | 39683 | --- linux-2.6.30.4/kernel/trace/trace.c 2009-07-24 17:47:51.000000000 -0400 |
40596 | +++ linux-2.6.29.6/kernel/trace/ring_buffer.c 2009-07-23 18:40:28.723274997 -0400 | 39684 | +++ linux-2.6.30.4/kernel/trace/trace.c 2009-07-30 09:48:10.139681175 -0400 |
40597 | @@ -2509,7 +2509,7 @@ rb_simple_write(struct file *filp, const | 39685 | @@ -1836,7 +1836,7 @@ static int s_show(struct seq_file *m, vo |
40598 | return cnt; | ||
40599 | } | ||
40600 | |||
40601 | -static struct file_operations rb_simple_fops = { | ||
40602 | +static const struct file_operations rb_simple_fops = { | ||
40603 | .open = tracing_open_generic, | ||
40604 | .read = rb_simple_read, | ||
40605 | .write = rb_simple_write, | ||
40606 | diff -urNp linux-2.6.29.6/kernel/trace/trace_branch.c linux-2.6.29.6/kernel/trace/trace_branch.c | ||
40607 | --- linux-2.6.29.6/kernel/trace/trace_branch.c 2009-07-02 19:41:20.000000000 -0400 | ||
40608 | +++ linux-2.6.29.6/kernel/trace/trace_branch.c 2009-07-23 18:40:28.724260937 -0400 | ||
40609 | @@ -267,7 +267,7 @@ static int t_show(struct seq_file *m, vo | ||
40610 | return 0; | ||
40611 | } | ||
40612 | |||
40613 | -static struct seq_operations tracing_likely_seq_ops = { | ||
40614 | +static const struct seq_operations tracing_likely_seq_ops = { | ||
40615 | .start = t_start, | ||
40616 | .next = t_next, | ||
40617 | .stop = t_stop, | ||
40618 | diff -urNp linux-2.6.29.6/kernel/trace/trace.c linux-2.6.29.6/kernel/trace/trace.c | ||
40619 | --- linux-2.6.29.6/kernel/trace/trace.c 2009-07-02 19:41:20.000000000 -0400 | ||
40620 | +++ linux-2.6.29.6/kernel/trace/trace.c 2009-07-23 18:40:27.478286190 -0400 | ||
40621 | @@ -442,7 +442,7 @@ trace_seq_path(struct trace_seq *s, stru | ||
40622 | return 0; | ||
40623 | p = d_path(path, s->buffer + s->len, PAGE_SIZE - s->len); | ||
40624 | if (!IS_ERR(p)) { | ||
40625 | - p = mangle_path(s->buffer + s->len, p, "\n"); | ||
40626 | + p = mangle_path(s->buffer + s->len, p, "\n\\"); | ||
40627 | if (p) { | ||
40628 | s->len = p - s->buffer; | ||
40629 | return 1; | ||
40630 | @@ -2418,7 +2418,7 @@ static int s_show(struct seq_file *m, vo | ||
40631 | return 0; | 39686 | return 0; |
40632 | } | 39687 | } |
40633 | 39688 | ||
@@ -40636,7 +39691,7 @@ diff -urNp linux-2.6.29.6/kernel/trace/trace.c linux-2.6.29.6/kernel/trace/trace | |||
40636 | .start = s_start, | 39691 | .start = s_start, |
40637 | .next = s_next, | 39692 | .next = s_next, |
40638 | .stop = s_stop, | 39693 | .stop = s_stop, |
40639 | @@ -2600,7 +2600,7 @@ static int t_show(struct seq_file *m, vo | 39694 | @@ -2050,7 +2050,7 @@ static int t_show(struct seq_file *m, vo |
40640 | return 0; | 39695 | return 0; |
40641 | } | 39696 | } |
40642 | 39697 | ||
@@ -40645,127 +39700,21 @@ diff -urNp linux-2.6.29.6/kernel/trace/trace.c linux-2.6.29.6/kernel/trace/trace | |||
40645 | .start = t_start, | 39700 | .start = t_start, |
40646 | .next = t_next, | 39701 | .next = t_next, |
40647 | .stop = t_stop, | 39702 | .stop = t_stop, |
40648 | @@ -2623,21 +2623,21 @@ static int show_traces_open(struct inode | 39703 | diff -urNp linux-2.6.30.4/kernel/trace/trace_output.c linux-2.6.30.4/kernel/trace/trace_output.c |
40649 | return ret; | 39704 | --- linux-2.6.30.4/kernel/trace/trace_output.c 2009-07-24 17:47:51.000000000 -0400 |
40650 | } | 39705 | +++ linux-2.6.30.4/kernel/trace/trace_output.c 2009-07-30 09:48:10.140750846 -0400 |
40651 | 39706 | @@ -188,7 +188,7 @@ int trace_seq_path(struct trace_seq *s, | |
40652 | -static struct file_operations tracing_fops = { | 39707 | return 0; |
40653 | +static const struct file_operations tracing_fops = { | 39708 | p = d_path(path, s->buffer + s->len, PAGE_SIZE - s->len); |
40654 | .open = tracing_open, | 39709 | if (!IS_ERR(p)) { |
40655 | .read = seq_read, | 39710 | - p = mangle_path(s->buffer + s->len, p, "\n"); |
40656 | .llseek = seq_lseek, | 39711 | + p = mangle_path(s->buffer + s->len, p, "\n\\"); |
40657 | .release = tracing_release, | 39712 | if (p) { |
40658 | }; | 39713 | s->len = p - s->buffer; |
40659 | 39714 | return 1; | |
40660 | -static struct file_operations tracing_lt_fops = { | 39715 | diff -urNp linux-2.6.30.4/kernel/utsname_sysctl.c linux-2.6.30.4/kernel/utsname_sysctl.c |
40661 | +static const struct file_operations tracing_lt_fops = { | 39716 | --- linux-2.6.30.4/kernel/utsname_sysctl.c 2009-07-24 17:47:51.000000000 -0400 |
40662 | .open = tracing_lt_open, | 39717 | +++ linux-2.6.30.4/kernel/utsname_sysctl.c 2009-07-30 09:48:10.140750846 -0400 |
40663 | .read = seq_read, | ||
40664 | .llseek = seq_lseek, | ||
40665 | .release = tracing_release, | ||
40666 | }; | ||
40667 | |||
40668 | -static struct file_operations show_traces_fops = { | ||
40669 | +static const struct file_operations show_traces_fops = { | ||
40670 | .open = show_traces_open, | ||
40671 | .read = seq_read, | ||
40672 | .release = seq_release, | ||
40673 | @@ -2730,7 +2730,7 @@ err_unlock: | ||
40674 | return err; | ||
40675 | } | ||
40676 | |||
40677 | -static struct file_operations tracing_cpumask_fops = { | ||
40678 | +static const struct file_operations tracing_cpumask_fops = { | ||
40679 | .open = tracing_open_generic, | ||
40680 | .read = tracing_cpumask_read, | ||
40681 | .write = tracing_cpumask_write, | ||
40682 | @@ -2875,7 +2875,7 @@ tracing_trace_options_write(struct file | ||
40683 | return cnt; | ||
40684 | } | ||
40685 | |||
40686 | -static struct file_operations tracing_iter_fops = { | ||
40687 | +static const struct file_operations tracing_iter_fops = { | ||
40688 | .open = tracing_open_generic, | ||
40689 | .read = tracing_trace_options_read, | ||
40690 | .write = tracing_trace_options_write, | ||
40691 | @@ -2908,7 +2908,7 @@ tracing_readme_read(struct file *filp, c | ||
40692 | readme_msg, strlen(readme_msg)); | ||
40693 | } | ||
40694 | |||
40695 | -static struct file_operations tracing_readme_fops = { | ||
40696 | +static const struct file_operations tracing_readme_fops = { | ||
40697 | .open = tracing_open_generic, | ||
40698 | .read = tracing_readme_read, | ||
40699 | }; | ||
40700 | @@ -3433,38 +3433,38 @@ tracing_mark_write(struct file *filp, co | ||
40701 | return cnt; | ||
40702 | } | ||
40703 | |||
40704 | -static struct file_operations tracing_max_lat_fops = { | ||
40705 | +static const struct file_operations tracing_max_lat_fops = { | ||
40706 | .open = tracing_open_generic, | ||
40707 | .read = tracing_max_lat_read, | ||
40708 | .write = tracing_max_lat_write, | ||
40709 | }; | ||
40710 | |||
40711 | -static struct file_operations tracing_ctrl_fops = { | ||
40712 | +static const struct file_operations tracing_ctrl_fops = { | ||
40713 | .open = tracing_open_generic, | ||
40714 | .read = tracing_ctrl_read, | ||
40715 | .write = tracing_ctrl_write, | ||
40716 | }; | ||
40717 | |||
40718 | -static struct file_operations set_tracer_fops = { | ||
40719 | +static const struct file_operations set_tracer_fops = { | ||
40720 | .open = tracing_open_generic, | ||
40721 | .read = tracing_set_trace_read, | ||
40722 | .write = tracing_set_trace_write, | ||
40723 | }; | ||
40724 | |||
40725 | -static struct file_operations tracing_pipe_fops = { | ||
40726 | +static const struct file_operations tracing_pipe_fops = { | ||
40727 | .open = tracing_open_pipe, | ||
40728 | .poll = tracing_poll_pipe, | ||
40729 | .read = tracing_read_pipe, | ||
40730 | .release = tracing_release_pipe, | ||
40731 | }; | ||
40732 | |||
40733 | -static struct file_operations tracing_entries_fops = { | ||
40734 | +static const struct file_operations tracing_entries_fops = { | ||
40735 | .open = tracing_open_generic, | ||
40736 | .read = tracing_entries_read, | ||
40737 | .write = tracing_entries_write, | ||
40738 | }; | ||
40739 | |||
40740 | -static struct file_operations tracing_mark_fops = { | ||
40741 | +static const struct file_operations tracing_mark_fops = { | ||
40742 | .open = tracing_open_generic, | ||
40743 | .write = tracing_mark_write, | ||
40744 | }; | ||
40745 | @@ -3500,7 +3500,7 @@ tracing_read_dyn_info(struct file *filp, | ||
40746 | return r; | ||
40747 | } | ||
40748 | |||
40749 | -static struct file_operations tracing_dyn_info_fops = { | ||
40750 | +static const struct file_operations tracing_dyn_info_fops = { | ||
40751 | .open = tracing_open_generic, | ||
40752 | .read = tracing_read_dyn_info, | ||
40753 | }; | ||
40754 | diff -urNp linux-2.6.29.6/kernel/trace/trace_sysprof.c linux-2.6.29.6/kernel/trace/trace_sysprof.c | ||
40755 | --- linux-2.6.29.6/kernel/trace/trace_sysprof.c 2009-07-02 19:41:20.000000000 -0400 | ||
40756 | +++ linux-2.6.29.6/kernel/trace/trace_sysprof.c 2009-07-23 18:40:28.724260937 -0400 | ||
40757 | @@ -317,7 +317,7 @@ sysprof_sample_write(struct file *filp, | ||
40758 | return cnt; | ||
40759 | } | ||
40760 | |||
40761 | -static struct file_operations sysprof_sample_fops = { | ||
40762 | +static const struct file_operations sysprof_sample_fops = { | ||
40763 | .read = sysprof_sample_read, | ||
40764 | .write = sysprof_sample_write, | ||
40765 | }; | ||
40766 | diff -urNp linux-2.6.29.6/kernel/utsname_sysctl.c linux-2.6.29.6/kernel/utsname_sysctl.c | ||
40767 | --- linux-2.6.29.6/kernel/utsname_sysctl.c 2009-07-02 19:41:20.000000000 -0400 | ||
40768 | +++ linux-2.6.29.6/kernel/utsname_sysctl.c 2009-07-23 17:34:32.217711177 -0400 | ||
40769 | @@ -123,7 +123,7 @@ static struct ctl_table uts_kern_table[] | 39718 | @@ -123,7 +123,7 @@ static struct ctl_table uts_kern_table[] |
40770 | .proc_handler = proc_do_uts_string, | 39719 | .proc_handler = proc_do_uts_string, |
40771 | .strategy = sysctl_uts_string, | 39720 | .strategy = sysctl_uts_string, |
@@ -40784,22 +39733,10 @@ diff -urNp linux-2.6.29.6/kernel/utsname_sysctl.c linux-2.6.29.6/kernel/utsname_ | |||
40784 | }; | 39733 | }; |
40785 | 39734 | ||
40786 | static int __init utsname_sysctl_init(void) | 39735 | static int __init utsname_sysctl_init(void) |
40787 | diff -urNp linux-2.6.29.6/lib/dynamic_printk.c linux-2.6.29.6/lib/dynamic_printk.c | 39736 | diff -urNp linux-2.6.30.4/lib/Kconfig.debug linux-2.6.30.4/lib/Kconfig.debug |
40788 | --- linux-2.6.29.6/lib/dynamic_printk.c 2009-07-02 19:41:20.000000000 -0400 | 39737 | --- linux-2.6.30.4/lib/Kconfig.debug 2009-07-24 17:47:51.000000000 -0400 |
40789 | +++ linux-2.6.29.6/lib/dynamic_printk.c 2009-07-23 18:40:28.724260937 -0400 | 39738 | +++ linux-2.6.30.4/lib/Kconfig.debug 2009-07-30 11:10:49.747708160 -0400 |
40790 | @@ -352,7 +352,7 @@ static int pr_debug_seq_show(struct seq_ | 39739 | @@ -821,7 +821,7 @@ config LATENCYTOP |
40791 | return 0; | ||
40792 | } | ||
40793 | |||
40794 | -static struct seq_operations pr_debug_seq_ops = { | ||
40795 | +static const struct seq_operations pr_debug_seq_ops = { | ||
40796 | .start = pr_debug_seq_start, | ||
40797 | .next = pr_debug_seq_next, | ||
40798 | .stop = pr_debug_seq_stop, | ||
40799 | diff -urNp linux-2.6.29.6/lib/Kconfig.debug linux-2.6.29.6/lib/Kconfig.debug | ||
40800 | --- linux-2.6.29.6/lib/Kconfig.debug 2009-07-02 19:41:20.000000000 -0400 | ||
40801 | +++ linux-2.6.29.6/lib/Kconfig.debug 2009-07-23 17:34:32.218743017 -0400 | ||
40802 | @@ -783,7 +783,7 @@ config LATENCYTOP | ||
40803 | select STACKTRACE | 39740 | select STACKTRACE |
40804 | select SCHEDSTATS | 39741 | select SCHEDSTATS |
40805 | select SCHED_DEBUG | 39742 | select SCHED_DEBUG |
@@ -40808,9 +39745,9 @@ diff -urNp linux-2.6.29.6/lib/Kconfig.debug linux-2.6.29.6/lib/Kconfig.debug | |||
40808 | help | 39745 | help |
40809 | Enable this option if you want to use the LatencyTOP tool | 39746 | Enable this option if you want to use the LatencyTOP tool |
40810 | to find out which userspace is blocking on what kernel operations. | 39747 | to find out which userspace is blocking on what kernel operations. |
40811 | diff -urNp linux-2.6.29.6/lib/parser.c linux-2.6.29.6/lib/parser.c | 39748 | diff -urNp linux-2.6.30.4/lib/parser.c linux-2.6.30.4/lib/parser.c |
40812 | --- linux-2.6.29.6/lib/parser.c 2009-07-02 19:41:20.000000000 -0400 | 39749 | --- linux-2.6.30.4/lib/parser.c 2009-07-24 17:47:51.000000000 -0400 |
40813 | +++ linux-2.6.29.6/lib/parser.c 2009-07-23 17:34:32.218743017 -0400 | 39750 | +++ linux-2.6.30.4/lib/parser.c 2009-07-30 09:48:10.140750846 -0400 |
40814 | @@ -126,7 +126,7 @@ static int match_number(substring_t *s, | 39751 | @@ -126,7 +126,7 @@ static int match_number(substring_t *s, |
40815 | char *buf; | 39752 | char *buf; |
40816 | int ret; | 39753 | int ret; |
@@ -40820,9 +39757,9 @@ diff -urNp linux-2.6.29.6/lib/parser.c linux-2.6.29.6/lib/parser.c | |||
40820 | if (!buf) | 39757 | if (!buf) |
40821 | return -ENOMEM; | 39758 | return -ENOMEM; |
40822 | memcpy(buf, s->from, s->to - s->from); | 39759 | memcpy(buf, s->from, s->to - s->from); |
40823 | diff -urNp linux-2.6.29.6/lib/radix-tree.c linux-2.6.29.6/lib/radix-tree.c | 39760 | diff -urNp linux-2.6.30.4/lib/radix-tree.c linux-2.6.30.4/lib/radix-tree.c |
40824 | --- linux-2.6.29.6/lib/radix-tree.c 2009-07-02 19:41:20.000000000 -0400 | 39761 | --- linux-2.6.30.4/lib/radix-tree.c 2009-07-24 17:47:51.000000000 -0400 |
40825 | +++ linux-2.6.29.6/lib/radix-tree.c 2009-07-23 17:34:32.218743017 -0400 | 39762 | +++ linux-2.6.30.4/lib/radix-tree.c 2009-07-30 09:48:10.140750846 -0400 |
40826 | @@ -81,7 +81,7 @@ struct radix_tree_preload { | 39763 | @@ -81,7 +81,7 @@ struct radix_tree_preload { |
40827 | int nr; | 39764 | int nr; |
40828 | struct radix_tree_node *nodes[RADIX_TREE_MAX_PATH]; | 39765 | struct radix_tree_node *nodes[RADIX_TREE_MAX_PATH]; |
@@ -40832,9 +39769,9 @@ diff -urNp linux-2.6.29.6/lib/radix-tree.c linux-2.6.29.6/lib/radix-tree.c | |||
40832 | 39769 | ||
40833 | static inline gfp_t root_gfp_mask(struct radix_tree_root *root) | 39770 | static inline gfp_t root_gfp_mask(struct radix_tree_root *root) |
40834 | { | 39771 | { |
40835 | diff -urNp linux-2.6.29.6/lib/random32.c linux-2.6.29.6/lib/random32.c | 39772 | diff -urNp linux-2.6.30.4/lib/random32.c linux-2.6.30.4/lib/random32.c |
40836 | --- linux-2.6.29.6/lib/random32.c 2009-07-02 19:41:20.000000000 -0400 | 39773 | --- linux-2.6.30.4/lib/random32.c 2009-07-24 17:47:51.000000000 -0400 |
40837 | +++ linux-2.6.29.6/lib/random32.c 2009-07-23 17:34:32.219722211 -0400 | 39774 | +++ linux-2.6.30.4/lib/random32.c 2009-07-30 09:48:10.141806319 -0400 |
40838 | @@ -61,7 +61,7 @@ static u32 __random32(struct rnd_state * | 39775 | @@ -61,7 +61,7 @@ static u32 __random32(struct rnd_state * |
40839 | */ | 39776 | */ |
40840 | static inline u32 __seed(u32 x, u32 m) | 39777 | static inline u32 __seed(u32 x, u32 m) |
@@ -40844,33 +39781,26 @@ diff -urNp linux-2.6.29.6/lib/random32.c linux-2.6.29.6/lib/random32.c | |||
40844 | } | 39781 | } |
40845 | 39782 | ||
40846 | /** | 39783 | /** |
40847 | diff -urNp linux-2.6.29.6/localversion-grsec linux-2.6.29.6/localversion-grsec | 39784 | diff -urNp linux-2.6.30.4/localversion-grsec linux-2.6.30.4/localversion-grsec |
40848 | --- linux-2.6.29.6/localversion-grsec 1969-12-31 19:00:00.000000000 -0500 | 39785 | --- linux-2.6.30.4/localversion-grsec 1969-12-31 19:00:00.000000000 -0500 |
40849 | +++ linux-2.6.29.6/localversion-grsec 2009-07-23 17:34:32.219722211 -0400 | 39786 | +++ linux-2.6.30.4/localversion-grsec 2009-07-30 11:10:49.747708160 -0400 |
40850 | @@ -0,0 +1 @@ | 39787 | @@ -0,0 +1 @@ |
40851 | +-grsec | 39788 | +-grsec |
40852 | diff -urNp linux-2.6.29.6/Makefile linux-2.6.29.6/Makefile | 39789 | diff -urNp linux-2.6.30.4/Makefile linux-2.6.30.4/Makefile |
40853 | --- linux-2.6.29.6/Makefile 2009-07-02 19:41:20.000000000 -0400 | 39790 | --- linux-2.6.30.4/Makefile 2009-07-30 20:32:40.332701013 -0400 |
40854 | +++ linux-2.6.29.6/Makefile 2009-07-23 17:34:37.457730203 -0400 | 39791 | +++ linux-2.6.30.4/Makefile 2009-07-30 20:32:47.921679729 -0400 |
40855 | @@ -226,7 +226,7 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" | 39792 | @@ -231,8 +231,8 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" |
40856 | 39793 | ||
40857 | HOSTCC = gcc | 39794 | HOSTCC = gcc |
40858 | HOSTCXX = g++ | 39795 | HOSTCXX = g++ |
40859 | -HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer | 39796 | -HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer |
39797 | -HOSTCXXFLAGS = -O2 | ||
40860 | +HOSTCFLAGS = -Wall -W -Wno-unused -Wno-sign-compare -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-delete-null-pointer-checks | 39798 | +HOSTCFLAGS = -Wall -W -Wno-unused -Wno-sign-compare -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-delete-null-pointer-checks |
40861 | HOSTCXXFLAGS = -O2 | 39799 | +HOSTCXXFLAGS = -O2 -fno-delete-null-pointer-checks |
40862 | 39800 | ||
40863 | # Decide whether to build built-in, modular, or both. | 39801 | # Decide whether to build built-in, modular, or both. |
40864 | @@ -567,7 +567,7 @@ KBUILD_CFLAGS += $(call cc-option,-Wdecl | 39802 | # Normally, just do built-in. |
40865 | KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,) | 39803 | @@ -647,7 +647,7 @@ export mod_strip_cmd |
40866 | |||
40867 | # disable invalid "can't wrap" optimzations for signed / pointers | ||
40868 | -KBUILD_CFLAGS += $(call cc-option,-fwrapv) | ||
40869 | +KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow) | ||
40870 | |||
40871 | # revert to pre-gcc-4.4 behaviour of .eh_frame | ||
40872 | KBUILD_CFLAGS += $(call cc-option,-fno-dwarf2-cfi-asm) | ||
40873 | @@ -636,7 +636,7 @@ export mod_strip_cmd | ||
40874 | 39804 | ||
40875 | 39805 | ||
40876 | ifeq ($(KBUILD_EXTMOD),) | 39806 | ifeq ($(KBUILD_EXTMOD),) |
@@ -40879,10 +39809,10 @@ diff -urNp linux-2.6.29.6/Makefile linux-2.6.29.6/Makefile | |||
40879 | 39809 | ||
40880 | vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ | 39810 | vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ |
40881 | $(core-y) $(core-m) $(drivers-y) $(drivers-m) \ | 39811 | $(core-y) $(core-m) $(drivers-y) $(drivers-m) \ |
40882 | diff -urNp linux-2.6.29.6/mm/filemap.c linux-2.6.29.6/mm/filemap.c | 39812 | diff -urNp linux-2.6.30.4/mm/filemap.c linux-2.6.30.4/mm/filemap.c |
40883 | --- linux-2.6.29.6/mm/filemap.c 2009-07-02 19:41:20.000000000 -0400 | 39813 | --- linux-2.6.30.4/mm/filemap.c 2009-07-30 20:32:40.553577478 -0400 |
40884 | +++ linux-2.6.29.6/mm/filemap.c 2009-07-23 18:40:27.479596094 -0400 | 39814 | +++ linux-2.6.30.4/mm/filemap.c 2009-07-30 20:32:48.096612667 -0400 |
40885 | @@ -1604,7 +1604,7 @@ page_not_uptodate: | 39815 | @@ -1625,7 +1625,7 @@ page_not_uptodate: |
40886 | } | 39816 | } |
40887 | EXPORT_SYMBOL(filemap_fault); | 39817 | EXPORT_SYMBOL(filemap_fault); |
40888 | 39818 | ||
@@ -40891,7 +39821,7 @@ diff -urNp linux-2.6.29.6/mm/filemap.c linux-2.6.29.6/mm/filemap.c | |||
40891 | .fault = filemap_fault, | 39821 | .fault = filemap_fault, |
40892 | }; | 39822 | }; |
40893 | 39823 | ||
40894 | @@ -1615,7 +1615,7 @@ int generic_file_mmap(struct file * file | 39824 | @@ -1636,7 +1636,7 @@ int generic_file_mmap(struct file * file |
40895 | struct address_space *mapping = file->f_mapping; | 39825 | struct address_space *mapping = file->f_mapping; |
40896 | 39826 | ||
40897 | if (!mapping->a_ops->readpage) | 39827 | if (!mapping->a_ops->readpage) |
@@ -40900,7 +39830,7 @@ diff -urNp linux-2.6.29.6/mm/filemap.c linux-2.6.29.6/mm/filemap.c | |||
40900 | file_accessed(file); | 39830 | file_accessed(file); |
40901 | vma->vm_ops = &generic_file_vm_ops; | 39831 | vma->vm_ops = &generic_file_vm_ops; |
40902 | vma->vm_flags |= VM_CAN_NONLINEAR; | 39832 | vma->vm_flags |= VM_CAN_NONLINEAR; |
40903 | @@ -1976,6 +1976,7 @@ inline int generic_write_checks(struct f | 39833 | @@ -1996,6 +1996,7 @@ inline int generic_write_checks(struct f |
40904 | *pos = i_size_read(inode); | 39834 | *pos = i_size_read(inode); |
40905 | 39835 | ||
40906 | if (limit != RLIM_INFINITY) { | 39836 | if (limit != RLIM_INFINITY) { |
@@ -40908,9 +39838,9 @@ diff -urNp linux-2.6.29.6/mm/filemap.c linux-2.6.29.6/mm/filemap.c | |||
40908 | if (*pos >= limit) { | 39838 | if (*pos >= limit) { |
40909 | send_sig(SIGXFSZ, current, 0); | 39839 | send_sig(SIGXFSZ, current, 0); |
40910 | return -EFBIG; | 39840 | return -EFBIG; |
40911 | diff -urNp linux-2.6.29.6/mm/filemap_xip.c linux-2.6.29.6/mm/filemap_xip.c | 39841 | diff -urNp linux-2.6.30.4/mm/filemap_xip.c linux-2.6.30.4/mm/filemap_xip.c |
40912 | --- linux-2.6.29.6/mm/filemap_xip.c 2009-07-02 19:41:20.000000000 -0400 | 39842 | --- linux-2.6.30.4/mm/filemap_xip.c 2009-07-24 17:47:51.000000000 -0400 |
40913 | +++ linux-2.6.29.6/mm/filemap_xip.c 2009-07-23 18:40:28.737571137 -0400 | 39843 | +++ linux-2.6.30.4/mm/filemap_xip.c 2009-07-30 09:48:10.142775471 -0400 |
40914 | @@ -296,7 +296,7 @@ out: | 39844 | @@ -296,7 +296,7 @@ out: |
40915 | } | 39845 | } |
40916 | } | 39846 | } |
@@ -40920,9 +39850,9 @@ diff -urNp linux-2.6.29.6/mm/filemap_xip.c linux-2.6.29.6/mm/filemap_xip.c | |||
40920 | .fault = xip_file_fault, | 39850 | .fault = xip_file_fault, |
40921 | }; | 39851 | }; |
40922 | 39852 | ||
40923 | diff -urNp linux-2.6.29.6/mm/fremap.c linux-2.6.29.6/mm/fremap.c | 39853 | diff -urNp linux-2.6.30.4/mm/fremap.c linux-2.6.30.4/mm/fremap.c |
40924 | --- linux-2.6.29.6/mm/fremap.c 2009-07-02 19:41:20.000000000 -0400 | 39854 | --- linux-2.6.30.4/mm/fremap.c 2009-07-24 17:47:51.000000000 -0400 |
40925 | +++ linux-2.6.29.6/mm/fremap.c 2009-07-23 17:34:32.221026931 -0400 | 39855 | +++ linux-2.6.30.4/mm/fremap.c 2009-07-30 09:48:10.142775471 -0400 |
40926 | @@ -153,6 +153,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsign | 39856 | @@ -153,6 +153,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsign |
40927 | retry: | 39857 | retry: |
40928 | vma = find_vma(mm, start); | 39858 | vma = find_vma(mm, start); |
@@ -40935,9 +39865,66 @@ diff -urNp linux-2.6.29.6/mm/fremap.c linux-2.6.29.6/mm/fremap.c | |||
40935 | /* | 39865 | /* |
40936 | * Make sure the vma is shared, that it supports prefaulting, | 39866 | * Make sure the vma is shared, that it supports prefaulting, |
40937 | * and that the remapped range is valid and fully within | 39867 | * and that the remapped range is valid and fully within |
40938 | diff -urNp linux-2.6.29.6/mm/hugetlb.c linux-2.6.29.6/mm/hugetlb.c | 39868 | diff -urNp linux-2.6.30.4/mm/highmem.c linux-2.6.30.4/mm/highmem.c |
40939 | --- linux-2.6.29.6/mm/hugetlb.c 2009-07-02 19:41:20.000000000 -0400 | 39869 | --- linux-2.6.30.4/mm/highmem.c 2009-07-24 17:47:51.000000000 -0400 |
40940 | +++ linux-2.6.29.6/mm/hugetlb.c 2009-07-23 18:40:27.480266950 -0400 | 39870 | +++ linux-2.6.30.4/mm/highmem.c 2009-08-02 11:24:41.617453261 -0400 |
39871 | @@ -95,6 +95,9 @@ static void flush_all_zero_pkmaps(void) | ||
39872 | |||
39873 | for (i = 0; i < LAST_PKMAP; i++) { | ||
39874 | struct page *page; | ||
39875 | +#ifdef CONFIG_PAX_KERNEXEC | ||
39876 | + unsigned long cr0; | ||
39877 | +#endif | ||
39878 | |||
39879 | /* | ||
39880 | * zero means we don't have anything to do, | ||
39881 | @@ -117,9 +120,18 @@ static void flush_all_zero_pkmaps(void) | ||
39882 | * So no dangers, even with speculative execution. | ||
39883 | */ | ||
39884 | page = pte_page(pkmap_page_table[i]); | ||
39885 | + | ||
39886 | +#ifdef CONFIG_PAX_KERNEXEC | ||
39887 | + pax_open_kernel(cr0); | ||
39888 | +#endif | ||
39889 | + | ||
39890 | pte_clear(&init_mm, (unsigned long)page_address(page), | ||
39891 | &pkmap_page_table[i]); | ||
39892 | |||
39893 | +#ifdef CONFIG_PAX_KERNEXEC | ||
39894 | + pax_close_kernel(cr0); | ||
39895 | +#endif | ||
39896 | + | ||
39897 | set_page_address(page, NULL); | ||
39898 | need_flush = 1; | ||
39899 | } | ||
39900 | @@ -141,6 +153,9 @@ static inline unsigned long map_new_virt | ||
39901 | { | ||
39902 | unsigned long vaddr; | ||
39903 | int count; | ||
39904 | +#ifdef CONFIG_PAX_KERNEXEC | ||
39905 | + unsigned long cr0; | ||
39906 | +#endif | ||
39907 | |||
39908 | start: | ||
39909 | count = LAST_PKMAP; | ||
39910 | @@ -178,8 +193,14 @@ start: | ||
39911 | } | ||
39912 | } | ||
39913 | vaddr = PKMAP_ADDR(last_pkmap_nr); | ||
39914 | +#ifdef CONFIG_PAX_KERNEXEC | ||
39915 | + pax_open_kernel(cr0); | ||
39916 | +#endif | ||
39917 | set_pte_at(&init_mm, vaddr, | ||
39918 | &(pkmap_page_table[last_pkmap_nr]), mk_pte(page, kmap_prot)); | ||
39919 | +#ifdef CONFIG_PAX_KERNEXEC | ||
39920 | + pax_close_kernel(cr0); | ||
39921 | +#endif | ||
39922 | |||
39923 | pkmap_count[last_pkmap_nr] = 1; | ||
39924 | set_page_address(page, (void *)vaddr); | ||
39925 | diff -urNp linux-2.6.30.4/mm/hugetlb.c linux-2.6.30.4/mm/hugetlb.c | ||
39926 | --- linux-2.6.30.4/mm/hugetlb.c 2009-07-24 17:47:51.000000000 -0400 | ||
39927 | +++ linux-2.6.30.4/mm/hugetlb.c 2009-07-30 09:48:10.143720396 -0400 | ||
40941 | @@ -1661,7 +1661,7 @@ static int hugetlb_vm_op_fault(struct vm | 39928 | @@ -1661,7 +1661,7 @@ static int hugetlb_vm_op_fault(struct vm |
40942 | return 0; | 39929 | return 0; |
40943 | } | 39930 | } |
@@ -41026,9 +40013,9 @@ diff -urNp linux-2.6.29.6/mm/hugetlb.c linux-2.6.29.6/mm/hugetlb.c | |||
41026 | ptep = huge_pte_alloc(mm, address, huge_page_size(h)); | 40013 | ptep = huge_pte_alloc(mm, address, huge_page_size(h)); |
41027 | if (!ptep) | 40014 | if (!ptep) |
41028 | return VM_FAULT_OOM; | 40015 | return VM_FAULT_OOM; |
41029 | diff -urNp linux-2.6.29.6/mm/madvise.c linux-2.6.29.6/mm/madvise.c | 40016 | diff -urNp linux-2.6.30.4/mm/madvise.c linux-2.6.30.4/mm/madvise.c |
41030 | --- linux-2.6.29.6/mm/madvise.c 2009-07-02 19:41:20.000000000 -0400 | 40017 | --- linux-2.6.30.4/mm/madvise.c 2009-07-24 17:47:51.000000000 -0400 |
41031 | +++ linux-2.6.29.6/mm/madvise.c 2009-07-23 17:34:32.221732895 -0400 | 40018 | +++ linux-2.6.30.4/mm/madvise.c 2009-07-30 09:48:10.143720396 -0400 |
41032 | @@ -43,6 +43,10 @@ static long madvise_behavior(struct vm_a | 40019 | @@ -43,6 +43,10 @@ static long madvise_behavior(struct vm_a |
41033 | pgoff_t pgoff; | 40020 | pgoff_t pgoff; |
41034 | int new_flags = vma->vm_flags; | 40021 | int new_flags = vma->vm_flags; |
@@ -41054,7 +40041,7 @@ diff -urNp linux-2.6.29.6/mm/madvise.c linux-2.6.29.6/mm/madvise.c | |||
41054 | vma->vm_flags = new_flags; | 40041 | vma->vm_flags = new_flags; |
41055 | 40042 | ||
41056 | out: | 40043 | out: |
41057 | @@ -244,6 +255,17 @@ madvise_vma(struct vm_area_struct *vma, | 40044 | @@ -236,6 +247,17 @@ madvise_vma(struct vm_area_struct *vma, |
41058 | 40045 | ||
41059 | case MADV_DONTNEED: | 40046 | case MADV_DONTNEED: |
41060 | error = madvise_dontneed(vma, prev, start, end); | 40047 | error = madvise_dontneed(vma, prev, start, end); |
@@ -41072,7 +40059,7 @@ diff -urNp linux-2.6.29.6/mm/madvise.c linux-2.6.29.6/mm/madvise.c | |||
41072 | break; | 40059 | break; |
41073 | 40060 | ||
41074 | default: | 40061 | default: |
41075 | @@ -316,6 +338,16 @@ SYSCALL_DEFINE3(madvise, unsigned long, | 40062 | @@ -308,6 +330,16 @@ SYSCALL_DEFINE3(madvise, unsigned long, |
41076 | if (end < start) | 40063 | if (end < start) |
41077 | goto out; | 40064 | goto out; |
41078 | 40065 | ||
@@ -41089,9 +40076,9 @@ diff -urNp linux-2.6.29.6/mm/madvise.c linux-2.6.29.6/mm/madvise.c | |||
41089 | error = 0; | 40076 | error = 0; |
41090 | if (end == start) | 40077 | if (end == start) |
41091 | goto out; | 40078 | goto out; |
41092 | diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | 40079 | diff -urNp linux-2.6.30.4/mm/memory.c linux-2.6.30.4/mm/memory.c |
41093 | --- linux-2.6.29.6/mm/memory.c 2009-07-02 19:41:20.000000000 -0400 | 40080 | --- linux-2.6.30.4/mm/memory.c 2009-07-24 17:47:51.000000000 -0400 |
41094 | +++ linux-2.6.29.6/mm/memory.c 2009-07-23 17:34:32.222717577 -0400 | 40081 | +++ linux-2.6.30.4/mm/memory.c 2009-07-30 11:10:49.792655285 -0400 |
41095 | @@ -47,6 +47,7 @@ | 40082 | @@ -47,6 +47,7 @@ |
41096 | #include <linux/pagemap.h> | 40083 | #include <linux/pagemap.h> |
41097 | #include <linux/rmap.h> | 40084 | #include <linux/rmap.h> |
@@ -41100,7 +40087,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41100 | #include <linux/delayacct.h> | 40087 | #include <linux/delayacct.h> |
41101 | #include <linux/init.h> | 40088 | #include <linux/init.h> |
41102 | #include <linux/writeback.h> | 40089 | #include <linux/writeback.h> |
41103 | @@ -1222,11 +1223,11 @@ int __get_user_pages(struct task_struct | 40090 | @@ -1227,11 +1228,11 @@ int __get_user_pages(struct task_struct |
41104 | vm_flags &= force ? (VM_MAYREAD | VM_MAYWRITE) : (VM_READ | VM_WRITE); | 40091 | vm_flags &= force ? (VM_MAYREAD | VM_MAYWRITE) : (VM_READ | VM_WRITE); |
41105 | i = 0; | 40092 | i = 0; |
41106 | 40093 | ||
@@ -41114,7 +40101,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41114 | if (!vma && in_gate_area(tsk, start)) { | 40101 | if (!vma && in_gate_area(tsk, start)) { |
41115 | unsigned long pg = start & PAGE_MASK; | 40102 | unsigned long pg = start & PAGE_MASK; |
41116 | struct vm_area_struct *gate_vma = get_gate_vma(tsk); | 40103 | struct vm_area_struct *gate_vma = get_gate_vma(tsk); |
41117 | @@ -1268,7 +1269,7 @@ int __get_user_pages(struct task_struct | 40104 | @@ -1273,7 +1274,7 @@ int __get_user_pages(struct task_struct |
41118 | continue; | 40105 | continue; |
41119 | } | 40106 | } |
41120 | 40107 | ||
@@ -41123,7 +40110,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41123 | (vma->vm_flags & (VM_IO | VM_PFNMAP)) || | 40110 | (vma->vm_flags & (VM_IO | VM_PFNMAP)) || |
41124 | (!ignore && !(vm_flags & vma->vm_flags))) | 40111 | (!ignore && !(vm_flags & vma->vm_flags))) |
41125 | return i ? : -EFAULT; | 40112 | return i ? : -EFAULT; |
41126 | @@ -1351,7 +1352,7 @@ int __get_user_pages(struct task_struct | 40113 | @@ -1356,7 +1357,7 @@ int __get_user_pages(struct task_struct |
41127 | start += PAGE_SIZE; | 40114 | start += PAGE_SIZE; |
41128 | len--; | 40115 | len--; |
41129 | } while (len && start < vma->vm_end); | 40116 | } while (len && start < vma->vm_end); |
@@ -41132,7 +40119,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41132 | return i; | 40119 | return i; |
41133 | } | 40120 | } |
41134 | 40121 | ||
41135 | @@ -1869,6 +1870,186 @@ static inline void cow_user_page(struct | 40122 | @@ -1874,6 +1875,186 @@ static inline void cow_user_page(struct |
41136 | copy_user_highpage(dst, src, va, vma); | 40123 | copy_user_highpage(dst, src, va, vma); |
41137 | } | 40124 | } |
41138 | 40125 | ||
@@ -41319,7 +40306,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41319 | /* | 40306 | /* |
41320 | * This routine handles present pages, when users try to write | 40307 | * This routine handles present pages, when users try to write |
41321 | * to a shared page. It is done by copying the page to a new address | 40308 | * to a shared page. It is done by copying the page to a new address |
41322 | @@ -2041,6 +2222,12 @@ gotten: | 40309 | @@ -2046,6 +2227,12 @@ gotten: |
41323 | */ | 40310 | */ |
41324 | page_table = pte_offset_map_lock(mm, pmd, address, &ptl); | 40311 | page_table = pte_offset_map_lock(mm, pmd, address, &ptl); |
41325 | if (likely(pte_same(*page_table, orig_pte))) { | 40312 | if (likely(pte_same(*page_table, orig_pte))) { |
@@ -41332,7 +40319,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41332 | if (old_page) { | 40319 | if (old_page) { |
41333 | if (!PageAnon(old_page)) { | 40320 | if (!PageAnon(old_page)) { |
41334 | dec_mm_counter(mm, file_rss); | 40321 | dec_mm_counter(mm, file_rss); |
41335 | @@ -2087,6 +2274,10 @@ gotten: | 40322 | @@ -2092,6 +2279,10 @@ gotten: |
41336 | page_remove_rmap(old_page); | 40323 | page_remove_rmap(old_page); |
41337 | } | 40324 | } |
41338 | 40325 | ||
@@ -41343,7 +40330,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41343 | /* Free the old page.. */ | 40330 | /* Free the old page.. */ |
41344 | new_page = old_page; | 40331 | new_page = old_page; |
41345 | ret |= VM_FAULT_WRITE; | 40332 | ret |= VM_FAULT_WRITE; |
41346 | @@ -2368,6 +2559,7 @@ int vmtruncate(struct inode * inode, lof | 40333 | @@ -2373,6 +2564,7 @@ int vmtruncate(struct inode * inode, lof |
41347 | unsigned long limit; | 40334 | unsigned long limit; |
41348 | 40335 | ||
41349 | limit = current->signal->rlim[RLIMIT_FSIZE].rlim_cur; | 40336 | limit = current->signal->rlim[RLIMIT_FSIZE].rlim_cur; |
@@ -41351,7 +40338,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41351 | if (limit != RLIM_INFINITY && offset > limit) | 40338 | if (limit != RLIM_INFINITY && offset > limit) |
41352 | goto out_sig; | 40339 | goto out_sig; |
41353 | if (offset > inode->i_sb->s_maxbytes) | 40340 | if (offset > inode->i_sb->s_maxbytes) |
41354 | @@ -2533,6 +2725,11 @@ static int do_swap_page(struct mm_struct | 40341 | @@ -2535,6 +2727,11 @@ static int do_swap_page(struct mm_struct |
41355 | swap_free(entry); | 40342 | swap_free(entry); |
41356 | if (vm_swap_full() || (vma->vm_flags & VM_LOCKED) || PageMlocked(page)) | 40343 | if (vm_swap_full() || (vma->vm_flags & VM_LOCKED) || PageMlocked(page)) |
41357 | try_to_free_swap(page); | 40344 | try_to_free_swap(page); |
@@ -41363,7 +40350,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41363 | unlock_page(page); | 40350 | unlock_page(page); |
41364 | 40351 | ||
41365 | if (write_access) { | 40352 | if (write_access) { |
41366 | @@ -2544,6 +2741,11 @@ static int do_swap_page(struct mm_struct | 40353 | @@ -2546,6 +2743,11 @@ static int do_swap_page(struct mm_struct |
41367 | 40354 | ||
41368 | /* No need to invalidate - it was non-present before */ | 40355 | /* No need to invalidate - it was non-present before */ |
41369 | update_mmu_cache(vma, address, pte); | 40356 | update_mmu_cache(vma, address, pte); |
@@ -41375,7 +40362,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41375 | unlock: | 40362 | unlock: |
41376 | pte_unmap_unlock(page_table, ptl); | 40363 | pte_unmap_unlock(page_table, ptl); |
41377 | out: | 40364 | out: |
41378 | @@ -2588,12 +2790,23 @@ static int do_anonymous_page(struct mm_s | 40365 | @@ -2591,12 +2793,23 @@ static int do_anonymous_page(struct mm_s |
41379 | page_table = pte_offset_map_lock(mm, pmd, address, &ptl); | 40366 | page_table = pte_offset_map_lock(mm, pmd, address, &ptl); |
41380 | if (!pte_none(*page_table)) | 40367 | if (!pte_none(*page_table)) |
41381 | goto release; | 40368 | goto release; |
@@ -41399,7 +40386,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41399 | unlock: | 40386 | unlock: |
41400 | pte_unmap_unlock(page_table, ptl); | 40387 | pte_unmap_unlock(page_table, ptl); |
41401 | return 0; | 40388 | return 0; |
41402 | @@ -2730,6 +2943,12 @@ static int __do_fault(struct mm_struct * | 40389 | @@ -2733,6 +2946,12 @@ static int __do_fault(struct mm_struct * |
41403 | */ | 40390 | */ |
41404 | /* Only go through if we didn't race with anybody else... */ | 40391 | /* Only go through if we didn't race with anybody else... */ |
41405 | if (likely(pte_same(*page_table, orig_pte))) { | 40392 | if (likely(pte_same(*page_table, orig_pte))) { |
@@ -41412,7 +40399,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41412 | flush_icache_page(vma, page); | 40399 | flush_icache_page(vma, page); |
41413 | entry = mk_pte(page, vma->vm_page_prot); | 40400 | entry = mk_pte(page, vma->vm_page_prot); |
41414 | if (flags & FAULT_FLAG_WRITE) | 40401 | if (flags & FAULT_FLAG_WRITE) |
41415 | @@ -2749,6 +2968,14 @@ static int __do_fault(struct mm_struct * | 40402 | @@ -2752,6 +2971,14 @@ static int __do_fault(struct mm_struct * |
41416 | 40403 | ||
41417 | /* no need to invalidate: a not-present page won't be cached */ | 40404 | /* no need to invalidate: a not-present page won't be cached */ |
41418 | update_mmu_cache(vma, address, entry); | 40405 | update_mmu_cache(vma, address, entry); |
@@ -41427,7 +40414,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41427 | } else { | 40414 | } else { |
41428 | if (charged) | 40415 | if (charged) |
41429 | mem_cgroup_uncharge_page(page); | 40416 | mem_cgroup_uncharge_page(page); |
41430 | @@ -2897,6 +3124,12 @@ static inline int handle_pte_fault(struc | 40417 | @@ -2900,6 +3127,12 @@ static inline int handle_pte_fault(struc |
41431 | if (write_access) | 40418 | if (write_access) |
41432 | flush_tlb_page(vma, address); | 40419 | flush_tlb_page(vma, address); |
41433 | } | 40420 | } |
@@ -41440,7 +40427,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41440 | unlock: | 40427 | unlock: |
41441 | pte_unmap_unlock(pte, ptl); | 40428 | pte_unmap_unlock(pte, ptl); |
41442 | return 0; | 40429 | return 0; |
41443 | @@ -2913,6 +3146,10 @@ int handle_mm_fault(struct mm_struct *mm | 40430 | @@ -2916,6 +3149,10 @@ int handle_mm_fault(struct mm_struct *mm |
41444 | pmd_t *pmd; | 40431 | pmd_t *pmd; |
41445 | pte_t *pte; | 40432 | pte_t *pte; |
41446 | 40433 | ||
@@ -41451,7 +40438,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41451 | __set_current_state(TASK_RUNNING); | 40438 | __set_current_state(TASK_RUNNING); |
41452 | 40439 | ||
41453 | count_vm_event(PGFAULT); | 40440 | count_vm_event(PGFAULT); |
41454 | @@ -2920,6 +3157,34 @@ int handle_mm_fault(struct mm_struct *mm | 40441 | @@ -2923,6 +3160,34 @@ int handle_mm_fault(struct mm_struct *mm |
41455 | if (unlikely(is_vm_hugetlb_page(vma))) | 40442 | if (unlikely(is_vm_hugetlb_page(vma))) |
41456 | return hugetlb_fault(mm, vma, address, write_access); | 40443 | return hugetlb_fault(mm, vma, address, write_access); |
41457 | 40444 | ||
@@ -41486,7 +40473,7 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41486 | pgd = pgd_offset(mm, address); | 40473 | pgd = pgd_offset(mm, address); |
41487 | pud = pud_alloc(mm, pgd, address); | 40474 | pud = pud_alloc(mm, pgd, address); |
41488 | if (!pud) | 40475 | if (!pud) |
41489 | @@ -3017,7 +3282,7 @@ static int __init gate_vma_init(void) | 40476 | @@ -3020,7 +3285,7 @@ static int __init gate_vma_init(void) |
41490 | gate_vma.vm_start = FIXADDR_USER_START; | 40477 | gate_vma.vm_start = FIXADDR_USER_START; |
41491 | gate_vma.vm_end = FIXADDR_USER_END; | 40478 | gate_vma.vm_end = FIXADDR_USER_END; |
41492 | gate_vma.vm_flags = VM_READ | VM_MAYREAD | VM_EXEC | VM_MAYEXEC; | 40479 | gate_vma.vm_flags = VM_READ | VM_MAYREAD | VM_EXEC | VM_MAYEXEC; |
@@ -41495,9 +40482,9 @@ diff -urNp linux-2.6.29.6/mm/memory.c linux-2.6.29.6/mm/memory.c | |||
41495 | /* | 40482 | /* |
41496 | * Make sure the vDSO gets into every core dump. | 40483 | * Make sure the vDSO gets into every core dump. |
41497 | * Dumping its contents makes post-mortem fully interpretable later | 40484 | * Dumping its contents makes post-mortem fully interpretable later |
41498 | diff -urNp linux-2.6.29.6/mm/mempolicy.c linux-2.6.29.6/mm/mempolicy.c | 40485 | diff -urNp linux-2.6.30.4/mm/mempolicy.c linux-2.6.30.4/mm/mempolicy.c |
41499 | --- linux-2.6.29.6/mm/mempolicy.c 2009-07-02 19:41:20.000000000 -0400 | 40486 | --- linux-2.6.30.4/mm/mempolicy.c 2009-07-24 17:47:51.000000000 -0400 |
41500 | +++ linux-2.6.29.6/mm/mempolicy.c 2009-07-23 17:34:32.224099604 -0400 | 40487 | +++ linux-2.6.30.4/mm/mempolicy.c 2009-07-30 09:48:10.145161384 -0400 |
41501 | @@ -551,6 +551,10 @@ static int mbind_range(struct vm_area_st | 40488 | @@ -551,6 +551,10 @@ static int mbind_range(struct vm_area_st |
41502 | struct vm_area_struct *next; | 40489 | struct vm_area_struct *next; |
41503 | int err; | 40490 | int err; |
@@ -41553,9 +40540,9 @@ diff -urNp linux-2.6.29.6/mm/mempolicy.c linux-2.6.29.6/mm/mempolicy.c | |||
41553 | } else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) { | 40540 | } else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) { |
41554 | seq_printf(m, " heap"); | 40541 | seq_printf(m, " heap"); |
41555 | } else if (vma->vm_start <= mm->start_stack && | 40542 | } else if (vma->vm_start <= mm->start_stack && |
41556 | diff -urNp linux-2.6.29.6/mm/mlock.c linux-2.6.29.6/mm/mlock.c | 40543 | diff -urNp linux-2.6.30.4/mm/mlock.c linux-2.6.30.4/mm/mlock.c |
41557 | --- linux-2.6.29.6/mm/mlock.c 2009-07-02 19:41:20.000000000 -0400 | 40544 | --- linux-2.6.30.4/mm/mlock.c 2009-07-24 17:47:51.000000000 -0400 |
41558 | +++ linux-2.6.29.6/mm/mlock.c 2009-07-23 17:34:32.224099604 -0400 | 40545 | +++ linux-2.6.30.4/mm/mlock.c 2009-07-30 11:10:49.799565380 -0400 |
41559 | @@ -13,6 +13,7 @@ | 40546 | @@ -13,6 +13,7 @@ |
41560 | #include <linux/pagemap.h> | 40547 | #include <linux/pagemap.h> |
41561 | #include <linux/mempolicy.h> | 40548 | #include <linux/mempolicy.h> |
@@ -41624,10 +40611,10 @@ diff -urNp linux-2.6.29.6/mm/mlock.c linux-2.6.29.6/mm/mlock.c | |||
41624 | if (!(flags & MCL_CURRENT) || (current->mm->total_vm <= lock_limit) || | 40611 | if (!(flags & MCL_CURRENT) || (current->mm->total_vm <= lock_limit) || |
41625 | capable(CAP_IPC_LOCK)) | 40612 | capable(CAP_IPC_LOCK)) |
41626 | ret = do_mlockall(flags); | 40613 | ret = do_mlockall(flags); |
41627 | diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | 40614 | diff -urNp linux-2.6.30.4/mm/mmap.c linux-2.6.30.4/mm/mmap.c |
41628 | --- linux-2.6.29.6/mm/mmap.c 2009-07-02 19:41:20.000000000 -0400 | 40615 | --- linux-2.6.30.4/mm/mmap.c 2009-07-24 17:47:51.000000000 -0400 |
41629 | +++ linux-2.6.29.6/mm/mmap.c 2009-07-23 19:29:10.716514097 -0400 | 40616 | +++ linux-2.6.30.4/mm/mmap.c 2009-07-30 11:10:49.813589536 -0400 |
41630 | @@ -43,6 +43,16 @@ | 40617 | @@ -44,6 +44,16 @@ |
41631 | #define arch_rebalance_pgtables(addr, len) (addr) | 40618 | #define arch_rebalance_pgtables(addr, len) (addr) |
41632 | #endif | 40619 | #endif |
41633 | 40620 | ||
@@ -41644,7 +40631,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41644 | static void unmap_region(struct mm_struct *mm, | 40631 | static void unmap_region(struct mm_struct *mm, |
41645 | struct vm_area_struct *vma, struct vm_area_struct *prev, | 40632 | struct vm_area_struct *vma, struct vm_area_struct *prev, |
41646 | unsigned long start, unsigned long end); | 40633 | unsigned long start, unsigned long end); |
41647 | @@ -68,16 +78,25 @@ static void unmap_region(struct mm_struc | 40634 | @@ -69,16 +79,25 @@ static void unmap_region(struct mm_struc |
41648 | * x: (no) no x: (no) yes x: (no) yes x: (yes) yes | 40635 | * x: (no) no x: (no) yes x: (no) yes x: (yes) yes |
41649 | * | 40636 | * |
41650 | */ | 40637 | */ |
@@ -41672,7 +40659,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41672 | } | 40659 | } |
41673 | EXPORT_SYMBOL(vm_get_page_prot); | 40660 | EXPORT_SYMBOL(vm_get_page_prot); |
41674 | 40661 | ||
41675 | @@ -229,6 +248,7 @@ static struct vm_area_struct *remove_vma | 40662 | @@ -233,6 +252,7 @@ static struct vm_area_struct *remove_vma |
41676 | struct vm_area_struct *next = vma->vm_next; | 40663 | struct vm_area_struct *next = vma->vm_next; |
41677 | 40664 | ||
41678 | might_sleep(); | 40665 | might_sleep(); |
@@ -41680,7 +40667,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41680 | if (vma->vm_ops && vma->vm_ops->close) | 40667 | if (vma->vm_ops && vma->vm_ops->close) |
41681 | vma->vm_ops->close(vma); | 40668 | vma->vm_ops->close(vma); |
41682 | if (vma->vm_file) { | 40669 | if (vma->vm_file) { |
41683 | @@ -265,6 +285,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) | 40670 | @@ -269,6 +289,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) |
41684 | * not page aligned -Ram Gupta | 40671 | * not page aligned -Ram Gupta |
41685 | */ | 40672 | */ |
41686 | rlim = current->signal->rlim[RLIMIT_DATA].rlim_cur; | 40673 | rlim = current->signal->rlim[RLIMIT_DATA].rlim_cur; |
@@ -41688,7 +40675,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41688 | if (rlim < RLIM_INFINITY && (brk - mm->start_brk) + | 40675 | if (rlim < RLIM_INFINITY && (brk - mm->start_brk) + |
41689 | (mm->end_data - mm->start_data) > rlim) | 40676 | (mm->end_data - mm->start_data) > rlim) |
41690 | goto out; | 40677 | goto out; |
41691 | @@ -694,6 +715,12 @@ static int | 40678 | @@ -698,6 +719,12 @@ static int |
41692 | can_vma_merge_before(struct vm_area_struct *vma, unsigned long vm_flags, | 40679 | can_vma_merge_before(struct vm_area_struct *vma, unsigned long vm_flags, |
41693 | struct anon_vma *anon_vma, struct file *file, pgoff_t vm_pgoff) | 40680 | struct anon_vma *anon_vma, struct file *file, pgoff_t vm_pgoff) |
41694 | { | 40681 | { |
@@ -41701,7 +40688,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41701 | if (is_mergeable_vma(vma, file, vm_flags) && | 40688 | if (is_mergeable_vma(vma, file, vm_flags) && |
41702 | is_mergeable_anon_vma(anon_vma, vma->anon_vma)) { | 40689 | is_mergeable_anon_vma(anon_vma, vma->anon_vma)) { |
41703 | if (vma->vm_pgoff == vm_pgoff) | 40690 | if (vma->vm_pgoff == vm_pgoff) |
41704 | @@ -713,6 +740,12 @@ static int | 40691 | @@ -717,6 +744,12 @@ static int |
41705 | can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags, | 40692 | can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags, |
41706 | struct anon_vma *anon_vma, struct file *file, pgoff_t vm_pgoff) | 40693 | struct anon_vma *anon_vma, struct file *file, pgoff_t vm_pgoff) |
41707 | { | 40694 | { |
@@ -41714,7 +40701,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41714 | if (is_mergeable_vma(vma, file, vm_flags) && | 40701 | if (is_mergeable_vma(vma, file, vm_flags) && |
41715 | is_mergeable_anon_vma(anon_vma, vma->anon_vma)) { | 40702 | is_mergeable_anon_vma(anon_vma, vma->anon_vma)) { |
41716 | pgoff_t vm_pglen; | 40703 | pgoff_t vm_pglen; |
41717 | @@ -755,12 +788,19 @@ can_vma_merge_after(struct vm_area_struc | 40704 | @@ -759,12 +792,19 @@ can_vma_merge_after(struct vm_area_struc |
41718 | struct vm_area_struct *vma_merge(struct mm_struct *mm, | 40705 | struct vm_area_struct *vma_merge(struct mm_struct *mm, |
41719 | struct vm_area_struct *prev, unsigned long addr, | 40706 | struct vm_area_struct *prev, unsigned long addr, |
41720 | unsigned long end, unsigned long vm_flags, | 40707 | unsigned long end, unsigned long vm_flags, |
@@ -41735,7 +40722,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41735 | /* | 40722 | /* |
41736 | * We later require that vma->vm_flags == vm_flags, | 40723 | * We later require that vma->vm_flags == vm_flags, |
41737 | * so this tests vma->vm_flags & VM_SPECIAL, too. | 40724 | * so this tests vma->vm_flags & VM_SPECIAL, too. |
41738 | @@ -776,6 +816,15 @@ struct vm_area_struct *vma_merge(struct | 40725 | @@ -780,6 +820,15 @@ struct vm_area_struct *vma_merge(struct |
41739 | if (next && next->vm_end == end) /* cases 6, 7, 8 */ | 40726 | if (next && next->vm_end == end) /* cases 6, 7, 8 */ |
41740 | next = next->vm_next; | 40727 | next = next->vm_next; |
41741 | 40728 | ||
@@ -41751,7 +40738,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41751 | /* | 40738 | /* |
41752 | * Can it merge with the predecessor? | 40739 | * Can it merge with the predecessor? |
41753 | */ | 40740 | */ |
41754 | @@ -795,9 +844,24 @@ struct vm_area_struct *vma_merge(struct | 40741 | @@ -799,9 +848,24 @@ struct vm_area_struct *vma_merge(struct |
41755 | /* cases 1, 6 */ | 40742 | /* cases 1, 6 */ |
41756 | vma_adjust(prev, prev->vm_start, | 40743 | vma_adjust(prev, prev->vm_start, |
41757 | next->vm_end, prev->vm_pgoff, NULL); | 40744 | next->vm_end, prev->vm_pgoff, NULL); |
@@ -41777,7 +40764,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41777 | return prev; | 40764 | return prev; |
41778 | } | 40765 | } |
41779 | 40766 | ||
41780 | @@ -808,12 +872,27 @@ struct vm_area_struct *vma_merge(struct | 40767 | @@ -812,12 +876,27 @@ struct vm_area_struct *vma_merge(struct |
41781 | mpol_equal(policy, vma_policy(next)) && | 40768 | mpol_equal(policy, vma_policy(next)) && |
41782 | can_vma_merge_before(next, vm_flags, | 40769 | can_vma_merge_before(next, vm_flags, |
41783 | anon_vma, file, pgoff+pglen)) { | 40770 | anon_vma, file, pgoff+pglen)) { |
@@ -41807,7 +40794,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41807 | return area; | 40794 | return area; |
41808 | } | 40795 | } |
41809 | 40796 | ||
41810 | @@ -888,14 +967,11 @@ none: | 40797 | @@ -892,14 +971,11 @@ none: |
41811 | void vm_stat_account(struct mm_struct *mm, unsigned long flags, | 40798 | void vm_stat_account(struct mm_struct *mm, unsigned long flags, |
41812 | struct file *file, long pages) | 40799 | struct file *file, long pages) |
41813 | { | 40800 | { |
@@ -41823,7 +40810,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41823 | mm->stack_vm += pages; | 40810 | mm->stack_vm += pages; |
41824 | if (flags & (VM_RESERVED|VM_IO)) | 40811 | if (flags & (VM_RESERVED|VM_IO)) |
41825 | mm->reserved_vm += pages; | 40812 | mm->reserved_vm += pages; |
41826 | @@ -922,7 +998,7 @@ unsigned long do_mmap_pgoff(struct file | 40813 | @@ -926,7 +1002,7 @@ unsigned long do_mmap_pgoff(struct file |
41827 | * (the exception is when the underlying filesystem is noexec | 40814 | * (the exception is when the underlying filesystem is noexec |
41828 | * mounted, in which case we dont add PROT_EXEC.) | 40815 | * mounted, in which case we dont add PROT_EXEC.) |
41829 | */ | 40816 | */ |
@@ -41832,7 +40819,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41832 | if (!(file && (file->f_path.mnt->mnt_flags & MNT_NOEXEC))) | 40819 | if (!(file && (file->f_path.mnt->mnt_flags & MNT_NOEXEC))) |
41833 | prot |= PROT_EXEC; | 40820 | prot |= PROT_EXEC; |
41834 | 40821 | ||
41835 | @@ -932,15 +1008,15 @@ unsigned long do_mmap_pgoff(struct file | 40822 | @@ -936,15 +1012,15 @@ unsigned long do_mmap_pgoff(struct file |
41836 | if (!(flags & MAP_FIXED)) | 40823 | if (!(flags & MAP_FIXED)) |
41837 | addr = round_hint_to_min(addr); | 40824 | addr = round_hint_to_min(addr); |
41838 | 40825 | ||
@@ -41852,7 +40839,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41852 | /* offset overflow? */ | 40839 | /* offset overflow? */ |
41853 | if ((pgoff + (len >> PAGE_SHIFT)) < pgoff) | 40840 | if ((pgoff + (len >> PAGE_SHIFT)) < pgoff) |
41854 | return -EOVERFLOW; | 40841 | return -EOVERFLOW; |
41855 | @@ -952,7 +1028,7 @@ unsigned long do_mmap_pgoff(struct file | 40842 | @@ -956,7 +1032,7 @@ unsigned long do_mmap_pgoff(struct file |
41856 | /* Obtain the address to map to. we verify (or select) it and ensure | 40843 | /* Obtain the address to map to. we verify (or select) it and ensure |
41857 | * that it represents a valid section of the address space. | 40844 | * that it represents a valid section of the address space. |
41858 | */ | 40845 | */ |
@@ -41861,7 +40848,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41861 | if (addr & ~PAGE_MASK) | 40848 | if (addr & ~PAGE_MASK) |
41862 | return addr; | 40849 | return addr; |
41863 | 40850 | ||
41864 | @@ -963,6 +1039,26 @@ unsigned long do_mmap_pgoff(struct file | 40851 | @@ -967,6 +1043,26 @@ unsigned long do_mmap_pgoff(struct file |
41865 | vm_flags = calc_vm_prot_bits(prot) | calc_vm_flag_bits(flags) | | 40852 | vm_flags = calc_vm_prot_bits(prot) | calc_vm_flag_bits(flags) | |
41866 | mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC; | 40853 | mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC; |
41867 | 40854 | ||
@@ -41888,7 +40875,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41888 | if (flags & MAP_LOCKED) { | 40875 | if (flags & MAP_LOCKED) { |
41889 | if (!can_do_mlock()) | 40876 | if (!can_do_mlock()) |
41890 | return -EPERM; | 40877 | return -EPERM; |
41891 | @@ -976,6 +1072,7 @@ unsigned long do_mmap_pgoff(struct file | 40878 | @@ -980,6 +1076,7 @@ unsigned long do_mmap_pgoff(struct file |
41892 | locked += mm->locked_vm; | 40879 | locked += mm->locked_vm; |
41893 | lock_limit = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur; | 40880 | lock_limit = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur; |
41894 | lock_limit >>= PAGE_SHIFT; | 40881 | lock_limit >>= PAGE_SHIFT; |
@@ -41896,7 +40883,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41896 | if (locked > lock_limit && !capable(CAP_IPC_LOCK)) | 40883 | if (locked > lock_limit && !capable(CAP_IPC_LOCK)) |
41897 | return -EAGAIN; | 40884 | return -EAGAIN; |
41898 | } | 40885 | } |
41899 | @@ -1046,6 +1143,9 @@ unsigned long do_mmap_pgoff(struct file | 40886 | @@ -1053,6 +1150,9 @@ unsigned long do_mmap_pgoff(struct file |
41900 | if (error) | 40887 | if (error) |
41901 | return error; | 40888 | return error; |
41902 | 40889 | ||
@@ -41906,7 +40893,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41906 | return mmap_region(file, addr, len, flags, vm_flags, pgoff); | 40893 | return mmap_region(file, addr, len, flags, vm_flags, pgoff); |
41907 | } | 40894 | } |
41908 | EXPORT_SYMBOL(do_mmap_pgoff); | 40895 | EXPORT_SYMBOL(do_mmap_pgoff); |
41909 | @@ -1058,10 +1158,10 @@ EXPORT_SYMBOL(do_mmap_pgoff); | 40896 | @@ -1065,10 +1165,10 @@ EXPORT_SYMBOL(do_mmap_pgoff); |
41910 | */ | 40897 | */ |
41911 | int vma_wants_writenotify(struct vm_area_struct *vma) | 40898 | int vma_wants_writenotify(struct vm_area_struct *vma) |
41912 | { | 40899 | { |
@@ -41919,7 +40906,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41919 | return 0; | 40906 | return 0; |
41920 | 40907 | ||
41921 | /* The backer wishes to know when pages are first written to? */ | 40908 | /* The backer wishes to know when pages are first written to? */ |
41922 | @@ -1110,14 +1210,24 @@ unsigned long mmap_region(struct file *f | 40909 | @@ -1117,14 +1217,24 @@ unsigned long mmap_region(struct file *f |
41923 | unsigned long charged = 0; | 40910 | unsigned long charged = 0; |
41924 | struct inode *inode = file ? file->f_path.dentry->d_inode : NULL; | 40911 | struct inode *inode = file ? file->f_path.dentry->d_inode : NULL; |
41925 | 40912 | ||
@@ -41946,7 +40933,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41946 | } | 40933 | } |
41947 | 40934 | ||
41948 | /* Check against address space limit. */ | 40935 | /* Check against address space limit. */ |
41949 | @@ -1166,6 +1276,16 @@ munmap_back: | 40936 | @@ -1173,6 +1283,16 @@ munmap_back: |
41950 | goto unacct_error; | 40937 | goto unacct_error; |
41951 | } | 40938 | } |
41952 | 40939 | ||
@@ -41963,7 +40950,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41963 | vma->vm_mm = mm; | 40950 | vma->vm_mm = mm; |
41964 | vma->vm_start = addr; | 40951 | vma->vm_start = addr; |
41965 | vma->vm_end = addr + len; | 40952 | vma->vm_end = addr + len; |
41966 | @@ -1188,6 +1308,19 @@ munmap_back: | 40953 | @@ -1195,6 +1315,19 @@ munmap_back: |
41967 | error = file->f_op->mmap(file, vma); | 40954 | error = file->f_op->mmap(file, vma); |
41968 | if (error) | 40955 | if (error) |
41969 | goto unmap_and_free_vma; | 40956 | goto unmap_and_free_vma; |
@@ -41983,7 +40970,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
41983 | if (vm_flags & VM_EXECUTABLE) | 40970 | if (vm_flags & VM_EXECUTABLE) |
41984 | added_exe_file_vma(mm); | 40971 | added_exe_file_vma(mm); |
41985 | } else if (vm_flags & VM_SHARED) { | 40972 | } else if (vm_flags & VM_SHARED) { |
41986 | @@ -1211,12 +1344,18 @@ munmap_back: | 40973 | @@ -1218,12 +1351,18 @@ munmap_back: |
41987 | vma_link(mm, vma, prev, rb_link, rb_parent); | 40974 | vma_link(mm, vma, prev, rb_link, rb_parent); |
41988 | file = vma->vm_file; | 40975 | file = vma->vm_file; |
41989 | 40976 | ||
@@ -42002,7 +40989,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42002 | if (vm_flags & VM_LOCKED) { | 40989 | if (vm_flags & VM_LOCKED) { |
42003 | /* | 40990 | /* |
42004 | * makes pages present; downgrades, drops, reacquires mmap_sem | 40991 | * makes pages present; downgrades, drops, reacquires mmap_sem |
42005 | @@ -1239,6 +1378,12 @@ unmap_and_free_vma: | 40992 | @@ -1246,6 +1385,12 @@ unmap_and_free_vma: |
42006 | unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end); | 40993 | unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end); |
42007 | charged = 0; | 40994 | charged = 0; |
42008 | free_vma: | 40995 | free_vma: |
@@ -42015,7 +41002,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42015 | kmem_cache_free(vm_area_cachep, vma); | 41002 | kmem_cache_free(vm_area_cachep, vma); |
42016 | unacct_error: | 41003 | unacct_error: |
42017 | if (charged) | 41004 | if (charged) |
42018 | @@ -1272,6 +1417,10 @@ arch_get_unmapped_area(struct file *filp | 41005 | @@ -1279,6 +1424,10 @@ arch_get_unmapped_area(struct file *filp |
42019 | if (flags & MAP_FIXED) | 41006 | if (flags & MAP_FIXED) |
42020 | return addr; | 41007 | return addr; |
42021 | 41008 | ||
@@ -42026,7 +41013,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42026 | if (addr) { | 41013 | if (addr) { |
42027 | addr = PAGE_ALIGN(addr); | 41014 | addr = PAGE_ALIGN(addr); |
42028 | vma = find_vma(mm, addr); | 41015 | vma = find_vma(mm, addr); |
42029 | @@ -1280,10 +1429,10 @@ arch_get_unmapped_area(struct file *filp | 41016 | @@ -1287,10 +1436,10 @@ arch_get_unmapped_area(struct file *filp |
42030 | return addr; | 41017 | return addr; |
42031 | } | 41018 | } |
42032 | if (len > mm->cached_hole_size) { | 41019 | if (len > mm->cached_hole_size) { |
@@ -42040,7 +41027,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42040 | } | 41027 | } |
42041 | 41028 | ||
42042 | full_search: | 41029 | full_search: |
42043 | @@ -1294,9 +1443,8 @@ full_search: | 41030 | @@ -1301,9 +1450,8 @@ full_search: |
42044 | * Start a new search - just in case we missed | 41031 | * Start a new search - just in case we missed |
42045 | * some holes. | 41032 | * some holes. |
42046 | */ | 41033 | */ |
@@ -42052,7 +41039,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42052 | mm->cached_hole_size = 0; | 41039 | mm->cached_hole_size = 0; |
42053 | goto full_search; | 41040 | goto full_search; |
42054 | } | 41041 | } |
42055 | @@ -1318,10 +1466,16 @@ full_search: | 41042 | @@ -1325,10 +1473,16 @@ full_search: |
42056 | 41043 | ||
42057 | void arch_unmap_area(struct mm_struct *mm, unsigned long addr) | 41044 | void arch_unmap_area(struct mm_struct *mm, unsigned long addr) |
42058 | { | 41045 | { |
@@ -42070,7 +41057,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42070 | mm->free_area_cache = addr; | 41057 | mm->free_area_cache = addr; |
42071 | mm->cached_hole_size = ~0UL; | 41058 | mm->cached_hole_size = ~0UL; |
42072 | } | 41059 | } |
42073 | @@ -1339,7 +1493,7 @@ arch_get_unmapped_area_topdown(struct fi | 41060 | @@ -1346,7 +1500,7 @@ arch_get_unmapped_area_topdown(struct fi |
42074 | { | 41061 | { |
42075 | struct vm_area_struct *vma; | 41062 | struct vm_area_struct *vma; |
42076 | struct mm_struct *mm = current->mm; | 41063 | struct mm_struct *mm = current->mm; |
@@ -42079,7 +41066,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42079 | 41066 | ||
42080 | /* requested length too big for entire address space */ | 41067 | /* requested length too big for entire address space */ |
42081 | if (len > TASK_SIZE) | 41068 | if (len > TASK_SIZE) |
42082 | @@ -1348,6 +1502,10 @@ arch_get_unmapped_area_topdown(struct fi | 41069 | @@ -1355,6 +1509,10 @@ arch_get_unmapped_area_topdown(struct fi |
42083 | if (flags & MAP_FIXED) | 41070 | if (flags & MAP_FIXED) |
42084 | return addr; | 41071 | return addr; |
42085 | 41072 | ||
@@ -42090,7 +41077,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42090 | /* requesting a specific address */ | 41077 | /* requesting a specific address */ |
42091 | if (addr) { | 41078 | if (addr) { |
42092 | addr = PAGE_ALIGN(addr); | 41079 | addr = PAGE_ALIGN(addr); |
42093 | @@ -1405,13 +1563,21 @@ bottomup: | 41080 | @@ -1412,13 +1570,21 @@ bottomup: |
42094 | * can happen with large stack limits and large mmap() | 41081 | * can happen with large stack limits and large mmap() |
42095 | * allocations. | 41082 | * allocations. |
42096 | */ | 41083 | */ |
@@ -42114,7 +41101,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42114 | mm->cached_hole_size = ~0UL; | 41101 | mm->cached_hole_size = ~0UL; |
42115 | 41102 | ||
42116 | return addr; | 41103 | return addr; |
42117 | @@ -1420,6 +1586,12 @@ bottomup: | 41104 | @@ -1427,6 +1593,12 @@ bottomup: |
42118 | 41105 | ||
42119 | void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr) | 41106 | void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr) |
42120 | { | 41107 | { |
@@ -42127,7 +41114,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42127 | /* | 41114 | /* |
42128 | * Is this a new hole at the highest possible address? | 41115 | * Is this a new hole at the highest possible address? |
42129 | */ | 41116 | */ |
42130 | @@ -1427,8 +1599,10 @@ void arch_unmap_area_topdown(struct mm_s | 41117 | @@ -1434,8 +1606,10 @@ void arch_unmap_area_topdown(struct mm_s |
42131 | mm->free_area_cache = addr; | 41118 | mm->free_area_cache = addr; |
42132 | 41119 | ||
42133 | /* dont allow allocations above current base */ | 41120 | /* dont allow allocations above current base */ |
@@ -42139,7 +41126,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42139 | } | 41126 | } |
42140 | 41127 | ||
42141 | unsigned long | 41128 | unsigned long |
42142 | @@ -1528,6 +1702,27 @@ out: | 41129 | @@ -1535,6 +1709,27 @@ out: |
42143 | return prev ? prev->vm_next : vma; | 41130 | return prev ? prev->vm_next : vma; |
42144 | } | 41131 | } |
42145 | 41132 | ||
@@ -42167,7 +41154,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42167 | /* | 41154 | /* |
42168 | * Verify that the stack growth is acceptable and | 41155 | * Verify that the stack growth is acceptable and |
42169 | * update accounting. This is shared with both the | 41156 | * update accounting. This is shared with both the |
42170 | @@ -1544,6 +1739,7 @@ static int acct_stack_growth(struct vm_a | 41157 | @@ -1551,6 +1746,7 @@ static int acct_stack_growth(struct vm_a |
42171 | return -ENOMEM; | 41158 | return -ENOMEM; |
42172 | 41159 | ||
42173 | /* Stack limit test */ | 41160 | /* Stack limit test */ |
@@ -42175,7 +41162,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42175 | if (size > rlim[RLIMIT_STACK].rlim_cur) | 41162 | if (size > rlim[RLIMIT_STACK].rlim_cur) |
42176 | return -ENOMEM; | 41163 | return -ENOMEM; |
42177 | 41164 | ||
42178 | @@ -1553,6 +1749,7 @@ static int acct_stack_growth(struct vm_a | 41165 | @@ -1560,6 +1756,7 @@ static int acct_stack_growth(struct vm_a |
42179 | unsigned long limit; | 41166 | unsigned long limit; |
42180 | locked = mm->locked_vm + grow; | 41167 | locked = mm->locked_vm + grow; |
42181 | limit = rlim[RLIMIT_MEMLOCK].rlim_cur >> PAGE_SHIFT; | 41168 | limit = rlim[RLIMIT_MEMLOCK].rlim_cur >> PAGE_SHIFT; |
@@ -42183,7 +41170,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42183 | if (locked > limit && !capable(CAP_IPC_LOCK)) | 41170 | if (locked > limit && !capable(CAP_IPC_LOCK)) |
42184 | return -ENOMEM; | 41171 | return -ENOMEM; |
42185 | } | 41172 | } |
42186 | @@ -1588,35 +1785,40 @@ static | 41173 | @@ -1595,35 +1792,40 @@ static |
42187 | #endif | 41174 | #endif |
42188 | int expand_upwards(struct vm_area_struct *vma, unsigned long address) | 41175 | int expand_upwards(struct vm_area_struct *vma, unsigned long address) |
42189 | { | 41176 | { |
@@ -42234,7 +41221,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42234 | unsigned long size, grow; | 41221 | unsigned long size, grow; |
42235 | 41222 | ||
42236 | size = address - vma->vm_start; | 41223 | size = address - vma->vm_start; |
42237 | @@ -1626,6 +1828,8 @@ int expand_upwards(struct vm_area_struct | 41224 | @@ -1633,6 +1835,8 @@ int expand_upwards(struct vm_area_struct |
42238 | if (!error) | 41225 | if (!error) |
42239 | vma->vm_end = address; | 41226 | vma->vm_end = address; |
42240 | } | 41227 | } |
@@ -42243,7 +41230,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42243 | anon_vma_unlock(vma); | 41230 | anon_vma_unlock(vma); |
42244 | return error; | 41231 | return error; |
42245 | } | 41232 | } |
42246 | @@ -1637,7 +1841,8 @@ int expand_upwards(struct vm_area_struct | 41233 | @@ -1644,7 +1848,8 @@ int expand_upwards(struct vm_area_struct |
42247 | static int expand_downwards(struct vm_area_struct *vma, | 41234 | static int expand_downwards(struct vm_area_struct *vma, |
42248 | unsigned long address) | 41235 | unsigned long address) |
42249 | { | 41236 | { |
@@ -42253,7 +41240,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42253 | 41240 | ||
42254 | /* | 41241 | /* |
42255 | * We must make sure the anon_vma is allocated | 41242 | * We must make sure the anon_vma is allocated |
42256 | @@ -1651,6 +1856,15 @@ static int expand_downwards(struct vm_ar | 41243 | @@ -1658,6 +1863,15 @@ static int expand_downwards(struct vm_ar |
42257 | if (error) | 41244 | if (error) |
42258 | return error; | 41245 | return error; |
42259 | 41246 | ||
@@ -42269,7 +41256,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42269 | anon_vma_lock(vma); | 41256 | anon_vma_lock(vma); |
42270 | 41257 | ||
42271 | /* | 41258 | /* |
42272 | @@ -1660,9 +1874,15 @@ static int expand_downwards(struct vm_ar | 41259 | @@ -1667,9 +1881,15 @@ static int expand_downwards(struct vm_ar |
42273 | */ | 41260 | */ |
42274 | 41261 | ||
42275 | /* Somebody else might have raced and expanded it already */ | 41262 | /* Somebody else might have raced and expanded it already */ |
@@ -42286,7 +41273,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42286 | size = vma->vm_end - address; | 41273 | size = vma->vm_end - address; |
42287 | grow = (vma->vm_start - address) >> PAGE_SHIFT; | 41274 | grow = (vma->vm_start - address) >> PAGE_SHIFT; |
42288 | 41275 | ||
42289 | @@ -1670,9 +1890,20 @@ static int expand_downwards(struct vm_ar | 41276 | @@ -1677,9 +1897,20 @@ static int expand_downwards(struct vm_ar |
42290 | if (!error) { | 41277 | if (!error) { |
42291 | vma->vm_start = address; | 41278 | vma->vm_start = address; |
42292 | vma->vm_pgoff -= grow; | 41279 | vma->vm_pgoff -= grow; |
@@ -42307,7 +41294,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42307 | return error; | 41294 | return error; |
42308 | } | 41295 | } |
42309 | 41296 | ||
42310 | @@ -1748,6 +1979,13 @@ static void remove_vma_list(struct mm_st | 41297 | @@ -1755,6 +1986,13 @@ static void remove_vma_list(struct mm_st |
42311 | do { | 41298 | do { |
42312 | long nrpages = vma_pages(vma); | 41299 | long nrpages = vma_pages(vma); |
42313 | 41300 | ||
@@ -42321,7 +41308,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42321 | mm->total_vm -= nrpages; | 41308 | mm->total_vm -= nrpages; |
42322 | vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages); | 41309 | vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages); |
42323 | vma = remove_vma(vma); | 41310 | vma = remove_vma(vma); |
42324 | @@ -1792,6 +2030,16 @@ detach_vmas_to_be_unmapped(struct mm_str | 41311 | @@ -1799,6 +2037,16 @@ detach_vmas_to_be_unmapped(struct mm_str |
42325 | 41312 | ||
42326 | insertion_point = (prev ? &prev->vm_next : &mm->mmap); | 41313 | insertion_point = (prev ? &prev->vm_next : &mm->mmap); |
42327 | do { | 41314 | do { |
@@ -42338,7 +41325,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42338 | rb_erase(&vma->vm_rb, &mm->mm_rb); | 41325 | rb_erase(&vma->vm_rb, &mm->mm_rb); |
42339 | mm->map_count--; | 41326 | mm->map_count--; |
42340 | tail_vma = vma; | 41327 | tail_vma = vma; |
42341 | @@ -1811,6 +2059,108 @@ detach_vmas_to_be_unmapped(struct mm_str | 41328 | @@ -1818,6 +2066,108 @@ detach_vmas_to_be_unmapped(struct mm_str |
42342 | * Split a vma into two pieces at address 'addr', a new vma is allocated | 41329 | * Split a vma into two pieces at address 'addr', a new vma is allocated |
42343 | * either for the first part or the tail. | 41330 | * either for the first part or the tail. |
42344 | */ | 41331 | */ |
@@ -42447,7 +41434,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42447 | int split_vma(struct mm_struct * mm, struct vm_area_struct * vma, | 41434 | int split_vma(struct mm_struct * mm, struct vm_area_struct * vma, |
42448 | unsigned long addr, int new_below) | 41435 | unsigned long addr, int new_below) |
42449 | { | 41436 | { |
42450 | @@ -1862,17 +2212,37 @@ int split_vma(struct mm_struct * mm, str | 41437 | @@ -1869,17 +2219,37 @@ int split_vma(struct mm_struct * mm, str |
42451 | 41438 | ||
42452 | return 0; | 41439 | return 0; |
42453 | } | 41440 | } |
@@ -42485,7 +41472,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42485 | if ((start & ~PAGE_MASK) || start > TASK_SIZE || len > TASK_SIZE-start) | 41472 | if ((start & ~PAGE_MASK) || start > TASK_SIZE || len > TASK_SIZE-start) |
42486 | return -EINVAL; | 41473 | return -EINVAL; |
42487 | 41474 | ||
42488 | @@ -1936,6 +2306,8 @@ int do_munmap(struct mm_struct *mm, unsi | 41475 | @@ -1943,6 +2313,8 @@ int do_munmap(struct mm_struct *mm, unsi |
42489 | /* Fix up all other VM information */ | 41476 | /* Fix up all other VM information */ |
42490 | remove_vma_list(mm, vma); | 41477 | remove_vma_list(mm, vma); |
42491 | 41478 | ||
@@ -42494,7 +41481,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42494 | return 0; | 41481 | return 0; |
42495 | } | 41482 | } |
42496 | 41483 | ||
42497 | @@ -1948,22 +2320,18 @@ SYSCALL_DEFINE2(munmap, unsigned long, a | 41484 | @@ -1955,22 +2327,18 @@ SYSCALL_DEFINE2(munmap, unsigned long, a |
42498 | 41485 | ||
42499 | profile_munmap(addr); | 41486 | profile_munmap(addr); |
42500 | 41487 | ||
@@ -42523,7 +41510,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42523 | /* | 41510 | /* |
42524 | * this is really a simplified "do_mmap". it only handles | 41511 | * this is really a simplified "do_mmap". it only handles |
42525 | * anonymous maps. eventually we may be able to do some | 41512 | * anonymous maps. eventually we may be able to do some |
42526 | @@ -1977,6 +2345,11 @@ unsigned long do_brk(unsigned long addr, | 41513 | @@ -1984,6 +2352,11 @@ unsigned long do_brk(unsigned long addr, |
42527 | struct rb_node ** rb_link, * rb_parent; | 41514 | struct rb_node ** rb_link, * rb_parent; |
42528 | pgoff_t pgoff = addr >> PAGE_SHIFT; | 41515 | pgoff_t pgoff = addr >> PAGE_SHIFT; |
42529 | int error; | 41516 | int error; |
@@ -42535,7 +41522,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42535 | 41522 | ||
42536 | len = PAGE_ALIGN(len); | 41523 | len = PAGE_ALIGN(len); |
42537 | if (!len) | 41524 | if (!len) |
42538 | @@ -1994,19 +2367,34 @@ unsigned long do_brk(unsigned long addr, | 41525 | @@ -2001,19 +2374,34 @@ unsigned long do_brk(unsigned long addr, |
42539 | 41526 | ||
42540 | flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags; | 41527 | flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags; |
42541 | 41528 | ||
@@ -42571,7 +41558,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42571 | if (locked > lock_limit && !capable(CAP_IPC_LOCK)) | 41558 | if (locked > lock_limit && !capable(CAP_IPC_LOCK)) |
42572 | return -EAGAIN; | 41559 | return -EAGAIN; |
42573 | } | 41560 | } |
42574 | @@ -2020,22 +2408,22 @@ unsigned long do_brk(unsigned long addr, | 41561 | @@ -2027,22 +2415,22 @@ unsigned long do_brk(unsigned long addr, |
42575 | /* | 41562 | /* |
42576 | * Clear old maps. this also does some error checking for us | 41563 | * Clear old maps. this also does some error checking for us |
42577 | */ | 41564 | */ |
@@ -42598,7 +41585,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42598 | return -ENOMEM; | 41585 | return -ENOMEM; |
42599 | 41586 | ||
42600 | /* Can we just expand an old private anonymous mapping? */ | 41587 | /* Can we just expand an old private anonymous mapping? */ |
42601 | @@ -2049,10 +2437,21 @@ unsigned long do_brk(unsigned long addr, | 41588 | @@ -2056,10 +2444,21 @@ unsigned long do_brk(unsigned long addr, |
42602 | */ | 41589 | */ |
42603 | vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL); | 41590 | vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL); |
42604 | if (!vma) { | 41591 | if (!vma) { |
@@ -42621,7 +41608,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42621 | vma->vm_mm = mm; | 41608 | vma->vm_mm = mm; |
42622 | vma->vm_start = addr; | 41609 | vma->vm_start = addr; |
42623 | vma->vm_end = addr + len; | 41610 | vma->vm_end = addr + len; |
42624 | @@ -2061,11 +2460,12 @@ unsigned long do_brk(unsigned long addr, | 41611 | @@ -2068,11 +2467,12 @@ unsigned long do_brk(unsigned long addr, |
42625 | vma->vm_page_prot = vm_get_page_prot(flags); | 41612 | vma->vm_page_prot = vm_get_page_prot(flags); |
42626 | vma_link(mm, vma, prev, rb_link, rb_parent); | 41613 | vma_link(mm, vma, prev, rb_link, rb_parent); |
42627 | out: | 41614 | out: |
@@ -42636,7 +41623,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42636 | return addr; | 41623 | return addr; |
42637 | } | 41624 | } |
42638 | 41625 | ||
42639 | @@ -2111,8 +2511,10 @@ void exit_mmap(struct mm_struct *mm) | 41626 | @@ -2118,8 +2518,10 @@ void exit_mmap(struct mm_struct *mm) |
42640 | * Walk the list again, actually closing and freeing it, | 41627 | * Walk the list again, actually closing and freeing it, |
42641 | * with preemption enabled, without holding any MM locks. | 41628 | * with preemption enabled, without holding any MM locks. |
42642 | */ | 41629 | */ |
@@ -42648,7 +41635,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42648 | 41635 | ||
42649 | BUG_ON(mm->nr_ptes > (FIRST_USER_ADDRESS+PMD_SIZE-1)>>PMD_SHIFT); | 41636 | BUG_ON(mm->nr_ptes > (FIRST_USER_ADDRESS+PMD_SIZE-1)>>PMD_SHIFT); |
42650 | } | 41637 | } |
42651 | @@ -2126,6 +2528,10 @@ int insert_vm_struct(struct mm_struct * | 41638 | @@ -2133,6 +2535,10 @@ int insert_vm_struct(struct mm_struct * |
42652 | struct vm_area_struct * __vma, * prev; | 41639 | struct vm_area_struct * __vma, * prev; |
42653 | struct rb_node ** rb_link, * rb_parent; | 41640 | struct rb_node ** rb_link, * rb_parent; |
42654 | 41641 | ||
@@ -42659,7 +41646,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42659 | /* | 41646 | /* |
42660 | * The vm_pgoff of a purely anonymous vma should be irrelevant | 41647 | * The vm_pgoff of a purely anonymous vma should be irrelevant |
42661 | * until its first write fault, when page's anon_vma and index | 41648 | * until its first write fault, when page's anon_vma and index |
42662 | @@ -2148,7 +2554,22 @@ int insert_vm_struct(struct mm_struct * | 41649 | @@ -2155,7 +2561,22 @@ int insert_vm_struct(struct mm_struct * |
42663 | if ((vma->vm_flags & VM_ACCOUNT) && | 41650 | if ((vma->vm_flags & VM_ACCOUNT) && |
42664 | security_vm_enough_memory_mm(mm, vma_pages(vma))) | 41651 | security_vm_enough_memory_mm(mm, vma_pages(vma))) |
42665 | return -ENOMEM; | 41652 | return -ENOMEM; |
@@ -42682,7 +41669,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42682 | return 0; | 41669 | return 0; |
42683 | } | 41670 | } |
42684 | 41671 | ||
42685 | @@ -2166,6 +2587,8 @@ struct vm_area_struct *copy_vma(struct v | 41672 | @@ -2173,6 +2594,8 @@ struct vm_area_struct *copy_vma(struct v |
42686 | struct rb_node **rb_link, *rb_parent; | 41673 | struct rb_node **rb_link, *rb_parent; |
42687 | struct mempolicy *pol; | 41674 | struct mempolicy *pol; |
42688 | 41675 | ||
@@ -42691,7 +41678,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42691 | /* | 41678 | /* |
42692 | * If anonymous vma has not yet been faulted, update new pgoff | 41679 | * If anonymous vma has not yet been faulted, update new pgoff |
42693 | * to match new location, to increase its chance of merging. | 41680 | * to match new location, to increase its chance of merging. |
42694 | @@ -2209,6 +2632,35 @@ struct vm_area_struct *copy_vma(struct v | 41681 | @@ -2216,6 +2639,35 @@ struct vm_area_struct *copy_vma(struct v |
42695 | return new_vma; | 41682 | return new_vma; |
42696 | } | 41683 | } |
42697 | 41684 | ||
@@ -42727,7 +41714,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42727 | /* | 41714 | /* |
42728 | * Return true if the calling process may expand its vm space by the passed | 41715 | * Return true if the calling process may expand its vm space by the passed |
42729 | * number of pages | 41716 | * number of pages |
42730 | @@ -2219,7 +2671,7 @@ int may_expand_vm(struct mm_struct *mm, | 41717 | @@ -2226,7 +2678,7 @@ int may_expand_vm(struct mm_struct *mm, |
42731 | unsigned long lim; | 41718 | unsigned long lim; |
42732 | 41719 | ||
42733 | lim = current->signal->rlim[RLIMIT_AS].rlim_cur >> PAGE_SHIFT; | 41720 | lim = current->signal->rlim[RLIMIT_AS].rlim_cur >> PAGE_SHIFT; |
@@ -42736,7 +41723,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42736 | if (cur + npages > lim) | 41723 | if (cur + npages > lim) |
42737 | return 0; | 41724 | return 0; |
42738 | return 1; | 41725 | return 1; |
42739 | @@ -2260,7 +2712,7 @@ static void special_mapping_close(struct | 41726 | @@ -2267,7 +2719,7 @@ static void special_mapping_close(struct |
42740 | { | 41727 | { |
42741 | } | 41728 | } |
42742 | 41729 | ||
@@ -42745,7 +41732,7 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42745 | .close = special_mapping_close, | 41732 | .close = special_mapping_close, |
42746 | .fault = special_mapping_fault, | 41733 | .fault = special_mapping_fault, |
42747 | }; | 41734 | }; |
42748 | @@ -2288,6 +2740,15 @@ int install_special_mapping(struct mm_st | 41735 | @@ -2295,6 +2747,15 @@ int install_special_mapping(struct mm_st |
42749 | vma->vm_start = addr; | 41736 | vma->vm_start = addr; |
42750 | vma->vm_end = addr + len; | 41737 | vma->vm_end = addr + len; |
42751 | 41738 | ||
@@ -42761,9 +41748,9 @@ diff -urNp linux-2.6.29.6/mm/mmap.c linux-2.6.29.6/mm/mmap.c | |||
42761 | vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND; | 41748 | vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND; |
42762 | vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); | 41749 | vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); |
42763 | 41750 | ||
42764 | diff -urNp linux-2.6.29.6/mm/mprotect.c linux-2.6.29.6/mm/mprotect.c | 41751 | diff -urNp linux-2.6.30.4/mm/mprotect.c linux-2.6.30.4/mm/mprotect.c |
42765 | --- linux-2.6.29.6/mm/mprotect.c 2009-07-02 19:41:20.000000000 -0400 | 41752 | --- linux-2.6.30.4/mm/mprotect.c 2009-07-24 17:47:51.000000000 -0400 |
42766 | +++ linux-2.6.29.6/mm/mprotect.c 2009-07-23 17:34:32.228714408 -0400 | 41753 | +++ linux-2.6.30.4/mm/mprotect.c 2009-07-30 11:10:49.815552001 -0400 |
42767 | @@ -23,10 +23,16 @@ | 41754 | @@ -23,10 +23,16 @@ |
42768 | #include <linux/swapops.h> | 41755 | #include <linux/swapops.h> |
42769 | #include <linux/mmu_notifier.h> | 41756 | #include <linux/mmu_notifier.h> |
@@ -42954,9 +41941,9 @@ diff -urNp linux-2.6.29.6/mm/mprotect.c linux-2.6.29.6/mm/mprotect.c | |||
42954 | nstart = tmp; | 41941 | nstart = tmp; |
42955 | 41942 | ||
42956 | if (nstart < prev->vm_end) | 41943 | if (nstart < prev->vm_end) |
42957 | diff -urNp linux-2.6.29.6/mm/mremap.c linux-2.6.29.6/mm/mremap.c | 41944 | diff -urNp linux-2.6.30.4/mm/mremap.c linux-2.6.30.4/mm/mremap.c |
42958 | --- linux-2.6.29.6/mm/mremap.c 2009-07-02 19:41:20.000000000 -0400 | 41945 | --- linux-2.6.30.4/mm/mremap.c 2009-07-24 17:47:51.000000000 -0400 |
42959 | +++ linux-2.6.29.6/mm/mremap.c 2009-07-23 17:34:32.228714408 -0400 | 41946 | +++ linux-2.6.30.4/mm/mremap.c 2009-07-30 09:48:10.147955205 -0400 |
42960 | @@ -113,6 +113,12 @@ static void move_ptes(struct vm_area_str | 41947 | @@ -113,6 +113,12 @@ static void move_ptes(struct vm_area_str |
42961 | continue; | 41948 | continue; |
42962 | pte = ptep_clear_flush(vma, old_addr, old_pte); | 41949 | pte = ptep_clear_flush(vma, old_addr, old_pte); |
@@ -43068,10 +42055,10 @@ diff -urNp linux-2.6.29.6/mm/mremap.c linux-2.6.29.6/mm/mremap.c | |||
43068 | } | 42055 | } |
43069 | out: | 42056 | out: |
43070 | if (ret & ~PAGE_MASK) | 42057 | if (ret & ~PAGE_MASK) |
43071 | diff -urNp linux-2.6.29.6/mm/nommu.c linux-2.6.29.6/mm/nommu.c | 42058 | diff -urNp linux-2.6.30.4/mm/nommu.c linux-2.6.30.4/mm/nommu.c |
43072 | --- linux-2.6.29.6/mm/nommu.c 2009-07-02 19:41:20.000000000 -0400 | 42059 | --- linux-2.6.30.4/mm/nommu.c 2009-07-30 20:32:40.555603021 -0400 |
43073 | +++ linux-2.6.29.6/mm/nommu.c 2009-07-23 18:40:27.482433806 -0400 | 42060 | +++ linux-2.6.30.4/mm/nommu.c 2009-07-30 20:32:48.097607328 -0400 |
43074 | @@ -79,7 +79,7 @@ static struct kmem_cache *vm_region_jar; | 42061 | @@ -82,7 +82,7 @@ static struct kmem_cache *vm_region_jar; |
43075 | struct rb_root nommu_region_tree = RB_ROOT; | 42062 | struct rb_root nommu_region_tree = RB_ROOT; |
43076 | DECLARE_RWSEM(nommu_region_sem); | 42063 | DECLARE_RWSEM(nommu_region_sem); |
43077 | 42064 | ||
@@ -43080,7 +42067,7 @@ diff -urNp linux-2.6.29.6/mm/nommu.c linux-2.6.29.6/mm/nommu.c | |||
43080 | }; | 42067 | }; |
43081 | 42068 | ||
43082 | /* | 42069 | /* |
43083 | @@ -770,15 +770,6 @@ struct vm_area_struct *find_vma(struct m | 42070 | @@ -764,15 +764,6 @@ struct vm_area_struct *find_vma(struct m |
43084 | EXPORT_SYMBOL(find_vma); | 42071 | EXPORT_SYMBOL(find_vma); |
43085 | 42072 | ||
43086 | /* | 42073 | /* |
@@ -43096,9 +42083,9 @@ diff -urNp linux-2.6.29.6/mm/nommu.c linux-2.6.29.6/mm/nommu.c | |||
43096 | * expand a stack to a given address | 42083 | * expand a stack to a given address |
43097 | * - not supported under NOMMU conditions | 42084 | * - not supported under NOMMU conditions |
43098 | */ | 42085 | */ |
43099 | diff -urNp linux-2.6.29.6/mm/page_alloc.c linux-2.6.29.6/mm/page_alloc.c | 42086 | diff -urNp linux-2.6.30.4/mm/page_alloc.c linux-2.6.30.4/mm/page_alloc.c |
43100 | --- linux-2.6.29.6/mm/page_alloc.c 2009-07-02 19:41:20.000000000 -0400 | 42087 | --- linux-2.6.30.4/mm/page_alloc.c 2009-07-30 20:32:40.556595558 -0400 |
43101 | +++ linux-2.6.29.6/mm/page_alloc.c 2009-07-23 17:34:32.229702725 -0400 | 42088 | +++ linux-2.6.30.4/mm/page_alloc.c 2009-07-30 20:32:48.098681549 -0400 |
43102 | @@ -549,6 +549,10 @@ static void __free_pages_ok(struct page | 42089 | @@ -549,6 +549,10 @@ static void __free_pages_ok(struct page |
43103 | int i; | 42090 | int i; |
43104 | int bad = 0; | 42091 | int bad = 0; |
@@ -43134,7 +42121,7 @@ diff -urNp linux-2.6.29.6/mm/page_alloc.c linux-2.6.29.6/mm/page_alloc.c | |||
43134 | 42121 | ||
43135 | if (order && (gfp_flags & __GFP_COMP)) | 42122 | if (order && (gfp_flags & __GFP_COMP)) |
43136 | prep_compound_page(page, order); | 42123 | prep_compound_page(page, order); |
43137 | @@ -1009,6 +1021,11 @@ static void free_hot_cold_page(struct pa | 42124 | @@ -1006,6 +1018,11 @@ static void free_hot_cold_page(struct pa |
43138 | debug_check_no_locks_freed(page_address(page), PAGE_SIZE); | 42125 | debug_check_no_locks_freed(page_address(page), PAGE_SIZE); |
43139 | debug_check_no_obj_freed(page_address(page), PAGE_SIZE); | 42126 | debug_check_no_obj_freed(page_address(page), PAGE_SIZE); |
43140 | } | 42127 | } |
@@ -43146,9 +42133,21 @@ diff -urNp linux-2.6.29.6/mm/page_alloc.c linux-2.6.29.6/mm/page_alloc.c | |||
43146 | arch_free_page(page, 0); | 42133 | arch_free_page(page, 0); |
43147 | kernel_map_pages(page, 1, 0); | 42134 | kernel_map_pages(page, 1, 0); |
43148 | 42135 | ||
43149 | diff -urNp linux-2.6.29.6/mm/rmap.c linux-2.6.29.6/mm/rmap.c | 42136 | diff -urNp linux-2.6.30.4/mm/percpu.c linux-2.6.30.4/mm/percpu.c |
43150 | --- linux-2.6.29.6/mm/rmap.c 2009-07-02 19:41:20.000000000 -0400 | 42137 | --- linux-2.6.30.4/mm/percpu.c 2009-07-24 17:47:51.000000000 -0400 |
43151 | +++ linux-2.6.29.6/mm/rmap.c 2009-07-23 17:34:32.230802833 -0400 | 42138 | +++ linux-2.6.30.4/mm/percpu.c 2009-07-30 09:48:10.149665939 -0400 |
42139 | @@ -107,7 +107,7 @@ static int pcpu_nr_slots __read_mostly; | ||
42140 | static size_t pcpu_chunk_struct_size __read_mostly; | ||
42141 | |||
42142 | /* the address of the first chunk which starts with the kernel static area */ | ||
42143 | -void *pcpu_base_addr __read_mostly; | ||
42144 | +void *pcpu_base_addr __read_only; | ||
42145 | EXPORT_SYMBOL_GPL(pcpu_base_addr); | ||
42146 | |||
42147 | /* optional reserved chunk, only accessible for reserved allocations */ | ||
42148 | diff -urNp linux-2.6.30.4/mm/rmap.c linux-2.6.30.4/mm/rmap.c | ||
42149 | --- linux-2.6.30.4/mm/rmap.c 2009-07-24 17:47:51.000000000 -0400 | ||
42150 | +++ linux-2.6.30.4/mm/rmap.c 2009-07-30 09:48:10.149665939 -0400 | ||
43152 | @@ -103,6 +103,10 @@ int anon_vma_prepare(struct vm_area_stru | 42151 | @@ -103,6 +103,10 @@ int anon_vma_prepare(struct vm_area_stru |
43153 | struct mm_struct *mm = vma->vm_mm; | 42152 | struct mm_struct *mm = vma->vm_mm; |
43154 | struct anon_vma *allocated; | 42153 | struct anon_vma *allocated; |
@@ -43176,19 +42175,19 @@ diff -urNp linux-2.6.29.6/mm/rmap.c linux-2.6.29.6/mm/rmap.c | |||
43176 | vma->anon_vma = anon_vma; | 42175 | vma->anon_vma = anon_vma; |
43177 | list_add_tail(&vma->anon_vma_node, &anon_vma->head); | 42176 | list_add_tail(&vma->anon_vma_node, &anon_vma->head); |
43178 | allocated = NULL; | 42177 | allocated = NULL; |
43179 | diff -urNp linux-2.6.29.6/mm/shmem.c linux-2.6.29.6/mm/shmem.c | 42178 | diff -urNp linux-2.6.30.4/mm/shmem.c linux-2.6.30.4/mm/shmem.c |
43180 | --- linux-2.6.29.6/mm/shmem.c 2009-07-02 19:41:20.000000000 -0400 | 42179 | --- linux-2.6.30.4/mm/shmem.c 2009-07-24 17:47:51.000000000 -0400 |
43181 | +++ linux-2.6.29.6/mm/shmem.c 2009-07-23 18:40:28.737571137 -0400 | 42180 | +++ linux-2.6.30.4/mm/shmem.c 2009-07-30 11:10:49.822549311 -0400 |
43182 | @@ -29,7 +29,7 @@ | 42181 | @@ -31,7 +31,7 @@ |
43183 | #include <linux/module.h> | ||
43184 | #include <linux/swap.h> | 42182 | #include <linux/swap.h> |
42183 | #include <linux/ima.h> | ||
43185 | 42184 | ||
43186 | -static struct vfsmount *shm_mnt; | 42185 | -static struct vfsmount *shm_mnt; |
43187 | +struct vfsmount *shm_mnt; | 42186 | +struct vfsmount *shm_mnt; |
43188 | 42187 | ||
43189 | #ifdef CONFIG_SHMEM | 42188 | #ifdef CONFIG_SHMEM |
43190 | /* | 42189 | /* |
43191 | @@ -203,7 +203,7 @@ static const struct file_operations shme | 42190 | @@ -219,7 +219,7 @@ static const struct file_operations shme |
43192 | static const struct inode_operations shmem_inode_operations; | 42191 | static const struct inode_operations shmem_inode_operations; |
43193 | static const struct inode_operations shmem_dir_inode_operations; | 42192 | static const struct inode_operations shmem_dir_inode_operations; |
43194 | static const struct inode_operations shmem_special_inode_operations; | 42193 | static const struct inode_operations shmem_special_inode_operations; |
@@ -43197,7 +42196,7 @@ diff -urNp linux-2.6.29.6/mm/shmem.c linux-2.6.29.6/mm/shmem.c | |||
43197 | 42196 | ||
43198 | static struct backing_dev_info shmem_backing_dev_info __read_mostly = { | 42197 | static struct backing_dev_info shmem_backing_dev_info __read_mostly = { |
43199 | .ra_pages = 0, /* No readahead */ | 42198 | .ra_pages = 0, /* No readahead */ |
43200 | @@ -2482,7 +2482,7 @@ static const struct super_operations shm | 42199 | @@ -2501,7 +2501,7 @@ static const struct super_operations shm |
43201 | .put_super = shmem_put_super, | 42200 | .put_super = shmem_put_super, |
43202 | }; | 42201 | }; |
43203 | 42202 | ||
@@ -43206,10 +42205,10 @@ diff -urNp linux-2.6.29.6/mm/shmem.c linux-2.6.29.6/mm/shmem.c | |||
43206 | .fault = shmem_fault, | 42205 | .fault = shmem_fault, |
43207 | #ifdef CONFIG_NUMA | 42206 | #ifdef CONFIG_NUMA |
43208 | .set_policy = shmem_set_policy, | 42207 | .set_policy = shmem_set_policy, |
43209 | diff -urNp linux-2.6.29.6/mm/slab.c linux-2.6.29.6/mm/slab.c | 42208 | diff -urNp linux-2.6.30.4/mm/slab.c linux-2.6.30.4/mm/slab.c |
43210 | --- linux-2.6.29.6/mm/slab.c 2009-07-02 19:41:20.000000000 -0400 | 42209 | --- linux-2.6.30.4/mm/slab.c 2009-07-30 20:32:40.559581250 -0400 |
43211 | +++ linux-2.6.29.6/mm/slab.c 2009-07-23 17:34:32.231924238 -0400 | 42210 | +++ linux-2.6.30.4/mm/slab.c 2009-07-30 20:32:48.099850445 -0400 |
43212 | @@ -305,7 +305,7 @@ struct kmem_list3 { | 42211 | @@ -306,7 +306,7 @@ struct kmem_list3 { |
43213 | * Need this for bootstrapping a per node allocator. | 42212 | * Need this for bootstrapping a per node allocator. |
43214 | */ | 42213 | */ |
43215 | #define NUM_INIT_LISTS (3 * MAX_NUMNODES) | 42214 | #define NUM_INIT_LISTS (3 * MAX_NUMNODES) |
@@ -43218,7 +42217,7 @@ diff -urNp linux-2.6.29.6/mm/slab.c linux-2.6.29.6/mm/slab.c | |||
43218 | #define CACHE_CACHE 0 | 42217 | #define CACHE_CACHE 0 |
43219 | #define SIZE_AC MAX_NUMNODES | 42218 | #define SIZE_AC MAX_NUMNODES |
43220 | #define SIZE_L3 (2 * MAX_NUMNODES) | 42219 | #define SIZE_L3 (2 * MAX_NUMNODES) |
43221 | @@ -628,7 +628,7 @@ static inline void *index_to_obj(struct | 42220 | @@ -637,7 +637,7 @@ static inline void *index_to_obj(struct |
43222 | * reciprocal_divide(offset, cache->reciprocal_buffer_size) | 42221 | * reciprocal_divide(offset, cache->reciprocal_buffer_size) |
43223 | */ | 42222 | */ |
43224 | static inline unsigned int obj_to_index(const struct kmem_cache *cache, | 42223 | static inline unsigned int obj_to_index(const struct kmem_cache *cache, |
@@ -43227,7 +42226,7 @@ diff -urNp linux-2.6.29.6/mm/slab.c linux-2.6.29.6/mm/slab.c | |||
43227 | { | 42226 | { |
43228 | u32 offset = (obj - slab->s_mem); | 42227 | u32 offset = (obj - slab->s_mem); |
43229 | return reciprocal_divide(offset, cache->reciprocal_buffer_size); | 42228 | return reciprocal_divide(offset, cache->reciprocal_buffer_size); |
43230 | @@ -654,14 +654,14 @@ struct cache_names { | 42229 | @@ -663,14 +663,14 @@ struct cache_names { |
43231 | static struct cache_names __initdata cache_names[] = { | 42230 | static struct cache_names __initdata cache_names[] = { |
43232 | #define CACHE(x) { .name = "size-" #x, .name_dma = "size-" #x "(DMA)" }, | 42231 | #define CACHE(x) { .name = "size-" #x, .name_dma = "size-" #x "(DMA)" }, |
43233 | #include <linux/kmalloc_sizes.h> | 42232 | #include <linux/kmalloc_sizes.h> |
@@ -43245,7 +42244,7 @@ diff -urNp linux-2.6.29.6/mm/slab.c linux-2.6.29.6/mm/slab.c | |||
43245 | 42244 | ||
43246 | /* internal cache of cache description objs */ | 42245 | /* internal cache of cache description objs */ |
43247 | static struct kmem_cache cache_cache = { | 42246 | static struct kmem_cache cache_cache = { |
43248 | @@ -4428,15 +4428,60 @@ static const struct file_operations proc | 42247 | @@ -4486,15 +4486,64 @@ static const struct file_operations proc |
43249 | 42248 | ||
43250 | static int __init slab_proc_init(void) | 42249 | static int __init slab_proc_init(void) |
43251 | { | 42250 | { |
@@ -43281,8 +42280,12 @@ diff -urNp linux-2.6.29.6/mm/slab.c linux-2.6.29.6/mm/slab.c | |||
43281 | + | 42280 | + |
43282 | + page = virt_to_head_page(ptr); | 42281 | + page = virt_to_head_page(ptr); |
43283 | + | 42282 | + |
43284 | + if (!PageSlab(page)) | 42283 | + /* XXX: can get a little tighter with this stack check */ |
43285 | + /* TODO: check for stack based ptr */ | 42284 | + if (!PageSlab(page) && object_is_on_stack(ptr) && |
42285 | + (n > ((unsigned long)task_stack_page(current) + THREAD_SIZE - | ||
42286 | + (unsigned long)ptr))) | ||
42287 | + goto report; | ||
42288 | + else | ||
43286 | + return; | 42289 | + return; |
43287 | + | 42290 | + |
43288 | + cachep = page_get_cache(page); | 42291 | + cachep = page_get_cache(page); |
@@ -43306,9 +42309,9 @@ diff -urNp linux-2.6.29.6/mm/slab.c linux-2.6.29.6/mm/slab.c | |||
43306 | /** | 42309 | /** |
43307 | * ksize - get the actual amount of memory allocated for a given object | 42310 | * ksize - get the actual amount of memory allocated for a given object |
43308 | * @objp: Pointer to the object | 42311 | * @objp: Pointer to the object |
43309 | diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | 42312 | diff -urNp linux-2.6.30.4/mm/slob.c linux-2.6.30.4/mm/slob.c |
43310 | --- linux-2.6.29.6/mm/slob.c 2009-07-02 19:41:20.000000000 -0400 | 42313 | --- linux-2.6.30.4/mm/slob.c 2009-07-30 20:32:40.560667928 -0400 |
43311 | +++ linux-2.6.29.6/mm/slob.c 2009-07-23 17:34:32.232713662 -0400 | 42314 | +++ linux-2.6.30.4/mm/slob.c 2009-07-30 20:32:48.100694054 -0400 |
43312 | @@ -29,7 +29,7 @@ | 42315 | @@ -29,7 +29,7 @@ |
43313 | * If kmalloc is asked for objects of PAGE_SIZE or larger, it calls | 42316 | * If kmalloc is asked for objects of PAGE_SIZE or larger, it calls |
43314 | * alloc_pages() directly, allocating compound pages so the page order | 42317 | * alloc_pages() directly, allocating compound pages so the page order |
@@ -43325,8 +42328,8 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | |||
43325 | +#include <linux/sched.h> | 42328 | +#include <linux/sched.h> |
43326 | #include <linux/slab.h> | 42329 | #include <linux/slab.h> |
43327 | #include <linux/mm.h> | 42330 | #include <linux/mm.h> |
43328 | #include <linux/cache.h> | 42331 | #include <linux/swap.h> /* struct reclaim_state */ |
43329 | @@ -97,7 +98,8 @@ struct slob_page { | 42332 | @@ -99,7 +100,8 @@ struct slob_page { |
43330 | unsigned long flags; /* mandatory */ | 42333 | unsigned long flags; /* mandatory */ |
43331 | atomic_t _count; /* mandatory */ | 42334 | atomic_t _count; /* mandatory */ |
43332 | slobidx_t units; /* free units left in page */ | 42335 | slobidx_t units; /* free units left in page */ |
@@ -43336,16 +42339,16 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | |||
43336 | slob_t *free; /* first free slob_t in page */ | 42339 | slob_t *free; /* first free slob_t in page */ |
43337 | struct list_head list; /* linked list of free pages */ | 42340 | struct list_head list; /* linked list of free pages */ |
43338 | }; | 42341 | }; |
43339 | @@ -130,7 +132,7 @@ static LIST_HEAD(free_slob_large); | 42342 | @@ -132,7 +134,7 @@ static LIST_HEAD(free_slob_large); |
43340 | */ | 42343 | */ |
43341 | static inline int slob_page(struct slob_page *sp) | 42344 | static inline int is_slob_page(struct slob_page *sp) |
43342 | { | 42345 | { |
43343 | - return PageSlobPage((struct page *)sp); | 42346 | - return PageSlobPage((struct page *)sp); |
43344 | + return PageSlobPage((struct page *)sp) && !sp->size; | 42347 | + return PageSlobPage((struct page *)sp) && !sp->size; |
43345 | } | 42348 | } |
43346 | 42349 | ||
43347 | static inline void set_slob_page(struct slob_page *sp) | 42350 | static inline void set_slob_page(struct slob_page *sp) |
43348 | @@ -200,7 +202,7 @@ static void set_slob(slob_t *s, slobidx_ | 42351 | @@ -207,7 +209,7 @@ static void set_slob(slob_t *s, slobidx_ |
43349 | /* | 42352 | /* |
43350 | * Return the size of a slob block. | 42353 | * Return the size of a slob block. |
43351 | */ | 42354 | */ |
@@ -43354,7 +42357,7 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | |||
43354 | { | 42357 | { |
43355 | if (s->units > 0) | 42358 | if (s->units > 0) |
43356 | return s->units; | 42359 | return s->units; |
43357 | @@ -210,7 +212,7 @@ static slobidx_t slob_units(slob_t *s) | 42360 | @@ -217,7 +219,7 @@ static slobidx_t slob_units(slob_t *s) |
43358 | /* | 42361 | /* |
43359 | * Return the next free slob block pointer after this one. | 42362 | * Return the next free slob block pointer after this one. |
43360 | */ | 42363 | */ |
@@ -43363,7 +42366,7 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | |||
43363 | { | 42366 | { |
43364 | slob_t *base = (slob_t *)((unsigned long)s & PAGE_MASK); | 42367 | slob_t *base = (slob_t *)((unsigned long)s & PAGE_MASK); |
43365 | slobidx_t next; | 42368 | slobidx_t next; |
43366 | @@ -225,7 +227,7 @@ static slob_t *slob_next(slob_t *s) | 42369 | @@ -232,7 +234,7 @@ static slob_t *slob_next(slob_t *s) |
43367 | /* | 42370 | /* |
43368 | * Returns true if s is the last free block in its page. | 42371 | * Returns true if s is the last free block in its page. |
43369 | */ | 42372 | */ |
@@ -43372,7 +42375,7 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | |||
43372 | { | 42375 | { |
43373 | return !((unsigned long)slob_next(s) & ~PAGE_MASK); | 42376 | return !((unsigned long)slob_next(s) & ~PAGE_MASK); |
43374 | } | 42377 | } |
43375 | @@ -244,6 +246,7 @@ static void *slob_new_page(gfp_t gfp, in | 42378 | @@ -251,6 +253,7 @@ static void *slob_new_pages(gfp_t gfp, i |
43376 | if (!page) | 42379 | if (!page) |
43377 | return NULL; | 42380 | return NULL; |
43378 | 42381 | ||
@@ -43380,10 +42383,10 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | |||
43380 | return page_address(page); | 42383 | return page_address(page); |
43381 | } | 42384 | } |
43382 | 42385 | ||
43383 | @@ -353,11 +356,11 @@ static void *slob_alloc(size_t size, gfp | 42386 | @@ -367,11 +370,11 @@ static void *slob_alloc(size_t size, gfp |
43384 | if (!b) | 42387 | if (!b) |
43385 | return 0; | 42388 | return NULL; |
43386 | sp = (struct slob_page *)virt_to_page(b); | 42389 | sp = slob_page(b); |
43387 | - set_slob_page(sp); | 42390 | - set_slob_page(sp); |
43388 | 42391 | ||
43389 | spin_lock_irqsave(&slob_lock, flags); | 42392 | spin_lock_irqsave(&slob_lock, flags); |
@@ -43393,7 +42396,7 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | |||
43393 | INIT_LIST_HEAD(&sp->list); | 42396 | INIT_LIST_HEAD(&sp->list); |
43394 | set_slob(b, SLOB_UNITS(PAGE_SIZE), b + SLOB_UNITS(PAGE_SIZE)); | 42397 | set_slob(b, SLOB_UNITS(PAGE_SIZE), b + SLOB_UNITS(PAGE_SIZE)); |
43395 | set_slob_page_free(sp, slob_list); | 42398 | set_slob_page_free(sp, slob_list); |
43396 | @@ -459,10 +462,9 @@ out: | 42399 | @@ -474,10 +477,9 @@ out: |
43397 | #define ARCH_SLAB_MINALIGN __alignof__(unsigned long) | 42400 | #define ARCH_SLAB_MINALIGN __alignof__(unsigned long) |
43398 | #endif | 42401 | #endif |
43399 | 42402 | ||
@@ -43403,11 +42406,11 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | |||
43403 | - unsigned int *m; | 42406 | - unsigned int *m; |
43404 | - int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN); | 42407 | - int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN); |
43405 | + slob_t *m; | 42408 | + slob_t *m; |
42409 | void *ret; | ||
42410 | |||
42411 | lockdep_trace_alloc(gfp); | ||
42412 | @@ -490,7 +492,10 @@ void *__kmalloc_node(size_t size, gfp_t | ||
43406 | 42413 | ||
43407 | if (size < PAGE_SIZE - align) { | ||
43408 | if (!size) | ||
43409 | @@ -471,20 +473,30 @@ void *__kmalloc_node(size_t size, gfp_t | ||
43410 | m = slob_alloc(size + align, gfp, align, node); | ||
43411 | if (!m) | 42414 | if (!m) |
43412 | return NULL; | 42415 | return NULL; |
43413 | - *m = size; | 42416 | - *m = size; |
@@ -43415,11 +42418,12 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | |||
43415 | + BUILD_BUG_ON(ARCH_SLAB_MINALIGN < 2 * SLOB_UNIT); | 42418 | + BUILD_BUG_ON(ARCH_SLAB_MINALIGN < 2 * SLOB_UNIT); |
43416 | + m[0].units = size; | 42419 | + m[0].units = size; |
43417 | + m[1].units = align; | 42420 | + m[1].units = align; |
43418 | return (void *)m + align; | 42421 | ret = (void *)m + align; |
43419 | } else { | ||
43420 | void *ret; | ||
43421 | 42422 | ||
43422 | ret = slob_new_page(gfp | __GFP_COMP, get_order(size), node); | 42423 | trace_kmalloc_node(_RET_IP_, ret, |
42424 | @@ -500,9 +505,9 @@ void *__kmalloc_node(size_t size, gfp_t | ||
42425 | |||
42426 | ret = slob_new_pages(gfp | __GFP_COMP, get_order(size), node); | ||
43423 | if (ret) { | 42427 | if (ret) { |
43424 | - struct page *page; | 42428 | - struct page *page; |
43425 | - page = virt_to_page(ret); | 42429 | - page = virt_to_page(ret); |
@@ -43428,8 +42432,11 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | |||
43428 | + sp = (struct slob_page *)virt_to_head_page(ret); | 42432 | + sp = (struct slob_page *)virt_to_head_page(ret); |
43429 | + sp->size = size; | 42433 | + sp->size = size; |
43430 | } | 42434 | } |
43431 | return ret; | 42435 | |
43432 | } | 42436 | trace_kmalloc_node(_RET_IP_, ret, |
42437 | @@ -511,6 +516,13 @@ void *__kmalloc_node(size_t size, gfp_t | ||
42438 | |||
42439 | return ret; | ||
43433 | } | 42440 | } |
43434 | + | 42441 | + |
43435 | +void *__kmalloc_node(size_t size, gfp_t gfp, int node) | 42442 | +void *__kmalloc_node(size_t size, gfp_t gfp, int node) |
@@ -43441,9 +42448,9 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | |||
43441 | EXPORT_SYMBOL(__kmalloc_node); | 42448 | EXPORT_SYMBOL(__kmalloc_node); |
43442 | 42449 | ||
43443 | void kfree(const void *block) | 42450 | void kfree(const void *block) |
43444 | @@ -497,13 +509,81 @@ void kfree(const void *block) | 42451 | @@ -525,13 +537,86 @@ void kfree(const void *block) |
43445 | sp = (struct slob_page *)virt_to_page(block); | 42452 | sp = slob_page(block); |
43446 | if (slob_page(sp)) { | 42453 | if (is_slob_page(sp)) { |
43447 | int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN); | 42454 | int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN); |
43448 | - unsigned int *m = (unsigned int *)(block - align); | 42455 | - unsigned int *m = (unsigned int *)(block - align); |
43449 | - slob_free(m, *m + align); | 42456 | - slob_free(m, *m + align); |
@@ -43477,7 +42484,12 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | |||
43477 | + return; | 42484 | + return; |
43478 | + | 42485 | + |
43479 | + sp = (struct slob_page *)virt_to_head_page(ptr); | 42486 | + sp = (struct slob_page *)virt_to_head_page(ptr); |
43480 | + if (!PageSlobPage((struct page*)sp)) | 42487 | + /* XXX: can get a little tighter with this stack check */ |
42488 | + if (!PageSlobPage((struct page*)sp) && object_is_on_stack(ptr) && | ||
42489 | + (n > ((unsigned long)task_stack_page(current) + THREAD_SIZE - | ||
42490 | + (unsigned long)ptr))) | ||
42491 | + goto report; | ||
42492 | + else | ||
43481 | + return; | 42493 | + return; |
43482 | + | 42494 | + |
43483 | + if (sp->size) { | 42495 | + if (sp->size) { |
@@ -43526,9 +42538,9 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | |||
43526 | /* can't use ksize for kmem_cache_alloc memory, only kmalloc */ | 42538 | /* can't use ksize for kmem_cache_alloc memory, only kmalloc */ |
43527 | size_t ksize(const void *block) | 42539 | size_t ksize(const void *block) |
43528 | { | 42540 | { |
43529 | @@ -516,10 +596,10 @@ size_t ksize(const void *block) | 42541 | @@ -544,10 +629,10 @@ size_t ksize(const void *block) |
43530 | sp = (struct slob_page *)virt_to_page(block); | 42542 | sp = slob_page(block); |
43531 | if (slob_page(sp)) { | 42543 | if (is_slob_page(sp)) { |
43532 | int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN); | 42544 | int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN); |
43533 | - unsigned int *m = (unsigned int *)(block - align); | 42545 | - unsigned int *m = (unsigned int *)(block - align); |
43534 | - return SLOB_UNITS(*m) * SLOB_UNIT; | 42546 | - return SLOB_UNITS(*m) * SLOB_UNIT; |
@@ -43540,28 +42552,33 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | |||
43540 | } | 42552 | } |
43541 | EXPORT_SYMBOL(ksize); | 42553 | EXPORT_SYMBOL(ksize); |
43542 | 42554 | ||
43543 | @@ -570,10 +650,19 @@ void *kmem_cache_alloc_node(struct kmem_ | 42555 | @@ -600,17 +685,25 @@ void *kmem_cache_alloc_node(struct kmem_ |
43544 | { | 42556 | { |
43545 | void *b; | 42557 | void *b; |
43546 | 42558 | ||
43547 | +#ifdef CONFIG_PAX_USERCOPY | 42559 | +#ifdef CONFIG_PAX_USERCOPY |
43548 | + b = __kmalloc_node_align(c->size, flags, node, c->align); | 42560 | + b = __kmalloc_node_align(c->size, flags, node, c->align); |
43549 | +#else | 42561 | +#else |
43550 | if (c->size < PAGE_SIZE) | 42562 | if (c->size < PAGE_SIZE) { |
43551 | b = slob_alloc(c->size, flags, c->align, node); | 42563 | b = slob_alloc(c->size, flags, c->align, node); |
43552 | - else | 42564 | trace_kmem_cache_alloc_node(_RET_IP_, b, c->size, |
43553 | + else { | 42565 | SLOB_UNITS(c->size) * SLOB_UNIT, |
42566 | flags, node); | ||
42567 | } else { | ||
43554 | + struct slob_page *sp; | 42568 | + struct slob_page *sp; |
43555 | + | 42569 | + |
43556 | b = slob_new_page(flags, get_order(c->size), node); | 42570 | b = slob_new_pages(flags, get_order(c->size), node); |
43557 | + sp = (struct slob_page *)virt_to_head_page(b); | 42571 | + sp = (struct slob_page *)virt_to_head_page(b); |
43558 | + sp->size = c->size; | 42572 | + sp->size = c->size; |
43559 | + } | 42573 | trace_kmem_cache_alloc_node(_RET_IP_, b, c->size, |
42574 | PAGE_SIZE << get_order(c->size), | ||
42575 | flags, node); | ||
42576 | } | ||
43560 | +#endif | 42577 | +#endif |
43561 | 42578 | ||
43562 | if (c->ctor) | 42579 | if (c->ctor) |
43563 | c->ctor(b); | 42580 | c->ctor(b); |
43564 | @@ -584,10 +673,16 @@ EXPORT_SYMBOL(kmem_cache_alloc_node); | 42581 | @@ -621,10 +714,16 @@ EXPORT_SYMBOL(kmem_cache_alloc_node); |
43565 | 42582 | ||
43566 | static void __kmem_cache_free(void *b, int size) | 42583 | static void __kmem_cache_free(void *b, int size) |
43567 | { | 42584 | { |
@@ -43575,12 +42592,12 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | |||
43575 | + clear_slob_page(sp); | 42592 | + clear_slob_page(sp); |
43576 | + free_slob_page(sp); | 42593 | + free_slob_page(sp); |
43577 | + sp->size = 0; | 42594 | + sp->size = 0; |
43578 | free_pages((unsigned long)b, get_order(size)); | 42595 | slob_free_pages(b, get_order(size)); |
43579 | + } | 42596 | + } |
43580 | } | 42597 | } |
43581 | 42598 | ||
43582 | static void kmem_rcu_free(struct rcu_head *head) | 42599 | static void kmem_rcu_free(struct rcu_head *head) |
43583 | @@ -600,14 +695,23 @@ static void kmem_rcu_free(struct rcu_hea | 42600 | @@ -637,14 +736,23 @@ static void kmem_rcu_free(struct rcu_hea |
43584 | 42601 | ||
43585 | void kmem_cache_free(struct kmem_cache *c, void *b) | 42602 | void kmem_cache_free(struct kmem_cache *c, void *b) |
43586 | { | 42603 | { |
@@ -43605,12 +42622,12 @@ diff -urNp linux-2.6.29.6/mm/slob.c linux-2.6.29.6/mm/slob.c | |||
43605 | - __kmem_cache_free(b, c->size); | 42622 | - __kmem_cache_free(b, c->size); |
43606 | + __kmem_cache_free(b, size); | 42623 | + __kmem_cache_free(b, size); |
43607 | } | 42624 | } |
43608 | } | 42625 | |
43609 | EXPORT_SYMBOL(kmem_cache_free); | 42626 | trace_kmem_cache_free(_RET_IP_, b); |
43610 | diff -urNp linux-2.6.29.6/mm/slub.c linux-2.6.29.6/mm/slub.c | 42627 | diff -urNp linux-2.6.30.4/mm/slub.c linux-2.6.30.4/mm/slub.c |
43611 | --- linux-2.6.29.6/mm/slub.c 2009-07-02 19:41:20.000000000 -0400 | 42628 | --- linux-2.6.30.4/mm/slub.c 2009-07-30 20:32:40.563597140 -0400 |
43612 | +++ linux-2.6.29.6/mm/slub.c 2009-07-23 17:34:32.232713662 -0400 | 42629 | +++ linux-2.6.30.4/mm/slub.c 2009-07-30 20:32:48.102657318 -0400 |
43613 | @@ -1786,7 +1786,7 @@ static int slub_min_objects; | 42630 | @@ -1811,7 +1811,7 @@ static int slub_min_objects; |
43614 | * Merge control. If this is set then no merging of slab caches will occur. | 42631 | * Merge control. If this is set then no merging of slab caches will occur. |
43615 | * (Could be removed. This was introduced to pacify the merge skeptics.) | 42632 | * (Could be removed. This was introduced to pacify the merge skeptics.) |
43616 | */ | 42633 | */ |
@@ -43619,18 +42636,18 @@ diff -urNp linux-2.6.29.6/mm/slub.c linux-2.6.29.6/mm/slub.c | |||
43619 | 42636 | ||
43620 | /* | 42637 | /* |
43621 | * Calculate the order of allocation given an slab object size. | 42638 | * Calculate the order of allocation given an slab object size. |
43622 | @@ -2322,7 +2322,7 @@ static int kmem_cache_open(struct kmem_c | 42639 | @@ -2354,7 +2354,7 @@ static int kmem_cache_open(struct kmem_c |
43623 | if (!calculate_sizes(s, -1)) | 42640 | * list to avoid pounding the page allocator excessively. |
43624 | goto error; | 42641 | */ |
43625 | 42642 | set_min_partial(s, ilog2(s->size)); | |
43626 | - s->refcount = 1; | 42643 | - s->refcount = 1; |
43627 | + atomic_set(&s->refcount, 1); | 42644 | + atomic_set(&s->refcount, 1); |
43628 | #ifdef CONFIG_NUMA | 42645 | #ifdef CONFIG_NUMA |
43629 | s->remote_node_defrag_ratio = 1000; | 42646 | s->remote_node_defrag_ratio = 1000; |
43630 | #endif | 42647 | #endif |
43631 | @@ -2459,8 +2459,7 @@ static inline int kmem_cache_close(struc | 42648 | @@ -2493,8 +2493,7 @@ void kmem_cache_destroy(struct kmem_cach |
43632 | void kmem_cache_destroy(struct kmem_cache *s) | 42649 | if (s->flags & SLAB_DESTROY_BY_RCU) |
43633 | { | 42650 | rcu_barrier(); |
43634 | down_write(&slub_lock); | 42651 | down_write(&slub_lock); |
43635 | - s->refcount--; | 42652 | - s->refcount--; |
43636 | - if (!s->refcount) { | 42653 | - if (!s->refcount) { |
@@ -43638,7 +42655,7 @@ diff -urNp linux-2.6.29.6/mm/slub.c linux-2.6.29.6/mm/slub.c | |||
43638 | list_del(&s->list); | 42655 | list_del(&s->list); |
43639 | up_write(&slub_lock); | 42656 | up_write(&slub_lock); |
43640 | if (kmem_cache_close(s)) { | 42657 | if (kmem_cache_close(s)) { |
43641 | @@ -2702,6 +2701,44 @@ void *__kmalloc_node(size_t size, gfp_t | 42658 | @@ -2754,6 +2753,48 @@ void *__kmalloc_node(size_t size, gfp_t |
43642 | EXPORT_SYMBOL(__kmalloc_node); | 42659 | EXPORT_SYMBOL(__kmalloc_node); |
43643 | #endif | 42660 | #endif |
43644 | 42661 | ||
@@ -43661,8 +42678,12 @@ diff -urNp linux-2.6.29.6/mm/slub.c linux-2.6.29.6/mm/slub.c | |||
43661 | + | 42678 | + |
43662 | + page = get_object_page(ptr); | 42679 | + page = get_object_page(ptr); |
43663 | + | 42680 | + |
43664 | + if (!page) | 42681 | + /* XXX: can get a little tighter with this stack check */ |
43665 | + /* TODO: check for stack based ptr */ | 42682 | + if (!page && object_is_on_stack(ptr) && |
42683 | + (n > ((unsigned long)task_stack_page(current) + THREAD_SIZE - | ||
42684 | + (unsigned long)ptr))) | ||
42685 | + goto report; | ||
42686 | + else | ||
43666 | + return; | 42687 | + return; |
43667 | + | 42688 | + |
43668 | + s = page->slab; | 42689 | + s = page->slab; |
@@ -43683,7 +42704,7 @@ diff -urNp linux-2.6.29.6/mm/slub.c linux-2.6.29.6/mm/slub.c | |||
43683 | size_t ksize(const void *object) | 42704 | size_t ksize(const void *object) |
43684 | { | 42705 | { |
43685 | struct page *page; | 42706 | struct page *page; |
43686 | @@ -2970,7 +3007,7 @@ void __init kmem_cache_init(void) | 42707 | @@ -3024,7 +3065,7 @@ void __init kmem_cache_init(void) |
43687 | */ | 42708 | */ |
43688 | create_kmalloc_cache(&kmalloc_caches[0], "kmem_cache_node", | 42709 | create_kmalloc_cache(&kmalloc_caches[0], "kmem_cache_node", |
43689 | sizeof(struct kmem_cache_node), GFP_KERNEL); | 42710 | sizeof(struct kmem_cache_node), GFP_KERNEL); |
@@ -43692,7 +42713,7 @@ diff -urNp linux-2.6.29.6/mm/slub.c linux-2.6.29.6/mm/slub.c | |||
43692 | caches++; | 42713 | caches++; |
43693 | 42714 | ||
43694 | hotplug_memory_notifier(slab_memory_callback, SLAB_CALLBACK_PRI); | 42715 | hotplug_memory_notifier(slab_memory_callback, SLAB_CALLBACK_PRI); |
43695 | @@ -3060,7 +3097,7 @@ static int slab_unmergeable(struct kmem_ | 42716 | @@ -3114,7 +3155,7 @@ static int slab_unmergeable(struct kmem_ |
43696 | /* | 42717 | /* |
43697 | * We may have set a slab to be unmergeable during bootstrap. | 42718 | * We may have set a slab to be unmergeable during bootstrap. |
43698 | */ | 42719 | */ |
@@ -43701,7 +42722,7 @@ diff -urNp linux-2.6.29.6/mm/slub.c linux-2.6.29.6/mm/slub.c | |||
43701 | return 1; | 42722 | return 1; |
43702 | 42723 | ||
43703 | return 0; | 42724 | return 0; |
43704 | @@ -3117,7 +3154,7 @@ struct kmem_cache *kmem_cache_create(con | 42725 | @@ -3171,7 +3212,7 @@ struct kmem_cache *kmem_cache_create(con |
43705 | if (s) { | 42726 | if (s) { |
43706 | int cpu; | 42727 | int cpu; |
43707 | 42728 | ||
@@ -43710,7 +42731,7 @@ diff -urNp linux-2.6.29.6/mm/slub.c linux-2.6.29.6/mm/slub.c | |||
43710 | /* | 42731 | /* |
43711 | * Adjust the object sizes so that we clear | 42732 | * Adjust the object sizes so that we clear |
43712 | * the complete object on kzalloc. | 42733 | * the complete object on kzalloc. |
43713 | @@ -3136,7 +3173,7 @@ struct kmem_cache *kmem_cache_create(con | 42734 | @@ -3190,7 +3231,7 @@ struct kmem_cache *kmem_cache_create(con |
43714 | 42735 | ||
43715 | if (sysfs_slab_alias(s, name)) { | 42736 | if (sysfs_slab_alias(s, name)) { |
43716 | down_write(&slub_lock); | 42737 | down_write(&slub_lock); |
@@ -43719,7 +42740,7 @@ diff -urNp linux-2.6.29.6/mm/slub.c linux-2.6.29.6/mm/slub.c | |||
43719 | up_write(&slub_lock); | 42740 | up_write(&slub_lock); |
43720 | goto err; | 42741 | goto err; |
43721 | } | 42742 | } |
43722 | @@ -3852,7 +3889,7 @@ SLAB_ATTR_RO(ctor); | 42743 | @@ -3938,7 +3979,7 @@ SLAB_ATTR_RO(ctor); |
43723 | 42744 | ||
43724 | static ssize_t aliases_show(struct kmem_cache *s, char *buf) | 42745 | static ssize_t aliases_show(struct kmem_cache *s, char *buf) |
43725 | { | 42746 | { |
@@ -43728,7 +42749,7 @@ diff -urNp linux-2.6.29.6/mm/slub.c linux-2.6.29.6/mm/slub.c | |||
43728 | } | 42749 | } |
43729 | SLAB_ATTR_RO(aliases); | 42750 | SLAB_ATTR_RO(aliases); |
43730 | 42751 | ||
43731 | @@ -4530,7 +4567,9 @@ static const struct file_operations proc | 42752 | @@ -4617,7 +4658,9 @@ static const struct file_operations proc |
43732 | 42753 | ||
43733 | static int __init slab_proc_init(void) | 42754 | static int __init slab_proc_init(void) |
43734 | { | 42755 | { |
@@ -43738,10 +42759,10 @@ diff -urNp linux-2.6.29.6/mm/slub.c linux-2.6.29.6/mm/slub.c | |||
43738 | return 0; | 42759 | return 0; |
43739 | } | 42760 | } |
43740 | module_init(slab_proc_init); | 42761 | module_init(slab_proc_init); |
43741 | diff -urNp linux-2.6.29.6/mm/util.c linux-2.6.29.6/mm/util.c | 42762 | diff -urNp linux-2.6.30.4/mm/util.c linux-2.6.30.4/mm/util.c |
43742 | --- linux-2.6.29.6/mm/util.c 2009-07-02 19:41:20.000000000 -0400 | 42763 | --- linux-2.6.30.4/mm/util.c 2009-07-24 17:47:51.000000000 -0400 |
43743 | +++ linux-2.6.29.6/mm/util.c 2009-07-23 17:34:32.233880520 -0400 | 42764 | +++ linux-2.6.30.4/mm/util.c 2009-07-30 09:48:10.152770641 -0400 |
43744 | @@ -187,6 +187,12 @@ EXPORT_SYMBOL(strndup_user); | 42765 | @@ -218,6 +218,12 @@ EXPORT_SYMBOL(strndup_user); |
43745 | void arch_pick_mmap_layout(struct mm_struct *mm) | 42766 | void arch_pick_mmap_layout(struct mm_struct *mm) |
43746 | { | 42767 | { |
43747 | mm->mmap_base = TASK_UNMAPPED_BASE; | 42768 | mm->mmap_base = TASK_UNMAPPED_BASE; |
@@ -43754,10 +42775,10 @@ diff -urNp linux-2.6.29.6/mm/util.c linux-2.6.29.6/mm/util.c | |||
43754 | mm->get_unmapped_area = arch_get_unmapped_area; | 42775 | mm->get_unmapped_area = arch_get_unmapped_area; |
43755 | mm->unmap_area = arch_unmap_area; | 42776 | mm->unmap_area = arch_unmap_area; |
43756 | } | 42777 | } |
43757 | diff -urNp linux-2.6.29.6/mm/vmalloc.c linux-2.6.29.6/mm/vmalloc.c | 42778 | diff -urNp linux-2.6.30.4/mm/vmalloc.c linux-2.6.30.4/mm/vmalloc.c |
43758 | --- linux-2.6.29.6/mm/vmalloc.c 2009-07-02 19:41:20.000000000 -0400 | 42779 | --- linux-2.6.30.4/mm/vmalloc.c 2009-07-24 17:47:51.000000000 -0400 |
43759 | +++ linux-2.6.29.6/mm/vmalloc.c 2009-07-23 17:34:32.233880520 -0400 | 42780 | +++ linux-2.6.30.4/mm/vmalloc.c 2009-07-30 09:48:10.153729053 -0400 |
43760 | @@ -90,6 +90,11 @@ static int vmap_pte_range(pmd_t *pmd, un | 42781 | @@ -91,6 +91,11 @@ static int vmap_pte_range(pmd_t *pmd, un |
43761 | unsigned long end, pgprot_t prot, struct page **pages, int *nr) | 42782 | unsigned long end, pgprot_t prot, struct page **pages, int *nr) |
43762 | { | 42783 | { |
43763 | pte_t *pte; | 42784 | pte_t *pte; |
@@ -43769,7 +42790,7 @@ diff -urNp linux-2.6.29.6/mm/vmalloc.c linux-2.6.29.6/mm/vmalloc.c | |||
43769 | 42790 | ||
43770 | /* | 42791 | /* |
43771 | * nr is a running index into the array which helps higher level | 42792 | * nr is a running index into the array which helps higher level |
43772 | @@ -99,17 +104,33 @@ static int vmap_pte_range(pmd_t *pmd, un | 42793 | @@ -100,17 +105,33 @@ static int vmap_pte_range(pmd_t *pmd, un |
43773 | pte = pte_alloc_kernel(pmd, addr); | 42794 | pte = pte_alloc_kernel(pmd, addr); |
43774 | if (!pte) | 42795 | if (!pte) |
43775 | return -ENOMEM; | 42796 | return -ENOMEM; |
@@ -43808,7 +42829,7 @@ diff -urNp linux-2.6.29.6/mm/vmalloc.c linux-2.6.29.6/mm/vmalloc.c | |||
43808 | } | 42829 | } |
43809 | 42830 | ||
43810 | static int vmap_pmd_range(pud_t *pud, unsigned long addr, | 42831 | static int vmap_pmd_range(pud_t *pud, unsigned long addr, |
43811 | @@ -1056,6 +1077,16 @@ static struct vm_struct *__get_vm_area_n | 42832 | @@ -1132,6 +1153,16 @@ static struct vm_struct *__get_vm_area_n |
43812 | unsigned long align = 1; | 42833 | unsigned long align = 1; |
43813 | 42834 | ||
43814 | BUG_ON(in_interrupt()); | 42835 | BUG_ON(in_interrupt()); |
@@ -43825,7 +42846,7 @@ diff -urNp linux-2.6.29.6/mm/vmalloc.c linux-2.6.29.6/mm/vmalloc.c | |||
43825 | if (flags & VM_IOREMAP) { | 42846 | if (flags & VM_IOREMAP) { |
43826 | int bit = fls(size); | 42847 | int bit = fls(size); |
43827 | 42848 | ||
43828 | @@ -1289,6 +1320,11 @@ void *vmap(struct page **pages, unsigned | 42849 | @@ -1368,6 +1399,11 @@ void *vmap(struct page **pages, unsigned |
43829 | if (count > num_physpages) | 42850 | if (count > num_physpages) |
43830 | return NULL; | 42851 | return NULL; |
43831 | 42852 | ||
@@ -43837,7 +42858,7 @@ diff -urNp linux-2.6.29.6/mm/vmalloc.c linux-2.6.29.6/mm/vmalloc.c | |||
43837 | area = get_vm_area_caller((count << PAGE_SHIFT), flags, | 42858 | area = get_vm_area_caller((count << PAGE_SHIFT), flags, |
43838 | __builtin_return_address(0)); | 42859 | __builtin_return_address(0)); |
43839 | if (!area) | 42860 | if (!area) |
43840 | @@ -1385,6 +1421,13 @@ static void *__vmalloc_node(unsigned lon | 42861 | @@ -1464,6 +1500,13 @@ static void *__vmalloc_node(unsigned lon |
43841 | if (!size || (size >> PAGE_SHIFT) > num_physpages) | 42862 | if (!size || (size >> PAGE_SHIFT) > num_physpages) |
43842 | return NULL; | 42863 | return NULL; |
43843 | 42864 | ||
@@ -43851,7 +42872,7 @@ diff -urNp linux-2.6.29.6/mm/vmalloc.c linux-2.6.29.6/mm/vmalloc.c | |||
43851 | area = __get_vm_area_node(size, VM_ALLOC, VMALLOC_START, VMALLOC_END, | 42872 | area = __get_vm_area_node(size, VM_ALLOC, VMALLOC_START, VMALLOC_END, |
43852 | node, gfp_mask, caller); | 42873 | node, gfp_mask, caller); |
43853 | 42874 | ||
43854 | @@ -1394,6 +1437,7 @@ static void *__vmalloc_node(unsigned lon | 42875 | @@ -1473,6 +1516,7 @@ static void *__vmalloc_node(unsigned lon |
43855 | return __vmalloc_area_node(area, gfp_mask, prot, node, caller); | 42876 | return __vmalloc_area_node(area, gfp_mask, prot, node, caller); |
43856 | } | 42877 | } |
43857 | 42878 | ||
@@ -43859,7 +42880,7 @@ diff -urNp linux-2.6.29.6/mm/vmalloc.c linux-2.6.29.6/mm/vmalloc.c | |||
43859 | void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot) | 42880 | void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot) |
43860 | { | 42881 | { |
43861 | return __vmalloc_node(size, gfp_mask, prot, -1, | 42882 | return __vmalloc_node(size, gfp_mask, prot, -1, |
43862 | @@ -1410,6 +1454,7 @@ EXPORT_SYMBOL(__vmalloc); | 42883 | @@ -1489,6 +1533,7 @@ EXPORT_SYMBOL(__vmalloc); |
43863 | * For tight control over page level allocator and protection flags | 42884 | * For tight control over page level allocator and protection flags |
43864 | * use __vmalloc() instead. | 42885 | * use __vmalloc() instead. |
43865 | */ | 42886 | */ |
@@ -43867,7 +42888,7 @@ diff -urNp linux-2.6.29.6/mm/vmalloc.c linux-2.6.29.6/mm/vmalloc.c | |||
43867 | void *vmalloc(unsigned long size) | 42888 | void *vmalloc(unsigned long size) |
43868 | { | 42889 | { |
43869 | return __vmalloc_node(size, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL, | 42890 | return __vmalloc_node(size, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL, |
43870 | @@ -1424,6 +1469,7 @@ EXPORT_SYMBOL(vmalloc); | 42891 | @@ -1503,6 +1548,7 @@ EXPORT_SYMBOL(vmalloc); |
43871 | * The resulting memory area is zeroed so it can be mapped to userspace | 42892 | * The resulting memory area is zeroed so it can be mapped to userspace |
43872 | * without leaking data. | 42893 | * without leaking data. |
43873 | */ | 42894 | */ |
@@ -43875,7 +42896,7 @@ diff -urNp linux-2.6.29.6/mm/vmalloc.c linux-2.6.29.6/mm/vmalloc.c | |||
43875 | void *vmalloc_user(unsigned long size) | 42896 | void *vmalloc_user(unsigned long size) |
43876 | { | 42897 | { |
43877 | struct vm_struct *area; | 42898 | struct vm_struct *area; |
43878 | @@ -1450,6 +1496,7 @@ EXPORT_SYMBOL(vmalloc_user); | 42899 | @@ -1529,6 +1575,7 @@ EXPORT_SYMBOL(vmalloc_user); |
43879 | * For tight control over page level allocator and protection flags | 42900 | * For tight control over page level allocator and protection flags |
43880 | * use __vmalloc() instead. | 42901 | * use __vmalloc() instead. |
43881 | */ | 42902 | */ |
@@ -43883,7 +42904,7 @@ diff -urNp linux-2.6.29.6/mm/vmalloc.c linux-2.6.29.6/mm/vmalloc.c | |||
43883 | void *vmalloc_node(unsigned long size, int node) | 42904 | void *vmalloc_node(unsigned long size, int node) |
43884 | { | 42905 | { |
43885 | return __vmalloc_node(size, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL, | 42906 | return __vmalloc_node(size, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL, |
43886 | @@ -1472,10 +1519,10 @@ EXPORT_SYMBOL(vmalloc_node); | 42907 | @@ -1551,10 +1598,10 @@ EXPORT_SYMBOL(vmalloc_node); |
43887 | * For tight control over page level allocator and protection flags | 42908 | * For tight control over page level allocator and protection flags |
43888 | * use __vmalloc() instead. | 42909 | * use __vmalloc() instead. |
43889 | */ | 42910 | */ |
@@ -43896,7 +42917,7 @@ diff -urNp linux-2.6.29.6/mm/vmalloc.c linux-2.6.29.6/mm/vmalloc.c | |||
43896 | -1, __builtin_return_address(0)); | 42917 | -1, __builtin_return_address(0)); |
43897 | } | 42918 | } |
43898 | 42919 | ||
43899 | @@ -1494,6 +1541,7 @@ void *vmalloc_exec(unsigned long size) | 42920 | @@ -1573,6 +1620,7 @@ void *vmalloc_exec(unsigned long size) |
43900 | * Allocate enough 32bit PA addressable pages to cover @size from the | 42921 | * Allocate enough 32bit PA addressable pages to cover @size from the |
43901 | * page level allocator and map them into contiguous kernel virtual space. | 42922 | * page level allocator and map them into contiguous kernel virtual space. |
43902 | */ | 42923 | */ |
@@ -43904,7 +42925,7 @@ diff -urNp linux-2.6.29.6/mm/vmalloc.c linux-2.6.29.6/mm/vmalloc.c | |||
43904 | void *vmalloc_32(unsigned long size) | 42925 | void *vmalloc_32(unsigned long size) |
43905 | { | 42926 | { |
43906 | return __vmalloc_node(size, GFP_VMALLOC32, PAGE_KERNEL, | 42927 | return __vmalloc_node(size, GFP_VMALLOC32, PAGE_KERNEL, |
43907 | @@ -1508,6 +1556,7 @@ EXPORT_SYMBOL(vmalloc_32); | 42928 | @@ -1587,6 +1635,7 @@ EXPORT_SYMBOL(vmalloc_32); |
43908 | * The resulting memory area is 32bit addressable and zeroed so it can be | 42929 | * The resulting memory area is 32bit addressable and zeroed so it can be |
43909 | * mapped to userspace without leaking data. | 42930 | * mapped to userspace without leaking data. |
43910 | */ | 42931 | */ |
@@ -43912,9 +42933,9 @@ diff -urNp linux-2.6.29.6/mm/vmalloc.c linux-2.6.29.6/mm/vmalloc.c | |||
43912 | void *vmalloc_32_user(unsigned long size) | 42933 | void *vmalloc_32_user(unsigned long size) |
43913 | { | 42934 | { |
43914 | struct vm_struct *area; | 42935 | struct vm_struct *area; |
43915 | diff -urNp linux-2.6.29.6/net/atm/atm_misc.c linux-2.6.29.6/net/atm/atm_misc.c | 42936 | diff -urNp linux-2.6.30.4/net/atm/atm_misc.c linux-2.6.30.4/net/atm/atm_misc.c |
43916 | --- linux-2.6.29.6/net/atm/atm_misc.c 2009-07-02 19:41:20.000000000 -0400 | 42937 | --- linux-2.6.30.4/net/atm/atm_misc.c 2009-07-24 17:47:51.000000000 -0400 |
43917 | +++ linux-2.6.29.6/net/atm/atm_misc.c 2009-07-23 17:34:37.460011249 -0400 | 42938 | +++ linux-2.6.30.4/net/atm/atm_misc.c 2009-07-30 09:48:10.153729053 -0400 |
43918 | @@ -19,7 +19,7 @@ int atm_charge(struct atm_vcc *vcc,int t | 42939 | @@ -19,7 +19,7 @@ int atm_charge(struct atm_vcc *vcc,int t |
43919 | if (atomic_read(&sk_atm(vcc)->sk_rmem_alloc) <= sk_atm(vcc)->sk_rcvbuf) | 42940 | if (atomic_read(&sk_atm(vcc)->sk_rmem_alloc) <= sk_atm(vcc)->sk_rcvbuf) |
43920 | return 1; | 42941 | return 1; |
@@ -43942,9 +42963,9 @@ diff -urNp linux-2.6.29.6/net/atm/atm_misc.c linux-2.6.29.6/net/atm/atm_misc.c | |||
43942 | __SONET_ITEMS | 42963 | __SONET_ITEMS |
43943 | #undef __HANDLE_ITEM | 42964 | #undef __HANDLE_ITEM |
43944 | } | 42965 | } |
43945 | diff -urNp linux-2.6.29.6/net/atm/resources.c linux-2.6.29.6/net/atm/resources.c | 42966 | diff -urNp linux-2.6.30.4/net/atm/resources.c linux-2.6.30.4/net/atm/resources.c |
43946 | --- linux-2.6.29.6/net/atm/resources.c 2009-07-02 19:41:20.000000000 -0400 | 42967 | --- linux-2.6.30.4/net/atm/resources.c 2009-07-24 17:47:51.000000000 -0400 |
43947 | +++ linux-2.6.29.6/net/atm/resources.c 2009-07-23 17:34:32.234796571 -0400 | 42968 | +++ linux-2.6.30.4/net/atm/resources.c 2009-07-30 09:48:10.153729053 -0400 |
43948 | @@ -170,7 +170,7 @@ static void copy_aal_stats(struct k_atm_ | 42969 | @@ -170,7 +170,7 @@ static void copy_aal_stats(struct k_atm_ |
43949 | static void subtract_aal_stats(struct k_atm_aal_stats *from, | 42970 | static void subtract_aal_stats(struct k_atm_aal_stats *from, |
43950 | struct atm_aal_stats *to) | 42971 | struct atm_aal_stats *to) |
@@ -43954,9 +42975,9 @@ diff -urNp linux-2.6.29.6/net/atm/resources.c linux-2.6.29.6/net/atm/resources.c | |||
43954 | __AAL_STAT_ITEMS | 42975 | __AAL_STAT_ITEMS |
43955 | #undef __HANDLE_ITEM | 42976 | #undef __HANDLE_ITEM |
43956 | } | 42977 | } |
43957 | diff -urNp linux-2.6.29.6/net/bridge/br_stp_if.c linux-2.6.29.6/net/bridge/br_stp_if.c | 42978 | diff -urNp linux-2.6.30.4/net/bridge/br_stp_if.c linux-2.6.30.4/net/bridge/br_stp_if.c |
43958 | --- linux-2.6.29.6/net/bridge/br_stp_if.c 2009-07-02 19:41:20.000000000 -0400 | 42979 | --- linux-2.6.30.4/net/bridge/br_stp_if.c 2009-07-24 17:47:51.000000000 -0400 |
43959 | +++ linux-2.6.29.6/net/bridge/br_stp_if.c 2009-07-23 17:34:32.234796571 -0400 | 42980 | +++ linux-2.6.30.4/net/bridge/br_stp_if.c 2009-07-30 09:48:10.153729053 -0400 |
43960 | @@ -146,7 +146,7 @@ static void br_stp_stop(struct net_bridg | 42981 | @@ -146,7 +146,7 @@ static void br_stp_stop(struct net_bridg |
43961 | char *envp[] = { NULL }; | 42982 | char *envp[] = { NULL }; |
43962 | 42983 | ||
@@ -43966,9 +42987,9 @@ diff -urNp linux-2.6.29.6/net/bridge/br_stp_if.c linux-2.6.29.6/net/bridge/br_st | |||
43966 | printk(KERN_INFO "%s: userspace STP stopped, return code %d\n", | 42987 | printk(KERN_INFO "%s: userspace STP stopped, return code %d\n", |
43967 | br->dev->name, r); | 42988 | br->dev->name, r); |
43968 | 42989 | ||
43969 | diff -urNp linux-2.6.29.6/net/core/flow.c linux-2.6.29.6/net/core/flow.c | 42990 | diff -urNp linux-2.6.30.4/net/core/flow.c linux-2.6.30.4/net/core/flow.c |
43970 | --- linux-2.6.29.6/net/core/flow.c 2009-07-02 19:41:20.000000000 -0400 | 42991 | --- linux-2.6.30.4/net/core/flow.c 2009-07-24 17:47:51.000000000 -0400 |
43971 | +++ linux-2.6.29.6/net/core/flow.c 2009-07-23 17:34:32.234796571 -0400 | 42992 | +++ linux-2.6.30.4/net/core/flow.c 2009-07-30 09:48:10.154837046 -0400 |
43972 | @@ -39,7 +39,7 @@ atomic_t flow_cache_genid = ATOMIC_INIT( | 42993 | @@ -39,7 +39,7 @@ atomic_t flow_cache_genid = ATOMIC_INIT( |
43973 | 42994 | ||
43974 | static u32 flow_hash_shift; | 42995 | static u32 flow_hash_shift; |
@@ -43996,9 +43017,9 @@ diff -urNp linux-2.6.29.6/net/core/flow.c linux-2.6.29.6/net/core/flow.c | |||
43996 | 43017 | ||
43997 | #define flow_flush_tasklet(cpu) (&per_cpu(flow_flush_tasklets, cpu)) | 43018 | #define flow_flush_tasklet(cpu) (&per_cpu(flow_flush_tasklets, cpu)) |
43998 | 43019 | ||
43999 | diff -urNp linux-2.6.29.6/net/dccp/ccids/ccid3.c linux-2.6.29.6/net/dccp/ccids/ccid3.c | 43020 | diff -urNp linux-2.6.30.4/net/dccp/ccids/ccid3.c linux-2.6.30.4/net/dccp/ccids/ccid3.c |
44000 | --- linux-2.6.29.6/net/dccp/ccids/ccid3.c 2009-07-02 19:41:20.000000000 -0400 | 43021 | --- linux-2.6.30.4/net/dccp/ccids/ccid3.c 2009-07-24 17:47:51.000000000 -0400 |
44001 | +++ linux-2.6.29.6/net/dccp/ccids/ccid3.c 2009-07-23 17:34:32.234796571 -0400 | 43022 | +++ linux-2.6.30.4/net/dccp/ccids/ccid3.c 2009-07-30 09:48:10.154837046 -0400 |
44002 | @@ -43,7 +43,7 @@ | 43023 | @@ -43,7 +43,7 @@ |
44003 | static int ccid3_debug; | 43024 | static int ccid3_debug; |
44004 | #define ccid3_pr_debug(format, a...) DCCP_PR_DEBUG(ccid3_debug, format, ##a) | 43025 | #define ccid3_pr_debug(format, a...) DCCP_PR_DEBUG(ccid3_debug, format, ##a) |
@@ -44008,34 +43029,25 @@ diff -urNp linux-2.6.29.6/net/dccp/ccids/ccid3.c linux-2.6.29.6/net/dccp/ccids/c | |||
44008 | #endif | 43029 | #endif |
44009 | 43030 | ||
44010 | /* | 43031 | /* |
44011 | diff -urNp linux-2.6.29.6/net/dccp/dccp.h linux-2.6.29.6/net/dccp/dccp.h | 43032 | diff -urNp linux-2.6.30.4/net/dccp/dccp.h linux-2.6.30.4/net/dccp/dccp.h |
44012 | --- linux-2.6.29.6/net/dccp/dccp.h 2009-07-02 19:41:20.000000000 -0400 | 43033 | --- linux-2.6.30.4/net/dccp/dccp.h 2009-07-24 17:47:51.000000000 -0400 |
44013 | +++ linux-2.6.29.6/net/dccp/dccp.h 2009-07-23 17:34:32.235712173 -0400 | 43034 | +++ linux-2.6.30.4/net/dccp/dccp.h 2009-07-30 09:48:10.154837046 -0400 |
44014 | @@ -43,8 +43,8 @@ extern int dccp_debug; | 43035 | @@ -44,9 +44,9 @@ extern int dccp_debug; |
44015 | #define dccp_pr_debug(format, a...) DCCP_PR_DEBUG(dccp_debug, format, ##a) | ||
44016 | #define dccp_pr_debug_cat(format, a...) DCCP_PRINTK(dccp_debug, format, ##a) | 43036 | #define dccp_pr_debug_cat(format, a...) DCCP_PRINTK(dccp_debug, format, ##a) |
43037 | #define dccp_debug(fmt, a...) dccp_pr_debug_cat(KERN_DEBUG fmt, ##a) | ||
44017 | #else | 43038 | #else |
44018 | -#define dccp_pr_debug(format, a...) | 43039 | -#define dccp_pr_debug(format, a...) |
44019 | -#define dccp_pr_debug_cat(format, a...) | 43040 | -#define dccp_pr_debug_cat(format, a...) |
43041 | -#define dccp_debug(format, a...) | ||
44020 | +#define dccp_pr_debug(format, a...) do {} while (0) | 43042 | +#define dccp_pr_debug(format, a...) do {} while (0) |
44021 | +#define dccp_pr_debug_cat(format, a...) do {} while (0) | 43043 | +#define dccp_pr_debug_cat(format, a...) do {} while (0) |
43044 | +#define dccp_debug(format, a...) do {} while (0) | ||
44022 | #endif | 43045 | #endif |
44023 | 43046 | ||
44024 | extern struct inet_hashinfo dccp_hashinfo; | 43047 | extern struct inet_hashinfo dccp_hashinfo; |
44025 | diff -urNp linux-2.6.29.6/net/ipv4/inet_connection_sock.c linux-2.6.29.6/net/ipv4/inet_connection_sock.c | 43048 | diff -urNp linux-2.6.30.4/net/ipv4/inet_hashtables.c linux-2.6.30.4/net/ipv4/inet_hashtables.c |
44026 | --- linux-2.6.29.6/net/ipv4/inet_connection_sock.c 2009-07-02 19:41:20.000000000 -0400 | 43049 | --- linux-2.6.30.4/net/ipv4/inet_hashtables.c 2009-07-24 17:47:51.000000000 -0400 |
44027 | +++ linux-2.6.29.6/net/ipv4/inet_connection_sock.c 2009-07-23 17:34:32.235712173 -0400 | 43050 | +++ linux-2.6.30.4/net/ipv4/inet_hashtables.c 2009-07-30 11:10:49.904544447 -0400 |
44028 | @@ -15,6 +15,7 @@ | ||
44029 | |||
44030 | #include <linux/module.h> | ||
44031 | #include <linux/jhash.h> | ||
44032 | +#include <linux/security.h> | ||
44033 | |||
44034 | #include <net/inet_connection_sock.h> | ||
44035 | #include <net/inet_hashtables.h> | ||
44036 | diff -urNp linux-2.6.29.6/net/ipv4/inet_hashtables.c linux-2.6.29.6/net/ipv4/inet_hashtables.c | ||
44037 | --- linux-2.6.29.6/net/ipv4/inet_hashtables.c 2009-07-02 19:41:20.000000000 -0400 | ||
44038 | +++ linux-2.6.29.6/net/ipv4/inet_hashtables.c 2009-07-23 17:34:32.235712173 -0400 | ||
44039 | @@ -18,11 +18,14 @@ | 43051 | @@ -18,11 +18,14 @@ |
44040 | #include <linux/sched.h> | 43052 | #include <linux/sched.h> |
44041 | #include <linux/slab.h> | 43053 | #include <linux/slab.h> |
@@ -44051,7 +43063,7 @@ diff -urNp linux-2.6.29.6/net/ipv4/inet_hashtables.c linux-2.6.29.6/net/ipv4/ine | |||
44051 | /* | 43063 | /* |
44052 | * Allocate and initialize a new local port bind bucket. | 43064 | * Allocate and initialize a new local port bind bucket. |
44053 | * The bindhash mutex for snum's hash chain must be held here. | 43065 | * The bindhash mutex for snum's hash chain must be held here. |
44054 | @@ -481,6 +484,8 @@ ok: | 43066 | @@ -490,6 +493,8 @@ ok: |
44055 | } | 43067 | } |
44056 | spin_unlock(&head->lock); | 43068 | spin_unlock(&head->lock); |
44057 | 43069 | ||
@@ -44060,9 +43072,9 @@ diff -urNp linux-2.6.29.6/net/ipv4/inet_hashtables.c linux-2.6.29.6/net/ipv4/ine | |||
44060 | if (tw) { | 43072 | if (tw) { |
44061 | inet_twsk_deschedule(tw, death_row); | 43073 | inet_twsk_deschedule(tw, death_row); |
44062 | inet_twsk_put(tw); | 43074 | inet_twsk_put(tw); |
44063 | diff -urNp linux-2.6.29.6/net/ipv4/netfilter/nf_nat_snmp_basic.c linux-2.6.29.6/net/ipv4/netfilter/nf_nat_snmp_basic.c | 43075 | diff -urNp linux-2.6.30.4/net/ipv4/netfilter/nf_nat_snmp_basic.c linux-2.6.30.4/net/ipv4/netfilter/nf_nat_snmp_basic.c |
44064 | --- linux-2.6.29.6/net/ipv4/netfilter/nf_nat_snmp_basic.c 2009-07-02 19:41:20.000000000 -0400 | 43076 | --- linux-2.6.30.4/net/ipv4/netfilter/nf_nat_snmp_basic.c 2009-07-24 17:47:51.000000000 -0400 |
44065 | +++ linux-2.6.29.6/net/ipv4/netfilter/nf_nat_snmp_basic.c 2009-07-23 17:34:32.235712173 -0400 | 43077 | +++ linux-2.6.30.4/net/ipv4/netfilter/nf_nat_snmp_basic.c 2009-07-30 09:48:10.155784268 -0400 |
44066 | @@ -397,7 +397,7 @@ static unsigned char asn1_octets_decode( | 43078 | @@ -397,7 +397,7 @@ static unsigned char asn1_octets_decode( |
44067 | 43079 | ||
44068 | *len = 0; | 43080 | *len = 0; |
@@ -44072,10 +43084,10 @@ diff -urNp linux-2.6.29.6/net/ipv4/netfilter/nf_nat_snmp_basic.c linux-2.6.29.6/ | |||
44072 | if (*octets == NULL) { | 43084 | if (*octets == NULL) { |
44073 | if (net_ratelimit()) | 43085 | if (net_ratelimit()) |
44074 | printk("OOM in bsalg (%d)\n", __LINE__); | 43086 | printk("OOM in bsalg (%d)\n", __LINE__); |
44075 | diff -urNp linux-2.6.29.6/net/ipv4/tcp_ipv4.c linux-2.6.29.6/net/ipv4/tcp_ipv4.c | 43087 | diff -urNp linux-2.6.30.4/net/ipv4/tcp_ipv4.c linux-2.6.30.4/net/ipv4/tcp_ipv4.c |
44076 | --- linux-2.6.29.6/net/ipv4/tcp_ipv4.c 2009-07-02 19:41:20.000000000 -0400 | 43088 | --- linux-2.6.30.4/net/ipv4/tcp_ipv4.c 2009-07-24 17:47:51.000000000 -0400 |
44077 | +++ linux-2.6.29.6/net/ipv4/tcp_ipv4.c 2009-07-23 17:34:32.236754222 -0400 | 43089 | +++ linux-2.6.30.4/net/ipv4/tcp_ipv4.c 2009-07-30 11:10:49.916766621 -0400 |
44078 | @@ -1512,6 +1512,9 @@ int tcp_v4_do_rcv(struct sock *sk, struc | 43090 | @@ -1503,6 +1503,9 @@ int tcp_v4_do_rcv(struct sock *sk, struc |
44079 | return 0; | 43091 | return 0; |
44080 | 43092 | ||
44081 | reset: | 43093 | reset: |
@@ -44085,7 +43097,7 @@ diff -urNp linux-2.6.29.6/net/ipv4/tcp_ipv4.c linux-2.6.29.6/net/ipv4/tcp_ipv4.c | |||
44085 | tcp_v4_send_reset(rsk, skb); | 43097 | tcp_v4_send_reset(rsk, skb); |
44086 | discard: | 43098 | discard: |
44087 | kfree_skb(skb); | 43099 | kfree_skb(skb); |
44088 | @@ -1620,6 +1623,9 @@ no_tcp_socket: | 43100 | @@ -1611,6 +1614,9 @@ no_tcp_socket: |
44089 | bad_packet: | 43101 | bad_packet: |
44090 | TCP_INC_STATS_BH(net, TCP_MIB_INERRS); | 43102 | TCP_INC_STATS_BH(net, TCP_MIB_INERRS); |
44091 | } else { | 43103 | } else { |
@@ -44095,10 +43107,10 @@ diff -urNp linux-2.6.29.6/net/ipv4/tcp_ipv4.c linux-2.6.29.6/net/ipv4/tcp_ipv4.c | |||
44095 | tcp_v4_send_reset(NULL, skb); | 43107 | tcp_v4_send_reset(NULL, skb); |
44096 | } | 43108 | } |
44097 | 43109 | ||
44098 | diff -urNp linux-2.6.29.6/net/ipv4/tcp_minisocks.c linux-2.6.29.6/net/ipv4/tcp_minisocks.c | 43110 | diff -urNp linux-2.6.30.4/net/ipv4/tcp_minisocks.c linux-2.6.30.4/net/ipv4/tcp_minisocks.c |
44099 | --- linux-2.6.29.6/net/ipv4/tcp_minisocks.c 2009-07-02 19:41:20.000000000 -0400 | 43111 | --- linux-2.6.30.4/net/ipv4/tcp_minisocks.c 2009-07-24 17:47:51.000000000 -0400 |
44100 | +++ linux-2.6.29.6/net/ipv4/tcp_minisocks.c 2009-07-23 17:34:32.236754222 -0400 | 43112 | +++ linux-2.6.30.4/net/ipv4/tcp_minisocks.c 2009-07-30 11:10:49.922670152 -0400 |
44101 | @@ -695,8 +695,11 @@ listen_overflow: | 43113 | @@ -694,8 +694,11 @@ listen_overflow: |
44102 | 43114 | ||
44103 | embryonic_reset: | 43115 | embryonic_reset: |
44104 | NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_EMBRYONICRSTS); | 43116 | NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_EMBRYONICRSTS); |
@@ -44110,9 +43122,9 @@ diff -urNp linux-2.6.29.6/net/ipv4/tcp_minisocks.c linux-2.6.29.6/net/ipv4/tcp_m | |||
44110 | 43122 | ||
44111 | inet_csk_reqsk_queue_drop(sk, req, prev); | 43123 | inet_csk_reqsk_queue_drop(sk, req, prev); |
44112 | return NULL; | 43124 | return NULL; |
44113 | diff -urNp linux-2.6.29.6/net/ipv4/udp.c linux-2.6.29.6/net/ipv4/udp.c | 43125 | diff -urNp linux-2.6.30.4/net/ipv4/udp.c linux-2.6.30.4/net/ipv4/udp.c |
44114 | --- linux-2.6.29.6/net/ipv4/udp.c 2009-07-02 19:41:20.000000000 -0400 | 43126 | --- linux-2.6.30.4/net/ipv4/udp.c 2009-07-24 17:47:51.000000000 -0400 |
44115 | +++ linux-2.6.29.6/net/ipv4/udp.c 2009-07-23 17:34:32.237793198 -0400 | 43127 | +++ linux-2.6.30.4/net/ipv4/udp.c 2009-07-30 11:10:49.923319110 -0400 |
44116 | @@ -86,6 +86,7 @@ | 43128 | @@ -86,6 +86,7 @@ |
44117 | #include <linux/types.h> | 43129 | #include <linux/types.h> |
44118 | #include <linux/fcntl.h> | 43130 | #include <linux/fcntl.h> |
@@ -44131,7 +43143,7 @@ diff -urNp linux-2.6.29.6/net/ipv4/udp.c linux-2.6.29.6/net/ipv4/udp.c | |||
44131 | /* | 43143 | /* |
44132 | * This routine is called by the ICMP module when it gets some | 43144 | * This routine is called by the ICMP module when it gets some |
44133 | * sort of error condition. If err < 0 then the socket should | 43145 | * sort of error condition. If err < 0 then the socket should |
44134 | @@ -630,9 +634,18 @@ int udp_sendmsg(struct kiocb *iocb, stru | 43146 | @@ -631,9 +635,18 @@ int udp_sendmsg(struct kiocb *iocb, stru |
44135 | dport = usin->sin_port; | 43147 | dport = usin->sin_port; |
44136 | if (dport == 0) | 43148 | if (dport == 0) |
44137 | return -EINVAL; | 43149 | return -EINVAL; |
@@ -44150,7 +43162,7 @@ diff -urNp linux-2.6.29.6/net/ipv4/udp.c linux-2.6.29.6/net/ipv4/udp.c | |||
44150 | daddr = inet->daddr; | 43162 | daddr = inet->daddr; |
44151 | dport = inet->dport; | 43163 | dport = inet->dport; |
44152 | /* Open fast path for connected socket. | 43164 | /* Open fast path for connected socket. |
44153 | @@ -898,6 +911,10 @@ try_again: | 43165 | @@ -902,6 +915,10 @@ try_again: |
44154 | if (!skb) | 43166 | if (!skb) |
44155 | goto out; | 43167 | goto out; |
44156 | 43168 | ||
@@ -44161,7 +43173,7 @@ diff -urNp linux-2.6.29.6/net/ipv4/udp.c linux-2.6.29.6/net/ipv4/udp.c | |||
44161 | ulen = skb->len - sizeof(struct udphdr); | 43173 | ulen = skb->len - sizeof(struct udphdr); |
44162 | copied = len; | 43174 | copied = len; |
44163 | if (copied > ulen) | 43175 | if (copied > ulen) |
44164 | @@ -1288,6 +1305,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, | 43176 | @@ -1292,6 +1309,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, |
44165 | goto csum_error; | 43177 | goto csum_error; |
44166 | 43178 | ||
44167 | UDP_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE); | 43179 | UDP_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE); |
@@ -44171,9 +43183,9 @@ diff -urNp linux-2.6.29.6/net/ipv4/udp.c linux-2.6.29.6/net/ipv4/udp.c | |||
44171 | icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0); | 43183 | icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0); |
44172 | 43184 | ||
44173 | /* | 43185 | /* |
44174 | diff -urNp linux-2.6.29.6/net/ipv6/exthdrs.c linux-2.6.29.6/net/ipv6/exthdrs.c | 43186 | diff -urNp linux-2.6.30.4/net/ipv6/exthdrs.c linux-2.6.30.4/net/ipv6/exthdrs.c |
44175 | --- linux-2.6.29.6/net/ipv6/exthdrs.c 2009-07-02 19:41:20.000000000 -0400 | 43187 | --- linux-2.6.30.4/net/ipv6/exthdrs.c 2009-07-24 17:47:51.000000000 -0400 |
44176 | +++ linux-2.6.29.6/net/ipv6/exthdrs.c 2009-07-23 17:34:32.237793198 -0400 | 43188 | +++ linux-2.6.30.4/net/ipv6/exthdrs.c 2009-07-30 09:48:10.155784268 -0400 |
44177 | @@ -630,7 +630,7 @@ static struct tlvtype_proc tlvprochopopt | 43189 | @@ -630,7 +630,7 @@ static struct tlvtype_proc tlvprochopopt |
44178 | .type = IPV6_TLV_JUMBO, | 43190 | .type = IPV6_TLV_JUMBO, |
44179 | .func = ipv6_hop_jumbo, | 43191 | .func = ipv6_hop_jumbo, |
@@ -44183,9 +43195,9 @@ diff -urNp linux-2.6.29.6/net/ipv6/exthdrs.c linux-2.6.29.6/net/ipv6/exthdrs.c | |||
44183 | }; | 43195 | }; |
44184 | 43196 | ||
44185 | int ipv6_parse_hopopts(struct sk_buff *skb) | 43197 | int ipv6_parse_hopopts(struct sk_buff *skb) |
44186 | diff -urNp linux-2.6.29.6/net/ipv6/ip6mr.c linux-2.6.29.6/net/ipv6/ip6mr.c | 43198 | diff -urNp linux-2.6.30.4/net/ipv6/ip6mr.c linux-2.6.30.4/net/ipv6/ip6mr.c |
44187 | --- linux-2.6.29.6/net/ipv6/ip6mr.c 2009-07-02 19:41:20.000000000 -0400 | 43199 | --- linux-2.6.30.4/net/ipv6/ip6mr.c 2009-07-24 17:47:51.000000000 -0400 |
44188 | +++ linux-2.6.29.6/net/ipv6/ip6mr.c 2009-07-23 18:40:28.745511060 -0400 | 43200 | +++ linux-2.6.30.4/net/ipv6/ip6mr.c 2009-07-30 09:48:10.156679415 -0400 |
44189 | @@ -204,7 +204,7 @@ static int ip6mr_vif_seq_show(struct seq | 43201 | @@ -204,7 +204,7 @@ static int ip6mr_vif_seq_show(struct seq |
44190 | return 0; | 43202 | return 0; |
44191 | } | 43203 | } |
@@ -44222,9 +43234,9 @@ diff -urNp linux-2.6.29.6/net/ipv6/ip6mr.c linux-2.6.29.6/net/ipv6/ip6mr.c | |||
44222 | .owner = THIS_MODULE, | 43234 | .owner = THIS_MODULE, |
44223 | .open = ipmr_mfc_open, | 43235 | .open = ipmr_mfc_open, |
44224 | .read = seq_read, | 43236 | .read = seq_read, |
44225 | diff -urNp linux-2.6.29.6/net/ipv6/raw.c linux-2.6.29.6/net/ipv6/raw.c | 43237 | diff -urNp linux-2.6.30.4/net/ipv6/raw.c linux-2.6.30.4/net/ipv6/raw.c |
44226 | --- linux-2.6.29.6/net/ipv6/raw.c 2009-07-02 19:41:20.000000000 -0400 | 43238 | --- linux-2.6.30.4/net/ipv6/raw.c 2009-07-24 17:47:51.000000000 -0400 |
44227 | +++ linux-2.6.29.6/net/ipv6/raw.c 2009-07-23 17:34:32.237793198 -0400 | 43239 | +++ linux-2.6.30.4/net/ipv6/raw.c 2009-07-30 09:48:10.156679415 -0400 |
44228 | @@ -600,7 +600,7 @@ out: | 43240 | @@ -600,7 +600,7 @@ out: |
44229 | return err; | 43241 | return err; |
44230 | } | 43242 | } |
@@ -44234,10 +43246,10 @@ diff -urNp linux-2.6.29.6/net/ipv6/raw.c linux-2.6.29.6/net/ipv6/raw.c | |||
44234 | struct flowi *fl, struct rt6_info *rt, | 43246 | struct flowi *fl, struct rt6_info *rt, |
44235 | unsigned int flags) | 43247 | unsigned int flags) |
44236 | { | 43248 | { |
44237 | diff -urNp linux-2.6.29.6/net/ipv6/tcp_ipv6.c linux-2.6.29.6/net/ipv6/tcp_ipv6.c | 43249 | diff -urNp linux-2.6.30.4/net/ipv6/tcp_ipv6.c linux-2.6.30.4/net/ipv6/tcp_ipv6.c |
44238 | --- linux-2.6.29.6/net/ipv6/tcp_ipv6.c 2009-07-02 19:41:20.000000000 -0400 | 43250 | --- linux-2.6.30.4/net/ipv6/tcp_ipv6.c 2009-07-24 17:47:51.000000000 -0400 |
44239 | +++ linux-2.6.29.6/net/ipv6/tcp_ipv6.c 2009-07-23 17:34:32.238737195 -0400 | 43251 | +++ linux-2.6.30.4/net/ipv6/tcp_ipv6.c 2009-07-30 11:10:49.952595469 -0400 |
44240 | @@ -1576,6 +1576,9 @@ static int tcp_v6_do_rcv(struct sock *sk | 43252 | @@ -1575,6 +1575,9 @@ static int tcp_v6_do_rcv(struct sock *sk |
44241 | return 0; | 43253 | return 0; |
44242 | 43254 | ||
44243 | reset: | 43255 | reset: |
@@ -44247,7 +43259,7 @@ diff -urNp linux-2.6.29.6/net/ipv6/tcp_ipv6.c linux-2.6.29.6/net/ipv6/tcp_ipv6.c | |||
44247 | tcp_v6_send_reset(sk, skb); | 43259 | tcp_v6_send_reset(sk, skb); |
44248 | discard: | 43260 | discard: |
44249 | if (opt_skb) | 43261 | if (opt_skb) |
44250 | @@ -1699,6 +1702,9 @@ no_tcp_socket: | 43262 | @@ -1697,6 +1700,9 @@ no_tcp_socket: |
44251 | bad_packet: | 43263 | bad_packet: |
44252 | TCP_INC_STATS_BH(net, TCP_MIB_INERRS); | 43264 | TCP_INC_STATS_BH(net, TCP_MIB_INERRS); |
44253 | } else { | 43265 | } else { |
@@ -44257,10 +43269,10 @@ diff -urNp linux-2.6.29.6/net/ipv6/tcp_ipv6.c linux-2.6.29.6/net/ipv6/tcp_ipv6.c | |||
44257 | tcp_v6_send_reset(NULL, skb); | 43269 | tcp_v6_send_reset(NULL, skb); |
44258 | } | 43270 | } |
44259 | 43271 | ||
44260 | diff -urNp linux-2.6.29.6/net/ipv6/udp.c linux-2.6.29.6/net/ipv6/udp.c | 43272 | diff -urNp linux-2.6.30.4/net/ipv6/udp.c linux-2.6.30.4/net/ipv6/udp.c |
44261 | --- linux-2.6.29.6/net/ipv6/udp.c 2009-07-02 19:41:20.000000000 -0400 | 43273 | --- linux-2.6.30.4/net/ipv6/udp.c 2009-07-24 17:47:51.000000000 -0400 |
44262 | +++ linux-2.6.29.6/net/ipv6/udp.c 2009-07-23 17:34:32.238737195 -0400 | 43274 | +++ linux-2.6.30.4/net/ipv6/udp.c 2009-07-30 11:10:49.959325956 -0400 |
44263 | @@ -558,6 +558,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, | 43275 | @@ -590,6 +590,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, |
44264 | UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS, | 43276 | UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS, |
44265 | proto == IPPROTO_UDPLITE); | 43277 | proto == IPPROTO_UDPLITE); |
44266 | 43278 | ||
@@ -44270,10 +43282,10 @@ diff -urNp linux-2.6.29.6/net/ipv6/udp.c linux-2.6.29.6/net/ipv6/udp.c | |||
44270 | icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0, dev); | 43282 | icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0, dev); |
44271 | 43283 | ||
44272 | kfree_skb(skb); | 43284 | kfree_skb(skb); |
44273 | diff -urNp linux-2.6.29.6/net/key/af_key.c linux-2.6.29.6/net/key/af_key.c | 43285 | diff -urNp linux-2.6.30.4/net/key/af_key.c linux-2.6.30.4/net/key/af_key.c |
44274 | --- linux-2.6.29.6/net/key/af_key.c 2009-07-02 19:41:20.000000000 -0400 | 43286 | --- linux-2.6.30.4/net/key/af_key.c 2009-07-24 17:47:51.000000000 -0400 |
44275 | +++ linux-2.6.29.6/net/key/af_key.c 2009-07-23 18:40:28.770272617 -0400 | 43287 | +++ linux-2.6.30.4/net/key/af_key.c 2009-07-30 09:48:10.157841054 -0400 |
44276 | @@ -3707,7 +3707,7 @@ static void pfkey_seq_stop(struct seq_fi | 43288 | @@ -3705,7 +3705,7 @@ static void pfkey_seq_stop(struct seq_fi |
44277 | read_unlock(&pfkey_table_lock); | 43289 | read_unlock(&pfkey_table_lock); |
44278 | } | 43290 | } |
44279 | 43291 | ||
@@ -44282,7 +43294,7 @@ diff -urNp linux-2.6.29.6/net/key/af_key.c linux-2.6.29.6/net/key/af_key.c | |||
44282 | .start = pfkey_seq_start, | 43294 | .start = pfkey_seq_start, |
44283 | .next = pfkey_seq_next, | 43295 | .next = pfkey_seq_next, |
44284 | .stop = pfkey_seq_stop, | 43296 | .stop = pfkey_seq_stop, |
44285 | @@ -3720,7 +3720,7 @@ static int pfkey_seq_open(struct inode * | 43297 | @@ -3718,7 +3718,7 @@ static int pfkey_seq_open(struct inode * |
44286 | sizeof(struct seq_net_private)); | 43298 | sizeof(struct seq_net_private)); |
44287 | } | 43299 | } |
44288 | 43300 | ||
@@ -44291,22 +43303,22 @@ diff -urNp linux-2.6.29.6/net/key/af_key.c linux-2.6.29.6/net/key/af_key.c | |||
44291 | .open = pfkey_seq_open, | 43303 | .open = pfkey_seq_open, |
44292 | .read = seq_read, | 43304 | .read = seq_read, |
44293 | .llseek = seq_lseek, | 43305 | .llseek = seq_lseek, |
44294 | diff -urNp linux-2.6.29.6/net/mac80211/ieee80211_i.h linux-2.6.29.6/net/mac80211/ieee80211_i.h | 43306 | diff -urNp linux-2.6.30.4/net/mac80211/ieee80211_i.h linux-2.6.30.4/net/mac80211/ieee80211_i.h |
44295 | --- linux-2.6.29.6/net/mac80211/ieee80211_i.h 2009-07-02 19:41:20.000000000 -0400 | 43307 | --- linux-2.6.30.4/net/mac80211/ieee80211_i.h 2009-07-24 17:47:51.000000000 -0400 |
44296 | +++ linux-2.6.29.6/net/mac80211/ieee80211_i.h 2009-07-23 17:34:32.239733592 -0400 | 43308 | +++ linux-2.6.30.4/net/mac80211/ieee80211_i.h 2009-07-30 09:48:10.157841054 -0400 |
44297 | @@ -562,7 +562,7 @@ struct ieee80211_local { | 43309 | @@ -599,7 +599,7 @@ struct ieee80211_local { |
44298 | unsigned long queue_stop_reasons[IEEE80211_MAX_QUEUES]; | ||
44299 | spinlock_t queue_stop_reason_lock; | 43310 | spinlock_t queue_stop_reason_lock; |
43311 | |||
44300 | struct net_device *mdev; /* wmaster# - "master" 802.11 device */ | 43312 | struct net_device *mdev; /* wmaster# - "master" 802.11 device */ |
44301 | - int open_count; | 43313 | - int open_count; |
44302 | + atomic_t open_count; | 43314 | + atomic_t open_count; |
44303 | int monitors, cooked_mntrs; | 43315 | int monitors, cooked_mntrs; |
44304 | /* number of interfaces with corresponding FIF_ flags */ | 43316 | /* number of interfaces with corresponding FIF_ flags */ |
44305 | int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss; | 43317 | int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss; |
44306 | diff -urNp linux-2.6.29.6/net/mac80211/iface.c linux-2.6.29.6/net/mac80211/iface.c | 43318 | diff -urNp linux-2.6.30.4/net/mac80211/iface.c linux-2.6.30.4/net/mac80211/iface.c |
44307 | --- linux-2.6.29.6/net/mac80211/iface.c 2009-07-02 19:41:20.000000000 -0400 | 43319 | --- linux-2.6.30.4/net/mac80211/iface.c 2009-07-24 17:47:51.000000000 -0400 |
44308 | +++ linux-2.6.29.6/net/mac80211/iface.c 2009-07-23 17:34:32.239733592 -0400 | 43320 | +++ linux-2.6.30.4/net/mac80211/iface.c 2009-07-30 09:48:10.157841054 -0400 |
44309 | @@ -146,7 +146,7 @@ static int ieee80211_open(struct net_dev | 43321 | @@ -163,7 +163,7 @@ static int ieee80211_open(struct net_dev |
44310 | break; | 43322 | break; |
44311 | } | 43323 | } |
44312 | 43324 | ||
@@ -44315,7 +43327,7 @@ diff -urNp linux-2.6.29.6/net/mac80211/iface.c linux-2.6.29.6/net/mac80211/iface | |||
44315 | res = 0; | 43327 | res = 0; |
44316 | if (local->ops->start) | 43328 | if (local->ops->start) |
44317 | res = local->ops->start(local_to_hw(local)); | 43329 | res = local->ops->start(local_to_hw(local)); |
44318 | @@ -182,7 +182,7 @@ static int ieee80211_open(struct net_dev | 43330 | @@ -199,7 +199,7 @@ static int ieee80211_open(struct net_dev |
44319 | * Validate the MAC address for this device. | 43331 | * Validate the MAC address for this device. |
44320 | */ | 43332 | */ |
44321 | if (!is_valid_ether_addr(dev->dev_addr)) { | 43333 | if (!is_valid_ether_addr(dev->dev_addr)) { |
@@ -44324,7 +43336,7 @@ diff -urNp linux-2.6.29.6/net/mac80211/iface.c linux-2.6.29.6/net/mac80211/iface | |||
44324 | local->ops->stop(local_to_hw(local)); | 43336 | local->ops->stop(local_to_hw(local)); |
44325 | return -EADDRNOTAVAIL; | 43337 | return -EADDRNOTAVAIL; |
44326 | } | 43338 | } |
44327 | @@ -267,7 +267,7 @@ static int ieee80211_open(struct net_dev | 43339 | @@ -286,7 +286,7 @@ static int ieee80211_open(struct net_dev |
44328 | } | 43340 | } |
44329 | } | 43341 | } |
44330 | 43342 | ||
@@ -44333,7 +43345,7 @@ diff -urNp linux-2.6.29.6/net/mac80211/iface.c linux-2.6.29.6/net/mac80211/iface | |||
44333 | res = dev_open(local->mdev); | 43345 | res = dev_open(local->mdev); |
44334 | WARN_ON(res); | 43346 | WARN_ON(res); |
44335 | if (res) | 43347 | if (res) |
44336 | @@ -287,7 +287,7 @@ static int ieee80211_open(struct net_dev | 43348 | @@ -306,7 +306,7 @@ static int ieee80211_open(struct net_dev |
44337 | if (sdata->flags & IEEE80211_SDATA_PROMISC) | 43349 | if (sdata->flags & IEEE80211_SDATA_PROMISC) |
44338 | atomic_inc(&local->iff_promiscs); | 43350 | atomic_inc(&local->iff_promiscs); |
44339 | 43351 | ||
@@ -44342,7 +43354,7 @@ diff -urNp linux-2.6.29.6/net/mac80211/iface.c linux-2.6.29.6/net/mac80211/iface | |||
44342 | if (hw_reconf_flags) { | 43354 | if (hw_reconf_flags) { |
44343 | ieee80211_hw_config(local, hw_reconf_flags); | 43355 | ieee80211_hw_config(local, hw_reconf_flags); |
44344 | /* | 43356 | /* |
44345 | @@ -316,7 +316,7 @@ static int ieee80211_open(struct net_dev | 43357 | @@ -334,7 +334,7 @@ static int ieee80211_open(struct net_dev |
44346 | err_del_interface: | 43358 | err_del_interface: |
44347 | local->ops->remove_interface(local_to_hw(local), &conf); | 43359 | local->ops->remove_interface(local_to_hw(local), &conf); |
44348 | err_stop: | 43360 | err_stop: |
@@ -44351,7 +43363,7 @@ diff -urNp linux-2.6.29.6/net/mac80211/iface.c linux-2.6.29.6/net/mac80211/iface | |||
44351 | local->ops->stop(local_to_hw(local)); | 43363 | local->ops->stop(local_to_hw(local)); |
44352 | err_del_bss: | 43364 | err_del_bss: |
44353 | sdata->bss = NULL; | 43365 | sdata->bss = NULL; |
44354 | @@ -401,7 +401,7 @@ static int ieee80211_stop(struct net_dev | 43366 | @@ -432,7 +432,7 @@ static int ieee80211_stop(struct net_dev |
44355 | WARN_ON(!list_empty(&sdata->u.ap.vlans)); | 43367 | WARN_ON(!list_empty(&sdata->u.ap.vlans)); |
44356 | } | 43368 | } |
44357 | 43369 | ||
@@ -44360,7 +43372,7 @@ diff -urNp linux-2.6.29.6/net/mac80211/iface.c linux-2.6.29.6/net/mac80211/iface | |||
44360 | 43372 | ||
44361 | switch (sdata->vif.type) { | 43373 | switch (sdata->vif.type) { |
44362 | case NL80211_IFTYPE_AP_VLAN: | 43374 | case NL80211_IFTYPE_AP_VLAN: |
44363 | @@ -514,7 +514,7 @@ static int ieee80211_stop(struct net_dev | 43375 | @@ -554,7 +554,7 @@ static int ieee80211_stop(struct net_dev |
44364 | 43376 | ||
44365 | sdata->bss = NULL; | 43377 | sdata->bss = NULL; |
44366 | 43378 | ||
@@ -44369,10 +43381,10 @@ diff -urNp linux-2.6.29.6/net/mac80211/iface.c linux-2.6.29.6/net/mac80211/iface | |||
44369 | if (netif_running(local->mdev)) | 43381 | if (netif_running(local->mdev)) |
44370 | dev_close(local->mdev); | 43382 | dev_close(local->mdev); |
44371 | 43383 | ||
44372 | diff -urNp linux-2.6.29.6/net/mac80211/main.c linux-2.6.29.6/net/mac80211/main.c | 43384 | diff -urNp linux-2.6.30.4/net/mac80211/main.c linux-2.6.30.4/net/mac80211/main.c |
44373 | --- linux-2.6.29.6/net/mac80211/main.c 2009-07-02 19:41:20.000000000 -0400 | 43385 | --- linux-2.6.30.4/net/mac80211/main.c 2009-07-24 17:47:51.000000000 -0400 |
44374 | +++ linux-2.6.29.6/net/mac80211/main.c 2009-07-23 17:34:32.239733592 -0400 | 43386 | +++ linux-2.6.30.4/net/mac80211/main.c 2009-07-30 09:48:10.158959820 -0400 |
44375 | @@ -233,7 +233,7 @@ int ieee80211_hw_config(struct ieee80211 | 43387 | @@ -266,7 +266,7 @@ int ieee80211_hw_config(struct ieee80211 |
44376 | local->hw.conf.power_level = power; | 43388 | local->hw.conf.power_level = power; |
44377 | } | 43389 | } |
44378 | 43390 | ||
@@ -44381,10 +43393,31 @@ diff -urNp linux-2.6.29.6/net/mac80211/main.c linux-2.6.29.6/net/mac80211/main.c | |||
44381 | ret = local->ops->config(local_to_hw(local), changed); | 43393 | ret = local->ops->config(local_to_hw(local), changed); |
44382 | /* | 43394 | /* |
44383 | * Goal: | 43395 | * Goal: |
44384 | diff -urNp linux-2.6.29.6/net/mac80211/rate.c linux-2.6.29.6/net/mac80211/rate.c | 43396 | diff -urNp linux-2.6.30.4/net/mac80211/pm.c linux-2.6.30.4/net/mac80211/pm.c |
44385 | --- linux-2.6.29.6/net/mac80211/rate.c 2009-07-02 19:41:20.000000000 -0400 | 43397 | --- linux-2.6.30.4/net/mac80211/pm.c 2009-07-24 17:47:51.000000000 -0400 |
44386 | +++ linux-2.6.29.6/net/mac80211/rate.c 2009-07-23 17:34:32.240714874 -0400 | 43398 | +++ linux-2.6.30.4/net/mac80211/pm.c 2009-07-30 09:48:10.158959820 -0400 |
44387 | @@ -256,7 +256,7 @@ int ieee80211_init_rate_ctrl_alg(struct | 43399 | @@ -65,7 +65,7 @@ int __ieee80211_suspend(struct ieee80211 |
43400 | flush_workqueue(local->hw.workqueue); | ||
43401 | |||
43402 | /* stop hardware */ | ||
43403 | - if (local->open_count) { | ||
43404 | + if (atomic_read(&local->open_count)) { | ||
43405 | ieee80211_led_radio(local, false); | ||
43406 | local->ops->stop(hw); | ||
43407 | } | ||
43408 | @@ -82,7 +82,7 @@ int __ieee80211_resume(struct ieee80211_ | ||
43409 | int res; | ||
43410 | |||
43411 | /* restart hardware */ | ||
43412 | - if (local->open_count) { | ||
43413 | + if (atomic_read(&local->open_count)) { | ||
43414 | res = local->ops->start(hw); | ||
43415 | |||
43416 | ieee80211_led_radio(local, hw->conf.radio_enabled); | ||
43417 | diff -urNp linux-2.6.30.4/net/mac80211/rate.c linux-2.6.30.4/net/mac80211/rate.c | ||
43418 | --- linux-2.6.30.4/net/mac80211/rate.c 2009-07-24 17:47:51.000000000 -0400 | ||
43419 | +++ linux-2.6.30.4/net/mac80211/rate.c 2009-07-30 09:48:10.158959820 -0400 | ||
43420 | @@ -258,7 +258,7 @@ int ieee80211_init_rate_ctrl_alg(struct | ||
44388 | struct rate_control_ref *ref, *old; | 43421 | struct rate_control_ref *ref, *old; |
44389 | 43422 | ||
44390 | ASSERT_RTNL(); | 43423 | ASSERT_RTNL(); |
@@ -44393,9 +43426,9 @@ diff -urNp linux-2.6.29.6/net/mac80211/rate.c linux-2.6.29.6/net/mac80211/rate.c | |||
44393 | return -EBUSY; | 43426 | return -EBUSY; |
44394 | 43427 | ||
44395 | ref = rate_control_alloc(name, local); | 43428 | ref = rate_control_alloc(name, local); |
44396 | diff -urNp linux-2.6.29.6/net/mac80211/rc80211_minstrel_debugfs.c linux-2.6.29.6/net/mac80211/rc80211_minstrel_debugfs.c | 43429 | diff -urNp linux-2.6.30.4/net/mac80211/rc80211_minstrel_debugfs.c linux-2.6.30.4/net/mac80211/rc80211_minstrel_debugfs.c |
44397 | --- linux-2.6.29.6/net/mac80211/rc80211_minstrel_debugfs.c 2009-07-02 19:41:20.000000000 -0400 | 43430 | --- linux-2.6.30.4/net/mac80211/rc80211_minstrel_debugfs.c 2009-07-24 17:47:51.000000000 -0400 |
44398 | +++ linux-2.6.29.6/net/mac80211/rc80211_minstrel_debugfs.c 2009-07-23 18:40:28.777436731 -0400 | 43431 | +++ linux-2.6.30.4/net/mac80211/rc80211_minstrel_debugfs.c 2009-07-30 09:48:10.158959820 -0400 |
44399 | @@ -139,7 +139,7 @@ minstrel_stats_release(struct inode *ino | 43432 | @@ -139,7 +139,7 @@ minstrel_stats_release(struct inode *ino |
44400 | return 0; | 43433 | return 0; |
44401 | } | 43434 | } |
@@ -44405,9 +43438,9 @@ diff -urNp linux-2.6.29.6/net/mac80211/rc80211_minstrel_debugfs.c linux-2.6.29.6 | |||
44405 | .owner = THIS_MODULE, | 43438 | .owner = THIS_MODULE, |
44406 | .open = minstrel_stats_open, | 43439 | .open = minstrel_stats_open, |
44407 | .read = minstrel_stats_read, | 43440 | .read = minstrel_stats_read, |
44408 | diff -urNp linux-2.6.29.6/net/mac80211/rc80211_pid_debugfs.c linux-2.6.29.6/net/mac80211/rc80211_pid_debugfs.c | 43441 | diff -urNp linux-2.6.30.4/net/mac80211/rc80211_pid_debugfs.c linux-2.6.30.4/net/mac80211/rc80211_pid_debugfs.c |
44409 | --- linux-2.6.29.6/net/mac80211/rc80211_pid_debugfs.c 2009-07-02 19:41:20.000000000 -0400 | 43442 | --- linux-2.6.30.4/net/mac80211/rc80211_pid_debugfs.c 2009-07-24 17:47:51.000000000 -0400 |
44410 | +++ linux-2.6.29.6/net/mac80211/rc80211_pid_debugfs.c 2009-07-23 18:40:28.783149857 -0400 | 43443 | +++ linux-2.6.30.4/net/mac80211/rc80211_pid_debugfs.c 2009-07-30 09:48:10.158959820 -0400 |
44411 | @@ -198,7 +198,7 @@ static ssize_t rate_control_pid_events_r | 43444 | @@ -198,7 +198,7 @@ static ssize_t rate_control_pid_events_r |
44412 | 43445 | ||
44413 | #undef RC_PID_PRINT_BUF_SIZE | 43446 | #undef RC_PID_PRINT_BUF_SIZE |
@@ -44417,10 +43450,10 @@ diff -urNp linux-2.6.29.6/net/mac80211/rc80211_pid_debugfs.c linux-2.6.29.6/net/ | |||
44417 | .owner = THIS_MODULE, | 43450 | .owner = THIS_MODULE, |
44418 | .read = rate_control_pid_events_read, | 43451 | .read = rate_control_pid_events_read, |
44419 | .poll = rate_control_pid_events_poll, | 43452 | .poll = rate_control_pid_events_poll, |
44420 | diff -urNp linux-2.6.29.6/net/packet/af_packet.c linux-2.6.29.6/net/packet/af_packet.c | 43453 | diff -urNp linux-2.6.30.4/net/packet/af_packet.c linux-2.6.30.4/net/packet/af_packet.c |
44421 | --- linux-2.6.29.6/net/packet/af_packet.c 2009-07-02 19:41:20.000000000 -0400 | 43454 | --- linux-2.6.30.4/net/packet/af_packet.c 2009-07-24 17:47:51.000000000 -0400 |
44422 | +++ linux-2.6.29.6/net/packet/af_packet.c 2009-07-23 18:40:28.789919912 -0400 | 43455 | +++ linux-2.6.30.4/net/packet/af_packet.c 2009-07-30 09:48:10.160018712 -0400 |
44423 | @@ -1741,7 +1741,7 @@ static void packet_mm_close(struct vm_ar | 43456 | @@ -1740,7 +1740,7 @@ static void packet_mm_close(struct vm_ar |
44424 | atomic_dec(&pkt_sk(sk)->mapped); | 43457 | atomic_dec(&pkt_sk(sk)->mapped); |
44425 | } | 43458 | } |
44426 | 43459 | ||
@@ -44429,9 +43462,9 @@ diff -urNp linux-2.6.29.6/net/packet/af_packet.c linux-2.6.29.6/net/packet/af_pa | |||
44429 | .open = packet_mm_open, | 43462 | .open = packet_mm_open, |
44430 | .close =packet_mm_close, | 43463 | .close =packet_mm_close, |
44431 | }; | 43464 | }; |
44432 | diff -urNp linux-2.6.29.6/net/sctp/socket.c linux-2.6.29.6/net/sctp/socket.c | 43465 | diff -urNp linux-2.6.30.4/net/sctp/socket.c linux-2.6.30.4/net/sctp/socket.c |
44433 | --- linux-2.6.29.6/net/sctp/socket.c 2009-07-02 19:41:20.000000000 -0400 | 43466 | --- linux-2.6.30.4/net/sctp/socket.c 2009-07-24 17:47:51.000000000 -0400 |
44434 | +++ linux-2.6.29.6/net/sctp/socket.c 2009-07-23 17:34:32.240714874 -0400 | 43467 | +++ linux-2.6.30.4/net/sctp/socket.c 2009-07-30 09:48:10.161030758 -0400 |
44435 | @@ -1434,7 +1434,7 @@ SCTP_STATIC int sctp_sendmsg(struct kioc | 43468 | @@ -1434,7 +1434,7 @@ SCTP_STATIC int sctp_sendmsg(struct kioc |
44436 | struct sctp_sndrcvinfo *sinfo; | 43469 | struct sctp_sndrcvinfo *sinfo; |
44437 | struct sctp_initmsg *sinit; | 43470 | struct sctp_initmsg *sinit; |
@@ -44441,7 +43474,7 @@ diff -urNp linux-2.6.29.6/net/sctp/socket.c linux-2.6.29.6/net/sctp/socket.c | |||
44441 | int err; | 43474 | int err; |
44442 | sctp_scope_t scope; | 43475 | sctp_scope_t scope; |
44443 | long timeo; | 43476 | long timeo; |
44444 | @@ -5756,7 +5756,6 @@ pp_found: | 43477 | @@ -5750,7 +5750,6 @@ pp_found: |
44445 | */ | 43478 | */ |
44446 | int reuse = sk->sk_reuse; | 43479 | int reuse = sk->sk_reuse; |
44447 | struct sock *sk2; | 43480 | struct sock *sk2; |
@@ -44449,9 +43482,9 @@ diff -urNp linux-2.6.29.6/net/sctp/socket.c linux-2.6.29.6/net/sctp/socket.c | |||
44449 | 43482 | ||
44450 | SCTP_DEBUG_PRINTK("sctp_get_port() found a possible match\n"); | 43483 | SCTP_DEBUG_PRINTK("sctp_get_port() found a possible match\n"); |
44451 | if (pp->fastreuse && sk->sk_reuse && | 43484 | if (pp->fastreuse && sk->sk_reuse && |
44452 | diff -urNp linux-2.6.29.6/net/socket.c linux-2.6.29.6/net/socket.c | 43485 | diff -urNp linux-2.6.30.4/net/socket.c linux-2.6.30.4/net/socket.c |
44453 | --- linux-2.6.29.6/net/socket.c 2009-07-02 19:41:20.000000000 -0400 | 43486 | --- linux-2.6.30.4/net/socket.c 2009-07-24 17:47:51.000000000 -0400 |
44454 | +++ linux-2.6.29.6/net/socket.c 2009-07-23 19:30:30.968455360 -0400 | 43487 | +++ linux-2.6.30.4/net/socket.c 2009-07-30 11:29:24.032618401 -0400 |
44455 | @@ -86,6 +86,7 @@ | 43488 | @@ -86,6 +86,7 @@ |
44456 | #include <linux/audit.h> | 43489 | #include <linux/audit.h> |
44457 | #include <linux/wireless.h> | 43490 | #include <linux/wireless.h> |
@@ -44500,16 +43533,7 @@ diff -urNp linux-2.6.29.6/net/socket.c linux-2.6.29.6/net/socket.c | |||
44500 | 43533 | ||
44501 | static struct file_system_type sock_fs_type = { | 43534 | static struct file_system_type sock_fs_type = { |
44502 | .name = "sockfs", | 43535 | .name = "sockfs", |
44503 | @@ -328,7 +344,7 @@ static char *sockfs_dname(struct dentry | 43536 | @@ -1283,6 +1299,16 @@ SYSCALL_DEFINE3(socket, int, family, int |
44504 | dentry->d_inode->i_ino); | ||
44505 | } | ||
44506 | |||
44507 | -static struct dentry_operations sockfs_dentry_operations = { | ||
44508 | +static const struct dentry_operations sockfs_dentry_operations = { | ||
44509 | .d_delete = sockfs_delete_dentry, | ||
44510 | .d_dname = sockfs_dname, | ||
44511 | }; | ||
44512 | @@ -1234,6 +1250,16 @@ SYSCALL_DEFINE3(socket, int, family, int | ||
44513 | if (SOCK_NONBLOCK != O_NONBLOCK && (flags & SOCK_NONBLOCK)) | 43537 | if (SOCK_NONBLOCK != O_NONBLOCK && (flags & SOCK_NONBLOCK)) |
44514 | flags = (flags & ~SOCK_NONBLOCK) | O_NONBLOCK; | 43538 | flags = (flags & ~SOCK_NONBLOCK) | O_NONBLOCK; |
44515 | 43539 | ||
@@ -44526,7 +43550,7 @@ diff -urNp linux-2.6.29.6/net/socket.c linux-2.6.29.6/net/socket.c | |||
44526 | retval = sock_create(family, type, protocol, &sock); | 43550 | retval = sock_create(family, type, protocol, &sock); |
44527 | if (retval < 0) | 43551 | if (retval < 0) |
44528 | goto out; | 43552 | goto out; |
44529 | @@ -1366,6 +1392,14 @@ SYSCALL_DEFINE3(bind, int, fd, struct so | 43553 | @@ -1415,6 +1441,14 @@ SYSCALL_DEFINE3(bind, int, fd, struct so |
44530 | if (sock) { | 43554 | if (sock) { |
44531 | err = move_addr_to_kernel(umyaddr, addrlen, (struct sockaddr *)&address); | 43555 | err = move_addr_to_kernel(umyaddr, addrlen, (struct sockaddr *)&address); |
44532 | if (err >= 0) { | 43556 | if (err >= 0) { |
@@ -44541,7 +43565,7 @@ diff -urNp linux-2.6.29.6/net/socket.c linux-2.6.29.6/net/socket.c | |||
44541 | err = security_socket_bind(sock, | 43565 | err = security_socket_bind(sock, |
44542 | (struct sockaddr *)&address, | 43566 | (struct sockaddr *)&address, |
44543 | addrlen); | 43567 | addrlen); |
44544 | @@ -1374,6 +1408,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct so | 43568 | @@ -1423,6 +1457,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct so |
44545 | (struct sockaddr *) | 43569 | (struct sockaddr *) |
44546 | &address, addrlen); | 43570 | &address, addrlen); |
44547 | } | 43571 | } |
@@ -44549,7 +43573,7 @@ diff -urNp linux-2.6.29.6/net/socket.c linux-2.6.29.6/net/socket.c | |||
44549 | fput_light(sock->file, fput_needed); | 43573 | fput_light(sock->file, fput_needed); |
44550 | } | 43574 | } |
44551 | return err; | 43575 | return err; |
44552 | @@ -1397,10 +1432,20 @@ SYSCALL_DEFINE2(listen, int, fd, int, ba | 43576 | @@ -1446,10 +1481,20 @@ SYSCALL_DEFINE2(listen, int, fd, int, ba |
44553 | if ((unsigned)backlog > somaxconn) | 43577 | if ((unsigned)backlog > somaxconn) |
44554 | backlog = somaxconn; | 43578 | backlog = somaxconn; |
44555 | 43579 | ||
@@ -44570,7 +43594,7 @@ diff -urNp linux-2.6.29.6/net/socket.c linux-2.6.29.6/net/socket.c | |||
44570 | fput_light(sock->file, fput_needed); | 43594 | fput_light(sock->file, fput_needed); |
44571 | } | 43595 | } |
44572 | return err; | 43596 | return err; |
44573 | @@ -1443,6 +1488,18 @@ SYSCALL_DEFINE4(accept4, int, fd, struct | 43597 | @@ -1492,6 +1537,18 @@ SYSCALL_DEFINE4(accept4, int, fd, struct |
44574 | newsock->type = sock->type; | 43598 | newsock->type = sock->type; |
44575 | newsock->ops = sock->ops; | 43599 | newsock->ops = sock->ops; |
44576 | 43600 | ||
@@ -44589,15 +43613,16 @@ diff -urNp linux-2.6.29.6/net/socket.c linux-2.6.29.6/net/socket.c | |||
44589 | /* | 43613 | /* |
44590 | * We don't need try_module_get here, as the listening socket (sock) | 43614 | * We don't need try_module_get here, as the listening socket (sock) |
44591 | * has the protocol module (sock->ops->owner) held. | 43615 | * has the protocol module (sock->ops->owner) held. |
44592 | @@ -1486,6 +1543,7 @@ SYSCALL_DEFINE4(accept4, int, fd, struct | 43616 | @@ -1534,6 +1591,8 @@ SYSCALL_DEFINE4(accept4, int, fd, struct |
43617 | fd_install(newfd, newfile); | ||
44593 | err = newfd; | 43618 | err = newfd; |
44594 | 43619 | ||
44595 | security_socket_post_accept(sock, newsock); | ||
44596 | + gr_attach_curr_ip(newsock->sk); | 43620 | + gr_attach_curr_ip(newsock->sk); |
44597 | 43621 | + | |
44598 | out_put: | 43622 | out_put: |
44599 | fput_light(sock->file, fput_needed); | 43623 | fput_light(sock->file, fput_needed); |
44600 | @@ -1524,6 +1582,7 @@ SYSCALL_DEFINE3(connect, int, fd, struct | 43624 | out: |
43625 | @@ -1571,6 +1630,7 @@ SYSCALL_DEFINE3(connect, int, fd, struct | ||
44601 | int, addrlen) | 43626 | int, addrlen) |
44602 | { | 43627 | { |
44603 | struct socket *sock; | 43628 | struct socket *sock; |
@@ -44605,7 +43630,7 @@ diff -urNp linux-2.6.29.6/net/socket.c linux-2.6.29.6/net/socket.c | |||
44605 | struct sockaddr_storage address; | 43630 | struct sockaddr_storage address; |
44606 | int err, fput_needed; | 43631 | int err, fput_needed; |
44607 | 43632 | ||
44608 | @@ -1534,6 +1593,17 @@ SYSCALL_DEFINE3(connect, int, fd, struct | 43633 | @@ -1581,6 +1641,17 @@ SYSCALL_DEFINE3(connect, int, fd, struct |
44609 | if (err < 0) | 43634 | if (err < 0) |
44610 | goto out_put; | 43635 | goto out_put; |
44611 | 43636 | ||
@@ -44623,18 +43648,9 @@ diff -urNp linux-2.6.29.6/net/socket.c linux-2.6.29.6/net/socket.c | |||
44623 | err = | 43648 | err = |
44624 | security_socket_connect(sock, (struct sockaddr *)&address, addrlen); | 43649 | security_socket_connect(sock, (struct sockaddr *)&address, addrlen); |
44625 | if (err) | 43650 | if (err) |
44626 | diff -urNp linux-2.6.29.6/net/sunrpc/rpc_pipe.c linux-2.6.29.6/net/sunrpc/rpc_pipe.c | 43651 | diff -urNp linux-2.6.30.4/net/sunrpc/rpc_pipe.c linux-2.6.30.4/net/sunrpc/rpc_pipe.c |
44627 | --- linux-2.6.29.6/net/sunrpc/rpc_pipe.c 2009-07-02 19:41:20.000000000 -0400 | 43652 | --- linux-2.6.30.4/net/sunrpc/rpc_pipe.c 2009-07-24 17:47:51.000000000 -0400 |
44628 | +++ linux-2.6.29.6/net/sunrpc/rpc_pipe.c 2009-07-23 18:40:28.803536193 -0400 | 43653 | +++ linux-2.6.30.4/net/sunrpc/rpc_pipe.c 2009-07-30 12:07:21.048974939 -0400 |
44629 | @@ -480,7 +480,7 @@ static int rpc_delete_dentry(struct dent | ||
44630 | return 1; | ||
44631 | } | ||
44632 | |||
44633 | -static struct dentry_operations rpc_dentry_operations = { | ||
44634 | +static const struct dentry_operations rpc_dentry_operations = { | ||
44635 | .d_delete = rpc_delete_dentry, | ||
44636 | }; | ||
44637 | |||
44638 | @@ -858,7 +858,7 @@ EXPORT_SYMBOL_GPL(rpc_unlink); | 43654 | @@ -858,7 +858,7 @@ EXPORT_SYMBOL_GPL(rpc_unlink); |
44639 | /* | 43655 | /* |
44640 | * populate the filesystem | 43656 | * populate the filesystem |
@@ -44644,9 +43660,9 @@ diff -urNp linux-2.6.29.6/net/sunrpc/rpc_pipe.c linux-2.6.29.6/net/sunrpc/rpc_pi | |||
44644 | .alloc_inode = rpc_alloc_inode, | 43660 | .alloc_inode = rpc_alloc_inode, |
44645 | .destroy_inode = rpc_destroy_inode, | 43661 | .destroy_inode = rpc_destroy_inode, |
44646 | .statfs = simple_statfs, | 43662 | .statfs = simple_statfs, |
44647 | diff -urNp linux-2.6.29.6/net/unix/af_unix.c linux-2.6.29.6/net/unix/af_unix.c | 43663 | diff -urNp linux-2.6.30.4/net/unix/af_unix.c linux-2.6.30.4/net/unix/af_unix.c |
44648 | --- linux-2.6.29.6/net/unix/af_unix.c 2009-07-02 19:41:20.000000000 -0400 | 43664 | --- linux-2.6.30.4/net/unix/af_unix.c 2009-07-24 17:47:51.000000000 -0400 |
44649 | +++ linux-2.6.29.6/net/unix/af_unix.c 2009-07-23 17:34:32.242831111 -0400 | 43665 | +++ linux-2.6.30.4/net/unix/af_unix.c 2009-07-30 11:10:49.995552784 -0400 |
44650 | @@ -734,6 +734,12 @@ static struct sock *unix_find_other(stru | 43666 | @@ -734,6 +734,12 @@ static struct sock *unix_find_other(stru |
44651 | err = -ECONNREFUSED; | 43667 | err = -ECONNREFUSED; |
44652 | if (!S_ISSOCK(inode->i_mode)) | 43668 | if (!S_ISSOCK(inode->i_mode)) |
@@ -44704,9 +43720,9 @@ diff -urNp linux-2.6.29.6/net/unix/af_unix.c linux-2.6.29.6/net/unix/af_unix.c | |||
44704 | list = &unix_socket_table[addr->hash]; | 43720 | list = &unix_socket_table[addr->hash]; |
44705 | } else { | 43721 | } else { |
44706 | list = &unix_socket_table[dentry->d_inode->i_ino & (UNIX_HASH_SIZE-1)]; | 43722 | list = &unix_socket_table[dentry->d_inode->i_ino & (UNIX_HASH_SIZE-1)]; |
44707 | diff -urNp linux-2.6.29.6/net/xfrm/xfrm_proc.c linux-2.6.29.6/net/xfrm/xfrm_proc.c | 43723 | diff -urNp linux-2.6.30.4/net/xfrm/xfrm_proc.c linux-2.6.30.4/net/xfrm/xfrm_proc.c |
44708 | --- linux-2.6.29.6/net/xfrm/xfrm_proc.c 2009-07-02 19:41:20.000000000 -0400 | 43724 | --- linux-2.6.30.4/net/xfrm/xfrm_proc.c 2009-07-24 17:47:51.000000000 -0400 |
44709 | +++ linux-2.6.29.6/net/xfrm/xfrm_proc.c 2009-07-23 18:40:28.814555102 -0400 | 43725 | +++ linux-2.6.30.4/net/xfrm/xfrm_proc.c 2009-07-30 09:48:10.161962049 -0400 |
44710 | @@ -60,7 +60,7 @@ static int xfrm_statistics_seq_open(stru | 43726 | @@ -60,7 +60,7 @@ static int xfrm_statistics_seq_open(stru |
44711 | return single_open_net(inode, file, xfrm_statistics_seq_show); | 43727 | return single_open_net(inode, file, xfrm_statistics_seq_show); |
44712 | } | 43728 | } |
@@ -44716,9 +43732,9 @@ diff -urNp linux-2.6.29.6/net/xfrm/xfrm_proc.c linux-2.6.29.6/net/xfrm/xfrm_proc | |||
44716 | .owner = THIS_MODULE, | 43732 | .owner = THIS_MODULE, |
44717 | .open = xfrm_statistics_seq_open, | 43733 | .open = xfrm_statistics_seq_open, |
44718 | .read = seq_read, | 43734 | .read = seq_read, |
44719 | diff -urNp linux-2.6.29.6/samples/markers/marker-example.c linux-2.6.29.6/samples/markers/marker-example.c | 43735 | diff -urNp linux-2.6.30.4/samples/markers/marker-example.c linux-2.6.30.4/samples/markers/marker-example.c |
44720 | --- linux-2.6.29.6/samples/markers/marker-example.c 2009-07-02 19:41:20.000000000 -0400 | 43736 | --- linux-2.6.30.4/samples/markers/marker-example.c 2009-07-24 17:47:51.000000000 -0400 |
44721 | +++ linux-2.6.29.6/samples/markers/marker-example.c 2009-07-23 18:40:28.823705055 -0400 | 43737 | +++ linux-2.6.30.4/samples/markers/marker-example.c 2009-07-30 09:48:10.161962049 -0400 |
44722 | @@ -26,7 +26,7 @@ static int my_open(struct inode *inode, | 43738 | @@ -26,7 +26,7 @@ static int my_open(struct inode *inode, |
44723 | return -EPERM; | 43739 | return -EPERM; |
44724 | } | 43740 | } |
@@ -44728,9 +43744,9 @@ diff -urNp linux-2.6.29.6/samples/markers/marker-example.c linux-2.6.29.6/sample | |||
44728 | .open = my_open, | 43744 | .open = my_open, |
44729 | }; | 43745 | }; |
44730 | 43746 | ||
44731 | diff -urNp linux-2.6.29.6/samples/tracepoints/tracepoint-sample.c linux-2.6.29.6/samples/tracepoints/tracepoint-sample.c | 43747 | diff -urNp linux-2.6.30.4/samples/tracepoints/tracepoint-sample.c linux-2.6.30.4/samples/tracepoints/tracepoint-sample.c |
44732 | --- linux-2.6.29.6/samples/tracepoints/tracepoint-sample.c 2009-07-02 19:41:20.000000000 -0400 | 43748 | --- linux-2.6.30.4/samples/tracepoints/tracepoint-sample.c 2009-07-24 17:47:51.000000000 -0400 |
44733 | +++ linux-2.6.29.6/samples/tracepoints/tracepoint-sample.c 2009-07-23 18:40:28.824321350 -0400 | 43749 | +++ linux-2.6.30.4/samples/tracepoints/tracepoint-sample.c 2009-07-30 09:48:10.161962049 -0400 |
44734 | @@ -28,7 +28,7 @@ static int my_open(struct inode *inode, | 43750 | @@ -28,7 +28,7 @@ static int my_open(struct inode *inode, |
44735 | return -EPERM; | 43751 | return -EPERM; |
44736 | } | 43752 | } |
@@ -44740,10 +43756,10 @@ diff -urNp linux-2.6.29.6/samples/tracepoints/tracepoint-sample.c linux-2.6.29.6 | |||
44740 | .open = my_open, | 43756 | .open = my_open, |
44741 | }; | 43757 | }; |
44742 | 43758 | ||
44743 | diff -urNp linux-2.6.29.6/scripts/mod/modpost.c linux-2.6.29.6/scripts/mod/modpost.c | 43759 | diff -urNp linux-2.6.30.4/scripts/mod/modpost.c linux-2.6.30.4/scripts/mod/modpost.c |
44744 | --- linux-2.6.29.6/scripts/mod/modpost.c 2009-07-02 19:41:20.000000000 -0400 | 43760 | --- linux-2.6.30.4/scripts/mod/modpost.c 2009-07-24 17:47:51.000000000 -0400 |
44745 | +++ linux-2.6.29.6/scripts/mod/modpost.c 2009-07-23 17:34:32.242831111 -0400 | 43761 | +++ linux-2.6.30.4/scripts/mod/modpost.c 2009-07-30 09:48:10.162851614 -0400 |
44746 | @@ -830,6 +830,7 @@ enum mismatch { | 43762 | @@ -831,6 +831,7 @@ enum mismatch { |
44747 | INIT_TO_EXIT, | 43763 | INIT_TO_EXIT, |
44748 | EXIT_TO_INIT, | 43764 | EXIT_TO_INIT, |
44749 | EXPORT_TO_INIT_EXIT, | 43765 | EXPORT_TO_INIT_EXIT, |
@@ -44751,7 +43767,7 @@ diff -urNp linux-2.6.29.6/scripts/mod/modpost.c linux-2.6.29.6/scripts/mod/modpo | |||
44751 | }; | 43767 | }; |
44752 | 43768 | ||
44753 | struct sectioncheck { | 43769 | struct sectioncheck { |
44754 | @@ -891,6 +892,12 @@ const struct sectioncheck sectioncheck[] | 43770 | @@ -892,6 +893,12 @@ const struct sectioncheck sectioncheck[] |
44755 | .fromsec = { "__ksymtab*", NULL }, | 43771 | .fromsec = { "__ksymtab*", NULL }, |
44756 | .tosec = { INIT_SECTIONS, EXIT_SECTIONS, NULL }, | 43772 | .tosec = { INIT_SECTIONS, EXIT_SECTIONS, NULL }, |
44757 | .mismatch = EXPORT_TO_INIT_EXIT | 43773 | .mismatch = EXPORT_TO_INIT_EXIT |
@@ -44764,7 +43780,7 @@ diff -urNp linux-2.6.29.6/scripts/mod/modpost.c linux-2.6.29.6/scripts/mod/modpo | |||
44764 | } | 43780 | } |
44765 | }; | 43781 | }; |
44766 | 43782 | ||
44767 | @@ -1249,6 +1256,14 @@ static void report_sec_mismatch(const ch | 43783 | @@ -1240,6 +1247,14 @@ static void report_sec_mismatch(const ch |
44768 | "Fix this by removing the %sannotation of %s " | 43784 | "Fix this by removing the %sannotation of %s " |
44769 | "or drop the export.\n", | 43785 | "or drop the export.\n", |
44770 | tosym, sec2annotation(tosec), sec2annotation(tosec), tosym); | 43786 | tosym, sec2annotation(tosec), sec2annotation(tosec), tosym); |
@@ -44779,9 +43795,9 @@ diff -urNp linux-2.6.29.6/scripts/mod/modpost.c linux-2.6.29.6/scripts/mod/modpo | |||
44779 | case NO_MISMATCH: | 43795 | case NO_MISMATCH: |
44780 | /* To get warnings on missing members */ | 43796 | /* To get warnings on missing members */ |
44781 | break; | 43797 | break; |
44782 | diff -urNp linux-2.6.29.6/scripts/pnmtologo.c linux-2.6.29.6/scripts/pnmtologo.c | 43798 | diff -urNp linux-2.6.30.4/scripts/pnmtologo.c linux-2.6.30.4/scripts/pnmtologo.c |
44783 | --- linux-2.6.29.6/scripts/pnmtologo.c 2009-07-02 19:41:20.000000000 -0400 | 43799 | --- linux-2.6.30.4/scripts/pnmtologo.c 2009-07-24 17:47:51.000000000 -0400 |
44784 | +++ linux-2.6.29.6/scripts/pnmtologo.c 2009-07-23 17:34:32.243888317 -0400 | 43800 | +++ linux-2.6.30.4/scripts/pnmtologo.c 2009-07-30 09:48:10.162851614 -0400 |
44785 | @@ -237,14 +237,14 @@ static void write_header(void) | 43801 | @@ -237,14 +237,14 @@ static void write_header(void) |
44786 | fprintf(out, " * Linux logo %s\n", logoname); | 43802 | fprintf(out, " * Linux logo %s\n", logoname); |
44787 | fputs(" */\n\n", out); | 43803 | fputs(" */\n\n", out); |
@@ -44808,9 +43824,9 @@ diff -urNp linux-2.6.29.6/scripts/pnmtologo.c linux-2.6.29.6/scripts/pnmtologo.c | |||
44808 | logoname); | 43824 | logoname); |
44809 | write_hex_cnt = 0; | 43825 | write_hex_cnt = 0; |
44810 | for (i = 0; i < logo_clutsize; i++) { | 43826 | for (i = 0; i < logo_clutsize; i++) { |
44811 | diff -urNp linux-2.6.29.6/security/commoncap.c linux-2.6.29.6/security/commoncap.c | 43827 | diff -urNp linux-2.6.30.4/security/commoncap.c linux-2.6.30.4/security/commoncap.c |
44812 | --- linux-2.6.29.6/security/commoncap.c 2009-07-02 19:41:20.000000000 -0400 | 43828 | --- linux-2.6.30.4/security/commoncap.c 2009-07-24 17:47:51.000000000 -0400 |
44813 | +++ linux-2.6.29.6/security/commoncap.c 2009-07-23 17:34:32.243888317 -0400 | 43829 | +++ linux-2.6.30.4/security/commoncap.c 2009-07-30 11:10:50.017289381 -0400 |
44814 | @@ -28,9 +28,11 @@ | 43830 | @@ -28,9 +28,11 @@ |
44815 | #include <linux/prctl.h> | 43831 | #include <linux/prctl.h> |
44816 | #include <linux/securebits.h> | 43832 | #include <linux/securebits.h> |
@@ -44824,10 +43840,76 @@ diff -urNp linux-2.6.29.6/security/commoncap.c linux-2.6.29.6/security/commoncap | |||
44824 | return 0; | 43840 | return 0; |
44825 | } | 43841 | } |
44826 | 43842 | ||
44827 | diff -urNp linux-2.6.29.6/security/Kconfig linux-2.6.29.6/security/Kconfig | 43843 | diff -urNp linux-2.6.30.4/security/integrity/ima/ima_fs.c linux-2.6.30.4/security/integrity/ima/ima_fs.c |
44828 | --- linux-2.6.29.6/security/Kconfig 2009-07-02 19:41:20.000000000 -0400 | 43844 | --- linux-2.6.30.4/security/integrity/ima/ima_fs.c 2009-07-24 17:47:51.000000000 -0400 |
44829 | +++ linux-2.6.29.6/security/Kconfig 2009-07-23 17:35:37.439768706 -0400 | 43845 | +++ linux-2.6.30.4/security/integrity/ima/ima_fs.c 2009-07-30 12:06:52.190847656 -0400 |
44830 | @@ -4,6 +4,465 @@ | 43846 | @@ -42,7 +42,7 @@ static ssize_t ima_show_htable_violation |
43847 | return ima_show_htable_value(buf, count, ppos, &ima_htable.violations); | ||
43848 | } | ||
43849 | |||
43850 | -static struct file_operations ima_htable_violations_ops = { | ||
43851 | +static const struct file_operations ima_htable_violations_ops = { | ||
43852 | .read = ima_show_htable_violations | ||
43853 | }; | ||
43854 | |||
43855 | @@ -54,7 +54,7 @@ static ssize_t ima_show_measurements_cou | ||
43856 | |||
43857 | } | ||
43858 | |||
43859 | -static struct file_operations ima_measurements_count_ops = { | ||
43860 | +static const struct file_operations ima_measurements_count_ops = { | ||
43861 | .read = ima_show_measurements_count | ||
43862 | }; | ||
43863 | |||
43864 | @@ -145,7 +145,7 @@ static int ima_measurements_show(struct | ||
43865 | return 0; | ||
43866 | } | ||
43867 | |||
43868 | -static struct seq_operations ima_measurments_seqops = { | ||
43869 | +static const struct seq_operations ima_measurments_seqops = { | ||
43870 | .start = ima_measurements_start, | ||
43871 | .next = ima_measurements_next, | ||
43872 | .stop = ima_measurements_stop, | ||
43873 | @@ -157,7 +157,7 @@ static int ima_measurements_open(struct | ||
43874 | return seq_open(file, &ima_measurments_seqops); | ||
43875 | } | ||
43876 | |||
43877 | -static struct file_operations ima_measurements_ops = { | ||
43878 | +static const struct file_operations ima_measurements_ops = { | ||
43879 | .open = ima_measurements_open, | ||
43880 | .read = seq_read, | ||
43881 | .llseek = seq_lseek, | ||
43882 | @@ -220,7 +220,7 @@ static int ima_ascii_measurements_show(s | ||
43883 | return 0; | ||
43884 | } | ||
43885 | |||
43886 | -static struct seq_operations ima_ascii_measurements_seqops = { | ||
43887 | +static const struct seq_operations ima_ascii_measurements_seqops = { | ||
43888 | .start = ima_measurements_start, | ||
43889 | .next = ima_measurements_next, | ||
43890 | .stop = ima_measurements_stop, | ||
43891 | @@ -232,7 +232,7 @@ static int ima_ascii_measurements_open(s | ||
43892 | return seq_open(file, &ima_ascii_measurements_seqops); | ||
43893 | } | ||
43894 | |||
43895 | -static struct file_operations ima_ascii_measurements_ops = { | ||
43896 | +static const struct file_operations ima_ascii_measurements_ops = { | ||
43897 | .open = ima_ascii_measurements_open, | ||
43898 | .read = seq_read, | ||
43899 | .llseek = seq_lseek, | ||
43900 | @@ -309,7 +309,7 @@ static int ima_release_policy(struct ino | ||
43901 | return 0; | ||
43902 | } | ||
43903 | |||
43904 | -static struct file_operations ima_measure_policy_ops = { | ||
43905 | +static const struct file_operations ima_measure_policy_ops = { | ||
43906 | .open = ima_open_policy, | ||
43907 | .write = ima_write_policy, | ||
43908 | .release = ima_release_policy | ||
43909 | diff -urNp linux-2.6.30.4/security/Kconfig linux-2.6.30.4/security/Kconfig | ||
43910 | --- linux-2.6.30.4/security/Kconfig 2009-07-24 17:47:51.000000000 -0400 | ||
43911 | +++ linux-2.6.30.4/security/Kconfig 2009-07-30 11:10:50.021298651 -0400 | ||
43912 | @@ -4,6 +4,467 @@ | ||
44831 | 43913 | ||
44832 | menu "Security options" | 43914 | menu "Security options" |
44833 | 43915 | ||
@@ -44953,7 +44035,7 @@ diff -urNp linux-2.6.29.6/security/Kconfig linux-2.6.29.6/security/Kconfig | |||
44953 | + | 44035 | + |
44954 | +config PAX_PAGEEXEC | 44036 | +config PAX_PAGEEXEC |
44955 | + bool "Paging based non-executable pages" | 44037 | + bool "Paging based non-executable pages" |
44956 | + depends on !COMPAT_VDSO && PAX_NOEXEC && (!X86_32 || M586 || M586TSC || M586MMX || M686 || MPENTIUMII || MPENTIUMIII || MPENTIUMM || MCORE2 || MPENTIUM4 || MPSC || MK7 || MK8 || MWINCHIPC6 || MWINCHIP2 || MWINCHIP3D || MVIAC3_2 || MVIAC7) | 44038 | + depends on PAX_NOEXEC && (!X86_32 || M586 || M586TSC || M586MMX || M686 || MPENTIUMII || MPENTIUMIII || MPENTIUMM || MCORE2 || MPENTIUM4 || MPSC || MK7 || MK8 || MWINCHIPC6 || MWINCHIP2 || MWINCHIP3D || MVIAC3_2 || MVIAC7) |
44957 | + help | 44039 | + help |
44958 | + This implementation is based on the paging feature of the CPU. | 44040 | + This implementation is based on the paging feature of the CPU. |
44959 | + On i386 without hardware non-executable bit support there is a | 44041 | + On i386 without hardware non-executable bit support there is a |
@@ -44972,7 +44054,7 @@ diff -urNp linux-2.6.29.6/security/Kconfig linux-2.6.29.6/security/Kconfig | |||
44972 | + | 44054 | + |
44973 | +config PAX_SEGMEXEC | 44055 | +config PAX_SEGMEXEC |
44974 | + bool "Segmentation based non-executable pages" | 44056 | + bool "Segmentation based non-executable pages" |
44975 | + depends on !COMPAT_VDSO && PAX_NOEXEC && X86_32 | 44057 | + depends on PAX_NOEXEC && X86_32 |
44976 | + help | 44058 | + help |
44977 | + This implementation is based on the segmentation feature of the | 44059 | + This implementation is based on the segmentation feature of the |
44978 | + CPU and has a very small performance impact, however applications | 44060 | + CPU and has a very small performance impact, however applications |
@@ -45118,7 +44200,7 @@ diff -urNp linux-2.6.29.6/security/Kconfig linux-2.6.29.6/security/Kconfig | |||
45118 | + | 44200 | + |
45119 | +config PAX_KERNEXEC | 44201 | +config PAX_KERNEXEC |
45120 | + bool "Enforce non-executable kernel pages" | 44202 | + bool "Enforce non-executable kernel pages" |
45121 | + depends on PAX_NOEXEC && X86 && !EFI && !COMPAT_VDSO && (!X86_32 || X86_WP_WORKS_OK) && !PARAVIRT | 44203 | + depends on PAX_NOEXEC && X86 && (!X86_32 || X86_WP_WORKS_OK) |
45122 | + help | 44204 | + help |
45123 | + This is the kernel land equivalent of PAGEEXEC and MPROTECT, | 44205 | + This is the kernel land equivalent of PAGEEXEC and MPROTECT, |
45124 | + that is, enabling this option will make it harder to inject | 44206 | + that is, enabling this option will make it harder to inject |
@@ -45234,7 +44316,7 @@ diff -urNp linux-2.6.29.6/security/Kconfig linux-2.6.29.6/security/Kconfig | |||
45234 | + | 44316 | + |
45235 | +config PAX_MEMORY_UDEREF | 44317 | +config PAX_MEMORY_UDEREF |
45236 | + bool "Prevent invalid userland pointer dereference" | 44318 | + bool "Prevent invalid userland pointer dereference" |
45237 | + depends on X86_32 && !COMPAT_VDSO && !UML_X86 | 44319 | + depends on X86_32 && !UML_X86 |
45238 | + help | 44320 | + help |
45239 | + By saying Y here the kernel will be prevented from dereferencing | 44321 | + By saying Y here the kernel will be prevented from dereferencing |
45240 | + userland pointers in contexts where the kernel expects only kernel | 44322 | + userland pointers in contexts where the kernel expects only kernel |
@@ -45286,6 +44368,8 @@ diff -urNp linux-2.6.29.6/security/Kconfig linux-2.6.29.6/security/Kconfig | |||
45286 | + Note that the current implementation provides the strictest checks | 44368 | + Note that the current implementation provides the strictest checks |
45287 | + for the SLUB allocator. | 44369 | + for the SLUB allocator. |
45288 | + | 44370 | + |
44371 | + Since this has a negligible performance impact, you should enable | ||
44372 | + this feature. | ||
45289 | +endmenu | 44373 | +endmenu |
45290 | + | 44374 | + |
45291 | +endmenu | 44375 | +endmenu |
@@ -45293,10 +44377,10 @@ diff -urNp linux-2.6.29.6/security/Kconfig linux-2.6.29.6/security/Kconfig | |||
45293 | config KEYS | 44377 | config KEYS |
45294 | bool "Enable access key retention support" | 44378 | bool "Enable access key retention support" |
45295 | help | 44379 | help |
45296 | diff -urNp linux-2.6.29.6/security/smack/smackfs.c linux-2.6.29.6/security/smack/smackfs.c | 44380 | diff -urNp linux-2.6.30.4/security/smack/smackfs.c linux-2.6.30.4/security/smack/smackfs.c |
45297 | --- linux-2.6.29.6/security/smack/smackfs.c 2009-07-02 19:41:20.000000000 -0400 | 44381 | --- linux-2.6.30.4/security/smack/smackfs.c 2009-07-24 17:47:51.000000000 -0400 |
45298 | +++ linux-2.6.29.6/security/smack/smackfs.c 2009-07-23 18:40:28.832499629 -0400 | 44382 | +++ linux-2.6.30.4/security/smack/smackfs.c 2009-07-30 09:48:10.163665437 -0400 |
45299 | @@ -179,7 +179,7 @@ static void load_seq_stop(struct seq_fil | 44383 | @@ -186,7 +186,7 @@ static void load_seq_stop(struct seq_fil |
45300 | /* No-op */ | 44384 | /* No-op */ |
45301 | } | 44385 | } |
45302 | 44386 | ||
@@ -45305,7 +44389,7 @@ diff -urNp linux-2.6.29.6/security/smack/smackfs.c linux-2.6.29.6/security/smack | |||
45305 | .start = load_seq_start, | 44389 | .start = load_seq_start, |
45306 | .next = load_seq_next, | 44390 | .next = load_seq_next, |
45307 | .show = load_seq_show, | 44391 | .show = load_seq_show, |
45308 | @@ -491,7 +491,7 @@ static void cipso_seq_stop(struct seq_fi | 44392 | @@ -502,7 +502,7 @@ static void cipso_seq_stop(struct seq_fi |
45309 | /* No-op */ | 44393 | /* No-op */ |
45310 | } | 44394 | } |
45311 | 44395 | ||
@@ -45314,7 +44398,7 @@ diff -urNp linux-2.6.29.6/security/smack/smackfs.c linux-2.6.29.6/security/smack | |||
45314 | .start = cipso_seq_start, | 44398 | .start = cipso_seq_start, |
45315 | .stop = cipso_seq_stop, | 44399 | .stop = cipso_seq_stop, |
45316 | .next = cipso_seq_next, | 44400 | .next = cipso_seq_next, |
45317 | @@ -675,7 +675,7 @@ static void netlbladdr_seq_stop(struct s | 44401 | @@ -696,7 +696,7 @@ static void netlbladdr_seq_stop(struct s |
45318 | /* No-op */ | 44402 | /* No-op */ |
45319 | } | 44403 | } |
45320 | 44404 | ||
@@ -45323,10 +44407,10 @@ diff -urNp linux-2.6.29.6/security/smack/smackfs.c linux-2.6.29.6/security/smack | |||
45323 | .start = netlbladdr_seq_start, | 44407 | .start = netlbladdr_seq_start, |
45324 | .stop = netlbladdr_seq_stop, | 44408 | .stop = netlbladdr_seq_stop, |
45325 | .next = netlbladdr_seq_next, | 44409 | .next = netlbladdr_seq_next, |
45326 | diff -urNp linux-2.6.29.6/sound/core/oss/pcm_oss.c linux-2.6.29.6/sound/core/oss/pcm_oss.c | 44410 | diff -urNp linux-2.6.30.4/sound/core/oss/pcm_oss.c linux-2.6.30.4/sound/core/oss/pcm_oss.c |
45327 | --- linux-2.6.29.6/sound/core/oss/pcm_oss.c 2009-07-02 19:41:20.000000000 -0400 | 44411 | --- linux-2.6.30.4/sound/core/oss/pcm_oss.c 2009-07-24 17:47:51.000000000 -0400 |
45328 | +++ linux-2.6.29.6/sound/core/oss/pcm_oss.c 2009-07-23 17:34:32.245757940 -0400 | 44412 | +++ linux-2.6.30.4/sound/core/oss/pcm_oss.c 2009-07-30 09:48:10.164791187 -0400 |
45329 | @@ -2929,8 +2929,8 @@ static void snd_pcm_oss_proc_done(struct | 44413 | @@ -2944,8 +2944,8 @@ static void snd_pcm_oss_proc_done(struct |
45330 | } | 44414 | } |
45331 | } | 44415 | } |
45332 | #else /* !CONFIG_SND_VERBOSE_PROCFS */ | 44416 | #else /* !CONFIG_SND_VERBOSE_PROCFS */ |
@@ -45337,9 +44421,9 @@ diff -urNp linux-2.6.29.6/sound/core/oss/pcm_oss.c linux-2.6.29.6/sound/core/oss | |||
45337 | #endif /* CONFIG_SND_VERBOSE_PROCFS */ | 44421 | #endif /* CONFIG_SND_VERBOSE_PROCFS */ |
45338 | 44422 | ||
45339 | /* | 44423 | /* |
45340 | diff -urNp linux-2.6.29.6/sound/core/seq/seq_lock.h linux-2.6.29.6/sound/core/seq/seq_lock.h | 44424 | diff -urNp linux-2.6.30.4/sound/core/seq/seq_lock.h linux-2.6.30.4/sound/core/seq/seq_lock.h |
45341 | --- linux-2.6.29.6/sound/core/seq/seq_lock.h 2009-07-02 19:41:20.000000000 -0400 | 44425 | --- linux-2.6.30.4/sound/core/seq/seq_lock.h 2009-07-24 17:47:51.000000000 -0400 |
45342 | +++ linux-2.6.29.6/sound/core/seq/seq_lock.h 2009-07-23 17:34:32.245757940 -0400 | 44426 | +++ linux-2.6.30.4/sound/core/seq/seq_lock.h 2009-07-30 09:48:10.164791187 -0400 |
45343 | @@ -23,10 +23,10 @@ void snd_use_lock_sync_helper(snd_use_lo | 44427 | @@ -23,10 +23,10 @@ void snd_use_lock_sync_helper(snd_use_lo |
45344 | #else /* SMP || CONFIG_SND_DEBUG */ | 44428 | #else /* SMP || CONFIG_SND_DEBUG */ |
45345 | 44429 | ||
@@ -45355,10 +44439,10 @@ diff -urNp linux-2.6.29.6/sound/core/seq/seq_lock.h linux-2.6.29.6/sound/core/se | |||
45355 | 44439 | ||
45356 | #endif /* SMP || CONFIG_SND_DEBUG */ | 44440 | #endif /* SMP || CONFIG_SND_DEBUG */ |
45357 | 44441 | ||
45358 | diff -urNp linux-2.6.29.6/sound/pci/ac97/ac97_patch.c linux-2.6.29.6/sound/pci/ac97/ac97_patch.c | 44442 | diff -urNp linux-2.6.30.4/sound/pci/ac97/ac97_patch.c linux-2.6.30.4/sound/pci/ac97/ac97_patch.c |
45359 | --- linux-2.6.29.6/sound/pci/ac97/ac97_patch.c 2009-07-02 19:41:20.000000000 -0400 | 44443 | --- linux-2.6.30.4/sound/pci/ac97/ac97_patch.c 2009-07-24 17:47:51.000000000 -0400 |
45360 | +++ linux-2.6.29.6/sound/pci/ac97/ac97_patch.c 2009-07-23 17:34:32.246936980 -0400 | 44444 | +++ linux-2.6.30.4/sound/pci/ac97/ac97_patch.c 2009-07-30 09:48:10.165681860 -0400 |
45361 | @@ -1498,7 +1498,7 @@ static const struct snd_ac97_res_table a | 44445 | @@ -1501,7 +1501,7 @@ static const struct snd_ac97_res_table a |
45362 | { AC97_VIDEO, 0x9f1f }, | 44446 | { AC97_VIDEO, 0x9f1f }, |
45363 | { AC97_AUX, 0x9f1f }, | 44447 | { AC97_AUX, 0x9f1f }, |
45364 | { AC97_PCM, 0x9f1f }, | 44448 | { AC97_PCM, 0x9f1f }, |
@@ -45367,7 +44451,7 @@ diff -urNp linux-2.6.29.6/sound/pci/ac97/ac97_patch.c linux-2.6.29.6/sound/pci/a | |||
45367 | }; | 44451 | }; |
45368 | 44452 | ||
45369 | static int patch_ad1819(struct snd_ac97 * ac97) | 44453 | static int patch_ad1819(struct snd_ac97 * ac97) |
45370 | @@ -3873,7 +3873,7 @@ static struct snd_ac97_res_table lm4550_ | 44454 | @@ -3876,7 +3876,7 @@ static struct snd_ac97_res_table lm4550_ |
45371 | { AC97_AUX, 0x1f1f }, | 44455 | { AC97_AUX, 0x1f1f }, |
45372 | { AC97_PCM, 0x1f1f }, | 44456 | { AC97_PCM, 0x1f1f }, |
45373 | { AC97_REC_GAIN, 0x0f0f }, | 44457 | { AC97_REC_GAIN, 0x0f0f }, |
@@ -45376,9 +44460,9 @@ diff -urNp linux-2.6.29.6/sound/pci/ac97/ac97_patch.c linux-2.6.29.6/sound/pci/a | |||
45376 | }; | 44460 | }; |
45377 | 44461 | ||
45378 | static int patch_lm4550(struct snd_ac97 *ac97) | 44462 | static int patch_lm4550(struct snd_ac97 *ac97) |
45379 | diff -urNp linux-2.6.29.6/sound/pci/ens1370.c linux-2.6.29.6/sound/pci/ens1370.c | 44463 | diff -urNp linux-2.6.30.4/sound/pci/ens1370.c linux-2.6.30.4/sound/pci/ens1370.c |
45380 | --- linux-2.6.29.6/sound/pci/ens1370.c 2009-07-02 19:41:20.000000000 -0400 | 44464 | --- linux-2.6.30.4/sound/pci/ens1370.c 2009-07-24 17:47:51.000000000 -0400 |
45381 | +++ linux-2.6.29.6/sound/pci/ens1370.c 2009-07-23 17:34:32.247850956 -0400 | 44465 | +++ linux-2.6.30.4/sound/pci/ens1370.c 2009-07-30 09:48:10.165681860 -0400 |
45382 | @@ -452,7 +452,7 @@ static struct pci_device_id snd_audiopci | 44466 | @@ -452,7 +452,7 @@ static struct pci_device_id snd_audiopci |
45383 | { 0x1274, 0x5880, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ES1373 - CT5880 */ | 44467 | { 0x1274, 0x5880, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ES1373 - CT5880 */ |
45384 | { 0x1102, 0x8938, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* Ectiva EV1938 */ | 44468 | { 0x1102, 0x8938, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* Ectiva EV1938 */ |
@@ -45388,10 +44472,10 @@ diff -urNp linux-2.6.29.6/sound/pci/ens1370.c linux-2.6.29.6/sound/pci/ens1370.c | |||
45388 | }; | 44472 | }; |
45389 | 44473 | ||
45390 | MODULE_DEVICE_TABLE(pci, snd_audiopci_ids); | 44474 | MODULE_DEVICE_TABLE(pci, snd_audiopci_ids); |
45391 | diff -urNp linux-2.6.29.6/sound/pci/intel8x0.c linux-2.6.29.6/sound/pci/intel8x0.c | 44475 | diff -urNp linux-2.6.30.4/sound/pci/intel8x0.c linux-2.6.30.4/sound/pci/intel8x0.c |
45392 | --- linux-2.6.29.6/sound/pci/intel8x0.c 2009-07-02 19:41:20.000000000 -0400 | 44476 | --- linux-2.6.30.4/sound/pci/intel8x0.c 2009-07-24 17:47:51.000000000 -0400 |
45393 | +++ linux-2.6.29.6/sound/pci/intel8x0.c 2009-07-23 17:34:32.247850956 -0400 | 44477 | +++ linux-2.6.30.4/sound/pci/intel8x0.c 2009-07-30 09:48:10.166748224 -0400 |
45394 | @@ -443,7 +443,7 @@ static struct pci_device_id snd_intel8x0 | 44478 | @@ -444,7 +444,7 @@ static struct pci_device_id snd_intel8x0 |
45395 | { 0x1022, 0x746d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* AMD8111 */ | 44479 | { 0x1022, 0x746d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* AMD8111 */ |
45396 | { 0x1022, 0x7445, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* AMD768 */ | 44480 | { 0x1022, 0x7445, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* AMD768 */ |
45397 | { 0x10b9, 0x5455, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALI }, /* Ali5455 */ | 44481 | { 0x10b9, 0x5455, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALI }, /* Ali5455 */ |
@@ -45400,7 +44484,7 @@ diff -urNp linux-2.6.29.6/sound/pci/intel8x0.c linux-2.6.29.6/sound/pci/intel8x0 | |||
45400 | }; | 44484 | }; |
45401 | 44485 | ||
45402 | MODULE_DEVICE_TABLE(pci, snd_intel8x0_ids); | 44486 | MODULE_DEVICE_TABLE(pci, snd_intel8x0_ids); |
45403 | @@ -2088,7 +2088,7 @@ static struct ac97_quirk ac97_quirks[] _ | 44487 | @@ -2105,7 +2105,7 @@ static struct ac97_quirk ac97_quirks[] _ |
45404 | .type = AC97_TUNE_HP_ONLY | 44488 | .type = AC97_TUNE_HP_ONLY |
45405 | }, | 44489 | }, |
45406 | #endif | 44490 | #endif |
@@ -45409,9 +44493,9 @@ diff -urNp linux-2.6.29.6/sound/pci/intel8x0.c linux-2.6.29.6/sound/pci/intel8x0 | |||
45409 | }; | 44493 | }; |
45410 | 44494 | ||
45411 | static int __devinit snd_intel8x0_mixer(struct intel8x0 *chip, int ac97_clock, | 44495 | static int __devinit snd_intel8x0_mixer(struct intel8x0 *chip, int ac97_clock, |
45412 | diff -urNp linux-2.6.29.6/sound/pci/intel8x0m.c linux-2.6.29.6/sound/pci/intel8x0m.c | 44496 | diff -urNp linux-2.6.30.4/sound/pci/intel8x0m.c linux-2.6.30.4/sound/pci/intel8x0m.c |
45413 | --- linux-2.6.29.6/sound/pci/intel8x0m.c 2009-07-02 19:41:20.000000000 -0400 | 44497 | --- linux-2.6.30.4/sound/pci/intel8x0m.c 2009-07-24 17:47:51.000000000 -0400 |
45414 | +++ linux-2.6.29.6/sound/pci/intel8x0m.c 2009-07-23 17:34:32.249009543 -0400 | 44498 | +++ linux-2.6.30.4/sound/pci/intel8x0m.c 2009-07-30 09:48:10.167822693 -0400 |
45415 | @@ -239,7 +239,7 @@ static struct pci_device_id snd_intel8x0 | 44499 | @@ -239,7 +239,7 @@ static struct pci_device_id snd_intel8x0 |
45416 | { 0x1022, 0x746d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* AMD8111 */ | 44500 | { 0x1022, 0x746d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* AMD8111 */ |
45417 | { 0x10b9, 0x5455, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALI }, /* Ali5455 */ | 44501 | { 0x10b9, 0x5455, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALI }, /* Ali5455 */ |
@@ -45421,7 +44505,7 @@ diff -urNp linux-2.6.29.6/sound/pci/intel8x0m.c linux-2.6.29.6/sound/pci/intel8x | |||
45421 | }; | 44505 | }; |
45422 | 44506 | ||
45423 | MODULE_DEVICE_TABLE(pci, snd_intel8x0m_ids); | 44507 | MODULE_DEVICE_TABLE(pci, snd_intel8x0m_ids); |
45424 | @@ -1258,7 +1258,7 @@ static struct shortname_table { | 44508 | @@ -1264,7 +1264,7 @@ static struct shortname_table { |
45425 | { 0x5455, "ALi M5455" }, | 44509 | { 0x5455, "ALi M5455" }, |
45426 | { 0x746d, "AMD AMD8111" }, | 44510 | { 0x746d, "AMD AMD8111" }, |
45427 | #endif | 44511 | #endif |
@@ -45430,9 +44514,9 @@ diff -urNp linux-2.6.29.6/sound/pci/intel8x0m.c linux-2.6.29.6/sound/pci/intel8x | |||
45430 | }; | 44514 | }; |
45431 | 44515 | ||
45432 | static int __devinit snd_intel8x0m_probe(struct pci_dev *pci, | 44516 | static int __devinit snd_intel8x0m_probe(struct pci_dev *pci, |
45433 | diff -urNp linux-2.6.29.6/sound/usb/usx2y/us122l.c linux-2.6.29.6/sound/usb/usx2y/us122l.c | 44517 | diff -urNp linux-2.6.30.4/sound/usb/usx2y/us122l.c linux-2.6.30.4/sound/usb/usx2y/us122l.c |
45434 | --- linux-2.6.29.6/sound/usb/usx2y/us122l.c 2009-07-02 19:41:20.000000000 -0400 | 44518 | --- linux-2.6.30.4/sound/usb/usx2y/us122l.c 2009-07-24 17:47:51.000000000 -0400 |
45435 | +++ linux-2.6.29.6/sound/usb/usx2y/us122l.c 2009-07-23 18:40:28.832499629 -0400 | 44519 | +++ linux-2.6.30.4/sound/usb/usx2y/us122l.c 2009-07-30 09:48:10.167822693 -0400 |
45436 | @@ -154,7 +154,7 @@ static void usb_stream_hwdep_vm_close(st | 44520 | @@ -154,7 +154,7 @@ static void usb_stream_hwdep_vm_close(st |
45437 | snd_printdd(KERN_DEBUG "%i\n", atomic_read(&us122l->mmap_count)); | 44521 | snd_printdd(KERN_DEBUG "%i\n", atomic_read(&us122l->mmap_count)); |
45438 | } | 44522 | } |
@@ -45442,10 +44526,10 @@ diff -urNp linux-2.6.29.6/sound/usb/usx2y/us122l.c linux-2.6.29.6/sound/usb/usx2 | |||
45442 | .open = usb_stream_hwdep_vm_open, | 44526 | .open = usb_stream_hwdep_vm_open, |
45443 | .fault = usb_stream_hwdep_vm_fault, | 44527 | .fault = usb_stream_hwdep_vm_fault, |
45444 | .close = usb_stream_hwdep_vm_close, | 44528 | .close = usb_stream_hwdep_vm_close, |
45445 | diff -urNp linux-2.6.29.6/sound/usb/usx2y/usX2Yhwdep.c linux-2.6.29.6/sound/usb/usx2y/usX2Yhwdep.c | 44529 | diff -urNp linux-2.6.30.4/sound/usb/usx2y/usX2Yhwdep.c linux-2.6.30.4/sound/usb/usx2y/usX2Yhwdep.c |
45446 | --- linux-2.6.29.6/sound/usb/usx2y/usX2Yhwdep.c 2009-07-02 19:41:20.000000000 -0400 | 44530 | --- linux-2.6.30.4/sound/usb/usx2y/usX2Yhwdep.c 2009-07-24 17:47:51.000000000 -0400 |
45447 | +++ linux-2.6.29.6/sound/usb/usx2y/usX2Yhwdep.c 2009-07-23 18:40:28.833508615 -0400 | 44531 | +++ linux-2.6.30.4/sound/usb/usx2y/usX2Yhwdep.c 2009-07-30 09:48:10.167822693 -0400 |
45448 | @@ -56,7 +56,7 @@ static int snd_us428ctls_vm_fault(struct | 44532 | @@ -53,7 +53,7 @@ static int snd_us428ctls_vm_fault(struct |
45449 | return 0; | 44533 | return 0; |
45450 | } | 44534 | } |
45451 | 44535 | ||
@@ -45454,9 +44538,9 @@ diff -urNp linux-2.6.29.6/sound/usb/usx2y/usX2Yhwdep.c linux-2.6.29.6/sound/usb/ | |||
45454 | .fault = snd_us428ctls_vm_fault, | 44538 | .fault = snd_us428ctls_vm_fault, |
45455 | }; | 44539 | }; |
45456 | 44540 | ||
45457 | diff -urNp linux-2.6.29.6/sound/usb/usx2y/usx2yhwdeppcm.c linux-2.6.29.6/sound/usb/usx2y/usx2yhwdeppcm.c | 44541 | diff -urNp linux-2.6.30.4/sound/usb/usx2y/usx2yhwdeppcm.c linux-2.6.30.4/sound/usb/usx2y/usx2yhwdeppcm.c |
45458 | --- linux-2.6.29.6/sound/usb/usx2y/usx2yhwdeppcm.c 2009-07-02 19:41:20.000000000 -0400 | 44542 | --- linux-2.6.30.4/sound/usb/usx2y/usx2yhwdeppcm.c 2009-07-24 17:47:51.000000000 -0400 |
45459 | +++ linux-2.6.29.6/sound/usb/usx2y/usx2yhwdeppcm.c 2009-07-23 18:40:28.833508615 -0400 | 44543 | +++ linux-2.6.30.4/sound/usb/usx2y/usx2yhwdeppcm.c 2009-07-30 09:48:10.168781015 -0400 |
45460 | @@ -697,7 +697,7 @@ static int snd_usX2Y_hwdep_pcm_vm_fault( | 44544 | @@ -697,7 +697,7 @@ static int snd_usX2Y_hwdep_pcm_vm_fault( |
45461 | } | 44545 | } |
45462 | 44546 | ||
@@ -45466,10 +44550,10 @@ diff -urNp linux-2.6.29.6/sound/usb/usx2y/usx2yhwdeppcm.c linux-2.6.29.6/sound/u | |||
45466 | .open = snd_usX2Y_hwdep_pcm_vm_open, | 44550 | .open = snd_usX2Y_hwdep_pcm_vm_open, |
45467 | .close = snd_usX2Y_hwdep_pcm_vm_close, | 44551 | .close = snd_usX2Y_hwdep_pcm_vm_close, |
45468 | .fault = snd_usX2Y_hwdep_pcm_vm_fault, | 44552 | .fault = snd_usX2Y_hwdep_pcm_vm_fault, |
45469 | diff -urNp linux-2.6.29.6/virt/kvm/kvm_main.c linux-2.6.29.6/virt/kvm/kvm_main.c | 44553 | diff -urNp linux-2.6.30.4/virt/kvm/kvm_main.c linux-2.6.30.4/virt/kvm/kvm_main.c |
45470 | --- linux-2.6.29.6/virt/kvm/kvm_main.c 2009-07-02 19:41:20.000000000 -0400 | 44554 | --- linux-2.6.30.4/virt/kvm/kvm_main.c 2009-07-24 17:47:51.000000000 -0400 |
45471 | +++ linux-2.6.29.6/virt/kvm/kvm_main.c 2009-07-23 17:34:32.249724330 -0400 | 44555 | +++ linux-2.6.30.4/virt/kvm/kvm_main.c 2009-07-30 12:42:02.581987537 -0400 |
45472 | @@ -2059,6 +2059,9 @@ static struct miscdevice kvm_dev = { | 44556 | @@ -2061,6 +2061,9 @@ static struct miscdevice kvm_dev = { |
45473 | KVM_MINOR, | 44557 | KVM_MINOR, |
45474 | "kvm", | 44558 | "kvm", |
45475 | &kvm_chardev_ops, | 44559 | &kvm_chardev_ops, |
@@ -45479,7 +44563,16 @@ diff -urNp linux-2.6.29.6/virt/kvm/kvm_main.c linux-2.6.29.6/virt/kvm/kvm_main.c | |||
45479 | }; | 44563 | }; |
45480 | 44564 | ||
45481 | static void hardware_enable(void *junk) | 44565 | static void hardware_enable(void *junk) |
45482 | @@ -2290,7 +2293,7 @@ static void kvm_sched_out(struct preempt | 44566 | @@ -2220,7 +2223,7 @@ static int vcpu_stat_get(void *_offset, |
44567 | |||
44568 | DEFINE_SIMPLE_ATTRIBUTE(vcpu_stat_fops, vcpu_stat_get, NULL, "%llu\n"); | ||
44569 | |||
44570 | -static struct file_operations *stat_fops[] = { | ||
44571 | +static const struct file_operations *stat_fops[] = { | ||
44572 | [KVM_STAT_VCPU] = &vcpu_stat_fops, | ||
44573 | [KVM_STAT_VM] = &vm_stat_fops, | ||
44574 | }; | ||
44575 | @@ -2292,7 +2295,7 @@ static void kvm_sched_out(struct preempt | ||
45483 | kvm_arch_vcpu_put(vcpu); | 44576 | kvm_arch_vcpu_put(vcpu); |
45484 | } | 44577 | } |
45485 | 44578 | ||
diff --git a/main/linux-grsec/kernelconfig b/main/linux-grsec/kernelconfig index 425e5cedae..71ee53486b 100644 --- a/main/linux-grsec/kernelconfig +++ b/main/linux-grsec/kernelconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.29.5 | 3 | # Linux kernel version: 2.6.30.4 |
4 | # Mon Jun 29 16:25:46 2009 | 4 | # Mon Aug 3 08:50:09 2009 |
5 | # | 5 | # |
6 | # CONFIG_64BIT is not set | 6 | # CONFIG_64BIT is not set |
7 | CONFIG_X86_32=y | 7 | CONFIG_X86_32=y |
@@ -34,6 +34,7 @@ CONFIG_ARCH_HAS_CPU_RELAX=y | |||
34 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 34 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
35 | CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y | 35 | CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y |
36 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y | 36 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y |
37 | CONFIG_HAVE_DYNAMIC_PER_CPU_AREA=y | ||
37 | # CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set | 38 | # CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set |
38 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 39 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
39 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 40 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
@@ -41,15 +42,16 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y | |||
41 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 42 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
42 | # CONFIG_AUDIT_ARCH is not set | 43 | # CONFIG_AUDIT_ARCH is not set |
43 | CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y | 44 | CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y |
45 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | ||
44 | CONFIG_GENERIC_HARDIRQS=y | 46 | CONFIG_GENERIC_HARDIRQS=y |
47 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
45 | CONFIG_GENERIC_IRQ_PROBE=y | 48 | CONFIG_GENERIC_IRQ_PROBE=y |
46 | CONFIG_GENERIC_PENDING_IRQ=y | 49 | CONFIG_GENERIC_PENDING_IRQ=y |
47 | CONFIG_X86_SMP=y | ||
48 | CONFIG_USE_GENERIC_SMP_HELPERS=y | 50 | CONFIG_USE_GENERIC_SMP_HELPERS=y |
49 | CONFIG_X86_32_SMP=y | 51 | CONFIG_X86_32_SMP=y |
50 | CONFIG_X86_HT=y | 52 | CONFIG_X86_HT=y |
51 | CONFIG_X86_BIOS_REBOOT=y | ||
52 | CONFIG_X86_TRAMPOLINE=y | 53 | CONFIG_X86_TRAMPOLINE=y |
54 | CONFIG_X86_32_LAZY_GS=y | ||
53 | CONFIG_KTIME_SCALAR=y | 55 | CONFIG_KTIME_SCALAR=y |
54 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 56 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
55 | 57 | ||
@@ -61,6 +63,12 @@ CONFIG_LOCK_KERNEL=y | |||
61 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 63 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
62 | CONFIG_LOCALVERSION="" | 64 | CONFIG_LOCALVERSION="" |
63 | # CONFIG_LOCALVERSION_AUTO is not set | 65 | # CONFIG_LOCALVERSION_AUTO is not set |
66 | CONFIG_HAVE_KERNEL_GZIP=y | ||
67 | CONFIG_HAVE_KERNEL_BZIP2=y | ||
68 | CONFIG_HAVE_KERNEL_LZMA=y | ||
69 | CONFIG_KERNEL_GZIP=y | ||
70 | # CONFIG_KERNEL_BZIP2 is not set | ||
71 | # CONFIG_KERNEL_LZMA is not set | ||
64 | CONFIG_SWAP=y | 72 | CONFIG_SWAP=y |
65 | CONFIG_SYSVIPC=y | 73 | CONFIG_SYSVIPC=y |
66 | CONFIG_SYSVIPC_SYSCTL=y | 74 | CONFIG_SYSVIPC_SYSCTL=y |
@@ -93,6 +101,9 @@ CONFIG_USER_SCHED=y | |||
93 | # CONFIG_NAMESPACES is not set | 101 | # CONFIG_NAMESPACES is not set |
94 | CONFIG_BLK_DEV_INITRD=y | 102 | CONFIG_BLK_DEV_INITRD=y |
95 | CONFIG_INITRAMFS_SOURCE="" | 103 | CONFIG_INITRAMFS_SOURCE="" |
104 | CONFIG_RD_GZIP=y | ||
105 | CONFIG_RD_BZIP2=y | ||
106 | CONFIG_RD_LZMA=y | ||
96 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 107 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
97 | CONFIG_SYSCTL=y | 108 | CONFIG_SYSCTL=y |
98 | CONFIG_ANON_INODES=y | 109 | CONFIG_ANON_INODES=y |
@@ -100,6 +111,7 @@ CONFIG_EMBEDDED=y | |||
100 | CONFIG_UID16=y | 111 | CONFIG_UID16=y |
101 | CONFIG_SYSCTL_SYSCALL=y | 112 | CONFIG_SYSCTL_SYSCALL=y |
102 | # CONFIG_KALLSYMS is not set | 113 | # CONFIG_KALLSYMS is not set |
114 | # CONFIG_STRIP_ASM_SYMS is not set | ||
103 | CONFIG_HOTPLUG=y | 115 | CONFIG_HOTPLUG=y |
104 | CONFIG_PRINTK=y | 116 | CONFIG_PRINTK=y |
105 | CONFIG_BUG=y | 117 | CONFIG_BUG=y |
@@ -121,12 +133,15 @@ CONFIG_PCI_QUIRKS=y | |||
121 | CONFIG_SLUB=y | 133 | CONFIG_SLUB=y |
122 | # CONFIG_SLOB is not set | 134 | # CONFIG_SLOB is not set |
123 | # CONFIG_PROFILING is not set | 135 | # CONFIG_PROFILING is not set |
136 | # CONFIG_MARKERS is not set | ||
124 | CONFIG_HAVE_OPROFILE=y | 137 | CONFIG_HAVE_OPROFILE=y |
125 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | 138 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y |
126 | CONFIG_HAVE_IOREMAP_PROT=y | 139 | CONFIG_HAVE_IOREMAP_PROT=y |
127 | CONFIG_HAVE_KPROBES=y | 140 | CONFIG_HAVE_KPROBES=y |
128 | CONFIG_HAVE_KRETPROBES=y | 141 | CONFIG_HAVE_KRETPROBES=y |
129 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 142 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
143 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
144 | CONFIG_SLOW_WORK=y | ||
130 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | 145 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
131 | CONFIG_RT_MUTEXES=y | 146 | CONFIG_RT_MUTEXES=y |
132 | CONFIG_BASE_SMALL=0 | 147 | CONFIG_BASE_SMALL=0 |
@@ -139,7 +154,6 @@ CONFIG_MODVERSIONS=y | |||
139 | CONFIG_STOP_MACHINE=y | 154 | CONFIG_STOP_MACHINE=y |
140 | CONFIG_BLOCK=y | 155 | CONFIG_BLOCK=y |
141 | CONFIG_LBD=y | 156 | CONFIG_LBD=y |
142 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
143 | CONFIG_BLK_DEV_BSG=y | 157 | CONFIG_BLK_DEV_BSG=y |
144 | # CONFIG_BLK_DEV_INTEGRITY is not set | 158 | # CONFIG_BLK_DEV_INTEGRITY is not set |
145 | 159 | ||
@@ -167,22 +181,15 @@ CONFIG_HIGH_RES_TIMERS=y | |||
167 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 181 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
168 | CONFIG_SMP=y | 182 | CONFIG_SMP=y |
169 | # CONFIG_SPARSE_IRQ is not set | 183 | # CONFIG_SPARSE_IRQ is not set |
170 | CONFIG_X86_FIND_SMP_CONFIG=y | ||
171 | CONFIG_X86_MPPARSE=y | 184 | CONFIG_X86_MPPARSE=y |
172 | CONFIG_X86_PC=y | 185 | # CONFIG_X86_BIGSMP is not set |
186 | CONFIG_X86_EXTENDED_PLATFORM=y | ||
173 | # CONFIG_X86_ELAN is not set | 187 | # CONFIG_X86_ELAN is not set |
174 | # CONFIG_X86_VOYAGER is not set | ||
175 | # CONFIG_X86_GENERICARCH is not set | ||
176 | # CONFIG_X86_VSMP is not set | ||
177 | # CONFIG_X86_RDC321X is not set | 188 | # CONFIG_X86_RDC321X is not set |
189 | # CONFIG_X86_32_NON_STANDARD is not set | ||
178 | CONFIG_SCHED_OMIT_FRAME_POINTER=y | 190 | CONFIG_SCHED_OMIT_FRAME_POINTER=y |
179 | CONFIG_PARAVIRT_GUEST=y | 191 | CONFIG_PARAVIRT_GUEST=y |
180 | CONFIG_VMI=y | 192 | # CONFIG_PARAVIRT_CLOCK is not set |
181 | CONFIG_KVM_CLOCK=y | ||
182 | CONFIG_KVM_GUEST=y | ||
183 | CONFIG_LGUEST_GUEST=y | ||
184 | CONFIG_PARAVIRT=y | ||
185 | CONFIG_PARAVIRT_CLOCK=y | ||
186 | # CONFIG_MEMTEST is not set | 193 | # CONFIG_MEMTEST is not set |
187 | # CONFIG_M386 is not set | 194 | # CONFIG_M386 is not set |
188 | # CONFIG_M486 is not set | 195 | # CONFIG_M486 is not set |
@@ -211,11 +218,12 @@ CONFIG_M586=y | |||
211 | # CONFIG_GENERIC_CPU is not set | 218 | # CONFIG_GENERIC_CPU is not set |
212 | CONFIG_X86_GENERIC=y | 219 | CONFIG_X86_GENERIC=y |
213 | CONFIG_X86_CPU=y | 220 | CONFIG_X86_CPU=y |
221 | CONFIG_X86_L1_CACHE_BYTES=64 | ||
222 | CONFIG_X86_INTERNODE_CACHE_BYTES=64 | ||
214 | CONFIG_X86_CMPXCHG=y | 223 | CONFIG_X86_CMPXCHG=y |
215 | CONFIG_X86_L1_CACHE_SHIFT=7 | 224 | CONFIG_X86_L1_CACHE_SHIFT=5 |
216 | CONFIG_X86_XADD=y | 225 | CONFIG_X86_XADD=y |
217 | # CONFIG_X86_PPRO_FENCE is not set | 226 | # CONFIG_X86_PPRO_FENCE is not set |
218 | CONFIG_X86_F00F_BUG=y | ||
219 | CONFIG_X86_WP_WORKS_OK=y | 227 | CONFIG_X86_WP_WORKS_OK=y |
220 | CONFIG_X86_INVLPG=y | 228 | CONFIG_X86_INVLPG=y |
221 | CONFIG_X86_BSWAP=y | 229 | CONFIG_X86_BSWAP=y |
@@ -227,7 +235,7 @@ CONFIG_X86_MINIMUM_CPU_FAMILY=4 | |||
227 | CONFIG_CPU_SUP_INTEL=y | 235 | CONFIG_CPU_SUP_INTEL=y |
228 | CONFIG_CPU_SUP_CYRIX_32=y | 236 | CONFIG_CPU_SUP_CYRIX_32=y |
229 | CONFIG_CPU_SUP_AMD=y | 237 | CONFIG_CPU_SUP_AMD=y |
230 | CONFIG_CPU_SUP_CENTAUR_32=y | 238 | CONFIG_CPU_SUP_CENTAUR=y |
231 | CONFIG_CPU_SUP_TRANSMETA_32=y | 239 | CONFIG_CPU_SUP_TRANSMETA_32=y |
232 | CONFIG_CPU_SUP_UMC_32=y | 240 | CONFIG_CPU_SUP_UMC_32=y |
233 | CONFIG_HPET_TIMER=y | 241 | CONFIG_HPET_TIMER=y |
@@ -255,6 +263,7 @@ CONFIG_MICROCODE_AMD=y | |||
255 | CONFIG_MICROCODE_OLD_INTERFACE=y | 263 | CONFIG_MICROCODE_OLD_INTERFACE=y |
256 | CONFIG_X86_MSR=m | 264 | CONFIG_X86_MSR=m |
257 | CONFIG_X86_CPUID=m | 265 | CONFIG_X86_CPUID=m |
266 | CONFIG_X86_CPU_DEBUG=m | ||
258 | # CONFIG_NOHIGHMEM is not set | 267 | # CONFIG_NOHIGHMEM is not set |
259 | CONFIG_HIGHMEM4G=y | 268 | CONFIG_HIGHMEM4G=y |
260 | # CONFIG_HIGHMEM64G is not set | 269 | # CONFIG_HIGHMEM64G is not set |
@@ -283,7 +292,10 @@ CONFIG_ZONE_DMA_FLAG=1 | |||
283 | CONFIG_BOUNCE=y | 292 | CONFIG_BOUNCE=y |
284 | CONFIG_VIRT_TO_BUS=y | 293 | CONFIG_VIRT_TO_BUS=y |
285 | CONFIG_UNEVICTABLE_LRU=y | 294 | CONFIG_UNEVICTABLE_LRU=y |
295 | CONFIG_HAVE_MLOCK=y | ||
296 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
286 | CONFIG_MMU_NOTIFIER=y | 297 | CONFIG_MMU_NOTIFIER=y |
298 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
287 | # CONFIG_HIGHPTE is not set | 299 | # CONFIG_HIGHPTE is not set |
288 | # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set | 300 | # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set |
289 | CONFIG_X86_RESERVE_LOW_64K=y | 301 | CONFIG_X86_RESERVE_LOW_64K=y |
@@ -293,8 +305,8 @@ CONFIG_MTRR_SANITIZER=y | |||
293 | CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 | 305 | CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 |
294 | CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 | 306 | CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 |
295 | # CONFIG_X86_PAT is not set | 307 | # CONFIG_X86_PAT is not set |
296 | # CONFIG_EFI is not set | ||
297 | # CONFIG_SECCOMP is not set | 308 | # CONFIG_SECCOMP is not set |
309 | # CONFIG_CC_STACKPROTECTOR is not set | ||
298 | # CONFIG_HZ_100 is not set | 310 | # CONFIG_HZ_100 is not set |
299 | # CONFIG_HZ_250 is not set | 311 | # CONFIG_HZ_250 is not set |
300 | CONFIG_HZ_300=y | 312 | CONFIG_HZ_300=y |
@@ -371,7 +383,6 @@ CONFIG_X86_POWERNOW_K6=m | |||
371 | CONFIG_X86_POWERNOW_K7=m | 383 | CONFIG_X86_POWERNOW_K7=m |
372 | CONFIG_X86_POWERNOW_K7_ACPI=y | 384 | CONFIG_X86_POWERNOW_K7_ACPI=y |
373 | CONFIG_X86_POWERNOW_K8=m | 385 | CONFIG_X86_POWERNOW_K8=m |
374 | CONFIG_X86_POWERNOW_K8_ACPI=y | ||
375 | CONFIG_X86_GX_SUSPMOD=m | 386 | CONFIG_X86_GX_SUSPMOD=m |
376 | CONFIG_X86_SPEEDSTEP_CENTRINO=m | 387 | CONFIG_X86_SPEEDSTEP_CENTRINO=m |
377 | CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y | 388 | CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y |
@@ -415,6 +426,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y | |||
415 | CONFIG_PCI_LEGACY=y | 426 | CONFIG_PCI_LEGACY=y |
416 | CONFIG_PCI_STUB=m | 427 | CONFIG_PCI_STUB=m |
417 | CONFIG_HT_IRQ=y | 428 | CONFIG_HT_IRQ=y |
429 | # CONFIG_PCI_IOV is not set | ||
418 | CONFIG_ISA_DMA_API=y | 430 | CONFIG_ISA_DMA_API=y |
419 | CONFIG_ISA=y | 431 | CONFIG_ISA=y |
420 | # CONFIG_EISA is not set | 432 | # CONFIG_EISA is not set |
@@ -471,7 +483,6 @@ CONFIG_NET=y | |||
471 | # | 483 | # |
472 | # Networking options | 484 | # Networking options |
473 | # | 485 | # |
474 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
475 | CONFIG_PACKET=m | 486 | CONFIG_PACKET=m |
476 | CONFIG_PACKET_MMAP=y | 487 | CONFIG_PACKET_MMAP=y |
477 | CONFIG_UNIX=y | 488 | CONFIG_UNIX=y |
@@ -512,7 +523,7 @@ CONFIG_INET_TUNNEL=m | |||
512 | CONFIG_INET_XFRM_MODE_TRANSPORT=m | 523 | CONFIG_INET_XFRM_MODE_TRANSPORT=m |
513 | CONFIG_INET_XFRM_MODE_TUNNEL=m | 524 | CONFIG_INET_XFRM_MODE_TUNNEL=m |
514 | CONFIG_INET_XFRM_MODE_BEET=m | 525 | CONFIG_INET_XFRM_MODE_BEET=m |
515 | CONFIG_INET_LRO=m | 526 | CONFIG_INET_LRO=y |
516 | CONFIG_INET_DIAG=m | 527 | CONFIG_INET_DIAG=m |
517 | CONFIG_INET_TCP_DIAG=m | 528 | CONFIG_INET_TCP_DIAG=m |
518 | CONFIG_TCP_CONG_ADVANCED=y | 529 | CONFIG_TCP_CONG_ADVANCED=y |
@@ -596,6 +607,8 @@ CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m | |||
596 | CONFIG_NETFILTER_XT_TARGET_CONNMARK=m | 607 | CONFIG_NETFILTER_XT_TARGET_CONNMARK=m |
597 | CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m | 608 | CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m |
598 | CONFIG_NETFILTER_XT_TARGET_DSCP=m | 609 | CONFIG_NETFILTER_XT_TARGET_DSCP=m |
610 | CONFIG_NETFILTER_XT_TARGET_HL=m | ||
611 | CONFIG_NETFILTER_XT_TARGET_LED=m | ||
599 | CONFIG_NETFILTER_XT_TARGET_MARK=m | 612 | CONFIG_NETFILTER_XT_TARGET_MARK=m |
600 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | 613 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m |
601 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 614 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
@@ -606,6 +619,7 @@ CONFIG_NETFILTER_XT_TARGET_TRACE=m | |||
606 | CONFIG_NETFILTER_XT_TARGET_SECMARK=m | 619 | CONFIG_NETFILTER_XT_TARGET_SECMARK=m |
607 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | 620 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m |
608 | CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m | 621 | CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m |
622 | CONFIG_NETFILTER_XT_MATCH_CLUSTER=m | ||
609 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 623 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
610 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | 624 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m |
611 | CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m | 625 | CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m |
@@ -616,6 +630,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m | |||
616 | CONFIG_NETFILTER_XT_MATCH_ESP=m | 630 | CONFIG_NETFILTER_XT_MATCH_ESP=m |
617 | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m | 631 | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m |
618 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | 632 | CONFIG_NETFILTER_XT_MATCH_HELPER=m |
633 | CONFIG_NETFILTER_XT_MATCH_HL=m | ||
619 | CONFIG_NETFILTER_XT_MATCH_IPRANGE=m | 634 | CONFIG_NETFILTER_XT_MATCH_IPRANGE=m |
620 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 635 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
621 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 636 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
@@ -729,11 +744,11 @@ CONFIG_IP6_NF_MATCH_HL=m | |||
729 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | 744 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m |
730 | CONFIG_IP6_NF_MATCH_MH=m | 745 | CONFIG_IP6_NF_MATCH_MH=m |
731 | CONFIG_IP6_NF_MATCH_RT=m | 746 | CONFIG_IP6_NF_MATCH_RT=m |
747 | CONFIG_IP6_NF_TARGET_HL=m | ||
732 | CONFIG_IP6_NF_TARGET_LOG=m | 748 | CONFIG_IP6_NF_TARGET_LOG=m |
733 | CONFIG_IP6_NF_FILTER=m | 749 | CONFIG_IP6_NF_FILTER=m |
734 | CONFIG_IP6_NF_TARGET_REJECT=m | 750 | CONFIG_IP6_NF_TARGET_REJECT=m |
735 | CONFIG_IP6_NF_MANGLE=m | 751 | CONFIG_IP6_NF_MANGLE=m |
736 | CONFIG_IP6_NF_TARGET_HL=m | ||
737 | CONFIG_IP6_NF_RAW=m | 752 | CONFIG_IP6_NF_RAW=m |
738 | CONFIG_IP6_NF_SECURITY=m | 753 | CONFIG_IP6_NF_SECURITY=m |
739 | 754 | ||
@@ -780,6 +795,8 @@ CONFIG_IP_SCTP=m | |||
780 | # CONFIG_SCTP_HMAC_NONE is not set | 795 | # CONFIG_SCTP_HMAC_NONE is not set |
781 | CONFIG_SCTP_HMAC_SHA1=y | 796 | CONFIG_SCTP_HMAC_SHA1=y |
782 | # CONFIG_SCTP_HMAC_MD5 is not set | 797 | # CONFIG_SCTP_HMAC_MD5 is not set |
798 | CONFIG_RDS=m | ||
799 | # CONFIG_RDS_DEBUG is not set | ||
783 | CONFIG_TIPC=m | 800 | CONFIG_TIPC=m |
784 | # CONFIG_TIPC_ADVANCED is not set | 801 | # CONFIG_TIPC_ADVANCED is not set |
785 | # CONFIG_TIPC_DEBUG is not set | 802 | # CONFIG_TIPC_DEBUG is not set |
@@ -816,6 +833,7 @@ CONFIG_ECONET=m | |||
816 | CONFIG_ECONET_AUNUDP=y | 833 | CONFIG_ECONET_AUNUDP=y |
817 | CONFIG_ECONET_NATIVE=y | 834 | CONFIG_ECONET_NATIVE=y |
818 | CONFIG_WAN_ROUTER=m | 835 | CONFIG_WAN_ROUTER=m |
836 | CONFIG_PHONET=m | ||
819 | CONFIG_NET_SCHED=y | 837 | CONFIG_NET_SCHED=y |
820 | 838 | ||
821 | # | 839 | # |
@@ -975,12 +993,10 @@ CONFIG_BT_HCIVHCI=m | |||
975 | CONFIG_AF_RXRPC=m | 993 | CONFIG_AF_RXRPC=m |
976 | # CONFIG_AF_RXRPC_DEBUG is not set | 994 | # CONFIG_AF_RXRPC_DEBUG is not set |
977 | CONFIG_RXKAD=m | 995 | CONFIG_RXKAD=m |
978 | CONFIG_PHONET=m | ||
979 | CONFIG_FIB_RULES=y | 996 | CONFIG_FIB_RULES=y |
980 | CONFIG_WIRELESS=y | 997 | CONFIG_WIRELESS=y |
981 | CONFIG_CFG80211=m | 998 | CONFIG_CFG80211=m |
982 | # CONFIG_CFG80211_REG_DEBUG is not set | 999 | # CONFIG_CFG80211_REG_DEBUG is not set |
983 | CONFIG_NL80211=y | ||
984 | CONFIG_WIRELESS_OLD_REGULATORY=y | 1000 | CONFIG_WIRELESS_OLD_REGULATORY=y |
985 | CONFIG_WIRELESS_EXT=y | 1001 | CONFIG_WIRELESS_EXT=y |
986 | CONFIG_WIRELESS_EXT_SYSFS=y | 1002 | CONFIG_WIRELESS_EXT_SYSFS=y |
@@ -1226,6 +1242,7 @@ CONFIG_ICS932S401=m | |||
1226 | CONFIG_ENCLOSURE_SERVICES=m | 1242 | CONFIG_ENCLOSURE_SERVICES=m |
1227 | CONFIG_HP_ILO=m | 1243 | CONFIG_HP_ILO=m |
1228 | CONFIG_DELL_LAPTOP=m | 1244 | CONFIG_DELL_LAPTOP=m |
1245 | CONFIG_ISL29003=m | ||
1229 | CONFIG_C2PORT=m | 1246 | CONFIG_C2PORT=m |
1230 | CONFIG_C2PORT_DURAMAR_2150=m | 1247 | CONFIG_C2PORT_DURAMAR_2150=m |
1231 | 1248 | ||
@@ -1242,6 +1259,7 @@ CONFIG_IDE=m | |||
1242 | # | 1259 | # |
1243 | # Please see Documentation/ide/ide.txt for help/info on IDE drives | 1260 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
1244 | # | 1261 | # |
1262 | CONFIG_IDE_XFER_MODE=y | ||
1245 | CONFIG_IDE_TIMINGS=y | 1263 | CONFIG_IDE_TIMINGS=y |
1246 | CONFIG_IDE_ATAPI=y | 1264 | CONFIG_IDE_ATAPI=y |
1247 | CONFIG_IDE_LEGACY=y | 1265 | CONFIG_IDE_LEGACY=y |
@@ -1401,11 +1419,16 @@ CONFIG_MEGARAID_MM=m | |||
1401 | CONFIG_MEGARAID_MAILBOX=m | 1419 | CONFIG_MEGARAID_MAILBOX=m |
1402 | CONFIG_MEGARAID_LEGACY=m | 1420 | CONFIG_MEGARAID_LEGACY=m |
1403 | CONFIG_MEGARAID_SAS=m | 1421 | CONFIG_MEGARAID_SAS=m |
1422 | CONFIG_SCSI_MPT2SAS=m | ||
1423 | CONFIG_SCSI_MPT2SAS_MAX_SGE=128 | ||
1424 | # CONFIG_SCSI_MPT2SAS_LOGGING is not set | ||
1404 | CONFIG_SCSI_HPTIOP=m | 1425 | CONFIG_SCSI_HPTIOP=m |
1405 | CONFIG_SCSI_BUSLOGIC=m | 1426 | CONFIG_SCSI_BUSLOGIC=m |
1406 | CONFIG_SCSI_FLASHPOINT=y | 1427 | CONFIG_SCSI_FLASHPOINT=y |
1407 | CONFIG_LIBFC=m | 1428 | CONFIG_LIBFC=m |
1429 | CONFIG_LIBFCOE=m | ||
1408 | CONFIG_FCOE=m | 1430 | CONFIG_FCOE=m |
1431 | CONFIG_FCOE_FNIC=m | ||
1409 | CONFIG_SCSI_DMX3191D=m | 1432 | CONFIG_SCSI_DMX3191D=m |
1410 | CONFIG_SCSI_DTC3280=m | 1433 | CONFIG_SCSI_DTC3280=m |
1411 | CONFIG_SCSI_EATA=m | 1434 | CONFIG_SCSI_EATA=m |
@@ -1464,6 +1487,10 @@ CONFIG_SCSI_DH_RDAC=m | |||
1464 | CONFIG_SCSI_DH_HP_SW=m | 1487 | CONFIG_SCSI_DH_HP_SW=m |
1465 | CONFIG_SCSI_DH_EMC=m | 1488 | CONFIG_SCSI_DH_EMC=m |
1466 | CONFIG_SCSI_DH_ALUA=m | 1489 | CONFIG_SCSI_DH_ALUA=m |
1490 | CONFIG_SCSI_OSD_INITIATOR=m | ||
1491 | CONFIG_SCSI_OSD_ULD=m | ||
1492 | CONFIG_SCSI_OSD_DPRINT_SENSE=1 | ||
1493 | # CONFIG_SCSI_OSD_DEBUG is not set | ||
1467 | CONFIG_ATA=m | 1494 | CONFIG_ATA=m |
1468 | # CONFIG_ATA_NONSTANDARD is not set | 1495 | # CONFIG_ATA_NONSTANDARD is not set |
1469 | CONFIG_ATA_ACPI=y | 1496 | CONFIG_ATA_ACPI=y |
@@ -1542,7 +1569,7 @@ CONFIG_MD_RAID0=m | |||
1542 | CONFIG_MD_RAID1=m | 1569 | CONFIG_MD_RAID1=m |
1543 | CONFIG_MD_RAID10=m | 1570 | CONFIG_MD_RAID10=m |
1544 | CONFIG_MD_RAID456=m | 1571 | CONFIG_MD_RAID456=m |
1545 | CONFIG_MD_RAID5_RESHAPE=y | 1572 | CONFIG_MD_RAID6_PQ=m |
1546 | CONFIG_MD_MULTIPATH=m | 1573 | CONFIG_MD_MULTIPATH=m |
1547 | CONFIG_MD_FAULTY=m | 1574 | CONFIG_MD_FAULTY=m |
1548 | CONFIG_BLK_DEV_DM=m | 1575 | CONFIG_BLK_DEV_DM=m |
@@ -1595,6 +1622,7 @@ CONFIG_I2O_SCSI=m | |||
1595 | CONFIG_I2O_PROC=m | 1622 | CONFIG_I2O_PROC=m |
1596 | # CONFIG_MACINTOSH_DRIVERS is not set | 1623 | # CONFIG_MACINTOSH_DRIVERS is not set |
1597 | CONFIG_NETDEVICES=y | 1624 | CONFIG_NETDEVICES=y |
1625 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
1598 | CONFIG_IFB=m | 1626 | CONFIG_IFB=m |
1599 | CONFIG_DUMMY=m | 1627 | CONFIG_DUMMY=m |
1600 | CONFIG_BONDING=m | 1628 | CONFIG_BONDING=m |
@@ -1655,6 +1683,7 @@ CONFIG_ULTRA=m | |||
1655 | CONFIG_SMC9194=m | 1683 | CONFIG_SMC9194=m |
1656 | CONFIG_ENC28J60=m | 1684 | CONFIG_ENC28J60=m |
1657 | # CONFIG_ENC28J60_WRITEVERIFY is not set | 1685 | # CONFIG_ENC28J60_WRITEVERIFY is not set |
1686 | CONFIG_ETHOC=m | ||
1658 | CONFIG_NET_VENDOR_RACAL=y | 1687 | CONFIG_NET_VENDOR_RACAL=y |
1659 | CONFIG_NI52=m | 1688 | CONFIG_NI52=m |
1660 | CONFIG_NI65=m | 1689 | CONFIG_NI65=m |
@@ -1738,7 +1767,7 @@ CONFIG_E1000=m | |||
1738 | CONFIG_E1000E=m | 1767 | CONFIG_E1000E=m |
1739 | CONFIG_IP1000=m | 1768 | CONFIG_IP1000=m |
1740 | CONFIG_IGB=m | 1769 | CONFIG_IGB=m |
1741 | CONFIG_IGB_LRO=y | 1770 | CONFIG_IGBVF=m |
1742 | CONFIG_NS83820=m | 1771 | CONFIG_NS83820=m |
1743 | CONFIG_HAMACHI=m | 1772 | CONFIG_HAMACHI=m |
1744 | CONFIG_YELLOWFIN=m | 1773 | CONFIG_YELLOWFIN=m |
@@ -1764,6 +1793,8 @@ CONFIG_ENIC=m | |||
1764 | CONFIG_IXGBE=m | 1793 | CONFIG_IXGBE=m |
1765 | CONFIG_IXGB=m | 1794 | CONFIG_IXGB=m |
1766 | CONFIG_S2IO=m | 1795 | CONFIG_S2IO=m |
1796 | CONFIG_VXGE=m | ||
1797 | # CONFIG_VXGE_DEBUG_TRACE_ALL is not set | ||
1767 | CONFIG_MYRI10GE=m | 1798 | CONFIG_MYRI10GE=m |
1768 | CONFIG_NETXEN_NIC=m | 1799 | CONFIG_NETXEN_NIC=m |
1769 | CONFIG_NIU=m | 1800 | CONFIG_NIU=m |
@@ -1793,21 +1824,15 @@ CONFIG_LIBERTAS=m | |||
1793 | CONFIG_LIBERTAS_USB=m | 1824 | CONFIG_LIBERTAS_USB=m |
1794 | CONFIG_LIBERTAS_CS=m | 1825 | CONFIG_LIBERTAS_CS=m |
1795 | CONFIG_LIBERTAS_SDIO=m | 1826 | CONFIG_LIBERTAS_SDIO=m |
1827 | CONFIG_LIBERTAS_SPI=m | ||
1796 | # CONFIG_LIBERTAS_DEBUG is not set | 1828 | # CONFIG_LIBERTAS_DEBUG is not set |
1797 | CONFIG_LIBERTAS_THINFIRM=m | 1829 | CONFIG_LIBERTAS_THINFIRM=m |
1798 | CONFIG_LIBERTAS_THINFIRM_USB=m | 1830 | CONFIG_LIBERTAS_THINFIRM_USB=m |
1799 | CONFIG_AIRO=m | 1831 | CONFIG_AIRO=m |
1800 | CONFIG_HERMES=m | ||
1801 | CONFIG_HERMES_CACHE_FW_ON_INIT=y | ||
1802 | CONFIG_PLX_HERMES=m | ||
1803 | CONFIG_TMD_HERMES=m | ||
1804 | CONFIG_NORTEL_HERMES=m | ||
1805 | CONFIG_PCI_HERMES=m | ||
1806 | CONFIG_PCMCIA_HERMES=m | ||
1807 | CONFIG_PCMCIA_SPECTRUM=m | ||
1808 | CONFIG_ATMEL=m | 1832 | CONFIG_ATMEL=m |
1809 | CONFIG_PCI_ATMEL=m | 1833 | CONFIG_PCI_ATMEL=m |
1810 | CONFIG_PCMCIA_ATMEL=m | 1834 | CONFIG_PCMCIA_ATMEL=m |
1835 | CONFIG_AT76C50X_USB=m | ||
1811 | CONFIG_AIRO_CS=m | 1836 | CONFIG_AIRO_CS=m |
1812 | CONFIG_PCMCIA_WL3501=m | 1837 | CONFIG_PCMCIA_WL3501=m |
1813 | CONFIG_PRISM54=m | 1838 | CONFIG_PRISM54=m |
@@ -1817,13 +1842,18 @@ CONFIG_RTL8180=m | |||
1817 | CONFIG_RTL8187=m | 1842 | CONFIG_RTL8187=m |
1818 | CONFIG_ADM8211=m | 1843 | CONFIG_ADM8211=m |
1819 | CONFIG_MAC80211_HWSIM=m | 1844 | CONFIG_MAC80211_HWSIM=m |
1845 | CONFIG_MWL8K=m | ||
1820 | CONFIG_P54_COMMON=m | 1846 | CONFIG_P54_COMMON=m |
1821 | CONFIG_P54_USB=m | 1847 | CONFIG_P54_USB=m |
1822 | CONFIG_P54_PCI=m | 1848 | CONFIG_P54_PCI=m |
1849 | CONFIG_P54_SPI=m | ||
1850 | CONFIG_P54_LEDS=y | ||
1823 | CONFIG_ATH5K=m | 1851 | CONFIG_ATH5K=m |
1824 | # CONFIG_ATH5K_DEBUG is not set | 1852 | # CONFIG_ATH5K_DEBUG is not set |
1825 | CONFIG_ATH9K=m | 1853 | CONFIG_ATH9K=m |
1826 | # CONFIG_ATH9K_DEBUG is not set | 1854 | # CONFIG_ATH9K_DEBUG is not set |
1855 | CONFIG_AR9170_USB=m | ||
1856 | CONFIG_AR9170_LEDS=y | ||
1827 | CONFIG_IPW2100=m | 1857 | CONFIG_IPW2100=m |
1828 | CONFIG_IPW2100_MONITOR=y | 1858 | CONFIG_IPW2100_MONITOR=y |
1829 | # CONFIG_IPW2100_DEBUG is not set | 1859 | # CONFIG_IPW2100_DEBUG is not set |
@@ -1836,20 +1866,15 @@ CONFIG_IPW2200_QOS=y | |||
1836 | CONFIG_LIBIPW=m | 1866 | CONFIG_LIBIPW=m |
1837 | # CONFIG_LIBIPW_DEBUG is not set | 1867 | # CONFIG_LIBIPW_DEBUG is not set |
1838 | CONFIG_IWLWIFI=m | 1868 | CONFIG_IWLWIFI=m |
1839 | CONFIG_IWLCORE=m | ||
1840 | # CONFIG_IWLWIFI_LEDS is not set | 1869 | # CONFIG_IWLWIFI_LEDS is not set |
1841 | # CONFIG_IWLWIFI_RFKILL is not set | 1870 | # CONFIG_IWLWIFI_RFKILL is not set |
1871 | # CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT is not set | ||
1842 | # CONFIG_IWLWIFI_DEBUG is not set | 1872 | # CONFIG_IWLWIFI_DEBUG is not set |
1843 | CONFIG_IWLAGN=m | 1873 | CONFIG_IWLAGN=m |
1844 | CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y | ||
1845 | # CONFIG_IWLAGN_LEDS is not set | ||
1846 | CONFIG_IWL4965=y | 1874 | CONFIG_IWL4965=y |
1847 | CONFIG_IWL5000=y | 1875 | CONFIG_IWL5000=y |
1848 | CONFIG_IWL3945=m | 1876 | CONFIG_IWL3945=m |
1849 | CONFIG_IWL3945_RFKILL=y | ||
1850 | # CONFIG_IWL3945_SPECTRUM_MEASUREMENT is not set | 1877 | # CONFIG_IWL3945_SPECTRUM_MEASUREMENT is not set |
1851 | CONFIG_IWL3945_LEDS=y | ||
1852 | # CONFIG_IWL3945_DEBUG is not set | ||
1853 | CONFIG_HOSTAP=m | 1878 | CONFIG_HOSTAP=m |
1854 | CONFIG_HOSTAP_FIRMWARE=y | 1879 | CONFIG_HOSTAP_FIRMWARE=y |
1855 | CONFIG_HOSTAP_FIRMWARE_NVRAM=y | 1880 | CONFIG_HOSTAP_FIRMWARE_NVRAM=y |
@@ -1891,6 +1916,14 @@ CONFIG_RT2X00_LIB_CRYPTO=y | |||
1891 | CONFIG_RT2X00_LIB_RFKILL=y | 1916 | CONFIG_RT2X00_LIB_RFKILL=y |
1892 | CONFIG_RT2X00_LIB_LEDS=y | 1917 | CONFIG_RT2X00_LIB_LEDS=y |
1893 | # CONFIG_RT2X00_DEBUG is not set | 1918 | # CONFIG_RT2X00_DEBUG is not set |
1919 | CONFIG_HERMES=m | ||
1920 | CONFIG_HERMES_CACHE_FW_ON_INIT=y | ||
1921 | CONFIG_PLX_HERMES=m | ||
1922 | CONFIG_TMD_HERMES=m | ||
1923 | CONFIG_NORTEL_HERMES=m | ||
1924 | CONFIG_PCI_HERMES=m | ||
1925 | CONFIG_PCMCIA_HERMES=m | ||
1926 | CONFIG_PCMCIA_SPECTRUM=m | ||
1894 | 1927 | ||
1895 | # | 1928 | # |
1896 | # WiMAX Wireless Broadband devices | 1929 | # WiMAX Wireless Broadband devices |
@@ -1910,6 +1943,7 @@ CONFIG_USB_RTL8150=m | |||
1910 | CONFIG_USB_USBNET=m | 1943 | CONFIG_USB_USBNET=m |
1911 | CONFIG_USB_NET_AX8817X=m | 1944 | CONFIG_USB_NET_AX8817X=m |
1912 | CONFIG_USB_NET_CDCETHER=m | 1945 | CONFIG_USB_NET_CDCETHER=m |
1946 | CONFIG_USB_NET_CDC_EEM=m | ||
1913 | CONFIG_USB_NET_DM9601=m | 1947 | CONFIG_USB_NET_DM9601=m |
1914 | CONFIG_USB_NET_SMSC95XX=m | 1948 | CONFIG_USB_NET_SMSC95XX=m |
1915 | CONFIG_USB_NET_GL620A=m | 1949 | CONFIG_USB_NET_GL620A=m |
@@ -2157,6 +2191,9 @@ CONFIG_TABLET_USB_KBTAB=m | |||
2157 | CONFIG_TABLET_USB_WACOM=m | 2191 | CONFIG_TABLET_USB_WACOM=m |
2158 | CONFIG_INPUT_TOUCHSCREEN=y | 2192 | CONFIG_INPUT_TOUCHSCREEN=y |
2159 | CONFIG_TOUCHSCREEN_ADS7846=m | 2193 | CONFIG_TOUCHSCREEN_ADS7846=m |
2194 | CONFIG_TOUCHSCREEN_AD7877=m | ||
2195 | CONFIG_TOUCHSCREEN_AD7879_I2C=m | ||
2196 | CONFIG_TOUCHSCREEN_AD7879=m | ||
2160 | CONFIG_TOUCHSCREEN_FUJITSU=m | 2197 | CONFIG_TOUCHSCREEN_FUJITSU=m |
2161 | CONFIG_TOUCHSCREEN_GUNZE=m | 2198 | CONFIG_TOUCHSCREEN_GUNZE=m |
2162 | CONFIG_TOUCHSCREEN_ELO=m | 2199 | CONFIG_TOUCHSCREEN_ELO=m |
@@ -2200,6 +2237,7 @@ CONFIG_INPUT_YEALINK=m | |||
2200 | CONFIG_INPUT_CM109=m | 2237 | CONFIG_INPUT_CM109=m |
2201 | CONFIG_INPUT_UINPUT=m | 2238 | CONFIG_INPUT_UINPUT=m |
2202 | CONFIG_INPUT_PCF50633_PMU=m | 2239 | CONFIG_INPUT_PCF50633_PMU=m |
2240 | CONFIG_INPUT_GPIO_ROTARY_ENCODER=m | ||
2203 | 2241 | ||
2204 | # | 2242 | # |
2205 | # Hardware I/O ports | 2243 | # Hardware I/O ports |
@@ -2266,6 +2304,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
2266 | # | 2304 | # |
2267 | # Non-8250 serial port support | 2305 | # Non-8250 serial port support |
2268 | # | 2306 | # |
2307 | CONFIG_SERIAL_MAX3100=m | ||
2269 | CONFIG_SERIAL_CORE=y | 2308 | CONFIG_SERIAL_CORE=y |
2270 | CONFIG_SERIAL_CORE_CONSOLE=y | 2309 | CONFIG_SERIAL_CORE_CONSOLE=y |
2271 | CONFIG_SERIAL_JSM=m | 2310 | CONFIG_SERIAL_JSM=m |
@@ -2276,7 +2315,7 @@ CONFIG_PRINTER=m | |||
2276 | # CONFIG_LP_CONSOLE is not set | 2315 | # CONFIG_LP_CONSOLE is not set |
2277 | CONFIG_PPDEV=m | 2316 | CONFIG_PPDEV=m |
2278 | CONFIG_HVC_DRIVER=y | 2317 | CONFIG_HVC_DRIVER=y |
2279 | CONFIG_VIRTIO_CONSOLE=y | 2318 | CONFIG_VIRTIO_CONSOLE=m |
2280 | CONFIG_IPMI_HANDLER=m | 2319 | CONFIG_IPMI_HANDLER=m |
2281 | # CONFIG_IPMI_PANIC_EVENT is not set | 2320 | # CONFIG_IPMI_PANIC_EVENT is not set |
2282 | CONFIG_IPMI_DEVICE_INTERFACE=m | 2321 | CONFIG_IPMI_DEVICE_INTERFACE=m |
@@ -2284,6 +2323,7 @@ CONFIG_IPMI_SI=m | |||
2284 | CONFIG_IPMI_WATCHDOG=m | 2323 | CONFIG_IPMI_WATCHDOG=m |
2285 | CONFIG_IPMI_POWEROFF=m | 2324 | CONFIG_IPMI_POWEROFF=m |
2286 | CONFIG_HW_RANDOM=m | 2325 | CONFIG_HW_RANDOM=m |
2326 | CONFIG_HW_RANDOM_TIMERIOMEM=m | ||
2287 | CONFIG_HW_RANDOM_INTEL=m | 2327 | CONFIG_HW_RANDOM_INTEL=m |
2288 | CONFIG_HW_RANDOM_AMD=m | 2328 | CONFIG_HW_RANDOM_AMD=m |
2289 | CONFIG_HW_RANDOM_GEODE=m | 2329 | CONFIG_HW_RANDOM_GEODE=m |
@@ -2385,7 +2425,6 @@ CONFIG_SCx200_ACB=m | |||
2385 | # Miscellaneous I2C Chip support | 2425 | # Miscellaneous I2C Chip support |
2386 | # | 2426 | # |
2387 | CONFIG_DS1682=m | 2427 | CONFIG_DS1682=m |
2388 | CONFIG_SENSORS_PCF8591=m | ||
2389 | CONFIG_SENSORS_MAX6875=m | 2428 | CONFIG_SENSORS_MAX6875=m |
2390 | CONFIG_SENSORS_TSL2550=m | 2429 | CONFIG_SENSORS_TSL2550=m |
2391 | # CONFIG_I2C_DEBUG_CORE is not set | 2430 | # CONFIG_I2C_DEBUG_CORE is not set |
@@ -2479,6 +2518,7 @@ CONFIG_SENSORS_ADT7473=m | |||
2479 | CONFIG_SENSORS_ADT7475=m | 2518 | CONFIG_SENSORS_ADT7475=m |
2480 | CONFIG_SENSORS_K8TEMP=m | 2519 | CONFIG_SENSORS_K8TEMP=m |
2481 | CONFIG_SENSORS_ASB100=m | 2520 | CONFIG_SENSORS_ASB100=m |
2521 | CONFIG_SENSORS_ATK0110=m | ||
2482 | CONFIG_SENSORS_ATXP1=m | 2522 | CONFIG_SENSORS_ATXP1=m |
2483 | CONFIG_SENSORS_DS1621=m | 2523 | CONFIG_SENSORS_DS1621=m |
2484 | CONFIG_SENSORS_I5K_AMB=m | 2524 | CONFIG_SENSORS_I5K_AMB=m |
@@ -2488,6 +2528,7 @@ CONFIG_SENSORS_F75375S=m | |||
2488 | CONFIG_SENSORS_FSCHER=m | 2528 | CONFIG_SENSORS_FSCHER=m |
2489 | CONFIG_SENSORS_FSCPOS=m | 2529 | CONFIG_SENSORS_FSCPOS=m |
2490 | CONFIG_SENSORS_FSCHMD=m | 2530 | CONFIG_SENSORS_FSCHMD=m |
2531 | CONFIG_SENSORS_G760A=m | ||
2491 | CONFIG_SENSORS_GL518SM=m | 2532 | CONFIG_SENSORS_GL518SM=m |
2492 | CONFIG_SENSORS_GL520SM=m | 2533 | CONFIG_SENSORS_GL520SM=m |
2493 | CONFIG_SENSORS_CORETEMP=m | 2534 | CONFIG_SENSORS_CORETEMP=m |
@@ -2506,12 +2547,16 @@ CONFIG_SENSORS_LM87=m | |||
2506 | CONFIG_SENSORS_LM90=m | 2547 | CONFIG_SENSORS_LM90=m |
2507 | CONFIG_SENSORS_LM92=m | 2548 | CONFIG_SENSORS_LM92=m |
2508 | CONFIG_SENSORS_LM93=m | 2549 | CONFIG_SENSORS_LM93=m |
2550 | CONFIG_SENSORS_LTC4215=m | ||
2509 | CONFIG_SENSORS_LTC4245=m | 2551 | CONFIG_SENSORS_LTC4245=m |
2552 | CONFIG_SENSORS_LM95241=m | ||
2510 | CONFIG_SENSORS_MAX1111=m | 2553 | CONFIG_SENSORS_MAX1111=m |
2511 | CONFIG_SENSORS_MAX1619=m | 2554 | CONFIG_SENSORS_MAX1619=m |
2512 | CONFIG_SENSORS_MAX6650=m | 2555 | CONFIG_SENSORS_MAX6650=m |
2513 | CONFIG_SENSORS_PC87360=m | 2556 | CONFIG_SENSORS_PC87360=m |
2514 | CONFIG_SENSORS_PC87427=m | 2557 | CONFIG_SENSORS_PC87427=m |
2558 | CONFIG_SENSORS_PCF8591=m | ||
2559 | CONFIG_SENSORS_SHT15=m | ||
2515 | CONFIG_SENSORS_SIS5595=m | 2560 | CONFIG_SENSORS_SIS5595=m |
2516 | CONFIG_SENSORS_DME1737=m | 2561 | CONFIG_SENSORS_DME1737=m |
2517 | CONFIG_SENSORS_SMSC47M1=m | 2562 | CONFIG_SENSORS_SMSC47M1=m |
@@ -2581,7 +2626,6 @@ CONFIG_SBC_EPX_C3_WATCHDOG=m | |||
2581 | CONFIG_PCWATCHDOG=m | 2626 | CONFIG_PCWATCHDOG=m |
2582 | CONFIG_MIXCOMWD=m | 2627 | CONFIG_MIXCOMWD=m |
2583 | CONFIG_WDT=m | 2628 | CONFIG_WDT=m |
2584 | CONFIG_WDT_501=y | ||
2585 | 2629 | ||
2586 | # | 2630 | # |
2587 | # PCI-based Watchdog Cards | 2631 | # PCI-based Watchdog Cards |
@@ -2658,7 +2702,7 @@ CONFIG_VIDEO_SAA7146=m | |||
2658 | CONFIG_VIDEO_SAA7146_VV=m | 2702 | CONFIG_VIDEO_SAA7146_VV=m |
2659 | # CONFIG_MEDIA_ATTACH is not set | 2703 | # CONFIG_MEDIA_ATTACH is not set |
2660 | CONFIG_MEDIA_TUNER=m | 2704 | CONFIG_MEDIA_TUNER=m |
2661 | # CONFIG_MEDIA_TUNER_CUSTOMIZE is not set | 2705 | # CONFIG_MEDIA_TUNER_CUSTOMISE is not set |
2662 | CONFIG_MEDIA_TUNER_SIMPLE=m | 2706 | CONFIG_MEDIA_TUNER_SIMPLE=m |
2663 | CONFIG_MEDIA_TUNER_TDA8290=m | 2707 | CONFIG_MEDIA_TUNER_TDA8290=m |
2664 | CONFIG_MEDIA_TUNER_TDA827X=m | 2708 | CONFIG_MEDIA_TUNER_TDA827X=m |
@@ -2675,6 +2719,7 @@ CONFIG_MEDIA_TUNER_XC2028=m | |||
2675 | CONFIG_MEDIA_TUNER_XC5000=m | 2719 | CONFIG_MEDIA_TUNER_XC5000=m |
2676 | CONFIG_MEDIA_TUNER_MXL5005S=m | 2720 | CONFIG_MEDIA_TUNER_MXL5005S=m |
2677 | CONFIG_MEDIA_TUNER_MXL5007T=m | 2721 | CONFIG_MEDIA_TUNER_MXL5007T=m |
2722 | CONFIG_MEDIA_TUNER_MC44S803=m | ||
2678 | CONFIG_VIDEO_V4L2=m | 2723 | CONFIG_VIDEO_V4L2=m |
2679 | CONFIG_VIDEO_V4L1=m | 2724 | CONFIG_VIDEO_V4L1=m |
2680 | CONFIG_VIDEOBUF_GEN=m | 2725 | CONFIG_VIDEOBUF_GEN=m |
@@ -2714,6 +2759,11 @@ CONFIG_VIDEO_WM8739=m | |||
2714 | CONFIG_VIDEO_VP27SMPX=m | 2759 | CONFIG_VIDEO_VP27SMPX=m |
2715 | 2760 | ||
2716 | # | 2761 | # |
2762 | # RDS decoders | ||
2763 | # | ||
2764 | CONFIG_VIDEO_SAA6588=m | ||
2765 | |||
2766 | # | ||
2717 | # Video decoders | 2767 | # Video decoders |
2718 | # | 2768 | # |
2719 | CONFIG_VIDEO_BT819=m | 2769 | CONFIG_VIDEO_BT819=m |
@@ -2723,8 +2773,6 @@ CONFIG_VIDEO_KS0127=m | |||
2723 | CONFIG_VIDEO_OV7670=m | 2773 | CONFIG_VIDEO_OV7670=m |
2724 | CONFIG_VIDEO_TCM825X=m | 2774 | CONFIG_VIDEO_TCM825X=m |
2725 | CONFIG_VIDEO_SAA7110=m | 2775 | CONFIG_VIDEO_SAA7110=m |
2726 | CONFIG_VIDEO_SAA7111=m | ||
2727 | CONFIG_VIDEO_SAA7114=m | ||
2728 | CONFIG_VIDEO_SAA711X=m | 2776 | CONFIG_VIDEO_SAA711X=m |
2729 | CONFIG_VIDEO_SAA717X=m | 2777 | CONFIG_VIDEO_SAA717X=m |
2730 | CONFIG_VIDEO_SAA7191=m | 2778 | CONFIG_VIDEO_SAA7191=m |
@@ -2758,7 +2806,6 @@ CONFIG_VIDEO_UPD64083=m | |||
2758 | CONFIG_VIDEO_VIVI=m | 2806 | CONFIG_VIDEO_VIVI=m |
2759 | CONFIG_VIDEO_BT848=m | 2807 | CONFIG_VIDEO_BT848=m |
2760 | CONFIG_VIDEO_BT848_DVB=y | 2808 | CONFIG_VIDEO_BT848_DVB=y |
2761 | CONFIG_VIDEO_SAA6588=m | ||
2762 | CONFIG_VIDEO_PMS=m | 2809 | CONFIG_VIDEO_PMS=m |
2763 | CONFIG_VIDEO_BWQCAM=m | 2810 | CONFIG_VIDEO_BWQCAM=m |
2764 | CONFIG_VIDEO_CQCAM=m | 2811 | CONFIG_VIDEO_CQCAM=m |
@@ -2797,11 +2844,9 @@ CONFIG_VIDEO_CX18=m | |||
2797 | CONFIG_VIDEO_CAFE_CCIC=m | 2844 | CONFIG_VIDEO_CAFE_CCIC=m |
2798 | CONFIG_SOC_CAMERA=m | 2845 | CONFIG_SOC_CAMERA=m |
2799 | CONFIG_SOC_CAMERA_MT9M001=m | 2846 | CONFIG_SOC_CAMERA_MT9M001=m |
2800 | # CONFIG_MT9M001_PCA9536_SWITCH is not set | ||
2801 | CONFIG_SOC_CAMERA_MT9M111=m | 2847 | CONFIG_SOC_CAMERA_MT9M111=m |
2802 | CONFIG_SOC_CAMERA_MT9T031=m | 2848 | CONFIG_SOC_CAMERA_MT9T031=m |
2803 | CONFIG_SOC_CAMERA_MT9V022=m | 2849 | CONFIG_SOC_CAMERA_MT9V022=m |
2804 | # CONFIG_MT9V022_PCA9536_SWITCH is not set | ||
2805 | CONFIG_SOC_CAMERA_TW9910=m | 2850 | CONFIG_SOC_CAMERA_TW9910=m |
2806 | CONFIG_SOC_CAMERA_PLATFORM=m | 2851 | CONFIG_SOC_CAMERA_PLATFORM=m |
2807 | CONFIG_SOC_CAMERA_OV772X=m | 2852 | CONFIG_SOC_CAMERA_OV772X=m |
@@ -2815,6 +2860,7 @@ CONFIG_USB_GSPCA_CONEX=m | |||
2815 | CONFIG_USB_GSPCA_ETOMS=m | 2860 | CONFIG_USB_GSPCA_ETOMS=m |
2816 | CONFIG_USB_GSPCA_FINEPIX=m | 2861 | CONFIG_USB_GSPCA_FINEPIX=m |
2817 | CONFIG_USB_GSPCA_MARS=m | 2862 | CONFIG_USB_GSPCA_MARS=m |
2863 | CONFIG_USB_GSPCA_MR97310A=m | ||
2818 | CONFIG_USB_GSPCA_OV519=m | 2864 | CONFIG_USB_GSPCA_OV519=m |
2819 | CONFIG_USB_GSPCA_OV534=m | 2865 | CONFIG_USB_GSPCA_OV534=m |
2820 | CONFIG_USB_GSPCA_PAC207=m | 2866 | CONFIG_USB_GSPCA_PAC207=m |
@@ -2827,6 +2873,8 @@ CONFIG_USB_GSPCA_SPCA505=m | |||
2827 | CONFIG_USB_GSPCA_SPCA506=m | 2873 | CONFIG_USB_GSPCA_SPCA506=m |
2828 | CONFIG_USB_GSPCA_SPCA508=m | 2874 | CONFIG_USB_GSPCA_SPCA508=m |
2829 | CONFIG_USB_GSPCA_SPCA561=m | 2875 | CONFIG_USB_GSPCA_SPCA561=m |
2876 | CONFIG_USB_GSPCA_SQ905=m | ||
2877 | CONFIG_USB_GSPCA_SQ905C=m | ||
2830 | CONFIG_USB_GSPCA_STK014=m | 2878 | CONFIG_USB_GSPCA_STK014=m |
2831 | CONFIG_USB_GSPCA_SUNPLUS=m | 2879 | CONFIG_USB_GSPCA_SUNPLUS=m |
2832 | CONFIG_USB_GSPCA_T613=m | 2880 | CONFIG_USB_GSPCA_T613=m |
@@ -2837,9 +2885,13 @@ CONFIG_VIDEO_PVRUSB2=m | |||
2837 | CONFIG_VIDEO_PVRUSB2_SYSFS=y | 2885 | CONFIG_VIDEO_PVRUSB2_SYSFS=y |
2838 | CONFIG_VIDEO_PVRUSB2_DVB=y | 2886 | CONFIG_VIDEO_PVRUSB2_DVB=y |
2839 | # CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set | 2887 | # CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set |
2888 | CONFIG_VIDEO_HDPVR=m | ||
2840 | CONFIG_VIDEO_EM28XX=m | 2889 | CONFIG_VIDEO_EM28XX=m |
2841 | CONFIG_VIDEO_EM28XX_ALSA=m | 2890 | CONFIG_VIDEO_EM28XX_ALSA=m |
2842 | CONFIG_VIDEO_EM28XX_DVB=m | 2891 | CONFIG_VIDEO_EM28XX_DVB=m |
2892 | CONFIG_VIDEO_CX231XX=m | ||
2893 | CONFIG_VIDEO_CX231XX_ALSA=m | ||
2894 | CONFIG_VIDEO_CX231XX_DVB=m | ||
2843 | CONFIG_VIDEO_USBVISION=m | 2895 | CONFIG_VIDEO_USBVISION=m |
2844 | CONFIG_VIDEO_USBVIDEO=m | 2896 | CONFIG_VIDEO_USBVIDEO=m |
2845 | CONFIG_USB_VICAM=m | 2897 | CONFIG_USB_VICAM=m |
@@ -2856,6 +2908,7 @@ CONFIG_USB_STV680=m | |||
2856 | CONFIG_USB_ZC0301=m | 2908 | CONFIG_USB_ZC0301=m |
2857 | CONFIG_USB_PWC=m | 2909 | CONFIG_USB_PWC=m |
2858 | # CONFIG_USB_PWC_DEBUG is not set | 2910 | # CONFIG_USB_PWC_DEBUG is not set |
2911 | CONFIG_USB_PWC_INPUT_EVDEV=y | ||
2859 | CONFIG_USB_ZR364XX=m | 2912 | CONFIG_USB_ZR364XX=m |
2860 | CONFIG_USB_STKWEBCAM=m | 2913 | CONFIG_USB_STKWEBCAM=m |
2861 | CONFIG_USB_S2255=m | 2914 | CONFIG_USB_S2255=m |
@@ -2924,6 +2977,7 @@ CONFIG_DVB_USB_CINERGY_T2=m | |||
2924 | CONFIG_DVB_USB_ANYSEE=m | 2977 | CONFIG_DVB_USB_ANYSEE=m |
2925 | CONFIG_DVB_USB_DTV5100=m | 2978 | CONFIG_DVB_USB_DTV5100=m |
2926 | CONFIG_DVB_USB_AF9015=m | 2979 | CONFIG_DVB_USB_AF9015=m |
2980 | CONFIG_DVB_USB_CE6230=m | ||
2927 | CONFIG_DVB_TTUSB_BUDGET=m | 2981 | CONFIG_DVB_TTUSB_BUDGET=m |
2928 | CONFIG_DVB_TTUSB_DEC=m | 2982 | CONFIG_DVB_TTUSB_DEC=m |
2929 | CONFIG_DVB_SIANO_SMS1XXX=m | 2983 | CONFIG_DVB_SIANO_SMS1XXX=m |
@@ -2962,28 +3016,19 @@ CONFIG_DVB_FIREDTV_INPUT=y | |||
2962 | # | 3016 | # |
2963 | # Supported DVB Frontends | 3017 | # Supported DVB Frontends |
2964 | # | 3018 | # |
2965 | |||
2966 | # | ||
2967 | # Customise DVB Frontends | ||
2968 | # | ||
2969 | # CONFIG_DVB_FE_CUSTOMISE is not set | 3019 | # CONFIG_DVB_FE_CUSTOMISE is not set |
2970 | |||
2971 | # | ||
2972 | # Multistandard (satellite) frontends | ||
2973 | # | ||
2974 | CONFIG_DVB_STB0899=m | 3020 | CONFIG_DVB_STB0899=m |
2975 | CONFIG_DVB_STB6100=m | 3021 | CONFIG_DVB_STB6100=m |
2976 | |||
2977 | # | ||
2978 | # DVB-S (satellite) frontends | ||
2979 | # | ||
2980 | CONFIG_DVB_CX24110=m | 3022 | CONFIG_DVB_CX24110=m |
2981 | CONFIG_DVB_CX24123=m | 3023 | CONFIG_DVB_CX24123=m |
2982 | CONFIG_DVB_MT312=m | 3024 | CONFIG_DVB_MT312=m |
3025 | CONFIG_DVB_ZL10036=m | ||
2983 | CONFIG_DVB_S5H1420=m | 3026 | CONFIG_DVB_S5H1420=m |
2984 | CONFIG_DVB_STV0288=m | 3027 | CONFIG_DVB_STV0288=m |
2985 | CONFIG_DVB_STB6000=m | 3028 | CONFIG_DVB_STB6000=m |
2986 | CONFIG_DVB_STV0299=m | 3029 | CONFIG_DVB_STV0299=m |
3030 | CONFIG_DVB_STV6110=m | ||
3031 | CONFIG_DVB_STV0900=m | ||
2987 | CONFIG_DVB_TDA8083=m | 3032 | CONFIG_DVB_TDA8083=m |
2988 | CONFIG_DVB_TDA10086=m | 3033 | CONFIG_DVB_TDA10086=m |
2989 | CONFIG_DVB_TDA8261=m | 3034 | CONFIG_DVB_TDA8261=m |
@@ -2994,15 +3039,10 @@ CONFIG_DVB_TDA826X=m | |||
2994 | CONFIG_DVB_TUA6100=m | 3039 | CONFIG_DVB_TUA6100=m |
2995 | CONFIG_DVB_CX24116=m | 3040 | CONFIG_DVB_CX24116=m |
2996 | CONFIG_DVB_SI21XX=m | 3041 | CONFIG_DVB_SI21XX=m |
2997 | |||
2998 | # | ||
2999 | # DVB-T (terrestrial) frontends | ||
3000 | # | ||
3001 | CONFIG_DVB_SP8870=m | 3042 | CONFIG_DVB_SP8870=m |
3002 | CONFIG_DVB_SP887X=m | 3043 | CONFIG_DVB_SP887X=m |
3003 | CONFIG_DVB_CX22700=m | 3044 | CONFIG_DVB_CX22700=m |
3004 | CONFIG_DVB_CX22702=m | 3045 | CONFIG_DVB_CX22702=m |
3005 | CONFIG_DVB_DRX397XD=m | ||
3006 | CONFIG_DVB_L64781=m | 3046 | CONFIG_DVB_L64781=m |
3007 | CONFIG_DVB_TDA1004X=m | 3047 | CONFIG_DVB_TDA1004X=m |
3008 | CONFIG_DVB_NXT6000=m | 3048 | CONFIG_DVB_NXT6000=m |
@@ -3013,52 +3053,26 @@ CONFIG_DVB_DIB3000MC=m | |||
3013 | CONFIG_DVB_DIB7000M=m | 3053 | CONFIG_DVB_DIB7000M=m |
3014 | CONFIG_DVB_DIB7000P=m | 3054 | CONFIG_DVB_DIB7000P=m |
3015 | CONFIG_DVB_TDA10048=m | 3055 | CONFIG_DVB_TDA10048=m |
3016 | 3056 | CONFIG_DVB_AF9013=m | |
3017 | # | ||
3018 | # DVB-C (cable) frontends | ||
3019 | # | ||
3020 | CONFIG_DVB_VES1820=m | 3057 | CONFIG_DVB_VES1820=m |
3021 | CONFIG_DVB_TDA10021=m | 3058 | CONFIG_DVB_TDA10021=m |
3022 | CONFIG_DVB_TDA10023=m | 3059 | CONFIG_DVB_TDA10023=m |
3023 | CONFIG_DVB_STV0297=m | 3060 | CONFIG_DVB_STV0297=m |
3024 | |||
3025 | # | ||
3026 | # ATSC (North American/Korean Terrestrial/Cable DTV) frontends | ||
3027 | # | ||
3028 | CONFIG_DVB_NXT200X=m | 3061 | CONFIG_DVB_NXT200X=m |
3029 | CONFIG_DVB_OR51211=m | 3062 | CONFIG_DVB_OR51211=m |
3030 | CONFIG_DVB_OR51132=m | 3063 | CONFIG_DVB_OR51132=m |
3031 | CONFIG_DVB_BCM3510=m | 3064 | CONFIG_DVB_BCM3510=m |
3032 | CONFIG_DVB_LGDT330X=m | 3065 | CONFIG_DVB_LGDT330X=m |
3033 | CONFIG_DVB_LGDT3304=m | 3066 | CONFIG_DVB_LGDT3305=m |
3034 | CONFIG_DVB_S5H1409=m | 3067 | CONFIG_DVB_S5H1409=m |
3035 | CONFIG_DVB_AU8522=m | 3068 | CONFIG_DVB_AU8522=m |
3036 | CONFIG_DVB_S5H1411=m | 3069 | CONFIG_DVB_S5H1411=m |
3037 | |||
3038 | # | ||
3039 | # ISDB-T (terrestrial) frontends | ||
3040 | # | ||
3041 | CONFIG_DVB_S921=m | ||
3042 | |||
3043 | # | ||
3044 | # Digital terrestrial only tuners/PLL | ||
3045 | # | ||
3046 | CONFIG_DVB_PLL=m | 3070 | CONFIG_DVB_PLL=m |
3047 | CONFIG_DVB_TUNER_DIB0070=m | 3071 | CONFIG_DVB_TUNER_DIB0070=m |
3048 | |||
3049 | # | ||
3050 | # SEC control devices for DVB-S | ||
3051 | # | ||
3052 | CONFIG_DVB_LNBP21=m | 3072 | CONFIG_DVB_LNBP21=m |
3053 | CONFIG_DVB_ISL6405=m | 3073 | CONFIG_DVB_ISL6405=m |
3054 | CONFIG_DVB_ISL6421=m | 3074 | CONFIG_DVB_ISL6421=m |
3055 | CONFIG_DVB_LGS8GL5=m | 3075 | CONFIG_DVB_LGS8GL5=m |
3056 | |||
3057 | # | ||
3058 | # Tools to develop new frontends | ||
3059 | # | ||
3060 | CONFIG_DVB_DUMMY_FE=m | ||
3061 | CONFIG_DVB_AF9013=m | ||
3062 | CONFIG_DAB=y | 3076 | CONFIG_DAB=y |
3063 | CONFIG_USB_DABUSB=m | 3077 | CONFIG_USB_DABUSB=m |
3064 | 3078 | ||
@@ -3171,11 +3185,10 @@ CONFIG_FB_NEOMAGIC=m | |||
3171 | CONFIG_FB_KYRO=m | 3185 | CONFIG_FB_KYRO=m |
3172 | CONFIG_FB_3DFX=m | 3186 | CONFIG_FB_3DFX=m |
3173 | CONFIG_FB_3DFX_ACCEL=y | 3187 | CONFIG_FB_3DFX_ACCEL=y |
3188 | CONFIG_FB_3DFX_I2C=y | ||
3174 | CONFIG_FB_VOODOO1=m | 3189 | CONFIG_FB_VOODOO1=m |
3175 | CONFIG_FB_VT8623=m | 3190 | CONFIG_FB_VT8623=m |
3176 | CONFIG_FB_CYBLA=m | ||
3177 | CONFIG_FB_TRIDENT=m | 3191 | CONFIG_FB_TRIDENT=m |
3178 | CONFIG_FB_TRIDENT_ACCEL=y | ||
3179 | CONFIG_FB_ARK=m | 3192 | CONFIG_FB_ARK=m |
3180 | CONFIG_FB_PM3=m | 3193 | CONFIG_FB_PM3=m |
3181 | CONFIG_FB_CARMINE=m | 3194 | CONFIG_FB_CARMINE=m |
@@ -3192,6 +3205,7 @@ CONFIG_FB_SM501=m | |||
3192 | CONFIG_FB_METRONOME=m | 3205 | CONFIG_FB_METRONOME=m |
3193 | CONFIG_FB_MB862XX=m | 3206 | CONFIG_FB_MB862XX=m |
3194 | # CONFIG_FB_MB862XX_PCI_GDC is not set | 3207 | # CONFIG_FB_MB862XX_PCI_GDC is not set |
3208 | CONFIG_FB_BROADSHEET=m | ||
3195 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | 3209 | CONFIG_BACKLIGHT_LCD_SUPPORT=y |
3196 | CONFIG_LCD_CLASS_DEVICE=m | 3210 | CONFIG_LCD_CLASS_DEVICE=m |
3197 | CONFIG_LCD_LTV350QV=m | 3211 | CONFIG_LCD_LTV350QV=m |
@@ -3280,7 +3294,6 @@ CONFIG_SND_ALS100=m | |||
3280 | CONFIG_SND_AZT2320=m | 3294 | CONFIG_SND_AZT2320=m |
3281 | CONFIG_SND_CMI8330=m | 3295 | CONFIG_SND_CMI8330=m |
3282 | CONFIG_SND_CS4231=m | 3296 | CONFIG_SND_CS4231=m |
3283 | CONFIG_SND_CS4232=m | ||
3284 | CONFIG_SND_CS4236=m | 3297 | CONFIG_SND_CS4236=m |
3285 | CONFIG_SND_DT019X=m | 3298 | CONFIG_SND_DT019X=m |
3286 | CONFIG_SND_ES968=m | 3299 | CONFIG_SND_ES968=m |
@@ -3304,7 +3317,8 @@ CONFIG_SND_SB16_CSP=y | |||
3304 | CONFIG_SND_SGALAXY=m | 3317 | CONFIG_SND_SGALAXY=m |
3305 | CONFIG_SND_SSCAPE=m | 3318 | CONFIG_SND_SSCAPE=m |
3306 | CONFIG_SND_WAVEFRONT=m | 3319 | CONFIG_SND_WAVEFRONT=m |
3307 | CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL=y | 3320 | CONFIG_SND_MSND_PINNACLE=m |
3321 | CONFIG_SND_MSND_CLASSIC=m | ||
3308 | CONFIG_SND_PCI=y | 3322 | CONFIG_SND_PCI=y |
3309 | CONFIG_SND_AD1889=m | 3323 | CONFIG_SND_AD1889=m |
3310 | CONFIG_SND_ALS300=m | 3324 | CONFIG_SND_ALS300=m |
@@ -3340,6 +3354,8 @@ CONFIG_SND_ECHO3G=m | |||
3340 | CONFIG_SND_INDIGO=m | 3354 | CONFIG_SND_INDIGO=m |
3341 | CONFIG_SND_INDIGOIO=m | 3355 | CONFIG_SND_INDIGOIO=m |
3342 | CONFIG_SND_INDIGODJ=m | 3356 | CONFIG_SND_INDIGODJ=m |
3357 | CONFIG_SND_INDIGOIOX=m | ||
3358 | CONFIG_SND_INDIGODJX=m | ||
3343 | CONFIG_SND_EMU10K1=m | 3359 | CONFIG_SND_EMU10K1=m |
3344 | CONFIG_SND_EMU10K1X=m | 3360 | CONFIG_SND_EMU10K1X=m |
3345 | CONFIG_SND_ENS1370=m | 3361 | CONFIG_SND_ENS1370=m |
@@ -3403,6 +3419,7 @@ CONFIG_SND_SOC=m | |||
3403 | CONFIG_SND_SOC_I2C_AND_SPI=m | 3419 | CONFIG_SND_SOC_I2C_AND_SPI=m |
3404 | CONFIG_SND_SOC_ALL_CODECS=m | 3420 | CONFIG_SND_SOC_ALL_CODECS=m |
3405 | CONFIG_SND_SOC_AD73311=m | 3421 | CONFIG_SND_SOC_AD73311=m |
3422 | CONFIG_SND_SOC_AK4104=m | ||
3406 | CONFIG_SND_SOC_AK4535=m | 3423 | CONFIG_SND_SOC_AK4535=m |
3407 | CONFIG_SND_SOC_CS4270=m | 3424 | CONFIG_SND_SOC_CS4270=m |
3408 | CONFIG_SND_SOC_L3=m | 3425 | CONFIG_SND_SOC_L3=m |
@@ -3414,6 +3431,7 @@ CONFIG_SND_SOC_TLV320AIC3X=m | |||
3414 | CONFIG_SND_SOC_UDA134X=m | 3431 | CONFIG_SND_SOC_UDA134X=m |
3415 | CONFIG_SND_SOC_UDA1380=m | 3432 | CONFIG_SND_SOC_UDA1380=m |
3416 | CONFIG_SND_SOC_WM8350=m | 3433 | CONFIG_SND_SOC_WM8350=m |
3434 | CONFIG_SND_SOC_WM8400=m | ||
3417 | CONFIG_SND_SOC_WM8510=m | 3435 | CONFIG_SND_SOC_WM8510=m |
3418 | CONFIG_SND_SOC_WM8580=m | 3436 | CONFIG_SND_SOC_WM8580=m |
3419 | CONFIG_SND_SOC_WM8728=m | 3437 | CONFIG_SND_SOC_WM8728=m |
@@ -3447,15 +3465,17 @@ CONFIG_USB_MOUSE=m | |||
3447 | # | 3465 | # |
3448 | # Special HID drivers | 3466 | # Special HID drivers |
3449 | # | 3467 | # |
3450 | # CONFIG_HID_COMPAT is not set | ||
3451 | CONFIG_HID_A4TECH=m | 3468 | CONFIG_HID_A4TECH=m |
3452 | CONFIG_HID_APPLE=m | 3469 | CONFIG_HID_APPLE=m |
3453 | CONFIG_HID_BELKIN=m | 3470 | CONFIG_HID_BELKIN=m |
3454 | CONFIG_HID_CHERRY=m | 3471 | CONFIG_HID_CHERRY=m |
3455 | CONFIG_HID_CHICONY=m | 3472 | CONFIG_HID_CHICONY=m |
3456 | CONFIG_HID_CYPRESS=m | 3473 | CONFIG_HID_CYPRESS=m |
3474 | CONFIG_DRAGONRISE_FF=m | ||
3457 | CONFIG_HID_EZKEY=m | 3475 | CONFIG_HID_EZKEY=m |
3476 | CONFIG_HID_KYE=m | ||
3458 | CONFIG_HID_GYRATION=m | 3477 | CONFIG_HID_GYRATION=m |
3478 | CONFIG_HID_KENSINGTON=m | ||
3459 | CONFIG_HID_LOGITECH=m | 3479 | CONFIG_HID_LOGITECH=m |
3460 | # CONFIG_LOGITECH_FF is not set | 3480 | # CONFIG_LOGITECH_FF is not set |
3461 | # CONFIG_LOGIRUMBLEPAD2_FF is not set | 3481 | # CONFIG_LOGIRUMBLEPAD2_FF is not set |
@@ -3531,25 +3551,25 @@ CONFIG_USB_WDM=m | |||
3531 | CONFIG_USB_TMC=m | 3551 | CONFIG_USB_TMC=m |
3532 | 3552 | ||
3533 | # | 3553 | # |
3534 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; | 3554 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may |
3535 | # | 3555 | # |
3536 | 3556 | ||
3537 | # | 3557 | # |
3538 | # see USB_STORAGE Help for more information | 3558 | # also be needed; see USB_STORAGE Help for more info |
3539 | # | 3559 | # |
3540 | CONFIG_USB_STORAGE=m | 3560 | CONFIG_USB_STORAGE=m |
3541 | # CONFIG_USB_STORAGE_DEBUG is not set | 3561 | # CONFIG_USB_STORAGE_DEBUG is not set |
3542 | CONFIG_USB_STORAGE_DATAFAB=y | 3562 | CONFIG_USB_STORAGE_DATAFAB=m |
3543 | CONFIG_USB_STORAGE_FREECOM=y | 3563 | CONFIG_USB_STORAGE_FREECOM=m |
3544 | CONFIG_USB_STORAGE_ISD200=y | 3564 | CONFIG_USB_STORAGE_ISD200=m |
3545 | CONFIG_USB_STORAGE_USBAT=y | 3565 | CONFIG_USB_STORAGE_USBAT=m |
3546 | CONFIG_USB_STORAGE_SDDR09=y | 3566 | CONFIG_USB_STORAGE_SDDR09=m |
3547 | CONFIG_USB_STORAGE_SDDR55=y | 3567 | CONFIG_USB_STORAGE_SDDR55=m |
3548 | CONFIG_USB_STORAGE_JUMPSHOT=y | 3568 | CONFIG_USB_STORAGE_JUMPSHOT=m |
3549 | CONFIG_USB_STORAGE_ALAUDA=y | 3569 | CONFIG_USB_STORAGE_ALAUDA=m |
3550 | CONFIG_USB_STORAGE_ONETOUCH=y | 3570 | CONFIG_USB_STORAGE_ONETOUCH=m |
3551 | CONFIG_USB_STORAGE_KARMA=y | 3571 | CONFIG_USB_STORAGE_KARMA=m |
3552 | CONFIG_USB_STORAGE_CYPRESS_ATACB=y | 3572 | CONFIG_USB_STORAGE_CYPRESS_ATACB=m |
3553 | CONFIG_USB_LIBUSUAL=y | 3573 | CONFIG_USB_LIBUSUAL=y |
3554 | 3574 | ||
3555 | # | 3575 | # |
@@ -3571,7 +3591,7 @@ CONFIG_USB_SERIAL_BELKIN=m | |||
3571 | CONFIG_USB_SERIAL_CH341=m | 3591 | CONFIG_USB_SERIAL_CH341=m |
3572 | CONFIG_USB_SERIAL_WHITEHEAT=m | 3592 | CONFIG_USB_SERIAL_WHITEHEAT=m |
3573 | CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m | 3593 | CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m |
3574 | CONFIG_USB_SERIAL_CP2101=m | 3594 | CONFIG_USB_SERIAL_CP210X=m |
3575 | CONFIG_USB_SERIAL_CYPRESS_M8=m | 3595 | CONFIG_USB_SERIAL_CYPRESS_M8=m |
3576 | CONFIG_USB_SERIAL_EMPEG=m | 3596 | CONFIG_USB_SERIAL_EMPEG=m |
3577 | CONFIG_USB_SERIAL_FTDI_SIO=m | 3597 | CONFIG_USB_SERIAL_FTDI_SIO=m |
@@ -3595,12 +3615,14 @@ CONFIG_USB_SERIAL_MOTOROLA=m | |||
3595 | CONFIG_USB_SERIAL_NAVMAN=m | 3615 | CONFIG_USB_SERIAL_NAVMAN=m |
3596 | CONFIG_USB_SERIAL_PL2303=m | 3616 | CONFIG_USB_SERIAL_PL2303=m |
3597 | CONFIG_USB_SERIAL_OTI6858=m | 3617 | CONFIG_USB_SERIAL_OTI6858=m |
3618 | CONFIG_USB_SERIAL_QUALCOMM=m | ||
3598 | CONFIG_USB_SERIAL_SPCP8X5=m | 3619 | CONFIG_USB_SERIAL_SPCP8X5=m |
3599 | CONFIG_USB_SERIAL_HP4X=m | 3620 | CONFIG_USB_SERIAL_HP4X=m |
3600 | CONFIG_USB_SERIAL_SAFE=m | 3621 | CONFIG_USB_SERIAL_SAFE=m |
3601 | CONFIG_USB_SERIAL_SAFE_PADDED=y | 3622 | CONFIG_USB_SERIAL_SAFE_PADDED=y |
3602 | CONFIG_USB_SERIAL_SIEMENS_MPI=m | 3623 | CONFIG_USB_SERIAL_SIEMENS_MPI=m |
3603 | CONFIG_USB_SERIAL_SIERRAWIRELESS=m | 3624 | CONFIG_USB_SERIAL_SIERRAWIRELESS=m |
3625 | CONFIG_USB_SERIAL_SYMBOL=m | ||
3604 | CONFIG_USB_SERIAL_TI=m | 3626 | CONFIG_USB_SERIAL_TI=m |
3605 | CONFIG_USB_SERIAL_CYBERJACK=m | 3627 | CONFIG_USB_SERIAL_CYBERJACK=m |
3606 | CONFIG_USB_SERIAL_XIRCOM=m | 3628 | CONFIG_USB_SERIAL_XIRCOM=m |
@@ -3623,10 +3645,6 @@ CONFIG_USB_BERRY_CHARGE=m | |||
3623 | CONFIG_USB_LED=m | 3645 | CONFIG_USB_LED=m |
3624 | CONFIG_USB_CYPRESS_CY7C63=m | 3646 | CONFIG_USB_CYPRESS_CY7C63=m |
3625 | CONFIG_USB_CYTHERM=m | 3647 | CONFIG_USB_CYTHERM=m |
3626 | CONFIG_USB_PHIDGET=m | ||
3627 | CONFIG_USB_PHIDGETKIT=m | ||
3628 | CONFIG_USB_PHIDGETMOTORCONTROL=m | ||
3629 | CONFIG_USB_PHIDGETSERVO=m | ||
3630 | CONFIG_USB_IDMOUSE=m | 3648 | CONFIG_USB_IDMOUSE=m |
3631 | CONFIG_USB_FTDI_ELAN=m | 3649 | CONFIG_USB_FTDI_ELAN=m |
3632 | CONFIG_USB_APPLEDISPLAY=m | 3650 | CONFIG_USB_APPLEDISPLAY=m |
@@ -3650,6 +3668,7 @@ CONFIG_USB_XUSBATM=m | |||
3650 | # | 3668 | # |
3651 | CONFIG_USB_OTG_UTILS=y | 3669 | CONFIG_USB_OTG_UTILS=y |
3652 | CONFIG_USB_GPIO_VBUS=m | 3670 | CONFIG_USB_GPIO_VBUS=m |
3671 | CONFIG_NOP_USB_XCEIV=m | ||
3653 | CONFIG_UWB=m | 3672 | CONFIG_UWB=m |
3654 | CONFIG_UWB_HWA=m | 3673 | CONFIG_UWB_HWA=m |
3655 | CONFIG_UWB_WHCI=m | 3674 | CONFIG_UWB_WHCI=m |
@@ -3702,9 +3721,13 @@ CONFIG_LEDS_WRAP=m | |||
3702 | CONFIG_LEDS_ALIX2=m | 3721 | CONFIG_LEDS_ALIX2=m |
3703 | CONFIG_LEDS_PCA9532=m | 3722 | CONFIG_LEDS_PCA9532=m |
3704 | CONFIG_LEDS_GPIO=m | 3723 | CONFIG_LEDS_GPIO=m |
3724 | CONFIG_LEDS_GPIO_PLATFORM=y | ||
3725 | CONFIG_LEDS_LP5521=m | ||
3705 | CONFIG_LEDS_CLEVO_MAIL=m | 3726 | CONFIG_LEDS_CLEVO_MAIL=m |
3706 | CONFIG_LEDS_PCA955X=m | 3727 | CONFIG_LEDS_PCA955X=m |
3707 | CONFIG_LEDS_WM8350=m | 3728 | CONFIG_LEDS_WM8350=m |
3729 | CONFIG_LEDS_DAC124S085=m | ||
3730 | CONFIG_LEDS_BD2802=m | ||
3708 | 3731 | ||
3709 | # | 3732 | # |
3710 | # LED Triggers | 3733 | # LED Triggers |
@@ -3714,7 +3737,12 @@ CONFIG_LEDS_TRIGGER_TIMER=m | |||
3714 | CONFIG_LEDS_TRIGGER_IDE_DISK=y | 3737 | CONFIG_LEDS_TRIGGER_IDE_DISK=y |
3715 | CONFIG_LEDS_TRIGGER_HEARTBEAT=m | 3738 | CONFIG_LEDS_TRIGGER_HEARTBEAT=m |
3716 | CONFIG_LEDS_TRIGGER_BACKLIGHT=m | 3739 | CONFIG_LEDS_TRIGGER_BACKLIGHT=m |
3740 | CONFIG_LEDS_TRIGGER_GPIO=m | ||
3717 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=m | 3741 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=m |
3742 | |||
3743 | # | ||
3744 | # iptables trigger is under Netfilter config (LED target) | ||
3745 | # | ||
3718 | CONFIG_ACCESSIBILITY=y | 3746 | CONFIG_ACCESSIBILITY=y |
3719 | # CONFIG_A11Y_BRAILLE_CONSOLE is not set | 3747 | # CONFIG_A11Y_BRAILLE_CONSOLE is not set |
3720 | CONFIG_INFINIBAND=m | 3748 | CONFIG_INFINIBAND=m |
@@ -3809,11 +3837,13 @@ CONFIG_UIO_CIF=m | |||
3809 | CONFIG_UIO_PDRV=m | 3837 | CONFIG_UIO_PDRV=m |
3810 | CONFIG_UIO_PDRV_GENIRQ=m | 3838 | CONFIG_UIO_PDRV_GENIRQ=m |
3811 | CONFIG_UIO_SMX=m | 3839 | CONFIG_UIO_SMX=m |
3840 | CONFIG_UIO_AEC=m | ||
3812 | CONFIG_UIO_SERCOS3=m | 3841 | CONFIG_UIO_SERCOS3=m |
3813 | # CONFIG_STAGING is not set | 3842 | # CONFIG_STAGING is not set |
3814 | CONFIG_X86_PLATFORM_DEVICES=y | 3843 | CONFIG_X86_PLATFORM_DEVICES=y |
3815 | CONFIG_ACER_WMI=m | 3844 | CONFIG_ACER_WMI=m |
3816 | CONFIG_ASUS_LAPTOP=m | 3845 | CONFIG_ASUS_LAPTOP=m |
3846 | CONFIG_DELL_WMI=m | ||
3817 | CONFIG_FUJITSU_LAPTOP=m | 3847 | CONFIG_FUJITSU_LAPTOP=m |
3818 | # CONFIG_FUJITSU_LAPTOP_DEBUG is not set | 3848 | # CONFIG_FUJITSU_LAPTOP_DEBUG is not set |
3819 | CONFIG_TC1100_WMI=m | 3849 | CONFIG_TC1100_WMI=m |
@@ -3826,6 +3856,7 @@ CONFIG_SONY_LAPTOP=m | |||
3826 | CONFIG_THINKPAD_ACPI=m | 3856 | CONFIG_THINKPAD_ACPI=m |
3827 | # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set | 3857 | # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set |
3828 | # CONFIG_THINKPAD_ACPI_DEBUG is not set | 3858 | # CONFIG_THINKPAD_ACPI_DEBUG is not set |
3859 | # CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set | ||
3829 | CONFIG_THINKPAD_ACPI_BAY=y | 3860 | CONFIG_THINKPAD_ACPI_BAY=y |
3830 | CONFIG_THINKPAD_ACPI_VIDEO=y | 3861 | CONFIG_THINKPAD_ACPI_VIDEO=y |
3831 | CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y | 3862 | CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y |
@@ -3855,6 +3886,7 @@ CONFIG_EXT2_FS_POSIX_ACL=y | |||
3855 | CONFIG_EXT2_FS_SECURITY=y | 3886 | CONFIG_EXT2_FS_SECURITY=y |
3856 | CONFIG_EXT2_FS_XIP=y | 3887 | CONFIG_EXT2_FS_XIP=y |
3857 | CONFIG_EXT3_FS=m | 3888 | CONFIG_EXT3_FS=m |
3889 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
3858 | CONFIG_EXT3_FS_XATTR=y | 3890 | CONFIG_EXT3_FS_XATTR=y |
3859 | CONFIG_EXT3_FS_POSIX_ACL=y | 3891 | CONFIG_EXT3_FS_POSIX_ACL=y |
3860 | CONFIG_EXT3_FS_SECURITY=y | 3892 | CONFIG_EXT3_FS_SECURITY=y |
@@ -3879,14 +3911,13 @@ CONFIG_JFS_SECURITY=y | |||
3879 | # CONFIG_JFS_DEBUG is not set | 3911 | # CONFIG_JFS_DEBUG is not set |
3880 | CONFIG_JFS_STATISTICS=y | 3912 | CONFIG_JFS_STATISTICS=y |
3881 | CONFIG_FS_POSIX_ACL=y | 3913 | CONFIG_FS_POSIX_ACL=y |
3882 | CONFIG_FILE_LOCKING=y | ||
3883 | CONFIG_XFS_FS=m | 3914 | CONFIG_XFS_FS=m |
3884 | CONFIG_XFS_QUOTA=y | 3915 | CONFIG_XFS_QUOTA=y |
3885 | CONFIG_XFS_POSIX_ACL=y | 3916 | CONFIG_XFS_POSIX_ACL=y |
3886 | CONFIG_XFS_RT=y | 3917 | CONFIG_XFS_RT=y |
3887 | # CONFIG_XFS_DEBUG is not set | 3918 | # CONFIG_XFS_DEBUG is not set |
3888 | CONFIG_GFS2_FS=m | 3919 | CONFIG_GFS2_FS=m |
3889 | CONFIG_GFS2_FS_LOCKING_DLM=m | 3920 | CONFIG_GFS2_FS_LOCKING_DLM=y |
3890 | CONFIG_OCFS2_FS=m | 3921 | CONFIG_OCFS2_FS=m |
3891 | CONFIG_OCFS2_FS_O2CB=m | 3922 | CONFIG_OCFS2_FS_O2CB=m |
3892 | CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m | 3923 | CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m |
@@ -3896,6 +3927,7 @@ CONFIG_OCFS2_DEBUG_MASKLOG=y | |||
3896 | CONFIG_OCFS2_FS_POSIX_ACL=y | 3927 | CONFIG_OCFS2_FS_POSIX_ACL=y |
3897 | CONFIG_BTRFS_FS=m | 3928 | CONFIG_BTRFS_FS=m |
3898 | CONFIG_BTRFS_FS_POSIX_ACL=y | 3929 | CONFIG_BTRFS_FS_POSIX_ACL=y |
3930 | CONFIG_FILE_LOCKING=y | ||
3899 | # CONFIG_DNOTIFY is not set | 3931 | # CONFIG_DNOTIFY is not set |
3900 | CONFIG_INOTIFY=y | 3932 | CONFIG_INOTIFY=y |
3901 | CONFIG_INOTIFY_USER=y | 3933 | CONFIG_INOTIFY_USER=y |
@@ -3911,6 +3943,17 @@ CONFIG_AUTOFS4_FS=m | |||
3911 | CONFIG_FUSE_FS=m | 3943 | CONFIG_FUSE_FS=m |
3912 | 3944 | ||
3913 | # | 3945 | # |
3946 | # Caches | ||
3947 | # | ||
3948 | CONFIG_FSCACHE=m | ||
3949 | CONFIG_FSCACHE_STATS=y | ||
3950 | CONFIG_FSCACHE_HISTOGRAM=y | ||
3951 | # CONFIG_FSCACHE_DEBUG is not set | ||
3952 | CONFIG_CACHEFILES=m | ||
3953 | # CONFIG_CACHEFILES_DEBUG is not set | ||
3954 | # CONFIG_CACHEFILES_HISTOGRAM is not set | ||
3955 | |||
3956 | # | ||
3914 | # CD-ROM/DVD Filesystems | 3957 | # CD-ROM/DVD Filesystems |
3915 | # | 3958 | # |
3916 | CONFIG_ISO9660_FS=m | 3959 | CONFIG_ISO9660_FS=m |
@@ -3986,15 +4029,23 @@ CONFIG_OMFS_FS=m | |||
3986 | CONFIG_HPFS_FS=m | 4029 | CONFIG_HPFS_FS=m |
3987 | CONFIG_QNX4FS_FS=m | 4030 | CONFIG_QNX4FS_FS=m |
3988 | CONFIG_ROMFS_FS=m | 4031 | CONFIG_ROMFS_FS=m |
4032 | CONFIG_ROMFS_BACKED_BY_BLOCK=y | ||
4033 | # CONFIG_ROMFS_BACKED_BY_MTD is not set | ||
4034 | # CONFIG_ROMFS_BACKED_BY_BOTH is not set | ||
4035 | CONFIG_ROMFS_ON_BLOCK=y | ||
3989 | CONFIG_SYSV_FS=m | 4036 | CONFIG_SYSV_FS=m |
3990 | CONFIG_UFS_FS=m | 4037 | CONFIG_UFS_FS=m |
3991 | # CONFIG_UFS_FS_WRITE is not set | 4038 | # CONFIG_UFS_FS_WRITE is not set |
3992 | # CONFIG_UFS_DEBUG is not set | 4039 | # CONFIG_UFS_DEBUG is not set |
4040 | CONFIG_EXOFS_FS=m | ||
4041 | # CONFIG_EXOFS_DEBUG is not set | ||
4042 | CONFIG_NILFS2_FS=m | ||
3993 | CONFIG_NETWORK_FILESYSTEMS=y | 4043 | CONFIG_NETWORK_FILESYSTEMS=y |
3994 | CONFIG_NFS_FS=m | 4044 | CONFIG_NFS_FS=m |
3995 | CONFIG_NFS_V3=y | 4045 | CONFIG_NFS_V3=y |
3996 | # CONFIG_NFS_V3_ACL is not set | 4046 | # CONFIG_NFS_V3_ACL is not set |
3997 | CONFIG_NFS_V4=y | 4047 | CONFIG_NFS_V4=y |
4048 | # CONFIG_NFS_FSCACHE is not set | ||
3998 | CONFIG_NFSD=m | 4049 | CONFIG_NFSD=m |
3999 | CONFIG_NFSD_V3=y | 4050 | CONFIG_NFSD_V3=y |
4000 | # CONFIG_NFSD_V3_ACL is not set | 4051 | # CONFIG_NFSD_V3_ACL is not set |
@@ -4006,7 +4057,6 @@ CONFIG_NFS_COMMON=y | |||
4006 | CONFIG_SUNRPC=m | 4057 | CONFIG_SUNRPC=m |
4007 | CONFIG_SUNRPC_GSS=m | 4058 | CONFIG_SUNRPC_GSS=m |
4008 | CONFIG_SUNRPC_XPRT_RDMA=m | 4059 | CONFIG_SUNRPC_XPRT_RDMA=m |
4009 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
4010 | CONFIG_RPCSEC_GSS_KRB5=m | 4060 | CONFIG_RPCSEC_GSS_KRB5=m |
4011 | CONFIG_RPCSEC_GSS_SPKM3=m | 4061 | CONFIG_RPCSEC_GSS_SPKM3=m |
4012 | CONFIG_SMB_FS=m | 4062 | CONFIG_SMB_FS=m |
@@ -4018,8 +4068,8 @@ CONFIG_CIFS=m | |||
4018 | CONFIG_CIFS_XATTR=y | 4068 | CONFIG_CIFS_XATTR=y |
4019 | CONFIG_CIFS_POSIX=y | 4069 | CONFIG_CIFS_POSIX=y |
4020 | # CONFIG_CIFS_DEBUG2 is not set | 4070 | # CONFIG_CIFS_DEBUG2 is not set |
4021 | CONFIG_CIFS_EXPERIMENTAL=y | ||
4022 | # CONFIG_CIFS_DFS_UPCALL is not set | 4071 | # CONFIG_CIFS_DFS_UPCALL is not set |
4072 | CONFIG_CIFS_EXPERIMENTAL=y | ||
4023 | CONFIG_NCP_FS=m | 4073 | CONFIG_NCP_FS=m |
4024 | # CONFIG_NCPFS_PACKET_SIGNING is not set | 4074 | # CONFIG_NCPFS_PACKET_SIGNING is not set |
4025 | # CONFIG_NCPFS_IOCTL_LOCKING is not set | 4075 | # CONFIG_NCPFS_IOCTL_LOCKING is not set |
@@ -4032,6 +4082,7 @@ CONFIG_NCP_FS=m | |||
4032 | CONFIG_CODA_FS=m | 4082 | CONFIG_CODA_FS=m |
4033 | CONFIG_AFS_FS=m | 4083 | CONFIG_AFS_FS=m |
4034 | # CONFIG_AFS_DEBUG is not set | 4084 | # CONFIG_AFS_DEBUG is not set |
4085 | # CONFIG_AFS_FSCACHE is not set | ||
4035 | CONFIG_9P_FS=m | 4086 | CONFIG_9P_FS=m |
4036 | 4087 | ||
4037 | # | 4088 | # |
@@ -4108,14 +4159,28 @@ CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | |||
4108 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 4159 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
4109 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 4160 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
4110 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 4161 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
4162 | CONFIG_HAVE_FTRACE_SYSCALLS=y | ||
4163 | CONFIG_TRACING_SUPPORT=y | ||
4111 | 4164 | ||
4112 | # | 4165 | # |
4113 | # Tracers | 4166 | # Tracers |
4114 | # | 4167 | # |
4168 | # CONFIG_IRQSOFF_TRACER is not set | ||
4115 | # CONFIG_SYSPROF_TRACER is not set | 4169 | # CONFIG_SYSPROF_TRACER is not set |
4170 | # CONFIG_SCHED_TRACER is not set | ||
4171 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
4172 | # CONFIG_EVENT_TRACER is not set | ||
4173 | # CONFIG_FTRACE_SYSCALLS is not set | ||
4174 | # CONFIG_BOOT_TRACER is not set | ||
4175 | # CONFIG_TRACE_BRANCH_PROFILING is not set | ||
4176 | # CONFIG_POWER_TRACER is not set | ||
4177 | # CONFIG_KMEMTRACE is not set | ||
4178 | # CONFIG_WORKQUEUE_TRACER is not set | ||
4179 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
4180 | # CONFIG_MMIOTRACE is not set | ||
4116 | # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set | 4181 | # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set |
4117 | # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set | 4182 | # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set |
4118 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | 4183 | # CONFIG_DMA_API_DEBUG is not set |
4119 | # CONFIG_SAMPLES is not set | 4184 | # CONFIG_SAMPLES is not set |
4120 | CONFIG_HAVE_ARCH_KGDB=y | 4185 | CONFIG_HAVE_ARCH_KGDB=y |
4121 | CONFIG_STRICT_DEVMEM=y | 4186 | CONFIG_STRICT_DEVMEM=y |
@@ -4255,6 +4320,7 @@ CONFIG_PAX_SEGMEXEC=y | |||
4255 | # CONFIG_PAX_EMUTRAMP is not set | 4320 | # CONFIG_PAX_EMUTRAMP is not set |
4256 | CONFIG_PAX_MPROTECT=y | 4321 | CONFIG_PAX_MPROTECT=y |
4257 | CONFIG_PAX_NOELFRELOCS=y | 4322 | CONFIG_PAX_NOELFRELOCS=y |
4323 | CONFIG_PAX_KERNEXEC=y | ||
4258 | 4324 | ||
4259 | # | 4325 | # |
4260 | # Address Space Layout Randomization | 4326 | # Address Space Layout Randomization |
@@ -4277,7 +4343,8 @@ CONFIG_SECURITYFS=y | |||
4277 | # CONFIG_SECURITY_NETWORK is not set | 4343 | # CONFIG_SECURITY_NETWORK is not set |
4278 | # CONFIG_SECURITY_PATH is not set | 4344 | # CONFIG_SECURITY_PATH is not set |
4279 | CONFIG_SECURITY_FILE_CAPABILITIES=y | 4345 | CONFIG_SECURITY_FILE_CAPABILITIES=y |
4280 | CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 | 4346 | # CONFIG_SECURITY_TOMOYO is not set |
4347 | # CONFIG_IMA is not set | ||
4281 | CONFIG_XOR_BLOCKS=m | 4348 | CONFIG_XOR_BLOCKS=m |
4282 | CONFIG_ASYNC_CORE=m | 4349 | CONFIG_ASYNC_CORE=m |
4283 | CONFIG_ASYNC_MEMCPY=m | 4350 | CONFIG_ASYNC_MEMCPY=m |
@@ -4298,10 +4365,12 @@ CONFIG_CRYPTO_HASH=y | |||
4298 | CONFIG_CRYPTO_HASH2=y | 4365 | CONFIG_CRYPTO_HASH2=y |
4299 | CONFIG_CRYPTO_RNG=m | 4366 | CONFIG_CRYPTO_RNG=m |
4300 | CONFIG_CRYPTO_RNG2=y | 4367 | CONFIG_CRYPTO_RNG2=y |
4368 | CONFIG_CRYPTO_PCOMP=y | ||
4301 | CONFIG_CRYPTO_MANAGER=m | 4369 | CONFIG_CRYPTO_MANAGER=m |
4302 | CONFIG_CRYPTO_MANAGER2=y | 4370 | CONFIG_CRYPTO_MANAGER2=y |
4303 | CONFIG_CRYPTO_GF128MUL=m | 4371 | CONFIG_CRYPTO_GF128MUL=m |
4304 | CONFIG_CRYPTO_NULL=m | 4372 | CONFIG_CRYPTO_NULL=m |
4373 | CONFIG_CRYPTO_WORKQUEUE=y | ||
4305 | CONFIG_CRYPTO_CRYPTD=m | 4374 | CONFIG_CRYPTO_CRYPTD=m |
4306 | CONFIG_CRYPTO_AUTHENC=m | 4375 | CONFIG_CRYPTO_AUTHENC=m |
4307 | CONFIG_CRYPTO_TEST=m | 4376 | CONFIG_CRYPTO_TEST=m |
@@ -4375,6 +4444,7 @@ CONFIG_CRYPTO_TWOFISH_586=m | |||
4375 | # Compression | 4444 | # Compression |
4376 | # | 4445 | # |
4377 | CONFIG_CRYPTO_DEFLATE=m | 4446 | CONFIG_CRYPTO_DEFLATE=m |
4447 | CONFIG_CRYPTO_ZLIB=m | ||
4378 | CONFIG_CRYPTO_LZO=m | 4448 | CONFIG_CRYPTO_LZO=m |
4379 | 4449 | ||
4380 | # | 4450 | # |
@@ -4394,11 +4464,13 @@ CONFIG_VIRTUALIZATION=y | |||
4394 | CONFIG_KVM=m | 4464 | CONFIG_KVM=m |
4395 | CONFIG_KVM_INTEL=m | 4465 | CONFIG_KVM_INTEL=m |
4396 | CONFIG_KVM_AMD=m | 4466 | CONFIG_KVM_AMD=m |
4467 | # CONFIG_KVM_TRACE is not set | ||
4397 | CONFIG_LGUEST=m | 4468 | CONFIG_LGUEST=m |
4398 | CONFIG_VIRTIO=y | 4469 | CONFIG_VIRTIO=m |
4399 | CONFIG_VIRTIO_RING=y | 4470 | CONFIG_VIRTIO_RING=m |
4400 | CONFIG_VIRTIO_PCI=m | 4471 | CONFIG_VIRTIO_PCI=m |
4401 | CONFIG_VIRTIO_BALLOON=m | 4472 | CONFIG_VIRTIO_BALLOON=m |
4473 | # CONFIG_BINARY_PRINTF is not set | ||
4402 | 4474 | ||
4403 | # | 4475 | # |
4404 | # Library routines | 4476 | # Library routines |
@@ -4414,10 +4486,13 @@ CONFIG_CRC_ITU_T=m | |||
4414 | CONFIG_CRC32=m | 4486 | CONFIG_CRC32=m |
4415 | CONFIG_CRC7=m | 4487 | CONFIG_CRC7=m |
4416 | CONFIG_LIBCRC32C=m | 4488 | CONFIG_LIBCRC32C=m |
4417 | CONFIG_ZLIB_INFLATE=m | 4489 | CONFIG_ZLIB_INFLATE=y |
4418 | CONFIG_ZLIB_DEFLATE=m | 4490 | CONFIG_ZLIB_DEFLATE=m |
4419 | CONFIG_LZO_COMPRESS=m | 4491 | CONFIG_LZO_COMPRESS=m |
4420 | CONFIG_LZO_DECOMPRESS=m | 4492 | CONFIG_LZO_DECOMPRESS=m |
4493 | CONFIG_DECOMPRESS_GZIP=y | ||
4494 | CONFIG_DECOMPRESS_BZIP2=y | ||
4495 | CONFIG_DECOMPRESS_LZMA=y | ||
4421 | CONFIG_GENERIC_ALLOCATOR=y | 4496 | CONFIG_GENERIC_ALLOCATOR=y |
4422 | CONFIG_REED_SOLOMON=m | 4497 | CONFIG_REED_SOLOMON=m |
4423 | CONFIG_REED_SOLOMON_DEC16=y | 4498 | CONFIG_REED_SOLOMON_DEC16=y |
@@ -4425,8 +4500,8 @@ CONFIG_TEXTSEARCH=y | |||
4425 | CONFIG_TEXTSEARCH_KMP=m | 4500 | CONFIG_TEXTSEARCH_KMP=m |
4426 | CONFIG_TEXTSEARCH_BM=m | 4501 | CONFIG_TEXTSEARCH_BM=m |
4427 | CONFIG_TEXTSEARCH_FSM=m | 4502 | CONFIG_TEXTSEARCH_FSM=m |
4428 | CONFIG_PLIST=y | ||
4429 | CONFIG_HAS_IOMEM=y | 4503 | CONFIG_HAS_IOMEM=y |
4430 | CONFIG_HAS_IOPORT=y | 4504 | CONFIG_HAS_IOPORT=y |
4431 | CONFIG_HAS_DMA=y | 4505 | CONFIG_HAS_DMA=y |
4432 | CONFIG_CHECK_SIGNATURE=y | 4506 | CONFIG_CHECK_SIGNATURE=y |
4507 | CONFIG_NLATTR=y | ||
diff --git a/main/linux-grsec/linux-nbma-mroute-v4-2.6.30.diff b/main/linux-grsec/linux-nbma-mroute-v4-2.6.30.diff new file mode 100644 index 0000000000..636d807a53 --- /dev/null +++ b/main/linux-grsec/linux-nbma-mroute-v4-2.6.30.diff | |||
@@ -0,0 +1,258 @@ | |||
1 | diff --git a/include/linux/mroute.h b/include/linux/mroute.h | ||
2 | index 0d45b4e..406ef6f 100644 | ||
3 | --- a/include/linux/mroute.h | ||
4 | +++ b/include/linux/mroute.h | ||
5 | @@ -33,7 +33,7 @@ | ||
6 | #define SIOCGETSGCNT (SIOCPROTOPRIVATE+1) | ||
7 | #define SIOCGETRPF (SIOCPROTOPRIVATE+2) | ||
8 | |||
9 | -#define MAXVIFS 32 | ||
10 | +#define MAXVIFS 256 | ||
11 | typedef unsigned long vifbitmap_t; /* User mode code depends on this lot */ | ||
12 | typedef unsigned short vifi_t; | ||
13 | #define ALL_VIFS ((vifi_t)(-1)) | ||
14 | @@ -66,6 +66,7 @@ struct vifctl { | ||
15 | #define VIFF_TUNNEL 0x1 /* IPIP tunnel */ | ||
16 | #define VIFF_SRCRT 0x2 /* NI */ | ||
17 | #define VIFF_REGISTER 0x4 /* register vif */ | ||
18 | +#define VIFF_NBMA 0x10 | ||
19 | |||
20 | /* | ||
21 | * Cache manipulation structures for mrouted and PIMd | ||
22 | diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c | ||
23 | index 13e9dd3..43c988b 100644 | ||
24 | --- a/net/ipv4/ipmr.c | ||
25 | +++ b/net/ipv4/ipmr.c | ||
26 | @@ -105,6 +105,31 @@ static struct net_protocol pim_protocol; | ||
27 | |||
28 | static struct timer_list ipmr_expire_timer; | ||
29 | |||
30 | +static __be32 ipmr_get_skb_nbma(struct sk_buff *skb) | ||
31 | +{ | ||
32 | + union { | ||
33 | + char addr[MAX_ADDR_LEN]; | ||
34 | + __be32 inaddr; | ||
35 | + } u; | ||
36 | + | ||
37 | + if (dev_parse_header(skb, u.addr) != 4) | ||
38 | + return INADDR_ANY; | ||
39 | + | ||
40 | + return u.inaddr; | ||
41 | +} | ||
42 | + | ||
43 | +static int ip_mr_match_vif_skb(struct vif_device *vif, struct sk_buff *skb) | ||
44 | +{ | ||
45 | + if (vif->dev != skb->dev) | ||
46 | + return 0; | ||
47 | + | ||
48 | + if (vif->flags & VIFF_NBMA) | ||
49 | + return ipmr_get_skb_nbma(skb) == vif->remote; | ||
50 | + | ||
51 | + return 1; | ||
52 | +} | ||
53 | + | ||
54 | + | ||
55 | /* Service routines creating virtual interfaces: DVMRP tunnels and PIMREG */ | ||
56 | |||
57 | static void ipmr_del_tunnel(struct net_device *dev, struct vifctl *v) | ||
58 | @@ -470,6 +495,7 @@ static int vif_add(struct net *net, struct vifctl *vifc, int mrtsock) | ||
59 | return err; | ||
60 | } | ||
61 | break; | ||
62 | + case VIFF_NBMA: | ||
63 | case 0: | ||
64 | dev = ip_dev_find(net, vifc->vifc_lcl_addr.s_addr); | ||
65 | if (!dev) | ||
66 | @@ -504,7 +530,7 @@ static int vif_add(struct net *net, struct vifctl *vifc, int mrtsock) | ||
67 | v->pkt_in = 0; | ||
68 | v->pkt_out = 0; | ||
69 | v->link = dev->ifindex; | ||
70 | - if (v->flags&(VIFF_TUNNEL|VIFF_REGISTER)) | ||
71 | + if (v->flags&(VIFF_TUNNEL|VIFF_REGISTER|VIFF_NBMA)) | ||
72 | v->link = dev->iflink; | ||
73 | |||
74 | /* And finish update writing critical data */ | ||
75 | @@ -1212,12 +1238,15 @@ static inline int ipmr_forward_finish(struct sk_buff *skb) | ||
76 | { | ||
77 | struct ip_options * opt = &(IPCB(skb)->opt); | ||
78 | |||
79 | - IP_INC_STATS_BH(dev_net(skb->dst->dev), IPSTATS_MIB_OUTFORWDATAGRAMS); | ||
80 | + IP_INC_STATS_BH(dev_net(skb->dev), IPSTATS_MIB_OUTFORWDATAGRAMS); | ||
81 | |||
82 | if (unlikely(opt->optlen)) | ||
83 | ip_forward_options(skb); | ||
84 | |||
85 | - return dst_output(skb); | ||
86 | + if (skb->dst != NULL) | ||
87 | + return dst_output(skb); | ||
88 | + else | ||
89 | + return dev_queue_xmit(skb); | ||
90 | } | ||
91 | |||
92 | /* | ||
93 | @@ -1230,7 +1259,8 @@ static void ipmr_queue_xmit(struct sk_buff *skb, struct mfc_cache *c, int vifi) | ||
94 | const struct iphdr *iph = ip_hdr(skb); | ||
95 | struct vif_device *vif = &net->ipv4.vif_table[vifi]; | ||
96 | struct net_device *dev; | ||
97 | - struct rtable *rt; | ||
98 | + struct net_device *fromdev = skb->dev; | ||
99 | + struct rtable *rt = NULL; | ||
100 | int encap = 0; | ||
101 | |||
102 | if (vif->dev == NULL) | ||
103 | @@ -1257,6 +1287,19 @@ static void ipmr_queue_xmit(struct sk_buff *skb, struct mfc_cache *c, int vifi) | ||
104 | if (ip_route_output_key(net, &rt, &fl)) | ||
105 | goto out_free; | ||
106 | encap = sizeof(struct iphdr); | ||
107 | + dev = rt->u.dst.dev; | ||
108 | + } else if (vif->flags&VIFF_NBMA) { | ||
109 | + /* Fixme, we should take tunnel source address from the | ||
110 | + * tunnel device binding if it exists */ | ||
111 | + struct flowi fl = { .oif = vif->link, | ||
112 | + .nl_u = { .ip4_u = | ||
113 | + { .daddr = vif->remote, | ||
114 | + .tos = RT_TOS(iph->tos) } }, | ||
115 | + .proto = IPPROTO_GRE }; | ||
116 | + if (ip_route_output_key(&init_net, &rt, &fl)) | ||
117 | + goto out_free; | ||
118 | + encap = LL_RESERVED_SPACE(rt->u.dst.dev); | ||
119 | + dev = vif->dev; | ||
120 | } else { | ||
121 | struct flowi fl = { .oif = vif->link, | ||
122 | .nl_u = { .ip4_u = | ||
123 | @@ -1265,34 +1308,39 @@ static void ipmr_queue_xmit(struct sk_buff *skb, struct mfc_cache *c, int vifi) | ||
124 | .proto = IPPROTO_IPIP }; | ||
125 | if (ip_route_output_key(net, &rt, &fl)) | ||
126 | goto out_free; | ||
127 | + dev = rt->u.dst.dev; | ||
128 | } | ||
129 | |||
130 | - dev = rt->u.dst.dev; | ||
131 | + if (!(vif->flags & VIFF_NBMA)) { | ||
132 | + if (skb->len+encap > dst_mtu(&rt->u.dst) && (ntohs(iph->frag_off) & IP_DF)) { | ||
133 | + /* Do not fragment multicasts. Alas, IPv4 does not | ||
134 | + allow to send ICMP, so that packets will disappear | ||
135 | + to blackhole. | ||
136 | + */ | ||
137 | |||
138 | - if (skb->len+encap > dst_mtu(&rt->u.dst) && (ntohs(iph->frag_off) & IP_DF)) { | ||
139 | - /* Do not fragment multicasts. Alas, IPv4 does not | ||
140 | - allow to send ICMP, so that packets will disappear | ||
141 | - to blackhole. | ||
142 | - */ | ||
143 | - | ||
144 | - IP_INC_STATS_BH(dev_net(dev), IPSTATS_MIB_FRAGFAILS); | ||
145 | - ip_rt_put(rt); | ||
146 | - goto out_free; | ||
147 | + IP_INC_STATS_BH(dev_net(dev), IPSTATS_MIB_FRAGFAILS); | ||
148 | + goto out_free_rt; | ||
149 | + } | ||
150 | } | ||
151 | |||
152 | encap += LL_RESERVED_SPACE(dev) + rt->u.dst.header_len; | ||
153 | |||
154 | - if (skb_cow(skb, encap)) { | ||
155 | - ip_rt_put(rt); | ||
156 | - goto out_free; | ||
157 | - } | ||
158 | + if (skb_cow(skb, encap)) | ||
159 | + goto out_free_rt; | ||
160 | |||
161 | vif->pkt_out++; | ||
162 | vif->bytes_out += skb->len; | ||
163 | |||
164 | dst_release(skb->dst); | ||
165 | - skb->dst = &rt->u.dst; | ||
166 | + if (vif->flags & VIFF_NBMA) { | ||
167 | + ip_rt_put(rt); | ||
168 | + skb->dst = NULL; | ||
169 | + rt = NULL; | ||
170 | + } else { | ||
171 | + skb->dst = &rt->u.dst; | ||
172 | + } | ||
173 | ip_decrease_ttl(ip_hdr(skb)); | ||
174 | + skb->dev = dev; | ||
175 | |||
176 | /* FIXME: forward and output firewalls used to be called here. | ||
177 | * What do we do with netfilter? -- RR */ | ||
178 | @@ -1301,6 +1349,10 @@ static void ipmr_queue_xmit(struct sk_buff *skb, struct mfc_cache *c, int vifi) | ||
179 | /* FIXME: extra output firewall step used to be here. --RR */ | ||
180 | vif->dev->stats.tx_packets++; | ||
181 | vif->dev->stats.tx_bytes += skb->len; | ||
182 | + } else if (vif->flags & VIFF_NBMA) { | ||
183 | + if (dev_hard_header(skb, dev, ntohs(skb->protocol), | ||
184 | + &vif->remote, NULL, 4) < 0) | ||
185 | + goto out_free_rt; | ||
186 | } | ||
187 | |||
188 | IPCB(skb)->flags |= IPSKB_FORWARDED; | ||
189 | @@ -1316,21 +1368,30 @@ static void ipmr_queue_xmit(struct sk_buff *skb, struct mfc_cache *c, int vifi) | ||
190 | * not mrouter) cannot join to more than one interface - it will | ||
191 | * result in receiving multiple packets. | ||
192 | */ | ||
193 | - NF_HOOK(PF_INET, NF_INET_FORWARD, skb, skb->dev, dev, | ||
194 | + NF_HOOK(PF_INET, NF_INET_FORWARD, skb, fromdev, dev, | ||
195 | ipmr_forward_finish); | ||
196 | return; | ||
197 | |||
198 | +out_free_rt: | ||
199 | + if (rt != NULL) | ||
200 | + ip_rt_put(rt); | ||
201 | out_free: | ||
202 | kfree_skb(skb); | ||
203 | return; | ||
204 | } | ||
205 | |||
206 | -static int ipmr_find_vif(struct net_device *dev) | ||
207 | +static int ipmr_find_vif(struct net_device *dev, __be32 nbma_origin) | ||
208 | { | ||
209 | struct net *net = dev_net(dev); | ||
210 | int ct; | ||
211 | for (ct = net->ipv4.maxvif-1; ct >= 0; ct--) { | ||
212 | - if (net->ipv4.vif_table[ct].dev == dev) | ||
213 | + if (net->ipv4.vif_table[ct].dev != dev) | ||
214 | + continue; | ||
215 | + | ||
216 | + if (net->ipv4.vif_table[ct].flags & VIFF_NBMA) { | ||
217 | + if (net->ipv4.vif_table[ct].remote == nbma_origin) | ||
218 | + break; | ||
219 | + } else if (nbma_origin == INADDR_ANY) | ||
220 | break; | ||
221 | } | ||
222 | return ct; | ||
223 | @@ -1351,7 +1412,7 @@ static int ip_mr_forward(struct sk_buff *skb, struct mfc_cache *cache, int local | ||
224 | /* | ||
225 | * Wrong interface: drop packet and (maybe) send PIM assert. | ||
226 | */ | ||
227 | - if (net->ipv4.vif_table[vif].dev != skb->dev) { | ||
228 | + if (!ip_mr_match_vif_skb(&net->ipv4.vif_table[vif], skb)) { | ||
229 | int true_vifi; | ||
230 | |||
231 | if (skb->rtable->fl.iif == 0) { | ||
232 | @@ -1370,7 +1431,7 @@ static int ip_mr_forward(struct sk_buff *skb, struct mfc_cache *cache, int local | ||
233 | } | ||
234 | |||
235 | cache->mfc_un.res.wrong_if++; | ||
236 | - true_vifi = ipmr_find_vif(skb->dev); | ||
237 | + true_vifi = ipmr_find_vif(skb->dev, ipmr_get_skb_nbma(skb)); | ||
238 | |||
239 | if (true_vifi >= 0 && net->ipv4.mroute_do_assert && | ||
240 | /* pimsm uses asserts, when switching from RPT to SPT, | ||
241 | @@ -1479,7 +1540,7 @@ int ip_mr_input(struct sk_buff *skb) | ||
242 | skb = skb2; | ||
243 | } | ||
244 | |||
245 | - vif = ipmr_find_vif(skb->dev); | ||
246 | + vif = ipmr_find_vif(skb->dev, ipmr_get_skb_nbma(skb)); | ||
247 | if (vif >= 0) { | ||
248 | int err = ipmr_cache_unresolved(net, vif, skb); | ||
249 | read_unlock(&mrt_lock); | ||
250 | @@ -1663,7 +1724,7 @@ int ipmr_get_route(struct net *net, | ||
251 | } | ||
252 | |||
253 | dev = skb->dev; | ||
254 | - if (dev == NULL || (vif = ipmr_find_vif(dev)) < 0) { | ||
255 | + if (dev == NULL || (vif = ipmr_find_vif(dev, INADDR_ANY)) < 0) { | ||
256 | read_unlock(&mrt_lock); | ||
257 | return -ENODEV; | ||
258 | } | ||