Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'linus' into perfcounters/core

Merge reason: Pick up the latest fixes before the -v8 perfcounters
release.

Signed-off-by: Ingo Molnar <mingo@elte.hu>

+1173 -391
+6
Documentation/hwmon/sysfs-interface
··· 150 150 Unit: revolution/min (RPM) 151 151 RW 152 152 153 + fan[1-*]_max Fan maximum value 154 + Unit: revolution/min (RPM) 155 + Only rarely supported by the hardware. 156 + RW 157 + 153 158 fan[1-*]_input Fan input value. 154 159 Unit: revolution/min (RPM) 155 160 RO ··· 395 390 in[0-*]_min_alarm 396 391 in[0-*]_max_alarm 397 392 fan[1-*]_min_alarm 393 + fan[1-*]_max_alarm 398 394 temp[1-*]_min_alarm 399 395 temp[1-*]_max_alarm 400 396 temp[1-*]_crit_alarm
+10 -1
MAINTAINERS
··· 624 624 L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) 625 625 T: git git://gitorious.org/linux-gemini/mainline.git 626 626 S: Maintained 627 + F: arch/arm/mach-gemini/ 627 628 628 629 ARM/EBSA110 MACHINE SUPPORT 629 630 P: Russell King ··· 651 650 M: paulius.zaleckas@teltonika.lt 652 651 L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) 653 652 S: Maintained 653 + F: arch/arm/mm/*-fa* 654 654 655 655 ARM/FOOTBRIDGE ARCHITECTURE 656 656 P: Russell King ··· 1542 1540 S: Maintained 1543 1541 F: drivers/net/wan/cosa* 1544 1542 1543 + CPMAC ETHERNET DRIVER 1544 + P: Florian Fainelli 1545 + M: florian@openwrt.org 1546 + L: netdev@vger.kernel.org 1547 + S: Maintained 1548 + F: drivers/net/cpmac.c 1549 + 1545 1550 CPU FREQUENCY DRIVERS 1546 1551 P: Dave Jones 1547 1552 M: davej@redhat.com ··· 2258 2249 M: leoli@freescale.com 2259 2250 P: Zhang Wei 2260 2251 M: zw@zh-kernel.org 2261 - L: linuxppc-embedded@ozlabs.org 2252 + L: linuxppc-dev@ozlabs.org 2262 2253 L: linux-kernel@vger.kernel.org 2263 2254 S: Maintained 2264 2255 F: drivers/dma/fsldma.*
+1 -1
Makefile
··· 1 1 VERSION = 2 2 2 PATCHLEVEL = 6 3 3 SUBLEVEL = 30 4 - EXTRAVERSION = -rc7 4 + EXTRAVERSION = -rc8 5 5 NAME = Man-Eating Seals of Antiquity 6 6 7 7 # *DOCUMENTATION*
+13
arch/arm/include/asm/assembler.h
··· 114 114 .align 3; \ 115 115 .long 9999b,9001f; \ 116 116 .previous 117 + 118 + /* 119 + * SMP data memory barrier 120 + */ 121 + .macro smp_dmb 122 + #ifdef CONFIG_SMP 123 + #if __LINUX_ARM_ARCH__ >= 7 124 + dmb 125 + #elif __LINUX_ARM_ARCH__ == 6 126 + mcr p15, 0, r0, c7, c10, 5 @ dmb 127 + #endif 128 + #endif 129 + .endm
+52 -9
arch/arm/include/asm/atomic.h
··· 44 44 : "cc"); 45 45 } 46 46 47 + static inline void atomic_add(int i, atomic_t *v) 48 + { 49 + unsigned long tmp; 50 + int result; 51 + 52 + __asm__ __volatile__("@ atomic_add\n" 53 + "1: ldrex %0, [%2]\n" 54 + " add %0, %0, %3\n" 55 + " strex %1, %0, [%2]\n" 56 + " teq %1, #0\n" 57 + " bne 1b" 58 + : "=&r" (result), "=&r" (tmp) 59 + : "r" (&v->counter), "Ir" (i) 60 + : "cc"); 61 + } 62 + 47 63 static inline int atomic_add_return(int i, atomic_t *v) 48 64 { 49 65 unsigned long tmp; 50 66 int result; 67 + 68 + smp_mb(); 51 69 52 70 __asm__ __volatile__("@ atomic_add_return\n" 53 71 "1: ldrex %0, [%2]\n" ··· 77 59 : "r" (&v->counter), "Ir" (i) 78 60 : "cc"); 79 61 62 + smp_mb(); 63 + 80 64 return result; 65 + } 66 + 67 + static inline void atomic_sub(int i, atomic_t *v) 68 + { 69 + unsigned long tmp; 70 + int result; 71 + 72 + __asm__ __volatile__("@ atomic_sub\n" 73 + "1: ldrex %0, [%2]\n" 74 + " sub %0, %0, %3\n" 75 + " strex %1, %0, [%2]\n" 76 + " teq %1, #0\n" 77 + " bne 1b" 78 + : "=&r" (result), "=&r" (tmp) 79 + : "r" (&v->counter), "Ir" (i) 80 + : "cc"); 81 81 } 82 82 83 83 static inline int atomic_sub_return(int i, atomic_t *v) 84 84 { 85 85 unsigned long tmp; 86 86 int result; 87 + 88 + smp_mb(); 87 89 88 90 __asm__ __volatile__("@ atomic_sub_return\n" 89 91 "1: ldrex %0, [%2]\n" ··· 115 77 : "r" (&v->counter), "Ir" (i) 116 78 : "cc"); 117 79 80 + smp_mb(); 81 + 118 82 return result; 119 83 } 120 84 121 85 static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new) 122 86 { 123 87 unsigned long oldval, res; 88 + 89 + smp_mb(); 124 90 125 91 do { 126 92 __asm__ __volatile__("@ atomic_cmpxchg\n" ··· 136 94 : "r" (&ptr->counter), "Ir" (old), "r" (new) 137 95 : "cc"); 138 96 } while (res); 97 + 98 + smp_mb(); 139 99 140 100 return oldval; 141 101 } ··· 179 135 180 136 return val; 181 137 } 138 + #define atomic_add(i, v) (void) atomic_add_return(i, v) 182 139 183 140 static inline int atomic_sub_return(int i, atomic_t *v) 184 141 { ··· 193 148 194 149 return val; 195 150 } 151 + #define atomic_sub(i, v) (void) atomic_sub_return(i, v) 196 152 197 153 static inline int atomic_cmpxchg(atomic_t *v, int old, int new) 198 154 { ··· 233 187 } 234 188 #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) 235 189 236 - #define atomic_add(i, v) (void) atomic_add_return(i, v) 237 - #define atomic_inc(v) (void) atomic_add_return(1, v) 238 - #define atomic_sub(i, v) (void) atomic_sub_return(i, v) 239 - #define atomic_dec(v) (void) atomic_sub_return(1, v) 190 + #define atomic_inc(v) atomic_add(1, v) 191 + #define atomic_dec(v) atomic_sub(1, v) 240 192 241 193 #define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0) 242 194 #define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0) ··· 244 200 245 201 #define atomic_add_negative(i,v) (atomic_add_return(i, v) < 0) 246 202 247 - /* Atomic operations are already serializing on ARM */ 248 - #define smp_mb__before_atomic_dec() barrier() 249 - #define smp_mb__after_atomic_dec() barrier() 250 - #define smp_mb__before_atomic_inc() barrier() 251 - #define smp_mb__after_atomic_inc() barrier() 203 + #define smp_mb__before_atomic_dec() smp_mb() 204 + #define smp_mb__after_atomic_dec() smp_mb() 205 + #define smp_mb__before_atomic_inc() smp_mb() 206 + #define smp_mb__after_atomic_inc() smp_mb() 252 207 253 208 #include <asm-generic/atomic.h> 254 209 #endif
+176
arch/arm/include/asm/system.h
··· 248 248 unsigned int tmp; 249 249 #endif 250 250 251 + smp_mb(); 252 + 251 253 switch (size) { 252 254 #if __LINUX_ARM_ARCH__ >= 6 253 255 case 1: ··· 309 307 __bad_xchg(ptr, size), ret = 0; 310 308 break; 311 309 } 310 + smp_mb(); 312 311 313 312 return ret; 314 313 } ··· 318 315 extern void enable_hlt(void); 319 316 320 317 #include <asm-generic/cmpxchg-local.h> 318 + 319 + #if __LINUX_ARM_ARCH__ < 6 320 + 321 + #ifdef CONFIG_SMP 322 + #error "SMP is not supported on this platform" 323 + #endif 321 324 322 325 /* 323 326 * cmpxchg_local and cmpxchg64_local are atomic wrt current CPU. Always make ··· 337 328 #ifndef CONFIG_SMP 338 329 #include <asm-generic/cmpxchg.h> 339 330 #endif 331 + 332 + #else /* __LINUX_ARM_ARCH__ >= 6 */ 333 + 334 + extern void __bad_cmpxchg(volatile void *ptr, int size); 335 + 336 + /* 337 + * cmpxchg only support 32-bits operands on ARMv6. 338 + */ 339 + 340 + static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old, 341 + unsigned long new, int size) 342 + { 343 + unsigned long oldval, res; 344 + 345 + switch (size) { 346 + #ifdef CONFIG_CPU_32v6K 347 + case 1: 348 + do { 349 + asm volatile("@ __cmpxchg1\n" 350 + " ldrexb %1, [%2]\n" 351 + " mov %0, #0\n" 352 + " teq %1, %3\n" 353 + " strexbeq %0, %4, [%2]\n" 354 + : "=&r" (res), "=&r" (oldval) 355 + : "r" (ptr), "Ir" (old), "r" (new) 356 + : "memory", "cc"); 357 + } while (res); 358 + break; 359 + case 2: 360 + do { 361 + asm volatile("@ __cmpxchg1\n" 362 + " ldrexh %1, [%2]\n" 363 + " mov %0, #0\n" 364 + " teq %1, %3\n" 365 + " strexheq %0, %4, [%2]\n" 366 + : "=&r" (res), "=&r" (oldval) 367 + : "r" (ptr), "Ir" (old), "r" (new) 368 + : "memory", "cc"); 369 + } while (res); 370 + break; 371 + #endif /* CONFIG_CPU_32v6K */ 372 + case 4: 373 + do { 374 + asm volatile("@ __cmpxchg4\n" 375 + " ldrex %1, [%2]\n" 376 + " mov %0, #0\n" 377 + " teq %1, %3\n" 378 + " strexeq %0, %4, [%2]\n" 379 + : "=&r" (res), "=&r" (oldval) 380 + : "r" (ptr), "Ir" (old), "r" (new) 381 + : "memory", "cc"); 382 + } while (res); 383 + break; 384 + default: 385 + __bad_cmpxchg(ptr, size); 386 + oldval = 0; 387 + } 388 + 389 + return oldval; 390 + } 391 + 392 + static inline unsigned long __cmpxchg_mb(volatile void *ptr, unsigned long old, 393 + unsigned long new, int size) 394 + { 395 + unsigned long ret; 396 + 397 + smp_mb(); 398 + ret = __cmpxchg(ptr, old, new, size); 399 + smp_mb(); 400 + 401 + return ret; 402 + } 403 + 404 + #define cmpxchg(ptr,o,n) \ 405 + ((__typeof__(*(ptr)))__cmpxchg_mb((ptr), \ 406 + (unsigned long)(o), \ 407 + (unsigned long)(n), \ 408 + sizeof(*(ptr)))) 409 + 410 + static inline unsigned long __cmpxchg_local(volatile void *ptr, 411 + unsigned long old, 412 + unsigned long new, int size) 413 + { 414 + unsigned long ret; 415 + 416 + switch (size) { 417 + #ifndef CONFIG_CPU_32v6K 418 + case 1: 419 + case 2: 420 + ret = __cmpxchg_local_generic(ptr, old, new, size); 421 + break; 422 + #endif /* !CONFIG_CPU_32v6K */ 423 + default: 424 + ret = __cmpxchg(ptr, old, new, size); 425 + } 426 + 427 + return ret; 428 + } 429 + 430 + #define cmpxchg_local(ptr,o,n) \ 431 + ((__typeof__(*(ptr)))__cmpxchg_local((ptr), \ 432 + (unsigned long)(o), \ 433 + (unsigned long)(n), \ 434 + sizeof(*(ptr)))) 435 + 436 + #ifdef CONFIG_CPU_32v6K 437 + 438 + /* 439 + * Note : ARMv7-M (currently unsupported by Linux) does not support 440 + * ldrexd/strexd. If ARMv7-M is ever supported by the Linux kernel, it should 441 + * not be allowed to use __cmpxchg64. 442 + */ 443 + static inline unsigned long long __cmpxchg64(volatile void *ptr, 444 + unsigned long long old, 445 + unsigned long long new) 446 + { 447 + register unsigned long long oldval asm("r0"); 448 + register unsigned long long __old asm("r2") = old; 449 + register unsigned long long __new asm("r4") = new; 450 + unsigned long res; 451 + 452 + do { 453 + asm volatile( 454 + " @ __cmpxchg8\n" 455 + " ldrexd %1, %H1, [%2]\n" 456 + " mov %0, #0\n" 457 + " teq %1, %3\n" 458 + " teqeq %H1, %H3\n" 459 + " strexdeq %0, %4, %H4, [%2]\n" 460 + : "=&r" (res), "=&r" (oldval) 461 + : "r" (ptr), "Ir" (__old), "r" (__new) 462 + : "memory", "cc"); 463 + } while (res); 464 + 465 + return oldval; 466 + } 467 + 468 + static inline unsigned long long __cmpxchg64_mb(volatile void *ptr, 469 + unsigned long long old, 470 + unsigned long long new) 471 + { 472 + unsigned long long ret; 473 + 474 + smp_mb(); 475 + ret = __cmpxchg64(ptr, old, new); 476 + smp_mb(); 477 + 478 + return ret; 479 + } 480 + 481 + #define cmpxchg64(ptr,o,n) \ 482 + ((__typeof__(*(ptr)))__cmpxchg64_mb((ptr), \ 483 + (unsigned long long)(o), \ 484 + (unsigned long long)(n))) 485 + 486 + #define cmpxchg64_local(ptr,o,n) \ 487 + ((__typeof__(*(ptr)))__cmpxchg64((ptr), \ 488 + (unsigned long long)(o), \ 489 + (unsigned long long)(n))) 490 + 491 + #else /* !CONFIG_CPU_32v6K */ 492 + 493 + #define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) 494 + 495 + #endif /* CONFIG_CPU_32v6K */ 496 + 497 + #endif /* __LINUX_ARM_ARCH__ >= 6 */ 340 498 341 499 #endif /* __ASSEMBLY__ */ 342 500
+9
arch/arm/kernel/elf.c
··· 78 78 return 1; 79 79 if (cpu_architecture() < CPU_ARCH_ARMv6) 80 80 return 1; 81 + #if !defined(CONFIG_AEABI) || defined(CONFIG_OABI_COMPAT) 82 + /* 83 + * If we have support for OABI programs, we can never allow NX 84 + * support - our signal syscall restart mechanism relies upon 85 + * being able to execute code placed on the user stack. 86 + */ 87 + return 1; 88 + #else 81 89 return 0; 90 + #endif 82 91 } 83 92 EXPORT_SYMBOL(arm_elf_read_implies_exec);
+1 -4
arch/arm/kernel/entry-armv.S
··· 815 815 */ 816 816 817 817 __kuser_memory_barrier: @ 0xffff0fa0 818 - 819 - #if __LINUX_ARM_ARCH__ >= 6 && defined(CONFIG_SMP) 820 - mcr p15, 0, r0, c7, c10, 5 @ dmb 821 - #endif 818 + smp_dmb 822 819 usr_ret lr 823 820 824 821 .align 5
+2
arch/arm/lib/bitops.h
··· 18 18 mov r2, #1 19 19 add r1, r1, r0, lsr #3 @ Get byte offset 20 20 mov r3, r2, lsl r3 @ create mask 21 + smp_dmb 21 22 1: ldrexb r2, [r1] 22 23 ands r0, r2, r3 @ save old value of bit 23 24 \instr r2, r2, r3 @ toggle bit 24 25 strexb ip, r2, [r1] 25 26 cmp ip, #0 26 27 bne 1b 28 + smp_dmb 27 29 cmp r0, #0 28 30 movne r0, #1 29 31 2: mov pc, lr
+1 -2
arch/arm/mach-gemini/include/mach/hardware.h
··· 15 15 /* 16 16 * Memory Map definitions 17 17 */ 18 - /* FIXME: Does it really swap SRAM like this? */ 19 18 #ifdef CONFIG_GEMINI_MEM_SWAP 20 19 # define GEMINI_DRAM_BASE 0x00000000 21 - # define GEMINI_SRAM_BASE 0x20000000 20 + # define GEMINI_SRAM_BASE 0x70000000 22 21 #else 23 22 # define GEMINI_SRAM_BASE 0x00000000 24 23 # define GEMINI_DRAM_BASE 0x10000000
+6 -2
arch/arm/mach-kirkwood/common.c
··· 144 144 .id = 0, 145 145 .num_resources = 1, 146 146 .resource = kirkwood_ge00_resources, 147 + .dev = { 148 + .coherent_dma_mask = 0xffffffff, 149 + }, 147 150 }; 148 151 149 152 void __init kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data) ··· 205 202 .id = 1, 206 203 .num_resources = 1, 207 204 .resource = kirkwood_ge01_resources, 205 + .dev = { 206 + .coherent_dma_mask = 0xffffffff, 207 + }, 208 208 }; 209 209 210 210 void __init kirkwood_ge01_init(struct mv643xx_eth_platform_data *eth_data) ··· 392 386 393 387 static struct resource kirkwood_i2c_resources[] = { 394 388 { 395 - .name = "i2c", 396 389 .start = I2C_PHYS_BASE, 397 390 .end = I2C_PHYS_BASE + 0x1f, 398 391 .flags = IORESOURCE_MEM, 399 392 }, { 400 - .name = "i2c", 401 393 .start = IRQ_KIRKWOOD_TWSI, 402 394 .end = IRQ_KIRKWOOD_TWSI, 403 395 .flags = IORESOURCE_IRQ,
+2 -4
arch/arm/mach-kirkwood/ts219-setup.c
··· 142 142 MPP1_SPI_MOSI, 143 143 MPP2_SPI_SCK, 144 144 MPP3_SPI_MISO, 145 + MPP4_SATA1_ACTn, 146 + MPP5_SATA0_ACTn, 145 147 MPP8_TW_SDA, 146 148 MPP9_TW_SCK, 147 149 MPP10_UART0_TXD, ··· 152 150 MPP14_UART1_RXD, /* PIC controller */ 153 151 MPP15_GPIO, /* USB Copy button */ 154 152 MPP16_GPIO, /* Reset button */ 155 - MPP20_SATA1_ACTn, 156 - MPP21_SATA0_ACTn, 157 - MPP22_SATA1_PRESENTn, 158 - MPP23_SATA0_PRESENTn, 159 153 0 160 154 }; 161 155
+6
arch/arm/mach-loki/common.c
··· 82 82 .id = 0, 83 83 .num_resources = 1, 84 84 .resource = loki_ge0_resources, 85 + .dev = { 86 + .coherent_dma_mask = 0xffffffff, 87 + }, 85 88 }; 86 89 87 90 void __init loki_ge0_init(struct mv643xx_eth_platform_data *eth_data) ··· 139 136 .id = 1, 140 137 .num_resources = 1, 141 138 .resource = loki_ge1_resources, 139 + .dev = { 140 + .coherent_dma_mask = 0xffffffff, 141 + }, 142 142 }; 143 143 144 144 void __init loki_ge1_init(struct mv643xx_eth_platform_data *eth_data)
+5
arch/arm/mach-mmp/include/mach/mfp-pxa168.h
··· 3 3 4 4 #include <mach/mfp.h> 5 5 6 + #define MFP_DRIVE_VERY_SLOW (0x0 << 13) 7 + #define MFP_DRIVE_SLOW (0x1 << 13) 8 + #define MFP_DRIVE_MEDIUM (0x2 << 13) 9 + #define MFP_DRIVE_FAST (0x3 << 13) 10 + 6 11 /* GPIO */ 7 12 #define GPIO0_GPIO MFP_CFG(GPIO0, AF5) 8 13 #define GPIO1_GPIO MFP_CFG(GPIO1, AF5)
+5
arch/arm/mach-mmp/include/mach/mfp-pxa910.h
··· 3 3 4 4 #include <mach/mfp.h> 5 5 6 + #define MFP_DRIVE_VERY_SLOW (0x0 << 13) 7 + #define MFP_DRIVE_SLOW (0x2 << 13) 8 + #define MFP_DRIVE_MEDIUM (0x4 << 13) 9 + #define MFP_DRIVE_FAST (0x8 << 13) 10 + 6 11 /* UART2 */ 7 12 #define GPIO47_UART2_RXD MFP_CFG(GPIO47, AF6) 8 13 #define GPIO48_UART2_TXD MFP_CFG(GPIO48, AF6)
+3 -6
arch/arm/mach-mmp/include/mach/mfp.h
··· 12 12 * possible, we make the following compromise: 13 13 * 14 14 * 1. SLEEP_OE_N will always be programmed to '1' (by MFP_LPM_FLOAT) 15 - * 2. DRIVE strength definitions redefined to include the reserved bit10 15 + * 2. DRIVE strength definitions redefined to include the reserved bit 16 + * - the reserved bit differs between pxa168 and pxa910, and the 17 + * MFP_DRIVE_* macros are individually defined in mfp-pxa{168,910}.h 16 18 * 3. Override MFP_CFG() and MFP_CFG_DRV() 17 19 * 4. Drop the use of MFP_CFG_LPM() and MFP_CFG_X() 18 20 */ 19 - 20 - #define MFP_DRIVE_VERY_SLOW (0x0 << 13) 21 - #define MFP_DRIVE_SLOW (0x2 << 13) 22 - #define MFP_DRIVE_MEDIUM (0x4 << 13) 23 - #define MFP_DRIVE_FAST (0x8 << 13) 24 21 25 22 #undef MFP_CFG 26 23 #undef MFP_CFG_DRV
+1 -1
arch/arm/mach-mmp/time.c
··· 136 136 .set_mode = timer_set_mode, 137 137 }; 138 138 139 - static cycle_t clksrc_read(void) 139 + static cycle_t clksrc_read(struct clocksource *cs) 140 140 { 141 141 return timer_read(); 142 142 }
+12 -4
arch/arm/mach-mv78xx0/common.c
··· 321 321 .id = 0, 322 322 .num_resources = 1, 323 323 .resource = mv78xx0_ge00_resources, 324 + .dev = { 325 + .coherent_dma_mask = 0xffffffff, 326 + }, 324 327 }; 325 328 326 329 void __init mv78xx0_ge00_init(struct mv643xx_eth_platform_data *eth_data) ··· 378 375 .id = 1, 379 376 .num_resources = 1, 380 377 .resource = mv78xx0_ge01_resources, 378 + .dev = { 379 + .coherent_dma_mask = 0xffffffff, 380 + }, 381 381 }; 382 382 383 383 void __init mv78xx0_ge01_init(struct mv643xx_eth_platform_data *eth_data) ··· 435 429 .id = 2, 436 430 .num_resources = 1, 437 431 .resource = mv78xx0_ge10_resources, 432 + .dev = { 433 + .coherent_dma_mask = 0xffffffff, 434 + }, 438 435 }; 439 436 440 437 void __init mv78xx0_ge10_init(struct mv643xx_eth_platform_data *eth_data) ··· 505 496 .id = 3, 506 497 .num_resources = 1, 507 498 .resource = mv78xx0_ge11_resources, 499 + .dev = { 500 + .coherent_dma_mask = 0xffffffff, 501 + }, 508 502 }; 509 503 510 504 void __init mv78xx0_ge11_init(struct mv643xx_eth_platform_data *eth_data) ··· 544 532 545 533 static struct resource mv78xx0_i2c_0_resources[] = { 546 534 { 547 - .name = "i2c 0 base", 548 535 .start = I2C_0_PHYS_BASE, 549 536 .end = I2C_0_PHYS_BASE + 0x1f, 550 537 .flags = IORESOURCE_MEM, 551 538 }, { 552 - .name = "i2c 0 irq", 553 539 .start = IRQ_MV78XX0_I2C_0, 554 540 .end = IRQ_MV78XX0_I2C_0, 555 541 .flags = IORESOURCE_IRQ, ··· 577 567 578 568 static struct resource mv78xx0_i2c_1_resources[] = { 579 569 { 580 - .name = "i2c 1 base", 581 570 .start = I2C_1_PHYS_BASE, 582 571 .end = I2C_1_PHYS_BASE + 0x1f, 583 572 .flags = IORESOURCE_MEM, 584 573 }, { 585 - .name = "i2c 1 irq", 586 574 .start = IRQ_MV78XX0_I2C_1, 587 575 .end = IRQ_MV78XX0_I2C_1, 588 576 .flags = IORESOURCE_IRQ,
+3 -2
arch/arm/mach-orion5x/common.c
··· 188 188 .id = 0, 189 189 .num_resources = 1, 190 190 .resource = orion5x_eth_resources, 191 + .dev = { 192 + .coherent_dma_mask = 0xffffffff, 193 + }, 191 194 }; 192 195 193 196 void __init orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data) ··· 251 248 252 249 static struct resource orion5x_i2c_resources[] = { 253 250 { 254 - .name = "i2c base", 255 251 .start = I2C_PHYS_BASE, 256 252 .end = I2C_PHYS_BASE + 0x1f, 257 253 .flags = IORESOURCE_MEM, 258 254 }, { 259 - .name = "i2c irq", 260 255 .start = IRQ_ORION5X_I2C, 261 256 .end = IRQ_ORION5X_I2C, 262 257 .flags = IORESOURCE_IRQ,
+18 -18
arch/arm/mach-pxa/ezx.c
··· 111 111 GPIO25_SSP1_TXD, 112 112 GPIO26_SSP1_RXD, 113 113 GPIO24_GPIO, /* pcap chip select */ 114 - GPIO1_GPIO, /* pcap interrupt */ 115 - GPIO4_GPIO, /* WDI_AP */ 116 - GPIO55_GPIO, /* SYS_RESTART */ 114 + GPIO1_GPIO | WAKEUP_ON_EDGE_RISE, /* pcap interrupt */ 115 + GPIO4_GPIO | MFP_LPM_DRIVE_HIGH, /* WDI_AP */ 116 + GPIO55_GPIO | MFP_LPM_DRIVE_HIGH, /* SYS_RESTART */ 117 117 118 118 /* MMC */ 119 119 GPIO32_MMC_CLK, ··· 144 144 #if defined(CONFIG_MACH_EZX_A780) || defined(CONFIG_MACH_EZX_E680) 145 145 static unsigned long gen1_pin_config[] __initdata = { 146 146 /* flip / lockswitch */ 147 - GPIO12_GPIO, 147 + GPIO12_GPIO | WAKEUP_ON_EDGE_BOTH, 148 148 149 149 /* bluetooth (bcm2035) */ 150 - GPIO14_GPIO | WAKEUP_ON_LEVEL_HIGH, /* HOSTWAKE */ 150 + GPIO14_GPIO | WAKEUP_ON_EDGE_RISE, /* HOSTWAKE */ 151 151 GPIO48_GPIO, /* RESET */ 152 152 GPIO28_GPIO, /* WAKEUP */ 153 153 154 154 /* Neptune handshake */ 155 - GPIO0_GPIO | WAKEUP_ON_LEVEL_HIGH, /* BP_RDY */ 156 - GPIO57_GPIO, /* AP_RDY */ 157 - GPIO13_GPIO | WAKEUP_ON_LEVEL_HIGH, /* WDI */ 158 - GPIO3_GPIO | WAKEUP_ON_LEVEL_HIGH, /* WDI2 */ 159 - GPIO82_GPIO, /* RESET */ 160 - GPIO99_GPIO, /* TC_MM_EN */ 155 + GPIO0_GPIO | WAKEUP_ON_EDGE_FALL, /* BP_RDY */ 156 + GPIO57_GPIO | MFP_LPM_DRIVE_HIGH, /* AP_RDY */ 157 + GPIO13_GPIO | WAKEUP_ON_EDGE_BOTH, /* WDI */ 158 + GPIO3_GPIO | WAKEUP_ON_EDGE_BOTH, /* WDI2 */ 159 + GPIO82_GPIO | MFP_LPM_DRIVE_HIGH, /* RESET */ 160 + GPIO99_GPIO | MFP_LPM_DRIVE_HIGH, /* TC_MM_EN */ 161 161 162 162 /* sound */ 163 163 GPIO52_SSP3_SCLK, ··· 199 199 defined(CONFIG_MACH_EZX_E2) || defined(CONFIG_MACH_EZX_E6) 200 200 static unsigned long gen2_pin_config[] __initdata = { 201 201 /* flip / lockswitch */ 202 - GPIO15_GPIO, 202 + GPIO15_GPIO | WAKEUP_ON_EDGE_BOTH, 203 203 204 204 /* EOC */ 205 - GPIO10_GPIO, 205 + GPIO10_GPIO | WAKEUP_ON_EDGE_RISE, 206 206 207 207 /* bluetooth (bcm2045) */ 208 - GPIO13_GPIO | WAKEUP_ON_LEVEL_HIGH, /* HOSTWAKE */ 208 + GPIO13_GPIO | WAKEUP_ON_EDGE_RISE, /* HOSTWAKE */ 209 209 GPIO37_GPIO, /* RESET */ 210 210 GPIO57_GPIO, /* WAKEUP */ 211 211 212 212 /* Neptune handshake */ 213 - GPIO0_GPIO | WAKEUP_ON_LEVEL_HIGH, /* BP_RDY */ 214 - GPIO96_GPIO, /* AP_RDY */ 215 - GPIO3_GPIO | WAKEUP_ON_LEVEL_HIGH, /* WDI */ 216 - GPIO116_GPIO, /* RESET */ 213 + GPIO0_GPIO | WAKEUP_ON_EDGE_FALL, /* BP_RDY */ 214 + GPIO96_GPIO | MFP_LPM_DRIVE_HIGH, /* AP_RDY */ 215 + GPIO3_GPIO | WAKEUP_ON_EDGE_FALL, /* WDI */ 216 + GPIO116_GPIO | MFP_LPM_DRIVE_HIGH, /* RESET */ 217 217 GPIO41_GPIO, /* BP_FLASH */ 218 218 219 219 /* sound */
+3 -2
arch/arm/mach-pxa/include/mach/reset.h
··· 13 13 /** 14 14 * init_gpio_reset() - register GPIO as reset generator 15 15 * @gpio: gpio nr 16 - * @output: set gpio as out/low instead of input during normal work 16 + * @output: set gpio as output instead of input during normal work 17 + * @level: output level 17 18 */ 18 - extern int init_gpio_reset(int gpio, int output); 19 + extern int init_gpio_reset(int gpio, int output, int level); 19 20 20 21 #endif /* __ASM_ARCH_RESET_H */
+6
arch/arm/mach-pxa/mfp-pxa2xx.c
··· 322 322 #ifdef CONFIG_PM 323 323 static unsigned long saved_gafr[2][4]; 324 324 static unsigned long saved_gpdr[4]; 325 + static unsigned long saved_pgsr[4]; 325 326 326 327 static int pxa2xx_mfp_suspend(struct sys_device *d, pm_message_t state) 327 328 { ··· 333 332 saved_gafr[0][i] = GAFR_L(i); 334 333 saved_gafr[1][i] = GAFR_U(i); 335 334 saved_gpdr[i] = GPDR(i * 32); 335 + saved_pgsr[i] = PGSR(i); 336 336 337 337 GPDR(i * 32) = gpdr_lpm[i]; 338 338 } ··· 348 346 GAFR_L(i) = saved_gafr[0][i]; 349 347 GAFR_U(i) = saved_gafr[1][i]; 350 348 GPDR(i * 32) = saved_gpdr[i]; 349 + PGSR(i) = saved_pgsr[i]; 351 350 } 352 351 PSSR = PSSR_RDH | PSSR_PH; 353 352 return 0; ··· 376 373 377 374 if (cpu_is_pxa27x()) 378 375 pxa27x_mfp_init(); 376 + 377 + /* clear RDH bit to enable GPIO receivers after reset/sleep exit */ 378 + PSSR = PSSR_RDH; 379 379 380 380 /* initialize gafr_run[], pgsr_lpm[] from existing values */ 381 381 for (i = 0; i <= gpio_to_bank(pxa_last_gpio); i++)
+2
arch/arm/mach-pxa/palmld.c
··· 62 62 GPIO29_AC97_SDATA_IN_0, 63 63 GPIO30_AC97_SDATA_OUT, 64 64 GPIO31_AC97_SYNC, 65 + GPIO89_AC97_SYSCLK, 66 + GPIO95_AC97_nRESET, 65 67 66 68 /* IrDA */ 67 69 GPIO108_GPIO, /* ir disable */
+1
arch/arm/mach-pxa/palmt5.c
··· 64 64 GPIO29_AC97_SDATA_IN_0, 65 65 GPIO30_AC97_SDATA_OUT, 66 66 GPIO31_AC97_SYNC, 67 + GPIO89_AC97_SYSCLK, 67 68 GPIO95_AC97_nRESET, 68 69 69 70 /* IrDA */
+1
arch/arm/mach-pxa/palmtx.c
··· 65 65 GPIO29_AC97_SDATA_IN_0, 66 66 GPIO30_AC97_SDATA_OUT, 67 67 GPIO31_AC97_SYNC, 68 + GPIO89_AC97_SYSCLK, 68 69 GPIO95_AC97_nRESET, 69 70 70 71 /* IrDA */
+2 -2
arch/arm/mach-pxa/reset.c
··· 20 20 21 21 static int reset_gpio = -1; 22 22 23 - int init_gpio_reset(int gpio, int output) 23 + int init_gpio_reset(int gpio, int output, int level) 24 24 { 25 25 int rc; 26 26 ··· 31 31 } 32 32 33 33 if (output) 34 - rc = gpio_direction_output(gpio, 0); 34 + rc = gpio_direction_output(gpio, level); 35 35 else 36 36 rc = gpio_direction_input(gpio); 37 37 if (rc) {
+7 -1
arch/arm/mach-pxa/spitz.c
··· 531 531 return gpio_direction_output(SPITZ_GPIO_USB_HOST, 1); 532 532 } 533 533 534 + static void spitz_ohci_exit(struct device *dev) 535 + { 536 + gpio_free(SPITZ_GPIO_USB_HOST); 537 + } 538 + 534 539 static struct pxaohci_platform_data spitz_ohci_platform_data = { 535 540 .port_mode = PMM_NPS_MODE, 536 541 .init = spitz_ohci_init, 542 + .exit = spitz_ohci_exit, 537 543 .flags = ENABLE_PORT_ALL | NO_OC_PROTECTION, 538 544 .power_budget = 150, 539 545 }; ··· 737 731 738 732 static void __init common_init(void) 739 733 { 740 - init_gpio_reset(SPITZ_GPIO_ON_RESET, 1); 734 + init_gpio_reset(SPITZ_GPIO_ON_RESET, 1, 0); 741 735 pm_power_off = spitz_poweroff; 742 736 arm_pm_restart = spitz_restart; 743 737
+1 -1
arch/arm/mach-pxa/tosa.c
··· 897 897 gpio_set_wake(MFP_PIN_GPIO1, 1); 898 898 /* We can't pass to gpio-keys since it will drop the Reset altfunc */ 899 899 900 - init_gpio_reset(TOSA_GPIO_ON_RESET, 0); 900 + init_gpio_reset(TOSA_GPIO_ON_RESET, 0, 0); 901 901 902 902 pm_power_off = tosa_poweroff; 903 903 arm_pm_restart = tosa_restart;
+122 -9
arch/arm/tools/mach-types
··· 12 12 # 13 13 # http://www.arm.linux.org.uk/developer/machines/?action=new 14 14 # 15 - # Last update: Mon Mar 23 20:09:01 2009 15 + # Last update: Fri May 29 10:14:20 2009 16 16 # 17 17 # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number 18 18 # ··· 916 916 apf9328 MACH_APF9328 APF9328 906 917 917 omap_wipoq MACH_OMAP_WIPOQ OMAP_WIPOQ 907 918 918 omap_twip MACH_OMAP_TWIP OMAP_TWIP 908 919 - palmt650 MACH_PALMT650 PALMT650 909 919 + treo650 MACH_TREO650 TREO650 909 920 920 acumen MACH_ACUMEN ACUMEN 910 921 921 xp100 MACH_XP100 XP100 911 922 922 fs2410 MACH_FS2410 FS2410 912 ··· 1232 1232 vpac270 MACH_VPAC270 VPAC270 1227 1233 1233 rd129 MACH_RD129 RD129 1228 1234 1234 htcwizard MACH_HTCWIZARD HTCWIZARD 1229 1235 - xscale_treo680 MACH_XSCALE_TREO680 XSCALE_TREO680 1230 1235 + treo680 MACH_TREO680 TREO680 1230 1236 1236 tecon_tmezon MACH_TECON_TMEZON TECON_TMEZON 1231 1237 1237 zylonite MACH_ZYLONITE ZYLONITE 1233 1238 1238 gene1270 MACH_GENE1270 GENE1270 1234 ··· 1418 1418 cnty_titan MACH_CNTY_TITAN CNTY_TITAN 1418 1419 1419 app3xx MACH_APP3XX APP3XX 1419 1420 1420 sideoatsgrama MACH_SIDEOATSGRAMA SIDEOATSGRAMA 1420 1421 - palmtreo700p MACH_PALMTREO700P PALMTREO700P 1421 1422 - palmtreo700w MACH_PALMTREO700W PALMTREO700W 1422 1423 - palmtreo750 MACH_PALMTREO750 PALMTREO750 1423 1424 - palmtreo755p MACH_PALMTREO755P PALMTREO755P 1424 1421 + treo700p MACH_TREO700P TREO700P 1421 1422 + treo700w MACH_TREO700W TREO700W 1422 1423 + treo750 MACH_TREO750 TREO750 1423 1424 + treo755p MACH_TREO755P TREO755P 1424 1425 1425 ezreganut9200 MACH_EZREGANUT9200 EZREGANUT9200 1425 1426 1426 sarge MACH_SARGE SARGE 1426 1427 1427 a696 MACH_A696 A696 1427 ··· 1721 1721 csb637xo MACH_CSB637XO CSB637XO 1730 1722 1722 evisiong MACH_EVISIONG EVISIONG 1731 1723 1723 stmp37xx MACH_STMP37XX STMP37XX 1732 1724 - stmp378x MACH_STMP38XX STMP38XX 1733 1724 + stmp378x MACH_STMP378X STMP378X 1733 1725 1725 tnt MACH_TNT TNT 1734 1726 1726 tbxt MACH_TBXT TBXT 1735 1727 1727 playmate MACH_PLAYMATE PLAYMATE 1736 ··· 1817 1817 tavorevb MACH_TAVOREVB TAVOREVB 1827 1818 1818 saar MACH_SAAR SAAR 1828 1819 1819 deister_eyecam MACH_DEISTER_EYECAM DEISTER_EYECAM 1829 1820 - at91sam9m10ek MACH_AT91SAM9M10EK AT91SAM9M10EK 1830 1820 + at91sam9m10g45ek MACH_AT91SAM9M10G45EK AT91SAM9M10G45EK 1830 1821 1821 linkstation_produo MACH_LINKSTATION_PRODUO LINKSTATION_PRODUO 1831 1822 1822 hit_b0 MACH_HIT_B0 HIT_B0 1832 1823 1823 adx_rmu MACH_ADX_RMU ADX_RMU 1833 ··· 2132 2132 at91cap9stk MACH_AT91CAP9STK AT91CAP9STK 2142 2133 2133 spc300 MACH_SPC300 SPC300 2143 2134 2134 eko MACH_EKO EKO 2144 2135 + ccw9m2443 MACH_CCW9M2443 CCW9M2443 2145 2136 + ccw9m2443js MACH_CCW9M2443JS CCW9M2443JS 2146 2137 + m2m_router_device MACH_M2M_ROUTER_DEVICE M2M_ROUTER_DEVICE 2147 2138 + str9104nas MACH_STAR9104NAS STAR9104NAS 2148 2139 + pca100 MACH_PCA100 PCA100 2149 2140 + z3_dm365_mod_01 MACH_Z3_DM365_MOD_01 Z3_DM365_MOD_01 2150 2141 + hipox MACH_HIPOX HIPOX 2151 2142 + omap3_piteds MACH_OMAP3_PITEDS OMAP3_PITEDS 2152 2143 + bm150r MACH_BM150R BM150R 2153 2144 + tbone MACH_TBONE TBONE 2154 2145 + merlin MACH_MERLIN MERLIN 2155 2146 + falcon MACH_FALCON FALCON 2156 2147 + davinci_da850_evm MACH_DAVINCI_DA850_EVM DAVINCI_DA850_EVM 2157 2148 + s5p6440 MACH_S5P6440 S5P6440 2158 2149 + at91sam9g10ek MACH_AT91SAM9G10EK AT91SAM9G10EK 2159 2150 + omap_4430sdp MACH_OMAP_4430SDP OMAP_4430SDP 2160 2151 + lpc313x MACH_LPC313X LPC313X 2161 2152 + magx_zn5 MACH_MAGX_ZN5 MAGX_ZN5 2162 2153 + magx_em30 MACH_MAGX_EM30 MAGX_EM30 2163 2154 + magx_ve66 MACH_MAGX_VE66 MAGX_VE66 2164 2155 + meesc MACH_MEESC MEESC 2165 2156 + otc570 MACH_OTC570 OTC570 2166 2157 + bcu2412 MACH_BCU2412 BCU2412 2167 2158 + beacon MACH_BEACON BEACON 2168 2159 + actia_tgw MACH_ACTIA_TGW ACTIA_TGW 2169 2160 + e4430 MACH_E4430 E4430 2170 2161 + ql300 MACH_QL300 QL300 2171 2162 + btmavb101 MACH_BTMAVB101 BTMAVB101 2172 2163 + btmawb101 MACH_BTMAWB101 BTMAWB101 2173 2164 + sq201 MACH_SQ201 SQ201 2174 2165 + quatro45xx MACH_QUATRO45XX QUATRO45XX 2175 2166 + openpad MACH_OPENPAD OPENPAD 2176 2167 + tx25 MACH_TX25 TX25 2177 2168 + omap3_torpedo MACH_OMAP3_TORPEDO OMAP3_TORPEDO 2178 2169 + htcraphael_k MACH_HTCRAPHAEL_K HTCRAPHAEL_K 2179 2170 + lal43 MACH_LAL43 LAL43 2181 2171 + htcraphael_cdma500 MACH_HTCRAPHAEL_CDMA500 HTCRAPHAEL_CDMA500 2182 2172 + anw6410 MACH_ANW6410 ANW6410 2183 2173 + htcprophet MACH_HTCPROPHET HTCPROPHET 2185 2174 + cfa_10022 MACH_CFA_10022 CFA_10022 2186 2175 + imx27_visstrim_m10 MACH_IMX27_VISSTRIM_M10 IMX27_VISSTRIM_M10 2187 2176 + px2imx27 MACH_PX2IMX27 PX2IMX27 2188 2177 + stm3210e_eval MACH_STM3210E_EVAL STM3210E_EVAL 2189 2178 + dvs10 MACH_DVS10 DVS10 2190 2179 + portuxg20 MACH_PORTUXG20 PORTUXG20 2191 2180 + arm_spv MACH_ARM_SPV ARM_SPV 2192 2181 + smdkc110 MACH_SMDKC110 SMDKC110 2193 2182 + cabespresso MACH_CABESPRESSO CABESPRESSO 2194 2183 + hmc800 MACH_HMC800 HMC800 2195 2184 + sholes MACH_SHOLES SHOLES 2196 2185 + btmxc31 MACH_BTMXC31 BTMXC31 2197 2186 + dt501 MACH_DT501 DT501 2198 2187 + ktx MACH_KTX KTX 2199 2188 + omap3517evm MACH_OMAP3517EVM OMAP3517EVM 2200 2189 + netspace_v2 MACH_NETSPACE_V2 NETSPACE_V2 2201 2190 + netspace_max_v2 MACH_NETSPACE_MAX_V2 NETSPACE_MAX_V2 2202 2191 + d2net_v2 MACH_D2NET_V2 D2NET_V2 2203 2192 + net2big_v2 MACH_NET2BIG_V2 NET2BIG_V2 2204 2193 + net4big_v2 MACH_NET4BIG_V2 NET4BIG_V2 2205 2194 + net5big_v2 MACH_NET5BIG_V2 NET5BIG_V2 2206 2195 + endb2443 MACH_ENDB2443 ENDB2443 2207 2196 + inetspace_v2 MACH_INETSPACE_V2 INETSPACE_V2 2208 2197 + tros MACH_TROS TROS 2209 2198 + pelco_homer MACH_PELCO_HOMER PELCO_HOMER 2210 2199 + ofsp8 MACH_OFSP8 OFSP8 2211 2200 + at91sam9g45ekes MACH_AT91SAM9G45EKES AT91SAM9G45EKES 2212 2201 + guf_cupid MACH_GUF_CUPID GUF_CUPID 2213 2202 + eab1r MACH_EAB1R EAB1R 2214 2203 + desirec MACH_DESIREC DESIREC 2215 2204 + cordoba MACH_CORDOBA CORDOBA 2216 2205 + irvine MACH_IRVINE IRVINE 2217 2206 + sff772 MACH_SFF772 SFF772 2218 2207 + pelco_milano MACH_PELCO_MILANO PELCO_MILANO 2219 2208 + pc7302 MACH_PC7302 PC7302 2220 2209 + bip6000 MACH_BIP6000 BIP6000 2221 2210 + silvermoon MACH_SILVERMOON SILVERMOON 2222 2211 + vc0830 MACH_VC0830 VC0830 2223 2212 + dt430 MACH_DT430 DT430 2224 2213 + ji42pf MACH_JI42PF JI42PF 2225 2214 + gnet_ksm MACH_GNET_KSM GNET_KSM 2226 2215 + gnet_sgm MACH_GNET_SGM GNET_SGM 2227 2216 + gnet_sgr MACH_GNET_SGR GNET_SGR 2228 2217 + omap3_icetekevm MACH_OMAP3_ICETEKEVM OMAP3_ICETEKEVM 2229 2218 + pnp MACH_PNP PNP 2230 2219 + ctera_2bay_k MACH_CTERA_2BAY_K CTERA_2BAY_K 2231 2220 + ctera_2bay_u MACH_CTERA_2BAY_U CTERA_2BAY_U 2232 2221 + sas_c MACH_SAS_C SAS_C 2233 2222 + vma2315 MACH_VMA2315 VMA2315 2234 2223 + vcs MACH_VCS VCS 2235 2224 + spear600 MACH_SPEAR600 SPEAR600 2236 2225 + spear300 MACH_SPEAR300 SPEAR300 2237 2226 + spear1300 MACH_SPEAR1300 SPEAR1300 2238 2227 + lilly1131 MACH_LILLY1131 LILLY1131 2239 2228 + arvoo_ax301 MACH_ARVOO_AX301 ARVOO_AX301 2240 2229 + mapphone MACH_MAPPHONE MAPPHONE 2241 2230 + legend MACH_LEGEND LEGEND 2242 2231 + salsa MACH_SALSA SALSA 2243 2232 + lounge MACH_LOUNGE LOUNGE 2244 2233 + vision MACH_VISION VISION 2245 2234 + vmb20 MACH_VMB20 VMB20 2246 2235 + hy2410 MACH_HY2410 HY2410 2247 2236 + hy9315 MACH_HY9315 HY9315 2248 2237 + bullwinkle MACH_BULLWINKLE BULLWINKLE 2249 2238 + arm_ultimator2 MACH_ARM_ULTIMATOR2 ARM_ULTIMATOR2 2250 2239 + vs_v210 MACH_VS_V210 VS_V210 2252 2240 + vs_v212 MACH_VS_V212 VS_V212 2253 2241 + hmt MACH_HMT HMT 2254 2242 + suen3 MACH_SUEN3 SUEN3 2255 2243 + vesper MACH_VESPER VESPER 2256 2244 + str9 MACH_STR9 STR9 2257 2245 + omap3_wl_ff MACH_OMAP3_WL_FF OMAP3_WL_FF 2258 2246 + simcom MACH_SIMCOM SIMCOM 2259 2247 + mcwebio MACH_MCWEBIO MCWEBIO 2260
+195 -83
arch/powerpc/configs/pmac32_defconfig
··· 1 1 # 2 2 # Automatically generated make config: don't edit 3 - # Linux kernel version: 2.6.28-rc3 4 - # Tue Nov 11 19:36:51 2008 3 + # Linux kernel version: 2.6.30-rc7 4 + # Mon May 25 14:53:25 2009 5 5 # 6 6 # CONFIG_PPC64 is not set 7 7 ··· 14 14 # CONFIG_40x is not set 15 15 # CONFIG_44x is not set 16 16 # CONFIG_E200 is not set 17 + CONFIG_PPC_BOOK3S=y 17 18 CONFIG_PPC_FPU=y 18 19 CONFIG_ALTIVEC=y 19 20 CONFIG_PPC_STD_MMU=y ··· 44 43 CONFIG_PPC=y 45 44 CONFIG_EARLY_PRINTK=y 46 45 CONFIG_GENERIC_NVRAM=y 47 - CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 46 + CONFIG_SCHED_OMIT_FRAME_POINTER=y 48 47 CONFIG_ARCH_MAY_HAVE_PC_FDC=y 49 48 CONFIG_PPC_OF=y 50 49 CONFIG_OF=y ··· 53 52 CONFIG_AUDIT_ARCH=y 54 53 CONFIG_GENERIC_BUG=y 55 54 CONFIG_SYS_SUPPORTS_APM_EMULATION=y 55 + CONFIG_DTC=y 56 56 # CONFIG_DEFAULT_UIMAGE is not set 57 57 CONFIG_HIBERNATE_32=y 58 58 CONFIG_ARCH_HIBERNATION_POSSIBLE=y 59 59 CONFIG_ARCH_SUSPEND_POSSIBLE=y 60 60 # CONFIG_PPC_DCR_NATIVE is not set 61 61 # CONFIG_PPC_DCR_MMIO is not set 62 + CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 62 63 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63 64 64 65 # ··· 75 72 CONFIG_SYSVIPC=y 76 73 CONFIG_SYSVIPC_SYSCTL=y 77 74 CONFIG_POSIX_MQUEUE=y 75 + CONFIG_POSIX_MQUEUE_SYSCTL=y 78 76 # CONFIG_BSD_PROCESS_ACCT is not set 79 77 # CONFIG_TASKSTATS is not set 80 78 # CONFIG_AUDIT is not set 79 + 80 + # 81 + # RCU Subsystem 82 + # 83 + CONFIG_CLASSIC_RCU=y 84 + # CONFIG_TREE_RCU is not set 85 + # CONFIG_PREEMPT_RCU is not set 86 + # CONFIG_TREE_RCU_TRACE is not set 87 + # CONFIG_PREEMPT_RCU_TRACE is not set 81 88 CONFIG_IKCONFIG=y 82 89 CONFIG_IKCONFIG_PROC=y 83 90 CONFIG_LOG_BUF_SHIFT=14 84 - # CONFIG_CGROUPS is not set 85 91 # CONFIG_GROUP_SCHED is not set 92 + # CONFIG_CGROUPS is not set 86 93 CONFIG_SYSFS_DEPRECATED=y 87 94 CONFIG_SYSFS_DEPRECATED_V2=y 88 95 # CONFIG_RELAY is not set ··· 101 88 # CONFIG_IPC_NS is not set 102 89 # CONFIG_USER_NS is not set 103 90 # CONFIG_PID_NS is not set 91 + # CONFIG_NET_NS is not set 104 92 CONFIG_BLK_DEV_INITRD=y 105 93 CONFIG_INITRAMFS_SOURCE="" 94 + CONFIG_RD_GZIP=y 95 + CONFIG_RD_BZIP2=y 96 + CONFIG_RD_LZMA=y 106 97 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 107 98 CONFIG_SYSCTL=y 99 + CONFIG_ANON_INODES=y 108 100 # CONFIG_EMBEDDED is not set 109 101 CONFIG_SYSCTL_SYSCALL=y 110 102 CONFIG_KALLSYMS=y 111 103 CONFIG_KALLSYMS_ALL=y 112 104 # CONFIG_KALLSYMS_EXTRA_PASS is not set 105 + # CONFIG_STRIP_ASM_SYMS is not set 113 106 CONFIG_HOTPLUG=y 114 107 CONFIG_PRINTK=y 115 108 CONFIG_BUG=y 116 109 CONFIG_ELF_CORE=y 117 - # CONFIG_COMPAT_BRK is not set 118 110 CONFIG_BASE_FULL=y 119 111 CONFIG_FUTEX=y 120 - CONFIG_ANON_INODES=y 121 112 CONFIG_EPOLL=y 122 113 CONFIG_SIGNALFD=y 123 114 CONFIG_TIMERFD=y ··· 131 114 CONFIG_VM_EVENT_COUNTERS=y 132 115 CONFIG_PCI_QUIRKS=y 133 116 CONFIG_SLUB_DEBUG=y 117 + # CONFIG_COMPAT_BRK is not set 134 118 # CONFIG_SLAB is not set 135 119 CONFIG_SLUB=y 136 120 # CONFIG_SLOB is not set 137 121 CONFIG_PROFILING=y 122 + CONFIG_TRACEPOINTS=y 138 123 # CONFIG_MARKERS is not set 139 124 CONFIG_OPROFILE=y 140 125 CONFIG_HAVE_OPROFILE=y ··· 146 127 CONFIG_HAVE_KPROBES=y 147 128 CONFIG_HAVE_KRETPROBES=y 148 129 CONFIG_HAVE_ARCH_TRACEHOOK=y 130 + # CONFIG_SLOW_WORK is not set 149 131 # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 150 132 CONFIG_SLABINFO=y 151 133 CONFIG_RT_MUTEXES=y 152 - # CONFIG_TINY_SHMEM is not set 153 134 CONFIG_BASE_SMALL=0 154 135 CONFIG_MODULES=y 155 136 # CONFIG_MODULE_FORCE_LOAD is not set ··· 157 138 CONFIG_MODULE_FORCE_UNLOAD=y 158 139 # CONFIG_MODVERSIONS is not set 159 140 # CONFIG_MODULE_SRCVERSION_ALL is not set 160 - CONFIG_KMOD=y 161 141 CONFIG_BLOCK=y 162 142 CONFIG_LBD=y 163 - # CONFIG_BLK_DEV_IO_TRACE is not set 164 - CONFIG_LSF=y 165 143 CONFIG_BLK_DEV_BSG=y 166 144 # CONFIG_BLK_DEV_INTEGRITY is not set 167 145 ··· 174 158 # CONFIG_DEFAULT_CFQ is not set 175 159 # CONFIG_DEFAULT_NOOP is not set 176 160 CONFIG_DEFAULT_IOSCHED="anticipatory" 177 - CONFIG_CLASSIC_RCU=y 178 161 CONFIG_FREEZER=y 179 162 180 163 # 181 164 # Platform support 182 165 # 183 - CONFIG_PPC_MULTIPLATFORM=y 184 - CONFIG_CLASSIC32=y 185 166 # CONFIG_PPC_CHRP is not set 186 167 # CONFIG_MPC5121_ADS is not set 187 168 # CONFIG_MPC5121_GENERIC is not set ··· 191 178 # CONFIG_PPC_83xx is not set 192 179 # CONFIG_PPC_86xx is not set 193 180 # CONFIG_EMBEDDED6xx is not set 181 + # CONFIG_AMIGAONE is not set 194 182 CONFIG_PPC_NATIVE=y 183 + CONFIG_PPC_OF_BOOT_TRAMPOLINE=y 195 184 # CONFIG_IPIC is not set 196 185 CONFIG_MPIC=y 197 186 # CONFIG_MPIC_WEIRD is not set ··· 227 212 CONFIG_PPC601_SYNC_FIX=y 228 213 # CONFIG_TAU is not set 229 214 # CONFIG_FSL_ULI1575 is not set 215 + # CONFIG_SIMPLE_GPIO is not set 230 216 231 217 # 232 218 # Kernel options 233 219 # 234 - # CONFIG_HIGHMEM is not set 220 + CONFIG_HIGHMEM=y 235 221 CONFIG_TICK_ONESHOT=y 236 222 CONFIG_NO_HZ=y 237 223 CONFIG_HIGH_RES_TIMERS=y ··· 255 239 CONFIG_ARCH_HAS_WALK_MEMORY=y 256 240 CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 257 241 # CONFIG_KEXEC is not set 242 + # CONFIG_CRASH_DUMP is not set 258 243 CONFIG_ARCH_FLATMEM_ENABLE=y 259 244 CONFIG_ARCH_POPULATES_NODE_MAP=y 260 245 CONFIG_SELECT_MEMORY_MODEL=y ··· 267 250 CONFIG_PAGEFLAGS_EXTENDED=y 268 251 CONFIG_SPLIT_PTLOCK_CPUS=4 269 252 # CONFIG_MIGRATION is not set 270 - # CONFIG_RESOURCES_64BIT is not set 271 253 # CONFIG_PHYS_ADDR_T_64BIT is not set 272 254 CONFIG_ZONE_DMA_FLAG=1 273 255 CONFIG_BOUNCE=y 274 256 CONFIG_VIRT_TO_BUS=y 275 257 CONFIG_UNEVICTABLE_LRU=y 258 + CONFIG_HAVE_MLOCK=y 259 + CONFIG_HAVE_MLOCKED_PAGE_BIT=y 260 + CONFIG_PPC_4K_PAGES=y 261 + # CONFIG_PPC_16K_PAGES is not set 262 + # CONFIG_PPC_64K_PAGES is not set 263 + # CONFIG_PPC_256K_PAGES is not set 276 264 CONFIG_FORCE_MAX_ZONEORDER=11 277 265 CONFIG_PROC_DEVICETREE=y 278 266 # CONFIG_CMDLINE_BOOL is not set ··· 310 288 # CONFIG_PCI_MSI is not set 311 289 # CONFIG_PCI_LEGACY is not set 312 290 # CONFIG_PCI_DEBUG is not set 291 + # CONFIG_PCI_STUB is not set 292 + # CONFIG_PCI_IOV is not set 313 293 CONFIG_PCCARD=m 314 294 # CONFIG_PCMCIA_DEBUG is not set 315 295 CONFIG_PCMCIA=m ··· 421 397 CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 422 398 # CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set 423 399 # CONFIG_NETFILTER_XT_TARGET_DSCP is not set 400 + CONFIG_NETFILTER_XT_TARGET_HL=m 401 + # CONFIG_NETFILTER_XT_TARGET_LED is not set 424 402 CONFIG_NETFILTER_XT_TARGET_MARK=m 425 403 CONFIG_NETFILTER_XT_TARGET_NFLOG=m 426 404 CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m ··· 431 405 CONFIG_NETFILTER_XT_TARGET_TRACE=m 432 406 CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 433 407 CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 408 + # CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set 434 409 CONFIG_NETFILTER_XT_MATCH_COMMENT=m 435 410 # CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set 436 411 CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m ··· 442 415 CONFIG_NETFILTER_XT_MATCH_ESP=m 443 416 # CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 444 417 CONFIG_NETFILTER_XT_MATCH_HELPER=m 418 + CONFIG_NETFILTER_XT_MATCH_HL=m 445 419 CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 446 420 CONFIG_NETFILTER_XT_MATCH_LENGTH=m 447 421 CONFIG_NETFILTER_XT_MATCH_LIMIT=m ··· 506 478 CONFIG_IP_NF_ARP_MANGLE=m 507 479 CONFIG_IP_DCCP=m 508 480 CONFIG_INET_DCCP_DIAG=m 509 - CONFIG_IP_DCCP_ACKVEC=y 510 481 511 482 # 512 483 # DCCP CCIDs Configuration (EXPERIMENTAL) 513 484 # 514 - CONFIG_IP_DCCP_CCID2=m 515 485 # CONFIG_IP_DCCP_CCID2_DEBUG is not set 516 - CONFIG_IP_DCCP_CCID3=m 486 + CONFIG_IP_DCCP_CCID3=y 517 487 # CONFIG_IP_DCCP_CCID3_DEBUG is not set 518 488 CONFIG_IP_DCCP_CCID3_RTO=100 519 - CONFIG_IP_DCCP_TFRC_LIB=m 489 + CONFIG_IP_DCCP_TFRC_LIB=y 520 490 521 491 # 522 492 # DCCP Kernel Hacking ··· 534 508 # CONFIG_LAPB is not set 535 509 # CONFIG_ECONET is not set 536 510 # CONFIG_WAN_ROUTER is not set 511 + # CONFIG_PHONET is not set 537 512 # CONFIG_NET_SCHED is not set 538 513 CONFIG_NET_CLS_ROUTE=y 514 + # CONFIG_DCB is not set 539 515 540 516 # 541 517 # Network testing 542 518 # 543 519 # CONFIG_NET_PKTGEN is not set 520 + # CONFIG_NET_DROP_MONITOR is not set 544 521 # CONFIG_HAMRADIO is not set 545 522 # CONFIG_CAN is not set 546 523 CONFIG_IRDA=m ··· 606 577 # 607 578 # Bluetooth device drivers 608 579 # 609 - CONFIG_BT_HCIUSB=m 610 - # CONFIG_BT_HCIUSB_SCO is not set 611 580 # CONFIG_BT_HCIBTUSB is not set 612 581 # CONFIG_BT_HCIUART is not set 613 582 CONFIG_BT_HCIBCM203X=m ··· 617 590 # CONFIG_BT_HCIBTUART is not set 618 591 # CONFIG_BT_HCIVHCI is not set 619 592 # CONFIG_AF_RXRPC is not set 620 - # CONFIG_PHONET is not set 621 593 CONFIG_WIRELESS=y 622 594 CONFIG_CFG80211=m 623 - CONFIG_NL80211=y 595 + # CONFIG_CFG80211_REG_DEBUG is not set 624 596 CONFIG_WIRELESS_OLD_REGULATORY=y 625 597 CONFIG_WIRELESS_EXT=y 626 598 CONFIG_WIRELESS_EXT_SYSFS=y 599 + # CONFIG_LIB80211 is not set 627 600 CONFIG_MAC80211=m 628 601 629 602 # 630 603 # Rate control algorithm selection 631 604 # 632 - CONFIG_MAC80211_RC_PID=y 633 - # CONFIG_MAC80211_RC_MINSTREL is not set 634 - CONFIG_MAC80211_RC_DEFAULT_PID=y 635 - # CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set 636 - CONFIG_MAC80211_RC_DEFAULT="pid" 605 + CONFIG_MAC80211_RC_MINSTREL=y 606 + # CONFIG_MAC80211_RC_DEFAULT_PID is not set 607 + CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y 608 + CONFIG_MAC80211_RC_DEFAULT="minstrel" 637 609 # CONFIG_MAC80211_MESH is not set 638 610 CONFIG_MAC80211_LEDS=y 611 + # CONFIG_MAC80211_DEBUGFS is not set 639 612 # CONFIG_MAC80211_DEBUG_MENU is not set 640 - CONFIG_IEEE80211=m 641 - # CONFIG_IEEE80211_DEBUG is not set 642 - CONFIG_IEEE80211_CRYPT_WEP=m 643 - CONFIG_IEEE80211_CRYPT_CCMP=m 644 - CONFIG_IEEE80211_CRYPT_TKIP=m 613 + # CONFIG_WIMAX is not set 645 614 # CONFIG_RFKILL is not set 646 615 # CONFIG_NET_9P is not set 647 616 ··· 685 662 # CONFIG_BLK_DEV_HD is not set 686 663 CONFIG_MISC_DEVICES=y 687 664 # CONFIG_PHANTOM is not set 688 - # CONFIG_EEPROM_93CX6 is not set 689 665 # CONFIG_SGI_IOC4 is not set 690 666 # CONFIG_TIFM_CORE is not set 667 + # CONFIG_ICS932S401 is not set 691 668 # CONFIG_ENCLOSURE_SERVICES is not set 692 669 # CONFIG_HP_ILO is not set 670 + # CONFIG_ISL29003 is not set 671 + # CONFIG_C2PORT is not set 672 + 673 + # 674 + # EEPROM support 675 + # 676 + # CONFIG_EEPROM_AT24 is not set 677 + # CONFIG_EEPROM_LEGACY is not set 678 + # CONFIG_EEPROM_93CX6 is not set 693 679 CONFIG_HAVE_IDE=y 694 680 CONFIG_IDE=y 695 681 696 682 # 697 683 # Please see Documentation/ide/ide.txt for help/info on IDE drives 698 684 # 685 + CONFIG_IDE_XFER_MODE=y 699 686 CONFIG_IDE_TIMINGS=y 700 687 CONFIG_IDE_ATAPI=y 701 688 # CONFIG_BLK_DEV_IDE_SATA is not set ··· 717 684 CONFIG_BLK_DEV_IDECD=y 718 685 CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 719 686 # CONFIG_BLK_DEV_IDETAPE is not set 720 - CONFIG_BLK_DEV_IDESCSI=y 721 687 # CONFIG_IDE_TASK_IOCTL is not set 722 688 CONFIG_IDE_PROC_FS=y 723 689 ··· 746 714 # CONFIG_BLK_DEV_JMICRON is not set 747 715 # CONFIG_BLK_DEV_SC1200 is not set 748 716 # CONFIG_BLK_DEV_PIIX is not set 717 + # CONFIG_BLK_DEV_IT8172 is not set 749 718 # CONFIG_BLK_DEV_IT8213 is not set 750 719 # CONFIG_BLK_DEV_IT821X is not set 751 720 # CONFIG_BLK_DEV_NS87415 is not set ··· 761 728 # CONFIG_BLK_DEV_TC86C001 is not set 762 729 CONFIG_BLK_DEV_IDE_PMAC=y 763 730 CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y 764 - CONFIG_BLK_DEV_IDEDMA_PMAC=y 765 731 CONFIG_BLK_DEV_IDEDMA=y 766 732 767 733 # ··· 804 772 # CONFIG_SCSI_SRP_ATTRS is not set 805 773 CONFIG_SCSI_LOWLEVEL=y 806 774 # CONFIG_ISCSI_TCP is not set 775 + # CONFIG_SCSI_CXGB3_ISCSI is not set 807 776 # CONFIG_BLK_DEV_3W_XXXX_RAID is not set 808 777 # CONFIG_SCSI_3W_9XXX is not set 809 778 # CONFIG_SCSI_ACARD is not set ··· 824 791 # CONFIG_MEGARAID_NEWGEN is not set 825 792 # CONFIG_MEGARAID_LEGACY is not set 826 793 # CONFIG_MEGARAID_SAS is not set 794 + # CONFIG_SCSI_MPT2SAS is not set 827 795 # CONFIG_SCSI_HPTIOP is not set 828 796 # CONFIG_SCSI_BUSLOGIC is not set 797 + # CONFIG_LIBFC is not set 798 + # CONFIG_LIBFCOE is not set 799 + # CONFIG_FCOE is not set 829 800 # CONFIG_SCSI_DMX3191D is not set 830 801 # CONFIG_SCSI_EATA is not set 831 802 # CONFIG_SCSI_FUTURE_DOMAIN is not set ··· 859 822 # CONFIG_SCSI_SRP is not set 860 823 # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 861 824 # CONFIG_SCSI_DH is not set 825 + # CONFIG_SCSI_OSD_INITIATOR is not set 862 826 # CONFIG_ATA is not set 863 827 CONFIG_MD=y 864 828 CONFIG_BLK_DEV_MD=m ··· 919 881 # CONFIG_ANSLCD is not set 920 882 CONFIG_PMAC_RACKMETER=m 921 883 CONFIG_NETDEVICES=y 884 + CONFIG_COMPAT_NET_DEV_OPS=y 922 885 CONFIG_DUMMY=m 923 886 # CONFIG_BONDING is not set 924 887 # CONFIG_MACVLAN is not set ··· 937 898 CONFIG_SUNGEM=y 938 899 # CONFIG_CASSINI is not set 939 900 # CONFIG_NET_VENDOR_3COM is not set 901 + # CONFIG_ETHOC is not set 902 + # CONFIG_DNET is not set 940 903 # CONFIG_NET_TULIP is not set 941 904 # CONFIG_HP100 is not set 942 905 # CONFIG_IBM_NEW_EMAC_ZMII is not set ··· 954 913 # CONFIG_ADAPTEC_STARFIRE is not set 955 914 # CONFIG_B44 is not set 956 915 # CONFIG_FORCEDETH is not set 957 - # CONFIG_EEPRO100 is not set 958 916 # CONFIG_E100 is not set 959 917 # CONFIG_FEALNX is not set 960 918 # CONFIG_NATSEMI is not set ··· 963 923 # CONFIG_R6040 is not set 964 924 # CONFIG_SIS900 is not set 965 925 # CONFIG_EPIC100 is not set 926 + # CONFIG_SMSC9420 is not set 966 927 # CONFIG_SUNDANCE is not set 967 928 # CONFIG_TLAN is not set 968 929 # CONFIG_VIA_RHINE is not set ··· 976 935 # CONFIG_E1000E is not set 977 936 # CONFIG_IP1000 is not set 978 937 # CONFIG_IGB is not set 938 + # CONFIG_IGBVF is not set 979 939 # CONFIG_NS83820 is not set 980 940 # CONFIG_HAMACHI is not set 981 941 # CONFIG_YELLOWFIN is not set ··· 987 945 # CONFIG_VIA_VELOCITY is not set 988 946 # CONFIG_TIGON3 is not set 989 947 # CONFIG_BNX2 is not set 990 - # CONFIG_MV643XX_ETH is not set 991 948 # CONFIG_QLA3XXX is not set 992 949 # CONFIG_ATL1 is not set 993 950 # CONFIG_ATL1E is not set 951 + # CONFIG_ATL1C is not set 994 952 # CONFIG_JME is not set 995 953 CONFIG_NETDEV_10000=y 996 954 # CONFIG_CHELSIO_T1 is not set 955 + CONFIG_CHELSIO_T3_DEPENDS=y 997 956 # CONFIG_CHELSIO_T3 is not set 998 957 # CONFIG_ENIC is not set 999 958 # CONFIG_IXGBE is not set 1000 959 # CONFIG_IXGB is not set 1001 960 # CONFIG_S2IO is not set 961 + # CONFIG_VXGE is not set 1002 962 # CONFIG_MYRI10GE is not set 1003 963 # CONFIG_NETXEN_NIC is not set 1004 964 # CONFIG_NIU is not set ··· 1010 966 # CONFIG_BNX2X is not set 1011 967 # CONFIG_QLGE is not set 1012 968 # CONFIG_SFC is not set 969 + # CONFIG_BE2NET is not set 1013 970 # CONFIG_TR is not set 1014 971 1015 972 # ··· 1019 974 # CONFIG_WLAN_PRE80211 is not set 1020 975 CONFIG_WLAN_80211=y 1021 976 # CONFIG_PCMCIA_RAYCS is not set 1022 - # CONFIG_IPW2100 is not set 1023 - # CONFIG_IPW2200 is not set 1024 977 # CONFIG_LIBERTAS is not set 1025 978 # CONFIG_LIBERTAS_THINFIRM is not set 1026 979 # CONFIG_AIRO is not set 1027 - CONFIG_HERMES=m 1028 - CONFIG_APPLE_AIRPORT=m 1029 - # CONFIG_PLX_HERMES is not set 1030 - # CONFIG_TMD_HERMES is not set 1031 - # CONFIG_NORTEL_HERMES is not set 1032 - CONFIG_PCI_HERMES=m 1033 - CONFIG_PCMCIA_HERMES=m 1034 - # CONFIG_PCMCIA_SPECTRUM is not set 1035 980 # CONFIG_ATMEL is not set 981 + # CONFIG_AT76C50X_USB is not set 1036 982 # CONFIG_AIRO_CS is not set 1037 983 # CONFIG_PCMCIA_WL3501 is not set 1038 984 CONFIG_PRISM54=m ··· 1033 997 # CONFIG_RTL8187 is not set 1034 998 # CONFIG_ADM8211 is not set 1035 999 # CONFIG_MAC80211_HWSIM is not set 1000 + # CONFIG_MWL8K is not set 1036 1001 CONFIG_P54_COMMON=m 1037 1002 # CONFIG_P54_USB is not set 1038 1003 # CONFIG_P54_PCI is not set 1004 + CONFIG_P54_LEDS=y 1039 1005 # CONFIG_ATH5K is not set 1040 1006 # CONFIG_ATH9K is not set 1041 - # CONFIG_IWLCORE is not set 1042 - # CONFIG_IWLWIFI_LEDS is not set 1043 - # CONFIG_IWLAGN is not set 1044 - # CONFIG_IWL3945 is not set 1007 + # CONFIG_AR9170_USB is not set 1008 + # CONFIG_IPW2100 is not set 1009 + # CONFIG_IPW2200 is not set 1010 + # CONFIG_IWLWIFI is not set 1045 1011 # CONFIG_HOSTAP is not set 1046 1012 CONFIG_B43=m 1047 1013 CONFIG_B43_PCI_AUTOSELECT=y ··· 1063 1025 # CONFIG_B43LEGACY_PIO_MODE is not set 1064 1026 # CONFIG_ZD1211RW is not set 1065 1027 # CONFIG_RT2X00 is not set 1028 + CONFIG_HERMES=m 1029 + CONFIG_HERMES_CACHE_FW_ON_INIT=y 1030 + CONFIG_APPLE_AIRPORT=m 1031 + # CONFIG_PLX_HERMES is not set 1032 + # CONFIG_TMD_HERMES is not set 1033 + # CONFIG_NORTEL_HERMES is not set 1034 + CONFIG_PCI_HERMES=m 1035 + CONFIG_PCMCIA_HERMES=m 1036 + # CONFIG_PCMCIA_SPECTRUM is not set 1037 + 1038 + # 1039 + # Enable WiMAX (Networking options) to see the WiMAX drivers 1040 + # 1066 1041 1067 1042 # 1068 1043 # USB Network Adapters ··· 1087 1036 CONFIG_USB_USBNET=m 1088 1037 CONFIG_USB_NET_AX8817X=m 1089 1038 CONFIG_USB_NET_CDCETHER=m 1039 + # CONFIG_USB_NET_CDC_EEM is not set 1090 1040 # CONFIG_USB_NET_DM9601 is not set 1091 1041 # CONFIG_USB_NET_SMSC95XX is not set 1092 1042 # CONFIG_USB_NET_GL620A is not set ··· 1151 1099 CONFIG_INPUT_MOUSE=y 1152 1100 # CONFIG_MOUSE_PS2 is not set 1153 1101 # CONFIG_MOUSE_SERIAL is not set 1154 - # CONFIG_MOUSE_APPLETOUCH is not set 1102 + CONFIG_MOUSE_APPLETOUCH=y 1155 1103 # CONFIG_MOUSE_BCM5974 is not set 1156 1104 # CONFIG_MOUSE_VSXXXAA is not set 1157 1105 # CONFIG_INPUT_JOYSTICK is not set ··· 1202 1150 # CONFIG_SERIAL_JSM is not set 1203 1151 # CONFIG_SERIAL_OF_PLATFORM is not set 1204 1152 CONFIG_UNIX98_PTYS=y 1153 + # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1205 1154 CONFIG_LEGACY_PTYS=y 1206 1155 CONFIG_LEGACY_PTY_COUNT=256 1156 + # CONFIG_HVC_UDBG is not set 1207 1157 # CONFIG_IPMI_HANDLER is not set 1208 1158 CONFIG_HW_RANDOM=m 1159 + # CONFIG_HW_RANDOM_TIMERIOMEM is not set 1209 1160 CONFIG_NVRAM=y 1210 1161 CONFIG_GEN_RTC=y 1211 1162 # CONFIG_GEN_RTC_X is not set ··· 1287 1232 # Miscellaneous I2C Chip support 1288 1233 # 1289 1234 # CONFIG_DS1682 is not set 1290 - # CONFIG_EEPROM_AT24 is not set 1291 - # CONFIG_EEPROM_LEGACY is not set 1292 1235 # CONFIG_SENSORS_PCF8574 is not set 1293 1236 # CONFIG_PCF8575 is not set 1294 1237 # CONFIG_SENSORS_PCA9539 is not set 1295 - # CONFIG_SENSORS_PCF8591 is not set 1296 1238 # CONFIG_SENSORS_MAX6875 is not set 1297 1239 # CONFIG_SENSORS_TSL2550 is not set 1298 1240 # CONFIG_I2C_DEBUG_CORE is not set ··· 1311 1259 # CONFIG_THERMAL is not set 1312 1260 # CONFIG_THERMAL_HWMON is not set 1313 1261 # CONFIG_WATCHDOG is not set 1262 + CONFIG_SSB_POSSIBLE=y 1314 1263 1315 1264 # 1316 1265 # Sonics Silicon Backplane 1317 1266 # 1318 - CONFIG_SSB_POSSIBLE=y 1319 1267 CONFIG_SSB=m 1320 1268 CONFIG_SSB_SPROM=y 1321 1269 CONFIG_SSB_PCIHOST_POSSIBLE=y ··· 1333 1281 # CONFIG_MFD_CORE is not set 1334 1282 # CONFIG_MFD_SM501 is not set 1335 1283 # CONFIG_HTC_PASIC3 is not set 1284 + # CONFIG_TWL4030_CORE is not set 1336 1285 # CONFIG_MFD_TMIO is not set 1337 1286 # CONFIG_PMIC_DA903X is not set 1338 1287 # CONFIG_MFD_WM8400 is not set 1339 1288 # CONFIG_MFD_WM8350_I2C is not set 1340 - 1341 - # 1342 - # Voltage and Current regulators 1343 - # 1289 + # CONFIG_MFD_PCF50633 is not set 1344 1290 # CONFIG_REGULATOR is not set 1345 - # CONFIG_REGULATOR_FIXED_VOLTAGE is not set 1346 - # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set 1347 - # CONFIG_REGULATOR_BQ24022 is not set 1348 1291 1349 1292 # 1350 1293 # Multimedia devices ··· 1437 1390 # CONFIG_FB_KYRO is not set 1438 1391 CONFIG_FB_3DFX=y 1439 1392 # CONFIG_FB_3DFX_ACCEL is not set 1393 + CONFIG_FB_3DFX_I2C=y 1440 1394 # CONFIG_FB_VOODOO1 is not set 1441 1395 # CONFIG_FB_VT8623 is not set 1442 1396 # CONFIG_FB_TRIDENT is not set ··· 1447 1399 # CONFIG_FB_IBM_GXT4500 is not set 1448 1400 # CONFIG_FB_VIRTUAL is not set 1449 1401 # CONFIG_FB_METRONOME is not set 1402 + # CONFIG_FB_MB862XX is not set 1403 + # CONFIG_FB_BROADSHEET is not set 1450 1404 CONFIG_BACKLIGHT_LCD_SUPPORT=y 1451 1405 CONFIG_LCD_CLASS_DEVICE=m 1452 1406 # CONFIG_LCD_ILI9320 is not set 1453 1407 # CONFIG_LCD_PLATFORM is not set 1454 1408 CONFIG_BACKLIGHT_CLASS_DEVICE=y 1455 - # CONFIG_BACKLIGHT_CORGI is not set 1409 + CONFIG_BACKLIGHT_GENERIC=y 1456 1410 1457 1411 # 1458 1412 # Display device support ··· 1494 1444 CONFIG_SND_PCM_OSS=m 1495 1445 CONFIG_SND_PCM_OSS_PLUGINS=y 1496 1446 CONFIG_SND_SEQUENCER_OSS=y 1447 + # CONFIG_SND_HRTIMER is not set 1497 1448 # CONFIG_SND_DYNAMIC_MINORS is not set 1498 1449 CONFIG_SND_SUPPORT_OLD_API=y 1499 1450 CONFIG_SND_VERBOSE_PROCFS=y 1500 1451 # CONFIG_SND_VERBOSE_PRINTK is not set 1501 1452 # CONFIG_SND_DEBUG is not set 1453 + CONFIG_SND_VMASTER=y 1502 1454 CONFIG_SND_DRIVERS=y 1503 1455 CONFIG_SND_DUMMY=m 1504 1456 # CONFIG_SND_VIRMIDI is not set ··· 1538 1486 # CONFIG_SND_INDIGO is not set 1539 1487 # CONFIG_SND_INDIGOIO is not set 1540 1488 # CONFIG_SND_INDIGODJ is not set 1489 + # CONFIG_SND_INDIGOIOX is not set 1490 + # CONFIG_SND_INDIGODJX is not set 1541 1491 # CONFIG_SND_EMU10K1 is not set 1542 1492 # CONFIG_SND_EMU10K1X is not set 1543 1493 # CONFIG_SND_ENS1370 is not set ··· 1605 1551 # 1606 1552 # Special HID drivers 1607 1553 # 1608 - CONFIG_HID_COMPAT=y 1609 1554 CONFIG_HID_A4TECH=y 1610 1555 CONFIG_HID_APPLE=y 1611 1556 CONFIG_HID_BELKIN=y 1612 - CONFIG_HID_BRIGHT=y 1613 1557 CONFIG_HID_CHERRY=y 1614 1558 CONFIG_HID_CHICONY=y 1615 1559 CONFIG_HID_CYPRESS=y 1616 - CONFIG_HID_DELL=y 1560 + # CONFIG_DRAGONRISE_FF is not set 1617 1561 CONFIG_HID_EZKEY=y 1562 + CONFIG_HID_KYE=y 1618 1563 CONFIG_HID_GYRATION=y 1564 + CONFIG_HID_KENSINGTON=y 1619 1565 CONFIG_HID_LOGITECH=y 1620 1566 # CONFIG_LOGITECH_FF is not set 1621 1567 # CONFIG_LOGIRUMBLEPAD2_FF is not set 1622 1568 CONFIG_HID_MICROSOFT=y 1623 1569 CONFIG_HID_MONTEREY=y 1570 + CONFIG_HID_NTRIG=y 1624 1571 CONFIG_HID_PANTHERLORD=y 1625 1572 # CONFIG_PANTHERLORD_FF is not set 1626 1573 CONFIG_HID_PETALYNX=y 1627 1574 CONFIG_HID_SAMSUNG=y 1628 1575 CONFIG_HID_SONY=y 1629 1576 CONFIG_HID_SUNPLUS=y 1577 + # CONFIG_GREENASIA_FF is not set 1578 + CONFIG_HID_TOPSEED=y 1630 1579 # CONFIG_THRUSTMASTER_FF is not set 1631 1580 # CONFIG_ZEROPLUS_FF is not set 1632 1581 CONFIG_USB_SUPPORT=y ··· 1660 1603 CONFIG_USB_EHCI_ROOT_HUB_TT=y 1661 1604 # CONFIG_USB_EHCI_TT_NEWSCHED is not set 1662 1605 # CONFIG_USB_EHCI_HCD_PPC_OF is not set 1606 + # CONFIG_USB_OXU210HP_HCD is not set 1663 1607 # CONFIG_USB_ISP116X_HCD is not set 1664 1608 # CONFIG_USB_ISP1760_HCD is not set 1665 1609 CONFIG_USB_OHCI_HCD=y ··· 1683 1625 # CONFIG_USB_TMC is not set 1684 1626 1685 1627 # 1686 - # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1628 + # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may 1687 1629 # 1688 1630 1689 1631 # 1690 - # may also be needed; see USB_STORAGE Help for more information 1632 + # also be needed; see USB_STORAGE Help for more info 1691 1633 # 1692 1634 CONFIG_USB_STORAGE=m 1693 1635 # CONFIG_USB_STORAGE_DEBUG is not set 1694 1636 # CONFIG_USB_STORAGE_DATAFAB is not set 1695 1637 # CONFIG_USB_STORAGE_FREECOM is not set 1696 1638 # CONFIG_USB_STORAGE_ISD200 is not set 1697 - # CONFIG_USB_STORAGE_DPCM is not set 1698 1639 # CONFIG_USB_STORAGE_USBAT is not set 1699 1640 # CONFIG_USB_STORAGE_SDDR09 is not set 1700 1641 # CONFIG_USB_STORAGE_SDDR55 is not set 1701 1642 # CONFIG_USB_STORAGE_JUMPSHOT is not set 1702 1643 # CONFIG_USB_STORAGE_ALAUDA is not set 1703 - CONFIG_USB_STORAGE_ONETOUCH=y 1644 + CONFIG_USB_STORAGE_ONETOUCH=m 1704 1645 # CONFIG_USB_STORAGE_KARMA is not set 1705 1646 # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1706 1647 # CONFIG_USB_LIBUSUAL is not set ··· 1722 1665 # CONFIG_USB_SERIAL_CH341 is not set 1723 1666 # CONFIG_USB_SERIAL_WHITEHEAT is not set 1724 1667 # CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set 1725 - # CONFIG_USB_SERIAL_CP2101 is not set 1668 + # CONFIG_USB_SERIAL_CP210X is not set 1726 1669 # CONFIG_USB_SERIAL_CYPRESS_M8 is not set 1727 1670 # CONFIG_USB_SERIAL_EMPEG is not set 1728 1671 # CONFIG_USB_SERIAL_FTDI_SIO is not set ··· 1758 1701 # CONFIG_USB_SERIAL_NAVMAN is not set 1759 1702 # CONFIG_USB_SERIAL_PL2303 is not set 1760 1703 # CONFIG_USB_SERIAL_OTI6858 is not set 1704 + # CONFIG_USB_SERIAL_QUALCOMM is not set 1761 1705 # CONFIG_USB_SERIAL_SPCP8X5 is not set 1762 1706 # CONFIG_USB_SERIAL_HP4X is not set 1763 1707 # CONFIG_USB_SERIAL_SAFE is not set 1708 + # CONFIG_USB_SERIAL_SIEMENS_MPI is not set 1764 1709 # CONFIG_USB_SERIAL_SIERRAWIRELESS is not set 1710 + # CONFIG_USB_SERIAL_SYMBOL is not set 1765 1711 # CONFIG_USB_SERIAL_TI is not set 1766 1712 # CONFIG_USB_SERIAL_CYBERJACK is not set 1767 1713 # CONFIG_USB_SERIAL_XIRCOM is not set 1768 1714 # CONFIG_USB_SERIAL_OPTION is not set 1769 1715 # CONFIG_USB_SERIAL_OMNINET is not set 1716 + # CONFIG_USB_SERIAL_OPTICON is not set 1770 1717 # CONFIG_USB_SERIAL_DEBUG is not set 1771 1718 1772 1719 # ··· 1787 1726 # CONFIG_USB_LED is not set 1788 1727 # CONFIG_USB_CYPRESS_CY7C63 is not set 1789 1728 # CONFIG_USB_CYTHERM is not set 1790 - # CONFIG_USB_PHIDGET is not set 1791 1729 # CONFIG_USB_IDMOUSE is not set 1792 1730 # CONFIG_USB_FTDI_ELAN is not set 1793 1731 CONFIG_USB_APPLEDISPLAY=m ··· 1798 1738 # CONFIG_USB_ISIGHTFW is not set 1799 1739 # CONFIG_USB_VST is not set 1800 1740 # CONFIG_USB_GADGET is not set 1741 + 1742 + # 1743 + # OTG and related infrastructure 1744 + # 1745 + # CONFIG_NOP_USB_XCEIV is not set 1801 1746 # CONFIG_UWB is not set 1802 1747 # CONFIG_MMC is not set 1803 1748 # CONFIG_MEMSTICK is not set ··· 1813 1748 # LED drivers 1814 1749 # 1815 1750 # CONFIG_LEDS_PCA9532 is not set 1751 + # CONFIG_LEDS_LP5521 is not set 1816 1752 # CONFIG_LEDS_PCA955X is not set 1753 + # CONFIG_LEDS_BD2802 is not set 1817 1754 1818 1755 # 1819 1756 # LED Triggers ··· 1826 1759 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set 1827 1760 # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set 1828 1761 CONFIG_LEDS_TRIGGER_DEFAULT_ON=y 1762 + 1763 + # 1764 + # iptables trigger is under Netfilter config (LED target) 1765 + # 1829 1766 # CONFIG_ACCESSIBILITY is not set 1830 1767 # CONFIG_INFINIBAND is not set 1831 1768 # CONFIG_EDAC is not set 1832 1769 # CONFIG_RTC_CLASS is not set 1833 1770 # CONFIG_DMADEVICES is not set 1771 + # CONFIG_AUXDISPLAY is not set 1834 1772 # CONFIG_UIO is not set 1835 1773 # CONFIG_STAGING is not set 1836 1774 ··· 1846 1774 # CONFIG_EXT2_FS_XATTR is not set 1847 1775 # CONFIG_EXT2_FS_XIP is not set 1848 1776 CONFIG_EXT3_FS=y 1777 + # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 1849 1778 CONFIG_EXT3_FS_XATTR=y 1850 1779 CONFIG_EXT3_FS_POSIX_ACL=y 1851 1780 # CONFIG_EXT3_FS_SECURITY is not set ··· 1856 1783 # CONFIG_EXT4_FS_POSIX_ACL is not set 1857 1784 # CONFIG_EXT4_FS_SECURITY is not set 1858 1785 CONFIG_JBD=y 1786 + # CONFIG_JBD_DEBUG is not set 1859 1787 CONFIG_JBD2=y 1788 + # CONFIG_JBD2_DEBUG is not set 1860 1789 CONFIG_FS_MBCACHE=y 1861 1790 # CONFIG_REISERFS_FS is not set 1862 1791 # CONFIG_JFS_FS is not set ··· 1867 1792 # CONFIG_XFS_FS is not set 1868 1793 # CONFIG_GFS2_FS is not set 1869 1794 # CONFIG_OCFS2_FS is not set 1795 + # CONFIG_BTRFS_FS is not set 1870 1796 CONFIG_DNOTIFY=y 1871 1797 CONFIG_INOTIFY=y 1872 1798 CONFIG_INOTIFY_USER=y ··· 1875 1799 # CONFIG_AUTOFS_FS is not set 1876 1800 CONFIG_AUTOFS4_FS=m 1877 1801 CONFIG_FUSE_FS=m 1802 + 1803 + # 1804 + # Caches 1805 + # 1806 + # CONFIG_FSCACHE is not set 1878 1807 1879 1808 # 1880 1809 # CD-ROM/DVD Filesystems ··· 1912 1831 # CONFIG_TMPFS_POSIX_ACL is not set 1913 1832 # CONFIG_HUGETLB_PAGE is not set 1914 1833 # CONFIG_CONFIGFS_FS is not set 1915 - 1916 - # 1917 - # Miscellaneous filesystems 1918 - # 1834 + CONFIG_MISC_FILESYSTEMS=y 1919 1835 # CONFIG_ADFS_FS is not set 1920 1836 # CONFIG_AFFS_FS is not set 1921 1837 CONFIG_HFS_FS=m ··· 1921 1843 # CONFIG_BFS_FS is not set 1922 1844 # CONFIG_EFS_FS is not set 1923 1845 # CONFIG_CRAMFS is not set 1846 + # CONFIG_SQUASHFS is not set 1924 1847 # CONFIG_VXFS_FS is not set 1925 1848 # CONFIG_MINIX_FS is not set 1926 1849 # CONFIG_OMFS_FS is not set ··· 1930 1851 # CONFIG_ROMFS_FS is not set 1931 1852 # CONFIG_SYSV_FS is not set 1932 1853 # CONFIG_UFS_FS is not set 1854 + # CONFIG_NILFS2_FS is not set 1933 1855 CONFIG_NETWORK_FILESYSTEMS=y 1934 1856 CONFIG_NFS_FS=y 1935 1857 CONFIG_NFS_V3=y ··· 1948 1868 CONFIG_NFS_COMMON=y 1949 1869 CONFIG_SUNRPC=y 1950 1870 CONFIG_SUNRPC_GSS=y 1951 - # CONFIG_SUNRPC_REGISTER_V4 is not set 1952 1871 CONFIG_RPCSEC_GSS_KRB5=y 1953 1872 # CONFIG_RPCSEC_GSS_SPKM3 is not set 1954 1873 CONFIG_SMB_FS=m ··· 2019 1940 # CONFIG_NLS_KOI8_U is not set 2020 1941 CONFIG_NLS_UTF8=m 2021 1942 # CONFIG_DLM is not set 1943 + CONFIG_BINARY_PRINTF=y 2022 1944 2023 1945 # 2024 1946 # Library routines 2025 1947 # 2026 1948 CONFIG_BITREVERSE=y 1949 + CONFIG_GENERIC_FIND_LAST_BIT=y 2027 1950 CONFIG_CRC_CCITT=y 2028 1951 CONFIG_CRC16=y 2029 1952 CONFIG_CRC_T10DIF=y ··· 2035 1954 CONFIG_LIBCRC32C=m 2036 1955 CONFIG_ZLIB_INFLATE=y 2037 1956 CONFIG_ZLIB_DEFLATE=y 1957 + CONFIG_DECOMPRESS_GZIP=y 1958 + CONFIG_DECOMPRESS_BZIP2=y 1959 + CONFIG_DECOMPRESS_LZMA=y 2038 1960 CONFIG_TEXTSEARCH=y 2039 1961 CONFIG_TEXTSEARCH_KMP=m 2040 1962 CONFIG_TEXTSEARCH_BM=m 2041 1963 CONFIG_TEXTSEARCH_FSM=m 2042 - CONFIG_PLIST=y 2043 1964 CONFIG_HAS_IOMEM=y 2044 1965 CONFIG_HAS_IOPORT=y 2045 1966 CONFIG_HAS_DMA=y 2046 1967 CONFIG_HAVE_LMB=y 1968 + CONFIG_NLATTR=y 2047 1969 2048 1970 # 2049 1971 # Kernel hacking ··· 2057 1973 CONFIG_FRAME_WARN=1024 2058 1974 CONFIG_MAGIC_SYSRQ=y 2059 1975 # CONFIG_UNUSED_SYMBOLS is not set 2060 - # CONFIG_DEBUG_FS is not set 1976 + CONFIG_DEBUG_FS=y 2061 1977 # CONFIG_HEADERS_CHECK is not set 2062 1978 CONFIG_DEBUG_KERNEL=y 2063 1979 # CONFIG_DEBUG_SHIRQ is not set 2064 1980 CONFIG_DETECT_SOFTLOCKUP=y 2065 1981 # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 2066 1982 CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1983 + CONFIG_DETECT_HUNG_TASK=y 1984 + # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set 1985 + CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 2067 1986 CONFIG_SCHED_DEBUG=y 2068 1987 CONFIG_SCHEDSTATS=y 2069 1988 # CONFIG_TIMER_STATS is not set ··· 2081 1994 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 2082 1995 CONFIG_STACKTRACE=y 2083 1996 # CONFIG_DEBUG_KOBJECT is not set 1997 + # CONFIG_DEBUG_HIGHMEM is not set 2084 1998 CONFIG_DEBUG_BUGVERBOSE=y 2085 1999 # CONFIG_DEBUG_INFO is not set 2086 2000 # CONFIG_DEBUG_VM is not set ··· 2089 2001 CONFIG_DEBUG_MEMORY_INIT=y 2090 2002 # CONFIG_DEBUG_LIST is not set 2091 2003 # CONFIG_DEBUG_SG is not set 2004 + # CONFIG_DEBUG_NOTIFIERS is not set 2092 2005 # CONFIG_BOOT_PRINTK_DELAY is not set 2093 2006 # CONFIG_RCU_TORTURE_TEST is not set 2094 2007 # CONFIG_RCU_CPU_STALL_DETECTOR is not set ··· 2098 2009 # CONFIG_FAULT_INJECTION is not set 2099 2010 CONFIG_LATENCYTOP=y 2100 2011 CONFIG_SYSCTL_SYSCALL_CHECK=y 2012 + CONFIG_NOP_TRACER=y 2101 2013 CONFIG_HAVE_FUNCTION_TRACER=y 2014 + CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 2015 + CONFIG_HAVE_DYNAMIC_FTRACE=y 2016 + CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 2017 + CONFIG_RING_BUFFER=y 2018 + CONFIG_TRACING=y 2019 + CONFIG_TRACING_SUPPORT=y 2102 2020 2103 2021 # 2104 2022 # Tracers ··· 2113 2017 # CONFIG_FUNCTION_TRACER is not set 2114 2018 # CONFIG_SCHED_TRACER is not set 2115 2019 # CONFIG_CONTEXT_SWITCH_TRACER is not set 2020 + # CONFIG_EVENT_TRACER is not set 2116 2021 # CONFIG_BOOT_TRACER is not set 2022 + # CONFIG_TRACE_BRANCH_PROFILING is not set 2117 2023 # CONFIG_STACK_TRACER is not set 2118 - # CONFIG_DYNAMIC_PRINTK_DEBUG is not set 2024 + # CONFIG_KMEMTRACE is not set 2025 + # CONFIG_WORKQUEUE_TRACER is not set 2026 + # CONFIG_BLK_DEV_IO_TRACE is not set 2027 + # CONFIG_FTRACE_STARTUP_TEST is not set 2028 + # CONFIG_DYNAMIC_DEBUG is not set 2119 2029 # CONFIG_SAMPLES is not set 2120 2030 CONFIG_HAVE_ARCH_KGDB=y 2121 2031 # CONFIG_KGDB is not set 2032 + CONFIG_PRINT_STACK_DEPTH=64 2122 2033 # CONFIG_DEBUG_STACKOVERFLOW is not set 2123 2034 # CONFIG_DEBUG_STACK_USAGE is not set 2124 2035 # CONFIG_CODE_PATCHING_SELFTEST is not set ··· 2136 2033 CONFIG_XMON_DISASSEMBLY=y 2137 2034 CONFIG_DEBUGGER=y 2138 2035 CONFIG_IRQSTACKS=y 2036 + # CONFIG_VIRQ_DEBUG is not set 2139 2037 # CONFIG_BDI_SWITCH is not set 2140 2038 CONFIG_BOOTX_TEXT=y 2141 2039 # CONFIG_PPC_EARLY_DEBUG is not set ··· 2155 2051 # 2156 2052 # CONFIG_CRYPTO_FIPS is not set 2157 2053 CONFIG_CRYPTO_ALGAPI=y 2054 + CONFIG_CRYPTO_ALGAPI2=y 2158 2055 CONFIG_CRYPTO_AEAD=y 2056 + CONFIG_CRYPTO_AEAD2=y 2159 2057 CONFIG_CRYPTO_BLKCIPHER=y 2058 + CONFIG_CRYPTO_BLKCIPHER2=y 2160 2059 CONFIG_CRYPTO_HASH=y 2161 - CONFIG_CRYPTO_RNG=y 2060 + CONFIG_CRYPTO_HASH2=y 2061 + CONFIG_CRYPTO_RNG2=y 2062 + CONFIG_CRYPTO_PCOMP=y 2162 2063 CONFIG_CRYPTO_MANAGER=y 2064 + CONFIG_CRYPTO_MANAGER2=y 2163 2065 # CONFIG_CRYPTO_GF128MUL is not set 2164 2066 CONFIG_CRYPTO_NULL=m 2067 + CONFIG_CRYPTO_WORKQUEUE=y 2165 2068 # CONFIG_CRYPTO_CRYPTD is not set 2166 2069 CONFIG_CRYPTO_AUTHENC=y 2167 2070 # CONFIG_CRYPTO_TEST is not set ··· 2238 2127 # Compression 2239 2128 # 2240 2129 CONFIG_CRYPTO_DEFLATE=m 2130 + # CONFIG_CRYPTO_ZLIB is not set 2241 2131 # CONFIG_CRYPTO_LZO is not set 2242 2132 2243 2133 #
+3 -2
arch/sparc/include/asm/elf_64.h
··· 208 208 else \ 209 209 clear_thread_flag(TIF_ABI_PENDING); \ 210 210 /* flush_thread will update pgd cache */ \ 211 - if (current->personality != PER_LINUX32) \ 212 - set_personality(PER_LINUX); \ 211 + if (personality(current->personality) != PER_LINUX32) \ 212 + set_personality(PER_LINUX | \ 213 + (current->personality & (~PER_MASK))); \ 213 214 } while (0) 214 215 215 216 #endif /* !(__ASM_SPARC64_ELF_H) */
+1 -1
arch/sparc/lib/csum_copy_from_user.S
··· 5 5 6 6 #define EX_LD(x) \ 7 7 98: x; \ 8 - .section .fixup; \ 8 + .section .fixup, "ax"; \ 9 9 .align 4; \ 10 10 99: retl; \ 11 11 mov -1, %o0; \
+1 -1
arch/sparc/lib/csum_copy_to_user.S
··· 5 5 6 6 #define EX_ST(x) \ 7 7 98: x; \ 8 - .section .fixup; \ 8 + .section .fixup,"ax"; \ 9 9 .align 4; \ 10 10 99: retl; \ 11 11 mov -1, %o0; \
+2 -2
arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
··· 693 693 if (perf->control_register.space_id == ACPI_ADR_SPACE_FIXED_HARDWARE && 694 694 policy->cpuinfo.transition_latency > 20 * 1000) { 695 695 policy->cpuinfo.transition_latency = 20 * 1000; 696 - printk_once(KERN_INFO "Capping off P-state tranision" 697 - " latency at 20 uS\n"); 696 + printk_once(KERN_INFO 697 + "P-state transition latency capped at 20 uS\n"); 698 698 } 699 699 700 700 /* table init */
+1
arch/x86/lguest/Makefile
··· 1 1 obj-y := i386_head.o boot.o 2 + CFLAGS_boot.o := $(call cc-option, -fno-stack-protector)
+13 -4
arch/x86/lguest/boot.c
··· 67 67 #include <asm/mce.h> 68 68 #include <asm/io.h> 69 69 #include <asm/i387.h> 70 + #include <asm/stackprotector.h> 70 71 #include <asm/reboot.h> /* for struct machine_ops */ 71 72 72 73 /*G:010 Welcome to the Guest! ··· 1089 1088 * lguest_init() where the rest of the fairly chaotic boot setup 1090 1089 * occurs. */ 1091 1090 1091 + /* The stack protector is a weird thing where gcc places a canary 1092 + * value on the stack and then checks it on return. This file is 1093 + * compiled with -fno-stack-protector it, so we got this far without 1094 + * problems. The value of the canary is kept at offset 20 from the 1095 + * %gs register, so we need to set that up before calling C functions 1096 + * in other files. */ 1097 + setup_stack_canary_segment(0); 1098 + /* We could just call load_stack_canary_segment(), but we might as 1099 + * call switch_to_new_gdt() which loads the whole table and sets up 1100 + * the per-cpu segment descriptor register %fs as well. */ 1101 + switch_to_new_gdt(0); 1102 + 1092 1103 /* As described in head_32.S, we map the first 128M of memory. */ 1093 1104 max_pfn_mapped = (128*1024*1024) >> PAGE_SHIFT; 1094 - 1095 - /* Load the %fs segment register (the per-cpu segment register) with 1096 - * the normal data segment to get through booting. */ 1097 - asm volatile ("mov %0, %%fs" : : "r" (__KERNEL_DS) : "memory"); 1098 1105 1099 1106 /* The Host<->Guest Switcher lives at the top of our address space, and 1100 1107 * the Host told us how big it is when we made LGUEST_INIT hypercall:
+4 -3
crypto/ahash.c
··· 82 82 if (err) 83 83 return err; 84 84 85 - walk->offset = 0; 86 - 87 - if (nbytes) 85 + if (nbytes) { 86 + walk->offset = 0; 87 + walk->pg++; 88 88 return hash_walk_next(walk); 89 + } 89 90 90 91 if (!walk->total) 91 92 return 0;
+6 -18
drivers/acpi/pci_bind.c
··· 116 116 struct acpi_pci_data *pdata; 117 117 struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; 118 118 acpi_handle handle; 119 - struct pci_dev *dev; 120 - struct pci_bus *bus; 121 - 122 119 123 120 if (!device || !device->parent) 124 121 return -EINVAL; ··· 173 176 * Locate matching device in PCI namespace. If it doesn't exist 174 177 * this typically means that the device isn't currently inserted 175 178 * (e.g. docking station, port replicator, etc.). 176 - * We cannot simply search the global pci device list, since 177 - * PCI devices are added to the global pci list when the root 178 - * bridge start ops are run, which may not have happened yet. 179 179 */ 180 - bus = pci_find_bus(data->id.segment, data->id.bus); 181 - if (bus) { 182 - list_for_each_entry(dev, &bus->devices, bus_list) { 183 - if (dev->devfn == PCI_DEVFN(data->id.device, 184 - data->id.function)) { 185 - data->dev = dev; 186 - break; 187 - } 188 - } 189 - } 180 + data->dev = pci_get_slot(pdata->bus, 181 + PCI_DEVFN(data->id.device, data->id.function)); 190 182 if (!data->dev) { 191 183 ACPI_DEBUG_PRINT((ACPI_DB_INFO, 192 184 "Device %04x:%02x:%02x.%d not present in PCI namespace\n", ··· 245 259 246 260 end: 247 261 kfree(buffer.pointer); 248 - if (result) 262 + if (result) { 263 + pci_dev_put(data->dev); 249 264 kfree(data); 250 - 265 + } 251 266 return result; 252 267 } 253 268 ··· 290 303 if (data->dev->subordinate) { 291 304 acpi_pci_irq_del_prt(data->id.segment, data->bus->number); 292 305 } 306 + pci_dev_put(data->dev); 293 307 kfree(data); 294 308 295 309 end:
+7 -1
drivers/acpi/processor_idle.c
··· 148 148 if (cpu_has(&cpu_data(pr->id), X86_FEATURE_ARAT)) 149 149 return; 150 150 151 + if (boot_cpu_has(X86_FEATURE_AMDC1E)) 152 + type = ACPI_STATE_C1; 153 + 151 154 /* 152 155 * Check, if one of the previous states already marked the lapic 153 156 * unstable ··· 614 611 switch (cx->type) { 615 612 case ACPI_STATE_C1: 616 613 cx->valid = 1; 614 + acpi_timer_check_state(i, pr, cx); 617 615 break; 618 616 619 617 case ACPI_STATE_C2: ··· 834 830 835 831 /* Do not access any ACPI IO ports in suspend path */ 836 832 if (acpi_idle_suspend) { 837 - acpi_safe_halt(); 838 833 local_irq_enable(); 834 + cpu_relax(); 839 835 return 0; 840 836 } 841 837 838 + acpi_state_timer_broadcast(pr, cx, 1); 842 839 kt1 = ktime_get_real(); 843 840 acpi_idle_do_entry(cx); 844 841 kt2 = ktime_get_real(); ··· 847 842 848 843 local_irq_enable(); 849 844 cx->usage++; 845 + acpi_state_timer_broadcast(pr, cx, 0); 850 846 851 847 return idle_time; 852 848 }
+9 -3
drivers/acpi/processor_perflib.c
··· 309 309 (u32) px->bus_master_latency, 310 310 (u32) px->control, (u32) px->status)); 311 311 312 - if (!px->core_frequency) { 313 - printk(KERN_ERR PREFIX 314 - "Invalid _PSS data: freq is zero\n"); 312 + /* 313 + * Check that ACPI's u64 MHz will be valid as u32 KHz in cpufreq 314 + */ 315 + if (!px->core_frequency || 316 + ((u32)(px->core_frequency * 1000) != 317 + (px->core_frequency * 1000))) { 318 + printk(KERN_ERR FW_BUG PREFIX 319 + "Invalid BIOS _PSS frequency: 0x%llx MHz\n", 320 + px->core_frequency); 315 321 result = -EFAULT; 316 322 kfree(pr->performance->states); 317 323 goto end;
+1 -1
drivers/acpi/processor_throttling.c
··· 840 840 state = acpi_get_throttling_state(pr, value); 841 841 if (state == -1) { 842 842 ACPI_WARNING((AE_INFO, 843 - "Invalid throttling state, reset\n")); 843 + "Invalid throttling state, reset")); 844 844 state = 0; 845 845 ret = acpi_processor_set_throttling(pr, state); 846 846 if (ret)
+17 -1
drivers/acpi/video.c
··· 570 570 DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5710Z"), 571 571 }, 572 572 }, 573 + { 574 + .callback = video_set_bqc_offset, 575 + .ident = "eMachines E510", 576 + .matches = { 577 + DMI_MATCH(DMI_BOARD_VENDOR, "EMACHINES"), 578 + DMI_MATCH(DMI_PRODUCT_NAME, "eMachines E510"), 579 + }, 580 + }, 581 + { 582 + .callback = video_set_bqc_offset, 583 + .ident = "Acer Aspire 5315", 584 + .matches = { 585 + DMI_MATCH(DMI_BOARD_VENDOR, "Acer"), 586 + DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5315"), 587 + }, 588 + }, 573 589 {} 574 590 }; 575 591 ··· 2350 2334 return acpi_video_register(); 2351 2335 } 2352 2336 2353 - void __exit acpi_video_exit(void) 2337 + void acpi_video_exit(void) 2354 2338 { 2355 2339 2356 2340 acpi_bus_unregister_driver(&acpi_video_bus);
+12 -1
drivers/ata/pata_netcell.c
··· 20 20 21 21 /* No PIO or DMA methods needed for this device */ 22 22 23 + static unsigned int netcell_read_id(struct ata_device *adev, 24 + struct ata_taskfile *tf, u16 *id) 25 + { 26 + unsigned int err_mask = ata_do_dev_read_id(adev, tf, id); 27 + /* Firmware forgets to mark words 85-87 valid */ 28 + if (err_mask == 0) 29 + id[ATA_ID_CSF_DEFAULT] |= 0x0400; 30 + return err_mask; 31 + } 32 + 23 33 static struct scsi_host_template netcell_sht = { 24 34 ATA_BMDMA_SHT(DRV_NAME), 25 35 }; 26 36 27 37 static struct ata_port_operations netcell_ops = { 28 38 .inherits = &ata_bmdma_port_ops, 29 - .cable_detect = ata_cable_80wire, 39 + .cable_detect = ata_cable_80wire, 40 + .read_id = netcell_read_id, 30 41 }; 31 42 32 43
+3
drivers/char/mem.c
··· 694 694 written += chunk - unwritten; 695 695 if (unwritten) 696 696 break; 697 + /* Consider changing this to just 'signal_pending()' with lots of testing */ 698 + if (fatal_signal_pending(current)) 699 + return written ? written : -EINTR; 697 700 buf += chunk; 698 701 count -= chunk; 699 702 cond_resched();
+47 -24
drivers/dma/fsldma.c
··· 179 179 static void set_ld_eol(struct fsl_dma_chan *fsl_chan, 180 180 struct fsl_desc_sw *desc) 181 181 { 182 + u64 snoop_bits; 183 + 184 + snoop_bits = ((fsl_chan->feature & FSL_DMA_IP_MASK) == FSL_DMA_IP_83XX) 185 + ? FSL_DMA_SNEN : 0; 186 + 182 187 desc->hw.next_ln_addr = CPU_TO_DMA(fsl_chan, 183 - DMA_TO_CPU(fsl_chan, desc->hw.next_ln_addr, 64) | FSL_DMA_EOL, 184 - 64); 188 + DMA_TO_CPU(fsl_chan, desc->hw.next_ln_addr, 64) | FSL_DMA_EOL 189 + | snoop_bits, 64); 185 190 } 186 191 187 192 static void append_ld_queue(struct fsl_dma_chan *fsl_chan, ··· 318 313 319 314 static dma_cookie_t fsl_dma_tx_submit(struct dma_async_tx_descriptor *tx) 320 315 { 321 - struct fsl_desc_sw *desc = tx_to_fsl_desc(tx); 322 316 struct fsl_dma_chan *fsl_chan = to_fsl_chan(tx->chan); 317 + struct fsl_desc_sw *desc; 323 318 unsigned long flags; 324 319 dma_cookie_t cookie; 325 320 ··· 327 322 spin_lock_irqsave(&fsl_chan->desc_lock, flags); 328 323 329 324 cookie = fsl_chan->common.cookie; 330 - cookie++; 331 - if (cookie < 0) 332 - cookie = 1; 333 - desc->async_tx.cookie = cookie; 334 - fsl_chan->common.cookie = desc->async_tx.cookie; 325 + list_for_each_entry(desc, &tx->tx_list, node) { 326 + cookie++; 327 + if (cookie < 0) 328 + cookie = 1; 335 329 336 - append_ld_queue(fsl_chan, desc); 337 - list_splice_init(&desc->async_tx.tx_list, fsl_chan->ld_queue.prev); 330 + desc->async_tx.cookie = cookie; 331 + } 332 + 333 + fsl_chan->common.cookie = cookie; 334 + append_ld_queue(fsl_chan, tx_to_fsl_desc(tx)); 335 + list_splice_init(&tx->tx_list, fsl_chan->ld_queue.prev); 338 336 339 337 spin_unlock_irqrestore(&fsl_chan->desc_lock, flags); 340 338 ··· 462 454 { 463 455 struct fsl_dma_chan *fsl_chan; 464 456 struct fsl_desc_sw *first = NULL, *prev = NULL, *new; 457 + struct list_head *list; 465 458 size_t copy; 466 - LIST_HEAD(link_chain); 467 459 468 460 if (!chan) 469 461 return NULL; ··· 480 472 if (!new) { 481 473 dev_err(fsl_chan->dev, 482 474 "No free memory for link descriptor\n"); 483 - return NULL; 475 + goto fail; 484 476 } 485 477 #ifdef FSL_DMA_LD_DEBUG 486 478 dev_dbg(fsl_chan->dev, "new link desc alloc %p\n", new); ··· 515 507 /* Set End-of-link to the last link descriptor of new list*/ 516 508 set_ld_eol(fsl_chan, new); 517 509 518 - return first ? &first->async_tx : NULL; 510 + return &first->async_tx; 511 + 512 + fail: 513 + if (!first) 514 + return NULL; 515 + 516 + list = &first->async_tx.tx_list; 517 + list_for_each_entry_safe_reverse(new, prev, list, node) { 518 + list_del(&new->node); 519 + dma_pool_free(fsl_chan->desc_pool, new, new->async_tx.phys); 520 + } 521 + 522 + return NULL; 519 523 } 520 524 521 525 /** ··· 618 598 dma_addr_t next_dest_addr; 619 599 unsigned long flags; 620 600 601 + spin_lock_irqsave(&fsl_chan->desc_lock, flags); 602 + 621 603 if (!dma_is_idle(fsl_chan)) 622 - return; 604 + goto out_unlock; 623 605 624 606 dma_halt(fsl_chan); 625 607 626 608 /* If there are some link descriptors 627 609 * not transfered in queue. We need to start it. 628 610 */ 629 - spin_lock_irqsave(&fsl_chan->desc_lock, flags); 630 611 631 612 /* Find the first un-transfer desciptor */ 632 613 for (ld_node = fsl_chan->ld_queue.next; ··· 638 617 fsl_chan->common.cookie) == DMA_SUCCESS); 639 618 ld_node = ld_node->next); 640 619 641 - spin_unlock_irqrestore(&fsl_chan->desc_lock, flags); 642 - 643 620 if (ld_node != &fsl_chan->ld_queue) { 644 621 /* Get the ld start address from ld_queue */ 645 622 next_dest_addr = to_fsl_desc(ld_node)->async_tx.phys; 646 - dev_dbg(fsl_chan->dev, "xfer LDs staring from %p\n", 647 - (void *)next_dest_addr); 623 + dev_dbg(fsl_chan->dev, "xfer LDs staring from 0x%llx\n", 624 + (unsigned long long)next_dest_addr); 648 625 set_cdar(fsl_chan, next_dest_addr); 649 626 dma_start(fsl_chan); 650 627 } else { 651 628 set_cdar(fsl_chan, 0); 652 629 set_ndar(fsl_chan, 0); 653 630 } 631 + 632 + out_unlock: 633 + spin_unlock_irqrestore(&fsl_chan->desc_lock, flags); 654 634 } 655 635 656 636 /** ··· 756 734 */ 757 735 if (stat & FSL_DMA_SR_EOSI) { 758 736 dev_dbg(fsl_chan->dev, "event: End-of-segments INT\n"); 759 - dev_dbg(fsl_chan->dev, "event: clndar %p, nlndar %p\n", 760 - (void *)get_cdar(fsl_chan), (void *)get_ndar(fsl_chan)); 737 + dev_dbg(fsl_chan->dev, "event: clndar 0x%llx, nlndar 0x%llx\n", 738 + (unsigned long long)get_cdar(fsl_chan), 739 + (unsigned long long)get_ndar(fsl_chan)); 761 740 stat &= ~FSL_DMA_SR_EOSI; 762 741 update_cookie = 1; 763 742 } ··· 853 830 new_fsl_chan->reg.end - new_fsl_chan->reg.start + 1); 854 831 855 832 new_fsl_chan->id = ((new_fsl_chan->reg.start - 0x100) & 0xfff) >> 7; 856 - if (new_fsl_chan->id > FSL_DMA_MAX_CHANS_PER_DEVICE) { 833 + if (new_fsl_chan->id >= FSL_DMA_MAX_CHANS_PER_DEVICE) { 857 834 dev_err(fdev->dev, "There is no %d channel!\n", 858 835 new_fsl_chan->id); 859 836 err = -EINVAL; ··· 948 925 } 949 926 950 927 dev_info(&dev->dev, "Probe the Freescale DMA driver for %s " 951 - "controller at %p...\n", 952 - match->compatible, (void *)fdev->reg.start); 928 + "controller at 0x%llx...\n", 929 + match->compatible, (unsigned long long)fdev->reg.start); 953 930 fdev->reg_base = ioremap(fdev->reg.start, fdev->reg.end 954 931 - fdev->reg.start + 1); 955 932
+1 -1
drivers/dma/ioat_dma.c
··· 173 173 xfercap = (xfercap_scale == 0 ? -1 : (1UL << xfercap_scale)); 174 174 175 175 #ifdef CONFIG_I7300_IDLE_IOAT_CHANNEL 176 - if (i7300_idle_platform_probe(NULL, NULL) == 0) { 176 + if (i7300_idle_platform_probe(NULL, NULL, 1) == 0) { 177 177 device->common.chancnt--; 178 178 } 179 179 #endif
+7 -7
drivers/gpu/drm/Kconfig
··· 67 67 will load the correct one. 68 68 69 69 config DRM_I915 70 + tristate "i915 driver" 70 71 select FB_CFB_FILLRECT 71 72 select FB_CFB_COPYAREA 72 73 select FB_CFB_IMAGEBLIT 73 74 select FB 74 75 select FRAMEBUFFER_CONSOLE if !EMBEDDED 75 - tristate "i915 driver" 76 + # i915 depends on ACPI_VIDEO when ACPI is enabled 77 + # but for select to work, need to select ACPI_VIDEO's dependencies, ick 78 + select VIDEO_OUTPUT_CONTROL if ACPI 79 + select BACKLIGHT_CLASS_DEVICE if ACPI 80 + select INPUT if ACPI 81 + select ACPI_VIDEO if ACPI 76 82 help 77 83 Choose this option if you have a system that has Intel 830M, 845G, 78 84 852GM, 855GM 865G or 915G integrated graphics. If M is selected, the ··· 90 84 config DRM_I915_KMS 91 85 bool "Enable modesetting on intel by default" 92 86 depends on DRM_I915 93 - # i915 KMS depends on ACPI_VIDEO when ACPI is enabled 94 - # but for select to work, need to select ACPI_VIDEO's dependencies, ick 95 - select VIDEO_OUTPUT_CONTROL if ACPI 96 - select BACKLIGHT_CLASS_DEVICE if ACPI 97 - select INPUT if ACPI 98 - select ACPI_VIDEO if ACPI 99 87 help 100 88 Choose this option if you want kernel modesetting enabled by default, 101 89 and you have a new enough userspace to support this. Running old
+2 -1
drivers/gpu/drm/drm_bufs.c
··· 371 371 list->user_token = list->hash.key << PAGE_SHIFT; 372 372 mutex_unlock(&dev->struct_mutex); 373 373 374 - list->master = dev->primary->master; 374 + if (!(map->flags & _DRM_DRIVER)) 375 + list->master = dev->primary->master; 375 376 *maplist = list; 376 377 return 0; 377 378 }
+6 -1
drivers/gpu/drm/drm_crtc.c
··· 2294 2294 } 2295 2295 } 2296 2296 2297 - if (connector->funcs->set_property) 2297 + /* Do DPMS ourselves */ 2298 + if (property == connector->dev->mode_config.dpms_property) { 2299 + if (connector->funcs->dpms) 2300 + (*connector->funcs->dpms)(connector, (int) out_resp->value); 2301 + ret = 0; 2302 + } else if (connector->funcs->set_property) 2298 2303 ret = connector->funcs->set_property(connector, property, out_resp->value); 2299 2304 2300 2305 /* store the property value if succesful */
+107 -2
drivers/gpu/drm/drm_crtc_helper.c
··· 199 199 } 200 200 201 201 /** 202 + * drm_helper_encoder_in_use - check if a given encoder is in use 203 + * @encoder: encoder to check 204 + * 205 + * LOCKING: 206 + * Caller must hold mode config lock. 207 + * 208 + * Walk @encoders's DRM device's mode_config and see if it's in use. 209 + * 210 + * RETURNS: 211 + * True if @encoder is part of the mode_config, false otherwise. 212 + */ 213 + bool drm_helper_encoder_in_use(struct drm_encoder *encoder) 214 + { 215 + struct drm_connector *connector; 216 + struct drm_device *dev = encoder->dev; 217 + list_for_each_entry(connector, &dev->mode_config.connector_list, head) 218 + if (connector->encoder == encoder) 219 + return true; 220 + return false; 221 + } 222 + EXPORT_SYMBOL(drm_helper_encoder_in_use); 223 + 224 + /** 202 225 * drm_helper_crtc_in_use - check if a given CRTC is in a mode_config 203 226 * @crtc: CRTC to check 204 227 * ··· 239 216 struct drm_device *dev = crtc->dev; 240 217 /* FIXME: Locking around list access? */ 241 218 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) 242 - if (encoder->crtc == crtc) 219 + if (encoder->crtc == crtc && drm_helper_encoder_in_use(encoder)) 243 220 return true; 244 221 return false; 245 222 } ··· 263 240 264 241 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { 265 242 encoder_funcs = encoder->helper_private; 266 - if (!encoder->crtc) 243 + if (!drm_helper_encoder_in_use(encoder)) 267 244 (*encoder_funcs->dpms)(encoder, DRM_MODE_DPMS_OFF); 268 245 } 269 246 ··· 957 934 return 0; 958 935 } 959 936 EXPORT_SYMBOL(drm_helper_initial_config); 937 + 938 + static int drm_helper_choose_encoder_dpms(struct drm_encoder *encoder) 939 + { 940 + int dpms = DRM_MODE_DPMS_OFF; 941 + struct drm_connector *connector; 942 + struct drm_device *dev = encoder->dev; 943 + 944 + list_for_each_entry(connector, &dev->mode_config.connector_list, head) 945 + if (connector->encoder == encoder) 946 + if (connector->dpms < dpms) 947 + dpms = connector->dpms; 948 + return dpms; 949 + } 950 + 951 + static int drm_helper_choose_crtc_dpms(struct drm_crtc *crtc) 952 + { 953 + int dpms = DRM_MODE_DPMS_OFF; 954 + struct drm_connector *connector; 955 + struct drm_device *dev = crtc->dev; 956 + 957 + list_for_each_entry(connector, &dev->mode_config.connector_list, head) 958 + if (connector->encoder && connector->encoder->crtc == crtc) 959 + if (connector->dpms < dpms) 960 + dpms = connector->dpms; 961 + return dpms; 962 + } 963 + 964 + /** 965 + * drm_helper_connector_dpms 966 + * @connector affected connector 967 + * @mode DPMS mode 968 + * 969 + * Calls the low-level connector DPMS function, then 970 + * calls appropriate encoder and crtc DPMS functions as well 971 + */ 972 + void drm_helper_connector_dpms(struct drm_connector *connector, int mode) 973 + { 974 + struct drm_encoder *encoder = connector->encoder; 975 + struct drm_crtc *crtc = encoder ? encoder->crtc : NULL; 976 + int old_dpms; 977 + 978 + if (mode == connector->dpms) 979 + return; 980 + 981 + old_dpms = connector->dpms; 982 + connector->dpms = mode; 983 + 984 + /* from off to on, do crtc then encoder */ 985 + if (mode < old_dpms) { 986 + if (crtc) { 987 + struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private; 988 + if (crtc_funcs->dpms) 989 + (*crtc_funcs->dpms) (crtc, 990 + drm_helper_choose_crtc_dpms(crtc)); 991 + } 992 + if (encoder) { 993 + struct drm_encoder_helper_funcs *encoder_funcs = encoder->helper_private; 994 + if (encoder_funcs->dpms) 995 + (*encoder_funcs->dpms) (encoder, 996 + drm_helper_choose_encoder_dpms(encoder)); 997 + } 998 + } 999 + 1000 + /* from on to off, do encoder then crtc */ 1001 + if (mode > old_dpms) { 1002 + if (encoder) { 1003 + struct drm_encoder_helper_funcs *encoder_funcs = encoder->helper_private; 1004 + if (encoder_funcs->dpms) 1005 + (*encoder_funcs->dpms) (encoder, 1006 + drm_helper_choose_encoder_dpms(encoder)); 1007 + } 1008 + if (crtc) { 1009 + struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private; 1010 + if (crtc_funcs->dpms) 1011 + (*crtc_funcs->dpms) (crtc, 1012 + drm_helper_choose_crtc_dpms(crtc)); 1013 + } 1014 + } 1015 + 1016 + return; 1017 + } 1018 + EXPORT_SYMBOL(drm_helper_connector_dpms); 960 1019 961 1020 /** 962 1021 * drm_hotplug_stage_two
+5
drivers/gpu/drm/drm_edid.c
··· 289 289 struct drm_display_mode *mode; 290 290 struct detailed_pixel_timing *pt = &timing->data.pixel_data; 291 291 292 + /* ignore tiny modes */ 293 + if (((pt->hactive_hi << 8) | pt->hactive_lo) < 64 || 294 + ((pt->vactive_hi << 8) | pt->hactive_lo) < 64) 295 + return NULL; 296 + 292 297 if (pt->stereo) { 293 298 printk(KERN_WARNING "stereo mode not supported\n"); 294 299 return NULL;
+7 -1
drivers/gpu/drm/drm_irq.c
··· 196 196 { 197 197 int ret = 0; 198 198 unsigned long sh_flags = 0; 199 + char *irqname; 199 200 200 201 if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) 201 202 return -EINVAL; ··· 228 227 if (drm_core_check_feature(dev, DRIVER_IRQ_SHARED)) 229 228 sh_flags = IRQF_SHARED; 230 229 230 + if (dev->devname) 231 + irqname = dev->devname; 232 + else 233 + irqname = dev->driver->name; 234 + 231 235 ret = request_irq(drm_dev_to_irq(dev), dev->driver->irq_handler, 232 - sh_flags, dev->devname, dev); 236 + sh_flags, irqname, dev); 233 237 234 238 if (ret < 0) { 235 239 mutex_lock(&dev->struct_mutex);
+4 -3
drivers/gpu/drm/drm_sysfs.c
··· 147 147 enum drm_connector_status status; 148 148 149 149 status = connector->funcs->detect(connector); 150 - return snprintf(buf, PAGE_SIZE, "%s", 150 + return snprintf(buf, PAGE_SIZE, "%s\n", 151 151 drm_get_connector_status_name(status)); 152 152 } 153 153 ··· 166 166 if (ret) 167 167 return 0; 168 168 169 - return snprintf(buf, PAGE_SIZE, "%s", 169 + return snprintf(buf, PAGE_SIZE, "%s\n", 170 170 drm_get_dpms_name((int)dpms_status)); 171 171 } 172 172 ··· 176 176 { 177 177 struct drm_connector *connector = to_drm_connector(device); 178 178 179 - return snprintf(buf, PAGE_SIZE, connector->encoder ? "enabled" : 179 + return snprintf(buf, PAGE_SIZE, "%s\n", connector->encoder ? "enabled" : 180 180 "disabled"); 181 181 } 182 182 ··· 317 317 318 318 static struct bin_attribute edid_attr = { 319 319 .attr.name = "edid", 320 + .attr.mode = 0444, 320 321 .size = 128, 321 322 .read = edid_show, 322 323 };
+2 -10
drivers/gpu/drm/i915/i915_dma.c
··· 987 987 int fb_bar = IS_I9XX(dev) ? 2 : 0; 988 988 int ret = 0; 989 989 990 - dev->devname = kstrdup(DRIVER_NAME, GFP_KERNEL); 991 - if (!dev->devname) { 992 - ret = -ENOMEM; 993 - goto out; 994 - } 995 - 996 990 dev->mode_config.fb_base = drm_get_resource_start(dev, fb_bar) & 997 991 0xff000000; 998 992 ··· 1000 1006 1001 1007 ret = i915_probe_agp(dev, &agp_size, &prealloc_size); 1002 1008 if (ret) 1003 - goto kfree_devname; 1009 + goto out; 1004 1010 1005 1011 /* Basic memrange allocator for stolen space (aka vram) */ 1006 1012 drm_mm_init(&dev_priv->vram, 0, prealloc_size); ··· 1018 1024 1019 1025 ret = i915_gem_init_ringbuffer(dev); 1020 1026 if (ret) 1021 - goto kfree_devname; 1027 + goto out; 1022 1028 1023 1029 /* Allow hardware batchbuffers unless told otherwise. 1024 1030 */ ··· 1050 1056 1051 1057 destroy_ringbuffer: 1052 1058 i915_gem_cleanup_ringbuffer(dev); 1053 - kfree_devname: 1054 - kfree(dev->devname); 1055 1059 out: 1056 1060 return ret; 1057 1061 }
-3
drivers/gpu/drm/i915/i915_gem.c
··· 2260 2260 goto try_again; 2261 2261 } 2262 2262 2263 - BUG_ON(old_obj_priv->active || 2264 - (reg->obj->write_domain & I915_GEM_GPU_DOMAINS)); 2265 - 2266 2263 /* 2267 2264 * Zap this virtual mapping so we can set up a fence again 2268 2265 * for this object next time we need it.
+1 -5
drivers/gpu/drm/i915/intel_crt.c
··· 381 381 struct drm_property *property, 382 382 uint64_t value) 383 383 { 384 - struct drm_device *dev = connector->dev; 385 - 386 - if (property == dev->mode_config.dpms_property && connector->encoder) 387 - intel_crt_dpms(connector->encoder, (uint32_t)(value & 0xf)); 388 - 389 384 return 0; 390 385 } 391 386 ··· 397 402 }; 398 403 399 404 static const struct drm_connector_funcs intel_crt_connector_funcs = { 405 + .dpms = drm_helper_connector_dpms, 400 406 .detect = intel_crt_detect, 401 407 .fill_modes = drm_helper_probe_single_connector_modes, 402 408 .destroy = intel_crt_destroy,
+1
drivers/gpu/drm/i915/intel_dvo.c
··· 316 316 }; 317 317 318 318 static const struct drm_connector_funcs intel_dvo_connector_funcs = { 319 + .dpms = drm_helper_connector_dpms, 319 320 .save = intel_dvo_save, 320 321 .restore = intel_dvo_restore, 321 322 .detect = intel_dvo_detect,
+1
drivers/gpu/drm/i915/intel_hdmi.c
··· 219 219 }; 220 220 221 221 static const struct drm_connector_funcs intel_hdmi_connector_funcs = { 222 + .dpms = drm_helper_connector_dpms, 222 223 .save = intel_hdmi_save, 223 224 .restore = intel_hdmi_restore, 224 225 .detect = intel_hdmi_detect,
+2 -6
drivers/gpu/drm/i915/intel_lvds.c
··· 343 343 struct drm_property *property, 344 344 uint64_t value) 345 345 { 346 - struct drm_device *dev = connector->dev; 347 - 348 - if (property == dev->mode_config.dpms_property && connector->encoder) 349 - intel_lvds_dpms(connector->encoder, (uint32_t)(value & 0xf)); 350 - 351 346 return 0; 352 347 } 353 348 ··· 361 366 }; 362 367 363 368 static const struct drm_connector_funcs intel_lvds_connector_funcs = { 369 + .dpms = drm_helper_connector_dpms, 364 370 .save = intel_lvds_save, 365 371 .restore = intel_lvds_restore, 366 372 .detect = intel_lvds_detect, ··· 387 391 } 388 392 389 393 /* These systems claim to have LVDS, but really don't */ 390 - static const struct dmi_system_id __initdata intel_no_lvds[] = { 394 + static const struct dmi_system_id intel_no_lvds[] = { 391 395 { 392 396 .callback = intel_no_lvds_dmi_callback, 393 397 .ident = "Apple Mac Mini (Core series)",
+1
drivers/gpu/drm/i915/intel_sdvo.c
··· 1616 1616 }; 1617 1617 1618 1618 static const struct drm_connector_funcs intel_sdvo_connector_funcs = { 1619 + .dpms = drm_helper_connector_dpms, 1619 1620 .save = intel_sdvo_save, 1620 1621 .restore = intel_sdvo_restore, 1621 1622 .detect = intel_sdvo_detect,
+1
drivers/gpu/drm/i915/intel_tv.c
··· 1626 1626 }; 1627 1627 1628 1628 static const struct drm_connector_funcs intel_tv_connector_funcs = { 1629 + .dpms = drm_helper_connector_dpms, 1629 1630 .save = intel_tv_save, 1630 1631 .restore = intel_tv_restore, 1631 1632 .detect = intel_tv_detect,
+2 -2
drivers/gpu/drm/radeon/radeon_cp.c
··· 2185 2185 2186 2186 /* check if the ring is padded out to 16-dword alignment */ 2187 2187 2188 - tail_aligned = dev_priv->ring.tail & 0xf; 2188 + tail_aligned = dev_priv->ring.tail & (RADEON_RING_ALIGN-1); 2189 2189 if (tail_aligned) { 2190 - int num_p2 = 16 - tail_aligned; 2190 + int num_p2 = RADEON_RING_ALIGN - tail_aligned; 2191 2191 2192 2192 ring = dev_priv->ring.start; 2193 2193 /* pad with some CP_PACKET2 */
+4 -1
drivers/gpu/drm/radeon/radeon_drv.h
··· 1964 1964 1965 1965 #define RING_LOCALS int write, _nr, _align_nr; unsigned int mask; u32 *ring; 1966 1966 1967 + #define RADEON_RING_ALIGN 16 1968 + 1967 1969 #define BEGIN_RING( n ) do { \ 1968 1970 if ( RADEON_VERBOSE ) { \ 1969 1971 DRM_INFO( "BEGIN_RING( %d )\n", (n)); \ 1970 1972 } \ 1971 - _align_nr = (n + 0xf) & ~0xf; \ 1973 + _align_nr = RADEON_RING_ALIGN - ((dev_priv->ring.tail + n) & (RADEON_RING_ALIGN-1)); \ 1974 + _align_nr += n; \ 1972 1975 if (dev_priv->ring.space <= (_align_nr * sizeof(u32))) { \ 1973 1976 COMMIT_RING(); \ 1974 1977 radeon_wait_ring( dev_priv, _align_nr * sizeof(u32)); \
+1 -1
drivers/hwmon/lm78.c
··· 182 182 .name = "lm78", 183 183 }, 184 184 .probe = lm78_isa_probe, 185 - .remove = lm78_isa_remove, 185 + .remove = __devexit_p(lm78_isa_remove), 186 186 }; 187 187 188 188
+11
drivers/ide/ide-pci-generic.c
··· 33 33 module_param_named(all_generic_ide, ide_generic_all, bool, 0444); 34 34 MODULE_PARM_DESC(all_generic_ide, "IDE generic will claim all unknown PCI IDE storage controllers."); 35 35 36 + static void netcell_quirkproc(ide_drive_t *drive) 37 + { 38 + /* mark words 85-87 as valid */ 39 + drive->id[ATA_ID_CSF_DEFAULT] |= 0x4000; 40 + } 41 + 42 + static const struct ide_port_ops netcell_port_ops = { 43 + .quirkproc = netcell_quirkproc, 44 + }; 45 + 36 46 #define DECLARE_GENERIC_PCI_DEV(extra_flags) \ 37 47 { \ 38 48 .name = DRV_NAME, \ ··· 84 74 85 75 { /* 6: Revolution */ 86 76 .name = DRV_NAME, 77 + .port_ops = &netcell_port_ops, 87 78 .host_flags = IDE_HFLAG_CLEAR_SIMPLEX | 88 79 IDE_HFLAG_TRUST_BIOS_FOR_DMA | 89 80 IDE_HFLAG_OFF_BOARD,
+5 -1
drivers/idle/i7300_idle.c
··· 41 41 module_param_named(debug, debug, uint, 0644); 42 42 MODULE_PARM_DESC(debug, "Enable debug printks in this driver"); 43 43 44 + static int forceload; 45 + module_param_named(forceload, forceload, uint, 0644); 46 + MODULE_PARM_DESC(debug, "Enable driver testing on unvalidated i5000"); 47 + 44 48 #define dprintk(fmt, arg...) \ 45 49 do { if (debug) printk(KERN_INFO I7300_PRINT fmt, ##arg); } while (0) 46 50 ··· 556 552 cpus_clear(idle_cpumask); 557 553 total_us = 0; 558 554 559 - if (i7300_idle_platform_probe(&fbd_dev, &ioat_dev)) 555 + if (i7300_idle_platform_probe(&fbd_dev, &ioat_dev, forceload)) 560 556 return -ENODEV; 561 557 562 558 if (i7300_idle_thrt_save())
+4
drivers/net/3c509.c
··· 480 480 481 481 #ifdef CONFIG_EISA 482 482 static struct eisa_device_id el3_eisa_ids[] = { 483 + { "TCM5090" }, 484 + { "TCM5091" }, 483 485 { "TCM5092" }, 484 486 { "TCM5093" }, 487 + { "TCM5094" }, 485 488 { "TCM5095" }, 489 + { "TCM5098" }, 486 490 { "" } 487 491 }; 488 492 MODULE_DEVICE_TABLE(eisa, el3_eisa_ids);
+1
drivers/net/atl1e/atl1e_main.c
··· 37 37 */ 38 38 static struct pci_device_id atl1e_pci_tbl[] = { 39 39 {PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, PCI_DEVICE_ID_ATTANSIC_L1E)}, 40 + {PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, 0x1066)}, 40 41 /* required last entry */ 41 42 { 0 } 42 43 };
+6
drivers/net/atlx/atl1.c
··· 82 82 83 83 #include "atl1.h" 84 84 85 + #define ATLX_DRIVER_VERSION "2.1.3" 86 + MODULE_AUTHOR("Xiong Huang <xiong.huang@atheros.com>, \ 87 + Chris Snook <csnook@redhat.com>, Jay Cliburn <jcliburn@gmail.com>"); 88 + MODULE_LICENSE("GPL"); 89 + MODULE_VERSION(ATLX_DRIVER_VERSION); 90 + 85 91 /* Temporary hack for merging atl1 and atl2 */ 86 92 #include "atlx.c" 87 93
-6
drivers/net/atlx/atlx.h
··· 29 29 #include <linux/module.h> 30 30 #include <linux/types.h> 31 31 32 - #define ATLX_DRIVER_VERSION "2.1.3" 33 - MODULE_AUTHOR("Xiong Huang <xiong.huang@atheros.com>, \ 34 - Chris Snook <csnook@redhat.com>, Jay Cliburn <jcliburn@gmail.com>"); 35 - MODULE_LICENSE("GPL"); 36 - MODULE_VERSION(ATLX_DRIVER_VERSION); 37 - 38 32 #define ATLX_ERR_PHY 2 39 33 #define ATLX_ERR_PHY_SPEED 7 40 34 #define ATLX_ERR_PHY_RES 8
+14 -15
drivers/net/bfin_mac.c
··· 979 979 return 0; 980 980 } 981 981 982 - static const struct net_device_ops bfin_mac_netdev_ops = { 983 - .ndo_open = bfin_mac_open, 984 - .ndo_stop = bfin_mac_close, 985 - .ndo_start_xmit = bfin_mac_hard_start_xmit, 986 - .ndo_set_mac_address = bfin_mac_set_mac_address, 987 - .ndo_tx_timeout = bfin_mac_timeout, 988 - .ndo_set_multicast_list = bfin_mac_set_multicast_list, 989 - .ndo_validate_addr = eth_validate_addr, 990 - .ndo_change_mtu = eth_change_mtu, 991 - #ifdef CONFIG_NET_POLL_CONTROLLER 992 - .ndo_poll_controller = bfin_mac_poll, 993 - #endif 994 - }; 995 - 996 982 /* 997 - * 998 983 * this makes the board clean up everything that it can 999 984 * and not talk to the outside world. Caused by 1000 985 * an 'ifconfig ethX down' ··· 1003 1018 1004 1019 return 0; 1005 1020 } 1021 + 1022 + static const struct net_device_ops bfin_mac_netdev_ops = { 1023 + .ndo_open = bfin_mac_open, 1024 + .ndo_stop = bfin_mac_close, 1025 + .ndo_start_xmit = bfin_mac_hard_start_xmit, 1026 + .ndo_set_mac_address = bfin_mac_set_mac_address, 1027 + .ndo_tx_timeout = bfin_mac_timeout, 1028 + .ndo_set_multicast_list = bfin_mac_set_multicast_list, 1029 + .ndo_validate_addr = eth_validate_addr, 1030 + .ndo_change_mtu = eth_change_mtu, 1031 + #ifdef CONFIG_NET_POLL_CONTROLLER 1032 + .ndo_poll_controller = bfin_mac_poll, 1033 + #endif 1034 + }; 1006 1035 1007 1036 static int __devinit bfin_mac_probe(struct platform_device *pdev) 1008 1037 {
+2 -2
drivers/net/cxgb3/adapter.h
··· 85 85 struct page *page; 86 86 void *va; 87 87 unsigned int offset; 88 - u64 *p_cnt; 89 - DECLARE_PCI_UNMAP_ADDR(mapping); 88 + unsigned long *p_cnt; 89 + dma_addr_t mapping; 90 90 }; 91 91 92 92 struct rx_desc;
+5 -3
drivers/net/cxgb3/cxgb3_main.c
··· 2496 2496 for_each_port(adapter, i) { 2497 2497 struct net_device *dev = adapter->port[i]; 2498 2498 struct port_info *p = netdev_priv(dev); 2499 + int link_fault; 2499 2500 2500 2501 spin_lock_irq(&adapter->work_lock); 2501 - if (p->link_fault) { 2502 + link_fault = p->link_fault; 2503 + spin_unlock_irq(&adapter->work_lock); 2504 + 2505 + if (link_fault) { 2502 2506 t3_link_fault(adapter, i); 2503 - spin_unlock_irq(&adapter->work_lock); 2504 2507 continue; 2505 2508 } 2506 - spin_unlock_irq(&adapter->work_lock); 2507 2509 2508 2510 if (!(p->phy.caps & SUPPORTED_IRQ) && netif_running(dev)) { 2509 2511 t3_xgm_intr_disable(adapter, i);
+5 -6
drivers/net/cxgb3/sge.c
··· 355 355 (*d->pg_chunk.p_cnt)--; 356 356 if (!*d->pg_chunk.p_cnt) 357 357 pci_unmap_page(pdev, 358 - pci_unmap_addr(&d->pg_chunk, mapping), 358 + d->pg_chunk.mapping, 359 359 q->alloc_size, PCI_DMA_FROMDEVICE); 360 360 361 361 put_page(d->pg_chunk.page); ··· 454 454 q->pg_chunk.offset = 0; 455 455 mapping = pci_map_page(adapter->pdev, q->pg_chunk.page, 456 456 0, q->alloc_size, PCI_DMA_FROMDEVICE); 457 - pci_unmap_addr_set(&q->pg_chunk, mapping, mapping); 457 + q->pg_chunk.mapping = mapping; 458 458 } 459 459 sd->pg_chunk = q->pg_chunk; 460 460 ··· 511 511 nomem: q->alloc_failed++; 512 512 break; 513 513 } 514 - mapping = pci_unmap_addr(&sd->pg_chunk, mapping) + 515 - sd->pg_chunk.offset; 514 + mapping = sd->pg_chunk.mapping + sd->pg_chunk.offset; 516 515 pci_unmap_addr_set(sd, dma_addr, mapping); 517 516 518 517 add_one_rx_chunk(mapping, d, q->gen); ··· 880 881 (*sd->pg_chunk.p_cnt)--; 881 882 if (!*sd->pg_chunk.p_cnt) 882 883 pci_unmap_page(adap->pdev, 883 - pci_unmap_addr(&sd->pg_chunk, mapping), 884 + sd->pg_chunk.mapping, 884 885 fl->alloc_size, 885 886 PCI_DMA_FROMDEVICE); 886 887 if (!skb) { ··· 2095 2096 (*sd->pg_chunk.p_cnt)--; 2096 2097 if (!*sd->pg_chunk.p_cnt) 2097 2098 pci_unmap_page(adap->pdev, 2098 - pci_unmap_addr(&sd->pg_chunk, mapping), 2099 + sd->pg_chunk.mapping, 2099 2100 fl->alloc_size, 2100 2101 PCI_DMA_FROMDEVICE); 2101 2102
+5
drivers/net/cxgb3/t3_hw.c
··· 1274 1274 A_XGM_INT_STATUS + mac->offset); 1275 1275 link_fault &= F_LINKFAULTCHANGE; 1276 1276 1277 + link_ok = lc->link_ok; 1278 + speed = lc->speed; 1279 + duplex = lc->duplex; 1280 + fc = lc->fc; 1281 + 1277 1282 phy->ops->get_link_status(phy, &link_ok, &speed, &duplex, &fc); 1278 1283 1279 1284 if (link_fault) {
+3 -2
drivers/net/e1000/e1000_main.c
··· 4027 4027 PCI_DMA_FROMDEVICE); 4028 4028 4029 4029 length = le16_to_cpu(rx_desc->length); 4030 - 4031 - if (unlikely(!(status & E1000_RXD_STAT_EOP))) { 4030 + /* !EOP means multiple descriptors were used to store a single 4031 + * packet, also make sure the frame isn't just CRC only */ 4032 + if (unlikely(!(status & E1000_RXD_STAT_EOP) || (length <= 4))) { 4032 4033 /* All receives must fit into a single buffer */ 4033 4034 E1000_DBG("%s: Receive packet consumed multiple" 4034 4035 " buffers\n", netdev->name);
+13 -2
drivers/net/forcedeth.c
··· 897 897 }; 898 898 static int phy_cross = NV_CROSSOVER_DETECTION_DISABLED; 899 899 900 + /* 901 + * Power down phy when interface is down (persists through reboot; 902 + * older Linux and other OSes may not power it up again) 903 + */ 904 + static int phy_power_down = 0; 905 + 900 906 static inline struct fe_priv *get_nvpriv(struct net_device *dev) 901 907 { 902 908 return netdev_priv(dev); ··· 1491 1485 1492 1486 /* restart auto negotiation, power down phy */ 1493 1487 mii_control = mii_rw(dev, np->phyaddr, MII_BMCR, MII_READ); 1494 - mii_control |= (BMCR_ANRESTART | BMCR_ANENABLE | BMCR_PDOWN); 1488 + mii_control |= (BMCR_ANRESTART | BMCR_ANENABLE); 1489 + if (phy_power_down) { 1490 + mii_control |= BMCR_PDOWN; 1491 + } 1495 1492 if (mii_rw(dev, np->phyaddr, MII_BMCR, mii_control)) { 1496 1493 return PHY_ERROR; 1497 1494 } ··· 5522 5513 5523 5514 nv_drain_rxtx(dev); 5524 5515 5525 - if (np->wolenabled) { 5516 + if (np->wolenabled || !phy_power_down) { 5526 5517 writel(NVREG_PFF_ALWAYS|NVREG_PFF_MYADDR, base + NvRegPacketFilterFlags); 5527 5518 nv_start_rx(dev); 5528 5519 } else { ··· 6376 6367 MODULE_PARM_DESC(dma_64bit, "High DMA is enabled by setting to 1 and disabled by setting to 0."); 6377 6368 module_param(phy_cross, int, 0); 6378 6369 MODULE_PARM_DESC(phy_cross, "Phy crossover detection for Realtek 8201 phy is enabled by setting to 1 and disabled by setting to 0."); 6370 + module_param(phy_power_down, int, 0); 6371 + MODULE_PARM_DESC(phy_power_down, "Power down phy and disable link when interface is down (1), or leave phy powered up (0)."); 6379 6372 6380 6373 MODULE_AUTHOR("Manfred Spraul <manfred@colorfullife.com>"); 6381 6374 MODULE_DESCRIPTION("Reverse Engineered nForce ethernet driver");
+1 -1
drivers/net/gianfar.h
··· 259 259 (IEVENT_RXC | IEVENT_BSY | IEVENT_EBERR | IEVENT_MSRO | \ 260 260 IEVENT_BABT | IEVENT_TXC | IEVENT_TXE | IEVENT_LC \ 261 261 | IEVENT_CRL | IEVENT_XFUN | IEVENT_DPE | IEVENT_PERR \ 262 - | IEVENT_MAG) 262 + | IEVENT_MAG | IEVENT_BABR) 263 263 264 264 #define IMASK_INIT_CLEAR 0x00000000 265 265 #define IMASK_BABR 0x80000000
+1 -1
drivers/net/mac8390.c
··· 489 489 .ndo_set_mac_address = eth_mac_addr, 490 490 .ndo_change_mtu = eth_change_mtu, 491 491 #ifdef CONFIG_NET_POLL_CONTROLLER 492 - .ndo_poll_controller = ei_poll, 492 + .ndo_poll_controller = __ei_poll, 493 493 #endif 494 494 }; 495 495
+4 -4
drivers/net/mlx4/en_tx.c
··· 426 426 427 427 INC_PERF_COUNTER(priv->pstats.tx_poll); 428 428 429 - if (!spin_trylock(&ring->comp_lock)) { 429 + if (!spin_trylock_irq(&ring->comp_lock)) { 430 430 mod_timer(&cq->timer, jiffies + MLX4_EN_TX_POLL_TIMEOUT); 431 431 return; 432 432 } ··· 439 439 if (inflight && priv->port_up) 440 440 mod_timer(&cq->timer, jiffies + MLX4_EN_TX_POLL_TIMEOUT); 441 441 442 - spin_unlock(&ring->comp_lock); 442 + spin_unlock_irq(&ring->comp_lock); 443 443 } 444 444 445 445 static struct mlx4_en_tx_desc *mlx4_en_bounce_to_desc(struct mlx4_en_priv *priv, ··· 482 482 483 483 /* Poll the CQ every mlx4_en_TX_MODER_POLL packets */ 484 484 if ((++ring->poll_cnt & (MLX4_EN_TX_POLL_MODER - 1)) == 0) 485 - if (spin_trylock(&ring->comp_lock)) { 485 + if (spin_trylock_irq(&ring->comp_lock)) { 486 486 mlx4_en_process_tx_cq(priv->dev, cq); 487 - spin_unlock(&ring->comp_lock); 487 + spin_unlock_irq(&ring->comp_lock); 488 488 } 489 489 } 490 490
+1
drivers/net/wireless/Kconfig
··· 430 430 ASUS P5B Deluxe 431 431 Toshiba Satellite Pro series of laptops 432 432 Asus Wireless Link 433 + Linksys WUSB54GC-EU 433 434 434 435 Thanks to Realtek for their support! 435 436
+6 -6
drivers/net/wireless/at76c50x-usb.c
··· 1873 1873 if (ret != CMD_STATUS_COMPLETE) { 1874 1874 queue_delayed_work(priv->hw->workqueue, &priv->dwork_hw_scan, 1875 1875 SCAN_POLL_INTERVAL); 1876 - goto exit; 1876 + mutex_unlock(&priv->mtx); 1877 + return; 1877 1878 } 1878 - 1879 - ieee80211_scan_completed(priv->hw, false); 1880 1879 1881 1880 if (is_valid_ether_addr(priv->bssid)) 1882 1881 at76_join(priv); 1883 1882 1884 - ieee80211_wake_queues(priv->hw); 1885 - 1886 - exit: 1887 1883 mutex_unlock(&priv->mtx); 1884 + 1885 + ieee80211_scan_completed(priv->hw, false); 1886 + 1887 + ieee80211_wake_queues(priv->hw); 1888 1888 } 1889 1889 1890 1890 static int at76_hw_scan(struct ieee80211_hw *hw,
+2
drivers/net/wireless/rtl818x/rtl8187_dev.c
··· 71 71 {USB_DEVICE(0x18E8, 0x6232), .driver_info = DEVICE_RTL8187}, 72 72 /* AirLive */ 73 73 {USB_DEVICE(0x1b75, 0x8187), .driver_info = DEVICE_RTL8187}, 74 + /* Linksys */ 75 + {USB_DEVICE(0x1737, 0x0073), .driver_info = DEVICE_RTL8187B}, 74 76 {} 75 77 }; 76 78
+10 -3
drivers/parport/share.c
··· 614 614 * pardevice fields. -arca 615 615 */ 616 616 port->ops->init_state(tmp, tmp->state); 617 - parport_device_proc_register(tmp); 617 + if (!test_and_set_bit(PARPORT_DEVPROC_REGISTERED, &port->devflags)) { 618 + port->proc_device = tmp; 619 + parport_device_proc_register(tmp); 620 + } 618 621 return tmp; 619 622 620 623 out_free_all: ··· 649 646 } 650 647 #endif 651 648 652 - parport_device_proc_unregister(dev); 653 - 654 649 port = dev->port->physport; 650 + 651 + if (port->proc_device == dev) { 652 + port->proc_device = NULL; 653 + clear_bit(PARPORT_DEVPROC_REGISTERED, &port->devflags); 654 + parport_device_proc_unregister(dev); 655 + } 655 656 656 657 if (port->cad == dev) { 657 658 printk(KERN_DEBUG "%s: %s forgot to release port\n",
-1
drivers/pci/hotplug/acpiphp.h
··· 129 129 struct acpiphp_bridge *bridge; /* Ejectable PCI-to-PCI bridge */ 130 130 131 131 struct list_head sibling; 132 - struct pci_dev *pci_dev; 133 132 struct notifier_block nb; 134 133 acpi_handle handle; 135 134
+26 -37
drivers/pci/hotplug/acpiphp_glue.c
··· 32 32 33 33 /* 34 34 * Lifetime rules for pci_dev: 35 - * - The one in acpiphp_func has its refcount elevated by pci_get_slot() 36 - * when the driver is loaded or when an insertion event occurs. It loses 37 - * a refcount when its ejected or the driver unloads. 38 35 * - The one in acpiphp_bridge has its refcount elevated by pci_get_slot() 39 36 * when the bridge is scanned and it loses a refcount when the bridge 40 37 * is removed. ··· 127 130 unsigned long long adr, sun; 128 131 int device, function, retval; 129 132 struct pci_bus *pbus = bridge->pci_bus; 133 + struct pci_dev *pdev; 130 134 131 135 if (!acpi_pci_check_ejectable(pbus, handle) && !is_dock_device(handle)) 132 136 return AE_OK; ··· 211 213 newfunc->slot = slot; 212 214 list_add_tail(&newfunc->sibling, &slot->funcs); 213 215 214 - /* associate corresponding pci_dev */ 215 - newfunc->pci_dev = pci_get_slot(pbus, PCI_DEVFN(device, function)); 216 - if (newfunc->pci_dev) { 216 + pdev = pci_get_slot(pbus, PCI_DEVFN(device, function)); 217 + if (pdev) { 217 218 slot->flags |= (SLOT_ENABLED | SLOT_POWEREDON); 219 + pci_dev_put(pdev); 218 220 } 219 221 220 222 if (is_dock_device(handle)) { ··· 615 617 if (ACPI_FAILURE(status)) 616 618 err("failed to remove notify handler\n"); 617 619 } 618 - pci_dev_put(func->pci_dev); 619 620 list_del(list); 620 621 kfree(func); 621 622 } ··· 1098 1101 pci_enable_bridges(bus); 1099 1102 pci_bus_add_devices(bus); 1100 1103 1101 - /* associate pci_dev to our representation */ 1102 1104 list_for_each (l, &slot->funcs) { 1103 1105 func = list_entry(l, struct acpiphp_func, sibling); 1104 - func->pci_dev = pci_get_slot(bus, PCI_DEVFN(slot->device, 1105 - func->function)); 1106 - if (!func->pci_dev) 1106 + dev = pci_get_slot(bus, PCI_DEVFN(slot->device, 1107 + func->function)); 1108 + if (!dev) 1107 1109 continue; 1108 1110 1109 - if (func->pci_dev->hdr_type != PCI_HEADER_TYPE_BRIDGE && 1110 - func->pci_dev->hdr_type != PCI_HEADER_TYPE_CARDBUS) 1111 + if (dev->hdr_type != PCI_HEADER_TYPE_BRIDGE && 1112 + dev->hdr_type != PCI_HEADER_TYPE_CARDBUS) { 1113 + pci_dev_put(dev); 1111 1114 continue; 1115 + } 1112 1116 1113 1117 status = find_p2p_bridge(func->handle, (u32)1, bus, NULL); 1114 1118 if (ACPI_FAILURE(status)) 1115 1119 warn("find_p2p_bridge failed (error code = 0x%x)\n", 1116 1120 status); 1121 + pci_dev_put(dev); 1117 1122 } 1118 1123 1119 1124 slot->flags |= SLOT_ENABLED; ··· 1141 1142 */ 1142 1143 static int disable_device(struct acpiphp_slot *slot) 1143 1144 { 1144 - int retval = 0; 1145 1145 struct acpiphp_func *func; 1146 - struct list_head *l; 1146 + struct pci_dev *pdev; 1147 1147 1148 1148 /* is this slot already disabled? */ 1149 1149 if (!(slot->flags & SLOT_ENABLED)) 1150 1150 goto err_exit; 1151 1151 1152 - list_for_each (l, &slot->funcs) { 1153 - func = list_entry(l, struct acpiphp_func, sibling); 1154 - 1152 + list_for_each_entry(func, &slot->funcs, sibling) { 1155 1153 if (func->bridge) { 1156 1154 /* cleanup p2p bridges under this P2P bridge */ 1157 1155 cleanup_p2p_bridge(func->bridge->handle, ··· 1156 1160 func->bridge = NULL; 1157 1161 } 1158 1162 1159 - if (func->pci_dev) { 1160 - pci_stop_bus_device(func->pci_dev); 1161 - if (func->pci_dev->subordinate) { 1162 - disable_bridges(func->pci_dev->subordinate); 1163 - pci_disable_device(func->pci_dev); 1163 + pdev = pci_get_slot(slot->bridge->pci_bus, 1164 + PCI_DEVFN(slot->device, func->function)); 1165 + if (pdev) { 1166 + pci_stop_bus_device(pdev); 1167 + if (pdev->subordinate) { 1168 + disable_bridges(pdev->subordinate); 1169 + pci_disable_device(pdev); 1164 1170 } 1171 + pci_remove_bus_device(pdev); 1172 + pci_dev_put(pdev); 1165 1173 } 1166 1174 } 1167 1175 1168 - list_for_each (l, &slot->funcs) { 1169 - func = list_entry(l, struct acpiphp_func, sibling); 1170 - 1176 + list_for_each_entry(func, &slot->funcs, sibling) { 1171 1177 acpiphp_unconfigure_ioapics(func->handle); 1172 1178 acpiphp_bus_trim(func->handle); 1173 - /* try to remove anyway. 1174 - * acpiphp_bus_add might have been failed */ 1175 - 1176 - if (!func->pci_dev) 1177 - continue; 1178 - 1179 - pci_remove_bus_device(func->pci_dev); 1180 - pci_dev_put(func->pci_dev); 1181 - func->pci_dev = NULL; 1182 1179 } 1183 1180 1184 1181 slot->flags &= (~SLOT_ENABLED); 1185 1182 1186 - err_exit: 1187 - return retval; 1183 + err_exit: 1184 + return 0; 1188 1185 } 1189 1186 1190 1187
+1
firmware/cis/.gitignore
··· 1 + *.cis
+4 -2
fs/nilfs2/cpfile.c
··· 311 311 ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, 0, &cp_bh); 312 312 if (ret < 0) { 313 313 if (ret != -ENOENT) 314 - goto out_sem; 314 + goto out_header; 315 315 /* skip hole */ 316 316 ret = 0; 317 317 continue; ··· 344 344 continue; 345 345 printk(KERN_ERR "%s: cannot delete block\n", 346 346 __func__); 347 - goto out_sem; 347 + goto out_header; 348 348 } 349 349 } 350 350 ··· 361 361 nilfs_mdt_mark_dirty(cpfile); 362 362 kunmap_atomic(kaddr, KM_USER0); 363 363 } 364 + 365 + out_header: 364 366 brelse(header_bh); 365 367 366 368 out_sem:
+1 -1
fs/xfs/linux-2.6/kmem.h
··· 103 103 static inline int 104 104 kmem_shake_allow(gfp_t gfp_mask) 105 105 { 106 - return (gfp_mask & __GFP_WAIT) != 0; 106 + return ((gfp_mask & __GFP_WAIT) && (gfp_mask & __GFP_FS)); 107 107 } 108 108 109 109 #endif /* __XFS_SUPPORT_KMEM_H__ */
+5 -3
fs/xfs/xfs_dfrag.c
··· 347 347 348 348 error = xfs_trans_commit(tp, XFS_TRANS_SWAPEXT); 349 349 350 - out_unlock: 351 - xfs_iunlock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); 352 - xfs_iunlock(tip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); 353 350 out: 354 351 kmem_free(tempifp); 355 352 return error; 353 + 354 + out_unlock: 355 + xfs_iunlock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); 356 + xfs_iunlock(tip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); 357 + goto out; 356 358 357 359 out_trans_cancel: 358 360 xfs_trans_cancel(tp, 0);
+1 -1
fs/xfs/xfs_fsops.c
··· 160 160 nagcount = new + (nb_mod != 0); 161 161 if (nb_mod && nb_mod < XFS_MIN_AG_BLOCKS) { 162 162 nagcount--; 163 - nb = nagcount * mp->m_sb.sb_agblocks; 163 + nb = (xfs_rfsblock_t)nagcount * mp->m_sb.sb_agblocks; 164 164 if (nb < mp->m_sb.sb_dblocks) 165 165 return XFS_ERROR(EINVAL); 166 166 }
+3
include/drm/drm_crtc.h
··· 471 471 u32 property_ids[DRM_CONNECTOR_MAX_PROPERTY]; 472 472 uint64_t property_values[DRM_CONNECTOR_MAX_PROPERTY]; 473 473 474 + /* requested DPMS state */ 475 + int dpms; 476 + 474 477 void *helper_private; 475 478 476 479 uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER];
+2
include/drm/drm_crtc_helper.h
··· 99 99 struct drm_framebuffer *old_fb); 100 100 extern bool drm_helper_crtc_in_use(struct drm_crtc *crtc); 101 101 102 + extern void drm_helper_connector_dpms(struct drm_connector *connector, int mode); 103 + 102 104 extern int drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb, 103 105 struct drm_mode_fb_cmd *mode_cmd); 104 106
+1 -2
include/linux/auto_fs.h
··· 14 14 #ifndef _LINUX_AUTO_FS_H 15 15 #define _LINUX_AUTO_FS_H 16 16 17 + #include <linux/types.h> 17 18 #ifdef __KERNEL__ 18 19 #include <linux/fs.h> 19 20 #include <linux/limits.h> 20 - #include <linux/types.h> 21 21 #include <linux/ioctl.h> 22 22 #else 23 - #include <asm/types.h> 24 23 #include <sys/ioctl.h> 25 24 #endif /* __KERNEL__ */ 26 25
+10 -10
include/linux/i7300_idle.h
··· 16 16 struct fbd_ioat { 17 17 unsigned int vendor; 18 18 unsigned int ioat_dev; 19 + unsigned int enabled; 19 20 }; 20 21 21 22 /* 22 23 * The i5000 chip-set has the same hooks as the i7300 23 - * but support is disabled by default because this driver 24 - * has not been validated on that platform. 24 + * but it is not enabled by default and must be manually 25 + * manually enabled with "forceload=1" because it is 26 + * only lightly validated. 25 27 */ 26 - #define SUPPORT_I5000 0 27 28 28 29 static const struct fbd_ioat fbd_ioat_list[] = { 29 - {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT_CNB}, 30 - #if SUPPORT_I5000 31 - {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT}, 32 - #endif 30 + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT_CNB, 1}, 31 + {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT, 0}, 33 32 {0, 0} 34 33 }; 35 34 36 35 /* table of devices that work with this driver */ 37 36 static const struct pci_device_id pci_tbl[] = { 38 37 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_FBD_CNB) }, 39 - #if SUPPORT_I5000 40 38 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_5000_ERR) }, 41 - #endif 42 39 { } /* Terminating entry */ 43 40 }; 44 41 45 42 /* Check for known platforms with I/O-AT */ 46 43 static inline int i7300_idle_platform_probe(struct pci_dev **fbd_dev, 47 - struct pci_dev **ioat_dev) 44 + struct pci_dev **ioat_dev, 45 + int enable_all) 48 46 { 49 47 int i; 50 48 struct pci_dev *memdev, *dmadev; ··· 67 69 for (i = 0; fbd_ioat_list[i].vendor != 0; i++) { 68 70 if (dmadev->vendor == fbd_ioat_list[i].vendor && 69 71 dmadev->device == fbd_ioat_list[i].ioat_dev) { 72 + if (!(fbd_ioat_list[i].enabled || enable_all)) 73 + continue; 70 74 if (fbd_dev) 71 75 *fbd_dev = memdev; 72 76 if (ioat_dev)
+1
include/linux/net_dropmon.h
··· 1 1 #ifndef __NET_DROPMON_H 2 2 #define __NET_DROPMON_H 3 3 4 + #include <linux/types.h> 4 5 #include <linux/netlink.h> 5 6 6 7 struct net_dm_drop_point {
+4
include/linux/netfilter/nf_conntrack_tcp.h
··· 35 35 /* Has unacknowledged data */ 36 36 #define IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED 0x10 37 37 38 + /* The field td_maxack has been set */ 39 + #define IP_CT_TCP_FLAG_MAXACK_SET 0x20 40 + 38 41 struct nf_ct_tcp_flags { 39 42 __u8 flags; 40 43 __u8 mask; ··· 49 46 u_int32_t td_end; /* max of seq + len */ 50 47 u_int32_t td_maxend; /* max of ack + max(win, 1) */ 51 48 u_int32_t td_maxwin; /* max(win) */ 49 + u_int32_t td_maxack; /* max of ack */ 52 50 u_int8_t td_scale; /* window scale factor */ 53 51 u_int8_t flags; /* per direction options */ 54 52 };
+4
include/linux/parport.h
··· 324 324 int spintime; 325 325 atomic_t ref_count; 326 326 327 + unsigned long devflags; 328 + #define PARPORT_DEVPROC_REGISTERED 0 329 + struct pardevice *proc_device; /* Currently register proc device */ 330 + 327 331 struct list_head full_list; 328 332 struct parport *slaves[3]; 329 333 };
-6
net/bluetooth/hci_sysfs.c
··· 90 90 struct hci_conn *conn = container_of(work, struct hci_conn, work_add); 91 91 struct hci_dev *hdev = conn->hdev; 92 92 93 - /* ensure previous del is complete */ 94 - flush_work(&conn->work_del); 95 - 96 93 dev_set_name(&conn->dev, "%s:%d", hdev->name, conn->handle); 97 94 98 95 if (device_add(&conn->dev) < 0) { ··· 114 117 { 115 118 struct hci_conn *conn = container_of(work, struct hci_conn, work_del); 116 119 struct hci_dev *hdev = conn->hdev; 117 - 118 - /* ensure previous add is complete */ 119 - flush_work(&conn->work_add); 120 120 121 121 if (!device_is_registered(&conn->dev)) 122 122 return;
+4
net/netfilter/nf_conntrack_proto_dccp.c
··· 22 22 #include <linux/netfilter/nfnetlink_conntrack.h> 23 23 #include <net/netfilter/nf_conntrack.h> 24 24 #include <net/netfilter/nf_conntrack_l4proto.h> 25 + #include <net/netfilter/nf_conntrack_ecache.h> 25 26 #include <net/netfilter/nf_log.h> 26 27 27 28 static DEFINE_RWLOCK(dccp_lock); ··· 553 552 ct->proto.dccp.last_pkt = type; 554 553 ct->proto.dccp.state = new_state; 555 554 write_unlock_bh(&dccp_lock); 555 + 556 + if (new_state != old_state) 557 + nf_conntrack_event_cache(IPCT_PROTOINFO, ct); 556 558 557 559 dn = dccp_pernet(net); 558 560 nf_ct_refresh_acct(ct, ctinfo, skb, dn->dccp_timeout[new_state]);
+18
net/netfilter/nf_conntrack_proto_tcp.c
··· 634 634 sender->td_end = end; 635 635 sender->flags |= IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED; 636 636 } 637 + if (tcph->ack) { 638 + if (!(sender->flags & IP_CT_TCP_FLAG_MAXACK_SET)) { 639 + sender->td_maxack = ack; 640 + sender->flags |= IP_CT_TCP_FLAG_MAXACK_SET; 641 + } else if (after(ack, sender->td_maxack)) 642 + sender->td_maxack = ack; 643 + } 644 + 637 645 /* 638 646 * Update receiver data. 639 647 */ ··· 926 918 "nf_ct_tcp: invalid state "); 927 919 return -NF_ACCEPT; 928 920 case TCP_CONNTRACK_CLOSE: 921 + if (index == TCP_RST_SET 922 + && (ct->proto.tcp.seen[!dir].flags & IP_CT_TCP_FLAG_MAXACK_SET) 923 + && before(ntohl(th->seq), ct->proto.tcp.seen[!dir].td_maxack)) { 924 + /* Invalid RST */ 925 + write_unlock_bh(&tcp_lock); 926 + if (LOG_INVALID(net, IPPROTO_TCP)) 927 + nf_log_packet(pf, 0, skb, NULL, NULL, NULL, 928 + "nf_ct_tcp: invalid RST "); 929 + return -NF_ACCEPT; 930 + } 929 931 if (index == TCP_RST_SET 930 932 && ((test_bit(IPS_SEEN_REPLY_BIT, &ct->status) 931 933 && ct->proto.tcp.last_index == TCP_SYN_SET)
+1 -1
net/netfilter/xt_hashlimit.c
··· 926 926 if (!hlist_empty(&htable->hash[*bucket])) { 927 927 hlist_for_each_entry(ent, pos, &htable->hash[*bucket], node) 928 928 if (dl_seq_real_show(ent, htable->family, s)) 929 - return 1; 929 + return -1; 930 930 } 931 931 return 0; 932 932 }
+17 -6
net/sched/cls_api.c
··· 135 135 unsigned long cl; 136 136 unsigned long fh; 137 137 int err; 138 + int tp_created = 0; 138 139 139 140 if (net != &init_net) 140 141 return -EINVAL; ··· 267 266 goto errout; 268 267 } 269 268 270 - spin_lock_bh(root_lock); 271 - tp->next = *back; 272 - *back = tp; 273 - spin_unlock_bh(root_lock); 269 + tp_created = 1; 274 270 275 271 } else if (tca[TCA_KIND] && nla_strcmp(tca[TCA_KIND], tp->ops->kind)) 276 272 goto errout; ··· 294 296 switch (n->nlmsg_type) { 295 297 case RTM_NEWTFILTER: 296 298 err = -EEXIST; 297 - if (n->nlmsg_flags & NLM_F_EXCL) 299 + if (n->nlmsg_flags & NLM_F_EXCL) { 300 + if (tp_created) 301 + tcf_destroy(tp); 298 302 goto errout; 303 + } 299 304 break; 300 305 case RTM_DELTFILTER: 301 306 err = tp->ops->delete(tp, fh); ··· 315 314 } 316 315 317 316 err = tp->ops->change(tp, cl, t->tcm_handle, tca, &fh); 318 - if (err == 0) 317 + if (err == 0) { 318 + if (tp_created) { 319 + spin_lock_bh(root_lock); 320 + tp->next = *back; 321 + *back = tp; 322 + spin_unlock_bh(root_lock); 323 + } 319 324 tfilter_notify(skb, n, tp, fh, RTM_NEWTFILTER); 325 + } else { 326 + if (tp_created) 327 + tcf_destroy(tp); 328 + } 320 329 321 330 errout: 322 331 if (cl)
+11 -11
net/sched/cls_cgroup.c
··· 104 104 struct tcf_result *res) 105 105 { 106 106 struct cls_cgroup_head *head = tp->root; 107 - struct cgroup_cls_state *cs; 108 - int ret = 0; 107 + u32 classid; 109 108 110 109 /* 111 110 * Due to the nature of the classifier it is required to ignore all ··· 120 121 return -1; 121 122 122 123 rcu_read_lock(); 123 - cs = task_cls_state(current); 124 - if (cs->classid && tcf_em_tree_match(skb, &head->ematches, NULL)) { 125 - res->classid = cs->classid; 126 - res->class = 0; 127 - ret = tcf_exts_exec(skb, &head->exts, res); 128 - } else 129 - ret = -1; 130 - 124 + classid = task_cls_state(current)->classid; 131 125 rcu_read_unlock(); 132 126 133 - return ret; 127 + if (!classid) 128 + return -1; 129 + 130 + if (!tcf_em_tree_match(skb, &head->ematches, NULL)) 131 + return -1; 132 + 133 + res->classid = classid; 134 + res->class = 0; 135 + return tcf_exts_exec(skb, &head->exts, res); 134 136 } 135 137 136 138 static unsigned long cls_cgroup_get(struct tcf_proto *tp, u32 handle)