Gentoo Archives: gentoo-commits

From: "Anthony G. Basile" <blueness@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/hardened-patchset:master commit in: 3.0.8/, 3.0.7/
Date: Sun, 30 Oct 2011 13:16:08
Message-Id: 820cb0a07f3c576903790a0b64246286dbe5c37a.blueness@gentoo
1 commit: 820cb0a07f3c576903790a0b64246286dbe5c37a
2 Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
3 AuthorDate: Sun Oct 30 13:15:52 2011 +0000
4 Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
5 CommitDate: Sun Oct 30 13:15:52 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-patchset.git;a=commit;h=820cb0a0
7
8 EOL 3.0.7. Introduce 3.0.8
9
10 ---
11 3.0.7/1006_linux-3.0.7.patch | 1413 --------------------
12 {3.0.7 => 3.0.8}/0000_README | 4 -
13 .../4420_grsecurity-2.2.2-3.0.8-201110250925.patch | 0
14 .../4421_grsec-remove-localversion-grsec.patch | 0
15 {3.0.7 => 3.0.8}/4422_grsec-mute-warnings.patch | 0
16 .../4423_grsec-remove-protected-paths.patch | 0
17 .../4425_grsec-pax-without-grsec.patch | 0
18 .../4430_grsec-kconfig-default-gids.patch | 0
19 {3.0.7 => 3.0.8}/4435_grsec-kconfig-gentoo.patch | 0
20 .../4437-grsec-kconfig-proc-user.patch | 0
21 .../4440_selinux-avc_audit-log-curr_ip.patch | 0
22 {3.0.7 => 3.0.8}/4445_disable-compat_vdso.patch | 0
23 12 files changed, 0 insertions(+), 1417 deletions(-)
24
25 diff --git a/3.0.7/1006_linux-3.0.7.patch b/3.0.7/1006_linux-3.0.7.patch
26 deleted file mode 100644
27 index 71aa052..0000000
28 --- a/3.0.7/1006_linux-3.0.7.patch
29 +++ /dev/null
30 @@ -1,1413 +0,0 @@
31 -diff --git a/Makefile b/Makefile
32 -index 7767a64..11c4249 100644
33 ---- a/Makefile
34 -+++ b/Makefile
35 -@@ -1,6 +1,6 @@
36 - VERSION = 3
37 - PATCHLEVEL = 0
38 --SUBLEVEL = 6
39 -+SUBLEVEL = 7
40 - EXTRAVERSION =
41 - NAME = Sneaky Weasel
42 -
43 -diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig
44 -index f8b9392..9a9706c 100644
45 ---- a/arch/arm/mach-ux500/Kconfig
46 -+++ b/arch/arm/mach-ux500/Kconfig
47 -@@ -6,6 +6,7 @@ config UX500_SOC_COMMON
48 - select ARM_GIC
49 - select HAS_MTU
50 - select ARM_ERRATA_753970
51 -+ select ARM_ERRATA_754322
52 -
53 - menu "Ux500 SoC"
54 -
55 -diff --git a/arch/mips/jz4740/gpio.c b/arch/mips/jz4740/gpio.c
56 -index 73031f7..4397972 100644
57 ---- a/arch/mips/jz4740/gpio.c
58 -+++ b/arch/mips/jz4740/gpio.c
59 -@@ -18,7 +18,7 @@
60 - #include <linux/init.h>
61 -
62 - #include <linux/spinlock.h>
63 --#include <linux/sysdev.h>
64 -+#include <linux/syscore_ops.h>
65 - #include <linux/io.h>
66 - #include <linux/gpio.h>
67 - #include <linux/delay.h>
68 -@@ -86,7 +86,6 @@ struct jz_gpio_chip {
69 - spinlock_t lock;
70 -
71 - struct gpio_chip gpio_chip;
72 -- struct sys_device sysdev;
73 - };
74 -
75 - static struct jz_gpio_chip jz4740_gpio_chips[];
76 -@@ -459,49 +458,47 @@ static struct jz_gpio_chip jz4740_gpio_chips[] = {
77 - JZ4740_GPIO_CHIP(D),
78 - };
79 -
80 --static inline struct jz_gpio_chip *sysdev_to_chip(struct sys_device *dev)
81 -+static void jz4740_gpio_suspend_chip(struct jz_gpio_chip *chip)
82 - {
83 -- return container_of(dev, struct jz_gpio_chip, sysdev);
84 -+ chip->suspend_mask = readl(chip->base + JZ_REG_GPIO_MASK);
85 -+ writel(~(chip->wakeup), chip->base + JZ_REG_GPIO_MASK_SET);
86 -+ writel(chip->wakeup, chip->base + JZ_REG_GPIO_MASK_CLEAR);
87 - }
88 -
89 --static int jz4740_gpio_suspend(struct sys_device *dev, pm_message_t state)
90 -+static int jz4740_gpio_suspend(void)
91 - {
92 -- struct jz_gpio_chip *chip = sysdev_to_chip(dev);
93 -+ int i;
94 -
95 -- chip->suspend_mask = readl(chip->base + JZ_REG_GPIO_MASK);
96 -- writel(~(chip->wakeup), chip->base + JZ_REG_GPIO_MASK_SET);
97 -- writel(chip->wakeup, chip->base + JZ_REG_GPIO_MASK_CLEAR);
98 -+ for (i = 0; i < ARRAY_SIZE(jz4740_gpio_chips); i++)
99 -+ jz4740_gpio_suspend_chip(&jz4740_gpio_chips[i]);
100 -
101 - return 0;
102 - }
103 -
104 --static int jz4740_gpio_resume(struct sys_device *dev)
105 -+static void jz4740_gpio_resume_chip(struct jz_gpio_chip *chip)
106 - {
107 -- struct jz_gpio_chip *chip = sysdev_to_chip(dev);
108 - uint32_t mask = chip->suspend_mask;
109 -
110 - writel(~mask, chip->base + JZ_REG_GPIO_MASK_CLEAR);
111 - writel(mask, chip->base + JZ_REG_GPIO_MASK_SET);
112 -+}
113 -
114 -- return 0;
115 -+static void jz4740_gpio_resume(void)
116 -+{
117 -+ int i;
118 -+
119 -+ for (i = ARRAY_SIZE(jz4740_gpio_chips) - 1; i >= 0 ; i--)
120 -+ jz4740_gpio_resume_chip(&jz4740_gpio_chips[i]);
121 - }
122 -
123 --static struct sysdev_class jz4740_gpio_sysdev_class = {
124 -- .name = "gpio",
125 -+static struct syscore_ops jz4740_gpio_syscore_ops = {
126 - .suspend = jz4740_gpio_suspend,
127 - .resume = jz4740_gpio_resume,
128 - };
129 -
130 --static int jz4740_gpio_chip_init(struct jz_gpio_chip *chip, unsigned int id)
131 -+static void jz4740_gpio_chip_init(struct jz_gpio_chip *chip, unsigned int id)
132 - {
133 -- int ret, irq;
134 --
135 -- chip->sysdev.id = id;
136 -- chip->sysdev.cls = &jz4740_gpio_sysdev_class;
137 -- ret = sysdev_register(&chip->sysdev);
138 --
139 -- if (ret)
140 -- return ret;
141 -+ int irq;
142 -
143 - spin_lock_init(&chip->lock);
144 -
145 -@@ -519,22 +516,17 @@ static int jz4740_gpio_chip_init(struct jz_gpio_chip *chip, unsigned int id)
146 - irq_set_chip_and_handler(irq, &jz_gpio_irq_chip,
147 - handle_level_irq);
148 - }
149 --
150 -- return 0;
151 - }
152 -
153 - static int __init jz4740_gpio_init(void)
154 - {
155 - unsigned int i;
156 -- int ret;
157 --
158 -- ret = sysdev_class_register(&jz4740_gpio_sysdev_class);
159 -- if (ret)
160 -- return ret;
161 -
162 - for (i = 0; i < ARRAY_SIZE(jz4740_gpio_chips); ++i)
163 - jz4740_gpio_chip_init(&jz4740_gpio_chips[i], i);
164 -
165 -+ register_syscore_ops(&jz4740_gpio_syscore_ops);
166 -+
167 - printk(KERN_INFO "JZ4740 GPIO initialized\n");
168 -
169 - return 0;
170 -diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
171 -index 581531d..8e073d8 100644
172 ---- a/arch/sparc/mm/init_64.c
173 -+++ b/arch/sparc/mm/init_64.c
174 -@@ -511,6 +511,11 @@ static void __init read_obp_translations(void)
175 - for (i = 0; i < prom_trans_ents; i++)
176 - prom_trans[i].data &= ~0x0003fe0000000000UL;
177 - }
178 -+
179 -+ /* Force execute bit on. */
180 -+ for (i = 0; i < prom_trans_ents; i++)
181 -+ prom_trans[i].data |= (tlb_type == hypervisor ?
182 -+ _PAGE_EXEC_4V : _PAGE_EXEC_4U);
183 - }
184 -
185 - static void __init hypervisor_tlb_lock(unsigned long vaddr,
186 -diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
187 -index 68c3c13..50b3f14 100644
188 ---- a/arch/x86/pci/acpi.c
189 -+++ b/arch/x86/pci/acpi.c
190 -@@ -43,6 +43,17 @@ static const struct dmi_system_id pci_use_crs_table[] __initconst = {
191 - DMI_MATCH(DMI_PRODUCT_NAME, "ALiveSATA2-GLAN"),
192 - },
193 - },
194 -+ /* https://bugzilla.kernel.org/show_bug.cgi?id=30552 */
195 -+ /* 2006 AMD HT/VIA system with two host bridges */
196 -+ {
197 -+ .callback = set_use_crs,
198 -+ .ident = "ASUS M2V-MX SE",
199 -+ .matches = {
200 -+ DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
201 -+ DMI_MATCH(DMI_BOARD_NAME, "M2V-MX SE"),
202 -+ DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."),
203 -+ },
204 -+ },
205 - {}
206 - };
207 -
208 -diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
209 -index cab6960..1e9ab9b 100644
210 ---- a/drivers/ata/ahci.c
211 -+++ b/drivers/ata/ahci.c
212 -@@ -812,6 +812,18 @@ static bool ahci_sb600_enable_64bit(struct pci_dev *pdev)
213 - DMI_MATCH(DMI_BOARD_NAME, "MS-7376"),
214 - },
215 - },
216 -+ /*
217 -+ * All BIOS versions for the Asus M3A support 64bit DMA.
218 -+ * (all release versions from 0301 to 1206 were tested)
219 -+ */
220 -+ {
221 -+ .ident = "ASUS M3A",
222 -+ .matches = {
223 -+ DMI_MATCH(DMI_BOARD_VENDOR,
224 -+ "ASUSTeK Computer INC."),
225 -+ DMI_MATCH(DMI_BOARD_NAME, "M3A"),
226 -+ },
227 -+ },
228 - { }
229 - };
230 - const struct dmi_system_id *match;
231 -diff --git a/drivers/gpu/drm/radeon/atombios_dp.c b/drivers/gpu/drm/radeon/atombios_dp.c
232 -index 7ad43c6..79e8ebc 100644
233 ---- a/drivers/gpu/drm/radeon/atombios_dp.c
234 -+++ b/drivers/gpu/drm/radeon/atombios_dp.c
235 -@@ -115,6 +115,7 @@ static int radeon_dp_aux_native_write(struct radeon_connector *radeon_connector,
236 - u8 msg[20];
237 - int msg_bytes = send_bytes + 4;
238 - u8 ack;
239 -+ unsigned retry;
240 -
241 - if (send_bytes > 16)
242 - return -1;
243 -@@ -125,20 +126,22 @@ static int radeon_dp_aux_native_write(struct radeon_connector *radeon_connector,
244 - msg[3] = (msg_bytes << 4) | (send_bytes - 1);
245 - memcpy(&msg[4], send, send_bytes);
246 -
247 -- while (1) {
248 -+ for (retry = 0; retry < 4; retry++) {
249 - ret = radeon_process_aux_ch(dig_connector->dp_i2c_bus,
250 - msg, msg_bytes, NULL, 0, delay, &ack);
251 -- if (ret < 0)
252 -+ if (ret == -EBUSY)
253 -+ continue;
254 -+ else if (ret < 0)
255 - return ret;
256 - if ((ack & AUX_NATIVE_REPLY_MASK) == AUX_NATIVE_REPLY_ACK)
257 -- break;
258 -+ return send_bytes;
259 - else if ((ack & AUX_NATIVE_REPLY_MASK) == AUX_NATIVE_REPLY_DEFER)
260 - udelay(400);
261 - else
262 - return -EIO;
263 - }
264 -
265 -- return send_bytes;
266 -+ return -EIO;
267 - }
268 -
269 - static int radeon_dp_aux_native_read(struct radeon_connector *radeon_connector,
270 -@@ -149,26 +152,31 @@ static int radeon_dp_aux_native_read(struct radeon_connector *radeon_connector,
271 - int msg_bytes = 4;
272 - u8 ack;
273 - int ret;
274 -+ unsigned retry;
275 -
276 - msg[0] = address;
277 - msg[1] = address >> 8;
278 - msg[2] = AUX_NATIVE_READ << 4;
279 - msg[3] = (msg_bytes << 4) | (recv_bytes - 1);
280 -
281 -- while (1) {
282 -+ for (retry = 0; retry < 4; retry++) {
283 - ret = radeon_process_aux_ch(dig_connector->dp_i2c_bus,
284 - msg, msg_bytes, recv, recv_bytes, delay, &ack);
285 -- if (ret == 0)
286 -- return -EPROTO;
287 -- if (ret < 0)
288 -+ if (ret == -EBUSY)
289 -+ continue;
290 -+ else if (ret < 0)
291 - return ret;
292 - if ((ack & AUX_NATIVE_REPLY_MASK) == AUX_NATIVE_REPLY_ACK)
293 - return ret;
294 - else if ((ack & AUX_NATIVE_REPLY_MASK) == AUX_NATIVE_REPLY_DEFER)
295 - udelay(400);
296 -+ else if (ret == 0)
297 -+ return -EPROTO;
298 - else
299 - return -EIO;
300 - }
301 -+
302 -+ return -EIO;
303 - }
304 -
305 - static void radeon_write_dpcd_reg(struct radeon_connector *radeon_connector,
306 -@@ -232,7 +240,9 @@ int radeon_dp_i2c_aux_ch(struct i2c_adapter *adapter, int mode,
307 - for (retry = 0; retry < 4; retry++) {
308 - ret = radeon_process_aux_ch(auxch,
309 - msg, msg_bytes, reply, reply_bytes, 0, &ack);
310 -- if (ret < 0) {
311 -+ if (ret == -EBUSY)
312 -+ continue;
313 -+ else if (ret < 0) {
314 - DRM_DEBUG_KMS("aux_ch failed %d\n", ret);
315 - return ret;
316 - }
317 -diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
318 -index c975581..ea7a24e 100644
319 ---- a/drivers/gpu/drm/radeon/evergreen.c
320 -+++ b/drivers/gpu/drm/radeon/evergreen.c
321 -@@ -1593,48 +1593,6 @@ static u32 evergreen_get_tile_pipe_to_backend_map(struct radeon_device *rdev,
322 - return backend_map;
323 - }
324 -
325 --static void evergreen_program_channel_remap(struct radeon_device *rdev)
326 --{
327 -- u32 tcp_chan_steer_lo, tcp_chan_steer_hi, mc_shared_chremap, tmp;
328 --
329 -- tmp = RREG32(MC_SHARED_CHMAP);
330 -- switch ((tmp & NOOFCHAN_MASK) >> NOOFCHAN_SHIFT) {
331 -- case 0:
332 -- case 1:
333 -- case 2:
334 -- case 3:
335 -- default:
336 -- /* default mapping */
337 -- mc_shared_chremap = 0x00fac688;
338 -- break;
339 -- }
340 --
341 -- switch (rdev->family) {
342 -- case CHIP_HEMLOCK:
343 -- case CHIP_CYPRESS:
344 -- case CHIP_BARTS:
345 -- tcp_chan_steer_lo = 0x54763210;
346 -- tcp_chan_steer_hi = 0x0000ba98;
347 -- break;
348 -- case CHIP_JUNIPER:
349 -- case CHIP_REDWOOD:
350 -- case CHIP_CEDAR:
351 -- case CHIP_PALM:
352 -- case CHIP_SUMO:
353 -- case CHIP_SUMO2:
354 -- case CHIP_TURKS:
355 -- case CHIP_CAICOS:
356 -- default:
357 -- tcp_chan_steer_lo = 0x76543210;
358 -- tcp_chan_steer_hi = 0x0000ba98;
359 -- break;
360 -- }
361 --
362 -- WREG32(TCP_CHAN_STEER_LO, tcp_chan_steer_lo);
363 -- WREG32(TCP_CHAN_STEER_HI, tcp_chan_steer_hi);
364 -- WREG32(MC_SHARED_CHREMAP, mc_shared_chremap);
365 --}
366 --
367 - static void evergreen_gpu_init(struct radeon_device *rdev)
368 - {
369 - u32 cc_rb_backend_disable = 0;
370 -@@ -2080,8 +2038,6 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
371 - WREG32(DMIF_ADDR_CONFIG, gb_addr_config);
372 - WREG32(HDP_ADDR_CONFIG, gb_addr_config);
373 -
374 -- evergreen_program_channel_remap(rdev);
375 --
376 - num_shader_engines = ((RREG32(GB_ADDR_CONFIG) & NUM_SHADER_ENGINES(3)) >> 12) + 1;
377 - grbm_gfx_index = INSTANCE_BROADCAST_WRITES;
378 -
379 -diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
380 -index 0b132a3..0c460c4 100644
381 ---- a/drivers/gpu/drm/radeon/ni.c
382 -+++ b/drivers/gpu/drm/radeon/ni.c
383 -@@ -569,36 +569,6 @@ static u32 cayman_get_tile_pipe_to_backend_map(struct radeon_device *rdev,
384 - return backend_map;
385 - }
386 -
387 --static void cayman_program_channel_remap(struct radeon_device *rdev)
388 --{
389 -- u32 tcp_chan_steer_lo, tcp_chan_steer_hi, mc_shared_chremap, tmp;
390 --
391 -- tmp = RREG32(MC_SHARED_CHMAP);
392 -- switch ((tmp & NOOFCHAN_MASK) >> NOOFCHAN_SHIFT) {
393 -- case 0:
394 -- case 1:
395 -- case 2:
396 -- case 3:
397 -- default:
398 -- /* default mapping */
399 -- mc_shared_chremap = 0x00fac688;
400 -- break;
401 -- }
402 --
403 -- switch (rdev->family) {
404 -- case CHIP_CAYMAN:
405 -- default:
406 -- //tcp_chan_steer_lo = 0x54763210
407 -- tcp_chan_steer_lo = 0x76543210;
408 -- tcp_chan_steer_hi = 0x0000ba98;
409 -- break;
410 -- }
411 --
412 -- WREG32(TCP_CHAN_STEER_LO, tcp_chan_steer_lo);
413 -- WREG32(TCP_CHAN_STEER_HI, tcp_chan_steer_hi);
414 -- WREG32(MC_SHARED_CHREMAP, mc_shared_chremap);
415 --}
416 --
417 - static u32 cayman_get_disable_mask_per_asic(struct radeon_device *rdev,
418 - u32 disable_mask_per_se,
419 - u32 max_disable_mask_per_se,
420 -@@ -841,8 +811,6 @@ static void cayman_gpu_init(struct radeon_device *rdev)
421 - WREG32(DMIF_ADDR_CONFIG, gb_addr_config);
422 - WREG32(HDP_ADDR_CONFIG, gb_addr_config);
423 -
424 -- cayman_program_channel_remap(rdev);
425 --
426 - /* primary versions */
427 - WREG32(CC_RB_BACKEND_DISABLE, cc_rb_backend_disable);
428 - WREG32(CC_SYS_RB_BACKEND_DISABLE, cc_rb_backend_disable);
429 -diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
430 -index d1b36f8..05b8b2c 100644
431 ---- a/drivers/gpu/drm/radeon/radeon_connectors.c
432 -+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
433 -@@ -68,11 +68,11 @@ void radeon_connector_hotplug(struct drm_connector *connector)
434 - if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) {
435 - int saved_dpms = connector->dpms;
436 -
437 -- if (radeon_hpd_sense(rdev, radeon_connector->hpd.hpd) &&
438 -- radeon_dp_needs_link_train(radeon_connector))
439 -- drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
440 -- else
441 -+ /* Only turn off the display it it's physically disconnected */
442 -+ if (!radeon_hpd_sense(rdev, radeon_connector->hpd.hpd))
443 - drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
444 -+ else if (radeon_dp_needs_link_train(radeon_connector))
445 -+ drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
446 - connector->dpms = saved_dpms;
447 - }
448 - }
449 -diff --git a/drivers/gpu/drm/radeon/radeon_cursor.c b/drivers/gpu/drm/radeon/radeon_cursor.c
450 -index 3189a7e..f59a682 100644
451 ---- a/drivers/gpu/drm/radeon/radeon_cursor.c
452 -+++ b/drivers/gpu/drm/radeon/radeon_cursor.c
453 -@@ -208,6 +208,13 @@ int radeon_crtc_cursor_move(struct drm_crtc *crtc,
454 - int xorigin = 0, yorigin = 0;
455 - int w = radeon_crtc->cursor_width;
456 -
457 -+ if (ASIC_IS_AVIVO(rdev)) {
458 -+ /* avivo cursor are offset into the total surface */
459 -+ x += crtc->x;
460 -+ y += crtc->y;
461 -+ }
462 -+ DRM_DEBUG("x %d y %d c->x %d c->y %d\n", x, y, crtc->x, crtc->y);
463 -+
464 - if (x < 0)
465 - xorigin = -x + 1;
466 - if (y < 0)
467 -@@ -221,11 +228,6 @@ int radeon_crtc_cursor_move(struct drm_crtc *crtc,
468 - int i = 0;
469 - struct drm_crtc *crtc_p;
470 -
471 -- /* avivo cursor are offset into the total surface */
472 -- x += crtc->x;
473 -- y += crtc->y;
474 -- DRM_DEBUG("x %d y %d c->x %d c->y %d\n", x, y, crtc->x, crtc->y);
475 --
476 - /* avivo cursor image can't end on 128 pixel boundary or
477 - * go past the end of the frame if both crtcs are enabled
478 - */
479 -diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c
480 -index 13690f3..8a171b2 100644
481 ---- a/drivers/gpu/drm/radeon/radeon_encoders.c
482 -+++ b/drivers/gpu/drm/radeon/radeon_encoders.c
483 -@@ -1755,9 +1755,12 @@ static int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder)
484 - /* DCE4/5 */
485 - if (ASIC_IS_DCE4(rdev)) {
486 - dig = radeon_encoder->enc_priv;
487 -- if (ASIC_IS_DCE41(rdev))
488 -- return radeon_crtc->crtc_id;
489 -- else {
490 -+ if (ASIC_IS_DCE41(rdev)) {
491 -+ if (dig->linkb)
492 -+ return 1;
493 -+ else
494 -+ return 0;
495 -+ } else {
496 - switch (radeon_encoder->encoder_id) {
497 - case ENCODER_OBJECT_ID_INTERNAL_UNIPHY:
498 - if (dig->linkb)
499 -diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c
500 -index 4de5189..f2516e6 100644
501 ---- a/drivers/gpu/drm/radeon/rv770.c
502 -+++ b/drivers/gpu/drm/radeon/rv770.c
503 -@@ -536,55 +536,6 @@ static u32 r700_get_tile_pipe_to_backend_map(struct radeon_device *rdev,
504 - return backend_map;
505 - }
506 -
507 --static void rv770_program_channel_remap(struct radeon_device *rdev)
508 --{
509 -- u32 tcp_chan_steer, mc_shared_chremap, tmp;
510 -- bool force_no_swizzle;
511 --
512 -- switch (rdev->family) {
513 -- case CHIP_RV770:
514 -- case CHIP_RV730:
515 -- force_no_swizzle = false;
516 -- break;
517 -- case CHIP_RV710:
518 -- case CHIP_RV740:
519 -- default:
520 -- force_no_swizzle = true;
521 -- break;
522 -- }
523 --
524 -- tmp = RREG32(MC_SHARED_CHMAP);
525 -- switch ((tmp & NOOFCHAN_MASK) >> NOOFCHAN_SHIFT) {
526 -- case 0:
527 -- case 1:
528 -- default:
529 -- /* default mapping */
530 -- mc_shared_chremap = 0x00fac688;
531 -- break;
532 -- case 2:
533 -- case 3:
534 -- if (force_no_swizzle)
535 -- mc_shared_chremap = 0x00fac688;
536 -- else
537 -- mc_shared_chremap = 0x00bbc298;
538 -- break;
539 -- }
540 --
541 -- if (rdev->family == CHIP_RV740)
542 -- tcp_chan_steer = 0x00ef2a60;
543 -- else
544 -- tcp_chan_steer = 0x00fac688;
545 --
546 -- /* RV770 CE has special chremap setup */
547 -- if (rdev->pdev->device == 0x944e) {
548 -- tcp_chan_steer = 0x00b08b08;
549 -- mc_shared_chremap = 0x00b08b08;
550 -- }
551 --
552 -- WREG32(TCP_CHAN_STEER, tcp_chan_steer);
553 -- WREG32(MC_SHARED_CHREMAP, mc_shared_chremap);
554 --}
555 --
556 - static void rv770_gpu_init(struct radeon_device *rdev)
557 - {
558 - int i, j, num_qd_pipes;
559 -@@ -784,8 +735,6 @@ static void rv770_gpu_init(struct radeon_device *rdev)
560 - WREG32(DCP_TILING_CONFIG, (gb_tiling_config & 0xffff));
561 - WREG32(HDP_TILING_CONFIG, (gb_tiling_config & 0xffff));
562 -
563 -- rv770_program_channel_remap(rdev);
564 --
565 - WREG32(CC_RB_BACKEND_DISABLE, cc_rb_backend_disable);
566 - WREG32(CC_GC_SHADER_PIPE_CONFIG, cc_gc_shader_pipe_config);
567 - WREG32(GC_USER_SHADER_PIPE_CONFIG, cc_gc_shader_pipe_config);
568 -diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
569 -index 2747980..16f69be 100644
570 ---- a/drivers/ide/ide-disk.c
571 -+++ b/drivers/ide/ide-disk.c
572 -@@ -435,7 +435,12 @@ static int idedisk_prep_fn(struct request_queue *q, struct request *rq)
573 - if (!(rq->cmd_flags & REQ_FLUSH))
574 - return BLKPREP_OK;
575 -
576 -- cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC);
577 -+ if (rq->special) {
578 -+ cmd = rq->special;
579 -+ memset(cmd, 0, sizeof(*cmd));
580 -+ } else {
581 -+ cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC);
582 -+ }
583 -
584 - /* FIXME: map struct ide_taskfile on rq->cmd[] */
585 - BUG_ON(cmd == NULL);
586 -diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
587 -index 451c3bb..ebdae6e 100644
588 ---- a/drivers/md/dm-table.c
589 -+++ b/drivers/md/dm-table.c
590 -@@ -1184,14 +1184,15 @@ static void dm_table_set_integrity(struct dm_table *t)
591 - return;
592 -
593 - template_disk = dm_table_get_integrity_disk(t, true);
594 -- if (!template_disk &&
595 -- blk_integrity_is_initialized(dm_disk(t->md))) {
596 -+ if (template_disk)
597 -+ blk_integrity_register(dm_disk(t->md),
598 -+ blk_get_integrity(template_disk));
599 -+ else if (blk_integrity_is_initialized(dm_disk(t->md)))
600 - DMWARN("%s: device no longer has a valid integrity profile",
601 - dm_device_name(t->md));
602 -- return;
603 -- }
604 -- blk_integrity_register(dm_disk(t->md),
605 -- blk_get_integrity(template_disk));
606 -+ else
607 -+ DMWARN("%s: unable to establish an integrity profile",
608 -+ dm_device_name(t->md));
609 - }
610 -
611 - void dm_table_set_restrictions(struct dm_table *t, struct request_queue *q,
612 -diff --git a/drivers/md/md.c b/drivers/md/md.c
613 -index 8554082..bc83428 100644
614 ---- a/drivers/md/md.c
615 -+++ b/drivers/md/md.c
616 -@@ -61,6 +61,11 @@
617 - static void autostart_arrays(int part);
618 - #endif
619 -
620 -+/* pers_list is a list of registered personalities protected
621 -+ * by pers_lock.
622 -+ * pers_lock does extra service to protect accesses to
623 -+ * mddev->thread when the mutex cannot be held.
624 -+ */
625 - static LIST_HEAD(pers_list);
626 - static DEFINE_SPINLOCK(pers_lock);
627 -
628 -@@ -690,7 +695,12 @@ static void mddev_unlock(mddev_t * mddev)
629 - } else
630 - mutex_unlock(&mddev->reconfig_mutex);
631 -
632 -+ /* was we've dropped the mutex we need a spinlock to
633 -+ * make sur the thread doesn't disappear
634 -+ */
635 -+ spin_lock(&pers_lock);
636 - md_wakeup_thread(mddev->thread);
637 -+ spin_unlock(&pers_lock);
638 - }
639 -
640 - static mdk_rdev_t * find_rdev_nr(mddev_t *mddev, int nr)
641 -@@ -6186,11 +6196,18 @@ mdk_thread_t *md_register_thread(void (*run) (mddev_t *), mddev_t *mddev,
642 - return thread;
643 - }
644 -
645 --void md_unregister_thread(mdk_thread_t *thread)
646 -+void md_unregister_thread(mdk_thread_t **threadp)
647 - {
648 -+ mdk_thread_t *thread = *threadp;
649 - if (!thread)
650 - return;
651 - dprintk("interrupting MD-thread pid %d\n", task_pid_nr(thread->tsk));
652 -+ /* Locking ensures that mddev_unlock does not wake_up a
653 -+ * non-existent thread
654 -+ */
655 -+ spin_lock(&pers_lock);
656 -+ *threadp = NULL;
657 -+ spin_unlock(&pers_lock);
658 -
659 - kthread_stop(thread->tsk);
660 - kfree(thread);
661 -@@ -7125,8 +7142,7 @@ static void reap_sync_thread(mddev_t *mddev)
662 - mdk_rdev_t *rdev;
663 -
664 - /* resync has finished, collect result */
665 -- md_unregister_thread(mddev->sync_thread);
666 -- mddev->sync_thread = NULL;
667 -+ md_unregister_thread(&mddev->sync_thread);
668 - if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery) &&
669 - !test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) {
670 - /* success...*/
671 -diff --git a/drivers/md/md.h b/drivers/md/md.h
672 -index 1c26c7a..ce4e328 100644
673 ---- a/drivers/md/md.h
674 -+++ b/drivers/md/md.h
675 -@@ -475,7 +475,7 @@ extern int register_md_personality(struct mdk_personality *p);
676 - extern int unregister_md_personality(struct mdk_personality *p);
677 - extern mdk_thread_t * md_register_thread(void (*run) (mddev_t *mddev),
678 - mddev_t *mddev, const char *name);
679 --extern void md_unregister_thread(mdk_thread_t *thread);
680 -+extern void md_unregister_thread(mdk_thread_t **threadp);
681 - extern void md_wakeup_thread(mdk_thread_t *thread);
682 - extern void md_check_recovery(mddev_t *mddev);
683 - extern void md_write_start(mddev_t *mddev, struct bio *bi);
684 -diff --git a/drivers/md/multipath.c b/drivers/md/multipath.c
685 -index 3535c23..d5b5fb3 100644
686 ---- a/drivers/md/multipath.c
687 -+++ b/drivers/md/multipath.c
688 -@@ -514,8 +514,7 @@ static int multipath_stop (mddev_t *mddev)
689 - {
690 - multipath_conf_t *conf = mddev->private;
691 -
692 -- md_unregister_thread(mddev->thread);
693 -- mddev->thread = NULL;
694 -+ md_unregister_thread(&mddev->thread);
695 - blk_sync_queue(mddev->queue); /* the unplug fn references 'conf'*/
696 - mempool_destroy(conf->pool);
697 - kfree(conf->multipaths);
698 -diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
699 -index f7431b6..3a9e59f 100644
700 ---- a/drivers/md/raid1.c
701 -+++ b/drivers/md/raid1.c
702 -@@ -2045,8 +2045,7 @@ static int stop(mddev_t *mddev)
703 - raise_barrier(conf);
704 - lower_barrier(conf);
705 -
706 -- md_unregister_thread(mddev->thread);
707 -- mddev->thread = NULL;
708 -+ md_unregister_thread(&mddev->thread);
709 - if (conf->r1bio_pool)
710 - mempool_destroy(conf->r1bio_pool);
711 - kfree(conf->mirrors);
712 -diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
713 -index 6e84668..17cb6ab 100644
714 ---- a/drivers/md/raid10.c
715 -+++ b/drivers/md/raid10.c
716 -@@ -2331,7 +2331,7 @@ static int run(mddev_t *mddev)
717 - return 0;
718 -
719 - out_free_conf:
720 -- md_unregister_thread(mddev->thread);
721 -+ md_unregister_thread(&mddev->thread);
722 - if (conf->r10bio_pool)
723 - mempool_destroy(conf->r10bio_pool);
724 - safe_put_page(conf->tmppage);
725 -@@ -2349,8 +2349,7 @@ static int stop(mddev_t *mddev)
726 - raise_barrier(conf, 0);
727 - lower_barrier(conf);
728 -
729 -- md_unregister_thread(mddev->thread);
730 -- mddev->thread = NULL;
731 -+ md_unregister_thread(&mddev->thread);
732 - blk_sync_queue(mddev->queue); /* the unplug fn references 'conf'*/
733 - if (conf->r10bio_pool)
734 - mempool_destroy(conf->r10bio_pool);
735 -diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
736 -index b72edf3..2581ba1 100644
737 ---- a/drivers/md/raid5.c
738 -+++ b/drivers/md/raid5.c
739 -@@ -5162,8 +5162,7 @@ static int run(mddev_t *mddev)
740 -
741 - return 0;
742 - abort:
743 -- md_unregister_thread(mddev->thread);
744 -- mddev->thread = NULL;
745 -+ md_unregister_thread(&mddev->thread);
746 - if (conf) {
747 - print_raid5_conf(conf);
748 - free_conf(conf);
749 -@@ -5177,8 +5176,7 @@ static int stop(mddev_t *mddev)
750 - {
751 - raid5_conf_t *conf = mddev->private;
752 -
753 -- md_unregister_thread(mddev->thread);
754 -- mddev->thread = NULL;
755 -+ md_unregister_thread(&mddev->thread);
756 - if (mddev->queue)
757 - mddev->queue->backing_dev_info.congested_fn = NULL;
758 - free_conf(conf);
759 -diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c
760 -index b928bc1..8b51cd6 100644
761 ---- a/drivers/misc/lis3lv02d/lis3lv02d.c
762 -+++ b/drivers/misc/lis3lv02d/lis3lv02d.c
763 -@@ -375,12 +375,14 @@ void lis3lv02d_poweron(struct lis3lv02d *lis3)
764 - * both have been read. So the value read will always be correct.
765 - * Set BOOT bit to refresh factory tuning values.
766 - */
767 -- lis3->read(lis3, CTRL_REG2, &reg);
768 -- if (lis3->whoami == WAI_12B)
769 -- reg |= CTRL2_BDU | CTRL2_BOOT;
770 -- else
771 -- reg |= CTRL2_BOOT_8B;
772 -- lis3->write(lis3, CTRL_REG2, reg);
773 -+ if (lis3->pdata) {
774 -+ lis3->read(lis3, CTRL_REG2, &reg);
775 -+ if (lis3->whoami == WAI_12B)
776 -+ reg |= CTRL2_BDU | CTRL2_BOOT;
777 -+ else
778 -+ reg |= CTRL2_BOOT_8B;
779 -+ lis3->write(lis3, CTRL_REG2, reg);
780 -+ }
781 -
782 - /* LIS3 power on delay is quite long */
783 - msleep(lis3->pwron_delay / lis3lv02d_get_odr());
784 -diff --git a/drivers/mmc/host/mxs-mmc.c b/drivers/mmc/host/mxs-mmc.c
785 -index 99d39a6..d513d47 100644
786 ---- a/drivers/mmc/host/mxs-mmc.c
787 -+++ b/drivers/mmc/host/mxs-mmc.c
788 -@@ -564,40 +564,38 @@ static void mxs_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq)
789 -
790 - static void mxs_mmc_set_clk_rate(struct mxs_mmc_host *host, unsigned int rate)
791 - {
792 -- unsigned int ssp_rate, bit_rate;
793 -- u32 div1, div2;
794 -+ unsigned int ssp_clk, ssp_sck;
795 -+ u32 clock_divide, clock_rate;
796 - u32 val;
797 -
798 -- ssp_rate = clk_get_rate(host->clk);
799 -+ ssp_clk = clk_get_rate(host->clk);
800 -
801 -- for (div1 = 2; div1 < 254; div1 += 2) {
802 -- div2 = ssp_rate / rate / div1;
803 -- if (div2 < 0x100)
804 -+ for (clock_divide = 2; clock_divide <= 254; clock_divide += 2) {
805 -+ clock_rate = DIV_ROUND_UP(ssp_clk, rate * clock_divide);
806 -+ clock_rate = (clock_rate > 0) ? clock_rate - 1 : 0;
807 -+ if (clock_rate <= 255)
808 - break;
809 - }
810 -
811 -- if (div1 >= 254) {
812 -+ if (clock_divide > 254) {
813 - dev_err(mmc_dev(host->mmc),
814 - "%s: cannot set clock to %d\n", __func__, rate);
815 - return;
816 - }
817 -
818 -- if (div2 == 0)
819 -- bit_rate = ssp_rate / div1;
820 -- else
821 -- bit_rate = ssp_rate / div1 / div2;
822 -+ ssp_sck = ssp_clk / clock_divide / (1 + clock_rate);
823 -
824 - val = readl(host->base + HW_SSP_TIMING);
825 - val &= ~(BM_SSP_TIMING_CLOCK_DIVIDE | BM_SSP_TIMING_CLOCK_RATE);
826 -- val |= BF_SSP(div1, TIMING_CLOCK_DIVIDE);
827 -- val |= BF_SSP(div2 - 1, TIMING_CLOCK_RATE);
828 -+ val |= BF_SSP(clock_divide, TIMING_CLOCK_DIVIDE);
829 -+ val |= BF_SSP(clock_rate, TIMING_CLOCK_RATE);
830 - writel(val, host->base + HW_SSP_TIMING);
831 -
832 -- host->clk_rate = bit_rate;
833 -+ host->clk_rate = ssp_sck;
834 -
835 - dev_dbg(mmc_dev(host->mmc),
836 -- "%s: div1 %d, div2 %d, ssp %d, bit %d, rate %d\n",
837 -- __func__, div1, div2, ssp_rate, bit_rate, rate);
838 -+ "%s: clock_divide %d, clock_rate %d, ssp_clk %d, rate_actual %d, rate_requested %d\n",
839 -+ __func__, clock_divide, clock_rate, ssp_clk, ssp_sck, rate);
840 - }
841 -
842 - static void mxs_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
843 -diff --git a/drivers/net/e1000e/ich8lan.c b/drivers/net/e1000e/ich8lan.c
844 -index 3369d1f..ee77b94 100644
845 ---- a/drivers/net/e1000e/ich8lan.c
846 -+++ b/drivers/net/e1000e/ich8lan.c
847 -@@ -137,8 +137,9 @@
848 - #define HV_PM_CTRL PHY_REG(770, 17)
849 -
850 - /* PHY Low Power Idle Control */
851 --#define I82579_LPI_CTRL PHY_REG(772, 20)
852 --#define I82579_LPI_CTRL_ENABLE_MASK 0x6000
853 -+#define I82579_LPI_CTRL PHY_REG(772, 20)
854 -+#define I82579_LPI_CTRL_ENABLE_MASK 0x6000
855 -+#define I82579_LPI_CTRL_FORCE_PLL_LOCK_COUNT 0x80
856 -
857 - /* EMI Registers */
858 - #define I82579_EMI_ADDR 0x10
859 -@@ -1611,6 +1612,7 @@ static s32 e1000_k1_workaround_lv(struct e1000_hw *hw)
860 - s32 ret_val = 0;
861 - u16 status_reg = 0;
862 - u32 mac_reg;
863 -+ u16 phy_reg;
864 -
865 - if (hw->mac.type != e1000_pch2lan)
866 - goto out;
867 -@@ -1625,12 +1627,19 @@ static s32 e1000_k1_workaround_lv(struct e1000_hw *hw)
868 - mac_reg = er32(FEXTNVM4);
869 - mac_reg &= ~E1000_FEXTNVM4_BEACON_DURATION_MASK;
870 -
871 -- if (status_reg & HV_M_STATUS_SPEED_1000)
872 -+ ret_val = e1e_rphy(hw, I82579_LPI_CTRL, &phy_reg);
873 -+ if (ret_val)
874 -+ goto out;
875 -+
876 -+ if (status_reg & HV_M_STATUS_SPEED_1000) {
877 - mac_reg |= E1000_FEXTNVM4_BEACON_DURATION_8USEC;
878 -- else
879 -+ phy_reg &= ~I82579_LPI_CTRL_FORCE_PLL_LOCK_COUNT;
880 -+ } else {
881 - mac_reg |= E1000_FEXTNVM4_BEACON_DURATION_16USEC;
882 --
883 -+ phy_reg |= I82579_LPI_CTRL_FORCE_PLL_LOCK_COUNT;
884 -+ }
885 - ew32(FEXTNVM4, mac_reg);
886 -+ ret_val = e1e_wphy(hw, I82579_LPI_CTRL, phy_reg);
887 - }
888 -
889 - out:
890 -diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
891 -index ab8c16f..2886d25 100644
892 ---- a/drivers/net/wireless/rt2x00/rt2x00queue.c
893 -+++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
894 -@@ -556,15 +556,21 @@ int rt2x00queue_write_tx_frame(struct data_queue *queue, struct sk_buff *skb,
895 - bool local)
896 - {
897 - struct ieee80211_tx_info *tx_info;
898 -- struct queue_entry *entry = rt2x00queue_get_entry(queue, Q_INDEX);
899 -+ struct queue_entry *entry;
900 - struct txentry_desc txdesc;
901 - struct skb_frame_desc *skbdesc;
902 - u8 rate_idx, rate_flags;
903 -+ int ret = 0;
904 -+
905 -+ spin_lock(&queue->tx_lock);
906 -+
907 -+ entry = rt2x00queue_get_entry(queue, Q_INDEX);
908 -
909 - if (unlikely(rt2x00queue_full(queue))) {
910 - ERROR(queue->rt2x00dev,
911 - "Dropping frame due to full tx queue %d.\n", queue->qid);
912 -- return -ENOBUFS;
913 -+ ret = -ENOBUFS;
914 -+ goto out;
915 - }
916 -
917 - if (unlikely(test_and_set_bit(ENTRY_OWNER_DEVICE_DATA,
918 -@@ -573,7 +579,8 @@ int rt2x00queue_write_tx_frame(struct data_queue *queue, struct sk_buff *skb,
919 - "Arrived at non-free entry in the non-full queue %d.\n"
920 - "Please file bug report to %s.\n",
921 - queue->qid, DRV_PROJECT);
922 -- return -EINVAL;
923 -+ ret = -EINVAL;
924 -+ goto out;
925 - }
926 -
927 - /*
928 -@@ -635,7 +642,8 @@ int rt2x00queue_write_tx_frame(struct data_queue *queue, struct sk_buff *skb,
929 - if (unlikely(rt2x00queue_write_tx_data(entry, &txdesc))) {
930 - clear_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags);
931 - entry->skb = NULL;
932 -- return -EIO;
933 -+ ret = -EIO;
934 -+ goto out;
935 - }
936 -
937 - set_bit(ENTRY_DATA_PENDING, &entry->flags);
938 -@@ -644,7 +652,9 @@ int rt2x00queue_write_tx_frame(struct data_queue *queue, struct sk_buff *skb,
939 - rt2x00queue_write_tx_descriptor(entry, &txdesc);
940 - rt2x00queue_kick_tx_queue(queue, &txdesc);
941 -
942 -- return 0;
943 -+out:
944 -+ spin_unlock(&queue->tx_lock);
945 -+ return ret;
946 - }
947 -
948 - int rt2x00queue_clear_beacon(struct rt2x00_dev *rt2x00dev,
949 -@@ -1185,6 +1195,7 @@ static void rt2x00queue_init(struct rt2x00_dev *rt2x00dev,
950 - struct data_queue *queue, enum data_queue_qid qid)
951 - {
952 - mutex_init(&queue->status_lock);
953 -+ spin_lock_init(&queue->tx_lock);
954 - spin_lock_init(&queue->index_lock);
955 -
956 - queue->rt2x00dev = rt2x00dev;
957 -diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.h b/drivers/net/wireless/rt2x00/rt2x00queue.h
958 -index 167d458..ad3d527 100644
959 ---- a/drivers/net/wireless/rt2x00/rt2x00queue.h
960 -+++ b/drivers/net/wireless/rt2x00/rt2x00queue.h
961 -@@ -432,6 +432,7 @@ enum data_queue_flags {
962 - * @flags: Entry flags, see &enum queue_entry_flags.
963 - * @status_lock: The mutex for protecting the start/stop/flush
964 - * handling on this queue.
965 -+ * @tx_lock: Spinlock to serialize tx operations on this queue.
966 - * @index_lock: Spinlock to protect index handling. Whenever @index, @index_done or
967 - * @index_crypt needs to be changed this lock should be grabbed to prevent
968 - * index corruption due to concurrency.
969 -@@ -458,6 +459,7 @@ struct data_queue {
970 - unsigned long flags;
971 -
972 - struct mutex status_lock;
973 -+ spinlock_t tx_lock;
974 - spinlock_t index_lock;
975 -
976 - unsigned int count;
977 -diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c
978 -index c9e3dc0..16ad97d 100644
979 ---- a/drivers/scsi/libsas/sas_expander.c
980 -+++ b/drivers/scsi/libsas/sas_expander.c
981 -@@ -1769,10 +1769,12 @@ static void sas_unregister_devs_sas_addr(struct domain_device *parent,
982 - sas_disable_routing(parent, phy->attached_sas_addr);
983 - }
984 - memset(phy->attached_sas_addr, 0, SAS_ADDR_SIZE);
985 -- sas_port_delete_phy(phy->port, phy->phy);
986 -- if (phy->port->num_phys == 0)
987 -- sas_port_delete(phy->port);
988 -- phy->port = NULL;
989 -+ if (phy->port) {
990 -+ sas_port_delete_phy(phy->port, phy->phy);
991 -+ if (phy->port->num_phys == 0)
992 -+ sas_port_delete(phy->port);
993 -+ phy->port = NULL;
994 -+ }
995 - }
996 -
997 - static int sas_discover_bfs_by_root_level(struct domain_device *root,
998 -diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
999 -index f461925..a2a1a83 100644
1000 ---- a/drivers/scsi/qla2xxx/qla_os.c
1001 -+++ b/drivers/scsi/qla2xxx/qla_os.c
1002 -@@ -1240,10 +1240,9 @@ qla2x00_abort_all_cmds(scsi_qla_host_t *vha, int res)
1003 - qla2x00_sp_compl(ha, sp);
1004 - } else {
1005 - ctx = sp->ctx;
1006 -- if (ctx->type == SRB_LOGIN_CMD ||
1007 -- ctx->type == SRB_LOGOUT_CMD) {
1008 -- ctx->u.iocb_cmd->free(sp);
1009 -- } else {
1010 -+ if (ctx->type == SRB_ELS_CMD_RPT ||
1011 -+ ctx->type == SRB_ELS_CMD_HST ||
1012 -+ ctx->type == SRB_CT_CMD) {
1013 - struct fc_bsg_job *bsg_job =
1014 - ctx->u.bsg_job;
1015 - if (bsg_job->request->msgcode
1016 -@@ -1255,6 +1254,8 @@ qla2x00_abort_all_cmds(scsi_qla_host_t *vha, int res)
1017 - kfree(sp->ctx);
1018 - mempool_free(sp,
1019 - ha->srb_mempool);
1020 -+ } else {
1021 -+ ctx->u.iocb_cmd->free(sp);
1022 - }
1023 - }
1024 - }
1025 -diff --git a/fs/exec.c b/fs/exec.c
1026 -index 6075a1e..044c13f 100644
1027 ---- a/fs/exec.c
1028 -+++ b/fs/exec.c
1029 -@@ -1411,6 +1411,8 @@ int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs)
1030 - printable(bprm->buf[2]) &&
1031 - printable(bprm->buf[3]))
1032 - break; /* -ENOEXEC */
1033 -+ if (try)
1034 -+ break; /* -ENOEXEC */
1035 - request_module("binfmt-%04x", *(unsigned short *)(&bprm->buf[2]));
1036 - #endif
1037 - }
1038 -diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
1039 -index 9d88e1c..f0c0e8a 100644
1040 ---- a/include/linux/ftrace.h
1041 -+++ b/include/linux/ftrace.h
1042 -@@ -19,6 +19,8 @@
1043 -
1044 - #include <asm/ftrace.h>
1045 -
1046 -+struct ftrace_hash;
1047 -+
1048 - #ifdef CONFIG_FUNCTION_TRACER
1049 -
1050 - extern int ftrace_enabled;
1051 -@@ -29,8 +31,6 @@ ftrace_enable_sysctl(struct ctl_table *table, int write,
1052 -
1053 - typedef void (*ftrace_func_t)(unsigned long ip, unsigned long parent_ip);
1054 -
1055 --struct ftrace_hash;
1056 --
1057 - enum {
1058 - FTRACE_OPS_FL_ENABLED = 1 << 0,
1059 - FTRACE_OPS_FL_GLOBAL = 1 << 1,
1060 -@@ -123,7 +123,8 @@ stack_trace_sysctl(struct ctl_table *table, int write,
1061 - struct ftrace_func_command {
1062 - struct list_head list;
1063 - char *name;
1064 -- int (*func)(char *func, char *cmd,
1065 -+ int (*func)(struct ftrace_hash *hash,
1066 -+ char *func, char *cmd,
1067 - char *params, int enable);
1068 - };
1069 -
1070 -diff --git a/include/linux/ptp_classify.h b/include/linux/ptp_classify.h
1071 -index e07e274..1dc420b 100644
1072 ---- a/include/linux/ptp_classify.h
1073 -+++ b/include/linux/ptp_classify.h
1074 -@@ -51,6 +51,7 @@
1075 - #define PTP_CLASS_V2_VLAN (PTP_CLASS_V2 | PTP_CLASS_VLAN)
1076 -
1077 - #define PTP_EV_PORT 319
1078 -+#define PTP_GEN_BIT 0x08 /* indicates general message, if set in message type */
1079 -
1080 - #define OFF_ETYPE 12
1081 - #define OFF_IHL 14
1082 -@@ -116,14 +117,20 @@ static inline int ptp_filter_init(struct sock_filter *f, int len)
1083 - {OP_OR, 0, 0, PTP_CLASS_IPV6 }, /* */ \
1084 - {OP_RETA, 0, 0, 0 }, /* */ \
1085 - /*L3x*/ {OP_RETK, 0, 0, PTP_CLASS_NONE }, /* */ \
1086 --/*L40*/ {OP_JEQ, 0, 6, ETH_P_8021Q }, /* f goto L50 */ \
1087 -+/*L40*/ {OP_JEQ, 0, 9, ETH_P_8021Q }, /* f goto L50 */ \
1088 - {OP_LDH, 0, 0, OFF_ETYPE + 4 }, /* */ \
1089 -- {OP_JEQ, 0, 9, ETH_P_1588 }, /* f goto L60 */ \
1090 -+ {OP_JEQ, 0, 15, ETH_P_1588 }, /* f goto L60 */ \
1091 -+ {OP_LDB, 0, 0, ETH_HLEN + VLAN_HLEN }, /* */ \
1092 -+ {OP_AND, 0, 0, PTP_GEN_BIT }, /* */ \
1093 -+ {OP_JEQ, 0, 12, 0 }, /* f goto L6x */ \
1094 - {OP_LDH, 0, 0, ETH_HLEN + VLAN_HLEN }, /* */ \
1095 - {OP_AND, 0, 0, PTP_CLASS_VMASK }, /* */ \
1096 - {OP_OR, 0, 0, PTP_CLASS_VLAN }, /* */ \
1097 - {OP_RETA, 0, 0, 0 }, /* */ \
1098 --/*L50*/ {OP_JEQ, 0, 4, ETH_P_1588 }, /* f goto L61 */ \
1099 -+/*L50*/ {OP_JEQ, 0, 7, ETH_P_1588 }, /* f goto L61 */ \
1100 -+ {OP_LDB, 0, 0, ETH_HLEN }, /* */ \
1101 -+ {OP_AND, 0, 0, PTP_GEN_BIT }, /* */ \
1102 -+ {OP_JEQ, 0, 4, 0 }, /* f goto L6x */ \
1103 - {OP_LDH, 0, 0, ETH_HLEN }, /* */ \
1104 - {OP_AND, 0, 0, PTP_CLASS_VMASK }, /* */ \
1105 - {OP_OR, 0, 0, PTP_CLASS_L2 }, /* */ \
1106 -diff --git a/include/linux/sched.h b/include/linux/sched.h
1107 -index 14a6c7b..4ef452b 100644
1108 ---- a/include/linux/sched.h
1109 -+++ b/include/linux/sched.h
1110 -@@ -1937,7 +1937,6 @@ static inline void disable_sched_clock_irqtime(void) {}
1111 -
1112 - extern unsigned long long
1113 - task_sched_runtime(struct task_struct *task);
1114 --extern unsigned long long thread_group_sched_runtime(struct task_struct *task);
1115 -
1116 - /* sched_exec is called by processes performing an exec */
1117 - #ifdef CONFIG_SMP
1118 -diff --git a/include/net/ipv6.h b/include/net/ipv6.h
1119 -index 3b5ac1f..c39121f 100644
1120 ---- a/include/net/ipv6.h
1121 -+++ b/include/net/ipv6.h
1122 -@@ -463,7 +463,7 @@ static inline int ipv6_addr_diff(const struct in6_addr *a1, const struct in6_add
1123 - return __ipv6_addr_diff(a1, a2, sizeof(struct in6_addr));
1124 - }
1125 -
1126 --extern void ipv6_select_ident(struct frag_hdr *fhdr, struct rt6_info *rt);
1127 -+extern void ipv6_select_ident(struct frag_hdr *fhdr, struct in6_addr *addr);
1128 -
1129 - /*
1130 - * Prototypes exported by ipv6
1131 -diff --git a/kernel/posix-cpu-timers.c b/kernel/posix-cpu-timers.c
1132 -index 58f405b..c8008dd 100644
1133 ---- a/kernel/posix-cpu-timers.c
1134 -+++ b/kernel/posix-cpu-timers.c
1135 -@@ -250,7 +250,7 @@ void thread_group_cputime(struct task_struct *tsk, struct task_cputime *times)
1136 - do {
1137 - times->utime = cputime_add(times->utime, t->utime);
1138 - times->stime = cputime_add(times->stime, t->stime);
1139 -- times->sum_exec_runtime += t->se.sum_exec_runtime;
1140 -+ times->sum_exec_runtime += task_sched_runtime(t);
1141 - } while_each_thread(tsk, t);
1142 - out:
1143 - rcu_read_unlock();
1144 -@@ -312,7 +312,8 @@ static int cpu_clock_sample_group(const clockid_t which_clock,
1145 - cpu->cpu = cputime.utime;
1146 - break;
1147 - case CPUCLOCK_SCHED:
1148 -- cpu->sched = thread_group_sched_runtime(p);
1149 -+ thread_group_cputime(p, &cputime);
1150 -+ cpu->sched = cputime.sum_exec_runtime;
1151 - break;
1152 - }
1153 - return 0;
1154 -diff --git a/kernel/sched.c b/kernel/sched.c
1155 -index 8b37360..063d7a4 100644
1156 ---- a/kernel/sched.c
1157 -+++ b/kernel/sched.c
1158 -@@ -3713,30 +3713,6 @@ unsigned long long task_sched_runtime(struct task_struct *p)
1159 - }
1160 -
1161 - /*
1162 -- * Return sum_exec_runtime for the thread group.
1163 -- * In case the task is currently running, return the sum plus current's
1164 -- * pending runtime that have not been accounted yet.
1165 -- *
1166 -- * Note that the thread group might have other running tasks as well,
1167 -- * so the return value not includes other pending runtime that other
1168 -- * running tasks might have.
1169 -- */
1170 --unsigned long long thread_group_sched_runtime(struct task_struct *p)
1171 --{
1172 -- struct task_cputime totals;
1173 -- unsigned long flags;
1174 -- struct rq *rq;
1175 -- u64 ns;
1176 --
1177 -- rq = task_rq_lock(p, &flags);
1178 -- thread_group_cputime(p, &totals);
1179 -- ns = totals.sum_exec_runtime + do_task_delta_exec(p, rq);
1180 -- task_rq_unlock(rq, p, &flags);
1181 --
1182 -- return ns;
1183 --}
1184 --
1185 --/*
1186 - * Account user cpu time to a process.
1187 - * @p: the process that the cpu time gets accounted to
1188 - * @cputime: the cpu time spent in user space since the last update
1189 -@@ -4335,7 +4311,7 @@ static inline void sched_submit_work(struct task_struct *tsk)
1190 - blk_schedule_flush_plug(tsk);
1191 - }
1192 -
1193 --asmlinkage void schedule(void)
1194 -+asmlinkage void __sched schedule(void)
1195 - {
1196 - struct task_struct *tsk = current;
1197 -
1198 -diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c
1199 -index 10d0182..17f2319 100644
1200 ---- a/kernel/sched_rt.c
1201 -+++ b/kernel/sched_rt.c
1202 -@@ -1038,7 +1038,7 @@ select_task_rq_rt(struct task_struct *p, int sd_flag, int flags)
1203 - */
1204 - if (curr && unlikely(rt_task(curr)) &&
1205 - (curr->rt.nr_cpus_allowed < 2 ||
1206 -- curr->prio < p->prio) &&
1207 -+ curr->prio <= p->prio) &&
1208 - (p->rt.nr_cpus_allowed > 1)) {
1209 - int target = find_lowest_rq(p);
1210 -
1211 -@@ -1569,7 +1569,7 @@ static void task_woken_rt(struct rq *rq, struct task_struct *p)
1212 - p->rt.nr_cpus_allowed > 1 &&
1213 - rt_task(rq->curr) &&
1214 - (rq->curr->rt.nr_cpus_allowed < 2 ||
1215 -- rq->curr->prio < p->prio))
1216 -+ rq->curr->prio <= p->prio))
1217 - push_rt_tasks(rq);
1218 - }
1219 -
1220 -diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
1221 -index 908038f..ef9271b 100644
1222 ---- a/kernel/trace/ftrace.c
1223 -+++ b/kernel/trace/ftrace.c
1224 -@@ -1744,10 +1744,36 @@ static cycle_t ftrace_update_time;
1225 - static unsigned long ftrace_update_cnt;
1226 - unsigned long ftrace_update_tot_cnt;
1227 -
1228 -+static int ops_traces_mod(struct ftrace_ops *ops)
1229 -+{
1230 -+ struct ftrace_hash *hash;
1231 -+
1232 -+ hash = ops->filter_hash;
1233 -+ return !!(!hash || !hash->count);
1234 -+}
1235 -+
1236 - static int ftrace_update_code(struct module *mod)
1237 - {
1238 - struct dyn_ftrace *p;
1239 - cycle_t start, stop;
1240 -+ unsigned long ref = 0;
1241 -+
1242 -+ /*
1243 -+ * When adding a module, we need to check if tracers are
1244 -+ * currently enabled and if they are set to trace all functions.
1245 -+ * If they are, we need to enable the module functions as well
1246 -+ * as update the reference counts for those function records.
1247 -+ */
1248 -+ if (mod) {
1249 -+ struct ftrace_ops *ops;
1250 -+
1251 -+ for (ops = ftrace_ops_list;
1252 -+ ops != &ftrace_list_end; ops = ops->next) {
1253 -+ if (ops->flags & FTRACE_OPS_FL_ENABLED &&
1254 -+ ops_traces_mod(ops))
1255 -+ ref++;
1256 -+ }
1257 -+ }
1258 -
1259 - start = ftrace_now(raw_smp_processor_id());
1260 - ftrace_update_cnt = 0;
1261 -@@ -1760,7 +1786,7 @@ static int ftrace_update_code(struct module *mod)
1262 -
1263 - p = ftrace_new_addrs;
1264 - ftrace_new_addrs = p->newlist;
1265 -- p->flags = 0L;
1266 -+ p->flags = ref;
1267 -
1268 - /*
1269 - * Do the initial record conversion from mcount jump
1270 -@@ -1783,7 +1809,7 @@ static int ftrace_update_code(struct module *mod)
1271 - * conversion puts the module to the correct state, thus
1272 - * passing the ftrace_make_call check.
1273 - */
1274 -- if (ftrace_start_up) {
1275 -+ if (ftrace_start_up && ref) {
1276 - int failed = __ftrace_replace_code(p, 1);
1277 - if (failed) {
1278 - ftrace_bug(failed, p->ip);
1279 -@@ -2407,10 +2433,9 @@ ftrace_match_module_records(struct ftrace_hash *hash, char *buff, char *mod)
1280 - */
1281 -
1282 - static int
1283 --ftrace_mod_callback(char *func, char *cmd, char *param, int enable)
1284 -+ftrace_mod_callback(struct ftrace_hash *hash,
1285 -+ char *func, char *cmd, char *param, int enable)
1286 - {
1287 -- struct ftrace_ops *ops = &global_ops;
1288 -- struct ftrace_hash *hash;
1289 - char *mod;
1290 - int ret = -EINVAL;
1291 -
1292 -@@ -2430,11 +2455,6 @@ ftrace_mod_callback(char *func, char *cmd, char *param, int enable)
1293 - if (!strlen(mod))
1294 - return ret;
1295 -
1296 -- if (enable)
1297 -- hash = ops->filter_hash;
1298 -- else
1299 -- hash = ops->notrace_hash;
1300 --
1301 - ret = ftrace_match_module_records(hash, func, mod);
1302 - if (!ret)
1303 - ret = -EINVAL;
1304 -@@ -2760,7 +2780,7 @@ static int ftrace_process_regex(struct ftrace_hash *hash,
1305 - mutex_lock(&ftrace_cmd_mutex);
1306 - list_for_each_entry(p, &ftrace_commands, list) {
1307 - if (strcmp(p->name, command) == 0) {
1308 -- ret = p->func(func, command, next, enable);
1309 -+ ret = p->func(hash, func, command, next, enable);
1310 - goto out_unlock;
1311 - }
1312 - }
1313 -diff --git a/kernel/trace/trace_functions.c b/kernel/trace/trace_functions.c
1314 -index 8d0e1cc..c7b0c6a 100644
1315 ---- a/kernel/trace/trace_functions.c
1316 -+++ b/kernel/trace/trace_functions.c
1317 -@@ -324,7 +324,8 @@ ftrace_trace_onoff_unreg(char *glob, char *cmd, char *param)
1318 - }
1319 -
1320 - static int
1321 --ftrace_trace_onoff_callback(char *glob, char *cmd, char *param, int enable)
1322 -+ftrace_trace_onoff_callback(struct ftrace_hash *hash,
1323 -+ char *glob, char *cmd, char *param, int enable)
1324 - {
1325 - struct ftrace_probe_ops *ops;
1326 - void *count = (void *)-1;
1327 -diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
1328 -index 1661296..e17596b 100644
1329 ---- a/net/ipv6/ip6_output.c
1330 -+++ b/net/ipv6/ip6_output.c
1331 -@@ -620,9 +620,9 @@ static u32 __ipv6_select_ident(const struct in6_addr *addr)
1332 - return hash + newid;
1333 - }
1334 -
1335 --void ipv6_select_ident(struct frag_hdr *fhdr, struct rt6_info *rt)
1336 -+void ipv6_select_ident(struct frag_hdr *fhdr, struct in6_addr *addr)
1337 - {
1338 -- fhdr->identification = htonl(__ipv6_select_ident(&rt->rt6i_dst.addr));
1339 -+ fhdr->identification = htonl(__ipv6_select_ident(addr));
1340 - }
1341 -
1342 - int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *))
1343 -@@ -709,7 +709,7 @@ int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *))
1344 - skb_reset_network_header(skb);
1345 - memcpy(skb_network_header(skb), tmp_hdr, hlen);
1346 -
1347 -- ipv6_select_ident(fh, rt);
1348 -+ ipv6_select_ident(fh, &rt->rt6i_dst.addr);
1349 - fh->nexthdr = nexthdr;
1350 - fh->reserved = 0;
1351 - fh->frag_off = htons(IP6_MF);
1352 -@@ -855,7 +855,7 @@ slow_path:
1353 - fh->nexthdr = nexthdr;
1354 - fh->reserved = 0;
1355 - if (!frag_id) {
1356 -- ipv6_select_ident(fh, rt);
1357 -+ ipv6_select_ident(fh, &rt->rt6i_dst.addr);
1358 - frag_id = fh->identification;
1359 - } else
1360 - fh->identification = frag_id;
1361 -@@ -1146,7 +1146,7 @@ static inline int ip6_ufo_append_data(struct sock *sk,
1362 - skb_shinfo(skb)->gso_size = (mtu - fragheaderlen -
1363 - sizeof(struct frag_hdr)) & ~7;
1364 - skb_shinfo(skb)->gso_type = SKB_GSO_UDP;
1365 -- ipv6_select_ident(&fhdr, rt);
1366 -+ ipv6_select_ident(&fhdr, &rt->rt6i_dst.addr);
1367 - skb_shinfo(skb)->ip6_frag_id = fhdr.identification;
1368 - __skb_queue_tail(&sk->sk_write_queue, skb);
1369 -
1370 -diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
1371 -index 29213b5..0d920c5 100644
1372 ---- a/net/ipv6/udp.c
1373 -+++ b/net/ipv6/udp.c
1374 -@@ -1309,6 +1309,7 @@ static struct sk_buff *udp6_ufo_fragment(struct sk_buff *skb, u32 features)
1375 - u8 frag_hdr_sz = sizeof(struct frag_hdr);
1376 - int offset;
1377 - __wsum csum;
1378 -+ struct rt6_info *rt = (struct rt6_info *)skb_dst(skb);
1379 -
1380 - mss = skb_shinfo(skb)->gso_size;
1381 - if (unlikely(skb->len <= mss))
1382 -@@ -1359,7 +1360,8 @@ static struct sk_buff *udp6_ufo_fragment(struct sk_buff *skb, u32 features)
1383 - fptr = (struct frag_hdr *)(skb_network_header(skb) + unfrag_ip6hlen);
1384 - fptr->nexthdr = nexthdr;
1385 - fptr->reserved = 0;
1386 -- ipv6_select_ident(fptr, (struct rt6_info *)skb_dst(skb));
1387 -+ ipv6_select_ident(fptr,
1388 -+ rt ? &rt->rt6i_dst.addr : &ipv6_hdr(skb)->daddr);
1389 -
1390 - /* Fragment the skb. ipv6 header and the remaining fields of the
1391 - * fragment header are updated in ipv6_gso_segment()
1392 -diff --git a/sound/soc/codecs/wm8753.c b/sound/soc/codecs/wm8753.c
1393 -index ffa2ffe..aa091a0 100644
1394 ---- a/sound/soc/codecs/wm8753.c
1395 -+++ b/sound/soc/codecs/wm8753.c
1396 -@@ -1454,8 +1454,8 @@ static int wm8753_probe(struct snd_soc_codec *codec)
1397 - /* set the update bits */
1398 - snd_soc_update_bits(codec, WM8753_LDAC, 0x0100, 0x0100);
1399 - snd_soc_update_bits(codec, WM8753_RDAC, 0x0100, 0x0100);
1400 -- snd_soc_update_bits(codec, WM8753_LDAC, 0x0100, 0x0100);
1401 -- snd_soc_update_bits(codec, WM8753_RDAC, 0x0100, 0x0100);
1402 -+ snd_soc_update_bits(codec, WM8753_LADC, 0x0100, 0x0100);
1403 -+ snd_soc_update_bits(codec, WM8753_RADC, 0x0100, 0x0100);
1404 - snd_soc_update_bits(codec, WM8753_LOUT1V, 0x0100, 0x0100);
1405 - snd_soc_update_bits(codec, WM8753_ROUT1V, 0x0100, 0x0100);
1406 - snd_soc_update_bits(codec, WM8753_LOUT2V, 0x0100, 0x0100);
1407 -diff --git a/sound/soc/pxa/zylonite.c b/sound/soc/pxa/zylonite.c
1408 -index b644575..2b8350b 100644
1409 ---- a/sound/soc/pxa/zylonite.c
1410 -+++ b/sound/soc/pxa/zylonite.c
1411 -@@ -196,20 +196,20 @@ static int zylonite_probe(struct snd_soc_card *card)
1412 - if (clk_pout) {
1413 - pout = clk_get(NULL, "CLK_POUT");
1414 - if (IS_ERR(pout)) {
1415 -- dev_err(&pdev->dev, "Unable to obtain CLK_POUT: %ld\n",
1416 -+ dev_err(card->dev, "Unable to obtain CLK_POUT: %ld\n",
1417 - PTR_ERR(pout));
1418 - return PTR_ERR(pout);
1419 - }
1420 -
1421 - ret = clk_enable(pout);
1422 - if (ret != 0) {
1423 -- dev_err(&pdev->dev, "Unable to enable CLK_POUT: %d\n",
1424 -+ dev_err(card->dev, "Unable to enable CLK_POUT: %d\n",
1425 - ret);
1426 - clk_put(pout);
1427 - return ret;
1428 - }
1429 -
1430 -- dev_dbg(&pdev->dev, "MCLK enabled at %luHz\n",
1431 -+ dev_dbg(card->dev, "MCLK enabled at %luHz\n",
1432 - clk_get_rate(pout));
1433 - }
1434 -
1435 -@@ -241,7 +241,7 @@ static int zylonite_resume_pre(struct snd_soc_card *card)
1436 - if (clk_pout) {
1437 - ret = clk_enable(pout);
1438 - if (ret != 0)
1439 -- dev_err(&pdev->dev, "Unable to enable CLK_POUT: %d\n",
1440 -+ dev_err(card->dev, "Unable to enable CLK_POUT: %d\n",
1441 - ret);
1442 - }
1443 -
1444
1445 diff --git a/3.0.7/0000_README b/3.0.8/0000_README
1446 similarity index 95%
1447 rename from 3.0.7/0000_README
1448 rename to 3.0.8/0000_README
1449 index b955f8c..331ee41 100644
1450 --- a/3.0.7/0000_README
1451 +++ b/3.0.8/0000_README
1452 @@ -3,10 +3,6 @@ README
1453
1454 Individual Patch Descriptions:
1455 -----------------------------------------------------------------------------
1456 -Patch: 1006_linux-3.0.7.patch
1457 -From: http://www.kernel.org
1458 -Desc: Linux 3.0.7
1459 -
1460 Patch: 4420_grsecurity-2.2.2-3.0.8-201110250925.patch
1461 From: http://www.grsecurity.net
1462 Desc: hardened-sources base patch from upstream grsecurity
1463
1464 diff --git a/3.0.7/4420_grsecurity-2.2.2-3.0.8-201110250925.patch b/3.0.8/4420_grsecurity-2.2.2-3.0.8-201110250925.patch
1465 similarity index 100%
1466 rename from 3.0.7/4420_grsecurity-2.2.2-3.0.8-201110250925.patch
1467 rename to 3.0.8/4420_grsecurity-2.2.2-3.0.8-201110250925.patch
1468
1469 diff --git a/3.0.7/4421_grsec-remove-localversion-grsec.patch b/3.0.8/4421_grsec-remove-localversion-grsec.patch
1470 similarity index 100%
1471 rename from 3.0.7/4421_grsec-remove-localversion-grsec.patch
1472 rename to 3.0.8/4421_grsec-remove-localversion-grsec.patch
1473
1474 diff --git a/3.0.7/4422_grsec-mute-warnings.patch b/3.0.8/4422_grsec-mute-warnings.patch
1475 similarity index 100%
1476 rename from 3.0.7/4422_grsec-mute-warnings.patch
1477 rename to 3.0.8/4422_grsec-mute-warnings.patch
1478
1479 diff --git a/3.0.7/4423_grsec-remove-protected-paths.patch b/3.0.8/4423_grsec-remove-protected-paths.patch
1480 similarity index 100%
1481 rename from 3.0.7/4423_grsec-remove-protected-paths.patch
1482 rename to 3.0.8/4423_grsec-remove-protected-paths.patch
1483
1484 diff --git a/3.0.7/4425_grsec-pax-without-grsec.patch b/3.0.8/4425_grsec-pax-without-grsec.patch
1485 similarity index 100%
1486 rename from 3.0.7/4425_grsec-pax-without-grsec.patch
1487 rename to 3.0.8/4425_grsec-pax-without-grsec.patch
1488
1489 diff --git a/3.0.7/4430_grsec-kconfig-default-gids.patch b/3.0.8/4430_grsec-kconfig-default-gids.patch
1490 similarity index 100%
1491 rename from 3.0.7/4430_grsec-kconfig-default-gids.patch
1492 rename to 3.0.8/4430_grsec-kconfig-default-gids.patch
1493
1494 diff --git a/3.0.7/4435_grsec-kconfig-gentoo.patch b/3.0.8/4435_grsec-kconfig-gentoo.patch
1495 similarity index 100%
1496 rename from 3.0.7/4435_grsec-kconfig-gentoo.patch
1497 rename to 3.0.8/4435_grsec-kconfig-gentoo.patch
1498
1499 diff --git a/3.0.7/4437-grsec-kconfig-proc-user.patch b/3.0.8/4437-grsec-kconfig-proc-user.patch
1500 similarity index 100%
1501 rename from 3.0.7/4437-grsec-kconfig-proc-user.patch
1502 rename to 3.0.8/4437-grsec-kconfig-proc-user.patch
1503
1504 diff --git a/3.0.7/4440_selinux-avc_audit-log-curr_ip.patch b/3.0.8/4440_selinux-avc_audit-log-curr_ip.patch
1505 similarity index 100%
1506 rename from 3.0.7/4440_selinux-avc_audit-log-curr_ip.patch
1507 rename to 3.0.8/4440_selinux-avc_audit-log-curr_ip.patch
1508
1509 diff --git a/3.0.7/4445_disable-compat_vdso.patch b/3.0.8/4445_disable-compat_vdso.patch
1510 similarity index 100%
1511 rename from 3.0.7/4445_disable-compat_vdso.patch
1512 rename to 3.0.8/4445_disable-compat_vdso.patch