diff options
148 files changed, 3963 insertions, 2019 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index c0a662d1c284..a17f0b161e03 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -3356,10 +3356,8 @@ S: Maintained | |||
| 3356 | PARISC ARCHITECTURE | 3356 | PARISC ARCHITECTURE |
| 3357 | P: Kyle McMartin | 3357 | P: Kyle McMartin |
| 3358 | M: kyle@mcmartin.ca | 3358 | M: kyle@mcmartin.ca |
| 3359 | P: Matthew Wilcox | 3359 | P: Helge Deller |
| 3360 | M: matthew@wil.cx | 3360 | M: deller@gmx.de |
| 3361 | P: Grant Grundler | ||
| 3362 | M: grundler@parisc-linux.org | ||
| 3363 | L: linux-parisc@vger.kernel.org | 3361 | L: linux-parisc@vger.kernel.org |
| 3364 | W: http://www.parisc-linux.org/ | 3362 | W: http://www.parisc-linux.org/ |
| 3365 | T: git kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6.git | 3363 | T: git kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6.git |
| @@ -1,7 +1,7 @@ | |||
| 1 | VERSION = 2 | 1 | VERSION = 2 |
| 2 | PATCHLEVEL = 6 | 2 | PATCHLEVEL = 6 |
| 3 | SUBLEVEL = 29 | 3 | SUBLEVEL = 29 |
| 4 | EXTRAVERSION = -rc7 | 4 | EXTRAVERSION = -rc8 |
| 5 | NAME = Erotic Pickled Herring | 5 | NAME = Erotic Pickled Herring |
| 6 | 6 | ||
| 7 | # *DOCUMENTATION* | 7 | # *DOCUMENTATION* |
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 49a6ba926c2b..159d0416f270 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
| @@ -111,6 +111,7 @@ ENTRY(mcount) | |||
| 111 | .globl mcount_call | 111 | .globl mcount_call |
| 112 | mcount_call: | 112 | mcount_call: |
| 113 | bl ftrace_stub | 113 | bl ftrace_stub |
| 114 | ldr lr, [fp, #-4] @ restore lr | ||
| 114 | ldmia sp!, {r0-r3, pc} | 115 | ldmia sp!, {r0-r3, pc} |
| 115 | 116 | ||
| 116 | ENTRY(ftrace_caller) | 117 | ENTRY(ftrace_caller) |
| @@ -122,6 +123,7 @@ ENTRY(ftrace_caller) | |||
| 122 | .globl ftrace_call | 123 | .globl ftrace_call |
| 123 | ftrace_call: | 124 | ftrace_call: |
| 124 | bl ftrace_stub | 125 | bl ftrace_stub |
| 126 | ldr lr, [fp, #-4] @ restore lr | ||
| 125 | ldmia sp!, {r0-r3, pc} | 127 | ldmia sp!, {r0-r3, pc} |
| 126 | 128 | ||
| 127 | #else | 129 | #else |
| @@ -133,6 +135,7 @@ ENTRY(mcount) | |||
| 133 | adr r0, ftrace_stub | 135 | adr r0, ftrace_stub |
| 134 | cmp r0, r2 | 136 | cmp r0, r2 |
| 135 | bne trace | 137 | bne trace |
| 138 | ldr lr, [fp, #-4] @ restore lr | ||
| 136 | ldmia sp!, {r0-r3, pc} | 139 | ldmia sp!, {r0-r3, pc} |
| 137 | 140 | ||
| 138 | trace: | 141 | trace: |
| @@ -141,6 +144,7 @@ trace: | |||
| 141 | sub r0, r0, #MCOUNT_INSN_SIZE | 144 | sub r0, r0, #MCOUNT_INSN_SIZE |
| 142 | mov lr, pc | 145 | mov lr, pc |
| 143 | mov pc, r2 | 146 | mov pc, r2 |
| 147 | mov lr, r1 @ restore lr | ||
| 144 | ldmia sp!, {r0-r3, pc} | 148 | ldmia sp!, {r0-r3, pc} |
| 145 | 149 | ||
| 146 | #endif /* CONFIG_DYNAMIC_FTRACE */ | 150 | #endif /* CONFIG_DYNAMIC_FTRACE */ |
diff --git a/arch/arm/kernel/fiq.c b/arch/arm/kernel/fiq.c index 36f81d967979..6ff7919613d7 100644 --- a/arch/arm/kernel/fiq.c +++ b/arch/arm/kernel/fiq.c | |||
| @@ -88,7 +88,7 @@ void set_fiq_handler(void *start, unsigned int length) | |||
| 88 | * disable irqs for the duration. Note - these functions are almost | 88 | * disable irqs for the duration. Note - these functions are almost |
| 89 | * entirely coded in assembly. | 89 | * entirely coded in assembly. |
| 90 | */ | 90 | */ |
| 91 | void __attribute__((naked)) set_fiq_regs(struct pt_regs *regs) | 91 | void __naked set_fiq_regs(struct pt_regs *regs) |
| 92 | { | 92 | { |
| 93 | register unsigned long tmp; | 93 | register unsigned long tmp; |
| 94 | asm volatile ( | 94 | asm volatile ( |
| @@ -106,7 +106,7 @@ void __attribute__((naked)) set_fiq_regs(struct pt_regs *regs) | |||
| 106 | : "r" (®s->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE)); | 106 | : "r" (®s->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE)); |
| 107 | } | 107 | } |
| 108 | 108 | ||
| 109 | void __attribute__((naked)) get_fiq_regs(struct pt_regs *regs) | 109 | void __naked get_fiq_regs(struct pt_regs *regs) |
| 110 | { | 110 | { |
| 111 | register unsigned long tmp; | 111 | register unsigned long tmp; |
| 112 | asm volatile ( | 112 | asm volatile ( |
diff --git a/arch/arm/mach-ep93xx/include/mach/platform.h b/arch/arm/mach-ep93xx/include/mach/platform.h index 88f7e88f152f..05f0f4f2f3ce 100644 --- a/arch/arm/mach-ep93xx/include/mach/platform.h +++ b/arch/arm/mach-ep93xx/include/mach/platform.h | |||
| @@ -4,6 +4,8 @@ | |||
| 4 | 4 | ||
| 5 | #ifndef __ASSEMBLY__ | 5 | #ifndef __ASSEMBLY__ |
| 6 | 6 | ||
| 7 | struct i2c_board_info; | ||
| 8 | |||
| 7 | struct ep93xx_eth_data | 9 | struct ep93xx_eth_data |
| 8 | { | 10 | { |
| 9 | unsigned char dev_addr[6]; | 11 | unsigned char dev_addr[6]; |
diff --git a/arch/arm/mach-mx1/devices.c b/arch/arm/mach-mx1/devices.c index 686d8d2dbb24..a95644193f3f 100644 --- a/arch/arm/mach-mx1/devices.c +++ b/arch/arm/mach-mx1/devices.c | |||
| @@ -23,6 +23,8 @@ | |||
| 23 | #include <linux/init.h> | 23 | #include <linux/init.h> |
| 24 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
| 25 | #include <linux/gpio.h> | 25 | #include <linux/gpio.h> |
| 26 | |||
| 27 | #include <mach/irqs.h> | ||
| 26 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
| 27 | 29 | ||
| 28 | static struct resource imx_csi_resources[] = { | 30 | static struct resource imx_csi_resources[] = { |
diff --git a/arch/arm/mach-mx1/mx1ads.c b/arch/arm/mach-mx1/mx1ads.c index 2e4b185fe4a9..3200cf60e384 100644 --- a/arch/arm/mach-mx1/mx1ads.c +++ b/arch/arm/mach-mx1/mx1ads.c | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | #include <asm/mach/arch.h> | 21 | #include <asm/mach/arch.h> |
| 22 | #include <asm/mach/time.h> | 22 | #include <asm/mach/time.h> |
| 23 | 23 | ||
| 24 | #include <mach/irqs.h> | ||
| 24 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
| 25 | #include <mach/common.h> | 26 | #include <mach/common.h> |
| 26 | #include <mach/imx-uart.h> | 27 | #include <mach/imx-uart.h> |
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index 38c88fbe658d..e39cd2c46cfa 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c | |||
| @@ -178,7 +178,9 @@ static int __init omap3_beagle_i2c_init(void) | |||
| 178 | #ifdef CONFIG_I2C2_OMAP_BEAGLE | 178 | #ifdef CONFIG_I2C2_OMAP_BEAGLE |
| 179 | omap_register_i2c_bus(2, 400, NULL, 0); | 179 | omap_register_i2c_bus(2, 400, NULL, 0); |
| 180 | #endif | 180 | #endif |
| 181 | omap_register_i2c_bus(3, 400, NULL, 0); | 181 | /* Bus 3 is attached to the DVI port where devices like the pico DLP |
| 182 | * projector don't work reliably with 400kHz */ | ||
| 183 | omap_register_i2c_bus(3, 100, NULL, 0); | ||
| 182 | return 0; | 184 | return 0; |
| 183 | } | 185 | } |
| 184 | 186 | ||
diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c index 0a623379789f..8a0e49d84256 100644 --- a/arch/arm/mach-orion5x/common.c +++ b/arch/arm/mach-orion5x/common.c | |||
| @@ -431,6 +431,10 @@ void __init orion5x_uart1_init(void) | |||
| 431 | /***************************************************************************** | 431 | /***************************************************************************** |
| 432 | * XOR engine | 432 | * XOR engine |
| 433 | ****************************************************************************/ | 433 | ****************************************************************************/ |
| 434 | struct mv_xor_platform_shared_data orion5x_xor_shared_data = { | ||
| 435 | .dram = &orion5x_mbus_dram_info, | ||
| 436 | }; | ||
| 437 | |||
| 434 | static struct resource orion5x_xor_shared_resources[] = { | 438 | static struct resource orion5x_xor_shared_resources[] = { |
| 435 | { | 439 | { |
| 436 | .name = "xor low", | 440 | .name = "xor low", |
| @@ -448,6 +452,9 @@ static struct resource orion5x_xor_shared_resources[] = { | |||
| 448 | static struct platform_device orion5x_xor_shared = { | 452 | static struct platform_device orion5x_xor_shared = { |
| 449 | .name = MV_XOR_SHARED_NAME, | 453 | .name = MV_XOR_SHARED_NAME, |
| 450 | .id = 0, | 454 | .id = 0, |
| 455 | .dev = { | ||
| 456 | .platform_data = &orion5x_xor_shared_data, | ||
| 457 | }, | ||
| 451 | .num_resources = ARRAY_SIZE(orion5x_xor_shared_resources), | 458 | .num_resources = ARRAY_SIZE(orion5x_xor_shared_resources), |
| 452 | .resource = orion5x_xor_shared_resources, | 459 | .resource = orion5x_xor_shared_resources, |
| 453 | }; | 460 | }; |
diff --git a/arch/arm/mach-s3c6410/mach-smdk6410.c b/arch/arm/mach-s3c6410/mach-smdk6410.c index 3c4d47145c83..25f7935576f8 100644 --- a/arch/arm/mach-s3c6410/mach-smdk6410.c +++ b/arch/arm/mach-s3c6410/mach-smdk6410.c | |||
| @@ -129,7 +129,7 @@ static struct s3c_fb_platdata smdk6410_lcd_pdata __initdata = { | |||
| 129 | .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, | 129 | .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, |
| 130 | }; | 130 | }; |
| 131 | 131 | ||
| 132 | struct map_desc smdk6410_iodesc[] = {}; | 132 | static struct map_desc smdk6410_iodesc[] = {}; |
| 133 | 133 | ||
| 134 | static struct platform_device *smdk6410_devices[] __initdata = { | 134 | static struct platform_device *smdk6410_devices[] __initdata = { |
| 135 | #ifdef CONFIG_SMDK6410_SD_CH0 | 135 | #ifdef CONFIG_SMDK6410_SD_CH0 |
| @@ -146,7 +146,7 @@ static struct platform_device *smdk6410_devices[] __initdata = { | |||
| 146 | 146 | ||
| 147 | static struct i2c_board_info i2c_devs0[] __initdata = { | 147 | static struct i2c_board_info i2c_devs0[] __initdata = { |
| 148 | { I2C_BOARD_INFO("24c08", 0x50), }, | 148 | { I2C_BOARD_INFO("24c08", 0x50), }, |
| 149 | { I2C_BOARD_INFO("WM8580", 0X1b), }, | 149 | { I2C_BOARD_INFO("wm8580", 0x1b), }, |
| 150 | }; | 150 | }; |
| 151 | 151 | ||
| 152 | static struct i2c_board_info i2c_devs1[] __initdata = { | 152 | static struct i2c_board_info i2c_devs1[] __initdata = { |
diff --git a/arch/arm/mm/copypage-feroceon.c b/arch/arm/mm/copypage-feroceon.c index c3ba6a94da0c..70997d5bee2d 100644 --- a/arch/arm/mm/copypage-feroceon.c +++ b/arch/arm/mm/copypage-feroceon.c | |||
| @@ -13,7 +13,7 @@ | |||
| 13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
| 14 | #include <linux/highmem.h> | 14 | #include <linux/highmem.h> |
| 15 | 15 | ||
| 16 | static void __attribute__((naked)) | 16 | static void __naked |
| 17 | feroceon_copy_user_page(void *kto, const void *kfrom) | 17 | feroceon_copy_user_page(void *kto, const void *kfrom) |
| 18 | { | 18 | { |
| 19 | asm("\ | 19 | asm("\ |
diff --git a/arch/arm/mm/copypage-v3.c b/arch/arm/mm/copypage-v3.c index 70ed96c8af8e..de9c06854ad7 100644 --- a/arch/arm/mm/copypage-v3.c +++ b/arch/arm/mm/copypage-v3.c | |||
| @@ -15,7 +15,7 @@ | |||
| 15 | * | 15 | * |
| 16 | * FIXME: do we need to handle cache stuff... | 16 | * FIXME: do we need to handle cache stuff... |
| 17 | */ | 17 | */ |
| 18 | static void __attribute__((naked)) | 18 | static void __naked |
| 19 | v3_copy_user_page(void *kto, const void *kfrom) | 19 | v3_copy_user_page(void *kto, const void *kfrom) |
| 20 | { | 20 | { |
| 21 | asm("\n\ | 21 | asm("\n\ |
diff --git a/arch/arm/mm/copypage-v4mc.c b/arch/arm/mm/copypage-v4mc.c index 1601698b9800..7370a7142b04 100644 --- a/arch/arm/mm/copypage-v4mc.c +++ b/arch/arm/mm/copypage-v4mc.c | |||
| @@ -44,7 +44,7 @@ static DEFINE_SPINLOCK(minicache_lock); | |||
| 44 | * instruction. If your processor does not supply this, you have to write your | 44 | * instruction. If your processor does not supply this, you have to write your |
| 45 | * own copy_user_highpage that does the right thing. | 45 | * own copy_user_highpage that does the right thing. |
| 46 | */ | 46 | */ |
| 47 | static void __attribute__((naked)) | 47 | static void __naked |
| 48 | mc_copy_user_page(void *from, void *to) | 48 | mc_copy_user_page(void *from, void *to) |
| 49 | { | 49 | { |
| 50 | asm volatile( | 50 | asm volatile( |
diff --git a/arch/arm/mm/copypage-v4wb.c b/arch/arm/mm/copypage-v4wb.c index 3ec93dab7656..9ab098414227 100644 --- a/arch/arm/mm/copypage-v4wb.c +++ b/arch/arm/mm/copypage-v4wb.c | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | * instruction. If your processor does not supply this, you have to write your | 22 | * instruction. If your processor does not supply this, you have to write your |
| 23 | * own copy_user_highpage that does the right thing. | 23 | * own copy_user_highpage that does the right thing. |
| 24 | */ | 24 | */ |
| 25 | static void __attribute__((naked)) | 25 | static void __naked |
| 26 | v4wb_copy_user_page(void *kto, const void *kfrom) | 26 | v4wb_copy_user_page(void *kto, const void *kfrom) |
| 27 | { | 27 | { |
| 28 | asm("\ | 28 | asm("\ |
diff --git a/arch/arm/mm/copypage-v4wt.c b/arch/arm/mm/copypage-v4wt.c index 0f1188efae45..300efafd6643 100644 --- a/arch/arm/mm/copypage-v4wt.c +++ b/arch/arm/mm/copypage-v4wt.c | |||
| @@ -20,7 +20,7 @@ | |||
| 20 | * dirty data in the cache. However, we do have to ensure that | 20 | * dirty data in the cache. However, we do have to ensure that |
| 21 | * subsequent reads are up to date. | 21 | * subsequent reads are up to date. |
| 22 | */ | 22 | */ |
| 23 | static void __attribute__((naked)) | 23 | static void __naked |
| 24 | v4wt_copy_user_page(void *kto, const void *kfrom) | 24 | v4wt_copy_user_page(void *kto, const void *kfrom) |
| 25 | { | 25 | { |
| 26 | asm("\ | 26 | asm("\ |
diff --git a/arch/arm/mm/copypage-xsc3.c b/arch/arm/mm/copypage-xsc3.c index 39a994542cad..bc4525f5ab23 100644 --- a/arch/arm/mm/copypage-xsc3.c +++ b/arch/arm/mm/copypage-xsc3.c | |||
| @@ -29,7 +29,7 @@ | |||
| 29 | * if we eventually end up using our copied page. | 29 | * if we eventually end up using our copied page. |
| 30 | * | 30 | * |
| 31 | */ | 31 | */ |
| 32 | static void __attribute__((naked)) | 32 | static void __naked |
| 33 | xsc3_mc_copy_user_page(void *kto, const void *kfrom) | 33 | xsc3_mc_copy_user_page(void *kto, const void *kfrom) |
| 34 | { | 34 | { |
| 35 | asm("\ | 35 | asm("\ |
diff --git a/arch/arm/mm/copypage-xscale.c b/arch/arm/mm/copypage-xscale.c index d18f2397ee2d..76824d3e966a 100644 --- a/arch/arm/mm/copypage-xscale.c +++ b/arch/arm/mm/copypage-xscale.c | |||
| @@ -42,7 +42,7 @@ static DEFINE_SPINLOCK(minicache_lock); | |||
| 42 | * Dcache aliasing issue. The writes will be forwarded to the write buffer, | 42 | * Dcache aliasing issue. The writes will be forwarded to the write buffer, |
| 43 | * and merged as appropriate. | 43 | * and merged as appropriate. |
| 44 | */ | 44 | */ |
| 45 | static void __attribute__((naked)) | 45 | static void __naked |
| 46 | mc_copy_user_page(void *from, void *to) | 46 | mc_copy_user_page(void *from, void *to) |
| 47 | { | 47 | { |
| 48 | /* | 48 | /* |
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index 310e479309ef..f1ef5613ccd4 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c | |||
| @@ -490,26 +490,30 @@ core_initcall(consistent_init); | |||
| 490 | */ | 490 | */ |
| 491 | void dma_cache_maint(const void *start, size_t size, int direction) | 491 | void dma_cache_maint(const void *start, size_t size, int direction) |
| 492 | { | 492 | { |
| 493 | const void *end = start + size; | 493 | void (*inner_op)(const void *, const void *); |
| 494 | void (*outer_op)(unsigned long, unsigned long); | ||
| 494 | 495 | ||
| 495 | BUG_ON(!virt_addr_valid(start) || !virt_addr_valid(end - 1)); | 496 | BUG_ON(!virt_addr_valid(start) || !virt_addr_valid(start + size - 1)); |
| 496 | 497 | ||
| 497 | switch (direction) { | 498 | switch (direction) { |
| 498 | case DMA_FROM_DEVICE: /* invalidate only */ | 499 | case DMA_FROM_DEVICE: /* invalidate only */ |
| 499 | dmac_inv_range(start, end); | 500 | inner_op = dmac_inv_range; |
| 500 | outer_inv_range(__pa(start), __pa(end)); | 501 | outer_op = outer_inv_range; |
| 501 | break; | 502 | break; |
| 502 | case DMA_TO_DEVICE: /* writeback only */ | 503 | case DMA_TO_DEVICE: /* writeback only */ |
| 503 | dmac_clean_range(start, end); | 504 | inner_op = dmac_clean_range; |
| 504 | outer_clean_range(__pa(start), __pa(end)); | 505 | outer_op = outer_clean_range; |
| 505 | break; | 506 | break; |
| 506 | case DMA_BIDIRECTIONAL: /* writeback and invalidate */ | 507 | case DMA_BIDIRECTIONAL: /* writeback and invalidate */ |
| 507 | dmac_flush_range(start, end); | 508 | inner_op = dmac_flush_range; |
| 508 | outer_flush_range(__pa(start), __pa(end)); | 509 | outer_op = outer_flush_range; |
| 509 | break; | 510 | break; |
| 510 | default: | 511 | default: |
| 511 | BUG(); | 512 | BUG(); |
| 512 | } | 513 | } |
| 514 | |||
| 515 | inner_op(start, start + size); | ||
| 516 | outer_op(__pa(start), __pa(start) + size); | ||
| 513 | } | 517 | } |
| 514 | EXPORT_SYMBOL(dma_cache_maint); | 518 | EXPORT_SYMBOL(dma_cache_maint); |
| 515 | 519 | ||
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 34df4d9d03a6..80fd3b69ae1f 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c | |||
| @@ -382,7 +382,7 @@ void __init bootmem_init(void) | |||
| 382 | for_each_node(node) | 382 | for_each_node(node) |
| 383 | bootmem_free_node(node, mi); | 383 | bootmem_free_node(node, mi); |
| 384 | 384 | ||
| 385 | high_memory = __va(memend_pfn << PAGE_SHIFT); | 385 | high_memory = __va((memend_pfn << PAGE_SHIFT) - 1) + 1; |
| 386 | 386 | ||
| 387 | /* | 387 | /* |
| 388 | * This doesn't seem to be used by the Linux memory manager any | 388 | * This doesn't seem to be used by the Linux memory manager any |
diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c index 5358fcc7f61e..f7457fea6de8 100644 --- a/arch/arm/mm/mmap.c +++ b/arch/arm/mm/mmap.c | |||
| @@ -124,7 +124,7 @@ int valid_phys_addr_range(unsigned long addr, size_t size) | |||
| 124 | { | 124 | { |
| 125 | if (addr < PHYS_OFFSET) | 125 | if (addr < PHYS_OFFSET) |
| 126 | return 0; | 126 | return 0; |
| 127 | if (addr + size > __pa(high_memory)) | 127 | if (addr + size >= __pa(high_memory - 1)) |
| 128 | return 0; | 128 | return 0; |
| 129 | 129 | ||
| 130 | return 1; | 130 | return 1; |
diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile index deaff58878a2..04a100cfb8e5 100644 --- a/arch/arm/plat-omap/Makefile +++ b/arch/arm/plat-omap/Makefile | |||
| @@ -18,7 +18,8 @@ obj-$(CONFIG_CPU_FREQ) += cpu-omap.o | |||
| 18 | obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o | 18 | obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o |
| 19 | obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o | 19 | obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o |
| 20 | obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o | 20 | obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o |
| 21 | obj-$(CONFIG_I2C_OMAP) += i2c.o | 21 | i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o |
| 22 | obj-y += $(i2c-omap-m) $(i2c-omap-y) | ||
| 22 | 23 | ||
| 23 | # OMAP mailbox framework | 24 | # OMAP mailbox framework |
| 24 | obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o | 25 | obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o |
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c index 0843b8882f93..6825fbb5a056 100644 --- a/arch/arm/plat-omap/common.c +++ b/arch/arm/plat-omap/common.c | |||
| @@ -200,20 +200,16 @@ static struct clocksource clocksource_32k = { | |||
| 200 | }; | 200 | }; |
| 201 | 201 | ||
| 202 | /* | 202 | /* |
| 203 | * Rounds down to nearest nsec. | ||
| 204 | */ | ||
| 205 | unsigned long long omap_32k_ticks_to_nsecs(unsigned long ticks_32k) | ||
| 206 | { | ||
| 207 | return cyc2ns(&clocksource_32k, ticks_32k); | ||
| 208 | } | ||
| 209 | |||
| 210 | /* | ||
| 211 | * Returns current time from boot in nsecs. It's OK for this to wrap | 203 | * Returns current time from boot in nsecs. It's OK for this to wrap |
| 212 | * around for now, as it's just a relative time stamp. | 204 | * around for now, as it's just a relative time stamp. |
| 213 | */ | 205 | */ |
| 214 | unsigned long long sched_clock(void) | 206 | unsigned long long sched_clock(void) |
| 215 | { | 207 | { |
| 216 | return omap_32k_ticks_to_nsecs(omap_32k_read()); | 208 | unsigned long long ret; |
| 209 | |||
| 210 | ret = (unsigned long long)omap_32k_read(); | ||
| 211 | ret = (ret * clocksource_32k.mult_orig) >> clocksource_32k.shift; | ||
| 212 | return ret; | ||
| 217 | } | 213 | } |
| 218 | 214 | ||
| 219 | static int __init omap_init_clocksource_32k(void) | 215 | static int __init omap_init_clocksource_32k(void) |
diff --git a/arch/arm/plat-omap/include/mach/common.h b/arch/arm/plat-omap/include/mach/common.h index ef70e2b0f054..e746ec7e785e 100644 --- a/arch/arm/plat-omap/include/mach/common.h +++ b/arch/arm/plat-omap/include/mach/common.h | |||
| @@ -35,7 +35,7 @@ extern void omap_map_common_io(void); | |||
| 35 | extern struct sys_timer omap_timer; | 35 | extern struct sys_timer omap_timer; |
| 36 | extern void omap_serial_init(void); | 36 | extern void omap_serial_init(void); |
| 37 | extern void omap_serial_enable_clocks(int enable); | 37 | extern void omap_serial_enable_clocks(int enable); |
| 38 | #ifdef CONFIG_I2C_OMAP | 38 | #if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE) |
| 39 | extern int omap_register_i2c_bus(int bus_id, u32 clkrate, | 39 | extern int omap_register_i2c_bus(int bus_id, u32 clkrate, |
| 40 | struct i2c_board_info const *info, | 40 | struct i2c_board_info const *info, |
| 41 | unsigned len); | 41 | unsigned len); |
diff --git a/arch/arm/plat-omap/include/mach/pm.h b/arch/arm/plat-omap/include/mach/pm.h index 2a9c27ad4c37..37e2f0f38b46 100644 --- a/arch/arm/plat-omap/include/mach/pm.h +++ b/arch/arm/plat-omap/include/mach/pm.h | |||
| @@ -108,7 +108,7 @@ | |||
| 108 | !defined(CONFIG_ARCH_OMAP15XX) && \ | 108 | !defined(CONFIG_ARCH_OMAP15XX) && \ |
| 109 | !defined(CONFIG_ARCH_OMAP16XX) && \ | 109 | !defined(CONFIG_ARCH_OMAP16XX) && \ |
| 110 | !defined(CONFIG_ARCH_OMAP24XX) | 110 | !defined(CONFIG_ARCH_OMAP24XX) |
| 111 | #error "Power management for this processor not implemented yet" | 111 | #warning "Power management for this processor not implemented yet" |
| 112 | #endif | 112 | #endif |
| 113 | 113 | ||
| 114 | #ifndef __ASSEMBLER__ | 114 | #ifndef __ASSEMBLER__ |
diff --git a/arch/arm/plat-s3c64xx/clock.c b/arch/arm/plat-s3c64xx/clock.c index 136c982c68e1..ad1b9682c9c3 100644 --- a/arch/arm/plat-s3c64xx/clock.c +++ b/arch/arm/plat-s3c64xx/clock.c | |||
| @@ -248,7 +248,7 @@ static struct clk *clks[] __initdata = { | |||
| 248 | &clk_48m, | 248 | &clk_48m, |
| 249 | }; | 249 | }; |
| 250 | 250 | ||
| 251 | void s3c64xx_register_clocks(void) | 251 | void __init s3c64xx_register_clocks(void) |
| 252 | { | 252 | { |
| 253 | struct clk *clkp; | 253 | struct clk *clkp; |
| 254 | int ret; | 254 | int ret; |
diff --git a/arch/arm/plat-s3c64xx/gpiolib.c b/arch/arm/plat-s3c64xx/gpiolib.c index cc62941d7b5c..ee9188add8fb 100644 --- a/arch/arm/plat-s3c64xx/gpiolib.c +++ b/arch/arm/plat-s3c64xx/gpiolib.c | |||
| @@ -417,4 +417,4 @@ static __init int s3c64xx_gpiolib_init(void) | |||
| 417 | return 0; | 417 | return 0; |
| 418 | } | 418 | } |
| 419 | 419 | ||
| 420 | arch_initcall(s3c64xx_gpiolib_init); | 420 | core_initcall(s3c64xx_gpiolib_init); |
diff --git a/arch/arm/plat-s3c64xx/include/plat/irqs.h b/arch/arm/plat-s3c64xx/include/plat/irqs.h index 2846f550b727..f865bf4d709e 100644 --- a/arch/arm/plat-s3c64xx/include/plat/irqs.h +++ b/arch/arm/plat-s3c64xx/include/plat/irqs.h | |||
| @@ -117,7 +117,7 @@ | |||
| 117 | #define IRQ_ONENAND1 S3C64XX_IRQ_VIC1(12) | 117 | #define IRQ_ONENAND1 S3C64XX_IRQ_VIC1(12) |
| 118 | #define IRQ_NFC S3C64XX_IRQ_VIC1(13) | 118 | #define IRQ_NFC S3C64XX_IRQ_VIC1(13) |
| 119 | #define IRQ_CFCON S3C64XX_IRQ_VIC1(14) | 119 | #define IRQ_CFCON S3C64XX_IRQ_VIC1(14) |
| 120 | #define IRQ_UHOST S3C64XX_IRQ_VIC1(15) | 120 | #define IRQ_USBH S3C64XX_IRQ_VIC1(15) |
| 121 | #define IRQ_SPI0 S3C64XX_IRQ_VIC1(16) | 121 | #define IRQ_SPI0 S3C64XX_IRQ_VIC1(16) |
| 122 | #define IRQ_SPI1 S3C64XX_IRQ_VIC1(17) | 122 | #define IRQ_SPI1 S3C64XX_IRQ_VIC1(17) |
| 123 | #define IRQ_IIC S3C64XX_IRQ_VIC1(18) | 123 | #define IRQ_IIC S3C64XX_IRQ_VIC1(18) |
diff --git a/arch/arm/plat-s3c64xx/irq-eint.c b/arch/arm/plat-s3c64xx/irq-eint.c index ebb305ce7689..cf524826c93a 100644 --- a/arch/arm/plat-s3c64xx/irq-eint.c +++ b/arch/arm/plat-s3c64xx/irq-eint.c | |||
| @@ -14,12 +14,15 @@ | |||
| 14 | 14 | ||
| 15 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
| 16 | #include <linux/interrupt.h> | 16 | #include <linux/interrupt.h> |
| 17 | #include <linux/gpio.h> | ||
| 17 | #include <linux/irq.h> | 18 | #include <linux/irq.h> |
| 18 | #include <linux/io.h> | 19 | #include <linux/io.h> |
| 19 | 20 | ||
| 20 | #include <asm/hardware/vic.h> | 21 | #include <asm/hardware/vic.h> |
| 21 | 22 | ||
| 22 | #include <plat/regs-irqtype.h> | 23 | #include <plat/regs-irqtype.h> |
| 24 | #include <plat/regs-gpio.h> | ||
| 25 | #include <plat/gpio-cfg.h> | ||
| 23 | 26 | ||
| 24 | #include <mach/map.h> | 27 | #include <mach/map.h> |
| 25 | #include <plat/cpu.h> | 28 | #include <plat/cpu.h> |
| @@ -74,6 +77,7 @@ static void s3c_irq_eint_maskack(unsigned int irq) | |||
| 74 | static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type) | 77 | static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type) |
| 75 | { | 78 | { |
| 76 | int offs = eint_offset(irq); | 79 | int offs = eint_offset(irq); |
| 80 | int pin; | ||
| 77 | int shift; | 81 | int shift; |
| 78 | u32 ctrl, mask; | 82 | u32 ctrl, mask; |
| 79 | u32 newvalue = 0; | 83 | u32 newvalue = 0; |
| @@ -125,6 +129,15 @@ static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type) | |||
| 125 | ctrl |= newvalue << shift; | 129 | ctrl |= newvalue << shift; |
| 126 | __raw_writel(ctrl, reg); | 130 | __raw_writel(ctrl, reg); |
| 127 | 131 | ||
| 132 | /* set the GPIO pin appropriately */ | ||
| 133 | |||
| 134 | if (offs < 23) | ||
| 135 | pin = S3C64XX_GPN(offs); | ||
| 136 | else | ||
| 137 | pin = S3C64XX_GPM(offs - 23); | ||
| 138 | |||
| 139 | s3c_gpio_cfgpin(pin, S3C_GPIO_SFN(2)); | ||
| 140 | |||
| 128 | return 0; | 141 | return 0; |
| 129 | } | 142 | } |
| 130 | 143 | ||
| @@ -181,7 +194,7 @@ static void s3c_irq_demux_eint20_27(unsigned int irq, struct irq_desc *desc) | |||
| 181 | s3c_irq_demux_eint(20, 27); | 194 | s3c_irq_demux_eint(20, 27); |
| 182 | } | 195 | } |
| 183 | 196 | ||
| 184 | int __init s3c64xx_init_irq_eint(void) | 197 | static int __init s3c64xx_init_irq_eint(void) |
| 185 | { | 198 | { |
| 186 | int irq; | 199 | int irq; |
| 187 | 200 | ||
diff --git a/arch/arm/plat-s3c64xx/irq.c b/arch/arm/plat-s3c64xx/irq.c index a94f1d5e819d..f22edf7c2d2d 100644 --- a/arch/arm/plat-s3c64xx/irq.c +++ b/arch/arm/plat-s3c64xx/irq.c | |||
| @@ -207,7 +207,7 @@ static struct irq_chip s3c_irq_uart = { | |||
| 207 | 207 | ||
| 208 | static void __init s3c64xx_uart_irq(struct uart_irq *uirq) | 208 | static void __init s3c64xx_uart_irq(struct uart_irq *uirq) |
| 209 | { | 209 | { |
| 210 | void *reg_base = uirq->regs; | 210 | void __iomem *reg_base = uirq->regs; |
| 211 | unsigned int irq; | 211 | unsigned int irq; |
| 212 | int offs; | 212 | int offs; |
| 213 | 213 | ||
diff --git a/arch/arm/plat-s3c64xx/s3c6400-clock.c b/arch/arm/plat-s3c64xx/s3c6400-clock.c index 8d9a0cada668..05b17528041e 100644 --- a/arch/arm/plat-s3c64xx/s3c6400-clock.c +++ b/arch/arm/plat-s3c64xx/s3c6400-clock.c | |||
| @@ -36,7 +36,7 @@ | |||
| 36 | * ext_xtal_mux for want of an actual name from the manual. | 36 | * ext_xtal_mux for want of an actual name from the manual. |
| 37 | */ | 37 | */ |
| 38 | 38 | ||
| 39 | struct clk clk_ext_xtal_mux = { | 39 | static struct clk clk_ext_xtal_mux = { |
| 40 | .name = "ext_xtal", | 40 | .name = "ext_xtal", |
| 41 | .id = -1, | 41 | .id = -1, |
| 42 | }; | 42 | }; |
| @@ -63,7 +63,7 @@ struct clksrc_clk { | |||
| 63 | void __iomem *reg_divider; | 63 | void __iomem *reg_divider; |
| 64 | }; | 64 | }; |
| 65 | 65 | ||
| 66 | struct clk clk_fout_apll = { | 66 | static struct clk clk_fout_apll = { |
| 67 | .name = "fout_apll", | 67 | .name = "fout_apll", |
| 68 | .id = -1, | 68 | .id = -1, |
| 69 | }; | 69 | }; |
| @@ -78,7 +78,7 @@ static struct clk_sources clk_src_apll = { | |||
| 78 | .nr_sources = ARRAY_SIZE(clk_src_apll_list), | 78 | .nr_sources = ARRAY_SIZE(clk_src_apll_list), |
| 79 | }; | 79 | }; |
| 80 | 80 | ||
| 81 | struct clksrc_clk clk_mout_apll = { | 81 | static struct clksrc_clk clk_mout_apll = { |
| 82 | .clk = { | 82 | .clk = { |
| 83 | .name = "mout_apll", | 83 | .name = "mout_apll", |
| 84 | .id = -1, | 84 | .id = -1, |
| @@ -88,7 +88,7 @@ struct clksrc_clk clk_mout_apll = { | |||
| 88 | .sources = &clk_src_apll, | 88 | .sources = &clk_src_apll, |
| 89 | }; | 89 | }; |
| 90 | 90 | ||
| 91 | struct clk clk_fout_epll = { | 91 | static struct clk clk_fout_epll = { |
| 92 | .name = "fout_epll", | 92 | .name = "fout_epll", |
| 93 | .id = -1, | 93 | .id = -1, |
| 94 | }; | 94 | }; |
| @@ -103,7 +103,7 @@ static struct clk_sources clk_src_epll = { | |||
| 103 | .nr_sources = ARRAY_SIZE(clk_src_epll_list), | 103 | .nr_sources = ARRAY_SIZE(clk_src_epll_list), |
| 104 | }; | 104 | }; |
| 105 | 105 | ||
| 106 | struct clksrc_clk clk_mout_epll = { | 106 | static struct clksrc_clk clk_mout_epll = { |
| 107 | .clk = { | 107 | .clk = { |
| 108 | .name = "mout_epll", | 108 | .name = "mout_epll", |
| 109 | .id = -1, | 109 | .id = -1, |
| @@ -123,7 +123,7 @@ static struct clk_sources clk_src_mpll = { | |||
| 123 | .nr_sources = ARRAY_SIZE(clk_src_mpll_list), | 123 | .nr_sources = ARRAY_SIZE(clk_src_mpll_list), |
| 124 | }; | 124 | }; |
| 125 | 125 | ||
| 126 | struct clksrc_clk clk_mout_mpll = { | 126 | static struct clksrc_clk clk_mout_mpll = { |
| 127 | .clk = { | 127 | .clk = { |
| 128 | .name = "mout_mpll", | 128 | .name = "mout_mpll", |
| 129 | .id = -1, | 129 | .id = -1, |
| @@ -145,7 +145,7 @@ static unsigned long s3c64xx_clk_doutmpll_get_rate(struct clk *clk) | |||
| 145 | return rate; | 145 | return rate; |
| 146 | } | 146 | } |
| 147 | 147 | ||
| 148 | struct clk clk_dout_mpll = { | 148 | static struct clk clk_dout_mpll = { |
| 149 | .name = "dout_mpll", | 149 | .name = "dout_mpll", |
| 150 | .id = -1, | 150 | .id = -1, |
| 151 | .parent = &clk_mout_mpll.clk, | 151 | .parent = &clk_mout_mpll.clk, |
| @@ -189,10 +189,10 @@ static struct clk_sources clkset_uart = { | |||
| 189 | }; | 189 | }; |
| 190 | 190 | ||
| 191 | static struct clk *clkset_uhost_list[] = { | 191 | static struct clk *clkset_uhost_list[] = { |
| 192 | &clk_48m, | ||
| 192 | &clk_mout_epll.clk, | 193 | &clk_mout_epll.clk, |
| 193 | &clk_dout_mpll, | 194 | &clk_dout_mpll, |
| 194 | &clk_fin_epll, | 195 | &clk_fin_epll, |
| 195 | &clk_48m, | ||
| 196 | }; | 196 | }; |
| 197 | 197 | ||
| 198 | static struct clk_sources clkset_uhost = { | 198 | static struct clk_sources clkset_uhost = { |
| @@ -239,10 +239,12 @@ static int s3c64xx_setrate_clksrc(struct clk *clk, unsigned long rate) | |||
| 239 | 239 | ||
| 240 | rate = clk_round_rate(clk, rate); | 240 | rate = clk_round_rate(clk, rate); |
| 241 | div = clk_get_rate(clk->parent) / rate; | 241 | div = clk_get_rate(clk->parent) / rate; |
| 242 | if (div > 16) | ||
| 243 | return -EINVAL; | ||
| 242 | 244 | ||
| 243 | val = __raw_readl(reg); | 245 | val = __raw_readl(reg); |
| 244 | val &= ~sclk->mask; | 246 | val &= ~(0xf << sclk->shift); |
| 245 | val |= (rate - 1) << sclk->shift; | 247 | val |= (div - 1) << sclk->shift; |
| 246 | __raw_writel(val, reg); | 248 | __raw_writel(val, reg); |
| 247 | 249 | ||
| 248 | return 0; | 250 | return 0; |
| @@ -351,7 +353,7 @@ static struct clksrc_clk clk_mmc2 = { | |||
| 351 | 353 | ||
| 352 | static struct clksrc_clk clk_usbhost = { | 354 | static struct clksrc_clk clk_usbhost = { |
| 353 | .clk = { | 355 | .clk = { |
| 354 | .name = "usb-host-bus", | 356 | .name = "usb-bus-host", |
| 355 | .id = -1, | 357 | .id = -1, |
| 356 | .ctrlbit = S3C_CLKCON_SCLK_UHOST, | 358 | .ctrlbit = S3C_CLKCON_SCLK_UHOST, |
| 357 | .enable = s3c64xx_sclk_ctrl, | 359 | .enable = s3c64xx_sclk_ctrl, |
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types index fd23c0e9e698..b4211d8b2ac7 100644 --- a/arch/arm/tools/mach-types +++ b/arch/arm/tools/mach-types | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | # | 12 | # |
| 13 | # http://www.arm.linux.org.uk/developer/machines/?action=new | 13 | # http://www.arm.linux.org.uk/developer/machines/?action=new |
| 14 | # | 14 | # |
| 15 | # Last update: Sun Nov 30 16:39:36 2008 | 15 | # Last update: Thu Mar 12 18:01:45 2009 |
| 16 | # | 16 | # |
| 17 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number | 17 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number |
| 18 | # | 18 | # |
| @@ -1811,7 +1811,7 @@ pilz_pmi5 MACH_PILZ_PMI5 PILZ_PMI5 1820 | |||
| 1811 | jade MACH_JADE JADE 1821 | 1811 | jade MACH_JADE JADE 1821 |
| 1812 | ks8695_softplc MACH_KS8695_SOFTPLC KS8695_SOFTPLC 1822 | 1812 | ks8695_softplc MACH_KS8695_SOFTPLC KS8695_SOFTPLC 1822 |
| 1813 | gprisc3 MACH_GPRISC3 GPRISC3 1823 | 1813 | gprisc3 MACH_GPRISC3 GPRISC3 1823 |
| 1814 | stamp9260 MACH_STAMP9260 STAMP9260 1824 | 1814 | stamp9g20 MACH_STAMP9G20 STAMP9G20 1824 |
| 1815 | smdk6430 MACH_SMDK6430 SMDK6430 1825 | 1815 | smdk6430 MACH_SMDK6430 SMDK6430 1825 |
| 1816 | smdkc100 MACH_SMDKC100 SMDKC100 1826 | 1816 | smdkc100 MACH_SMDKC100 SMDKC100 1826 |
| 1817 | tavorevb MACH_TAVOREVB TAVOREVB 1827 | 1817 | tavorevb MACH_TAVOREVB TAVOREVB 1827 |
| @@ -1993,4 +1993,134 @@ spark MACH_SPARK SPARK 2002 | |||
| 1993 | benzina MACH_BENZINA BENZINA 2003 | 1993 | benzina MACH_BENZINA BENZINA 2003 |
| 1994 | blaze MACH_BLAZE BLAZE 2004 | 1994 | blaze MACH_BLAZE BLAZE 2004 |
| 1995 | linkstation_ls_hgl MACH_LINKSTATION_LS_HGL LINKSTATION_LS_HGL 2005 | 1995 | linkstation_ls_hgl MACH_LINKSTATION_LS_HGL LINKSTATION_LS_HGL 2005 |
| 1996 | htcvenus MACH_HTCVENUS HTCVENUS 2006 | 1996 | htckovsky MACH_HTCVENUS HTCVENUS 2006 |
| 1997 | sony_prs505 MACH_SONY_PRS505 SONY_PRS505 2007 | ||
| 1998 | hanlin_v3 MACH_HANLIN_V3 HANLIN_V3 2008 | ||
| 1999 | sapphira MACH_SAPPHIRA SAPPHIRA 2009 | ||
| 2000 | dack_sda_01 MACH_DACK_SDA_01 DACK_SDA_01 2010 | ||
| 2001 | armbox MACH_ARMBOX ARMBOX 2011 | ||
| 2002 | harris_rvp MACH_HARRIS_RVP HARRIS_RVP 2012 | ||
| 2003 | ribaldo MACH_RIBALDO RIBALDO 2013 | ||
| 2004 | agora MACH_AGORA AGORA 2014 | ||
| 2005 | omap3_mini MACH_OMAP3_MINI OMAP3_MINI 2015 | ||
| 2006 | a9sam6432_b MACH_A9SAM6432_B A9SAM6432_B 2016 | ||
| 2007 | usg2410 MACH_USG2410 USG2410 2017 | ||
| 2008 | pc72052_i10_revb MACH_PC72052_I10_REVB PC72052_I10_REVB 2018 | ||
| 2009 | mx35_exm32 MACH_MX35_EXM32 MX35_EXM32 2019 | ||
| 2010 | topas910 MACH_TOPAS910 TOPAS910 2020 | ||
| 2011 | hyena MACH_HYENA HYENA 2021 | ||
| 2012 | pospax MACH_POSPAX POSPAX 2022 | ||
| 2013 | hdl_gx MACH_HDL_GX HDL_GX 2023 | ||
| 2014 | ctera_4bay MACH_CTERA_4BAY CTERA_4BAY 2024 | ||
| 2015 | ctera_plug_c MACH_CTERA_PLUG_C CTERA_PLUG_C 2025 | ||
| 2016 | crwea_plug_i MACH_CRWEA_PLUG_I CRWEA_PLUG_I 2026 | ||
| 2017 | egauge2 MACH_EGAUGE2 EGAUGE2 2027 | ||
| 2018 | didj MACH_DIDJ DIDJ 2028 | ||
| 2019 | m_s3c2443 MACH_MEISTER MEISTER 2029 | ||
| 2020 | htcblackstone MACH_HTCBLACKSTONE HTCBLACKSTONE 2030 | ||
| 2021 | cpuat9g20 MACH_CPUAT9G20 CPUAT9G20 2031 | ||
| 2022 | smdk6440 MACH_SMDK6440 SMDK6440 2032 | ||
| 2023 | omap_35xx_mvp MACH_OMAP_35XX_MVP OMAP_35XX_MVP 2033 | ||
| 2024 | ctera_plug_i MACH_CTERA_PLUG_I CTERA_PLUG_I 2034 | ||
| 2025 | pvg610_100 MACH_PVG610 PVG610 2035 | ||
| 2026 | hprw6815 MACH_HPRW6815 HPRW6815 2036 | ||
| 2027 | omap3_oswald MACH_OMAP3_OSWALD OMAP3_OSWALD 2037 | ||
| 2028 | nas4220b MACH_NAS4220B NAS4220B 2038 | ||
| 2029 | htcraphael_cdma MACH_HTCRAPHAEL_CDMA HTCRAPHAEL_CDMA 2039 | ||
| 2030 | htcdiamond_cdma MACH_HTCDIAMOND_CDMA HTCDIAMOND_CDMA 2040 | ||
| 2031 | scaler MACH_SCALER SCALER 2041 | ||
| 2032 | zylonite2 MACH_ZYLONITE2 ZYLONITE2 2042 | ||
| 2033 | aspenite MACH_ASPENITE ASPENITE 2043 | ||
| 2034 | teton MACH_TETON TETON 2044 | ||
| 2035 | ttc_dkb MACH_TTC_DKB TTC_DKB 2045 | ||
| 2036 | bishop2 MACH_BISHOP2 BISHOP2 2046 | ||
| 2037 | ippv5 MACH_IPPV5 IPPV5 2047 | ||
| 2038 | farm926 MACH_FARM926 FARM926 2048 | ||
| 2039 | mmccpu MACH_MMCCPU MMCCPU 2049 | ||
| 2040 | sgmsfl MACH_SGMSFL SGMSFL 2050 | ||
| 2041 | tt8000 MACH_TT8000 TT8000 2051 | ||
| 2042 | zrn4300lp MACH_ZRN4300LP ZRN4300LP 2052 | ||
| 2043 | mptc MACH_MPTC MPTC 2053 | ||
| 2044 | h6051 MACH_H6051 H6051 2054 | ||
| 2045 | pvg610_101 MACH_PVG610_101 PVG610_101 2055 | ||
| 2046 | stamp9261_pc_evb MACH_STAMP9261_PC_EVB STAMP9261_PC_EVB 2056 | ||
| 2047 | pelco_odysseus MACH_PELCO_ODYSSEUS PELCO_ODYSSEUS 2057 | ||
| 2048 | tny_a9260 MACH_TNY_A9260 TNY_A9260 2058 | ||
| 2049 | tny_a9g20 MACH_TNY_A9G20 TNY_A9G20 2059 | ||
| 2050 | aesop_mp2530f MACH_AESOP_MP2530F AESOP_MP2530F 2060 | ||
| 2051 | dx900 MACH_DX900 DX900 2061 | ||
| 2052 | cpodc2 MACH_CPODC2 CPODC2 2062 | ||
| 2053 | tilt_8925 MACH_TILT_8925 TILT_8925 2063 | ||
| 2054 | davinci_dm357_evm MACH_DAVINCI_DM357_EVM DAVINCI_DM357_EVM 2064 | ||
| 2055 | swordfish MACH_SWORDFISH SWORDFISH 2065 | ||
| 2056 | corvus MACH_CORVUS CORVUS 2066 | ||
| 2057 | taurus MACH_TAURUS TAURUS 2067 | ||
| 2058 | axm MACH_AXM AXM 2068 | ||
| 2059 | axc MACH_AXC AXC 2069 | ||
| 2060 | baby MACH_BABY BABY 2070 | ||
| 2061 | mp200 MACH_MP200 MP200 2071 | ||
| 2062 | pcm043 MACH_PCM043 PCM043 2072 | ||
| 2063 | hanlin_v3c MACH_HANLIN_V3C HANLIN_V3C 2073 | ||
| 2064 | kbk9g20 MACH_KBK9G20 KBK9G20 2074 | ||
| 2065 | adsturbog5 MACH_ADSTURBOG5 ADSTURBOG5 2075 | ||
| 2066 | avenger_lite1 MACH_AVENGER_LITE1 AVENGER_LITE1 2076 | ||
| 2067 | suc82x MACH_SUC SUC 2077 | ||
| 2068 | at91sam7s256 MACH_AT91SAM7S256 AT91SAM7S256 2078 | ||
| 2069 | mendoza MACH_MENDOZA MENDOZA 2079 | ||
| 2070 | kira MACH_KIRA KIRA 2080 | ||
| 2071 | mx1hbm MACH_MX1HBM MX1HBM 2081 | ||
| 2072 | quatro43xx MACH_QUATRO43XX QUATRO43XX 2082 | ||
| 2073 | quatro4230 MACH_QUATRO4230 QUATRO4230 2083 | ||
| 2074 | nsb400 MACH_NSB400 NSB400 2084 | ||
| 2075 | drp255 MACH_DRP255 DRP255 2085 | ||
| 2076 | thoth MACH_THOTH THOTH 2086 | ||
| 2077 | firestone MACH_FIRESTONE FIRESTONE 2087 | ||
| 2078 | asusp750 MACH_ASUSP750 ASUSP750 2088 | ||
| 2079 | ctera_dl MACH_CTERA_DL CTERA_DL 2089 | ||
| 2080 | socr MACH_SOCR SOCR 2090 | ||
| 2081 | htcoxygen MACH_HTCOXYGEN HTCOXYGEN 2091 | ||
| 2082 | heroc MACH_HEROC HEROC 2092 | ||
| 2083 | zeno6800 MACH_ZENO6800 ZENO6800 2093 | ||
| 2084 | sc2mcs MACH_SC2MCS SC2MCS 2094 | ||
| 2085 | gene100 MACH_GENE100 GENE100 2095 | ||
| 2086 | as353x MACH_AS353X AS353X 2096 | ||
| 2087 | sheevaplug MACH_SHEEVAPLUG SHEEVAPLUG 2097 | ||
| 2088 | at91sam9g20 MACH_AT91SAM9G20 AT91SAM9G20 2098 | ||
| 2089 | mv88f6192gtw_fe MACH_MV88F6192GTW_FE MV88F6192GTW_FE 2099 | ||
| 2090 | cc9200 MACH_CC9200 CC9200 2100 | ||
| 2091 | sm9200 MACH_SM9200 SM9200 2101 | ||
| 2092 | tp9200 MACH_TP9200 TP9200 2102 | ||
| 2093 | snapperdv MACH_SNAPPERDV SNAPPERDV 2103 | ||
| 2094 | avengers_lite MACH_AVENGERS_LITE AVENGERS_LITE 2104 | ||
| 2095 | avengers_lite1 MACH_AVENGERS_LITE1 AVENGERS_LITE1 2105 | ||
| 2096 | omap3axon MACH_OMAP3AXON OMAP3AXON 2106 | ||
| 2097 | ma8xx MACH_MA8XX MA8XX 2107 | ||
| 2098 | mp201ek MACH_MP201EK MP201EK 2108 | ||
| 2099 | davinci_tux MACH_DAVINCI_TUX DAVINCI_TUX 2109 | ||
| 2100 | mpa1600 MACH_MPA1600 MPA1600 2110 | ||
| 2101 | pelco_troy MACH_PELCO_TROY PELCO_TROY 2111 | ||
| 2102 | nsb667 MACH_NSB667 NSB667 2112 | ||
| 2103 | rovers5_4mpix MACH_ROVERS5_4MPIX ROVERS5_4MPIX 2113 | ||
| 2104 | twocom MACH_TWOCOM TWOCOM 2114 | ||
| 2105 | ubisys_p9_rcu3r2 MACH_UBISYS_P9_RCU3R2 UBISYS_P9_RCU3R2 2115 | ||
| 2106 | hero_espresso MACH_HERO_ESPRESSO HERO_ESPRESSO 2116 | ||
| 2107 | afeusb MACH_AFEUSB AFEUSB 2117 | ||
| 2108 | t830 MACH_T830 T830 2118 | ||
| 2109 | spd8020_cc MACH_SPD8020_CC SPD8020_CC 2119 | ||
| 2110 | om_3d7k MACH_OM_3D7K OM_3D7K 2120 | ||
| 2111 | picocom2 MACH_PICOCOM2 PICOCOM2 2121 | ||
| 2112 | uwg4mx27 MACH_UWG4MX27 UWG4MX27 2122 | ||
| 2113 | uwg4mx31 MACH_UWG4MX31 UWG4MX31 2123 | ||
| 2114 | cherry MACH_CHERRY CHERRY 2124 | ||
| 2115 | mx51_babbage MACH_MX51_BABBAGE MX51_BABBAGE 2125 | ||
| 2116 | s3c2440turkiye MACH_S3C2440TURKIYE S3C2440TURKIYE 2126 | ||
| 2117 | tx37 MACH_TX37 TX37 2127 | ||
| 2118 | sbc2800_9g20 MACH_SBC2800_9G20 SBC2800_9G20 2128 | ||
| 2119 | benzglb MACH_BENZGLB BENZGLB 2129 | ||
| 2120 | benztd MACH_BENZTD BENZTD 2130 | ||
| 2121 | cartesio_plus MACH_CARTESIO_PLUS CARTESIO_PLUS 2131 | ||
| 2122 | solrad_g20 MACH_SOLRAD_G20 SOLRAD_G20 2132 | ||
| 2123 | mx27wallace MACH_MX27WALLACE MX27WALLACE 2133 | ||
| 2124 | fmzwebmodul MACH_FMZWEBMODUL FMZWEBMODUL 2134 | ||
| 2125 | rd78x00_masa MACH_RD78X00_MASA RD78X00_MASA 2135 | ||
| 2126 | smallogger MACH_SMALLOGGER SMALLOGGER 2136 | ||
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index e61465a18c7e..206cb7953b0c 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
| @@ -238,8 +238,12 @@ config MIPS_SIM | |||
| 238 | This option enables support for MIPS Technologies MIPSsim software | 238 | This option enables support for MIPS Technologies MIPSsim software |
| 239 | emulator. | 239 | emulator. |
| 240 | 240 | ||
| 241 | config MACH_EMMA | 241 | config NEC_MARKEINS |
| 242 | bool "NEC EMMA series based machines" | 242 | bool "NEC EMMA2RH Mark-eins board" |
| 243 | select SOC_EMMA2RH | ||
| 244 | select HW_HAS_PCI | ||
| 245 | help | ||
| 246 | This enables support for the NEC Electronics Mark-eins boards. | ||
| 243 | 247 | ||
| 244 | config MACH_VR41XX | 248 | config MACH_VR41XX |
| 245 | bool "NEC VR4100 series based machines" | 249 | bool "NEC VR4100 series based machines" |
| @@ -637,7 +641,6 @@ endchoice | |||
| 637 | 641 | ||
| 638 | source "arch/mips/alchemy/Kconfig" | 642 | source "arch/mips/alchemy/Kconfig" |
| 639 | source "arch/mips/basler/excite/Kconfig" | 643 | source "arch/mips/basler/excite/Kconfig" |
| 640 | source "arch/mips/emma/Kconfig" | ||
| 641 | source "arch/mips/jazz/Kconfig" | 644 | source "arch/mips/jazz/Kconfig" |
| 642 | source "arch/mips/lasat/Kconfig" | 645 | source "arch/mips/lasat/Kconfig" |
| 643 | source "arch/mips/pmc-sierra/Kconfig" | 646 | source "arch/mips/pmc-sierra/Kconfig" |
| @@ -895,6 +898,18 @@ config MIPS_RM9122 | |||
| 895 | bool | 898 | bool |
| 896 | select SERIAL_RM9000 | 899 | select SERIAL_RM9000 |
| 897 | 900 | ||
| 901 | config SOC_EMMA2RH | ||
| 902 | bool | ||
| 903 | select CEVT_R4K | ||
| 904 | select CSRC_R4K | ||
| 905 | select DMA_NONCOHERENT | ||
| 906 | select IRQ_CPU | ||
| 907 | select SWAP_IO_SPACE | ||
| 908 | select SYS_HAS_CPU_R5500 | ||
| 909 | select SYS_SUPPORTS_32BIT_KERNEL | ||
| 910 | select SYS_SUPPORTS_64BIT_KERNEL | ||
| 911 | select SYS_SUPPORTS_BIG_ENDIAN | ||
| 912 | |||
| 898 | config SOC_PNX833X | 913 | config SOC_PNX833X |
| 899 | bool | 914 | bool |
| 900 | select CEVT_R4K | 915 | select CEVT_R4K |
| @@ -930,11 +945,6 @@ config SOC_PNX8550 | |||
| 930 | config SWAP_IO_SPACE | 945 | config SWAP_IO_SPACE |
| 931 | bool | 946 | bool |
| 932 | 947 | ||
| 933 | config EMMA2RH | ||
| 934 | bool | ||
| 935 | depends on MARKEINS | ||
| 936 | default y | ||
| 937 | |||
| 938 | config SERIAL_RM9000 | 948 | config SERIAL_RM9000 |
| 939 | bool | 949 | bool |
| 940 | 950 | ||
diff --git a/arch/mips/Makefile b/arch/mips/Makefile index 21b00e95daef..22dab2e14348 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile | |||
| @@ -416,7 +416,7 @@ load-$(CONFIG_PNX8550_STB810) += 0xffffffff80060000 | |||
| 416 | # | 416 | # |
| 417 | # Common NEC EMMAXXX | 417 | # Common NEC EMMAXXX |
| 418 | # | 418 | # |
| 419 | core-$(CONFIG_SOC_EMMA) += arch/mips/emma/common/ | 419 | core-$(CONFIG_SOC_EMMA2RH) += arch/mips/emma/common/ |
| 420 | cflags-$(CONFIG_SOC_EMMA2RH) += -I$(srctree)/arch/mips/include/asm/mach-emma2rh | 420 | cflags-$(CONFIG_SOC_EMMA2RH) += -I$(srctree)/arch/mips/include/asm/mach-emma2rh |
| 421 | 421 | ||
| 422 | # | 422 | # |
diff --git a/arch/mips/configs/emma2rh_defconfig b/arch/mips/configs/markeins_defconfig index fea9bc9865a3..bad8901f8f3c 100644 --- a/arch/mips/configs/emma2rh_defconfig +++ b/arch/mips/configs/markeins_defconfig | |||
| @@ -35,7 +35,7 @@ CONFIG_ZONE_DMA=y | |||
| 35 | # CONFIG_PNX8550_STB810 is not set | 35 | # CONFIG_PNX8550_STB810 is not set |
| 36 | # CONFIG_MACH_VR41XX is not set | 36 | # CONFIG_MACH_VR41XX is not set |
| 37 | # CONFIG_PMC_YOSEMITE is not set | 37 | # CONFIG_PMC_YOSEMITE is not set |
| 38 | CONFIG_MARKEINS=y | 38 | CONFIG_NEC_MARKEINS=y |
| 39 | # CONFIG_SGI_IP22 is not set | 39 | # CONFIG_SGI_IP22 is not set |
| 40 | # CONFIG_SGI_IP27 is not set | 40 | # CONFIG_SGI_IP27 is not set |
| 41 | # CONFIG_SGI_IP32 is not set | 41 | # CONFIG_SGI_IP32 is not set |
| @@ -68,7 +68,7 @@ CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y | |||
| 68 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | 68 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y |
| 69 | CONFIG_IRQ_CPU=y | 69 | CONFIG_IRQ_CPU=y |
| 70 | CONFIG_SWAP_IO_SPACE=y | 70 | CONFIG_SWAP_IO_SPACE=y |
| 71 | CONFIG_EMMA2RH=y | 71 | CONFIG_SOC_EMMA2RH=y |
| 72 | CONFIG_MIPS_L1_CACHE_SHIFT=5 | 72 | CONFIG_MIPS_L1_CACHE_SHIFT=5 |
| 73 | 73 | ||
| 74 | # | 74 | # |
| @@ -574,9 +574,9 @@ CONFIG_MTD_CFI_UTIL=y | |||
| 574 | # | 574 | # |
| 575 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | 575 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set |
| 576 | CONFIG_MTD_PHYSMAP=y | 576 | CONFIG_MTD_PHYSMAP=y |
| 577 | CONFIG_MTD_PHYSMAP_START=0x1e000000 | 577 | CONFIG_MTD_PHYSMAP_START=0x0 |
| 578 | CONFIG_MTD_PHYSMAP_LEN=0x02000000 | 578 | CONFIG_MTD_PHYSMAP_LEN=0x0 |
| 579 | CONFIG_MTD_PHYSMAP_BANKWIDTH=2 | 579 | CONFIG_MTD_PHYSMAP_BANKWIDTH=0 |
| 580 | # CONFIG_MTD_PLATRAM is not set | 580 | # CONFIG_MTD_PLATRAM is not set |
| 581 | 581 | ||
| 582 | # | 582 | # |
diff --git a/arch/mips/emma/Kconfig b/arch/mips/emma/Kconfig deleted file mode 100644 index 9669c72123c9..000000000000 --- a/arch/mips/emma/Kconfig +++ /dev/null | |||
| @@ -1,29 +0,0 @@ | |||
| 1 | choice | ||
| 2 | prompt "Machine type" | ||
| 3 | depends on MACH_EMMA | ||
| 4 | default NEC_MARKEINS | ||
| 5 | |||
| 6 | config NEC_MARKEINS | ||
| 7 | bool "NEC EMMA2RH Mark-eins board" | ||
| 8 | select SOC_EMMA2RH | ||
| 9 | select HW_HAS_PCI | ||
| 10 | help | ||
| 11 | This enables support for the NEC Electronics Mark-eins boards. | ||
| 12 | |||
| 13 | endchoice | ||
| 14 | |||
| 15 | config SOC_EMMA2RH | ||
| 16 | bool | ||
| 17 | select SOC_EMMA | ||
| 18 | select SYS_HAS_CPU_R5500 | ||
| 19 | select SYS_SUPPORTS_32BIT_KERNEL | ||
| 20 | select SYS_SUPPORTS_64BIT_KERNEL | ||
| 21 | |||
| 22 | config SOC_EMMA | ||
| 23 | bool | ||
| 24 | select CEVT_R4K | ||
| 25 | select CSRC_R4K | ||
| 26 | select DMA_NONCOHERENT | ||
| 27 | select IRQ_CPU | ||
| 28 | select SWAP_IO_SPACE | ||
| 29 | select SYS_SUPPORTS_BIG_ENDIAN | ||
diff --git a/arch/mips/emma/markeins/platform.c b/arch/mips/emma/markeins/platform.c index 88e87f6b3442..d5f47e4f0d18 100644 --- a/arch/mips/emma/markeins/platform.c +++ b/arch/mips/emma/markeins/platform.c | |||
| @@ -141,13 +141,6 @@ static struct platform_device serial_emma = { | |||
| 141 | }, | 141 | }, |
| 142 | }; | 142 | }; |
| 143 | 143 | ||
| 144 | static struct platform_device *devices[] = { | ||
| 145 | &i2c_emma_devices[0], | ||
| 146 | &i2c_emma_devices[1], | ||
| 147 | &i2c_emma_devices[2], | ||
| 148 | &serial_emma, | ||
| 149 | }; | ||
| 150 | |||
| 151 | static struct mtd_partition markeins_parts[] = { | 144 | static struct mtd_partition markeins_parts[] = { |
| 152 | [0] = { | 145 | [0] = { |
| 153 | .name = "RootFS", | 146 | .name = "RootFS", |
| @@ -181,11 +174,39 @@ static struct mtd_partition markeins_parts[] = { | |||
| 181 | }, | 174 | }, |
| 182 | }; | 175 | }; |
| 183 | 176 | ||
| 177 | static struct physmap_flash_data markeins_flash_data = { | ||
| 178 | .width = 2, | ||
| 179 | .nr_parts = ARRAY_SIZE(markeins_parts), | ||
| 180 | .parts = markeins_parts | ||
| 181 | }; | ||
| 182 | |||
| 183 | static struct resource markeins_flash_resource = { | ||
| 184 | .start = 0x1e000000, | ||
| 185 | .end = 0x02000000, | ||
| 186 | .flags = IORESOURCE_MEM | ||
| 187 | }; | ||
| 188 | |||
| 189 | static struct platform_device markeins_flash_device = { | ||
| 190 | .name = "physmap-flash", | ||
| 191 | .id = 0, | ||
| 192 | .dev = { | ||
| 193 | .platform_data = &markeins_flash_data, | ||
| 194 | }, | ||
| 195 | .num_resources = 1, | ||
| 196 | .resource = &markeins_flash_resource, | ||
| 197 | }; | ||
| 198 | |||
| 199 | static struct platform_device *devices[] = { | ||
| 200 | i2c_emma_devices, | ||
| 201 | i2c_emma_devices + 1, | ||
| 202 | i2c_emma_devices + 2, | ||
| 203 | &serial_emma, | ||
| 204 | &markeins_flash_device, | ||
| 205 | }; | ||
| 206 | |||
| 184 | static int __init platform_devices_setup(void) | 207 | static int __init platform_devices_setup(void) |
| 185 | { | 208 | { |
| 186 | physmap_set_partitions(markeins_parts, ARRAY_SIZE(markeins_parts)); | ||
| 187 | return platform_add_devices(devices, ARRAY_SIZE(devices)); | 209 | return platform_add_devices(devices, ARRAY_SIZE(devices)); |
| 188 | } | 210 | } |
| 189 | 211 | ||
| 190 | arch_initcall(platform_devices_setup); | 212 | arch_initcall(platform_devices_setup); |
| 191 | |||
diff --git a/arch/mips/include/asm/seccomp.h b/arch/mips/include/asm/seccomp.h index a6772e9507f5..ae6306ebdcad 100644 --- a/arch/mips/include/asm/seccomp.h +++ b/arch/mips/include/asm/seccomp.h | |||
| @@ -15,8 +15,6 @@ | |||
| 15 | */ | 15 | */ |
| 16 | #ifdef CONFIG_MIPS32_O32 | 16 | #ifdef CONFIG_MIPS32_O32 |
| 17 | 17 | ||
| 18 | #define TIF_32BIT TIF_32BIT_REGS | ||
| 19 | |||
| 20 | #define __NR_seccomp_read_32 4003 | 18 | #define __NR_seccomp_read_32 4003 |
| 21 | #define __NR_seccomp_write_32 4004 | 19 | #define __NR_seccomp_write_32 4004 |
| 22 | #define __NR_seccomp_exit_32 4001 | 20 | #define __NR_seccomp_exit_32 4001 |
| @@ -24,8 +22,6 @@ | |||
| 24 | 22 | ||
| 25 | #elif defined(CONFIG_MIPS32_N32) | 23 | #elif defined(CONFIG_MIPS32_N32) |
| 26 | 24 | ||
| 27 | #define TIF_32BIT _TIF_32BIT_ADDR | ||
| 28 | |||
| 29 | #define __NR_seccomp_read_32 6000 | 25 | #define __NR_seccomp_read_32 6000 |
| 30 | #define __NR_seccomp_write_32 6001 | 26 | #define __NR_seccomp_write_32 6001 |
| 31 | #define __NR_seccomp_exit_32 6058 | 27 | #define __NR_seccomp_exit_32 6058 |
diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h index 3f76de73c943..676aa2ae1913 100644 --- a/arch/mips/include/asm/thread_info.h +++ b/arch/mips/include/asm/thread_info.h | |||
| @@ -127,6 +127,12 @@ register struct thread_info *__current_thread_info __asm__("$28"); | |||
| 127 | #define TIF_LOAD_WATCH 25 /* If set, load watch registers */ | 127 | #define TIF_LOAD_WATCH 25 /* If set, load watch registers */ |
| 128 | #define TIF_SYSCALL_TRACE 31 /* syscall trace active */ | 128 | #define TIF_SYSCALL_TRACE 31 /* syscall trace active */ |
| 129 | 129 | ||
| 130 | #ifdef CONFIG_MIPS32_O32 | ||
| 131 | #define TIF_32BIT TIF_32BIT_REGS | ||
| 132 | #elif defined(CONFIG_MIPS32_N32) | ||
| 133 | #define TIF_32BIT _TIF_32BIT_ADDR | ||
| 134 | #endif /* CONFIG_MIPS32_O32 */ | ||
| 135 | |||
| 130 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) | 136 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) |
| 131 | #define _TIF_SIGPENDING (1<<TIF_SIGPENDING) | 137 | #define _TIF_SIGPENDING (1<<TIF_SIGPENDING) |
| 132 | #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) | 138 | #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) |
diff --git a/arch/parisc/configs/712_defconfig b/arch/parisc/configs/712_defconfig index 9fc96e727165..bf34a28895fa 100644 --- a/arch/parisc/configs/712_defconfig +++ b/arch/parisc/configs/712_defconfig | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.23 | 3 | # Linux kernel version: 2.6.29-rc8 |
| 4 | # Fri Oct 12 21:00:07 2007 | 4 | # Fri Mar 13 01:32:55 2009 |
| 5 | # | 5 | # |
| 6 | CONFIG_PARISC=y | 6 | CONFIG_PARISC=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| @@ -33,17 +33,35 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
| 33 | CONFIG_POSIX_MQUEUE=y | 33 | CONFIG_POSIX_MQUEUE=y |
| 34 | # CONFIG_BSD_PROCESS_ACCT is not set | 34 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 35 | # CONFIG_TASKSTATS is not set | 35 | # CONFIG_TASKSTATS is not set |
| 36 | # CONFIG_USER_NS is not set | ||
| 37 | # CONFIG_AUDIT is not set | 36 | # CONFIG_AUDIT is not set |
| 37 | |||
| 38 | # | ||
| 39 | # RCU Subsystem | ||
| 40 | # | ||
| 41 | CONFIG_CLASSIC_RCU=y | ||
| 42 | # CONFIG_TREE_RCU is not set | ||
| 43 | # CONFIG_PREEMPT_RCU is not set | ||
| 44 | # CONFIG_TREE_RCU_TRACE is not set | ||
| 45 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
| 38 | CONFIG_IKCONFIG=y | 46 | CONFIG_IKCONFIG=y |
| 39 | CONFIG_IKCONFIG_PROC=y | 47 | CONFIG_IKCONFIG_PROC=y |
| 40 | CONFIG_LOG_BUF_SHIFT=16 | 48 | CONFIG_LOG_BUF_SHIFT=16 |
| 49 | # CONFIG_GROUP_SCHED is not set | ||
| 50 | # CONFIG_CGROUPS is not set | ||
| 41 | CONFIG_SYSFS_DEPRECATED=y | 51 | CONFIG_SYSFS_DEPRECATED=y |
| 52 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 42 | # CONFIG_RELAY is not set | 53 | # CONFIG_RELAY is not set |
| 54 | CONFIG_NAMESPACES=y | ||
| 55 | # CONFIG_UTS_NS is not set | ||
| 56 | # CONFIG_IPC_NS is not set | ||
| 57 | # CONFIG_USER_NS is not set | ||
| 58 | # CONFIG_PID_NS is not set | ||
| 59 | # CONFIG_NET_NS is not set | ||
| 43 | CONFIG_BLK_DEV_INITRD=y | 60 | CONFIG_BLK_DEV_INITRD=y |
| 44 | CONFIG_INITRAMFS_SOURCE="" | 61 | CONFIG_INITRAMFS_SOURCE="" |
| 45 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 62 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
| 46 | CONFIG_SYSCTL=y | 63 | CONFIG_SYSCTL=y |
| 64 | CONFIG_ANON_INODES=y | ||
| 47 | # CONFIG_EMBEDDED is not set | 65 | # CONFIG_EMBEDDED is not set |
| 48 | CONFIG_SYSCTL_SYSCALL=y | 66 | CONFIG_SYSCTL_SYSCALL=y |
| 49 | CONFIG_KALLSYMS=y | 67 | CONFIG_KALLSYMS=y |
| @@ -55,29 +73,38 @@ CONFIG_BUG=y | |||
| 55 | CONFIG_ELF_CORE=y | 73 | CONFIG_ELF_CORE=y |
| 56 | CONFIG_BASE_FULL=y | 74 | CONFIG_BASE_FULL=y |
| 57 | CONFIG_FUTEX=y | 75 | CONFIG_FUTEX=y |
| 58 | CONFIG_ANON_INODES=y | ||
| 59 | CONFIG_EPOLL=y | 76 | CONFIG_EPOLL=y |
| 60 | CONFIG_SIGNALFD=y | 77 | CONFIG_SIGNALFD=y |
| 78 | CONFIG_TIMERFD=y | ||
| 61 | CONFIG_EVENTFD=y | 79 | CONFIG_EVENTFD=y |
| 62 | CONFIG_SHMEM=y | 80 | CONFIG_SHMEM=y |
| 81 | CONFIG_AIO=y | ||
| 63 | CONFIG_VM_EVENT_COUNTERS=y | 82 | CONFIG_VM_EVENT_COUNTERS=y |
| 83 | CONFIG_COMPAT_BRK=y | ||
| 64 | CONFIG_SLAB=y | 84 | CONFIG_SLAB=y |
| 65 | # CONFIG_SLUB is not set | 85 | # CONFIG_SLUB is not set |
| 66 | # CONFIG_SLOB is not set | 86 | # CONFIG_SLOB is not set |
| 87 | CONFIG_PROFILING=y | ||
| 88 | CONFIG_TRACEPOINTS=y | ||
| 89 | # CONFIG_MARKERS is not set | ||
| 90 | CONFIG_OPROFILE=m | ||
| 91 | CONFIG_HAVE_OPROFILE=y | ||
| 92 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | ||
| 93 | CONFIG_SLABINFO=y | ||
| 67 | CONFIG_RT_MUTEXES=y | 94 | CONFIG_RT_MUTEXES=y |
| 68 | # CONFIG_TINY_SHMEM is not set | ||
| 69 | CONFIG_BASE_SMALL=0 | 95 | CONFIG_BASE_SMALL=0 |
| 70 | CONFIG_MODULES=y | 96 | CONFIG_MODULES=y |
| 97 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
| 71 | CONFIG_MODULE_UNLOAD=y | 98 | CONFIG_MODULE_UNLOAD=y |
| 72 | CONFIG_MODULE_FORCE_UNLOAD=y | 99 | CONFIG_MODULE_FORCE_UNLOAD=y |
| 73 | # CONFIG_MODVERSIONS is not set | 100 | # CONFIG_MODVERSIONS is not set |
| 74 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 101 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
| 75 | CONFIG_KMOD=y | 102 | CONFIG_INIT_ALL_POSSIBLE=y |
| 76 | CONFIG_BLOCK=y | 103 | CONFIG_BLOCK=y |
| 77 | # CONFIG_LBD is not set | 104 | # CONFIG_LBD is not set |
| 78 | # CONFIG_BLK_DEV_IO_TRACE is not set | 105 | # CONFIG_BLK_DEV_IO_TRACE is not set |
| 79 | # CONFIG_LSF is not set | ||
| 80 | # CONFIG_BLK_DEV_BSG is not set | 106 | # CONFIG_BLK_DEV_BSG is not set |
| 107 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
| 81 | 108 | ||
| 82 | # | 109 | # |
| 83 | # IO Schedulers | 110 | # IO Schedulers |
| @@ -91,6 +118,7 @@ CONFIG_DEFAULT_AS=y | |||
| 91 | # CONFIG_DEFAULT_CFQ is not set | 118 | # CONFIG_DEFAULT_CFQ is not set |
| 92 | # CONFIG_DEFAULT_NOOP is not set | 119 | # CONFIG_DEFAULT_NOOP is not set |
| 93 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 120 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
| 121 | # CONFIG_FREEZER is not set | ||
| 94 | 122 | ||
| 95 | # | 123 | # |
| 96 | # Processor type and features | 124 | # Processor type and features |
| @@ -114,17 +142,19 @@ CONFIG_HZ_250=y | |||
| 114 | # CONFIG_HZ_300 is not set | 142 | # CONFIG_HZ_300 is not set |
| 115 | # CONFIG_HZ_1000 is not set | 143 | # CONFIG_HZ_1000 is not set |
| 116 | CONFIG_HZ=250 | 144 | CONFIG_HZ=250 |
| 145 | # CONFIG_SCHED_HRTICK is not set | ||
| 117 | CONFIG_SELECT_MEMORY_MODEL=y | 146 | CONFIG_SELECT_MEMORY_MODEL=y |
| 118 | CONFIG_FLATMEM_MANUAL=y | 147 | CONFIG_FLATMEM_MANUAL=y |
| 119 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 148 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
| 120 | # CONFIG_SPARSEMEM_MANUAL is not set | 149 | # CONFIG_SPARSEMEM_MANUAL is not set |
| 121 | CONFIG_FLATMEM=y | 150 | CONFIG_FLATMEM=y |
| 122 | CONFIG_FLAT_NODE_MEM_MAP=y | 151 | CONFIG_FLAT_NODE_MEM_MAP=y |
| 123 | # CONFIG_SPARSEMEM_STATIC is not set | 152 | CONFIG_PAGEFLAGS_EXTENDED=y |
| 124 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | 153 | CONFIG_SPLIT_PTLOCK_CPUS=4096 |
| 125 | # CONFIG_RESOURCES_64BIT is not set | 154 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
| 126 | CONFIG_ZONE_DMA_FLAG=0 | 155 | CONFIG_ZONE_DMA_FLAG=0 |
| 127 | CONFIG_VIRT_TO_BUS=y | 156 | CONFIG_VIRT_TO_BUS=y |
| 157 | CONFIG_UNEVICTABLE_LRU=y | ||
| 128 | # CONFIG_HPUX is not set | 158 | # CONFIG_HPUX is not set |
| 129 | 159 | ||
| 130 | # | 160 | # |
| @@ -138,10 +168,6 @@ CONFIG_GSC_LASI=y | |||
| 138 | # CONFIG_EISA is not set | 168 | # CONFIG_EISA is not set |
| 139 | # CONFIG_PCI is not set | 169 | # CONFIG_PCI is not set |
| 140 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 170 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
| 141 | |||
| 142 | # | ||
| 143 | # PCCARD (PCMCIA/CardBus) support | ||
| 144 | # | ||
| 145 | # CONFIG_PCCARD is not set | 171 | # CONFIG_PCCARD is not set |
| 146 | 172 | ||
| 147 | # | 173 | # |
| @@ -156,16 +182,15 @@ CONFIG_PDC_STABLE=y | |||
| 156 | # Executable file formats | 182 | # Executable file formats |
| 157 | # | 183 | # |
| 158 | CONFIG_BINFMT_ELF=y | 184 | CONFIG_BINFMT_ELF=y |
| 185 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
| 186 | # CONFIG_HAVE_AOUT is not set | ||
| 159 | CONFIG_BINFMT_MISC=m | 187 | CONFIG_BINFMT_MISC=m |
| 160 | |||
| 161 | # | ||
| 162 | # Networking | ||
| 163 | # | ||
| 164 | CONFIG_NET=y | 188 | CONFIG_NET=y |
| 165 | 189 | ||
| 166 | # | 190 | # |
| 167 | # Networking options | 191 | # Networking options |
| 168 | # | 192 | # |
| 193 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
| 169 | CONFIG_PACKET=y | 194 | CONFIG_PACKET=y |
| 170 | CONFIG_PACKET_MMAP=y | 195 | CONFIG_PACKET_MMAP=y |
| 171 | CONFIG_UNIX=y | 196 | CONFIG_UNIX=y |
| @@ -173,6 +198,7 @@ CONFIG_XFRM=y | |||
| 173 | CONFIG_XFRM_USER=m | 198 | CONFIG_XFRM_USER=m |
| 174 | # CONFIG_XFRM_SUB_POLICY is not set | 199 | # CONFIG_XFRM_SUB_POLICY is not set |
| 175 | # CONFIG_XFRM_MIGRATE is not set | 200 | # CONFIG_XFRM_MIGRATE is not set |
| 201 | # CONFIG_XFRM_STATISTICS is not set | ||
| 176 | CONFIG_NET_KEY=m | 202 | CONFIG_NET_KEY=m |
| 177 | # CONFIG_NET_KEY_MIGRATE is not set | 203 | # CONFIG_NET_KEY_MIGRATE is not set |
| 178 | CONFIG_INET=y | 204 | CONFIG_INET=y |
| @@ -203,25 +229,25 @@ CONFIG_INET_TCP_DIAG=m | |||
| 203 | CONFIG_TCP_CONG_CUBIC=y | 229 | CONFIG_TCP_CONG_CUBIC=y |
| 204 | CONFIG_DEFAULT_TCP_CONG="cubic" | 230 | CONFIG_DEFAULT_TCP_CONG="cubic" |
| 205 | # CONFIG_TCP_MD5SIG is not set | 231 | # CONFIG_TCP_MD5SIG is not set |
| 206 | # CONFIG_IP_VS is not set | ||
| 207 | # CONFIG_IPV6 is not set | 232 | # CONFIG_IPV6 is not set |
| 208 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
| 209 | # CONFIG_INET6_TUNNEL is not set | ||
| 210 | # CONFIG_NETWORK_SECMARK is not set | 233 | # CONFIG_NETWORK_SECMARK is not set |
| 211 | CONFIG_NETFILTER=y | 234 | CONFIG_NETFILTER=y |
| 212 | # CONFIG_NETFILTER_DEBUG is not set | 235 | # CONFIG_NETFILTER_DEBUG is not set |
| 236 | CONFIG_NETFILTER_ADVANCED=y | ||
| 213 | 237 | ||
| 214 | # | 238 | # |
| 215 | # Core Netfilter Configuration | 239 | # Core Netfilter Configuration |
| 216 | # | 240 | # |
| 217 | # CONFIG_NETFILTER_NETLINK is not set | 241 | # CONFIG_NETFILTER_NETLINK_QUEUE is not set |
| 218 | # CONFIG_NF_CONNTRACK_ENABLED is not set | 242 | # CONFIG_NETFILTER_NETLINK_LOG is not set |
| 219 | # CONFIG_NF_CONNTRACK is not set | 243 | # CONFIG_NF_CONNTRACK is not set |
| 220 | # CONFIG_NETFILTER_XTABLES is not set | 244 | # CONFIG_NETFILTER_XTABLES is not set |
| 245 | # CONFIG_IP_VS is not set | ||
| 221 | 246 | ||
| 222 | # | 247 | # |
| 223 | # IP: Netfilter Configuration | 248 | # IP: Netfilter Configuration |
| 224 | # | 249 | # |
| 250 | # CONFIG_NF_DEFRAG_IPV4 is not set | ||
| 225 | CONFIG_IP_NF_QUEUE=m | 251 | CONFIG_IP_NF_QUEUE=m |
| 226 | # CONFIG_IP_NF_IPTABLES is not set | 252 | # CONFIG_IP_NF_IPTABLES is not set |
| 227 | # CONFIG_IP_NF_ARPTABLES is not set | 253 | # CONFIG_IP_NF_ARPTABLES is not set |
| @@ -230,6 +256,7 @@ CONFIG_IP_NF_QUEUE=m | |||
| 230 | # CONFIG_TIPC is not set | 256 | # CONFIG_TIPC is not set |
| 231 | # CONFIG_ATM is not set | 257 | # CONFIG_ATM is not set |
| 232 | # CONFIG_BRIDGE is not set | 258 | # CONFIG_BRIDGE is not set |
| 259 | # CONFIG_NET_DSA is not set | ||
| 233 | # CONFIG_VLAN_8021Q is not set | 260 | # CONFIG_VLAN_8021Q is not set |
| 234 | # CONFIG_DECNET is not set | 261 | # CONFIG_DECNET is not set |
| 235 | CONFIG_LLC=m | 262 | CONFIG_LLC=m |
| @@ -240,28 +267,26 @@ CONFIG_LLC2=m | |||
| 240 | # CONFIG_LAPB is not set | 267 | # CONFIG_LAPB is not set |
| 241 | # CONFIG_ECONET is not set | 268 | # CONFIG_ECONET is not set |
| 242 | # CONFIG_WAN_ROUTER is not set | 269 | # CONFIG_WAN_ROUTER is not set |
| 243 | |||
| 244 | # | ||
| 245 | # QoS and/or fair queueing | ||
| 246 | # | ||
| 247 | # CONFIG_NET_SCHED is not set | 270 | # CONFIG_NET_SCHED is not set |
| 271 | # CONFIG_DCB is not set | ||
| 248 | 272 | ||
| 249 | # | 273 | # |
| 250 | # Network testing | 274 | # Network testing |
| 251 | # | 275 | # |
| 252 | CONFIG_NET_PKTGEN=m | 276 | CONFIG_NET_PKTGEN=m |
| 253 | # CONFIG_HAMRADIO is not set | 277 | # CONFIG_HAMRADIO is not set |
| 278 | # CONFIG_CAN is not set | ||
| 254 | # CONFIG_IRDA is not set | 279 | # CONFIG_IRDA is not set |
| 255 | # CONFIG_BT is not set | 280 | # CONFIG_BT is not set |
| 256 | # CONFIG_AF_RXRPC is not set | 281 | # CONFIG_AF_RXRPC is not set |
| 257 | 282 | # CONFIG_PHONET is not set | |
| 258 | # | 283 | CONFIG_WIRELESS=y |
| 259 | # Wireless | ||
| 260 | # | ||
| 261 | # CONFIG_CFG80211 is not set | 284 | # CONFIG_CFG80211 is not set |
| 285 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
| 262 | # CONFIG_WIRELESS_EXT is not set | 286 | # CONFIG_WIRELESS_EXT is not set |
| 287 | # CONFIG_LIB80211 is not set | ||
| 263 | # CONFIG_MAC80211 is not set | 288 | # CONFIG_MAC80211 is not set |
| 264 | # CONFIG_IEEE80211 is not set | 289 | # CONFIG_WIMAX is not set |
| 265 | # CONFIG_RFKILL is not set | 290 | # CONFIG_RFKILL is not set |
| 266 | # CONFIG_NET_9P is not set | 291 | # CONFIG_NET_9P is not set |
| 267 | 292 | ||
| @@ -276,6 +301,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | |||
| 276 | # CONFIG_STANDALONE is not set | 301 | # CONFIG_STANDALONE is not set |
| 277 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | 302 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
| 278 | CONFIG_FW_LOADER=y | 303 | CONFIG_FW_LOADER=y |
| 304 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
| 305 | CONFIG_EXTRA_FIRMWARE="" | ||
| 279 | # CONFIG_DEBUG_DRIVER is not set | 306 | # CONFIG_DEBUG_DRIVER is not set |
| 280 | # CONFIG_DEBUG_DEVRES is not set | 307 | # CONFIG_DEBUG_DEVRES is not set |
| 281 | # CONFIG_SYS_HYPERVISOR is not set | 308 | # CONFIG_SYS_HYPERVISOR is not set |
| @@ -298,11 +325,19 @@ CONFIG_BLK_DEV_CRYPTOLOOP=y | |||
| 298 | CONFIG_BLK_DEV_RAM=y | 325 | CONFIG_BLK_DEV_RAM=y |
| 299 | CONFIG_BLK_DEV_RAM_COUNT=16 | 326 | CONFIG_BLK_DEV_RAM_COUNT=16 |
| 300 | CONFIG_BLK_DEV_RAM_SIZE=6144 | 327 | CONFIG_BLK_DEV_RAM_SIZE=6144 |
| 301 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 328 | # CONFIG_BLK_DEV_XIP is not set |
| 302 | # CONFIG_CDROM_PKTCDVD is not set | 329 | # CONFIG_CDROM_PKTCDVD is not set |
| 303 | CONFIG_ATA_OVER_ETH=m | 330 | CONFIG_ATA_OVER_ETH=m |
| 331 | # CONFIG_BLK_DEV_HD is not set | ||
| 304 | CONFIG_MISC_DEVICES=y | 332 | CONFIG_MISC_DEVICES=y |
| 333 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
| 334 | # CONFIG_C2PORT is not set | ||
| 335 | |||
| 336 | # | ||
| 337 | # EEPROM support | ||
| 338 | # | ||
| 305 | # CONFIG_EEPROM_93CX6 is not set | 339 | # CONFIG_EEPROM_93CX6 is not set |
| 340 | CONFIG_HAVE_IDE=y | ||
| 306 | # CONFIG_IDE is not set | 341 | # CONFIG_IDE is not set |
| 307 | 342 | ||
| 308 | # | 343 | # |
| @@ -342,14 +377,17 @@ CONFIG_SCSI_SPI_ATTRS=y | |||
| 342 | # CONFIG_SCSI_FC_ATTRS is not set | 377 | # CONFIG_SCSI_FC_ATTRS is not set |
| 343 | CONFIG_SCSI_ISCSI_ATTRS=m | 378 | CONFIG_SCSI_ISCSI_ATTRS=m |
| 344 | # CONFIG_SCSI_SAS_LIBSAS is not set | 379 | # CONFIG_SCSI_SAS_LIBSAS is not set |
| 380 | # CONFIG_SCSI_SRP_ATTRS is not set | ||
| 345 | CONFIG_SCSI_LOWLEVEL=y | 381 | CONFIG_SCSI_LOWLEVEL=y |
| 346 | # CONFIG_ISCSI_TCP is not set | 382 | # CONFIG_ISCSI_TCP is not set |
| 383 | # CONFIG_LIBFC is not set | ||
| 347 | # CONFIG_SCSI_PPA is not set | 384 | # CONFIG_SCSI_PPA is not set |
| 348 | # CONFIG_SCSI_IMM is not set | 385 | # CONFIG_SCSI_IMM is not set |
| 349 | CONFIG_SCSI_LASI700=y | 386 | CONFIG_SCSI_LASI700=y |
| 350 | CONFIG_53C700_LE_ON_BE=y | 387 | CONFIG_53C700_LE_ON_BE=y |
| 351 | # CONFIG_SCSI_ZALON is not set | 388 | # CONFIG_SCSI_ZALON is not set |
| 352 | CONFIG_SCSI_DEBUG=m | 389 | CONFIG_SCSI_DEBUG=m |
| 390 | # CONFIG_SCSI_DH is not set | ||
| 353 | # CONFIG_ATA is not set | 391 | # CONFIG_ATA is not set |
| 354 | CONFIG_MD=y | 392 | CONFIG_MD=y |
| 355 | CONFIG_BLK_DEV_MD=m | 393 | CONFIG_BLK_DEV_MD=m |
| @@ -362,7 +400,6 @@ CONFIG_MD_RAID1=m | |||
| 362 | # CONFIG_MD_FAULTY is not set | 400 | # CONFIG_MD_FAULTY is not set |
| 363 | # CONFIG_BLK_DEV_DM is not set | 401 | # CONFIG_BLK_DEV_DM is not set |
| 364 | CONFIG_NETDEVICES=y | 402 | CONFIG_NETDEVICES=y |
| 365 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
| 366 | CONFIG_DUMMY=m | 403 | CONFIG_DUMMY=m |
| 367 | CONFIG_BONDING=m | 404 | CONFIG_BONDING=m |
| 368 | # CONFIG_MACVLAN is not set | 405 | # CONFIG_MACVLAN is not set |
| @@ -377,6 +414,9 @@ CONFIG_LASI_82596=y | |||
| 377 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 414 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
| 378 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 415 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
| 379 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 416 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
| 417 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
| 418 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
| 419 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
| 380 | # CONFIG_B44 is not set | 420 | # CONFIG_B44 is not set |
| 381 | # CONFIG_NET_POCKET is not set | 421 | # CONFIG_NET_POCKET is not set |
| 382 | CONFIG_NETDEV_1000=y | 422 | CONFIG_NETDEV_1000=y |
| @@ -387,6 +427,11 @@ CONFIG_NETDEV_10000=y | |||
| 387 | # | 427 | # |
| 388 | # CONFIG_WLAN_PRE80211 is not set | 428 | # CONFIG_WLAN_PRE80211 is not set |
| 389 | # CONFIG_WLAN_80211 is not set | 429 | # CONFIG_WLAN_80211 is not set |
| 430 | # CONFIG_IWLWIFI_LEDS is not set | ||
| 431 | |||
| 432 | # | ||
| 433 | # Enable WiMAX (Networking options) to see the WiMAX drivers | ||
| 434 | # | ||
| 390 | # CONFIG_WAN is not set | 435 | # CONFIG_WAN is not set |
| 391 | # CONFIG_PLIP is not set | 436 | # CONFIG_PLIP is not set |
| 392 | CONFIG_PPP=m | 437 | CONFIG_PPP=m |
| @@ -401,7 +446,6 @@ CONFIG_PPPOE=m | |||
| 401 | # CONFIG_PPPOL2TP is not set | 446 | # CONFIG_PPPOL2TP is not set |
| 402 | # CONFIG_SLIP is not set | 447 | # CONFIG_SLIP is not set |
| 403 | CONFIG_SLHC=m | 448 | CONFIG_SLHC=m |
| 404 | # CONFIG_SHAPER is not set | ||
| 405 | # CONFIG_NETCONSOLE is not set | 449 | # CONFIG_NETCONSOLE is not set |
| 406 | # CONFIG_NETPOLL is not set | 450 | # CONFIG_NETPOLL is not set |
| 407 | # CONFIG_NET_POLL_CONTROLLER is not set | 451 | # CONFIG_NET_POLL_CONTROLLER is not set |
| @@ -423,7 +467,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y | |||
| 423 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | 467 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 |
| 424 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | 468 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 |
| 425 | # CONFIG_INPUT_JOYDEV is not set | 469 | # CONFIG_INPUT_JOYDEV is not set |
| 426 | # CONFIG_INPUT_TSDEV is not set | ||
| 427 | # CONFIG_INPUT_EVDEV is not set | 470 | # CONFIG_INPUT_EVDEV is not set |
| 428 | # CONFIG_INPUT_EVBUG is not set | 471 | # CONFIG_INPUT_EVBUG is not set |
| 429 | 472 | ||
| @@ -446,8 +489,8 @@ CONFIG_MOUSE_PS2=y | |||
| 446 | CONFIG_MOUSE_PS2_ALPS=y | 489 | CONFIG_MOUSE_PS2_ALPS=y |
| 447 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | 490 | CONFIG_MOUSE_PS2_LOGIPS2PP=y |
| 448 | CONFIG_MOUSE_PS2_SYNAPTICS=y | 491 | CONFIG_MOUSE_PS2_SYNAPTICS=y |
| 449 | CONFIG_MOUSE_PS2_LIFEBOOK=y | ||
| 450 | CONFIG_MOUSE_PS2_TRACKPOINT=y | 492 | CONFIG_MOUSE_PS2_TRACKPOINT=y |
| 493 | # CONFIG_MOUSE_PS2_ELANTECH is not set | ||
| 451 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | 494 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set |
| 452 | CONFIG_MOUSE_SERIAL=m | 495 | CONFIG_MOUSE_SERIAL=m |
| 453 | # CONFIG_MOUSE_VSXXXAA is not set | 496 | # CONFIG_MOUSE_VSXXXAA is not set |
| @@ -474,9 +517,11 @@ CONFIG_SERIO_LIBPS2=y | |||
| 474 | # Character devices | 517 | # Character devices |
| 475 | # | 518 | # |
| 476 | CONFIG_VT=y | 519 | CONFIG_VT=y |
| 520 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
| 477 | CONFIG_VT_CONSOLE=y | 521 | CONFIG_VT_CONSOLE=y |
| 478 | CONFIG_HW_CONSOLE=y | 522 | CONFIG_HW_CONSOLE=y |
| 479 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 523 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
| 524 | CONFIG_DEVKMEM=y | ||
| 480 | # CONFIG_SERIAL_NONSTANDARD is not set | 525 | # CONFIG_SERIAL_NONSTANDARD is not set |
| 481 | 526 | ||
| 482 | # | 527 | # |
| @@ -501,72 +546,76 @@ CONFIG_PDC_CONSOLE=y | |||
| 501 | CONFIG_SERIAL_CORE=y | 546 | CONFIG_SERIAL_CORE=y |
| 502 | CONFIG_SERIAL_CORE_CONSOLE=y | 547 | CONFIG_SERIAL_CORE_CONSOLE=y |
| 503 | CONFIG_UNIX98_PTYS=y | 548 | CONFIG_UNIX98_PTYS=y |
| 549 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | ||
| 504 | CONFIG_LEGACY_PTYS=y | 550 | CONFIG_LEGACY_PTYS=y |
| 505 | CONFIG_LEGACY_PTY_COUNT=64 | 551 | CONFIG_LEGACY_PTY_COUNT=64 |
| 506 | CONFIG_PRINTER=m | 552 | CONFIG_PRINTER=m |
| 507 | # CONFIG_LP_CONSOLE is not set | 553 | # CONFIG_LP_CONSOLE is not set |
| 508 | CONFIG_PPDEV=m | 554 | CONFIG_PPDEV=m |
| 509 | # CONFIG_TIPAR is not set | ||
| 510 | # CONFIG_IPMI_HANDLER is not set | 555 | # CONFIG_IPMI_HANDLER is not set |
| 511 | # CONFIG_WATCHDOG is not set | ||
| 512 | # CONFIG_HW_RANDOM is not set | 556 | # CONFIG_HW_RANDOM is not set |
| 513 | CONFIG_GEN_RTC=y | ||
| 514 | CONFIG_GEN_RTC_X=y | ||
| 515 | # CONFIG_R3964 is not set | 557 | # CONFIG_R3964 is not set |
| 516 | CONFIG_RAW_DRIVER=y | 558 | CONFIG_RAW_DRIVER=y |
| 517 | CONFIG_MAX_RAW_DEVS=256 | 559 | CONFIG_MAX_RAW_DEVS=256 |
| 518 | # CONFIG_TCG_TPM is not set | 560 | # CONFIG_TCG_TPM is not set |
| 519 | # CONFIG_I2C is not set | 561 | # CONFIG_I2C is not set |
| 520 | |||
| 521 | # | ||
| 522 | # SPI support | ||
| 523 | # | ||
| 524 | # CONFIG_SPI is not set | 562 | # CONFIG_SPI is not set |
| 525 | # CONFIG_SPI_MASTER is not set | ||
| 526 | # CONFIG_W1 is not set | 563 | # CONFIG_W1 is not set |
| 527 | # CONFIG_POWER_SUPPLY is not set | 564 | # CONFIG_POWER_SUPPLY is not set |
| 528 | # CONFIG_HWMON is not set | 565 | # CONFIG_HWMON is not set |
| 566 | # CONFIG_THERMAL is not set | ||
| 567 | # CONFIG_THERMAL_HWMON is not set | ||
| 568 | # CONFIG_WATCHDOG is not set | ||
| 569 | CONFIG_SSB_POSSIBLE=y | ||
| 529 | 570 | ||
| 530 | # | 571 | # |
| 531 | # Sonics Silicon Backplane | 572 | # Sonics Silicon Backplane |
| 532 | # | 573 | # |
| 533 | CONFIG_SSB_POSSIBLE=y | ||
| 534 | # CONFIG_SSB is not set | 574 | # CONFIG_SSB is not set |
| 535 | 575 | ||
| 536 | # | 576 | # |
| 537 | # Multifunction device drivers | 577 | # Multifunction device drivers |
| 538 | # | 578 | # |
| 579 | # CONFIG_MFD_CORE is not set | ||
| 539 | # CONFIG_MFD_SM501 is not set | 580 | # CONFIG_MFD_SM501 is not set |
| 581 | # CONFIG_HTC_PASIC3 is not set | ||
| 582 | # CONFIG_MFD_TMIO is not set | ||
| 583 | # CONFIG_REGULATOR is not set | ||
| 540 | 584 | ||
| 541 | # | 585 | # |
| 542 | # Multimedia devices | 586 | # Multimedia devices |
| 543 | # | 587 | # |
| 588 | |||
| 589 | # | ||
| 590 | # Multimedia core support | ||
| 591 | # | ||
| 544 | # CONFIG_VIDEO_DEV is not set | 592 | # CONFIG_VIDEO_DEV is not set |
| 545 | # CONFIG_DVB_CORE is not set | 593 | # CONFIG_DVB_CORE is not set |
| 546 | # CONFIG_DAB is not set | 594 | # CONFIG_VIDEO_MEDIA is not set |
| 547 | 595 | ||
| 548 | # | 596 | # |
| 549 | # Graphics support | 597 | # Multimedia drivers |
| 550 | # | 598 | # |
| 551 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 599 | # CONFIG_DAB is not set |
| 552 | 600 | ||
| 553 | # | 601 | # |
| 554 | # Display device support | 602 | # Graphics support |
| 555 | # | 603 | # |
| 556 | # CONFIG_DISPLAY_SUPPORT is not set | ||
| 557 | # CONFIG_VGASTATE is not set | 604 | # CONFIG_VGASTATE is not set |
| 558 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 605 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
| 559 | CONFIG_FB=y | 606 | CONFIG_FB=y |
| 560 | # CONFIG_FIRMWARE_EDID is not set | 607 | # CONFIG_FIRMWARE_EDID is not set |
| 561 | # CONFIG_FB_DDC is not set | 608 | # CONFIG_FB_DDC is not set |
| 609 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
| 562 | CONFIG_FB_CFB_FILLRECT=y | 610 | CONFIG_FB_CFB_FILLRECT=y |
| 563 | CONFIG_FB_CFB_COPYAREA=y | 611 | CONFIG_FB_CFB_COPYAREA=y |
| 564 | CONFIG_FB_CFB_IMAGEBLIT=y | 612 | CONFIG_FB_CFB_IMAGEBLIT=y |
| 613 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
| 565 | # CONFIG_FB_SYS_FILLRECT is not set | 614 | # CONFIG_FB_SYS_FILLRECT is not set |
| 566 | # CONFIG_FB_SYS_COPYAREA is not set | 615 | # CONFIG_FB_SYS_COPYAREA is not set |
| 567 | # CONFIG_FB_SYS_IMAGEBLIT is not set | 616 | # CONFIG_FB_SYS_IMAGEBLIT is not set |
| 617 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
| 568 | # CONFIG_FB_SYS_FOPS is not set | 618 | # CONFIG_FB_SYS_FOPS is not set |
| 569 | CONFIG_FB_DEFERRED_IO=y | ||
| 570 | # CONFIG_FB_SVGALIB is not set | 619 | # CONFIG_FB_SVGALIB is not set |
| 571 | # CONFIG_FB_MACMODES is not set | 620 | # CONFIG_FB_MACMODES is not set |
| 572 | # CONFIG_FB_BACKLIGHT is not set | 621 | # CONFIG_FB_BACKLIGHT is not set |
| @@ -579,6 +628,14 @@ CONFIG_FB_TILEBLITTING=y | |||
| 579 | CONFIG_FB_STI=y | 628 | CONFIG_FB_STI=y |
| 580 | # CONFIG_FB_S1D13XXX is not set | 629 | # CONFIG_FB_S1D13XXX is not set |
| 581 | # CONFIG_FB_VIRTUAL is not set | 630 | # CONFIG_FB_VIRTUAL is not set |
| 631 | # CONFIG_FB_METRONOME is not set | ||
| 632 | # CONFIG_FB_MB862XX is not set | ||
| 633 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
| 634 | |||
| 635 | # | ||
| 636 | # Display device support | ||
| 637 | # | ||
| 638 | # CONFIG_DISPLAY_SUPPORT is not set | ||
| 582 | 639 | ||
| 583 | # | 640 | # |
| 584 | # Console display driver support | 641 | # Console display driver support |
| @@ -606,15 +663,8 @@ CONFIG_LOGO=y | |||
| 606 | # CONFIG_LOGO_LINUX_VGA16 is not set | 663 | # CONFIG_LOGO_LINUX_VGA16 is not set |
| 607 | # CONFIG_LOGO_LINUX_CLUT224 is not set | 664 | # CONFIG_LOGO_LINUX_CLUT224 is not set |
| 608 | CONFIG_LOGO_PARISC_CLUT224=y | 665 | CONFIG_LOGO_PARISC_CLUT224=y |
| 609 | |||
| 610 | # | ||
| 611 | # Sound | ||
| 612 | # | ||
| 613 | CONFIG_SOUND=y | 666 | CONFIG_SOUND=y |
| 614 | 667 | CONFIG_SOUND_OSS_CORE=y | |
| 615 | # | ||
| 616 | # Advanced Linux Sound Architecture | ||
| 617 | # | ||
| 618 | CONFIG_SND=y | 668 | CONFIG_SND=y |
| 619 | CONFIG_SND_TIMER=y | 669 | CONFIG_SND_TIMER=y |
| 620 | CONFIG_SND_PCM=y | 670 | CONFIG_SND_PCM=y |
| @@ -630,10 +680,7 @@ CONFIG_SND_SUPPORT_OLD_API=y | |||
| 630 | CONFIG_SND_VERBOSE_PROCFS=y | 680 | CONFIG_SND_VERBOSE_PROCFS=y |
| 631 | # CONFIG_SND_VERBOSE_PRINTK is not set | 681 | # CONFIG_SND_VERBOSE_PRINTK is not set |
| 632 | # CONFIG_SND_DEBUG is not set | 682 | # CONFIG_SND_DEBUG is not set |
| 633 | 683 | CONFIG_SND_DRIVERS=y | |
| 634 | # | ||
| 635 | # Generic devices | ||
| 636 | # | ||
| 637 | # CONFIG_SND_DUMMY is not set | 684 | # CONFIG_SND_DUMMY is not set |
| 638 | # CONFIG_SND_VIRMIDI is not set | 685 | # CONFIG_SND_VIRMIDI is not set |
| 639 | # CONFIG_SND_MTPAV is not set | 686 | # CONFIG_SND_MTPAV is not set |
| @@ -641,63 +688,82 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
| 641 | # CONFIG_SND_SERIAL_U16550 is not set | 688 | # CONFIG_SND_SERIAL_U16550 is not set |
| 642 | # CONFIG_SND_MPU401 is not set | 689 | # CONFIG_SND_MPU401 is not set |
| 643 | # CONFIG_SND_PORTMAN2X4 is not set | 690 | # CONFIG_SND_PORTMAN2X4 is not set |
| 644 | 691 | CONFIG_SND_GSC=y | |
| 645 | # | ||
| 646 | # GSC devices | ||
| 647 | # | ||
| 648 | CONFIG_SND_HARMONY=y | 692 | CONFIG_SND_HARMONY=y |
| 649 | |||
| 650 | # | ||
| 651 | # System on Chip audio support | ||
| 652 | # | ||
| 653 | # CONFIG_SND_SOC is not set | 693 | # CONFIG_SND_SOC is not set |
| 654 | |||
| 655 | # | ||
| 656 | # SoC Audio support for SuperH | ||
| 657 | # | ||
| 658 | |||
| 659 | # | ||
| 660 | # Open Sound System | ||
| 661 | # | ||
| 662 | # CONFIG_SOUND_PRIME is not set | 694 | # CONFIG_SOUND_PRIME is not set |
| 663 | CONFIG_HID_SUPPORT=y | 695 | CONFIG_HID_SUPPORT=y |
| 664 | CONFIG_HID=y | 696 | CONFIG_HID=y |
| 665 | CONFIG_HID_DEBUG=y | 697 | CONFIG_HID_DEBUG=y |
| 698 | # CONFIG_HIDRAW is not set | ||
| 699 | # CONFIG_HID_PID is not set | ||
| 700 | |||
| 701 | # | ||
| 702 | # Special HID drivers | ||
| 703 | # | ||
| 704 | CONFIG_HID_COMPAT=y | ||
| 666 | CONFIG_USB_SUPPORT=y | 705 | CONFIG_USB_SUPPORT=y |
| 667 | # CONFIG_USB_ARCH_HAS_HCD is not set | 706 | # CONFIG_USB_ARCH_HAS_HCD is not set |
| 668 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 707 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
| 669 | # CONFIG_USB_ARCH_HAS_EHCI is not set | 708 | # CONFIG_USB_ARCH_HAS_EHCI is not set |
| 670 | 709 | ||
| 671 | # | 710 | # |
| 672 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 711 | # Enable Host or Gadget support to see Inventra options |
| 673 | # | 712 | # |
| 674 | 713 | ||
| 675 | # | 714 | # |
| 676 | # USB Gadget Support | 715 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; |
| 677 | # | 716 | # |
| 678 | # CONFIG_USB_GADGET is not set | 717 | # CONFIG_USB_GADGET is not set |
| 718 | |||
| 719 | # | ||
| 720 | # OTG and related infrastructure | ||
| 721 | # | ||
| 679 | # CONFIG_MMC is not set | 722 | # CONFIG_MMC is not set |
| 723 | # CONFIG_MEMSTICK is not set | ||
| 680 | # CONFIG_NEW_LEDS is not set | 724 | # CONFIG_NEW_LEDS is not set |
| 681 | # CONFIG_RTC_CLASS is not set | 725 | # CONFIG_ACCESSIBILITY is not set |
| 726 | CONFIG_RTC_LIB=y | ||
| 727 | CONFIG_RTC_CLASS=y | ||
| 728 | CONFIG_RTC_HCTOSYS=y | ||
| 729 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
| 730 | # CONFIG_RTC_DEBUG is not set | ||
| 682 | 731 | ||
| 683 | # | 732 | # |
| 684 | # DMA Engine support | 733 | # RTC interfaces |
| 685 | # | 734 | # |
| 686 | # CONFIG_DMA_ENGINE is not set | 735 | CONFIG_RTC_INTF_SYSFS=y |
| 736 | CONFIG_RTC_INTF_PROC=y | ||
| 737 | CONFIG_RTC_INTF_DEV=y | ||
| 738 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
| 739 | # CONFIG_RTC_DRV_TEST is not set | ||
| 687 | 740 | ||
| 688 | # | 741 | # |
| 689 | # DMA Clients | 742 | # SPI RTC drivers |
| 690 | # | 743 | # |
| 691 | 744 | ||
| 692 | # | 745 | # |
| 693 | # DMA Devices | 746 | # Platform RTC drivers |
| 694 | # | 747 | # |
| 695 | # CONFIG_AUXDISPLAY is not set | 748 | # CONFIG_RTC_DRV_DS1286 is not set |
| 749 | # CONFIG_RTC_DRV_DS1511 is not set | ||
| 750 | # CONFIG_RTC_DRV_DS1553 is not set | ||
| 751 | # CONFIG_RTC_DRV_DS1742 is not set | ||
| 752 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
| 753 | # CONFIG_RTC_DRV_M48T86 is not set | ||
| 754 | # CONFIG_RTC_DRV_M48T35 is not set | ||
| 755 | # CONFIG_RTC_DRV_M48T59 is not set | ||
| 756 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
| 757 | # CONFIG_RTC_DRV_V3020 is not set | ||
| 696 | 758 | ||
| 697 | # | 759 | # |
| 698 | # Userspace I/O | 760 | # on-CPU RTC drivers |
| 699 | # | 761 | # |
| 762 | CONFIG_RTC_DRV_PARISC=y | ||
| 763 | # CONFIG_DMADEVICES is not set | ||
| 764 | # CONFIG_AUXDISPLAY is not set | ||
| 700 | # CONFIG_UIO is not set | 765 | # CONFIG_UIO is not set |
| 766 | # CONFIG_STAGING is not set | ||
| 701 | 767 | ||
| 702 | # | 768 | # |
| 703 | # File systems | 769 | # File systems |
| @@ -707,7 +773,7 @@ CONFIG_EXT2_FS=y | |||
| 707 | # CONFIG_EXT2_FS_XIP is not set | 773 | # CONFIG_EXT2_FS_XIP is not set |
| 708 | CONFIG_EXT3_FS=y | 774 | CONFIG_EXT3_FS=y |
| 709 | # CONFIG_EXT3_FS_XATTR is not set | 775 | # CONFIG_EXT3_FS_XATTR is not set |
| 710 | # CONFIG_EXT4DEV_FS is not set | 776 | # CONFIG_EXT4_FS is not set |
| 711 | CONFIG_JBD=y | 777 | CONFIG_JBD=y |
| 712 | # CONFIG_JBD_DEBUG is not set | 778 | # CONFIG_JBD_DEBUG is not set |
| 713 | # CONFIG_REISERFS_FS is not set | 779 | # CONFIG_REISERFS_FS is not set |
| @@ -717,19 +783,18 @@ CONFIG_JFS_FS=m | |||
| 717 | # CONFIG_JFS_DEBUG is not set | 783 | # CONFIG_JFS_DEBUG is not set |
| 718 | # CONFIG_JFS_STATISTICS is not set | 784 | # CONFIG_JFS_STATISTICS is not set |
| 719 | CONFIG_FS_POSIX_ACL=y | 785 | CONFIG_FS_POSIX_ACL=y |
| 786 | CONFIG_FILE_LOCKING=y | ||
| 720 | CONFIG_XFS_FS=m | 787 | CONFIG_XFS_FS=m |
| 721 | # CONFIG_XFS_QUOTA is not set | 788 | # CONFIG_XFS_QUOTA is not set |
| 722 | # CONFIG_XFS_SECURITY is not set | ||
| 723 | # CONFIG_XFS_POSIX_ACL is not set | 789 | # CONFIG_XFS_POSIX_ACL is not set |
| 724 | # CONFIG_XFS_RT is not set | 790 | # CONFIG_XFS_RT is not set |
| 725 | # CONFIG_GFS2_FS is not set | 791 | # CONFIG_XFS_DEBUG is not set |
| 726 | # CONFIG_OCFS2_FS is not set | 792 | # CONFIG_OCFS2_FS is not set |
| 727 | # CONFIG_MINIX_FS is not set | 793 | # CONFIG_BTRFS_FS is not set |
| 728 | # CONFIG_ROMFS_FS is not set | 794 | CONFIG_DNOTIFY=y |
| 729 | CONFIG_INOTIFY=y | 795 | CONFIG_INOTIFY=y |
| 730 | CONFIG_INOTIFY_USER=y | 796 | CONFIG_INOTIFY_USER=y |
| 731 | # CONFIG_QUOTA is not set | 797 | # CONFIG_QUOTA is not set |
| 732 | CONFIG_DNOTIFY=y | ||
| 733 | # CONFIG_AUTOFS_FS is not set | 798 | # CONFIG_AUTOFS_FS is not set |
| 734 | CONFIG_AUTOFS4_FS=y | 799 | CONFIG_AUTOFS4_FS=y |
| 735 | # CONFIG_FUSE_FS is not set | 800 | # CONFIG_FUSE_FS is not set |
| @@ -759,16 +824,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
| 759 | CONFIG_PROC_FS=y | 824 | CONFIG_PROC_FS=y |
| 760 | CONFIG_PROC_KCORE=y | 825 | CONFIG_PROC_KCORE=y |
| 761 | CONFIG_PROC_SYSCTL=y | 826 | CONFIG_PROC_SYSCTL=y |
| 827 | CONFIG_PROC_PAGE_MONITOR=y | ||
| 762 | CONFIG_SYSFS=y | 828 | CONFIG_SYSFS=y |
| 763 | CONFIG_TMPFS=y | 829 | CONFIG_TMPFS=y |
| 764 | # CONFIG_TMPFS_POSIX_ACL is not set | 830 | # CONFIG_TMPFS_POSIX_ACL is not set |
| 765 | # CONFIG_HUGETLB_PAGE is not set | 831 | # CONFIG_HUGETLB_PAGE is not set |
| 766 | CONFIG_RAMFS=y | ||
| 767 | # CONFIG_CONFIGFS_FS is not set | 832 | # CONFIG_CONFIGFS_FS is not set |
| 768 | 833 | CONFIG_MISC_FILESYSTEMS=y | |
| 769 | # | ||
| 770 | # Miscellaneous filesystems | ||
| 771 | # | ||
| 772 | # CONFIG_ADFS_FS is not set | 834 | # CONFIG_ADFS_FS is not set |
| 773 | # CONFIG_AFFS_FS is not set | 835 | # CONFIG_AFFS_FS is not set |
| 774 | # CONFIG_ECRYPT_FS is not set | 836 | # CONFIG_ECRYPT_FS is not set |
| @@ -778,35 +840,34 @@ CONFIG_RAMFS=y | |||
| 778 | # CONFIG_BFS_FS is not set | 840 | # CONFIG_BFS_FS is not set |
| 779 | # CONFIG_EFS_FS is not set | 841 | # CONFIG_EFS_FS is not set |
| 780 | # CONFIG_CRAMFS is not set | 842 | # CONFIG_CRAMFS is not set |
| 843 | # CONFIG_SQUASHFS is not set | ||
| 781 | # CONFIG_VXFS_FS is not set | 844 | # CONFIG_VXFS_FS is not set |
| 845 | # CONFIG_MINIX_FS is not set | ||
| 846 | # CONFIG_OMFS_FS is not set | ||
| 782 | # CONFIG_HPFS_FS is not set | 847 | # CONFIG_HPFS_FS is not set |
| 783 | # CONFIG_QNX4FS_FS is not set | 848 | # CONFIG_QNX4FS_FS is not set |
| 849 | # CONFIG_ROMFS_FS is not set | ||
| 784 | # CONFIG_SYSV_FS is not set | 850 | # CONFIG_SYSV_FS is not set |
| 785 | CONFIG_UFS_FS=m | 851 | CONFIG_UFS_FS=m |
| 786 | # CONFIG_UFS_FS_WRITE is not set | 852 | # CONFIG_UFS_FS_WRITE is not set |
| 787 | # CONFIG_UFS_DEBUG is not set | 853 | # CONFIG_UFS_DEBUG is not set |
| 788 | 854 | CONFIG_NETWORK_FILESYSTEMS=y | |
| 789 | # | ||
| 790 | # Network File Systems | ||
| 791 | # | ||
| 792 | CONFIG_NFS_FS=y | 855 | CONFIG_NFS_FS=y |
| 793 | CONFIG_NFS_V3=y | 856 | CONFIG_NFS_V3=y |
| 794 | # CONFIG_NFS_V3_ACL is not set | 857 | # CONFIG_NFS_V3_ACL is not set |
| 795 | CONFIG_NFS_V4=y | 858 | CONFIG_NFS_V4=y |
| 796 | CONFIG_NFS_DIRECTIO=y | 859 | CONFIG_ROOT_NFS=y |
| 797 | CONFIG_NFSD=m | 860 | CONFIG_NFSD=m |
| 798 | CONFIG_NFSD_V3=y | 861 | CONFIG_NFSD_V3=y |
| 799 | # CONFIG_NFSD_V3_ACL is not set | 862 | # CONFIG_NFSD_V3_ACL is not set |
| 800 | CONFIG_NFSD_V4=y | 863 | CONFIG_NFSD_V4=y |
| 801 | CONFIG_NFSD_TCP=y | ||
| 802 | CONFIG_ROOT_NFS=y | ||
| 803 | CONFIG_LOCKD=y | 864 | CONFIG_LOCKD=y |
| 804 | CONFIG_LOCKD_V4=y | 865 | CONFIG_LOCKD_V4=y |
| 805 | CONFIG_EXPORTFS=m | 866 | CONFIG_EXPORTFS=m |
| 806 | CONFIG_NFS_COMMON=y | 867 | CONFIG_NFS_COMMON=y |
| 807 | CONFIG_SUNRPC=y | 868 | CONFIG_SUNRPC=y |
| 808 | CONFIG_SUNRPC_GSS=y | 869 | CONFIG_SUNRPC_GSS=y |
| 809 | # CONFIG_SUNRPC_BIND34 is not set | 870 | # CONFIG_SUNRPC_REGISTER_V4 is not set |
| 810 | CONFIG_RPCSEC_GSS_KRB5=y | 871 | CONFIG_RPCSEC_GSS_KRB5=y |
| 811 | CONFIG_RPCSEC_GSS_SPKM3=m | 872 | CONFIG_RPCSEC_GSS_SPKM3=m |
| 812 | CONFIG_SMB_FS=m | 873 | CONFIG_SMB_FS=m |
| @@ -815,6 +876,7 @@ CONFIG_SMB_NLS_REMOTE="cp437" | |||
| 815 | CONFIG_CIFS=m | 876 | CONFIG_CIFS=m |
| 816 | # CONFIG_CIFS_STATS is not set | 877 | # CONFIG_CIFS_STATS is not set |
| 817 | # CONFIG_CIFS_WEAK_PW_HASH is not set | 878 | # CONFIG_CIFS_WEAK_PW_HASH is not set |
| 879 | # CONFIG_CIFS_UPCALL is not set | ||
| 818 | # CONFIG_CIFS_XATTR is not set | 880 | # CONFIG_CIFS_XATTR is not set |
| 819 | # CONFIG_CIFS_DEBUG2 is not set | 881 | # CONFIG_CIFS_DEBUG2 is not set |
| 820 | # CONFIG_CIFS_EXPERIMENTAL is not set | 882 | # CONFIG_CIFS_EXPERIMENTAL is not set |
| @@ -827,10 +889,6 @@ CONFIG_CIFS=m | |||
| 827 | # | 889 | # |
| 828 | # CONFIG_PARTITION_ADVANCED is not set | 890 | # CONFIG_PARTITION_ADVANCED is not set |
| 829 | CONFIG_MSDOS_PARTITION=y | 891 | CONFIG_MSDOS_PARTITION=y |
| 830 | |||
| 831 | # | ||
| 832 | # Native Language Support | ||
| 833 | # | ||
| 834 | CONFIG_NLS=y | 892 | CONFIG_NLS=y |
| 835 | CONFIG_NLS_DEFAULT="iso8859-1" | 893 | CONFIG_NLS_DEFAULT="iso8859-1" |
| 836 | CONFIG_NLS_CODEPAGE_437=m | 894 | CONFIG_NLS_CODEPAGE_437=m |
| @@ -871,33 +929,28 @@ CONFIG_NLS_ISO8859_15=m | |||
| 871 | CONFIG_NLS_KOI8_R=m | 929 | CONFIG_NLS_KOI8_R=m |
| 872 | CONFIG_NLS_KOI8_U=m | 930 | CONFIG_NLS_KOI8_U=m |
| 873 | CONFIG_NLS_UTF8=m | 931 | CONFIG_NLS_UTF8=m |
| 874 | |||
| 875 | # | ||
| 876 | # Distributed Lock Manager | ||
| 877 | # | ||
| 878 | # CONFIG_DLM is not set | 932 | # CONFIG_DLM is not set |
| 879 | 933 | ||
| 880 | # | 934 | # |
| 881 | # Profiling support | ||
| 882 | # | ||
| 883 | CONFIG_PROFILING=y | ||
| 884 | CONFIG_OPROFILE=m | ||
| 885 | |||
| 886 | # | ||
| 887 | # Kernel hacking | 935 | # Kernel hacking |
| 888 | # | 936 | # |
| 889 | # CONFIG_PRINTK_TIME is not set | 937 | # CONFIG_PRINTK_TIME is not set |
| 938 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
| 890 | CONFIG_ENABLE_MUST_CHECK=y | 939 | CONFIG_ENABLE_MUST_CHECK=y |
| 940 | CONFIG_FRAME_WARN=1024 | ||
| 891 | CONFIG_MAGIC_SYSRQ=y | 941 | CONFIG_MAGIC_SYSRQ=y |
| 892 | # CONFIG_UNUSED_SYMBOLS is not set | 942 | # CONFIG_UNUSED_SYMBOLS is not set |
| 893 | # CONFIG_DEBUG_FS is not set | 943 | CONFIG_DEBUG_FS=y |
| 894 | # CONFIG_HEADERS_CHECK is not set | 944 | # CONFIG_HEADERS_CHECK is not set |
| 895 | CONFIG_DEBUG_KERNEL=y | 945 | CONFIG_DEBUG_KERNEL=y |
| 896 | # CONFIG_DEBUG_SHIRQ is not set | 946 | # CONFIG_DEBUG_SHIRQ is not set |
| 897 | CONFIG_DETECT_SOFTLOCKUP=y | 947 | CONFIG_DETECT_SOFTLOCKUP=y |
| 948 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
| 949 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
| 898 | CONFIG_SCHED_DEBUG=y | 950 | CONFIG_SCHED_DEBUG=y |
| 899 | # CONFIG_SCHEDSTATS is not set | 951 | # CONFIG_SCHEDSTATS is not set |
| 900 | # CONFIG_TIMER_STATS is not set | 952 | # CONFIG_TIMER_STATS is not set |
| 953 | # CONFIG_DEBUG_OBJECTS is not set | ||
| 901 | # CONFIG_DEBUG_SLAB is not set | 954 | # CONFIG_DEBUG_SLAB is not set |
| 902 | # CONFIG_DEBUG_RT_MUTEXES is not set | 955 | # CONFIG_DEBUG_RT_MUTEXES is not set |
| 903 | # CONFIG_RT_MUTEX_TESTER is not set | 956 | # CONFIG_RT_MUTEX_TESTER is not set |
| @@ -909,10 +962,32 @@ CONFIG_DEBUG_MUTEXES=y | |||
| 909 | CONFIG_DEBUG_BUGVERBOSE=y | 962 | CONFIG_DEBUG_BUGVERBOSE=y |
| 910 | # CONFIG_DEBUG_INFO is not set | 963 | # CONFIG_DEBUG_INFO is not set |
| 911 | # CONFIG_DEBUG_VM is not set | 964 | # CONFIG_DEBUG_VM is not set |
| 965 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
| 966 | CONFIG_DEBUG_MEMORY_INIT=y | ||
| 912 | # CONFIG_DEBUG_LIST is not set | 967 | # CONFIG_DEBUG_LIST is not set |
| 913 | CONFIG_FORCED_INLINING=y | 968 | # CONFIG_DEBUG_SG is not set |
| 969 | # CONFIG_DEBUG_NOTIFIERS is not set | ||
| 970 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
| 914 | # CONFIG_RCU_TORTURE_TEST is not set | 971 | # CONFIG_RCU_TORTURE_TEST is not set |
| 972 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
| 973 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
| 974 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
| 915 | # CONFIG_FAULT_INJECTION is not set | 975 | # CONFIG_FAULT_INJECTION is not set |
| 976 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
| 977 | CONFIG_NOP_TRACER=y | ||
| 978 | CONFIG_RING_BUFFER=y | ||
| 979 | CONFIG_TRACING=y | ||
| 980 | |||
| 981 | # | ||
| 982 | # Tracers | ||
| 983 | # | ||
| 984 | # CONFIG_SCHED_TRACER is not set | ||
| 985 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
| 986 | # CONFIG_BOOT_TRACER is not set | ||
| 987 | # CONFIG_TRACE_BRANCH_PROFILING is not set | ||
| 988 | # CONFIG_FTRACE_STARTUP_TEST is not set | ||
| 989 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
| 990 | # CONFIG_SAMPLES is not set | ||
| 916 | CONFIG_DEBUG_RODATA=y | 991 | CONFIG_DEBUG_RODATA=y |
| 917 | 992 | ||
| 918 | # | 993 | # |
| @@ -921,57 +996,113 @@ CONFIG_DEBUG_RODATA=y | |||
| 921 | CONFIG_KEYS=y | 996 | CONFIG_KEYS=y |
| 922 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | 997 | CONFIG_KEYS_DEBUG_PROC_KEYS=y |
| 923 | # CONFIG_SECURITY is not set | 998 | # CONFIG_SECURITY is not set |
| 999 | # CONFIG_SECURITYFS is not set | ||
| 1000 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
| 924 | CONFIG_CRYPTO=y | 1001 | CONFIG_CRYPTO=y |
| 1002 | |||
| 1003 | # | ||
| 1004 | # Crypto core or helper | ||
| 1005 | # | ||
| 1006 | # CONFIG_CRYPTO_FIPS is not set | ||
| 925 | CONFIG_CRYPTO_ALGAPI=y | 1007 | CONFIG_CRYPTO_ALGAPI=y |
| 1008 | CONFIG_CRYPTO_ALGAPI2=y | ||
| 1009 | CONFIG_CRYPTO_AEAD=m | ||
| 1010 | CONFIG_CRYPTO_AEAD2=y | ||
| 926 | CONFIG_CRYPTO_BLKCIPHER=y | 1011 | CONFIG_CRYPTO_BLKCIPHER=y |
| 1012 | CONFIG_CRYPTO_BLKCIPHER2=y | ||
| 927 | CONFIG_CRYPTO_HASH=y | 1013 | CONFIG_CRYPTO_HASH=y |
| 1014 | CONFIG_CRYPTO_HASH2=y | ||
| 1015 | CONFIG_CRYPTO_RNG2=y | ||
| 928 | CONFIG_CRYPTO_MANAGER=y | 1016 | CONFIG_CRYPTO_MANAGER=y |
| 1017 | CONFIG_CRYPTO_MANAGER2=y | ||
| 1018 | # CONFIG_CRYPTO_GF128MUL is not set | ||
| 1019 | CONFIG_CRYPTO_NULL=m | ||
| 1020 | # CONFIG_CRYPTO_CRYPTD is not set | ||
| 1021 | CONFIG_CRYPTO_AUTHENC=m | ||
| 1022 | CONFIG_CRYPTO_TEST=m | ||
| 1023 | |||
| 1024 | # | ||
| 1025 | # Authenticated Encryption with Associated Data | ||
| 1026 | # | ||
| 1027 | # CONFIG_CRYPTO_CCM is not set | ||
| 1028 | # CONFIG_CRYPTO_GCM is not set | ||
| 1029 | # CONFIG_CRYPTO_SEQIV is not set | ||
| 1030 | |||
| 1031 | # | ||
| 1032 | # Block modes | ||
| 1033 | # | ||
| 1034 | CONFIG_CRYPTO_CBC=y | ||
| 1035 | # CONFIG_CRYPTO_CTR is not set | ||
| 1036 | # CONFIG_CRYPTO_CTS is not set | ||
| 1037 | CONFIG_CRYPTO_ECB=m | ||
| 1038 | # CONFIG_CRYPTO_LRW is not set | ||
| 1039 | # CONFIG_CRYPTO_PCBC is not set | ||
| 1040 | # CONFIG_CRYPTO_XTS is not set | ||
| 1041 | |||
| 1042 | # | ||
| 1043 | # Hash modes | ||
| 1044 | # | ||
| 929 | CONFIG_CRYPTO_HMAC=y | 1045 | CONFIG_CRYPTO_HMAC=y |
| 930 | # CONFIG_CRYPTO_XCBC is not set | 1046 | # CONFIG_CRYPTO_XCBC is not set |
| 931 | CONFIG_CRYPTO_NULL=m | 1047 | |
| 1048 | # | ||
| 1049 | # Digest | ||
| 1050 | # | ||
| 1051 | CONFIG_CRYPTO_CRC32C=m | ||
| 932 | CONFIG_CRYPTO_MD4=m | 1052 | CONFIG_CRYPTO_MD4=m |
| 933 | CONFIG_CRYPTO_MD5=y | 1053 | CONFIG_CRYPTO_MD5=y |
| 1054 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
| 1055 | # CONFIG_CRYPTO_RMD128 is not set | ||
| 1056 | # CONFIG_CRYPTO_RMD160 is not set | ||
| 1057 | # CONFIG_CRYPTO_RMD256 is not set | ||
| 1058 | # CONFIG_CRYPTO_RMD320 is not set | ||
| 934 | CONFIG_CRYPTO_SHA1=m | 1059 | CONFIG_CRYPTO_SHA1=m |
| 935 | CONFIG_CRYPTO_SHA256=m | 1060 | CONFIG_CRYPTO_SHA256=m |
| 936 | CONFIG_CRYPTO_SHA512=m | 1061 | CONFIG_CRYPTO_SHA512=m |
| 937 | CONFIG_CRYPTO_WP512=m | ||
| 938 | CONFIG_CRYPTO_TGR192=m | 1062 | CONFIG_CRYPTO_TGR192=m |
| 939 | # CONFIG_CRYPTO_GF128MUL is not set | 1063 | CONFIG_CRYPTO_WP512=m |
| 940 | CONFIG_CRYPTO_ECB=m | 1064 | |
| 941 | CONFIG_CRYPTO_CBC=y | 1065 | # |
| 942 | # CONFIG_CRYPTO_PCBC is not set | 1066 | # Ciphers |
| 943 | # CONFIG_CRYPTO_LRW is not set | 1067 | # |
| 944 | # CONFIG_CRYPTO_XTS is not set | ||
| 945 | # CONFIG_CRYPTO_CRYPTD is not set | ||
| 946 | CONFIG_CRYPTO_DES=y | ||
| 947 | # CONFIG_CRYPTO_FCRYPT is not set | ||
| 948 | CONFIG_CRYPTO_BLOWFISH=m | ||
| 949 | CONFIG_CRYPTO_TWOFISH=m | ||
| 950 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
| 951 | CONFIG_CRYPTO_SERPENT=m | ||
| 952 | CONFIG_CRYPTO_AES=m | 1068 | CONFIG_CRYPTO_AES=m |
| 1069 | CONFIG_CRYPTO_ANUBIS=m | ||
| 1070 | CONFIG_CRYPTO_ARC4=m | ||
| 1071 | CONFIG_CRYPTO_BLOWFISH=m | ||
| 1072 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
| 953 | CONFIG_CRYPTO_CAST5=m | 1073 | CONFIG_CRYPTO_CAST5=m |
| 954 | CONFIG_CRYPTO_CAST6=m | 1074 | CONFIG_CRYPTO_CAST6=m |
| 955 | CONFIG_CRYPTO_TEA=m | 1075 | CONFIG_CRYPTO_DES=y |
| 956 | CONFIG_CRYPTO_ARC4=m | 1076 | # CONFIG_CRYPTO_FCRYPT is not set |
| 957 | CONFIG_CRYPTO_KHAZAD=m | 1077 | CONFIG_CRYPTO_KHAZAD=m |
| 958 | CONFIG_CRYPTO_ANUBIS=m | 1078 | # CONFIG_CRYPTO_SALSA20 is not set |
| 959 | # CONFIG_CRYPTO_SEED is not set | 1079 | # CONFIG_CRYPTO_SEED is not set |
| 1080 | CONFIG_CRYPTO_SERPENT=m | ||
| 1081 | CONFIG_CRYPTO_TEA=m | ||
| 1082 | CONFIG_CRYPTO_TWOFISH=m | ||
| 1083 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
| 1084 | |||
| 1085 | # | ||
| 1086 | # Compression | ||
| 1087 | # | ||
| 960 | CONFIG_CRYPTO_DEFLATE=m | 1088 | CONFIG_CRYPTO_DEFLATE=m |
| 961 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1089 | # CONFIG_CRYPTO_LZO is not set |
| 962 | CONFIG_CRYPTO_CRC32C=m | 1090 | |
| 963 | # CONFIG_CRYPTO_CAMELLIA is not set | 1091 | # |
| 964 | CONFIG_CRYPTO_TEST=m | 1092 | # Random Number Generation |
| 965 | # CONFIG_CRYPTO_AUTHENC is not set | 1093 | # |
| 1094 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
| 966 | # CONFIG_CRYPTO_HW is not set | 1095 | # CONFIG_CRYPTO_HW is not set |
| 967 | 1096 | ||
| 968 | # | 1097 | # |
| 969 | # Library routines | 1098 | # Library routines |
| 970 | # | 1099 | # |
| 971 | CONFIG_BITREVERSE=y | 1100 | CONFIG_BITREVERSE=y |
| 1101 | CONFIG_GENERIC_FIND_LAST_BIT=y | ||
| 972 | CONFIG_CRC_CCITT=m | 1102 | CONFIG_CRC_CCITT=m |
| 973 | # CONFIG_CRC16 is not set | 1103 | # CONFIG_CRC16 is not set |
| 974 | # CONFIG_CRC_ITU_T is not set | 1104 | # CONFIG_CRC_T10DIF is not set |
| 1105 | CONFIG_CRC_ITU_T=m | ||
| 975 | CONFIG_CRC32=y | 1106 | CONFIG_CRC32=y |
| 976 | # CONFIG_CRC7 is not set | 1107 | # CONFIG_CRC7 is not set |
| 977 | CONFIG_LIBCRC32C=m | 1108 | CONFIG_LIBCRC32C=m |
diff --git a/arch/parisc/configs/a500_defconfig b/arch/parisc/configs/a500_defconfig index ddacc72e38fb..f12e4b8349d9 100644 --- a/arch/parisc/configs/a500_defconfig +++ b/arch/parisc/configs/a500_defconfig | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.23 | 3 | # Linux kernel version: 2.6.29-rc8 |
| 4 | # Fri Oct 12 21:12:44 2007 | 4 | # Fri Mar 13 01:32:56 2009 |
| 5 | # | 5 | # |
| 6 | CONFIG_PARISC=y | 6 | CONFIG_PARISC=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| @@ -34,18 +34,30 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
| 34 | CONFIG_POSIX_MQUEUE=y | 34 | CONFIG_POSIX_MQUEUE=y |
| 35 | # CONFIG_BSD_PROCESS_ACCT is not set | 35 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 36 | # CONFIG_TASKSTATS is not set | 36 | # CONFIG_TASKSTATS is not set |
| 37 | # CONFIG_USER_NS is not set | ||
| 38 | # CONFIG_AUDIT is not set | 37 | # CONFIG_AUDIT is not set |
| 38 | |||
| 39 | # | ||
| 40 | # RCU Subsystem | ||
| 41 | # | ||
| 42 | CONFIG_CLASSIC_RCU=y | ||
| 43 | # CONFIG_TREE_RCU is not set | ||
| 44 | # CONFIG_PREEMPT_RCU is not set | ||
| 45 | # CONFIG_TREE_RCU_TRACE is not set | ||
| 46 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
| 39 | CONFIG_IKCONFIG=y | 47 | CONFIG_IKCONFIG=y |
| 40 | CONFIG_IKCONFIG_PROC=y | 48 | CONFIG_IKCONFIG_PROC=y |
| 41 | CONFIG_LOG_BUF_SHIFT=16 | 49 | CONFIG_LOG_BUF_SHIFT=16 |
| 42 | # CONFIG_CPUSETS is not set | 50 | # CONFIG_GROUP_SCHED is not set |
| 51 | # CONFIG_CGROUPS is not set | ||
| 43 | CONFIG_SYSFS_DEPRECATED=y | 52 | CONFIG_SYSFS_DEPRECATED=y |
| 53 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 44 | # CONFIG_RELAY is not set | 54 | # CONFIG_RELAY is not set |
| 55 | # CONFIG_NAMESPACES is not set | ||
| 45 | CONFIG_BLK_DEV_INITRD=y | 56 | CONFIG_BLK_DEV_INITRD=y |
| 46 | CONFIG_INITRAMFS_SOURCE="" | 57 | CONFIG_INITRAMFS_SOURCE="" |
| 47 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 58 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
| 48 | CONFIG_SYSCTL=y | 59 | CONFIG_SYSCTL=y |
| 60 | CONFIG_ANON_INODES=y | ||
| 49 | CONFIG_EMBEDDED=y | 61 | CONFIG_EMBEDDED=y |
| 50 | CONFIG_SYSCTL_SYSCALL=y | 62 | CONFIG_SYSCTL_SYSCALL=y |
| 51 | CONFIG_KALLSYMS=y | 63 | CONFIG_KALLSYMS=y |
| @@ -57,28 +69,40 @@ CONFIG_BUG=y | |||
| 57 | CONFIG_ELF_CORE=y | 69 | CONFIG_ELF_CORE=y |
| 58 | CONFIG_BASE_FULL=y | 70 | CONFIG_BASE_FULL=y |
| 59 | CONFIG_FUTEX=y | 71 | CONFIG_FUTEX=y |
| 60 | CONFIG_ANON_INODES=y | ||
| 61 | CONFIG_EPOLL=y | 72 | CONFIG_EPOLL=y |
| 62 | CONFIG_SIGNALFD=y | 73 | CONFIG_SIGNALFD=y |
| 74 | CONFIG_TIMERFD=y | ||
| 63 | CONFIG_EVENTFD=y | 75 | CONFIG_EVENTFD=y |
| 64 | CONFIG_SHMEM=y | 76 | CONFIG_SHMEM=y |
| 77 | CONFIG_AIO=y | ||
| 65 | CONFIG_VM_EVENT_COUNTERS=y | 78 | CONFIG_VM_EVENT_COUNTERS=y |
| 79 | CONFIG_PCI_QUIRKS=y | ||
| 80 | CONFIG_COMPAT_BRK=y | ||
| 66 | CONFIG_SLAB=y | 81 | CONFIG_SLAB=y |
| 67 | # CONFIG_SLUB is not set | 82 | # CONFIG_SLUB is not set |
| 68 | # CONFIG_SLOB is not set | 83 | # CONFIG_SLOB is not set |
| 84 | CONFIG_PROFILING=y | ||
| 85 | CONFIG_TRACEPOINTS=y | ||
| 86 | # CONFIG_MARKERS is not set | ||
| 87 | CONFIG_OPROFILE=m | ||
| 88 | CONFIG_HAVE_OPROFILE=y | ||
| 89 | CONFIG_USE_GENERIC_SMP_HELPERS=y | ||
| 90 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | ||
| 91 | CONFIG_SLABINFO=y | ||
| 69 | CONFIG_RT_MUTEXES=y | 92 | CONFIG_RT_MUTEXES=y |
| 70 | # CONFIG_TINY_SHMEM is not set | ||
| 71 | CONFIG_BASE_SMALL=0 | 93 | CONFIG_BASE_SMALL=0 |
| 72 | CONFIG_MODULES=y | 94 | CONFIG_MODULES=y |
| 95 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
| 73 | CONFIG_MODULE_UNLOAD=y | 96 | CONFIG_MODULE_UNLOAD=y |
| 74 | CONFIG_MODULE_FORCE_UNLOAD=y | 97 | CONFIG_MODULE_FORCE_UNLOAD=y |
| 75 | # CONFIG_MODVERSIONS is not set | 98 | # CONFIG_MODVERSIONS is not set |
| 76 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 99 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
| 77 | CONFIG_KMOD=y | 100 | CONFIG_INIT_ALL_POSSIBLE=y |
| 78 | CONFIG_STOP_MACHINE=y | 101 | CONFIG_STOP_MACHINE=y |
| 79 | CONFIG_BLOCK=y | 102 | CONFIG_BLOCK=y |
| 80 | # CONFIG_BLK_DEV_IO_TRACE is not set | 103 | # CONFIG_BLK_DEV_IO_TRACE is not set |
| 81 | # CONFIG_BLK_DEV_BSG is not set | 104 | # CONFIG_BLK_DEV_BSG is not set |
| 105 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
| 82 | CONFIG_BLOCK_COMPAT=y | 106 | CONFIG_BLOCK_COMPAT=y |
| 83 | 107 | ||
| 84 | # | 108 | # |
| @@ -93,6 +117,7 @@ CONFIG_IOSCHED_CFQ=y | |||
| 93 | CONFIG_DEFAULT_CFQ=y | 117 | CONFIG_DEFAULT_CFQ=y |
| 94 | # CONFIG_DEFAULT_NOOP is not set | 118 | # CONFIG_DEFAULT_NOOP is not set |
| 95 | CONFIG_DEFAULT_IOSCHED="cfq" | 119 | CONFIG_DEFAULT_IOSCHED="cfq" |
| 120 | # CONFIG_FREEZER is not set | ||
| 96 | 121 | ||
| 97 | # | 122 | # |
| 98 | # Processor type and features | 123 | # Processor type and features |
| @@ -118,12 +143,12 @@ CONFIG_NODES_SHIFT=3 | |||
| 118 | CONFIG_PREEMPT_NONE=y | 143 | CONFIG_PREEMPT_NONE=y |
| 119 | # CONFIG_PREEMPT_VOLUNTARY is not set | 144 | # CONFIG_PREEMPT_VOLUNTARY is not set |
| 120 | # CONFIG_PREEMPT is not set | 145 | # CONFIG_PREEMPT is not set |
| 121 | CONFIG_PREEMPT_BKL=y | ||
| 122 | # CONFIG_HZ_100 is not set | 146 | # CONFIG_HZ_100 is not set |
| 123 | CONFIG_HZ_250=y | 147 | CONFIG_HZ_250=y |
| 124 | # CONFIG_HZ_300 is not set | 148 | # CONFIG_HZ_300 is not set |
| 125 | # CONFIG_HZ_1000 is not set | 149 | # CONFIG_HZ_1000 is not set |
| 126 | CONFIG_HZ=250 | 150 | CONFIG_HZ=250 |
| 151 | # CONFIG_SCHED_HRTICK is not set | ||
| 127 | CONFIG_SELECT_MEMORY_MODEL=y | 152 | CONFIG_SELECT_MEMORY_MODEL=y |
| 128 | # CONFIG_FLATMEM_MANUAL is not set | 153 | # CONFIG_FLATMEM_MANUAL is not set |
| 129 | CONFIG_DISCONTIGMEM_MANUAL=y | 154 | CONFIG_DISCONTIGMEM_MANUAL=y |
| @@ -131,11 +156,12 @@ CONFIG_DISCONTIGMEM_MANUAL=y | |||
| 131 | CONFIG_DISCONTIGMEM=y | 156 | CONFIG_DISCONTIGMEM=y |
| 132 | CONFIG_FLAT_NODE_MEM_MAP=y | 157 | CONFIG_FLAT_NODE_MEM_MAP=y |
| 133 | CONFIG_NEED_MULTIPLE_NODES=y | 158 | CONFIG_NEED_MULTIPLE_NODES=y |
| 134 | # CONFIG_SPARSEMEM_STATIC is not set | 159 | CONFIG_PAGEFLAGS_EXTENDED=y |
| 135 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 160 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
| 136 | CONFIG_RESOURCES_64BIT=y | 161 | CONFIG_PHYS_ADDR_T_64BIT=y |
| 137 | CONFIG_ZONE_DMA_FLAG=0 | 162 | CONFIG_ZONE_DMA_FLAG=0 |
| 138 | CONFIG_VIRT_TO_BUS=y | 163 | CONFIG_VIRT_TO_BUS=y |
| 164 | CONFIG_UNEVICTABLE_LRU=y | ||
| 139 | CONFIG_COMPAT=y | 165 | CONFIG_COMPAT=y |
| 140 | CONFIG_NR_CPUS=8 | 166 | CONFIG_NR_CPUS=8 |
| 141 | 167 | ||
| @@ -145,14 +171,13 @@ CONFIG_NR_CPUS=8 | |||
| 145 | # CONFIG_GSC is not set | 171 | # CONFIG_GSC is not set |
| 146 | CONFIG_PCI=y | 172 | CONFIG_PCI=y |
| 147 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 173 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
| 174 | CONFIG_PCI_LEGACY=y | ||
| 148 | # CONFIG_PCI_DEBUG is not set | 175 | # CONFIG_PCI_DEBUG is not set |
| 176 | # CONFIG_PCI_STUB is not set | ||
| 149 | CONFIG_PCI_LBA=y | 177 | CONFIG_PCI_LBA=y |
| 150 | CONFIG_IOSAPIC=y | 178 | CONFIG_IOSAPIC=y |
| 151 | CONFIG_IOMMU_SBA=y | 179 | CONFIG_IOMMU_SBA=y |
| 152 | 180 | CONFIG_IOMMU_HELPER=y | |
| 153 | # | ||
| 154 | # PCCARD (PCMCIA/CardBus) support | ||
| 155 | # | ||
| 156 | CONFIG_PCCARD=m | 181 | CONFIG_PCCARD=m |
| 157 | # CONFIG_PCMCIA_DEBUG is not set | 182 | # CONFIG_PCMCIA_DEBUG is not set |
| 158 | CONFIG_PCMCIA=m | 183 | CONFIG_PCMCIA=m |
| @@ -187,16 +212,15 @@ CONFIG_PDC_STABLE=y | |||
| 187 | # Executable file formats | 212 | # Executable file formats |
| 188 | # | 213 | # |
| 189 | CONFIG_BINFMT_ELF=y | 214 | CONFIG_BINFMT_ELF=y |
| 215 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
| 216 | # CONFIG_HAVE_AOUT is not set | ||
| 190 | # CONFIG_BINFMT_MISC is not set | 217 | # CONFIG_BINFMT_MISC is not set |
| 191 | |||
| 192 | # | ||
| 193 | # Networking | ||
| 194 | # | ||
| 195 | CONFIG_NET=y | 218 | CONFIG_NET=y |
| 196 | 219 | ||
| 197 | # | 220 | # |
| 198 | # Networking options | 221 | # Networking options |
| 199 | # | 222 | # |
| 223 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
| 200 | CONFIG_PACKET=y | 224 | CONFIG_PACKET=y |
| 201 | CONFIG_PACKET_MMAP=y | 225 | CONFIG_PACKET_MMAP=y |
| 202 | CONFIG_UNIX=y | 226 | CONFIG_UNIX=y |
| @@ -204,6 +228,8 @@ CONFIG_XFRM=y | |||
| 204 | CONFIG_XFRM_USER=m | 228 | CONFIG_XFRM_USER=m |
| 205 | # CONFIG_XFRM_SUB_POLICY is not set | 229 | # CONFIG_XFRM_SUB_POLICY is not set |
| 206 | # CONFIG_XFRM_MIGRATE is not set | 230 | # CONFIG_XFRM_MIGRATE is not set |
| 231 | # CONFIG_XFRM_STATISTICS is not set | ||
| 232 | CONFIG_XFRM_IPCOMP=m | ||
| 207 | CONFIG_NET_KEY=m | 233 | CONFIG_NET_KEY=m |
| 208 | # CONFIG_NET_KEY_MIGRATE is not set | 234 | # CONFIG_NET_KEY_MIGRATE is not set |
| 209 | CONFIG_INET=y | 235 | CONFIG_INET=y |
| @@ -234,7 +260,6 @@ CONFIG_INET_TCP_DIAG=y | |||
| 234 | CONFIG_TCP_CONG_CUBIC=y | 260 | CONFIG_TCP_CONG_CUBIC=y |
| 235 | CONFIG_DEFAULT_TCP_CONG="cubic" | 261 | CONFIG_DEFAULT_TCP_CONG="cubic" |
| 236 | # CONFIG_TCP_MD5SIG is not set | 262 | # CONFIG_TCP_MD5SIG is not set |
| 237 | # CONFIG_IP_VS is not set | ||
| 238 | CONFIG_IPV6=m | 263 | CONFIG_IPV6=m |
| 239 | # CONFIG_IPV6_PRIVACY is not set | 264 | # CONFIG_IPV6_PRIVACY is not set |
| 240 | # CONFIG_IPV6_ROUTER_PREF is not set | 265 | # CONFIG_IPV6_ROUTER_PREF is not set |
| @@ -250,66 +275,72 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m | |||
| 250 | CONFIG_INET6_XFRM_MODE_BEET=m | 275 | CONFIG_INET6_XFRM_MODE_BEET=m |
| 251 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 276 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
| 252 | CONFIG_IPV6_SIT=m | 277 | CONFIG_IPV6_SIT=m |
| 278 | CONFIG_IPV6_NDISC_NODETYPE=y | ||
| 253 | CONFIG_IPV6_TUNNEL=m | 279 | CONFIG_IPV6_TUNNEL=m |
| 254 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 280 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
| 281 | # CONFIG_IPV6_MROUTE is not set | ||
| 255 | # CONFIG_NETWORK_SECMARK is not set | 282 | # CONFIG_NETWORK_SECMARK is not set |
| 256 | CONFIG_NETFILTER=y | 283 | CONFIG_NETFILTER=y |
| 257 | # CONFIG_NETFILTER_DEBUG is not set | 284 | # CONFIG_NETFILTER_DEBUG is not set |
| 285 | CONFIG_NETFILTER_ADVANCED=y | ||
| 258 | 286 | ||
| 259 | # | 287 | # |
| 260 | # Core Netfilter Configuration | 288 | # Core Netfilter Configuration |
| 261 | # | 289 | # |
| 262 | # CONFIG_NETFILTER_NETLINK is not set | 290 | # CONFIG_NETFILTER_NETLINK_QUEUE is not set |
| 263 | # CONFIG_NF_CONNTRACK_ENABLED is not set | 291 | # CONFIG_NETFILTER_NETLINK_LOG is not set |
| 264 | # CONFIG_NF_CONNTRACK is not set | 292 | # CONFIG_NF_CONNTRACK is not set |
| 265 | CONFIG_NETFILTER_XTABLES=m | 293 | CONFIG_NETFILTER_XTABLES=m |
| 266 | # CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set | 294 | # CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set |
| 267 | # CONFIG_NETFILTER_XT_TARGET_DSCP is not set | 295 | # CONFIG_NETFILTER_XT_TARGET_DSCP is not set |
| 268 | # CONFIG_NETFILTER_XT_TARGET_MARK is not set | 296 | # CONFIG_NETFILTER_XT_TARGET_MARK is not set |
| 269 | # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set | ||
| 270 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set | 297 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set |
| 298 | # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set | ||
| 299 | # CONFIG_NETFILTER_XT_TARGET_RATEEST is not set | ||
| 271 | # CONFIG_NETFILTER_XT_TARGET_TRACE is not set | 300 | # CONFIG_NETFILTER_XT_TARGET_TRACE is not set |
| 272 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set | 301 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set |
| 302 | # CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set | ||
| 273 | # CONFIG_NETFILTER_XT_MATCH_COMMENT is not set | 303 | # CONFIG_NETFILTER_XT_MATCH_COMMENT is not set |
| 274 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set | 304 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set |
| 275 | # CONFIG_NETFILTER_XT_MATCH_DSCP is not set | 305 | # CONFIG_NETFILTER_XT_MATCH_DSCP is not set |
| 276 | # CONFIG_NETFILTER_XT_MATCH_ESP is not set | 306 | # CONFIG_NETFILTER_XT_MATCH_ESP is not set |
| 307 | # CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set | ||
| 308 | # CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set | ||
| 277 | # CONFIG_NETFILTER_XT_MATCH_LENGTH is not set | 309 | # CONFIG_NETFILTER_XT_MATCH_LENGTH is not set |
| 278 | # CONFIG_NETFILTER_XT_MATCH_LIMIT is not set | 310 | # CONFIG_NETFILTER_XT_MATCH_LIMIT is not set |
| 279 | # CONFIG_NETFILTER_XT_MATCH_MAC is not set | 311 | # CONFIG_NETFILTER_XT_MATCH_MAC is not set |
| 280 | # CONFIG_NETFILTER_XT_MATCH_MARK is not set | 312 | # CONFIG_NETFILTER_XT_MATCH_MARK is not set |
| 281 | # CONFIG_NETFILTER_XT_MATCH_POLICY is not set | ||
| 282 | # CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set | 313 | # CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set |
| 314 | # CONFIG_NETFILTER_XT_MATCH_OWNER is not set | ||
| 315 | # CONFIG_NETFILTER_XT_MATCH_POLICY is not set | ||
| 283 | # CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set | 316 | # CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set |
| 284 | # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set | 317 | # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set |
| 318 | # CONFIG_NETFILTER_XT_MATCH_RATEEST is not set | ||
| 285 | # CONFIG_NETFILTER_XT_MATCH_REALM is not set | 319 | # CONFIG_NETFILTER_XT_MATCH_REALM is not set |
| 320 | # CONFIG_NETFILTER_XT_MATCH_RECENT is not set | ||
| 286 | # CONFIG_NETFILTER_XT_MATCH_SCTP is not set | 321 | # CONFIG_NETFILTER_XT_MATCH_SCTP is not set |
| 287 | # CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set | 322 | # CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set |
| 288 | # CONFIG_NETFILTER_XT_MATCH_STRING is not set | 323 | # CONFIG_NETFILTER_XT_MATCH_STRING is not set |
| 289 | # CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set | 324 | # CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set |
| 290 | # CONFIG_NETFILTER_XT_MATCH_TIME is not set | 325 | # CONFIG_NETFILTER_XT_MATCH_TIME is not set |
| 291 | # CONFIG_NETFILTER_XT_MATCH_U32 is not set | 326 | # CONFIG_NETFILTER_XT_MATCH_U32 is not set |
| 292 | # CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set | 327 | # CONFIG_IP_VS is not set |
| 293 | 328 | ||
| 294 | # | 329 | # |
| 295 | # IP: Netfilter Configuration | 330 | # IP: Netfilter Configuration |
| 296 | # | 331 | # |
| 332 | # CONFIG_NF_DEFRAG_IPV4 is not set | ||
| 297 | CONFIG_IP_NF_QUEUE=m | 333 | CONFIG_IP_NF_QUEUE=m |
| 298 | CONFIG_IP_NF_IPTABLES=m | 334 | CONFIG_IP_NF_IPTABLES=m |
| 299 | CONFIG_IP_NF_MATCH_IPRANGE=m | 335 | # CONFIG_IP_NF_MATCH_ADDRTYPE is not set |
| 300 | CONFIG_IP_NF_MATCH_TOS=m | ||
| 301 | CONFIG_IP_NF_MATCH_RECENT=m | ||
| 302 | CONFIG_IP_NF_MATCH_ECN=m | ||
| 303 | # CONFIG_IP_NF_MATCH_AH is not set | 336 | # CONFIG_IP_NF_MATCH_AH is not set |
| 337 | CONFIG_IP_NF_MATCH_ECN=m | ||
| 304 | CONFIG_IP_NF_MATCH_TTL=m | 338 | CONFIG_IP_NF_MATCH_TTL=m |
| 305 | CONFIG_IP_NF_MATCH_OWNER=m | ||
| 306 | # CONFIG_IP_NF_MATCH_ADDRTYPE is not set | ||
| 307 | CONFIG_IP_NF_FILTER=m | 339 | CONFIG_IP_NF_FILTER=m |
| 308 | CONFIG_IP_NF_TARGET_REJECT=m | 340 | CONFIG_IP_NF_TARGET_REJECT=m |
| 309 | CONFIG_IP_NF_TARGET_LOG=m | 341 | CONFIG_IP_NF_TARGET_LOG=m |
| 310 | CONFIG_IP_NF_TARGET_ULOG=m | 342 | CONFIG_IP_NF_TARGET_ULOG=m |
| 311 | CONFIG_IP_NF_MANGLE=m | 343 | CONFIG_IP_NF_MANGLE=m |
| 312 | CONFIG_IP_NF_TARGET_TOS=m | ||
| 313 | CONFIG_IP_NF_TARGET_ECN=m | 344 | CONFIG_IP_NF_TARGET_ECN=m |
| 314 | # CONFIG_IP_NF_TARGET_TTL is not set | 345 | # CONFIG_IP_NF_TARGET_TTL is not set |
| 315 | CONFIG_IP_NF_RAW=m | 346 | CONFIG_IP_NF_RAW=m |
| @@ -318,33 +349,30 @@ CONFIG_IP_NF_ARPFILTER=m | |||
| 318 | CONFIG_IP_NF_ARP_MANGLE=m | 349 | CONFIG_IP_NF_ARP_MANGLE=m |
| 319 | 350 | ||
| 320 | # | 351 | # |
| 321 | # IPv6: Netfilter Configuration (EXPERIMENTAL) | 352 | # IPv6: Netfilter Configuration |
| 322 | # | 353 | # |
| 323 | # CONFIG_IP6_NF_QUEUE is not set | 354 | # CONFIG_IP6_NF_QUEUE is not set |
| 324 | CONFIG_IP6_NF_IPTABLES=m | 355 | CONFIG_IP6_NF_IPTABLES=m |
| 325 | CONFIG_IP6_NF_MATCH_RT=m | 356 | # CONFIG_IP6_NF_MATCH_AH is not set |
| 326 | CONFIG_IP6_NF_MATCH_OPTS=m | 357 | # CONFIG_IP6_NF_MATCH_EUI64 is not set |
| 327 | CONFIG_IP6_NF_MATCH_FRAG=m | 358 | CONFIG_IP6_NF_MATCH_FRAG=m |
| 359 | CONFIG_IP6_NF_MATCH_OPTS=m | ||
| 328 | CONFIG_IP6_NF_MATCH_HL=m | 360 | CONFIG_IP6_NF_MATCH_HL=m |
| 329 | # CONFIG_IP6_NF_MATCH_OWNER is not set | ||
| 330 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | 361 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m |
| 331 | # CONFIG_IP6_NF_MATCH_AH is not set | ||
| 332 | # CONFIG_IP6_NF_MATCH_MH is not set | 362 | # CONFIG_IP6_NF_MATCH_MH is not set |
| 333 | # CONFIG_IP6_NF_MATCH_EUI64 is not set | 363 | CONFIG_IP6_NF_MATCH_RT=m |
| 334 | CONFIG_IP6_NF_FILTER=m | ||
| 335 | CONFIG_IP6_NF_TARGET_LOG=m | 364 | CONFIG_IP6_NF_TARGET_LOG=m |
| 365 | CONFIG_IP6_NF_FILTER=m | ||
| 336 | CONFIG_IP6_NF_TARGET_REJECT=m | 366 | CONFIG_IP6_NF_TARGET_REJECT=m |
| 337 | CONFIG_IP6_NF_MANGLE=m | 367 | CONFIG_IP6_NF_MANGLE=m |
| 338 | # CONFIG_IP6_NF_TARGET_HL is not set | 368 | # CONFIG_IP6_NF_TARGET_HL is not set |
| 339 | CONFIG_IP6_NF_RAW=m | 369 | CONFIG_IP6_NF_RAW=m |
| 340 | CONFIG_IP_DCCP=m | 370 | CONFIG_IP_DCCP=m |
| 341 | CONFIG_INET_DCCP_DIAG=m | 371 | CONFIG_INET_DCCP_DIAG=m |
| 342 | CONFIG_IP_DCCP_ACKVEC=y | ||
| 343 | 372 | ||
| 344 | # | 373 | # |
| 345 | # DCCP CCIDs Configuration (EXPERIMENTAL) | 374 | # DCCP CCIDs Configuration (EXPERIMENTAL) |
| 346 | # | 375 | # |
| 347 | CONFIG_IP_DCCP_CCID2=m | ||
| 348 | # CONFIG_IP_DCCP_CCID2_DEBUG is not set | 376 | # CONFIG_IP_DCCP_CCID2_DEBUG is not set |
| 349 | # CONFIG_IP_DCCP_CCID3 is not set | 377 | # CONFIG_IP_DCCP_CCID3 is not set |
| 350 | 378 | ||
| @@ -356,6 +384,7 @@ CONFIG_IP_DCCP_CCID2=m | |||
| 356 | # CONFIG_TIPC is not set | 384 | # CONFIG_TIPC is not set |
| 357 | # CONFIG_ATM is not set | 385 | # CONFIG_ATM is not set |
| 358 | # CONFIG_BRIDGE is not set | 386 | # CONFIG_BRIDGE is not set |
| 387 | # CONFIG_NET_DSA is not set | ||
| 359 | # CONFIG_VLAN_8021Q is not set | 388 | # CONFIG_VLAN_8021Q is not set |
| 360 | # CONFIG_DECNET is not set | 389 | # CONFIG_DECNET is not set |
| 361 | CONFIG_LLC=m | 390 | CONFIG_LLC=m |
| @@ -366,28 +395,26 @@ CONFIG_LLC2=m | |||
| 366 | # CONFIG_LAPB is not set | 395 | # CONFIG_LAPB is not set |
| 367 | # CONFIG_ECONET is not set | 396 | # CONFIG_ECONET is not set |
| 368 | # CONFIG_WAN_ROUTER is not set | 397 | # CONFIG_WAN_ROUTER is not set |
| 369 | |||
| 370 | # | ||
| 371 | # QoS and/or fair queueing | ||
| 372 | # | ||
| 373 | # CONFIG_NET_SCHED is not set | 398 | # CONFIG_NET_SCHED is not set |
| 399 | # CONFIG_DCB is not set | ||
| 374 | 400 | ||
| 375 | # | 401 | # |
| 376 | # Network testing | 402 | # Network testing |
| 377 | # | 403 | # |
| 378 | CONFIG_NET_PKTGEN=m | 404 | CONFIG_NET_PKTGEN=m |
| 379 | # CONFIG_HAMRADIO is not set | 405 | # CONFIG_HAMRADIO is not set |
| 406 | # CONFIG_CAN is not set | ||
| 380 | # CONFIG_IRDA is not set | 407 | # CONFIG_IRDA is not set |
| 381 | # CONFIG_BT is not set | 408 | # CONFIG_BT is not set |
| 382 | # CONFIG_AF_RXRPC is not set | 409 | # CONFIG_AF_RXRPC is not set |
| 383 | 410 | # CONFIG_PHONET is not set | |
| 384 | # | 411 | CONFIG_WIRELESS=y |
| 385 | # Wireless | ||
| 386 | # | ||
| 387 | # CONFIG_CFG80211 is not set | 412 | # CONFIG_CFG80211 is not set |
| 413 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
| 388 | # CONFIG_WIRELESS_EXT is not set | 414 | # CONFIG_WIRELESS_EXT is not set |
| 415 | # CONFIG_LIB80211 is not set | ||
| 389 | # CONFIG_MAC80211 is not set | 416 | # CONFIG_MAC80211 is not set |
| 390 | # CONFIG_IEEE80211 is not set | 417 | # CONFIG_WIMAX is not set |
| 391 | # CONFIG_RFKILL is not set | 418 | # CONFIG_RFKILL is not set |
| 392 | # CONFIG_NET_9P is not set | 419 | # CONFIG_NET_9P is not set |
| 393 | 420 | ||
| @@ -402,6 +429,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | |||
| 402 | # CONFIG_STANDALONE is not set | 429 | # CONFIG_STANDALONE is not set |
| 403 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | 430 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
| 404 | CONFIG_FW_LOADER=y | 431 | CONFIG_FW_LOADER=y |
| 432 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
| 433 | CONFIG_EXTRA_FIRMWARE="" | ||
| 405 | # CONFIG_DEBUG_DRIVER is not set | 434 | # CONFIG_DEBUG_DRIVER is not set |
| 406 | # CONFIG_DEBUG_DEVRES is not set | 435 | # CONFIG_DEBUG_DEVRES is not set |
| 407 | # CONFIG_SYS_HYPERVISOR is not set | 436 | # CONFIG_SYS_HYPERVISOR is not set |
| @@ -421,14 +450,23 @@ CONFIG_BLK_DEV_LOOP=y | |||
| 421 | CONFIG_BLK_DEV_RAM=y | 450 | CONFIG_BLK_DEV_RAM=y |
| 422 | CONFIG_BLK_DEV_RAM_COUNT=16 | 451 | CONFIG_BLK_DEV_RAM_COUNT=16 |
| 423 | CONFIG_BLK_DEV_RAM_SIZE=6144 | 452 | CONFIG_BLK_DEV_RAM_SIZE=6144 |
| 424 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 453 | # CONFIG_BLK_DEV_XIP is not set |
| 425 | # CONFIG_CDROM_PKTCDVD is not set | 454 | # CONFIG_CDROM_PKTCDVD is not set |
| 426 | # CONFIG_ATA_OVER_ETH is not set | 455 | # CONFIG_ATA_OVER_ETH is not set |
| 456 | # CONFIG_BLK_DEV_HD is not set | ||
| 427 | CONFIG_MISC_DEVICES=y | 457 | CONFIG_MISC_DEVICES=y |
| 428 | # CONFIG_PHANTOM is not set | 458 | # CONFIG_PHANTOM is not set |
| 429 | # CONFIG_EEPROM_93CX6 is not set | ||
| 430 | # CONFIG_SGI_IOC4 is not set | 459 | # CONFIG_SGI_IOC4 is not set |
| 431 | # CONFIG_TIFM_CORE is not set | 460 | # CONFIG_TIFM_CORE is not set |
| 461 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
| 462 | # CONFIG_HP_ILO is not set | ||
| 463 | # CONFIG_C2PORT is not set | ||
| 464 | |||
| 465 | # | ||
| 466 | # EEPROM support | ||
| 467 | # | ||
| 468 | # CONFIG_EEPROM_93CX6 is not set | ||
| 469 | CONFIG_HAVE_IDE=y | ||
| 432 | # CONFIG_IDE is not set | 470 | # CONFIG_IDE is not set |
| 433 | 471 | ||
| 434 | # | 472 | # |
| @@ -468,8 +506,10 @@ CONFIG_SCSI_SPI_ATTRS=y | |||
| 468 | CONFIG_SCSI_FC_ATTRS=m | 506 | CONFIG_SCSI_FC_ATTRS=m |
| 469 | CONFIG_SCSI_ISCSI_ATTRS=m | 507 | CONFIG_SCSI_ISCSI_ATTRS=m |
| 470 | # CONFIG_SCSI_SAS_LIBSAS is not set | 508 | # CONFIG_SCSI_SAS_LIBSAS is not set |
| 509 | # CONFIG_SCSI_SRP_ATTRS is not set | ||
| 471 | CONFIG_SCSI_LOWLEVEL=y | 510 | CONFIG_SCSI_LOWLEVEL=y |
| 472 | # CONFIG_ISCSI_TCP is not set | 511 | # CONFIG_ISCSI_TCP is not set |
| 512 | # CONFIG_SCSI_CXGB3_ISCSI is not set | ||
| 473 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 513 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
| 474 | # CONFIG_SCSI_3W_9XXX is not set | 514 | # CONFIG_SCSI_3W_9XXX is not set |
| 475 | # CONFIG_SCSI_ACARD is not set | 515 | # CONFIG_SCSI_ACARD is not set |
| @@ -478,16 +518,21 @@ CONFIG_SCSI_LOWLEVEL=y | |||
| 478 | # CONFIG_SCSI_AIC7XXX_OLD is not set | 518 | # CONFIG_SCSI_AIC7XXX_OLD is not set |
| 479 | # CONFIG_SCSI_AIC79XX is not set | 519 | # CONFIG_SCSI_AIC79XX is not set |
| 480 | # CONFIG_SCSI_AIC94XX is not set | 520 | # CONFIG_SCSI_AIC94XX is not set |
| 521 | # CONFIG_SCSI_DPT_I2O is not set | ||
| 522 | # CONFIG_SCSI_ADVANSYS is not set | ||
| 481 | # CONFIG_SCSI_ARCMSR is not set | 523 | # CONFIG_SCSI_ARCMSR is not set |
| 482 | # CONFIG_MEGARAID_NEWGEN is not set | 524 | # CONFIG_MEGARAID_NEWGEN is not set |
| 483 | # CONFIG_MEGARAID_LEGACY is not set | 525 | # CONFIG_MEGARAID_LEGACY is not set |
| 484 | # CONFIG_MEGARAID_SAS is not set | 526 | # CONFIG_MEGARAID_SAS is not set |
| 485 | # CONFIG_SCSI_HPTIOP is not set | 527 | # CONFIG_SCSI_HPTIOP is not set |
| 528 | # CONFIG_LIBFC is not set | ||
| 529 | # CONFIG_FCOE is not set | ||
| 486 | # CONFIG_SCSI_DMX3191D is not set | 530 | # CONFIG_SCSI_DMX3191D is not set |
| 487 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 531 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
| 488 | # CONFIG_SCSI_IPS is not set | 532 | # CONFIG_SCSI_IPS is not set |
| 489 | # CONFIG_SCSI_INITIO is not set | 533 | # CONFIG_SCSI_INITIO is not set |
| 490 | # CONFIG_SCSI_INIA100 is not set | 534 | # CONFIG_SCSI_INIA100 is not set |
| 535 | # CONFIG_SCSI_MVSAS is not set | ||
| 491 | # CONFIG_SCSI_STEX is not set | 536 | # CONFIG_SCSI_STEX is not set |
| 492 | CONFIG_SCSI_SYM53C8XX_2=y | 537 | CONFIG_SCSI_SYM53C8XX_2=y |
| 493 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 | 538 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 |
| @@ -503,9 +548,11 @@ CONFIG_SCSI_QLOGIC_1280=m | |||
| 503 | CONFIG_SCSI_DEBUG=m | 548 | CONFIG_SCSI_DEBUG=m |
| 504 | # CONFIG_SCSI_SRP is not set | 549 | # CONFIG_SCSI_SRP is not set |
| 505 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set | 550 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set |
| 551 | # CONFIG_SCSI_DH is not set | ||
| 506 | # CONFIG_ATA is not set | 552 | # CONFIG_ATA is not set |
| 507 | CONFIG_MD=y | 553 | CONFIG_MD=y |
| 508 | CONFIG_BLK_DEV_MD=y | 554 | CONFIG_BLK_DEV_MD=y |
| 555 | CONFIG_MD_AUTODETECT=y | ||
| 509 | CONFIG_MD_LINEAR=y | 556 | CONFIG_MD_LINEAR=y |
| 510 | CONFIG_MD_RAID0=y | 557 | CONFIG_MD_RAID0=y |
| 511 | CONFIG_MD_RAID1=y | 558 | CONFIG_MD_RAID1=y |
| @@ -514,10 +561,6 @@ CONFIG_MD_RAID1=y | |||
| 514 | # CONFIG_MD_MULTIPATH is not set | 561 | # CONFIG_MD_MULTIPATH is not set |
| 515 | # CONFIG_MD_FAULTY is not set | 562 | # CONFIG_MD_FAULTY is not set |
| 516 | # CONFIG_BLK_DEV_DM is not set | 563 | # CONFIG_BLK_DEV_DM is not set |
| 517 | |||
| 518 | # | ||
| 519 | # Fusion MPT device support | ||
| 520 | # | ||
| 521 | CONFIG_FUSION=y | 564 | CONFIG_FUSION=y |
| 522 | CONFIG_FUSION_SPI=m | 565 | CONFIG_FUSION_SPI=m |
| 523 | CONFIG_FUSION_FC=m | 566 | CONFIG_FUSION_FC=m |
| @@ -529,20 +572,40 @@ CONFIG_FUSION_CTL=m | |||
| 529 | # | 572 | # |
| 530 | # IEEE 1394 (FireWire) support | 573 | # IEEE 1394 (FireWire) support |
| 531 | # | 574 | # |
| 575 | |||
| 576 | # | ||
| 577 | # Enable only one of the two stacks, unless you know what you are doing | ||
| 578 | # | ||
| 532 | # CONFIG_FIREWIRE is not set | 579 | # CONFIG_FIREWIRE is not set |
| 533 | # CONFIG_IEEE1394 is not set | 580 | # CONFIG_IEEE1394 is not set |
| 534 | # CONFIG_I2O is not set | 581 | # CONFIG_I2O is not set |
| 535 | CONFIG_NETDEVICES=y | 582 | CONFIG_NETDEVICES=y |
| 536 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
| 537 | CONFIG_DUMMY=m | 583 | CONFIG_DUMMY=m |
| 538 | CONFIG_BONDING=m | 584 | CONFIG_BONDING=m |
| 539 | # CONFIG_MACVLAN is not set | 585 | # CONFIG_MACVLAN is not set |
| 540 | # CONFIG_EQUALIZER is not set | 586 | # CONFIG_EQUALIZER is not set |
| 541 | CONFIG_TUN=m | 587 | CONFIG_TUN=m |
| 542 | # CONFIG_VETH is not set | 588 | # CONFIG_VETH is not set |
| 543 | # CONFIG_IP1000 is not set | ||
| 544 | # CONFIG_ARCNET is not set | 589 | # CONFIG_ARCNET is not set |
| 545 | # CONFIG_PHYLIB is not set | 590 | CONFIG_PHYLIB=m |
| 591 | |||
| 592 | # | ||
| 593 | # MII PHY device drivers | ||
| 594 | # | ||
| 595 | # CONFIG_MARVELL_PHY is not set | ||
| 596 | # CONFIG_DAVICOM_PHY is not set | ||
| 597 | # CONFIG_QSEMI_PHY is not set | ||
| 598 | # CONFIG_LXT_PHY is not set | ||
| 599 | # CONFIG_CICADA_PHY is not set | ||
| 600 | # CONFIG_VITESSE_PHY is not set | ||
| 601 | # CONFIG_SMSC_PHY is not set | ||
| 602 | # CONFIG_BROADCOM_PHY is not set | ||
| 603 | # CONFIG_ICPLUS_PHY is not set | ||
| 604 | # CONFIG_REALTEK_PHY is not set | ||
| 605 | # CONFIG_NATIONAL_PHY is not set | ||
| 606 | # CONFIG_STE10XP is not set | ||
| 607 | # CONFIG_LSI_ET1011C_PHY is not set | ||
| 608 | # CONFIG_MDIO_BITBANG is not set | ||
| 546 | CONFIG_NET_ETHERNET=y | 609 | CONFIG_NET_ETHERNET=y |
| 547 | CONFIG_MII=m | 610 | CONFIG_MII=m |
| 548 | # CONFIG_HAPPYMEAL is not set | 611 | # CONFIG_HAPPYMEAL is not set |
| @@ -567,33 +630,38 @@ CONFIG_HP100=m | |||
| 567 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 630 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
| 568 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 631 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
| 569 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 632 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
| 633 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
| 634 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
| 635 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
| 570 | CONFIG_NET_PCI=y | 636 | CONFIG_NET_PCI=y |
| 571 | CONFIG_PCNET32=m | 637 | CONFIG_PCNET32=m |
| 572 | # CONFIG_PCNET32_NAPI is not set | ||
| 573 | # CONFIG_AMD8111_ETH is not set | 638 | # CONFIG_AMD8111_ETH is not set |
| 574 | # CONFIG_ADAPTEC_STARFIRE is not set | 639 | # CONFIG_ADAPTEC_STARFIRE is not set |
| 575 | # CONFIG_B44 is not set | 640 | # CONFIG_B44 is not set |
| 576 | # CONFIG_FORCEDETH is not set | 641 | # CONFIG_FORCEDETH is not set |
| 577 | # CONFIG_EEPRO100 is not set | ||
| 578 | CONFIG_E100=m | 642 | CONFIG_E100=m |
| 579 | # CONFIG_FEALNX is not set | 643 | # CONFIG_FEALNX is not set |
| 580 | # CONFIG_NATSEMI is not set | 644 | # CONFIG_NATSEMI is not set |
| 581 | # CONFIG_NE2K_PCI is not set | 645 | # CONFIG_NE2K_PCI is not set |
| 582 | # CONFIG_8139CP is not set | 646 | # CONFIG_8139CP is not set |
| 583 | # CONFIG_8139TOO is not set | 647 | # CONFIG_8139TOO is not set |
| 648 | # CONFIG_R6040 is not set | ||
| 584 | # CONFIG_SIS900 is not set | 649 | # CONFIG_SIS900 is not set |
| 585 | # CONFIG_EPIC100 is not set | 650 | # CONFIG_EPIC100 is not set |
| 651 | # CONFIG_SMSC9420 is not set | ||
| 586 | # CONFIG_SUNDANCE is not set | 652 | # CONFIG_SUNDANCE is not set |
| 653 | # CONFIG_TLAN is not set | ||
| 587 | # CONFIG_VIA_RHINE is not set | 654 | # CONFIG_VIA_RHINE is not set |
| 588 | # CONFIG_SC92031 is not set | 655 | # CONFIG_SC92031 is not set |
| 656 | # CONFIG_ATL2 is not set | ||
| 589 | CONFIG_NETDEV_1000=y | 657 | CONFIG_NETDEV_1000=y |
| 590 | CONFIG_ACENIC=m | 658 | CONFIG_ACENIC=m |
| 591 | CONFIG_ACENIC_OMIT_TIGON_I=y | 659 | CONFIG_ACENIC_OMIT_TIGON_I=y |
| 592 | # CONFIG_DL2K is not set | 660 | # CONFIG_DL2K is not set |
| 593 | CONFIG_E1000=m | 661 | CONFIG_E1000=m |
| 594 | CONFIG_E1000_NAPI=y | ||
| 595 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set | ||
| 596 | # CONFIG_E1000E is not set | 662 | # CONFIG_E1000E is not set |
| 663 | # CONFIG_IP1000 is not set | ||
| 664 | # CONFIG_IGB is not set | ||
| 597 | # CONFIG_NS83820 is not set | 665 | # CONFIG_NS83820 is not set |
| 598 | # CONFIG_HAMACHI is not set | 666 | # CONFIG_HAMACHI is not set |
| 599 | # CONFIG_YELLOWFIN is not set | 667 | # CONFIG_YELLOWFIN is not set |
| @@ -601,23 +669,31 @@ CONFIG_E1000_NAPI=y | |||
| 601 | # CONFIG_SIS190 is not set | 669 | # CONFIG_SIS190 is not set |
| 602 | # CONFIG_SKGE is not set | 670 | # CONFIG_SKGE is not set |
| 603 | # CONFIG_SKY2 is not set | 671 | # CONFIG_SKY2 is not set |
| 604 | # CONFIG_SK98LIN is not set | ||
| 605 | # CONFIG_VIA_VELOCITY is not set | 672 | # CONFIG_VIA_VELOCITY is not set |
| 606 | CONFIG_TIGON3=m | 673 | CONFIG_TIGON3=m |
| 607 | # CONFIG_BNX2 is not set | 674 | # CONFIG_BNX2 is not set |
| 608 | # CONFIG_QLA3XXX is not set | 675 | # CONFIG_QLA3XXX is not set |
| 609 | # CONFIG_ATL1 is not set | 676 | # CONFIG_ATL1 is not set |
| 677 | # CONFIG_ATL1E is not set | ||
| 678 | # CONFIG_ATL1C is not set | ||
| 679 | # CONFIG_JME is not set | ||
| 610 | CONFIG_NETDEV_10000=y | 680 | CONFIG_NETDEV_10000=y |
| 611 | # CONFIG_CHELSIO_T1 is not set | 681 | # CONFIG_CHELSIO_T1 is not set |
| 682 | CONFIG_CHELSIO_T3_DEPENDS=y | ||
| 612 | # CONFIG_CHELSIO_T3 is not set | 683 | # CONFIG_CHELSIO_T3 is not set |
| 684 | # CONFIG_ENIC is not set | ||
| 613 | # CONFIG_IXGBE is not set | 685 | # CONFIG_IXGBE is not set |
| 614 | # CONFIG_IXGB is not set | 686 | # CONFIG_IXGB is not set |
| 615 | # CONFIG_S2IO is not set | 687 | # CONFIG_S2IO is not set |
| 616 | # CONFIG_MYRI10GE is not set | 688 | # CONFIG_MYRI10GE is not set |
| 617 | # CONFIG_NETXEN_NIC is not set | 689 | # CONFIG_NETXEN_NIC is not set |
| 618 | # CONFIG_NIU is not set | 690 | # CONFIG_NIU is not set |
| 691 | # CONFIG_MLX4_EN is not set | ||
| 619 | # CONFIG_MLX4_CORE is not set | 692 | # CONFIG_MLX4_CORE is not set |
| 620 | # CONFIG_TEHUTI is not set | 693 | # CONFIG_TEHUTI is not set |
| 694 | # CONFIG_BNX2X is not set | ||
| 695 | # CONFIG_QLGE is not set | ||
| 696 | # CONFIG_SFC is not set | ||
| 621 | # CONFIG_TR is not set | 697 | # CONFIG_TR is not set |
| 622 | 698 | ||
| 623 | # | 699 | # |
| @@ -625,6 +701,11 @@ CONFIG_NETDEV_10000=y | |||
| 625 | # | 701 | # |
| 626 | # CONFIG_WLAN_PRE80211 is not set | 702 | # CONFIG_WLAN_PRE80211 is not set |
| 627 | # CONFIG_WLAN_80211 is not set | 703 | # CONFIG_WLAN_80211 is not set |
| 704 | # CONFIG_IWLWIFI_LEDS is not set | ||
| 705 | |||
| 706 | # | ||
| 707 | # Enable WiMAX (Networking options) to see the WiMAX drivers | ||
| 708 | # | ||
| 628 | CONFIG_NET_PCMCIA=y | 709 | CONFIG_NET_PCMCIA=y |
| 629 | CONFIG_PCMCIA_3C589=m | 710 | CONFIG_PCMCIA_3C589=m |
| 630 | CONFIG_PCMCIA_3C574=m | 711 | CONFIG_PCMCIA_3C574=m |
| @@ -650,7 +731,6 @@ CONFIG_PPP_BSDCOMP=m | |||
| 650 | # CONFIG_SLIP is not set | 731 | # CONFIG_SLIP is not set |
| 651 | CONFIG_SLHC=m | 732 | CONFIG_SLHC=m |
| 652 | # CONFIG_NET_FC is not set | 733 | # CONFIG_NET_FC is not set |
| 653 | # CONFIG_SHAPER is not set | ||
| 654 | # CONFIG_NETCONSOLE is not set | 734 | # CONFIG_NETCONSOLE is not set |
| 655 | # CONFIG_NETPOLL is not set | 735 | # CONFIG_NETPOLL is not set |
| 656 | # CONFIG_NET_POLL_CONTROLLER is not set | 736 | # CONFIG_NET_POLL_CONTROLLER is not set |
| @@ -669,7 +749,6 @@ CONFIG_INPUT=y | |||
| 669 | # | 749 | # |
| 670 | # CONFIG_INPUT_MOUSEDEV is not set | 750 | # CONFIG_INPUT_MOUSEDEV is not set |
| 671 | # CONFIG_INPUT_JOYDEV is not set | 751 | # CONFIG_INPUT_JOYDEV is not set |
| 672 | # CONFIG_INPUT_TSDEV is not set | ||
| 673 | # CONFIG_INPUT_EVDEV is not set | 752 | # CONFIG_INPUT_EVDEV is not set |
| 674 | # CONFIG_INPUT_EVBUG is not set | 753 | # CONFIG_INPUT_EVBUG is not set |
| 675 | 754 | ||
| @@ -693,10 +772,13 @@ CONFIG_INPUT=y | |||
| 693 | # Character devices | 772 | # Character devices |
| 694 | # | 773 | # |
| 695 | CONFIG_VT=y | 774 | CONFIG_VT=y |
| 775 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
| 696 | CONFIG_VT_CONSOLE=y | 776 | CONFIG_VT_CONSOLE=y |
| 697 | CONFIG_HW_CONSOLE=y | 777 | CONFIG_HW_CONSOLE=y |
| 698 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 778 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
| 779 | CONFIG_DEVKMEM=y | ||
| 699 | # CONFIG_SERIAL_NONSTANDARD is not set | 780 | # CONFIG_SERIAL_NONSTANDARD is not set |
| 781 | # CONFIG_NOZOMI is not set | ||
| 700 | 782 | ||
| 701 | # | 783 | # |
| 702 | # Serial drivers | 784 | # Serial drivers |
| @@ -721,17 +803,12 @@ CONFIG_SERIAL_CORE=y | |||
| 721 | CONFIG_SERIAL_CORE_CONSOLE=y | 803 | CONFIG_SERIAL_CORE_CONSOLE=y |
| 722 | # CONFIG_SERIAL_JSM is not set | 804 | # CONFIG_SERIAL_JSM is not set |
| 723 | CONFIG_UNIX98_PTYS=y | 805 | CONFIG_UNIX98_PTYS=y |
| 806 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | ||
| 724 | # CONFIG_LEGACY_PTYS is not set | 807 | # CONFIG_LEGACY_PTYS is not set |
| 725 | # CONFIG_IPMI_HANDLER is not set | 808 | # CONFIG_IPMI_HANDLER is not set |
| 726 | # CONFIG_WATCHDOG is not set | ||
| 727 | # CONFIG_HW_RANDOM is not set | 809 | # CONFIG_HW_RANDOM is not set |
| 728 | CONFIG_GEN_RTC=y | ||
| 729 | CONFIG_GEN_RTC_X=y | ||
| 730 | # CONFIG_R3964 is not set | 810 | # CONFIG_R3964 is not set |
| 731 | # CONFIG_APPLICOM is not set | 811 | # CONFIG_APPLICOM is not set |
| 732 | CONFIG_AGP=y | ||
| 733 | CONFIG_AGP_PARISC=y | ||
| 734 | # CONFIG_DRM is not set | ||
| 735 | 812 | ||
| 736 | # | 813 | # |
| 737 | # PCMCIA character devices | 814 | # PCMCIA character devices |
| @@ -739,51 +816,66 @@ CONFIG_AGP_PARISC=y | |||
| 739 | # CONFIG_SYNCLINK_CS is not set | 816 | # CONFIG_SYNCLINK_CS is not set |
| 740 | # CONFIG_CARDMAN_4000 is not set | 817 | # CONFIG_CARDMAN_4000 is not set |
| 741 | # CONFIG_CARDMAN_4040 is not set | 818 | # CONFIG_CARDMAN_4040 is not set |
| 819 | # CONFIG_IPWIRELESS is not set | ||
| 742 | CONFIG_RAW_DRIVER=y | 820 | CONFIG_RAW_DRIVER=y |
| 743 | CONFIG_MAX_RAW_DEVS=256 | 821 | CONFIG_MAX_RAW_DEVS=256 |
| 744 | # CONFIG_TCG_TPM is not set | 822 | # CONFIG_TCG_TPM is not set |
| 745 | CONFIG_DEVPORT=y | 823 | CONFIG_DEVPORT=y |
| 746 | # CONFIG_I2C is not set | 824 | # CONFIG_I2C is not set |
| 747 | |||
| 748 | # | ||
| 749 | # SPI support | ||
| 750 | # | ||
| 751 | # CONFIG_SPI is not set | 825 | # CONFIG_SPI is not set |
| 752 | # CONFIG_SPI_MASTER is not set | ||
| 753 | # CONFIG_W1 is not set | 826 | # CONFIG_W1 is not set |
| 754 | # CONFIG_POWER_SUPPLY is not set | 827 | # CONFIG_POWER_SUPPLY is not set |
| 755 | # CONFIG_HWMON is not set | 828 | # CONFIG_HWMON is not set |
| 829 | # CONFIG_THERMAL is not set | ||
| 830 | # CONFIG_THERMAL_HWMON is not set | ||
| 831 | # CONFIG_WATCHDOG is not set | ||
| 832 | CONFIG_SSB_POSSIBLE=y | ||
| 756 | 833 | ||
| 757 | # | 834 | # |
| 758 | # Sonics Silicon Backplane | 835 | # Sonics Silicon Backplane |
| 759 | # | 836 | # |
| 760 | CONFIG_SSB_POSSIBLE=y | ||
| 761 | # CONFIG_SSB is not set | 837 | # CONFIG_SSB is not set |
| 762 | 838 | ||
| 763 | # | 839 | # |
| 764 | # Multifunction device drivers | 840 | # Multifunction device drivers |
| 765 | # | 841 | # |
| 842 | # CONFIG_MFD_CORE is not set | ||
| 766 | # CONFIG_MFD_SM501 is not set | 843 | # CONFIG_MFD_SM501 is not set |
| 844 | # CONFIG_HTC_PASIC3 is not set | ||
| 845 | # CONFIG_MFD_TMIO is not set | ||
| 846 | # CONFIG_REGULATOR is not set | ||
| 767 | 847 | ||
| 768 | # | 848 | # |
| 769 | # Multimedia devices | 849 | # Multimedia devices |
| 770 | # | 850 | # |
| 851 | |||
| 852 | # | ||
| 853 | # Multimedia core support | ||
| 854 | # | ||
| 771 | # CONFIG_VIDEO_DEV is not set | 855 | # CONFIG_VIDEO_DEV is not set |
| 772 | # CONFIG_DVB_CORE is not set | 856 | # CONFIG_DVB_CORE is not set |
| 857 | # CONFIG_VIDEO_MEDIA is not set | ||
| 858 | |||
| 859 | # | ||
| 860 | # Multimedia drivers | ||
| 861 | # | ||
| 773 | # CONFIG_DAB is not set | 862 | # CONFIG_DAB is not set |
| 774 | 863 | ||
| 775 | # | 864 | # |
| 776 | # Graphics support | 865 | # Graphics support |
| 777 | # | 866 | # |
| 867 | CONFIG_AGP=y | ||
| 868 | CONFIG_AGP_PARISC=y | ||
| 869 | # CONFIG_DRM is not set | ||
| 870 | # CONFIG_VGASTATE is not set | ||
| 871 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
| 872 | # CONFIG_FB is not set | ||
| 778 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 873 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
| 779 | 874 | ||
| 780 | # | 875 | # |
| 781 | # Display device support | 876 | # Display device support |
| 782 | # | 877 | # |
| 783 | # CONFIG_DISPLAY_SUPPORT is not set | 878 | # CONFIG_DISPLAY_SUPPORT is not set |
| 784 | # CONFIG_VGASTATE is not set | ||
| 785 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
| 786 | # CONFIG_FB is not set | ||
| 787 | 879 | ||
| 788 | # | 880 | # |
| 789 | # Console display driver support | 881 | # Console display driver support |
| @@ -792,50 +884,83 @@ CONFIG_DUMMY_CONSOLE=y | |||
| 792 | CONFIG_DUMMY_CONSOLE_COLUMNS=160 | 884 | CONFIG_DUMMY_CONSOLE_COLUMNS=160 |
| 793 | CONFIG_DUMMY_CONSOLE_ROWS=64 | 885 | CONFIG_DUMMY_CONSOLE_ROWS=64 |
| 794 | # CONFIG_STI_CONSOLE is not set | 886 | # CONFIG_STI_CONSOLE is not set |
| 795 | |||
| 796 | # | ||
| 797 | # Sound | ||
| 798 | # | ||
| 799 | # CONFIG_SOUND is not set | 887 | # CONFIG_SOUND is not set |
| 800 | CONFIG_HID_SUPPORT=y | 888 | CONFIG_HID_SUPPORT=y |
| 801 | CONFIG_HID=y | 889 | CONFIG_HID=y |
| 802 | # CONFIG_HID_DEBUG is not set | 890 | # CONFIG_HID_DEBUG is not set |
| 891 | # CONFIG_HIDRAW is not set | ||
| 892 | # CONFIG_HID_PID is not set | ||
| 893 | |||
| 894 | # | ||
| 895 | # Special HID drivers | ||
| 896 | # | ||
| 897 | CONFIG_HID_COMPAT=y | ||
| 803 | CONFIG_USB_SUPPORT=y | 898 | CONFIG_USB_SUPPORT=y |
| 804 | CONFIG_USB_ARCH_HAS_HCD=y | 899 | CONFIG_USB_ARCH_HAS_HCD=y |
| 805 | CONFIG_USB_ARCH_HAS_OHCI=y | 900 | CONFIG_USB_ARCH_HAS_OHCI=y |
| 806 | CONFIG_USB_ARCH_HAS_EHCI=y | 901 | CONFIG_USB_ARCH_HAS_EHCI=y |
| 807 | # CONFIG_USB is not set | 902 | # CONFIG_USB is not set |
| 903 | # CONFIG_USB_OTG_WHITELIST is not set | ||
| 904 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
| 808 | 905 | ||
| 809 | # | 906 | # |
| 810 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 907 | # Enable Host or Gadget support to see Inventra options |
| 811 | # | 908 | # |
| 812 | 909 | ||
| 813 | # | 910 | # |
| 814 | # USB Gadget Support | 911 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; |
| 815 | # | 912 | # |
| 816 | # CONFIG_USB_GADGET is not set | 913 | # CONFIG_USB_GADGET is not set |
| 914 | |||
| 915 | # | ||
| 916 | # OTG and related infrastructure | ||
| 917 | # | ||
| 918 | # CONFIG_UWB is not set | ||
| 817 | # CONFIG_MMC is not set | 919 | # CONFIG_MMC is not set |
| 920 | # CONFIG_MEMSTICK is not set | ||
| 818 | # CONFIG_NEW_LEDS is not set | 921 | # CONFIG_NEW_LEDS is not set |
| 922 | # CONFIG_ACCESSIBILITY is not set | ||
| 819 | # CONFIG_INFINIBAND is not set | 923 | # CONFIG_INFINIBAND is not set |
| 820 | # CONFIG_RTC_CLASS is not set | 924 | CONFIG_RTC_LIB=y |
| 925 | CONFIG_RTC_CLASS=y | ||
| 926 | CONFIG_RTC_HCTOSYS=y | ||
| 927 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
| 928 | # CONFIG_RTC_DEBUG is not set | ||
| 821 | 929 | ||
| 822 | # | 930 | # |
| 823 | # DMA Engine support | 931 | # RTC interfaces |
| 824 | # | 932 | # |
| 825 | # CONFIG_DMA_ENGINE is not set | 933 | CONFIG_RTC_INTF_SYSFS=y |
| 934 | CONFIG_RTC_INTF_PROC=y | ||
| 935 | CONFIG_RTC_INTF_DEV=y | ||
| 936 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
| 937 | # CONFIG_RTC_DRV_TEST is not set | ||
| 826 | 938 | ||
| 827 | # | 939 | # |
| 828 | # DMA Clients | 940 | # SPI RTC drivers |
| 829 | # | 941 | # |
| 830 | 942 | ||
| 831 | # | 943 | # |
| 832 | # DMA Devices | 944 | # Platform RTC drivers |
| 833 | # | 945 | # |
| 946 | # CONFIG_RTC_DRV_DS1286 is not set | ||
| 947 | # CONFIG_RTC_DRV_DS1511 is not set | ||
| 948 | # CONFIG_RTC_DRV_DS1553 is not set | ||
| 949 | # CONFIG_RTC_DRV_DS1742 is not set | ||
| 950 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
| 951 | # CONFIG_RTC_DRV_M48T86 is not set | ||
| 952 | # CONFIG_RTC_DRV_M48T35 is not set | ||
| 953 | # CONFIG_RTC_DRV_M48T59 is not set | ||
| 954 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
| 955 | # CONFIG_RTC_DRV_V3020 is not set | ||
| 834 | 956 | ||
| 835 | # | 957 | # |
| 836 | # Userspace I/O | 958 | # on-CPU RTC drivers |
| 837 | # | 959 | # |
| 960 | CONFIG_RTC_DRV_PARISC=y | ||
| 961 | # CONFIG_DMADEVICES is not set | ||
| 838 | # CONFIG_UIO is not set | 962 | # CONFIG_UIO is not set |
| 963 | # CONFIG_STAGING is not set | ||
| 839 | 964 | ||
| 840 | # | 965 | # |
| 841 | # File systems | 966 | # File systems |
| @@ -845,7 +970,7 @@ CONFIG_EXT2_FS=y | |||
| 845 | # CONFIG_EXT2_FS_XIP is not set | 970 | # CONFIG_EXT2_FS_XIP is not set |
| 846 | CONFIG_EXT3_FS=y | 971 | CONFIG_EXT3_FS=y |
| 847 | # CONFIG_EXT3_FS_XATTR is not set | 972 | # CONFIG_EXT3_FS_XATTR is not set |
| 848 | # CONFIG_EXT4DEV_FS is not set | 973 | # CONFIG_EXT4_FS is not set |
| 849 | CONFIG_JBD=y | 974 | CONFIG_JBD=y |
| 850 | # CONFIG_JBD_DEBUG is not set | 975 | # CONFIG_JBD_DEBUG is not set |
| 851 | # CONFIG_REISERFS_FS is not set | 976 | # CONFIG_REISERFS_FS is not set |
| @@ -855,19 +980,19 @@ CONFIG_JFS_FS=m | |||
| 855 | # CONFIG_JFS_DEBUG is not set | 980 | # CONFIG_JFS_DEBUG is not set |
| 856 | # CONFIG_JFS_STATISTICS is not set | 981 | # CONFIG_JFS_STATISTICS is not set |
| 857 | CONFIG_FS_POSIX_ACL=y | 982 | CONFIG_FS_POSIX_ACL=y |
| 983 | CONFIG_FILE_LOCKING=y | ||
| 858 | CONFIG_XFS_FS=m | 984 | CONFIG_XFS_FS=m |
| 859 | # CONFIG_XFS_QUOTA is not set | 985 | # CONFIG_XFS_QUOTA is not set |
| 860 | # CONFIG_XFS_SECURITY is not set | ||
| 861 | # CONFIG_XFS_POSIX_ACL is not set | 986 | # CONFIG_XFS_POSIX_ACL is not set |
| 862 | # CONFIG_XFS_RT is not set | 987 | # CONFIG_XFS_RT is not set |
| 988 | # CONFIG_XFS_DEBUG is not set | ||
| 863 | # CONFIG_GFS2_FS is not set | 989 | # CONFIG_GFS2_FS is not set |
| 864 | # CONFIG_OCFS2_FS is not set | 990 | # CONFIG_OCFS2_FS is not set |
| 865 | # CONFIG_MINIX_FS is not set | 991 | # CONFIG_BTRFS_FS is not set |
| 866 | # CONFIG_ROMFS_FS is not set | 992 | CONFIG_DNOTIFY=y |
| 867 | CONFIG_INOTIFY=y | 993 | CONFIG_INOTIFY=y |
| 868 | CONFIG_INOTIFY_USER=y | 994 | CONFIG_INOTIFY_USER=y |
| 869 | # CONFIG_QUOTA is not set | 995 | # CONFIG_QUOTA is not set |
| 870 | CONFIG_DNOTIFY=y | ||
| 871 | # CONFIG_AUTOFS_FS is not set | 996 | # CONFIG_AUTOFS_FS is not set |
| 872 | CONFIG_AUTOFS4_FS=y | 997 | CONFIG_AUTOFS4_FS=y |
| 873 | # CONFIG_FUSE_FS is not set | 998 | # CONFIG_FUSE_FS is not set |
| @@ -897,16 +1022,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
| 897 | CONFIG_PROC_FS=y | 1022 | CONFIG_PROC_FS=y |
| 898 | CONFIG_PROC_KCORE=y | 1023 | CONFIG_PROC_KCORE=y |
| 899 | CONFIG_PROC_SYSCTL=y | 1024 | CONFIG_PROC_SYSCTL=y |
| 1025 | CONFIG_PROC_PAGE_MONITOR=y | ||
| 900 | CONFIG_SYSFS=y | 1026 | CONFIG_SYSFS=y |
| 901 | CONFIG_TMPFS=y | 1027 | CONFIG_TMPFS=y |
| 902 | # CONFIG_TMPFS_POSIX_ACL is not set | 1028 | # CONFIG_TMPFS_POSIX_ACL is not set |
| 903 | # CONFIG_HUGETLB_PAGE is not set | 1029 | # CONFIG_HUGETLB_PAGE is not set |
| 904 | CONFIG_RAMFS=y | ||
| 905 | # CONFIG_CONFIGFS_FS is not set | 1030 | # CONFIG_CONFIGFS_FS is not set |
| 906 | 1031 | CONFIG_MISC_FILESYSTEMS=y | |
| 907 | # | ||
| 908 | # Miscellaneous filesystems | ||
| 909 | # | ||
| 910 | # CONFIG_ADFS_FS is not set | 1032 | # CONFIG_ADFS_FS is not set |
| 911 | # CONFIG_AFFS_FS is not set | 1033 | # CONFIG_AFFS_FS is not set |
| 912 | # CONFIG_ECRYPT_FS is not set | 1034 | # CONFIG_ECRYPT_FS is not set |
| @@ -916,34 +1038,33 @@ CONFIG_RAMFS=y | |||
| 916 | # CONFIG_BFS_FS is not set | 1038 | # CONFIG_BFS_FS is not set |
| 917 | # CONFIG_EFS_FS is not set | 1039 | # CONFIG_EFS_FS is not set |
| 918 | # CONFIG_CRAMFS is not set | 1040 | # CONFIG_CRAMFS is not set |
| 1041 | # CONFIG_SQUASHFS is not set | ||
| 919 | # CONFIG_VXFS_FS is not set | 1042 | # CONFIG_VXFS_FS is not set |
| 1043 | # CONFIG_MINIX_FS is not set | ||
| 1044 | # CONFIG_OMFS_FS is not set | ||
| 920 | # CONFIG_HPFS_FS is not set | 1045 | # CONFIG_HPFS_FS is not set |
| 921 | # CONFIG_QNX4FS_FS is not set | 1046 | # CONFIG_QNX4FS_FS is not set |
| 1047 | # CONFIG_ROMFS_FS is not set | ||
| 922 | # CONFIG_SYSV_FS is not set | 1048 | # CONFIG_SYSV_FS is not set |
| 923 | CONFIG_UFS_FS=m | 1049 | CONFIG_UFS_FS=m |
| 924 | # CONFIG_UFS_FS_WRITE is not set | 1050 | # CONFIG_UFS_FS_WRITE is not set |
| 925 | # CONFIG_UFS_DEBUG is not set | 1051 | # CONFIG_UFS_DEBUG is not set |
| 926 | 1052 | CONFIG_NETWORK_FILESYSTEMS=y | |
| 927 | # | ||
| 928 | # Network File Systems | ||
| 929 | # | ||
| 930 | CONFIG_NFS_FS=m | 1053 | CONFIG_NFS_FS=m |
| 931 | CONFIG_NFS_V3=y | 1054 | CONFIG_NFS_V3=y |
| 932 | # CONFIG_NFS_V3_ACL is not set | 1055 | # CONFIG_NFS_V3_ACL is not set |
| 933 | CONFIG_NFS_V4=y | 1056 | CONFIG_NFS_V4=y |
| 934 | CONFIG_NFS_DIRECTIO=y | ||
| 935 | CONFIG_NFSD=m | 1057 | CONFIG_NFSD=m |
| 936 | CONFIG_NFSD_V3=y | 1058 | CONFIG_NFSD_V3=y |
| 937 | # CONFIG_NFSD_V3_ACL is not set | 1059 | # CONFIG_NFSD_V3_ACL is not set |
| 938 | CONFIG_NFSD_V4=y | 1060 | CONFIG_NFSD_V4=y |
| 939 | CONFIG_NFSD_TCP=y | ||
| 940 | CONFIG_LOCKD=m | 1061 | CONFIG_LOCKD=m |
| 941 | CONFIG_LOCKD_V4=y | 1062 | CONFIG_LOCKD_V4=y |
| 942 | CONFIG_EXPORTFS=m | 1063 | CONFIG_EXPORTFS=m |
| 943 | CONFIG_NFS_COMMON=y | 1064 | CONFIG_NFS_COMMON=y |
| 944 | CONFIG_SUNRPC=m | 1065 | CONFIG_SUNRPC=m |
| 945 | CONFIG_SUNRPC_GSS=m | 1066 | CONFIG_SUNRPC_GSS=m |
| 946 | # CONFIG_SUNRPC_BIND34 is not set | 1067 | # CONFIG_SUNRPC_REGISTER_V4 is not set |
| 947 | CONFIG_RPCSEC_GSS_KRB5=m | 1068 | CONFIG_RPCSEC_GSS_KRB5=m |
| 948 | CONFIG_RPCSEC_GSS_SPKM3=m | 1069 | CONFIG_RPCSEC_GSS_SPKM3=m |
| 949 | CONFIG_SMB_FS=m | 1070 | CONFIG_SMB_FS=m |
| @@ -952,6 +1073,7 @@ CONFIG_SMB_NLS_REMOTE="cp437" | |||
| 952 | CONFIG_CIFS=m | 1073 | CONFIG_CIFS=m |
| 953 | # CONFIG_CIFS_STATS is not set | 1074 | # CONFIG_CIFS_STATS is not set |
| 954 | # CONFIG_CIFS_WEAK_PW_HASH is not set | 1075 | # CONFIG_CIFS_WEAK_PW_HASH is not set |
| 1076 | # CONFIG_CIFS_UPCALL is not set | ||
| 955 | # CONFIG_CIFS_XATTR is not set | 1077 | # CONFIG_CIFS_XATTR is not set |
| 956 | # CONFIG_CIFS_DEBUG2 is not set | 1078 | # CONFIG_CIFS_DEBUG2 is not set |
| 957 | # CONFIG_CIFS_EXPERIMENTAL is not set | 1079 | # CONFIG_CIFS_EXPERIMENTAL is not set |
| @@ -964,10 +1086,6 @@ CONFIG_CIFS=m | |||
| 964 | # | 1086 | # |
| 965 | # CONFIG_PARTITION_ADVANCED is not set | 1087 | # CONFIG_PARTITION_ADVANCED is not set |
| 966 | CONFIG_MSDOS_PARTITION=y | 1088 | CONFIG_MSDOS_PARTITION=y |
| 967 | |||
| 968 | # | ||
| 969 | # Native Language Support | ||
| 970 | # | ||
| 971 | CONFIG_NLS=y | 1089 | CONFIG_NLS=y |
| 972 | CONFIG_NLS_DEFAULT="iso8859-1" | 1090 | CONFIG_NLS_DEFAULT="iso8859-1" |
| 973 | CONFIG_NLS_CODEPAGE_437=m | 1091 | CONFIG_NLS_CODEPAGE_437=m |
| @@ -1008,33 +1126,28 @@ CONFIG_NLS_ISO8859_15=m | |||
| 1008 | # CONFIG_NLS_KOI8_R is not set | 1126 | # CONFIG_NLS_KOI8_R is not set |
| 1009 | # CONFIG_NLS_KOI8_U is not set | 1127 | # CONFIG_NLS_KOI8_U is not set |
| 1010 | CONFIG_NLS_UTF8=m | 1128 | CONFIG_NLS_UTF8=m |
| 1011 | |||
| 1012 | # | ||
| 1013 | # Distributed Lock Manager | ||
| 1014 | # | ||
| 1015 | # CONFIG_DLM is not set | 1129 | # CONFIG_DLM is not set |
| 1016 | 1130 | ||
| 1017 | # | 1131 | # |
| 1018 | # Profiling support | ||
| 1019 | # | ||
| 1020 | CONFIG_PROFILING=y | ||
| 1021 | CONFIG_OPROFILE=m | ||
| 1022 | |||
| 1023 | # | ||
| 1024 | # Kernel hacking | 1132 | # Kernel hacking |
| 1025 | # | 1133 | # |
| 1026 | # CONFIG_PRINTK_TIME is not set | 1134 | # CONFIG_PRINTK_TIME is not set |
| 1135 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
| 1027 | CONFIG_ENABLE_MUST_CHECK=y | 1136 | CONFIG_ENABLE_MUST_CHECK=y |
| 1137 | CONFIG_FRAME_WARN=2048 | ||
| 1028 | CONFIG_MAGIC_SYSRQ=y | 1138 | CONFIG_MAGIC_SYSRQ=y |
| 1029 | # CONFIG_UNUSED_SYMBOLS is not set | 1139 | # CONFIG_UNUSED_SYMBOLS is not set |
| 1030 | # CONFIG_DEBUG_FS is not set | 1140 | CONFIG_DEBUG_FS=y |
| 1031 | CONFIG_HEADERS_CHECK=y | 1141 | CONFIG_HEADERS_CHECK=y |
| 1032 | CONFIG_DEBUG_KERNEL=y | 1142 | CONFIG_DEBUG_KERNEL=y |
| 1033 | # CONFIG_DEBUG_SHIRQ is not set | 1143 | # CONFIG_DEBUG_SHIRQ is not set |
| 1034 | CONFIG_DETECT_SOFTLOCKUP=y | 1144 | CONFIG_DETECT_SOFTLOCKUP=y |
| 1145 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
| 1146 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
| 1035 | CONFIG_SCHED_DEBUG=y | 1147 | CONFIG_SCHED_DEBUG=y |
| 1036 | # CONFIG_SCHEDSTATS is not set | 1148 | # CONFIG_SCHEDSTATS is not set |
| 1037 | # CONFIG_TIMER_STATS is not set | 1149 | # CONFIG_TIMER_STATS is not set |
| 1150 | # CONFIG_DEBUG_OBJECTS is not set | ||
| 1038 | # CONFIG_DEBUG_SLAB is not set | 1151 | # CONFIG_DEBUG_SLAB is not set |
| 1039 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1152 | # CONFIG_DEBUG_RT_MUTEXES is not set |
| 1040 | # CONFIG_RT_MUTEX_TESTER is not set | 1153 | # CONFIG_RT_MUTEX_TESTER is not set |
| @@ -1046,10 +1159,33 @@ CONFIG_SCHED_DEBUG=y | |||
| 1046 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1159 | # CONFIG_DEBUG_BUGVERBOSE is not set |
| 1047 | # CONFIG_DEBUG_INFO is not set | 1160 | # CONFIG_DEBUG_INFO is not set |
| 1048 | # CONFIG_DEBUG_VM is not set | 1161 | # CONFIG_DEBUG_VM is not set |
| 1162 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
| 1163 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
| 1049 | # CONFIG_DEBUG_LIST is not set | 1164 | # CONFIG_DEBUG_LIST is not set |
| 1050 | CONFIG_FORCED_INLINING=y | 1165 | # CONFIG_DEBUG_SG is not set |
| 1166 | # CONFIG_DEBUG_NOTIFIERS is not set | ||
| 1167 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
| 1051 | # CONFIG_RCU_TORTURE_TEST is not set | 1168 | # CONFIG_RCU_TORTURE_TEST is not set |
| 1169 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
| 1170 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
| 1171 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
| 1052 | # CONFIG_FAULT_INJECTION is not set | 1172 | # CONFIG_FAULT_INJECTION is not set |
| 1173 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
| 1174 | CONFIG_NOP_TRACER=y | ||
| 1175 | CONFIG_RING_BUFFER=y | ||
| 1176 | CONFIG_TRACING=y | ||
| 1177 | |||
| 1178 | # | ||
| 1179 | # Tracers | ||
| 1180 | # | ||
| 1181 | # CONFIG_SCHED_TRACER is not set | ||
| 1182 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
| 1183 | # CONFIG_BOOT_TRACER is not set | ||
| 1184 | # CONFIG_TRACE_BRANCH_PROFILING is not set | ||
| 1185 | # CONFIG_FTRACE_STARTUP_TEST is not set | ||
| 1186 | # CONFIG_BUILD_DOCSRC is not set | ||
| 1187 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
| 1188 | # CONFIG_SAMPLES is not set | ||
| 1053 | # CONFIG_DEBUG_RODATA is not set | 1189 | # CONFIG_DEBUG_RODATA is not set |
| 1054 | 1190 | ||
| 1055 | # | 1191 | # |
| @@ -1058,56 +1194,112 @@ CONFIG_FORCED_INLINING=y | |||
| 1058 | CONFIG_KEYS=y | 1194 | CONFIG_KEYS=y |
| 1059 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | 1195 | CONFIG_KEYS_DEBUG_PROC_KEYS=y |
| 1060 | # CONFIG_SECURITY is not set | 1196 | # CONFIG_SECURITY is not set |
| 1197 | # CONFIG_SECURITYFS is not set | ||
| 1198 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
| 1061 | CONFIG_CRYPTO=y | 1199 | CONFIG_CRYPTO=y |
| 1200 | |||
| 1201 | # | ||
| 1202 | # Crypto core or helper | ||
| 1203 | # | ||
| 1204 | # CONFIG_CRYPTO_FIPS is not set | ||
| 1062 | CONFIG_CRYPTO_ALGAPI=y | 1205 | CONFIG_CRYPTO_ALGAPI=y |
| 1206 | CONFIG_CRYPTO_ALGAPI2=y | ||
| 1207 | CONFIG_CRYPTO_AEAD=m | ||
| 1208 | CONFIG_CRYPTO_AEAD2=y | ||
| 1063 | CONFIG_CRYPTO_BLKCIPHER=m | 1209 | CONFIG_CRYPTO_BLKCIPHER=m |
| 1210 | CONFIG_CRYPTO_BLKCIPHER2=y | ||
| 1064 | CONFIG_CRYPTO_HASH=y | 1211 | CONFIG_CRYPTO_HASH=y |
| 1212 | CONFIG_CRYPTO_HASH2=y | ||
| 1213 | CONFIG_CRYPTO_RNG2=y | ||
| 1065 | CONFIG_CRYPTO_MANAGER=y | 1214 | CONFIG_CRYPTO_MANAGER=y |
| 1215 | CONFIG_CRYPTO_MANAGER2=y | ||
| 1216 | # CONFIG_CRYPTO_GF128MUL is not set | ||
| 1217 | CONFIG_CRYPTO_NULL=m | ||
| 1218 | # CONFIG_CRYPTO_CRYPTD is not set | ||
| 1219 | CONFIG_CRYPTO_AUTHENC=m | ||
| 1220 | CONFIG_CRYPTO_TEST=m | ||
| 1221 | |||
| 1222 | # | ||
| 1223 | # Authenticated Encryption with Associated Data | ||
| 1224 | # | ||
| 1225 | # CONFIG_CRYPTO_CCM is not set | ||
| 1226 | # CONFIG_CRYPTO_GCM is not set | ||
| 1227 | # CONFIG_CRYPTO_SEQIV is not set | ||
| 1228 | |||
| 1229 | # | ||
| 1230 | # Block modes | ||
| 1231 | # | ||
| 1232 | CONFIG_CRYPTO_CBC=m | ||
| 1233 | # CONFIG_CRYPTO_CTR is not set | ||
| 1234 | # CONFIG_CRYPTO_CTS is not set | ||
| 1235 | # CONFIG_CRYPTO_ECB is not set | ||
| 1236 | # CONFIG_CRYPTO_LRW is not set | ||
| 1237 | # CONFIG_CRYPTO_PCBC is not set | ||
| 1238 | # CONFIG_CRYPTO_XTS is not set | ||
| 1239 | |||
| 1240 | # | ||
| 1241 | # Hash modes | ||
| 1242 | # | ||
| 1066 | CONFIG_CRYPTO_HMAC=y | 1243 | CONFIG_CRYPTO_HMAC=y |
| 1067 | # CONFIG_CRYPTO_XCBC is not set | 1244 | # CONFIG_CRYPTO_XCBC is not set |
| 1068 | CONFIG_CRYPTO_NULL=m | 1245 | |
| 1246 | # | ||
| 1247 | # Digest | ||
| 1248 | # | ||
| 1249 | CONFIG_CRYPTO_CRC32C=m | ||
| 1069 | # CONFIG_CRYPTO_MD4 is not set | 1250 | # CONFIG_CRYPTO_MD4 is not set |
| 1070 | CONFIG_CRYPTO_MD5=y | 1251 | CONFIG_CRYPTO_MD5=y |
| 1252 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
| 1253 | # CONFIG_CRYPTO_RMD128 is not set | ||
| 1254 | # CONFIG_CRYPTO_RMD160 is not set | ||
| 1255 | # CONFIG_CRYPTO_RMD256 is not set | ||
| 1256 | # CONFIG_CRYPTO_RMD320 is not set | ||
| 1071 | CONFIG_CRYPTO_SHA1=m | 1257 | CONFIG_CRYPTO_SHA1=m |
| 1072 | # CONFIG_CRYPTO_SHA256 is not set | 1258 | # CONFIG_CRYPTO_SHA256 is not set |
| 1073 | # CONFIG_CRYPTO_SHA512 is not set | 1259 | # CONFIG_CRYPTO_SHA512 is not set |
| 1074 | # CONFIG_CRYPTO_WP512 is not set | ||
| 1075 | # CONFIG_CRYPTO_TGR192 is not set | 1260 | # CONFIG_CRYPTO_TGR192 is not set |
| 1076 | # CONFIG_CRYPTO_GF128MUL is not set | 1261 | # CONFIG_CRYPTO_WP512 is not set |
| 1077 | # CONFIG_CRYPTO_ECB is not set | 1262 | |
| 1078 | CONFIG_CRYPTO_CBC=m | 1263 | # |
| 1079 | # CONFIG_CRYPTO_PCBC is not set | 1264 | # Ciphers |
| 1080 | # CONFIG_CRYPTO_LRW is not set | 1265 | # |
| 1081 | # CONFIG_CRYPTO_XTS is not set | ||
| 1082 | # CONFIG_CRYPTO_CRYPTD is not set | ||
| 1083 | CONFIG_CRYPTO_DES=m | ||
| 1084 | # CONFIG_CRYPTO_FCRYPT is not set | ||
| 1085 | CONFIG_CRYPTO_BLOWFISH=m | ||
| 1086 | # CONFIG_CRYPTO_TWOFISH is not set | ||
| 1087 | # CONFIG_CRYPTO_SERPENT is not set | ||
| 1088 | # CONFIG_CRYPTO_AES is not set | 1266 | # CONFIG_CRYPTO_AES is not set |
| 1267 | # CONFIG_CRYPTO_ANUBIS is not set | ||
| 1268 | # CONFIG_CRYPTO_ARC4 is not set | ||
| 1269 | CONFIG_CRYPTO_BLOWFISH=m | ||
| 1270 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
| 1089 | CONFIG_CRYPTO_CAST5=m | 1271 | CONFIG_CRYPTO_CAST5=m |
| 1090 | # CONFIG_CRYPTO_CAST6 is not set | 1272 | # CONFIG_CRYPTO_CAST6 is not set |
| 1091 | # CONFIG_CRYPTO_TEA is not set | 1273 | CONFIG_CRYPTO_DES=m |
| 1092 | # CONFIG_CRYPTO_ARC4 is not set | 1274 | # CONFIG_CRYPTO_FCRYPT is not set |
| 1093 | # CONFIG_CRYPTO_KHAZAD is not set | 1275 | # CONFIG_CRYPTO_KHAZAD is not set |
| 1094 | # CONFIG_CRYPTO_ANUBIS is not set | 1276 | # CONFIG_CRYPTO_SALSA20 is not set |
| 1095 | # CONFIG_CRYPTO_SEED is not set | 1277 | # CONFIG_CRYPTO_SEED is not set |
| 1278 | # CONFIG_CRYPTO_SERPENT is not set | ||
| 1279 | # CONFIG_CRYPTO_TEA is not set | ||
| 1280 | # CONFIG_CRYPTO_TWOFISH is not set | ||
| 1281 | |||
| 1282 | # | ||
| 1283 | # Compression | ||
| 1284 | # | ||
| 1096 | CONFIG_CRYPTO_DEFLATE=m | 1285 | CONFIG_CRYPTO_DEFLATE=m |
| 1097 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1286 | # CONFIG_CRYPTO_LZO is not set |
| 1098 | CONFIG_CRYPTO_CRC32C=m | 1287 | |
| 1099 | # CONFIG_CRYPTO_CAMELLIA is not set | 1288 | # |
| 1100 | CONFIG_CRYPTO_TEST=m | 1289 | # Random Number Generation |
| 1101 | # CONFIG_CRYPTO_AUTHENC is not set | 1290 | # |
| 1291 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
| 1102 | # CONFIG_CRYPTO_HW is not set | 1292 | # CONFIG_CRYPTO_HW is not set |
| 1103 | 1293 | ||
| 1104 | # | 1294 | # |
| 1105 | # Library routines | 1295 | # Library routines |
| 1106 | # | 1296 | # |
| 1107 | CONFIG_BITREVERSE=y | 1297 | CONFIG_BITREVERSE=y |
| 1298 | CONFIG_GENERIC_FIND_LAST_BIT=y | ||
| 1108 | CONFIG_CRC_CCITT=m | 1299 | CONFIG_CRC_CCITT=m |
| 1109 | # CONFIG_CRC16 is not set | 1300 | # CONFIG_CRC16 is not set |
| 1110 | # CONFIG_CRC_ITU_T is not set | 1301 | # CONFIG_CRC_T10DIF is not set |
| 1302 | CONFIG_CRC_ITU_T=m | ||
| 1111 | CONFIG_CRC32=y | 1303 | CONFIG_CRC32=y |
| 1112 | # CONFIG_CRC7 is not set | 1304 | # CONFIG_CRC7 is not set |
| 1113 | CONFIG_LIBCRC32C=m | 1305 | CONFIG_LIBCRC32C=m |
diff --git a/arch/parisc/configs/b180_defconfig b/arch/parisc/configs/b180_defconfig index 1bf22c9a4614..98bb05ee6e8d 100644 --- a/arch/parisc/configs/b180_defconfig +++ b/arch/parisc/configs/b180_defconfig | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.23 | 3 | # Linux kernel version: 2.6.29-rc8 |
| 4 | # Fri Oct 12 21:16:46 2007 | 4 | # Fri Mar 13 01:32:57 2009 |
| 5 | # | 5 | # |
| 6 | CONFIG_PARISC=y | 6 | CONFIG_PARISC=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| @@ -33,13 +33,29 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
| 33 | # CONFIG_BSD_PROCESS_ACCT is not set | 33 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 34 | # CONFIG_TASKSTATS is not set | 34 | # CONFIG_TASKSTATS is not set |
| 35 | # CONFIG_AUDIT is not set | 35 | # CONFIG_AUDIT is not set |
| 36 | |||
| 37 | # | ||
| 38 | # RCU Subsystem | ||
| 39 | # | ||
| 40 | CONFIG_CLASSIC_RCU=y | ||
| 41 | # CONFIG_TREE_RCU is not set | ||
| 42 | # CONFIG_PREEMPT_RCU is not set | ||
| 43 | # CONFIG_TREE_RCU_TRACE is not set | ||
| 44 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
| 36 | CONFIG_IKCONFIG=y | 45 | CONFIG_IKCONFIG=y |
| 37 | CONFIG_IKCONFIG_PROC=y | 46 | CONFIG_IKCONFIG_PROC=y |
| 38 | CONFIG_LOG_BUF_SHIFT=16 | 47 | CONFIG_LOG_BUF_SHIFT=16 |
| 48 | # CONFIG_CGROUPS is not set | ||
| 39 | CONFIG_SYSFS_DEPRECATED=y | 49 | CONFIG_SYSFS_DEPRECATED=y |
| 50 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 40 | # CONFIG_RELAY is not set | 51 | # CONFIG_RELAY is not set |
| 52 | CONFIG_NAMESPACES=y | ||
| 53 | # CONFIG_UTS_NS is not set | ||
| 54 | # CONFIG_IPC_NS is not set | ||
| 41 | # CONFIG_BLK_DEV_INITRD is not set | 55 | # CONFIG_BLK_DEV_INITRD is not set |
| 56 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
| 42 | CONFIG_SYSCTL=y | 57 | CONFIG_SYSCTL=y |
| 58 | CONFIG_ANON_INODES=y | ||
| 43 | # CONFIG_EMBEDDED is not set | 59 | # CONFIG_EMBEDDED is not set |
| 44 | CONFIG_SYSCTL_SYSCALL=y | 60 | CONFIG_SYSCTL_SYSCALL=y |
| 45 | CONFIG_KALLSYMS=y | 61 | CONFIG_KALLSYMS=y |
| @@ -51,27 +67,34 @@ CONFIG_BUG=y | |||
| 51 | CONFIG_ELF_CORE=y | 67 | CONFIG_ELF_CORE=y |
| 52 | CONFIG_BASE_FULL=y | 68 | CONFIG_BASE_FULL=y |
| 53 | CONFIG_FUTEX=y | 69 | CONFIG_FUTEX=y |
| 54 | CONFIG_ANON_INODES=y | ||
| 55 | CONFIG_EPOLL=y | 70 | CONFIG_EPOLL=y |
| 56 | CONFIG_SIGNALFD=y | 71 | CONFIG_SIGNALFD=y |
| 72 | CONFIG_TIMERFD=y | ||
| 57 | CONFIG_EVENTFD=y | 73 | CONFIG_EVENTFD=y |
| 58 | CONFIG_SHMEM=y | 74 | CONFIG_SHMEM=y |
| 75 | CONFIG_AIO=y | ||
| 59 | CONFIG_VM_EVENT_COUNTERS=y | 76 | CONFIG_VM_EVENT_COUNTERS=y |
| 77 | CONFIG_PCI_QUIRKS=y | ||
| 78 | CONFIG_COMPAT_BRK=y | ||
| 60 | CONFIG_SLAB=y | 79 | CONFIG_SLAB=y |
| 61 | # CONFIG_SLUB is not set | 80 | # CONFIG_SLUB is not set |
| 62 | # CONFIG_SLOB is not set | 81 | # CONFIG_SLOB is not set |
| 82 | # CONFIG_PROFILING is not set | ||
| 83 | CONFIG_HAVE_OPROFILE=y | ||
| 84 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | ||
| 85 | CONFIG_SLABINFO=y | ||
| 63 | CONFIG_RT_MUTEXES=y | 86 | CONFIG_RT_MUTEXES=y |
| 64 | # CONFIG_TINY_SHMEM is not set | ||
| 65 | CONFIG_BASE_SMALL=0 | 87 | CONFIG_BASE_SMALL=0 |
| 66 | CONFIG_MODULES=y | 88 | CONFIG_MODULES=y |
| 89 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
| 67 | # CONFIG_MODULE_UNLOAD is not set | 90 | # CONFIG_MODULE_UNLOAD is not set |
| 68 | CONFIG_MODVERSIONS=y | 91 | CONFIG_MODVERSIONS=y |
| 69 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 92 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
| 70 | # CONFIG_KMOD is not set | 93 | CONFIG_INIT_ALL_POSSIBLE=y |
| 71 | CONFIG_BLOCK=y | 94 | CONFIG_BLOCK=y |
| 72 | # CONFIG_LBD is not set | 95 | # CONFIG_LBD is not set |
| 73 | # CONFIG_BLK_DEV_IO_TRACE is not set | 96 | # CONFIG_BLK_DEV_IO_TRACE is not set |
| 74 | # CONFIG_LSF is not set | 97 | # CONFIG_BLK_DEV_INTEGRITY is not set |
| 75 | 98 | ||
| 76 | # | 99 | # |
| 77 | # IO Schedulers | 100 | # IO Schedulers |
| @@ -85,6 +108,7 @@ CONFIG_IOSCHED_CFQ=y | |||
| 85 | CONFIG_DEFAULT_CFQ=y | 108 | CONFIG_DEFAULT_CFQ=y |
| 86 | # CONFIG_DEFAULT_NOOP is not set | 109 | # CONFIG_DEFAULT_NOOP is not set |
| 87 | CONFIG_DEFAULT_IOSCHED="cfq" | 110 | CONFIG_DEFAULT_IOSCHED="cfq" |
| 111 | # CONFIG_FREEZER is not set | ||
| 88 | 112 | ||
| 89 | # | 113 | # |
| 90 | # Processor type and features | 114 | # Processor type and features |
| @@ -108,13 +132,15 @@ CONFIG_HZ_250=y | |||
| 108 | # CONFIG_HZ_300 is not set | 132 | # CONFIG_HZ_300 is not set |
| 109 | # CONFIG_HZ_1000 is not set | 133 | # CONFIG_HZ_1000 is not set |
| 110 | CONFIG_HZ=250 | 134 | CONFIG_HZ=250 |
| 135 | # CONFIG_SCHED_HRTICK is not set | ||
| 111 | CONFIG_FLATMEM=y | 136 | CONFIG_FLATMEM=y |
| 112 | CONFIG_FLAT_NODE_MEM_MAP=y | 137 | CONFIG_FLAT_NODE_MEM_MAP=y |
| 113 | # CONFIG_SPARSEMEM_STATIC is not set | 138 | CONFIG_PAGEFLAGS_EXTENDED=y |
| 114 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | 139 | CONFIG_SPLIT_PTLOCK_CPUS=4096 |
| 115 | # CONFIG_RESOURCES_64BIT is not set | 140 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
| 116 | CONFIG_ZONE_DMA_FLAG=0 | 141 | CONFIG_ZONE_DMA_FLAG=0 |
| 117 | CONFIG_VIRT_TO_BUS=y | 142 | CONFIG_VIRT_TO_BUS=y |
| 143 | CONFIG_UNEVICTABLE_LRU=y | ||
| 118 | # CONFIG_HPUX is not set | 144 | # CONFIG_HPUX is not set |
| 119 | 145 | ||
| 120 | # | 146 | # |
| @@ -130,14 +156,14 @@ CONFIG_EISA_NAMES=y | |||
| 130 | CONFIG_ISA=y | 156 | CONFIG_ISA=y |
| 131 | CONFIG_PCI=y | 157 | CONFIG_PCI=y |
| 132 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 158 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
| 159 | CONFIG_PCI_LEGACY=y | ||
| 133 | # CONFIG_PCI_DEBUG is not set | 160 | # CONFIG_PCI_DEBUG is not set |
| 161 | # CONFIG_PCI_STUB is not set | ||
| 134 | CONFIG_GSC_DINO=y | 162 | CONFIG_GSC_DINO=y |
| 135 | # CONFIG_PCI_LBA is not set | 163 | # CONFIG_PCI_LBA is not set |
| 136 | 164 | CONFIG_IOMMU_HELPER=y | |
| 137 | # | ||
| 138 | # PCCARD (PCMCIA/CardBus) support | ||
| 139 | # | ||
| 140 | # CONFIG_PCCARD is not set | 165 | # CONFIG_PCCARD is not set |
| 166 | # CONFIG_HOTPLUG_PCI is not set | ||
| 141 | 167 | ||
| 142 | # | 168 | # |
| 143 | # PA-RISC specific drivers | 169 | # PA-RISC specific drivers |
| @@ -151,16 +177,15 @@ CONFIG_PDC_STABLE=y | |||
| 151 | # Executable file formats | 177 | # Executable file formats |
| 152 | # | 178 | # |
| 153 | CONFIG_BINFMT_ELF=y | 179 | CONFIG_BINFMT_ELF=y |
| 180 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
| 181 | # CONFIG_HAVE_AOUT is not set | ||
| 154 | # CONFIG_BINFMT_MISC is not set | 182 | # CONFIG_BINFMT_MISC is not set |
| 155 | |||
| 156 | # | ||
| 157 | # Networking | ||
| 158 | # | ||
| 159 | CONFIG_NET=y | 183 | CONFIG_NET=y |
| 160 | 184 | ||
| 161 | # | 185 | # |
| 162 | # Networking options | 186 | # Networking options |
| 163 | # | 187 | # |
| 188 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
| 164 | CONFIG_PACKET=y | 189 | CONFIG_PACKET=y |
| 165 | CONFIG_PACKET_MMAP=y | 190 | CONFIG_PACKET_MMAP=y |
| 166 | CONFIG_UNIX=y | 191 | CONFIG_UNIX=y |
| @@ -205,36 +230,37 @@ CONFIG_INET6_XFRM_MODE_TRANSPORT=y | |||
| 205 | CONFIG_INET6_XFRM_MODE_TUNNEL=y | 230 | CONFIG_INET6_XFRM_MODE_TUNNEL=y |
| 206 | CONFIG_INET6_XFRM_MODE_BEET=y | 231 | CONFIG_INET6_XFRM_MODE_BEET=y |
| 207 | CONFIG_IPV6_SIT=y | 232 | CONFIG_IPV6_SIT=y |
| 233 | CONFIG_IPV6_NDISC_NODETYPE=y | ||
| 208 | # CONFIG_IPV6_TUNNEL is not set | 234 | # CONFIG_IPV6_TUNNEL is not set |
| 209 | # CONFIG_NETLABEL is not set | 235 | # CONFIG_NETLABEL is not set |
| 210 | # CONFIG_NETWORK_SECMARK is not set | 236 | # CONFIG_NETWORK_SECMARK is not set |
| 211 | # CONFIG_NETFILTER is not set | 237 | # CONFIG_NETFILTER is not set |
| 238 | # CONFIG_ATM is not set | ||
| 212 | # CONFIG_BRIDGE is not set | 239 | # CONFIG_BRIDGE is not set |
| 213 | # CONFIG_VLAN_8021Q is not set | 240 | # CONFIG_VLAN_8021Q is not set |
| 214 | # CONFIG_DECNET is not set | 241 | # CONFIG_DECNET is not set |
| 215 | # CONFIG_LLC2 is not set | 242 | # CONFIG_LLC2 is not set |
| 216 | # CONFIG_IPX is not set | 243 | # CONFIG_IPX is not set |
| 217 | # CONFIG_ATALK is not set | 244 | # CONFIG_ATALK is not set |
| 218 | |||
| 219 | # | ||
| 220 | # QoS and/or fair queueing | ||
| 221 | # | ||
| 222 | # CONFIG_NET_SCHED is not set | 245 | # CONFIG_NET_SCHED is not set |
| 246 | # CONFIG_DCB is not set | ||
| 223 | 247 | ||
| 224 | # | 248 | # |
| 225 | # Network testing | 249 | # Network testing |
| 226 | # | 250 | # |
| 227 | # CONFIG_NET_PKTGEN is not set | 251 | # CONFIG_NET_PKTGEN is not set |
| 228 | # CONFIG_HAMRADIO is not set | 252 | # CONFIG_HAMRADIO is not set |
| 253 | # CONFIG_CAN is not set | ||
| 229 | # CONFIG_IRDA is not set | 254 | # CONFIG_IRDA is not set |
| 230 | # CONFIG_BT is not set | 255 | # CONFIG_BT is not set |
| 231 | 256 | # CONFIG_PHONET is not set | |
| 232 | # | 257 | CONFIG_WIRELESS=y |
| 233 | # Wireless | ||
| 234 | # | ||
| 235 | # CONFIG_CFG80211 is not set | 258 | # CONFIG_CFG80211 is not set |
| 259 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
| 236 | # CONFIG_WIRELESS_EXT is not set | 260 | # CONFIG_WIRELESS_EXT is not set |
| 237 | # CONFIG_IEEE80211 is not set | 261 | # CONFIG_LIB80211 is not set |
| 262 | # CONFIG_MAC80211 is not set | ||
| 263 | # CONFIG_WIMAX is not set | ||
| 238 | # CONFIG_RFKILL is not set | 264 | # CONFIG_RFKILL is not set |
| 239 | 265 | ||
| 240 | # | 266 | # |
| @@ -247,7 +273,9 @@ CONFIG_IPV6_SIT=y | |||
| 247 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 273 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
| 248 | CONFIG_STANDALONE=y | 274 | CONFIG_STANDALONE=y |
| 249 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | 275 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
| 250 | # CONFIG_FW_LOADER is not set | 276 | CONFIG_FW_LOADER=y |
| 277 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
| 278 | CONFIG_EXTRA_FIRMWARE="" | ||
| 251 | # CONFIG_DEBUG_DRIVER is not set | 279 | # CONFIG_DEBUG_DRIVER is not set |
| 252 | # CONFIG_DEBUG_DEVRES is not set | 280 | # CONFIG_DEBUG_DEVRES is not set |
| 253 | # CONFIG_SYS_HYPERVISOR is not set | 281 | # CONFIG_SYS_HYPERVISOR is not set |
| @@ -275,10 +303,18 @@ CONFIG_BLK_DEV_CRYPTOLOOP=y | |||
| 275 | CONFIG_CDROM_PKTCDVD=m | 303 | CONFIG_CDROM_PKTCDVD=m |
| 276 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 304 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
| 277 | CONFIG_ATA_OVER_ETH=y | 305 | CONFIG_ATA_OVER_ETH=y |
| 306 | # CONFIG_BLK_DEV_HD is not set | ||
| 278 | CONFIG_MISC_DEVICES=y | 307 | CONFIG_MISC_DEVICES=y |
| 279 | # CONFIG_PHANTOM is not set | 308 | # CONFIG_PHANTOM is not set |
| 280 | # CONFIG_EEPROM_93CX6 is not set | ||
| 281 | # CONFIG_SGI_IOC4 is not set | 309 | # CONFIG_SGI_IOC4 is not set |
| 310 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
| 311 | # CONFIG_HP_ILO is not set | ||
| 312 | |||
| 313 | # | ||
| 314 | # EEPROM support | ||
| 315 | # | ||
| 316 | # CONFIG_EEPROM_93CX6 is not set | ||
| 317 | CONFIG_HAVE_IDE=y | ||
| 282 | # CONFIG_IDE is not set | 318 | # CONFIG_IDE is not set |
| 283 | 319 | ||
| 284 | # | 320 | # |
| @@ -317,8 +353,10 @@ CONFIG_SCSI_SPI_ATTRS=y | |||
| 317 | # CONFIG_SCSI_FC_ATTRS is not set | 353 | # CONFIG_SCSI_FC_ATTRS is not set |
| 318 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 354 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
| 319 | # CONFIG_SCSI_SAS_LIBSAS is not set | 355 | # CONFIG_SCSI_SAS_LIBSAS is not set |
| 356 | # CONFIG_SCSI_SRP_ATTRS is not set | ||
| 320 | CONFIG_SCSI_LOWLEVEL=y | 357 | CONFIG_SCSI_LOWLEVEL=y |
| 321 | # CONFIG_ISCSI_TCP is not set | 358 | # CONFIG_ISCSI_TCP is not set |
| 359 | # CONFIG_SCSI_CXGB3_ISCSI is not set | ||
| 322 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 360 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
| 323 | # CONFIG_SCSI_3W_9XXX is not set | 361 | # CONFIG_SCSI_3W_9XXX is not set |
| 324 | # CONFIG_SCSI_ACARD is not set | 362 | # CONFIG_SCSI_ACARD is not set |
| @@ -330,12 +368,15 @@ CONFIG_SCSI_LOWLEVEL=y | |||
| 330 | # CONFIG_SCSI_AIC79XX is not set | 368 | # CONFIG_SCSI_AIC79XX is not set |
| 331 | # CONFIG_SCSI_AIC94XX is not set | 369 | # CONFIG_SCSI_AIC94XX is not set |
| 332 | # CONFIG_SCSI_DPT_I2O is not set | 370 | # CONFIG_SCSI_DPT_I2O is not set |
| 371 | # CONFIG_SCSI_ADVANSYS is not set | ||
| 333 | # CONFIG_SCSI_IN2000 is not set | 372 | # CONFIG_SCSI_IN2000 is not set |
| 334 | # CONFIG_SCSI_ARCMSR is not set | 373 | # CONFIG_SCSI_ARCMSR is not set |
| 335 | # CONFIG_MEGARAID_NEWGEN is not set | 374 | # CONFIG_MEGARAID_NEWGEN is not set |
| 336 | # CONFIG_MEGARAID_LEGACY is not set | 375 | # CONFIG_MEGARAID_LEGACY is not set |
| 337 | # CONFIG_MEGARAID_SAS is not set | 376 | # CONFIG_MEGARAID_SAS is not set |
| 338 | # CONFIG_SCSI_HPTIOP is not set | 377 | # CONFIG_SCSI_HPTIOP is not set |
| 378 | # CONFIG_LIBFC is not set | ||
| 379 | # CONFIG_FCOE is not set | ||
| 339 | # CONFIG_SCSI_DMX3191D is not set | 380 | # CONFIG_SCSI_DMX3191D is not set |
| 340 | # CONFIG_SCSI_DTC3280 is not set | 381 | # CONFIG_SCSI_DTC3280 is not set |
| 341 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 382 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
| @@ -346,6 +387,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
| 346 | # CONFIG_SCSI_INIA100 is not set | 387 | # CONFIG_SCSI_INIA100 is not set |
| 347 | # CONFIG_SCSI_PPA is not set | 388 | # CONFIG_SCSI_PPA is not set |
| 348 | # CONFIG_SCSI_IMM is not set | 389 | # CONFIG_SCSI_IMM is not set |
| 390 | # CONFIG_SCSI_MVSAS is not set | ||
| 349 | # CONFIG_SCSI_NCR53C406A is not set | 391 | # CONFIG_SCSI_NCR53C406A is not set |
| 350 | CONFIG_SCSI_LASI700=y | 392 | CONFIG_SCSI_LASI700=y |
| 351 | CONFIG_53C700_LE_ON_BE=y | 393 | CONFIG_53C700_LE_ON_BE=y |
| @@ -360,7 +402,6 @@ CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 | |||
| 360 | CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 | 402 | CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 |
| 361 | CONFIG_SCSI_NCR53C8XX_SYNC=40 | 403 | CONFIG_SCSI_NCR53C8XX_SYNC=40 |
| 362 | # CONFIG_SCSI_PAS16 is not set | 404 | # CONFIG_SCSI_PAS16 is not set |
| 363 | # CONFIG_SCSI_PSI240I is not set | ||
| 364 | # CONFIG_SCSI_QLOGIC_FAS is not set | 405 | # CONFIG_SCSI_QLOGIC_FAS is not set |
| 365 | # CONFIG_SCSI_QLOGIC_1280 is not set | 406 | # CONFIG_SCSI_QLOGIC_1280 is not set |
| 366 | # CONFIG_SCSI_QLA_FC is not set | 407 | # CONFIG_SCSI_QLA_FC is not set |
| @@ -373,9 +414,11 @@ CONFIG_SCSI_NCR53C8XX_SYNC=40 | |||
| 373 | # CONFIG_SCSI_NSP32 is not set | 414 | # CONFIG_SCSI_NSP32 is not set |
| 374 | # CONFIG_SCSI_DEBUG is not set | 415 | # CONFIG_SCSI_DEBUG is not set |
| 375 | # CONFIG_SCSI_SRP is not set | 416 | # CONFIG_SCSI_SRP is not set |
| 417 | # CONFIG_SCSI_DH is not set | ||
| 376 | # CONFIG_ATA is not set | 418 | # CONFIG_ATA is not set |
| 377 | CONFIG_MD=y | 419 | CONFIG_MD=y |
| 378 | CONFIG_BLK_DEV_MD=y | 420 | CONFIG_BLK_DEV_MD=y |
| 421 | CONFIG_MD_AUTODETECT=y | ||
| 379 | CONFIG_MD_LINEAR=y | 422 | CONFIG_MD_LINEAR=y |
| 380 | CONFIG_MD_RAID0=y | 423 | CONFIG_MD_RAID0=y |
| 381 | CONFIG_MD_RAID1=y | 424 | CONFIG_MD_RAID1=y |
| @@ -383,26 +426,18 @@ CONFIG_MD_RAID1=y | |||
| 383 | # CONFIG_MD_MULTIPATH is not set | 426 | # CONFIG_MD_MULTIPATH is not set |
| 384 | # CONFIG_MD_FAULTY is not set | 427 | # CONFIG_MD_FAULTY is not set |
| 385 | # CONFIG_BLK_DEV_DM is not set | 428 | # CONFIG_BLK_DEV_DM is not set |
| 386 | |||
| 387 | # | ||
| 388 | # Fusion MPT device support | ||
| 389 | # | ||
| 390 | # CONFIG_FUSION is not set | 429 | # CONFIG_FUSION is not set |
| 391 | # CONFIG_FUSION_SPI is not set | ||
| 392 | # CONFIG_FUSION_FC is not set | ||
| 393 | # CONFIG_FUSION_SAS is not set | ||
| 394 | 430 | ||
| 395 | # | 431 | # |
| 396 | # IEEE 1394 (FireWire) support | 432 | # IEEE 1394 (FireWire) support |
| 397 | # | 433 | # |
| 398 | 434 | ||
| 399 | # | 435 | # |
| 400 | # An alternative FireWire stack is available with EXPERIMENTAL=y | 436 | # A new alternative FireWire stack is available with EXPERIMENTAL=y |
| 401 | # | 437 | # |
| 402 | # CONFIG_IEEE1394 is not set | 438 | # CONFIG_IEEE1394 is not set |
| 403 | # CONFIG_I2O is not set | 439 | # CONFIG_I2O is not set |
| 404 | CONFIG_NETDEVICES=y | 440 | CONFIG_NETDEVICES=y |
| 405 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
| 406 | # CONFIG_DUMMY is not set | 441 | # CONFIG_DUMMY is not set |
| 407 | # CONFIG_BONDING is not set | 442 | # CONFIG_BONDING is not set |
| 408 | # CONFIG_EQUALIZER is not set | 443 | # CONFIG_EQUALIZER is not set |
| @@ -434,36 +469,49 @@ CONFIG_TULIP=y | |||
| 434 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 469 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
| 435 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 470 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
| 436 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 471 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
| 472 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
| 473 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
| 474 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
| 437 | # CONFIG_NET_PCI is not set | 475 | # CONFIG_NET_PCI is not set |
| 438 | # CONFIG_B44 is not set | 476 | # CONFIG_B44 is not set |
| 477 | # CONFIG_CS89x0 is not set | ||
| 439 | # CONFIG_NET_POCKET is not set | 478 | # CONFIG_NET_POCKET is not set |
| 479 | # CONFIG_ATL2 is not set | ||
| 440 | CONFIG_NETDEV_1000=y | 480 | CONFIG_NETDEV_1000=y |
| 441 | # CONFIG_ACENIC is not set | 481 | # CONFIG_ACENIC is not set |
| 442 | # CONFIG_DL2K is not set | 482 | # CONFIG_DL2K is not set |
| 443 | # CONFIG_E1000 is not set | 483 | # CONFIG_E1000 is not set |
| 444 | # CONFIG_E1000E is not set | 484 | # CONFIG_E1000E is not set |
| 485 | # CONFIG_IGB is not set | ||
| 445 | # CONFIG_NS83820 is not set | 486 | # CONFIG_NS83820 is not set |
| 446 | # CONFIG_HAMACHI is not set | 487 | # CONFIG_HAMACHI is not set |
| 447 | # CONFIG_R8169 is not set | 488 | # CONFIG_R8169 is not set |
| 448 | # CONFIG_SIS190 is not set | 489 | # CONFIG_SIS190 is not set |
| 449 | # CONFIG_SKGE is not set | 490 | # CONFIG_SKGE is not set |
| 450 | # CONFIG_SKY2 is not set | 491 | # CONFIG_SKY2 is not set |
| 451 | # CONFIG_SK98LIN is not set | ||
| 452 | # CONFIG_VIA_VELOCITY is not set | 492 | # CONFIG_VIA_VELOCITY is not set |
| 453 | # CONFIG_TIGON3 is not set | 493 | # CONFIG_TIGON3 is not set |
| 454 | # CONFIG_BNX2 is not set | 494 | # CONFIG_BNX2 is not set |
| 455 | # CONFIG_QLA3XXX is not set | 495 | # CONFIG_QLA3XXX is not set |
| 496 | # CONFIG_ATL1 is not set | ||
| 497 | # CONFIG_JME is not set | ||
| 456 | CONFIG_NETDEV_10000=y | 498 | CONFIG_NETDEV_10000=y |
| 457 | # CONFIG_CHELSIO_T1 is not set | 499 | # CONFIG_CHELSIO_T1 is not set |
| 500 | CONFIG_CHELSIO_T3_DEPENDS=y | ||
| 458 | # CONFIG_CHELSIO_T3 is not set | 501 | # CONFIG_CHELSIO_T3 is not set |
| 502 | # CONFIG_ENIC is not set | ||
| 459 | # CONFIG_IXGBE is not set | 503 | # CONFIG_IXGBE is not set |
| 460 | # CONFIG_IXGB is not set | 504 | # CONFIG_IXGB is not set |
| 461 | # CONFIG_S2IO is not set | 505 | # CONFIG_S2IO is not set |
| 462 | # CONFIG_MYRI10GE is not set | 506 | # CONFIG_MYRI10GE is not set |
| 463 | # CONFIG_NETXEN_NIC is not set | 507 | # CONFIG_NETXEN_NIC is not set |
| 464 | # CONFIG_NIU is not set | 508 | # CONFIG_NIU is not set |
| 509 | # CONFIG_MLX4_EN is not set | ||
| 465 | # CONFIG_MLX4_CORE is not set | 510 | # CONFIG_MLX4_CORE is not set |
| 466 | # CONFIG_TEHUTI is not set | 511 | # CONFIG_TEHUTI is not set |
| 512 | # CONFIG_BNX2X is not set | ||
| 513 | # CONFIG_QLGE is not set | ||
| 514 | # CONFIG_SFC is not set | ||
| 467 | # CONFIG_TR is not set | 515 | # CONFIG_TR is not set |
| 468 | 516 | ||
| 469 | # | 517 | # |
| @@ -471,6 +519,11 @@ CONFIG_NETDEV_10000=y | |||
| 471 | # | 519 | # |
| 472 | # CONFIG_WLAN_PRE80211 is not set | 520 | # CONFIG_WLAN_PRE80211 is not set |
| 473 | # CONFIG_WLAN_80211 is not set | 521 | # CONFIG_WLAN_80211 is not set |
| 522 | # CONFIG_IWLWIFI_LEDS is not set | ||
| 523 | |||
| 524 | # | ||
| 525 | # Enable WiMAX (Networking options) to see the WiMAX drivers | ||
| 526 | # | ||
| 474 | # CONFIG_WAN is not set | 527 | # CONFIG_WAN is not set |
| 475 | # CONFIG_FDDI is not set | 528 | # CONFIG_FDDI is not set |
| 476 | # CONFIG_PLIP is not set | 529 | # CONFIG_PLIP is not set |
| @@ -503,7 +556,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y | |||
| 503 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | 556 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 |
| 504 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | 557 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 |
| 505 | # CONFIG_INPUT_JOYDEV is not set | 558 | # CONFIG_INPUT_JOYDEV is not set |
| 506 | # CONFIG_INPUT_TSDEV is not set | ||
| 507 | CONFIG_INPUT_EVDEV=y | 559 | CONFIG_INPUT_EVDEV=y |
| 508 | # CONFIG_INPUT_EVBUG is not set | 560 | # CONFIG_INPUT_EVBUG is not set |
| 509 | 561 | ||
| @@ -526,11 +578,12 @@ CONFIG_MOUSE_PS2=y | |||
| 526 | CONFIG_MOUSE_PS2_ALPS=y | 578 | CONFIG_MOUSE_PS2_ALPS=y |
| 527 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | 579 | CONFIG_MOUSE_PS2_LOGIPS2PP=y |
| 528 | CONFIG_MOUSE_PS2_SYNAPTICS=y | 580 | CONFIG_MOUSE_PS2_SYNAPTICS=y |
| 529 | CONFIG_MOUSE_PS2_LIFEBOOK=y | ||
| 530 | CONFIG_MOUSE_PS2_TRACKPOINT=y | 581 | CONFIG_MOUSE_PS2_TRACKPOINT=y |
| 582 | # CONFIG_MOUSE_PS2_ELANTECH is not set | ||
| 531 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | 583 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set |
| 532 | # CONFIG_MOUSE_SERIAL is not set | 584 | # CONFIG_MOUSE_SERIAL is not set |
| 533 | # CONFIG_MOUSE_APPLETOUCH is not set | 585 | # CONFIG_MOUSE_APPLETOUCH is not set |
| 586 | # CONFIG_MOUSE_BCM5974 is not set | ||
| 534 | # CONFIG_MOUSE_INPORT is not set | 587 | # CONFIG_MOUSE_INPORT is not set |
| 535 | # CONFIG_MOUSE_LOGIBM is not set | 588 | # CONFIG_MOUSE_LOGIBM is not set |
| 536 | # CONFIG_MOUSE_PC110PAD is not set | 589 | # CONFIG_MOUSE_PC110PAD is not set |
| @@ -564,9 +617,11 @@ CONFIG_SERIO_LIBPS2=y | |||
| 564 | # Character devices | 617 | # Character devices |
| 565 | # | 618 | # |
| 566 | CONFIG_VT=y | 619 | CONFIG_VT=y |
| 620 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
| 567 | CONFIG_VT_CONSOLE=y | 621 | CONFIG_VT_CONSOLE=y |
| 568 | CONFIG_HW_CONSOLE=y | 622 | CONFIG_HW_CONSOLE=y |
| 569 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 623 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
| 624 | CONFIG_DEVKMEM=y | ||
| 570 | # CONFIG_SERIAL_NONSTANDARD is not set | 625 | # CONFIG_SERIAL_NONSTANDARD is not set |
| 571 | 626 | ||
| 572 | # | 627 | # |
| @@ -598,75 +653,79 @@ CONFIG_SERIAL_CORE=y | |||
| 598 | CONFIG_SERIAL_CORE_CONSOLE=y | 653 | CONFIG_SERIAL_CORE_CONSOLE=y |
| 599 | # CONFIG_SERIAL_JSM is not set | 654 | # CONFIG_SERIAL_JSM is not set |
| 600 | CONFIG_UNIX98_PTYS=y | 655 | CONFIG_UNIX98_PTYS=y |
| 656 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | ||
| 601 | CONFIG_LEGACY_PTYS=y | 657 | CONFIG_LEGACY_PTYS=y |
| 602 | CONFIG_LEGACY_PTY_COUNT=256 | 658 | CONFIG_LEGACY_PTY_COUNT=256 |
| 603 | CONFIG_PRINTER=y | 659 | CONFIG_PRINTER=y |
| 604 | # CONFIG_LP_CONSOLE is not set | 660 | # CONFIG_LP_CONSOLE is not set |
| 605 | # CONFIG_PPDEV is not set | 661 | # CONFIG_PPDEV is not set |
| 606 | # CONFIG_TIPAR is not set | ||
| 607 | # CONFIG_IPMI_HANDLER is not set | 662 | # CONFIG_IPMI_HANDLER is not set |
| 608 | # CONFIG_WATCHDOG is not set | ||
| 609 | # CONFIG_HW_RANDOM is not set | 663 | # CONFIG_HW_RANDOM is not set |
| 610 | CONFIG_GEN_RTC=y | ||
| 611 | # CONFIG_GEN_RTC_X is not set | ||
| 612 | # CONFIG_DTLK is not set | 664 | # CONFIG_DTLK is not set |
| 613 | # CONFIG_R3964 is not set | 665 | # CONFIG_R3964 is not set |
| 614 | # CONFIG_APPLICOM is not set | 666 | # CONFIG_APPLICOM is not set |
| 615 | # CONFIG_AGP is not set | ||
| 616 | # CONFIG_DRM is not set | ||
| 617 | # CONFIG_RAW_DRIVER is not set | 667 | # CONFIG_RAW_DRIVER is not set |
| 618 | CONFIG_DEVPORT=y | 668 | CONFIG_DEVPORT=y |
| 619 | # CONFIG_I2C is not set | 669 | # CONFIG_I2C is not set |
| 620 | |||
| 621 | # | ||
| 622 | # SPI support | ||
| 623 | # | ||
| 624 | # CONFIG_SPI is not set | 670 | # CONFIG_SPI is not set |
| 625 | # CONFIG_SPI_MASTER is not set | ||
| 626 | # CONFIG_W1 is not set | 671 | # CONFIG_W1 is not set |
| 627 | # CONFIG_POWER_SUPPLY is not set | 672 | # CONFIG_POWER_SUPPLY is not set |
| 628 | # CONFIG_HWMON is not set | 673 | # CONFIG_HWMON is not set |
| 674 | # CONFIG_THERMAL is not set | ||
| 675 | # CONFIG_THERMAL_HWMON is not set | ||
| 676 | # CONFIG_WATCHDOG is not set | ||
| 677 | CONFIG_SSB_POSSIBLE=y | ||
| 629 | 678 | ||
| 630 | # | 679 | # |
| 631 | # Sonics Silicon Backplane | 680 | # Sonics Silicon Backplane |
| 632 | # | 681 | # |
| 633 | CONFIG_SSB_POSSIBLE=y | ||
| 634 | # CONFIG_SSB is not set | 682 | # CONFIG_SSB is not set |
| 635 | 683 | ||
| 636 | # | 684 | # |
| 637 | # Multifunction device drivers | 685 | # Multifunction device drivers |
| 638 | # | 686 | # |
| 687 | # CONFIG_MFD_CORE is not set | ||
| 639 | # CONFIG_MFD_SM501 is not set | 688 | # CONFIG_MFD_SM501 is not set |
| 689 | # CONFIG_HTC_PASIC3 is not set | ||
| 690 | # CONFIG_MFD_TMIO is not set | ||
| 691 | # CONFIG_REGULATOR is not set | ||
| 640 | 692 | ||
| 641 | # | 693 | # |
| 642 | # Multimedia devices | 694 | # Multimedia devices |
| 643 | # | 695 | # |
| 696 | |||
| 697 | # | ||
| 698 | # Multimedia core support | ||
| 699 | # | ||
| 644 | # CONFIG_VIDEO_DEV is not set | 700 | # CONFIG_VIDEO_DEV is not set |
| 645 | # CONFIG_DVB_CORE is not set | 701 | # CONFIG_DVB_CORE is not set |
| 646 | # CONFIG_DAB is not set | 702 | # CONFIG_VIDEO_MEDIA is not set |
| 647 | 703 | ||
| 648 | # | 704 | # |
| 649 | # Graphics support | 705 | # Multimedia drivers |
| 650 | # | 706 | # |
| 651 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 707 | # CONFIG_DAB is not set |
| 652 | 708 | ||
| 653 | # | 709 | # |
| 654 | # Display device support | 710 | # Graphics support |
| 655 | # | 711 | # |
| 656 | # CONFIG_DISPLAY_SUPPORT is not set | 712 | # CONFIG_AGP is not set |
| 713 | # CONFIG_DRM is not set | ||
| 657 | # CONFIG_VGASTATE is not set | 714 | # CONFIG_VGASTATE is not set |
| 658 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 715 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
| 659 | CONFIG_FB=y | 716 | CONFIG_FB=y |
| 660 | # CONFIG_FIRMWARE_EDID is not set | 717 | # CONFIG_FIRMWARE_EDID is not set |
| 661 | # CONFIG_FB_DDC is not set | 718 | # CONFIG_FB_DDC is not set |
| 719 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
| 662 | CONFIG_FB_CFB_FILLRECT=y | 720 | CONFIG_FB_CFB_FILLRECT=y |
| 663 | CONFIG_FB_CFB_COPYAREA=y | 721 | CONFIG_FB_CFB_COPYAREA=y |
| 664 | CONFIG_FB_CFB_IMAGEBLIT=y | 722 | CONFIG_FB_CFB_IMAGEBLIT=y |
| 723 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
| 665 | # CONFIG_FB_SYS_FILLRECT is not set | 724 | # CONFIG_FB_SYS_FILLRECT is not set |
| 666 | # CONFIG_FB_SYS_COPYAREA is not set | 725 | # CONFIG_FB_SYS_COPYAREA is not set |
| 667 | # CONFIG_FB_SYS_IMAGEBLIT is not set | 726 | # CONFIG_FB_SYS_IMAGEBLIT is not set |
| 727 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
| 668 | # CONFIG_FB_SYS_FOPS is not set | 728 | # CONFIG_FB_SYS_FOPS is not set |
| 669 | CONFIG_FB_DEFERRED_IO=y | ||
| 670 | # CONFIG_FB_SVGALIB is not set | 729 | # CONFIG_FB_SVGALIB is not set |
| 671 | # CONFIG_FB_MACMODES is not set | 730 | # CONFIG_FB_MACMODES is not set |
| 672 | # CONFIG_FB_BACKLIGHT is not set | 731 | # CONFIG_FB_BACKLIGHT is not set |
| @@ -691,6 +750,7 @@ CONFIG_FB_STI=y | |||
| 691 | # CONFIG_FB_ATY is not set | 750 | # CONFIG_FB_ATY is not set |
| 692 | # CONFIG_FB_S3 is not set | 751 | # CONFIG_FB_S3 is not set |
| 693 | # CONFIG_FB_SIS is not set | 752 | # CONFIG_FB_SIS is not set |
| 753 | # CONFIG_FB_VIA is not set | ||
| 694 | # CONFIG_FB_NEOMAGIC is not set | 754 | # CONFIG_FB_NEOMAGIC is not set |
| 695 | # CONFIG_FB_KYRO is not set | 755 | # CONFIG_FB_KYRO is not set |
| 696 | # CONFIG_FB_3DFX is not set | 756 | # CONFIG_FB_3DFX is not set |
| @@ -698,7 +758,16 @@ CONFIG_FB_STI=y | |||
| 698 | # CONFIG_FB_VT8623 is not set | 758 | # CONFIG_FB_VT8623 is not set |
| 699 | # CONFIG_FB_TRIDENT is not set | 759 | # CONFIG_FB_TRIDENT is not set |
| 700 | # CONFIG_FB_ARK is not set | 760 | # CONFIG_FB_ARK is not set |
| 761 | # CONFIG_FB_CARMINE is not set | ||
| 701 | # CONFIG_FB_VIRTUAL is not set | 762 | # CONFIG_FB_VIRTUAL is not set |
| 763 | # CONFIG_FB_METRONOME is not set | ||
| 764 | # CONFIG_FB_MB862XX is not set | ||
| 765 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
| 766 | |||
| 767 | # | ||
| 768 | # Display device support | ||
| 769 | # | ||
| 770 | # CONFIG_DISPLAY_SUPPORT is not set | ||
| 702 | 771 | ||
| 703 | # | 772 | # |
| 704 | # Console display driver support | 773 | # Console display driver support |
| @@ -718,15 +787,8 @@ CONFIG_LOGO_LINUX_MONO=y | |||
| 718 | CONFIG_LOGO_LINUX_VGA16=y | 787 | CONFIG_LOGO_LINUX_VGA16=y |
| 719 | CONFIG_LOGO_LINUX_CLUT224=y | 788 | CONFIG_LOGO_LINUX_CLUT224=y |
| 720 | CONFIG_LOGO_PARISC_CLUT224=y | 789 | CONFIG_LOGO_PARISC_CLUT224=y |
| 721 | |||
| 722 | # | ||
| 723 | # Sound | ||
| 724 | # | ||
| 725 | CONFIG_SOUND=y | 790 | CONFIG_SOUND=y |
| 726 | 791 | CONFIG_SOUND_OSS_CORE=y | |
| 727 | # | ||
| 728 | # Advanced Linux Sound Architecture | ||
| 729 | # | ||
| 730 | CONFIG_SND=y | 792 | CONFIG_SND=y |
| 731 | CONFIG_SND_TIMER=y | 793 | CONFIG_SND_TIMER=y |
| 732 | CONFIG_SND_PCM=y | 794 | CONFIG_SND_PCM=y |
| @@ -742,10 +804,7 @@ CONFIG_SND_SUPPORT_OLD_API=y | |||
| 742 | CONFIG_SND_VERBOSE_PROCFS=y | 804 | CONFIG_SND_VERBOSE_PROCFS=y |
| 743 | # CONFIG_SND_VERBOSE_PRINTK is not set | 805 | # CONFIG_SND_VERBOSE_PRINTK is not set |
| 744 | # CONFIG_SND_DEBUG is not set | 806 | # CONFIG_SND_DEBUG is not set |
| 745 | 807 | CONFIG_SND_DRIVERS=y | |
| 746 | # | ||
| 747 | # Generic devices | ||
| 748 | # | ||
| 749 | # CONFIG_SND_DUMMY is not set | 808 | # CONFIG_SND_DUMMY is not set |
| 750 | # CONFIG_SND_VIRMIDI is not set | 809 | # CONFIG_SND_VIRMIDI is not set |
| 751 | # CONFIG_SND_MTPAV is not set | 810 | # CONFIG_SND_MTPAV is not set |
| @@ -753,10 +812,7 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
| 753 | # CONFIG_SND_SERIAL_U16550 is not set | 812 | # CONFIG_SND_SERIAL_U16550 is not set |
| 754 | # CONFIG_SND_MPU401 is not set | 813 | # CONFIG_SND_MPU401 is not set |
| 755 | # CONFIG_SND_PORTMAN2X4 is not set | 814 | # CONFIG_SND_PORTMAN2X4 is not set |
| 756 | 815 | CONFIG_SND_PCI=y | |
| 757 | # | ||
| 758 | # PCI devices | ||
| 759 | # | ||
| 760 | # CONFIG_SND_AD1889 is not set | 816 | # CONFIG_SND_AD1889 is not set |
| 761 | # CONFIG_SND_ALS300 is not set | 817 | # CONFIG_SND_ALS300 is not set |
| 762 | # CONFIG_SND_ALI5451 is not set | 818 | # CONFIG_SND_ALI5451 is not set |
| @@ -765,9 +821,11 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
| 765 | # CONFIG_SND_AU8810 is not set | 821 | # CONFIG_SND_AU8810 is not set |
| 766 | # CONFIG_SND_AU8820 is not set | 822 | # CONFIG_SND_AU8820 is not set |
| 767 | # CONFIG_SND_AU8830 is not set | 823 | # CONFIG_SND_AU8830 is not set |
| 824 | # CONFIG_SND_AW2 is not set | ||
| 768 | # CONFIG_SND_BT87X is not set | 825 | # CONFIG_SND_BT87X is not set |
| 769 | # CONFIG_SND_CA0106 is not set | 826 | # CONFIG_SND_CA0106 is not set |
| 770 | # CONFIG_SND_CMIPCI is not set | 827 | # CONFIG_SND_CMIPCI is not set |
| 828 | # CONFIG_SND_OXYGEN is not set | ||
| 771 | # CONFIG_SND_CS4281 is not set | 829 | # CONFIG_SND_CS4281 is not set |
| 772 | # CONFIG_SND_CS46XX is not set | 830 | # CONFIG_SND_CS46XX is not set |
| 773 | # CONFIG_SND_DARLA20 is not set | 831 | # CONFIG_SND_DARLA20 is not set |
| @@ -792,6 +850,7 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
| 792 | # CONFIG_SND_HDA_INTEL is not set | 850 | # CONFIG_SND_HDA_INTEL is not set |
| 793 | # CONFIG_SND_HDSP is not set | 851 | # CONFIG_SND_HDSP is not set |
| 794 | # CONFIG_SND_HDSPM is not set | 852 | # CONFIG_SND_HDSPM is not set |
| 853 | # CONFIG_SND_HIFIER is not set | ||
| 795 | # CONFIG_SND_ICE1712 is not set | 854 | # CONFIG_SND_ICE1712 is not set |
| 796 | # CONFIG_SND_ICE1724 is not set | 855 | # CONFIG_SND_ICE1724 is not set |
| 797 | # CONFIG_SND_INTEL8X0 is not set | 856 | # CONFIG_SND_INTEL8X0 is not set |
| @@ -809,30 +868,23 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
| 809 | # CONFIG_SND_TRIDENT is not set | 868 | # CONFIG_SND_TRIDENT is not set |
| 810 | # CONFIG_SND_VIA82XX is not set | 869 | # CONFIG_SND_VIA82XX is not set |
| 811 | # CONFIG_SND_VIA82XX_MODEM is not set | 870 | # CONFIG_SND_VIA82XX_MODEM is not set |
| 871 | # CONFIG_SND_VIRTUOSO is not set | ||
| 812 | # CONFIG_SND_VX222 is not set | 872 | # CONFIG_SND_VX222 is not set |
| 813 | # CONFIG_SND_YMFPCI is not set | 873 | # CONFIG_SND_YMFPCI is not set |
| 814 | 874 | CONFIG_SND_GSC=y | |
| 815 | # | ||
| 816 | # GSC devices | ||
| 817 | # | ||
| 818 | CONFIG_SND_HARMONY=y | 875 | CONFIG_SND_HARMONY=y |
| 819 | |||
| 820 | # | ||
| 821 | # System on Chip audio support | ||
| 822 | # | ||
| 823 | # CONFIG_SND_SOC is not set | 876 | # CONFIG_SND_SOC is not set |
| 824 | |||
| 825 | # | ||
| 826 | # SoC Audio support for SuperH | ||
| 827 | # | ||
| 828 | |||
| 829 | # | ||
| 830 | # Open Sound System | ||
| 831 | # | ||
| 832 | # CONFIG_SOUND_PRIME is not set | 877 | # CONFIG_SOUND_PRIME is not set |
| 833 | CONFIG_HID_SUPPORT=y | 878 | CONFIG_HID_SUPPORT=y |
| 834 | CONFIG_HID=y | 879 | CONFIG_HID=y |
| 835 | CONFIG_HID_DEBUG=y | 880 | CONFIG_HID_DEBUG=y |
| 881 | # CONFIG_HIDRAW is not set | ||
| 882 | # CONFIG_HID_PID is not set | ||
| 883 | |||
| 884 | # | ||
| 885 | # Special HID drivers | ||
| 886 | # | ||
| 887 | CONFIG_HID_COMPAT=y | ||
| 836 | CONFIG_USB_SUPPORT=y | 888 | CONFIG_USB_SUPPORT=y |
| 837 | CONFIG_USB_ARCH_HAS_HCD=y | 889 | CONFIG_USB_ARCH_HAS_HCD=y |
| 838 | CONFIG_USB_ARCH_HAS_OHCI=y | 890 | CONFIG_USB_ARCH_HAS_OHCI=y |
| @@ -840,36 +892,63 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
| 840 | # CONFIG_USB is not set | 892 | # CONFIG_USB is not set |
| 841 | 893 | ||
| 842 | # | 894 | # |
| 843 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 895 | # Enable Host or Gadget support to see Inventra options |
| 844 | # | 896 | # |
| 845 | 897 | ||
| 846 | # | 898 | # |
| 847 | # USB Gadget Support | 899 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; |
| 848 | # | 900 | # |
| 849 | # CONFIG_USB_GADGET is not set | 901 | # CONFIG_USB_GADGET is not set |
| 902 | |||
| 903 | # | ||
| 904 | # OTG and related infrastructure | ||
| 905 | # | ||
| 850 | # CONFIG_MMC is not set | 906 | # CONFIG_MMC is not set |
| 907 | # CONFIG_MEMSTICK is not set | ||
| 851 | # CONFIG_NEW_LEDS is not set | 908 | # CONFIG_NEW_LEDS is not set |
| 909 | # CONFIG_ACCESSIBILITY is not set | ||
| 852 | # CONFIG_INFINIBAND is not set | 910 | # CONFIG_INFINIBAND is not set |
| 853 | # CONFIG_RTC_CLASS is not set | 911 | CONFIG_RTC_LIB=y |
| 912 | CONFIG_RTC_CLASS=y | ||
| 913 | CONFIG_RTC_HCTOSYS=y | ||
| 914 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
| 915 | # CONFIG_RTC_DEBUG is not set | ||
| 854 | 916 | ||
| 855 | # | 917 | # |
| 856 | # DMA Engine support | 918 | # RTC interfaces |
| 857 | # | 919 | # |
| 858 | # CONFIG_DMA_ENGINE is not set | 920 | CONFIG_RTC_INTF_SYSFS=y |
| 921 | CONFIG_RTC_INTF_PROC=y | ||
| 922 | CONFIG_RTC_INTF_DEV=y | ||
| 923 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
| 924 | # CONFIG_RTC_DRV_TEST is not set | ||
| 859 | 925 | ||
| 860 | # | 926 | # |
| 861 | # DMA Clients | 927 | # SPI RTC drivers |
| 862 | # | 928 | # |
| 863 | 929 | ||
| 864 | # | 930 | # |
| 865 | # DMA Devices | 931 | # Platform RTC drivers |
| 866 | # | 932 | # |
| 867 | # CONFIG_AUXDISPLAY is not set | 933 | # CONFIG_RTC_DRV_DS1286 is not set |
| 934 | # CONFIG_RTC_DRV_DS1511 is not set | ||
| 935 | # CONFIG_RTC_DRV_DS1553 is not set | ||
| 936 | # CONFIG_RTC_DRV_DS1742 is not set | ||
| 937 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
| 938 | # CONFIG_RTC_DRV_M48T86 is not set | ||
| 939 | # CONFIG_RTC_DRV_M48T35 is not set | ||
| 940 | # CONFIG_RTC_DRV_M48T59 is not set | ||
| 941 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
| 942 | # CONFIG_RTC_DRV_V3020 is not set | ||
| 868 | 943 | ||
| 869 | # | 944 | # |
| 870 | # Userspace I/O | 945 | # on-CPU RTC drivers |
| 871 | # | 946 | # |
| 947 | CONFIG_RTC_DRV_PARISC=y | ||
| 948 | # CONFIG_DMADEVICES is not set | ||
| 949 | # CONFIG_AUXDISPLAY is not set | ||
| 872 | # CONFIG_UIO is not set | 950 | # CONFIG_UIO is not set |
| 951 | # CONFIG_STAGING is not set | ||
| 873 | 952 | ||
| 874 | # | 953 | # |
| 875 | # File systems | 954 | # File systems |
| @@ -879,19 +958,18 @@ CONFIG_EXT2_FS=y | |||
| 879 | # CONFIG_EXT2_FS_XIP is not set | 958 | # CONFIG_EXT2_FS_XIP is not set |
| 880 | CONFIG_EXT3_FS=y | 959 | CONFIG_EXT3_FS=y |
| 881 | # CONFIG_EXT3_FS_XATTR is not set | 960 | # CONFIG_EXT3_FS_XATTR is not set |
| 961 | # CONFIG_EXT4_FS is not set | ||
| 882 | CONFIG_JBD=y | 962 | CONFIG_JBD=y |
| 883 | # CONFIG_JBD_DEBUG is not set | ||
| 884 | # CONFIG_REISERFS_FS is not set | 963 | # CONFIG_REISERFS_FS is not set |
| 885 | # CONFIG_JFS_FS is not set | 964 | # CONFIG_JFS_FS is not set |
| 886 | # CONFIG_FS_POSIX_ACL is not set | 965 | # CONFIG_FS_POSIX_ACL is not set |
| 966 | CONFIG_FILE_LOCKING=y | ||
| 887 | # CONFIG_XFS_FS is not set | 967 | # CONFIG_XFS_FS is not set |
| 888 | # CONFIG_OCFS2_FS is not set | 968 | # CONFIG_OCFS2_FS is not set |
| 889 | # CONFIG_MINIX_FS is not set | 969 | CONFIG_DNOTIFY=y |
| 890 | # CONFIG_ROMFS_FS is not set | ||
| 891 | CONFIG_INOTIFY=y | 970 | CONFIG_INOTIFY=y |
| 892 | CONFIG_INOTIFY_USER=y | 971 | CONFIG_INOTIFY_USER=y |
| 893 | # CONFIG_QUOTA is not set | 972 | # CONFIG_QUOTA is not set |
| 894 | CONFIG_DNOTIFY=y | ||
| 895 | # CONFIG_AUTOFS_FS is not set | 973 | # CONFIG_AUTOFS_FS is not set |
| 896 | CONFIG_AUTOFS4_FS=y | 974 | CONFIG_AUTOFS4_FS=y |
| 897 | # CONFIG_FUSE_FS is not set | 975 | # CONFIG_FUSE_FS is not set |
| @@ -917,35 +995,32 @@ CONFIG_JOLIET=y | |||
| 917 | CONFIG_PROC_FS=y | 995 | CONFIG_PROC_FS=y |
| 918 | CONFIG_PROC_KCORE=y | 996 | CONFIG_PROC_KCORE=y |
| 919 | CONFIG_PROC_SYSCTL=y | 997 | CONFIG_PROC_SYSCTL=y |
| 998 | CONFIG_PROC_PAGE_MONITOR=y | ||
| 920 | CONFIG_SYSFS=y | 999 | CONFIG_SYSFS=y |
| 921 | CONFIG_TMPFS=y | 1000 | CONFIG_TMPFS=y |
| 922 | # CONFIG_TMPFS_POSIX_ACL is not set | 1001 | # CONFIG_TMPFS_POSIX_ACL is not set |
| 923 | # CONFIG_HUGETLB_PAGE is not set | 1002 | # CONFIG_HUGETLB_PAGE is not set |
| 924 | CONFIG_RAMFS=y | 1003 | # CONFIG_CONFIGFS_FS is not set |
| 925 | 1004 | CONFIG_MISC_FILESYSTEMS=y | |
| 926 | # | ||
| 927 | # Miscellaneous filesystems | ||
| 928 | # | ||
| 929 | # CONFIG_HFSPLUS_FS is not set | 1005 | # CONFIG_HFSPLUS_FS is not set |
| 930 | # CONFIG_CRAMFS is not set | 1006 | # CONFIG_CRAMFS is not set |
| 1007 | # CONFIG_SQUASHFS is not set | ||
| 931 | # CONFIG_VXFS_FS is not set | 1008 | # CONFIG_VXFS_FS is not set |
| 1009 | # CONFIG_MINIX_FS is not set | ||
| 1010 | # CONFIG_OMFS_FS is not set | ||
| 932 | # CONFIG_HPFS_FS is not set | 1011 | # CONFIG_HPFS_FS is not set |
| 933 | # CONFIG_QNX4FS_FS is not set | 1012 | # CONFIG_QNX4FS_FS is not set |
| 1013 | # CONFIG_ROMFS_FS is not set | ||
| 934 | # CONFIG_SYSV_FS is not set | 1014 | # CONFIG_SYSV_FS is not set |
| 935 | # CONFIG_UFS_FS is not set | 1015 | # CONFIG_UFS_FS is not set |
| 936 | 1016 | CONFIG_NETWORK_FILESYSTEMS=y | |
| 937 | # | ||
| 938 | # Network File Systems | ||
| 939 | # | ||
| 940 | CONFIG_NFS_FS=y | 1017 | CONFIG_NFS_FS=y |
| 941 | CONFIG_NFS_V3=y | 1018 | CONFIG_NFS_V3=y |
| 942 | # CONFIG_NFS_V3_ACL is not set | 1019 | # CONFIG_NFS_V3_ACL is not set |
| 943 | # CONFIG_NFS_DIRECTIO is not set | 1020 | CONFIG_ROOT_NFS=y |
| 944 | CONFIG_NFSD=y | 1021 | CONFIG_NFSD=y |
| 945 | CONFIG_NFSD_V3=y | 1022 | CONFIG_NFSD_V3=y |
| 946 | # CONFIG_NFSD_V3_ACL is not set | 1023 | # CONFIG_NFSD_V3_ACL is not set |
| 947 | CONFIG_NFSD_TCP=y | ||
| 948 | CONFIG_ROOT_NFS=y | ||
| 949 | CONFIG_LOCKD=y | 1024 | CONFIG_LOCKD=y |
| 950 | CONFIG_LOCKD_V4=y | 1025 | CONFIG_LOCKD_V4=y |
| 951 | CONFIG_EXPORTFS=y | 1026 | CONFIG_EXPORTFS=y |
| @@ -962,10 +1037,6 @@ CONFIG_SMB_FS=y | |||
| 962 | # | 1037 | # |
| 963 | # CONFIG_PARTITION_ADVANCED is not set | 1038 | # CONFIG_PARTITION_ADVANCED is not set |
| 964 | CONFIG_MSDOS_PARTITION=y | 1039 | CONFIG_MSDOS_PARTITION=y |
| 965 | |||
| 966 | # | ||
| 967 | # Native Language Support | ||
| 968 | # | ||
| 969 | CONFIG_NLS=y | 1040 | CONFIG_NLS=y |
| 970 | CONFIG_NLS_DEFAULT="iso8859-1" | 1041 | CONFIG_NLS_DEFAULT="iso8859-1" |
| 971 | CONFIG_NLS_CODEPAGE_437=m | 1042 | CONFIG_NLS_CODEPAGE_437=m |
| @@ -1011,7 +1082,9 @@ CONFIG_NLS_UTF8=m | |||
| 1011 | # Kernel hacking | 1082 | # Kernel hacking |
| 1012 | # | 1083 | # |
| 1013 | # CONFIG_PRINTK_TIME is not set | 1084 | # CONFIG_PRINTK_TIME is not set |
| 1085 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
| 1014 | CONFIG_ENABLE_MUST_CHECK=y | 1086 | CONFIG_ENABLE_MUST_CHECK=y |
| 1087 | CONFIG_FRAME_WARN=1024 | ||
| 1015 | CONFIG_MAGIC_SYSRQ=y | 1088 | CONFIG_MAGIC_SYSRQ=y |
| 1016 | # CONFIG_UNUSED_SYMBOLS is not set | 1089 | # CONFIG_UNUSED_SYMBOLS is not set |
| 1017 | # CONFIG_DEBUG_FS is not set | 1090 | # CONFIG_DEBUG_FS is not set |
| @@ -1019,9 +1092,12 @@ CONFIG_HEADERS_CHECK=y | |||
| 1019 | CONFIG_DEBUG_KERNEL=y | 1092 | CONFIG_DEBUG_KERNEL=y |
| 1020 | # CONFIG_DEBUG_SHIRQ is not set | 1093 | # CONFIG_DEBUG_SHIRQ is not set |
| 1021 | CONFIG_DETECT_SOFTLOCKUP=y | 1094 | CONFIG_DETECT_SOFTLOCKUP=y |
| 1095 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
| 1096 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
| 1022 | CONFIG_SCHED_DEBUG=y | 1097 | CONFIG_SCHED_DEBUG=y |
| 1023 | # CONFIG_SCHEDSTATS is not set | 1098 | # CONFIG_SCHEDSTATS is not set |
| 1024 | # CONFIG_TIMER_STATS is not set | 1099 | # CONFIG_TIMER_STATS is not set |
| 1100 | # CONFIG_DEBUG_OBJECTS is not set | ||
| 1025 | # CONFIG_DEBUG_SLAB is not set | 1101 | # CONFIG_DEBUG_SLAB is not set |
| 1026 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1102 | # CONFIG_DEBUG_RT_MUTEXES is not set |
| 1027 | # CONFIG_RT_MUTEX_TESTER is not set | 1103 | # CONFIG_RT_MUTEX_TESTER is not set |
| @@ -1033,10 +1109,29 @@ CONFIG_SCHED_DEBUG=y | |||
| 1033 | CONFIG_DEBUG_BUGVERBOSE=y | 1109 | CONFIG_DEBUG_BUGVERBOSE=y |
| 1034 | # CONFIG_DEBUG_INFO is not set | 1110 | # CONFIG_DEBUG_INFO is not set |
| 1035 | # CONFIG_DEBUG_VM is not set | 1111 | # CONFIG_DEBUG_VM is not set |
| 1112 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
| 1113 | CONFIG_DEBUG_MEMORY_INIT=y | ||
| 1036 | # CONFIG_DEBUG_LIST is not set | 1114 | # CONFIG_DEBUG_LIST is not set |
| 1037 | CONFIG_FORCED_INLINING=y | 1115 | # CONFIG_DEBUG_SG is not set |
| 1116 | # CONFIG_DEBUG_NOTIFIERS is not set | ||
| 1117 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
| 1038 | # CONFIG_RCU_TORTURE_TEST is not set | 1118 | # CONFIG_RCU_TORTURE_TEST is not set |
| 1119 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
| 1120 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
| 1121 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
| 1039 | # CONFIG_FAULT_INJECTION is not set | 1122 | # CONFIG_FAULT_INJECTION is not set |
| 1123 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
| 1124 | |||
| 1125 | # | ||
| 1126 | # Tracers | ||
| 1127 | # | ||
| 1128 | # CONFIG_SCHED_TRACER is not set | ||
| 1129 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
| 1130 | # CONFIG_BOOT_TRACER is not set | ||
| 1131 | # CONFIG_TRACE_BRANCH_PROFILING is not set | ||
| 1132 | # CONFIG_BUILD_DOCSRC is not set | ||
| 1133 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
| 1134 | # CONFIG_SAMPLES is not set | ||
| 1040 | # CONFIG_DEBUG_RODATA is not set | 1135 | # CONFIG_DEBUG_RODATA is not set |
| 1041 | 1136 | ||
| 1042 | # | 1137 | # |
| @@ -1044,52 +1139,108 @@ CONFIG_FORCED_INLINING=y | |||
| 1044 | # | 1139 | # |
| 1045 | # CONFIG_KEYS is not set | 1140 | # CONFIG_KEYS is not set |
| 1046 | CONFIG_SECURITY=y | 1141 | CONFIG_SECURITY=y |
| 1142 | # CONFIG_SECURITYFS is not set | ||
| 1047 | # CONFIG_SECURITY_NETWORK is not set | 1143 | # CONFIG_SECURITY_NETWORK is not set |
| 1048 | CONFIG_SECURITY_CAPABILITIES=y | 1144 | # CONFIG_SECURITY_PATH is not set |
| 1145 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
| 1146 | CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 | ||
| 1049 | CONFIG_CRYPTO=y | 1147 | CONFIG_CRYPTO=y |
| 1148 | |||
| 1149 | # | ||
| 1150 | # Crypto core or helper | ||
| 1151 | # | ||
| 1152 | # CONFIG_CRYPTO_FIPS is not set | ||
| 1050 | CONFIG_CRYPTO_ALGAPI=y | 1153 | CONFIG_CRYPTO_ALGAPI=y |
| 1154 | CONFIG_CRYPTO_ALGAPI2=y | ||
| 1155 | CONFIG_CRYPTO_AEAD2=y | ||
| 1051 | CONFIG_CRYPTO_BLKCIPHER=y | 1156 | CONFIG_CRYPTO_BLKCIPHER=y |
| 1157 | CONFIG_CRYPTO_BLKCIPHER2=y | ||
| 1158 | CONFIG_CRYPTO_HASH2=y | ||
| 1159 | CONFIG_CRYPTO_RNG2=y | ||
| 1052 | CONFIG_CRYPTO_MANAGER=y | 1160 | CONFIG_CRYPTO_MANAGER=y |
| 1053 | # CONFIG_CRYPTO_HMAC is not set | 1161 | CONFIG_CRYPTO_MANAGER2=y |
| 1054 | # CONFIG_CRYPTO_NULL is not set | 1162 | # CONFIG_CRYPTO_NULL is not set |
| 1163 | # CONFIG_CRYPTO_CRYPTD is not set | ||
| 1164 | # CONFIG_CRYPTO_AUTHENC is not set | ||
| 1165 | # CONFIG_CRYPTO_TEST is not set | ||
| 1166 | |||
| 1167 | # | ||
| 1168 | # Authenticated Encryption with Associated Data | ||
| 1169 | # | ||
| 1170 | # CONFIG_CRYPTO_CCM is not set | ||
| 1171 | # CONFIG_CRYPTO_GCM is not set | ||
| 1172 | # CONFIG_CRYPTO_SEQIV is not set | ||
| 1173 | |||
| 1174 | # | ||
| 1175 | # Block modes | ||
| 1176 | # | ||
| 1177 | CONFIG_CRYPTO_CBC=y | ||
| 1178 | # CONFIG_CRYPTO_CTR is not set | ||
| 1179 | # CONFIG_CRYPTO_CTS is not set | ||
| 1180 | # CONFIG_CRYPTO_ECB is not set | ||
| 1181 | # CONFIG_CRYPTO_PCBC is not set | ||
| 1182 | |||
| 1183 | # | ||
| 1184 | # Hash modes | ||
| 1185 | # | ||
| 1186 | # CONFIG_CRYPTO_HMAC is not set | ||
| 1187 | |||
| 1188 | # | ||
| 1189 | # Digest | ||
| 1190 | # | ||
| 1191 | # CONFIG_CRYPTO_CRC32C is not set | ||
| 1055 | # CONFIG_CRYPTO_MD4 is not set | 1192 | # CONFIG_CRYPTO_MD4 is not set |
| 1056 | # CONFIG_CRYPTO_MD5 is not set | 1193 | # CONFIG_CRYPTO_MD5 is not set |
| 1194 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
| 1195 | # CONFIG_CRYPTO_RMD128 is not set | ||
| 1196 | # CONFIG_CRYPTO_RMD160 is not set | ||
| 1197 | # CONFIG_CRYPTO_RMD256 is not set | ||
| 1198 | # CONFIG_CRYPTO_RMD320 is not set | ||
| 1057 | # CONFIG_CRYPTO_SHA1 is not set | 1199 | # CONFIG_CRYPTO_SHA1 is not set |
| 1058 | # CONFIG_CRYPTO_SHA256 is not set | 1200 | # CONFIG_CRYPTO_SHA256 is not set |
| 1059 | # CONFIG_CRYPTO_SHA512 is not set | 1201 | # CONFIG_CRYPTO_SHA512 is not set |
| 1060 | # CONFIG_CRYPTO_WP512 is not set | ||
| 1061 | # CONFIG_CRYPTO_TGR192 is not set | 1202 | # CONFIG_CRYPTO_TGR192 is not set |
| 1062 | # CONFIG_CRYPTO_ECB is not set | 1203 | # CONFIG_CRYPTO_WP512 is not set |
| 1063 | CONFIG_CRYPTO_CBC=y | 1204 | |
| 1064 | # CONFIG_CRYPTO_PCBC is not set | 1205 | # |
| 1065 | # CONFIG_CRYPTO_CRYPTD is not set | 1206 | # Ciphers |
| 1066 | # CONFIG_CRYPTO_DES is not set | 1207 | # |
| 1067 | # CONFIG_CRYPTO_FCRYPT is not set | ||
| 1068 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
| 1069 | # CONFIG_CRYPTO_TWOFISH is not set | ||
| 1070 | # CONFIG_CRYPTO_SERPENT is not set | ||
| 1071 | # CONFIG_CRYPTO_AES is not set | 1208 | # CONFIG_CRYPTO_AES is not set |
| 1209 | # CONFIG_CRYPTO_ANUBIS is not set | ||
| 1210 | # CONFIG_CRYPTO_ARC4 is not set | ||
| 1211 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
| 1212 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
| 1072 | # CONFIG_CRYPTO_CAST5 is not set | 1213 | # CONFIG_CRYPTO_CAST5 is not set |
| 1073 | # CONFIG_CRYPTO_CAST6 is not set | 1214 | # CONFIG_CRYPTO_CAST6 is not set |
| 1074 | # CONFIG_CRYPTO_TEA is not set | 1215 | # CONFIG_CRYPTO_DES is not set |
| 1075 | # CONFIG_CRYPTO_ARC4 is not set | 1216 | # CONFIG_CRYPTO_FCRYPT is not set |
| 1076 | # CONFIG_CRYPTO_KHAZAD is not set | 1217 | # CONFIG_CRYPTO_KHAZAD is not set |
| 1077 | # CONFIG_CRYPTO_ANUBIS is not set | ||
| 1078 | # CONFIG_CRYPTO_SEED is not set | 1218 | # CONFIG_CRYPTO_SEED is not set |
| 1219 | # CONFIG_CRYPTO_SERPENT is not set | ||
| 1220 | # CONFIG_CRYPTO_TEA is not set | ||
| 1221 | # CONFIG_CRYPTO_TWOFISH is not set | ||
| 1222 | |||
| 1223 | # | ||
| 1224 | # Compression | ||
| 1225 | # | ||
| 1079 | # CONFIG_CRYPTO_DEFLATE is not set | 1226 | # CONFIG_CRYPTO_DEFLATE is not set |
| 1080 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1227 | # CONFIG_CRYPTO_LZO is not set |
| 1081 | # CONFIG_CRYPTO_CRC32C is not set | 1228 | |
| 1082 | # CONFIG_CRYPTO_CAMELLIA is not set | 1229 | # |
| 1083 | # CONFIG_CRYPTO_TEST is not set | 1230 | # Random Number Generation |
| 1084 | # CONFIG_CRYPTO_AUTHENC is not set | 1231 | # |
| 1232 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
| 1085 | CONFIG_CRYPTO_HW=y | 1233 | CONFIG_CRYPTO_HW=y |
| 1234 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
| 1086 | 1235 | ||
| 1087 | # | 1236 | # |
| 1088 | # Library routines | 1237 | # Library routines |
| 1089 | # | 1238 | # |
| 1090 | CONFIG_BITREVERSE=y | 1239 | CONFIG_BITREVERSE=y |
| 1240 | CONFIG_GENERIC_FIND_LAST_BIT=y | ||
| 1091 | # CONFIG_CRC_CCITT is not set | 1241 | # CONFIG_CRC_CCITT is not set |
| 1092 | # CONFIG_CRC16 is not set | 1242 | # CONFIG_CRC16 is not set |
| 1243 | # CONFIG_CRC_T10DIF is not set | ||
| 1093 | # CONFIG_CRC_ITU_T is not set | 1244 | # CONFIG_CRC_ITU_T is not set |
| 1094 | CONFIG_CRC32=y | 1245 | CONFIG_CRC32=y |
| 1095 | # CONFIG_CRC7 is not set | 1246 | # CONFIG_CRC7 is not set |
diff --git a/arch/parisc/configs/c3000_defconfig b/arch/parisc/configs/c3000_defconfig index c6def3c1d209..0aa8014f758c 100644 --- a/arch/parisc/configs/c3000_defconfig +++ b/arch/parisc/configs/c3000_defconfig | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.23 | 3 | # Linux kernel version: 2.6.29-rc8 |
| 4 | # Fri Oct 12 21:24:00 2007 | 4 | # Fri Mar 13 01:32:58 2009 |
| 5 | # | 5 | # |
| 6 | CONFIG_PARISC=y | 6 | CONFIG_PARISC=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| @@ -33,16 +33,29 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
| 33 | # CONFIG_POSIX_MQUEUE is not set | 33 | # CONFIG_POSIX_MQUEUE is not set |
| 34 | # CONFIG_BSD_PROCESS_ACCT is not set | 34 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 35 | # CONFIG_TASKSTATS is not set | 35 | # CONFIG_TASKSTATS is not set |
| 36 | # CONFIG_USER_NS is not set | ||
| 37 | # CONFIG_AUDIT is not set | 36 | # CONFIG_AUDIT is not set |
| 37 | |||
| 38 | # | ||
| 39 | # RCU Subsystem | ||
| 40 | # | ||
| 41 | CONFIG_CLASSIC_RCU=y | ||
| 42 | # CONFIG_TREE_RCU is not set | ||
| 43 | # CONFIG_PREEMPT_RCU is not set | ||
| 44 | # CONFIG_TREE_RCU_TRACE is not set | ||
| 45 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
| 38 | CONFIG_IKCONFIG=y | 46 | CONFIG_IKCONFIG=y |
| 39 | CONFIG_IKCONFIG_PROC=y | 47 | CONFIG_IKCONFIG_PROC=y |
| 40 | CONFIG_LOG_BUF_SHIFT=16 | 48 | CONFIG_LOG_BUF_SHIFT=16 |
| 49 | # CONFIG_GROUP_SCHED is not set | ||
| 50 | # CONFIG_CGROUPS is not set | ||
| 41 | CONFIG_SYSFS_DEPRECATED=y | 51 | CONFIG_SYSFS_DEPRECATED=y |
| 52 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 42 | # CONFIG_RELAY is not set | 53 | # CONFIG_RELAY is not set |
| 54 | # CONFIG_NAMESPACES is not set | ||
| 43 | # CONFIG_BLK_DEV_INITRD is not set | 55 | # CONFIG_BLK_DEV_INITRD is not set |
| 44 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 56 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
| 45 | CONFIG_SYSCTL=y | 57 | CONFIG_SYSCTL=y |
| 58 | CONFIG_ANON_INODES=y | ||
| 46 | CONFIG_EMBEDDED=y | 59 | CONFIG_EMBEDDED=y |
| 47 | CONFIG_SYSCTL_SYSCALL=y | 60 | CONFIG_SYSCTL_SYSCALL=y |
| 48 | CONFIG_KALLSYMS=y | 61 | CONFIG_KALLSYMS=y |
| @@ -54,29 +67,39 @@ CONFIG_BUG=y | |||
| 54 | CONFIG_ELF_CORE=y | 67 | CONFIG_ELF_CORE=y |
| 55 | CONFIG_BASE_FULL=y | 68 | CONFIG_BASE_FULL=y |
| 56 | CONFIG_FUTEX=y | 69 | CONFIG_FUTEX=y |
| 57 | CONFIG_ANON_INODES=y | ||
| 58 | CONFIG_EPOLL=y | 70 | CONFIG_EPOLL=y |
| 59 | CONFIG_SIGNALFD=y | 71 | CONFIG_SIGNALFD=y |
| 72 | CONFIG_TIMERFD=y | ||
| 60 | CONFIG_EVENTFD=y | 73 | CONFIG_EVENTFD=y |
| 61 | CONFIG_SHMEM=y | 74 | CONFIG_SHMEM=y |
| 75 | CONFIG_AIO=y | ||
| 62 | CONFIG_VM_EVENT_COUNTERS=y | 76 | CONFIG_VM_EVENT_COUNTERS=y |
| 77 | CONFIG_PCI_QUIRKS=y | ||
| 78 | CONFIG_COMPAT_BRK=y | ||
| 63 | CONFIG_SLAB=y | 79 | CONFIG_SLAB=y |
| 64 | # CONFIG_SLUB is not set | 80 | # CONFIG_SLUB is not set |
| 65 | # CONFIG_SLOB is not set | 81 | # CONFIG_SLOB is not set |
| 82 | CONFIG_PROFILING=y | ||
| 83 | CONFIG_TRACEPOINTS=y | ||
| 84 | # CONFIG_MARKERS is not set | ||
| 85 | CONFIG_OPROFILE=m | ||
| 86 | CONFIG_HAVE_OPROFILE=y | ||
| 87 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | ||
| 88 | CONFIG_SLABINFO=y | ||
| 66 | CONFIG_RT_MUTEXES=y | 89 | CONFIG_RT_MUTEXES=y |
| 67 | # CONFIG_TINY_SHMEM is not set | ||
| 68 | CONFIG_BASE_SMALL=0 | 90 | CONFIG_BASE_SMALL=0 |
| 69 | CONFIG_MODULES=y | 91 | CONFIG_MODULES=y |
| 92 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
| 70 | CONFIG_MODULE_UNLOAD=y | 93 | CONFIG_MODULE_UNLOAD=y |
| 71 | CONFIG_MODULE_FORCE_UNLOAD=y | 94 | CONFIG_MODULE_FORCE_UNLOAD=y |
| 72 | # CONFIG_MODVERSIONS is not set | 95 | # CONFIG_MODVERSIONS is not set |
| 73 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 96 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
| 74 | CONFIG_KMOD=y | 97 | CONFIG_INIT_ALL_POSSIBLE=y |
| 75 | CONFIG_BLOCK=y | 98 | CONFIG_BLOCK=y |
| 76 | # CONFIG_LBD is not set | 99 | # CONFIG_LBD is not set |
| 77 | # CONFIG_BLK_DEV_IO_TRACE is not set | 100 | # CONFIG_BLK_DEV_IO_TRACE is not set |
| 78 | # CONFIG_LSF is not set | ||
| 79 | # CONFIG_BLK_DEV_BSG is not set | 101 | # CONFIG_BLK_DEV_BSG is not set |
| 102 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
| 80 | 103 | ||
| 81 | # | 104 | # |
| 82 | # IO Schedulers | 105 | # IO Schedulers |
| @@ -90,6 +113,7 @@ CONFIG_DEFAULT_AS=y | |||
| 90 | # CONFIG_DEFAULT_CFQ is not set | 113 | # CONFIG_DEFAULT_CFQ is not set |
| 91 | # CONFIG_DEFAULT_NOOP is not set | 114 | # CONFIG_DEFAULT_NOOP is not set |
| 92 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 115 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
| 116 | # CONFIG_FREEZER is not set | ||
| 93 | 117 | ||
| 94 | # | 118 | # |
| 95 | # Processor type and features | 119 | # Processor type and features |
| @@ -115,17 +139,19 @@ CONFIG_HZ_250=y | |||
| 115 | # CONFIG_HZ_300 is not set | 139 | # CONFIG_HZ_300 is not set |
| 116 | # CONFIG_HZ_1000 is not set | 140 | # CONFIG_HZ_1000 is not set |
| 117 | CONFIG_HZ=250 | 141 | CONFIG_HZ=250 |
| 142 | # CONFIG_SCHED_HRTICK is not set | ||
| 118 | CONFIG_SELECT_MEMORY_MODEL=y | 143 | CONFIG_SELECT_MEMORY_MODEL=y |
| 119 | CONFIG_FLATMEM_MANUAL=y | 144 | CONFIG_FLATMEM_MANUAL=y |
| 120 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 145 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
| 121 | # CONFIG_SPARSEMEM_MANUAL is not set | 146 | # CONFIG_SPARSEMEM_MANUAL is not set |
| 122 | CONFIG_FLATMEM=y | 147 | CONFIG_FLATMEM=y |
| 123 | CONFIG_FLAT_NODE_MEM_MAP=y | 148 | CONFIG_FLAT_NODE_MEM_MAP=y |
| 124 | # CONFIG_SPARSEMEM_STATIC is not set | 149 | CONFIG_PAGEFLAGS_EXTENDED=y |
| 125 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 150 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
| 126 | # CONFIG_RESOURCES_64BIT is not set | 151 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
| 127 | CONFIG_ZONE_DMA_FLAG=0 | 152 | CONFIG_ZONE_DMA_FLAG=0 |
| 128 | CONFIG_VIRT_TO_BUS=y | 153 | CONFIG_VIRT_TO_BUS=y |
| 154 | CONFIG_UNEVICTABLE_LRU=y | ||
| 129 | # CONFIG_HPUX is not set | 155 | # CONFIG_HPUX is not set |
| 130 | 156 | ||
| 131 | # | 157 | # |
| @@ -134,14 +160,13 @@ CONFIG_VIRT_TO_BUS=y | |||
| 134 | # CONFIG_GSC is not set | 160 | # CONFIG_GSC is not set |
| 135 | CONFIG_PCI=y | 161 | CONFIG_PCI=y |
| 136 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 162 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
| 163 | CONFIG_PCI_LEGACY=y | ||
| 137 | # CONFIG_PCI_DEBUG is not set | 164 | # CONFIG_PCI_DEBUG is not set |
| 165 | # CONFIG_PCI_STUB is not set | ||
| 138 | CONFIG_PCI_LBA=y | 166 | CONFIG_PCI_LBA=y |
| 139 | CONFIG_IOSAPIC=y | 167 | CONFIG_IOSAPIC=y |
| 140 | CONFIG_IOMMU_SBA=y | 168 | CONFIG_IOMMU_SBA=y |
| 141 | 169 | CONFIG_IOMMU_HELPER=y | |
| 142 | # | ||
| 143 | # PCCARD (PCMCIA/CardBus) support | ||
| 144 | # | ||
| 145 | # CONFIG_PCCARD is not set | 170 | # CONFIG_PCCARD is not set |
| 146 | # CONFIG_HOTPLUG_PCI is not set | 171 | # CONFIG_HOTPLUG_PCI is not set |
| 147 | 172 | ||
| @@ -158,16 +183,15 @@ CONFIG_PDC_STABLE=y | |||
| 158 | # Executable file formats | 183 | # Executable file formats |
| 159 | # | 184 | # |
| 160 | CONFIG_BINFMT_ELF=y | 185 | CONFIG_BINFMT_ELF=y |
| 186 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
| 187 | # CONFIG_HAVE_AOUT is not set | ||
| 161 | # CONFIG_BINFMT_MISC is not set | 188 | # CONFIG_BINFMT_MISC is not set |
| 162 | |||
| 163 | # | ||
| 164 | # Networking | ||
| 165 | # | ||
| 166 | CONFIG_NET=y | 189 | CONFIG_NET=y |
| 167 | 190 | ||
| 168 | # | 191 | # |
| 169 | # Networking options | 192 | # Networking options |
| 170 | # | 193 | # |
| 194 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
| 171 | CONFIG_PACKET=y | 195 | CONFIG_PACKET=y |
| 172 | CONFIG_PACKET_MMAP=y | 196 | CONFIG_PACKET_MMAP=y |
| 173 | CONFIG_UNIX=y | 197 | CONFIG_UNIX=y |
| @@ -175,6 +199,8 @@ CONFIG_XFRM=y | |||
| 175 | CONFIG_XFRM_USER=m | 199 | CONFIG_XFRM_USER=m |
| 176 | # CONFIG_XFRM_SUB_POLICY is not set | 200 | # CONFIG_XFRM_SUB_POLICY is not set |
| 177 | # CONFIG_XFRM_MIGRATE is not set | 201 | # CONFIG_XFRM_MIGRATE is not set |
| 202 | # CONFIG_XFRM_STATISTICS is not set | ||
| 203 | CONFIG_XFRM_IPCOMP=m | ||
| 178 | CONFIG_NET_KEY=m | 204 | CONFIG_NET_KEY=m |
| 179 | # CONFIG_NET_KEY_MIGRATE is not set | 205 | # CONFIG_NET_KEY_MIGRATE is not set |
| 180 | CONFIG_INET=y | 206 | CONFIG_INET=y |
| @@ -204,7 +230,6 @@ CONFIG_INET_XFRM_MODE_BEET=y | |||
| 204 | CONFIG_TCP_CONG_CUBIC=y | 230 | CONFIG_TCP_CONG_CUBIC=y |
| 205 | CONFIG_DEFAULT_TCP_CONG="cubic" | 231 | CONFIG_DEFAULT_TCP_CONG="cubic" |
| 206 | # CONFIG_TCP_MD5SIG is not set | 232 | # CONFIG_TCP_MD5SIG is not set |
| 207 | # CONFIG_IP_VS is not set | ||
| 208 | CONFIG_IPV6=m | 233 | CONFIG_IPV6=m |
| 209 | # CONFIG_IPV6_PRIVACY is not set | 234 | # CONFIG_IPV6_PRIVACY is not set |
| 210 | # CONFIG_IPV6_ROUTER_PREF is not set | 235 | # CONFIG_IPV6_ROUTER_PREF is not set |
| @@ -220,29 +245,34 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m | |||
| 220 | CONFIG_INET6_XFRM_MODE_BEET=m | 245 | CONFIG_INET6_XFRM_MODE_BEET=m |
| 221 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 246 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
| 222 | CONFIG_IPV6_SIT=m | 247 | CONFIG_IPV6_SIT=m |
| 248 | CONFIG_IPV6_NDISC_NODETYPE=y | ||
| 223 | CONFIG_IPV6_TUNNEL=m | 249 | CONFIG_IPV6_TUNNEL=m |
| 224 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 250 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
| 251 | # CONFIG_IPV6_MROUTE is not set | ||
| 225 | # CONFIG_NETWORK_SECMARK is not set | 252 | # CONFIG_NETWORK_SECMARK is not set |
| 226 | CONFIG_NETFILTER=y | 253 | CONFIG_NETFILTER=y |
| 227 | CONFIG_NETFILTER_DEBUG=y | 254 | CONFIG_NETFILTER_DEBUG=y |
| 255 | CONFIG_NETFILTER_ADVANCED=y | ||
| 228 | 256 | ||
| 229 | # | 257 | # |
| 230 | # Core Netfilter Configuration | 258 | # Core Netfilter Configuration |
| 231 | # | 259 | # |
| 232 | # CONFIG_NETFILTER_NETLINK is not set | 260 | # CONFIG_NETFILTER_NETLINK_QUEUE is not set |
| 233 | # CONFIG_NF_CONNTRACK_ENABLED is not set | 261 | # CONFIG_NETFILTER_NETLINK_LOG is not set |
| 234 | # CONFIG_NF_CONNTRACK is not set | 262 | # CONFIG_NF_CONNTRACK is not set |
| 235 | # CONFIG_NETFILTER_XTABLES is not set | 263 | # CONFIG_NETFILTER_XTABLES is not set |
| 264 | # CONFIG_IP_VS is not set | ||
| 236 | 265 | ||
| 237 | # | 266 | # |
| 238 | # IP: Netfilter Configuration | 267 | # IP: Netfilter Configuration |
| 239 | # | 268 | # |
| 269 | # CONFIG_NF_DEFRAG_IPV4 is not set | ||
| 240 | CONFIG_IP_NF_QUEUE=m | 270 | CONFIG_IP_NF_QUEUE=m |
| 241 | # CONFIG_IP_NF_IPTABLES is not set | 271 | # CONFIG_IP_NF_IPTABLES is not set |
| 242 | # CONFIG_IP_NF_ARPTABLES is not set | 272 | # CONFIG_IP_NF_ARPTABLES is not set |
| 243 | 273 | ||
| 244 | # | 274 | # |
| 245 | # IPv6: Netfilter Configuration (EXPERIMENTAL) | 275 | # IPv6: Netfilter Configuration |
| 246 | # | 276 | # |
| 247 | # CONFIG_IP6_NF_QUEUE is not set | 277 | # CONFIG_IP6_NF_QUEUE is not set |
| 248 | # CONFIG_IP6_NF_IPTABLES is not set | 278 | # CONFIG_IP6_NF_IPTABLES is not set |
| @@ -251,6 +281,7 @@ CONFIG_IP_NF_QUEUE=m | |||
| 251 | # CONFIG_TIPC is not set | 281 | # CONFIG_TIPC is not set |
| 252 | # CONFIG_ATM is not set | 282 | # CONFIG_ATM is not set |
| 253 | # CONFIG_BRIDGE is not set | 283 | # CONFIG_BRIDGE is not set |
| 284 | # CONFIG_NET_DSA is not set | ||
| 254 | # CONFIG_VLAN_8021Q is not set | 285 | # CONFIG_VLAN_8021Q is not set |
| 255 | # CONFIG_DECNET is not set | 286 | # CONFIG_DECNET is not set |
| 256 | # CONFIG_LLC2 is not set | 287 | # CONFIG_LLC2 is not set |
| @@ -260,28 +291,26 @@ CONFIG_IP_NF_QUEUE=m | |||
| 260 | # CONFIG_LAPB is not set | 291 | # CONFIG_LAPB is not set |
| 261 | # CONFIG_ECONET is not set | 292 | # CONFIG_ECONET is not set |
| 262 | # CONFIG_WAN_ROUTER is not set | 293 | # CONFIG_WAN_ROUTER is not set |
| 263 | |||
| 264 | # | ||
| 265 | # QoS and/or fair queueing | ||
| 266 | # | ||
| 267 | # CONFIG_NET_SCHED is not set | 294 | # CONFIG_NET_SCHED is not set |
| 295 | # CONFIG_DCB is not set | ||
| 268 | 296 | ||
| 269 | # | 297 | # |
| 270 | # Network testing | 298 | # Network testing |
| 271 | # | 299 | # |
| 272 | CONFIG_NET_PKTGEN=m | 300 | CONFIG_NET_PKTGEN=m |
| 273 | # CONFIG_HAMRADIO is not set | 301 | # CONFIG_HAMRADIO is not set |
| 302 | # CONFIG_CAN is not set | ||
| 274 | # CONFIG_IRDA is not set | 303 | # CONFIG_IRDA is not set |
| 275 | # CONFIG_BT is not set | 304 | # CONFIG_BT is not set |
| 276 | # CONFIG_AF_RXRPC is not set | 305 | # CONFIG_AF_RXRPC is not set |
| 277 | 306 | # CONFIG_PHONET is not set | |
| 278 | # | 307 | CONFIG_WIRELESS=y |
| 279 | # Wireless | ||
| 280 | # | ||
| 281 | # CONFIG_CFG80211 is not set | 308 | # CONFIG_CFG80211 is not set |
| 309 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
| 282 | # CONFIG_WIRELESS_EXT is not set | 310 | # CONFIG_WIRELESS_EXT is not set |
| 311 | # CONFIG_LIB80211 is not set | ||
| 283 | # CONFIG_MAC80211 is not set | 312 | # CONFIG_MAC80211 is not set |
| 284 | # CONFIG_IEEE80211 is not set | 313 | # CONFIG_WIMAX is not set |
| 285 | # CONFIG_RFKILL is not set | 314 | # CONFIG_RFKILL is not set |
| 286 | # CONFIG_NET_9P is not set | 315 | # CONFIG_NET_9P is not set |
| 287 | 316 | ||
| @@ -296,6 +325,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | |||
| 296 | # CONFIG_STANDALONE is not set | 325 | # CONFIG_STANDALONE is not set |
| 297 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | 326 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
| 298 | CONFIG_FW_LOADER=y | 327 | CONFIG_FW_LOADER=y |
| 328 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
| 329 | CONFIG_EXTRA_FIRMWARE="" | ||
| 299 | # CONFIG_DEBUG_DRIVER is not set | 330 | # CONFIG_DEBUG_DRIVER is not set |
| 300 | # CONFIG_DEBUG_DEVRES is not set | 331 | # CONFIG_DEBUG_DEVRES is not set |
| 301 | # CONFIG_SYS_HYPERVISOR is not set | 332 | # CONFIG_SYS_HYPERVISOR is not set |
| @@ -316,59 +347,62 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m | |||
| 316 | # CONFIG_BLK_DEV_RAM is not set | 347 | # CONFIG_BLK_DEV_RAM is not set |
| 317 | # CONFIG_CDROM_PKTCDVD is not set | 348 | # CONFIG_CDROM_PKTCDVD is not set |
| 318 | # CONFIG_ATA_OVER_ETH is not set | 349 | # CONFIG_ATA_OVER_ETH is not set |
| 350 | # CONFIG_BLK_DEV_HD is not set | ||
| 319 | CONFIG_MISC_DEVICES=y | 351 | CONFIG_MISC_DEVICES=y |
| 320 | # CONFIG_PHANTOM is not set | 352 | # CONFIG_PHANTOM is not set |
| 321 | # CONFIG_EEPROM_93CX6 is not set | ||
| 322 | # CONFIG_SGI_IOC4 is not set | 353 | # CONFIG_SGI_IOC4 is not set |
| 323 | # CONFIG_TIFM_CORE is not set | 354 | # CONFIG_TIFM_CORE is not set |
| 355 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
| 356 | # CONFIG_HP_ILO is not set | ||
| 357 | # CONFIG_C2PORT is not set | ||
| 358 | |||
| 359 | # | ||
| 360 | # EEPROM support | ||
| 361 | # | ||
| 362 | # CONFIG_EEPROM_93CX6 is not set | ||
| 363 | CONFIG_HAVE_IDE=y | ||
| 324 | CONFIG_IDE=y | 364 | CONFIG_IDE=y |
| 325 | CONFIG_IDE_MAX_HWIFS=4 | ||
| 326 | CONFIG_BLK_DEV_IDE=y | ||
| 327 | 365 | ||
| 328 | # | 366 | # |
| 329 | # Please see Documentation/ide.txt for help/info on IDE drives | 367 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
| 330 | # | 368 | # |
| 369 | CONFIG_IDE_ATAPI=y | ||
| 331 | # CONFIG_BLK_DEV_IDE_SATA is not set | 370 | # CONFIG_BLK_DEV_IDE_SATA is not set |
| 332 | CONFIG_BLK_DEV_IDEDISK=m | 371 | CONFIG_IDE_GD=y |
| 333 | # CONFIG_IDEDISK_MULTI_MODE is not set | 372 | CONFIG_IDE_GD_ATA=y |
| 373 | # CONFIG_IDE_GD_ATAPI is not set | ||
| 334 | CONFIG_BLK_DEV_IDECD=y | 374 | CONFIG_BLK_DEV_IDECD=y |
| 375 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y | ||
| 335 | # CONFIG_BLK_DEV_IDETAPE is not set | 376 | # CONFIG_BLK_DEV_IDETAPE is not set |
| 336 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
| 337 | CONFIG_BLK_DEV_IDESCSI=y | ||
| 338 | # CONFIG_IDE_TASK_IOCTL is not set | 377 | # CONFIG_IDE_TASK_IOCTL is not set |
| 339 | CONFIG_IDE_PROC_FS=y | 378 | CONFIG_IDE_PROC_FS=y |
| 340 | 379 | ||
| 341 | # | 380 | # |
| 342 | # IDE chipset support/bugfixes | 381 | # IDE chipset support/bugfixes |
| 343 | # | 382 | # |
| 344 | CONFIG_IDE_GENERIC=y | ||
| 345 | # CONFIG_BLK_DEV_PLATFORM is not set | 383 | # CONFIG_BLK_DEV_PLATFORM is not set |
| 384 | CONFIG_BLK_DEV_IDEDMA_SFF=y | ||
| 346 | 385 | ||
| 347 | # | 386 | # |
| 348 | # PCI IDE chipsets support | 387 | # PCI IDE chipsets support |
| 349 | # | 388 | # |
| 350 | CONFIG_BLK_DEV_IDEPCI=y | 389 | CONFIG_BLK_DEV_IDEPCI=y |
| 351 | CONFIG_IDEPCI_SHARE_IRQ=y | ||
| 352 | CONFIG_IDEPCI_PCIBUS_ORDER=y | 390 | CONFIG_IDEPCI_PCIBUS_ORDER=y |
| 353 | # CONFIG_BLK_DEV_OFFBOARD is not set | ||
| 354 | # CONFIG_BLK_DEV_GENERIC is not set | 391 | # CONFIG_BLK_DEV_GENERIC is not set |
| 355 | # CONFIG_BLK_DEV_OPTI621 is not set | 392 | # CONFIG_BLK_DEV_OPTI621 is not set |
| 356 | CONFIG_BLK_DEV_IDEDMA_PCI=y | 393 | CONFIG_BLK_DEV_IDEDMA_PCI=y |
| 357 | # CONFIG_BLK_DEV_IDEDMA_FORCED is not set | ||
| 358 | CONFIG_IDEDMA_ONLYDISK=y | ||
| 359 | # CONFIG_BLK_DEV_AEC62XX is not set | 394 | # CONFIG_BLK_DEV_AEC62XX is not set |
| 360 | # CONFIG_BLK_DEV_ALI15X3 is not set | 395 | # CONFIG_BLK_DEV_ALI15X3 is not set |
| 361 | # CONFIG_BLK_DEV_AMD74XX is not set | 396 | # CONFIG_BLK_DEV_AMD74XX is not set |
| 362 | # CONFIG_BLK_DEV_CMD64X is not set | 397 | # CONFIG_BLK_DEV_CMD64X is not set |
| 363 | # CONFIG_BLK_DEV_TRIFLEX is not set | 398 | # CONFIG_BLK_DEV_TRIFLEX is not set |
| 364 | # CONFIG_BLK_DEV_CY82C693 is not set | ||
| 365 | # CONFIG_BLK_DEV_CS5520 is not set | 399 | # CONFIG_BLK_DEV_CS5520 is not set |
| 366 | # CONFIG_BLK_DEV_CS5530 is not set | 400 | # CONFIG_BLK_DEV_CS5530 is not set |
| 367 | # CONFIG_BLK_DEV_HPT34X is not set | ||
| 368 | # CONFIG_BLK_DEV_HPT366 is not set | 401 | # CONFIG_BLK_DEV_HPT366 is not set |
| 369 | # CONFIG_BLK_DEV_JMICRON is not set | 402 | # CONFIG_BLK_DEV_JMICRON is not set |
| 370 | # CONFIG_BLK_DEV_SC1200 is not set | 403 | # CONFIG_BLK_DEV_SC1200 is not set |
| 371 | # CONFIG_BLK_DEV_PIIX is not set | 404 | # CONFIG_BLK_DEV_PIIX is not set |
| 405 | # CONFIG_BLK_DEV_IT8172 is not set | ||
| 372 | # CONFIG_BLK_DEV_IT8213 is not set | 406 | # CONFIG_BLK_DEV_IT8213 is not set |
| 373 | # CONFIG_BLK_DEV_IT821X is not set | 407 | # CONFIG_BLK_DEV_IT821X is not set |
| 374 | CONFIG_BLK_DEV_NS87415=y | 408 | CONFIG_BLK_DEV_NS87415=y |
| @@ -380,10 +414,7 @@ CONFIG_BLK_DEV_SIIMAGE=m | |||
| 380 | # CONFIG_BLK_DEV_TRM290 is not set | 414 | # CONFIG_BLK_DEV_TRM290 is not set |
| 381 | # CONFIG_BLK_DEV_VIA82CXXX is not set | 415 | # CONFIG_BLK_DEV_VIA82CXXX is not set |
| 382 | # CONFIG_BLK_DEV_TC86C001 is not set | 416 | # CONFIG_BLK_DEV_TC86C001 is not set |
| 383 | # CONFIG_IDE_ARM is not set | ||
| 384 | CONFIG_BLK_DEV_IDEDMA=y | 417 | CONFIG_BLK_DEV_IDEDMA=y |
| 385 | # CONFIG_IDEDMA_IVB is not set | ||
| 386 | # CONFIG_BLK_DEV_HD is not set | ||
| 387 | 418 | ||
| 388 | # | 419 | # |
| 389 | # SCSI device support | 420 | # SCSI device support |
| @@ -422,8 +453,10 @@ CONFIG_SCSI_SPI_ATTRS=y | |||
| 422 | # CONFIG_SCSI_FC_ATTRS is not set | 453 | # CONFIG_SCSI_FC_ATTRS is not set |
| 423 | CONFIG_SCSI_ISCSI_ATTRS=m | 454 | CONFIG_SCSI_ISCSI_ATTRS=m |
| 424 | # CONFIG_SCSI_SAS_LIBSAS is not set | 455 | # CONFIG_SCSI_SAS_LIBSAS is not set |
| 456 | # CONFIG_SCSI_SRP_ATTRS is not set | ||
| 425 | CONFIG_SCSI_LOWLEVEL=y | 457 | CONFIG_SCSI_LOWLEVEL=y |
| 426 | # CONFIG_ISCSI_TCP is not set | 458 | # CONFIG_ISCSI_TCP is not set |
| 459 | # CONFIG_SCSI_CXGB3_ISCSI is not set | ||
| 427 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 460 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
| 428 | # CONFIG_SCSI_3W_9XXX is not set | 461 | # CONFIG_SCSI_3W_9XXX is not set |
| 429 | # CONFIG_SCSI_ACARD is not set | 462 | # CONFIG_SCSI_ACARD is not set |
| @@ -433,16 +466,20 @@ CONFIG_SCSI_LOWLEVEL=y | |||
| 433 | # CONFIG_SCSI_AIC79XX is not set | 466 | # CONFIG_SCSI_AIC79XX is not set |
| 434 | # CONFIG_SCSI_AIC94XX is not set | 467 | # CONFIG_SCSI_AIC94XX is not set |
| 435 | # CONFIG_SCSI_DPT_I2O is not set | 468 | # CONFIG_SCSI_DPT_I2O is not set |
| 469 | # CONFIG_SCSI_ADVANSYS is not set | ||
| 436 | # CONFIG_SCSI_ARCMSR is not set | 470 | # CONFIG_SCSI_ARCMSR is not set |
| 437 | # CONFIG_MEGARAID_NEWGEN is not set | 471 | # CONFIG_MEGARAID_NEWGEN is not set |
| 438 | # CONFIG_MEGARAID_LEGACY is not set | 472 | # CONFIG_MEGARAID_LEGACY is not set |
| 439 | # CONFIG_MEGARAID_SAS is not set | 473 | # CONFIG_MEGARAID_SAS is not set |
| 440 | # CONFIG_SCSI_HPTIOP is not set | 474 | # CONFIG_SCSI_HPTIOP is not set |
| 475 | # CONFIG_LIBFC is not set | ||
| 476 | # CONFIG_FCOE is not set | ||
| 441 | # CONFIG_SCSI_DMX3191D is not set | 477 | # CONFIG_SCSI_DMX3191D is not set |
| 442 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 478 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
| 443 | # CONFIG_SCSI_IPS is not set | 479 | # CONFIG_SCSI_IPS is not set |
| 444 | # CONFIG_SCSI_INITIO is not set | 480 | # CONFIG_SCSI_INITIO is not set |
| 445 | # CONFIG_SCSI_INIA100 is not set | 481 | # CONFIG_SCSI_INIA100 is not set |
| 482 | # CONFIG_SCSI_MVSAS is not set | ||
| 446 | # CONFIG_SCSI_STEX is not set | 483 | # CONFIG_SCSI_STEX is not set |
| 447 | CONFIG_SCSI_SYM53C8XX_2=y | 484 | CONFIG_SCSI_SYM53C8XX_2=y |
| 448 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 | 485 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 |
| @@ -458,9 +495,11 @@ CONFIG_SCSI_SYM53C8XX_MMIO=y | |||
| 458 | # CONFIG_SCSI_NSP32 is not set | 495 | # CONFIG_SCSI_NSP32 is not set |
| 459 | CONFIG_SCSI_DEBUG=m | 496 | CONFIG_SCSI_DEBUG=m |
| 460 | # CONFIG_SCSI_SRP is not set | 497 | # CONFIG_SCSI_SRP is not set |
| 498 | # CONFIG_SCSI_DH is not set | ||
| 461 | # CONFIG_ATA is not set | 499 | # CONFIG_ATA is not set |
| 462 | CONFIG_MD=y | 500 | CONFIG_MD=y |
| 463 | CONFIG_BLK_DEV_MD=y | 501 | CONFIG_BLK_DEV_MD=y |
| 502 | CONFIG_MD_AUTODETECT=y | ||
| 464 | CONFIG_MD_LINEAR=y | 503 | CONFIG_MD_LINEAR=y |
| 465 | CONFIG_MD_RAID0=y | 504 | CONFIG_MD_RAID0=y |
| 466 | CONFIG_MD_RAID1=y | 505 | CONFIG_MD_RAID1=y |
| @@ -475,13 +514,8 @@ CONFIG_DM_SNAPSHOT=m | |||
| 475 | CONFIG_DM_MIRROR=m | 514 | CONFIG_DM_MIRROR=m |
| 476 | CONFIG_DM_ZERO=m | 515 | CONFIG_DM_ZERO=m |
| 477 | CONFIG_DM_MULTIPATH=m | 516 | CONFIG_DM_MULTIPATH=m |
| 478 | # CONFIG_DM_MULTIPATH_EMC is not set | ||
| 479 | # CONFIG_DM_MULTIPATH_RDAC is not set | ||
| 480 | # CONFIG_DM_DELAY is not set | 517 | # CONFIG_DM_DELAY is not set |
| 481 | 518 | # CONFIG_DM_UEVENT is not set | |
| 482 | # | ||
| 483 | # Fusion MPT device support | ||
| 484 | # | ||
| 485 | CONFIG_FUSION=y | 519 | CONFIG_FUSION=y |
| 486 | CONFIG_FUSION_SPI=m | 520 | CONFIG_FUSION_SPI=m |
| 487 | # CONFIG_FUSION_FC is not set | 521 | # CONFIG_FUSION_FC is not set |
| @@ -493,20 +527,40 @@ CONFIG_FUSION_CTL=m | |||
| 493 | # | 527 | # |
| 494 | # IEEE 1394 (FireWire) support | 528 | # IEEE 1394 (FireWire) support |
| 495 | # | 529 | # |
| 530 | |||
| 531 | # | ||
| 532 | # Enable only one of the two stacks, unless you know what you are doing | ||
| 533 | # | ||
| 496 | # CONFIG_FIREWIRE is not set | 534 | # CONFIG_FIREWIRE is not set |
| 497 | # CONFIG_IEEE1394 is not set | 535 | # CONFIG_IEEE1394 is not set |
| 498 | # CONFIG_I2O is not set | 536 | # CONFIG_I2O is not set |
| 499 | CONFIG_NETDEVICES=y | 537 | CONFIG_NETDEVICES=y |
| 500 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
| 501 | CONFIG_DUMMY=m | 538 | CONFIG_DUMMY=m |
| 502 | CONFIG_BONDING=m | 539 | CONFIG_BONDING=m |
| 503 | # CONFIG_MACVLAN is not set | 540 | # CONFIG_MACVLAN is not set |
| 504 | # CONFIG_EQUALIZER is not set | 541 | # CONFIG_EQUALIZER is not set |
| 505 | CONFIG_TUN=m | 542 | CONFIG_TUN=m |
| 506 | # CONFIG_VETH is not set | 543 | # CONFIG_VETH is not set |
| 507 | # CONFIG_IP1000 is not set | ||
| 508 | # CONFIG_ARCNET is not set | 544 | # CONFIG_ARCNET is not set |
| 509 | # CONFIG_PHYLIB is not set | 545 | CONFIG_PHYLIB=m |
| 546 | |||
| 547 | # | ||
| 548 | # MII PHY device drivers | ||
| 549 | # | ||
| 550 | # CONFIG_MARVELL_PHY is not set | ||
| 551 | # CONFIG_DAVICOM_PHY is not set | ||
| 552 | # CONFIG_QSEMI_PHY is not set | ||
| 553 | # CONFIG_LXT_PHY is not set | ||
| 554 | # CONFIG_CICADA_PHY is not set | ||
| 555 | # CONFIG_VITESSE_PHY is not set | ||
| 556 | # CONFIG_SMSC_PHY is not set | ||
| 557 | # CONFIG_BROADCOM_PHY is not set | ||
| 558 | # CONFIG_ICPLUS_PHY is not set | ||
| 559 | # CONFIG_REALTEK_PHY is not set | ||
| 560 | # CONFIG_NATIONAL_PHY is not set | ||
| 561 | # CONFIG_STE10XP is not set | ||
| 562 | # CONFIG_LSI_ET1011C_PHY is not set | ||
| 563 | # CONFIG_MDIO_BITBANG is not set | ||
| 510 | CONFIG_NET_ETHERNET=y | 564 | CONFIG_NET_ETHERNET=y |
| 511 | CONFIG_MII=m | 565 | CONFIG_MII=m |
| 512 | # CONFIG_HAPPYMEAL is not set | 566 | # CONFIG_HAPPYMEAL is not set |
| @@ -528,33 +582,38 @@ CONFIG_TULIP_MMIO=y | |||
| 528 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 582 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
| 529 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 583 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
| 530 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 584 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
| 585 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
| 586 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
| 587 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
| 531 | CONFIG_NET_PCI=y | 588 | CONFIG_NET_PCI=y |
| 532 | # CONFIG_PCNET32 is not set | 589 | # CONFIG_PCNET32 is not set |
| 533 | # CONFIG_AMD8111_ETH is not set | 590 | # CONFIG_AMD8111_ETH is not set |
| 534 | # CONFIG_ADAPTEC_STARFIRE is not set | 591 | # CONFIG_ADAPTEC_STARFIRE is not set |
| 535 | # CONFIG_B44 is not set | 592 | # CONFIG_B44 is not set |
| 536 | # CONFIG_FORCEDETH is not set | 593 | # CONFIG_FORCEDETH is not set |
| 537 | # CONFIG_EEPRO100 is not set | ||
| 538 | CONFIG_E100=m | 594 | CONFIG_E100=m |
| 539 | # CONFIG_FEALNX is not set | 595 | # CONFIG_FEALNX is not set |
| 540 | # CONFIG_NATSEMI is not set | 596 | # CONFIG_NATSEMI is not set |
| 541 | # CONFIG_NE2K_PCI is not set | 597 | # CONFIG_NE2K_PCI is not set |
| 542 | # CONFIG_8139CP is not set | 598 | # CONFIG_8139CP is not set |
| 543 | # CONFIG_8139TOO is not set | 599 | # CONFIG_8139TOO is not set |
| 600 | # CONFIG_R6040 is not set | ||
| 544 | # CONFIG_SIS900 is not set | 601 | # CONFIG_SIS900 is not set |
| 545 | # CONFIG_EPIC100 is not set | 602 | # CONFIG_EPIC100 is not set |
| 603 | # CONFIG_SMSC9420 is not set | ||
| 546 | # CONFIG_SUNDANCE is not set | 604 | # CONFIG_SUNDANCE is not set |
| 547 | # CONFIG_TLAN is not set | 605 | # CONFIG_TLAN is not set |
| 548 | # CONFIG_VIA_RHINE is not set | 606 | # CONFIG_VIA_RHINE is not set |
| 549 | # CONFIG_SC92031 is not set | 607 | # CONFIG_SC92031 is not set |
| 608 | # CONFIG_ATL2 is not set | ||
| 550 | CONFIG_NETDEV_1000=y | 609 | CONFIG_NETDEV_1000=y |
| 551 | CONFIG_ACENIC=m | 610 | CONFIG_ACENIC=m |
| 552 | # CONFIG_ACENIC_OMIT_TIGON_I is not set | 611 | # CONFIG_ACENIC_OMIT_TIGON_I is not set |
| 553 | # CONFIG_DL2K is not set | 612 | # CONFIG_DL2K is not set |
| 554 | CONFIG_E1000=m | 613 | CONFIG_E1000=m |
| 555 | # CONFIG_E1000_NAPI is not set | ||
| 556 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set | ||
| 557 | # CONFIG_E1000E is not set | 614 | # CONFIG_E1000E is not set |
| 615 | # CONFIG_IP1000 is not set | ||
| 616 | # CONFIG_IGB is not set | ||
| 558 | # CONFIG_NS83820 is not set | 617 | # CONFIG_NS83820 is not set |
| 559 | # CONFIG_HAMACHI is not set | 618 | # CONFIG_HAMACHI is not set |
| 560 | # CONFIG_YELLOWFIN is not set | 619 | # CONFIG_YELLOWFIN is not set |
| @@ -562,23 +621,31 @@ CONFIG_E1000=m | |||
| 562 | # CONFIG_SIS190 is not set | 621 | # CONFIG_SIS190 is not set |
| 563 | # CONFIG_SKGE is not set | 622 | # CONFIG_SKGE is not set |
| 564 | # CONFIG_SKY2 is not set | 623 | # CONFIG_SKY2 is not set |
| 565 | # CONFIG_SK98LIN is not set | ||
| 566 | # CONFIG_VIA_VELOCITY is not set | 624 | # CONFIG_VIA_VELOCITY is not set |
| 567 | CONFIG_TIGON3=m | 625 | CONFIG_TIGON3=m |
| 568 | # CONFIG_BNX2 is not set | 626 | # CONFIG_BNX2 is not set |
| 569 | # CONFIG_QLA3XXX is not set | 627 | # CONFIG_QLA3XXX is not set |
| 570 | # CONFIG_ATL1 is not set | 628 | # CONFIG_ATL1 is not set |
| 629 | # CONFIG_ATL1E is not set | ||
| 630 | # CONFIG_ATL1C is not set | ||
| 631 | # CONFIG_JME is not set | ||
| 571 | CONFIG_NETDEV_10000=y | 632 | CONFIG_NETDEV_10000=y |
| 572 | # CONFIG_CHELSIO_T1 is not set | 633 | # CONFIG_CHELSIO_T1 is not set |
| 634 | CONFIG_CHELSIO_T3_DEPENDS=y | ||
| 573 | # CONFIG_CHELSIO_T3 is not set | 635 | # CONFIG_CHELSIO_T3 is not set |
| 636 | # CONFIG_ENIC is not set | ||
| 574 | # CONFIG_IXGBE is not set | 637 | # CONFIG_IXGBE is not set |
| 575 | # CONFIG_IXGB is not set | 638 | # CONFIG_IXGB is not set |
| 576 | # CONFIG_S2IO is not set | 639 | # CONFIG_S2IO is not set |
| 577 | # CONFIG_MYRI10GE is not set | 640 | # CONFIG_MYRI10GE is not set |
| 578 | # CONFIG_NETXEN_NIC is not set | 641 | # CONFIG_NETXEN_NIC is not set |
| 579 | # CONFIG_NIU is not set | 642 | # CONFIG_NIU is not set |
| 643 | # CONFIG_MLX4_EN is not set | ||
| 580 | # CONFIG_MLX4_CORE is not set | 644 | # CONFIG_MLX4_CORE is not set |
| 581 | # CONFIG_TEHUTI is not set | 645 | # CONFIG_TEHUTI is not set |
| 646 | # CONFIG_BNX2X is not set | ||
| 647 | # CONFIG_QLGE is not set | ||
| 648 | # CONFIG_SFC is not set | ||
| 582 | # CONFIG_TR is not set | 649 | # CONFIG_TR is not set |
| 583 | 650 | ||
| 584 | # | 651 | # |
| @@ -586,6 +653,11 @@ CONFIG_NETDEV_10000=y | |||
| 586 | # | 653 | # |
| 587 | # CONFIG_WLAN_PRE80211 is not set | 654 | # CONFIG_WLAN_PRE80211 is not set |
| 588 | # CONFIG_WLAN_80211 is not set | 655 | # CONFIG_WLAN_80211 is not set |
| 656 | # CONFIG_IWLWIFI_LEDS is not set | ||
| 657 | |||
| 658 | # | ||
| 659 | # Enable WiMAX (Networking options) to see the WiMAX drivers | ||
| 660 | # | ||
| 589 | 661 | ||
| 590 | # | 662 | # |
| 591 | # USB Network Adapters | 663 | # USB Network Adapters |
| @@ -594,7 +666,6 @@ CONFIG_NETDEV_10000=y | |||
| 594 | # CONFIG_USB_KAWETH is not set | 666 | # CONFIG_USB_KAWETH is not set |
| 595 | # CONFIG_USB_PEGASUS is not set | 667 | # CONFIG_USB_PEGASUS is not set |
| 596 | # CONFIG_USB_RTL8150 is not set | 668 | # CONFIG_USB_RTL8150 is not set |
| 597 | # CONFIG_USB_USBNET_MII is not set | ||
| 598 | # CONFIG_USB_USBNET is not set | 669 | # CONFIG_USB_USBNET is not set |
| 599 | # CONFIG_WAN is not set | 670 | # CONFIG_WAN is not set |
| 600 | # CONFIG_FDDI is not set | 671 | # CONFIG_FDDI is not set |
| @@ -612,7 +683,6 @@ CONFIG_PPPOE=m | |||
| 612 | # CONFIG_SLIP is not set | 683 | # CONFIG_SLIP is not set |
| 613 | CONFIG_SLHC=m | 684 | CONFIG_SLHC=m |
| 614 | # CONFIG_NET_FC is not set | 685 | # CONFIG_NET_FC is not set |
| 615 | # CONFIG_SHAPER is not set | ||
| 616 | # CONFIG_NETCONSOLE is not set | 686 | # CONFIG_NETCONSOLE is not set |
| 617 | # CONFIG_NETPOLL is not set | 687 | # CONFIG_NETPOLL is not set |
| 618 | # CONFIG_NET_POLL_CONTROLLER is not set | 688 | # CONFIG_NET_POLL_CONTROLLER is not set |
| @@ -634,7 +704,6 @@ CONFIG_INPUT_MOUSEDEV=y | |||
| 634 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1600 | 704 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1600 |
| 635 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1200 | 705 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1200 |
| 636 | # CONFIG_INPUT_JOYDEV is not set | 706 | # CONFIG_INPUT_JOYDEV is not set |
| 637 | # CONFIG_INPUT_TSDEV is not set | ||
| 638 | # CONFIG_INPUT_EVDEV is not set | 707 | # CONFIG_INPUT_EVDEV is not set |
| 639 | # CONFIG_INPUT_EVBUG is not set | 708 | # CONFIG_INPUT_EVBUG is not set |
| 640 | 709 | ||
| @@ -652,6 +721,7 @@ CONFIG_INPUT_MOUSE=y | |||
| 652 | # CONFIG_MOUSE_PS2 is not set | 721 | # CONFIG_MOUSE_PS2 is not set |
| 653 | # CONFIG_MOUSE_SERIAL is not set | 722 | # CONFIG_MOUSE_SERIAL is not set |
| 654 | # CONFIG_MOUSE_APPLETOUCH is not set | 723 | # CONFIG_MOUSE_APPLETOUCH is not set |
| 724 | # CONFIG_MOUSE_BCM5974 is not set | ||
| 655 | # CONFIG_MOUSE_VSXXXAA is not set | 725 | # CONFIG_MOUSE_VSXXXAA is not set |
| 656 | # CONFIG_INPUT_JOYSTICK is not set | 726 | # CONFIG_INPUT_JOYSTICK is not set |
| 657 | # CONFIG_INPUT_TABLET is not set | 727 | # CONFIG_INPUT_TABLET is not set |
| @@ -672,10 +742,13 @@ CONFIG_SERIO_LIBPS2=m | |||
| 672 | # Character devices | 742 | # Character devices |
| 673 | # | 743 | # |
| 674 | CONFIG_VT=y | 744 | CONFIG_VT=y |
| 745 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
| 675 | CONFIG_VT_CONSOLE=y | 746 | CONFIG_VT_CONSOLE=y |
| 676 | CONFIG_HW_CONSOLE=y | 747 | CONFIG_HW_CONSOLE=y |
| 677 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 748 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
| 749 | CONFIG_DEVKMEM=y | ||
| 678 | # CONFIG_SERIAL_NONSTANDARD is not set | 750 | # CONFIG_SERIAL_NONSTANDARD is not set |
| 751 | # CONFIG_NOZOMI is not set | ||
| 679 | 752 | ||
| 680 | # | 753 | # |
| 681 | # Serial drivers | 754 | # Serial drivers |
| @@ -699,72 +772,77 @@ CONFIG_SERIAL_CORE=y | |||
| 699 | CONFIG_SERIAL_CORE_CONSOLE=y | 772 | CONFIG_SERIAL_CORE_CONSOLE=y |
| 700 | # CONFIG_SERIAL_JSM is not set | 773 | # CONFIG_SERIAL_JSM is not set |
| 701 | CONFIG_UNIX98_PTYS=y | 774 | CONFIG_UNIX98_PTYS=y |
| 775 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | ||
| 702 | CONFIG_LEGACY_PTYS=y | 776 | CONFIG_LEGACY_PTYS=y |
| 703 | CONFIG_LEGACY_PTY_COUNT=256 | 777 | CONFIG_LEGACY_PTY_COUNT=256 |
| 704 | # CONFIG_IPMI_HANDLER is not set | 778 | # CONFIG_IPMI_HANDLER is not set |
| 705 | # CONFIG_WATCHDOG is not set | ||
| 706 | # CONFIG_HW_RANDOM is not set | 779 | # CONFIG_HW_RANDOM is not set |
| 707 | CONFIG_GEN_RTC=y | ||
| 708 | CONFIG_GEN_RTC_X=y | ||
| 709 | # CONFIG_R3964 is not set | 780 | # CONFIG_R3964 is not set |
| 710 | # CONFIG_APPLICOM is not set | 781 | # CONFIG_APPLICOM is not set |
| 711 | # CONFIG_AGP is not set | ||
| 712 | # CONFIG_DRM is not set | ||
| 713 | CONFIG_RAW_DRIVER=y | 782 | CONFIG_RAW_DRIVER=y |
| 714 | CONFIG_MAX_RAW_DEVS=256 | 783 | CONFIG_MAX_RAW_DEVS=256 |
| 715 | # CONFIG_TCG_TPM is not set | 784 | # CONFIG_TCG_TPM is not set |
| 716 | CONFIG_DEVPORT=y | 785 | CONFIG_DEVPORT=y |
| 717 | # CONFIG_I2C is not set | 786 | # CONFIG_I2C is not set |
| 718 | |||
| 719 | # | ||
| 720 | # SPI support | ||
| 721 | # | ||
| 722 | # CONFIG_SPI is not set | 787 | # CONFIG_SPI is not set |
| 723 | # CONFIG_SPI_MASTER is not set | ||
| 724 | # CONFIG_W1 is not set | 788 | # CONFIG_W1 is not set |
| 725 | # CONFIG_POWER_SUPPLY is not set | 789 | # CONFIG_POWER_SUPPLY is not set |
| 726 | # CONFIG_HWMON is not set | 790 | # CONFIG_HWMON is not set |
| 791 | # CONFIG_THERMAL is not set | ||
| 792 | # CONFIG_THERMAL_HWMON is not set | ||
| 793 | # CONFIG_WATCHDOG is not set | ||
| 794 | CONFIG_SSB_POSSIBLE=y | ||
| 727 | 795 | ||
| 728 | # | 796 | # |
| 729 | # Sonics Silicon Backplane | 797 | # Sonics Silicon Backplane |
| 730 | # | 798 | # |
| 731 | CONFIG_SSB_POSSIBLE=y | ||
| 732 | # CONFIG_SSB is not set | 799 | # CONFIG_SSB is not set |
| 733 | 800 | ||
| 734 | # | 801 | # |
| 735 | # Multifunction device drivers | 802 | # Multifunction device drivers |
| 736 | # | 803 | # |
| 804 | # CONFIG_MFD_CORE is not set | ||
| 737 | # CONFIG_MFD_SM501 is not set | 805 | # CONFIG_MFD_SM501 is not set |
| 806 | # CONFIG_HTC_PASIC3 is not set | ||
| 807 | # CONFIG_MFD_TMIO is not set | ||
| 808 | # CONFIG_REGULATOR is not set | ||
| 738 | 809 | ||
| 739 | # | 810 | # |
| 740 | # Multimedia devices | 811 | # Multimedia devices |
| 741 | # | 812 | # |
| 813 | |||
| 814 | # | ||
| 815 | # Multimedia core support | ||
| 816 | # | ||
| 742 | # CONFIG_VIDEO_DEV is not set | 817 | # CONFIG_VIDEO_DEV is not set |
| 743 | # CONFIG_DVB_CORE is not set | 818 | # CONFIG_DVB_CORE is not set |
| 744 | # CONFIG_DAB is not set | 819 | # CONFIG_VIDEO_MEDIA is not set |
| 745 | 820 | ||
| 746 | # | 821 | # |
| 747 | # Graphics support | 822 | # Multimedia drivers |
| 748 | # | 823 | # |
| 749 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 824 | # CONFIG_DAB is not set |
| 750 | 825 | ||
| 751 | # | 826 | # |
| 752 | # Display device support | 827 | # Graphics support |
| 753 | # | 828 | # |
| 754 | # CONFIG_DISPLAY_SUPPORT is not set | 829 | # CONFIG_AGP is not set |
| 830 | # CONFIG_DRM is not set | ||
| 755 | # CONFIG_VGASTATE is not set | 831 | # CONFIG_VGASTATE is not set |
| 756 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 832 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
| 757 | CONFIG_FB=y | 833 | CONFIG_FB=y |
| 758 | # CONFIG_FIRMWARE_EDID is not set | 834 | # CONFIG_FIRMWARE_EDID is not set |
| 759 | # CONFIG_FB_DDC is not set | 835 | # CONFIG_FB_DDC is not set |
| 836 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
| 760 | CONFIG_FB_CFB_FILLRECT=y | 837 | CONFIG_FB_CFB_FILLRECT=y |
| 761 | CONFIG_FB_CFB_COPYAREA=y | 838 | CONFIG_FB_CFB_COPYAREA=y |
| 762 | CONFIG_FB_CFB_IMAGEBLIT=y | 839 | CONFIG_FB_CFB_IMAGEBLIT=y |
| 840 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
| 763 | # CONFIG_FB_SYS_FILLRECT is not set | 841 | # CONFIG_FB_SYS_FILLRECT is not set |
| 764 | # CONFIG_FB_SYS_COPYAREA is not set | 842 | # CONFIG_FB_SYS_COPYAREA is not set |
| 765 | # CONFIG_FB_SYS_IMAGEBLIT is not set | 843 | # CONFIG_FB_SYS_IMAGEBLIT is not set |
| 844 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
| 766 | # CONFIG_FB_SYS_FOPS is not set | 845 | # CONFIG_FB_SYS_FOPS is not set |
| 767 | CONFIG_FB_DEFERRED_IO=y | ||
| 768 | # CONFIG_FB_SVGALIB is not set | 846 | # CONFIG_FB_SVGALIB is not set |
| 769 | # CONFIG_FB_MACMODES is not set | 847 | # CONFIG_FB_MACMODES is not set |
| 770 | # CONFIG_FB_BACKLIGHT is not set | 848 | # CONFIG_FB_BACKLIGHT is not set |
| @@ -790,6 +868,7 @@ CONFIG_FB_STI=y | |||
| 790 | # CONFIG_FB_S3 is not set | 868 | # CONFIG_FB_S3 is not set |
| 791 | # CONFIG_FB_SAVAGE is not set | 869 | # CONFIG_FB_SAVAGE is not set |
| 792 | # CONFIG_FB_SIS is not set | 870 | # CONFIG_FB_SIS is not set |
| 871 | # CONFIG_FB_VIA is not set | ||
| 793 | # CONFIG_FB_NEOMAGIC is not set | 872 | # CONFIG_FB_NEOMAGIC is not set |
| 794 | # CONFIG_FB_KYRO is not set | 873 | # CONFIG_FB_KYRO is not set |
| 795 | # CONFIG_FB_3DFX is not set | 874 | # CONFIG_FB_3DFX is not set |
| @@ -798,7 +877,16 @@ CONFIG_FB_STI=y | |||
| 798 | # CONFIG_FB_TRIDENT is not set | 877 | # CONFIG_FB_TRIDENT is not set |
| 799 | # CONFIG_FB_ARK is not set | 878 | # CONFIG_FB_ARK is not set |
| 800 | # CONFIG_FB_PM3 is not set | 879 | # CONFIG_FB_PM3 is not set |
| 880 | # CONFIG_FB_CARMINE is not set | ||
| 801 | # CONFIG_FB_VIRTUAL is not set | 881 | # CONFIG_FB_VIRTUAL is not set |
| 882 | # CONFIG_FB_METRONOME is not set | ||
| 883 | # CONFIG_FB_MB862XX is not set | ||
| 884 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
| 885 | |||
| 886 | # | ||
| 887 | # Display device support | ||
| 888 | # | ||
| 889 | # CONFIG_DISPLAY_SUPPORT is not set | ||
| 802 | 890 | ||
| 803 | # | 891 | # |
| 804 | # Console display driver support | 892 | # Console display driver support |
| @@ -818,15 +906,8 @@ CONFIG_LOGO=y | |||
| 818 | # CONFIG_LOGO_LINUX_VGA16 is not set | 906 | # CONFIG_LOGO_LINUX_VGA16 is not set |
| 819 | # CONFIG_LOGO_LINUX_CLUT224 is not set | 907 | # CONFIG_LOGO_LINUX_CLUT224 is not set |
| 820 | CONFIG_LOGO_PARISC_CLUT224=y | 908 | CONFIG_LOGO_PARISC_CLUT224=y |
| 821 | |||
| 822 | # | ||
| 823 | # Sound | ||
| 824 | # | ||
| 825 | CONFIG_SOUND=y | 909 | CONFIG_SOUND=y |
| 826 | 910 | CONFIG_SOUND_OSS_CORE=y | |
| 827 | # | ||
| 828 | # Advanced Linux Sound Architecture | ||
| 829 | # | ||
| 830 | CONFIG_SND=y | 911 | CONFIG_SND=y |
| 831 | CONFIG_SND_TIMER=y | 912 | CONFIG_SND_TIMER=y |
| 832 | CONFIG_SND_PCM=y | 913 | CONFIG_SND_PCM=y |
| @@ -842,20 +923,16 @@ CONFIG_SND_SUPPORT_OLD_API=y | |||
| 842 | CONFIG_SND_VERBOSE_PROCFS=y | 923 | CONFIG_SND_VERBOSE_PROCFS=y |
| 843 | # CONFIG_SND_VERBOSE_PRINTK is not set | 924 | # CONFIG_SND_VERBOSE_PRINTK is not set |
| 844 | # CONFIG_SND_DEBUG is not set | 925 | # CONFIG_SND_DEBUG is not set |
| 845 | 926 | CONFIG_SND_VMASTER=y | |
| 846 | # | ||
| 847 | # Generic devices | ||
| 848 | # | ||
| 849 | CONFIG_SND_AC97_CODEC=y | 927 | CONFIG_SND_AC97_CODEC=y |
| 928 | CONFIG_SND_DRIVERS=y | ||
| 850 | # CONFIG_SND_DUMMY is not set | 929 | # CONFIG_SND_DUMMY is not set |
| 851 | # CONFIG_SND_VIRMIDI is not set | 930 | # CONFIG_SND_VIRMIDI is not set |
| 852 | # CONFIG_SND_MTPAV is not set | 931 | # CONFIG_SND_MTPAV is not set |
| 853 | # CONFIG_SND_SERIAL_U16550 is not set | 932 | # CONFIG_SND_SERIAL_U16550 is not set |
| 854 | # CONFIG_SND_MPU401 is not set | 933 | # CONFIG_SND_MPU401 is not set |
| 855 | 934 | # CONFIG_SND_AC97_POWER_SAVE is not set | |
| 856 | # | 935 | CONFIG_SND_PCI=y |
| 857 | # PCI devices | ||
| 858 | # | ||
| 859 | CONFIG_SND_AD1889=y | 936 | CONFIG_SND_AD1889=y |
| 860 | # CONFIG_SND_ALS300 is not set | 937 | # CONFIG_SND_ALS300 is not set |
| 861 | # CONFIG_SND_ALI5451 is not set | 938 | # CONFIG_SND_ALI5451 is not set |
| @@ -864,10 +941,12 @@ CONFIG_SND_AD1889=y | |||
| 864 | # CONFIG_SND_AU8810 is not set | 941 | # CONFIG_SND_AU8810 is not set |
| 865 | # CONFIG_SND_AU8820 is not set | 942 | # CONFIG_SND_AU8820 is not set |
| 866 | # CONFIG_SND_AU8830 is not set | 943 | # CONFIG_SND_AU8830 is not set |
| 944 | # CONFIG_SND_AW2 is not set | ||
| 867 | # CONFIG_SND_AZT3328 is not set | 945 | # CONFIG_SND_AZT3328 is not set |
| 868 | # CONFIG_SND_BT87X is not set | 946 | # CONFIG_SND_BT87X is not set |
| 869 | # CONFIG_SND_CA0106 is not set | 947 | # CONFIG_SND_CA0106 is not set |
| 870 | # CONFIG_SND_CMIPCI is not set | 948 | # CONFIG_SND_CMIPCI is not set |
| 949 | # CONFIG_SND_OXYGEN is not set | ||
| 871 | # CONFIG_SND_CS4281 is not set | 950 | # CONFIG_SND_CS4281 is not set |
| 872 | # CONFIG_SND_CS46XX is not set | 951 | # CONFIG_SND_CS46XX is not set |
| 873 | # CONFIG_SND_DARLA20 is not set | 952 | # CONFIG_SND_DARLA20 is not set |
| @@ -892,6 +971,7 @@ CONFIG_SND_AD1889=y | |||
| 892 | # CONFIG_SND_HDA_INTEL is not set | 971 | # CONFIG_SND_HDA_INTEL is not set |
| 893 | # CONFIG_SND_HDSP is not set | 972 | # CONFIG_SND_HDSP is not set |
| 894 | # CONFIG_SND_HDSPM is not set | 973 | # CONFIG_SND_HDSPM is not set |
| 974 | # CONFIG_SND_HIFIER is not set | ||
| 895 | # CONFIG_SND_ICE1712 is not set | 975 | # CONFIG_SND_ICE1712 is not set |
| 896 | # CONFIG_SND_ICE1724 is not set | 976 | # CONFIG_SND_ICE1724 is not set |
| 897 | # CONFIG_SND_INTEL8X0 is not set | 977 | # CONFIG_SND_INTEL8X0 is not set |
| @@ -909,47 +989,59 @@ CONFIG_SND_AD1889=y | |||
| 909 | # CONFIG_SND_TRIDENT is not set | 989 | # CONFIG_SND_TRIDENT is not set |
| 910 | # CONFIG_SND_VIA82XX is not set | 990 | # CONFIG_SND_VIA82XX is not set |
| 911 | # CONFIG_SND_VIA82XX_MODEM is not set | 991 | # CONFIG_SND_VIA82XX_MODEM is not set |
| 992 | # CONFIG_SND_VIRTUOSO is not set | ||
| 912 | # CONFIG_SND_VX222 is not set | 993 | # CONFIG_SND_VX222 is not set |
| 913 | # CONFIG_SND_YMFPCI is not set | 994 | # CONFIG_SND_YMFPCI is not set |
| 914 | # CONFIG_SND_AC97_POWER_SAVE is not set | 995 | CONFIG_SND_USB=y |
| 915 | |||
| 916 | # | ||
| 917 | # USB devices | ||
| 918 | # | ||
| 919 | # CONFIG_SND_USB_AUDIO is not set | 996 | # CONFIG_SND_USB_AUDIO is not set |
| 920 | # CONFIG_SND_USB_CAIAQ is not set | 997 | # CONFIG_SND_USB_CAIAQ is not set |
| 921 | |||
| 922 | # | ||
| 923 | # System on Chip audio support | ||
| 924 | # | ||
| 925 | # CONFIG_SND_SOC is not set | 998 | # CONFIG_SND_SOC is not set |
| 926 | |||
| 927 | # | ||
| 928 | # SoC Audio support for SuperH | ||
| 929 | # | ||
| 930 | |||
| 931 | # | ||
| 932 | # Open Sound System | ||
| 933 | # | ||
| 934 | # CONFIG_SOUND_PRIME is not set | 999 | # CONFIG_SOUND_PRIME is not set |
| 935 | CONFIG_AC97_BUS=y | 1000 | CONFIG_AC97_BUS=y |
| 936 | CONFIG_HID_SUPPORT=y | 1001 | CONFIG_HID_SUPPORT=y |
| 937 | CONFIG_HID=y | 1002 | CONFIG_HID=y |
| 938 | # CONFIG_HID_DEBUG is not set | 1003 | # CONFIG_HID_DEBUG is not set |
| 1004 | # CONFIG_HIDRAW is not set | ||
| 939 | 1005 | ||
| 940 | # | 1006 | # |
| 941 | # USB Input Devices | 1007 | # USB Input Devices |
| 942 | # | 1008 | # |
| 943 | CONFIG_USB_HID=y | 1009 | CONFIG_USB_HID=y |
| 944 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | 1010 | # CONFIG_HID_PID is not set |
| 945 | # CONFIG_HID_FF is not set | ||
| 946 | CONFIG_USB_HIDDEV=y | 1011 | CONFIG_USB_HIDDEV=y |
| 1012 | |||
| 1013 | # | ||
| 1014 | # Special HID drivers | ||
| 1015 | # | ||
| 1016 | CONFIG_HID_COMPAT=y | ||
| 1017 | # CONFIG_HID_A4TECH is not set | ||
| 1018 | # CONFIG_HID_APPLE is not set | ||
| 1019 | # CONFIG_HID_BELKIN is not set | ||
| 1020 | # CONFIG_HID_CHERRY is not set | ||
| 1021 | # CONFIG_HID_CHICONY is not set | ||
| 1022 | # CONFIG_HID_CYPRESS is not set | ||
| 1023 | # CONFIG_HID_EZKEY is not set | ||
| 1024 | # CONFIG_HID_GYRATION is not set | ||
| 1025 | # CONFIG_HID_LOGITECH is not set | ||
| 1026 | # CONFIG_HID_MICROSOFT is not set | ||
| 1027 | # CONFIG_HID_MONTEREY is not set | ||
| 1028 | # CONFIG_HID_NTRIG is not set | ||
| 1029 | # CONFIG_HID_PANTHERLORD is not set | ||
| 1030 | # CONFIG_HID_PETALYNX is not set | ||
| 1031 | # CONFIG_HID_SAMSUNG is not set | ||
| 1032 | # CONFIG_HID_SONY is not set | ||
| 1033 | # CONFIG_HID_SUNPLUS is not set | ||
| 1034 | # CONFIG_GREENASIA_FF is not set | ||
| 1035 | # CONFIG_HID_TOPSEED is not set | ||
| 1036 | # CONFIG_THRUSTMASTER_FF is not set | ||
| 1037 | # CONFIG_ZEROPLUS_FF is not set | ||
| 947 | CONFIG_USB_SUPPORT=y | 1038 | CONFIG_USB_SUPPORT=y |
| 948 | CONFIG_USB_ARCH_HAS_HCD=y | 1039 | CONFIG_USB_ARCH_HAS_HCD=y |
| 949 | CONFIG_USB_ARCH_HAS_OHCI=y | 1040 | CONFIG_USB_ARCH_HAS_OHCI=y |
| 950 | CONFIG_USB_ARCH_HAS_EHCI=y | 1041 | CONFIG_USB_ARCH_HAS_EHCI=y |
| 951 | CONFIG_USB=y | 1042 | CONFIG_USB=y |
| 952 | CONFIG_USB_DEBUG=y | 1043 | CONFIG_USB_DEBUG=y |
| 1044 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
| 953 | 1045 | ||
| 954 | # | 1046 | # |
| 955 | # Miscellaneous USB options | 1047 | # Miscellaneous USB options |
| @@ -958,12 +1050,20 @@ CONFIG_USB_DEVICEFS=y | |||
| 958 | CONFIG_USB_DEVICE_CLASS=y | 1050 | CONFIG_USB_DEVICE_CLASS=y |
| 959 | # CONFIG_USB_DYNAMIC_MINORS is not set | 1051 | # CONFIG_USB_DYNAMIC_MINORS is not set |
| 960 | # CONFIG_USB_OTG is not set | 1052 | # CONFIG_USB_OTG is not set |
| 1053 | # CONFIG_USB_OTG_WHITELIST is not set | ||
| 1054 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
| 1055 | # CONFIG_USB_MON is not set | ||
| 1056 | # CONFIG_USB_WUSB is not set | ||
| 1057 | # CONFIG_USB_WUSB_CBAF is not set | ||
| 961 | 1058 | ||
| 962 | # | 1059 | # |
| 963 | # USB Host Controller Drivers | 1060 | # USB Host Controller Drivers |
| 964 | # | 1061 | # |
| 1062 | # CONFIG_USB_C67X00_HCD is not set | ||
| 965 | # CONFIG_USB_EHCI_HCD is not set | 1063 | # CONFIG_USB_EHCI_HCD is not set |
| 1064 | # CONFIG_USB_OXU210HP_HCD is not set | ||
| 966 | # CONFIG_USB_ISP116X_HCD is not set | 1065 | # CONFIG_USB_ISP116X_HCD is not set |
| 1066 | # CONFIG_USB_ISP1760_HCD is not set | ||
| 967 | CONFIG_USB_OHCI_HCD=y | 1067 | CONFIG_USB_OHCI_HCD=y |
| 968 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set | 1068 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set |
| 969 | # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set | 1069 | # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set |
| @@ -971,32 +1071,37 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
| 971 | # CONFIG_USB_UHCI_HCD is not set | 1071 | # CONFIG_USB_UHCI_HCD is not set |
| 972 | # CONFIG_USB_SL811_HCD is not set | 1072 | # CONFIG_USB_SL811_HCD is not set |
| 973 | # CONFIG_USB_R8A66597_HCD is not set | 1073 | # CONFIG_USB_R8A66597_HCD is not set |
| 1074 | # CONFIG_USB_WHCI_HCD is not set | ||
| 1075 | # CONFIG_USB_HWA_HCD is not set | ||
| 974 | 1076 | ||
| 975 | # | 1077 | # |
| 976 | # USB Device Class drivers | 1078 | # USB Device Class drivers |
| 977 | # | 1079 | # |
| 978 | # CONFIG_USB_ACM is not set | 1080 | # CONFIG_USB_ACM is not set |
| 979 | CONFIG_USB_PRINTER=m | 1081 | CONFIG_USB_PRINTER=m |
| 1082 | # CONFIG_USB_WDM is not set | ||
| 1083 | # CONFIG_USB_TMC is not set | ||
| 980 | 1084 | ||
| 981 | # | 1085 | # |
| 982 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 1086 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; |
| 983 | # | 1087 | # |
| 984 | 1088 | ||
| 985 | # | 1089 | # |
| 986 | # may also be needed; see USB_STORAGE Help for more information | 1090 | # see USB_STORAGE Help for more information |
| 987 | # | 1091 | # |
| 988 | CONFIG_USB_STORAGE=m | 1092 | CONFIG_USB_STORAGE=m |
| 989 | # CONFIG_USB_STORAGE_DEBUG is not set | 1093 | # CONFIG_USB_STORAGE_DEBUG is not set |
| 990 | # CONFIG_USB_STORAGE_DATAFAB is not set | 1094 | # CONFIG_USB_STORAGE_DATAFAB is not set |
| 991 | # CONFIG_USB_STORAGE_FREECOM is not set | 1095 | # CONFIG_USB_STORAGE_FREECOM is not set |
| 992 | # CONFIG_USB_STORAGE_ISD200 is not set | 1096 | # CONFIG_USB_STORAGE_ISD200 is not set |
| 993 | CONFIG_USB_STORAGE_DPCM=y | ||
| 994 | CONFIG_USB_STORAGE_USBAT=y | 1097 | CONFIG_USB_STORAGE_USBAT=y |
| 995 | CONFIG_USB_STORAGE_SDDR09=y | 1098 | CONFIG_USB_STORAGE_SDDR09=y |
| 996 | CONFIG_USB_STORAGE_SDDR55=y | 1099 | CONFIG_USB_STORAGE_SDDR55=y |
| 997 | CONFIG_USB_STORAGE_JUMPSHOT=y | 1100 | CONFIG_USB_STORAGE_JUMPSHOT=y |
| 998 | # CONFIG_USB_STORAGE_ALAUDA is not set | 1101 | # CONFIG_USB_STORAGE_ALAUDA is not set |
| 1102 | # CONFIG_USB_STORAGE_ONETOUCH is not set | ||
| 999 | # CONFIG_USB_STORAGE_KARMA is not set | 1103 | # CONFIG_USB_STORAGE_KARMA is not set |
| 1104 | # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set | ||
| 1000 | # CONFIG_USB_LIBUSUAL is not set | 1105 | # CONFIG_USB_LIBUSUAL is not set |
| 1001 | 1106 | ||
| 1002 | # | 1107 | # |
| @@ -1004,15 +1109,10 @@ CONFIG_USB_STORAGE_JUMPSHOT=y | |||
| 1004 | # | 1109 | # |
| 1005 | CONFIG_USB_MDC800=m | 1110 | CONFIG_USB_MDC800=m |
| 1006 | CONFIG_USB_MICROTEK=m | 1111 | CONFIG_USB_MICROTEK=m |
| 1007 | # CONFIG_USB_MON is not set | ||
| 1008 | 1112 | ||
| 1009 | # | 1113 | # |
| 1010 | # USB port drivers | 1114 | # USB port drivers |
| 1011 | # | 1115 | # |
| 1012 | |||
| 1013 | # | ||
| 1014 | # USB Serial Converter support | ||
| 1015 | # | ||
| 1016 | # CONFIG_USB_SERIAL is not set | 1116 | # CONFIG_USB_SERIAL is not set |
| 1017 | 1117 | ||
| 1018 | # | 1118 | # |
| @@ -1021,7 +1121,7 @@ CONFIG_USB_MICROTEK=m | |||
| 1021 | # CONFIG_USB_EMI62 is not set | 1121 | # CONFIG_USB_EMI62 is not set |
| 1022 | # CONFIG_USB_EMI26 is not set | 1122 | # CONFIG_USB_EMI26 is not set |
| 1023 | # CONFIG_USB_ADUTUX is not set | 1123 | # CONFIG_USB_ADUTUX is not set |
| 1024 | # CONFIG_USB_AUERSWALD is not set | 1124 | # CONFIG_USB_SEVSEG is not set |
| 1025 | # CONFIG_USB_RIO500 is not set | 1125 | # CONFIG_USB_RIO500 is not set |
| 1026 | CONFIG_USB_LEGOTOWER=m | 1126 | CONFIG_USB_LEGOTOWER=m |
| 1027 | # CONFIG_USB_LCD is not set | 1127 | # CONFIG_USB_LCD is not set |
| @@ -1037,37 +1137,59 @@ CONFIG_USB_LEGOTOWER=m | |||
| 1037 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1137 | # CONFIG_USB_TRANCEVIBRATOR is not set |
| 1038 | # CONFIG_USB_IOWARRIOR is not set | 1138 | # CONFIG_USB_IOWARRIOR is not set |
| 1039 | # CONFIG_USB_TEST is not set | 1139 | # CONFIG_USB_TEST is not set |
| 1140 | # CONFIG_USB_ISIGHTFW is not set | ||
| 1141 | # CONFIG_USB_VST is not set | ||
| 1142 | # CONFIG_USB_GADGET is not set | ||
| 1040 | 1143 | ||
| 1041 | # | 1144 | # |
| 1042 | # USB DSL modem support | 1145 | # OTG and related infrastructure |
| 1043 | # | ||
| 1044 | |||
| 1045 | # | ||
| 1046 | # USB Gadget Support | ||
| 1047 | # | 1146 | # |
| 1048 | # CONFIG_USB_GADGET is not set | 1147 | # CONFIG_UWB is not set |
| 1049 | # CONFIG_MMC is not set | 1148 | # CONFIG_MMC is not set |
| 1149 | # CONFIG_MEMSTICK is not set | ||
| 1050 | # CONFIG_NEW_LEDS is not set | 1150 | # CONFIG_NEW_LEDS is not set |
| 1151 | # CONFIG_ACCESSIBILITY is not set | ||
| 1051 | # CONFIG_INFINIBAND is not set | 1152 | # CONFIG_INFINIBAND is not set |
| 1052 | # CONFIG_RTC_CLASS is not set | 1153 | CONFIG_RTC_LIB=y |
| 1154 | CONFIG_RTC_CLASS=y | ||
| 1155 | CONFIG_RTC_HCTOSYS=y | ||
| 1156 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
| 1157 | # CONFIG_RTC_DEBUG is not set | ||
| 1053 | 1158 | ||
| 1054 | # | 1159 | # |
| 1055 | # DMA Engine support | 1160 | # RTC interfaces |
| 1056 | # | 1161 | # |
| 1057 | # CONFIG_DMA_ENGINE is not set | 1162 | CONFIG_RTC_INTF_SYSFS=y |
| 1163 | CONFIG_RTC_INTF_PROC=y | ||
| 1164 | CONFIG_RTC_INTF_DEV=y | ||
| 1165 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
| 1166 | # CONFIG_RTC_DRV_TEST is not set | ||
| 1058 | 1167 | ||
| 1059 | # | 1168 | # |
| 1060 | # DMA Clients | 1169 | # SPI RTC drivers |
| 1061 | # | 1170 | # |
| 1062 | 1171 | ||
| 1063 | # | 1172 | # |
| 1064 | # DMA Devices | 1173 | # Platform RTC drivers |
| 1065 | # | 1174 | # |
| 1175 | # CONFIG_RTC_DRV_DS1286 is not set | ||
| 1176 | # CONFIG_RTC_DRV_DS1511 is not set | ||
| 1177 | # CONFIG_RTC_DRV_DS1553 is not set | ||
| 1178 | # CONFIG_RTC_DRV_DS1742 is not set | ||
| 1179 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
| 1180 | # CONFIG_RTC_DRV_M48T86 is not set | ||
| 1181 | # CONFIG_RTC_DRV_M48T35 is not set | ||
| 1182 | # CONFIG_RTC_DRV_M48T59 is not set | ||
| 1183 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
| 1184 | # CONFIG_RTC_DRV_V3020 is not set | ||
| 1066 | 1185 | ||
| 1067 | # | 1186 | # |
| 1068 | # Userspace I/O | 1187 | # on-CPU RTC drivers |
| 1069 | # | 1188 | # |
| 1189 | CONFIG_RTC_DRV_PARISC=y | ||
| 1190 | # CONFIG_DMADEVICES is not set | ||
| 1070 | # CONFIG_UIO is not set | 1191 | # CONFIG_UIO is not set |
| 1192 | # CONFIG_STAGING is not set | ||
| 1071 | 1193 | ||
| 1072 | # | 1194 | # |
| 1073 | # File systems | 1195 | # File systems |
| @@ -1077,25 +1199,24 @@ CONFIG_EXT2_FS=y | |||
| 1077 | # CONFIG_EXT2_FS_XIP is not set | 1199 | # CONFIG_EXT2_FS_XIP is not set |
| 1078 | CONFIG_EXT3_FS=y | 1200 | CONFIG_EXT3_FS=y |
| 1079 | # CONFIG_EXT3_FS_XATTR is not set | 1201 | # CONFIG_EXT3_FS_XATTR is not set |
| 1080 | # CONFIG_EXT4DEV_FS is not set | 1202 | # CONFIG_EXT4_FS is not set |
| 1081 | CONFIG_JBD=y | 1203 | CONFIG_JBD=y |
| 1082 | # CONFIG_JBD_DEBUG is not set | 1204 | # CONFIG_JBD_DEBUG is not set |
| 1083 | # CONFIG_REISERFS_FS is not set | 1205 | # CONFIG_REISERFS_FS is not set |
| 1084 | # CONFIG_JFS_FS is not set | 1206 | # CONFIG_JFS_FS is not set |
| 1085 | # CONFIG_FS_POSIX_ACL is not set | 1207 | # CONFIG_FS_POSIX_ACL is not set |
| 1208 | CONFIG_FILE_LOCKING=y | ||
| 1086 | CONFIG_XFS_FS=m | 1209 | CONFIG_XFS_FS=m |
| 1087 | # CONFIG_XFS_QUOTA is not set | 1210 | # CONFIG_XFS_QUOTA is not set |
| 1088 | # CONFIG_XFS_SECURITY is not set | ||
| 1089 | # CONFIG_XFS_POSIX_ACL is not set | 1211 | # CONFIG_XFS_POSIX_ACL is not set |
| 1090 | # CONFIG_XFS_RT is not set | 1212 | # CONFIG_XFS_RT is not set |
| 1091 | # CONFIG_GFS2_FS is not set | 1213 | # CONFIG_XFS_DEBUG is not set |
| 1092 | # CONFIG_OCFS2_FS is not set | 1214 | # CONFIG_OCFS2_FS is not set |
| 1093 | # CONFIG_MINIX_FS is not set | 1215 | # CONFIG_BTRFS_FS is not set |
| 1094 | # CONFIG_ROMFS_FS is not set | 1216 | CONFIG_DNOTIFY=y |
| 1095 | CONFIG_INOTIFY=y | 1217 | CONFIG_INOTIFY=y |
| 1096 | CONFIG_INOTIFY_USER=y | 1218 | CONFIG_INOTIFY_USER=y |
| 1097 | # CONFIG_QUOTA is not set | 1219 | # CONFIG_QUOTA is not set |
| 1098 | CONFIG_DNOTIFY=y | ||
| 1099 | # CONFIG_AUTOFS_FS is not set | 1220 | # CONFIG_AUTOFS_FS is not set |
| 1100 | CONFIG_AUTOFS4_FS=y | 1221 | CONFIG_AUTOFS4_FS=y |
| 1101 | # CONFIG_FUSE_FS is not set | 1222 | # CONFIG_FUSE_FS is not set |
| @@ -1124,16 +1245,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
| 1124 | CONFIG_PROC_FS=y | 1245 | CONFIG_PROC_FS=y |
| 1125 | CONFIG_PROC_KCORE=y | 1246 | CONFIG_PROC_KCORE=y |
| 1126 | CONFIG_PROC_SYSCTL=y | 1247 | CONFIG_PROC_SYSCTL=y |
| 1248 | CONFIG_PROC_PAGE_MONITOR=y | ||
| 1127 | CONFIG_SYSFS=y | 1249 | CONFIG_SYSFS=y |
| 1128 | CONFIG_TMPFS=y | 1250 | CONFIG_TMPFS=y |
| 1129 | # CONFIG_TMPFS_POSIX_ACL is not set | 1251 | # CONFIG_TMPFS_POSIX_ACL is not set |
| 1130 | # CONFIG_HUGETLB_PAGE is not set | 1252 | # CONFIG_HUGETLB_PAGE is not set |
| 1131 | CONFIG_RAMFS=y | ||
| 1132 | # CONFIG_CONFIGFS_FS is not set | 1253 | # CONFIG_CONFIGFS_FS is not set |
| 1133 | 1254 | CONFIG_MISC_FILESYSTEMS=y | |
| 1134 | # | ||
| 1135 | # Miscellaneous filesystems | ||
| 1136 | # | ||
| 1137 | # CONFIG_ADFS_FS is not set | 1255 | # CONFIG_ADFS_FS is not set |
| 1138 | # CONFIG_AFFS_FS is not set | 1256 | # CONFIG_AFFS_FS is not set |
| 1139 | # CONFIG_HFS_FS is not set | 1257 | # CONFIG_HFS_FS is not set |
| @@ -1142,32 +1260,31 @@ CONFIG_RAMFS=y | |||
| 1142 | # CONFIG_BFS_FS is not set | 1260 | # CONFIG_BFS_FS is not set |
| 1143 | # CONFIG_EFS_FS is not set | 1261 | # CONFIG_EFS_FS is not set |
| 1144 | # CONFIG_CRAMFS is not set | 1262 | # CONFIG_CRAMFS is not set |
| 1263 | # CONFIG_SQUASHFS is not set | ||
| 1145 | # CONFIG_VXFS_FS is not set | 1264 | # CONFIG_VXFS_FS is not set |
| 1265 | # CONFIG_MINIX_FS is not set | ||
| 1266 | # CONFIG_OMFS_FS is not set | ||
| 1146 | # CONFIG_HPFS_FS is not set | 1267 | # CONFIG_HPFS_FS is not set |
| 1147 | # CONFIG_QNX4FS_FS is not set | 1268 | # CONFIG_QNX4FS_FS is not set |
| 1269 | # CONFIG_ROMFS_FS is not set | ||
| 1148 | # CONFIG_SYSV_FS is not set | 1270 | # CONFIG_SYSV_FS is not set |
| 1149 | # CONFIG_UFS_FS is not set | 1271 | # CONFIG_UFS_FS is not set |
| 1150 | 1272 | CONFIG_NETWORK_FILESYSTEMS=y | |
| 1151 | # | ||
| 1152 | # Network File Systems | ||
| 1153 | # | ||
| 1154 | CONFIG_NFS_FS=y | 1273 | CONFIG_NFS_FS=y |
| 1155 | CONFIG_NFS_V3=y | 1274 | CONFIG_NFS_V3=y |
| 1156 | # CONFIG_NFS_V3_ACL is not set | 1275 | # CONFIG_NFS_V3_ACL is not set |
| 1157 | # CONFIG_NFS_V4 is not set | 1276 | # CONFIG_NFS_V4 is not set |
| 1158 | # CONFIG_NFS_DIRECTIO is not set | 1277 | CONFIG_ROOT_NFS=y |
| 1159 | CONFIG_NFSD=y | 1278 | CONFIG_NFSD=y |
| 1160 | CONFIG_NFSD_V3=y | 1279 | CONFIG_NFSD_V3=y |
| 1161 | # CONFIG_NFSD_V3_ACL is not set | 1280 | # CONFIG_NFSD_V3_ACL is not set |
| 1162 | # CONFIG_NFSD_V4 is not set | 1281 | # CONFIG_NFSD_V4 is not set |
| 1163 | # CONFIG_NFSD_TCP is not set | ||
| 1164 | CONFIG_ROOT_NFS=y | ||
| 1165 | CONFIG_LOCKD=y | 1282 | CONFIG_LOCKD=y |
| 1166 | CONFIG_LOCKD_V4=y | 1283 | CONFIG_LOCKD_V4=y |
| 1167 | CONFIG_EXPORTFS=y | 1284 | CONFIG_EXPORTFS=y |
| 1168 | CONFIG_NFS_COMMON=y | 1285 | CONFIG_NFS_COMMON=y |
| 1169 | CONFIG_SUNRPC=y | 1286 | CONFIG_SUNRPC=y |
| 1170 | # CONFIG_SUNRPC_BIND34 is not set | 1287 | # CONFIG_SUNRPC_REGISTER_V4 is not set |
| 1171 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1288 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
| 1172 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1289 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
| 1173 | # CONFIG_SMB_FS is not set | 1290 | # CONFIG_SMB_FS is not set |
| @@ -1181,10 +1298,6 @@ CONFIG_SUNRPC=y | |||
| 1181 | # | 1298 | # |
| 1182 | # CONFIG_PARTITION_ADVANCED is not set | 1299 | # CONFIG_PARTITION_ADVANCED is not set |
| 1183 | CONFIG_MSDOS_PARTITION=y | 1300 | CONFIG_MSDOS_PARTITION=y |
| 1184 | |||
| 1185 | # | ||
| 1186 | # Native Language Support | ||
| 1187 | # | ||
| 1188 | CONFIG_NLS=y | 1301 | CONFIG_NLS=y |
| 1189 | CONFIG_NLS_DEFAULT="iso8859-1" | 1302 | CONFIG_NLS_DEFAULT="iso8859-1" |
| 1190 | CONFIG_NLS_CODEPAGE_437=m | 1303 | CONFIG_NLS_CODEPAGE_437=m |
| @@ -1225,33 +1338,28 @@ CONFIG_NLS_ISO8859_15=m | |||
| 1225 | # CONFIG_NLS_KOI8_R is not set | 1338 | # CONFIG_NLS_KOI8_R is not set |
| 1226 | # CONFIG_NLS_KOI8_U is not set | 1339 | # CONFIG_NLS_KOI8_U is not set |
| 1227 | CONFIG_NLS_UTF8=m | 1340 | CONFIG_NLS_UTF8=m |
| 1228 | |||
| 1229 | # | ||
| 1230 | # Distributed Lock Manager | ||
| 1231 | # | ||
| 1232 | # CONFIG_DLM is not set | 1341 | # CONFIG_DLM is not set |
| 1233 | 1342 | ||
| 1234 | # | 1343 | # |
| 1235 | # Profiling support | ||
| 1236 | # | ||
| 1237 | CONFIG_PROFILING=y | ||
| 1238 | CONFIG_OPROFILE=m | ||
| 1239 | |||
| 1240 | # | ||
| 1241 | # Kernel hacking | 1344 | # Kernel hacking |
| 1242 | # | 1345 | # |
| 1243 | # CONFIG_PRINTK_TIME is not set | 1346 | # CONFIG_PRINTK_TIME is not set |
| 1347 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
| 1244 | CONFIG_ENABLE_MUST_CHECK=y | 1348 | CONFIG_ENABLE_MUST_CHECK=y |
| 1349 | CONFIG_FRAME_WARN=1024 | ||
| 1245 | CONFIG_MAGIC_SYSRQ=y | 1350 | CONFIG_MAGIC_SYSRQ=y |
| 1246 | # CONFIG_UNUSED_SYMBOLS is not set | 1351 | # CONFIG_UNUSED_SYMBOLS is not set |
| 1247 | # CONFIG_DEBUG_FS is not set | 1352 | CONFIG_DEBUG_FS=y |
| 1248 | CONFIG_HEADERS_CHECK=y | 1353 | CONFIG_HEADERS_CHECK=y |
| 1249 | CONFIG_DEBUG_KERNEL=y | 1354 | CONFIG_DEBUG_KERNEL=y |
| 1250 | # CONFIG_DEBUG_SHIRQ is not set | 1355 | # CONFIG_DEBUG_SHIRQ is not set |
| 1251 | CONFIG_DETECT_SOFTLOCKUP=y | 1356 | CONFIG_DETECT_SOFTLOCKUP=y |
| 1357 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
| 1358 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
| 1252 | CONFIG_SCHED_DEBUG=y | 1359 | CONFIG_SCHED_DEBUG=y |
| 1253 | # CONFIG_SCHEDSTATS is not set | 1360 | # CONFIG_SCHEDSTATS is not set |
| 1254 | # CONFIG_TIMER_STATS is not set | 1361 | # CONFIG_TIMER_STATS is not set |
| 1362 | # CONFIG_DEBUG_OBJECTS is not set | ||
| 1255 | # CONFIG_DEBUG_SLAB is not set | 1363 | # CONFIG_DEBUG_SLAB is not set |
| 1256 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1364 | # CONFIG_DEBUG_RT_MUTEXES is not set |
| 1257 | # CONFIG_RT_MUTEX_TESTER is not set | 1365 | # CONFIG_RT_MUTEX_TESTER is not set |
| @@ -1263,10 +1371,33 @@ CONFIG_DEBUG_MUTEXES=y | |||
| 1263 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1371 | # CONFIG_DEBUG_BUGVERBOSE is not set |
| 1264 | # CONFIG_DEBUG_INFO is not set | 1372 | # CONFIG_DEBUG_INFO is not set |
| 1265 | # CONFIG_DEBUG_VM is not set | 1373 | # CONFIG_DEBUG_VM is not set |
| 1374 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
| 1375 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
| 1266 | # CONFIG_DEBUG_LIST is not set | 1376 | # CONFIG_DEBUG_LIST is not set |
| 1267 | CONFIG_FORCED_INLINING=y | 1377 | # CONFIG_DEBUG_SG is not set |
| 1378 | # CONFIG_DEBUG_NOTIFIERS is not set | ||
| 1379 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
| 1268 | # CONFIG_RCU_TORTURE_TEST is not set | 1380 | # CONFIG_RCU_TORTURE_TEST is not set |
| 1381 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
| 1382 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
| 1383 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
| 1269 | # CONFIG_FAULT_INJECTION is not set | 1384 | # CONFIG_FAULT_INJECTION is not set |
| 1385 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
| 1386 | CONFIG_NOP_TRACER=y | ||
| 1387 | CONFIG_RING_BUFFER=y | ||
| 1388 | CONFIG_TRACING=y | ||
| 1389 | |||
| 1390 | # | ||
| 1391 | # Tracers | ||
| 1392 | # | ||
| 1393 | # CONFIG_SCHED_TRACER is not set | ||
| 1394 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
| 1395 | # CONFIG_BOOT_TRACER is not set | ||
| 1396 | # CONFIG_TRACE_BRANCH_PROFILING is not set | ||
| 1397 | # CONFIG_FTRACE_STARTUP_TEST is not set | ||
| 1398 | # CONFIG_BUILD_DOCSRC is not set | ||
| 1399 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
| 1400 | # CONFIG_SAMPLES is not set | ||
| 1270 | CONFIG_DEBUG_RODATA=y | 1401 | CONFIG_DEBUG_RODATA=y |
| 1271 | 1402 | ||
| 1272 | # | 1403 | # |
| @@ -1274,54 +1405,110 @@ CONFIG_DEBUG_RODATA=y | |||
| 1274 | # | 1405 | # |
| 1275 | # CONFIG_KEYS is not set | 1406 | # CONFIG_KEYS is not set |
| 1276 | # CONFIG_SECURITY is not set | 1407 | # CONFIG_SECURITY is not set |
| 1408 | # CONFIG_SECURITYFS is not set | ||
| 1409 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
| 1277 | CONFIG_CRYPTO=y | 1410 | CONFIG_CRYPTO=y |
| 1411 | |||
| 1412 | # | ||
| 1413 | # Crypto core or helper | ||
| 1414 | # | ||
| 1415 | # CONFIG_CRYPTO_FIPS is not set | ||
| 1278 | CONFIG_CRYPTO_ALGAPI=m | 1416 | CONFIG_CRYPTO_ALGAPI=m |
| 1417 | CONFIG_CRYPTO_ALGAPI2=m | ||
| 1418 | CONFIG_CRYPTO_AEAD2=m | ||
| 1279 | CONFIG_CRYPTO_BLKCIPHER=m | 1419 | CONFIG_CRYPTO_BLKCIPHER=m |
| 1420 | CONFIG_CRYPTO_BLKCIPHER2=m | ||
| 1421 | CONFIG_CRYPTO_HASH=m | ||
| 1422 | CONFIG_CRYPTO_HASH2=m | ||
| 1423 | CONFIG_CRYPTO_RNG2=m | ||
| 1280 | CONFIG_CRYPTO_MANAGER=m | 1424 | CONFIG_CRYPTO_MANAGER=m |
| 1425 | CONFIG_CRYPTO_MANAGER2=m | ||
| 1426 | # CONFIG_CRYPTO_GF128MUL is not set | ||
| 1427 | CONFIG_CRYPTO_NULL=m | ||
| 1428 | # CONFIG_CRYPTO_CRYPTD is not set | ||
| 1429 | # CONFIG_CRYPTO_AUTHENC is not set | ||
| 1430 | CONFIG_CRYPTO_TEST=m | ||
| 1431 | |||
| 1432 | # | ||
| 1433 | # Authenticated Encryption with Associated Data | ||
| 1434 | # | ||
| 1435 | # CONFIG_CRYPTO_CCM is not set | ||
| 1436 | # CONFIG_CRYPTO_GCM is not set | ||
| 1437 | # CONFIG_CRYPTO_SEQIV is not set | ||
| 1438 | |||
| 1439 | # | ||
| 1440 | # Block modes | ||
| 1441 | # | ||
| 1442 | CONFIG_CRYPTO_CBC=m | ||
| 1443 | # CONFIG_CRYPTO_CTR is not set | ||
| 1444 | # CONFIG_CRYPTO_CTS is not set | ||
| 1445 | # CONFIG_CRYPTO_ECB is not set | ||
| 1446 | # CONFIG_CRYPTO_LRW is not set | ||
| 1447 | # CONFIG_CRYPTO_PCBC is not set | ||
| 1448 | # CONFIG_CRYPTO_XTS is not set | ||
| 1449 | |||
| 1450 | # | ||
| 1451 | # Hash modes | ||
| 1452 | # | ||
| 1281 | # CONFIG_CRYPTO_HMAC is not set | 1453 | # CONFIG_CRYPTO_HMAC is not set |
| 1282 | # CONFIG_CRYPTO_XCBC is not set | 1454 | # CONFIG_CRYPTO_XCBC is not set |
| 1283 | CONFIG_CRYPTO_NULL=m | 1455 | |
| 1456 | # | ||
| 1457 | # Digest | ||
| 1458 | # | ||
| 1459 | CONFIG_CRYPTO_CRC32C=m | ||
| 1284 | # CONFIG_CRYPTO_MD4 is not set | 1460 | # CONFIG_CRYPTO_MD4 is not set |
| 1285 | CONFIG_CRYPTO_MD5=m | 1461 | CONFIG_CRYPTO_MD5=m |
| 1462 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
| 1463 | # CONFIG_CRYPTO_RMD128 is not set | ||
| 1464 | # CONFIG_CRYPTO_RMD160 is not set | ||
| 1465 | # CONFIG_CRYPTO_RMD256 is not set | ||
| 1466 | # CONFIG_CRYPTO_RMD320 is not set | ||
| 1286 | # CONFIG_CRYPTO_SHA1 is not set | 1467 | # CONFIG_CRYPTO_SHA1 is not set |
| 1287 | # CONFIG_CRYPTO_SHA256 is not set | 1468 | # CONFIG_CRYPTO_SHA256 is not set |
| 1288 | # CONFIG_CRYPTO_SHA512 is not set | 1469 | # CONFIG_CRYPTO_SHA512 is not set |
| 1289 | # CONFIG_CRYPTO_WP512 is not set | ||
| 1290 | # CONFIG_CRYPTO_TGR192 is not set | 1470 | # CONFIG_CRYPTO_TGR192 is not set |
| 1291 | # CONFIG_CRYPTO_GF128MUL is not set | 1471 | # CONFIG_CRYPTO_WP512 is not set |
| 1292 | # CONFIG_CRYPTO_ECB is not set | 1472 | |
| 1293 | CONFIG_CRYPTO_CBC=m | 1473 | # |
| 1294 | # CONFIG_CRYPTO_PCBC is not set | 1474 | # Ciphers |
| 1295 | # CONFIG_CRYPTO_LRW is not set | 1475 | # |
| 1296 | # CONFIG_CRYPTO_XTS is not set | ||
| 1297 | # CONFIG_CRYPTO_CRYPTD is not set | ||
| 1298 | CONFIG_CRYPTO_DES=m | ||
| 1299 | # CONFIG_CRYPTO_FCRYPT is not set | ||
| 1300 | CONFIG_CRYPTO_BLOWFISH=m | ||
| 1301 | # CONFIG_CRYPTO_TWOFISH is not set | ||
| 1302 | # CONFIG_CRYPTO_SERPENT is not set | ||
| 1303 | # CONFIG_CRYPTO_AES is not set | 1476 | # CONFIG_CRYPTO_AES is not set |
| 1477 | # CONFIG_CRYPTO_ANUBIS is not set | ||
| 1478 | # CONFIG_CRYPTO_ARC4 is not set | ||
| 1479 | CONFIG_CRYPTO_BLOWFISH=m | ||
| 1480 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
| 1304 | # CONFIG_CRYPTO_CAST5 is not set | 1481 | # CONFIG_CRYPTO_CAST5 is not set |
| 1305 | # CONFIG_CRYPTO_CAST6 is not set | 1482 | # CONFIG_CRYPTO_CAST6 is not set |
| 1306 | # CONFIG_CRYPTO_TEA is not set | 1483 | CONFIG_CRYPTO_DES=m |
| 1307 | # CONFIG_CRYPTO_ARC4 is not set | 1484 | # CONFIG_CRYPTO_FCRYPT is not set |
| 1308 | # CONFIG_CRYPTO_KHAZAD is not set | 1485 | # CONFIG_CRYPTO_KHAZAD is not set |
| 1309 | # CONFIG_CRYPTO_ANUBIS is not set | 1486 | # CONFIG_CRYPTO_SALSA20 is not set |
| 1310 | # CONFIG_CRYPTO_SEED is not set | 1487 | # CONFIG_CRYPTO_SEED is not set |
| 1488 | # CONFIG_CRYPTO_SERPENT is not set | ||
| 1489 | # CONFIG_CRYPTO_TEA is not set | ||
| 1490 | # CONFIG_CRYPTO_TWOFISH is not set | ||
| 1491 | |||
| 1492 | # | ||
| 1493 | # Compression | ||
| 1494 | # | ||
| 1311 | CONFIG_CRYPTO_DEFLATE=m | 1495 | CONFIG_CRYPTO_DEFLATE=m |
| 1312 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1496 | # CONFIG_CRYPTO_LZO is not set |
| 1313 | CONFIG_CRYPTO_CRC32C=m | 1497 | |
| 1314 | # CONFIG_CRYPTO_CAMELLIA is not set | 1498 | # |
| 1315 | CONFIG_CRYPTO_TEST=m | 1499 | # Random Number Generation |
| 1316 | # CONFIG_CRYPTO_AUTHENC is not set | 1500 | # |
| 1501 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
| 1317 | # CONFIG_CRYPTO_HW is not set | 1502 | # CONFIG_CRYPTO_HW is not set |
| 1318 | 1503 | ||
| 1319 | # | 1504 | # |
| 1320 | # Library routines | 1505 | # Library routines |
| 1321 | # | 1506 | # |
| 1322 | CONFIG_BITREVERSE=y | 1507 | CONFIG_BITREVERSE=y |
| 1508 | CONFIG_GENERIC_FIND_LAST_BIT=y | ||
| 1323 | CONFIG_CRC_CCITT=m | 1509 | CONFIG_CRC_CCITT=m |
| 1324 | # CONFIG_CRC16 is not set | 1510 | # CONFIG_CRC16 is not set |
| 1511 | # CONFIG_CRC_T10DIF is not set | ||
| 1325 | # CONFIG_CRC_ITU_T is not set | 1512 | # CONFIG_CRC_ITU_T is not set |
| 1326 | CONFIG_CRC32=y | 1513 | CONFIG_CRC32=y |
| 1327 | # CONFIG_CRC7 is not set | 1514 | # CONFIG_CRC7 is not set |
diff --git a/arch/parisc/configs/default_defconfig b/arch/parisc/configs/default_defconfig index 448a757b06c6..283a96c1b5ea 100644 --- a/arch/parisc/configs/default_defconfig +++ b/arch/parisc/configs/default_defconfig | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.23 | 3 | # Linux kernel version: 2.6.29-rc8 |
| 4 | # Fri Oct 12 20:54:57 2007 | 4 | # Fri Mar 13 01:32:59 2009 |
| 5 | # | 5 | # |
| 6 | CONFIG_PARISC=y | 6 | CONFIG_PARISC=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| @@ -33,17 +33,35 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
| 33 | CONFIG_POSIX_MQUEUE=y | 33 | CONFIG_POSIX_MQUEUE=y |
| 34 | # CONFIG_BSD_PROCESS_ACCT is not set | 34 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 35 | # CONFIG_TASKSTATS is not set | 35 | # CONFIG_TASKSTATS is not set |
| 36 | # CONFIG_USER_NS is not set | ||
| 37 | # CONFIG_AUDIT is not set | 36 | # CONFIG_AUDIT is not set |
| 37 | |||
| 38 | # | ||
| 39 | # RCU Subsystem | ||
| 40 | # | ||
| 41 | CONFIG_CLASSIC_RCU=y | ||
| 42 | # CONFIG_TREE_RCU is not set | ||
| 43 | # CONFIG_PREEMPT_RCU is not set | ||
| 44 | # CONFIG_TREE_RCU_TRACE is not set | ||
| 45 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
| 38 | CONFIG_IKCONFIG=y | 46 | CONFIG_IKCONFIG=y |
| 39 | CONFIG_IKCONFIG_PROC=y | 47 | CONFIG_IKCONFIG_PROC=y |
| 40 | CONFIG_LOG_BUF_SHIFT=16 | 48 | CONFIG_LOG_BUF_SHIFT=16 |
| 49 | # CONFIG_GROUP_SCHED is not set | ||
| 50 | # CONFIG_CGROUPS is not set | ||
| 41 | CONFIG_SYSFS_DEPRECATED=y | 51 | CONFIG_SYSFS_DEPRECATED=y |
| 52 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 42 | # CONFIG_RELAY is not set | 53 | # CONFIG_RELAY is not set |
| 54 | CONFIG_NAMESPACES=y | ||
| 55 | # CONFIG_UTS_NS is not set | ||
| 56 | # CONFIG_IPC_NS is not set | ||
| 57 | # CONFIG_USER_NS is not set | ||
| 58 | # CONFIG_PID_NS is not set | ||
| 59 | # CONFIG_NET_NS is not set | ||
| 43 | CONFIG_BLK_DEV_INITRD=y | 60 | CONFIG_BLK_DEV_INITRD=y |
| 44 | CONFIG_INITRAMFS_SOURCE="" | 61 | CONFIG_INITRAMFS_SOURCE="" |
| 45 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 62 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
| 46 | CONFIG_SYSCTL=y | 63 | CONFIG_SYSCTL=y |
| 64 | CONFIG_ANON_INODES=y | ||
| 47 | # CONFIG_EMBEDDED is not set | 65 | # CONFIG_EMBEDDED is not set |
| 48 | CONFIG_SYSCTL_SYSCALL=y | 66 | CONFIG_SYSCTL_SYSCALL=y |
| 49 | CONFIG_KALLSYMS=y | 67 | CONFIG_KALLSYMS=y |
| @@ -55,29 +73,39 @@ CONFIG_BUG=y | |||
| 55 | CONFIG_ELF_CORE=y | 73 | CONFIG_ELF_CORE=y |
| 56 | CONFIG_BASE_FULL=y | 74 | CONFIG_BASE_FULL=y |
| 57 | CONFIG_FUTEX=y | 75 | CONFIG_FUTEX=y |
| 58 | CONFIG_ANON_INODES=y | ||
| 59 | CONFIG_EPOLL=y | 76 | CONFIG_EPOLL=y |
| 60 | CONFIG_SIGNALFD=y | 77 | CONFIG_SIGNALFD=y |
| 78 | CONFIG_TIMERFD=y | ||
| 61 | CONFIG_EVENTFD=y | 79 | CONFIG_EVENTFD=y |
| 62 | CONFIG_SHMEM=y | 80 | CONFIG_SHMEM=y |
| 81 | CONFIG_AIO=y | ||
| 63 | CONFIG_VM_EVENT_COUNTERS=y | 82 | CONFIG_VM_EVENT_COUNTERS=y |
| 83 | CONFIG_PCI_QUIRKS=y | ||
| 84 | CONFIG_COMPAT_BRK=y | ||
| 64 | CONFIG_SLAB=y | 85 | CONFIG_SLAB=y |
| 65 | # CONFIG_SLUB is not set | 86 | # CONFIG_SLUB is not set |
| 66 | # CONFIG_SLOB is not set | 87 | # CONFIG_SLOB is not set |
| 88 | CONFIG_PROFILING=y | ||
| 89 | CONFIG_TRACEPOINTS=y | ||
| 90 | # CONFIG_MARKERS is not set | ||
| 91 | CONFIG_OPROFILE=m | ||
| 92 | CONFIG_HAVE_OPROFILE=y | ||
| 93 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | ||
| 94 | CONFIG_SLABINFO=y | ||
| 67 | CONFIG_RT_MUTEXES=y | 95 | CONFIG_RT_MUTEXES=y |
| 68 | # CONFIG_TINY_SHMEM is not set | ||
| 69 | CONFIG_BASE_SMALL=0 | 96 | CONFIG_BASE_SMALL=0 |
| 70 | CONFIG_MODULES=y | 97 | CONFIG_MODULES=y |
| 98 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
| 71 | CONFIG_MODULE_UNLOAD=y | 99 | CONFIG_MODULE_UNLOAD=y |
| 72 | CONFIG_MODULE_FORCE_UNLOAD=y | 100 | CONFIG_MODULE_FORCE_UNLOAD=y |
| 73 | # CONFIG_MODVERSIONS is not set | 101 | # CONFIG_MODVERSIONS is not set |
| 74 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 102 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
| 75 | CONFIG_KMOD=y | 103 | CONFIG_INIT_ALL_POSSIBLE=y |
| 76 | CONFIG_BLOCK=y | 104 | CONFIG_BLOCK=y |
| 77 | # CONFIG_LBD is not set | 105 | # CONFIG_LBD is not set |
| 78 | # CONFIG_BLK_DEV_IO_TRACE is not set | 106 | # CONFIG_BLK_DEV_IO_TRACE is not set |
| 79 | # CONFIG_LSF is not set | ||
| 80 | # CONFIG_BLK_DEV_BSG is not set | 107 | # CONFIG_BLK_DEV_BSG is not set |
| 108 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
| 81 | 109 | ||
| 82 | # | 110 | # |
| 83 | # IO Schedulers | 111 | # IO Schedulers |
| @@ -91,6 +119,7 @@ CONFIG_DEFAULT_AS=y | |||
| 91 | # CONFIG_DEFAULT_CFQ is not set | 119 | # CONFIG_DEFAULT_CFQ is not set |
| 92 | # CONFIG_DEFAULT_NOOP is not set | 120 | # CONFIG_DEFAULT_NOOP is not set |
| 93 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 121 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
| 122 | # CONFIG_FREEZER is not set | ||
| 94 | 123 | ||
| 95 | # | 124 | # |
| 96 | # Processor type and features | 125 | # Processor type and features |
| @@ -114,17 +143,19 @@ CONFIG_HZ_250=y | |||
| 114 | # CONFIG_HZ_300 is not set | 143 | # CONFIG_HZ_300 is not set |
| 115 | # CONFIG_HZ_1000 is not set | 144 | # CONFIG_HZ_1000 is not set |
| 116 | CONFIG_HZ=250 | 145 | CONFIG_HZ=250 |
| 146 | # CONFIG_SCHED_HRTICK is not set | ||
| 117 | CONFIG_SELECT_MEMORY_MODEL=y | 147 | CONFIG_SELECT_MEMORY_MODEL=y |
| 118 | CONFIG_FLATMEM_MANUAL=y | 148 | CONFIG_FLATMEM_MANUAL=y |
| 119 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 149 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
| 120 | # CONFIG_SPARSEMEM_MANUAL is not set | 150 | # CONFIG_SPARSEMEM_MANUAL is not set |
| 121 | CONFIG_FLATMEM=y | 151 | CONFIG_FLATMEM=y |
| 122 | CONFIG_FLAT_NODE_MEM_MAP=y | 152 | CONFIG_FLAT_NODE_MEM_MAP=y |
| 123 | # CONFIG_SPARSEMEM_STATIC is not set | 153 | CONFIG_PAGEFLAGS_EXTENDED=y |
| 124 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | 154 | CONFIG_SPLIT_PTLOCK_CPUS=4096 |
| 125 | # CONFIG_RESOURCES_64BIT is not set | 155 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
| 126 | CONFIG_ZONE_DMA_FLAG=0 | 156 | CONFIG_ZONE_DMA_FLAG=0 |
| 127 | CONFIG_VIRT_TO_BUS=y | 157 | CONFIG_VIRT_TO_BUS=y |
| 158 | CONFIG_UNEVICTABLE_LRU=y | ||
| 128 | # CONFIG_HPUX is not set | 159 | # CONFIG_HPUX is not set |
| 129 | 160 | ||
| 130 | # | 161 | # |
| @@ -140,15 +171,14 @@ CONFIG_EISA_NAMES=y | |||
| 140 | # CONFIG_ISA is not set | 171 | # CONFIG_ISA is not set |
| 141 | CONFIG_PCI=y | 172 | CONFIG_PCI=y |
| 142 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 173 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
| 174 | CONFIG_PCI_LEGACY=y | ||
| 143 | # CONFIG_PCI_DEBUG is not set | 175 | # CONFIG_PCI_DEBUG is not set |
| 176 | # CONFIG_PCI_STUB is not set | ||
| 144 | CONFIG_GSC_DINO=y | 177 | CONFIG_GSC_DINO=y |
| 145 | CONFIG_PCI_LBA=y | 178 | CONFIG_PCI_LBA=y |
| 146 | CONFIG_IOSAPIC=y | 179 | CONFIG_IOSAPIC=y |
| 147 | CONFIG_IOMMU_SBA=y | 180 | CONFIG_IOMMU_SBA=y |
| 148 | 181 | CONFIG_IOMMU_HELPER=y | |
| 149 | # | ||
| 150 | # PCCARD (PCMCIA/CardBus) support | ||
| 151 | # | ||
| 152 | CONFIG_PCCARD=y | 182 | CONFIG_PCCARD=y |
| 153 | # CONFIG_PCMCIA_DEBUG is not set | 183 | # CONFIG_PCMCIA_DEBUG is not set |
| 154 | CONFIG_PCMCIA=y | 184 | CONFIG_PCMCIA=y |
| @@ -183,16 +213,15 @@ CONFIG_PDC_STABLE=y | |||
| 183 | # Executable file formats | 213 | # Executable file formats |
| 184 | # | 214 | # |
| 185 | CONFIG_BINFMT_ELF=y | 215 | CONFIG_BINFMT_ELF=y |
| 216 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
| 217 | # CONFIG_HAVE_AOUT is not set | ||
| 186 | CONFIG_BINFMT_MISC=m | 218 | CONFIG_BINFMT_MISC=m |
| 187 | |||
| 188 | # | ||
| 189 | # Networking | ||
| 190 | # | ||
| 191 | CONFIG_NET=y | 219 | CONFIG_NET=y |
| 192 | 220 | ||
| 193 | # | 221 | # |
| 194 | # Networking options | 222 | # Networking options |
| 195 | # | 223 | # |
| 224 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
| 196 | CONFIG_PACKET=y | 225 | CONFIG_PACKET=y |
| 197 | CONFIG_PACKET_MMAP=y | 226 | CONFIG_PACKET_MMAP=y |
| 198 | CONFIG_UNIX=y | 227 | CONFIG_UNIX=y |
| @@ -200,6 +229,8 @@ CONFIG_XFRM=y | |||
| 200 | CONFIG_XFRM_USER=m | 229 | CONFIG_XFRM_USER=m |
| 201 | # CONFIG_XFRM_SUB_POLICY is not set | 230 | # CONFIG_XFRM_SUB_POLICY is not set |
| 202 | # CONFIG_XFRM_MIGRATE is not set | 231 | # CONFIG_XFRM_MIGRATE is not set |
| 232 | # CONFIG_XFRM_STATISTICS is not set | ||
| 233 | CONFIG_XFRM_IPCOMP=y | ||
| 203 | CONFIG_NET_KEY=m | 234 | CONFIG_NET_KEY=m |
| 204 | # CONFIG_NET_KEY_MIGRATE is not set | 235 | # CONFIG_NET_KEY_MIGRATE is not set |
| 205 | CONFIG_INET=y | 236 | CONFIG_INET=y |
| @@ -245,8 +276,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y | |||
| 245 | CONFIG_INET6_XFRM_MODE_BEET=y | 276 | CONFIG_INET6_XFRM_MODE_BEET=y |
| 246 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 277 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
| 247 | CONFIG_IPV6_SIT=y | 278 | CONFIG_IPV6_SIT=y |
| 279 | CONFIG_IPV6_NDISC_NODETYPE=y | ||
| 248 | # CONFIG_IPV6_TUNNEL is not set | 280 | # CONFIG_IPV6_TUNNEL is not set |
| 249 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 281 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
| 282 | # CONFIG_IPV6_MROUTE is not set | ||
| 250 | # CONFIG_NETWORK_SECMARK is not set | 283 | # CONFIG_NETWORK_SECMARK is not set |
| 251 | # CONFIG_NETFILTER is not set | 284 | # CONFIG_NETFILTER is not set |
| 252 | # CONFIG_IP_DCCP is not set | 285 | # CONFIG_IP_DCCP is not set |
| @@ -254,6 +287,7 @@ CONFIG_IPV6_SIT=y | |||
| 254 | # CONFIG_TIPC is not set | 287 | # CONFIG_TIPC is not set |
| 255 | # CONFIG_ATM is not set | 288 | # CONFIG_ATM is not set |
| 256 | # CONFIG_BRIDGE is not set | 289 | # CONFIG_BRIDGE is not set |
| 290 | # CONFIG_NET_DSA is not set | ||
| 257 | # CONFIG_VLAN_8021Q is not set | 291 | # CONFIG_VLAN_8021Q is not set |
| 258 | # CONFIG_DECNET is not set | 292 | # CONFIG_DECNET is not set |
| 259 | CONFIG_LLC=m | 293 | CONFIG_LLC=m |
| @@ -264,28 +298,26 @@ CONFIG_LLC2=m | |||
| 264 | # CONFIG_LAPB is not set | 298 | # CONFIG_LAPB is not set |
| 265 | # CONFIG_ECONET is not set | 299 | # CONFIG_ECONET is not set |
| 266 | # CONFIG_WAN_ROUTER is not set | 300 | # CONFIG_WAN_ROUTER is not set |
| 267 | |||
| 268 | # | ||
| 269 | # QoS and/or fair queueing | ||
| 270 | # | ||
| 271 | # CONFIG_NET_SCHED is not set | 301 | # CONFIG_NET_SCHED is not set |
| 302 | # CONFIG_DCB is not set | ||
| 272 | 303 | ||
| 273 | # | 304 | # |
| 274 | # Network testing | 305 | # Network testing |
| 275 | # | 306 | # |
| 276 | # CONFIG_NET_PKTGEN is not set | 307 | # CONFIG_NET_PKTGEN is not set |
| 277 | # CONFIG_HAMRADIO is not set | 308 | # CONFIG_HAMRADIO is not set |
| 309 | # CONFIG_CAN is not set | ||
| 278 | # CONFIG_IRDA is not set | 310 | # CONFIG_IRDA is not set |
| 279 | # CONFIG_BT is not set | 311 | # CONFIG_BT is not set |
| 280 | # CONFIG_AF_RXRPC is not set | 312 | # CONFIG_AF_RXRPC is not set |
| 281 | 313 | # CONFIG_PHONET is not set | |
| 282 | # | 314 | CONFIG_WIRELESS=y |
| 283 | # Wireless | ||
| 284 | # | ||
| 285 | # CONFIG_CFG80211 is not set | 315 | # CONFIG_CFG80211 is not set |
| 316 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
| 286 | # CONFIG_WIRELESS_EXT is not set | 317 | # CONFIG_WIRELESS_EXT is not set |
| 318 | # CONFIG_LIB80211 is not set | ||
| 287 | # CONFIG_MAC80211 is not set | 319 | # CONFIG_MAC80211 is not set |
| 288 | # CONFIG_IEEE80211 is not set | 320 | # CONFIG_WIMAX is not set |
| 289 | # CONFIG_RFKILL is not set | 321 | # CONFIG_RFKILL is not set |
| 290 | # CONFIG_NET_9P is not set | 322 | # CONFIG_NET_9P is not set |
| 291 | 323 | ||
| @@ -300,6 +332,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | |||
| 300 | # CONFIG_STANDALONE is not set | 332 | # CONFIG_STANDALONE is not set |
| 301 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | 333 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
| 302 | CONFIG_FW_LOADER=y | 334 | CONFIG_FW_LOADER=y |
| 335 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
| 336 | CONFIG_EXTRA_FIRMWARE="" | ||
| 303 | # CONFIG_DEBUG_DRIVER is not set | 337 | # CONFIG_DEBUG_DRIVER is not set |
| 304 | # CONFIG_DEBUG_DEVRES is not set | 338 | # CONFIG_DEBUG_DEVRES is not set |
| 305 | # CONFIG_SYS_HYPERVISOR is not set | 339 | # CONFIG_SYS_HYPERVISOR is not set |
| @@ -330,63 +364,68 @@ CONFIG_BLK_DEV_CRYPTOLOOP=y | |||
| 330 | CONFIG_BLK_DEV_RAM=y | 364 | CONFIG_BLK_DEV_RAM=y |
| 331 | CONFIG_BLK_DEV_RAM_COUNT=16 | 365 | CONFIG_BLK_DEV_RAM_COUNT=16 |
| 332 | CONFIG_BLK_DEV_RAM_SIZE=6144 | 366 | CONFIG_BLK_DEV_RAM_SIZE=6144 |
| 333 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 367 | # CONFIG_BLK_DEV_XIP is not set |
| 334 | # CONFIG_CDROM_PKTCDVD is not set | 368 | # CONFIG_CDROM_PKTCDVD is not set |
| 335 | # CONFIG_ATA_OVER_ETH is not set | 369 | # CONFIG_ATA_OVER_ETH is not set |
| 370 | # CONFIG_BLK_DEV_HD is not set | ||
| 336 | CONFIG_MISC_DEVICES=y | 371 | CONFIG_MISC_DEVICES=y |
| 337 | # CONFIG_PHANTOM is not set | 372 | # CONFIG_PHANTOM is not set |
| 338 | # CONFIG_EEPROM_93CX6 is not set | ||
| 339 | # CONFIG_SGI_IOC4 is not set | 373 | # CONFIG_SGI_IOC4 is not set |
| 340 | # CONFIG_TIFM_CORE is not set | 374 | # CONFIG_TIFM_CORE is not set |
| 375 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
| 376 | # CONFIG_HP_ILO is not set | ||
| 377 | # CONFIG_C2PORT is not set | ||
| 378 | |||
| 379 | # | ||
| 380 | # EEPROM support | ||
| 381 | # | ||
| 382 | # CONFIG_EEPROM_93CX6 is not set | ||
| 383 | CONFIG_HAVE_IDE=y | ||
| 341 | CONFIG_IDE=y | 384 | CONFIG_IDE=y |
| 342 | CONFIG_BLK_DEV_IDE=y | ||
| 343 | 385 | ||
| 344 | # | 386 | # |
| 345 | # Please see Documentation/ide.txt for help/info on IDE drives | 387 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
| 346 | # | 388 | # |
| 389 | CONFIG_IDE_ATAPI=y | ||
| 347 | # CONFIG_BLK_DEV_IDE_SATA is not set | 390 | # CONFIG_BLK_DEV_IDE_SATA is not set |
| 348 | CONFIG_BLK_DEV_IDEDISK=y | 391 | CONFIG_IDE_GD=y |
| 349 | CONFIG_IDEDISK_MULTI_MODE=y | 392 | CONFIG_IDE_GD_ATA=y |
| 393 | # CONFIG_IDE_GD_ATAPI is not set | ||
| 350 | CONFIG_BLK_DEV_IDECS=y | 394 | CONFIG_BLK_DEV_IDECS=y |
| 351 | # CONFIG_BLK_DEV_DELKIN is not set | 395 | # CONFIG_BLK_DEV_DELKIN is not set |
| 352 | CONFIG_BLK_DEV_IDECD=y | 396 | CONFIG_BLK_DEV_IDECD=y |
| 397 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y | ||
| 353 | # CONFIG_BLK_DEV_IDETAPE is not set | 398 | # CONFIG_BLK_DEV_IDETAPE is not set |
| 354 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
| 355 | CONFIG_BLK_DEV_IDESCSI=y | ||
| 356 | # CONFIG_IDE_TASK_IOCTL is not set | 399 | # CONFIG_IDE_TASK_IOCTL is not set |
| 357 | CONFIG_IDE_PROC_FS=y | 400 | CONFIG_IDE_PROC_FS=y |
| 358 | 401 | ||
| 359 | # | 402 | # |
| 360 | # IDE chipset support/bugfixes | 403 | # IDE chipset support/bugfixes |
| 361 | # | 404 | # |
| 362 | CONFIG_IDE_GENERIC=y | ||
| 363 | # CONFIG_BLK_DEV_PLATFORM is not set | 405 | # CONFIG_BLK_DEV_PLATFORM is not set |
| 406 | CONFIG_BLK_DEV_IDEDMA_SFF=y | ||
| 364 | 407 | ||
| 365 | # | 408 | # |
| 366 | # PCI IDE chipsets support | 409 | # PCI IDE chipsets support |
| 367 | # | 410 | # |
| 368 | CONFIG_BLK_DEV_IDEPCI=y | 411 | CONFIG_BLK_DEV_IDEPCI=y |
| 369 | CONFIG_IDEPCI_SHARE_IRQ=y | ||
| 370 | CONFIG_IDEPCI_PCIBUS_ORDER=y | 412 | CONFIG_IDEPCI_PCIBUS_ORDER=y |
| 371 | # CONFIG_BLK_DEV_OFFBOARD is not set | 413 | # CONFIG_BLK_DEV_OFFBOARD is not set |
| 372 | CONFIG_BLK_DEV_GENERIC=y | 414 | CONFIG_BLK_DEV_GENERIC=y |
| 373 | # CONFIG_BLK_DEV_OPTI621 is not set | 415 | # CONFIG_BLK_DEV_OPTI621 is not set |
| 374 | CONFIG_BLK_DEV_IDEDMA_PCI=y | 416 | CONFIG_BLK_DEV_IDEDMA_PCI=y |
| 375 | # CONFIG_BLK_DEV_IDEDMA_FORCED is not set | ||
| 376 | CONFIG_IDEDMA_ONLYDISK=y | ||
| 377 | # CONFIG_BLK_DEV_AEC62XX is not set | 417 | # CONFIG_BLK_DEV_AEC62XX is not set |
| 378 | # CONFIG_BLK_DEV_ALI15X3 is not set | 418 | # CONFIG_BLK_DEV_ALI15X3 is not set |
| 379 | # CONFIG_BLK_DEV_AMD74XX is not set | 419 | # CONFIG_BLK_DEV_AMD74XX is not set |
| 380 | # CONFIG_BLK_DEV_CMD64X is not set | 420 | # CONFIG_BLK_DEV_CMD64X is not set |
| 381 | # CONFIG_BLK_DEV_TRIFLEX is not set | 421 | # CONFIG_BLK_DEV_TRIFLEX is not set |
| 382 | # CONFIG_BLK_DEV_CY82C693 is not set | ||
| 383 | # CONFIG_BLK_DEV_CS5520 is not set | 422 | # CONFIG_BLK_DEV_CS5520 is not set |
| 384 | # CONFIG_BLK_DEV_CS5530 is not set | 423 | # CONFIG_BLK_DEV_CS5530 is not set |
| 385 | # CONFIG_BLK_DEV_HPT34X is not set | ||
| 386 | # CONFIG_BLK_DEV_HPT366 is not set | 424 | # CONFIG_BLK_DEV_HPT366 is not set |
| 387 | # CONFIG_BLK_DEV_JMICRON is not set | 425 | # CONFIG_BLK_DEV_JMICRON is not set |
| 388 | # CONFIG_BLK_DEV_SC1200 is not set | 426 | # CONFIG_BLK_DEV_SC1200 is not set |
| 389 | # CONFIG_BLK_DEV_PIIX is not set | 427 | # CONFIG_BLK_DEV_PIIX is not set |
| 428 | # CONFIG_BLK_DEV_IT8172 is not set | ||
| 390 | # CONFIG_BLK_DEV_IT8213 is not set | 429 | # CONFIG_BLK_DEV_IT8213 is not set |
| 391 | # CONFIG_BLK_DEV_IT821X is not set | 430 | # CONFIG_BLK_DEV_IT821X is not set |
| 392 | CONFIG_BLK_DEV_NS87415=y | 431 | CONFIG_BLK_DEV_NS87415=y |
| @@ -398,10 +437,7 @@ CONFIG_BLK_DEV_NS87415=y | |||
| 398 | # CONFIG_BLK_DEV_TRM290 is not set | 437 | # CONFIG_BLK_DEV_TRM290 is not set |
| 399 | # CONFIG_BLK_DEV_VIA82CXXX is not set | 438 | # CONFIG_BLK_DEV_VIA82CXXX is not set |
| 400 | # CONFIG_BLK_DEV_TC86C001 is not set | 439 | # CONFIG_BLK_DEV_TC86C001 is not set |
| 401 | # CONFIG_IDE_ARM is not set | ||
| 402 | CONFIG_BLK_DEV_IDEDMA=y | 440 | CONFIG_BLK_DEV_IDEDMA=y |
| 403 | # CONFIG_IDEDMA_IVB is not set | ||
| 404 | # CONFIG_BLK_DEV_HD is not set | ||
| 405 | 441 | ||
| 406 | # | 442 | # |
| 407 | # SCSI device support | 443 | # SCSI device support |
| @@ -440,8 +476,10 @@ CONFIG_SCSI_SPI_ATTRS=y | |||
| 440 | # CONFIG_SCSI_FC_ATTRS is not set | 476 | # CONFIG_SCSI_FC_ATTRS is not set |
| 441 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 477 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
| 442 | # CONFIG_SCSI_SAS_LIBSAS is not set | 478 | # CONFIG_SCSI_SAS_LIBSAS is not set |
| 479 | # CONFIG_SCSI_SRP_ATTRS is not set | ||
| 443 | CONFIG_SCSI_LOWLEVEL=y | 480 | CONFIG_SCSI_LOWLEVEL=y |
| 444 | # CONFIG_ISCSI_TCP is not set | 481 | # CONFIG_ISCSI_TCP is not set |
| 482 | # CONFIG_SCSI_CXGB3_ISCSI is not set | ||
| 445 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 483 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
| 446 | # CONFIG_SCSI_3W_9XXX is not set | 484 | # CONFIG_SCSI_3W_9XXX is not set |
| 447 | # CONFIG_SCSI_ACARD is not set | 485 | # CONFIG_SCSI_ACARD is not set |
| @@ -452,11 +490,14 @@ CONFIG_SCSI_LOWLEVEL=y | |||
| 452 | # CONFIG_SCSI_AIC79XX is not set | 490 | # CONFIG_SCSI_AIC79XX is not set |
| 453 | # CONFIG_SCSI_AIC94XX is not set | 491 | # CONFIG_SCSI_AIC94XX is not set |
| 454 | # CONFIG_SCSI_DPT_I2O is not set | 492 | # CONFIG_SCSI_DPT_I2O is not set |
| 493 | # CONFIG_SCSI_ADVANSYS is not set | ||
| 455 | # CONFIG_SCSI_ARCMSR is not set | 494 | # CONFIG_SCSI_ARCMSR is not set |
| 456 | # CONFIG_MEGARAID_NEWGEN is not set | 495 | # CONFIG_MEGARAID_NEWGEN is not set |
| 457 | # CONFIG_MEGARAID_LEGACY is not set | 496 | # CONFIG_MEGARAID_LEGACY is not set |
| 458 | # CONFIG_MEGARAID_SAS is not set | 497 | # CONFIG_MEGARAID_SAS is not set |
| 459 | # CONFIG_SCSI_HPTIOP is not set | 498 | # CONFIG_SCSI_HPTIOP is not set |
| 499 | # CONFIG_LIBFC is not set | ||
| 500 | # CONFIG_FCOE is not set | ||
| 460 | # CONFIG_SCSI_DMX3191D is not set | 501 | # CONFIG_SCSI_DMX3191D is not set |
| 461 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 502 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
| 462 | # CONFIG_SCSI_IPS is not set | 503 | # CONFIG_SCSI_IPS is not set |
| @@ -464,6 +505,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
| 464 | # CONFIG_SCSI_INIA100 is not set | 505 | # CONFIG_SCSI_INIA100 is not set |
| 465 | # CONFIG_SCSI_PPA is not set | 506 | # CONFIG_SCSI_PPA is not set |
| 466 | # CONFIG_SCSI_IMM is not set | 507 | # CONFIG_SCSI_IMM is not set |
| 508 | # CONFIG_SCSI_MVSAS is not set | ||
| 467 | CONFIG_SCSI_LASI700=y | 509 | CONFIG_SCSI_LASI700=y |
| 468 | CONFIG_53C700_LE_ON_BE=y | 510 | CONFIG_53C700_LE_ON_BE=y |
| 469 | # CONFIG_SCSI_STEX is not set | 511 | # CONFIG_SCSI_STEX is not set |
| @@ -487,9 +529,11 @@ CONFIG_SCSI_NCR53C8XX_SYNC=20 | |||
| 487 | # CONFIG_SCSI_DEBUG is not set | 529 | # CONFIG_SCSI_DEBUG is not set |
| 488 | # CONFIG_SCSI_SRP is not set | 530 | # CONFIG_SCSI_SRP is not set |
| 489 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set | 531 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set |
| 532 | # CONFIG_SCSI_DH is not set | ||
| 490 | # CONFIG_ATA is not set | 533 | # CONFIG_ATA is not set |
| 491 | CONFIG_MD=y | 534 | CONFIG_MD=y |
| 492 | CONFIG_BLK_DEV_MD=y | 535 | CONFIG_BLK_DEV_MD=y |
| 536 | CONFIG_MD_AUTODETECT=y | ||
| 493 | CONFIG_MD_LINEAR=y | 537 | CONFIG_MD_LINEAR=y |
| 494 | CONFIG_MD_RAID0=y | 538 | CONFIG_MD_RAID0=y |
| 495 | CONFIG_MD_RAID1=y | 539 | CONFIG_MD_RAID1=y |
| @@ -505,32 +549,47 @@ CONFIG_BLK_DEV_DM=y | |||
| 505 | # CONFIG_DM_ZERO is not set | 549 | # CONFIG_DM_ZERO is not set |
| 506 | # CONFIG_DM_MULTIPATH is not set | 550 | # CONFIG_DM_MULTIPATH is not set |
| 507 | # CONFIG_DM_DELAY is not set | 551 | # CONFIG_DM_DELAY is not set |
| 552 | # CONFIG_DM_UEVENT is not set | ||
| 553 | # CONFIG_FUSION is not set | ||
| 508 | 554 | ||
| 509 | # | 555 | # |
| 510 | # Fusion MPT device support | 556 | # IEEE 1394 (FireWire) support |
| 511 | # | 557 | # |
| 512 | # CONFIG_FUSION is not set | ||
| 513 | # CONFIG_FUSION_SPI is not set | ||
| 514 | # CONFIG_FUSION_FC is not set | ||
| 515 | # CONFIG_FUSION_SAS is not set | ||
| 516 | 558 | ||
| 517 | # | 559 | # |
| 518 | # IEEE 1394 (FireWire) support | 560 | # Enable only one of the two stacks, unless you know what you are doing |
| 519 | # | 561 | # |
| 520 | # CONFIG_FIREWIRE is not set | 562 | # CONFIG_FIREWIRE is not set |
| 521 | # CONFIG_IEEE1394 is not set | 563 | # CONFIG_IEEE1394 is not set |
| 522 | # CONFIG_I2O is not set | 564 | # CONFIG_I2O is not set |
| 523 | CONFIG_NETDEVICES=y | 565 | CONFIG_NETDEVICES=y |
| 524 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
| 525 | CONFIG_DUMMY=m | 566 | CONFIG_DUMMY=m |
| 526 | CONFIG_BONDING=m | 567 | CONFIG_BONDING=m |
| 527 | # CONFIG_MACVLAN is not set | 568 | # CONFIG_MACVLAN is not set |
| 528 | # CONFIG_EQUALIZER is not set | 569 | # CONFIG_EQUALIZER is not set |
| 529 | CONFIG_TUN=m | 570 | CONFIG_TUN=m |
| 530 | # CONFIG_VETH is not set | 571 | # CONFIG_VETH is not set |
| 531 | # CONFIG_IP1000 is not set | ||
| 532 | # CONFIG_ARCNET is not set | 572 | # CONFIG_ARCNET is not set |
| 533 | # CONFIG_PHYLIB is not set | 573 | CONFIG_PHYLIB=y |
| 574 | |||
| 575 | # | ||
| 576 | # MII PHY device drivers | ||
| 577 | # | ||
| 578 | # CONFIG_MARVELL_PHY is not set | ||
| 579 | # CONFIG_DAVICOM_PHY is not set | ||
| 580 | # CONFIG_QSEMI_PHY is not set | ||
| 581 | # CONFIG_LXT_PHY is not set | ||
| 582 | # CONFIG_CICADA_PHY is not set | ||
| 583 | # CONFIG_VITESSE_PHY is not set | ||
| 584 | # CONFIG_SMSC_PHY is not set | ||
| 585 | # CONFIG_BROADCOM_PHY is not set | ||
| 586 | # CONFIG_ICPLUS_PHY is not set | ||
| 587 | # CONFIG_REALTEK_PHY is not set | ||
| 588 | # CONFIG_NATIONAL_PHY is not set | ||
| 589 | # CONFIG_STE10XP is not set | ||
| 590 | # CONFIG_LSI_ET1011C_PHY is not set | ||
| 591 | # CONFIG_FIXED_PHY is not set | ||
| 592 | # CONFIG_MDIO_BITBANG is not set | ||
| 534 | CONFIG_NET_ETHERNET=y | 593 | CONFIG_NET_ETHERNET=y |
| 535 | CONFIG_MII=m | 594 | CONFIG_MII=m |
| 536 | CONFIG_LASI_82596=y | 595 | CONFIG_LASI_82596=y |
| @@ -550,13 +609,15 @@ CONFIG_TULIP=y | |||
| 550 | # CONFIG_DM9102 is not set | 609 | # CONFIG_DM9102 is not set |
| 551 | # CONFIG_ULI526X is not set | 610 | # CONFIG_ULI526X is not set |
| 552 | # CONFIG_PCMCIA_XIRCOM is not set | 611 | # CONFIG_PCMCIA_XIRCOM is not set |
| 553 | # CONFIG_PCMCIA_XIRTULIP is not set | ||
| 554 | # CONFIG_DEPCA is not set | 612 | # CONFIG_DEPCA is not set |
| 555 | # CONFIG_HP100 is not set | 613 | # CONFIG_HP100 is not set |
| 556 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | 614 | # CONFIG_IBM_NEW_EMAC_ZMII is not set |
| 557 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 615 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
| 558 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 616 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
| 559 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 617 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
| 618 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
| 619 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
| 620 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
| 560 | CONFIG_NET_PCI=y | 621 | CONFIG_NET_PCI=y |
| 561 | # CONFIG_PCNET32 is not set | 622 | # CONFIG_PCNET32 is not set |
| 562 | # CONFIG_AMD8111_ETH is not set | 623 | # CONFIG_AMD8111_ETH is not set |
| @@ -564,7 +625,7 @@ CONFIG_NET_PCI=y | |||
| 564 | # CONFIG_AC3200 is not set | 625 | # CONFIG_AC3200 is not set |
| 565 | # CONFIG_B44 is not set | 626 | # CONFIG_B44 is not set |
| 566 | # CONFIG_FORCEDETH is not set | 627 | # CONFIG_FORCEDETH is not set |
| 567 | # CONFIG_EEPRO100 is not set | 628 | # CONFIG_CS89x0 is not set |
| 568 | # CONFIG_E100 is not set | 629 | # CONFIG_E100 is not set |
| 569 | # CONFIG_LNE390 is not set | 630 | # CONFIG_LNE390 is not set |
| 570 | # CONFIG_FEALNX is not set | 631 | # CONFIG_FEALNX is not set |
| @@ -574,19 +635,24 @@ CONFIG_NET_PCI=y | |||
| 574 | # CONFIG_ES3210 is not set | 635 | # CONFIG_ES3210 is not set |
| 575 | # CONFIG_8139CP is not set | 636 | # CONFIG_8139CP is not set |
| 576 | # CONFIG_8139TOO is not set | 637 | # CONFIG_8139TOO is not set |
| 638 | # CONFIG_R6040 is not set | ||
| 577 | # CONFIG_SIS900 is not set | 639 | # CONFIG_SIS900 is not set |
| 578 | # CONFIG_EPIC100 is not set | 640 | # CONFIG_EPIC100 is not set |
| 641 | # CONFIG_SMSC9420 is not set | ||
| 579 | # CONFIG_SUNDANCE is not set | 642 | # CONFIG_SUNDANCE is not set |
| 580 | # CONFIG_TLAN is not set | 643 | # CONFIG_TLAN is not set |
| 581 | # CONFIG_VIA_RHINE is not set | 644 | # CONFIG_VIA_RHINE is not set |
| 582 | # CONFIG_SC92031 is not set | 645 | # CONFIG_SC92031 is not set |
| 583 | # CONFIG_NET_POCKET is not set | 646 | # CONFIG_NET_POCKET is not set |
| 647 | # CONFIG_ATL2 is not set | ||
| 584 | CONFIG_NETDEV_1000=y | 648 | CONFIG_NETDEV_1000=y |
| 585 | CONFIG_ACENIC=y | 649 | CONFIG_ACENIC=y |
| 586 | # CONFIG_ACENIC_OMIT_TIGON_I is not set | 650 | # CONFIG_ACENIC_OMIT_TIGON_I is not set |
| 587 | # CONFIG_DL2K is not set | 651 | # CONFIG_DL2K is not set |
| 588 | # CONFIG_E1000 is not set | 652 | # CONFIG_E1000 is not set |
| 589 | # CONFIG_E1000E is not set | 653 | # CONFIG_E1000E is not set |
| 654 | # CONFIG_IP1000 is not set | ||
| 655 | # CONFIG_IGB is not set | ||
| 590 | # CONFIG_NS83820 is not set | 656 | # CONFIG_NS83820 is not set |
| 591 | # CONFIG_HAMACHI is not set | 657 | # CONFIG_HAMACHI is not set |
| 592 | # CONFIG_YELLOWFIN is not set | 658 | # CONFIG_YELLOWFIN is not set |
| @@ -594,23 +660,31 @@ CONFIG_ACENIC=y | |||
| 594 | # CONFIG_SIS190 is not set | 660 | # CONFIG_SIS190 is not set |
| 595 | # CONFIG_SKGE is not set | 661 | # CONFIG_SKGE is not set |
| 596 | # CONFIG_SKY2 is not set | 662 | # CONFIG_SKY2 is not set |
| 597 | # CONFIG_SK98LIN is not set | ||
| 598 | # CONFIG_VIA_VELOCITY is not set | 663 | # CONFIG_VIA_VELOCITY is not set |
| 599 | CONFIG_TIGON3=y | 664 | CONFIG_TIGON3=y |
| 600 | # CONFIG_BNX2 is not set | 665 | # CONFIG_BNX2 is not set |
| 601 | # CONFIG_QLA3XXX is not set | 666 | # CONFIG_QLA3XXX is not set |
| 602 | # CONFIG_ATL1 is not set | 667 | # CONFIG_ATL1 is not set |
| 668 | # CONFIG_ATL1E is not set | ||
| 669 | # CONFIG_ATL1C is not set | ||
| 670 | # CONFIG_JME is not set | ||
| 603 | CONFIG_NETDEV_10000=y | 671 | CONFIG_NETDEV_10000=y |
| 604 | # CONFIG_CHELSIO_T1 is not set | 672 | # CONFIG_CHELSIO_T1 is not set |
| 673 | CONFIG_CHELSIO_T3_DEPENDS=y | ||
| 605 | # CONFIG_CHELSIO_T3 is not set | 674 | # CONFIG_CHELSIO_T3 is not set |
| 675 | # CONFIG_ENIC is not set | ||
| 606 | # CONFIG_IXGBE is not set | 676 | # CONFIG_IXGBE is not set |
| 607 | # CONFIG_IXGB is not set | 677 | # CONFIG_IXGB is not set |
| 608 | # CONFIG_S2IO is not set | 678 | # CONFIG_S2IO is not set |
| 609 | # CONFIG_MYRI10GE is not set | 679 | # CONFIG_MYRI10GE is not set |
| 610 | # CONFIG_NETXEN_NIC is not set | 680 | # CONFIG_NETXEN_NIC is not set |
| 611 | # CONFIG_NIU is not set | 681 | # CONFIG_NIU is not set |
| 682 | # CONFIG_MLX4_EN is not set | ||
| 612 | # CONFIG_MLX4_CORE is not set | 683 | # CONFIG_MLX4_CORE is not set |
| 613 | # CONFIG_TEHUTI is not set | 684 | # CONFIG_TEHUTI is not set |
| 685 | # CONFIG_BNX2X is not set | ||
| 686 | # CONFIG_QLGE is not set | ||
| 687 | # CONFIG_SFC is not set | ||
| 614 | # CONFIG_TR is not set | 688 | # CONFIG_TR is not set |
| 615 | 689 | ||
| 616 | # | 690 | # |
| @@ -618,6 +692,11 @@ CONFIG_NETDEV_10000=y | |||
| 618 | # | 692 | # |
| 619 | # CONFIG_WLAN_PRE80211 is not set | 693 | # CONFIG_WLAN_PRE80211 is not set |
| 620 | # CONFIG_WLAN_80211 is not set | 694 | # CONFIG_WLAN_80211 is not set |
| 695 | # CONFIG_IWLWIFI_LEDS is not set | ||
| 696 | |||
| 697 | # | ||
| 698 | # Enable WiMAX (Networking options) to see the WiMAX drivers | ||
| 699 | # | ||
| 621 | 700 | ||
| 622 | # | 701 | # |
| 623 | # USB Network Adapters | 702 | # USB Network Adapters |
| @@ -626,7 +705,6 @@ CONFIG_NETDEV_10000=y | |||
| 626 | # CONFIG_USB_KAWETH is not set | 705 | # CONFIG_USB_KAWETH is not set |
| 627 | # CONFIG_USB_PEGASUS is not set | 706 | # CONFIG_USB_PEGASUS is not set |
| 628 | # CONFIG_USB_RTL8150 is not set | 707 | # CONFIG_USB_RTL8150 is not set |
| 629 | # CONFIG_USB_USBNET_MII is not set | ||
| 630 | # CONFIG_USB_USBNET is not set | 708 | # CONFIG_USB_USBNET is not set |
| 631 | CONFIG_NET_PCMCIA=y | 709 | CONFIG_NET_PCMCIA=y |
| 632 | # CONFIG_PCMCIA_3C589 is not set | 710 | # CONFIG_PCMCIA_3C589 is not set |
| @@ -654,7 +732,6 @@ CONFIG_PPPOE=m | |||
| 654 | # CONFIG_SLIP is not set | 732 | # CONFIG_SLIP is not set |
| 655 | CONFIG_SLHC=m | 733 | CONFIG_SLHC=m |
| 656 | # CONFIG_NET_FC is not set | 734 | # CONFIG_NET_FC is not set |
| 657 | # CONFIG_SHAPER is not set | ||
| 658 | # CONFIG_NETCONSOLE is not set | 735 | # CONFIG_NETCONSOLE is not set |
| 659 | # CONFIG_NETPOLL is not set | 736 | # CONFIG_NETPOLL is not set |
| 660 | # CONFIG_NET_POLL_CONTROLLER is not set | 737 | # CONFIG_NET_POLL_CONTROLLER is not set |
| @@ -676,7 +753,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y | |||
| 676 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | 753 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 |
| 677 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | 754 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 |
| 678 | # CONFIG_INPUT_JOYDEV is not set | 755 | # CONFIG_INPUT_JOYDEV is not set |
| 679 | # CONFIG_INPUT_TSDEV is not set | ||
| 680 | # CONFIG_INPUT_EVDEV is not set | 756 | # CONFIG_INPUT_EVDEV is not set |
| 681 | # CONFIG_INPUT_EVBUG is not set | 757 | # CONFIG_INPUT_EVBUG is not set |
| 682 | 758 | ||
| @@ -699,11 +775,12 @@ CONFIG_MOUSE_PS2=y | |||
| 699 | CONFIG_MOUSE_PS2_ALPS=y | 775 | CONFIG_MOUSE_PS2_ALPS=y |
| 700 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | 776 | CONFIG_MOUSE_PS2_LOGIPS2PP=y |
| 701 | CONFIG_MOUSE_PS2_SYNAPTICS=y | 777 | CONFIG_MOUSE_PS2_SYNAPTICS=y |
| 702 | CONFIG_MOUSE_PS2_LIFEBOOK=y | ||
| 703 | CONFIG_MOUSE_PS2_TRACKPOINT=y | 778 | CONFIG_MOUSE_PS2_TRACKPOINT=y |
| 779 | # CONFIG_MOUSE_PS2_ELANTECH is not set | ||
| 704 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | 780 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set |
| 705 | CONFIG_MOUSE_SERIAL=y | 781 | CONFIG_MOUSE_SERIAL=y |
| 706 | # CONFIG_MOUSE_APPLETOUCH is not set | 782 | # CONFIG_MOUSE_APPLETOUCH is not set |
| 783 | # CONFIG_MOUSE_BCM5974 is not set | ||
| 707 | # CONFIG_MOUSE_VSXXXAA is not set | 784 | # CONFIG_MOUSE_VSXXXAA is not set |
| 708 | CONFIG_MOUSE_HIL=y | 785 | CONFIG_MOUSE_HIL=y |
| 709 | # CONFIG_INPUT_JOYSTICK is not set | 786 | # CONFIG_INPUT_JOYSTICK is not set |
| @@ -729,10 +806,13 @@ CONFIG_SERIO_LIBPS2=y | |||
| 729 | # Character devices | 806 | # Character devices |
| 730 | # | 807 | # |
| 731 | CONFIG_VT=y | 808 | CONFIG_VT=y |
| 809 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
| 732 | CONFIG_VT_CONSOLE=y | 810 | CONFIG_VT_CONSOLE=y |
| 733 | CONFIG_HW_CONSOLE=y | 811 | CONFIG_HW_CONSOLE=y |
| 734 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 812 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
| 813 | CONFIG_DEVKMEM=y | ||
| 735 | # CONFIG_SERIAL_NONSTANDARD is not set | 814 | # CONFIG_SERIAL_NONSTANDARD is not set |
| 815 | # CONFIG_NOZOMI is not set | ||
| 736 | 816 | ||
| 737 | # | 817 | # |
| 738 | # Serial drivers | 818 | # Serial drivers |
| @@ -759,21 +839,16 @@ CONFIG_SERIAL_CORE=y | |||
| 759 | CONFIG_SERIAL_CORE_CONSOLE=y | 839 | CONFIG_SERIAL_CORE_CONSOLE=y |
| 760 | # CONFIG_SERIAL_JSM is not set | 840 | # CONFIG_SERIAL_JSM is not set |
| 761 | CONFIG_UNIX98_PTYS=y | 841 | CONFIG_UNIX98_PTYS=y |
| 842 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | ||
| 762 | CONFIG_LEGACY_PTYS=y | 843 | CONFIG_LEGACY_PTYS=y |
| 763 | CONFIG_LEGACY_PTY_COUNT=64 | 844 | CONFIG_LEGACY_PTY_COUNT=64 |
| 764 | CONFIG_PRINTER=m | 845 | CONFIG_PRINTER=m |
| 765 | # CONFIG_LP_CONSOLE is not set | 846 | # CONFIG_LP_CONSOLE is not set |
| 766 | CONFIG_PPDEV=m | 847 | CONFIG_PPDEV=m |
| 767 | # CONFIG_TIPAR is not set | ||
| 768 | # CONFIG_IPMI_HANDLER is not set | 848 | # CONFIG_IPMI_HANDLER is not set |
| 769 | # CONFIG_WATCHDOG is not set | ||
| 770 | # CONFIG_HW_RANDOM is not set | 849 | # CONFIG_HW_RANDOM is not set |
| 771 | CONFIG_GEN_RTC=y | ||
| 772 | CONFIG_GEN_RTC_X=y | ||
| 773 | # CONFIG_R3964 is not set | 850 | # CONFIG_R3964 is not set |
| 774 | # CONFIG_APPLICOM is not set | 851 | # CONFIG_APPLICOM is not set |
| 775 | # CONFIG_AGP is not set | ||
| 776 | # CONFIG_DRM is not set | ||
| 777 | 852 | ||
| 778 | # | 853 | # |
| 779 | # PCMCIA character devices | 854 | # PCMCIA character devices |
| @@ -781,60 +856,70 @@ CONFIG_GEN_RTC_X=y | |||
| 781 | # CONFIG_SYNCLINK_CS is not set | 856 | # CONFIG_SYNCLINK_CS is not set |
| 782 | # CONFIG_CARDMAN_4000 is not set | 857 | # CONFIG_CARDMAN_4000 is not set |
| 783 | # CONFIG_CARDMAN_4040 is not set | 858 | # CONFIG_CARDMAN_4040 is not set |
| 859 | # CONFIG_IPWIRELESS is not set | ||
| 784 | # CONFIG_RAW_DRIVER is not set | 860 | # CONFIG_RAW_DRIVER is not set |
| 785 | # CONFIG_TCG_TPM is not set | 861 | # CONFIG_TCG_TPM is not set |
| 786 | CONFIG_DEVPORT=y | 862 | CONFIG_DEVPORT=y |
| 787 | # CONFIG_I2C is not set | 863 | # CONFIG_I2C is not set |
| 788 | |||
| 789 | # | ||
| 790 | # SPI support | ||
| 791 | # | ||
| 792 | # CONFIG_SPI is not set | 864 | # CONFIG_SPI is not set |
| 793 | # CONFIG_SPI_MASTER is not set | ||
| 794 | # CONFIG_W1 is not set | 865 | # CONFIG_W1 is not set |
| 795 | # CONFIG_POWER_SUPPLY is not set | 866 | # CONFIG_POWER_SUPPLY is not set |
| 796 | # CONFIG_HWMON is not set | 867 | # CONFIG_HWMON is not set |
| 868 | # CONFIG_THERMAL is not set | ||
| 869 | # CONFIG_THERMAL_HWMON is not set | ||
| 870 | # CONFIG_WATCHDOG is not set | ||
| 871 | CONFIG_SSB_POSSIBLE=y | ||
| 797 | 872 | ||
| 798 | # | 873 | # |
| 799 | # Sonics Silicon Backplane | 874 | # Sonics Silicon Backplane |
| 800 | # | 875 | # |
| 801 | CONFIG_SSB_POSSIBLE=y | ||
| 802 | # CONFIG_SSB is not set | 876 | # CONFIG_SSB is not set |
| 803 | 877 | ||
| 804 | # | 878 | # |
| 805 | # Multifunction device drivers | 879 | # Multifunction device drivers |
| 806 | # | 880 | # |
| 881 | # CONFIG_MFD_CORE is not set | ||
| 807 | # CONFIG_MFD_SM501 is not set | 882 | # CONFIG_MFD_SM501 is not set |
| 883 | # CONFIG_HTC_PASIC3 is not set | ||
| 884 | # CONFIG_MFD_TMIO is not set | ||
| 885 | # CONFIG_REGULATOR is not set | ||
| 808 | 886 | ||
| 809 | # | 887 | # |
| 810 | # Multimedia devices | 888 | # Multimedia devices |
| 811 | # | 889 | # |
| 890 | |||
| 891 | # | ||
| 892 | # Multimedia core support | ||
| 893 | # | ||
| 812 | # CONFIG_VIDEO_DEV is not set | 894 | # CONFIG_VIDEO_DEV is not set |
| 813 | # CONFIG_DVB_CORE is not set | 895 | # CONFIG_DVB_CORE is not set |
| 814 | # CONFIG_DAB is not set | 896 | # CONFIG_VIDEO_MEDIA is not set |
| 815 | 897 | ||
| 816 | # | 898 | # |
| 817 | # Graphics support | 899 | # Multimedia drivers |
| 818 | # | 900 | # |
| 819 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 901 | # CONFIG_DAB is not set |
| 820 | 902 | ||
| 821 | # | 903 | # |
| 822 | # Display device support | 904 | # Graphics support |
| 823 | # | 905 | # |
| 824 | # CONFIG_DISPLAY_SUPPORT is not set | 906 | # CONFIG_AGP is not set |
| 907 | # CONFIG_DRM is not set | ||
| 825 | # CONFIG_VGASTATE is not set | 908 | # CONFIG_VGASTATE is not set |
| 826 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 909 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
| 827 | CONFIG_FB=y | 910 | CONFIG_FB=y |
| 828 | # CONFIG_FIRMWARE_EDID is not set | 911 | # CONFIG_FIRMWARE_EDID is not set |
| 829 | # CONFIG_FB_DDC is not set | 912 | # CONFIG_FB_DDC is not set |
| 913 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
| 830 | CONFIG_FB_CFB_FILLRECT=y | 914 | CONFIG_FB_CFB_FILLRECT=y |
| 831 | CONFIG_FB_CFB_COPYAREA=y | 915 | CONFIG_FB_CFB_COPYAREA=y |
| 832 | CONFIG_FB_CFB_IMAGEBLIT=y | 916 | CONFIG_FB_CFB_IMAGEBLIT=y |
| 917 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
| 833 | # CONFIG_FB_SYS_FILLRECT is not set | 918 | # CONFIG_FB_SYS_FILLRECT is not set |
| 834 | # CONFIG_FB_SYS_COPYAREA is not set | 919 | # CONFIG_FB_SYS_COPYAREA is not set |
| 835 | # CONFIG_FB_SYS_IMAGEBLIT is not set | 920 | # CONFIG_FB_SYS_IMAGEBLIT is not set |
| 921 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
| 836 | # CONFIG_FB_SYS_FOPS is not set | 922 | # CONFIG_FB_SYS_FOPS is not set |
| 837 | CONFIG_FB_DEFERRED_IO=y | ||
| 838 | # CONFIG_FB_SVGALIB is not set | 923 | # CONFIG_FB_SVGALIB is not set |
| 839 | # CONFIG_FB_MACMODES is not set | 924 | # CONFIG_FB_MACMODES is not set |
| 840 | # CONFIG_FB_BACKLIGHT is not set | 925 | # CONFIG_FB_BACKLIGHT is not set |
| @@ -860,6 +945,7 @@ CONFIG_FB_STI=y | |||
| 860 | # CONFIG_FB_S3 is not set | 945 | # CONFIG_FB_S3 is not set |
| 861 | # CONFIG_FB_SAVAGE is not set | 946 | # CONFIG_FB_SAVAGE is not set |
| 862 | # CONFIG_FB_SIS is not set | 947 | # CONFIG_FB_SIS is not set |
| 948 | # CONFIG_FB_VIA is not set | ||
| 863 | # CONFIG_FB_NEOMAGIC is not set | 949 | # CONFIG_FB_NEOMAGIC is not set |
| 864 | # CONFIG_FB_KYRO is not set | 950 | # CONFIG_FB_KYRO is not set |
| 865 | # CONFIG_FB_3DFX is not set | 951 | # CONFIG_FB_3DFX is not set |
| @@ -868,7 +954,16 @@ CONFIG_FB_STI=y | |||
| 868 | # CONFIG_FB_TRIDENT is not set | 954 | # CONFIG_FB_TRIDENT is not set |
| 869 | # CONFIG_FB_ARK is not set | 955 | # CONFIG_FB_ARK is not set |
| 870 | # CONFIG_FB_PM3 is not set | 956 | # CONFIG_FB_PM3 is not set |
| 957 | # CONFIG_FB_CARMINE is not set | ||
| 871 | # CONFIG_FB_VIRTUAL is not set | 958 | # CONFIG_FB_VIRTUAL is not set |
| 959 | # CONFIG_FB_METRONOME is not set | ||
| 960 | # CONFIG_FB_MB862XX is not set | ||
| 961 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
| 962 | |||
| 963 | # | ||
| 964 | # Display device support | ||
| 965 | # | ||
| 966 | # CONFIG_DISPLAY_SUPPORT is not set | ||
| 872 | 967 | ||
| 873 | # | 968 | # |
| 874 | # Console display driver support | 969 | # Console display driver support |
| @@ -896,15 +991,8 @@ CONFIG_LOGO=y | |||
| 896 | # CONFIG_LOGO_LINUX_VGA16 is not set | 991 | # CONFIG_LOGO_LINUX_VGA16 is not set |
| 897 | # CONFIG_LOGO_LINUX_CLUT224 is not set | 992 | # CONFIG_LOGO_LINUX_CLUT224 is not set |
| 898 | CONFIG_LOGO_PARISC_CLUT224=y | 993 | CONFIG_LOGO_PARISC_CLUT224=y |
| 899 | |||
| 900 | # | ||
| 901 | # Sound | ||
| 902 | # | ||
| 903 | CONFIG_SOUND=y | 994 | CONFIG_SOUND=y |
| 904 | 995 | CONFIG_SOUND_OSS_CORE=y | |
| 905 | # | ||
| 906 | # Advanced Linux Sound Architecture | ||
| 907 | # | ||
| 908 | CONFIG_SND=y | 996 | CONFIG_SND=y |
| 909 | CONFIG_SND_TIMER=y | 997 | CONFIG_SND_TIMER=y |
| 910 | CONFIG_SND_PCM=y | 998 | CONFIG_SND_PCM=y |
| @@ -920,11 +1008,9 @@ CONFIG_SND_SUPPORT_OLD_API=y | |||
| 920 | CONFIG_SND_VERBOSE_PROCFS=y | 1008 | CONFIG_SND_VERBOSE_PROCFS=y |
| 921 | # CONFIG_SND_VERBOSE_PRINTK is not set | 1009 | # CONFIG_SND_VERBOSE_PRINTK is not set |
| 922 | # CONFIG_SND_DEBUG is not set | 1010 | # CONFIG_SND_DEBUG is not set |
| 923 | 1011 | CONFIG_SND_VMASTER=y | |
| 924 | # | ||
| 925 | # Generic devices | ||
| 926 | # | ||
| 927 | CONFIG_SND_AC97_CODEC=y | 1012 | CONFIG_SND_AC97_CODEC=y |
| 1013 | CONFIG_SND_DRIVERS=y | ||
| 928 | # CONFIG_SND_DUMMY is not set | 1014 | # CONFIG_SND_DUMMY is not set |
| 929 | # CONFIG_SND_VIRMIDI is not set | 1015 | # CONFIG_SND_VIRMIDI is not set |
| 930 | # CONFIG_SND_MTPAV is not set | 1016 | # CONFIG_SND_MTPAV is not set |
| @@ -932,10 +1018,8 @@ CONFIG_SND_AC97_CODEC=y | |||
| 932 | # CONFIG_SND_SERIAL_U16550 is not set | 1018 | # CONFIG_SND_SERIAL_U16550 is not set |
| 933 | # CONFIG_SND_MPU401 is not set | 1019 | # CONFIG_SND_MPU401 is not set |
| 934 | # CONFIG_SND_PORTMAN2X4 is not set | 1020 | # CONFIG_SND_PORTMAN2X4 is not set |
| 935 | 1021 | # CONFIG_SND_AC97_POWER_SAVE is not set | |
| 936 | # | 1022 | CONFIG_SND_PCI=y |
| 937 | # PCI devices | ||
| 938 | # | ||
| 939 | CONFIG_SND_AD1889=y | 1023 | CONFIG_SND_AD1889=y |
| 940 | # CONFIG_SND_ALS300 is not set | 1024 | # CONFIG_SND_ALS300 is not set |
| 941 | # CONFIG_SND_ALI5451 is not set | 1025 | # CONFIG_SND_ALI5451 is not set |
| @@ -944,10 +1028,12 @@ CONFIG_SND_AD1889=y | |||
| 944 | # CONFIG_SND_AU8810 is not set | 1028 | # CONFIG_SND_AU8810 is not set |
| 945 | # CONFIG_SND_AU8820 is not set | 1029 | # CONFIG_SND_AU8820 is not set |
| 946 | # CONFIG_SND_AU8830 is not set | 1030 | # CONFIG_SND_AU8830 is not set |
| 1031 | # CONFIG_SND_AW2 is not set | ||
| 947 | # CONFIG_SND_AZT3328 is not set | 1032 | # CONFIG_SND_AZT3328 is not set |
| 948 | # CONFIG_SND_BT87X is not set | 1033 | # CONFIG_SND_BT87X is not set |
| 949 | # CONFIG_SND_CA0106 is not set | 1034 | # CONFIG_SND_CA0106 is not set |
| 950 | # CONFIG_SND_CMIPCI is not set | 1035 | # CONFIG_SND_CMIPCI is not set |
| 1036 | # CONFIG_SND_OXYGEN is not set | ||
| 951 | # CONFIG_SND_CS4281 is not set | 1037 | # CONFIG_SND_CS4281 is not set |
| 952 | # CONFIG_SND_CS46XX is not set | 1038 | # CONFIG_SND_CS46XX is not set |
| 953 | # CONFIG_SND_DARLA20 is not set | 1039 | # CONFIG_SND_DARLA20 is not set |
| @@ -972,6 +1058,7 @@ CONFIG_SND_AD1889=y | |||
| 972 | # CONFIG_SND_HDA_INTEL is not set | 1058 | # CONFIG_SND_HDA_INTEL is not set |
| 973 | # CONFIG_SND_HDSP is not set | 1059 | # CONFIG_SND_HDSP is not set |
| 974 | # CONFIG_SND_HDSPM is not set | 1060 | # CONFIG_SND_HDSPM is not set |
| 1061 | # CONFIG_SND_HIFIER is not set | ||
| 975 | # CONFIG_SND_ICE1712 is not set | 1062 | # CONFIG_SND_ICE1712 is not set |
| 976 | # CONFIG_SND_ICE1724 is not set | 1063 | # CONFIG_SND_ICE1724 is not set |
| 977 | # CONFIG_SND_INTEL8X0 is not set | 1064 | # CONFIG_SND_INTEL8X0 is not set |
| @@ -989,58 +1076,67 @@ CONFIG_SND_AD1889=y | |||
| 989 | # CONFIG_SND_TRIDENT is not set | 1076 | # CONFIG_SND_TRIDENT is not set |
| 990 | # CONFIG_SND_VIA82XX is not set | 1077 | # CONFIG_SND_VIA82XX is not set |
| 991 | # CONFIG_SND_VIA82XX_MODEM is not set | 1078 | # CONFIG_SND_VIA82XX_MODEM is not set |
| 1079 | # CONFIG_SND_VIRTUOSO is not set | ||
| 992 | # CONFIG_SND_VX222 is not set | 1080 | # CONFIG_SND_VX222 is not set |
| 993 | # CONFIG_SND_YMFPCI is not set | 1081 | # CONFIG_SND_YMFPCI is not set |
| 994 | # CONFIG_SND_AC97_POWER_SAVE is not set | 1082 | CONFIG_SND_USB=y |
| 995 | |||
| 996 | # | ||
| 997 | # USB devices | ||
| 998 | # | ||
| 999 | # CONFIG_SND_USB_AUDIO is not set | 1083 | # CONFIG_SND_USB_AUDIO is not set |
| 1000 | # CONFIG_SND_USB_CAIAQ is not set | 1084 | # CONFIG_SND_USB_CAIAQ is not set |
| 1001 | 1085 | CONFIG_SND_PCMCIA=y | |
| 1002 | # | ||
| 1003 | # PCMCIA devices | ||
| 1004 | # | ||
| 1005 | # CONFIG_SND_VXPOCKET is not set | 1086 | # CONFIG_SND_VXPOCKET is not set |
| 1006 | # CONFIG_SND_PDAUDIOCF is not set | 1087 | # CONFIG_SND_PDAUDIOCF is not set |
| 1007 | 1088 | CONFIG_SND_GSC=y | |
| 1008 | # | ||
| 1009 | # GSC devices | ||
| 1010 | # | ||
| 1011 | CONFIG_SND_HARMONY=y | 1089 | CONFIG_SND_HARMONY=y |
| 1012 | |||
| 1013 | # | ||
| 1014 | # System on Chip audio support | ||
| 1015 | # | ||
| 1016 | # CONFIG_SND_SOC is not set | 1090 | # CONFIG_SND_SOC is not set |
| 1017 | |||
| 1018 | # | ||
| 1019 | # SoC Audio support for SuperH | ||
| 1020 | # | ||
| 1021 | |||
| 1022 | # | ||
| 1023 | # Open Sound System | ||
| 1024 | # | ||
| 1025 | # CONFIG_SOUND_PRIME is not set | 1091 | # CONFIG_SOUND_PRIME is not set |
| 1026 | CONFIG_AC97_BUS=y | 1092 | CONFIG_AC97_BUS=y |
| 1027 | CONFIG_HID_SUPPORT=y | 1093 | CONFIG_HID_SUPPORT=y |
| 1028 | CONFIG_HID=y | 1094 | CONFIG_HID=y |
| 1029 | CONFIG_HID_DEBUG=y | 1095 | CONFIG_HID_DEBUG=y |
| 1096 | # CONFIG_HIDRAW is not set | ||
| 1030 | 1097 | ||
| 1031 | # | 1098 | # |
| 1032 | # USB Input Devices | 1099 | # USB Input Devices |
| 1033 | # | 1100 | # |
| 1034 | CONFIG_USB_HID=y | 1101 | CONFIG_USB_HID=y |
| 1035 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | 1102 | # CONFIG_HID_PID is not set |
| 1036 | # CONFIG_HID_FF is not set | ||
| 1037 | # CONFIG_USB_HIDDEV is not set | 1103 | # CONFIG_USB_HIDDEV is not set |
| 1104 | |||
| 1105 | # | ||
| 1106 | # Special HID drivers | ||
| 1107 | # | ||
| 1108 | CONFIG_HID_COMPAT=y | ||
| 1109 | CONFIG_HID_A4TECH=y | ||
| 1110 | CONFIG_HID_APPLE=y | ||
| 1111 | CONFIG_HID_BELKIN=y | ||
| 1112 | CONFIG_HID_CHERRY=y | ||
| 1113 | CONFIG_HID_CHICONY=y | ||
| 1114 | CONFIG_HID_CYPRESS=y | ||
| 1115 | CONFIG_HID_EZKEY=y | ||
| 1116 | CONFIG_HID_GYRATION=y | ||
| 1117 | CONFIG_HID_LOGITECH=y | ||
| 1118 | # CONFIG_LOGITECH_FF is not set | ||
| 1119 | # CONFIG_LOGIRUMBLEPAD2_FF is not set | ||
| 1120 | CONFIG_HID_MICROSOFT=y | ||
| 1121 | CONFIG_HID_MONTEREY=y | ||
| 1122 | CONFIG_HID_NTRIG=y | ||
| 1123 | CONFIG_HID_PANTHERLORD=y | ||
| 1124 | # CONFIG_PANTHERLORD_FF is not set | ||
| 1125 | CONFIG_HID_PETALYNX=y | ||
| 1126 | CONFIG_HID_SAMSUNG=y | ||
| 1127 | CONFIG_HID_SONY=y | ||
| 1128 | CONFIG_HID_SUNPLUS=y | ||
| 1129 | # CONFIG_GREENASIA_FF is not set | ||
| 1130 | CONFIG_HID_TOPSEED=y | ||
| 1131 | # CONFIG_THRUSTMASTER_FF is not set | ||
| 1132 | # CONFIG_ZEROPLUS_FF is not set | ||
| 1038 | CONFIG_USB_SUPPORT=y | 1133 | CONFIG_USB_SUPPORT=y |
| 1039 | CONFIG_USB_ARCH_HAS_HCD=y | 1134 | CONFIG_USB_ARCH_HAS_HCD=y |
| 1040 | CONFIG_USB_ARCH_HAS_OHCI=y | 1135 | CONFIG_USB_ARCH_HAS_OHCI=y |
| 1041 | CONFIG_USB_ARCH_HAS_EHCI=y | 1136 | CONFIG_USB_ARCH_HAS_EHCI=y |
| 1042 | CONFIG_USB=y | 1137 | CONFIG_USB=y |
| 1043 | # CONFIG_USB_DEBUG is not set | 1138 | # CONFIG_USB_DEBUG is not set |
| 1139 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
| 1044 | 1140 | ||
| 1045 | # | 1141 | # |
| 1046 | # Miscellaneous USB options | 1142 | # Miscellaneous USB options |
| @@ -1049,12 +1145,18 @@ CONFIG_USB_DEVICEFS=y | |||
| 1049 | CONFIG_USB_DEVICE_CLASS=y | 1145 | CONFIG_USB_DEVICE_CLASS=y |
| 1050 | # CONFIG_USB_DYNAMIC_MINORS is not set | 1146 | # CONFIG_USB_DYNAMIC_MINORS is not set |
| 1051 | # CONFIG_USB_OTG is not set | 1147 | # CONFIG_USB_OTG is not set |
| 1148 | CONFIG_USB_MON=y | ||
| 1149 | # CONFIG_USB_WUSB is not set | ||
| 1150 | # CONFIG_USB_WUSB_CBAF is not set | ||
| 1052 | 1151 | ||
| 1053 | # | 1152 | # |
| 1054 | # USB Host Controller Drivers | 1153 | # USB Host Controller Drivers |
| 1055 | # | 1154 | # |
| 1155 | # CONFIG_USB_C67X00_HCD is not set | ||
| 1056 | # CONFIG_USB_EHCI_HCD is not set | 1156 | # CONFIG_USB_EHCI_HCD is not set |
| 1157 | # CONFIG_USB_OXU210HP_HCD is not set | ||
| 1057 | # CONFIG_USB_ISP116X_HCD is not set | 1158 | # CONFIG_USB_ISP116X_HCD is not set |
| 1159 | # CONFIG_USB_ISP1760_HCD is not set | ||
| 1058 | CONFIG_USB_OHCI_HCD=y | 1160 | CONFIG_USB_OHCI_HCD=y |
| 1059 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set | 1161 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set |
| 1060 | # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set | 1162 | # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set |
| @@ -1062,19 +1164,23 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
| 1062 | CONFIG_USB_UHCI_HCD=y | 1164 | CONFIG_USB_UHCI_HCD=y |
| 1063 | # CONFIG_USB_SL811_HCD is not set | 1165 | # CONFIG_USB_SL811_HCD is not set |
| 1064 | # CONFIG_USB_R8A66597_HCD is not set | 1166 | # CONFIG_USB_R8A66597_HCD is not set |
| 1167 | # CONFIG_USB_WHCI_HCD is not set | ||
| 1168 | # CONFIG_USB_HWA_HCD is not set | ||
| 1065 | 1169 | ||
| 1066 | # | 1170 | # |
| 1067 | # USB Device Class drivers | 1171 | # USB Device Class drivers |
| 1068 | # | 1172 | # |
| 1069 | # CONFIG_USB_ACM is not set | 1173 | # CONFIG_USB_ACM is not set |
| 1070 | # CONFIG_USB_PRINTER is not set | 1174 | # CONFIG_USB_PRINTER is not set |
| 1175 | # CONFIG_USB_WDM is not set | ||
| 1176 | # CONFIG_USB_TMC is not set | ||
| 1071 | 1177 | ||
| 1072 | # | 1178 | # |
| 1073 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 1179 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; |
| 1074 | # | 1180 | # |
| 1075 | 1181 | ||
| 1076 | # | 1182 | # |
| 1077 | # may also be needed; see USB_STORAGE Help for more information | 1183 | # see USB_STORAGE Help for more information |
| 1078 | # | 1184 | # |
| 1079 | # CONFIG_USB_STORAGE is not set | 1185 | # CONFIG_USB_STORAGE is not set |
| 1080 | # CONFIG_USB_LIBUSUAL is not set | 1186 | # CONFIG_USB_LIBUSUAL is not set |
| @@ -1084,16 +1190,11 @@ CONFIG_USB_UHCI_HCD=y | |||
| 1084 | # | 1190 | # |
| 1085 | # CONFIG_USB_MDC800 is not set | 1191 | # CONFIG_USB_MDC800 is not set |
| 1086 | # CONFIG_USB_MICROTEK is not set | 1192 | # CONFIG_USB_MICROTEK is not set |
| 1087 | CONFIG_USB_MON=y | ||
| 1088 | 1193 | ||
| 1089 | # | 1194 | # |
| 1090 | # USB port drivers | 1195 | # USB port drivers |
| 1091 | # | 1196 | # |
| 1092 | # CONFIG_USB_USS720 is not set | 1197 | # CONFIG_USB_USS720 is not set |
| 1093 | |||
| 1094 | # | ||
| 1095 | # USB Serial Converter support | ||
| 1096 | # | ||
| 1097 | # CONFIG_USB_SERIAL is not set | 1198 | # CONFIG_USB_SERIAL is not set |
| 1098 | 1199 | ||
| 1099 | # | 1200 | # |
| @@ -1102,7 +1203,7 @@ CONFIG_USB_MON=y | |||
| 1102 | # CONFIG_USB_EMI62 is not set | 1203 | # CONFIG_USB_EMI62 is not set |
| 1103 | # CONFIG_USB_EMI26 is not set | 1204 | # CONFIG_USB_EMI26 is not set |
| 1104 | # CONFIG_USB_ADUTUX is not set | 1205 | # CONFIG_USB_ADUTUX is not set |
| 1105 | # CONFIG_USB_AUERSWALD is not set | 1206 | # CONFIG_USB_SEVSEG is not set |
| 1106 | # CONFIG_USB_RIO500 is not set | 1207 | # CONFIG_USB_RIO500 is not set |
| 1107 | # CONFIG_USB_LEGOTOWER is not set | 1208 | # CONFIG_USB_LEGOTOWER is not set |
| 1108 | # CONFIG_USB_LCD is not set | 1209 | # CONFIG_USB_LCD is not set |
| @@ -1118,38 +1219,60 @@ CONFIG_USB_MON=y | |||
| 1118 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1219 | # CONFIG_USB_TRANCEVIBRATOR is not set |
| 1119 | # CONFIG_USB_IOWARRIOR is not set | 1220 | # CONFIG_USB_IOWARRIOR is not set |
| 1120 | # CONFIG_USB_TEST is not set | 1221 | # CONFIG_USB_TEST is not set |
| 1222 | # CONFIG_USB_ISIGHTFW is not set | ||
| 1223 | # CONFIG_USB_VST is not set | ||
| 1224 | # CONFIG_USB_GADGET is not set | ||
| 1121 | 1225 | ||
| 1122 | # | 1226 | # |
| 1123 | # USB DSL modem support | 1227 | # OTG and related infrastructure |
| 1124 | # | ||
| 1125 | |||
| 1126 | # | ||
| 1127 | # USB Gadget Support | ||
| 1128 | # | 1228 | # |
| 1129 | # CONFIG_USB_GADGET is not set | 1229 | # CONFIG_UWB is not set |
| 1130 | # CONFIG_MMC is not set | 1230 | # CONFIG_MMC is not set |
| 1231 | # CONFIG_MEMSTICK is not set | ||
| 1131 | # CONFIG_NEW_LEDS is not set | 1232 | # CONFIG_NEW_LEDS is not set |
| 1233 | # CONFIG_ACCESSIBILITY is not set | ||
| 1132 | # CONFIG_INFINIBAND is not set | 1234 | # CONFIG_INFINIBAND is not set |
| 1133 | # CONFIG_RTC_CLASS is not set | 1235 | CONFIG_RTC_LIB=y |
| 1236 | CONFIG_RTC_CLASS=y | ||
| 1237 | CONFIG_RTC_HCTOSYS=y | ||
| 1238 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
| 1239 | # CONFIG_RTC_DEBUG is not set | ||
| 1134 | 1240 | ||
| 1135 | # | 1241 | # |
| 1136 | # DMA Engine support | 1242 | # RTC interfaces |
| 1137 | # | 1243 | # |
| 1138 | # CONFIG_DMA_ENGINE is not set | 1244 | CONFIG_RTC_INTF_SYSFS=y |
| 1245 | CONFIG_RTC_INTF_PROC=y | ||
| 1246 | CONFIG_RTC_INTF_DEV=y | ||
| 1247 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
| 1248 | # CONFIG_RTC_DRV_TEST is not set | ||
| 1139 | 1249 | ||
| 1140 | # | 1250 | # |
| 1141 | # DMA Clients | 1251 | # SPI RTC drivers |
| 1142 | # | 1252 | # |
| 1143 | 1253 | ||
| 1144 | # | 1254 | # |
| 1145 | # DMA Devices | 1255 | # Platform RTC drivers |
| 1146 | # | 1256 | # |
| 1147 | # CONFIG_AUXDISPLAY is not set | 1257 | # CONFIG_RTC_DRV_DS1286 is not set |
| 1258 | # CONFIG_RTC_DRV_DS1511 is not set | ||
| 1259 | # CONFIG_RTC_DRV_DS1553 is not set | ||
| 1260 | # CONFIG_RTC_DRV_DS1742 is not set | ||
| 1261 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
| 1262 | # CONFIG_RTC_DRV_M48T86 is not set | ||
| 1263 | # CONFIG_RTC_DRV_M48T35 is not set | ||
| 1264 | # CONFIG_RTC_DRV_M48T59 is not set | ||
| 1265 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
| 1266 | # CONFIG_RTC_DRV_V3020 is not set | ||
| 1148 | 1267 | ||
| 1149 | # | 1268 | # |
| 1150 | # Userspace I/O | 1269 | # on-CPU RTC drivers |
| 1151 | # | 1270 | # |
| 1271 | CONFIG_RTC_DRV_PARISC=y | ||
| 1272 | # CONFIG_DMADEVICES is not set | ||
| 1273 | # CONFIG_AUXDISPLAY is not set | ||
| 1152 | # CONFIG_UIO is not set | 1274 | # CONFIG_UIO is not set |
| 1275 | # CONFIG_STAGING is not set | ||
| 1153 | 1276 | ||
| 1154 | # | 1277 | # |
| 1155 | # File systems | 1278 | # File systems |
| @@ -1159,21 +1282,20 @@ CONFIG_EXT2_FS=y | |||
| 1159 | # CONFIG_EXT2_FS_XIP is not set | 1282 | # CONFIG_EXT2_FS_XIP is not set |
| 1160 | CONFIG_EXT3_FS=y | 1283 | CONFIG_EXT3_FS=y |
| 1161 | # CONFIG_EXT3_FS_XATTR is not set | 1284 | # CONFIG_EXT3_FS_XATTR is not set |
| 1162 | # CONFIG_EXT4DEV_FS is not set | 1285 | # CONFIG_EXT4_FS is not set |
| 1163 | CONFIG_JBD=y | 1286 | CONFIG_JBD=y |
| 1164 | # CONFIG_JBD_DEBUG is not set | 1287 | # CONFIG_JBD_DEBUG is not set |
| 1165 | # CONFIG_REISERFS_FS is not set | 1288 | # CONFIG_REISERFS_FS is not set |
| 1166 | # CONFIG_JFS_FS is not set | 1289 | # CONFIG_JFS_FS is not set |
| 1167 | CONFIG_FS_POSIX_ACL=y | 1290 | CONFIG_FS_POSIX_ACL=y |
| 1291 | CONFIG_FILE_LOCKING=y | ||
| 1168 | # CONFIG_XFS_FS is not set | 1292 | # CONFIG_XFS_FS is not set |
| 1169 | # CONFIG_GFS2_FS is not set | ||
| 1170 | # CONFIG_OCFS2_FS is not set | 1293 | # CONFIG_OCFS2_FS is not set |
| 1171 | # CONFIG_MINIX_FS is not set | 1294 | # CONFIG_BTRFS_FS is not set |
| 1172 | # CONFIG_ROMFS_FS is not set | 1295 | CONFIG_DNOTIFY=y |
| 1173 | CONFIG_INOTIFY=y | 1296 | CONFIG_INOTIFY=y |
| 1174 | CONFIG_INOTIFY_USER=y | 1297 | CONFIG_INOTIFY_USER=y |
| 1175 | # CONFIG_QUOTA is not set | 1298 | # CONFIG_QUOTA is not set |
| 1176 | CONFIG_DNOTIFY=y | ||
| 1177 | CONFIG_AUTOFS_FS=y | 1299 | CONFIG_AUTOFS_FS=y |
| 1178 | # CONFIG_AUTOFS4_FS is not set | 1300 | # CONFIG_AUTOFS4_FS is not set |
| 1179 | # CONFIG_FUSE_FS is not set | 1301 | # CONFIG_FUSE_FS is not set |
| @@ -1202,16 +1324,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
| 1202 | CONFIG_PROC_FS=y | 1324 | CONFIG_PROC_FS=y |
| 1203 | CONFIG_PROC_KCORE=y | 1325 | CONFIG_PROC_KCORE=y |
| 1204 | CONFIG_PROC_SYSCTL=y | 1326 | CONFIG_PROC_SYSCTL=y |
| 1327 | CONFIG_PROC_PAGE_MONITOR=y | ||
| 1205 | CONFIG_SYSFS=y | 1328 | CONFIG_SYSFS=y |
| 1206 | CONFIG_TMPFS=y | 1329 | CONFIG_TMPFS=y |
| 1207 | # CONFIG_TMPFS_POSIX_ACL is not set | 1330 | # CONFIG_TMPFS_POSIX_ACL is not set |
| 1208 | # CONFIG_HUGETLB_PAGE is not set | 1331 | # CONFIG_HUGETLB_PAGE is not set |
| 1209 | CONFIG_RAMFS=y | ||
| 1210 | # CONFIG_CONFIGFS_FS is not set | 1332 | # CONFIG_CONFIGFS_FS is not set |
| 1211 | 1333 | CONFIG_MISC_FILESYSTEMS=y | |
| 1212 | # | ||
| 1213 | # Miscellaneous filesystems | ||
| 1214 | # | ||
| 1215 | # CONFIG_ADFS_FS is not set | 1334 | # CONFIG_ADFS_FS is not set |
| 1216 | # CONFIG_AFFS_FS is not set | 1335 | # CONFIG_AFFS_FS is not set |
| 1217 | # CONFIG_ECRYPT_FS is not set | 1336 | # CONFIG_ECRYPT_FS is not set |
| @@ -1221,33 +1340,32 @@ CONFIG_RAMFS=y | |||
| 1221 | # CONFIG_BFS_FS is not set | 1340 | # CONFIG_BFS_FS is not set |
| 1222 | # CONFIG_EFS_FS is not set | 1341 | # CONFIG_EFS_FS is not set |
| 1223 | # CONFIG_CRAMFS is not set | 1342 | # CONFIG_CRAMFS is not set |
| 1343 | # CONFIG_SQUASHFS is not set | ||
| 1224 | # CONFIG_VXFS_FS is not set | 1344 | # CONFIG_VXFS_FS is not set |
| 1345 | # CONFIG_MINIX_FS is not set | ||
| 1346 | # CONFIG_OMFS_FS is not set | ||
| 1225 | # CONFIG_HPFS_FS is not set | 1347 | # CONFIG_HPFS_FS is not set |
| 1226 | # CONFIG_QNX4FS_FS is not set | 1348 | # CONFIG_QNX4FS_FS is not set |
| 1349 | # CONFIG_ROMFS_FS is not set | ||
| 1227 | # CONFIG_SYSV_FS is not set | 1350 | # CONFIG_SYSV_FS is not set |
| 1228 | # CONFIG_UFS_FS is not set | 1351 | # CONFIG_UFS_FS is not set |
| 1229 | 1352 | CONFIG_NETWORK_FILESYSTEMS=y | |
| 1230 | # | ||
| 1231 | # Network File Systems | ||
| 1232 | # | ||
| 1233 | CONFIG_NFS_FS=y | 1353 | CONFIG_NFS_FS=y |
| 1234 | CONFIG_NFS_V3=y | 1354 | CONFIG_NFS_V3=y |
| 1235 | # CONFIG_NFS_V3_ACL is not set | 1355 | # CONFIG_NFS_V3_ACL is not set |
| 1236 | # CONFIG_NFS_V4 is not set | 1356 | # CONFIG_NFS_V4 is not set |
| 1237 | # CONFIG_NFS_DIRECTIO is not set | 1357 | CONFIG_ROOT_NFS=y |
| 1238 | CONFIG_NFSD=y | 1358 | CONFIG_NFSD=y |
| 1239 | CONFIG_NFSD_V3=y | 1359 | CONFIG_NFSD_V3=y |
| 1240 | # CONFIG_NFSD_V3_ACL is not set | 1360 | # CONFIG_NFSD_V3_ACL is not set |
| 1241 | CONFIG_NFSD_V4=y | 1361 | CONFIG_NFSD_V4=y |
| 1242 | CONFIG_NFSD_TCP=y | ||
| 1243 | CONFIG_ROOT_NFS=y | ||
| 1244 | CONFIG_LOCKD=y | 1362 | CONFIG_LOCKD=y |
| 1245 | CONFIG_LOCKD_V4=y | 1363 | CONFIG_LOCKD_V4=y |
| 1246 | CONFIG_EXPORTFS=y | 1364 | CONFIG_EXPORTFS=y |
| 1247 | CONFIG_NFS_COMMON=y | 1365 | CONFIG_NFS_COMMON=y |
| 1248 | CONFIG_SUNRPC=y | 1366 | CONFIG_SUNRPC=y |
| 1249 | CONFIG_SUNRPC_GSS=y | 1367 | CONFIG_SUNRPC_GSS=y |
| 1250 | # CONFIG_SUNRPC_BIND34 is not set | 1368 | # CONFIG_SUNRPC_REGISTER_V4 is not set |
| 1251 | CONFIG_RPCSEC_GSS_KRB5=y | 1369 | CONFIG_RPCSEC_GSS_KRB5=y |
| 1252 | CONFIG_RPCSEC_GSS_SPKM3=m | 1370 | CONFIG_RPCSEC_GSS_SPKM3=m |
| 1253 | CONFIG_SMB_FS=m | 1371 | CONFIG_SMB_FS=m |
| @@ -1256,6 +1374,7 @@ CONFIG_SMB_NLS_REMOTE="cp437" | |||
| 1256 | CONFIG_CIFS=m | 1374 | CONFIG_CIFS=m |
| 1257 | # CONFIG_CIFS_STATS is not set | 1375 | # CONFIG_CIFS_STATS is not set |
| 1258 | # CONFIG_CIFS_WEAK_PW_HASH is not set | 1376 | # CONFIG_CIFS_WEAK_PW_HASH is not set |
| 1377 | # CONFIG_CIFS_UPCALL is not set | ||
| 1259 | # CONFIG_CIFS_XATTR is not set | 1378 | # CONFIG_CIFS_XATTR is not set |
| 1260 | # CONFIG_CIFS_DEBUG2 is not set | 1379 | # CONFIG_CIFS_DEBUG2 is not set |
| 1261 | # CONFIG_CIFS_EXPERIMENTAL is not set | 1380 | # CONFIG_CIFS_EXPERIMENTAL is not set |
| @@ -1268,10 +1387,6 @@ CONFIG_CIFS=m | |||
| 1268 | # | 1387 | # |
| 1269 | # CONFIG_PARTITION_ADVANCED is not set | 1388 | # CONFIG_PARTITION_ADVANCED is not set |
| 1270 | CONFIG_MSDOS_PARTITION=y | 1389 | CONFIG_MSDOS_PARTITION=y |
| 1271 | |||
| 1272 | # | ||
| 1273 | # Native Language Support | ||
| 1274 | # | ||
| 1275 | CONFIG_NLS=y | 1390 | CONFIG_NLS=y |
| 1276 | CONFIG_NLS_DEFAULT="iso8859-1" | 1391 | CONFIG_NLS_DEFAULT="iso8859-1" |
| 1277 | CONFIG_NLS_CODEPAGE_437=y | 1392 | CONFIG_NLS_CODEPAGE_437=y |
| @@ -1312,33 +1427,28 @@ CONFIG_NLS_ISO8859_15=m | |||
| 1312 | CONFIG_NLS_KOI8_R=m | 1427 | CONFIG_NLS_KOI8_R=m |
| 1313 | CONFIG_NLS_KOI8_U=m | 1428 | CONFIG_NLS_KOI8_U=m |
| 1314 | CONFIG_NLS_UTF8=y | 1429 | CONFIG_NLS_UTF8=y |
| 1315 | |||
| 1316 | # | ||
| 1317 | # Distributed Lock Manager | ||
| 1318 | # | ||
| 1319 | # CONFIG_DLM is not set | 1430 | # CONFIG_DLM is not set |
| 1320 | 1431 | ||
| 1321 | # | 1432 | # |
| 1322 | # Profiling support | ||
| 1323 | # | ||
| 1324 | CONFIG_PROFILING=y | ||
| 1325 | CONFIG_OPROFILE=m | ||
| 1326 | |||
| 1327 | # | ||
| 1328 | # Kernel hacking | 1433 | # Kernel hacking |
| 1329 | # | 1434 | # |
| 1330 | # CONFIG_PRINTK_TIME is not set | 1435 | # CONFIG_PRINTK_TIME is not set |
| 1436 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
| 1331 | CONFIG_ENABLE_MUST_CHECK=y | 1437 | CONFIG_ENABLE_MUST_CHECK=y |
| 1438 | CONFIG_FRAME_WARN=1024 | ||
| 1332 | CONFIG_MAGIC_SYSRQ=y | 1439 | CONFIG_MAGIC_SYSRQ=y |
| 1333 | # CONFIG_UNUSED_SYMBOLS is not set | 1440 | # CONFIG_UNUSED_SYMBOLS is not set |
| 1334 | # CONFIG_DEBUG_FS is not set | 1441 | CONFIG_DEBUG_FS=y |
| 1335 | CONFIG_HEADERS_CHECK=y | 1442 | CONFIG_HEADERS_CHECK=y |
| 1336 | CONFIG_DEBUG_KERNEL=y | 1443 | CONFIG_DEBUG_KERNEL=y |
| 1337 | # CONFIG_DEBUG_SHIRQ is not set | 1444 | # CONFIG_DEBUG_SHIRQ is not set |
| 1338 | CONFIG_DETECT_SOFTLOCKUP=y | 1445 | CONFIG_DETECT_SOFTLOCKUP=y |
| 1446 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
| 1447 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
| 1339 | CONFIG_SCHED_DEBUG=y | 1448 | CONFIG_SCHED_DEBUG=y |
| 1340 | # CONFIG_SCHEDSTATS is not set | 1449 | # CONFIG_SCHEDSTATS is not set |
| 1341 | # CONFIG_TIMER_STATS is not set | 1450 | # CONFIG_TIMER_STATS is not set |
| 1451 | # CONFIG_DEBUG_OBJECTS is not set | ||
| 1342 | # CONFIG_DEBUG_SLAB is not set | 1452 | # CONFIG_DEBUG_SLAB is not set |
| 1343 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1453 | # CONFIG_DEBUG_RT_MUTEXES is not set |
| 1344 | # CONFIG_RT_MUTEX_TESTER is not set | 1454 | # CONFIG_RT_MUTEX_TESTER is not set |
| @@ -1350,10 +1460,33 @@ CONFIG_DEBUG_MUTEXES=y | |||
| 1350 | CONFIG_DEBUG_BUGVERBOSE=y | 1460 | CONFIG_DEBUG_BUGVERBOSE=y |
| 1351 | # CONFIG_DEBUG_INFO is not set | 1461 | # CONFIG_DEBUG_INFO is not set |
| 1352 | # CONFIG_DEBUG_VM is not set | 1462 | # CONFIG_DEBUG_VM is not set |
| 1463 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
| 1464 | CONFIG_DEBUG_MEMORY_INIT=y | ||
| 1353 | # CONFIG_DEBUG_LIST is not set | 1465 | # CONFIG_DEBUG_LIST is not set |
| 1354 | CONFIG_FORCED_INLINING=y | 1466 | # CONFIG_DEBUG_SG is not set |
| 1467 | # CONFIG_DEBUG_NOTIFIERS is not set | ||
| 1468 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
| 1355 | # CONFIG_RCU_TORTURE_TEST is not set | 1469 | # CONFIG_RCU_TORTURE_TEST is not set |
| 1470 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
| 1471 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
| 1472 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
| 1356 | # CONFIG_FAULT_INJECTION is not set | 1473 | # CONFIG_FAULT_INJECTION is not set |
| 1474 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
| 1475 | CONFIG_NOP_TRACER=y | ||
| 1476 | CONFIG_RING_BUFFER=y | ||
| 1477 | CONFIG_TRACING=y | ||
| 1478 | |||
| 1479 | # | ||
| 1480 | # Tracers | ||
| 1481 | # | ||
| 1482 | # CONFIG_SCHED_TRACER is not set | ||
| 1483 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
| 1484 | # CONFIG_BOOT_TRACER is not set | ||
| 1485 | # CONFIG_TRACE_BRANCH_PROFILING is not set | ||
| 1486 | # CONFIG_FTRACE_STARTUP_TEST is not set | ||
| 1487 | # CONFIG_BUILD_DOCSRC is not set | ||
| 1488 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
| 1489 | # CONFIG_SAMPLES is not set | ||
| 1357 | # CONFIG_DEBUG_RODATA is not set | 1490 | # CONFIG_DEBUG_RODATA is not set |
| 1358 | 1491 | ||
| 1359 | # | 1492 | # |
| @@ -1362,56 +1495,112 @@ CONFIG_FORCED_INLINING=y | |||
| 1362 | CONFIG_KEYS=y | 1495 | CONFIG_KEYS=y |
| 1363 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | 1496 | CONFIG_KEYS_DEBUG_PROC_KEYS=y |
| 1364 | # CONFIG_SECURITY is not set | 1497 | # CONFIG_SECURITY is not set |
| 1498 | # CONFIG_SECURITYFS is not set | ||
| 1499 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
| 1365 | CONFIG_CRYPTO=y | 1500 | CONFIG_CRYPTO=y |
| 1501 | |||
| 1502 | # | ||
| 1503 | # Crypto core or helper | ||
| 1504 | # | ||
| 1505 | # CONFIG_CRYPTO_FIPS is not set | ||
| 1366 | CONFIG_CRYPTO_ALGAPI=y | 1506 | CONFIG_CRYPTO_ALGAPI=y |
| 1507 | CONFIG_CRYPTO_ALGAPI2=y | ||
| 1508 | CONFIG_CRYPTO_AEAD=y | ||
| 1509 | CONFIG_CRYPTO_AEAD2=y | ||
| 1367 | CONFIG_CRYPTO_BLKCIPHER=y | 1510 | CONFIG_CRYPTO_BLKCIPHER=y |
| 1511 | CONFIG_CRYPTO_BLKCIPHER2=y | ||
| 1368 | CONFIG_CRYPTO_HASH=y | 1512 | CONFIG_CRYPTO_HASH=y |
| 1513 | CONFIG_CRYPTO_HASH2=y | ||
| 1514 | CONFIG_CRYPTO_RNG2=y | ||
| 1369 | CONFIG_CRYPTO_MANAGER=y | 1515 | CONFIG_CRYPTO_MANAGER=y |
| 1516 | CONFIG_CRYPTO_MANAGER2=y | ||
| 1517 | # CONFIG_CRYPTO_GF128MUL is not set | ||
| 1518 | CONFIG_CRYPTO_NULL=m | ||
| 1519 | # CONFIG_CRYPTO_CRYPTD is not set | ||
| 1520 | CONFIG_CRYPTO_AUTHENC=y | ||
| 1521 | CONFIG_CRYPTO_TEST=m | ||
| 1522 | |||
| 1523 | # | ||
| 1524 | # Authenticated Encryption with Associated Data | ||
| 1525 | # | ||
| 1526 | # CONFIG_CRYPTO_CCM is not set | ||
| 1527 | # CONFIG_CRYPTO_GCM is not set | ||
| 1528 | # CONFIG_CRYPTO_SEQIV is not set | ||
| 1529 | |||
| 1530 | # | ||
| 1531 | # Block modes | ||
| 1532 | # | ||
| 1533 | CONFIG_CRYPTO_CBC=y | ||
| 1534 | # CONFIG_CRYPTO_CTR is not set | ||
| 1535 | # CONFIG_CRYPTO_CTS is not set | ||
| 1536 | # CONFIG_CRYPTO_ECB is not set | ||
| 1537 | # CONFIG_CRYPTO_LRW is not set | ||
| 1538 | # CONFIG_CRYPTO_PCBC is not set | ||
| 1539 | # CONFIG_CRYPTO_XTS is not set | ||
| 1540 | |||
| 1541 | # | ||
| 1542 | # Hash modes | ||
| 1543 | # | ||
| 1370 | CONFIG_CRYPTO_HMAC=y | 1544 | CONFIG_CRYPTO_HMAC=y |
| 1371 | # CONFIG_CRYPTO_XCBC is not set | 1545 | # CONFIG_CRYPTO_XCBC is not set |
| 1372 | CONFIG_CRYPTO_NULL=m | 1546 | |
| 1547 | # | ||
| 1548 | # Digest | ||
| 1549 | # | ||
| 1550 | CONFIG_CRYPTO_CRC32C=m | ||
| 1373 | CONFIG_CRYPTO_MD4=m | 1551 | CONFIG_CRYPTO_MD4=m |
| 1374 | CONFIG_CRYPTO_MD5=y | 1552 | CONFIG_CRYPTO_MD5=y |
| 1553 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
| 1554 | # CONFIG_CRYPTO_RMD128 is not set | ||
| 1555 | # CONFIG_CRYPTO_RMD160 is not set | ||
| 1556 | # CONFIG_CRYPTO_RMD256 is not set | ||
| 1557 | # CONFIG_CRYPTO_RMD320 is not set | ||
| 1375 | CONFIG_CRYPTO_SHA1=y | 1558 | CONFIG_CRYPTO_SHA1=y |
| 1376 | CONFIG_CRYPTO_SHA256=m | 1559 | CONFIG_CRYPTO_SHA256=m |
| 1377 | CONFIG_CRYPTO_SHA512=m | 1560 | CONFIG_CRYPTO_SHA512=m |
| 1378 | CONFIG_CRYPTO_WP512=m | ||
| 1379 | CONFIG_CRYPTO_TGR192=m | 1561 | CONFIG_CRYPTO_TGR192=m |
| 1380 | # CONFIG_CRYPTO_GF128MUL is not set | 1562 | CONFIG_CRYPTO_WP512=m |
| 1381 | # CONFIG_CRYPTO_ECB is not set | 1563 | |
| 1382 | CONFIG_CRYPTO_CBC=y | 1564 | # |
| 1383 | # CONFIG_CRYPTO_PCBC is not set | 1565 | # Ciphers |
| 1384 | # CONFIG_CRYPTO_LRW is not set | 1566 | # |
| 1385 | # CONFIG_CRYPTO_XTS is not set | ||
| 1386 | # CONFIG_CRYPTO_CRYPTD is not set | ||
| 1387 | CONFIG_CRYPTO_DES=y | ||
| 1388 | # CONFIG_CRYPTO_FCRYPT is not set | ||
| 1389 | CONFIG_CRYPTO_BLOWFISH=m | ||
| 1390 | CONFIG_CRYPTO_TWOFISH=m | ||
| 1391 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
| 1392 | CONFIG_CRYPTO_SERPENT=m | ||
| 1393 | CONFIG_CRYPTO_AES=m | 1567 | CONFIG_CRYPTO_AES=m |
| 1568 | CONFIG_CRYPTO_ANUBIS=m | ||
| 1569 | CONFIG_CRYPTO_ARC4=m | ||
| 1570 | CONFIG_CRYPTO_BLOWFISH=m | ||
| 1571 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
| 1394 | CONFIG_CRYPTO_CAST5=m | 1572 | CONFIG_CRYPTO_CAST5=m |
| 1395 | CONFIG_CRYPTO_CAST6=m | 1573 | CONFIG_CRYPTO_CAST6=m |
| 1396 | CONFIG_CRYPTO_TEA=m | 1574 | CONFIG_CRYPTO_DES=y |
| 1397 | CONFIG_CRYPTO_ARC4=m | 1575 | # CONFIG_CRYPTO_FCRYPT is not set |
| 1398 | CONFIG_CRYPTO_KHAZAD=m | 1576 | CONFIG_CRYPTO_KHAZAD=m |
| 1399 | CONFIG_CRYPTO_ANUBIS=m | 1577 | # CONFIG_CRYPTO_SALSA20 is not set |
| 1400 | # CONFIG_CRYPTO_SEED is not set | 1578 | # CONFIG_CRYPTO_SEED is not set |
| 1579 | CONFIG_CRYPTO_SERPENT=m | ||
| 1580 | CONFIG_CRYPTO_TEA=m | ||
| 1581 | CONFIG_CRYPTO_TWOFISH=m | ||
| 1582 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
| 1583 | |||
| 1584 | # | ||
| 1585 | # Compression | ||
| 1586 | # | ||
| 1401 | CONFIG_CRYPTO_DEFLATE=y | 1587 | CONFIG_CRYPTO_DEFLATE=y |
| 1402 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1588 | # CONFIG_CRYPTO_LZO is not set |
| 1403 | CONFIG_CRYPTO_CRC32C=m | 1589 | |
| 1404 | # CONFIG_CRYPTO_CAMELLIA is not set | 1590 | # |
| 1405 | CONFIG_CRYPTO_TEST=m | 1591 | # Random Number Generation |
| 1406 | # CONFIG_CRYPTO_AUTHENC is not set | 1592 | # |
| 1593 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
| 1407 | # CONFIG_CRYPTO_HW is not set | 1594 | # CONFIG_CRYPTO_HW is not set |
| 1408 | 1595 | ||
| 1409 | # | 1596 | # |
| 1410 | # Library routines | 1597 | # Library routines |
| 1411 | # | 1598 | # |
| 1412 | CONFIG_BITREVERSE=y | 1599 | CONFIG_BITREVERSE=y |
| 1600 | CONFIG_GENERIC_FIND_LAST_BIT=y | ||
| 1413 | CONFIG_CRC_CCITT=m | 1601 | CONFIG_CRC_CCITT=m |
| 1414 | # CONFIG_CRC16 is not set | 1602 | # CONFIG_CRC16 is not set |
| 1603 | # CONFIG_CRC_T10DIF is not set | ||
| 1415 | # CONFIG_CRC_ITU_T is not set | 1604 | # CONFIG_CRC_ITU_T is not set |
| 1416 | CONFIG_CRC32=y | 1605 | CONFIG_CRC32=y |
| 1417 | # CONFIG_CRC7 is not set | 1606 | # CONFIG_CRC7 is not set |
diff --git a/arch/parisc/hpux/fs.c b/arch/parisc/hpux/fs.c index bd9a4db3bd4c..5cbe9f9e5d9e 100644 --- a/arch/parisc/hpux/fs.c +++ b/arch/parisc/hpux/fs.c | |||
| @@ -137,7 +137,6 @@ int hpux_getdents(unsigned int fd, struct hpux_dirent __user *dirent, unsigned i | |||
| 137 | error = count - buf.count; | 137 | error = count - buf.count; |
| 138 | } | 138 | } |
| 139 | 139 | ||
| 140 | out_putf: | ||
| 141 | fput(file); | 140 | fput(file); |
| 142 | out: | 141 | out: |
| 143 | return error; | 142 | return error; |
diff --git a/arch/parisc/include/asm/assembly.h b/arch/parisc/include/asm/assembly.h index ffb208840ecc..89fb40005e3f 100644 --- a/arch/parisc/include/asm/assembly.h +++ b/arch/parisc/include/asm/assembly.h | |||
| @@ -79,6 +79,7 @@ | |||
| 79 | 79 | ||
| 80 | #include <asm/asm-offsets.h> | 80 | #include <asm/asm-offsets.h> |
| 81 | #include <asm/page.h> | 81 | #include <asm/page.h> |
| 82 | #include <asm/types.h> | ||
| 82 | 83 | ||
| 83 | #include <asm/asmregs.h> | 84 | #include <asm/asmregs.h> |
| 84 | 85 | ||
| @@ -129,27 +130,27 @@ | |||
| 129 | 130 | ||
| 130 | /* Shift Left - note the r and t can NOT be the same! */ | 131 | /* Shift Left - note the r and t can NOT be the same! */ |
| 131 | .macro shl r, sa, t | 132 | .macro shl r, sa, t |
| 132 | dep,z \r, 31-\sa, 32-\sa, \t | 133 | dep,z \r, 31-(\sa), 32-(\sa), \t |
| 133 | .endm | 134 | .endm |
| 134 | 135 | ||
| 135 | /* The PA 2.0 shift left */ | 136 | /* The PA 2.0 shift left */ |
| 136 | .macro shlw r, sa, t | 137 | .macro shlw r, sa, t |
| 137 | depw,z \r, 31-\sa, 32-\sa, \t | 138 | depw,z \r, 31-(\sa), 32-(\sa), \t |
| 138 | .endm | 139 | .endm |
| 139 | 140 | ||
| 140 | /* And the PA 2.0W shift left */ | 141 | /* And the PA 2.0W shift left */ |
| 141 | .macro shld r, sa, t | 142 | .macro shld r, sa, t |
| 142 | depd,z \r, 63-\sa, 64-\sa, \t | 143 | depd,z \r, 63-(\sa), 64-(\sa), \t |
| 143 | .endm | 144 | .endm |
| 144 | 145 | ||
| 145 | /* Shift Right - note the r and t can NOT be the same! */ | 146 | /* Shift Right - note the r and t can NOT be the same! */ |
| 146 | .macro shr r, sa, t | 147 | .macro shr r, sa, t |
| 147 | extru \r, 31-\sa, 32-\sa, \t | 148 | extru \r, 31-(\sa), 32-(\sa), \t |
| 148 | .endm | 149 | .endm |
| 149 | 150 | ||
| 150 | /* pa20w version of shift right */ | 151 | /* pa20w version of shift right */ |
| 151 | .macro shrd r, sa, t | 152 | .macro shrd r, sa, t |
| 152 | extrd,u \r, 63-\sa, 64-\sa, \t | 153 | extrd,u \r, 63-(\sa), 64-(\sa), \t |
| 153 | .endm | 154 | .endm |
| 154 | 155 | ||
| 155 | /* load 32-bit 'value' into 'reg' compensating for the ldil | 156 | /* load 32-bit 'value' into 'reg' compensating for the ldil |
diff --git a/arch/parisc/include/asm/io.h b/arch/parisc/include/asm/io.h index d3031d1f9d03..1f6d2ae7aba5 100644 --- a/arch/parisc/include/asm/io.h +++ b/arch/parisc/include/asm/io.h | |||
| @@ -174,15 +174,48 @@ static inline void __raw_writeq(unsigned long long b, volatile void __iomem *add | |||
| 174 | *(volatile unsigned long long __force *) addr = b; | 174 | *(volatile unsigned long long __force *) addr = b; |
| 175 | } | 175 | } |
| 176 | 176 | ||
| 177 | /* readb can never be const, so use __fswab instead of le*_to_cpu */ | 177 | static inline unsigned char readb(const volatile void __iomem *addr) |
| 178 | #define readb(addr) __raw_readb(addr) | 178 | { |
| 179 | #define readw(addr) le16_to_cpu(__raw_readw(addr)) | 179 | return __raw_readb(addr); |
| 180 | #define readl(addr) le32_to_cpu(__raw_readl(addr)) | 180 | } |
| 181 | #define readq(addr) le64_to_cpu(__raw_readq(addr)) | 181 | static inline unsigned short readw(const volatile void __iomem *addr) |
| 182 | #define writeb(b, addr) __raw_writeb(b, addr) | 182 | { |
| 183 | #define writew(b, addr) __raw_writew(cpu_to_le16(b), addr) | 183 | return le16_to_cpu(__raw_readw(addr)); |
| 184 | #define writel(b, addr) __raw_writel(cpu_to_le32(b), addr) | 184 | } |
| 185 | #define writeq(b, addr) __raw_writeq(cpu_to_le64(b), addr) | 185 | static inline unsigned int readl(const volatile void __iomem *addr) |
| 186 | { | ||
| 187 | return le32_to_cpu(__raw_readl(addr)); | ||
| 188 | } | ||
| 189 | static inline unsigned long long readq(const volatile void __iomem *addr) | ||
| 190 | { | ||
| 191 | return le64_to_cpu(__raw_readq(addr)); | ||
| 192 | } | ||
| 193 | |||
| 194 | static inline void writeb(unsigned char b, volatile void __iomem *addr) | ||
| 195 | { | ||
| 196 | __raw_writeb(b, addr); | ||
| 197 | } | ||
| 198 | static inline void writew(unsigned short w, volatile void __iomem *addr) | ||
| 199 | { | ||
| 200 | __raw_writew(cpu_to_le16(w), addr); | ||
| 201 | } | ||
| 202 | static inline void writel(unsigned int l, volatile void __iomem *addr) | ||
| 203 | { | ||
| 204 | __raw_writel(cpu_to_le32(l), addr); | ||
| 205 | } | ||
| 206 | static inline void writeq(unsigned long long q, volatile void __iomem *addr) | ||
| 207 | { | ||
| 208 | __raw_writeq(cpu_to_le64(q), addr); | ||
| 209 | } | ||
| 210 | |||
| 211 | #define readb readb | ||
| 212 | #define readw readw | ||
| 213 | #define readl readl | ||
| 214 | #define readq readq | ||
| 215 | #define writeb writeb | ||
| 216 | #define writew writew | ||
| 217 | #define writel writel | ||
| 218 | #define writeq writeq | ||
| 186 | 219 | ||
| 187 | #define readb_relaxed(addr) readb(addr) | 220 | #define readb_relaxed(addr) readb(addr) |
| 188 | #define readw_relaxed(addr) readw(addr) | 221 | #define readw_relaxed(addr) readw(addr) |
diff --git a/arch/parisc/include/asm/irq.h b/arch/parisc/include/asm/irq.h index 399c81981ed5..dfa26b67f919 100644 --- a/arch/parisc/include/asm/irq.h +++ b/arch/parisc/include/asm/irq.h | |||
| @@ -49,7 +49,7 @@ extern unsigned long txn_alloc_addr(unsigned int); | |||
| 49 | extern unsigned long txn_affinity_addr(unsigned int irq, int cpu); | 49 | extern unsigned long txn_affinity_addr(unsigned int irq, int cpu); |
| 50 | 50 | ||
| 51 | extern int cpu_claim_irq(unsigned int irq, struct irq_chip *, void *); | 51 | extern int cpu_claim_irq(unsigned int irq, struct irq_chip *, void *); |
| 52 | extern int cpu_check_affinity(unsigned int irq, cpumask_t *dest); | 52 | extern int cpu_check_affinity(unsigned int irq, const struct cpumask *dest); |
| 53 | 53 | ||
| 54 | /* soft power switch support (power.c) */ | 54 | /* soft power switch support (power.c) */ |
| 55 | extern struct tasklet_struct power_tasklet; | 55 | extern struct tasklet_struct power_tasklet; |
diff --git a/arch/parisc/include/asm/uaccess.h b/arch/parisc/include/asm/uaccess.h index 1c6dbb6f6e56..cd4c0b2a8e70 100644 --- a/arch/parisc/include/asm/uaccess.h +++ b/arch/parisc/include/asm/uaccess.h | |||
| @@ -241,6 +241,7 @@ unsigned long copy_in_user(void __user *dst, const void __user *src, unsigned lo | |||
| 241 | #define __copy_to_user_inatomic __copy_to_user | 241 | #define __copy_to_user_inatomic __copy_to_user |
| 242 | #define __copy_from_user_inatomic __copy_from_user | 242 | #define __copy_from_user_inatomic __copy_from_user |
| 243 | 243 | ||
| 244 | struct pt_regs; | ||
| 244 | int fixup_exception(struct pt_regs *regs); | 245 | int fixup_exception(struct pt_regs *regs); |
| 245 | 246 | ||
| 246 | #endif /* __PARISC_UACCESS_H */ | 247 | #endif /* __PARISC_UACCESS_H */ |
diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c index 5259d8c20676..837530ea32e7 100644 --- a/arch/parisc/kernel/cache.c +++ b/arch/parisc/kernel/cache.c | |||
| @@ -551,10 +551,7 @@ void flush_cache_range(struct vm_area_struct *vma, | |||
| 551 | { | 551 | { |
| 552 | int sr3; | 552 | int sr3; |
| 553 | 553 | ||
| 554 | if (!vma->vm_mm->context) { | 554 | BUG_ON(!vma->vm_mm->context); |
| 555 | BUG(); | ||
| 556 | return; | ||
| 557 | } | ||
| 558 | 555 | ||
| 559 | sr3 = mfsp(3); | 556 | sr3 = mfsp(3); |
| 560 | if (vma->vm_mm->context == sr3) { | 557 | if (vma->vm_mm->context == sr3) { |
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S index d1fa4edd2d80..0db9fdcb7709 100644 --- a/arch/parisc/kernel/entry.S +++ b/arch/parisc/kernel/entry.S | |||
| @@ -368,7 +368,7 @@ | |||
| 368 | * abstractions for the macros */ | 368 | * abstractions for the macros */ |
| 369 | .macro EXTR reg1,start,length,reg2 | 369 | .macro EXTR reg1,start,length,reg2 |
| 370 | #ifdef CONFIG_64BIT | 370 | #ifdef CONFIG_64BIT |
| 371 | extrd,u \reg1,32+\start,\length,\reg2 | 371 | extrd,u \reg1,32+(\start),\length,\reg2 |
| 372 | #else | 372 | #else |
| 373 | extrw,u \reg1,\start,\length,\reg2 | 373 | extrw,u \reg1,\start,\length,\reg2 |
| 374 | #endif | 374 | #endif |
| @@ -376,7 +376,7 @@ | |||
| 376 | 376 | ||
| 377 | .macro DEP reg1,start,length,reg2 | 377 | .macro DEP reg1,start,length,reg2 |
| 378 | #ifdef CONFIG_64BIT | 378 | #ifdef CONFIG_64BIT |
| 379 | depd \reg1,32+\start,\length,\reg2 | 379 | depd \reg1,32+(\start),\length,\reg2 |
| 380 | #else | 380 | #else |
| 381 | depw \reg1,\start,\length,\reg2 | 381 | depw \reg1,\start,\length,\reg2 |
| 382 | #endif | 382 | #endif |
| @@ -384,7 +384,7 @@ | |||
| 384 | 384 | ||
| 385 | .macro DEPI val,start,length,reg | 385 | .macro DEPI val,start,length,reg |
| 386 | #ifdef CONFIG_64BIT | 386 | #ifdef CONFIG_64BIT |
| 387 | depdi \val,32+\start,\length,\reg | 387 | depdi \val,32+(\start),\length,\reg |
| 388 | #else | 388 | #else |
| 389 | depwi \val,\start,\length,\reg | 389 | depwi \val,\start,\length,\reg |
| 390 | #endif | 390 | #endif |
diff --git a/arch/parisc/kernel/firmware.c b/arch/parisc/kernel/firmware.c index 03f26bd75bd8..f6d241238a78 100644 --- a/arch/parisc/kernel/firmware.c +++ b/arch/parisc/kernel/firmware.c | |||
| @@ -151,7 +151,7 @@ static void convert_to_wide(unsigned long *addr) | |||
| 151 | } | 151 | } |
| 152 | 152 | ||
| 153 | #ifdef CONFIG_64BIT | 153 | #ifdef CONFIG_64BIT |
| 154 | void __init set_firmware_width_unlocked(void) | 154 | void __cpuinit set_firmware_width_unlocked(void) |
| 155 | { | 155 | { |
| 156 | int ret; | 156 | int ret; |
| 157 | 157 | ||
| @@ -168,7 +168,7 @@ void __init set_firmware_width_unlocked(void) | |||
| 168 | * This function must be called before any pdc_* function that uses the | 168 | * This function must be called before any pdc_* function that uses the |
| 169 | * convert_to_wide function. | 169 | * convert_to_wide function. |
| 170 | */ | 170 | */ |
| 171 | void __init set_firmware_width(void) | 171 | void __cpuinit set_firmware_width(void) |
| 172 | { | 172 | { |
| 173 | unsigned long flags; | 173 | unsigned long flags; |
| 174 | spin_lock_irqsave(&pdc_lock, flags); | 174 | spin_lock_irqsave(&pdc_lock, flags); |
| @@ -176,11 +176,11 @@ void __init set_firmware_width(void) | |||
| 176 | spin_unlock_irqrestore(&pdc_lock, flags); | 176 | spin_unlock_irqrestore(&pdc_lock, flags); |
| 177 | } | 177 | } |
| 178 | #else | 178 | #else |
| 179 | void __init set_firmware_width_unlocked(void) { | 179 | void __cpuinit set_firmware_width_unlocked(void) { |
| 180 | return; | 180 | return; |
| 181 | } | 181 | } |
| 182 | 182 | ||
| 183 | void __init set_firmware_width(void) { | 183 | void __cpuinit set_firmware_width(void) { |
| 184 | return; | 184 | return; |
| 185 | } | 185 | } |
| 186 | #endif /*CONFIG_64BIT*/ | 186 | #endif /*CONFIG_64BIT*/ |
| @@ -302,7 +302,7 @@ int pdc_chassis_warn(unsigned long *warn) | |||
| 302 | return retval; | 302 | return retval; |
| 303 | } | 303 | } |
| 304 | 304 | ||
| 305 | int __init pdc_coproc_cfg_unlocked(struct pdc_coproc_cfg *pdc_coproc_info) | 305 | int __cpuinit pdc_coproc_cfg_unlocked(struct pdc_coproc_cfg *pdc_coproc_info) |
| 306 | { | 306 | { |
| 307 | int ret; | 307 | int ret; |
| 308 | 308 | ||
| @@ -323,7 +323,7 @@ int __init pdc_coproc_cfg_unlocked(struct pdc_coproc_cfg *pdc_coproc_info) | |||
| 323 | * This PDC call returns the presence and status of all the coprocessors | 323 | * This PDC call returns the presence and status of all the coprocessors |
| 324 | * attached to the processor. | 324 | * attached to the processor. |
| 325 | */ | 325 | */ |
| 326 | int __init pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info) | 326 | int __cpuinit pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info) |
| 327 | { | 327 | { |
| 328 | int ret; | 328 | int ret; |
| 329 | unsigned long flags; | 329 | unsigned long flags; |
diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c index 49482806863f..2b5f5915dd1d 100644 --- a/arch/parisc/kernel/irq.c +++ b/arch/parisc/kernel/irq.c | |||
| @@ -112,7 +112,7 @@ void cpu_end_irq(unsigned int irq) | |||
| 112 | } | 112 | } |
| 113 | 113 | ||
| 114 | #ifdef CONFIG_SMP | 114 | #ifdef CONFIG_SMP |
| 115 | int cpu_check_affinity(unsigned int irq, cpumask_t *dest) | 115 | int cpu_check_affinity(unsigned int irq, const struct cpumask *dest) |
| 116 | { | 116 | { |
| 117 | int cpu_dest; | 117 | int cpu_dest; |
| 118 | 118 | ||
| @@ -120,23 +120,25 @@ int cpu_check_affinity(unsigned int irq, cpumask_t *dest) | |||
| 120 | if (CHECK_IRQ_PER_CPU(irq)) { | 120 | if (CHECK_IRQ_PER_CPU(irq)) { |
| 121 | /* Bad linux design decision. The mask has already | 121 | /* Bad linux design decision. The mask has already |
| 122 | * been set; we must reset it */ | 122 | * been set; we must reset it */ |
| 123 | cpumask_setall(irq_desc[irq].affinity); | 123 | cpumask_setall(&irq_desc[irq].affinity); |
| 124 | return -EINVAL; | 124 | return -EINVAL; |
| 125 | } | 125 | } |
| 126 | 126 | ||
| 127 | /* whatever mask they set, we just allow one CPU */ | 127 | /* whatever mask they set, we just allow one CPU */ |
| 128 | cpu_dest = first_cpu(*dest); | 128 | cpu_dest = first_cpu(*dest); |
| 129 | *dest = cpumask_of_cpu(cpu_dest); | ||
| 130 | 129 | ||
| 131 | return 0; | 130 | return cpu_dest; |
| 132 | } | 131 | } |
| 133 | 132 | ||
| 134 | static void cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest) | 133 | static void cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest) |
| 135 | { | 134 | { |
| 136 | if (cpu_check_affinity(irq, dest)) | 135 | int cpu_dest; |
| 136 | |||
| 137 | cpu_dest = cpu_check_affinity(irq, dest); | ||
| 138 | if (cpu_dest < 0) | ||
| 137 | return; | 139 | return; |
| 138 | 140 | ||
| 139 | cpumask_copy(irq_desc[irq].affinity, dest); | 141 | cpumask_copy(&irq_desc[irq].affinity, dest); |
| 140 | } | 142 | } |
| 141 | #endif | 143 | #endif |
| 142 | 144 | ||
| @@ -295,7 +297,7 @@ int txn_alloc_irq(unsigned int bits_wide) | |||
| 295 | unsigned long txn_affinity_addr(unsigned int irq, int cpu) | 297 | unsigned long txn_affinity_addr(unsigned int irq, int cpu) |
| 296 | { | 298 | { |
| 297 | #ifdef CONFIG_SMP | 299 | #ifdef CONFIG_SMP |
| 298 | cpumask_copy(irq_desc[irq].affinity, cpumask_of(cpu)); | 300 | cpumask_copy(&irq_desc[irq].affinity, cpumask_of(cpu)); |
| 299 | #endif | 301 | #endif |
| 300 | 302 | ||
| 301 | return per_cpu(cpu_data, cpu).txn_addr; | 303 | return per_cpu(cpu_data, cpu).txn_addr; |
| @@ -352,7 +354,7 @@ void do_cpu_irq_mask(struct pt_regs *regs) | |||
| 352 | irq = eirr_to_irq(eirr_val); | 354 | irq = eirr_to_irq(eirr_val); |
| 353 | 355 | ||
| 354 | #ifdef CONFIG_SMP | 356 | #ifdef CONFIG_SMP |
| 355 | cpumask_copy(&dest, irq_desc[irq].affinity); | 357 | cpumask_copy(&dest, &irq_desc[irq].affinity); |
| 356 | if (CHECK_IRQ_PER_CPU(irq_desc[irq].status) && | 358 | if (CHECK_IRQ_PER_CPU(irq_desc[irq].status) && |
| 357 | !cpu_isset(smp_processor_id(), dest)) { | 359 | !cpu_isset(smp_processor_id(), dest)) { |
| 358 | int cpu = first_cpu(dest); | 360 | int cpu = first_cpu(dest); |
diff --git a/arch/parisc/kernel/pci-dma.c b/arch/parisc/kernel/pci-dma.c index df47895db828..7d927eac932b 100644 --- a/arch/parisc/kernel/pci-dma.c +++ b/arch/parisc/kernel/pci-dma.c | |||
| @@ -447,10 +447,7 @@ static void pa11_dma_free_consistent (struct device *dev, size_t size, void *vad | |||
| 447 | 447 | ||
| 448 | static dma_addr_t pa11_dma_map_single(struct device *dev, void *addr, size_t size, enum dma_data_direction direction) | 448 | static dma_addr_t pa11_dma_map_single(struct device *dev, void *addr, size_t size, enum dma_data_direction direction) |
| 449 | { | 449 | { |
| 450 | if (direction == DMA_NONE) { | 450 | BUG_ON(direction == DMA_NONE); |
| 451 | printk(KERN_ERR "pa11_dma_map_single(PCI_DMA_NONE) called by %p\n", __builtin_return_address(0)); | ||
| 452 | BUG(); | ||
| 453 | } | ||
| 454 | 451 | ||
| 455 | flush_kernel_dcache_range((unsigned long) addr, size); | 452 | flush_kernel_dcache_range((unsigned long) addr, size); |
| 456 | return virt_to_phys(addr); | 453 | return virt_to_phys(addr); |
| @@ -458,10 +455,7 @@ static dma_addr_t pa11_dma_map_single(struct device *dev, void *addr, size_t siz | |||
| 458 | 455 | ||
| 459 | static void pa11_dma_unmap_single(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction direction) | 456 | static void pa11_dma_unmap_single(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction direction) |
| 460 | { | 457 | { |
| 461 | if (direction == DMA_NONE) { | 458 | BUG_ON(direction == DMA_NONE); |
| 462 | printk(KERN_ERR "pa11_dma_unmap_single(PCI_DMA_NONE) called by %p\n", __builtin_return_address(0)); | ||
| 463 | BUG(); | ||
| 464 | } | ||
| 465 | 459 | ||
| 466 | if (direction == DMA_TO_DEVICE) | 460 | if (direction == DMA_TO_DEVICE) |
| 467 | return; | 461 | return; |
| @@ -480,8 +474,7 @@ static int pa11_dma_map_sg(struct device *dev, struct scatterlist *sglist, int n | |||
| 480 | { | 474 | { |
| 481 | int i; | 475 | int i; |
| 482 | 476 | ||
| 483 | if (direction == DMA_NONE) | 477 | BUG_ON(direction == DMA_NONE); |
| 484 | BUG(); | ||
| 485 | 478 | ||
| 486 | for (i = 0; i < nents; i++, sglist++ ) { | 479 | for (i = 0; i < nents; i++, sglist++ ) { |
| 487 | unsigned long vaddr = sg_virt_addr(sglist); | 480 | unsigned long vaddr = sg_virt_addr(sglist); |
| @@ -496,8 +489,7 @@ static void pa11_dma_unmap_sg(struct device *dev, struct scatterlist *sglist, in | |||
| 496 | { | 489 | { |
| 497 | int i; | 490 | int i; |
| 498 | 491 | ||
| 499 | if (direction == DMA_NONE) | 492 | BUG_ON(direction == DMA_NONE); |
| 500 | BUG(); | ||
| 501 | 493 | ||
| 502 | if (direction == DMA_TO_DEVICE) | 494 | if (direction == DMA_TO_DEVICE) |
| 503 | return; | 495 | return; |
| @@ -511,16 +503,14 @@ static void pa11_dma_unmap_sg(struct device *dev, struct scatterlist *sglist, in | |||
| 511 | 503 | ||
| 512 | static void pa11_dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction) | 504 | static void pa11_dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction) |
| 513 | { | 505 | { |
| 514 | if (direction == DMA_NONE) | 506 | BUG_ON(direction == DMA_NONE); |
| 515 | BUG(); | ||
| 516 | 507 | ||
| 517 | flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size); | 508 | flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size); |
| 518 | } | 509 | } |
| 519 | 510 | ||
| 520 | static void pa11_dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction) | 511 | static void pa11_dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction) |
| 521 | { | 512 | { |
| 522 | if (direction == DMA_NONE) | 513 | BUG_ON(direction == DMA_NONE); |
| 523 | BUG(); | ||
| 524 | 514 | ||
| 525 | flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size); | 515 | flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size); |
| 526 | } | 516 | } |
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c index 7c155c254e72..9d704d9831d1 100644 --- a/arch/parisc/mm/init.c +++ b/arch/parisc/mm/init.c | |||
| @@ -304,10 +304,8 @@ static void __init setup_bootmem(void) | |||
| 304 | */ | 304 | */ |
| 305 | max_low_pfn = max_pfn; | 305 | max_low_pfn = max_pfn; |
| 306 | 306 | ||
| 307 | if ((bootmap_pfn - bootmap_start_pfn) != bootmap_pages) { | 307 | /* bootmap sizing messed up? */ |
| 308 | printk(KERN_WARNING "WARNING! bootmap sizing is messed up!\n"); | 308 | BUG_ON((bootmap_pfn - bootmap_start_pfn) != bootmap_pages); |
| 309 | BUG(); | ||
| 310 | } | ||
| 311 | 309 | ||
| 312 | /* reserve PAGE0 pdc memory, kernel text/data/bss & bootmap */ | 310 | /* reserve PAGE0 pdc memory, kernel text/data/bss & bootmap */ |
| 313 | 311 | ||
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c index 54961c0b2c73..ef8b30d577bd 100644 --- a/drivers/ata/ata_piix.c +++ b/drivers/ata/ata_piix.c | |||
| @@ -1289,6 +1289,39 @@ static const int *__devinit piix_init_sata_map(struct pci_dev *pdev, | |||
| 1289 | return map; | 1289 | return map; |
| 1290 | } | 1290 | } |
| 1291 | 1291 | ||
| 1292 | static bool piix_no_sidpr(struct ata_host *host) | ||
| 1293 | { | ||
| 1294 | struct pci_dev *pdev = to_pci_dev(host->dev); | ||
| 1295 | |||
| 1296 | /* | ||
| 1297 | * Samsung DB-P70 only has three ATA ports exposed and | ||
| 1298 | * curiously the unconnected first port reports link online | ||
| 1299 | * while not responding to SRST protocol causing excessive | ||
| 1300 | * detection delay. | ||
| 1301 | * | ||
| 1302 | * Unfortunately, the system doesn't carry enough DMI | ||
| 1303 | * information to identify the machine but does have subsystem | ||
| 1304 | * vendor and device set. As it's unclear whether the | ||
| 1305 | * subsystem vendor/device is used only for this specific | ||
| 1306 | * board, the port can't be disabled solely with the | ||
| 1307 | * information; however, turning off SIDPR access works around | ||
| 1308 | * the problem. Turn it off. | ||
| 1309 | * | ||
| 1310 | * This problem is reported in bnc#441240. | ||
| 1311 | * | ||
| 1312 | * https://bugzilla.novell.com/show_bug.cgi?id=441420 | ||
| 1313 | */ | ||
| 1314 | if (pdev->vendor == PCI_VENDOR_ID_INTEL && pdev->device == 0x2920 && | ||
| 1315 | pdev->subsystem_vendor == PCI_VENDOR_ID_SAMSUNG && | ||
| 1316 | pdev->subsystem_device == 0xb049) { | ||
| 1317 | dev_printk(KERN_WARNING, host->dev, | ||
| 1318 | "Samsung DB-P70 detected, disabling SIDPR\n"); | ||
| 1319 | return true; | ||
| 1320 | } | ||
| 1321 | |||
| 1322 | return false; | ||
| 1323 | } | ||
| 1324 | |||
| 1292 | static int __devinit piix_init_sidpr(struct ata_host *host) | 1325 | static int __devinit piix_init_sidpr(struct ata_host *host) |
| 1293 | { | 1326 | { |
| 1294 | struct pci_dev *pdev = to_pci_dev(host->dev); | 1327 | struct pci_dev *pdev = to_pci_dev(host->dev); |
| @@ -1302,6 +1335,10 @@ static int __devinit piix_init_sidpr(struct ata_host *host) | |||
| 1302 | if (hpriv->map[i] == IDE) | 1335 | if (hpriv->map[i] == IDE) |
| 1303 | return 0; | 1336 | return 0; |
| 1304 | 1337 | ||
| 1338 | /* is it blacklisted? */ | ||
| 1339 | if (piix_no_sidpr(host)) | ||
| 1340 | return 0; | ||
| 1341 | |||
| 1305 | if (!(host->ports[0]->flags & PIIX_FLAG_SIDPR)) | 1342 | if (!(host->ports[0]->flags & PIIX_FLAG_SIDPR)) |
| 1306 | return 0; | 1343 | return 0; |
| 1307 | 1344 | ||
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c index 714cb046b594..f93dc029dfde 100644 --- a/drivers/ata/libata-sff.c +++ b/drivers/ata/libata-sff.c | |||
| @@ -2066,6 +2066,7 @@ static int ata_bus_softreset(struct ata_port *ap, unsigned int devmask, | |||
| 2066 | iowrite8(ap->ctl | ATA_SRST, ioaddr->ctl_addr); | 2066 | iowrite8(ap->ctl | ATA_SRST, ioaddr->ctl_addr); |
| 2067 | udelay(20); /* FIXME: flush */ | 2067 | udelay(20); /* FIXME: flush */ |
| 2068 | iowrite8(ap->ctl, ioaddr->ctl_addr); | 2068 | iowrite8(ap->ctl, ioaddr->ctl_addr); |
| 2069 | ap->last_ctl = ap->ctl; | ||
| 2069 | 2070 | ||
| 2070 | /* wait the port to become ready */ | 2071 | /* wait the port to become ready */ |
| 2071 | return ata_sff_wait_after_reset(&ap->link, devmask, deadline); | 2072 | return ata_sff_wait_after_reset(&ap->link, devmask, deadline); |
| @@ -2190,8 +2191,10 @@ void ata_sff_postreset(struct ata_link *link, unsigned int *classes) | |||
| 2190 | } | 2191 | } |
| 2191 | 2192 | ||
| 2192 | /* set up device control */ | 2193 | /* set up device control */ |
| 2193 | if (ap->ioaddr.ctl_addr) | 2194 | if (ap->ioaddr.ctl_addr) { |
| 2194 | iowrite8(ap->ctl, ap->ioaddr.ctl_addr); | 2195 | iowrite8(ap->ctl, ap->ioaddr.ctl_addr); |
| 2196 | ap->last_ctl = ap->ctl; | ||
| 2197 | } | ||
| 2195 | } | 2198 | } |
| 2196 | EXPORT_SYMBOL_GPL(ata_sff_postreset); | 2199 | EXPORT_SYMBOL_GPL(ata_sff_postreset); |
| 2197 | 2200 | ||
| @@ -2534,6 +2537,7 @@ void ata_bus_reset(struct ata_port *ap) | |||
| 2534 | if (ap->flags & (ATA_FLAG_SATA_RESET | ATA_FLAG_SRST)) { | 2537 | if (ap->flags & (ATA_FLAG_SATA_RESET | ATA_FLAG_SRST)) { |
| 2535 | /* set up device control for ATA_FLAG_SATA_RESET */ | 2538 | /* set up device control for ATA_FLAG_SATA_RESET */ |
| 2536 | iowrite8(ap->ctl, ioaddr->ctl_addr); | 2539 | iowrite8(ap->ctl, ioaddr->ctl_addr); |
| 2540 | ap->last_ctl = ap->ctl; | ||
| 2537 | } | 2541 | } |
| 2538 | 2542 | ||
| 2539 | DPRINTK("EXIT\n"); | 2543 | DPRINTK("EXIT\n"); |
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c index 7007edd2d451..74b1080d116d 100644 --- a/drivers/ata/sata_mv.c +++ b/drivers/ata/sata_mv.c | |||
| @@ -2218,12 +2218,13 @@ static irqreturn_t mv_interrupt(int irq, void *dev_instance) | |||
| 2218 | else | 2218 | else |
| 2219 | handled = mv_host_intr(host, pending_irqs); | 2219 | handled = mv_host_intr(host, pending_irqs); |
| 2220 | } | 2220 | } |
| 2221 | spin_unlock(&host->lock); | ||
| 2222 | 2221 | ||
| 2223 | /* for MSI: unmask; interrupt cause bits will retrigger now */ | 2222 | /* for MSI: unmask; interrupt cause bits will retrigger now */ |
| 2224 | if (using_msi) | 2223 | if (using_msi) |
| 2225 | writel(hpriv->main_irq_mask, hpriv->main_irq_mask_addr); | 2224 | writel(hpriv->main_irq_mask, hpriv->main_irq_mask_addr); |
| 2226 | 2225 | ||
| 2226 | spin_unlock(&host->lock); | ||
| 2227 | |||
| 2227 | return IRQ_RETVAL(handled); | 2228 | return IRQ_RETVAL(handled); |
| 2228 | } | 2229 | } |
| 2229 | 2230 | ||
diff --git a/drivers/block/xsysace.c b/drivers/block/xsysace.c index 381d686fc1a3..119be3442f28 100644 --- a/drivers/block/xsysace.c +++ b/drivers/block/xsysace.c | |||
| @@ -489,6 +489,28 @@ static void ace_fsm_dostate(struct ace_device *ace) | |||
| 489 | ace->fsm_state, ace->id_req_count); | 489 | ace->fsm_state, ace->id_req_count); |
| 490 | #endif | 490 | #endif |
| 491 | 491 | ||
| 492 | /* Verify that there is actually a CF in the slot. If not, then | ||
| 493 | * bail out back to the idle state and wake up all the waiters */ | ||
| 494 | status = ace_in32(ace, ACE_STATUS); | ||
| 495 | if ((status & ACE_STATUS_CFDETECT) == 0) { | ||
| 496 | ace->fsm_state = ACE_FSM_STATE_IDLE; | ||
| 497 | ace->media_change = 1; | ||
| 498 | set_capacity(ace->gd, 0); | ||
| 499 | dev_info(ace->dev, "No CF in slot\n"); | ||
| 500 | |||
| 501 | /* Drop all pending requests */ | ||
| 502 | while ((req = elv_next_request(ace->queue)) != NULL) | ||
| 503 | end_request(req, 0); | ||
| 504 | |||
| 505 | /* Drop back to IDLE state and notify waiters */ | ||
| 506 | ace->fsm_state = ACE_FSM_STATE_IDLE; | ||
| 507 | ace->id_result = -EIO; | ||
| 508 | while (ace->id_req_count) { | ||
| 509 | complete(&ace->id_completion); | ||
| 510 | ace->id_req_count--; | ||
| 511 | } | ||
| 512 | } | ||
| 513 | |||
| 492 | switch (ace->fsm_state) { | 514 | switch (ace->fsm_state) { |
| 493 | case ACE_FSM_STATE_IDLE: | 515 | case ACE_FSM_STATE_IDLE: |
| 494 | /* See if there is anything to do */ | 516 | /* See if there is anything to do */ |
diff --git a/drivers/char/agp/parisc-agp.c b/drivers/char/agp/parisc-agp.c index db60539bf67a..699e3422ad93 100644 --- a/drivers/char/agp/parisc-agp.c +++ b/drivers/char/agp/parisc-agp.c | |||
| @@ -359,9 +359,16 @@ fail: | |||
| 359 | return error; | 359 | return error; |
| 360 | } | 360 | } |
| 361 | 361 | ||
| 362 | static struct device *next_device(struct klist_iter *i) { | 362 | static int |
| 363 | struct klist_node * n = klist_next(i); | 363 | find_quicksilver(struct device *dev, void *data) |
| 364 | return n ? container_of(n, struct device, knode_parent) : NULL; | 364 | { |
| 365 | struct parisc_device **lba = data; | ||
| 366 | struct parisc_device *padev = to_parisc_device(dev); | ||
| 367 | |||
| 368 | if (IS_QUICKSILVER(padev)) | ||
| 369 | *lba = padev; | ||
| 370 | |||
| 371 | return 0; | ||
| 365 | } | 372 | } |
| 366 | 373 | ||
| 367 | static int | 374 | static int |
| @@ -372,8 +379,6 @@ parisc_agp_init(void) | |||
| 372 | int err = -1; | 379 | int err = -1; |
| 373 | struct parisc_device *sba = NULL, *lba = NULL; | 380 | struct parisc_device *sba = NULL, *lba = NULL; |
| 374 | struct lba_device *lbadev = NULL; | 381 | struct lba_device *lbadev = NULL; |
| 375 | struct device *dev = NULL; | ||
| 376 | struct klist_iter i; | ||
| 377 | 382 | ||
| 378 | if (!sba_list) | 383 | if (!sba_list) |
| 379 | goto out; | 384 | goto out; |
| @@ -386,13 +391,7 @@ parisc_agp_init(void) | |||
| 386 | } | 391 | } |
| 387 | 392 | ||
| 388 | /* Now search our Pluto for our precious AGP device... */ | 393 | /* Now search our Pluto for our precious AGP device... */ |
| 389 | klist_iter_init(&sba->dev.klist_children, &i); | 394 | device_for_each_child(&sba->dev, &lba, find_quicksilver); |
| 390 | while ((dev = next_device(&i))) { | ||
| 391 | struct parisc_device *padev = to_parisc_device(dev); | ||
| 392 | if (IS_QUICKSILVER(padev)) | ||
| 393 | lba = padev; | ||
| 394 | } | ||
| 395 | klist_iter_exit(&i); | ||
| 396 | 395 | ||
| 397 | if (!lba) { | 396 | if (!lba) { |
| 398 | printk(KERN_INFO DRVPFX "No AGP devices found.\n"); | 397 | printk(KERN_INFO DRVPFX "No AGP devices found.\n"); |
diff --git a/drivers/ide/ide-atapi.c b/drivers/ide/ide-atapi.c index e96c01260598..e9d042dba0e0 100644 --- a/drivers/ide/ide-atapi.c +++ b/drivers/ide/ide-atapi.c | |||
| @@ -140,6 +140,12 @@ static void ide_queue_pc_head(ide_drive_t *drive, struct gendisk *disk, | |||
| 140 | rq->cmd_flags |= REQ_PREEMPT; | 140 | rq->cmd_flags |= REQ_PREEMPT; |
| 141 | rq->buffer = (char *)pc; | 141 | rq->buffer = (char *)pc; |
| 142 | rq->rq_disk = disk; | 142 | rq->rq_disk = disk; |
| 143 | |||
| 144 | if (pc->req_xfer) { | ||
| 145 | rq->data = pc->buf; | ||
| 146 | rq->data_len = pc->req_xfer; | ||
| 147 | } | ||
| 148 | |||
| 143 | memcpy(rq->cmd, pc->c, 12); | 149 | memcpy(rq->cmd, pc->c, 12); |
| 144 | if (drive->media == ide_tape) | 150 | if (drive->media == ide_tape) |
| 145 | rq->cmd[13] = REQ_IDETAPE_PC1; | 151 | rq->cmd[13] = REQ_IDETAPE_PC1; |
| @@ -159,6 +165,12 @@ int ide_queue_pc_tail(ide_drive_t *drive, struct gendisk *disk, | |||
| 159 | rq = blk_get_request(drive->queue, READ, __GFP_WAIT); | 165 | rq = blk_get_request(drive->queue, READ, __GFP_WAIT); |
| 160 | rq->cmd_type = REQ_TYPE_SPECIAL; | 166 | rq->cmd_type = REQ_TYPE_SPECIAL; |
| 161 | rq->buffer = (char *)pc; | 167 | rq->buffer = (char *)pc; |
| 168 | |||
| 169 | if (pc->req_xfer) { | ||
| 170 | rq->data = pc->buf; | ||
| 171 | rq->data_len = pc->req_xfer; | ||
| 172 | } | ||
| 173 | |||
| 162 | memcpy(rq->cmd, pc->c, 12); | 174 | memcpy(rq->cmd, pc->c, 12); |
| 163 | if (drive->media == ide_tape) | 175 | if (drive->media == ide_tape) |
| 164 | rq->cmd[13] = REQ_IDETAPE_PC1; | 176 | rq->cmd[13] = REQ_IDETAPE_PC1; |
diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c index 72ebab0bc755..059c90bb5ad2 100644 --- a/drivers/ide/ide-dma.c +++ b/drivers/ide/ide-dma.c | |||
| @@ -128,6 +128,7 @@ int ide_build_sglist(ide_drive_t *drive, struct request *rq) | |||
| 128 | { | 128 | { |
| 129 | ide_hwif_t *hwif = drive->hwif; | 129 | ide_hwif_t *hwif = drive->hwif; |
| 130 | struct scatterlist *sg = hwif->sg_table; | 130 | struct scatterlist *sg = hwif->sg_table; |
| 131 | int i; | ||
| 131 | 132 | ||
| 132 | ide_map_sg(drive, rq); | 133 | ide_map_sg(drive, rq); |
| 133 | 134 | ||
| @@ -136,8 +137,13 @@ int ide_build_sglist(ide_drive_t *drive, struct request *rq) | |||
| 136 | else | 137 | else |
| 137 | hwif->sg_dma_direction = DMA_TO_DEVICE; | 138 | hwif->sg_dma_direction = DMA_TO_DEVICE; |
| 138 | 139 | ||
| 139 | return dma_map_sg(hwif->dev, sg, hwif->sg_nents, | 140 | i = dma_map_sg(hwif->dev, sg, hwif->sg_nents, hwif->sg_dma_direction); |
| 140 | hwif->sg_dma_direction); | 141 | if (i) { |
| 142 | hwif->orig_sg_nents = hwif->sg_nents; | ||
| 143 | hwif->sg_nents = i; | ||
| 144 | } | ||
| 145 | |||
| 146 | return i; | ||
| 141 | } | 147 | } |
| 142 | EXPORT_SYMBOL_GPL(ide_build_sglist); | 148 | EXPORT_SYMBOL_GPL(ide_build_sglist); |
| 143 | 149 | ||
| @@ -156,7 +162,7 @@ void ide_destroy_dmatable(ide_drive_t *drive) | |||
| 156 | { | 162 | { |
| 157 | ide_hwif_t *hwif = drive->hwif; | 163 | ide_hwif_t *hwif = drive->hwif; |
| 158 | 164 | ||
| 159 | dma_unmap_sg(hwif->dev, hwif->sg_table, hwif->sg_nents, | 165 | dma_unmap_sg(hwif->dev, hwif->sg_table, hwif->orig_sg_nents, |
| 160 | hwif->sg_dma_direction); | 166 | hwif->sg_dma_direction); |
| 161 | } | 167 | } |
| 162 | EXPORT_SYMBOL_GPL(ide_destroy_dmatable); | 168 | EXPORT_SYMBOL_GPL(ide_destroy_dmatable); |
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c index 3eab1c6c9b31..317ec62c33d4 100644 --- a/drivers/ide/ide-floppy.c +++ b/drivers/ide/ide-floppy.c | |||
| @@ -327,8 +327,10 @@ static ide_startstop_t ide_floppy_do_request(ide_drive_t *drive, | |||
| 327 | return ide_stopped; | 327 | return ide_stopped; |
| 328 | } | 328 | } |
| 329 | 329 | ||
| 330 | ide_init_sg_cmd(drive, rq); | 330 | if (blk_fs_request(rq) || pc->req_xfer) { |
| 331 | ide_map_sg(drive, rq); | 331 | ide_init_sg_cmd(drive, rq); |
| 332 | ide_map_sg(drive, rq); | ||
| 333 | } | ||
| 332 | 334 | ||
| 333 | pc->sg = hwif->sg_table; | 335 | pc->sg = hwif->sg_table; |
| 334 | pc->sg_cnt = hwif->sg_nents; | 336 | pc->sg_cnt = hwif->sg_nents; |
diff --git a/drivers/media/dvb/bt8xx/dst.c b/drivers/media/dvb/bt8xx/dst.c index 29e8f1546ab6..fec1d77fa855 100644 --- a/drivers/media/dvb/bt8xx/dst.c +++ b/drivers/media/dvb/bt8xx/dst.c | |||
| @@ -1683,7 +1683,7 @@ static int dst_tune_frontend(struct dvb_frontend* fe, | |||
| 1683 | 1683 | ||
| 1684 | static int dst_get_tuning_algo(struct dvb_frontend *fe) | 1684 | static int dst_get_tuning_algo(struct dvb_frontend *fe) |
| 1685 | { | 1685 | { |
| 1686 | return dst_algo; | 1686 | return dst_algo ? DVBFE_ALGO_HW : DVBFE_ALGO_SW; |
| 1687 | } | 1687 | } |
| 1688 | 1688 | ||
| 1689 | static int dst_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_parameters *p) | 1689 | static int dst_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_parameters *p) |
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c index 843407785083..8dcb3fbf7acd 100644 --- a/drivers/media/dvb/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c | |||
| @@ -1290,9 +1290,6 @@ static int dtv_property_process_set(struct dvb_frontend *fe, | |||
| 1290 | dprintk("%s() Finalised property cache\n", __func__); | 1290 | dprintk("%s() Finalised property cache\n", __func__); |
| 1291 | dtv_property_cache_submit(fe); | 1291 | dtv_property_cache_submit(fe); |
| 1292 | 1292 | ||
| 1293 | /* Request the search algorithm to search */ | ||
| 1294 | fepriv->algo_status |= DVBFE_ALGO_SEARCH_AGAIN; | ||
| 1295 | |||
| 1296 | r |= dvb_frontend_ioctl_legacy(inode, file, FE_SET_FRONTEND, | 1293 | r |= dvb_frontend_ioctl_legacy(inode, file, FE_SET_FRONTEND, |
| 1297 | &fepriv->parameters); | 1294 | &fepriv->parameters); |
| 1298 | break; | 1295 | break; |
| @@ -1717,6 +1714,10 @@ static int dvb_frontend_ioctl_legacy(struct inode *inode, struct file *file, | |||
| 1717 | fepriv->min_delay = (dvb_override_tune_delay * HZ) / 1000; | 1714 | fepriv->min_delay = (dvb_override_tune_delay * HZ) / 1000; |
| 1718 | 1715 | ||
| 1719 | fepriv->state = FESTATE_RETUNE; | 1716 | fepriv->state = FESTATE_RETUNE; |
| 1717 | |||
| 1718 | /* Request the search algorithm to search */ | ||
| 1719 | fepriv->algo_status |= DVBFE_ALGO_SEARCH_AGAIN; | ||
| 1720 | |||
| 1720 | dvb_frontend_wakeup(fe); | 1721 | dvb_frontend_wakeup(fe); |
| 1721 | dvb_frontend_add_event(fe, 0); | 1722 | dvb_frontend_add_event(fe, 0); |
| 1722 | fepriv->status = 0; | 1723 | fepriv->status = 0; |
diff --git a/drivers/media/dvb/frontends/stb0899_algo.c b/drivers/media/dvb/frontends/stb0899_algo.c index a67d1775a43c..2da55ec20392 100644 --- a/drivers/media/dvb/frontends/stb0899_algo.c +++ b/drivers/media/dvb/frontends/stb0899_algo.c | |||
| @@ -156,7 +156,7 @@ static void stb0899_first_subrange(struct stb0899_state *state) | |||
| 156 | } | 156 | } |
| 157 | 157 | ||
| 158 | if (range > 0) | 158 | if (range > 0) |
| 159 | internal->sub_range = MIN(internal->srch_range, range); | 159 | internal->sub_range = min(internal->srch_range, range); |
| 160 | else | 160 | else |
| 161 | internal->sub_range = 0; | 161 | internal->sub_range = 0; |
| 162 | 162 | ||
| @@ -185,7 +185,7 @@ static enum stb0899_status stb0899_check_tmg(struct stb0899_state *state) | |||
| 185 | timing = stb0899_read_reg(state, STB0899_RTF); | 185 | timing = stb0899_read_reg(state, STB0899_RTF); |
| 186 | 186 | ||
| 187 | if (lock >= 42) { | 187 | if (lock >= 42) { |
| 188 | if ((lock > 48) && (ABS(timing) >= 110)) { | 188 | if ((lock > 48) && (abs(timing) >= 110)) { |
| 189 | internal->status = ANALOGCARRIER; | 189 | internal->status = ANALOGCARRIER; |
| 190 | dprintk(state->verbose, FE_DEBUG, 1, "-->ANALOG Carrier !"); | 190 | dprintk(state->verbose, FE_DEBUG, 1, "-->ANALOG Carrier !"); |
| 191 | } else { | 191 | } else { |
| @@ -222,7 +222,7 @@ static enum stb0899_status stb0899_search_tmg(struct stb0899_state *state) | |||
| 222 | index++; | 222 | index++; |
| 223 | derot_freq += index * internal->direction * derot_step; /* next derot zig zag position */ | 223 | derot_freq += index * internal->direction * derot_step; /* next derot zig zag position */ |
| 224 | 224 | ||
| 225 | if (ABS(derot_freq) > derot_limit) | 225 | if (abs(derot_freq) > derot_limit) |
| 226 | next_loop--; | 226 | next_loop--; |
| 227 | 227 | ||
| 228 | if (next_loop) { | 228 | if (next_loop) { |
| @@ -298,7 +298,7 @@ static enum stb0899_status stb0899_search_carrier(struct stb0899_state *state) | |||
| 298 | last_derot_freq = derot_freq; | 298 | last_derot_freq = derot_freq; |
| 299 | derot_freq += index * internal->direction * internal->derot_step; /* next zig zag derotator position */ | 299 | derot_freq += index * internal->direction * internal->derot_step; /* next zig zag derotator position */ |
| 300 | 300 | ||
| 301 | if(ABS(derot_freq) > derot_limit) | 301 | if(abs(derot_freq) > derot_limit) |
| 302 | next_loop--; | 302 | next_loop--; |
| 303 | 303 | ||
| 304 | if (next_loop) { | 304 | if (next_loop) { |
| @@ -400,7 +400,7 @@ static enum stb0899_status stb0899_search_data(struct stb0899_state *state) | |||
| 400 | if ((internal->status != CARRIEROK) || (stb0899_check_data(state) != DATAOK)) { | 400 | if ((internal->status != CARRIEROK) || (stb0899_check_data(state) != DATAOK)) { |
| 401 | 401 | ||
| 402 | derot_freq += index * internal->direction * derot_step; /* next zig zag derotator position */ | 402 | derot_freq += index * internal->direction * derot_step; /* next zig zag derotator position */ |
| 403 | if (ABS(derot_freq) > derot_limit) | 403 | if (abs(derot_freq) > derot_limit) |
| 404 | next_loop--; | 404 | next_loop--; |
| 405 | 405 | ||
| 406 | if (next_loop) { | 406 | if (next_loop) { |
| @@ -467,7 +467,7 @@ static void next_sub_range(struct stb0899_state *state) | |||
| 467 | 467 | ||
| 468 | if (internal->sub_dir > 0) { | 468 | if (internal->sub_dir > 0) { |
| 469 | old_sub_range = internal->sub_range; | 469 | old_sub_range = internal->sub_range; |
| 470 | internal->sub_range = MIN((internal->srch_range / 2) - | 470 | internal->sub_range = min((internal->srch_range / 2) - |
| 471 | (internal->tuner_offst + internal->sub_range / 2), | 471 | (internal->tuner_offst + internal->sub_range / 2), |
| 472 | internal->sub_range); | 472 | internal->sub_range); |
| 473 | 473 | ||
| @@ -771,7 +771,7 @@ static long Log2Int(int number) | |||
| 771 | int i; | 771 | int i; |
| 772 | 772 | ||
| 773 | i = 0; | 773 | i = 0; |
| 774 | while ((1 << i) <= ABS(number)) | 774 | while ((1 << i) <= abs(number)) |
| 775 | i++; | 775 | i++; |
| 776 | 776 | ||
| 777 | if (number == 0) | 777 | if (number == 0) |
diff --git a/drivers/media/dvb/frontends/stb0899_drv.c b/drivers/media/dvb/frontends/stb0899_drv.c index 10613acf18f5..a04c782fff8d 100644 --- a/drivers/media/dvb/frontends/stb0899_drv.c +++ b/drivers/media/dvb/frontends/stb0899_drv.c | |||
| @@ -794,7 +794,7 @@ static int stb0899_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t | |||
| 794 | reg = stb0899_read_reg(state, STB0899_DISCNTRL1); | 794 | reg = stb0899_read_reg(state, STB0899_DISCNTRL1); |
| 795 | old_state = reg; | 795 | old_state = reg; |
| 796 | /* set to burst mode */ | 796 | /* set to burst mode */ |
| 797 | STB0899_SETFIELD_VAL(DISEQCMODE, reg, 0x02); | 797 | STB0899_SETFIELD_VAL(DISEQCMODE, reg, 0x03); |
| 798 | STB0899_SETFIELD_VAL(DISPRECHARGE, reg, 0x01); | 798 | STB0899_SETFIELD_VAL(DISPRECHARGE, reg, 0x01); |
| 799 | stb0899_write_reg(state, STB0899_DISCNTRL1, reg); | 799 | stb0899_write_reg(state, STB0899_DISCNTRL1, reg); |
| 800 | switch (burst) { | 800 | switch (burst) { |
diff --git a/drivers/media/dvb/frontends/stb0899_priv.h b/drivers/media/dvb/frontends/stb0899_priv.h index 24619e3689db..82395b912815 100644 --- a/drivers/media/dvb/frontends/stb0899_priv.h +++ b/drivers/media/dvb/frontends/stb0899_priv.h | |||
| @@ -59,10 +59,6 @@ | |||
| 59 | #define MAKEWORD32(a, b, c, d) (((a) << 24) | ((b) << 16) | ((c) << 8) | (d)) | 59 | #define MAKEWORD32(a, b, c, d) (((a) << 24) | ((b) << 16) | ((c) << 8) | (d)) |
| 60 | #define MAKEWORD16(a, b) (((a) << 8) | (b)) | 60 | #define MAKEWORD16(a, b) (((a) << 8) | (b)) |
| 61 | 61 | ||
| 62 | #define MIN(x, y) ((x) <= (y) ? (x) : (y)) | ||
| 63 | #define MAX(x, y) ((x) >= (y) ? (x) : (y)) | ||
| 64 | #define ABS(x) ((x) >= 0 ? (x) : -(x)) | ||
| 65 | |||
| 66 | #define LSB(x) ((x & 0xff)) | 62 | #define LSB(x) ((x & 0xff)) |
| 67 | #define MSB(y) ((y >> 8) & 0xff) | 63 | #define MSB(y) ((y >> 8) & 0xff) |
| 68 | 64 | ||
| @@ -168,10 +164,10 @@ struct stb0899_internal { | |||
| 168 | u32 freq; /* Demod internal Frequency */ | 164 | u32 freq; /* Demod internal Frequency */ |
| 169 | u32 srate; /* Demod internal Symbol rate */ | 165 | u32 srate; /* Demod internal Symbol rate */ |
| 170 | enum stb0899_fec fecrate; /* Demod internal FEC rate */ | 166 | enum stb0899_fec fecrate; /* Demod internal FEC rate */ |
| 171 | u32 srch_range; /* Demod internal Search Range */ | 167 | s32 srch_range; /* Demod internal Search Range */ |
| 172 | u32 sub_range; /* Demod current sub range (Hz) */ | 168 | s32 sub_range; /* Demod current sub range (Hz) */ |
| 173 | u32 tuner_step; /* Tuner step (Hz) */ | 169 | s32 tuner_step; /* Tuner step (Hz) */ |
| 174 | u32 tuner_offst; /* Relative offset to carrier (Hz) */ | 170 | s32 tuner_offst; /* Relative offset to carrier (Hz) */ |
| 175 | u32 tuner_bw; /* Current bandwidth of the tuner (Hz) */ | 171 | u32 tuner_bw; /* Current bandwidth of the tuner (Hz) */ |
| 176 | 172 | ||
| 177 | s32 mclk; /* Masterclock Divider factor (binary) */ | 173 | s32 mclk; /* Masterclock Divider factor (binary) */ |
diff --git a/drivers/media/dvb/frontends/stb6100.c b/drivers/media/dvb/frontends/stb6100.c index ff39275ab49c..1ed5a7db4c5e 100644 --- a/drivers/media/dvb/frontends/stb6100.c +++ b/drivers/media/dvb/frontends/stb6100.c | |||
| @@ -427,11 +427,11 @@ static int stb6100_init(struct dvb_frontend *fe) | |||
| 427 | status->refclock = 27000000; /* Hz */ | 427 | status->refclock = 27000000; /* Hz */ |
| 428 | status->iqsense = 1; | 428 | status->iqsense = 1; |
| 429 | status->bandwidth = 36000; /* kHz */ | 429 | status->bandwidth = 36000; /* kHz */ |
| 430 | state->bandwidth = status->bandwidth * 1000; /* MHz */ | 430 | state->bandwidth = status->bandwidth * 1000; /* Hz */ |
| 431 | state->reference = status->refclock / 1000; /* kHz */ | 431 | state->reference = status->refclock / 1000; /* kHz */ |
| 432 | 432 | ||
| 433 | /* Set default bandwidth. */ | 433 | /* Set default bandwidth. */ |
| 434 | return stb6100_set_bandwidth(fe, status->bandwidth); | 434 | return stb6100_set_bandwidth(fe, state->bandwidth); |
| 435 | } | 435 | } |
| 436 | 436 | ||
| 437 | static int stb6100_get_state(struct dvb_frontend *fe, | 437 | static int stb6100_get_state(struct dvb_frontend *fe, |
diff --git a/drivers/media/dvb/frontends/zl10353.c b/drivers/media/dvb/frontends/zl10353.c index 170720b02815..b150ed306696 100644 --- a/drivers/media/dvb/frontends/zl10353.c +++ b/drivers/media/dvb/frontends/zl10353.c | |||
| @@ -590,7 +590,7 @@ static int zl10353_i2c_gate_ctrl(struct dvb_frontend* fe, int enable) | |||
| 590 | struct zl10353_state *state = fe->demodulator_priv; | 590 | struct zl10353_state *state = fe->demodulator_priv; |
| 591 | u8 val = 0x0a; | 591 | u8 val = 0x0a; |
| 592 | 592 | ||
| 593 | if (state->config.no_tuner) { | 593 | if (state->config.disable_i2c_gate_ctrl) { |
| 594 | /* No tuner attached to the internal I2C bus */ | 594 | /* No tuner attached to the internal I2C bus */ |
| 595 | /* If set enable I2C bridge, the main I2C bus stopped hardly */ | 595 | /* If set enable I2C bridge, the main I2C bus stopped hardly */ |
| 596 | return 0; | 596 | return 0; |
diff --git a/drivers/media/dvb/frontends/zl10353.h b/drivers/media/dvb/frontends/zl10353.h index fdbb88ff75fe..2287bac46243 100644 --- a/drivers/media/dvb/frontends/zl10353.h +++ b/drivers/media/dvb/frontends/zl10353.h | |||
| @@ -38,6 +38,9 @@ struct zl10353_config | |||
| 38 | 38 | ||
| 39 | /* set if parallel ts output is required */ | 39 | /* set if parallel ts output is required */ |
| 40 | int parallel_ts; | 40 | int parallel_ts; |
| 41 | |||
| 42 | /* set if i2c_gate_ctrl disable is required */ | ||
| 43 | u8 disable_i2c_gate_ctrl:1; | ||
| 41 | }; | 44 | }; |
| 42 | 45 | ||
| 43 | #if defined(CONFIG_DVB_ZL10353) || (defined(CONFIG_DVB_ZL10353_MODULE) && defined(MODULE)) | 46 | #if defined(CONFIG_DVB_ZL10353) || (defined(CONFIG_DVB_ZL10353_MODULE) && defined(MODULE)) |
diff --git a/drivers/media/video/gspca/m5602/m5602_s5k4aa.c b/drivers/media/video/gspca/m5602/m5602_s5k4aa.c index e564a61a72d7..48892b5715d5 100644 --- a/drivers/media/video/gspca/m5602/m5602_s5k4aa.c +++ b/drivers/media/video/gspca/m5602/m5602_s5k4aa.c | |||
| @@ -102,7 +102,11 @@ int s5k4aa_probe(struct sd *sd) | |||
| 102 | } | 102 | } |
| 103 | 103 | ||
| 104 | /* Test some registers, but we don't know their exact meaning yet */ | 104 | /* Test some registers, but we don't know their exact meaning yet */ |
| 105 | if (m5602_read_sensor(sd, 0x00, prod_id, sizeof(prod_id))) | 105 | if (m5602_read_sensor(sd, 0x00, prod_id, 2)) |
| 106 | return -ENODEV; | ||
| 107 | if (m5602_read_sensor(sd, 0x02, prod_id+2, 2)) | ||
| 108 | return -ENODEV; | ||
| 109 | if (m5602_read_sensor(sd, 0x04, prod_id+4, 2)) | ||
| 106 | return -ENODEV; | 110 | return -ENODEV; |
| 107 | 111 | ||
| 108 | if (memcmp(prod_id, expected_prod_id, sizeof(prod_id))) | 112 | if (memcmp(prod_id, expected_prod_id, sizeof(prod_id))) |
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c index 0776ecf56d27..b5370b3e1a3d 100644 --- a/drivers/media/video/saa7134/saa7134-dvb.c +++ b/drivers/media/video/saa7134/saa7134-dvb.c | |||
| @@ -860,6 +860,7 @@ static struct zl10353_config behold_h6_config = { | |||
| 860 | .demod_address = 0x1e>>1, | 860 | .demod_address = 0x1e>>1, |
| 861 | .no_tuner = 1, | 861 | .no_tuner = 1, |
| 862 | .parallel_ts = 1, | 862 | .parallel_ts = 1, |
| 863 | .disable_i2c_gate_ctrl = 1, | ||
| 863 | }; | 864 | }; |
| 864 | 865 | ||
| 865 | /* ================================================================== | 866 | /* ================================================================== |
diff --git a/drivers/media/video/tvaudio.c b/drivers/media/video/tvaudio.c index 5aeccb301cea..076ed5bf48b1 100644 --- a/drivers/media/video/tvaudio.c +++ b/drivers/media/video/tvaudio.c | |||
| @@ -54,7 +54,7 @@ MODULE_LICENSE("GPL"); | |||
| 54 | /* ---------------------------------------------------------------------- */ | 54 | /* ---------------------------------------------------------------------- */ |
| 55 | /* our structs */ | 55 | /* our structs */ |
| 56 | 56 | ||
| 57 | #define MAXREGS 64 | 57 | #define MAXREGS 256 |
| 58 | 58 | ||
| 59 | struct CHIPSTATE; | 59 | struct CHIPSTATE; |
| 60 | typedef int (*getvalue)(int); | 60 | typedef int (*getvalue)(int); |
diff --git a/drivers/media/video/zoran/Kconfig b/drivers/media/video/zoran/Kconfig index 4ea5fa71de89..8666e19f31a7 100644 --- a/drivers/media/video/zoran/Kconfig +++ b/drivers/media/video/zoran/Kconfig | |||
| @@ -68,6 +68,7 @@ config VIDEO_ZORAN_AVS6EYES | |||
| 68 | tristate "AverMedia 6 Eyes support (EXPERIMENTAL)" | 68 | tristate "AverMedia 6 Eyes support (EXPERIMENTAL)" |
| 69 | depends on VIDEO_ZORAN_ZR36060 && EXPERIMENTAL && VIDEO_V4L1 | 69 | depends on VIDEO_ZORAN_ZR36060 && EXPERIMENTAL && VIDEO_V4L1 |
| 70 | select VIDEO_BT856 if VIDEO_HELPER_CHIPS_AUTO | 70 | select VIDEO_BT856 if VIDEO_HELPER_CHIPS_AUTO |
| 71 | select VIDEO_BT866 if VIDEO_HELPER_CHIPS_AUTO | ||
| 71 | select VIDEO_KS0127 if VIDEO_HELPER_CHIPS_AUTO | 72 | select VIDEO_KS0127 if VIDEO_HELPER_CHIPS_AUTO |
| 72 | help | 73 | help |
| 73 | Support for the AverMedia 6 Eyes video surveillance card. | 74 | Support for the AverMedia 6 Eyes video surveillance card. |
diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c index d539d9df88e7..bb5a1c9597cb 100644 --- a/drivers/parisc/dino.c +++ b/drivers/parisc/dino.c | |||
| @@ -479,7 +479,7 @@ dino_card_setup(struct pci_bus *bus, void __iomem *base_addr) | |||
| 479 | res = &dino_dev->hba.lmmio_space; | 479 | res = &dino_dev->hba.lmmio_space; |
| 480 | res->flags = IORESOURCE_MEM; | 480 | res->flags = IORESOURCE_MEM; |
| 481 | size = scnprintf(name, sizeof(name), "Dino LMMIO (%s)", | 481 | size = scnprintf(name, sizeof(name), "Dino LMMIO (%s)", |
| 482 | bus->bridge->bus_id); | 482 | dev_name(bus->bridge)); |
| 483 | res->name = kmalloc(size+1, GFP_KERNEL); | 483 | res->name = kmalloc(size+1, GFP_KERNEL); |
| 484 | if(res->name) | 484 | if(res->name) |
| 485 | strcpy((char *)res->name, name); | 485 | strcpy((char *)res->name, name); |
| @@ -493,7 +493,7 @@ dino_card_setup(struct pci_bus *bus, void __iomem *base_addr) | |||
| 493 | struct list_head *ln, *tmp_ln; | 493 | struct list_head *ln, *tmp_ln; |
| 494 | 494 | ||
| 495 | printk(KERN_ERR "Dino: cannot attach bus %s\n", | 495 | printk(KERN_ERR "Dino: cannot attach bus %s\n", |
| 496 | bus->bridge->bus_id); | 496 | dev_name(bus->bridge)); |
| 497 | /* kill the bus, we can't do anything with it */ | 497 | /* kill the bus, we can't do anything with it */ |
| 498 | list_for_each_safe(ln, tmp_ln, &bus->devices) { | 498 | list_for_each_safe(ln, tmp_ln, &bus->devices) { |
| 499 | struct pci_dev *dev = pci_dev_b(ln); | 499 | struct pci_dev *dev = pci_dev_b(ln); |
| @@ -587,7 +587,7 @@ dino_fixup_bus(struct pci_bus *bus) | |||
| 587 | bus->resource[i+1] = &res[i]; | 587 | bus->resource[i+1] = &res[i]; |
| 588 | } | 588 | } |
| 589 | 589 | ||
| 590 | } else if(bus->self) { | 590 | } else if (bus->parent) { |
| 591 | int i; | 591 | int i; |
| 592 | 592 | ||
| 593 | pci_read_bridge_bases(bus); | 593 | pci_read_bridge_bases(bus); |
| @@ -611,12 +611,12 @@ dino_fixup_bus(struct pci_bus *bus) | |||
| 611 | } | 611 | } |
| 612 | 612 | ||
| 613 | DBG("DEBUG %s assigning %d [0x%lx,0x%lx]\n", | 613 | DBG("DEBUG %s assigning %d [0x%lx,0x%lx]\n", |
| 614 | bus->self->dev.bus_id, i, | 614 | dev_name(&bus->self->dev), i, |
| 615 | bus->self->resource[i].start, | 615 | bus->self->resource[i].start, |
| 616 | bus->self->resource[i].end); | 616 | bus->self->resource[i].end); |
| 617 | pci_assign_resource(bus->self, i); | 617 | pci_assign_resource(bus->self, i); |
| 618 | DBG("DEBUG %s after assign %d [0x%lx,0x%lx]\n", | 618 | DBG("DEBUG %s after assign %d [0x%lx,0x%lx]\n", |
| 619 | bus->self->dev.bus_id, i, | 619 | dev_name(&bus->self->dev), i, |
| 620 | bus->self->resource[i].start, | 620 | bus->self->resource[i].start, |
| 621 | bus->self->resource[i].end); | 621 | bus->self->resource[i].end); |
| 622 | } | 622 | } |
| @@ -1026,7 +1026,8 @@ static int __init dino_probe(struct parisc_device *dev) | |||
| 1026 | dino_current_bus = bus->subordinate + 1; | 1026 | dino_current_bus = bus->subordinate + 1; |
| 1027 | pci_bus_assign_resources(bus); | 1027 | pci_bus_assign_resources(bus); |
| 1028 | } else { | 1028 | } else { |
| 1029 | printk(KERN_ERR "ERROR: failed to scan PCI bus on %s (probably duplicate bus number %d)\n", dev->dev.bus_id, dino_current_bus); | 1029 | printk(KERN_ERR "ERROR: failed to scan PCI bus on %s (probably duplicate bus number %d)\n", |
| 1030 | dev_name(&dev->dev), dino_current_bus); | ||
| 1030 | /* increment the bus number in case of duplicates */ | 1031 | /* increment the bus number in case of duplicates */ |
| 1031 | dino_current_bus++; | 1032 | dino_current_bus++; |
| 1032 | } | 1033 | } |
diff --git a/drivers/parisc/gsc.c b/drivers/parisc/gsc.c index e76db9e4d504..d33632917696 100644 --- a/drivers/parisc/gsc.c +++ b/drivers/parisc/gsc.c | |||
| @@ -186,29 +186,34 @@ void gsc_asic_assign_irq(struct gsc_asic *asic, int local_irq, int *irqp) | |||
| 186 | *irqp = irq; | 186 | *irqp = irq; |
| 187 | } | 187 | } |
| 188 | 188 | ||
| 189 | static struct device *next_device(struct klist_iter *i) | 189 | struct gsc_fixup_struct { |
| 190 | void (*choose_irq)(struct parisc_device *, void *); | ||
| 191 | void *ctrl; | ||
| 192 | }; | ||
| 193 | |||
| 194 | static int gsc_fixup_irqs_callback(struct device *dev, void *data) | ||
| 190 | { | 195 | { |
| 191 | struct klist_node * n = klist_next(i); | 196 | struct parisc_device *padev = to_parisc_device(dev); |
| 192 | return n ? container_of(n, struct device, knode_parent) : NULL; | 197 | struct gsc_fixup_struct *gf = data; |
| 198 | |||
| 199 | /* work-around for 715/64 and others which have parent | ||
| 200 | at path [5] and children at path [5/0/x] */ | ||
| 201 | if (padev->id.hw_type == HPHW_FAULTY) | ||
| 202 | gsc_fixup_irqs(padev, gf->ctrl, gf->choose_irq); | ||
| 203 | gf->choose_irq(padev, gf->ctrl); | ||
| 204 | |||
| 205 | return 0; | ||
| 193 | } | 206 | } |
| 194 | 207 | ||
| 195 | void gsc_fixup_irqs(struct parisc_device *parent, void *ctrl, | 208 | void gsc_fixup_irqs(struct parisc_device *parent, void *ctrl, |
| 196 | void (*choose_irq)(struct parisc_device *, void *)) | 209 | void (*choose_irq)(struct parisc_device *, void *)) |
| 197 | { | 210 | { |
| 198 | struct device *dev; | 211 | struct gsc_fixup_struct data = { |
| 199 | struct klist_iter i; | 212 | .choose_irq = choose_irq, |
| 200 | 213 | .ctrl = ctrl, | |
| 201 | klist_iter_init(&parent->dev.klist_children, &i); | 214 | }; |
| 202 | while ((dev = next_device(&i))) { | 215 | |
| 203 | struct parisc_device *padev = to_parisc_device(dev); | 216 | device_for_each_child(&parent->dev, &data, gsc_fixup_irqs_callback); |
| 204 | |||
| 205 | /* work-around for 715/64 and others which have parent | ||
| 206 | at path [5] and children at path [5/0/x] */ | ||
| 207 | if (padev->id.hw_type == HPHW_FAULTY) | ||
| 208 | return gsc_fixup_irqs(padev, ctrl, choose_irq); | ||
| 209 | choose_irq(padev, ctrl); | ||
| 210 | } | ||
| 211 | klist_iter_exit(&i); | ||
| 212 | } | 217 | } |
| 213 | 218 | ||
| 214 | int gsc_common_setup(struct parisc_device *parent, struct gsc_asic *gsc_asic) | 219 | int gsc_common_setup(struct parisc_device *parent, struct gsc_asic *gsc_asic) |
diff --git a/drivers/parisc/iosapic.c b/drivers/parisc/iosapic.c index 0797659ee016..501aaf1f253f 100644 --- a/drivers/parisc/iosapic.c +++ b/drivers/parisc/iosapic.c | |||
| @@ -487,7 +487,7 @@ iosapic_xlate_pin(struct iosapic_info *isi, struct pci_dev *pcidev) | |||
| 487 | } | 487 | } |
| 488 | 488 | ||
| 489 | /* Check if pcidev behind a PPB */ | 489 | /* Check if pcidev behind a PPB */ |
| 490 | if (NULL != pcidev->bus->self) { | 490 | if (pcidev->bus->parent) { |
| 491 | /* Convert pcidev INTR_PIN into something we | 491 | /* Convert pcidev INTR_PIN into something we |
| 492 | ** can lookup in the IRT. | 492 | ** can lookup in the IRT. |
| 493 | */ | 493 | */ |
| @@ -523,10 +523,9 @@ iosapic_xlate_pin(struct iosapic_info *isi, struct pci_dev *pcidev) | |||
| 523 | #endif /* PCI_BRIDGE_FUNCS */ | 523 | #endif /* PCI_BRIDGE_FUNCS */ |
| 524 | 524 | ||
| 525 | /* | 525 | /* |
| 526 | ** Locate the host slot the PPB nearest the Host bus | 526 | * Locate the host slot of the PPB. |
| 527 | ** adapter. | 527 | */ |
| 528 | */ | 528 | while (p->parent->parent) |
| 529 | while (NULL != p->parent->self) | ||
| 530 | p = p->parent; | 529 | p = p->parent; |
| 531 | 530 | ||
| 532 | intr_slot = PCI_SLOT(p->self->devfn); | 531 | intr_slot = PCI_SLOT(p->self->devfn); |
| @@ -709,11 +708,14 @@ static void iosapic_set_affinity_irq(unsigned int irq, | |||
| 709 | struct vector_info *vi = iosapic_get_vector(irq); | 708 | struct vector_info *vi = iosapic_get_vector(irq); |
| 710 | u32 d0, d1, dummy_d0; | 709 | u32 d0, d1, dummy_d0; |
| 711 | unsigned long flags; | 710 | unsigned long flags; |
| 711 | int dest_cpu; | ||
| 712 | 712 | ||
| 713 | if (cpu_check_affinity(irq, dest)) | 713 | dest_cpu = cpu_check_affinity(irq, dest); |
| 714 | if (dest_cpu < 0) | ||
| 714 | return; | 715 | return; |
| 715 | 716 | ||
| 716 | vi->txn_addr = txn_affinity_addr(irq, cpumask_first(dest)); | 717 | irq_desc[irq].affinity = cpumask_of_cpu(dest_cpu); |
| 718 | vi->txn_addr = txn_affinity_addr(irq, dest_cpu); | ||
| 717 | 719 | ||
| 718 | spin_lock_irqsave(&iosapic_lock, flags); | 720 | spin_lock_irqsave(&iosapic_lock, flags); |
| 719 | /* d1 contains the destination CPU, so only want to set that | 721 | /* d1 contains the destination CPU, so only want to set that |
diff --git a/drivers/parisc/lba_pci.c b/drivers/parisc/lba_pci.c index d8233de8c75d..59fbbf128365 100644 --- a/drivers/parisc/lba_pci.c +++ b/drivers/parisc/lba_pci.c | |||
| @@ -644,7 +644,7 @@ lba_fixup_bus(struct pci_bus *bus) | |||
| 644 | ** Properly Setup MMIO resources for this bus. | 644 | ** Properly Setup MMIO resources for this bus. |
| 645 | ** pci_alloc_primary_bus() mangles this. | 645 | ** pci_alloc_primary_bus() mangles this. |
| 646 | */ | 646 | */ |
| 647 | if (bus->self) { | 647 | if (bus->parent) { |
| 648 | int i; | 648 | int i; |
| 649 | /* PCI-PCI Bridge */ | 649 | /* PCI-PCI Bridge */ |
| 650 | pci_read_bridge_bases(bus); | 650 | pci_read_bridge_bases(bus); |
| @@ -802,7 +802,7 @@ lba_fixup_bus(struct pci_bus *bus) | |||
| 802 | ** Can't fixup here anyway....garr... | 802 | ** Can't fixup here anyway....garr... |
| 803 | */ | 803 | */ |
| 804 | if (fbb_enable) { | 804 | if (fbb_enable) { |
| 805 | if (bus->self) { | 805 | if (bus->parent) { |
| 806 | u8 control; | 806 | u8 control; |
| 807 | /* enable on PPB */ | 807 | /* enable on PPB */ |
| 808 | (void) pci_read_config_byte(bus->self, PCI_BRIDGE_CONTROL, &control); | 808 | (void) pci_read_config_byte(bus->self, PCI_BRIDGE_CONTROL, &control); |
diff --git a/drivers/parisc/sba_iommu.c b/drivers/parisc/sba_iommu.c index a70cf16ee1ad..e5999c4cedc8 100644 --- a/drivers/parisc/sba_iommu.c +++ b/drivers/parisc/sba_iommu.c | |||
| @@ -1206,30 +1206,48 @@ sba_alloc_pdir(unsigned int pdir_size) | |||
| 1206 | return (void *) pdir_base; | 1206 | return (void *) pdir_base; |
| 1207 | } | 1207 | } |
| 1208 | 1208 | ||
| 1209 | static struct device *next_device(struct klist_iter *i) | 1209 | struct ibase_data_struct { |
| 1210 | struct ioc *ioc; | ||
| 1211 | int ioc_num; | ||
| 1212 | }; | ||
| 1213 | |||
| 1214 | static int setup_ibase_imask_callback(struct device *dev, void *data) | ||
| 1210 | { | 1215 | { |
| 1211 | struct klist_node * n = klist_next(i); | 1216 | /* lba_set_iregs() is in drivers/parisc/lba_pci.c */ |
| 1212 | return n ? container_of(n, struct device, knode_parent) : NULL; | 1217 | extern void lba_set_iregs(struct parisc_device *, u32, u32); |
| 1218 | struct parisc_device *lba = to_parisc_device(dev); | ||
| 1219 | struct ibase_data_struct *ibd = data; | ||
| 1220 | int rope_num = (lba->hpa.start >> 13) & 0xf; | ||
| 1221 | if (rope_num >> 3 == ibd->ioc_num) | ||
| 1222 | lba_set_iregs(lba, ibd->ioc->ibase, ibd->ioc->imask); | ||
| 1223 | return 0; | ||
| 1213 | } | 1224 | } |
| 1214 | 1225 | ||
| 1215 | /* setup Mercury or Elroy IBASE/IMASK registers. */ | 1226 | /* setup Mercury or Elroy IBASE/IMASK registers. */ |
| 1216 | static void | 1227 | static void |
| 1217 | setup_ibase_imask(struct parisc_device *sba, struct ioc *ioc, int ioc_num) | 1228 | setup_ibase_imask(struct parisc_device *sba, struct ioc *ioc, int ioc_num) |
| 1218 | { | 1229 | { |
| 1219 | /* lba_set_iregs() is in drivers/parisc/lba_pci.c */ | 1230 | struct ibase_data_struct ibase_data = { |
| 1220 | extern void lba_set_iregs(struct parisc_device *, u32, u32); | 1231 | .ioc = ioc, |
| 1221 | struct device *dev; | 1232 | .ioc_num = ioc_num, |
| 1222 | struct klist_iter i; | 1233 | }; |
| 1223 | 1234 | ||
| 1224 | klist_iter_init(&sba->dev.klist_children, &i); | 1235 | device_for_each_child(&sba->dev, &ibase_data, |
| 1225 | while ((dev = next_device(&i))) { | 1236 | setup_ibase_imask_callback); |
| 1226 | struct parisc_device *lba = to_parisc_device(dev); | 1237 | } |
| 1227 | int rope_num = (lba->hpa.start >> 13) & 0xf; | 1238 | |
| 1228 | if (rope_num >> 3 == ioc_num) | 1239 | #ifdef SBA_AGP_SUPPORT |
| 1229 | lba_set_iregs(lba, ioc->ibase, ioc->imask); | 1240 | static int |
| 1230 | } | 1241 | sba_ioc_find_quicksilver(struct device *dev, void *data) |
| 1231 | klist_iter_exit(&i); | 1242 | { |
| 1243 | int *agp_found = data; | ||
| 1244 | struct parisc_device *lba = to_parisc_device(dev); | ||
| 1245 | |||
| 1246 | if (IS_QUICKSILVER(lba)) | ||
| 1247 | *agp_found = 1; | ||
| 1248 | return 0; | ||
| 1232 | } | 1249 | } |
| 1250 | #endif | ||
| 1233 | 1251 | ||
| 1234 | static void | 1252 | static void |
| 1235 | sba_ioc_init_pluto(struct parisc_device *sba, struct ioc *ioc, int ioc_num) | 1253 | sba_ioc_init_pluto(struct parisc_device *sba, struct ioc *ioc, int ioc_num) |
| @@ -1332,9 +1350,6 @@ sba_ioc_init_pluto(struct parisc_device *sba, struct ioc *ioc, int ioc_num) | |||
| 1332 | WRITE_REG(ioc->ibase | 31, ioc->ioc_hpa + IOC_PCOM); | 1350 | WRITE_REG(ioc->ibase | 31, ioc->ioc_hpa + IOC_PCOM); |
| 1333 | 1351 | ||
| 1334 | #ifdef SBA_AGP_SUPPORT | 1352 | #ifdef SBA_AGP_SUPPORT |
| 1335 | { | ||
| 1336 | struct klist_iter i; | ||
| 1337 | struct device *dev = NULL; | ||
| 1338 | 1353 | ||
| 1339 | /* | 1354 | /* |
| 1340 | ** If an AGP device is present, only use half of the IOV space | 1355 | ** If an AGP device is present, only use half of the IOV space |
| @@ -1344,13 +1359,7 @@ sba_ioc_init_pluto(struct parisc_device *sba, struct ioc *ioc, int ioc_num) | |||
| 1344 | ** We program the next pdir index after we stop w/ a key for | 1359 | ** We program the next pdir index after we stop w/ a key for |
| 1345 | ** the GART code to handshake on. | 1360 | ** the GART code to handshake on. |
| 1346 | */ | 1361 | */ |
| 1347 | klist_iter_init(&sba->dev.klist_children, &i); | 1362 | device_for_each_child(&sba->dev, &agp_found, sba_ioc_find_quicksilver); |
| 1348 | while ((dev = next_device(&i))) { | ||
| 1349 | struct parisc_device *lba = to_parisc_device(dev); | ||
| 1350 | if (IS_QUICKSILVER(lba)) | ||
| 1351 | agp_found = 1; | ||
| 1352 | } | ||
| 1353 | klist_iter_exit(&i); | ||
| 1354 | 1363 | ||
| 1355 | if (agp_found && sba_reserve_agpgart) { | 1364 | if (agp_found && sba_reserve_agpgart) { |
| 1356 | printk(KERN_INFO "%s: reserving %dMb of IOVA space for agpgart\n", | 1365 | printk(KERN_INFO "%s: reserving %dMb of IOVA space for agpgart\n", |
| @@ -1358,9 +1367,7 @@ sba_ioc_init_pluto(struct parisc_device *sba, struct ioc *ioc, int ioc_num) | |||
| 1358 | ioc->pdir_size /= 2; | 1367 | ioc->pdir_size /= 2; |
| 1359 | ioc->pdir_base[PDIR_INDEX(iova_space_size/2)] = SBA_AGPGART_COOKIE; | 1368 | ioc->pdir_base[PDIR_INDEX(iova_space_size/2)] = SBA_AGPGART_COOKIE; |
| 1360 | } | 1369 | } |
| 1361 | } | ||
| 1362 | #endif /*SBA_AGP_SUPPORT*/ | 1370 | #endif /*SBA_AGP_SUPPORT*/ |
| 1363 | |||
| 1364 | } | 1371 | } |
| 1365 | 1372 | ||
| 1366 | static void | 1373 | static void |
diff --git a/drivers/scsi/fcoe/fc_transport_fcoe.c b/drivers/scsi/fcoe/fc_transport_fcoe.c index bf7fe6fc0820..8862758006c0 100644 --- a/drivers/scsi/fcoe/fc_transport_fcoe.c +++ b/drivers/scsi/fcoe/fc_transport_fcoe.c | |||
| @@ -33,19 +33,19 @@ static LIST_HEAD(fcoe_transports); | |||
| 33 | static DEFINE_MUTEX(fcoe_transports_lock); | 33 | static DEFINE_MUTEX(fcoe_transports_lock); |
| 34 | 34 | ||
| 35 | /** | 35 | /** |
| 36 | * fcoe_transport_default - returns ptr to the default transport fcoe_sw | 36 | * fcoe_transport_default() - Returns ptr to the default transport fcoe_sw |
| 37 | **/ | 37 | */ |
| 38 | struct fcoe_transport *fcoe_transport_default(void) | 38 | struct fcoe_transport *fcoe_transport_default(void) |
| 39 | { | 39 | { |
| 40 | return &fcoe_sw_transport; | 40 | return &fcoe_sw_transport; |
| 41 | } | 41 | } |
| 42 | 42 | ||
| 43 | /** | 43 | /** |
| 44 | * fcoe_transport_to_pcidev - get the pci dev from a netdev | 44 | * fcoe_transport_to_pcidev() - get the pci dev from a netdev |
| 45 | * @netdev: the netdev that pci dev will be retrived from | 45 | * @netdev: the netdev that pci dev will be retrived from |
| 46 | * | 46 | * |
| 47 | * Returns: NULL or the corrsponding pci_dev | 47 | * Returns: NULL or the corrsponding pci_dev |
| 48 | **/ | 48 | */ |
| 49 | struct pci_dev *fcoe_transport_pcidev(const struct net_device *netdev) | 49 | struct pci_dev *fcoe_transport_pcidev(const struct net_device *netdev) |
| 50 | { | 50 | { |
| 51 | if (!netdev->dev.parent) | 51 | if (!netdev->dev.parent) |
| @@ -54,18 +54,17 @@ struct pci_dev *fcoe_transport_pcidev(const struct net_device *netdev) | |||
| 54 | } | 54 | } |
| 55 | 55 | ||
| 56 | /** | 56 | /** |
| 57 | * fcoe_transport_device_lookup - find out netdev is managed by the | 57 | * fcoe_transport_device_lookup() - Lookup a transport |
| 58 | * transport | ||
| 59 | * assign a transport to a device | ||
| 60 | * @netdev: the netdev the transport to be attached to | 58 | * @netdev: the netdev the transport to be attached to |
| 61 | * | 59 | * |
| 62 | * This will look for existing offload driver, if not found, it falls back to | 60 | * This will look for existing offload driver, if not found, it falls back to |
| 63 | * the default sw hba (fcoe_sw) as its fcoe transport. | 61 | * the default sw hba (fcoe_sw) as its fcoe transport. |
| 64 | * | 62 | * |
| 65 | * Returns: 0 for success | 63 | * Returns: 0 for success |
| 66 | **/ | 64 | */ |
| 67 | static struct fcoe_transport_internal *fcoe_transport_device_lookup( | 65 | static struct fcoe_transport_internal * |
| 68 | struct fcoe_transport *t, struct net_device *netdev) | 66 | fcoe_transport_device_lookup(struct fcoe_transport *t, |
| 67 | struct net_device *netdev) | ||
| 69 | { | 68 | { |
| 70 | struct fcoe_transport_internal *ti; | 69 | struct fcoe_transport_internal *ti; |
| 71 | 70 | ||
| @@ -81,14 +80,14 @@ static struct fcoe_transport_internal *fcoe_transport_device_lookup( | |||
| 81 | return NULL; | 80 | return NULL; |
| 82 | } | 81 | } |
| 83 | /** | 82 | /** |
| 84 | * fcoe_transport_device_add - assign a transport to a device | 83 | * fcoe_transport_device_add() - Assign a transport to a device |
| 85 | * @netdev: the netdev the transport to be attached to | 84 | * @netdev: the netdev the transport to be attached to |
| 86 | * | 85 | * |
| 87 | * This will look for existing offload driver, if not found, it falls back to | 86 | * This will look for existing offload driver, if not found, it falls back to |
| 88 | * the default sw hba (fcoe_sw) as its fcoe transport. | 87 | * the default sw hba (fcoe_sw) as its fcoe transport. |
| 89 | * | 88 | * |
| 90 | * Returns: 0 for success | 89 | * Returns: 0 for success |
| 91 | **/ | 90 | */ |
| 92 | static int fcoe_transport_device_add(struct fcoe_transport *t, | 91 | static int fcoe_transport_device_add(struct fcoe_transport *t, |
| 93 | struct net_device *netdev) | 92 | struct net_device *netdev) |
| 94 | { | 93 | { |
| @@ -123,14 +122,14 @@ static int fcoe_transport_device_add(struct fcoe_transport *t, | |||
| 123 | } | 122 | } |
| 124 | 123 | ||
| 125 | /** | 124 | /** |
| 126 | * fcoe_transport_device_remove - remove a device from its transport | 125 | * fcoe_transport_device_remove() - Remove a device from its transport |
| 127 | * @netdev: the netdev the transport to be attached to | 126 | * @netdev: the netdev the transport to be attached to |
| 128 | * | 127 | * |
| 129 | * this removes the device from the transport so the given transport will | 128 | * This removes the device from the transport so the given transport will |
| 130 | * not manage this device any more | 129 | * not manage this device any more |
| 131 | * | 130 | * |
| 132 | * Returns: 0 for success | 131 | * Returns: 0 for success |
| 133 | **/ | 132 | */ |
| 134 | static int fcoe_transport_device_remove(struct fcoe_transport *t, | 133 | static int fcoe_transport_device_remove(struct fcoe_transport *t, |
| 135 | struct net_device *netdev) | 134 | struct net_device *netdev) |
| 136 | { | 135 | { |
| @@ -155,13 +154,13 @@ static int fcoe_transport_device_remove(struct fcoe_transport *t, | |||
| 155 | } | 154 | } |
| 156 | 155 | ||
| 157 | /** | 156 | /** |
| 158 | * fcoe_transport_device_remove_all - remove all from transport devlist | 157 | * fcoe_transport_device_remove_all() - Remove all from transport devlist |
| 159 | * | 158 | * |
| 160 | * this removes the device from the transport so the given transport will | 159 | * This removes the device from the transport so the given transport will |
| 161 | * not manage this device any more | 160 | * not manage this device any more |
| 162 | * | 161 | * |
| 163 | * Returns: 0 for success | 162 | * Returns: 0 for success |
| 164 | **/ | 163 | */ |
| 165 | static void fcoe_transport_device_remove_all(struct fcoe_transport *t) | 164 | static void fcoe_transport_device_remove_all(struct fcoe_transport *t) |
| 166 | { | 165 | { |
| 167 | struct fcoe_transport_internal *ti, *tmp; | 166 | struct fcoe_transport_internal *ti, *tmp; |
| @@ -175,18 +174,18 @@ static void fcoe_transport_device_remove_all(struct fcoe_transport *t) | |||
| 175 | } | 174 | } |
| 176 | 175 | ||
| 177 | /** | 176 | /** |
| 178 | * fcoe_transport_match - use the bus device match function to match the hw | 177 | * fcoe_transport_match() - Use the bus device match function to match the hw |
| 179 | * @t: the fcoe transport | 178 | * @t: The fcoe transport to check |
| 180 | * @netdev: | 179 | * @netdev: The netdev to match against |
| 181 | * | 180 | * |
| 182 | * This function is used to check if the givne transport wants to manage the | 181 | * This function is used to check if the given transport wants to manage the |
| 183 | * input netdev. if the transports implements the match function, it will be | 182 | * input netdev. if the transports implements the match function, it will be |
| 184 | * called, o.w. we just compare the pci vendor and device id. | 183 | * called, o.w. we just compare the pci vendor and device id. |
| 185 | * | 184 | * |
| 186 | * Returns: true for match up | 185 | * Returns: true for match up |
| 187 | **/ | 186 | */ |
| 188 | static bool fcoe_transport_match(struct fcoe_transport *t, | 187 | static bool fcoe_transport_match(struct fcoe_transport *t, |
| 189 | struct net_device *netdev) | 188 | struct net_device *netdev) |
| 190 | { | 189 | { |
| 191 | /* match transport by vendor and device id */ | 190 | /* match transport by vendor and device id */ |
| 192 | struct pci_dev *pci; | 191 | struct pci_dev *pci; |
| @@ -210,17 +209,17 @@ static bool fcoe_transport_match(struct fcoe_transport *t, | |||
| 210 | } | 209 | } |
| 211 | 210 | ||
| 212 | /** | 211 | /** |
| 213 | * fcoe_transport_lookup - check if the transport is already registered | 212 | * fcoe_transport_lookup() - Check if the transport is already registered |
| 214 | * @t: the transport to be looked up | 213 | * @t: the transport to be looked up |
| 215 | * | 214 | * |
| 216 | * This compares the parent device (pci) vendor and device id | 215 | * This compares the parent device (pci) vendor and device id |
| 217 | * | 216 | * |
| 218 | * Returns: NULL if not found | 217 | * Returns: NULL if not found |
| 219 | * | 218 | * |
| 220 | * TODO - return default sw transport if no other transport is found | 219 | * TODO: return default sw transport if no other transport is found |
| 221 | **/ | 220 | */ |
| 222 | static struct fcoe_transport *fcoe_transport_lookup( | 221 | static struct fcoe_transport * |
| 223 | struct net_device *netdev) | 222 | fcoe_transport_lookup(struct net_device *netdev) |
| 224 | { | 223 | { |
| 225 | struct fcoe_transport *t; | 224 | struct fcoe_transport *t; |
| 226 | 225 | ||
| @@ -239,11 +238,11 @@ static struct fcoe_transport *fcoe_transport_lookup( | |||
| 239 | } | 238 | } |
| 240 | 239 | ||
| 241 | /** | 240 | /** |
| 242 | * fcoe_transport_register - adds a fcoe transport to the fcoe transports list | 241 | * fcoe_transport_register() - Adds a fcoe transport to the fcoe transports list |
| 243 | * @t: ptr to the fcoe transport to be added | 242 | * @t: ptr to the fcoe transport to be added |
| 244 | * | 243 | * |
| 245 | * Returns: 0 for success | 244 | * Returns: 0 for success |
| 246 | **/ | 245 | */ |
| 247 | int fcoe_transport_register(struct fcoe_transport *t) | 246 | int fcoe_transport_register(struct fcoe_transport *t) |
| 248 | { | 247 | { |
| 249 | struct fcoe_transport *tt; | 248 | struct fcoe_transport *tt; |
| @@ -259,9 +258,6 @@ int fcoe_transport_register(struct fcoe_transport *t) | |||
| 259 | list_add_tail(&t->list, &fcoe_transports); | 258 | list_add_tail(&t->list, &fcoe_transports); |
| 260 | mutex_unlock(&fcoe_transports_lock); | 259 | mutex_unlock(&fcoe_transports_lock); |
| 261 | 260 | ||
| 262 | mutex_init(&t->devlock); | ||
| 263 | INIT_LIST_HEAD(&t->devlist); | ||
| 264 | |||
| 265 | printk(KERN_DEBUG "fcoe_transport_register:%s\n", t->name); | 261 | printk(KERN_DEBUG "fcoe_transport_register:%s\n", t->name); |
| 266 | 262 | ||
| 267 | return 0; | 263 | return 0; |
| @@ -269,11 +265,11 @@ int fcoe_transport_register(struct fcoe_transport *t) | |||
| 269 | EXPORT_SYMBOL_GPL(fcoe_transport_register); | 265 | EXPORT_SYMBOL_GPL(fcoe_transport_register); |
| 270 | 266 | ||
| 271 | /** | 267 | /** |
| 272 | * fcoe_transport_unregister - remove the tranport fro the fcoe transports list | 268 | * fcoe_transport_unregister() - Remove the tranport fro the fcoe transports list |
| 273 | * @t: ptr to the fcoe transport to be removed | 269 | * @t: ptr to the fcoe transport to be removed |
| 274 | * | 270 | * |
| 275 | * Returns: 0 for success | 271 | * Returns: 0 for success |
| 276 | **/ | 272 | */ |
| 277 | int fcoe_transport_unregister(struct fcoe_transport *t) | 273 | int fcoe_transport_unregister(struct fcoe_transport *t) |
| 278 | { | 274 | { |
| 279 | struct fcoe_transport *tt, *tmp; | 275 | struct fcoe_transport *tt, *tmp; |
| @@ -294,8 +290,8 @@ int fcoe_transport_unregister(struct fcoe_transport *t) | |||
| 294 | } | 290 | } |
| 295 | EXPORT_SYMBOL_GPL(fcoe_transport_unregister); | 291 | EXPORT_SYMBOL_GPL(fcoe_transport_unregister); |
| 296 | 292 | ||
| 297 | /* | 293 | /** |
| 298 | * fcoe_load_transport_driver - load an offload driver by alias name | 294 | * fcoe_load_transport_driver() - Load an offload driver by alias name |
| 299 | * @netdev: the target net device | 295 | * @netdev: the target net device |
| 300 | * | 296 | * |
| 301 | * Requests for an offload driver module as the fcoe transport, if fails, it | 297 | * Requests for an offload driver module as the fcoe transport, if fails, it |
| @@ -307,7 +303,7 @@ EXPORT_SYMBOL_GPL(fcoe_transport_unregister); | |||
| 307 | * 3. pure hw fcoe hba may not have netdev | 303 | * 3. pure hw fcoe hba may not have netdev |
| 308 | * | 304 | * |
| 309 | * Returns: 0 for success | 305 | * Returns: 0 for success |
| 310 | **/ | 306 | */ |
| 311 | int fcoe_load_transport_driver(struct net_device *netdev) | 307 | int fcoe_load_transport_driver(struct net_device *netdev) |
| 312 | { | 308 | { |
| 313 | struct pci_dev *pci; | 309 | struct pci_dev *pci; |
| @@ -335,14 +331,14 @@ int fcoe_load_transport_driver(struct net_device *netdev) | |||
| 335 | EXPORT_SYMBOL_GPL(fcoe_load_transport_driver); | 331 | EXPORT_SYMBOL_GPL(fcoe_load_transport_driver); |
| 336 | 332 | ||
| 337 | /** | 333 | /** |
| 338 | * fcoe_transport_attach - load transport to fcoe | 334 | * fcoe_transport_attach() - Load transport to fcoe |
| 339 | * @netdev: the netdev the transport to be attached to | 335 | * @netdev: the netdev the transport to be attached to |
| 340 | * | 336 | * |
| 341 | * This will look for existing offload driver, if not found, it falls back to | 337 | * This will look for existing offload driver, if not found, it falls back to |
| 342 | * the default sw hba (fcoe_sw) as its fcoe transport. | 338 | * the default sw hba (fcoe_sw) as its fcoe transport. |
| 343 | * | 339 | * |
| 344 | * Returns: 0 for success | 340 | * Returns: 0 for success |
| 345 | **/ | 341 | */ |
| 346 | int fcoe_transport_attach(struct net_device *netdev) | 342 | int fcoe_transport_attach(struct net_device *netdev) |
| 347 | { | 343 | { |
| 348 | struct fcoe_transport *t; | 344 | struct fcoe_transport *t; |
| @@ -373,11 +369,11 @@ int fcoe_transport_attach(struct net_device *netdev) | |||
| 373 | EXPORT_SYMBOL_GPL(fcoe_transport_attach); | 369 | EXPORT_SYMBOL_GPL(fcoe_transport_attach); |
| 374 | 370 | ||
| 375 | /** | 371 | /** |
| 376 | * fcoe_transport_release - unload transport from fcoe | 372 | * fcoe_transport_release() - Unload transport from fcoe |
| 377 | * @netdev: the net device on which fcoe is to be released | 373 | * @netdev: the net device on which fcoe is to be released |
| 378 | * | 374 | * |
| 379 | * Returns: 0 for success | 375 | * Returns: 0 for success |
| 380 | **/ | 376 | */ |
| 381 | int fcoe_transport_release(struct net_device *netdev) | 377 | int fcoe_transport_release(struct net_device *netdev) |
| 382 | { | 378 | { |
| 383 | struct fcoe_transport *t; | 379 | struct fcoe_transport *t; |
| @@ -410,12 +406,12 @@ int fcoe_transport_release(struct net_device *netdev) | |||
| 410 | EXPORT_SYMBOL_GPL(fcoe_transport_release); | 406 | EXPORT_SYMBOL_GPL(fcoe_transport_release); |
| 411 | 407 | ||
| 412 | /** | 408 | /** |
| 413 | * fcoe_transport_init - initializes fcoe transport layer | 409 | * fcoe_transport_init() - Initializes fcoe transport layer |
| 414 | * | 410 | * |
| 415 | * This prepares for the fcoe transport layer | 411 | * This prepares for the fcoe transport layer |
| 416 | * | 412 | * |
| 417 | * Returns: none | 413 | * Returns: none |
| 418 | **/ | 414 | */ |
| 419 | int __init fcoe_transport_init(void) | 415 | int __init fcoe_transport_init(void) |
| 420 | { | 416 | { |
| 421 | INIT_LIST_HEAD(&fcoe_transports); | 417 | INIT_LIST_HEAD(&fcoe_transports); |
| @@ -424,12 +420,13 @@ int __init fcoe_transport_init(void) | |||
| 424 | } | 420 | } |
| 425 | 421 | ||
| 426 | /** | 422 | /** |
| 427 | * fcoe_transport_exit - cleans up the fcoe transport layer | 423 | * fcoe_transport_exit() - Cleans up the fcoe transport layer |
| 424 | * | ||
| 428 | * This cleans up the fcoe transport layer. removing any transport on the list, | 425 | * This cleans up the fcoe transport layer. removing any transport on the list, |
| 429 | * note that the transport destroy func is not called here. | 426 | * note that the transport destroy func is not called here. |
| 430 | * | 427 | * |
| 431 | * Returns: none | 428 | * Returns: none |
| 432 | **/ | 429 | */ |
| 433 | int __exit fcoe_transport_exit(void) | 430 | int __exit fcoe_transport_exit(void) |
| 434 | { | 431 | { |
| 435 | struct fcoe_transport *t, *tmp; | 432 | struct fcoe_transport *t, *tmp; |
diff --git a/drivers/scsi/fcoe/fcoe_sw.c b/drivers/scsi/fcoe/fcoe_sw.c index dc4cd5e25760..da210eba1941 100644 --- a/drivers/scsi/fcoe/fcoe_sw.c +++ b/drivers/scsi/fcoe/fcoe_sw.c | |||
| @@ -104,19 +104,19 @@ static struct scsi_host_template fcoe_sw_shost_template = { | |||
| 104 | .max_sectors = 0xffff, | 104 | .max_sectors = 0xffff, |
| 105 | }; | 105 | }; |
| 106 | 106 | ||
| 107 | /* | 107 | /** |
| 108 | * fcoe_sw_lport_config - sets up the fc_lport | 108 | * fcoe_sw_lport_config() - sets up the fc_lport |
| 109 | * @lp: ptr to the fc_lport | 109 | * @lp: ptr to the fc_lport |
| 110 | * @shost: ptr to the parent scsi host | 110 | * @shost: ptr to the parent scsi host |
| 111 | * | 111 | * |
| 112 | * Returns: 0 for success | 112 | * Returns: 0 for success |
| 113 | * | ||
| 114 | */ | 113 | */ |
| 115 | static int fcoe_sw_lport_config(struct fc_lport *lp) | 114 | static int fcoe_sw_lport_config(struct fc_lport *lp) |
| 116 | { | 115 | { |
| 117 | int i = 0; | 116 | int i = 0; |
| 118 | 117 | ||
| 119 | lp->link_status = 0; | 118 | lp->link_up = 0; |
| 119 | lp->qfull = 0; | ||
| 120 | lp->max_retry_count = 3; | 120 | lp->max_retry_count = 3; |
| 121 | lp->e_d_tov = 2 * 1000; /* FC-FS default */ | 121 | lp->e_d_tov = 2 * 1000; /* FC-FS default */ |
| 122 | lp->r_a_tov = 2 * 2 * 1000; | 122 | lp->r_a_tov = 2 * 2 * 1000; |
| @@ -136,16 +136,14 @@ static int fcoe_sw_lport_config(struct fc_lport *lp) | |||
| 136 | return 0; | 136 | return 0; |
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | /* | 139 | /** |
| 140 | * fcoe_sw_netdev_config - sets up fcoe_softc for lport and network | 140 | * fcoe_sw_netdev_config() - Set up netdev for SW FCoE |
| 141 | * related properties | ||
| 142 | * @lp : ptr to the fc_lport | 141 | * @lp : ptr to the fc_lport |
| 143 | * @netdev : ptr to the associated netdevice struct | 142 | * @netdev : ptr to the associated netdevice struct |
| 144 | * | 143 | * |
| 145 | * Must be called after fcoe_sw_lport_config() as it will use lport mutex | 144 | * Must be called after fcoe_sw_lport_config() as it will use lport mutex |
| 146 | * | 145 | * |
| 147 | * Returns : 0 for success | 146 | * Returns : 0 for success |
| 148 | * | ||
| 149 | */ | 147 | */ |
| 150 | static int fcoe_sw_netdev_config(struct fc_lport *lp, struct net_device *netdev) | 148 | static int fcoe_sw_netdev_config(struct fc_lport *lp, struct net_device *netdev) |
| 151 | { | 149 | { |
| @@ -181,9 +179,8 @@ static int fcoe_sw_netdev_config(struct fc_lport *lp, struct net_device *netdev) | |||
| 181 | if (fc_set_mfs(lp, mfs)) | 179 | if (fc_set_mfs(lp, mfs)) |
| 182 | return -EINVAL; | 180 | return -EINVAL; |
| 183 | 181 | ||
| 184 | lp->link_status = ~FC_PAUSE & ~FC_LINK_UP; | ||
| 185 | if (!fcoe_link_ok(lp)) | 182 | if (!fcoe_link_ok(lp)) |
| 186 | lp->link_status |= FC_LINK_UP; | 183 | lp->link_up = 1; |
| 187 | 184 | ||
| 188 | /* offload features support */ | 185 | /* offload features support */ |
| 189 | if (fc->real_dev->features & NETIF_F_SG) | 186 | if (fc->real_dev->features & NETIF_F_SG) |
| @@ -191,6 +188,7 @@ static int fcoe_sw_netdev_config(struct fc_lport *lp, struct net_device *netdev) | |||
| 191 | 188 | ||
| 192 | 189 | ||
| 193 | skb_queue_head_init(&fc->fcoe_pending_queue); | 190 | skb_queue_head_init(&fc->fcoe_pending_queue); |
| 191 | fc->fcoe_pending_queue_active = 0; | ||
| 194 | 192 | ||
| 195 | /* setup Source Mac Address */ | 193 | /* setup Source Mac Address */ |
| 196 | memcpy(fc->ctl_src_addr, fc->real_dev->dev_addr, | 194 | memcpy(fc->ctl_src_addr, fc->real_dev->dev_addr, |
| @@ -224,16 +222,15 @@ static int fcoe_sw_netdev_config(struct fc_lport *lp, struct net_device *netdev) | |||
| 224 | return 0; | 222 | return 0; |
| 225 | } | 223 | } |
| 226 | 224 | ||
| 227 | /* | 225 | /** |
| 228 | * fcoe_sw_shost_config - sets up fc_lport->host | 226 | * fcoe_sw_shost_config() - Sets up fc_lport->host |
| 229 | * @lp : ptr to the fc_lport | 227 | * @lp : ptr to the fc_lport |
| 230 | * @shost : ptr to the associated scsi host | 228 | * @shost : ptr to the associated scsi host |
| 231 | * @dev : device associated to scsi host | 229 | * @dev : device associated to scsi host |
| 232 | * | 230 | * |
| 233 | * Must be called after fcoe_sw_lport_config) and fcoe_sw_netdev_config() | 231 | * Must be called after fcoe_sw_lport_config() and fcoe_sw_netdev_config() |
| 234 | * | 232 | * |
| 235 | * Returns : 0 for success | 233 | * Returns : 0 for success |
| 236 | * | ||
| 237 | */ | 234 | */ |
| 238 | static int fcoe_sw_shost_config(struct fc_lport *lp, struct Scsi_Host *shost, | 235 | static int fcoe_sw_shost_config(struct fc_lport *lp, struct Scsi_Host *shost, |
| 239 | struct device *dev) | 236 | struct device *dev) |
| @@ -261,8 +258,8 @@ static int fcoe_sw_shost_config(struct fc_lport *lp, struct Scsi_Host *shost, | |||
| 261 | return 0; | 258 | return 0; |
| 262 | } | 259 | } |
| 263 | 260 | ||
| 264 | /* | 261 | /** |
| 265 | * fcoe_sw_em_config - allocates em for this lport | 262 | * fcoe_sw_em_config() - allocates em for this lport |
| 266 | * @lp: the port that em is to allocated for | 263 | * @lp: the port that em is to allocated for |
| 267 | * | 264 | * |
| 268 | * Returns : 0 on success | 265 | * Returns : 0 on success |
| @@ -279,8 +276,8 @@ static inline int fcoe_sw_em_config(struct fc_lport *lp) | |||
| 279 | return 0; | 276 | return 0; |
| 280 | } | 277 | } |
| 281 | 278 | ||
| 282 | /* | 279 | /** |
| 283 | * fcoe_sw_destroy - FCoE software HBA tear-down function | 280 | * fcoe_sw_destroy() - FCoE software HBA tear-down function |
| 284 | * @netdev: ptr to the associated net_device | 281 | * @netdev: ptr to the associated net_device |
| 285 | * | 282 | * |
| 286 | * Returns: 0 if link is OK for use by FCoE. | 283 | * Returns: 0 if link is OK for use by FCoE. |
| @@ -301,7 +298,7 @@ static int fcoe_sw_destroy(struct net_device *netdev) | |||
| 301 | if (!lp) | 298 | if (!lp) |
| 302 | return -ENODEV; | 299 | return -ENODEV; |
| 303 | 300 | ||
| 304 | fc = fcoe_softc(lp); | 301 | fc = lport_priv(lp); |
| 305 | 302 | ||
| 306 | /* Logout of the fabric */ | 303 | /* Logout of the fabric */ |
| 307 | fc_fabric_logoff(lp); | 304 | fc_fabric_logoff(lp); |
| @@ -353,8 +350,8 @@ static struct libfc_function_template fcoe_sw_libfc_fcn_templ = { | |||
| 353 | .frame_send = fcoe_xmit, | 350 | .frame_send = fcoe_xmit, |
| 354 | }; | 351 | }; |
| 355 | 352 | ||
| 356 | /* | 353 | /** |
| 357 | * fcoe_sw_create - this function creates the fcoe interface | 354 | * fcoe_sw_create() - this function creates the fcoe interface |
| 358 | * @netdev: pointer the associated netdevice | 355 | * @netdev: pointer the associated netdevice |
| 359 | * | 356 | * |
| 360 | * Creates fc_lport struct and scsi_host for lport, configures lport | 357 | * Creates fc_lport struct and scsi_host for lport, configures lport |
| @@ -440,8 +437,8 @@ out_host_put: | |||
| 440 | return rc; | 437 | return rc; |
| 441 | } | 438 | } |
| 442 | 439 | ||
| 443 | /* | 440 | /** |
| 444 | * fcoe_sw_match - the fcoe sw transport match function | 441 | * fcoe_sw_match() - The FCoE SW transport match function |
| 445 | * | 442 | * |
| 446 | * Returns : false always | 443 | * Returns : false always |
| 447 | */ | 444 | */ |
| @@ -461,8 +458,8 @@ struct fcoe_transport fcoe_sw_transport = { | |||
| 461 | .device = 0xffff, | 458 | .device = 0xffff, |
| 462 | }; | 459 | }; |
| 463 | 460 | ||
| 464 | /* | 461 | /** |
| 465 | * fcoe_sw_init - registers fcoe_sw_transport | 462 | * fcoe_sw_init() - Registers fcoe_sw_transport |
| 466 | * | 463 | * |
| 467 | * Returns : 0 on success | 464 | * Returns : 0 on success |
| 468 | */ | 465 | */ |
| @@ -471,17 +468,22 @@ int __init fcoe_sw_init(void) | |||
| 471 | /* attach to scsi transport */ | 468 | /* attach to scsi transport */ |
| 472 | scsi_transport_fcoe_sw = | 469 | scsi_transport_fcoe_sw = |
| 473 | fc_attach_transport(&fcoe_sw_transport_function); | 470 | fc_attach_transport(&fcoe_sw_transport_function); |
| 471 | |||
| 474 | if (!scsi_transport_fcoe_sw) { | 472 | if (!scsi_transport_fcoe_sw) { |
| 475 | printk(KERN_ERR "fcoe_sw_init:fc_attach_transport() failed\n"); | 473 | printk(KERN_ERR "fcoe_sw_init:fc_attach_transport() failed\n"); |
| 476 | return -ENODEV; | 474 | return -ENODEV; |
| 477 | } | 475 | } |
| 476 | |||
| 477 | mutex_init(&fcoe_sw_transport.devlock); | ||
| 478 | INIT_LIST_HEAD(&fcoe_sw_transport.devlist); | ||
| 479 | |||
| 478 | /* register sw transport */ | 480 | /* register sw transport */ |
| 479 | fcoe_transport_register(&fcoe_sw_transport); | 481 | fcoe_transport_register(&fcoe_sw_transport); |
| 480 | return 0; | 482 | return 0; |
| 481 | } | 483 | } |
| 482 | 484 | ||
| 483 | /* | 485 | /** |
| 484 | * fcoe_sw_exit - unregisters fcoe_sw_transport | 486 | * fcoe_sw_exit() - Unregisters fcoe_sw_transport |
| 485 | * | 487 | * |
| 486 | * Returns : 0 on success | 488 | * Returns : 0 on success |
| 487 | */ | 489 | */ |
diff --git a/drivers/scsi/fcoe/libfcoe.c b/drivers/scsi/fcoe/libfcoe.c index e419f486cdb3..5548bf3bb58b 100644 --- a/drivers/scsi/fcoe/libfcoe.c +++ b/drivers/scsi/fcoe/libfcoe.c | |||
| @@ -49,6 +49,7 @@ | |||
| 49 | static int debug_fcoe; | 49 | static int debug_fcoe; |
| 50 | 50 | ||
| 51 | #define FCOE_MAX_QUEUE_DEPTH 256 | 51 | #define FCOE_MAX_QUEUE_DEPTH 256 |
| 52 | #define FCOE_LOW_QUEUE_DEPTH 32 | ||
| 52 | 53 | ||
| 53 | /* destination address mode */ | 54 | /* destination address mode */ |
| 54 | #define FCOE_GW_ADDR_MODE 0x00 | 55 | #define FCOE_GW_ADDR_MODE 0x00 |
| @@ -69,8 +70,6 @@ struct fcoe_percpu_s *fcoe_percpu[NR_CPUS]; | |||
| 69 | 70 | ||
| 70 | /* Function Prototyes */ | 71 | /* Function Prototyes */ |
| 71 | static int fcoe_check_wait_queue(struct fc_lport *); | 72 | static int fcoe_check_wait_queue(struct fc_lport *); |
| 72 | static void fcoe_insert_wait_queue_head(struct fc_lport *, struct sk_buff *); | ||
| 73 | static void fcoe_insert_wait_queue(struct fc_lport *, struct sk_buff *); | ||
| 74 | static void fcoe_recv_flogi(struct fcoe_softc *, struct fc_frame *, u8 *); | 73 | static void fcoe_recv_flogi(struct fcoe_softc *, struct fc_frame *, u8 *); |
| 75 | #ifdef CONFIG_HOTPLUG_CPU | 74 | #ifdef CONFIG_HOTPLUG_CPU |
| 76 | static int fcoe_cpu_callback(struct notifier_block *, ulong, void *); | 75 | static int fcoe_cpu_callback(struct notifier_block *, ulong, void *); |
| @@ -91,13 +90,13 @@ static struct notifier_block fcoe_cpu_notifier = { | |||
| 91 | }; | 90 | }; |
| 92 | 91 | ||
| 93 | /** | 92 | /** |
| 94 | * fcoe_create_percpu_data - creates the associated cpu data | 93 | * fcoe_create_percpu_data() - creates the associated cpu data |
| 95 | * @cpu: index for the cpu where fcoe cpu data will be created | 94 | * @cpu: index for the cpu where fcoe cpu data will be created |
| 96 | * | 95 | * |
| 97 | * create percpu stats block, from cpu add notifier | 96 | * create percpu stats block, from cpu add notifier |
| 98 | * | 97 | * |
| 99 | * Returns: none | 98 | * Returns: none |
| 100 | **/ | 99 | */ |
| 101 | static void fcoe_create_percpu_data(int cpu) | 100 | static void fcoe_create_percpu_data(int cpu) |
| 102 | { | 101 | { |
| 103 | struct fc_lport *lp; | 102 | struct fc_lport *lp; |
| @@ -115,13 +114,13 @@ static void fcoe_create_percpu_data(int cpu) | |||
| 115 | } | 114 | } |
| 116 | 115 | ||
| 117 | /** | 116 | /** |
| 118 | * fcoe_destroy_percpu_data - destroys the associated cpu data | 117 | * fcoe_destroy_percpu_data() - destroys the associated cpu data |
| 119 | * @cpu: index for the cpu where fcoe cpu data will destroyed | 118 | * @cpu: index for the cpu where fcoe cpu data will destroyed |
| 120 | * | 119 | * |
| 121 | * destroy percpu stats block called by cpu add/remove notifier | 120 | * destroy percpu stats block called by cpu add/remove notifier |
| 122 | * | 121 | * |
| 123 | * Retuns: none | 122 | * Retuns: none |
| 124 | **/ | 123 | */ |
| 125 | static void fcoe_destroy_percpu_data(int cpu) | 124 | static void fcoe_destroy_percpu_data(int cpu) |
| 126 | { | 125 | { |
| 127 | struct fc_lport *lp; | 126 | struct fc_lport *lp; |
| @@ -137,7 +136,7 @@ static void fcoe_destroy_percpu_data(int cpu) | |||
| 137 | } | 136 | } |
| 138 | 137 | ||
| 139 | /** | 138 | /** |
| 140 | * fcoe_cpu_callback - fcoe cpu hotplug event callback | 139 | * fcoe_cpu_callback() - fcoe cpu hotplug event callback |
| 141 | * @nfb: callback data block | 140 | * @nfb: callback data block |
| 142 | * @action: event triggering the callback | 141 | * @action: event triggering the callback |
| 143 | * @hcpu: index for the cpu of this event | 142 | * @hcpu: index for the cpu of this event |
| @@ -145,7 +144,7 @@ static void fcoe_destroy_percpu_data(int cpu) | |||
| 145 | * this creates or destroys per cpu data for fcoe | 144 | * this creates or destroys per cpu data for fcoe |
| 146 | * | 145 | * |
| 147 | * Returns NOTIFY_OK always. | 146 | * Returns NOTIFY_OK always. |
| 148 | **/ | 147 | */ |
| 149 | static int fcoe_cpu_callback(struct notifier_block *nfb, unsigned long action, | 148 | static int fcoe_cpu_callback(struct notifier_block *nfb, unsigned long action, |
| 150 | void *hcpu) | 149 | void *hcpu) |
| 151 | { | 150 | { |
| @@ -166,7 +165,7 @@ static int fcoe_cpu_callback(struct notifier_block *nfb, unsigned long action, | |||
| 166 | #endif /* CONFIG_HOTPLUG_CPU */ | 165 | #endif /* CONFIG_HOTPLUG_CPU */ |
| 167 | 166 | ||
| 168 | /** | 167 | /** |
| 169 | * fcoe_rcv - this is the fcoe receive function called by NET_RX_SOFTIRQ | 168 | * fcoe_rcv() - this is the fcoe receive function called by NET_RX_SOFTIRQ |
| 170 | * @skb: the receive skb | 169 | * @skb: the receive skb |
| 171 | * @dev: associated net device | 170 | * @dev: associated net device |
| 172 | * @ptype: context | 171 | * @ptype: context |
| @@ -175,7 +174,7 @@ static int fcoe_cpu_callback(struct notifier_block *nfb, unsigned long action, | |||
| 175 | * this function will receive the packet and build fc frame and pass it up | 174 | * this function will receive the packet and build fc frame and pass it up |
| 176 | * | 175 | * |
| 177 | * Returns: 0 for success | 176 | * Returns: 0 for success |
| 178 | **/ | 177 | */ |
| 179 | int fcoe_rcv(struct sk_buff *skb, struct net_device *dev, | 178 | int fcoe_rcv(struct sk_buff *skb, struct net_device *dev, |
| 180 | struct packet_type *ptype, struct net_device *olddev) | 179 | struct packet_type *ptype, struct net_device *olddev) |
| 181 | { | 180 | { |
| @@ -265,11 +264,11 @@ err2: | |||
| 265 | EXPORT_SYMBOL_GPL(fcoe_rcv); | 264 | EXPORT_SYMBOL_GPL(fcoe_rcv); |
| 266 | 265 | ||
| 267 | /** | 266 | /** |
| 268 | * fcoe_start_io - pass to netdev to start xmit for fcoe | 267 | * fcoe_start_io() - pass to netdev to start xmit for fcoe |
| 269 | * @skb: the skb to be xmitted | 268 | * @skb: the skb to be xmitted |
| 270 | * | 269 | * |
| 271 | * Returns: 0 for success | 270 | * Returns: 0 for success |
| 272 | **/ | 271 | */ |
| 273 | static inline int fcoe_start_io(struct sk_buff *skb) | 272 | static inline int fcoe_start_io(struct sk_buff *skb) |
| 274 | { | 273 | { |
| 275 | int rc; | 274 | int rc; |
| @@ -283,12 +282,12 @@ static inline int fcoe_start_io(struct sk_buff *skb) | |||
| 283 | } | 282 | } |
| 284 | 283 | ||
| 285 | /** | 284 | /** |
| 286 | * fcoe_get_paged_crc_eof - in case we need alloc a page for crc_eof | 285 | * fcoe_get_paged_crc_eof() - in case we need alloc a page for crc_eof |
| 287 | * @skb: the skb to be xmitted | 286 | * @skb: the skb to be xmitted |
| 288 | * @tlen: total len | 287 | * @tlen: total len |
| 289 | * | 288 | * |
| 290 | * Returns: 0 for success | 289 | * Returns: 0 for success |
| 291 | **/ | 290 | */ |
| 292 | static int fcoe_get_paged_crc_eof(struct sk_buff *skb, int tlen) | 291 | static int fcoe_get_paged_crc_eof(struct sk_buff *skb, int tlen) |
| 293 | { | 292 | { |
| 294 | struct fcoe_percpu_s *fps; | 293 | struct fcoe_percpu_s *fps; |
| @@ -326,13 +325,12 @@ static int fcoe_get_paged_crc_eof(struct sk_buff *skb, int tlen) | |||
| 326 | } | 325 | } |
| 327 | 326 | ||
| 328 | /** | 327 | /** |
| 329 | * fcoe_fc_crc - calculates FC CRC in this fcoe skb | 328 | * fcoe_fc_crc() - calculates FC CRC in this fcoe skb |
| 330 | * @fp: the fc_frame containg data to be checksummed | 329 | * @fp: the fc_frame containg data to be checksummed |
| 331 | * | 330 | * |
| 332 | * This uses crc32() to calculate the crc for fc frame | 331 | * This uses crc32() to calculate the crc for fc frame |
| 333 | * Return : 32 bit crc | 332 | * Return : 32 bit crc |
| 334 | * | 333 | */ |
| 335 | **/ | ||
| 336 | u32 fcoe_fc_crc(struct fc_frame *fp) | 334 | u32 fcoe_fc_crc(struct fc_frame *fp) |
| 337 | { | 335 | { |
| 338 | struct sk_buff *skb = fp_skb(fp); | 336 | struct sk_buff *skb = fp_skb(fp); |
| @@ -363,13 +361,12 @@ u32 fcoe_fc_crc(struct fc_frame *fp) | |||
| 363 | EXPORT_SYMBOL_GPL(fcoe_fc_crc); | 361 | EXPORT_SYMBOL_GPL(fcoe_fc_crc); |
| 364 | 362 | ||
| 365 | /** | 363 | /** |
| 366 | * fcoe_xmit - FCoE frame transmit function | 364 | * fcoe_xmit() - FCoE frame transmit function |
| 367 | * @lp: the associated local port | 365 | * @lp: the associated local port |
| 368 | * @fp: the fc_frame to be transmitted | 366 | * @fp: the fc_frame to be transmitted |
| 369 | * | 367 | * |
| 370 | * Return : 0 for success | 368 | * Return : 0 for success |
| 371 | * | 369 | */ |
| 372 | **/ | ||
| 373 | int fcoe_xmit(struct fc_lport *lp, struct fc_frame *fp) | 370 | int fcoe_xmit(struct fc_lport *lp, struct fc_frame *fp) |
| 374 | { | 371 | { |
| 375 | int wlen, rc = 0; | 372 | int wlen, rc = 0; |
| @@ -389,7 +386,7 @@ int fcoe_xmit(struct fc_lport *lp, struct fc_frame *fp) | |||
| 389 | 386 | ||
| 390 | WARN_ON((fr_len(fp) % sizeof(u32)) != 0); | 387 | WARN_ON((fr_len(fp) % sizeof(u32)) != 0); |
| 391 | 388 | ||
| 392 | fc = fcoe_softc(lp); | 389 | fc = lport_priv(lp); |
| 393 | /* | 390 | /* |
| 394 | * if it is a flogi then we need to learn gw-addr | 391 | * if it is a flogi then we need to learn gw-addr |
| 395 | * and my own fcid | 392 | * and my own fcid |
| @@ -439,7 +436,7 @@ int fcoe_xmit(struct fc_lport *lp, struct fc_frame *fp) | |||
| 439 | if (skb_is_nonlinear(skb)) { | 436 | if (skb_is_nonlinear(skb)) { |
| 440 | skb_frag_t *frag; | 437 | skb_frag_t *frag; |
| 441 | if (fcoe_get_paged_crc_eof(skb, tlen)) { | 438 | if (fcoe_get_paged_crc_eof(skb, tlen)) { |
| 442 | kfree(skb); | 439 | kfree_skb(skb); |
| 443 | return -ENOMEM; | 440 | return -ENOMEM; |
| 444 | } | 441 | } |
| 445 | frag = &skb_shinfo(skb)->frags[skb_shinfo(skb)->nr_frags - 1]; | 442 | frag = &skb_shinfo(skb)->frags[skb_shinfo(skb)->nr_frags - 1]; |
| @@ -502,21 +499,22 @@ int fcoe_xmit(struct fc_lport *lp, struct fc_frame *fp) | |||
| 502 | rc = fcoe_start_io(skb); | 499 | rc = fcoe_start_io(skb); |
| 503 | 500 | ||
| 504 | if (rc) { | 501 | if (rc) { |
| 505 | fcoe_insert_wait_queue(lp, skb); | 502 | spin_lock_bh(&fc->fcoe_pending_queue.lock); |
| 503 | __skb_queue_tail(&fc->fcoe_pending_queue, skb); | ||
| 504 | spin_unlock_bh(&fc->fcoe_pending_queue.lock); | ||
| 506 | if (fc->fcoe_pending_queue.qlen > FCOE_MAX_QUEUE_DEPTH) | 505 | if (fc->fcoe_pending_queue.qlen > FCOE_MAX_QUEUE_DEPTH) |
| 507 | fc_pause(lp); | 506 | lp->qfull = 1; |
| 508 | } | 507 | } |
| 509 | 508 | ||
| 510 | return 0; | 509 | return 0; |
| 511 | } | 510 | } |
| 512 | EXPORT_SYMBOL_GPL(fcoe_xmit); | 511 | EXPORT_SYMBOL_GPL(fcoe_xmit); |
| 513 | 512 | ||
| 514 | /* | 513 | /** |
| 515 | * fcoe_percpu_receive_thread - recv thread per cpu | 514 | * fcoe_percpu_receive_thread() - recv thread per cpu |
| 516 | * @arg: ptr to the fcoe per cpu struct | 515 | * @arg: ptr to the fcoe per cpu struct |
| 517 | * | 516 | * |
| 518 | * Return: 0 for success | 517 | * Return: 0 for success |
| 519 | * | ||
| 520 | */ | 518 | */ |
| 521 | int fcoe_percpu_receive_thread(void *arg) | 519 | int fcoe_percpu_receive_thread(void *arg) |
| 522 | { | 520 | { |
| @@ -533,7 +531,7 @@ int fcoe_percpu_receive_thread(void *arg) | |||
| 533 | struct fcoe_softc *fc; | 531 | struct fcoe_softc *fc; |
| 534 | struct fcoe_hdr *hp; | 532 | struct fcoe_hdr *hp; |
| 535 | 533 | ||
| 536 | set_user_nice(current, 19); | 534 | set_user_nice(current, -20); |
| 537 | 535 | ||
| 538 | while (!kthread_should_stop()) { | 536 | while (!kthread_should_stop()) { |
| 539 | 537 | ||
| @@ -658,7 +656,7 @@ int fcoe_percpu_receive_thread(void *arg) | |||
| 658 | } | 656 | } |
| 659 | 657 | ||
| 660 | /** | 658 | /** |
| 661 | * fcoe_recv_flogi - flogi receive function | 659 | * fcoe_recv_flogi() - flogi receive function |
| 662 | * @fc: associated fcoe_softc | 660 | * @fc: associated fcoe_softc |
| 663 | * @fp: the recieved frame | 661 | * @fp: the recieved frame |
| 664 | * @sa: the source address of this flogi | 662 | * @sa: the source address of this flogi |
| @@ -667,7 +665,7 @@ int fcoe_percpu_receive_thread(void *arg) | |||
| 667 | * mac address for the initiator, eitehr OUI based or GW based. | 665 | * mac address for the initiator, eitehr OUI based or GW based. |
| 668 | * | 666 | * |
| 669 | * Returns: none | 667 | * Returns: none |
| 670 | **/ | 668 | */ |
| 671 | static void fcoe_recv_flogi(struct fcoe_softc *fc, struct fc_frame *fp, u8 *sa) | 669 | static void fcoe_recv_flogi(struct fcoe_softc *fc, struct fc_frame *fp, u8 *sa) |
| 672 | { | 670 | { |
| 673 | struct fc_frame_header *fh; | 671 | struct fc_frame_header *fh; |
| @@ -715,32 +713,23 @@ static void fcoe_recv_flogi(struct fcoe_softc *fc, struct fc_frame *fp, u8 *sa) | |||
| 715 | } | 713 | } |
| 716 | 714 | ||
| 717 | /** | 715 | /** |
| 718 | * fcoe_watchdog - fcoe timer callback | 716 | * fcoe_watchdog() - fcoe timer callback |
| 719 | * @vp: | 717 | * @vp: |
| 720 | * | 718 | * |
| 721 | * This checks the pending queue length for fcoe and put fcoe to be paused state | 719 | * This checks the pending queue length for fcoe and set lport qfull |
| 722 | * if the FCOE_MAX_QUEUE_DEPTH is reached. This is done for all fc_lport on the | 720 | * if the FCOE_MAX_QUEUE_DEPTH is reached. This is done for all fc_lport on the |
| 723 | * fcoe_hostlist. | 721 | * fcoe_hostlist. |
| 724 | * | 722 | * |
| 725 | * Returns: 0 for success | 723 | * Returns: 0 for success |
| 726 | **/ | 724 | */ |
| 727 | void fcoe_watchdog(ulong vp) | 725 | void fcoe_watchdog(ulong vp) |
| 728 | { | 726 | { |
| 729 | struct fc_lport *lp; | ||
| 730 | struct fcoe_softc *fc; | 727 | struct fcoe_softc *fc; |
| 731 | int paused = 0; | ||
| 732 | 728 | ||
| 733 | read_lock(&fcoe_hostlist_lock); | 729 | read_lock(&fcoe_hostlist_lock); |
| 734 | list_for_each_entry(fc, &fcoe_hostlist, list) { | 730 | list_for_each_entry(fc, &fcoe_hostlist, list) { |
| 735 | lp = fc->lp; | 731 | if (fc->lp) |
| 736 | if (lp) { | 732 | fcoe_check_wait_queue(fc->lp); |
| 737 | if (fc->fcoe_pending_queue.qlen > FCOE_MAX_QUEUE_DEPTH) | ||
| 738 | paused = 1; | ||
| 739 | if (fcoe_check_wait_queue(lp) < FCOE_MAX_QUEUE_DEPTH) { | ||
| 740 | if (paused) | ||
| 741 | fc_unpause(lp); | ||
| 742 | } | ||
| 743 | } | ||
| 744 | } | 733 | } |
| 745 | read_unlock(&fcoe_hostlist_lock); | 734 | read_unlock(&fcoe_hostlist_lock); |
| 746 | 735 | ||
| @@ -750,96 +739,64 @@ void fcoe_watchdog(ulong vp) | |||
| 750 | 739 | ||
| 751 | 740 | ||
| 752 | /** | 741 | /** |
| 753 | * fcoe_check_wait_queue - put the skb into fcoe pending xmit queue | 742 | * fcoe_check_wait_queue() - put the skb into fcoe pending xmit queue |
| 754 | * @lp: the fc_port for this skb | 743 | * @lp: the fc_port for this skb |
| 755 | * @skb: the associated skb to be xmitted | 744 | * @skb: the associated skb to be xmitted |
| 756 | * | 745 | * |
| 757 | * This empties the wait_queue, dequeue the head of the wait_queue queue | 746 | * This empties the wait_queue, dequeue the head of the wait_queue queue |
| 758 | * and calls fcoe_start_io() for each packet, if all skb have been | 747 | * and calls fcoe_start_io() for each packet, if all skb have been |
| 759 | * transmitted, return 0 if a error occurs, then restore wait_queue and | 748 | * transmitted, return qlen or -1 if a error occurs, then restore |
| 760 | * try again later. | 749 | * wait_queue and try again later. |
| 761 | * | 750 | * |
| 762 | * The wait_queue is used when the skb transmit fails. skb will go | 751 | * The wait_queue is used when the skb transmit fails. skb will go |
| 763 | * in the wait_queue which will be emptied by the time function OR | 752 | * in the wait_queue which will be emptied by the time function OR |
| 764 | * by the next skb transmit. | 753 | * by the next skb transmit. |
| 765 | * | 754 | * |
| 766 | * Returns: 0 for success | 755 | * Returns: 0 for success |
| 767 | **/ | 756 | */ |
| 768 | static int fcoe_check_wait_queue(struct fc_lport *lp) | 757 | static int fcoe_check_wait_queue(struct fc_lport *lp) |
| 769 | { | 758 | { |
| 770 | int rc, unpause = 0; | 759 | struct fcoe_softc *fc = lport_priv(lp); |
| 771 | int paused = 0; | ||
| 772 | struct sk_buff *skb; | 760 | struct sk_buff *skb; |
| 773 | struct fcoe_softc *fc; | 761 | int rc = -1; |
| 774 | 762 | ||
| 775 | fc = fcoe_softc(lp); | ||
| 776 | spin_lock_bh(&fc->fcoe_pending_queue.lock); | 763 | spin_lock_bh(&fc->fcoe_pending_queue.lock); |
| 764 | if (fc->fcoe_pending_queue_active) | ||
| 765 | goto out; | ||
| 766 | fc->fcoe_pending_queue_active = 1; | ||
| 777 | 767 | ||
| 778 | /* | 768 | while (fc->fcoe_pending_queue.qlen) { |
| 779 | * is this interface paused? | 769 | /* keep qlen > 0 until fcoe_start_io succeeds */ |
| 780 | */ | 770 | fc->fcoe_pending_queue.qlen++; |
| 781 | if (fc->fcoe_pending_queue.qlen > FCOE_MAX_QUEUE_DEPTH) | 771 | skb = __skb_dequeue(&fc->fcoe_pending_queue); |
| 782 | paused = 1; | ||
| 783 | if (fc->fcoe_pending_queue.qlen) { | ||
| 784 | while ((skb = __skb_dequeue(&fc->fcoe_pending_queue)) != NULL) { | ||
| 785 | spin_unlock_bh(&fc->fcoe_pending_queue.lock); | ||
| 786 | rc = fcoe_start_io(skb); | ||
| 787 | if (rc) { | ||
| 788 | fcoe_insert_wait_queue_head(lp, skb); | ||
| 789 | return rc; | ||
| 790 | } | ||
| 791 | spin_lock_bh(&fc->fcoe_pending_queue.lock); | ||
| 792 | } | ||
| 793 | if (fc->fcoe_pending_queue.qlen < FCOE_MAX_QUEUE_DEPTH) | ||
| 794 | unpause = 1; | ||
| 795 | } | ||
| 796 | spin_unlock_bh(&fc->fcoe_pending_queue.lock); | ||
| 797 | if ((unpause) && (paused)) | ||
| 798 | fc_unpause(lp); | ||
| 799 | return fc->fcoe_pending_queue.qlen; | ||
| 800 | } | ||
| 801 | |||
| 802 | /** | ||
| 803 | * fcoe_insert_wait_queue_head - puts skb to fcoe pending queue head | ||
| 804 | * @lp: the fc_port for this skb | ||
| 805 | * @skb: the associated skb to be xmitted | ||
| 806 | * | ||
| 807 | * Returns: none | ||
| 808 | **/ | ||
| 809 | static void fcoe_insert_wait_queue_head(struct fc_lport *lp, | ||
| 810 | struct sk_buff *skb) | ||
| 811 | { | ||
| 812 | struct fcoe_softc *fc; | ||
| 813 | 772 | ||
| 814 | fc = fcoe_softc(lp); | 773 | spin_unlock_bh(&fc->fcoe_pending_queue.lock); |
| 815 | spin_lock_bh(&fc->fcoe_pending_queue.lock); | 774 | rc = fcoe_start_io(skb); |
| 816 | __skb_queue_head(&fc->fcoe_pending_queue, skb); | 775 | spin_lock_bh(&fc->fcoe_pending_queue.lock); |
| 817 | spin_unlock_bh(&fc->fcoe_pending_queue.lock); | ||
| 818 | } | ||
| 819 | 776 | ||
| 820 | /** | 777 | if (rc) { |
| 821 | * fcoe_insert_wait_queue - put the skb into fcoe pending queue tail | 778 | __skb_queue_head(&fc->fcoe_pending_queue, skb); |
| 822 | * @lp: the fc_port for this skb | 779 | /* undo temporary increment above */ |
| 823 | * @skb: the associated skb to be xmitted | 780 | fc->fcoe_pending_queue.qlen--; |
| 824 | * | 781 | break; |
| 825 | * Returns: none | 782 | } |
| 826 | **/ | 783 | /* undo temporary increment above */ |
| 827 | static void fcoe_insert_wait_queue(struct fc_lport *lp, | 784 | fc->fcoe_pending_queue.qlen--; |
| 828 | struct sk_buff *skb) | 785 | } |
| 829 | { | ||
| 830 | struct fcoe_softc *fc; | ||
| 831 | 786 | ||
| 832 | fc = fcoe_softc(lp); | 787 | if (fc->fcoe_pending_queue.qlen < FCOE_LOW_QUEUE_DEPTH) |
| 833 | spin_lock_bh(&fc->fcoe_pending_queue.lock); | 788 | lp->qfull = 0; |
| 834 | __skb_queue_tail(&fc->fcoe_pending_queue, skb); | 789 | fc->fcoe_pending_queue_active = 0; |
| 790 | rc = fc->fcoe_pending_queue.qlen; | ||
| 791 | out: | ||
| 835 | spin_unlock_bh(&fc->fcoe_pending_queue.lock); | 792 | spin_unlock_bh(&fc->fcoe_pending_queue.lock); |
| 793 | return rc; | ||
| 836 | } | 794 | } |
| 837 | 795 | ||
| 838 | /** | 796 | /** |
| 839 | * fcoe_dev_setup - setup link change notification interface | 797 | * fcoe_dev_setup() - setup link change notification interface |
| 840 | * | 798 | */ |
| 841 | **/ | 799 | static void fcoe_dev_setup() |
| 842 | static void fcoe_dev_setup(void) | ||
| 843 | { | 800 | { |
| 844 | /* | 801 | /* |
| 845 | * here setup a interface specific wd time to | 802 | * here setup a interface specific wd time to |
| @@ -849,15 +806,15 @@ static void fcoe_dev_setup(void) | |||
| 849 | } | 806 | } |
| 850 | 807 | ||
| 851 | /** | 808 | /** |
| 852 | * fcoe_dev_setup - cleanup link change notification interface | 809 | * fcoe_dev_setup() - cleanup link change notification interface |
| 853 | **/ | 810 | */ |
| 854 | static void fcoe_dev_cleanup(void) | 811 | static void fcoe_dev_cleanup(void) |
| 855 | { | 812 | { |
| 856 | unregister_netdevice_notifier(&fcoe_notifier); | 813 | unregister_netdevice_notifier(&fcoe_notifier); |
| 857 | } | 814 | } |
| 858 | 815 | ||
| 859 | /** | 816 | /** |
| 860 | * fcoe_device_notification - netdev event notification callback | 817 | * fcoe_device_notification() - netdev event notification callback |
| 861 | * @notifier: context of the notification | 818 | * @notifier: context of the notification |
| 862 | * @event: type of event | 819 | * @event: type of event |
| 863 | * @ptr: fixed array for output parsed ifname | 820 | * @ptr: fixed array for output parsed ifname |
| @@ -865,7 +822,7 @@ static void fcoe_dev_cleanup(void) | |||
| 865 | * This function is called by the ethernet driver in case of link change event | 822 | * This function is called by the ethernet driver in case of link change event |
| 866 | * | 823 | * |
| 867 | * Returns: 0 for success | 824 | * Returns: 0 for success |
| 868 | **/ | 825 | */ |
| 869 | static int fcoe_device_notification(struct notifier_block *notifier, | 826 | static int fcoe_device_notification(struct notifier_block *notifier, |
| 870 | ulong event, void *ptr) | 827 | ulong event, void *ptr) |
| 871 | { | 828 | { |
| @@ -873,7 +830,7 @@ static int fcoe_device_notification(struct notifier_block *notifier, | |||
| 873 | struct net_device *real_dev = ptr; | 830 | struct net_device *real_dev = ptr; |
| 874 | struct fcoe_softc *fc; | 831 | struct fcoe_softc *fc; |
| 875 | struct fcoe_dev_stats *stats; | 832 | struct fcoe_dev_stats *stats; |
| 876 | u16 new_status; | 833 | u32 new_link_up; |
| 877 | u32 mfs; | 834 | u32 mfs; |
| 878 | int rc = NOTIFY_OK; | 835 | int rc = NOTIFY_OK; |
| 879 | 836 | ||
| @@ -890,17 +847,15 @@ static int fcoe_device_notification(struct notifier_block *notifier, | |||
| 890 | goto out; | 847 | goto out; |
| 891 | } | 848 | } |
| 892 | 849 | ||
| 893 | new_status = lp->link_status; | 850 | new_link_up = lp->link_up; |
| 894 | switch (event) { | 851 | switch (event) { |
| 895 | case NETDEV_DOWN: | 852 | case NETDEV_DOWN: |
| 896 | case NETDEV_GOING_DOWN: | 853 | case NETDEV_GOING_DOWN: |
| 897 | new_status &= ~FC_LINK_UP; | 854 | new_link_up = 0; |
| 898 | break; | 855 | break; |
| 899 | case NETDEV_UP: | 856 | case NETDEV_UP: |
| 900 | case NETDEV_CHANGE: | 857 | case NETDEV_CHANGE: |
| 901 | new_status &= ~FC_LINK_UP; | 858 | new_link_up = !fcoe_link_ok(lp); |
| 902 | if (!fcoe_link_ok(lp)) | ||
| 903 | new_status |= FC_LINK_UP; | ||
| 904 | break; | 859 | break; |
| 905 | case NETDEV_CHANGEMTU: | 860 | case NETDEV_CHANGEMTU: |
| 906 | mfs = fc->real_dev->mtu - | 861 | mfs = fc->real_dev->mtu - |
| @@ -908,17 +863,15 @@ static int fcoe_device_notification(struct notifier_block *notifier, | |||
| 908 | sizeof(struct fcoe_crc_eof)); | 863 | sizeof(struct fcoe_crc_eof)); |
| 909 | if (mfs >= FC_MIN_MAX_FRAME) | 864 | if (mfs >= FC_MIN_MAX_FRAME) |
| 910 | fc_set_mfs(lp, mfs); | 865 | fc_set_mfs(lp, mfs); |
| 911 | new_status &= ~FC_LINK_UP; | 866 | new_link_up = !fcoe_link_ok(lp); |
| 912 | if (!fcoe_link_ok(lp)) | ||
| 913 | new_status |= FC_LINK_UP; | ||
| 914 | break; | 867 | break; |
| 915 | case NETDEV_REGISTER: | 868 | case NETDEV_REGISTER: |
| 916 | break; | 869 | break; |
| 917 | default: | 870 | default: |
| 918 | FC_DBG("unknown event %ld call", event); | 871 | FC_DBG("unknown event %ld call", event); |
| 919 | } | 872 | } |
| 920 | if (lp->link_status != new_status) { | 873 | if (lp->link_up != new_link_up) { |
| 921 | if ((new_status & FC_LINK_UP) == FC_LINK_UP) | 874 | if (new_link_up) |
| 922 | fc_linkup(lp); | 875 | fc_linkup(lp); |
| 923 | else { | 876 | else { |
| 924 | stats = lp->dev_stats[smp_processor_id()]; | 877 | stats = lp->dev_stats[smp_processor_id()]; |
| @@ -933,12 +886,12 @@ out: | |||
| 933 | } | 886 | } |
| 934 | 887 | ||
| 935 | /** | 888 | /** |
| 936 | * fcoe_if_to_netdev - parse a name buffer to get netdev | 889 | * fcoe_if_to_netdev() - parse a name buffer to get netdev |
| 937 | * @ifname: fixed array for output parsed ifname | 890 | * @ifname: fixed array for output parsed ifname |
| 938 | * @buffer: incoming buffer to be copied | 891 | * @buffer: incoming buffer to be copied |
| 939 | * | 892 | * |
| 940 | * Returns: NULL or ptr to netdeive | 893 | * Returns: NULL or ptr to netdeive |
| 941 | **/ | 894 | */ |
| 942 | static struct net_device *fcoe_if_to_netdev(const char *buffer) | 895 | static struct net_device *fcoe_if_to_netdev(const char *buffer) |
| 943 | { | 896 | { |
| 944 | char *cp; | 897 | char *cp; |
| @@ -955,13 +908,13 @@ static struct net_device *fcoe_if_to_netdev(const char *buffer) | |||
| 955 | } | 908 | } |
| 956 | 909 | ||
| 957 | /** | 910 | /** |
| 958 | * fcoe_netdev_to_module_owner - finds out the nic drive moddule of the netdev | 911 | * fcoe_netdev_to_module_owner() - finds out the nic drive moddule of the netdev |
| 959 | * @netdev: the target netdev | 912 | * @netdev: the target netdev |
| 960 | * | 913 | * |
| 961 | * Returns: ptr to the struct module, NULL for failure | 914 | * Returns: ptr to the struct module, NULL for failure |
| 962 | **/ | 915 | */ |
| 963 | static struct module *fcoe_netdev_to_module_owner( | 916 | static struct module * |
| 964 | const struct net_device *netdev) | 917 | fcoe_netdev_to_module_owner(const struct net_device *netdev) |
| 965 | { | 918 | { |
| 966 | struct device *dev; | 919 | struct device *dev; |
| 967 | 920 | ||
| @@ -979,12 +932,14 @@ static struct module *fcoe_netdev_to_module_owner( | |||
| 979 | } | 932 | } |
| 980 | 933 | ||
| 981 | /** | 934 | /** |
| 982 | * fcoe_ethdrv_get - holds the nic driver module by try_module_get() for | 935 | * fcoe_ethdrv_get() - Hold the Ethernet driver |
| 983 | * the corresponding netdev. | ||
| 984 | * @netdev: the target netdev | 936 | * @netdev: the target netdev |
| 985 | * | 937 | * |
| 938 | * Holds the Ethernet driver module by try_module_get() for | ||
| 939 | * the corresponding netdev. | ||
| 940 | * | ||
| 986 | * Returns: 0 for succsss | 941 | * Returns: 0 for succsss |
| 987 | **/ | 942 | */ |
| 988 | static int fcoe_ethdrv_get(const struct net_device *netdev) | 943 | static int fcoe_ethdrv_get(const struct net_device *netdev) |
| 989 | { | 944 | { |
| 990 | struct module *owner; | 945 | struct module *owner; |
| @@ -999,12 +954,14 @@ static int fcoe_ethdrv_get(const struct net_device *netdev) | |||
| 999 | } | 954 | } |
| 1000 | 955 | ||
| 1001 | /** | 956 | /** |
| 1002 | * fcoe_ethdrv_get - releases the nic driver module by module_put for | 957 | * fcoe_ethdrv_put() - Release the Ethernet driver |
| 1003 | * the corresponding netdev. | ||
| 1004 | * @netdev: the target netdev | 958 | * @netdev: the target netdev |
| 1005 | * | 959 | * |
| 960 | * Releases the Ethernet driver module by module_put for | ||
| 961 | * the corresponding netdev. | ||
| 962 | * | ||
| 1006 | * Returns: 0 for succsss | 963 | * Returns: 0 for succsss |
| 1007 | **/ | 964 | */ |
| 1008 | static int fcoe_ethdrv_put(const struct net_device *netdev) | 965 | static int fcoe_ethdrv_put(const struct net_device *netdev) |
| 1009 | { | 966 | { |
| 1010 | struct module *owner; | 967 | struct module *owner; |
| @@ -1020,12 +977,12 @@ static int fcoe_ethdrv_put(const struct net_device *netdev) | |||
| 1020 | } | 977 | } |
| 1021 | 978 | ||
| 1022 | /** | 979 | /** |
| 1023 | * fcoe_destroy- handles the destroy from sysfs | 980 | * fcoe_destroy() - handles the destroy from sysfs |
| 1024 | * @buffer: expcted to be a eth if name | 981 | * @buffer: expcted to be a eth if name |
| 1025 | * @kp: associated kernel param | 982 | * @kp: associated kernel param |
| 1026 | * | 983 | * |
| 1027 | * Returns: 0 for success | 984 | * Returns: 0 for success |
| 1028 | **/ | 985 | */ |
| 1029 | static int fcoe_destroy(const char *buffer, struct kernel_param *kp) | 986 | static int fcoe_destroy(const char *buffer, struct kernel_param *kp) |
| 1030 | { | 987 | { |
| 1031 | int rc; | 988 | int rc; |
| @@ -1058,12 +1015,12 @@ out_nodev: | |||
| 1058 | } | 1015 | } |
| 1059 | 1016 | ||
| 1060 | /** | 1017 | /** |
| 1061 | * fcoe_create - handles the create call from sysfs | 1018 | * fcoe_create() - Handles the create call from sysfs |
| 1062 | * @buffer: expcted to be a eth if name | 1019 | * @buffer: expcted to be a eth if name |
| 1063 | * @kp: associated kernel param | 1020 | * @kp: associated kernel param |
| 1064 | * | 1021 | * |
| 1065 | * Returns: 0 for success | 1022 | * Returns: 0 for success |
| 1066 | **/ | 1023 | */ |
| 1067 | static int fcoe_create(const char *buffer, struct kernel_param *kp) | 1024 | static int fcoe_create(const char *buffer, struct kernel_param *kp) |
| 1068 | { | 1025 | { |
| 1069 | int rc; | 1026 | int rc; |
| @@ -1104,8 +1061,8 @@ module_param_call(destroy, fcoe_destroy, NULL, NULL, S_IWUSR); | |||
| 1104 | __MODULE_PARM_TYPE(destroy, "string"); | 1061 | __MODULE_PARM_TYPE(destroy, "string"); |
| 1105 | MODULE_PARM_DESC(destroy, "Destroy fcoe port"); | 1062 | MODULE_PARM_DESC(destroy, "Destroy fcoe port"); |
| 1106 | 1063 | ||
| 1107 | /* | 1064 | /** |
| 1108 | * fcoe_link_ok - check if link is ok for the fc_lport | 1065 | * fcoe_link_ok() - Check if link is ok for the fc_lport |
| 1109 | * @lp: ptr to the fc_lport | 1066 | * @lp: ptr to the fc_lport |
| 1110 | * | 1067 | * |
| 1111 | * Any permanently-disqualifying conditions have been previously checked. | 1068 | * Any permanently-disqualifying conditions have been previously checked. |
| @@ -1120,7 +1077,7 @@ MODULE_PARM_DESC(destroy, "Destroy fcoe port"); | |||
| 1120 | */ | 1077 | */ |
| 1121 | int fcoe_link_ok(struct fc_lport *lp) | 1078 | int fcoe_link_ok(struct fc_lport *lp) |
| 1122 | { | 1079 | { |
| 1123 | struct fcoe_softc *fc = fcoe_softc(lp); | 1080 | struct fcoe_softc *fc = lport_priv(lp); |
| 1124 | struct net_device *dev = fc->real_dev; | 1081 | struct net_device *dev = fc->real_dev; |
| 1125 | struct ethtool_cmd ecmd = { ETHTOOL_GSET }; | 1082 | struct ethtool_cmd ecmd = { ETHTOOL_GSET }; |
| 1126 | int rc = 0; | 1083 | int rc = 0; |
| @@ -1149,9 +1106,8 @@ int fcoe_link_ok(struct fc_lport *lp) | |||
| 1149 | } | 1106 | } |
| 1150 | EXPORT_SYMBOL_GPL(fcoe_link_ok); | 1107 | EXPORT_SYMBOL_GPL(fcoe_link_ok); |
| 1151 | 1108 | ||
| 1152 | /* | 1109 | /** |
| 1153 | * fcoe_percpu_clean - frees skb of the corresponding lport from the per | 1110 | * fcoe_percpu_clean() - Clear the pending skbs for an lport |
| 1154 | * cpu queue. | ||
| 1155 | * @lp: the fc_lport | 1111 | * @lp: the fc_lport |
| 1156 | */ | 1112 | */ |
| 1157 | void fcoe_percpu_clean(struct fc_lport *lp) | 1113 | void fcoe_percpu_clean(struct fc_lport *lp) |
| @@ -1185,11 +1141,11 @@ void fcoe_percpu_clean(struct fc_lport *lp) | |||
| 1185 | EXPORT_SYMBOL_GPL(fcoe_percpu_clean); | 1141 | EXPORT_SYMBOL_GPL(fcoe_percpu_clean); |
| 1186 | 1142 | ||
| 1187 | /** | 1143 | /** |
| 1188 | * fcoe_clean_pending_queue - dequeue skb and free it | 1144 | * fcoe_clean_pending_queue() - Dequeue a skb and free it |
| 1189 | * @lp: the corresponding fc_lport | 1145 | * @lp: the corresponding fc_lport |
| 1190 | * | 1146 | * |
| 1191 | * Returns: none | 1147 | * Returns: none |
| 1192 | **/ | 1148 | */ |
| 1193 | void fcoe_clean_pending_queue(struct fc_lport *lp) | 1149 | void fcoe_clean_pending_queue(struct fc_lport *lp) |
| 1194 | { | 1150 | { |
| 1195 | struct fcoe_softc *fc = lport_priv(lp); | 1151 | struct fcoe_softc *fc = lport_priv(lp); |
| @@ -1206,21 +1162,21 @@ void fcoe_clean_pending_queue(struct fc_lport *lp) | |||
| 1206 | EXPORT_SYMBOL_GPL(fcoe_clean_pending_queue); | 1162 | EXPORT_SYMBOL_GPL(fcoe_clean_pending_queue); |
| 1207 | 1163 | ||
| 1208 | /** | 1164 | /** |
| 1209 | * libfc_host_alloc - allocate a Scsi_Host with room for the fc_lport | 1165 | * libfc_host_alloc() - Allocate a Scsi_Host with room for the fc_lport |
| 1210 | * @sht: ptr to the scsi host templ | 1166 | * @sht: ptr to the scsi host templ |
| 1211 | * @priv_size: size of private data after fc_lport | 1167 | * @priv_size: size of private data after fc_lport |
| 1212 | * | 1168 | * |
| 1213 | * Returns: ptr to Scsi_Host | 1169 | * Returns: ptr to Scsi_Host |
| 1214 | * TODO - to libfc? | 1170 | * TODO: to libfc? |
| 1215 | */ | 1171 | */ |
| 1216 | static inline struct Scsi_Host *libfc_host_alloc( | 1172 | static inline struct Scsi_Host * |
| 1217 | struct scsi_host_template *sht, int priv_size) | 1173 | libfc_host_alloc(struct scsi_host_template *sht, int priv_size) |
| 1218 | { | 1174 | { |
| 1219 | return scsi_host_alloc(sht, sizeof(struct fc_lport) + priv_size); | 1175 | return scsi_host_alloc(sht, sizeof(struct fc_lport) + priv_size); |
| 1220 | } | 1176 | } |
| 1221 | 1177 | ||
| 1222 | /** | 1178 | /** |
| 1223 | * fcoe_host_alloc - allocate a Scsi_Host with room for the fcoe_softc | 1179 | * fcoe_host_alloc() - Allocate a Scsi_Host with room for the fcoe_softc |
| 1224 | * @sht: ptr to the scsi host templ | 1180 | * @sht: ptr to the scsi host templ |
| 1225 | * @priv_size: size of private data after fc_lport | 1181 | * @priv_size: size of private data after fc_lport |
| 1226 | * | 1182 | * |
| @@ -1232,8 +1188,8 @@ struct Scsi_Host *fcoe_host_alloc(struct scsi_host_template *sht, int priv_size) | |||
| 1232 | } | 1188 | } |
| 1233 | EXPORT_SYMBOL_GPL(fcoe_host_alloc); | 1189 | EXPORT_SYMBOL_GPL(fcoe_host_alloc); |
| 1234 | 1190 | ||
| 1235 | /* | 1191 | /** |
| 1236 | * fcoe_reset - resets the fcoe | 1192 | * fcoe_reset() - Resets the fcoe |
| 1237 | * @shost: shost the reset is from | 1193 | * @shost: shost the reset is from |
| 1238 | * | 1194 | * |
| 1239 | * Returns: always 0 | 1195 | * Returns: always 0 |
| @@ -1246,8 +1202,8 @@ int fcoe_reset(struct Scsi_Host *shost) | |||
| 1246 | } | 1202 | } |
| 1247 | EXPORT_SYMBOL_GPL(fcoe_reset); | 1203 | EXPORT_SYMBOL_GPL(fcoe_reset); |
| 1248 | 1204 | ||
| 1249 | /* | 1205 | /** |
| 1250 | * fcoe_wwn_from_mac - converts 48-bit IEEE MAC address to 64-bit FC WWN. | 1206 | * fcoe_wwn_from_mac() - Converts 48-bit IEEE MAC address to 64-bit FC WWN. |
| 1251 | * @mac: mac address | 1207 | * @mac: mac address |
| 1252 | * @scheme: check port | 1208 | * @scheme: check port |
| 1253 | * @port: port indicator for converting | 1209 | * @port: port indicator for converting |
| @@ -1286,14 +1242,15 @@ u64 fcoe_wwn_from_mac(unsigned char mac[MAX_ADDR_LEN], | |||
| 1286 | return wwn; | 1242 | return wwn; |
| 1287 | } | 1243 | } |
| 1288 | EXPORT_SYMBOL_GPL(fcoe_wwn_from_mac); | 1244 | EXPORT_SYMBOL_GPL(fcoe_wwn_from_mac); |
| 1289 | /* | 1245 | |
| 1290 | * fcoe_hostlist_lookup_softc - find the corresponding lport by a given device | 1246 | /** |
| 1247 | * fcoe_hostlist_lookup_softc() - find the corresponding lport by a given device | ||
| 1291 | * @device: this is currently ptr to net_device | 1248 | * @device: this is currently ptr to net_device |
| 1292 | * | 1249 | * |
| 1293 | * Returns: NULL or the located fcoe_softc | 1250 | * Returns: NULL or the located fcoe_softc |
| 1294 | */ | 1251 | */ |
| 1295 | static struct fcoe_softc *fcoe_hostlist_lookup_softc( | 1252 | static struct fcoe_softc * |
| 1296 | const struct net_device *dev) | 1253 | fcoe_hostlist_lookup_softc(const struct net_device *dev) |
| 1297 | { | 1254 | { |
| 1298 | struct fcoe_softc *fc; | 1255 | struct fcoe_softc *fc; |
| 1299 | 1256 | ||
| @@ -1308,8 +1265,8 @@ static struct fcoe_softc *fcoe_hostlist_lookup_softc( | |||
| 1308 | return NULL; | 1265 | return NULL; |
| 1309 | } | 1266 | } |
| 1310 | 1267 | ||
| 1311 | /* | 1268 | /** |
| 1312 | * fcoe_hostlist_lookup - find the corresponding lport by netdev | 1269 | * fcoe_hostlist_lookup() - Find the corresponding lport by netdev |
| 1313 | * @netdev: ptr to net_device | 1270 | * @netdev: ptr to net_device |
| 1314 | * | 1271 | * |
| 1315 | * Returns: 0 for success | 1272 | * Returns: 0 for success |
| @@ -1324,8 +1281,8 @@ struct fc_lport *fcoe_hostlist_lookup(const struct net_device *netdev) | |||
| 1324 | } | 1281 | } |
| 1325 | EXPORT_SYMBOL_GPL(fcoe_hostlist_lookup); | 1282 | EXPORT_SYMBOL_GPL(fcoe_hostlist_lookup); |
| 1326 | 1283 | ||
| 1327 | /* | 1284 | /** |
| 1328 | * fcoe_hostlist_add - add a lport to lports list | 1285 | * fcoe_hostlist_add() - Add a lport to lports list |
| 1329 | * @lp: ptr to the fc_lport to badded | 1286 | * @lp: ptr to the fc_lport to badded |
| 1330 | * | 1287 | * |
| 1331 | * Returns: 0 for success | 1288 | * Returns: 0 for success |
| @@ -1336,7 +1293,7 @@ int fcoe_hostlist_add(const struct fc_lport *lp) | |||
| 1336 | 1293 | ||
| 1337 | fc = fcoe_hostlist_lookup_softc(fcoe_netdev(lp)); | 1294 | fc = fcoe_hostlist_lookup_softc(fcoe_netdev(lp)); |
| 1338 | if (!fc) { | 1295 | if (!fc) { |
| 1339 | fc = fcoe_softc(lp); | 1296 | fc = lport_priv(lp); |
| 1340 | write_lock_bh(&fcoe_hostlist_lock); | 1297 | write_lock_bh(&fcoe_hostlist_lock); |
| 1341 | list_add_tail(&fc->list, &fcoe_hostlist); | 1298 | list_add_tail(&fc->list, &fcoe_hostlist); |
| 1342 | write_unlock_bh(&fcoe_hostlist_lock); | 1299 | write_unlock_bh(&fcoe_hostlist_lock); |
| @@ -1345,8 +1302,8 @@ int fcoe_hostlist_add(const struct fc_lport *lp) | |||
| 1345 | } | 1302 | } |
| 1346 | EXPORT_SYMBOL_GPL(fcoe_hostlist_add); | 1303 | EXPORT_SYMBOL_GPL(fcoe_hostlist_add); |
| 1347 | 1304 | ||
| 1348 | /* | 1305 | /** |
| 1349 | * fcoe_hostlist_remove - remove a lport from lports list | 1306 | * fcoe_hostlist_remove() - remove a lport from lports list |
| 1350 | * @lp: ptr to the fc_lport to badded | 1307 | * @lp: ptr to the fc_lport to badded |
| 1351 | * | 1308 | * |
| 1352 | * Returns: 0 for success | 1309 | * Returns: 0 for success |
| @@ -1366,12 +1323,12 @@ int fcoe_hostlist_remove(const struct fc_lport *lp) | |||
| 1366 | EXPORT_SYMBOL_GPL(fcoe_hostlist_remove); | 1323 | EXPORT_SYMBOL_GPL(fcoe_hostlist_remove); |
| 1367 | 1324 | ||
| 1368 | /** | 1325 | /** |
| 1369 | * fcoe_libfc_config - sets up libfc related properties for lport | 1326 | * fcoe_libfc_config() - sets up libfc related properties for lport |
| 1370 | * @lp: ptr to the fc_lport | 1327 | * @lp: ptr to the fc_lport |
| 1371 | * @tt: libfc function template | 1328 | * @tt: libfc function template |
| 1372 | * | 1329 | * |
| 1373 | * Returns : 0 for success | 1330 | * Returns : 0 for success |
| 1374 | **/ | 1331 | */ |
| 1375 | int fcoe_libfc_config(struct fc_lport *lp, struct libfc_function_template *tt) | 1332 | int fcoe_libfc_config(struct fc_lport *lp, struct libfc_function_template *tt) |
| 1376 | { | 1333 | { |
| 1377 | /* Set the function pointers set by the LLDD */ | 1334 | /* Set the function pointers set by the LLDD */ |
| @@ -1389,14 +1346,14 @@ int fcoe_libfc_config(struct fc_lport *lp, struct libfc_function_template *tt) | |||
| 1389 | EXPORT_SYMBOL_GPL(fcoe_libfc_config); | 1346 | EXPORT_SYMBOL_GPL(fcoe_libfc_config); |
| 1390 | 1347 | ||
| 1391 | /** | 1348 | /** |
| 1392 | * fcoe_init - fcoe module loading initialization | 1349 | * fcoe_init() - fcoe module loading initialization |
| 1393 | * | 1350 | * |
| 1394 | * Initialization routine | 1351 | * Initialization routine |
| 1395 | * 1. Will create fc transport software structure | 1352 | * 1. Will create fc transport software structure |
| 1396 | * 2. initialize the link list of port information structure | 1353 | * 2. initialize the link list of port information structure |
| 1397 | * | 1354 | * |
| 1398 | * Returns 0 on success, negative on failure | 1355 | * Returns 0 on success, negative on failure |
| 1399 | **/ | 1356 | */ |
| 1400 | static int __init fcoe_init(void) | 1357 | static int __init fcoe_init(void) |
| 1401 | { | 1358 | { |
| 1402 | int cpu; | 1359 | int cpu; |
| @@ -1433,7 +1390,6 @@ static int __init fcoe_init(void) | |||
| 1433 | } else { | 1390 | } else { |
| 1434 | fcoe_percpu[cpu] = NULL; | 1391 | fcoe_percpu[cpu] = NULL; |
| 1435 | kfree(p); | 1392 | kfree(p); |
| 1436 | |||
| 1437 | } | 1393 | } |
| 1438 | } | 1394 | } |
| 1439 | } | 1395 | } |
| @@ -1443,11 +1399,9 @@ static int __init fcoe_init(void) | |||
| 1443 | */ | 1399 | */ |
| 1444 | fcoe_dev_setup(); | 1400 | fcoe_dev_setup(); |
| 1445 | 1401 | ||
| 1446 | init_timer(&fcoe_timer); | 1402 | setup_timer(&fcoe_timer, fcoe_watchdog, 0); |
| 1447 | fcoe_timer.data = 0; | 1403 | |
| 1448 | fcoe_timer.function = fcoe_watchdog; | 1404 | mod_timer(&fcoe_timer, jiffies + (10 * HZ)); |
| 1449 | fcoe_timer.expires = (jiffies + (10 * HZ)); | ||
| 1450 | add_timer(&fcoe_timer); | ||
| 1451 | 1405 | ||
| 1452 | /* initiatlize the fcoe transport */ | 1406 | /* initiatlize the fcoe transport */ |
| 1453 | fcoe_transport_init(); | 1407 | fcoe_transport_init(); |
| @@ -1459,10 +1413,10 @@ static int __init fcoe_init(void) | |||
| 1459 | module_init(fcoe_init); | 1413 | module_init(fcoe_init); |
| 1460 | 1414 | ||
| 1461 | /** | 1415 | /** |
| 1462 | * fcoe_exit - fcoe module unloading cleanup | 1416 | * fcoe_exit() - fcoe module unloading cleanup |
| 1463 | * | 1417 | * |
| 1464 | * Returns 0 on success, negative on failure | 1418 | * Returns 0 on success, negative on failure |
| 1465 | **/ | 1419 | */ |
| 1466 | static void __exit fcoe_exit(void) | 1420 | static void __exit fcoe_exit(void) |
| 1467 | { | 1421 | { |
| 1468 | u32 idx; | 1422 | u32 idx; |
| @@ -1483,7 +1437,7 @@ static void __exit fcoe_exit(void) | |||
| 1483 | */ | 1437 | */ |
| 1484 | del_timer_sync(&fcoe_timer); | 1438 | del_timer_sync(&fcoe_timer); |
| 1485 | 1439 | ||
| 1486 | /* releases the assocaited fcoe transport for each lport */ | 1440 | /* releases the associated fcoe transport for each lport */ |
| 1487 | list_for_each_entry_safe(fc, tmp, &fcoe_hostlist, list) | 1441 | list_for_each_entry_safe(fc, tmp, &fcoe_hostlist, list) |
| 1488 | fcoe_transport_release(fc->real_dev); | 1442 | fcoe_transport_release(fc->real_dev); |
| 1489 | 1443 | ||
diff --git a/drivers/scsi/lasi700.c b/drivers/scsi/lasi700.c index 4a4e6954ec79..f23c4ca9a2ee 100644 --- a/drivers/scsi/lasi700.c +++ b/drivers/scsi/lasi700.c | |||
| @@ -103,7 +103,7 @@ lasi700_probe(struct parisc_device *dev) | |||
| 103 | 103 | ||
| 104 | hostdata = kzalloc(sizeof(*hostdata), GFP_KERNEL); | 104 | hostdata = kzalloc(sizeof(*hostdata), GFP_KERNEL); |
| 105 | if (!hostdata) { | 105 | if (!hostdata) { |
| 106 | dev_printk(KERN_ERR, dev, "Failed to allocate host data\n"); | 106 | dev_printk(KERN_ERR, &dev->dev, "Failed to allocate host data\n"); |
| 107 | return -ENOMEM; | 107 | return -ENOMEM; |
| 108 | } | 108 | } |
| 109 | 109 | ||
diff --git a/drivers/scsi/libfc/fc_disc.c b/drivers/scsi/libfc/fc_disc.c index dd1564c9e04a..e57556ea5b48 100644 --- a/drivers/scsi/libfc/fc_disc.c +++ b/drivers/scsi/libfc/fc_disc.c | |||
| @@ -64,7 +64,7 @@ static void fc_disc_single(struct fc_disc *, struct fc_disc_port *); | |||
| 64 | static void fc_disc_restart(struct fc_disc *); | 64 | static void fc_disc_restart(struct fc_disc *); |
| 65 | 65 | ||
| 66 | /** | 66 | /** |
| 67 | * fc_disc_lookup_rport - lookup a remote port by port_id | 67 | * fc_disc_lookup_rport() - lookup a remote port by port_id |
| 68 | * @lport: Fibre Channel host port instance | 68 | * @lport: Fibre Channel host port instance |
| 69 | * @port_id: remote port port_id to match | 69 | * @port_id: remote port port_id to match |
| 70 | */ | 70 | */ |
| @@ -92,7 +92,7 @@ struct fc_rport *fc_disc_lookup_rport(const struct fc_lport *lport, | |||
| 92 | } | 92 | } |
| 93 | 93 | ||
| 94 | /** | 94 | /** |
| 95 | * fc_disc_stop_rports - delete all the remote ports associated with the lport | 95 | * fc_disc_stop_rports() - delete all the remote ports associated with the lport |
| 96 | * @disc: The discovery job to stop rports on | 96 | * @disc: The discovery job to stop rports on |
| 97 | * | 97 | * |
| 98 | * Locking Note: This function expects that the lport mutex is locked before | 98 | * Locking Note: This function expects that the lport mutex is locked before |
| @@ -117,7 +117,7 @@ void fc_disc_stop_rports(struct fc_disc *disc) | |||
| 117 | } | 117 | } |
| 118 | 118 | ||
| 119 | /** | 119 | /** |
| 120 | * fc_disc_rport_callback - Event handler for rport events | 120 | * fc_disc_rport_callback() - Event handler for rport events |
| 121 | * @lport: The lport which is receiving the event | 121 | * @lport: The lport which is receiving the event |
| 122 | * @rport: The rport which the event has occured on | 122 | * @rport: The rport which the event has occured on |
| 123 | * @event: The event that occured | 123 | * @event: The event that occured |
| @@ -151,7 +151,7 @@ static void fc_disc_rport_callback(struct fc_lport *lport, | |||
| 151 | } | 151 | } |
| 152 | 152 | ||
| 153 | /** | 153 | /** |
| 154 | * fc_disc_recv_rscn_req - Handle Registered State Change Notification (RSCN) | 154 | * fc_disc_recv_rscn_req() - Handle Registered State Change Notification (RSCN) |
| 155 | * @sp: Current sequence of the RSCN exchange | 155 | * @sp: Current sequence of the RSCN exchange |
| 156 | * @fp: RSCN Frame | 156 | * @fp: RSCN Frame |
| 157 | * @lport: Fibre Channel host port instance | 157 | * @lport: Fibre Channel host port instance |
| @@ -246,7 +246,7 @@ static void fc_disc_recv_rscn_req(struct fc_seq *sp, struct fc_frame *fp, | |||
| 246 | list_del(&dp->peers); | 246 | list_del(&dp->peers); |
| 247 | rport = lport->tt.rport_lookup(lport, dp->ids.port_id); | 247 | rport = lport->tt.rport_lookup(lport, dp->ids.port_id); |
| 248 | if (rport) { | 248 | if (rport) { |
| 249 | rdata = RPORT_TO_PRIV(rport); | 249 | rdata = rport->dd_data; |
| 250 | list_del(&rdata->peers); | 250 | list_del(&rdata->peers); |
| 251 | lport->tt.rport_logoff(rport); | 251 | lport->tt.rport_logoff(rport); |
| 252 | } | 252 | } |
| @@ -265,7 +265,7 @@ reject: | |||
| 265 | } | 265 | } |
| 266 | 266 | ||
| 267 | /** | 267 | /** |
| 268 | * fc_disc_recv_req - Handle incoming requests | 268 | * fc_disc_recv_req() - Handle incoming requests |
| 269 | * @sp: Current sequence of the request exchange | 269 | * @sp: Current sequence of the request exchange |
| 270 | * @fp: The frame | 270 | * @fp: The frame |
| 271 | * @lport: The FC local port | 271 | * @lport: The FC local port |
| @@ -294,7 +294,7 @@ static void fc_disc_recv_req(struct fc_seq *sp, struct fc_frame *fp, | |||
| 294 | } | 294 | } |
| 295 | 295 | ||
| 296 | /** | 296 | /** |
| 297 | * fc_disc_restart - Restart discovery | 297 | * fc_disc_restart() - Restart discovery |
| 298 | * @lport: FC discovery context | 298 | * @lport: FC discovery context |
| 299 | * | 299 | * |
| 300 | * Locking Note: This function expects that the disc mutex | 300 | * Locking Note: This function expects that the disc mutex |
| @@ -322,7 +322,7 @@ static void fc_disc_restart(struct fc_disc *disc) | |||
| 322 | } | 322 | } |
| 323 | 323 | ||
| 324 | /** | 324 | /** |
| 325 | * fc_disc_start - Fibre Channel Target discovery | 325 | * fc_disc_start() - Fibre Channel Target discovery |
| 326 | * @lport: FC local port | 326 | * @lport: FC local port |
| 327 | * | 327 | * |
| 328 | * Returns non-zero if discovery cannot be started. | 328 | * Returns non-zero if discovery cannot be started. |
| @@ -383,7 +383,7 @@ static struct fc_rport_operations fc_disc_rport_ops = { | |||
| 383 | }; | 383 | }; |
| 384 | 384 | ||
| 385 | /** | 385 | /** |
| 386 | * fc_disc_new_target - Handle new target found by discovery | 386 | * fc_disc_new_target() - Handle new target found by discovery |
| 387 | * @lport: FC local port | 387 | * @lport: FC local port |
| 388 | * @rport: The previous FC remote port (NULL if new remote port) | 388 | * @rport: The previous FC remote port (NULL if new remote port) |
| 389 | * @ids: Identifiers for the new FC remote port | 389 | * @ids: Identifiers for the new FC remote port |
| @@ -396,7 +396,7 @@ static int fc_disc_new_target(struct fc_disc *disc, | |||
| 396 | struct fc_rport_identifiers *ids) | 396 | struct fc_rport_identifiers *ids) |
| 397 | { | 397 | { |
| 398 | struct fc_lport *lport = disc->lport; | 398 | struct fc_lport *lport = disc->lport; |
| 399 | struct fc_rport_libfc_priv *rp; | 399 | struct fc_rport_libfc_priv *rdata; |
| 400 | int error = 0; | 400 | int error = 0; |
| 401 | 401 | ||
| 402 | if (rport && ids->port_name) { | 402 | if (rport && ids->port_name) { |
| @@ -430,15 +430,15 @@ static int fc_disc_new_target(struct fc_disc *disc, | |||
| 430 | dp.ids.port_name = ids->port_name; | 430 | dp.ids.port_name = ids->port_name; |
| 431 | dp.ids.node_name = ids->node_name; | 431 | dp.ids.node_name = ids->node_name; |
| 432 | dp.ids.roles = ids->roles; | 432 | dp.ids.roles = ids->roles; |
| 433 | rport = fc_rport_rogue_create(&dp); | 433 | rport = lport->tt.rport_create(&dp); |
| 434 | } | 434 | } |
| 435 | if (!rport) | 435 | if (!rport) |
| 436 | error = -ENOMEM; | 436 | error = -ENOMEM; |
| 437 | } | 437 | } |
| 438 | if (rport) { | 438 | if (rport) { |
| 439 | rp = rport->dd_data; | 439 | rdata = rport->dd_data; |
| 440 | rp->ops = &fc_disc_rport_ops; | 440 | rdata->ops = &fc_disc_rport_ops; |
| 441 | rp->rp_state = RPORT_ST_INIT; | 441 | rdata->rp_state = RPORT_ST_INIT; |
| 442 | lport->tt.rport_login(rport); | 442 | lport->tt.rport_login(rport); |
| 443 | } | 443 | } |
| 444 | } | 444 | } |
| @@ -446,20 +446,20 @@ static int fc_disc_new_target(struct fc_disc *disc, | |||
| 446 | } | 446 | } |
| 447 | 447 | ||
| 448 | /** | 448 | /** |
| 449 | * fc_disc_del_target - Delete a target | 449 | * fc_disc_del_target() - Delete a target |
| 450 | * @disc: FC discovery context | 450 | * @disc: FC discovery context |
| 451 | * @rport: The remote port to be removed | 451 | * @rport: The remote port to be removed |
| 452 | */ | 452 | */ |
| 453 | static void fc_disc_del_target(struct fc_disc *disc, struct fc_rport *rport) | 453 | static void fc_disc_del_target(struct fc_disc *disc, struct fc_rport *rport) |
| 454 | { | 454 | { |
| 455 | struct fc_lport *lport = disc->lport; | 455 | struct fc_lport *lport = disc->lport; |
| 456 | struct fc_rport_libfc_priv *rdata = RPORT_TO_PRIV(rport); | 456 | struct fc_rport_libfc_priv *rdata = rport->dd_data; |
| 457 | list_del(&rdata->peers); | 457 | list_del(&rdata->peers); |
| 458 | lport->tt.rport_logoff(rport); | 458 | lport->tt.rport_logoff(rport); |
| 459 | } | 459 | } |
| 460 | 460 | ||
| 461 | /** | 461 | /** |
| 462 | * fc_disc_done - Discovery has been completed | 462 | * fc_disc_done() - Discovery has been completed |
| 463 | * @disc: FC discovery context | 463 | * @disc: FC discovery context |
| 464 | */ | 464 | */ |
| 465 | static void fc_disc_done(struct fc_disc *disc) | 465 | static void fc_disc_done(struct fc_disc *disc) |
| @@ -479,7 +479,7 @@ static void fc_disc_done(struct fc_disc *disc) | |||
| 479 | } | 479 | } |
| 480 | 480 | ||
| 481 | /** | 481 | /** |
| 482 | * fc_disc_error - Handle error on dNS request | 482 | * fc_disc_error() - Handle error on dNS request |
| 483 | * @disc: FC discovery context | 483 | * @disc: FC discovery context |
| 484 | * @fp: The frame pointer | 484 | * @fp: The frame pointer |
| 485 | */ | 485 | */ |
| @@ -519,7 +519,7 @@ static void fc_disc_error(struct fc_disc *disc, struct fc_frame *fp) | |||
| 519 | } | 519 | } |
| 520 | 520 | ||
| 521 | /** | 521 | /** |
| 522 | * fc_disc_gpn_ft_req - Send Get Port Names by FC-4 type (GPN_FT) request | 522 | * fc_disc_gpn_ft_req() - Send Get Port Names by FC-4 type (GPN_FT) request |
| 523 | * @lport: FC discovery context | 523 | * @lport: FC discovery context |
| 524 | * | 524 | * |
| 525 | * Locking Note: This function expects that the disc_mutex is locked | 525 | * Locking Note: This function expects that the disc_mutex is locked |
| @@ -553,7 +553,7 @@ err: | |||
| 553 | } | 553 | } |
| 554 | 554 | ||
| 555 | /** | 555 | /** |
| 556 | * fc_disc_gpn_ft_parse - Parse the list of IDs and names resulting from a request | 556 | * fc_disc_gpn_ft_parse() - Parse the list of IDs and names resulting from a request |
| 557 | * @lport: Fibre Channel host port instance | 557 | * @lport: Fibre Channel host port instance |
| 558 | * @buf: GPN_FT response buffer | 558 | * @buf: GPN_FT response buffer |
| 559 | * @len: size of response buffer | 559 | * @len: size of response buffer |
| @@ -617,7 +617,7 @@ static int fc_disc_gpn_ft_parse(struct fc_disc *disc, void *buf, size_t len) | |||
| 617 | 617 | ||
| 618 | if ((dp.ids.port_id != fc_host_port_id(lport->host)) && | 618 | if ((dp.ids.port_id != fc_host_port_id(lport->host)) && |
| 619 | (dp.ids.port_name != lport->wwpn)) { | 619 | (dp.ids.port_name != lport->wwpn)) { |
| 620 | rport = fc_rport_rogue_create(&dp); | 620 | rport = lport->tt.rport_create(&dp); |
| 621 | if (rport) { | 621 | if (rport) { |
| 622 | rdata = rport->dd_data; | 622 | rdata = rport->dd_data; |
| 623 | rdata->ops = &fc_disc_rport_ops; | 623 | rdata->ops = &fc_disc_rport_ops; |
| @@ -658,7 +658,10 @@ static int fc_disc_gpn_ft_parse(struct fc_disc *disc, void *buf, size_t len) | |||
| 658 | return error; | 658 | return error; |
| 659 | } | 659 | } |
| 660 | 660 | ||
| 661 | /* | 661 | /** |
| 662 | * fc_disc_timeout() - Retry handler for the disc component | ||
| 663 | * @work: Structure holding disc obj that needs retry discovery | ||
| 664 | * | ||
| 662 | * Handle retry of memory allocation for remote ports. | 665 | * Handle retry of memory allocation for remote ports. |
| 663 | */ | 666 | */ |
| 664 | static void fc_disc_timeout(struct work_struct *work) | 667 | static void fc_disc_timeout(struct work_struct *work) |
| @@ -673,7 +676,7 @@ static void fc_disc_timeout(struct work_struct *work) | |||
| 673 | } | 676 | } |
| 674 | 677 | ||
| 675 | /** | 678 | /** |
| 676 | * fc_disc_gpn_ft_resp - Handle a response frame from Get Port Names (GPN_FT) | 679 | * fc_disc_gpn_ft_resp() - Handle a response frame from Get Port Names (GPN_FT) |
| 677 | * @sp: Current sequence of GPN_FT exchange | 680 | * @sp: Current sequence of GPN_FT exchange |
| 678 | * @fp: response frame | 681 | * @fp: response frame |
| 679 | * @lp_arg: Fibre Channel host port instance | 682 | * @lp_arg: Fibre Channel host port instance |
| @@ -712,9 +715,7 @@ static void fc_disc_gpn_ft_resp(struct fc_seq *sp, struct fc_frame *fp, | |||
| 712 | fr_len(fp)); | 715 | fr_len(fp)); |
| 713 | } else if (ntohs(cp->ct_cmd) == FC_FS_ACC) { | 716 | } else if (ntohs(cp->ct_cmd) == FC_FS_ACC) { |
| 714 | 717 | ||
| 715 | /* | 718 | /* Accepted, parse the response. */ |
| 716 | * Accepted. Parse response. | ||
| 717 | */ | ||
| 718 | buf = cp + 1; | 719 | buf = cp + 1; |
| 719 | len -= sizeof(*cp); | 720 | len -= sizeof(*cp); |
| 720 | } else if (ntohs(cp->ct_cmd) == FC_FS_RJT) { | 721 | } else if (ntohs(cp->ct_cmd) == FC_FS_RJT) { |
| @@ -746,7 +747,7 @@ static void fc_disc_gpn_ft_resp(struct fc_seq *sp, struct fc_frame *fp, | |||
| 746 | } | 747 | } |
| 747 | 748 | ||
| 748 | /** | 749 | /** |
| 749 | * fc_disc_single - Discover the directory information for a single target | 750 | * fc_disc_single() - Discover the directory information for a single target |
| 750 | * @lport: FC local port | 751 | * @lport: FC local port |
| 751 | * @dp: The port to rediscover | 752 | * @dp: The port to rediscover |
| 752 | * | 753 | * |
| @@ -769,7 +770,7 @@ static void fc_disc_single(struct fc_disc *disc, struct fc_disc_port *dp) | |||
| 769 | if (rport) | 770 | if (rport) |
| 770 | fc_disc_del_target(disc, rport); | 771 | fc_disc_del_target(disc, rport); |
| 771 | 772 | ||
| 772 | new_rport = fc_rport_rogue_create(dp); | 773 | new_rport = lport->tt.rport_create(dp); |
| 773 | if (new_rport) { | 774 | if (new_rport) { |
| 774 | rdata = new_rport->dd_data; | 775 | rdata = new_rport->dd_data; |
| 775 | rdata->ops = &fc_disc_rport_ops; | 776 | rdata->ops = &fc_disc_rport_ops; |
| @@ -782,7 +783,7 @@ out: | |||
| 782 | } | 783 | } |
| 783 | 784 | ||
| 784 | /** | 785 | /** |
| 785 | * fc_disc_stop - Stop discovery for a given lport | 786 | * fc_disc_stop() - Stop discovery for a given lport |
| 786 | * @lport: The lport that discovery should stop for | 787 | * @lport: The lport that discovery should stop for |
| 787 | */ | 788 | */ |
| 788 | void fc_disc_stop(struct fc_lport *lport) | 789 | void fc_disc_stop(struct fc_lport *lport) |
| @@ -796,7 +797,7 @@ void fc_disc_stop(struct fc_lport *lport) | |||
| 796 | } | 797 | } |
| 797 | 798 | ||
| 798 | /** | 799 | /** |
| 799 | * fc_disc_stop_final - Stop discovery for a given lport | 800 | * fc_disc_stop_final() - Stop discovery for a given lport |
| 800 | * @lport: The lport that discovery should stop for | 801 | * @lport: The lport that discovery should stop for |
| 801 | * | 802 | * |
| 802 | * This function will block until discovery has been | 803 | * This function will block until discovery has been |
| @@ -809,7 +810,7 @@ void fc_disc_stop_final(struct fc_lport *lport) | |||
| 809 | } | 810 | } |
| 810 | 811 | ||
| 811 | /** | 812 | /** |
| 812 | * fc_disc_init - Initialize the discovery block | 813 | * fc_disc_init() - Initialize the discovery block |
| 813 | * @lport: FC local port | 814 | * @lport: FC local port |
| 814 | */ | 815 | */ |
| 815 | int fc_disc_init(struct fc_lport *lport) | 816 | int fc_disc_init(struct fc_lport *lport) |
diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c index 66db08a5f27f..505825b6124d 100644 --- a/drivers/scsi/libfc/fc_exch.c +++ b/drivers/scsi/libfc/fc_exch.c | |||
| @@ -32,8 +32,6 @@ | |||
| 32 | #include <scsi/libfc.h> | 32 | #include <scsi/libfc.h> |
| 33 | #include <scsi/fc_encode.h> | 33 | #include <scsi/fc_encode.h> |
| 34 | 34 | ||
| 35 | #define FC_DEF_R_A_TOV (10 * 1000) /* resource allocation timeout */ | ||
| 36 | |||
| 37 | /* | 35 | /* |
| 38 | * fc_exch_debug can be set in debugger or at compile time to get more logs. | 36 | * fc_exch_debug can be set in debugger or at compile time to get more logs. |
| 39 | */ | 37 | */ |
| @@ -627,7 +625,6 @@ static struct fc_exch *fc_exch_resp(struct fc_exch_mgr *mp, struct fc_frame *fp) | |||
| 627 | { | 625 | { |
| 628 | struct fc_exch *ep; | 626 | struct fc_exch *ep; |
| 629 | struct fc_frame_header *fh; | 627 | struct fc_frame_header *fh; |
| 630 | u16 rxid; | ||
| 631 | 628 | ||
| 632 | ep = mp->lp->tt.exch_get(mp->lp, fp); | 629 | ep = mp->lp->tt.exch_get(mp->lp, fp); |
| 633 | if (ep) { | 630 | if (ep) { |
| @@ -654,18 +651,6 @@ static struct fc_exch *fc_exch_resp(struct fc_exch_mgr *mp, struct fc_frame *fp) | |||
| 654 | if ((ntoh24(fh->fh_f_ctl) & FC_FC_SEQ_INIT) == 0) | 651 | if ((ntoh24(fh->fh_f_ctl) & FC_FC_SEQ_INIT) == 0) |
| 655 | ep->esb_stat &= ~ESB_ST_SEQ_INIT; | 652 | ep->esb_stat &= ~ESB_ST_SEQ_INIT; |
| 656 | 653 | ||
| 657 | /* | ||
| 658 | * Set the responder ID in the frame header. | ||
| 659 | * The old one should've been 0xffff. | ||
| 660 | * If it isn't, don't assign one. | ||
| 661 | * Incoming basic link service frames may specify | ||
| 662 | * a referenced RX_ID. | ||
| 663 | */ | ||
| 664 | if (fh->fh_type != FC_TYPE_BLS) { | ||
| 665 | rxid = ntohs(fh->fh_rx_id); | ||
| 666 | WARN_ON(rxid != FC_XID_UNKNOWN); | ||
| 667 | fh->fh_rx_id = htons(ep->rxid); | ||
| 668 | } | ||
| 669 | fc_exch_hold(ep); /* hold for caller */ | 654 | fc_exch_hold(ep); /* hold for caller */ |
| 670 | spin_unlock_bh(&ep->ex_lock); /* lock from exch_get */ | 655 | spin_unlock_bh(&ep->ex_lock); /* lock from exch_get */ |
| 671 | } | 656 | } |
| @@ -677,8 +662,8 @@ static struct fc_exch *fc_exch_resp(struct fc_exch_mgr *mp, struct fc_frame *fp) | |||
| 677 | * If fc_pf_rjt_reason is FC_RJT_NONE then this function will have a hold | 662 | * If fc_pf_rjt_reason is FC_RJT_NONE then this function will have a hold |
| 678 | * on the ep that should be released by the caller. | 663 | * on the ep that should be released by the caller. |
| 679 | */ | 664 | */ |
| 680 | static enum fc_pf_rjt_reason | 665 | static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_exch_mgr *mp, |
| 681 | fc_seq_lookup_recip(struct fc_exch_mgr *mp, struct fc_frame *fp) | 666 | struct fc_frame *fp) |
| 682 | { | 667 | { |
| 683 | struct fc_frame_header *fh = fc_frame_header_get(fp); | 668 | struct fc_frame_header *fh = fc_frame_header_get(fp); |
| 684 | struct fc_exch *ep = NULL; | 669 | struct fc_exch *ep = NULL; |
| @@ -996,9 +981,9 @@ static void fc_seq_send_ack(struct fc_seq *sp, const struct fc_frame *rx_fp) | |||
| 996 | * Send BLS Reject. | 981 | * Send BLS Reject. |
| 997 | * This is for rejecting BA_ABTS only. | 982 | * This is for rejecting BA_ABTS only. |
| 998 | */ | 983 | */ |
| 999 | static void | 984 | static void fc_exch_send_ba_rjt(struct fc_frame *rx_fp, |
| 1000 | fc_exch_send_ba_rjt(struct fc_frame *rx_fp, enum fc_ba_rjt_reason reason, | 985 | enum fc_ba_rjt_reason reason, |
| 1001 | enum fc_ba_rjt_explan explan) | 986 | enum fc_ba_rjt_explan explan) |
| 1002 | { | 987 | { |
| 1003 | struct fc_frame *fp; | 988 | struct fc_frame *fp; |
| 1004 | struct fc_frame_header *rx_fh; | 989 | struct fc_frame_header *rx_fh; |
| @@ -1096,7 +1081,7 @@ static void fc_exch_recv_abts(struct fc_exch *ep, struct fc_frame *rx_fp) | |||
| 1096 | ap->ba_high_seq_cnt = fh->fh_seq_cnt; | 1081 | ap->ba_high_seq_cnt = fh->fh_seq_cnt; |
| 1097 | ap->ba_low_seq_cnt = htons(sp->cnt); | 1082 | ap->ba_low_seq_cnt = htons(sp->cnt); |
| 1098 | } | 1083 | } |
| 1099 | sp = fc_seq_start_next(sp); | 1084 | sp = fc_seq_start_next_locked(sp); |
| 1100 | spin_unlock_bh(&ep->ex_lock); | 1085 | spin_unlock_bh(&ep->ex_lock); |
| 1101 | fc_seq_send_last(sp, fp, FC_RCTL_BA_ACC, FC_TYPE_BLS); | 1086 | fc_seq_send_last(sp, fp, FC_RCTL_BA_ACC, FC_TYPE_BLS); |
| 1102 | fc_frame_free(rx_fp); | 1087 | fc_frame_free(rx_fp); |
| @@ -1480,10 +1465,11 @@ static void fc_exch_reset(struct fc_exch *ep) | |||
| 1480 | * If sid is non-zero, reset only exchanges we source from that FID. | 1465 | * If sid is non-zero, reset only exchanges we source from that FID. |
| 1481 | * If did is non-zero, reset only exchanges destined to that FID. | 1466 | * If did is non-zero, reset only exchanges destined to that FID. |
| 1482 | */ | 1467 | */ |
| 1483 | void fc_exch_mgr_reset(struct fc_exch_mgr *mp, u32 sid, u32 did) | 1468 | void fc_exch_mgr_reset(struct fc_lport *lp, u32 sid, u32 did) |
| 1484 | { | 1469 | { |
| 1485 | struct fc_exch *ep; | 1470 | struct fc_exch *ep; |
| 1486 | struct fc_exch *next; | 1471 | struct fc_exch *next; |
| 1472 | struct fc_exch_mgr *mp = lp->emp; | ||
| 1487 | 1473 | ||
| 1488 | spin_lock_bh(&mp->em_lock); | 1474 | spin_lock_bh(&mp->em_lock); |
| 1489 | restart: | 1475 | restart: |
| @@ -1607,7 +1593,7 @@ static void fc_exch_rrq_resp(struct fc_seq *sp, struct fc_frame *fp, void *arg) | |||
| 1607 | if (IS_ERR(fp)) { | 1593 | if (IS_ERR(fp)) { |
| 1608 | int err = PTR_ERR(fp); | 1594 | int err = PTR_ERR(fp); |
| 1609 | 1595 | ||
| 1610 | if (err == -FC_EX_CLOSED) | 1596 | if (err == -FC_EX_CLOSED || err == -FC_EX_TIMEOUT) |
| 1611 | goto cleanup; | 1597 | goto cleanup; |
| 1612 | FC_DBG("Cannot process RRQ, because of frame error %d\n", err); | 1598 | FC_DBG("Cannot process RRQ, because of frame error %d\n", err); |
| 1613 | return; | 1599 | return; |
diff --git a/drivers/scsi/libfc/fc_fcp.c b/drivers/scsi/libfc/fc_fcp.c index 404e63ff46b8..2a631d7dbcec 100644 --- a/drivers/scsi/libfc/fc_fcp.c +++ b/drivers/scsi/libfc/fc_fcp.c | |||
| @@ -161,7 +161,7 @@ static struct fc_fcp_pkt *fc_fcp_pkt_alloc(struct fc_lport *lp, gfp_t gfp) | |||
| 161 | } | 161 | } |
| 162 | 162 | ||
| 163 | /** | 163 | /** |
| 164 | * fc_fcp_pkt_release - release hold on scsi_pkt packet | 164 | * fc_fcp_pkt_release() - release hold on scsi_pkt packet |
| 165 | * @fsp: fcp packet struct | 165 | * @fsp: fcp packet struct |
| 166 | * | 166 | * |
| 167 | * This is used by upper layer scsi driver. | 167 | * This is used by upper layer scsi driver. |
| @@ -183,8 +183,7 @@ static void fc_fcp_pkt_hold(struct fc_fcp_pkt *fsp) | |||
| 183 | } | 183 | } |
| 184 | 184 | ||
| 185 | /** | 185 | /** |
| 186 | * fc_fcp_pkt_destory - release hold on scsi_pkt packet | 186 | * fc_fcp_pkt_destory() - release hold on scsi_pkt packet |
| 187 | * | ||
| 188 | * @seq: exchange sequence | 187 | * @seq: exchange sequence |
| 189 | * @fsp: fcp packet struct | 188 | * @fsp: fcp packet struct |
| 190 | * | 189 | * |
| @@ -199,7 +198,7 @@ static void fc_fcp_pkt_destroy(struct fc_seq *seq, void *fsp) | |||
| 199 | } | 198 | } |
| 200 | 199 | ||
| 201 | /** | 200 | /** |
| 202 | * fc_fcp_lock_pkt - lock a packet and get a ref to it. | 201 | * fc_fcp_lock_pkt() - lock a packet and get a ref to it. |
| 203 | * @fsp: fcp packet | 202 | * @fsp: fcp packet |
| 204 | * | 203 | * |
| 205 | * We should only return error if we return a command to scsi-ml before | 204 | * We should only return error if we return a command to scsi-ml before |
| @@ -291,9 +290,7 @@ static void fc_fcp_recv_data(struct fc_fcp_pkt *fsp, struct fc_frame *fp) | |||
| 291 | buf = fc_frame_payload_get(fp, 0); | 290 | buf = fc_frame_payload_get(fp, 0); |
| 292 | 291 | ||
| 293 | if (offset + len > fsp->data_len) { | 292 | if (offset + len > fsp->data_len) { |
| 294 | /* | 293 | /* this should never happen */ |
| 295 | * this should never happen | ||
| 296 | */ | ||
| 297 | if ((fr_flags(fp) & FCPHF_CRC_UNCHECKED) && | 294 | if ((fr_flags(fp) & FCPHF_CRC_UNCHECKED) && |
| 298 | fc_frame_crc_check(fp)) | 295 | fc_frame_crc_check(fp)) |
| 299 | goto crc_err; | 296 | goto crc_err; |
| @@ -387,8 +384,8 @@ crc_err: | |||
| 387 | fc_fcp_complete_locked(fsp); | 384 | fc_fcp_complete_locked(fsp); |
| 388 | } | 385 | } |
| 389 | 386 | ||
| 390 | /* | 387 | /** |
| 391 | * fc_fcp_send_data - Send SCSI data to target. | 388 | * fc_fcp_send_data() - Send SCSI data to target. |
| 392 | * @fsp: ptr to fc_fcp_pkt | 389 | * @fsp: ptr to fc_fcp_pkt |
| 393 | * @sp: ptr to this sequence | 390 | * @sp: ptr to this sequence |
| 394 | * @offset: starting offset for this data request | 391 | * @offset: starting offset for this data request |
| @@ -610,8 +607,8 @@ static void fc_fcp_abts_resp(struct fc_fcp_pkt *fsp, struct fc_frame *fp) | |||
| 610 | } | 607 | } |
| 611 | } | 608 | } |
| 612 | 609 | ||
| 613 | /* | 610 | /** |
| 614 | * fc_fcp_reduce_can_queue - drop can_queue | 611 | * fc_fcp_reduce_can_queue() - drop can_queue |
| 615 | * @lp: lport to drop queueing for | 612 | * @lp: lport to drop queueing for |
| 616 | * | 613 | * |
| 617 | * If we are getting memory allocation failures, then we may | 614 | * If we are getting memory allocation failures, then we may |
| @@ -642,9 +639,11 @@ done: | |||
| 642 | spin_unlock_irqrestore(lp->host->host_lock, flags); | 639 | spin_unlock_irqrestore(lp->host->host_lock, flags); |
| 643 | } | 640 | } |
| 644 | 641 | ||
| 645 | /* | 642 | /** |
| 646 | * exch mgr calls this routine to process scsi | 643 | * fc_fcp_recv() - Reveive FCP frames |
| 647 | * exchanges. | 644 | * @seq: The sequence the frame is on |
| 645 | * @fp: The FC frame | ||
| 646 | * @arg: The related FCP packet | ||
| 648 | * | 647 | * |
| 649 | * Return : None | 648 | * Return : None |
| 650 | * Context : called from Soft IRQ context | 649 | * Context : called from Soft IRQ context |
| @@ -832,7 +831,7 @@ err: | |||
| 832 | } | 831 | } |
| 833 | 832 | ||
| 834 | /** | 833 | /** |
| 835 | * fc_fcp_complete_locked - complete processing of a fcp packet | 834 | * fc_fcp_complete_locked() - complete processing of a fcp packet |
| 836 | * @fsp: fcp packet | 835 | * @fsp: fcp packet |
| 837 | * | 836 | * |
| 838 | * This function may sleep if a timer is pending. The packet lock must be | 837 | * This function may sleep if a timer is pending. The packet lock must be |
| @@ -900,7 +899,7 @@ static void fc_fcp_cleanup_cmd(struct fc_fcp_pkt *fsp, int error) | |||
| 900 | } | 899 | } |
| 901 | 900 | ||
| 902 | /** | 901 | /** |
| 903 | * fc_fcp_cleanup_each_cmd - run fn on each active command | 902 | * fc_fcp_cleanup_each_cmd() - Cleanup active commads |
| 904 | * @lp: logical port | 903 | * @lp: logical port |
| 905 | * @id: target id | 904 | * @id: target id |
| 906 | * @lun: lun | 905 | * @lun: lun |
| @@ -952,7 +951,7 @@ static void fc_fcp_abort_io(struct fc_lport *lp) | |||
| 952 | } | 951 | } |
| 953 | 952 | ||
| 954 | /** | 953 | /** |
| 955 | * fc_fcp_pkt_send - send a fcp packet to the lower level. | 954 | * fc_fcp_pkt_send() - send a fcp packet to the lower level. |
| 956 | * @lp: fc lport | 955 | * @lp: fc lport |
| 957 | * @fsp: fc packet. | 956 | * @fsp: fc packet. |
| 958 | * | 957 | * |
| @@ -1621,7 +1620,7 @@ out: | |||
| 1621 | static inline int fc_fcp_lport_queue_ready(struct fc_lport *lp) | 1620 | static inline int fc_fcp_lport_queue_ready(struct fc_lport *lp) |
| 1622 | { | 1621 | { |
| 1623 | /* lock ? */ | 1622 | /* lock ? */ |
| 1624 | return (lp->state == LPORT_ST_READY) && (lp->link_status & FC_LINK_UP); | 1623 | return (lp->state == LPORT_ST_READY) && lp->link_up && !lp->qfull; |
| 1625 | } | 1624 | } |
| 1626 | 1625 | ||
| 1627 | /** | 1626 | /** |
| @@ -1727,7 +1726,7 @@ out: | |||
| 1727 | EXPORT_SYMBOL(fc_queuecommand); | 1726 | EXPORT_SYMBOL(fc_queuecommand); |
| 1728 | 1727 | ||
| 1729 | /** | 1728 | /** |
| 1730 | * fc_io_compl - Handle responses for completed commands | 1729 | * fc_io_compl() - Handle responses for completed commands |
| 1731 | * @fsp: scsi packet | 1730 | * @fsp: scsi packet |
| 1732 | * | 1731 | * |
| 1733 | * Translates a error to a Linux SCSI error. | 1732 | * Translates a error to a Linux SCSI error. |
| @@ -1810,12 +1809,12 @@ static void fc_io_compl(struct fc_fcp_pkt *fsp) | |||
| 1810 | sc_cmd->result = DID_ERROR << 16; | 1809 | sc_cmd->result = DID_ERROR << 16; |
| 1811 | break; | 1810 | break; |
| 1812 | case FC_DATA_UNDRUN: | 1811 | case FC_DATA_UNDRUN: |
| 1813 | if (fsp->cdb_status == 0) { | 1812 | if ((fsp->cdb_status == 0) && !(fsp->req_flags & FC_SRB_READ)) { |
| 1814 | /* | 1813 | /* |
| 1815 | * scsi status is good but transport level | 1814 | * scsi status is good but transport level |
| 1816 | * underrun. for read it should be an error?? | 1815 | * underrun. |
| 1817 | */ | 1816 | */ |
| 1818 | sc_cmd->result = (DID_OK << 16) | fsp->cdb_status; | 1817 | sc_cmd->result = DID_OK << 16; |
| 1819 | } else { | 1818 | } else { |
| 1820 | /* | 1819 | /* |
| 1821 | * scsi got underrun, this is an error | 1820 | * scsi got underrun, this is an error |
| @@ -1857,7 +1856,7 @@ static void fc_io_compl(struct fc_fcp_pkt *fsp) | |||
| 1857 | } | 1856 | } |
| 1858 | 1857 | ||
| 1859 | /** | 1858 | /** |
| 1860 | * fc_fcp_complete - complete processing of a fcp packet | 1859 | * fc_fcp_complete() - complete processing of a fcp packet |
| 1861 | * @fsp: fcp packet | 1860 | * @fsp: fcp packet |
| 1862 | * | 1861 | * |
| 1863 | * This function may sleep if a fsp timer is pending. | 1862 | * This function may sleep if a fsp timer is pending. |
| @@ -1874,9 +1873,10 @@ void fc_fcp_complete(struct fc_fcp_pkt *fsp) | |||
| 1874 | EXPORT_SYMBOL(fc_fcp_complete); | 1873 | EXPORT_SYMBOL(fc_fcp_complete); |
| 1875 | 1874 | ||
| 1876 | /** | 1875 | /** |
| 1877 | * fc_eh_abort - Abort a command...from scsi host template | 1876 | * fc_eh_abort() - Abort a command |
| 1878 | * @sc_cmd: scsi command to abort | 1877 | * @sc_cmd: scsi command to abort |
| 1879 | * | 1878 | * |
| 1879 | * From scsi host template. | ||
| 1880 | * send ABTS to the target device and wait for the response | 1880 | * send ABTS to the target device and wait for the response |
| 1881 | * sc_cmd is the pointer to the command to be aborted. | 1881 | * sc_cmd is the pointer to the command to be aborted. |
| 1882 | */ | 1882 | */ |
| @@ -1890,7 +1890,7 @@ int fc_eh_abort(struct scsi_cmnd *sc_cmd) | |||
| 1890 | lp = shost_priv(sc_cmd->device->host); | 1890 | lp = shost_priv(sc_cmd->device->host); |
| 1891 | if (lp->state != LPORT_ST_READY) | 1891 | if (lp->state != LPORT_ST_READY) |
| 1892 | return rc; | 1892 | return rc; |
| 1893 | else if (!(lp->link_status & FC_LINK_UP)) | 1893 | else if (!lp->link_up) |
| 1894 | return rc; | 1894 | return rc; |
| 1895 | 1895 | ||
| 1896 | spin_lock_irqsave(lp->host->host_lock, flags); | 1896 | spin_lock_irqsave(lp->host->host_lock, flags); |
| @@ -1920,7 +1920,7 @@ release_pkt: | |||
| 1920 | EXPORT_SYMBOL(fc_eh_abort); | 1920 | EXPORT_SYMBOL(fc_eh_abort); |
| 1921 | 1921 | ||
| 1922 | /** | 1922 | /** |
| 1923 | * fc_eh_device_reset: Reset a single LUN | 1923 | * fc_eh_device_reset() Reset a single LUN |
| 1924 | * @sc_cmd: scsi command | 1924 | * @sc_cmd: scsi command |
| 1925 | * | 1925 | * |
| 1926 | * Set from scsi host template to send tm cmd to the target and wait for the | 1926 | * Set from scsi host template to send tm cmd to the target and wait for the |
| @@ -1973,7 +1973,7 @@ out: | |||
| 1973 | EXPORT_SYMBOL(fc_eh_device_reset); | 1973 | EXPORT_SYMBOL(fc_eh_device_reset); |
| 1974 | 1974 | ||
| 1975 | /** | 1975 | /** |
| 1976 | * fc_eh_host_reset - The reset function will reset the ports on the host. | 1976 | * fc_eh_host_reset() - The reset function will reset the ports on the host. |
| 1977 | * @sc_cmd: scsi command | 1977 | * @sc_cmd: scsi command |
| 1978 | */ | 1978 | */ |
| 1979 | int fc_eh_host_reset(struct scsi_cmnd *sc_cmd) | 1979 | int fc_eh_host_reset(struct scsi_cmnd *sc_cmd) |
| @@ -1999,7 +1999,7 @@ int fc_eh_host_reset(struct scsi_cmnd *sc_cmd) | |||
| 1999 | EXPORT_SYMBOL(fc_eh_host_reset); | 1999 | EXPORT_SYMBOL(fc_eh_host_reset); |
| 2000 | 2000 | ||
| 2001 | /** | 2001 | /** |
| 2002 | * fc_slave_alloc - configure queue depth | 2002 | * fc_slave_alloc() - configure queue depth |
| 2003 | * @sdev: scsi device | 2003 | * @sdev: scsi device |
| 2004 | * | 2004 | * |
| 2005 | * Configures queue depth based on host's cmd_per_len. If not set | 2005 | * Configures queue depth based on host's cmd_per_len. If not set |
diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c index 0b9bdb1fb807..2ae50a1188e6 100644 --- a/drivers/scsi/libfc/fc_lport.c +++ b/drivers/scsi/libfc/fc_lport.c | |||
| @@ -139,7 +139,7 @@ static int fc_frame_drop(struct fc_lport *lport, struct fc_frame *fp) | |||
| 139 | } | 139 | } |
| 140 | 140 | ||
| 141 | /** | 141 | /** |
| 142 | * fc_lport_rport_callback - Event handler for rport events | 142 | * fc_lport_rport_callback() - Event handler for rport events |
| 143 | * @lport: The lport which is receiving the event | 143 | * @lport: The lport which is receiving the event |
| 144 | * @rport: The rport which the event has occured on | 144 | * @rport: The rport which the event has occured on |
| 145 | * @event: The event that occured | 145 | * @event: The event that occured |
| @@ -195,7 +195,7 @@ static void fc_lport_rport_callback(struct fc_lport *lport, | |||
| 195 | } | 195 | } |
| 196 | 196 | ||
| 197 | /** | 197 | /** |
| 198 | * fc_lport_state - Return a string which represents the lport's state | 198 | * fc_lport_state() - Return a string which represents the lport's state |
| 199 | * @lport: The lport whose state is to converted to a string | 199 | * @lport: The lport whose state is to converted to a string |
| 200 | */ | 200 | */ |
| 201 | static const char *fc_lport_state(struct fc_lport *lport) | 201 | static const char *fc_lport_state(struct fc_lport *lport) |
| @@ -209,7 +209,7 @@ static const char *fc_lport_state(struct fc_lport *lport) | |||
| 209 | } | 209 | } |
| 210 | 210 | ||
| 211 | /** | 211 | /** |
| 212 | * fc_lport_ptp_setup - Create an rport for point-to-point mode | 212 | * fc_lport_ptp_setup() - Create an rport for point-to-point mode |
| 213 | * @lport: The lport to attach the ptp rport to | 213 | * @lport: The lport to attach the ptp rport to |
| 214 | * @fid: The FID of the ptp rport | 214 | * @fid: The FID of the ptp rport |
| 215 | * @remote_wwpn: The WWPN of the ptp rport | 215 | * @remote_wwpn: The WWPN of the ptp rport |
| @@ -232,7 +232,7 @@ static void fc_lport_ptp_setup(struct fc_lport *lport, | |||
| 232 | lport->ptp_rp = NULL; | 232 | lport->ptp_rp = NULL; |
| 233 | } | 233 | } |
| 234 | 234 | ||
| 235 | lport->ptp_rp = fc_rport_rogue_create(&dp); | 235 | lport->ptp_rp = lport->tt.rport_create(&dp); |
| 236 | 236 | ||
| 237 | lport->tt.rport_login(lport->ptp_rp); | 237 | lport->tt.rport_login(lport->ptp_rp); |
| 238 | 238 | ||
| @@ -250,7 +250,7 @@ void fc_get_host_port_state(struct Scsi_Host *shost) | |||
| 250 | { | 250 | { |
| 251 | struct fc_lport *lp = shost_priv(shost); | 251 | struct fc_lport *lp = shost_priv(shost); |
| 252 | 252 | ||
| 253 | if ((lp->link_status & FC_LINK_UP) == FC_LINK_UP) | 253 | if (lp->link_up) |
| 254 | fc_host_port_state(shost) = FC_PORTSTATE_ONLINE; | 254 | fc_host_port_state(shost) = FC_PORTSTATE_ONLINE; |
| 255 | else | 255 | else |
| 256 | fc_host_port_state(shost) = FC_PORTSTATE_OFFLINE; | 256 | fc_host_port_state(shost) = FC_PORTSTATE_OFFLINE; |
| @@ -351,7 +351,7 @@ static void fc_lport_add_fc4_type(struct fc_lport *lport, enum fc_fh_type type) | |||
| 351 | } | 351 | } |
| 352 | 352 | ||
| 353 | /** | 353 | /** |
| 354 | * fc_lport_recv_rlir_req - Handle received Registered Link Incident Report. | 354 | * fc_lport_recv_rlir_req() - Handle received Registered Link Incident Report. |
| 355 | * @lport: Fibre Channel local port recieving the RLIR | 355 | * @lport: Fibre Channel local port recieving the RLIR |
| 356 | * @sp: current sequence in the RLIR exchange | 356 | * @sp: current sequence in the RLIR exchange |
| 357 | * @fp: RLIR request frame | 357 | * @fp: RLIR request frame |
| @@ -370,7 +370,7 @@ static void fc_lport_recv_rlir_req(struct fc_seq *sp, struct fc_frame *fp, | |||
| 370 | } | 370 | } |
| 371 | 371 | ||
| 372 | /** | 372 | /** |
| 373 | * fc_lport_recv_echo_req - Handle received ECHO request | 373 | * fc_lport_recv_echo_req() - Handle received ECHO request |
| 374 | * @lport: Fibre Channel local port recieving the ECHO | 374 | * @lport: Fibre Channel local port recieving the ECHO |
| 375 | * @sp: current sequence in the ECHO exchange | 375 | * @sp: current sequence in the ECHO exchange |
| 376 | * @fp: ECHO request frame | 376 | * @fp: ECHO request frame |
| @@ -412,7 +412,7 @@ static void fc_lport_recv_echo_req(struct fc_seq *sp, struct fc_frame *in_fp, | |||
| 412 | } | 412 | } |
| 413 | 413 | ||
| 414 | /** | 414 | /** |
| 415 | * fc_lport_recv_echo_req - Handle received Request Node ID data request | 415 | * fc_lport_recv_echo_req() - Handle received Request Node ID data request |
| 416 | * @lport: Fibre Channel local port recieving the RNID | 416 | * @lport: Fibre Channel local port recieving the RNID |
| 417 | * @sp: current sequence in the RNID exchange | 417 | * @sp: current sequence in the RNID exchange |
| 418 | * @fp: RNID request frame | 418 | * @fp: RNID request frame |
| @@ -479,7 +479,7 @@ static void fc_lport_recv_rnid_req(struct fc_seq *sp, struct fc_frame *in_fp, | |||
| 479 | } | 479 | } |
| 480 | 480 | ||
| 481 | /** | 481 | /** |
| 482 | * fc_lport_recv_adisc_req - Handle received Address Discovery Request | 482 | * fc_lport_recv_adisc_req() - Handle received Address Discovery Request |
| 483 | * @lport: Fibre Channel local port recieving the ADISC | 483 | * @lport: Fibre Channel local port recieving the ADISC |
| 484 | * @sp: current sequence in the ADISC exchange | 484 | * @sp: current sequence in the ADISC exchange |
| 485 | * @fp: ADISC request frame | 485 | * @fp: ADISC request frame |
| @@ -529,7 +529,7 @@ static void fc_lport_recv_adisc_req(struct fc_seq *sp, struct fc_frame *in_fp, | |||
| 529 | } | 529 | } |
| 530 | 530 | ||
| 531 | /** | 531 | /** |
| 532 | * fc_lport_recv_logo_req - Handle received fabric LOGO request | 532 | * fc_lport_recv_logo_req() - Handle received fabric LOGO request |
| 533 | * @lport: Fibre Channel local port recieving the LOGO | 533 | * @lport: Fibre Channel local port recieving the LOGO |
| 534 | * @sp: current sequence in the LOGO exchange | 534 | * @sp: current sequence in the LOGO exchange |
| 535 | * @fp: LOGO request frame | 535 | * @fp: LOGO request frame |
| @@ -546,7 +546,7 @@ static void fc_lport_recv_logo_req(struct fc_seq *sp, struct fc_frame *fp, | |||
| 546 | } | 546 | } |
| 547 | 547 | ||
| 548 | /** | 548 | /** |
| 549 | * fc_fabric_login - Start the lport state machine | 549 | * fc_fabric_login() - Start the lport state machine |
| 550 | * @lport: The lport that should log into the fabric | 550 | * @lport: The lport that should log into the fabric |
| 551 | * | 551 | * |
| 552 | * Locking Note: This function should not be called | 552 | * Locking Note: This function should not be called |
| @@ -568,7 +568,7 @@ int fc_fabric_login(struct fc_lport *lport) | |||
| 568 | EXPORT_SYMBOL(fc_fabric_login); | 568 | EXPORT_SYMBOL(fc_fabric_login); |
| 569 | 569 | ||
| 570 | /** | 570 | /** |
| 571 | * fc_linkup - Handler for transport linkup events | 571 | * fc_linkup() - Handler for transport linkup events |
| 572 | * @lport: The lport whose link is up | 572 | * @lport: The lport whose link is up |
| 573 | */ | 573 | */ |
| 574 | void fc_linkup(struct fc_lport *lport) | 574 | void fc_linkup(struct fc_lport *lport) |
| @@ -577,8 +577,8 @@ void fc_linkup(struct fc_lport *lport) | |||
| 577 | fc_host_port_id(lport->host)); | 577 | fc_host_port_id(lport->host)); |
| 578 | 578 | ||
| 579 | mutex_lock(&lport->lp_mutex); | 579 | mutex_lock(&lport->lp_mutex); |
| 580 | if ((lport->link_status & FC_LINK_UP) != FC_LINK_UP) { | 580 | if (!lport->link_up) { |
| 581 | lport->link_status |= FC_LINK_UP; | 581 | lport->link_up = 1; |
| 582 | 582 | ||
| 583 | if (lport->state == LPORT_ST_RESET) | 583 | if (lport->state == LPORT_ST_RESET) |
| 584 | fc_lport_enter_flogi(lport); | 584 | fc_lport_enter_flogi(lport); |
| @@ -588,7 +588,7 @@ void fc_linkup(struct fc_lport *lport) | |||
| 588 | EXPORT_SYMBOL(fc_linkup); | 588 | EXPORT_SYMBOL(fc_linkup); |
| 589 | 589 | ||
| 590 | /** | 590 | /** |
| 591 | * fc_linkdown - Handler for transport linkdown events | 591 | * fc_linkdown() - Handler for transport linkdown events |
| 592 | * @lport: The lport whose link is down | 592 | * @lport: The lport whose link is down |
| 593 | */ | 593 | */ |
| 594 | void fc_linkdown(struct fc_lport *lport) | 594 | void fc_linkdown(struct fc_lport *lport) |
| @@ -597,8 +597,8 @@ void fc_linkdown(struct fc_lport *lport) | |||
| 597 | FC_DEBUG_LPORT("Link is down for port (%6x)\n", | 597 | FC_DEBUG_LPORT("Link is down for port (%6x)\n", |
| 598 | fc_host_port_id(lport->host)); | 598 | fc_host_port_id(lport->host)); |
| 599 | 599 | ||
| 600 | if ((lport->link_status & FC_LINK_UP) == FC_LINK_UP) { | 600 | if (lport->link_up) { |
| 601 | lport->link_status &= ~(FC_LINK_UP); | 601 | lport->link_up = 0; |
| 602 | fc_lport_enter_reset(lport); | 602 | fc_lport_enter_reset(lport); |
| 603 | lport->tt.fcp_cleanup(lport); | 603 | lport->tt.fcp_cleanup(lport); |
| 604 | } | 604 | } |
| @@ -607,48 +607,25 @@ void fc_linkdown(struct fc_lport *lport) | |||
| 607 | EXPORT_SYMBOL(fc_linkdown); | 607 | EXPORT_SYMBOL(fc_linkdown); |
| 608 | 608 | ||
| 609 | /** | 609 | /** |
| 610 | * fc_pause - Pause the flow of frames | 610 | * fc_fabric_logoff() - Logout of the fabric |
| 611 | * @lport: The lport to be paused | ||
| 612 | */ | ||
| 613 | void fc_pause(struct fc_lport *lport) | ||
| 614 | { | ||
| 615 | mutex_lock(&lport->lp_mutex); | ||
| 616 | lport->link_status |= FC_PAUSE; | ||
| 617 | mutex_unlock(&lport->lp_mutex); | ||
| 618 | } | ||
| 619 | EXPORT_SYMBOL(fc_pause); | ||
| 620 | |||
| 621 | /** | ||
| 622 | * fc_unpause - Unpause the flow of frames | ||
| 623 | * @lport: The lport to be unpaused | ||
| 624 | */ | ||
| 625 | void fc_unpause(struct fc_lport *lport) | ||
| 626 | { | ||
| 627 | mutex_lock(&lport->lp_mutex); | ||
| 628 | lport->link_status &= ~(FC_PAUSE); | ||
| 629 | mutex_unlock(&lport->lp_mutex); | ||
| 630 | } | ||
| 631 | EXPORT_SYMBOL(fc_unpause); | ||
| 632 | |||
| 633 | /** | ||
| 634 | * fc_fabric_logoff - Logout of the fabric | ||
| 635 | * @lport: fc_lport pointer to logoff the fabric | 611 | * @lport: fc_lport pointer to logoff the fabric |
| 636 | * | 612 | * |
| 637 | * Return value: | 613 | * Return value: |
| 638 | * 0 for success, -1 for failure | 614 | * 0 for success, -1 for failure |
| 639 | **/ | 615 | */ |
| 640 | int fc_fabric_logoff(struct fc_lport *lport) | 616 | int fc_fabric_logoff(struct fc_lport *lport) |
| 641 | { | 617 | { |
| 642 | lport->tt.disc_stop_final(lport); | 618 | lport->tt.disc_stop_final(lport); |
| 643 | mutex_lock(&lport->lp_mutex); | 619 | mutex_lock(&lport->lp_mutex); |
| 644 | fc_lport_enter_logo(lport); | 620 | fc_lport_enter_logo(lport); |
| 645 | mutex_unlock(&lport->lp_mutex); | 621 | mutex_unlock(&lport->lp_mutex); |
| 622 | cancel_delayed_work_sync(&lport->retry_work); | ||
| 646 | return 0; | 623 | return 0; |
| 647 | } | 624 | } |
| 648 | EXPORT_SYMBOL(fc_fabric_logoff); | 625 | EXPORT_SYMBOL(fc_fabric_logoff); |
| 649 | 626 | ||
| 650 | /** | 627 | /** |
| 651 | * fc_lport_destroy - unregister a fc_lport | 628 | * fc_lport_destroy() - unregister a fc_lport |
| 652 | * @lport: fc_lport pointer to unregister | 629 | * @lport: fc_lport pointer to unregister |
| 653 | * | 630 | * |
| 654 | * Return value: | 631 | * Return value: |
| @@ -658,26 +635,25 @@ EXPORT_SYMBOL(fc_fabric_logoff); | |||
| 658 | * clean-up all the allocated memory | 635 | * clean-up all the allocated memory |
| 659 | * and free up other system resources. | 636 | * and free up other system resources. |
| 660 | * | 637 | * |
| 661 | **/ | 638 | */ |
| 662 | int fc_lport_destroy(struct fc_lport *lport) | 639 | int fc_lport_destroy(struct fc_lport *lport) |
| 663 | { | 640 | { |
| 664 | lport->tt.frame_send = fc_frame_drop; | 641 | lport->tt.frame_send = fc_frame_drop; |
| 665 | lport->tt.fcp_abort_io(lport); | 642 | lport->tt.fcp_abort_io(lport); |
| 666 | lport->tt.exch_mgr_reset(lport->emp, 0, 0); | 643 | lport->tt.exch_mgr_reset(lport, 0, 0); |
| 667 | return 0; | 644 | return 0; |
| 668 | } | 645 | } |
| 669 | EXPORT_SYMBOL(fc_lport_destroy); | 646 | EXPORT_SYMBOL(fc_lport_destroy); |
| 670 | 647 | ||
| 671 | /** | 648 | /** |
| 672 | * fc_set_mfs - sets up the mfs for the corresponding fc_lport | 649 | * fc_set_mfs() - sets up the mfs for the corresponding fc_lport |
| 673 | * @lport: fc_lport pointer to unregister | 650 | * @lport: fc_lport pointer to unregister |
| 674 | * @mfs: the new mfs for fc_lport | 651 | * @mfs: the new mfs for fc_lport |
| 675 | * | 652 | * |
| 676 | * Set mfs for the given fc_lport to the new mfs. | 653 | * Set mfs for the given fc_lport to the new mfs. |
| 677 | * | 654 | * |
| 678 | * Return: 0 for success | 655 | * Return: 0 for success |
| 679 | * | 656 | */ |
| 680 | **/ | ||
| 681 | int fc_set_mfs(struct fc_lport *lport, u32 mfs) | 657 | int fc_set_mfs(struct fc_lport *lport, u32 mfs) |
| 682 | { | 658 | { |
| 683 | unsigned int old_mfs; | 659 | unsigned int old_mfs; |
| @@ -706,7 +682,7 @@ int fc_set_mfs(struct fc_lport *lport, u32 mfs) | |||
| 706 | EXPORT_SYMBOL(fc_set_mfs); | 682 | EXPORT_SYMBOL(fc_set_mfs); |
| 707 | 683 | ||
| 708 | /** | 684 | /** |
| 709 | * fc_lport_disc_callback - Callback for discovery events | 685 | * fc_lport_disc_callback() - Callback for discovery events |
| 710 | * @lport: FC local port | 686 | * @lport: FC local port |
| 711 | * @event: The discovery event | 687 | * @event: The discovery event |
| 712 | */ | 688 | */ |
| @@ -731,7 +707,7 @@ void fc_lport_disc_callback(struct fc_lport *lport, enum fc_disc_event event) | |||
| 731 | } | 707 | } |
| 732 | 708 | ||
| 733 | /** | 709 | /** |
| 734 | * fc_rport_enter_ready - Enter the ready state and start discovery | 710 | * fc_rport_enter_ready() - Enter the ready state and start discovery |
| 735 | * @lport: Fibre Channel local port that is ready | 711 | * @lport: Fibre Channel local port that is ready |
| 736 | * | 712 | * |
| 737 | * Locking Note: The lport lock is expected to be held before calling | 713 | * Locking Note: The lport lock is expected to be held before calling |
| @@ -748,7 +724,7 @@ static void fc_lport_enter_ready(struct fc_lport *lport) | |||
| 748 | } | 724 | } |
| 749 | 725 | ||
| 750 | /** | 726 | /** |
| 751 | * fc_lport_recv_flogi_req - Receive a FLOGI request | 727 | * fc_lport_recv_flogi_req() - Receive a FLOGI request |
| 752 | * @sp_in: The sequence the FLOGI is on | 728 | * @sp_in: The sequence the FLOGI is on |
| 753 | * @rx_fp: The frame the FLOGI is in | 729 | * @rx_fp: The frame the FLOGI is in |
| 754 | * @lport: The lport that recieved the request | 730 | * @lport: The lport that recieved the request |
| @@ -838,7 +814,7 @@ out: | |||
| 838 | } | 814 | } |
| 839 | 815 | ||
| 840 | /** | 816 | /** |
| 841 | * fc_lport_recv_req - The generic lport request handler | 817 | * fc_lport_recv_req() - The generic lport request handler |
| 842 | * @lport: The lport that received the request | 818 | * @lport: The lport that received the request |
| 843 | * @sp: The sequence the request is on | 819 | * @sp: The sequence the request is on |
| 844 | * @fp: The frame the request is in | 820 | * @fp: The frame the request is in |
| @@ -934,7 +910,7 @@ static void fc_lport_recv_req(struct fc_lport *lport, struct fc_seq *sp, | |||
| 934 | } | 910 | } |
| 935 | 911 | ||
| 936 | /** | 912 | /** |
| 937 | * fc_lport_reset - Reset an lport | 913 | * fc_lport_reset() - Reset an lport |
| 938 | * @lport: The lport which should be reset | 914 | * @lport: The lport which should be reset |
| 939 | * | 915 | * |
| 940 | * Locking Note: This functions should not be called with the | 916 | * Locking Note: This functions should not be called with the |
| @@ -942,6 +918,7 @@ static void fc_lport_recv_req(struct fc_lport *lport, struct fc_seq *sp, | |||
| 942 | */ | 918 | */ |
| 943 | int fc_lport_reset(struct fc_lport *lport) | 919 | int fc_lport_reset(struct fc_lport *lport) |
| 944 | { | 920 | { |
| 921 | cancel_delayed_work_sync(&lport->retry_work); | ||
| 945 | mutex_lock(&lport->lp_mutex); | 922 | mutex_lock(&lport->lp_mutex); |
| 946 | fc_lport_enter_reset(lport); | 923 | fc_lport_enter_reset(lport); |
| 947 | mutex_unlock(&lport->lp_mutex); | 924 | mutex_unlock(&lport->lp_mutex); |
| @@ -950,7 +927,7 @@ int fc_lport_reset(struct fc_lport *lport) | |||
| 950 | EXPORT_SYMBOL(fc_lport_reset); | 927 | EXPORT_SYMBOL(fc_lport_reset); |
| 951 | 928 | ||
| 952 | /** | 929 | /** |
| 953 | * fc_rport_enter_reset - Reset the local port | 930 | * fc_rport_enter_reset() - Reset the local port |
| 954 | * @lport: Fibre Channel local port to be reset | 931 | * @lport: Fibre Channel local port to be reset |
| 955 | * | 932 | * |
| 956 | * Locking Note: The lport lock is expected to be held before calling | 933 | * Locking Note: The lport lock is expected to be held before calling |
| @@ -973,16 +950,16 @@ static void fc_lport_enter_reset(struct fc_lport *lport) | |||
| 973 | 950 | ||
| 974 | lport->tt.disc_stop(lport); | 951 | lport->tt.disc_stop(lport); |
| 975 | 952 | ||
| 976 | lport->tt.exch_mgr_reset(lport->emp, 0, 0); | 953 | lport->tt.exch_mgr_reset(lport, 0, 0); |
| 977 | fc_host_fabric_name(lport->host) = 0; | 954 | fc_host_fabric_name(lport->host) = 0; |
| 978 | fc_host_port_id(lport->host) = 0; | 955 | fc_host_port_id(lport->host) = 0; |
| 979 | 956 | ||
| 980 | if ((lport->link_status & FC_LINK_UP) == FC_LINK_UP) | 957 | if (lport->link_up) |
| 981 | fc_lport_enter_flogi(lport); | 958 | fc_lport_enter_flogi(lport); |
| 982 | } | 959 | } |
| 983 | 960 | ||
| 984 | /** | 961 | /** |
| 985 | * fc_lport_error - Handler for any errors | 962 | * fc_lport_error() - Handler for any errors |
| 986 | * @lport: The fc_lport object | 963 | * @lport: The fc_lport object |
| 987 | * @fp: The frame pointer | 964 | * @fp: The frame pointer |
| 988 | * | 965 | * |
| @@ -1029,8 +1006,8 @@ static void fc_lport_error(struct fc_lport *lport, struct fc_frame *fp) | |||
| 1029 | } | 1006 | } |
| 1030 | 1007 | ||
| 1031 | /** | 1008 | /** |
| 1032 | * fc_lport_rft_id_resp - Handle response to Register Fibre | 1009 | * fc_lport_rft_id_resp() - Handle response to Register Fibre |
| 1033 | * Channel Types by ID (RPN_ID) request | 1010 | * Channel Types by ID (RPN_ID) request |
| 1034 | * @sp: current sequence in RPN_ID exchange | 1011 | * @sp: current sequence in RPN_ID exchange |
| 1035 | * @fp: response frame | 1012 | * @fp: response frame |
| 1036 | * @lp_arg: Fibre Channel host port instance | 1013 | * @lp_arg: Fibre Channel host port instance |
| @@ -1053,17 +1030,17 @@ static void fc_lport_rft_id_resp(struct fc_seq *sp, struct fc_frame *fp, | |||
| 1053 | 1030 | ||
| 1054 | FC_DEBUG_LPORT("Received a RFT_ID response\n"); | 1031 | FC_DEBUG_LPORT("Received a RFT_ID response\n"); |
| 1055 | 1032 | ||
| 1033 | if (IS_ERR(fp)) { | ||
| 1034 | fc_lport_error(lport, fp); | ||
| 1035 | goto err; | ||
| 1036 | } | ||
| 1037 | |||
| 1056 | if (lport->state != LPORT_ST_RFT_ID) { | 1038 | if (lport->state != LPORT_ST_RFT_ID) { |
| 1057 | FC_DBG("Received a RFT_ID response, but in state %s\n", | 1039 | FC_DBG("Received a RFT_ID response, but in state %s\n", |
| 1058 | fc_lport_state(lport)); | 1040 | fc_lport_state(lport)); |
| 1059 | goto out; | 1041 | goto out; |
| 1060 | } | 1042 | } |
| 1061 | 1043 | ||
| 1062 | if (IS_ERR(fp)) { | ||
| 1063 | fc_lport_error(lport, fp); | ||
| 1064 | goto err; | ||
| 1065 | } | ||
| 1066 | |||
| 1067 | fh = fc_frame_header_get(fp); | 1044 | fh = fc_frame_header_get(fp); |
| 1068 | ct = fc_frame_payload_get(fp, sizeof(*ct)); | 1045 | ct = fc_frame_payload_get(fp, sizeof(*ct)); |
| 1069 | 1046 | ||
| @@ -1081,8 +1058,8 @@ err: | |||
| 1081 | } | 1058 | } |
| 1082 | 1059 | ||
| 1083 | /** | 1060 | /** |
| 1084 | * fc_lport_rpn_id_resp - Handle response to Register Port | 1061 | * fc_lport_rpn_id_resp() - Handle response to Register Port |
| 1085 | * Name by ID (RPN_ID) request | 1062 | * Name by ID (RPN_ID) request |
| 1086 | * @sp: current sequence in RPN_ID exchange | 1063 | * @sp: current sequence in RPN_ID exchange |
| 1087 | * @fp: response frame | 1064 | * @fp: response frame |
| 1088 | * @lp_arg: Fibre Channel host port instance | 1065 | * @lp_arg: Fibre Channel host port instance |
| @@ -1105,17 +1082,17 @@ static void fc_lport_rpn_id_resp(struct fc_seq *sp, struct fc_frame *fp, | |||
| 1105 | 1082 | ||
| 1106 | FC_DEBUG_LPORT("Received a RPN_ID response\n"); | 1083 | FC_DEBUG_LPORT("Received a RPN_ID response\n"); |
| 1107 | 1084 | ||
| 1085 | if (IS_ERR(fp)) { | ||
| 1086 | fc_lport_error(lport, fp); | ||
| 1087 | goto err; | ||
| 1088 | } | ||
| 1089 | |||
| 1108 | if (lport->state != LPORT_ST_RPN_ID) { | 1090 | if (lport->state != LPORT_ST_RPN_ID) { |
| 1109 | FC_DBG("Received a RPN_ID response, but in state %s\n", | 1091 | FC_DBG("Received a RPN_ID response, but in state %s\n", |
| 1110 | fc_lport_state(lport)); | 1092 | fc_lport_state(lport)); |
| 1111 | goto out; | 1093 | goto out; |
| 1112 | } | 1094 | } |
| 1113 | 1095 | ||
| 1114 | if (IS_ERR(fp)) { | ||
| 1115 | fc_lport_error(lport, fp); | ||
| 1116 | goto err; | ||
| 1117 | } | ||
| 1118 | |||
| 1119 | fh = fc_frame_header_get(fp); | 1096 | fh = fc_frame_header_get(fp); |
| 1120 | ct = fc_frame_payload_get(fp, sizeof(*ct)); | 1097 | ct = fc_frame_payload_get(fp, sizeof(*ct)); |
| 1121 | if (fh && ct && fh->fh_type == FC_TYPE_CT && | 1098 | if (fh && ct && fh->fh_type == FC_TYPE_CT && |
| @@ -1133,7 +1110,7 @@ err: | |||
| 1133 | } | 1110 | } |
| 1134 | 1111 | ||
| 1135 | /** | 1112 | /** |
| 1136 | * fc_lport_scr_resp - Handle response to State Change Register (SCR) request | 1113 | * fc_lport_scr_resp() - Handle response to State Change Register (SCR) request |
| 1137 | * @sp: current sequence in SCR exchange | 1114 | * @sp: current sequence in SCR exchange |
| 1138 | * @fp: response frame | 1115 | * @fp: response frame |
| 1139 | * @lp_arg: Fibre Channel lport port instance that sent the registration request | 1116 | * @lp_arg: Fibre Channel lport port instance that sent the registration request |
| @@ -1155,17 +1132,17 @@ static void fc_lport_scr_resp(struct fc_seq *sp, struct fc_frame *fp, | |||
| 1155 | 1132 | ||
| 1156 | FC_DEBUG_LPORT("Received a SCR response\n"); | 1133 | FC_DEBUG_LPORT("Received a SCR response\n"); |
| 1157 | 1134 | ||
| 1135 | if (IS_ERR(fp)) { | ||
| 1136 | fc_lport_error(lport, fp); | ||
| 1137 | goto err; | ||
| 1138 | } | ||
| 1139 | |||
| 1158 | if (lport->state != LPORT_ST_SCR) { | 1140 | if (lport->state != LPORT_ST_SCR) { |
| 1159 | FC_DBG("Received a SCR response, but in state %s\n", | 1141 | FC_DBG("Received a SCR response, but in state %s\n", |
| 1160 | fc_lport_state(lport)); | 1142 | fc_lport_state(lport)); |
| 1161 | goto out; | 1143 | goto out; |
| 1162 | } | 1144 | } |
| 1163 | 1145 | ||
| 1164 | if (IS_ERR(fp)) { | ||
| 1165 | fc_lport_error(lport, fp); | ||
| 1166 | goto err; | ||
| 1167 | } | ||
| 1168 | |||
| 1169 | op = fc_frame_payload_op(fp); | 1146 | op = fc_frame_payload_op(fp); |
| 1170 | if (op == ELS_LS_ACC) | 1147 | if (op == ELS_LS_ACC) |
| 1171 | fc_lport_enter_ready(lport); | 1148 | fc_lport_enter_ready(lport); |
| @@ -1179,7 +1156,7 @@ err: | |||
| 1179 | } | 1156 | } |
| 1180 | 1157 | ||
| 1181 | /** | 1158 | /** |
| 1182 | * fc_lport_enter_scr - Send a State Change Register (SCR) request | 1159 | * fc_lport_enter_scr() - Send a State Change Register (SCR) request |
| 1183 | * @lport: Fibre Channel local port to register for state changes | 1160 | * @lport: Fibre Channel local port to register for state changes |
| 1184 | * | 1161 | * |
| 1185 | * Locking Note: The lport lock is expected to be held before calling | 1162 | * Locking Note: The lport lock is expected to be held before calling |
| @@ -1206,7 +1183,7 @@ static void fc_lport_enter_scr(struct fc_lport *lport) | |||
| 1206 | } | 1183 | } |
| 1207 | 1184 | ||
| 1208 | /** | 1185 | /** |
| 1209 | * fc_lport_enter_rft_id - Register FC4-types with the name server | 1186 | * fc_lport_enter_rft_id() - Register FC4-types with the name server |
| 1210 | * @lport: Fibre Channel local port to register | 1187 | * @lport: Fibre Channel local port to register |
| 1211 | * | 1188 | * |
| 1212 | * Locking Note: The lport lock is expected to be held before calling | 1189 | * Locking Note: The lport lock is expected to be held before calling |
| @@ -1248,7 +1225,7 @@ static void fc_lport_enter_rft_id(struct fc_lport *lport) | |||
| 1248 | } | 1225 | } |
| 1249 | 1226 | ||
| 1250 | /** | 1227 | /** |
| 1251 | * fc_rport_enter_rft_id - Register port name with the name server | 1228 | * fc_rport_enter_rft_id() - Register port name with the name server |
| 1252 | * @lport: Fibre Channel local port to register | 1229 | * @lport: Fibre Channel local port to register |
| 1253 | * | 1230 | * |
| 1254 | * Locking Note: The lport lock is expected to be held before calling | 1231 | * Locking Note: The lport lock is expected to be held before calling |
| @@ -1281,7 +1258,7 @@ static struct fc_rport_operations fc_lport_rport_ops = { | |||
| 1281 | }; | 1258 | }; |
| 1282 | 1259 | ||
| 1283 | /** | 1260 | /** |
| 1284 | * fc_rport_enter_dns - Create a rport to the name server | 1261 | * fc_rport_enter_dns() - Create a rport to the name server |
| 1285 | * @lport: Fibre Channel local port requesting a rport for the name server | 1262 | * @lport: Fibre Channel local port requesting a rport for the name server |
| 1286 | * | 1263 | * |
| 1287 | * Locking Note: The lport lock is expected to be held before calling | 1264 | * Locking Note: The lport lock is expected to be held before calling |
| @@ -1304,7 +1281,7 @@ static void fc_lport_enter_dns(struct fc_lport *lport) | |||
| 1304 | 1281 | ||
| 1305 | fc_lport_state_enter(lport, LPORT_ST_DNS); | 1282 | fc_lport_state_enter(lport, LPORT_ST_DNS); |
| 1306 | 1283 | ||
| 1307 | rport = fc_rport_rogue_create(&dp); | 1284 | rport = lport->tt.rport_create(&dp); |
| 1308 | if (!rport) | 1285 | if (!rport) |
| 1309 | goto err; | 1286 | goto err; |
| 1310 | 1287 | ||
| @@ -1318,7 +1295,7 @@ err: | |||
| 1318 | } | 1295 | } |
| 1319 | 1296 | ||
| 1320 | /** | 1297 | /** |
| 1321 | * fc_lport_timeout - Handler for the retry_work timer. | 1298 | * fc_lport_timeout() - Handler for the retry_work timer. |
| 1322 | * @work: The work struct of the fc_lport | 1299 | * @work: The work struct of the fc_lport |
| 1323 | */ | 1300 | */ |
| 1324 | static void fc_lport_timeout(struct work_struct *work) | 1301 | static void fc_lport_timeout(struct work_struct *work) |
| @@ -1359,7 +1336,7 @@ static void fc_lport_timeout(struct work_struct *work) | |||
| 1359 | } | 1336 | } |
| 1360 | 1337 | ||
| 1361 | /** | 1338 | /** |
| 1362 | * fc_lport_logo_resp - Handle response to LOGO request | 1339 | * fc_lport_logo_resp() - Handle response to LOGO request |
| 1363 | * @sp: current sequence in LOGO exchange | 1340 | * @sp: current sequence in LOGO exchange |
| 1364 | * @fp: response frame | 1341 | * @fp: response frame |
| 1365 | * @lp_arg: Fibre Channel lport port instance that sent the LOGO request | 1342 | * @lp_arg: Fibre Channel lport port instance that sent the LOGO request |
| @@ -1381,17 +1358,17 @@ static void fc_lport_logo_resp(struct fc_seq *sp, struct fc_frame *fp, | |||
| 1381 | 1358 | ||
| 1382 | FC_DEBUG_LPORT("Received a LOGO response\n"); | 1359 | FC_DEBUG_LPORT("Received a LOGO response\n"); |
| 1383 | 1360 | ||
| 1361 | if (IS_ERR(fp)) { | ||
| 1362 | fc_lport_error(lport, fp); | ||
| 1363 | goto err; | ||
| 1364 | } | ||
| 1365 | |||
| 1384 | if (lport->state != LPORT_ST_LOGO) { | 1366 | if (lport->state != LPORT_ST_LOGO) { |
| 1385 | FC_DBG("Received a LOGO response, but in state %s\n", | 1367 | FC_DBG("Received a LOGO response, but in state %s\n", |
| 1386 | fc_lport_state(lport)); | 1368 | fc_lport_state(lport)); |
| 1387 | goto out; | 1369 | goto out; |
| 1388 | } | 1370 | } |
| 1389 | 1371 | ||
| 1390 | if (IS_ERR(fp)) { | ||
| 1391 | fc_lport_error(lport, fp); | ||
| 1392 | goto err; | ||
| 1393 | } | ||
| 1394 | |||
| 1395 | op = fc_frame_payload_op(fp); | 1372 | op = fc_frame_payload_op(fp); |
| 1396 | if (op == ELS_LS_ACC) | 1373 | if (op == ELS_LS_ACC) |
| 1397 | fc_lport_enter_reset(lport); | 1374 | fc_lport_enter_reset(lport); |
| @@ -1405,7 +1382,7 @@ err: | |||
| 1405 | } | 1382 | } |
| 1406 | 1383 | ||
| 1407 | /** | 1384 | /** |
| 1408 | * fc_rport_enter_logo - Logout of the fabric | 1385 | * fc_rport_enter_logo() - Logout of the fabric |
| 1409 | * @lport: Fibre Channel local port to be logged out | 1386 | * @lport: Fibre Channel local port to be logged out |
| 1410 | * | 1387 | * |
| 1411 | * Locking Note: The lport lock is expected to be held before calling | 1388 | * Locking Note: The lport lock is expected to be held before calling |
| @@ -1437,7 +1414,7 @@ static void fc_lport_enter_logo(struct fc_lport *lport) | |||
| 1437 | } | 1414 | } |
| 1438 | 1415 | ||
| 1439 | /** | 1416 | /** |
| 1440 | * fc_lport_flogi_resp - Handle response to FLOGI request | 1417 | * fc_lport_flogi_resp() - Handle response to FLOGI request |
| 1441 | * @sp: current sequence in FLOGI exchange | 1418 | * @sp: current sequence in FLOGI exchange |
| 1442 | * @fp: response frame | 1419 | * @fp: response frame |
| 1443 | * @lp_arg: Fibre Channel lport port instance that sent the FLOGI request | 1420 | * @lp_arg: Fibre Channel lport port instance that sent the FLOGI request |
| @@ -1465,17 +1442,17 @@ static void fc_lport_flogi_resp(struct fc_seq *sp, struct fc_frame *fp, | |||
| 1465 | 1442 | ||
| 1466 | FC_DEBUG_LPORT("Received a FLOGI response\n"); | 1443 | FC_DEBUG_LPORT("Received a FLOGI response\n"); |
| 1467 | 1444 | ||
| 1445 | if (IS_ERR(fp)) { | ||
| 1446 | fc_lport_error(lport, fp); | ||
| 1447 | goto err; | ||
| 1448 | } | ||
| 1449 | |||
| 1468 | if (lport->state != LPORT_ST_FLOGI) { | 1450 | if (lport->state != LPORT_ST_FLOGI) { |
| 1469 | FC_DBG("Received a FLOGI response, but in state %s\n", | 1451 | FC_DBG("Received a FLOGI response, but in state %s\n", |
| 1470 | fc_lport_state(lport)); | 1452 | fc_lport_state(lport)); |
| 1471 | goto out; | 1453 | goto out; |
| 1472 | } | 1454 | } |
| 1473 | 1455 | ||
| 1474 | if (IS_ERR(fp)) { | ||
| 1475 | fc_lport_error(lport, fp); | ||
| 1476 | goto err; | ||
| 1477 | } | ||
| 1478 | |||
| 1479 | fh = fc_frame_header_get(fp); | 1456 | fh = fc_frame_header_get(fp); |
| 1480 | did = ntoh24(fh->fh_d_id); | 1457 | did = ntoh24(fh->fh_d_id); |
| 1481 | if (fc_frame_payload_op(fp) == ELS_LS_ACC && did != 0) { | 1458 | if (fc_frame_payload_op(fp) == ELS_LS_ACC && did != 0) { |
| @@ -1532,7 +1509,7 @@ err: | |||
| 1532 | } | 1509 | } |
| 1533 | 1510 | ||
| 1534 | /** | 1511 | /** |
| 1535 | * fc_rport_enter_flogi - Send a FLOGI request to the fabric manager | 1512 | * fc_rport_enter_flogi() - Send a FLOGI request to the fabric manager |
| 1536 | * @lport: Fibre Channel local port to be logged in to the fabric | 1513 | * @lport: Fibre Channel local port to be logged in to the fabric |
| 1537 | * | 1514 | * |
| 1538 | * Locking Note: The lport lock is expected to be held before calling | 1515 | * Locking Note: The lport lock is expected to be held before calling |
diff --git a/drivers/scsi/libfc/fc_rport.c b/drivers/scsi/libfc/fc_rport.c index e780d8caf70e..dae65133a833 100644 --- a/drivers/scsi/libfc/fc_rport.c +++ b/drivers/scsi/libfc/fc_rport.c | |||
| @@ -81,6 +81,7 @@ static void fc_rport_recv_logo_req(struct fc_rport *, | |||
| 81 | struct fc_seq *, struct fc_frame *); | 81 | struct fc_seq *, struct fc_frame *); |
| 82 | static void fc_rport_timeout(struct work_struct *); | 82 | static void fc_rport_timeout(struct work_struct *); |
| 83 | static void fc_rport_error(struct fc_rport *, struct fc_frame *); | 83 | static void fc_rport_error(struct fc_rport *, struct fc_frame *); |
| 84 | static void fc_rport_error_retry(struct fc_rport *, struct fc_frame *); | ||
| 84 | static void fc_rport_work(struct work_struct *); | 85 | static void fc_rport_work(struct work_struct *); |
| 85 | 86 | ||
| 86 | static const char *fc_rport_state_names[] = { | 87 | static const char *fc_rport_state_names[] = { |
| @@ -145,7 +146,7 @@ struct fc_rport *fc_rport_rogue_create(struct fc_disc_port *dp) | |||
| 145 | } | 146 | } |
| 146 | 147 | ||
| 147 | /** | 148 | /** |
| 148 | * fc_rport_state - return a string for the state the rport is in | 149 | * fc_rport_state() - return a string for the state the rport is in |
| 149 | * @rport: The rport whose state we want to get a string for | 150 | * @rport: The rport whose state we want to get a string for |
| 150 | */ | 151 | */ |
| 151 | static const char *fc_rport_state(struct fc_rport *rport) | 152 | static const char *fc_rport_state(struct fc_rport *rport) |
| @@ -160,7 +161,7 @@ static const char *fc_rport_state(struct fc_rport *rport) | |||
| 160 | } | 161 | } |
| 161 | 162 | ||
| 162 | /** | 163 | /** |
| 163 | * fc_set_rport_loss_tmo - Set the remote port loss timeout in seconds. | 164 | * fc_set_rport_loss_tmo() - Set the remote port loss timeout in seconds. |
| 164 | * @rport: Pointer to Fibre Channel remote port structure | 165 | * @rport: Pointer to Fibre Channel remote port structure |
| 165 | * @timeout: timeout in seconds | 166 | * @timeout: timeout in seconds |
| 166 | */ | 167 | */ |
| @@ -174,12 +175,12 @@ void fc_set_rport_loss_tmo(struct fc_rport *rport, u32 timeout) | |||
| 174 | EXPORT_SYMBOL(fc_set_rport_loss_tmo); | 175 | EXPORT_SYMBOL(fc_set_rport_loss_tmo); |
| 175 | 176 | ||
| 176 | /** | 177 | /** |
| 177 | * fc_plogi_get_maxframe - Get max payload from the common service parameters | 178 | * fc_plogi_get_maxframe() - Get max payload from the common service parameters |
| 178 | * @flp: FLOGI payload structure | 179 | * @flp: FLOGI payload structure |
| 179 | * @maxval: upper limit, may be less than what is in the service parameters | 180 | * @maxval: upper limit, may be less than what is in the service parameters |
| 180 | */ | 181 | */ |
| 181 | static unsigned int | 182 | static unsigned int fc_plogi_get_maxframe(struct fc_els_flogi *flp, |
| 182 | fc_plogi_get_maxframe(struct fc_els_flogi *flp, unsigned int maxval) | 183 | unsigned int maxval) |
| 183 | { | 184 | { |
| 184 | unsigned int mfs; | 185 | unsigned int mfs; |
| 185 | 186 | ||
| @@ -197,7 +198,7 @@ fc_plogi_get_maxframe(struct fc_els_flogi *flp, unsigned int maxval) | |||
| 197 | } | 198 | } |
| 198 | 199 | ||
| 199 | /** | 200 | /** |
| 200 | * fc_rport_state_enter - Change the rport's state | 201 | * fc_rport_state_enter() - Change the rport's state |
| 201 | * @rport: The rport whose state should change | 202 | * @rport: The rport whose state should change |
| 202 | * @new: The new state of the rport | 203 | * @new: The new state of the rport |
| 203 | * | 204 | * |
| @@ -214,6 +215,7 @@ static void fc_rport_state_enter(struct fc_rport *rport, | |||
| 214 | 215 | ||
| 215 | static void fc_rport_work(struct work_struct *work) | 216 | static void fc_rport_work(struct work_struct *work) |
| 216 | { | 217 | { |
| 218 | u32 port_id; | ||
| 217 | struct fc_rport_libfc_priv *rdata = | 219 | struct fc_rport_libfc_priv *rdata = |
| 218 | container_of(work, struct fc_rport_libfc_priv, event_work); | 220 | container_of(work, struct fc_rport_libfc_priv, event_work); |
| 219 | enum fc_rport_event event; | 221 | enum fc_rport_event event; |
| @@ -279,14 +281,18 @@ static void fc_rport_work(struct work_struct *work) | |||
| 279 | rport_ops->event_callback(lport, rport, event); | 281 | rport_ops->event_callback(lport, rport, event); |
| 280 | if (trans_state == FC_PORTSTATE_ROGUE) | 282 | if (trans_state == FC_PORTSTATE_ROGUE) |
| 281 | put_device(&rport->dev); | 283 | put_device(&rport->dev); |
| 282 | else | 284 | else { |
| 285 | port_id = rport->port_id; | ||
| 283 | fc_remote_port_delete(rport); | 286 | fc_remote_port_delete(rport); |
| 287 | lport->tt.exch_mgr_reset(lport, 0, port_id); | ||
| 288 | lport->tt.exch_mgr_reset(lport, port_id, 0); | ||
| 289 | } | ||
| 284 | } else | 290 | } else |
| 285 | mutex_unlock(&rdata->rp_mutex); | 291 | mutex_unlock(&rdata->rp_mutex); |
| 286 | } | 292 | } |
| 287 | 293 | ||
| 288 | /** | 294 | /** |
| 289 | * fc_rport_login - Start the remote port login state machine | 295 | * fc_rport_login() - Start the remote port login state machine |
| 290 | * @rport: Fibre Channel remote port | 296 | * @rport: Fibre Channel remote port |
| 291 | * | 297 | * |
| 292 | * Locking Note: Called without the rport lock held. This | 298 | * Locking Note: Called without the rport lock held. This |
| @@ -309,7 +315,7 @@ int fc_rport_login(struct fc_rport *rport) | |||
| 309 | } | 315 | } |
| 310 | 316 | ||
| 311 | /** | 317 | /** |
| 312 | * fc_rport_logoff - Logoff and remove an rport | 318 | * fc_rport_logoff() - Logoff and remove an rport |
| 313 | * @rport: Fibre Channel remote port to be removed | 319 | * @rport: Fibre Channel remote port to be removed |
| 314 | * | 320 | * |
| 315 | * Locking Note: Called without the rport lock held. This | 321 | * Locking Note: Called without the rport lock held. This |
| @@ -347,7 +353,7 @@ int fc_rport_logoff(struct fc_rport *rport) | |||
| 347 | } | 353 | } |
| 348 | 354 | ||
| 349 | /** | 355 | /** |
| 350 | * fc_rport_enter_ready - The rport is ready | 356 | * fc_rport_enter_ready() - The rport is ready |
| 351 | * @rport: Fibre Channel remote port that is ready | 357 | * @rport: Fibre Channel remote port that is ready |
| 352 | * | 358 | * |
| 353 | * Locking Note: The rport lock is expected to be held before calling | 359 | * Locking Note: The rport lock is expected to be held before calling |
| @@ -366,7 +372,7 @@ static void fc_rport_enter_ready(struct fc_rport *rport) | |||
| 366 | } | 372 | } |
| 367 | 373 | ||
| 368 | /** | 374 | /** |
| 369 | * fc_rport_timeout - Handler for the retry_work timer. | 375 | * fc_rport_timeout() - Handler for the retry_work timer. |
| 370 | * @work: The work struct of the fc_rport_libfc_priv | 376 | * @work: The work struct of the fc_rport_libfc_priv |
| 371 | * | 377 | * |
| 372 | * Locking Note: Called without the rport lock held. This | 378 | * Locking Note: Called without the rport lock held. This |
| @@ -405,59 +411,75 @@ static void fc_rport_timeout(struct work_struct *work) | |||
| 405 | } | 411 | } |
| 406 | 412 | ||
| 407 | /** | 413 | /** |
| 408 | * fc_rport_error - Handler for any errors | 414 | * fc_rport_error() - Error handler, called once retries have been exhausted |
| 409 | * @rport: The fc_rport object | 415 | * @rport: The fc_rport object |
| 410 | * @fp: The frame pointer | 416 | * @fp: The frame pointer |
| 411 | * | 417 | * |
| 412 | * If the error was caused by a resource allocation failure | ||
| 413 | * then wait for half a second and retry, otherwise retry | ||
| 414 | * immediately. | ||
| 415 | * | ||
| 416 | * Locking Note: The rport lock is expected to be held before | 418 | * Locking Note: The rport lock is expected to be held before |
| 417 | * calling this routine | 419 | * calling this routine |
| 418 | */ | 420 | */ |
| 419 | static void fc_rport_error(struct fc_rport *rport, struct fc_frame *fp) | 421 | static void fc_rport_error(struct fc_rport *rport, struct fc_frame *fp) |
| 420 | { | 422 | { |
| 421 | struct fc_rport_libfc_priv *rdata = rport->dd_data; | 423 | struct fc_rport_libfc_priv *rdata = rport->dd_data; |
| 422 | unsigned long delay = 0; | ||
| 423 | 424 | ||
| 424 | FC_DEBUG_RPORT("Error %ld in state %s, retries %d\n", | 425 | FC_DEBUG_RPORT("Error %ld in state %s, retries %d\n", |
| 425 | PTR_ERR(fp), fc_rport_state(rport), rdata->retries); | 426 | PTR_ERR(fp), fc_rport_state(rport), rdata->retries); |
| 426 | 427 | ||
| 427 | if (!fp || PTR_ERR(fp) == -FC_EX_TIMEOUT) { | 428 | switch (rdata->rp_state) { |
| 428 | /* | 429 | case RPORT_ST_PLOGI: |
| 429 | * Memory allocation failure, or the exchange timed out. | 430 | case RPORT_ST_PRLI: |
| 430 | * Retry after delay | 431 | case RPORT_ST_LOGO: |
| 431 | */ | 432 | rdata->event = RPORT_EV_FAILED; |
| 432 | if (rdata->retries < rdata->local_port->max_retry_count) { | 433 | queue_work(rport_event_queue, |
| 433 | rdata->retries++; | 434 | &rdata->event_work); |
| 434 | if (!fp) | 435 | break; |
| 435 | delay = msecs_to_jiffies(500); | 436 | case RPORT_ST_RTV: |
| 436 | get_device(&rport->dev); | 437 | fc_rport_enter_ready(rport); |
| 437 | schedule_delayed_work(&rdata->retry_work, delay); | 438 | break; |
| 438 | } else { | 439 | case RPORT_ST_NONE: |
| 439 | switch (rdata->rp_state) { | 440 | case RPORT_ST_READY: |
| 440 | case RPORT_ST_PLOGI: | 441 | case RPORT_ST_INIT: |
| 441 | case RPORT_ST_PRLI: | 442 | break; |
| 442 | case RPORT_ST_LOGO: | ||
| 443 | rdata->event = RPORT_EV_FAILED; | ||
| 444 | queue_work(rport_event_queue, | ||
| 445 | &rdata->event_work); | ||
| 446 | break; | ||
| 447 | case RPORT_ST_RTV: | ||
| 448 | fc_rport_enter_ready(rport); | ||
| 449 | break; | ||
| 450 | case RPORT_ST_NONE: | ||
| 451 | case RPORT_ST_READY: | ||
| 452 | case RPORT_ST_INIT: | ||
| 453 | break; | ||
| 454 | } | ||
| 455 | } | ||
| 456 | } | 443 | } |
| 457 | } | 444 | } |
| 458 | 445 | ||
| 459 | /** | 446 | /** |
| 460 | * fc_rport_plogi_recv_resp - Handle incoming ELS PLOGI response | 447 | * fc_rport_error_retry() - Error handler when retries are desired |
| 448 | * @rport: The fc_rport object | ||
| 449 | * @fp: The frame pointer | ||
| 450 | * | ||
| 451 | * If the error was an exchange timeout retry immediately, | ||
| 452 | * otherwise wait for E_D_TOV. | ||
| 453 | * | ||
| 454 | * Locking Note: The rport lock is expected to be held before | ||
| 455 | * calling this routine | ||
| 456 | */ | ||
| 457 | static void fc_rport_error_retry(struct fc_rport *rport, struct fc_frame *fp) | ||
| 458 | { | ||
| 459 | struct fc_rport_libfc_priv *rdata = rport->dd_data; | ||
| 460 | unsigned long delay = FC_DEF_E_D_TOV; | ||
| 461 | |||
| 462 | /* make sure this isn't an FC_EX_CLOSED error, never retry those */ | ||
| 463 | if (PTR_ERR(fp) == -FC_EX_CLOSED) | ||
| 464 | return fc_rport_error(rport, fp); | ||
| 465 | |||
| 466 | if (rdata->retries < rdata->local_port->max_retry_count) { | ||
| 467 | FC_DEBUG_RPORT("Error %ld in state %s, retrying\n", | ||
| 468 | PTR_ERR(fp), fc_rport_state(rport)); | ||
| 469 | rdata->retries++; | ||
| 470 | /* no additional delay on exchange timeouts */ | ||
| 471 | if (PTR_ERR(fp) == -FC_EX_TIMEOUT) | ||
| 472 | delay = 0; | ||
| 473 | get_device(&rport->dev); | ||
| 474 | schedule_delayed_work(&rdata->retry_work, delay); | ||
| 475 | return; | ||
| 476 | } | ||
| 477 | |||
| 478 | return fc_rport_error(rport, fp); | ||
| 479 | } | ||
| 480 | |||
| 481 | /** | ||
| 482 | * fc_rport_plogi_recv_resp() - Handle incoming ELS PLOGI response | ||
| 461 | * @sp: current sequence in the PLOGI exchange | 483 | * @sp: current sequence in the PLOGI exchange |
| 462 | * @fp: response frame | 484 | * @fp: response frame |
| 463 | * @rp_arg: Fibre Channel remote port | 485 | * @rp_arg: Fibre Channel remote port |
| @@ -483,17 +505,17 @@ static void fc_rport_plogi_resp(struct fc_seq *sp, struct fc_frame *fp, | |||
| 483 | FC_DEBUG_RPORT("Received a PLOGI response from port (%6x)\n", | 505 | FC_DEBUG_RPORT("Received a PLOGI response from port (%6x)\n", |
| 484 | rport->port_id); | 506 | rport->port_id); |
| 485 | 507 | ||
| 508 | if (IS_ERR(fp)) { | ||
| 509 | fc_rport_error_retry(rport, fp); | ||
| 510 | goto err; | ||
| 511 | } | ||
| 512 | |||
| 486 | if (rdata->rp_state != RPORT_ST_PLOGI) { | 513 | if (rdata->rp_state != RPORT_ST_PLOGI) { |
| 487 | FC_DBG("Received a PLOGI response, but in state %s\n", | 514 | FC_DBG("Received a PLOGI response, but in state %s\n", |
| 488 | fc_rport_state(rport)); | 515 | fc_rport_state(rport)); |
| 489 | goto out; | 516 | goto out; |
| 490 | } | 517 | } |
| 491 | 518 | ||
| 492 | if (IS_ERR(fp)) { | ||
| 493 | fc_rport_error(rport, fp); | ||
| 494 | goto err; | ||
| 495 | } | ||
| 496 | |||
| 497 | op = fc_frame_payload_op(fp); | 519 | op = fc_frame_payload_op(fp); |
| 498 | if (op == ELS_LS_ACC && | 520 | if (op == ELS_LS_ACC && |
| 499 | (plp = fc_frame_payload_get(fp, sizeof(*plp))) != NULL) { | 521 | (plp = fc_frame_payload_get(fp, sizeof(*plp))) != NULL) { |
| @@ -522,7 +544,7 @@ static void fc_rport_plogi_resp(struct fc_seq *sp, struct fc_frame *fp, | |||
| 522 | else | 544 | else |
| 523 | fc_rport_enter_prli(rport); | 545 | fc_rport_enter_prli(rport); |
| 524 | } else | 546 | } else |
| 525 | fc_rport_error(rport, fp); | 547 | fc_rport_error_retry(rport, fp); |
| 526 | 548 | ||
| 527 | out: | 549 | out: |
| 528 | fc_frame_free(fp); | 550 | fc_frame_free(fp); |
| @@ -532,7 +554,7 @@ err: | |||
| 532 | } | 554 | } |
| 533 | 555 | ||
| 534 | /** | 556 | /** |
| 535 | * fc_rport_enter_plogi - Send Port Login (PLOGI) request to peer | 557 | * fc_rport_enter_plogi() - Send Port Login (PLOGI) request to peer |
| 536 | * @rport: Fibre Channel remote port to send PLOGI to | 558 | * @rport: Fibre Channel remote port to send PLOGI to |
| 537 | * | 559 | * |
| 538 | * Locking Note: The rport lock is expected to be held before calling | 560 | * Locking Note: The rport lock is expected to be held before calling |
| @@ -552,20 +574,20 @@ static void fc_rport_enter_plogi(struct fc_rport *rport) | |||
| 552 | rport->maxframe_size = FC_MIN_MAX_PAYLOAD; | 574 | rport->maxframe_size = FC_MIN_MAX_PAYLOAD; |
| 553 | fp = fc_frame_alloc(lport, sizeof(struct fc_els_flogi)); | 575 | fp = fc_frame_alloc(lport, sizeof(struct fc_els_flogi)); |
| 554 | if (!fp) { | 576 | if (!fp) { |
| 555 | fc_rport_error(rport, fp); | 577 | fc_rport_error_retry(rport, fp); |
| 556 | return; | 578 | return; |
| 557 | } | 579 | } |
| 558 | rdata->e_d_tov = lport->e_d_tov; | 580 | rdata->e_d_tov = lport->e_d_tov; |
| 559 | 581 | ||
| 560 | if (!lport->tt.elsct_send(lport, rport, fp, ELS_PLOGI, | 582 | if (!lport->tt.elsct_send(lport, rport, fp, ELS_PLOGI, |
| 561 | fc_rport_plogi_resp, rport, lport->e_d_tov)) | 583 | fc_rport_plogi_resp, rport, lport->e_d_tov)) |
| 562 | fc_rport_error(rport, fp); | 584 | fc_rport_error_retry(rport, fp); |
| 563 | else | 585 | else |
| 564 | get_device(&rport->dev); | 586 | get_device(&rport->dev); |
| 565 | } | 587 | } |
| 566 | 588 | ||
| 567 | /** | 589 | /** |
| 568 | * fc_rport_prli_resp - Process Login (PRLI) response handler | 590 | * fc_rport_prli_resp() - Process Login (PRLI) response handler |
| 569 | * @sp: current sequence in the PRLI exchange | 591 | * @sp: current sequence in the PRLI exchange |
| 570 | * @fp: response frame | 592 | * @fp: response frame |
| 571 | * @rp_arg: Fibre Channel remote port | 593 | * @rp_arg: Fibre Channel remote port |
| @@ -592,17 +614,17 @@ static void fc_rport_prli_resp(struct fc_seq *sp, struct fc_frame *fp, | |||
| 592 | FC_DEBUG_RPORT("Received a PRLI response from port (%6x)\n", | 614 | FC_DEBUG_RPORT("Received a PRLI response from port (%6x)\n", |
| 593 | rport->port_id); | 615 | rport->port_id); |
| 594 | 616 | ||
| 617 | if (IS_ERR(fp)) { | ||
| 618 | fc_rport_error_retry(rport, fp); | ||
| 619 | goto err; | ||
| 620 | } | ||
| 621 | |||
| 595 | if (rdata->rp_state != RPORT_ST_PRLI) { | 622 | if (rdata->rp_state != RPORT_ST_PRLI) { |
| 596 | FC_DBG("Received a PRLI response, but in state %s\n", | 623 | FC_DBG("Received a PRLI response, but in state %s\n", |
| 597 | fc_rport_state(rport)); | 624 | fc_rport_state(rport)); |
| 598 | goto out; | 625 | goto out; |
| 599 | } | 626 | } |
| 600 | 627 | ||
| 601 | if (IS_ERR(fp)) { | ||
| 602 | fc_rport_error(rport, fp); | ||
| 603 | goto err; | ||
| 604 | } | ||
| 605 | |||
| 606 | op = fc_frame_payload_op(fp); | 628 | op = fc_frame_payload_op(fp); |
| 607 | if (op == ELS_LS_ACC) { | 629 | if (op == ELS_LS_ACC) { |
| 608 | pp = fc_frame_payload_get(fp, sizeof(*pp)); | 630 | pp = fc_frame_payload_get(fp, sizeof(*pp)); |
| @@ -635,7 +657,7 @@ err: | |||
| 635 | } | 657 | } |
| 636 | 658 | ||
| 637 | /** | 659 | /** |
| 638 | * fc_rport_logo_resp - Logout (LOGO) response handler | 660 | * fc_rport_logo_resp() - Logout (LOGO) response handler |
| 639 | * @sp: current sequence in the LOGO exchange | 661 | * @sp: current sequence in the LOGO exchange |
| 640 | * @fp: response frame | 662 | * @fp: response frame |
| 641 | * @rp_arg: Fibre Channel remote port | 663 | * @rp_arg: Fibre Channel remote port |
| @@ -657,7 +679,7 @@ static void fc_rport_logo_resp(struct fc_seq *sp, struct fc_frame *fp, | |||
| 657 | rport->port_id); | 679 | rport->port_id); |
| 658 | 680 | ||
| 659 | if (IS_ERR(fp)) { | 681 | if (IS_ERR(fp)) { |
| 660 | fc_rport_error(rport, fp); | 682 | fc_rport_error_retry(rport, fp); |
| 661 | goto err; | 683 | goto err; |
| 662 | } | 684 | } |
| 663 | 685 | ||
| @@ -684,7 +706,7 @@ err: | |||
| 684 | } | 706 | } |
| 685 | 707 | ||
| 686 | /** | 708 | /** |
| 687 | * fc_rport_enter_prli - Send Process Login (PRLI) request to peer | 709 | * fc_rport_enter_prli() - Send Process Login (PRLI) request to peer |
| 688 | * @rport: Fibre Channel remote port to send PRLI to | 710 | * @rport: Fibre Channel remote port to send PRLI to |
| 689 | * | 711 | * |
| 690 | * Locking Note: The rport lock is expected to be held before calling | 712 | * Locking Note: The rport lock is expected to be held before calling |
| @@ -707,19 +729,19 @@ static void fc_rport_enter_prli(struct fc_rport *rport) | |||
| 707 | 729 | ||
| 708 | fp = fc_frame_alloc(lport, sizeof(*pp)); | 730 | fp = fc_frame_alloc(lport, sizeof(*pp)); |
| 709 | if (!fp) { | 731 | if (!fp) { |
| 710 | fc_rport_error(rport, fp); | 732 | fc_rport_error_retry(rport, fp); |
| 711 | return; | 733 | return; |
| 712 | } | 734 | } |
| 713 | 735 | ||
| 714 | if (!lport->tt.elsct_send(lport, rport, fp, ELS_PRLI, | 736 | if (!lport->tt.elsct_send(lport, rport, fp, ELS_PRLI, |
| 715 | fc_rport_prli_resp, rport, lport->e_d_tov)) | 737 | fc_rport_prli_resp, rport, lport->e_d_tov)) |
| 716 | fc_rport_error(rport, fp); | 738 | fc_rport_error_retry(rport, fp); |
| 717 | else | 739 | else |
| 718 | get_device(&rport->dev); | 740 | get_device(&rport->dev); |
| 719 | } | 741 | } |
| 720 | 742 | ||
| 721 | /** | 743 | /** |
| 722 | * fc_rport_els_rtv_resp - Request Timeout Value response handler | 744 | * fc_rport_els_rtv_resp() - Request Timeout Value response handler |
| 723 | * @sp: current sequence in the RTV exchange | 745 | * @sp: current sequence in the RTV exchange |
| 724 | * @fp: response frame | 746 | * @fp: response frame |
| 725 | * @rp_arg: Fibre Channel remote port | 747 | * @rp_arg: Fibre Channel remote port |
| @@ -742,17 +764,17 @@ static void fc_rport_rtv_resp(struct fc_seq *sp, struct fc_frame *fp, | |||
| 742 | FC_DEBUG_RPORT("Received a RTV response from port (%6x)\n", | 764 | FC_DEBUG_RPORT("Received a RTV response from port (%6x)\n", |
| 743 | rport->port_id); | 765 | rport->port_id); |
| 744 | 766 | ||
| 767 | if (IS_ERR(fp)) { | ||
| 768 | fc_rport_error(rport, fp); | ||
| 769 | goto err; | ||
| 770 | } | ||
| 771 | |||
| 745 | if (rdata->rp_state != RPORT_ST_RTV) { | 772 | if (rdata->rp_state != RPORT_ST_RTV) { |
| 746 | FC_DBG("Received a RTV response, but in state %s\n", | 773 | FC_DBG("Received a RTV response, but in state %s\n", |
| 747 | fc_rport_state(rport)); | 774 | fc_rport_state(rport)); |
| 748 | goto out; | 775 | goto out; |
| 749 | } | 776 | } |
| 750 | 777 | ||
| 751 | if (IS_ERR(fp)) { | ||
| 752 | fc_rport_error(rport, fp); | ||
| 753 | goto err; | ||
| 754 | } | ||
| 755 | |||
| 756 | op = fc_frame_payload_op(fp); | 778 | op = fc_frame_payload_op(fp); |
| 757 | if (op == ELS_LS_ACC) { | 779 | if (op == ELS_LS_ACC) { |
| 758 | struct fc_els_rtv_acc *rtv; | 780 | struct fc_els_rtv_acc *rtv; |
| @@ -785,7 +807,7 @@ err: | |||
| 785 | } | 807 | } |
| 786 | 808 | ||
| 787 | /** | 809 | /** |
| 788 | * fc_rport_enter_rtv - Send Request Timeout Value (RTV) request to peer | 810 | * fc_rport_enter_rtv() - Send Request Timeout Value (RTV) request to peer |
| 789 | * @rport: Fibre Channel remote port to send RTV to | 811 | * @rport: Fibre Channel remote port to send RTV to |
| 790 | * | 812 | * |
| 791 | * Locking Note: The rport lock is expected to be held before calling | 813 | * Locking Note: The rport lock is expected to be held before calling |
| @@ -804,19 +826,19 @@ static void fc_rport_enter_rtv(struct fc_rport *rport) | |||
| 804 | 826 | ||
| 805 | fp = fc_frame_alloc(lport, sizeof(struct fc_els_rtv)); | 827 | fp = fc_frame_alloc(lport, sizeof(struct fc_els_rtv)); |
| 806 | if (!fp) { | 828 | if (!fp) { |
| 807 | fc_rport_error(rport, fp); | 829 | fc_rport_error_retry(rport, fp); |
| 808 | return; | 830 | return; |
| 809 | } | 831 | } |
| 810 | 832 | ||
| 811 | if (!lport->tt.elsct_send(lport, rport, fp, ELS_RTV, | 833 | if (!lport->tt.elsct_send(lport, rport, fp, ELS_RTV, |
| 812 | fc_rport_rtv_resp, rport, lport->e_d_tov)) | 834 | fc_rport_rtv_resp, rport, lport->e_d_tov)) |
| 813 | fc_rport_error(rport, fp); | 835 | fc_rport_error_retry(rport, fp); |
| 814 | else | 836 | else |
| 815 | get_device(&rport->dev); | 837 | get_device(&rport->dev); |
| 816 | } | 838 | } |
| 817 | 839 | ||
| 818 | /** | 840 | /** |
| 819 | * fc_rport_enter_logo - Send Logout (LOGO) request to peer | 841 | * fc_rport_enter_logo() - Send Logout (LOGO) request to peer |
| 820 | * @rport: Fibre Channel remote port to send LOGO to | 842 | * @rport: Fibre Channel remote port to send LOGO to |
| 821 | * | 843 | * |
| 822 | * Locking Note: The rport lock is expected to be held before calling | 844 | * Locking Note: The rport lock is expected to be held before calling |
| @@ -835,20 +857,20 @@ static void fc_rport_enter_logo(struct fc_rport *rport) | |||
| 835 | 857 | ||
| 836 | fp = fc_frame_alloc(lport, sizeof(struct fc_els_logo)); | 858 | fp = fc_frame_alloc(lport, sizeof(struct fc_els_logo)); |
| 837 | if (!fp) { | 859 | if (!fp) { |
| 838 | fc_rport_error(rport, fp); | 860 | fc_rport_error_retry(rport, fp); |
| 839 | return; | 861 | return; |
| 840 | } | 862 | } |
| 841 | 863 | ||
| 842 | if (!lport->tt.elsct_send(lport, rport, fp, ELS_LOGO, | 864 | if (!lport->tt.elsct_send(lport, rport, fp, ELS_LOGO, |
| 843 | fc_rport_logo_resp, rport, lport->e_d_tov)) | 865 | fc_rport_logo_resp, rport, lport->e_d_tov)) |
| 844 | fc_rport_error(rport, fp); | 866 | fc_rport_error_retry(rport, fp); |
| 845 | else | 867 | else |
| 846 | get_device(&rport->dev); | 868 | get_device(&rport->dev); |
| 847 | } | 869 | } |
| 848 | 870 | ||
| 849 | 871 | ||
| 850 | /** | 872 | /** |
| 851 | * fc_rport_recv_req - Receive a request from a rport | 873 | * fc_rport_recv_req() - Receive a request from a rport |
| 852 | * @sp: current sequence in the PLOGI exchange | 874 | * @sp: current sequence in the PLOGI exchange |
| 853 | * @fp: response frame | 875 | * @fp: response frame |
| 854 | * @rp_arg: Fibre Channel remote port | 876 | * @rp_arg: Fibre Channel remote port |
| @@ -909,7 +931,7 @@ void fc_rport_recv_req(struct fc_seq *sp, struct fc_frame *fp, | |||
| 909 | } | 931 | } |
| 910 | 932 | ||
| 911 | /** | 933 | /** |
| 912 | * fc_rport_recv_plogi_req - Handle incoming Port Login (PLOGI) request | 934 | * fc_rport_recv_plogi_req() - Handle incoming Port Login (PLOGI) request |
| 913 | * @rport: Fibre Channel remote port that initiated PLOGI | 935 | * @rport: Fibre Channel remote port that initiated PLOGI |
| 914 | * @sp: current sequence in the PLOGI exchange | 936 | * @sp: current sequence in the PLOGI exchange |
| 915 | * @fp: PLOGI request frame | 937 | * @fp: PLOGI request frame |
| @@ -1031,7 +1053,7 @@ static void fc_rport_recv_plogi_req(struct fc_rport *rport, | |||
| 1031 | } | 1053 | } |
| 1032 | 1054 | ||
| 1033 | /** | 1055 | /** |
| 1034 | * fc_rport_recv_prli_req - Handle incoming Process Login (PRLI) request | 1056 | * fc_rport_recv_prli_req() - Handle incoming Process Login (PRLI) request |
| 1035 | * @rport: Fibre Channel remote port that initiated PRLI | 1057 | * @rport: Fibre Channel remote port that initiated PRLI |
| 1036 | * @sp: current sequence in the PRLI exchange | 1058 | * @sp: current sequence in the PRLI exchange |
| 1037 | * @fp: PRLI request frame | 1059 | * @fp: PRLI request frame |
| @@ -1182,7 +1204,7 @@ static void fc_rport_recv_prli_req(struct fc_rport *rport, | |||
| 1182 | } | 1204 | } |
| 1183 | 1205 | ||
| 1184 | /** | 1206 | /** |
| 1185 | * fc_rport_recv_prlo_req - Handle incoming Process Logout (PRLO) request | 1207 | * fc_rport_recv_prlo_req() - Handle incoming Process Logout (PRLO) request |
| 1186 | * @rport: Fibre Channel remote port that initiated PRLO | 1208 | * @rport: Fibre Channel remote port that initiated PRLO |
| 1187 | * @sp: current sequence in the PRLO exchange | 1209 | * @sp: current sequence in the PRLO exchange |
| 1188 | * @fp: PRLO request frame | 1210 | * @fp: PRLO request frame |
| @@ -1213,7 +1235,7 @@ static void fc_rport_recv_prlo_req(struct fc_rport *rport, struct fc_seq *sp, | |||
| 1213 | } | 1235 | } |
| 1214 | 1236 | ||
| 1215 | /** | 1237 | /** |
| 1216 | * fc_rport_recv_logo_req - Handle incoming Logout (LOGO) request | 1238 | * fc_rport_recv_logo_req() - Handle incoming Logout (LOGO) request |
| 1217 | * @rport: Fibre Channel remote port that initiated LOGO | 1239 | * @rport: Fibre Channel remote port that initiated LOGO |
| 1218 | * @sp: current sequence in the LOGO exchange | 1240 | * @sp: current sequence in the LOGO exchange |
| 1219 | * @fp: LOGO request frame | 1241 | * @fp: LOGO request frame |
| @@ -1249,6 +1271,9 @@ static void fc_rport_flush_queue(void) | |||
| 1249 | 1271 | ||
| 1250 | int fc_rport_init(struct fc_lport *lport) | 1272 | int fc_rport_init(struct fc_lport *lport) |
| 1251 | { | 1273 | { |
| 1274 | if (!lport->tt.rport_create) | ||
| 1275 | lport->tt.rport_create = fc_rport_rogue_create; | ||
| 1276 | |||
| 1252 | if (!lport->tt.rport_login) | 1277 | if (!lport->tt.rport_login) |
| 1253 | lport->tt.rport_login = fc_rport_login; | 1278 | lport->tt.rport_login = fc_rport_login; |
| 1254 | 1279 | ||
| @@ -1285,7 +1310,7 @@ void fc_rport_terminate_io(struct fc_rport *rport) | |||
| 1285 | struct fc_rport_libfc_priv *rdata = rport->dd_data; | 1310 | struct fc_rport_libfc_priv *rdata = rport->dd_data; |
| 1286 | struct fc_lport *lport = rdata->local_port; | 1311 | struct fc_lport *lport = rdata->local_port; |
| 1287 | 1312 | ||
| 1288 | lport->tt.exch_mgr_reset(lport->emp, 0, rport->port_id); | 1313 | lport->tt.exch_mgr_reset(lport, 0, rport->port_id); |
| 1289 | lport->tt.exch_mgr_reset(lport->emp, rport->port_id, 0); | 1314 | lport->tt.exch_mgr_reset(lport, rport->port_id, 0); |
| 1290 | } | 1315 | } |
| 1291 | EXPORT_SYMBOL(fc_rport_terminate_io); | 1316 | EXPORT_SYMBOL(fc_rport_terminate_io); |
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c index f4c57227ec18..ee9d40152430 100644 --- a/drivers/scsi/qla2xxx/qla_attr.c +++ b/drivers/scsi/qla2xxx/qla_attr.c | |||
| @@ -244,12 +244,6 @@ qla2x00_sysfs_write_optrom_ctl(struct kobject *kobj, | |||
| 244 | if (ha->optrom_state != QLA_SWAITING) | 244 | if (ha->optrom_state != QLA_SWAITING) |
| 245 | break; | 245 | break; |
| 246 | 246 | ||
| 247 | if (start & 0xfff) { | ||
| 248 | qla_printk(KERN_WARNING, ha, | ||
| 249 | "Invalid start region 0x%x/0x%x.\n", start, size); | ||
| 250 | return -EINVAL; | ||
| 251 | } | ||
| 252 | |||
| 253 | ha->optrom_region_start = start; | 247 | ha->optrom_region_start = start; |
| 254 | ha->optrom_region_size = start + size > ha->optrom_size ? | 248 | ha->optrom_region_size = start + size > ha->optrom_size ? |
| 255 | ha->optrom_size - start : size; | 249 | ha->optrom_size - start : size; |
| @@ -303,8 +297,7 @@ qla2x00_sysfs_write_optrom_ctl(struct kobject *kobj, | |||
| 303 | else if (start == (ha->flt_region_boot * 4) || | 297 | else if (start == (ha->flt_region_boot * 4) || |
| 304 | start == (ha->flt_region_fw * 4)) | 298 | start == (ha->flt_region_fw * 4)) |
| 305 | valid = 1; | 299 | valid = 1; |
| 306 | else if ((IS_QLA25XX(ha) || IS_QLA81XX(ha)) && | 300 | else if (IS_QLA25XX(ha) || IS_QLA81XX(ha)) |
| 307 | start == (ha->flt_region_vpd_nvram * 4)) | ||
| 308 | valid = 1; | 301 | valid = 1; |
| 309 | if (!valid) { | 302 | if (!valid) { |
| 310 | qla_printk(KERN_WARNING, ha, | 303 | qla_printk(KERN_WARNING, ha, |
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 986501759ad4..87f9abc71460 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c | |||
| @@ -1308,8 +1308,12 @@ qla2x00_init_rings(scsi_qla_host_t *vha) | |||
| 1308 | 1308 | ||
| 1309 | DEBUG(printk("scsi(%ld): Issue init firmware.\n", vha->host_no)); | 1309 | DEBUG(printk("scsi(%ld): Issue init firmware.\n", vha->host_no)); |
| 1310 | 1310 | ||
| 1311 | if (ha->flags.npiv_supported) | 1311 | if (ha->flags.npiv_supported) { |
| 1312 | if (ha->operating_mode == LOOP) | ||
| 1313 | ha->max_npiv_vports = MIN_MULTI_ID_FABRIC - 1; | ||
| 1312 | mid_init_cb->count = cpu_to_le16(ha->max_npiv_vports); | 1314 | mid_init_cb->count = cpu_to_le16(ha->max_npiv_vports); |
| 1315 | } | ||
| 1316 | |||
| 1313 | 1317 | ||
| 1314 | mid_init_cb->options = __constant_cpu_to_le16(BIT_1); | 1318 | mid_init_cb->options = __constant_cpu_to_le16(BIT_1); |
| 1315 | 1319 | ||
| @@ -2610,6 +2614,7 @@ qla2x00_find_all_fabric_devs(scsi_qla_host_t *vha, | |||
| 2610 | port_id_t wrap, nxt_d_id; | 2614 | port_id_t wrap, nxt_d_id; |
| 2611 | struct qla_hw_data *ha = vha->hw; | 2615 | struct qla_hw_data *ha = vha->hw; |
| 2612 | struct scsi_qla_host *vp, *base_vha = pci_get_drvdata(ha->pdev); | 2616 | struct scsi_qla_host *vp, *base_vha = pci_get_drvdata(ha->pdev); |
| 2617 | struct scsi_qla_host *tvp; | ||
| 2613 | 2618 | ||
| 2614 | rval = QLA_SUCCESS; | 2619 | rval = QLA_SUCCESS; |
| 2615 | 2620 | ||
| @@ -2709,7 +2714,7 @@ qla2x00_find_all_fabric_devs(scsi_qla_host_t *vha, | |||
| 2709 | /* Bypass virtual ports of the same host. */ | 2714 | /* Bypass virtual ports of the same host. */ |
| 2710 | found = 0; | 2715 | found = 0; |
| 2711 | if (ha->num_vhosts) { | 2716 | if (ha->num_vhosts) { |
| 2712 | list_for_each_entry(vp, &ha->vp_list, list) { | 2717 | list_for_each_entry_safe(vp, tvp, &ha->vp_list, list) { |
| 2713 | if (new_fcport->d_id.b24 == vp->d_id.b24) { | 2718 | if (new_fcport->d_id.b24 == vp->d_id.b24) { |
| 2714 | found = 1; | 2719 | found = 1; |
| 2715 | break; | 2720 | break; |
| @@ -2832,6 +2837,7 @@ qla2x00_find_new_loop_id(scsi_qla_host_t *vha, fc_port_t *dev) | |||
| 2832 | uint16_t first_loop_id; | 2837 | uint16_t first_loop_id; |
| 2833 | struct qla_hw_data *ha = vha->hw; | 2838 | struct qla_hw_data *ha = vha->hw; |
| 2834 | struct scsi_qla_host *vp; | 2839 | struct scsi_qla_host *vp; |
| 2840 | struct scsi_qla_host *tvp; | ||
| 2835 | 2841 | ||
| 2836 | rval = QLA_SUCCESS; | 2842 | rval = QLA_SUCCESS; |
| 2837 | 2843 | ||
| @@ -2856,7 +2862,7 @@ qla2x00_find_new_loop_id(scsi_qla_host_t *vha, fc_port_t *dev) | |||
| 2856 | /* Check for loop ID being already in use. */ | 2862 | /* Check for loop ID being already in use. */ |
| 2857 | found = 0; | 2863 | found = 0; |
| 2858 | fcport = NULL; | 2864 | fcport = NULL; |
| 2859 | list_for_each_entry(vp, &ha->vp_list, list) { | 2865 | list_for_each_entry_safe(vp, tvp, &ha->vp_list, list) { |
| 2860 | list_for_each_entry(fcport, &vp->vp_fcports, list) { | 2866 | list_for_each_entry(fcport, &vp->vp_fcports, list) { |
| 2861 | if (fcport->loop_id == dev->loop_id && | 2867 | if (fcport->loop_id == dev->loop_id && |
| 2862 | fcport != dev) { | 2868 | fcport != dev) { |
| @@ -3291,6 +3297,7 @@ qla2x00_abort_isp(scsi_qla_host_t *vha) | |||
| 3291 | uint8_t status = 0; | 3297 | uint8_t status = 0; |
| 3292 | struct qla_hw_data *ha = vha->hw; | 3298 | struct qla_hw_data *ha = vha->hw; |
| 3293 | struct scsi_qla_host *vp; | 3299 | struct scsi_qla_host *vp; |
| 3300 | struct scsi_qla_host *tvp; | ||
| 3294 | struct req_que *req = ha->req_q_map[0]; | 3301 | struct req_que *req = ha->req_q_map[0]; |
| 3295 | 3302 | ||
| 3296 | if (vha->flags.online) { | 3303 | if (vha->flags.online) { |
| @@ -3306,7 +3313,7 @@ qla2x00_abort_isp(scsi_qla_host_t *vha) | |||
| 3306 | if (atomic_read(&vha->loop_state) != LOOP_DOWN) { | 3313 | if (atomic_read(&vha->loop_state) != LOOP_DOWN) { |
| 3307 | atomic_set(&vha->loop_state, LOOP_DOWN); | 3314 | atomic_set(&vha->loop_state, LOOP_DOWN); |
| 3308 | qla2x00_mark_all_devices_lost(vha, 0); | 3315 | qla2x00_mark_all_devices_lost(vha, 0); |
| 3309 | list_for_each_entry(vp, &ha->vp_list, list) | 3316 | list_for_each_entry_safe(vp, tvp, &ha->vp_list, list) |
| 3310 | qla2x00_mark_all_devices_lost(vp, 0); | 3317 | qla2x00_mark_all_devices_lost(vp, 0); |
| 3311 | } else { | 3318 | } else { |
| 3312 | if (!atomic_read(&vha->loop_down_timer)) | 3319 | if (!atomic_read(&vha->loop_down_timer)) |
| @@ -3403,7 +3410,7 @@ qla2x00_abort_isp(scsi_qla_host_t *vha) | |||
| 3403 | DEBUG(printk(KERN_INFO | 3410 | DEBUG(printk(KERN_INFO |
| 3404 | "qla2x00_abort_isp(%ld): succeeded.\n", | 3411 | "qla2x00_abort_isp(%ld): succeeded.\n", |
| 3405 | vha->host_no)); | 3412 | vha->host_no)); |
| 3406 | list_for_each_entry(vp, &ha->vp_list, list) { | 3413 | list_for_each_entry_safe(vp, tvp, &ha->vp_list, list) { |
| 3407 | if (vp->vp_idx) | 3414 | if (vp->vp_idx) |
| 3408 | qla2x00_vp_abort_isp(vp); | 3415 | qla2x00_vp_abort_isp(vp); |
| 3409 | } | 3416 | } |
| @@ -3428,7 +3435,7 @@ qla2x00_abort_isp(scsi_qla_host_t *vha) | |||
| 3428 | static int | 3435 | static int |
| 3429 | qla2x00_restart_isp(scsi_qla_host_t *vha) | 3436 | qla2x00_restart_isp(scsi_qla_host_t *vha) |
| 3430 | { | 3437 | { |
| 3431 | uint8_t status = 0; | 3438 | int status = 0; |
| 3432 | uint32_t wait_time; | 3439 | uint32_t wait_time; |
| 3433 | struct qla_hw_data *ha = vha->hw; | 3440 | struct qla_hw_data *ha = vha->hw; |
| 3434 | struct req_que *req = ha->req_q_map[0]; | 3441 | struct req_que *req = ha->req_q_map[0]; |
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 4c7504cb3990..4aab7acf7525 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c | |||
| @@ -2685,6 +2685,7 @@ qla24xx_report_id_acquisition(scsi_qla_host_t *vha, | |||
| 2685 | uint16_t stat = le16_to_cpu(rptid_entry->vp_idx); | 2685 | uint16_t stat = le16_to_cpu(rptid_entry->vp_idx); |
| 2686 | struct qla_hw_data *ha = vha->hw; | 2686 | struct qla_hw_data *ha = vha->hw; |
| 2687 | scsi_qla_host_t *vp; | 2687 | scsi_qla_host_t *vp; |
| 2688 | scsi_qla_host_t *tvp; | ||
| 2688 | 2689 | ||
| 2689 | if (rptid_entry->entry_status != 0) | 2690 | if (rptid_entry->entry_status != 0) |
| 2690 | return; | 2691 | return; |
| @@ -2710,7 +2711,7 @@ qla24xx_report_id_acquisition(scsi_qla_host_t *vha, | |||
| 2710 | if (MSB(stat) == 1) | 2711 | if (MSB(stat) == 1) |
| 2711 | return; | 2712 | return; |
| 2712 | 2713 | ||
| 2713 | list_for_each_entry(vp, &ha->vp_list, list) | 2714 | list_for_each_entry_safe(vp, tvp, &ha->vp_list, list) |
| 2714 | if (vp_idx == vp->vp_idx) | 2715 | if (vp_idx == vp->vp_idx) |
| 2715 | break; | 2716 | break; |
| 2716 | if (!vp) | 2717 | if (!vp) |
diff --git a/drivers/scsi/qla2xxx/qla_mid.c b/drivers/scsi/qla2xxx/qla_mid.c index 3f23932210c4..785c61279e6e 100644 --- a/drivers/scsi/qla2xxx/qla_mid.c +++ b/drivers/scsi/qla2xxx/qla_mid.c | |||
| @@ -69,9 +69,10 @@ static scsi_qla_host_t * | |||
| 69 | qla24xx_find_vhost_by_name(struct qla_hw_data *ha, uint8_t *port_name) | 69 | qla24xx_find_vhost_by_name(struct qla_hw_data *ha, uint8_t *port_name) |
| 70 | { | 70 | { |
| 71 | scsi_qla_host_t *vha; | 71 | scsi_qla_host_t *vha; |
| 72 | struct scsi_qla_host *tvha; | ||
| 72 | 73 | ||
| 73 | /* Locate matching device in database. */ | 74 | /* Locate matching device in database. */ |
| 74 | list_for_each_entry(vha, &ha->vp_list, list) { | 75 | list_for_each_entry_safe(vha, tvha, &ha->vp_list, list) { |
| 75 | if (!memcmp(port_name, vha->port_name, WWN_SIZE)) | 76 | if (!memcmp(port_name, vha->port_name, WWN_SIZE)) |
| 76 | return vha; | 77 | return vha; |
| 77 | } | 78 | } |
| @@ -194,11 +195,11 @@ qla24xx_configure_vp(scsi_qla_host_t *vha) | |||
| 194 | void | 195 | void |
| 195 | qla2x00_alert_all_vps(struct rsp_que *rsp, uint16_t *mb) | 196 | qla2x00_alert_all_vps(struct rsp_que *rsp, uint16_t *mb) |
| 196 | { | 197 | { |
| 197 | scsi_qla_host_t *vha; | 198 | scsi_qla_host_t *vha, *tvha; |
| 198 | struct qla_hw_data *ha = rsp->hw; | 199 | struct qla_hw_data *ha = rsp->hw; |
| 199 | int i = 0; | 200 | int i = 0; |
| 200 | 201 | ||
| 201 | list_for_each_entry(vha, &ha->vp_list, list) { | 202 | list_for_each_entry_safe(vha, tvha, &ha->vp_list, list) { |
| 202 | if (vha->vp_idx) { | 203 | if (vha->vp_idx) { |
| 203 | switch (mb[0]) { | 204 | switch (mb[0]) { |
| 204 | case MBA_LIP_OCCURRED: | 205 | case MBA_LIP_OCCURRED: |
| @@ -300,6 +301,7 @@ qla2x00_do_dpc_all_vps(scsi_qla_host_t *vha) | |||
| 300 | int ret; | 301 | int ret; |
| 301 | struct qla_hw_data *ha = vha->hw; | 302 | struct qla_hw_data *ha = vha->hw; |
| 302 | scsi_qla_host_t *vp; | 303 | scsi_qla_host_t *vp; |
| 304 | struct scsi_qla_host *tvp; | ||
| 303 | 305 | ||
| 304 | if (vha->vp_idx) | 306 | if (vha->vp_idx) |
| 305 | return; | 307 | return; |
| @@ -308,7 +310,7 @@ qla2x00_do_dpc_all_vps(scsi_qla_host_t *vha) | |||
| 308 | 310 | ||
| 309 | clear_bit(VP_DPC_NEEDED, &vha->dpc_flags); | 311 | clear_bit(VP_DPC_NEEDED, &vha->dpc_flags); |
| 310 | 312 | ||
| 311 | list_for_each_entry(vp, &ha->vp_list, list) { | 313 | list_for_each_entry_safe(vp, tvp, &ha->vp_list, list) { |
| 312 | if (vp->vp_idx) | 314 | if (vp->vp_idx) |
| 313 | ret = qla2x00_do_dpc_vp(vp); | 315 | ret = qla2x00_do_dpc_vp(vp); |
| 314 | } | 316 | } |
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 2f5f72531e23..3ddfa889e949 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c | |||
| @@ -2222,10 +2222,6 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t req_len, uint16_t rsp_len, | |||
| 2222 | { | 2222 | { |
| 2223 | char name[16]; | 2223 | char name[16]; |
| 2224 | 2224 | ||
| 2225 | ha->init_cb_size = sizeof(init_cb_t); | ||
| 2226 | if (IS_QLA2XXX_MIDTYPE(ha)) | ||
| 2227 | ha->init_cb_size = sizeof(struct mid_init_cb_24xx); | ||
| 2228 | |||
| 2229 | ha->init_cb = dma_alloc_coherent(&ha->pdev->dev, ha->init_cb_size, | 2225 | ha->init_cb = dma_alloc_coherent(&ha->pdev->dev, ha->init_cb_size, |
| 2230 | &ha->init_cb_dma, GFP_KERNEL); | 2226 | &ha->init_cb_dma, GFP_KERNEL); |
| 2231 | if (!ha->init_cb) | 2227 | if (!ha->init_cb) |
| @@ -2568,7 +2564,7 @@ qla2x00_do_work(struct scsi_qla_host *vha) | |||
| 2568 | void qla2x00_relogin(struct scsi_qla_host *vha) | 2564 | void qla2x00_relogin(struct scsi_qla_host *vha) |
| 2569 | { | 2565 | { |
| 2570 | fc_port_t *fcport; | 2566 | fc_port_t *fcport; |
| 2571 | uint8_t status; | 2567 | int status; |
| 2572 | uint16_t next_loopid = 0; | 2568 | uint16_t next_loopid = 0; |
| 2573 | struct qla_hw_data *ha = vha->hw; | 2569 | struct qla_hw_data *ha = vha->hw; |
| 2574 | 2570 | ||
diff --git a/drivers/scsi/qla2xxx/qla_version.h b/drivers/scsi/qla2xxx/qla_version.h index 79f7053da99b..a772eab2f0ea 100644 --- a/drivers/scsi/qla2xxx/qla_version.h +++ b/drivers/scsi/qla2xxx/qla_version.h | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | /* | 7 | /* |
| 8 | * Driver version | 8 | * Driver version |
| 9 | */ | 9 | */ |
| 10 | #define QLA2XXX_VERSION "8.03.00-k3" | 10 | #define QLA2XXX_VERSION "8.03.00-k4" |
| 11 | 11 | ||
| 12 | #define QLA_DRIVER_MAJOR_VER 8 | 12 | #define QLA_DRIVER_MAJOR_VER 8 |
| 13 | #define QLA_DRIVER_MINOR_VER 3 | 13 | #define QLA_DRIVER_MINOR_VER 3 |
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 55310dbc10a6..4970ae4a62d6 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c | |||
| @@ -1167,23 +1167,19 @@ sd_spinup_disk(struct scsi_disk *sdkp) | |||
| 1167 | /* | 1167 | /* |
| 1168 | * The device does not want the automatic start to be issued. | 1168 | * The device does not want the automatic start to be issued. |
| 1169 | */ | 1169 | */ |
| 1170 | if (sdkp->device->no_start_on_add) { | 1170 | if (sdkp->device->no_start_on_add) |
| 1171 | break; | 1171 | break; |
| 1172 | } | ||
| 1173 | |||
| 1174 | /* | ||
| 1175 | * If manual intervention is required, or this is an | ||
| 1176 | * absent USB storage device, a spinup is meaningless. | ||
| 1177 | */ | ||
| 1178 | if (sense_valid && | ||
| 1179 | sshdr.sense_key == NOT_READY && | ||
| 1180 | sshdr.asc == 4 && sshdr.ascq == 3) { | ||
| 1181 | break; /* manual intervention required */ | ||
| 1182 | 1172 | ||
| 1183 | /* | 1173 | if (sense_valid && sshdr.sense_key == NOT_READY) { |
| 1184 | * Issue command to spin up drive when not ready | 1174 | if (sshdr.asc == 4 && sshdr.ascq == 3) |
| 1185 | */ | 1175 | break; /* manual intervention required */ |
| 1186 | } else if (sense_valid && sshdr.sense_key == NOT_READY) { | 1176 | if (sshdr.asc == 4 && sshdr.ascq == 0xb) |
| 1177 | break; /* standby */ | ||
| 1178 | if (sshdr.asc == 4 && sshdr.ascq == 0xc) | ||
| 1179 | break; /* unavailable */ | ||
| 1180 | /* | ||
| 1181 | * Issue command to spin up drive when not ready | ||
| 1182 | */ | ||
| 1187 | if (!spintime) { | 1183 | if (!spintime) { |
| 1188 | sd_printk(KERN_NOTICE, sdkp, "Spinning up disk..."); | 1184 | sd_printk(KERN_NOTICE, sdkp, "Spinning up disk..."); |
| 1189 | cmd[0] = START_STOP; | 1185 | cmd[0] = START_STOP; |
diff --git a/drivers/scsi/zalon.c b/drivers/scsi/zalon.c index a8d61a62522e..97f3158fa7b5 100644 --- a/drivers/scsi/zalon.c +++ b/drivers/scsi/zalon.c | |||
| @@ -137,7 +137,7 @@ zalon_probe(struct parisc_device *dev) | |||
| 137 | goto fail; | 137 | goto fail; |
| 138 | 138 | ||
| 139 | if (request_irq(dev->irq, ncr53c8xx_intr, IRQF_SHARED, "zalon", host)) { | 139 | if (request_irq(dev->irq, ncr53c8xx_intr, IRQF_SHARED, "zalon", host)) { |
| 140 | dev_printk(KERN_ERR, dev, "irq problem with %d, detaching\n ", | 140 | dev_printk(KERN_ERR, &dev->dev, "irq problem with %d, detaching\n ", |
| 141 | dev->irq); | 141 | dev->irq); |
| 142 | goto fail; | 142 | goto fail; |
| 143 | } | 143 | } |
diff --git a/fs/bio-integrity.c b/fs/bio-integrity.c index 549b0144da11..fe2b1aa2464e 100644 --- a/fs/bio-integrity.c +++ b/fs/bio-integrity.c | |||
| @@ -685,19 +685,20 @@ EXPORT_SYMBOL(bio_integrity_split); | |||
| 685 | * bio_integrity_clone - Callback for cloning bios with integrity metadata | 685 | * bio_integrity_clone - Callback for cloning bios with integrity metadata |
| 686 | * @bio: New bio | 686 | * @bio: New bio |
| 687 | * @bio_src: Original bio | 687 | * @bio_src: Original bio |
| 688 | * @gfp_mask: Memory allocation mask | ||
| 688 | * @bs: bio_set to allocate bip from | 689 | * @bs: bio_set to allocate bip from |
| 689 | * | 690 | * |
| 690 | * Description: Called to allocate a bip when cloning a bio | 691 | * Description: Called to allocate a bip when cloning a bio |
| 691 | */ | 692 | */ |
| 692 | int bio_integrity_clone(struct bio *bio, struct bio *bio_src, | 693 | int bio_integrity_clone(struct bio *bio, struct bio *bio_src, |
| 693 | struct bio_set *bs) | 694 | gfp_t gfp_mask, struct bio_set *bs) |
| 694 | { | 695 | { |
| 695 | struct bio_integrity_payload *bip_src = bio_src->bi_integrity; | 696 | struct bio_integrity_payload *bip_src = bio_src->bi_integrity; |
| 696 | struct bio_integrity_payload *bip; | 697 | struct bio_integrity_payload *bip; |
| 697 | 698 | ||
| 698 | BUG_ON(bip_src == NULL); | 699 | BUG_ON(bip_src == NULL); |
| 699 | 700 | ||
| 700 | bip = bio_integrity_alloc_bioset(bio, GFP_NOIO, bip_src->bip_vcnt, bs); | 701 | bip = bio_integrity_alloc_bioset(bio, gfp_mask, bip_src->bip_vcnt, bs); |
| 701 | 702 | ||
| 702 | if (bip == NULL) | 703 | if (bip == NULL) |
| 703 | return -EIO; | 704 | return -EIO; |
| @@ -463,10 +463,12 @@ struct bio *bio_clone(struct bio *bio, gfp_t gfp_mask) | |||
| 463 | if (bio_integrity(bio)) { | 463 | if (bio_integrity(bio)) { |
| 464 | int ret; | 464 | int ret; |
| 465 | 465 | ||
| 466 | ret = bio_integrity_clone(b, bio, fs_bio_set); | 466 | ret = bio_integrity_clone(b, bio, gfp_mask, fs_bio_set); |
| 467 | 467 | ||
| 468 | if (ret < 0) | 468 | if (ret < 0) { |
| 469 | bio_put(b); | ||
| 469 | return NULL; | 470 | return NULL; |
| 471 | } | ||
| 470 | } | 472 | } |
| 471 | 473 | ||
| 472 | return b; | 474 | return b; |
diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c index f6caeb1d1106..bdca1f4b3a3e 100644 --- a/fs/ecryptfs/crypto.c +++ b/fs/ecryptfs/crypto.c | |||
| @@ -946,6 +946,8 @@ static int ecryptfs_copy_mount_wide_sigs_to_inode_sigs( | |||
| 946 | list_for_each_entry(global_auth_tok, | 946 | list_for_each_entry(global_auth_tok, |
| 947 | &mount_crypt_stat->global_auth_tok_list, | 947 | &mount_crypt_stat->global_auth_tok_list, |
| 948 | mount_crypt_stat_list) { | 948 | mount_crypt_stat_list) { |
| 949 | if (global_auth_tok->flags & ECRYPTFS_AUTH_TOK_FNEK) | ||
| 950 | continue; | ||
| 949 | rc = ecryptfs_add_keysig(crypt_stat, global_auth_tok->sig); | 951 | rc = ecryptfs_add_keysig(crypt_stat, global_auth_tok->sig); |
| 950 | if (rc) { | 952 | if (rc) { |
| 951 | printk(KERN_ERR "Error adding keysig; rc = [%d]\n", rc); | 953 | printk(KERN_ERR "Error adding keysig; rc = [%d]\n", rc); |
diff --git a/fs/ecryptfs/ecryptfs_kernel.h b/fs/ecryptfs/ecryptfs_kernel.h index c11fc95714ab..eb2267eca1fe 100644 --- a/fs/ecryptfs/ecryptfs_kernel.h +++ b/fs/ecryptfs/ecryptfs_kernel.h | |||
| @@ -328,6 +328,7 @@ struct ecryptfs_dentry_info { | |||
| 328 | */ | 328 | */ |
| 329 | struct ecryptfs_global_auth_tok { | 329 | struct ecryptfs_global_auth_tok { |
| 330 | #define ECRYPTFS_AUTH_TOK_INVALID 0x00000001 | 330 | #define ECRYPTFS_AUTH_TOK_INVALID 0x00000001 |
| 331 | #define ECRYPTFS_AUTH_TOK_FNEK 0x00000002 | ||
| 331 | u32 flags; | 332 | u32 flags; |
| 332 | struct list_head mount_crypt_stat_list; | 333 | struct list_head mount_crypt_stat_list; |
| 333 | struct key *global_auth_tok_key; | 334 | struct key *global_auth_tok_key; |
| @@ -696,7 +697,7 @@ ecryptfs_write_header_metadata(char *virt, | |||
| 696 | int ecryptfs_add_keysig(struct ecryptfs_crypt_stat *crypt_stat, char *sig); | 697 | int ecryptfs_add_keysig(struct ecryptfs_crypt_stat *crypt_stat, char *sig); |
| 697 | int | 698 | int |
| 698 | ecryptfs_add_global_auth_tok(struct ecryptfs_mount_crypt_stat *mount_crypt_stat, | 699 | ecryptfs_add_global_auth_tok(struct ecryptfs_mount_crypt_stat *mount_crypt_stat, |
| 699 | char *sig); | 700 | char *sig, u32 global_auth_tok_flags); |
| 700 | int ecryptfs_get_global_auth_tok_for_sig( | 701 | int ecryptfs_get_global_auth_tok_for_sig( |
| 701 | struct ecryptfs_global_auth_tok **global_auth_tok, | 702 | struct ecryptfs_global_auth_tok **global_auth_tok, |
| 702 | struct ecryptfs_mount_crypt_stat *mount_crypt_stat, char *sig); | 703 | struct ecryptfs_mount_crypt_stat *mount_crypt_stat, char *sig); |
diff --git a/fs/ecryptfs/keystore.c b/fs/ecryptfs/keystore.c index ff539420cc6f..e4a6223c3145 100644 --- a/fs/ecryptfs/keystore.c +++ b/fs/ecryptfs/keystore.c | |||
| @@ -2375,7 +2375,7 @@ struct kmem_cache *ecryptfs_global_auth_tok_cache; | |||
| 2375 | 2375 | ||
| 2376 | int | 2376 | int |
| 2377 | ecryptfs_add_global_auth_tok(struct ecryptfs_mount_crypt_stat *mount_crypt_stat, | 2377 | ecryptfs_add_global_auth_tok(struct ecryptfs_mount_crypt_stat *mount_crypt_stat, |
| 2378 | char *sig) | 2378 | char *sig, u32 global_auth_tok_flags) |
| 2379 | { | 2379 | { |
| 2380 | struct ecryptfs_global_auth_tok *new_auth_tok; | 2380 | struct ecryptfs_global_auth_tok *new_auth_tok; |
| 2381 | int rc = 0; | 2381 | int rc = 0; |
| @@ -2389,6 +2389,7 @@ ecryptfs_add_global_auth_tok(struct ecryptfs_mount_crypt_stat *mount_crypt_stat, | |||
| 2389 | goto out; | 2389 | goto out; |
| 2390 | } | 2390 | } |
| 2391 | memcpy(new_auth_tok->sig, sig, ECRYPTFS_SIG_SIZE_HEX); | 2391 | memcpy(new_auth_tok->sig, sig, ECRYPTFS_SIG_SIZE_HEX); |
| 2392 | new_auth_tok->flags = global_auth_tok_flags; | ||
| 2392 | new_auth_tok->sig[ECRYPTFS_SIG_SIZE_HEX] = '\0'; | 2393 | new_auth_tok->sig[ECRYPTFS_SIG_SIZE_HEX] = '\0'; |
| 2393 | mutex_lock(&mount_crypt_stat->global_auth_tok_list_mutex); | 2394 | mutex_lock(&mount_crypt_stat->global_auth_tok_list_mutex); |
| 2394 | list_add(&new_auth_tok->mount_crypt_stat_list, | 2395 | list_add(&new_auth_tok->mount_crypt_stat_list, |
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c index 789cf2e1be1e..aed56c25539b 100644 --- a/fs/ecryptfs/main.c +++ b/fs/ecryptfs/main.c | |||
| @@ -319,7 +319,7 @@ static int ecryptfs_parse_options(struct super_block *sb, char *options) | |||
| 319 | case ecryptfs_opt_ecryptfs_sig: | 319 | case ecryptfs_opt_ecryptfs_sig: |
| 320 | sig_src = args[0].from; | 320 | sig_src = args[0].from; |
| 321 | rc = ecryptfs_add_global_auth_tok(mount_crypt_stat, | 321 | rc = ecryptfs_add_global_auth_tok(mount_crypt_stat, |
| 322 | sig_src); | 322 | sig_src, 0); |
| 323 | if (rc) { | 323 | if (rc) { |
| 324 | printk(KERN_ERR "Error attempting to register " | 324 | printk(KERN_ERR "Error attempting to register " |
| 325 | "global sig; rc = [%d]\n", rc); | 325 | "global sig; rc = [%d]\n", rc); |
| @@ -370,7 +370,8 @@ static int ecryptfs_parse_options(struct super_block *sb, char *options) | |||
| 370 | ECRYPTFS_SIG_SIZE_HEX] = '\0'; | 370 | ECRYPTFS_SIG_SIZE_HEX] = '\0'; |
| 371 | rc = ecryptfs_add_global_auth_tok( | 371 | rc = ecryptfs_add_global_auth_tok( |
| 372 | mount_crypt_stat, | 372 | mount_crypt_stat, |
| 373 | mount_crypt_stat->global_default_fnek_sig); | 373 | mount_crypt_stat->global_default_fnek_sig, |
| 374 | ECRYPTFS_AUTH_TOK_FNEK); | ||
| 374 | if (rc) { | 375 | if (rc) { |
| 375 | printk(KERN_ERR "Error attempting to register " | 376 | printk(KERN_ERR "Error attempting to register " |
| 376 | "global fnek sig [%s]; rc = [%d]\n", | 377 | "global fnek sig [%s]; rc = [%d]\n", |
diff --git a/fs/lockd/clntlock.c b/fs/lockd/clntlock.c index 1f3b0fc0d351..aedc47a264c1 100644 --- a/fs/lockd/clntlock.c +++ b/fs/lockd/clntlock.c | |||
| @@ -139,6 +139,55 @@ int nlmclnt_block(struct nlm_wait *block, struct nlm_rqst *req, long timeout) | |||
| 139 | return 0; | 139 | return 0; |
| 140 | } | 140 | } |
| 141 | 141 | ||
| 142 | #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) | ||
| 143 | static const struct in6_addr *nlmclnt_map_v4addr(const struct sockaddr *sap, | ||
| 144 | struct in6_addr *addr_mapped) | ||
| 145 | { | ||
| 146 | const struct sockaddr_in *sin = (const struct sockaddr_in *)sap; | ||
| 147 | |||
| 148 | switch (sap->sa_family) { | ||
| 149 | case AF_INET6: | ||
| 150 | return &((const struct sockaddr_in6 *)sap)->sin6_addr; | ||
| 151 | case AF_INET: | ||
| 152 | ipv6_addr_set_v4mapped(sin->sin_addr.s_addr, addr_mapped); | ||
| 153 | return addr_mapped; | ||
| 154 | } | ||
| 155 | |||
| 156 | return NULL; | ||
| 157 | } | ||
| 158 | |||
| 159 | /* | ||
| 160 | * If lockd is using a PF_INET6 listener, all incoming requests appear | ||
| 161 | * to come from AF_INET6 remotes. The address of AF_INET remotes are | ||
| 162 | * mapped to AF_INET6 automatically by the network layer. In case the | ||
| 163 | * user passed an AF_INET server address at mount time, ensure both | ||
| 164 | * addresses are AF_INET6 before comparing them. | ||
| 165 | */ | ||
| 166 | static int nlmclnt_cmp_addr(const struct nlm_host *host, | ||
| 167 | const struct sockaddr *sap) | ||
| 168 | { | ||
| 169 | const struct in6_addr *addr1; | ||
| 170 | const struct in6_addr *addr2; | ||
| 171 | struct in6_addr addr1_mapped; | ||
| 172 | struct in6_addr addr2_mapped; | ||
| 173 | |||
| 174 | addr1 = nlmclnt_map_v4addr(nlm_addr(host), &addr1_mapped); | ||
| 175 | if (likely(addr1 != NULL)) { | ||
| 176 | addr2 = nlmclnt_map_v4addr(sap, &addr2_mapped); | ||
| 177 | if (likely(addr2 != NULL)) | ||
| 178 | return ipv6_addr_equal(addr1, addr2); | ||
| 179 | } | ||
| 180 | |||
| 181 | return 0; | ||
| 182 | } | ||
| 183 | #else /* !(CONFIG_IPV6 || CONFIG_IPV6_MODULE) */ | ||
| 184 | static int nlmclnt_cmp_addr(const struct nlm_host *host, | ||
| 185 | const struct sockaddr *sap) | ||
| 186 | { | ||
| 187 | return nlm_cmp_addr(nlm_addr(host), sap); | ||
| 188 | } | ||
| 189 | #endif /* !(CONFIG_IPV6 || CONFIG_IPV6_MODULE) */ | ||
| 190 | |||
| 142 | /* | 191 | /* |
| 143 | * The server lockd has called us back to tell us the lock was granted | 192 | * The server lockd has called us back to tell us the lock was granted |
| 144 | */ | 193 | */ |
| @@ -166,7 +215,7 @@ __be32 nlmclnt_grant(const struct sockaddr *addr, const struct nlm_lock *lock) | |||
| 166 | */ | 215 | */ |
| 167 | if (fl_blocked->fl_u.nfs_fl.owner->pid != lock->svid) | 216 | if (fl_blocked->fl_u.nfs_fl.owner->pid != lock->svid) |
| 168 | continue; | 217 | continue; |
| 169 | if (!nlm_cmp_addr(nlm_addr(block->b_host), addr)) | 218 | if (!nlmclnt_cmp_addr(block->b_host, addr)) |
| 170 | continue; | 219 | continue; |
| 171 | if (nfs_compare_fh(NFS_FH(fl_blocked->fl_file->f_path.dentry->d_inode) ,fh) != 0) | 220 | if (nfs_compare_fh(NFS_FH(fl_blocked->fl_file->f_path.dentry->d_inode) ,fh) != 0) |
| 172 | continue; | 221 | continue; |
diff --git a/fs/nfs/client.c b/fs/nfs/client.c index 9b728f3565a1..574158ae2398 100644 --- a/fs/nfs/client.c +++ b/fs/nfs/client.c | |||
| @@ -255,6 +255,32 @@ static int nfs_sockaddr_match_ipaddr(const struct sockaddr *sa1, | |||
| 255 | } | 255 | } |
| 256 | return 0; | 256 | return 0; |
| 257 | } | 257 | } |
| 258 | |||
| 259 | /* | ||
| 260 | * Test if two ip6 socket addresses refer to the same socket by | ||
| 261 | * comparing relevant fields. The padding bytes specifically, are not | ||
| 262 | * compared. sin6_flowinfo is not compared because it only affects QoS | ||
| 263 | * and sin6_scope_id is only compared if the address is "link local" | ||
| 264 | * because "link local" addresses need only be unique to a specific | ||
| 265 | * link. Conversely, ordinary unicast addresses might have different | ||
| 266 | * sin6_scope_id. | ||
| 267 | * | ||
| 268 | * The caller should ensure both socket addresses are AF_INET6. | ||
| 269 | */ | ||
| 270 | static int nfs_sockaddr_cmp_ip6(const struct sockaddr *sa1, | ||
| 271 | const struct sockaddr *sa2) | ||
| 272 | { | ||
| 273 | const struct sockaddr_in6 *saddr1 = (const struct sockaddr_in6 *)sa1; | ||
| 274 | const struct sockaddr_in6 *saddr2 = (const struct sockaddr_in6 *)sa2; | ||
| 275 | |||
| 276 | if (!ipv6_addr_equal(&saddr1->sin6_addr, | ||
| 277 | &saddr1->sin6_addr)) | ||
| 278 | return 0; | ||
| 279 | if (ipv6_addr_scope(&saddr1->sin6_addr) == IPV6_ADDR_SCOPE_LINKLOCAL && | ||
| 280 | saddr1->sin6_scope_id != saddr2->sin6_scope_id) | ||
| 281 | return 0; | ||
| 282 | return saddr1->sin6_port == saddr2->sin6_port; | ||
| 283 | } | ||
| 258 | #else | 284 | #else |
| 259 | static int nfs_sockaddr_match_ipaddr4(const struct sockaddr_in *sa1, | 285 | static int nfs_sockaddr_match_ipaddr4(const struct sockaddr_in *sa1, |
| 260 | const struct sockaddr_in *sa2) | 286 | const struct sockaddr_in *sa2) |
| @@ -270,9 +296,52 @@ static int nfs_sockaddr_match_ipaddr(const struct sockaddr *sa1, | |||
| 270 | return nfs_sockaddr_match_ipaddr4((const struct sockaddr_in *)sa1, | 296 | return nfs_sockaddr_match_ipaddr4((const struct sockaddr_in *)sa1, |
| 271 | (const struct sockaddr_in *)sa2); | 297 | (const struct sockaddr_in *)sa2); |
| 272 | } | 298 | } |
| 299 | |||
| 300 | static int nfs_sockaddr_cmp_ip6(const struct sockaddr * sa1, | ||
| 301 | const struct sockaddr * sa2) | ||
| 302 | { | ||
| 303 | return 0; | ||
| 304 | } | ||
| 273 | #endif | 305 | #endif |
| 274 | 306 | ||
| 275 | /* | 307 | /* |
| 308 | * Test if two ip4 socket addresses refer to the same socket, by | ||
| 309 | * comparing relevant fields. The padding bytes specifically, are | ||
| 310 | * not compared. | ||
| 311 | * | ||
| 312 | * The caller should ensure both socket addresses are AF_INET. | ||
| 313 | */ | ||
| 314 | static int nfs_sockaddr_cmp_ip4(const struct sockaddr *sa1, | ||
| 315 | const struct sockaddr *sa2) | ||
| 316 | { | ||
| 317 | const struct sockaddr_in *saddr1 = (const struct sockaddr_in *)sa1; | ||
| 318 | const struct sockaddr_in *saddr2 = (const struct sockaddr_in *)sa2; | ||
| 319 | |||
| 320 | if (saddr1->sin_addr.s_addr != saddr2->sin_addr.s_addr) | ||
| 321 | return 0; | ||
| 322 | return saddr1->sin_port == saddr2->sin_port; | ||
| 323 | } | ||
| 324 | |||
| 325 | /* | ||
| 326 | * Test if two socket addresses represent the same actual socket, | ||
| 327 | * by comparing (only) relevant fields. | ||
| 328 | */ | ||
| 329 | static int nfs_sockaddr_cmp(const struct sockaddr *sa1, | ||
| 330 | const struct sockaddr *sa2) | ||
| 331 | { | ||
| 332 | if (sa1->sa_family != sa2->sa_family) | ||
| 333 | return 0; | ||
| 334 | |||
| 335 | switch (sa1->sa_family) { | ||
| 336 | case AF_INET: | ||
| 337 | return nfs_sockaddr_cmp_ip4(sa1, sa2); | ||
| 338 | case AF_INET6: | ||
| 339 | return nfs_sockaddr_cmp_ip6(sa1, sa2); | ||
| 340 | } | ||
| 341 | return 0; | ||
| 342 | } | ||
| 343 | |||
| 344 | /* | ||
| 276 | * Find a client by IP address and protocol version | 345 | * Find a client by IP address and protocol version |
| 277 | * - returns NULL if no such client | 346 | * - returns NULL if no such client |
| 278 | */ | 347 | */ |
| @@ -344,8 +413,10 @@ struct nfs_client *nfs_find_client_next(struct nfs_client *clp) | |||
| 344 | static struct nfs_client *nfs_match_client(const struct nfs_client_initdata *data) | 413 | static struct nfs_client *nfs_match_client(const struct nfs_client_initdata *data) |
| 345 | { | 414 | { |
| 346 | struct nfs_client *clp; | 415 | struct nfs_client *clp; |
| 416 | const struct sockaddr *sap = data->addr; | ||
| 347 | 417 | ||
| 348 | list_for_each_entry(clp, &nfs_client_list, cl_share_link) { | 418 | list_for_each_entry(clp, &nfs_client_list, cl_share_link) { |
| 419 | const struct sockaddr *clap = (struct sockaddr *)&clp->cl_addr; | ||
| 349 | /* Don't match clients that failed to initialise properly */ | 420 | /* Don't match clients that failed to initialise properly */ |
| 350 | if (clp->cl_cons_state < 0) | 421 | if (clp->cl_cons_state < 0) |
| 351 | continue; | 422 | continue; |
| @@ -358,7 +429,7 @@ static struct nfs_client *nfs_match_client(const struct nfs_client_initdata *dat | |||
| 358 | continue; | 429 | continue; |
| 359 | 430 | ||
| 360 | /* Match the full socket address */ | 431 | /* Match the full socket address */ |
| 361 | if (memcmp(&clp->cl_addr, data->addr, sizeof(clp->cl_addr)) != 0) | 432 | if (!nfs_sockaddr_cmp(sap, clap)) |
| 362 | continue; | 433 | continue; |
| 363 | 434 | ||
| 364 | atomic_inc(&clp->cl_count); | 435 | atomic_inc(&clp->cl_count); |
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index e35c8199f82f..672368f865ca 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c | |||
| @@ -1892,8 +1892,14 @@ static int nfs_do_access(struct inode *inode, struct rpc_cred *cred, int mask) | |||
| 1892 | cache.cred = cred; | 1892 | cache.cred = cred; |
| 1893 | cache.jiffies = jiffies; | 1893 | cache.jiffies = jiffies; |
| 1894 | status = NFS_PROTO(inode)->access(inode, &cache); | 1894 | status = NFS_PROTO(inode)->access(inode, &cache); |
| 1895 | if (status != 0) | 1895 | if (status != 0) { |
| 1896 | if (status == -ESTALE) { | ||
| 1897 | nfs_zap_caches(inode); | ||
| 1898 | if (!S_ISDIR(inode->i_mode)) | ||
| 1899 | set_bit(NFS_INO_STALE, &NFS_I(inode)->flags); | ||
| 1900 | } | ||
| 1896 | return status; | 1901 | return status; |
| 1902 | } | ||
| 1897 | nfs_access_add_cache(inode, &cache); | 1903 | nfs_access_add_cache(inode, &cache); |
| 1898 | out: | 1904 | out: |
| 1899 | if ((mask & ~cache.mask & (MAY_READ | MAY_WRITE | MAY_EXEC)) == 0) | 1905 | if ((mask & ~cache.mask & (MAY_READ | MAY_WRITE | MAY_EXEC)) == 0) |
diff --git a/fs/nfs/nfs3acl.c b/fs/nfs/nfs3acl.c index cef62557c87d..6bbf0e6daad2 100644 --- a/fs/nfs/nfs3acl.c +++ b/fs/nfs/nfs3acl.c | |||
| @@ -292,7 +292,7 @@ static int nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl, | |||
| 292 | { | 292 | { |
| 293 | struct nfs_server *server = NFS_SERVER(inode); | 293 | struct nfs_server *server = NFS_SERVER(inode); |
| 294 | struct nfs_fattr fattr; | 294 | struct nfs_fattr fattr; |
| 295 | struct page *pages[NFSACL_MAXPAGES] = { }; | 295 | struct page *pages[NFSACL_MAXPAGES]; |
| 296 | struct nfs3_setaclargs args = { | 296 | struct nfs3_setaclargs args = { |
| 297 | .inode = inode, | 297 | .inode = inode, |
| 298 | .mask = NFS_ACL, | 298 | .mask = NFS_ACL, |
| @@ -303,7 +303,7 @@ static int nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl, | |||
| 303 | .rpc_argp = &args, | 303 | .rpc_argp = &args, |
| 304 | .rpc_resp = &fattr, | 304 | .rpc_resp = &fattr, |
| 305 | }; | 305 | }; |
| 306 | int status, count; | 306 | int status; |
| 307 | 307 | ||
| 308 | status = -EOPNOTSUPP; | 308 | status = -EOPNOTSUPP; |
| 309 | if (!nfs_server_capable(inode, NFS_CAP_ACLS)) | 309 | if (!nfs_server_capable(inode, NFS_CAP_ACLS)) |
| @@ -319,6 +319,20 @@ static int nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl, | |||
| 319 | if (S_ISDIR(inode->i_mode)) { | 319 | if (S_ISDIR(inode->i_mode)) { |
| 320 | args.mask |= NFS_DFACL; | 320 | args.mask |= NFS_DFACL; |
| 321 | args.acl_default = dfacl; | 321 | args.acl_default = dfacl; |
| 322 | args.len = nfsacl_size(acl, dfacl); | ||
| 323 | } else | ||
| 324 | args.len = nfsacl_size(acl, NULL); | ||
| 325 | |||
| 326 | if (args.len > NFS_ACL_INLINE_BUFSIZE) { | ||
| 327 | unsigned int npages = 1 + ((args.len - 1) >> PAGE_SHIFT); | ||
| 328 | |||
| 329 | status = -ENOMEM; | ||
| 330 | do { | ||
| 331 | args.pages[args.npages] = alloc_page(GFP_KERNEL); | ||
| 332 | if (args.pages[args.npages] == NULL) | ||
| 333 | goto out_freepages; | ||
| 334 | args.npages++; | ||
| 335 | } while (args.npages < npages); | ||
| 322 | } | 336 | } |
| 323 | 337 | ||
| 324 | dprintk("NFS call setacl\n"); | 338 | dprintk("NFS call setacl\n"); |
| @@ -329,10 +343,6 @@ static int nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl, | |||
| 329 | nfs_zap_acl_cache(inode); | 343 | nfs_zap_acl_cache(inode); |
| 330 | dprintk("NFS reply setacl: %d\n", status); | 344 | dprintk("NFS reply setacl: %d\n", status); |
| 331 | 345 | ||
| 332 | /* pages may have been allocated at the xdr layer. */ | ||
| 333 | for (count = 0; count < NFSACL_MAXPAGES && args.pages[count]; count++) | ||
| 334 | __free_page(args.pages[count]); | ||
| 335 | |||
| 336 | switch (status) { | 346 | switch (status) { |
| 337 | case 0: | 347 | case 0: |
| 338 | status = nfs_refresh_inode(inode, &fattr); | 348 | status = nfs_refresh_inode(inode, &fattr); |
| @@ -346,6 +356,11 @@ static int nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl, | |||
| 346 | case -ENOTSUPP: | 356 | case -ENOTSUPP: |
| 347 | status = -EOPNOTSUPP; | 357 | status = -EOPNOTSUPP; |
| 348 | } | 358 | } |
| 359 | out_freepages: | ||
| 360 | while (args.npages != 0) { | ||
| 361 | args.npages--; | ||
| 362 | __free_page(args.pages[args.npages]); | ||
| 363 | } | ||
| 349 | out: | 364 | out: |
| 350 | return status; | 365 | return status; |
| 351 | } | 366 | } |
diff --git a/fs/nfs/nfs3xdr.c b/fs/nfs/nfs3xdr.c index 11cdddec1432..6cdeacffde46 100644 --- a/fs/nfs/nfs3xdr.c +++ b/fs/nfs/nfs3xdr.c | |||
| @@ -82,8 +82,10 @@ | |||
| 82 | #define NFS3_commitres_sz (1+NFS3_wcc_data_sz+2) | 82 | #define NFS3_commitres_sz (1+NFS3_wcc_data_sz+2) |
| 83 | 83 | ||
| 84 | #define ACL3_getaclargs_sz (NFS3_fh_sz+1) | 84 | #define ACL3_getaclargs_sz (NFS3_fh_sz+1) |
| 85 | #define ACL3_setaclargs_sz (NFS3_fh_sz+1+2*(2+5*3)) | 85 | #define ACL3_setaclargs_sz (NFS3_fh_sz+1+ \ |
| 86 | #define ACL3_getaclres_sz (1+NFS3_post_op_attr_sz+1+2*(2+5*3)) | 86 | XDR_QUADLEN(NFS_ACL_INLINE_BUFSIZE)) |
| 87 | #define ACL3_getaclres_sz (1+NFS3_post_op_attr_sz+1+ \ | ||
| 88 | XDR_QUADLEN(NFS_ACL_INLINE_BUFSIZE)) | ||
| 87 | #define ACL3_setaclres_sz (1+NFS3_post_op_attr_sz) | 89 | #define ACL3_setaclres_sz (1+NFS3_post_op_attr_sz) |
| 88 | 90 | ||
| 89 | /* | 91 | /* |
| @@ -703,28 +705,18 @@ nfs3_xdr_setaclargs(struct rpc_rqst *req, __be32 *p, | |||
| 703 | struct nfs3_setaclargs *args) | 705 | struct nfs3_setaclargs *args) |
| 704 | { | 706 | { |
| 705 | struct xdr_buf *buf = &req->rq_snd_buf; | 707 | struct xdr_buf *buf = &req->rq_snd_buf; |
| 706 | unsigned int base, len_in_head, len = nfsacl_size( | 708 | unsigned int base; |
| 707 | (args->mask & NFS_ACL) ? args->acl_access : NULL, | 709 | int err; |
| 708 | (args->mask & NFS_DFACL) ? args->acl_default : NULL); | ||
| 709 | int count, err; | ||
| 710 | 710 | ||
| 711 | p = xdr_encode_fhandle(p, NFS_FH(args->inode)); | 711 | p = xdr_encode_fhandle(p, NFS_FH(args->inode)); |
| 712 | *p++ = htonl(args->mask); | 712 | *p++ = htonl(args->mask); |
| 713 | base = (char *)p - (char *)buf->head->iov_base; | 713 | req->rq_slen = xdr_adjust_iovec(req->rq_svec, p); |
| 714 | /* put as much of the acls into head as possible. */ | 714 | base = req->rq_slen; |
| 715 | len_in_head = min_t(unsigned int, buf->head->iov_len - base, len); | 715 | |
| 716 | len -= len_in_head; | 716 | if (args->npages != 0) |
| 717 | req->rq_slen = xdr_adjust_iovec(req->rq_svec, p + (len_in_head >> 2)); | 717 | xdr_encode_pages(buf, args->pages, 0, args->len); |
| 718 | 718 | else | |
| 719 | for (count = 0; (count << PAGE_SHIFT) < len; count++) { | 719 | req->rq_slen += args->len; |
| 720 | args->pages[count] = alloc_page(GFP_KERNEL); | ||
| 721 | if (!args->pages[count]) { | ||
| 722 | while (count) | ||
| 723 | __free_page(args->pages[--count]); | ||
| 724 | return -ENOMEM; | ||
| 725 | } | ||
| 726 | } | ||
| 727 | xdr_encode_pages(buf, args->pages, 0, len); | ||
| 728 | 720 | ||
| 729 | err = nfsacl_encode(buf, base, args->inode, | 721 | err = nfsacl_encode(buf, base, args->inode, |
| 730 | (args->mask & NFS_ACL) ? | 722 | (args->mask & NFS_ACL) ? |
diff --git a/fs/nfs/nfs4namespace.c b/fs/nfs/nfs4namespace.c index 30befc39b3c6..2a2a0a7143ad 100644 --- a/fs/nfs/nfs4namespace.c +++ b/fs/nfs/nfs4namespace.c | |||
| @@ -21,7 +21,9 @@ | |||
| 21 | #define NFSDBG_FACILITY NFSDBG_VFS | 21 | #define NFSDBG_FACILITY NFSDBG_VFS |
| 22 | 22 | ||
| 23 | /* | 23 | /* |
| 24 | * Check if fs_root is valid | 24 | * Convert the NFSv4 pathname components into a standard posix path. |
| 25 | * | ||
| 26 | * Note that the resulting string will be placed at the end of the buffer | ||
| 25 | */ | 27 | */ |
| 26 | static inline char *nfs4_pathname_string(const struct nfs4_pathname *pathname, | 28 | static inline char *nfs4_pathname_string(const struct nfs4_pathname *pathname, |
| 27 | char *buffer, ssize_t buflen) | 29 | char *buffer, ssize_t buflen) |
| @@ -99,21 +101,20 @@ static struct vfsmount *try_location(struct nfs_clone_mount *mountdata, | |||
| 99 | { | 101 | { |
| 100 | struct vfsmount *mnt = ERR_PTR(-ENOENT); | 102 | struct vfsmount *mnt = ERR_PTR(-ENOENT); |
| 101 | char *mnt_path; | 103 | char *mnt_path; |
| 102 | int page2len; | 104 | unsigned int maxbuflen; |
| 103 | unsigned int s; | 105 | unsigned int s; |
| 104 | 106 | ||
| 105 | mnt_path = nfs4_pathname_string(&location->rootpath, page2, PAGE_SIZE); | 107 | mnt_path = nfs4_pathname_string(&location->rootpath, page2, PAGE_SIZE); |
| 106 | if (IS_ERR(mnt_path)) | 108 | if (IS_ERR(mnt_path)) |
| 107 | return mnt; | 109 | return mnt; |
| 108 | mountdata->mnt_path = mnt_path; | 110 | mountdata->mnt_path = mnt_path; |
| 109 | page2 += strlen(mnt_path) + 1; | 111 | maxbuflen = mnt_path - 1 - page2; |
| 110 | page2len = PAGE_SIZE - strlen(mnt_path) - 1; | ||
| 111 | 112 | ||
| 112 | for (s = 0; s < location->nservers; s++) { | 113 | for (s = 0; s < location->nservers; s++) { |
| 113 | const struct nfs4_string *buf = &location->servers[s]; | 114 | const struct nfs4_string *buf = &location->servers[s]; |
| 114 | struct sockaddr_storage addr; | 115 | struct sockaddr_storage addr; |
| 115 | 116 | ||
| 116 | if (buf->len <= 0 || buf->len >= PAGE_SIZE) | 117 | if (buf->len <= 0 || buf->len >= maxbuflen) |
| 117 | continue; | 118 | continue; |
| 118 | 119 | ||
| 119 | mountdata->addr = (struct sockaddr *)&addr; | 120 | mountdata->addr = (struct sockaddr *)&addr; |
| @@ -126,8 +127,8 @@ static struct vfsmount *try_location(struct nfs_clone_mount *mountdata, | |||
| 126 | continue; | 127 | continue; |
| 127 | nfs_set_port(mountdata->addr, NFS_PORT); | 128 | nfs_set_port(mountdata->addr, NFS_PORT); |
| 128 | 129 | ||
| 129 | strncpy(page2, buf->data, page2len); | 130 | memcpy(page2, buf->data, buf->len); |
| 130 | page2[page2len] = '\0'; | 131 | page2[buf->len] = '\0'; |
| 131 | mountdata->hostname = page2; | 132 | mountdata->hostname = page2; |
| 132 | 133 | ||
| 133 | snprintf(page, PAGE_SIZE, "%s:%s", | 134 | snprintf(page, PAGE_SIZE, "%s:%s", |
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c index 3a9e5deed74d..19e3a96aa02c 100644 --- a/fs/ocfs2/alloc.c +++ b/fs/ocfs2/alloc.c | |||
| @@ -176,7 +176,8 @@ static int ocfs2_dinode_insert_check(struct inode *inode, | |||
| 176 | 176 | ||
| 177 | BUG_ON(OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL); | 177 | BUG_ON(OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL); |
| 178 | mlog_bug_on_msg(!ocfs2_sparse_alloc(osb) && | 178 | mlog_bug_on_msg(!ocfs2_sparse_alloc(osb) && |
| 179 | (OCFS2_I(inode)->ip_clusters != rec->e_cpos), | 179 | (OCFS2_I(inode)->ip_clusters != |
| 180 | le32_to_cpu(rec->e_cpos)), | ||
| 180 | "Device %s, asking for sparse allocation: inode %llu, " | 181 | "Device %s, asking for sparse allocation: inode %llu, " |
| 181 | "cpos %u, clusters %u\n", | 182 | "cpos %u, clusters %u\n", |
| 182 | osb->dev_str, | 183 | osb->dev_str, |
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c index a067a6cffb01..8e1709a679b7 100644 --- a/fs/ocfs2/aops.c +++ b/fs/ocfs2/aops.c | |||
| @@ -227,7 +227,7 @@ int ocfs2_read_inline_data(struct inode *inode, struct page *page, | |||
| 227 | size = i_size_read(inode); | 227 | size = i_size_read(inode); |
| 228 | 228 | ||
| 229 | if (size > PAGE_CACHE_SIZE || | 229 | if (size > PAGE_CACHE_SIZE || |
| 230 | size > ocfs2_max_inline_data(inode->i_sb)) { | 230 | size > ocfs2_max_inline_data_with_xattr(inode->i_sb, di)) { |
| 231 | ocfs2_error(inode->i_sb, | 231 | ocfs2_error(inode->i_sb, |
| 232 | "Inode %llu has with inline data has bad size: %Lu", | 232 | "Inode %llu has with inline data has bad size: %Lu", |
| 233 | (unsigned long long)OCFS2_I(inode)->ip_blkno, | 233 | (unsigned long long)OCFS2_I(inode)->ip_blkno, |
| @@ -1555,6 +1555,7 @@ static int ocfs2_try_to_write_inline_data(struct address_space *mapping, | |||
| 1555 | int ret, written = 0; | 1555 | int ret, written = 0; |
| 1556 | loff_t end = pos + len; | 1556 | loff_t end = pos + len; |
| 1557 | struct ocfs2_inode_info *oi = OCFS2_I(inode); | 1557 | struct ocfs2_inode_info *oi = OCFS2_I(inode); |
| 1558 | struct ocfs2_dinode *di = NULL; | ||
| 1558 | 1559 | ||
| 1559 | mlog(0, "Inode %llu, write of %u bytes at off %llu. features: 0x%x\n", | 1560 | mlog(0, "Inode %llu, write of %u bytes at off %llu. features: 0x%x\n", |
| 1560 | (unsigned long long)oi->ip_blkno, len, (unsigned long long)pos, | 1561 | (unsigned long long)oi->ip_blkno, len, (unsigned long long)pos, |
| @@ -1587,7 +1588,9 @@ static int ocfs2_try_to_write_inline_data(struct address_space *mapping, | |||
| 1587 | /* | 1588 | /* |
| 1588 | * Check whether the write can fit. | 1589 | * Check whether the write can fit. |
| 1589 | */ | 1590 | */ |
| 1590 | if (mmap_page || end > ocfs2_max_inline_data(inode->i_sb)) | 1591 | di = (struct ocfs2_dinode *)wc->w_di_bh->b_data; |
| 1592 | if (mmap_page || | ||
| 1593 | end > ocfs2_max_inline_data_with_xattr(inode->i_sb, di)) | ||
| 1591 | return 0; | 1594 | return 0; |
| 1592 | 1595 | ||
| 1593 | do_inline_write: | 1596 | do_inline_write: |
diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c index 084aba86c3b2..4b11762f249e 100644 --- a/fs/ocfs2/namei.c +++ b/fs/ocfs2/namei.c | |||
| @@ -532,7 +532,8 @@ static int ocfs2_mknod_locked(struct ocfs2_super *osb, | |||
| 532 | 532 | ||
| 533 | fe->i_dyn_features = cpu_to_le16(feat | OCFS2_INLINE_DATA_FL); | 533 | fe->i_dyn_features = cpu_to_le16(feat | OCFS2_INLINE_DATA_FL); |
| 534 | 534 | ||
| 535 | fe->id2.i_data.id_count = cpu_to_le16(ocfs2_max_inline_data(osb->sb)); | 535 | fe->id2.i_data.id_count = cpu_to_le16( |
| 536 | ocfs2_max_inline_data_with_xattr(osb->sb, fe)); | ||
| 536 | } else { | 537 | } else { |
| 537 | fel = &fe->id2.i_list; | 538 | fel = &fe->id2.i_list; |
| 538 | fel->l_tree_depth = 0; | 539 | fel->l_tree_depth = 0; |
diff --git a/fs/ocfs2/ocfs2_fs.h b/fs/ocfs2/ocfs2_fs.h index c7ae45aaa36c..2332ef740f4f 100644 --- a/fs/ocfs2/ocfs2_fs.h +++ b/fs/ocfs2/ocfs2_fs.h | |||
| @@ -1070,12 +1070,6 @@ static inline int ocfs2_fast_symlink_chars(struct super_block *sb) | |||
| 1070 | offsetof(struct ocfs2_dinode, id2.i_symlink); | 1070 | offsetof(struct ocfs2_dinode, id2.i_symlink); |
| 1071 | } | 1071 | } |
| 1072 | 1072 | ||
| 1073 | static inline int ocfs2_max_inline_data(struct super_block *sb) | ||
| 1074 | { | ||
| 1075 | return sb->s_blocksize - | ||
| 1076 | offsetof(struct ocfs2_dinode, id2.i_data.id_data); | ||
| 1077 | } | ||
| 1078 | |||
| 1079 | static inline int ocfs2_max_inline_data_with_xattr(struct super_block *sb, | 1073 | static inline int ocfs2_max_inline_data_with_xattr(struct super_block *sb, |
| 1080 | struct ocfs2_dinode *di) | 1074 | struct ocfs2_dinode *di) |
| 1081 | { | 1075 | { |
diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c index 4ddd788add67..2563df89fc2a 100644 --- a/fs/ocfs2/xattr.c +++ b/fs/ocfs2/xattr.c | |||
| @@ -547,8 +547,12 @@ int ocfs2_calc_xattr_init(struct inode *dir, | |||
| 547 | * when blocksize = 512, may reserve one more cluser for | 547 | * when blocksize = 512, may reserve one more cluser for |
| 548 | * xattr bucket, otherwise reserve one metadata block | 548 | * xattr bucket, otherwise reserve one metadata block |
| 549 | * for them is ok. | 549 | * for them is ok. |
| 550 | * If this is a new directory with inline data, | ||
| 551 | * we choose to reserve the entire inline area for | ||
| 552 | * directory contents and force an external xattr block. | ||
| 550 | */ | 553 | */ |
| 551 | if (dir->i_sb->s_blocksize == OCFS2_MIN_BLOCKSIZE || | 554 | if (dir->i_sb->s_blocksize == OCFS2_MIN_BLOCKSIZE || |
| 555 | (S_ISDIR(mode) && ocfs2_supports_inline_data(osb)) || | ||
| 552 | (s_size + a_size) > OCFS2_XATTR_FREE_IN_IBODY) { | 556 | (s_size + a_size) > OCFS2_XATTR_FREE_IN_IBODY) { |
| 553 | ret = ocfs2_reserve_new_metadata_blocks(osb, 1, xattr_ac); | 557 | ret = ocfs2_reserve_new_metadata_blocks(osb, 1, xattr_ac); |
| 554 | if (ret) { | 558 | if (ret) { |
| @@ -4791,19 +4795,33 @@ static int ocfs2_xattr_bucket_set_value_outside(struct inode *inode, | |||
| 4791 | char *val, | 4795 | char *val, |
| 4792 | int value_len) | 4796 | int value_len) |
| 4793 | { | 4797 | { |
| 4794 | int offset; | 4798 | int ret, offset, block_off; |
| 4795 | struct ocfs2_xattr_value_root *xv; | 4799 | struct ocfs2_xattr_value_root *xv; |
| 4796 | struct ocfs2_xattr_entry *xe = xs->here; | 4800 | struct ocfs2_xattr_entry *xe = xs->here; |
| 4801 | struct ocfs2_xattr_header *xh = bucket_xh(xs->bucket); | ||
| 4802 | void *base; | ||
| 4797 | 4803 | ||
| 4798 | BUG_ON(!xs->base || !xe || ocfs2_xattr_is_local(xe)); | 4804 | BUG_ON(!xs->base || !xe || ocfs2_xattr_is_local(xe)); |
| 4799 | 4805 | ||
| 4800 | offset = le16_to_cpu(xe->xe_name_offset) + | 4806 | ret = ocfs2_xattr_bucket_get_name_value(inode, xh, |
| 4801 | OCFS2_XATTR_SIZE(xe->xe_name_len); | 4807 | xe - xh->xh_entries, |
| 4808 | &block_off, | ||
| 4809 | &offset); | ||
| 4810 | if (ret) { | ||
| 4811 | mlog_errno(ret); | ||
| 4812 | goto out; | ||
| 4813 | } | ||
| 4802 | 4814 | ||
| 4803 | xv = (struct ocfs2_xattr_value_root *)(xs->base + offset); | 4815 | base = bucket_block(xs->bucket, block_off); |
| 4816 | xv = (struct ocfs2_xattr_value_root *)(base + offset + | ||
| 4817 | OCFS2_XATTR_SIZE(xe->xe_name_len)); | ||
| 4804 | 4818 | ||
| 4805 | return __ocfs2_xattr_set_value_outside(inode, handle, | 4819 | ret = __ocfs2_xattr_set_value_outside(inode, handle, |
| 4806 | xv, val, value_len); | 4820 | xv, val, value_len); |
| 4821 | if (ret) | ||
| 4822 | mlog_errno(ret); | ||
| 4823 | out: | ||
| 4824 | return ret; | ||
| 4807 | } | 4825 | } |
| 4808 | 4826 | ||
| 4809 | static int ocfs2_rm_xattr_cluster(struct inode *inode, | 4827 | static int ocfs2_rm_xattr_cluster(struct inode *inode, |
diff --git a/fs/ramfs/file-nommu.c b/fs/ramfs/file-nommu.c index b9b567a28376..5d7c7ececa64 100644 --- a/fs/ramfs/file-nommu.c +++ b/fs/ramfs/file-nommu.c | |||
| @@ -114,6 +114,9 @@ int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize) | |||
| 114 | if (!pagevec_add(&lru_pvec, page)) | 114 | if (!pagevec_add(&lru_pvec, page)) |
| 115 | __pagevec_lru_add_file(&lru_pvec); | 115 | __pagevec_lru_add_file(&lru_pvec); |
| 116 | 116 | ||
| 117 | /* prevent the page from being discarded on memory pressure */ | ||
| 118 | SetPageDirty(page); | ||
| 119 | |||
| 117 | unlock_page(page); | 120 | unlock_page(page); |
| 118 | } | 121 | } |
| 119 | 122 | ||
| @@ -126,6 +129,7 @@ int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize) | |||
| 126 | return -EFBIG; | 129 | return -EFBIG; |
| 127 | 130 | ||
| 128 | add_error: | 131 | add_error: |
| 132 | pagevec_lru_add_file(&lru_pvec); | ||
| 129 | page_cache_release(pages + loop); | 133 | page_cache_release(pages + loop); |
| 130 | for (loop++; loop < npages; loop++) | 134 | for (loop++; loop < npages; loop++) |
| 131 | __free_page(pages + loop); | 135 | __free_page(pages + loop); |
diff --git a/include/linux/bio.h b/include/linux/bio.h index 1b16108a5417..d8bd43bfdcf5 100644 --- a/include/linux/bio.h +++ b/include/linux/bio.h | |||
| @@ -531,7 +531,7 @@ extern void bio_integrity_endio(struct bio *, int); | |||
| 531 | extern void bio_integrity_advance(struct bio *, unsigned int); | 531 | extern void bio_integrity_advance(struct bio *, unsigned int); |
| 532 | extern void bio_integrity_trim(struct bio *, unsigned int, unsigned int); | 532 | extern void bio_integrity_trim(struct bio *, unsigned int, unsigned int); |
| 533 | extern void bio_integrity_split(struct bio *, struct bio_pair *, int); | 533 | extern void bio_integrity_split(struct bio *, struct bio_pair *, int); |
| 534 | extern int bio_integrity_clone(struct bio *, struct bio *, struct bio_set *); | 534 | extern int bio_integrity_clone(struct bio *, struct bio *, gfp_t, struct bio_set *); |
| 535 | extern int bioset_integrity_create(struct bio_set *, int); | 535 | extern int bioset_integrity_create(struct bio_set *, int); |
| 536 | extern void bioset_integrity_free(struct bio_set *); | 536 | extern void bioset_integrity_free(struct bio_set *); |
| 537 | extern void bio_integrity_init_slab(void); | 537 | extern void bio_integrity_init_slab(void); |
| @@ -542,7 +542,7 @@ extern void bio_integrity_init_slab(void); | |||
| 542 | #define bioset_integrity_create(a, b) (0) | 542 | #define bioset_integrity_create(a, b) (0) |
| 543 | #define bio_integrity_prep(a) (0) | 543 | #define bio_integrity_prep(a) (0) |
| 544 | #define bio_integrity_enabled(a) (0) | 544 | #define bio_integrity_enabled(a) (0) |
| 545 | #define bio_integrity_clone(a, b, c) (0) | 545 | #define bio_integrity_clone(a, b, c,d ) (0) |
| 546 | #define bioset_integrity_free(a) do { } while (0) | 546 | #define bioset_integrity_free(a) do { } while (0) |
| 547 | #define bio_integrity_free(a, b) do { } while (0) | 547 | #define bio_integrity_free(a, b) do { } while (0) |
| 548 | #define bio_integrity_endio(a, b) do { } while (0) | 548 | #define bio_integrity_endio(a, b) do { } while (0) |
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index 1514d534deeb..a3ed7cb8ca34 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h | |||
| @@ -52,7 +52,15 @@ | |||
| 52 | #define __deprecated __attribute__((deprecated)) | 52 | #define __deprecated __attribute__((deprecated)) |
| 53 | #define __packed __attribute__((packed)) | 53 | #define __packed __attribute__((packed)) |
| 54 | #define __weak __attribute__((weak)) | 54 | #define __weak __attribute__((weak)) |
| 55 | #define __naked __attribute__((naked)) | 55 | |
| 56 | /* | ||
| 57 | * it doesn't make sense on ARM (currently the only user of __naked) to trace | ||
| 58 | * naked functions because then mcount is called without stack and frame pointer | ||
| 59 | * being set up and there is no chance to restore the lr register to the value | ||
| 60 | * before mcount was called. | ||
| 61 | */ | ||
| 62 | #define __naked __attribute__((naked)) notrace | ||
| 63 | |||
| 56 | #define __noreturn __attribute__((noreturn)) | 64 | #define __noreturn __attribute__((noreturn)) |
| 57 | 65 | ||
| 58 | /* | 66 | /* |
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index 6dc1c652447e..db3fed630db3 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h | |||
| @@ -145,7 +145,6 @@ enum { | |||
| 145 | }; | 145 | }; |
| 146 | 146 | ||
| 147 | struct dyn_ftrace { | 147 | struct dyn_ftrace { |
| 148 | struct list_head list; | ||
| 149 | unsigned long ip; /* address of mcount call-site */ | 148 | unsigned long ip; /* address of mcount call-site */ |
| 150 | unsigned long flags; | 149 | unsigned long flags; |
| 151 | struct dyn_arch_ftrace arch; | 150 | struct dyn_arch_ftrace arch; |
diff --git a/include/linux/ide.h b/include/linux/ide.h index e0cedfe9fad4..25087aead657 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
| @@ -797,6 +797,7 @@ typedef struct hwif_s { | |||
| 797 | struct scatterlist *sg_table; | 797 | struct scatterlist *sg_table; |
| 798 | int sg_max_nents; /* Maximum number of entries in it */ | 798 | int sg_max_nents; /* Maximum number of entries in it */ |
| 799 | int sg_nents; /* Current number of entries in it */ | 799 | int sg_nents; /* Current number of entries in it */ |
| 800 | int orig_sg_nents; | ||
| 800 | int sg_dma_direction; /* dma transfer direction */ | 801 | int sg_dma_direction; /* dma transfer direction */ |
| 801 | 802 | ||
| 802 | /* data phase of the active command (currently only valid for PIO/DMA) */ | 803 | /* data phase of the active command (currently only valid for PIO/DMA) */ |
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 472f11765f60..9b7e9d743476 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
| @@ -258,6 +258,11 @@ enum | |||
| 258 | NR_SOFTIRQS | 258 | NR_SOFTIRQS |
| 259 | }; | 259 | }; |
| 260 | 260 | ||
| 261 | /* map softirq index to softirq name. update 'softirq_to_name' in | ||
| 262 | * kernel/softirq.c when adding a new softirq. | ||
| 263 | */ | ||
| 264 | extern char *softirq_to_name[NR_SOFTIRQS]; | ||
| 265 | |||
| 261 | /* softirq mask and active fields moved to irq_cpustat_t in | 266 | /* softirq mask and active fields moved to irq_cpustat_t in |
| 262 | * asm/hardirq.h to get better cache usage. KAO | 267 | * asm/hardirq.h to get better cache usage. KAO |
| 263 | */ | 268 | */ |
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 7742798c9208..1daca3b062bb 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
| @@ -452,32 +452,46 @@ do { \ | |||
| 452 | 452 | ||
| 453 | #define trace_printk(fmt, args...) \ | 453 | #define trace_printk(fmt, args...) \ |
| 454 | do { \ | 454 | do { \ |
| 455 | static const char *trace_printk_fmt \ | ||
| 456 | __attribute__((section("__trace_printk_fmt"))); \ | ||
| 457 | \ | ||
| 458 | if (!trace_printk_fmt) \ | ||
| 459 | trace_printk_fmt = fmt; \ | ||
| 460 | \ | ||
| 461 | __trace_printk_check_format(fmt, ##args); \ | 455 | __trace_printk_check_format(fmt, ##args); \ |
| 462 | __trace_printk(_THIS_IP_, trace_printk_fmt, ##args); \ | 456 | if (__builtin_constant_p(fmt)) { \ |
| 457 | static const char *trace_printk_fmt \ | ||
| 458 | __attribute__((section("__trace_printk_fmt"))) = \ | ||
| 459 | __builtin_constant_p(fmt) ? fmt : NULL; \ | ||
| 460 | \ | ||
| 461 | __trace_bprintk(_THIS_IP_, trace_printk_fmt, ##args); \ | ||
| 462 | } else \ | ||
| 463 | __trace_printk(_THIS_IP_, fmt, ##args); \ | ||
| 463 | } while (0) | 464 | } while (0) |
| 464 | 465 | ||
| 465 | extern int | 466 | extern int |
| 467 | __trace_bprintk(unsigned long ip, const char *fmt, ...) | ||
| 468 | __attribute__ ((format (printf, 2, 3))); | ||
| 469 | |||
| 470 | extern int | ||
| 466 | __trace_printk(unsigned long ip, const char *fmt, ...) | 471 | __trace_printk(unsigned long ip, const char *fmt, ...) |
| 467 | __attribute__ ((format (printf, 2, 3))); | 472 | __attribute__ ((format (printf, 2, 3))); |
| 468 | 473 | ||
| 474 | /* | ||
| 475 | * The double __builtin_constant_p is because gcc will give us an error | ||
| 476 | * if we try to allocate the static variable to fmt if it is not a | ||
| 477 | * constant. Even with the outer if statement. | ||
| 478 | */ | ||
| 469 | #define ftrace_vprintk(fmt, vargs) \ | 479 | #define ftrace_vprintk(fmt, vargs) \ |
| 470 | do { \ | 480 | do { \ |
| 471 | static const char *trace_printk_fmt \ | 481 | if (__builtin_constant_p(fmt)) { \ |
| 472 | __attribute__((section("__trace_printk_fmt"))); \ | 482 | static const char *trace_printk_fmt \ |
| 473 | \ | 483 | __attribute__((section("__trace_printk_fmt"))) = \ |
| 474 | if (!trace_printk_fmt) \ | 484 | __builtin_constant_p(fmt) ? fmt : NULL; \ |
| 475 | trace_printk_fmt = fmt; \ | ||
| 476 | \ | 485 | \ |
| 477 | __ftrace_vprintk(_THIS_IP_, trace_printk_fmt, vargs); \ | 486 | __ftrace_vbprintk(_THIS_IP_, trace_printk_fmt, vargs); \ |
| 487 | } else \ | ||
| 488 | __ftrace_vprintk(_THIS_IP_, fmt, vargs); \ | ||
| 478 | } while (0) | 489 | } while (0) |
| 479 | 490 | ||
| 480 | extern int | 491 | extern int |
| 492 | __ftrace_vbprintk(unsigned long ip, const char *fmt, va_list ap); | ||
| 493 | |||
| 494 | extern int | ||
| 481 | __ftrace_vprintk(unsigned long ip, const char *fmt, va_list ap); | 495 | __ftrace_vprintk(unsigned long ip, const char *fmt, va_list ap); |
| 482 | 496 | ||
| 483 | extern void ftrace_dump(void); | 497 | extern void ftrace_dump(void); |
diff --git a/include/linux/lockd/lockd.h b/include/linux/lockd/lockd.h index aa6fe7026de7..51855dfd8adb 100644 --- a/include/linux/lockd/lockd.h +++ b/include/linux/lockd/lockd.h | |||
| @@ -346,6 +346,7 @@ static inline int __nlm_cmp_addr4(const struct sockaddr *sap1, | |||
| 346 | return sin1->sin_addr.s_addr == sin2->sin_addr.s_addr; | 346 | return sin1->sin_addr.s_addr == sin2->sin_addr.s_addr; |
| 347 | } | 347 | } |
| 348 | 348 | ||
| 349 | #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) | ||
| 349 | static inline int __nlm_cmp_addr6(const struct sockaddr *sap1, | 350 | static inline int __nlm_cmp_addr6(const struct sockaddr *sap1, |
| 350 | const struct sockaddr *sap2) | 351 | const struct sockaddr *sap2) |
| 351 | { | 352 | { |
| @@ -353,6 +354,13 @@ static inline int __nlm_cmp_addr6(const struct sockaddr *sap1, | |||
| 353 | const struct sockaddr_in6 *sin2 = (const struct sockaddr_in6 *)sap2; | 354 | const struct sockaddr_in6 *sin2 = (const struct sockaddr_in6 *)sap2; |
| 354 | return ipv6_addr_equal(&sin1->sin6_addr, &sin2->sin6_addr); | 355 | return ipv6_addr_equal(&sin1->sin6_addr, &sin2->sin6_addr); |
| 355 | } | 356 | } |
| 357 | #else /* !(CONFIG_IPV6 || CONFIG_IPV6_MODULE) */ | ||
| 358 | static inline int __nlm_cmp_addr6(const struct sockaddr *sap1, | ||
| 359 | const struct sockaddr *sap2) | ||
| 360 | { | ||
| 361 | return 0; | ||
| 362 | } | ||
| 363 | #endif /* !(CONFIG_IPV6 || CONFIG_IPV6_MODULE) */ | ||
| 356 | 364 | ||
| 357 | /* | 365 | /* |
| 358 | * Compare two host addresses | 366 | * Compare two host addresses |
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index a550b528319f..2e5f00066afd 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
| @@ -406,6 +406,8 @@ struct nfs3_setaclargs { | |||
| 406 | int mask; | 406 | int mask; |
| 407 | struct posix_acl * acl_access; | 407 | struct posix_acl * acl_access; |
| 408 | struct posix_acl * acl_default; | 408 | struct posix_acl * acl_default; |
| 409 | size_t len; | ||
| 410 | unsigned int npages; | ||
| 409 | struct page ** pages; | 411 | struct page ** pages; |
| 410 | }; | 412 | }; |
| 411 | 413 | ||
diff --git a/include/linux/nfsacl.h b/include/linux/nfsacl.h index 54487a99beb8..43011b69297c 100644 --- a/include/linux/nfsacl.h +++ b/include/linux/nfsacl.h | |||
| @@ -37,6 +37,9 @@ | |||
| 37 | #define NFSACL_MAXPAGES ((2*(8+12*NFS_ACL_MAX_ENTRIES) + PAGE_SIZE-1) \ | 37 | #define NFSACL_MAXPAGES ((2*(8+12*NFS_ACL_MAX_ENTRIES) + PAGE_SIZE-1) \ |
| 38 | >> PAGE_SHIFT) | 38 | >> PAGE_SHIFT) |
| 39 | 39 | ||
| 40 | #define NFS_ACL_MAX_ENTRIES_INLINE (5) | ||
| 41 | #define NFS_ACL_INLINE_BUFSIZE ((2*(2+3*NFS_ACL_MAX_ENTRIES_INLINE)) << 2) | ||
| 42 | |||
| 40 | static inline unsigned int | 43 | static inline unsigned int |
| 41 | nfsacl_size(struct posix_acl *acl_access, struct posix_acl *acl_default) | 44 | nfsacl_size(struct posix_acl *acl_access, struct posix_acl *acl_default) |
| 42 | { | 45 | { |
diff --git a/include/scsi/fc/fc_fcoe.h b/include/scsi/fc/fc_fcoe.h index 57aaa8f0d613..f271d9cc0fc2 100644 --- a/include/scsi/fc/fc_fcoe.h +++ b/include/scsi/fc/fc_fcoe.h | |||
| @@ -31,10 +31,6 @@ | |||
| 31 | #define ETH_P_FCOE 0x8906 /* FCOE ether type */ | 31 | #define ETH_P_FCOE 0x8906 /* FCOE ether type */ |
| 32 | #endif | 32 | #endif |
| 33 | 33 | ||
| 34 | #ifndef ETH_P_8021Q | ||
| 35 | #define ETH_P_8021Q 0x8100 | ||
| 36 | #endif | ||
| 37 | |||
| 38 | /* | 34 | /* |
| 39 | * FC_FCOE_OUI hasn't been standardized yet. XXX TBD. | 35 | * FC_FCOE_OUI hasn't been standardized yet. XXX TBD. |
| 40 | */ | 36 | */ |
diff --git a/include/scsi/fc/fc_fs.h b/include/scsi/fc/fc_fs.h index 3e4801d2bdbb..1b7af3a64c7c 100644 --- a/include/scsi/fc/fc_fs.h +++ b/include/scsi/fc/fc_fs.h | |||
| @@ -337,4 +337,9 @@ enum fc_pf_rjt_reason { | |||
| 337 | FC_RJT_VENDOR = 0xff, /* vendor specific reject */ | 337 | FC_RJT_VENDOR = 0xff, /* vendor specific reject */ |
| 338 | }; | 338 | }; |
| 339 | 339 | ||
| 340 | /* default timeout values */ | ||
| 341 | |||
| 342 | #define FC_DEF_E_D_TOV 2000UL | ||
| 343 | #define FC_DEF_R_A_TOV 10000UL | ||
| 344 | |||
| 340 | #endif /* _FC_FS_H_ */ | 345 | #endif /* _FC_FS_H_ */ |
diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h index 9f2876397dda..a2e126b86e3e 100644 --- a/include/scsi/libfc.h +++ b/include/scsi/libfc.h | |||
| @@ -68,9 +68,6 @@ | |||
| 68 | /* | 68 | /* |
| 69 | * FC HBA status | 69 | * FC HBA status |
| 70 | */ | 70 | */ |
| 71 | #define FC_PAUSE (1 << 1) | ||
| 72 | #define FC_LINK_UP (1 << 0) | ||
| 73 | |||
| 74 | enum fc_lport_state { | 71 | enum fc_lport_state { |
| 75 | LPORT_ST_NONE = 0, | 72 | LPORT_ST_NONE = 0, |
| 76 | LPORT_ST_FLOGI, | 73 | LPORT_ST_FLOGI, |
| @@ -339,31 +336,17 @@ struct fc_exch { | |||
| 339 | 336 | ||
| 340 | struct libfc_function_template { | 337 | struct libfc_function_template { |
| 341 | 338 | ||
| 342 | /** | ||
| 343 | * Mandatory Fields | ||
| 344 | * | ||
| 345 | * These handlers must be implemented by the LLD. | ||
| 346 | */ | ||
| 347 | |||
| 348 | /* | 339 | /* |
| 349 | * Interface to send a FC frame | 340 | * Interface to send a FC frame |
| 350 | */ | ||
| 351 | int (*frame_send)(struct fc_lport *lp, struct fc_frame *fp); | ||
| 352 | |||
| 353 | /** | ||
| 354 | * Optional Fields | ||
| 355 | * | 341 | * |
| 356 | * The LLD may choose to implement any of the following handlers. | 342 | * STATUS: REQUIRED |
| 357 | * If LLD doesn't specify hander and leaves its pointer NULL then | ||
| 358 | * the default libfc function will be used for that handler. | ||
| 359 | */ | ||
| 360 | |||
| 361 | /** | ||
| 362 | * ELS/CT interfaces | ||
| 363 | */ | 343 | */ |
| 344 | int (*frame_send)(struct fc_lport *lp, struct fc_frame *fp); | ||
| 364 | 345 | ||
| 365 | /* | 346 | /* |
| 366 | * elsct_send - sends ELS/CT frame | 347 | * Interface to send ELS/CT frames |
| 348 | * | ||
| 349 | * STATUS: OPTIONAL | ||
| 367 | */ | 350 | */ |
| 368 | struct fc_seq *(*elsct_send)(struct fc_lport *lport, | 351 | struct fc_seq *(*elsct_send)(struct fc_lport *lport, |
| 369 | struct fc_rport *rport, | 352 | struct fc_rport *rport, |
| @@ -373,9 +356,6 @@ struct libfc_function_template { | |||
| 373 | struct fc_frame *fp, | 356 | struct fc_frame *fp, |
| 374 | void *arg), | 357 | void *arg), |
| 375 | void *arg, u32 timer_msec); | 358 | void *arg, u32 timer_msec); |
| 376 | /** | ||
| 377 | * Exhance Manager interfaces | ||
| 378 | */ | ||
| 379 | 359 | ||
| 380 | /* | 360 | /* |
| 381 | * Send the FC frame payload using a new exchange and sequence. | 361 | * Send the FC frame payload using a new exchange and sequence. |
| @@ -407,6 +387,8 @@ struct libfc_function_template { | |||
| 407 | * timer_msec argument is specified. The timer is canceled when | 387 | * timer_msec argument is specified. The timer is canceled when |
| 408 | * it fires or when the exchange is done. The exchange timeout handler | 388 | * it fires or when the exchange is done. The exchange timeout handler |
| 409 | * is registered by EM layer. | 389 | * is registered by EM layer. |
| 390 | * | ||
| 391 | * STATUS: OPTIONAL | ||
| 410 | */ | 392 | */ |
| 411 | struct fc_seq *(*exch_seq_send)(struct fc_lport *lp, | 393 | struct fc_seq *(*exch_seq_send)(struct fc_lport *lp, |
| 412 | struct fc_frame *fp, | 394 | struct fc_frame *fp, |
| @@ -418,14 +400,18 @@ struct libfc_function_template { | |||
| 418 | void *arg, unsigned int timer_msec); | 400 | void *arg, unsigned int timer_msec); |
| 419 | 401 | ||
| 420 | /* | 402 | /* |
| 421 | * send a frame using existing sequence and exchange. | 403 | * Send a frame using an existing sequence and exchange. |
| 404 | * | ||
| 405 | * STATUS: OPTIONAL | ||
| 422 | */ | 406 | */ |
| 423 | int (*seq_send)(struct fc_lport *lp, struct fc_seq *sp, | 407 | int (*seq_send)(struct fc_lport *lp, struct fc_seq *sp, |
| 424 | struct fc_frame *fp); | 408 | struct fc_frame *fp); |
| 425 | 409 | ||
| 426 | /* | 410 | /* |
| 427 | * Send ELS response using mainly infomation | 411 | * Send an ELS response using infomation from a previous |
| 428 | * in exchange and sequence in EM layer. | 412 | * exchange and sequence. |
| 413 | * | ||
| 414 | * STATUS: OPTIONAL | ||
| 429 | */ | 415 | */ |
| 430 | void (*seq_els_rsp_send)(struct fc_seq *sp, enum fc_els_cmd els_cmd, | 416 | void (*seq_els_rsp_send)(struct fc_seq *sp, enum fc_els_cmd els_cmd, |
| 431 | struct fc_seq_els_data *els_data); | 417 | struct fc_seq_els_data *els_data); |
| @@ -437,6 +423,8 @@ struct libfc_function_template { | |||
| 437 | * A timer_msec can be specified for abort timeout, if non-zero | 423 | * A timer_msec can be specified for abort timeout, if non-zero |
| 438 | * timer_msec value is specified then exchange resp handler | 424 | * timer_msec value is specified then exchange resp handler |
| 439 | * will be called with timeout error if no response to abort. | 425 | * will be called with timeout error if no response to abort. |
| 426 | * | ||
| 427 | * STATUS: OPTIONAL | ||
| 440 | */ | 428 | */ |
| 441 | int (*seq_exch_abort)(const struct fc_seq *req_sp, | 429 | int (*seq_exch_abort)(const struct fc_seq *req_sp, |
| 442 | unsigned int timer_msec); | 430 | unsigned int timer_msec); |
| @@ -444,6 +432,8 @@ struct libfc_function_template { | |||
| 444 | /* | 432 | /* |
| 445 | * Indicate that an exchange/sequence tuple is complete and the memory | 433 | * Indicate that an exchange/sequence tuple is complete and the memory |
| 446 | * allocated for the related objects may be freed. | 434 | * allocated for the related objects may be freed. |
| 435 | * | ||
| 436 | * STATUS: OPTIONAL | ||
| 447 | */ | 437 | */ |
| 448 | void (*exch_done)(struct fc_seq *sp); | 438 | void (*exch_done)(struct fc_seq *sp); |
| 449 | 439 | ||
| @@ -451,6 +441,8 @@ struct libfc_function_template { | |||
| 451 | * Assigns a EM and a free XID for an new exchange and then | 441 | * Assigns a EM and a free XID for an new exchange and then |
| 452 | * allocates a new exchange and sequence pair. | 442 | * allocates a new exchange and sequence pair. |
| 453 | * The fp can be used to determine free XID. | 443 | * The fp can be used to determine free XID. |
| 444 | * | ||
| 445 | * STATUS: OPTIONAL | ||
| 454 | */ | 446 | */ |
| 455 | struct fc_exch *(*exch_get)(struct fc_lport *lp, struct fc_frame *fp); | 447 | struct fc_exch *(*exch_get)(struct fc_lport *lp, struct fc_frame *fp); |
| 456 | 448 | ||
| @@ -458,12 +450,16 @@ struct libfc_function_template { | |||
| 458 | * Release previously assigned XID by exch_get API. | 450 | * Release previously assigned XID by exch_get API. |
| 459 | * The LLD may implement this if XID is assigned by LLD | 451 | * The LLD may implement this if XID is assigned by LLD |
| 460 | * in exch_get(). | 452 | * in exch_get(). |
| 453 | * | ||
| 454 | * STATUS: OPTIONAL | ||
| 461 | */ | 455 | */ |
| 462 | void (*exch_put)(struct fc_lport *lp, struct fc_exch_mgr *mp, | 456 | void (*exch_put)(struct fc_lport *lp, struct fc_exch_mgr *mp, |
| 463 | u16 ex_id); | 457 | u16 ex_id); |
| 464 | 458 | ||
| 465 | /* | 459 | /* |
| 466 | * Start a new sequence on the same exchange/sequence tuple. | 460 | * Start a new sequence on the same exchange/sequence tuple. |
| 461 | * | ||
| 462 | * STATUS: OPTIONAL | ||
| 467 | */ | 463 | */ |
| 468 | struct fc_seq *(*seq_start_next)(struct fc_seq *sp); | 464 | struct fc_seq *(*seq_start_next)(struct fc_seq *sp); |
| 469 | 465 | ||
| @@ -471,26 +467,38 @@ struct libfc_function_template { | |||
| 471 | * Reset an exchange manager, completing all sequences and exchanges. | 467 | * Reset an exchange manager, completing all sequences and exchanges. |
| 472 | * If s_id is non-zero, reset only exchanges originating from that FID. | 468 | * If s_id is non-zero, reset only exchanges originating from that FID. |
| 473 | * If d_id is non-zero, reset only exchanges sending to that FID. | 469 | * If d_id is non-zero, reset only exchanges sending to that FID. |
| 470 | * | ||
| 471 | * STATUS: OPTIONAL | ||
| 474 | */ | 472 | */ |
| 475 | void (*exch_mgr_reset)(struct fc_exch_mgr *, | 473 | void (*exch_mgr_reset)(struct fc_lport *, |
| 476 | u32 s_id, u32 d_id); | 474 | u32 s_id, u32 d_id); |
| 477 | 475 | ||
| 478 | void (*rport_flush_queue)(void); | 476 | /* |
| 479 | /** | 477 | * Flush the rport work queue. Generally used before shutdown. |
| 480 | * Local Port interfaces | 478 | * |
| 479 | * STATUS: OPTIONAL | ||
| 481 | */ | 480 | */ |
| 481 | void (*rport_flush_queue)(void); | ||
| 482 | 482 | ||
| 483 | /* | 483 | /* |
| 484 | * Receive a frame to a local port. | 484 | * Receive a frame for a local port. |
| 485 | * | ||
| 486 | * STATUS: OPTIONAL | ||
| 485 | */ | 487 | */ |
| 486 | void (*lport_recv)(struct fc_lport *lp, struct fc_seq *sp, | 488 | void (*lport_recv)(struct fc_lport *lp, struct fc_seq *sp, |
| 487 | struct fc_frame *fp); | 489 | struct fc_frame *fp); |
| 488 | 490 | ||
| 491 | /* | ||
| 492 | * Reset the local port. | ||
| 493 | * | ||
| 494 | * STATUS: OPTIONAL | ||
| 495 | */ | ||
| 489 | int (*lport_reset)(struct fc_lport *); | 496 | int (*lport_reset)(struct fc_lport *); |
| 490 | 497 | ||
| 491 | /** | 498 | /* |
| 492 | * Remote Port interfaces | 499 | * Create a remote port |
| 493 | */ | 500 | */ |
| 501 | struct fc_rport *(*rport_create)(struct fc_disc_port *); | ||
| 494 | 502 | ||
| 495 | /* | 503 | /* |
| 496 | * Initiates the RP state machine. It is called from the LP module. | 504 | * Initiates the RP state machine. It is called from the LP module. |
| @@ -500,26 +508,33 @@ struct libfc_function_template { | |||
| 500 | * - PLOGI | 508 | * - PLOGI |
| 501 | * - PRLI | 509 | * - PRLI |
| 502 | * - RTV | 510 | * - RTV |
| 511 | * | ||
| 512 | * STATUS: OPTIONAL | ||
| 503 | */ | 513 | */ |
| 504 | int (*rport_login)(struct fc_rport *rport); | 514 | int (*rport_login)(struct fc_rport *rport); |
| 505 | 515 | ||
| 506 | /* | 516 | /* |
| 507 | * Logoff, and remove the rport from the transport if | 517 | * Logoff, and remove the rport from the transport if |
| 508 | * it had been added. This will send a LOGO to the target. | 518 | * it had been added. This will send a LOGO to the target. |
| 519 | * | ||
| 520 | * STATUS: OPTIONAL | ||
| 509 | */ | 521 | */ |
| 510 | int (*rport_logoff)(struct fc_rport *rport); | 522 | int (*rport_logoff)(struct fc_rport *rport); |
| 511 | 523 | ||
| 512 | /* | 524 | /* |
| 513 | * Recieve a request from a remote port. | 525 | * Recieve a request from a remote port. |
| 526 | * | ||
| 527 | * STATUS: OPTIONAL | ||
| 514 | */ | 528 | */ |
| 515 | void (*rport_recv_req)(struct fc_seq *, struct fc_frame *, | 529 | void (*rport_recv_req)(struct fc_seq *, struct fc_frame *, |
| 516 | struct fc_rport *); | 530 | struct fc_rport *); |
| 517 | 531 | ||
| 518 | struct fc_rport *(*rport_lookup)(const struct fc_lport *, u32); | 532 | /* |
| 519 | 533 | * lookup an rport by it's port ID. | |
| 520 | /** | 534 | * |
| 521 | * FCP interfaces | 535 | * STATUS: OPTIONAL |
| 522 | */ | 536 | */ |
| 537 | struct fc_rport *(*rport_lookup)(const struct fc_lport *, u32); | ||
| 523 | 538 | ||
| 524 | /* | 539 | /* |
| 525 | * Send a fcp cmd from fsp pkt. | 540 | * Send a fcp cmd from fsp pkt. |
| @@ -527,30 +542,38 @@ struct libfc_function_template { | |||
| 527 | * | 542 | * |
| 528 | * The resp handler is called when FCP_RSP received. | 543 | * The resp handler is called when FCP_RSP received. |
| 529 | * | 544 | * |
| 545 | * STATUS: OPTIONAL | ||
| 530 | */ | 546 | */ |
| 531 | int (*fcp_cmd_send)(struct fc_lport *lp, struct fc_fcp_pkt *fsp, | 547 | int (*fcp_cmd_send)(struct fc_lport *lp, struct fc_fcp_pkt *fsp, |
| 532 | void (*resp)(struct fc_seq *, struct fc_frame *fp, | 548 | void (*resp)(struct fc_seq *, struct fc_frame *fp, |
| 533 | void *arg)); | 549 | void *arg)); |
| 534 | 550 | ||
| 535 | /* | 551 | /* |
| 536 | * Used at least durring linkdown and reset | 552 | * Cleanup the FCP layer, used durring link down and reset |
| 553 | * | ||
| 554 | * STATUS: OPTIONAL | ||
| 537 | */ | 555 | */ |
| 538 | void (*fcp_cleanup)(struct fc_lport *lp); | 556 | void (*fcp_cleanup)(struct fc_lport *lp); |
| 539 | 557 | ||
| 540 | /* | 558 | /* |
| 541 | * Abort all I/O on a local port | 559 | * Abort all I/O on a local port |
| 560 | * | ||
| 561 | * STATUS: OPTIONAL | ||
| 542 | */ | 562 | */ |
| 543 | void (*fcp_abort_io)(struct fc_lport *lp); | 563 | void (*fcp_abort_io)(struct fc_lport *lp); |
| 544 | 564 | ||
| 545 | /** | 565 | /* |
| 546 | * Discovery interfaces | 566 | * Receive a request for the discovery layer. |
| 567 | * | ||
| 568 | * STATUS: OPTIONAL | ||
| 547 | */ | 569 | */ |
| 548 | |||
| 549 | void (*disc_recv_req)(struct fc_seq *, | 570 | void (*disc_recv_req)(struct fc_seq *, |
| 550 | struct fc_frame *, struct fc_lport *); | 571 | struct fc_frame *, struct fc_lport *); |
| 551 | 572 | ||
| 552 | /* | 573 | /* |
| 553 | * Start discovery for a local port. | 574 | * Start discovery for a local port. |
| 575 | * | ||
| 576 | * STATUS: OPTIONAL | ||
| 554 | */ | 577 | */ |
| 555 | void (*disc_start)(void (*disc_callback)(struct fc_lport *, | 578 | void (*disc_start)(void (*disc_callback)(struct fc_lport *, |
| 556 | enum fc_disc_event), | 579 | enum fc_disc_event), |
| @@ -559,6 +582,8 @@ struct libfc_function_template { | |||
| 559 | /* | 582 | /* |
| 560 | * Stop discovery for a given lport. This will remove | 583 | * Stop discovery for a given lport. This will remove |
| 561 | * all discovered rports | 584 | * all discovered rports |
| 585 | * | ||
| 586 | * STATUS: OPTIONAL | ||
| 562 | */ | 587 | */ |
| 563 | void (*disc_stop) (struct fc_lport *); | 588 | void (*disc_stop) (struct fc_lport *); |
| 564 | 589 | ||
| @@ -566,6 +591,8 @@ struct libfc_function_template { | |||
| 566 | * Stop discovery for a given lport. This will block | 591 | * Stop discovery for a given lport. This will block |
| 567 | * until all discovered rports are deleted from the | 592 | * until all discovered rports are deleted from the |
| 568 | * FC transport class | 593 | * FC transport class |
| 594 | * | ||
| 595 | * STATUS: OPTIONAL | ||
| 569 | */ | 596 | */ |
| 570 | void (*disc_stop_final) (struct fc_lport *); | 597 | void (*disc_stop_final) (struct fc_lport *); |
| 571 | }; | 598 | }; |
| @@ -603,7 +630,8 @@ struct fc_lport { | |||
| 603 | 630 | ||
| 604 | /* Operational Information */ | 631 | /* Operational Information */ |
| 605 | struct libfc_function_template tt; | 632 | struct libfc_function_template tt; |
| 606 | u16 link_status; | 633 | u8 link_up; |
| 634 | u8 qfull; | ||
| 607 | enum fc_lport_state state; | 635 | enum fc_lport_state state; |
| 608 | unsigned long boot_time; | 636 | unsigned long boot_time; |
| 609 | 637 | ||
| @@ -637,7 +665,7 @@ struct fc_lport { | |||
| 637 | struct delayed_work disc_work; | 665 | struct delayed_work disc_work; |
| 638 | }; | 666 | }; |
| 639 | 667 | ||
| 640 | /** | 668 | /* |
| 641 | * FC_LPORT HELPER FUNCTIONS | 669 | * FC_LPORT HELPER FUNCTIONS |
| 642 | *****************************/ | 670 | *****************************/ |
| 643 | static inline void *lport_priv(const struct fc_lport *lp) | 671 | static inline void *lport_priv(const struct fc_lport *lp) |
| @@ -669,7 +697,7 @@ static inline void fc_lport_state_enter(struct fc_lport *lp, | |||
| 669 | } | 697 | } |
| 670 | 698 | ||
| 671 | 699 | ||
| 672 | /** | 700 | /* |
| 673 | * LOCAL PORT LAYER | 701 | * LOCAL PORT LAYER |
| 674 | *****************************/ | 702 | *****************************/ |
| 675 | int fc_lport_init(struct fc_lport *lp); | 703 | int fc_lport_init(struct fc_lport *lp); |
| @@ -704,12 +732,6 @@ void fc_linkup(struct fc_lport *); | |||
| 704 | void fc_linkdown(struct fc_lport *); | 732 | void fc_linkdown(struct fc_lport *); |
| 705 | 733 | ||
| 706 | /* | 734 | /* |
| 707 | * Pause and unpause traffic. | ||
| 708 | */ | ||
| 709 | void fc_pause(struct fc_lport *); | ||
| 710 | void fc_unpause(struct fc_lport *); | ||
| 711 | |||
| 712 | /* | ||
| 713 | * Configure the local port. | 735 | * Configure the local port. |
| 714 | */ | 736 | */ |
| 715 | int fc_lport_config(struct fc_lport *); | 737 | int fc_lport_config(struct fc_lport *); |
| @@ -725,19 +747,19 @@ int fc_lport_reset(struct fc_lport *); | |||
| 725 | int fc_set_mfs(struct fc_lport *lp, u32 mfs); | 747 | int fc_set_mfs(struct fc_lport *lp, u32 mfs); |
| 726 | 748 | ||
| 727 | 749 | ||
| 728 | /** | 750 | /* |
| 729 | * REMOTE PORT LAYER | 751 | * REMOTE PORT LAYER |
| 730 | *****************************/ | 752 | *****************************/ |
| 731 | int fc_rport_init(struct fc_lport *lp); | 753 | int fc_rport_init(struct fc_lport *lp); |
| 732 | void fc_rport_terminate_io(struct fc_rport *rp); | 754 | void fc_rport_terminate_io(struct fc_rport *rp); |
| 733 | 755 | ||
| 734 | /** | 756 | /* |
| 735 | * DISCOVERY LAYER | 757 | * DISCOVERY LAYER |
| 736 | *****************************/ | 758 | *****************************/ |
| 737 | int fc_disc_init(struct fc_lport *lp); | 759 | int fc_disc_init(struct fc_lport *lp); |
| 738 | 760 | ||
| 739 | 761 | ||
| 740 | /** | 762 | /* |
| 741 | * SCSI LAYER | 763 | * SCSI LAYER |
| 742 | *****************************/ | 764 | *****************************/ |
| 743 | /* | 765 | /* |
| @@ -798,7 +820,7 @@ int fc_change_queue_type(struct scsi_device *sdev, int tag_type); | |||
| 798 | */ | 820 | */ |
| 799 | void fc_fcp_destroy(struct fc_lport *); | 821 | void fc_fcp_destroy(struct fc_lport *); |
| 800 | 822 | ||
| 801 | /** | 823 | /* |
| 802 | * ELS/CT interface | 824 | * ELS/CT interface |
| 803 | *****************************/ | 825 | *****************************/ |
| 804 | /* | 826 | /* |
| @@ -807,7 +829,7 @@ void fc_fcp_destroy(struct fc_lport *); | |||
| 807 | int fc_elsct_init(struct fc_lport *lp); | 829 | int fc_elsct_init(struct fc_lport *lp); |
| 808 | 830 | ||
| 809 | 831 | ||
| 810 | /** | 832 | /* |
| 811 | * EXCHANGE MANAGER LAYER | 833 | * EXCHANGE MANAGER LAYER |
| 812 | *****************************/ | 834 | *****************************/ |
| 813 | /* | 835 | /* |
| @@ -916,7 +938,7 @@ struct fc_seq *fc_seq_start_next(struct fc_seq *sp); | |||
| 916 | * If s_id is non-zero, reset only exchanges originating from that FID. | 938 | * If s_id is non-zero, reset only exchanges originating from that FID. |
| 917 | * If d_id is non-zero, reset only exchanges sending to that FID. | 939 | * If d_id is non-zero, reset only exchanges sending to that FID. |
| 918 | */ | 940 | */ |
| 919 | void fc_exch_mgr_reset(struct fc_exch_mgr *, u32 s_id, u32 d_id); | 941 | void fc_exch_mgr_reset(struct fc_lport *, u32 s_id, u32 d_id); |
| 920 | 942 | ||
| 921 | /* | 943 | /* |
| 922 | * Functions for fc_functions_template | 944 | * Functions for fc_functions_template |
diff --git a/include/scsi/libfcoe.h b/include/scsi/libfcoe.h index 89fdbb9a6a1b..941818f29f59 100644 --- a/include/scsi/libfcoe.h +++ b/include/scsi/libfcoe.h | |||
| @@ -46,6 +46,7 @@ struct fcoe_softc { | |||
| 46 | struct net_device *phys_dev; /* device with ethtool_ops */ | 46 | struct net_device *phys_dev; /* device with ethtool_ops */ |
| 47 | struct packet_type fcoe_packet_type; | 47 | struct packet_type fcoe_packet_type; |
| 48 | struct sk_buff_head fcoe_pending_queue; | 48 | struct sk_buff_head fcoe_pending_queue; |
| 49 | u8 fcoe_pending_queue_active; | ||
| 49 | 50 | ||
| 50 | u8 dest_addr[ETH_ALEN]; | 51 | u8 dest_addr[ETH_ALEN]; |
| 51 | u8 ctl_src_addr[ETH_ALEN]; | 52 | u8 ctl_src_addr[ETH_ALEN]; |
| @@ -58,16 +59,10 @@ struct fcoe_softc { | |||
| 58 | u8 address_mode; | 59 | u8 address_mode; |
| 59 | }; | 60 | }; |
| 60 | 61 | ||
| 61 | static inline struct fcoe_softc *fcoe_softc( | ||
| 62 | const struct fc_lport *lp) | ||
| 63 | { | ||
| 64 | return (struct fcoe_softc *)lport_priv(lp); | ||
| 65 | } | ||
| 66 | |||
| 67 | static inline struct net_device *fcoe_netdev( | 62 | static inline struct net_device *fcoe_netdev( |
| 68 | const struct fc_lport *lp) | 63 | const struct fc_lport *lp) |
| 69 | { | 64 | { |
| 70 | return fcoe_softc(lp)->real_dev; | 65 | return ((struct fcoe_softc *)lport_priv(lp))->real_dev; |
| 71 | } | 66 | } |
| 72 | 67 | ||
| 73 | static inline struct fcoe_hdr *skb_fcoe_header(const struct sk_buff *skb) | 68 | static inline struct fcoe_hdr *skb_fcoe_header(const struct sk_buff *skb) |
diff --git a/include/trace/irq_event_types.h b/include/trace/irq_event_types.h index 214bb928fe9e..85964ebd47ec 100644 --- a/include/trace/irq_event_types.h +++ b/include/trace/irq_event_types.h | |||
| @@ -40,4 +40,16 @@ TRACE_EVENT(irq_handler_exit, | |||
| 40 | __entry->irq, __entry->ret ? "handled" : "unhandled") | 40 | __entry->irq, __entry->ret ? "handled" : "unhandled") |
| 41 | ); | 41 | ); |
| 42 | 42 | ||
| 43 | TRACE_FORMAT(softirq_entry, | ||
| 44 | TP_PROTO(struct softirq_action *h, struct softirq_action *vec), | ||
| 45 | TP_ARGS(h, vec), | ||
| 46 | TP_FMT("softirq=%d action=%s", (int)(h - vec), softirq_to_name[h-vec]) | ||
| 47 | ); | ||
| 48 | |||
| 49 | TRACE_FORMAT(softirq_exit, | ||
| 50 | TP_PROTO(struct softirq_action *h, struct softirq_action *vec), | ||
| 51 | TP_ARGS(h, vec), | ||
| 52 | TP_FMT("softirq=%d action=%s", (int)(h - vec), softirq_to_name[h-vec]) | ||
| 53 | ); | ||
| 54 | |||
| 43 | #undef TRACE_SYSTEM | 55 | #undef TRACE_SYSTEM |
diff --git a/kernel/softirq.c b/kernel/softirq.c index 7571bcb71be4..65ff3e3961b4 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c | |||
| @@ -24,6 +24,7 @@ | |||
| 24 | #include <linux/ftrace.h> | 24 | #include <linux/ftrace.h> |
| 25 | #include <linux/smp.h> | 25 | #include <linux/smp.h> |
| 26 | #include <linux/tick.h> | 26 | #include <linux/tick.h> |
| 27 | #include <trace/irq.h> | ||
| 27 | 28 | ||
| 28 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
| 29 | /* | 30 | /* |
| @@ -53,6 +54,11 @@ static struct softirq_action softirq_vec[NR_SOFTIRQS] __cacheline_aligned_in_smp | |||
| 53 | 54 | ||
| 54 | static DEFINE_PER_CPU(struct task_struct *, ksoftirqd); | 55 | static DEFINE_PER_CPU(struct task_struct *, ksoftirqd); |
| 55 | 56 | ||
| 57 | char *softirq_to_name[NR_SOFTIRQS] = { | ||
| 58 | "HI", "TIMER", "NET_TX", "NET_RX", "BLOCK", | ||
| 59 | "TASKLET", "SCHED", "HRTIMER", "RCU" | ||
| 60 | }; | ||
| 61 | |||
| 56 | /* | 62 | /* |
| 57 | * we cannot loop indefinitely here to avoid userspace starvation, | 63 | * we cannot loop indefinitely here to avoid userspace starvation, |
| 58 | * but we also don't want to introduce a worst case 1/HZ latency | 64 | * but we also don't want to introduce a worst case 1/HZ latency |
| @@ -180,6 +186,9 @@ EXPORT_SYMBOL(local_bh_enable_ip); | |||
| 180 | */ | 186 | */ |
| 181 | #define MAX_SOFTIRQ_RESTART 10 | 187 | #define MAX_SOFTIRQ_RESTART 10 |
| 182 | 188 | ||
| 189 | DEFINE_TRACE(softirq_entry); | ||
| 190 | DEFINE_TRACE(softirq_exit); | ||
| 191 | |||
| 183 | asmlinkage void __do_softirq(void) | 192 | asmlinkage void __do_softirq(void) |
| 184 | { | 193 | { |
| 185 | struct softirq_action *h; | 194 | struct softirq_action *h; |
| @@ -206,12 +215,14 @@ restart: | |||
| 206 | if (pending & 1) { | 215 | if (pending & 1) { |
| 207 | int prev_count = preempt_count(); | 216 | int prev_count = preempt_count(); |
| 208 | 217 | ||
| 218 | trace_softirq_entry(h, softirq_vec); | ||
| 209 | h->action(h); | 219 | h->action(h); |
| 210 | 220 | trace_softirq_exit(h, softirq_vec); | |
| 211 | if (unlikely(prev_count != preempt_count())) { | 221 | if (unlikely(prev_count != preempt_count())) { |
| 212 | printk(KERN_ERR "huh, entered softirq %td %p" | 222 | printk(KERN_ERR "huh, entered softirq %td %s %p" |
| 213 | "with preempt_count %08x," | 223 | "with preempt_count %08x," |
| 214 | " exited with %08x?\n", h - softirq_vec, | 224 | " exited with %08x?\n", h - softirq_vec, |
| 225 | softirq_to_name[h - softirq_vec], | ||
| 215 | h->action, prev_count, preempt_count()); | 226 | h->action, prev_count, preempt_count()); |
| 216 | preempt_count() = prev_count; | 227 | preempt_count() = prev_count; |
| 217 | } | 228 | } |
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index d33d306bdcf4..90d5729afeff 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c | |||
| @@ -272,7 +272,7 @@ enum { | |||
| 272 | 272 | ||
| 273 | static int ftrace_filtered; | 273 | static int ftrace_filtered; |
| 274 | 274 | ||
| 275 | static LIST_HEAD(ftrace_new_addrs); | 275 | static struct dyn_ftrace *ftrace_new_addrs; |
| 276 | 276 | ||
| 277 | static DEFINE_MUTEX(ftrace_regex_lock); | 277 | static DEFINE_MUTEX(ftrace_regex_lock); |
| 278 | 278 | ||
| @@ -356,7 +356,8 @@ void ftrace_release(void *start, unsigned long size) | |||
| 356 | 356 | ||
| 357 | mutex_lock(&ftrace_lock); | 357 | mutex_lock(&ftrace_lock); |
| 358 | do_for_each_ftrace_rec(pg, rec) { | 358 | do_for_each_ftrace_rec(pg, rec) { |
| 359 | if ((rec->ip >= s) && (rec->ip < e)) | 359 | if ((rec->ip >= s) && (rec->ip < e) && |
| 360 | !(rec->flags & FTRACE_FL_FREE)) | ||
| 360 | ftrace_free_rec(rec); | 361 | ftrace_free_rec(rec); |
| 361 | } while_for_each_ftrace_rec(); | 362 | } while_for_each_ftrace_rec(); |
| 362 | mutex_unlock(&ftrace_lock); | 363 | mutex_unlock(&ftrace_lock); |
| @@ -408,8 +409,8 @@ ftrace_record_ip(unsigned long ip) | |||
| 408 | return NULL; | 409 | return NULL; |
| 409 | 410 | ||
| 410 | rec->ip = ip; | 411 | rec->ip = ip; |
| 411 | 412 | rec->flags = (unsigned long)ftrace_new_addrs; | |
| 412 | list_add(&rec->list, &ftrace_new_addrs); | 413 | ftrace_new_addrs = rec; |
| 413 | 414 | ||
| 414 | return rec; | 415 | return rec; |
| 415 | } | 416 | } |
| @@ -531,11 +532,12 @@ static void ftrace_replace_code(int enable) | |||
| 531 | 532 | ||
| 532 | do_for_each_ftrace_rec(pg, rec) { | 533 | do_for_each_ftrace_rec(pg, rec) { |
| 533 | /* | 534 | /* |
| 534 | * Skip over free records and records that have | 535 | * Skip over free records, records that have |
| 535 | * failed. | 536 | * failed and not converted. |
| 536 | */ | 537 | */ |
| 537 | if (rec->flags & FTRACE_FL_FREE || | 538 | if (rec->flags & FTRACE_FL_FREE || |
| 538 | rec->flags & FTRACE_FL_FAILED) | 539 | rec->flags & FTRACE_FL_FAILED || |
| 540 | rec->flags & FTRACE_FL_CONVERTED) | ||
| 539 | continue; | 541 | continue; |
| 540 | 542 | ||
| 541 | /* ignore updates to this record's mcount site */ | 543 | /* ignore updates to this record's mcount site */ |
| @@ -547,7 +549,7 @@ static void ftrace_replace_code(int enable) | |||
| 547 | } | 549 | } |
| 548 | 550 | ||
| 549 | failed = __ftrace_replace_code(rec, enable); | 551 | failed = __ftrace_replace_code(rec, enable); |
| 550 | if (failed && (rec->flags & FTRACE_FL_CONVERTED)) { | 552 | if (failed) { |
| 551 | rec->flags |= FTRACE_FL_FAILED; | 553 | rec->flags |= FTRACE_FL_FAILED; |
| 552 | if ((system_state == SYSTEM_BOOTING) || | 554 | if ((system_state == SYSTEM_BOOTING) || |
| 553 | !core_kernel_text(rec->ip)) { | 555 | !core_kernel_text(rec->ip)) { |
| @@ -714,19 +716,21 @@ unsigned long ftrace_update_tot_cnt; | |||
| 714 | 716 | ||
| 715 | static int ftrace_update_code(struct module *mod) | 717 | static int ftrace_update_code(struct module *mod) |
| 716 | { | 718 | { |
| 717 | struct dyn_ftrace *p, *t; | 719 | struct dyn_ftrace *p; |
| 718 | cycle_t start, stop; | 720 | cycle_t start, stop; |
| 719 | 721 | ||
| 720 | start = ftrace_now(raw_smp_processor_id()); | 722 | start = ftrace_now(raw_smp_processor_id()); |
| 721 | ftrace_update_cnt = 0; | 723 | ftrace_update_cnt = 0; |
| 722 | 724 | ||
| 723 | list_for_each_entry_safe(p, t, &ftrace_new_addrs, list) { | 725 | while (ftrace_new_addrs) { |
| 724 | 726 | ||
| 725 | /* If something went wrong, bail without enabling anything */ | 727 | /* If something went wrong, bail without enabling anything */ |
| 726 | if (unlikely(ftrace_disabled)) | 728 | if (unlikely(ftrace_disabled)) |
| 727 | return -1; | 729 | return -1; |
| 728 | 730 | ||
| 729 | list_del_init(&p->list); | 731 | p = ftrace_new_addrs; |
| 732 | ftrace_new_addrs = (struct dyn_ftrace *)p->flags; | ||
| 733 | p->flags = 0L; | ||
| 730 | 734 | ||
| 731 | /* convert record (i.e, patch mcount-call with NOP) */ | 735 | /* convert record (i.e, patch mcount-call with NOP) */ |
| 732 | if (ftrace_code_disable(mod, p)) { | 736 | if (ftrace_code_disable(mod, p)) { |
| @@ -1118,16 +1122,6 @@ ftrace_notrace_open(struct inode *inode, struct file *file) | |||
| 1118 | return ftrace_regex_open(inode, file, 0); | 1122 | return ftrace_regex_open(inode, file, 0); |
| 1119 | } | 1123 | } |
| 1120 | 1124 | ||
| 1121 | static ssize_t | ||
| 1122 | ftrace_regex_read(struct file *file, char __user *ubuf, | ||
| 1123 | size_t cnt, loff_t *ppos) | ||
| 1124 | { | ||
| 1125 | if (file->f_mode & FMODE_READ) | ||
| 1126 | return seq_read(file, ubuf, cnt, ppos); | ||
| 1127 | else | ||
| 1128 | return -EPERM; | ||
| 1129 | } | ||
| 1130 | |||
| 1131 | static loff_t | 1125 | static loff_t |
| 1132 | ftrace_regex_lseek(struct file *file, loff_t offset, int origin) | 1126 | ftrace_regex_lseek(struct file *file, loff_t offset, int origin) |
| 1133 | { | 1127 | { |
| @@ -1880,7 +1874,7 @@ static const struct file_operations ftrace_failures_fops = { | |||
| 1880 | 1874 | ||
| 1881 | static const struct file_operations ftrace_filter_fops = { | 1875 | static const struct file_operations ftrace_filter_fops = { |
| 1882 | .open = ftrace_filter_open, | 1876 | .open = ftrace_filter_open, |
| 1883 | .read = ftrace_regex_read, | 1877 | .read = seq_read, |
| 1884 | .write = ftrace_filter_write, | 1878 | .write = ftrace_filter_write, |
| 1885 | .llseek = ftrace_regex_lseek, | 1879 | .llseek = ftrace_regex_lseek, |
| 1886 | .release = ftrace_filter_release, | 1880 | .release = ftrace_filter_release, |
| @@ -1888,7 +1882,7 @@ static const struct file_operations ftrace_filter_fops = { | |||
| 1888 | 1882 | ||
| 1889 | static const struct file_operations ftrace_notrace_fops = { | 1883 | static const struct file_operations ftrace_notrace_fops = { |
| 1890 | .open = ftrace_notrace_open, | 1884 | .open = ftrace_notrace_open, |
| 1891 | .read = ftrace_regex_read, | 1885 | .read = seq_read, |
| 1892 | .write = ftrace_notrace_write, | 1886 | .write = ftrace_notrace_write, |
| 1893 | .llseek = ftrace_regex_lseek, | 1887 | .llseek = ftrace_regex_lseek, |
| 1894 | .release = ftrace_notrace_release, | 1888 | .release = ftrace_notrace_release, |
| @@ -1990,16 +1984,6 @@ ftrace_graph_open(struct inode *inode, struct file *file) | |||
| 1990 | return ret; | 1984 | return ret; |
| 1991 | } | 1985 | } |
| 1992 | 1986 | ||
| 1993 | static ssize_t | ||
| 1994 | ftrace_graph_read(struct file *file, char __user *ubuf, | ||
| 1995 | size_t cnt, loff_t *ppos) | ||
| 1996 | { | ||
| 1997 | if (file->f_mode & FMODE_READ) | ||
| 1998 | return seq_read(file, ubuf, cnt, ppos); | ||
| 1999 | else | ||
| 2000 | return -EPERM; | ||
| 2001 | } | ||
| 2002 | |||
| 2003 | static int | 1987 | static int |
| 2004 | ftrace_set_func(unsigned long *array, int *idx, char *buffer) | 1988 | ftrace_set_func(unsigned long *array, int *idx, char *buffer) |
| 2005 | { | 1989 | { |
| @@ -2130,7 +2114,7 @@ ftrace_graph_write(struct file *file, const char __user *ubuf, | |||
| 2130 | 2114 | ||
| 2131 | static const struct file_operations ftrace_graph_fops = { | 2115 | static const struct file_operations ftrace_graph_fops = { |
| 2132 | .open = ftrace_graph_open, | 2116 | .open = ftrace_graph_open, |
| 2133 | .read = ftrace_graph_read, | 2117 | .read = seq_read, |
| 2134 | .write = ftrace_graph_write, | 2118 | .write = ftrace_graph_write, |
| 2135 | }; | 2119 | }; |
| 2136 | #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ | 2120 | #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ |
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 178858492a89..58128ad2fde0 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c | |||
| @@ -16,11 +16,80 @@ | |||
| 16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
| 17 | #include <linux/hash.h> | 17 | #include <linux/hash.h> |
| 18 | #include <linux/list.h> | 18 | #include <linux/list.h> |
| 19 | #include <linux/cpu.h> | ||
| 19 | #include <linux/fs.h> | 20 | #include <linux/fs.h> |
| 20 | 21 | ||
| 21 | #include "trace.h" | 22 | #include "trace.h" |
| 22 | 23 | ||
| 23 | /* | 24 | /* |
| 25 | * The ring buffer is made up of a list of pages. A separate list of pages is | ||
| 26 | * allocated for each CPU. A writer may only write to a buffer that is | ||
| 27 | * associated with the CPU it is currently executing on. A reader may read | ||
| 28 | * from any per cpu buffer. | ||
| 29 | * | ||
| 30 | * The reader is special. For each per cpu buffer, the reader has its own | ||
| 31 | * reader page. When a reader has read the entire reader page, this reader | ||
| 32 | * page is swapped with another page in the ring buffer. | ||
| 33 | * | ||
| 34 | * Now, as long as the writer is off the reader page, the reader can do what | ||
| 35 | * ever it wants with that page. The writer will never write to that page | ||
| 36 | * again (as long as it is out of the ring buffer). | ||
| 37 | * | ||
| 38 | * Here's some silly ASCII art. | ||
| 39 | * | ||
| 40 | * +------+ | ||
| 41 | * |reader| RING BUFFER | ||
| 42 | * |page | | ||
| 43 | * +------+ +---+ +---+ +---+ | ||
| 44 | * | |-->| |-->| | | ||
| 45 | * +---+ +---+ +---+ | ||
| 46 | * ^ | | ||
| 47 | * | | | ||
| 48 | * +---------------+ | ||
| 49 | * | ||
| 50 | * | ||
| 51 | * +------+ | ||
| 52 | * |reader| RING BUFFER | ||
| 53 | * |page |------------------v | ||
| 54 | * +------+ +---+ +---+ +---+ | ||
| 55 | * | |-->| |-->| | | ||
| 56 | * +---+ +---+ +---+ | ||
| 57 | * ^ | | ||
| 58 | * | | | ||
| 59 | * +---------------+ | ||
| 60 | * | ||
| 61 | * | ||
| 62 | * +------+ | ||
| 63 | * |reader| RING BUFFER | ||
| 64 | * |page |------------------v | ||
| 65 | * +------+ +---+ +---+ +---+ | ||
| 66 | * ^ | |-->| |-->| | | ||
| 67 | * | +---+ +---+ +---+ | ||
| 68 | * | | | ||
| 69 | * | | | ||
| 70 | * +------------------------------+ | ||
| 71 | * | ||
| 72 | * | ||
| 73 | * +------+ | ||
| 74 | * |buffer| RING BUFFER | ||
| 75 | * |page |------------------v | ||
| 76 | * +------+ +---+ +---+ +---+ | ||
| 77 | * ^ | | | |-->| | | ||
| 78 | * | New +---+ +---+ +---+ | ||
| 79 | * | Reader------^ | | ||
| 80 | * | page | | ||
| 81 | * +------------------------------+ | ||
| 82 | * | ||
| 83 | * | ||
| 84 | * After we make this swap, the reader can hand this page off to the splice | ||
| 85 | * code and be done with it. It can even allocate a new page if it needs to | ||
| 86 | * and swap that into the ring buffer. | ||
| 87 | * | ||
| 88 | * We will be using cmpxchg soon to make all this lockless. | ||
| 89 | * | ||
| 90 | */ | ||
| 91 | |||
| 92 | /* | ||
| 24 | * A fast way to enable or disable all ring buffers is to | 93 | * A fast way to enable or disable all ring buffers is to |
| 25 | * call tracing_on or tracing_off. Turning off the ring buffers | 94 | * call tracing_on or tracing_off. Turning off the ring buffers |
| 26 | * prevents all ring buffers from being recorded to. | 95 | * prevents all ring buffers from being recorded to. |
| @@ -301,6 +370,10 @@ struct ring_buffer { | |||
| 301 | struct mutex mutex; | 370 | struct mutex mutex; |
| 302 | 371 | ||
| 303 | struct ring_buffer_per_cpu **buffers; | 372 | struct ring_buffer_per_cpu **buffers; |
| 373 | |||
| 374 | #ifdef CONFIG_HOTPLUG_CPU | ||
| 375 | struct notifier_block cpu_notify; | ||
| 376 | #endif | ||
| 304 | }; | 377 | }; |
| 305 | 378 | ||
| 306 | struct ring_buffer_iter { | 379 | struct ring_buffer_iter { |
| @@ -459,6 +532,11 @@ static void rb_free_cpu_buffer(struct ring_buffer_per_cpu *cpu_buffer) | |||
| 459 | */ | 532 | */ |
| 460 | extern int ring_buffer_page_too_big(void); | 533 | extern int ring_buffer_page_too_big(void); |
| 461 | 534 | ||
| 535 | #ifdef CONFIG_HOTPLUG_CPU | ||
| 536 | static int __cpuinit rb_cpu_notify(struct notifier_block *self, | ||
| 537 | unsigned long action, void *hcpu); | ||
| 538 | #endif | ||
| 539 | |||
| 462 | /** | 540 | /** |
| 463 | * ring_buffer_alloc - allocate a new ring_buffer | 541 | * ring_buffer_alloc - allocate a new ring_buffer |
| 464 | * @size: the size in bytes per cpu that is needed. | 542 | * @size: the size in bytes per cpu that is needed. |
| @@ -496,7 +574,8 @@ struct ring_buffer *ring_buffer_alloc(unsigned long size, unsigned flags) | |||
| 496 | if (buffer->pages == 1) | 574 | if (buffer->pages == 1) |
| 497 | buffer->pages++; | 575 | buffer->pages++; |
| 498 | 576 | ||
| 499 | cpumask_copy(buffer->cpumask, cpu_possible_mask); | 577 | get_online_cpus(); |
| 578 | cpumask_copy(buffer->cpumask, cpu_online_mask); | ||
| 500 | buffer->cpus = nr_cpu_ids; | 579 | buffer->cpus = nr_cpu_ids; |
| 501 | 580 | ||
| 502 | bsize = sizeof(void *) * nr_cpu_ids; | 581 | bsize = sizeof(void *) * nr_cpu_ids; |
| @@ -512,6 +591,13 @@ struct ring_buffer *ring_buffer_alloc(unsigned long size, unsigned flags) | |||
| 512 | goto fail_free_buffers; | 591 | goto fail_free_buffers; |
| 513 | } | 592 | } |
| 514 | 593 | ||
| 594 | #ifdef CONFIG_HOTPLUG_CPU | ||
| 595 | buffer->cpu_notify.notifier_call = rb_cpu_notify; | ||
| 596 | buffer->cpu_notify.priority = 0; | ||
| 597 | register_cpu_notifier(&buffer->cpu_notify); | ||
| 598 | #endif | ||
| 599 | |||
| 600 | put_online_cpus(); | ||
| 515 | mutex_init(&buffer->mutex); | 601 | mutex_init(&buffer->mutex); |
| 516 | 602 | ||
| 517 | return buffer; | 603 | return buffer; |
| @@ -525,6 +611,7 @@ struct ring_buffer *ring_buffer_alloc(unsigned long size, unsigned flags) | |||
| 525 | 611 | ||
| 526 | fail_free_cpumask: | 612 | fail_free_cpumask: |
| 527 | free_cpumask_var(buffer->cpumask); | 613 | free_cpumask_var(buffer->cpumask); |
| 614 | put_online_cpus(); | ||
| 528 | 615 | ||
| 529 | fail_free_buffer: | 616 | fail_free_buffer: |
| 530 | kfree(buffer); | 617 | kfree(buffer); |
| @@ -541,9 +628,17 @@ ring_buffer_free(struct ring_buffer *buffer) | |||
| 541 | { | 628 | { |
| 542 | int cpu; | 629 | int cpu; |
| 543 | 630 | ||
| 631 | get_online_cpus(); | ||
| 632 | |||
| 633 | #ifdef CONFIG_HOTPLUG_CPU | ||
| 634 | unregister_cpu_notifier(&buffer->cpu_notify); | ||
| 635 | #endif | ||
| 636 | |||
| 544 | for_each_buffer_cpu(buffer, cpu) | 637 | for_each_buffer_cpu(buffer, cpu) |
| 545 | rb_free_cpu_buffer(buffer->buffers[cpu]); | 638 | rb_free_cpu_buffer(buffer->buffers[cpu]); |
| 546 | 639 | ||
| 640 | put_online_cpus(); | ||
| 641 | |||
| 547 | free_cpumask_var(buffer->cpumask); | 642 | free_cpumask_var(buffer->cpumask); |
| 548 | 643 | ||
| 549 | kfree(buffer); | 644 | kfree(buffer); |
| @@ -649,16 +744,15 @@ int ring_buffer_resize(struct ring_buffer *buffer, unsigned long size) | |||
| 649 | return size; | 744 | return size; |
| 650 | 745 | ||
| 651 | mutex_lock(&buffer->mutex); | 746 | mutex_lock(&buffer->mutex); |
| 747 | get_online_cpus(); | ||
| 652 | 748 | ||
| 653 | nr_pages = DIV_ROUND_UP(size, BUF_PAGE_SIZE); | 749 | nr_pages = DIV_ROUND_UP(size, BUF_PAGE_SIZE); |
| 654 | 750 | ||
| 655 | if (size < buffer_size) { | 751 | if (size < buffer_size) { |
| 656 | 752 | ||
| 657 | /* easy case, just free pages */ | 753 | /* easy case, just free pages */ |
| 658 | if (RB_WARN_ON(buffer, nr_pages >= buffer->pages)) { | 754 | if (RB_WARN_ON(buffer, nr_pages >= buffer->pages)) |
| 659 | mutex_unlock(&buffer->mutex); | 755 | goto out_fail; |
| 660 | return -1; | ||
| 661 | } | ||
| 662 | 756 | ||
| 663 | rm_pages = buffer->pages - nr_pages; | 757 | rm_pages = buffer->pages - nr_pages; |
| 664 | 758 | ||
| @@ -677,10 +771,8 @@ int ring_buffer_resize(struct ring_buffer *buffer, unsigned long size) | |||
| 677 | * add these pages to the cpu_buffers. Otherwise we just free | 771 | * add these pages to the cpu_buffers. Otherwise we just free |
| 678 | * them all and return -ENOMEM; | 772 | * them all and return -ENOMEM; |
| 679 | */ | 773 | */ |
| 680 | if (RB_WARN_ON(buffer, nr_pages <= buffer->pages)) { | 774 | if (RB_WARN_ON(buffer, nr_pages <= buffer->pages)) |
| 681 | mutex_unlock(&buffer->mutex); | 775 | goto out_fail; |
| 682 | return -1; | ||
| 683 | } | ||
| 684 | 776 | ||
| 685 | new_pages = nr_pages - buffer->pages; | 777 | new_pages = nr_pages - buffer->pages; |
| 686 | 778 | ||
| @@ -705,13 +797,12 @@ int ring_buffer_resize(struct ring_buffer *buffer, unsigned long size) | |||
| 705 | rb_insert_pages(cpu_buffer, &pages, new_pages); | 797 | rb_insert_pages(cpu_buffer, &pages, new_pages); |
| 706 | } | 798 | } |
| 707 | 799 | ||
| 708 | if (RB_WARN_ON(buffer, !list_empty(&pages))) { | 800 | if (RB_WARN_ON(buffer, !list_empty(&pages))) |
| 709 | mutex_unlock(&buffer->mutex); | 801 | goto out_fail; |
| 710 | return -1; | ||
| 711 | } | ||
| 712 | 802 | ||
| 713 | out: | 803 | out: |
| 714 | buffer->pages = nr_pages; | 804 | buffer->pages = nr_pages; |
| 805 | put_online_cpus(); | ||
| 715 | mutex_unlock(&buffer->mutex); | 806 | mutex_unlock(&buffer->mutex); |
| 716 | 807 | ||
| 717 | return size; | 808 | return size; |
| @@ -721,8 +812,18 @@ int ring_buffer_resize(struct ring_buffer *buffer, unsigned long size) | |||
| 721 | list_del_init(&bpage->list); | 812 | list_del_init(&bpage->list); |
| 722 | free_buffer_page(bpage); | 813 | free_buffer_page(bpage); |
| 723 | } | 814 | } |
| 815 | put_online_cpus(); | ||
| 724 | mutex_unlock(&buffer->mutex); | 816 | mutex_unlock(&buffer->mutex); |
| 725 | return -ENOMEM; | 817 | return -ENOMEM; |
| 818 | |||
| 819 | /* | ||
| 820 | * Something went totally wrong, and we are too paranoid | ||
| 821 | * to even clean up the mess. | ||
| 822 | */ | ||
| 823 | out_fail: | ||
| 824 | put_online_cpus(); | ||
| 825 | mutex_unlock(&buffer->mutex); | ||
| 826 | return -1; | ||
| 726 | } | 827 | } |
| 727 | EXPORT_SYMBOL_GPL(ring_buffer_resize); | 828 | EXPORT_SYMBOL_GPL(ring_buffer_resize); |
| 728 | 829 | ||
| @@ -1564,12 +1665,15 @@ EXPORT_SYMBOL_GPL(ring_buffer_record_enable_cpu); | |||
| 1564 | unsigned long ring_buffer_entries_cpu(struct ring_buffer *buffer, int cpu) | 1665 | unsigned long ring_buffer_entries_cpu(struct ring_buffer *buffer, int cpu) |
| 1565 | { | 1666 | { |
| 1566 | struct ring_buffer_per_cpu *cpu_buffer; | 1667 | struct ring_buffer_per_cpu *cpu_buffer; |
| 1668 | unsigned long ret; | ||
| 1567 | 1669 | ||
| 1568 | if (!cpumask_test_cpu(cpu, buffer->cpumask)) | 1670 | if (!cpumask_test_cpu(cpu, buffer->cpumask)) |
| 1569 | return 0; | 1671 | return 0; |
| 1570 | 1672 | ||
| 1571 | cpu_buffer = buffer->buffers[cpu]; | 1673 | cpu_buffer = buffer->buffers[cpu]; |
| 1572 | return cpu_buffer->entries; | 1674 | ret = cpu_buffer->entries; |
| 1675 | |||
| 1676 | return ret; | ||
| 1573 | } | 1677 | } |
| 1574 | EXPORT_SYMBOL_GPL(ring_buffer_entries_cpu); | 1678 | EXPORT_SYMBOL_GPL(ring_buffer_entries_cpu); |
| 1575 | 1679 | ||
| @@ -1581,12 +1685,15 @@ EXPORT_SYMBOL_GPL(ring_buffer_entries_cpu); | |||
| 1581 | unsigned long ring_buffer_overrun_cpu(struct ring_buffer *buffer, int cpu) | 1685 | unsigned long ring_buffer_overrun_cpu(struct ring_buffer *buffer, int cpu) |
| 1582 | { | 1686 | { |
| 1583 | struct ring_buffer_per_cpu *cpu_buffer; | 1687 | struct ring_buffer_per_cpu *cpu_buffer; |
| 1688 | unsigned long ret; | ||
| 1584 | 1689 | ||
| 1585 | if (!cpumask_test_cpu(cpu, buffer->cpumask)) | 1690 | if (!cpumask_test_cpu(cpu, buffer->cpumask)) |
| 1586 | return 0; | 1691 | return 0; |
| 1587 | 1692 | ||
| 1588 | cpu_buffer = buffer->buffers[cpu]; | 1693 | cpu_buffer = buffer->buffers[cpu]; |
| 1589 | return cpu_buffer->overrun; | 1694 | ret = cpu_buffer->overrun; |
| 1695 | |||
| 1696 | return ret; | ||
| 1590 | } | 1697 | } |
| 1591 | EXPORT_SYMBOL_GPL(ring_buffer_overrun_cpu); | 1698 | EXPORT_SYMBOL_GPL(ring_buffer_overrun_cpu); |
| 1592 | 1699 | ||
| @@ -1663,9 +1770,14 @@ static void rb_iter_reset(struct ring_buffer_iter *iter) | |||
| 1663 | */ | 1770 | */ |
| 1664 | void ring_buffer_iter_reset(struct ring_buffer_iter *iter) | 1771 | void ring_buffer_iter_reset(struct ring_buffer_iter *iter) |
| 1665 | { | 1772 | { |
| 1666 | struct ring_buffer_per_cpu *cpu_buffer = iter->cpu_buffer; | 1773 | struct ring_buffer_per_cpu *cpu_buffer; |
| 1667 | unsigned long flags; | 1774 | unsigned long flags; |
| 1668 | 1775 | ||
| 1776 | if (!iter) | ||
| 1777 | return; | ||
| 1778 | |||
| 1779 | cpu_buffer = iter->cpu_buffer; | ||
| 1780 | |||
| 1669 | spin_lock_irqsave(&cpu_buffer->reader_lock, flags); | 1781 | spin_lock_irqsave(&cpu_buffer->reader_lock, flags); |
| 1670 | rb_iter_reset(iter); | 1782 | rb_iter_reset(iter); |
| 1671 | spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); | 1783 | spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); |
| @@ -1900,9 +2012,6 @@ rb_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts) | |||
| 1900 | struct buffer_page *reader; | 2012 | struct buffer_page *reader; |
| 1901 | int nr_loops = 0; | 2013 | int nr_loops = 0; |
| 1902 | 2014 | ||
| 1903 | if (!cpumask_test_cpu(cpu, buffer->cpumask)) | ||
| 1904 | return NULL; | ||
| 1905 | |||
| 1906 | cpu_buffer = buffer->buffers[cpu]; | 2015 | cpu_buffer = buffer->buffers[cpu]; |
| 1907 | 2016 | ||
| 1908 | again: | 2017 | again: |
| @@ -2031,6 +2140,9 @@ ring_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts) | |||
| 2031 | struct ring_buffer_event *event; | 2140 | struct ring_buffer_event *event; |
| 2032 | unsigned long flags; | 2141 | unsigned long flags; |
| 2033 | 2142 | ||
| 2143 | if (!cpumask_test_cpu(cpu, buffer->cpumask)) | ||
| 2144 | return NULL; | ||
| 2145 | |||
| 2034 | spin_lock_irqsave(&cpu_buffer->reader_lock, flags); | 2146 | spin_lock_irqsave(&cpu_buffer->reader_lock, flags); |
| 2035 | event = rb_buffer_peek(buffer, cpu, ts); | 2147 | event = rb_buffer_peek(buffer, cpu, ts); |
| 2036 | spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); | 2148 | spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); |
| @@ -2071,24 +2183,31 @@ ring_buffer_iter_peek(struct ring_buffer_iter *iter, u64 *ts) | |||
| 2071 | struct ring_buffer_event * | 2183 | struct ring_buffer_event * |
| 2072 | ring_buffer_consume(struct ring_buffer *buffer, int cpu, u64 *ts) | 2184 | ring_buffer_consume(struct ring_buffer *buffer, int cpu, u64 *ts) |
| 2073 | { | 2185 | { |
| 2074 | struct ring_buffer_per_cpu *cpu_buffer = buffer->buffers[cpu]; | 2186 | struct ring_buffer_per_cpu *cpu_buffer; |
| 2075 | struct ring_buffer_event *event; | 2187 | struct ring_buffer_event *event = NULL; |
| 2076 | unsigned long flags; | 2188 | unsigned long flags; |
| 2077 | 2189 | ||
| 2190 | /* might be called in atomic */ | ||
| 2191 | preempt_disable(); | ||
| 2192 | |||
| 2078 | if (!cpumask_test_cpu(cpu, buffer->cpumask)) | 2193 | if (!cpumask_test_cpu(cpu, buffer->cpumask)) |
| 2079 | return NULL; | 2194 | goto out; |
| 2080 | 2195 | ||
| 2196 | cpu_buffer = buffer->buffers[cpu]; | ||
| 2081 | spin_lock_irqsave(&cpu_buffer->reader_lock, flags); | 2197 | spin_lock_irqsave(&cpu_buffer->reader_lock, flags); |
| 2082 | 2198 | ||
| 2083 | event = rb_buffer_peek(buffer, cpu, ts); | 2199 | event = rb_buffer_peek(buffer, cpu, ts); |
| 2084 | if (!event) | 2200 | if (!event) |
| 2085 | goto out; | 2201 | goto out_unlock; |
| 2086 | 2202 | ||
| 2087 | rb_advance_reader(cpu_buffer); | 2203 | rb_advance_reader(cpu_buffer); |
| 2088 | 2204 | ||
| 2089 | out: | 2205 | out_unlock: |
| 2090 | spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); | 2206 | spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); |
| 2091 | 2207 | ||
| 2208 | out: | ||
| 2209 | preempt_enable(); | ||
| 2210 | |||
| 2092 | return event; | 2211 | return event; |
| 2093 | } | 2212 | } |
| 2094 | EXPORT_SYMBOL_GPL(ring_buffer_consume); | 2213 | EXPORT_SYMBOL_GPL(ring_buffer_consume); |
| @@ -2268,6 +2387,7 @@ int ring_buffer_empty(struct ring_buffer *buffer) | |||
| 2268 | if (!rb_per_cpu_empty(cpu_buffer)) | 2387 | if (!rb_per_cpu_empty(cpu_buffer)) |
| 2269 | return 0; | 2388 | return 0; |
| 2270 | } | 2389 | } |
| 2390 | |||
| 2271 | return 1; | 2391 | return 1; |
| 2272 | } | 2392 | } |
| 2273 | EXPORT_SYMBOL_GPL(ring_buffer_empty); | 2393 | EXPORT_SYMBOL_GPL(ring_buffer_empty); |
| @@ -2280,12 +2400,16 @@ EXPORT_SYMBOL_GPL(ring_buffer_empty); | |||
| 2280 | int ring_buffer_empty_cpu(struct ring_buffer *buffer, int cpu) | 2400 | int ring_buffer_empty_cpu(struct ring_buffer *buffer, int cpu) |
| 2281 | { | 2401 | { |
| 2282 | struct ring_buffer_per_cpu *cpu_buffer; | 2402 | struct ring_buffer_per_cpu *cpu_buffer; |
| 2403 | int ret; | ||
| 2283 | 2404 | ||
| 2284 | if (!cpumask_test_cpu(cpu, buffer->cpumask)) | 2405 | if (!cpumask_test_cpu(cpu, buffer->cpumask)) |
| 2285 | return 1; | 2406 | return 1; |
| 2286 | 2407 | ||
| 2287 | cpu_buffer = buffer->buffers[cpu]; | 2408 | cpu_buffer = buffer->buffers[cpu]; |
| 2288 | return rb_per_cpu_empty(cpu_buffer); | 2409 | ret = rb_per_cpu_empty(cpu_buffer); |
| 2410 | |||
| 2411 | |||
| 2412 | return ret; | ||
| 2289 | } | 2413 | } |
| 2290 | EXPORT_SYMBOL_GPL(ring_buffer_empty_cpu); | 2414 | EXPORT_SYMBOL_GPL(ring_buffer_empty_cpu); |
| 2291 | 2415 | ||
| @@ -2304,32 +2428,35 @@ int ring_buffer_swap_cpu(struct ring_buffer *buffer_a, | |||
| 2304 | { | 2428 | { |
| 2305 | struct ring_buffer_per_cpu *cpu_buffer_a; | 2429 | struct ring_buffer_per_cpu *cpu_buffer_a; |
| 2306 | struct ring_buffer_per_cpu *cpu_buffer_b; | 2430 | struct ring_buffer_per_cpu *cpu_buffer_b; |
| 2431 | int ret = -EINVAL; | ||
| 2307 | 2432 | ||
| 2308 | if (!cpumask_test_cpu(cpu, buffer_a->cpumask) || | 2433 | if (!cpumask_test_cpu(cpu, buffer_a->cpumask) || |
| 2309 | !cpumask_test_cpu(cpu, buffer_b->cpumask)) | 2434 | !cpumask_test_cpu(cpu, buffer_b->cpumask)) |
| 2310 | return -EINVAL; | 2435 | goto out; |
| 2311 | 2436 | ||
| 2312 | /* At least make sure the two buffers are somewhat the same */ | 2437 | /* At least make sure the two buffers are somewhat the same */ |
| 2313 | if (buffer_a->pages != buffer_b->pages) | 2438 | if (buffer_a->pages != buffer_b->pages) |
| 2314 | return -EINVAL; | 2439 | goto out; |
| 2440 | |||
| 2441 | ret = -EAGAIN; | ||
| 2315 | 2442 | ||
| 2316 | if (ring_buffer_flags != RB_BUFFERS_ON) | 2443 | if (ring_buffer_flags != RB_BUFFERS_ON) |
| 2317 | return -EAGAIN; | 2444 | goto out; |
| 2318 | 2445 | ||
| 2319 | if (atomic_read(&buffer_a->record_disabled)) | 2446 | if (atomic_read(&buffer_a->record_disabled)) |
| 2320 | return -EAGAIN; | 2447 | goto out; |
| 2321 | 2448 | ||
| 2322 | if (atomic_read(&buffer_b->record_disabled)) | 2449 | if (atomic_read(&buffer_b->record_disabled)) |
| 2323 | return -EAGAIN; | 2450 | goto out; |
| 2324 | 2451 | ||
| 2325 | cpu_buffer_a = buffer_a->buffers[cpu]; | 2452 | cpu_buffer_a = buffer_a->buffers[cpu]; |
| 2326 | cpu_buffer_b = buffer_b->buffers[cpu]; | 2453 | cpu_buffer_b = buffer_b->buffers[cpu]; |
| 2327 | 2454 | ||
| 2328 | if (atomic_read(&cpu_buffer_a->record_disabled)) | 2455 | if (atomic_read(&cpu_buffer_a->record_disabled)) |
| 2329 | return -EAGAIN; | 2456 | goto out; |
| 2330 | 2457 | ||
| 2331 | if (atomic_read(&cpu_buffer_b->record_disabled)) | 2458 | if (atomic_read(&cpu_buffer_b->record_disabled)) |
| 2332 | return -EAGAIN; | 2459 | goto out; |
| 2333 | 2460 | ||
| 2334 | /* | 2461 | /* |
| 2335 | * We can't do a synchronize_sched here because this | 2462 | * We can't do a synchronize_sched here because this |
| @@ -2349,7 +2476,9 @@ int ring_buffer_swap_cpu(struct ring_buffer *buffer_a, | |||
| 2349 | atomic_dec(&cpu_buffer_a->record_disabled); | 2476 | atomic_dec(&cpu_buffer_a->record_disabled); |
| 2350 | atomic_dec(&cpu_buffer_b->record_disabled); | 2477 | atomic_dec(&cpu_buffer_b->record_disabled); |
| 2351 | 2478 | ||
| 2352 | return 0; | 2479 | ret = 0; |
| 2480 | out: | ||
| 2481 | return ret; | ||
| 2353 | } | 2482 | } |
| 2354 | EXPORT_SYMBOL_GPL(ring_buffer_swap_cpu); | 2483 | EXPORT_SYMBOL_GPL(ring_buffer_swap_cpu); |
| 2355 | 2484 | ||
| @@ -2464,27 +2593,30 @@ int ring_buffer_read_page(struct ring_buffer *buffer, | |||
| 2464 | u64 save_timestamp; | 2593 | u64 save_timestamp; |
| 2465 | int ret = -1; | 2594 | int ret = -1; |
| 2466 | 2595 | ||
| 2596 | if (!cpumask_test_cpu(cpu, buffer->cpumask)) | ||
| 2597 | goto out; | ||
| 2598 | |||
| 2467 | /* | 2599 | /* |
| 2468 | * If len is not big enough to hold the page header, then | 2600 | * If len is not big enough to hold the page header, then |
| 2469 | * we can not copy anything. | 2601 | * we can not copy anything. |
| 2470 | */ | 2602 | */ |
| 2471 | if (len <= BUF_PAGE_HDR_SIZE) | 2603 | if (len <= BUF_PAGE_HDR_SIZE) |
| 2472 | return -1; | 2604 | goto out; |
| 2473 | 2605 | ||
| 2474 | len -= BUF_PAGE_HDR_SIZE; | 2606 | len -= BUF_PAGE_HDR_SIZE; |
| 2475 | 2607 | ||
| 2476 | if (!data_page) | 2608 | if (!data_page) |
| 2477 | return -1; | 2609 | goto out; |
| 2478 | 2610 | ||
| 2479 | bpage = *data_page; | 2611 | bpage = *data_page; |
| 2480 | if (!bpage) | 2612 | if (!bpage) |
| 2481 | return -1; | 2613 | goto out; |
| 2482 | 2614 | ||
| 2483 | spin_lock_irqsave(&cpu_buffer->reader_lock, flags); | 2615 | spin_lock_irqsave(&cpu_buffer->reader_lock, flags); |
| 2484 | 2616 | ||
| 2485 | reader = rb_get_reader_page(cpu_buffer); | 2617 | reader = rb_get_reader_page(cpu_buffer); |
| 2486 | if (!reader) | 2618 | if (!reader) |
| 2487 | goto out; | 2619 | goto out_unlock; |
| 2488 | 2620 | ||
| 2489 | event = rb_reader_event(cpu_buffer); | 2621 | event = rb_reader_event(cpu_buffer); |
| 2490 | 2622 | ||
| @@ -2506,7 +2638,7 @@ int ring_buffer_read_page(struct ring_buffer *buffer, | |||
| 2506 | unsigned int size; | 2638 | unsigned int size; |
| 2507 | 2639 | ||
| 2508 | if (full) | 2640 | if (full) |
| 2509 | goto out; | 2641 | goto out_unlock; |
| 2510 | 2642 | ||
| 2511 | if (len > (commit - read)) | 2643 | if (len > (commit - read)) |
| 2512 | len = (commit - read); | 2644 | len = (commit - read); |
| @@ -2514,7 +2646,7 @@ int ring_buffer_read_page(struct ring_buffer *buffer, | |||
| 2514 | size = rb_event_length(event); | 2646 | size = rb_event_length(event); |
| 2515 | 2647 | ||
| 2516 | if (len < size) | 2648 | if (len < size) |
| 2517 | goto out; | 2649 | goto out_unlock; |
| 2518 | 2650 | ||
| 2519 | /* save the current timestamp, since the user will need it */ | 2651 | /* save the current timestamp, since the user will need it */ |
| 2520 | save_timestamp = cpu_buffer->read_stamp; | 2652 | save_timestamp = cpu_buffer->read_stamp; |
| @@ -2553,9 +2685,10 @@ int ring_buffer_read_page(struct ring_buffer *buffer, | |||
| 2553 | } | 2685 | } |
| 2554 | ret = read; | 2686 | ret = read; |
| 2555 | 2687 | ||
| 2556 | out: | 2688 | out_unlock: |
| 2557 | spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); | 2689 | spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); |
| 2558 | 2690 | ||
| 2691 | out: | ||
| 2559 | return ret; | 2692 | return ret; |
| 2560 | } | 2693 | } |
| 2561 | 2694 | ||
| @@ -2629,3 +2762,42 @@ static __init int rb_init_debugfs(void) | |||
| 2629 | } | 2762 | } |
| 2630 | 2763 | ||
| 2631 | fs_initcall(rb_init_debugfs); | 2764 | fs_initcall(rb_init_debugfs); |
| 2765 | |||
| 2766 | #ifdef CONFIG_HOTPLUG_CPU | ||
| 2767 | static int __cpuinit rb_cpu_notify(struct notifier_block *self, | ||
| 2768 | unsigned long action, void *hcpu) | ||
| 2769 | { | ||
| 2770 | struct ring_buffer *buffer = | ||
| 2771 | container_of(self, struct ring_buffer, cpu_notify); | ||
| 2772 | long cpu = (long)hcpu; | ||
| 2773 | |||
| 2774 | switch (action) { | ||
| 2775 | case CPU_UP_PREPARE: | ||
| 2776 | case CPU_UP_PREPARE_FROZEN: | ||
| 2777 | if (cpu_isset(cpu, *buffer->cpumask)) | ||
| 2778 | return NOTIFY_OK; | ||
| 2779 | |||
| 2780 | buffer->buffers[cpu] = | ||
| 2781 | rb_allocate_cpu_buffer(buffer, cpu); | ||
| 2782 | if (!buffer->buffers[cpu]) { | ||
| 2783 | WARN(1, "failed to allocate ring buffer on CPU %ld\n", | ||
| 2784 | cpu); | ||
| 2785 | return NOTIFY_OK; | ||
| 2786 | } | ||
| 2787 | smp_wmb(); | ||
| 2788 | cpu_set(cpu, *buffer->cpumask); | ||
| 2789 | break; | ||
| 2790 | case CPU_DOWN_PREPARE: | ||
| 2791 | case CPU_DOWN_PREPARE_FROZEN: | ||
| 2792 | /* | ||
| 2793 | * Do nothing. | ||
| 2794 | * If we were to free the buffer, then the user would | ||
| 2795 | * lose any trace that was in the buffer. | ||
| 2796 | */ | ||
| 2797 | break; | ||
| 2798 | default: | ||
| 2799 | break; | ||
| 2800 | } | ||
| 2801 | return NOTIFY_OK; | ||
| 2802 | } | ||
| 2803 | #endif | ||
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 5c9c6d907054..efe3202c0209 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
| @@ -45,6 +45,12 @@ unsigned long __read_mostly tracing_max_latency; | |||
| 45 | unsigned long __read_mostly tracing_thresh; | 45 | unsigned long __read_mostly tracing_thresh; |
| 46 | 46 | ||
| 47 | /* | 47 | /* |
| 48 | * On boot up, the ring buffer is set to the minimum size, so that | ||
| 49 | * we do not waste memory on systems that are not using tracing. | ||
| 50 | */ | ||
| 51 | static int ring_buffer_expanded; | ||
| 52 | |||
| 53 | /* | ||
| 48 | * We need to change this state when a selftest is running. | 54 | * We need to change this state when a selftest is running. |
| 49 | * A selftest will lurk into the ring-buffer to count the | 55 | * A selftest will lurk into the ring-buffer to count the |
| 50 | * entries inserted during the selftest although some concurrent | 56 | * entries inserted during the selftest although some concurrent |
| @@ -128,6 +134,8 @@ static int __init set_ftrace(char *str) | |||
| 128 | { | 134 | { |
| 129 | strncpy(bootup_tracer_buf, str, BOOTUP_TRACER_SIZE); | 135 | strncpy(bootup_tracer_buf, str, BOOTUP_TRACER_SIZE); |
| 130 | default_bootup_tracer = bootup_tracer_buf; | 136 | default_bootup_tracer = bootup_tracer_buf; |
| 137 | /* We are using ftrace early, expand it */ | ||
| 138 | ring_buffer_expanded = 1; | ||
| 131 | return 1; | 139 | return 1; |
| 132 | } | 140 | } |
| 133 | __setup("ftrace=", set_ftrace); | 141 | __setup("ftrace=", set_ftrace); |
| @@ -1171,10 +1179,10 @@ void trace_graph_return(struct ftrace_graph_ret *trace) | |||
| 1171 | 1179 | ||
| 1172 | 1180 | ||
| 1173 | /** | 1181 | /** |
| 1174 | * trace_vprintk - write binary msg to tracing buffer | 1182 | * trace_vbprintk - write binary msg to tracing buffer |
| 1175 | * | 1183 | * |
| 1176 | */ | 1184 | */ |
| 1177 | int trace_vprintk(unsigned long ip, int depth, const char *fmt, va_list args) | 1185 | int trace_vbprintk(unsigned long ip, int depth, const char *fmt, va_list args) |
| 1178 | { | 1186 | { |
| 1179 | static raw_spinlock_t trace_buf_lock = | 1187 | static raw_spinlock_t trace_buf_lock = |
| 1180 | (raw_spinlock_t)__RAW_SPIN_LOCK_UNLOCKED; | 1188 | (raw_spinlock_t)__RAW_SPIN_LOCK_UNLOCKED; |
| @@ -1183,7 +1191,7 @@ int trace_vprintk(unsigned long ip, int depth, const char *fmt, va_list args) | |||
| 1183 | struct ring_buffer_event *event; | 1191 | struct ring_buffer_event *event; |
| 1184 | struct trace_array *tr = &global_trace; | 1192 | struct trace_array *tr = &global_trace; |
| 1185 | struct trace_array_cpu *data; | 1193 | struct trace_array_cpu *data; |
| 1186 | struct print_entry *entry; | 1194 | struct bprint_entry *entry; |
| 1187 | unsigned long flags; | 1195 | unsigned long flags; |
| 1188 | int resched; | 1196 | int resched; |
| 1189 | int cpu, len = 0, size, pc; | 1197 | int cpu, len = 0, size, pc; |
| @@ -1211,7 +1219,7 @@ int trace_vprintk(unsigned long ip, int depth, const char *fmt, va_list args) | |||
| 1211 | goto out_unlock; | 1219 | goto out_unlock; |
| 1212 | 1220 | ||
| 1213 | size = sizeof(*entry) + sizeof(u32) * len; | 1221 | size = sizeof(*entry) + sizeof(u32) * len; |
| 1214 | event = trace_buffer_lock_reserve(tr, TRACE_PRINT, size, flags, pc); | 1222 | event = trace_buffer_lock_reserve(tr, TRACE_BPRINT, size, flags, pc); |
| 1215 | if (!event) | 1223 | if (!event) |
| 1216 | goto out_unlock; | 1224 | goto out_unlock; |
| 1217 | entry = ring_buffer_event_data(event); | 1225 | entry = ring_buffer_event_data(event); |
| @@ -1232,6 +1240,60 @@ out: | |||
| 1232 | 1240 | ||
| 1233 | return len; | 1241 | return len; |
| 1234 | } | 1242 | } |
| 1243 | EXPORT_SYMBOL_GPL(trace_vbprintk); | ||
| 1244 | |||
| 1245 | int trace_vprintk(unsigned long ip, int depth, const char *fmt, va_list args) | ||
| 1246 | { | ||
| 1247 | static raw_spinlock_t trace_buf_lock = __RAW_SPIN_LOCK_UNLOCKED; | ||
| 1248 | static char trace_buf[TRACE_BUF_SIZE]; | ||
| 1249 | |||
| 1250 | struct ring_buffer_event *event; | ||
| 1251 | struct trace_array *tr = &global_trace; | ||
| 1252 | struct trace_array_cpu *data; | ||
| 1253 | int cpu, len = 0, size, pc; | ||
| 1254 | struct print_entry *entry; | ||
| 1255 | unsigned long irq_flags; | ||
| 1256 | |||
| 1257 | if (tracing_disabled || tracing_selftest_running) | ||
| 1258 | return 0; | ||
| 1259 | |||
| 1260 | pc = preempt_count(); | ||
| 1261 | preempt_disable_notrace(); | ||
| 1262 | cpu = raw_smp_processor_id(); | ||
| 1263 | data = tr->data[cpu]; | ||
| 1264 | |||
| 1265 | if (unlikely(atomic_read(&data->disabled))) | ||
| 1266 | goto out; | ||
| 1267 | |||
| 1268 | pause_graph_tracing(); | ||
| 1269 | raw_local_irq_save(irq_flags); | ||
| 1270 | __raw_spin_lock(&trace_buf_lock); | ||
| 1271 | len = vsnprintf(trace_buf, TRACE_BUF_SIZE, fmt, args); | ||
| 1272 | |||
| 1273 | len = min(len, TRACE_BUF_SIZE-1); | ||
| 1274 | trace_buf[len] = 0; | ||
| 1275 | |||
| 1276 | size = sizeof(*entry) + len + 1; | ||
| 1277 | event = trace_buffer_lock_reserve(tr, TRACE_PRINT, size, irq_flags, pc); | ||
| 1278 | if (!event) | ||
| 1279 | goto out_unlock; | ||
| 1280 | entry = ring_buffer_event_data(event); | ||
| 1281 | entry->ip = ip; | ||
| 1282 | entry->depth = depth; | ||
| 1283 | |||
| 1284 | memcpy(&entry->buf, trace_buf, len); | ||
| 1285 | entry->buf[len] = 0; | ||
| 1286 | ring_buffer_unlock_commit(tr->buffer, event); | ||
| 1287 | |||
| 1288 | out_unlock: | ||
| 1289 | __raw_spin_unlock(&trace_buf_lock); | ||
| 1290 | raw_local_irq_restore(irq_flags); | ||
| 1291 | unpause_graph_tracing(); | ||
| 1292 | out: | ||
| 1293 | preempt_enable_notrace(); | ||
| 1294 | |||
| 1295 | return len; | ||
| 1296 | } | ||
| 1235 | EXPORT_SYMBOL_GPL(trace_vprintk); | 1297 | EXPORT_SYMBOL_GPL(trace_vprintk); |
| 1236 | 1298 | ||
| 1237 | enum trace_file_type { | 1299 | enum trace_file_type { |
| @@ -1620,6 +1682,22 @@ static enum print_line_t print_hex_fmt(struct trace_iterator *iter) | |||
| 1620 | return TRACE_TYPE_HANDLED; | 1682 | return TRACE_TYPE_HANDLED; |
| 1621 | } | 1683 | } |
| 1622 | 1684 | ||
| 1685 | static enum print_line_t print_bprintk_msg_only(struct trace_iterator *iter) | ||
| 1686 | { | ||
| 1687 | struct trace_seq *s = &iter->seq; | ||
| 1688 | struct trace_entry *entry = iter->ent; | ||
| 1689 | struct bprint_entry *field; | ||
| 1690 | int ret; | ||
| 1691 | |||
| 1692 | trace_assign_type(field, entry); | ||
| 1693 | |||
| 1694 | ret = trace_seq_bprintf(s, field->fmt, field->buf); | ||
| 1695 | if (!ret) | ||
| 1696 | return TRACE_TYPE_PARTIAL_LINE; | ||
| 1697 | |||
| 1698 | return TRACE_TYPE_HANDLED; | ||
| 1699 | } | ||
| 1700 | |||
| 1623 | static enum print_line_t print_printk_msg_only(struct trace_iterator *iter) | 1701 | static enum print_line_t print_printk_msg_only(struct trace_iterator *iter) |
| 1624 | { | 1702 | { |
| 1625 | struct trace_seq *s = &iter->seq; | 1703 | struct trace_seq *s = &iter->seq; |
| @@ -1629,7 +1707,7 @@ static enum print_line_t print_printk_msg_only(struct trace_iterator *iter) | |||
| 1629 | 1707 | ||
| 1630 | trace_assign_type(field, entry); | 1708 | trace_assign_type(field, entry); |
| 1631 | 1709 | ||
| 1632 | ret = trace_seq_bprintf(s, field->fmt, field->buf); | 1710 | ret = trace_seq_printf(s, "%s", field->buf); |
| 1633 | if (!ret) | 1711 | if (!ret) |
| 1634 | return TRACE_TYPE_PARTIAL_LINE; | 1712 | return TRACE_TYPE_PARTIAL_LINE; |
| 1635 | 1713 | ||
| @@ -1658,6 +1736,19 @@ static int trace_empty(struct trace_iterator *iter) | |||
| 1658 | { | 1736 | { |
| 1659 | int cpu; | 1737 | int cpu; |
| 1660 | 1738 | ||
| 1739 | /* If we are looking at one CPU buffer, only check that one */ | ||
| 1740 | if (iter->cpu_file != TRACE_PIPE_ALL_CPU) { | ||
| 1741 | cpu = iter->cpu_file; | ||
| 1742 | if (iter->buffer_iter[cpu]) { | ||
| 1743 | if (!ring_buffer_iter_empty(iter->buffer_iter[cpu])) | ||
| 1744 | return 0; | ||
| 1745 | } else { | ||
| 1746 | if (!ring_buffer_empty_cpu(iter->tr->buffer, cpu)) | ||
| 1747 | return 0; | ||
| 1748 | } | ||
| 1749 | return 1; | ||
| 1750 | } | ||
| 1751 | |||
| 1661 | for_each_tracing_cpu(cpu) { | 1752 | for_each_tracing_cpu(cpu) { |
| 1662 | if (iter->buffer_iter[cpu]) { | 1753 | if (iter->buffer_iter[cpu]) { |
| 1663 | if (!ring_buffer_iter_empty(iter->buffer_iter[cpu])) | 1754 | if (!ring_buffer_iter_empty(iter->buffer_iter[cpu])) |
| @@ -1681,6 +1772,11 @@ static enum print_line_t print_trace_line(struct trace_iterator *iter) | |||
| 1681 | return ret; | 1772 | return ret; |
| 1682 | } | 1773 | } |
| 1683 | 1774 | ||
| 1775 | if (iter->ent->type == TRACE_BPRINT && | ||
| 1776 | trace_flags & TRACE_ITER_PRINTK && | ||
| 1777 | trace_flags & TRACE_ITER_PRINTK_MSGONLY) | ||
| 1778 | return print_bprintk_msg_only(iter); | ||
| 1779 | |||
| 1684 | if (iter->ent->type == TRACE_PRINT && | 1780 | if (iter->ent->type == TRACE_PRINT && |
| 1685 | trace_flags & TRACE_ITER_PRINTK && | 1781 | trace_flags & TRACE_ITER_PRINTK && |
| 1686 | trace_flags & TRACE_ITER_PRINTK_MSGONLY) | 1782 | trace_flags & TRACE_ITER_PRINTK_MSGONLY) |
| @@ -1784,17 +1880,11 @@ __tracing_open(struct inode *inode, struct file *file) | |||
| 1784 | 1880 | ||
| 1785 | iter->buffer_iter[cpu] = | 1881 | iter->buffer_iter[cpu] = |
| 1786 | ring_buffer_read_start(iter->tr->buffer, cpu); | 1882 | ring_buffer_read_start(iter->tr->buffer, cpu); |
| 1787 | |||
| 1788 | if (!iter->buffer_iter[cpu]) | ||
| 1789 | goto fail_buffer; | ||
| 1790 | } | 1883 | } |
| 1791 | } else { | 1884 | } else { |
| 1792 | cpu = iter->cpu_file; | 1885 | cpu = iter->cpu_file; |
| 1793 | iter->buffer_iter[cpu] = | 1886 | iter->buffer_iter[cpu] = |
| 1794 | ring_buffer_read_start(iter->tr->buffer, cpu); | 1887 | ring_buffer_read_start(iter->tr->buffer, cpu); |
| 1795 | |||
| 1796 | if (!iter->buffer_iter[cpu]) | ||
| 1797 | goto fail; | ||
| 1798 | } | 1888 | } |
| 1799 | 1889 | ||
| 1800 | /* TODO stop tracer */ | 1890 | /* TODO stop tracer */ |
| @@ -2315,6 +2405,75 @@ int tracer_init(struct tracer *t, struct trace_array *tr) | |||
| 2315 | return t->init(tr); | 2405 | return t->init(tr); |
| 2316 | } | 2406 | } |
| 2317 | 2407 | ||
| 2408 | static int tracing_resize_ring_buffer(unsigned long size) | ||
| 2409 | { | ||
| 2410 | int ret; | ||
| 2411 | |||
| 2412 | /* | ||
| 2413 | * If kernel or user changes the size of the ring buffer | ||
| 2414 | * we use the size that was given, and we can forget about | ||
| 2415 | * expanding it later. | ||
| 2416 | */ | ||
| 2417 | ring_buffer_expanded = 1; | ||
| 2418 | |||
| 2419 | ret = ring_buffer_resize(global_trace.buffer, size); | ||
| 2420 | if (ret < 0) | ||
| 2421 | return ret; | ||
| 2422 | |||
| 2423 | ret = ring_buffer_resize(max_tr.buffer, size); | ||
| 2424 | if (ret < 0) { | ||
| 2425 | int r; | ||
| 2426 | |||
| 2427 | r = ring_buffer_resize(global_trace.buffer, | ||
| 2428 | global_trace.entries); | ||
| 2429 | if (r < 0) { | ||
| 2430 | /* | ||
| 2431 | * AARGH! We are left with different | ||
| 2432 | * size max buffer!!!! | ||
| 2433 | * The max buffer is our "snapshot" buffer. | ||
| 2434 | * When a tracer needs a snapshot (one of the | ||
| 2435 | * latency tracers), it swaps the max buffer | ||
| 2436 | * with the saved snap shot. We succeeded to | ||
| 2437 | * update the size of the main buffer, but failed to | ||
| 2438 | * update the size of the max buffer. But when we tried | ||
| 2439 | * to reset the main buffer to the original size, we | ||
| 2440 | * failed there too. This is very unlikely to | ||
| 2441 | * happen, but if it does, warn and kill all | ||
| 2442 | * tracing. | ||
| 2443 | */ | ||
| 2444 | WARN_ON(1); | ||
| 2445 | tracing_disabled = 1; | ||
| 2446 | } | ||
| 2447 | return ret; | ||
| 2448 | } | ||
| 2449 | |||
| 2450 | global_trace.entries = size; | ||
| 2451 | |||
| 2452 | return ret; | ||
| 2453 | } | ||
| 2454 | |||
| 2455 | /** | ||
| 2456 | * tracing_update_buffers - used by tracing facility to expand ring buffers | ||
| 2457 | * | ||
| 2458 | * To save on memory when the tracing is never used on a system with it | ||
| 2459 | * configured in. The ring buffers are set to a minimum size. But once | ||
| 2460 | * a user starts to use the tracing facility, then they need to grow | ||
| 2461 | * to their default size. | ||
| 2462 | * | ||
| 2463 | * This function is to be called when a tracer is about to be used. | ||
| 2464 | */ | ||
| 2465 | int tracing_update_buffers(void) | ||
| 2466 | { | ||
| 2467 | int ret = 0; | ||
| 2468 | |||
| 2469 | mutex_lock(&trace_types_lock); | ||
| 2470 | if (!ring_buffer_expanded) | ||
| 2471 | ret = tracing_resize_ring_buffer(trace_buf_size); | ||
| 2472 | mutex_unlock(&trace_types_lock); | ||
| 2473 | |||
| 2474 | return ret; | ||
| 2475 | } | ||
| 2476 | |||
| 2318 | struct trace_option_dentry; | 2477 | struct trace_option_dentry; |
| 2319 | 2478 | ||
| 2320 | static struct trace_option_dentry * | 2479 | static struct trace_option_dentry * |
| @@ -2331,6 +2490,14 @@ static int tracing_set_tracer(const char *buf) | |||
| 2331 | int ret = 0; | 2490 | int ret = 0; |
| 2332 | 2491 | ||
| 2333 | mutex_lock(&trace_types_lock); | 2492 | mutex_lock(&trace_types_lock); |
| 2493 | |||
| 2494 | if (!ring_buffer_expanded) { | ||
| 2495 | ret = tracing_resize_ring_buffer(trace_buf_size); | ||
| 2496 | if (ret < 0) | ||
| 2497 | return ret; | ||
| 2498 | ret = 0; | ||
| 2499 | } | ||
| 2500 | |||
| 2334 | for (t = trace_types; t; t = t->next) { | 2501 | for (t = trace_types; t; t = t->next) { |
| 2335 | if (strcmp(t->name, buf) == 0) | 2502 | if (strcmp(t->name, buf) == 0) |
| 2336 | break; | 2503 | break; |
| @@ -2856,10 +3023,18 @@ tracing_entries_read(struct file *filp, char __user *ubuf, | |||
| 2856 | size_t cnt, loff_t *ppos) | 3023 | size_t cnt, loff_t *ppos) |
| 2857 | { | 3024 | { |
| 2858 | struct trace_array *tr = filp->private_data; | 3025 | struct trace_array *tr = filp->private_data; |
| 2859 | char buf[64]; | 3026 | char buf[96]; |
| 2860 | int r; | 3027 | int r; |
| 2861 | 3028 | ||
| 2862 | r = sprintf(buf, "%lu\n", tr->entries >> 10); | 3029 | mutex_lock(&trace_types_lock); |
| 3030 | if (!ring_buffer_expanded) | ||
| 3031 | r = sprintf(buf, "%lu (expanded: %lu)\n", | ||
| 3032 | tr->entries >> 10, | ||
| 3033 | trace_buf_size >> 10); | ||
| 3034 | else | ||
| 3035 | r = sprintf(buf, "%lu\n", tr->entries >> 10); | ||
| 3036 | mutex_unlock(&trace_types_lock); | ||
| 3037 | |||
| 2863 | return simple_read_from_buffer(ubuf, cnt, ppos, buf, r); | 3038 | return simple_read_from_buffer(ubuf, cnt, ppos, buf, r); |
| 2864 | } | 3039 | } |
| 2865 | 3040 | ||
| @@ -2903,28 +3078,11 @@ tracing_entries_write(struct file *filp, const char __user *ubuf, | |||
| 2903 | val <<= 10; | 3078 | val <<= 10; |
| 2904 | 3079 | ||
| 2905 | if (val != global_trace.entries) { | 3080 | if (val != global_trace.entries) { |
| 2906 | ret = ring_buffer_resize(global_trace.buffer, val); | 3081 | ret = tracing_resize_ring_buffer(val); |
| 2907 | if (ret < 0) { | 3082 | if (ret < 0) { |
| 2908 | cnt = ret; | 3083 | cnt = ret; |
| 2909 | goto out; | 3084 | goto out; |
| 2910 | } | 3085 | } |
| 2911 | |||
| 2912 | ret = ring_buffer_resize(max_tr.buffer, val); | ||
| 2913 | if (ret < 0) { | ||
| 2914 | int r; | ||
| 2915 | cnt = ret; | ||
| 2916 | r = ring_buffer_resize(global_trace.buffer, | ||
| 2917 | global_trace.entries); | ||
| 2918 | if (r < 0) { | ||
| 2919 | /* AARGH! We are left with different | ||
| 2920 | * size max buffer!!!! */ | ||
| 2921 | WARN_ON(1); | ||
| 2922 | tracing_disabled = 1; | ||
| 2923 | } | ||
| 2924 | goto out; | ||
| 2925 | } | ||
| 2926 | |||
| 2927 | global_trace.entries = val; | ||
| 2928 | } | 3086 | } |
| 2929 | 3087 | ||
| 2930 | filp->f_pos += cnt; | 3088 | filp->f_pos += cnt; |
| @@ -3385,6 +3543,11 @@ static void tracing_init_debugfs_percpu(long cpu) | |||
| 3385 | (void *) cpu, &tracing_fops); | 3543 | (void *) cpu, &tracing_fops); |
| 3386 | if (!entry) | 3544 | if (!entry) |
| 3387 | pr_warning("Could not create debugfs 'trace' entry\n"); | 3545 | pr_warning("Could not create debugfs 'trace' entry\n"); |
| 3546 | |||
| 3547 | entry = debugfs_create_file("trace_pipe_raw", 0444, d_cpu, | ||
| 3548 | (void *) cpu, &tracing_buffers_fops); | ||
| 3549 | if (!entry) | ||
| 3550 | pr_warning("Could not create debugfs 'trace_pipe_raw' entry\n"); | ||
| 3388 | } | 3551 | } |
| 3389 | 3552 | ||
| 3390 | #ifdef CONFIG_FTRACE_SELFTEST | 3553 | #ifdef CONFIG_FTRACE_SELFTEST |
| @@ -3668,7 +3831,6 @@ static __init void create_trace_options_dir(void) | |||
| 3668 | static __init int tracer_init_debugfs(void) | 3831 | static __init int tracer_init_debugfs(void) |
| 3669 | { | 3832 | { |
| 3670 | struct dentry *d_tracer; | 3833 | struct dentry *d_tracer; |
| 3671 | struct dentry *buffers; | ||
| 3672 | struct dentry *entry; | 3834 | struct dentry *entry; |
| 3673 | int cpu; | 3835 | int cpu; |
| 3674 | 3836 | ||
| @@ -3741,26 +3903,6 @@ static __init int tracer_init_debugfs(void) | |||
| 3741 | pr_warning("Could not create debugfs " | 3903 | pr_warning("Could not create debugfs " |
| 3742 | "'trace_marker' entry\n"); | 3904 | "'trace_marker' entry\n"); |
| 3743 | 3905 | ||
| 3744 | buffers = debugfs_create_dir("binary_buffers", d_tracer); | ||
| 3745 | |||
| 3746 | if (!buffers) | ||
| 3747 | pr_warning("Could not create buffers directory\n"); | ||
| 3748 | else { | ||
| 3749 | int cpu; | ||
| 3750 | char buf[64]; | ||
| 3751 | |||
| 3752 | for_each_tracing_cpu(cpu) { | ||
| 3753 | sprintf(buf, "%d", cpu); | ||
| 3754 | |||
| 3755 | entry = debugfs_create_file(buf, 0444, buffers, | ||
| 3756 | (void *)(long)cpu, | ||
| 3757 | &tracing_buffers_fops); | ||
| 3758 | if (!entry) | ||
| 3759 | pr_warning("Could not create debugfs buffers " | ||
| 3760 | "'%s' entry\n", buf); | ||
| 3761 | } | ||
| 3762 | } | ||
| 3763 | |||
| 3764 | #ifdef CONFIG_DYNAMIC_FTRACE | 3906 | #ifdef CONFIG_DYNAMIC_FTRACE |
| 3765 | entry = debugfs_create_file("dyn_ftrace_total_info", 0444, d_tracer, | 3907 | entry = debugfs_create_file("dyn_ftrace_total_info", 0444, d_tracer, |
| 3766 | &ftrace_update_tot_cnt, | 3908 | &ftrace_update_tot_cnt, |
| @@ -3916,6 +4058,7 @@ void ftrace_dump(void) | |||
| 3916 | __init static int tracer_alloc_buffers(void) | 4058 | __init static int tracer_alloc_buffers(void) |
| 3917 | { | 4059 | { |
| 3918 | struct trace_array_cpu *data; | 4060 | struct trace_array_cpu *data; |
| 4061 | int ring_buf_size; | ||
| 3919 | int i; | 4062 | int i; |
| 3920 | int ret = -ENOMEM; | 4063 | int ret = -ENOMEM; |
| 3921 | 4064 | ||
| @@ -3928,12 +4071,18 @@ __init static int tracer_alloc_buffers(void) | |||
| 3928 | if (!alloc_cpumask_var(&tracing_reader_cpumask, GFP_KERNEL)) | 4071 | if (!alloc_cpumask_var(&tracing_reader_cpumask, GFP_KERNEL)) |
| 3929 | goto out_free_tracing_cpumask; | 4072 | goto out_free_tracing_cpumask; |
| 3930 | 4073 | ||
| 4074 | /* To save memory, keep the ring buffer size to its minimum */ | ||
| 4075 | if (ring_buffer_expanded) | ||
| 4076 | ring_buf_size = trace_buf_size; | ||
| 4077 | else | ||
| 4078 | ring_buf_size = 1; | ||
| 4079 | |||
| 3931 | cpumask_copy(tracing_buffer_mask, cpu_possible_mask); | 4080 | cpumask_copy(tracing_buffer_mask, cpu_possible_mask); |
| 3932 | cpumask_copy(tracing_cpumask, cpu_all_mask); | 4081 | cpumask_copy(tracing_cpumask, cpu_all_mask); |
| 3933 | cpumask_clear(tracing_reader_cpumask); | 4082 | cpumask_clear(tracing_reader_cpumask); |
| 3934 | 4083 | ||
| 3935 | /* TODO: make the number of buffers hot pluggable with CPUS */ | 4084 | /* TODO: make the number of buffers hot pluggable with CPUS */ |
| 3936 | global_trace.buffer = ring_buffer_alloc(trace_buf_size, | 4085 | global_trace.buffer = ring_buffer_alloc(ring_buf_size, |
| 3937 | TRACE_BUFFER_FLAGS); | 4086 | TRACE_BUFFER_FLAGS); |
| 3938 | if (!global_trace.buffer) { | 4087 | if (!global_trace.buffer) { |
| 3939 | printk(KERN_ERR "tracer: failed to allocate ring buffer!\n"); | 4088 | printk(KERN_ERR "tracer: failed to allocate ring buffer!\n"); |
| @@ -3944,7 +4093,7 @@ __init static int tracer_alloc_buffers(void) | |||
| 3944 | 4093 | ||
| 3945 | 4094 | ||
| 3946 | #ifdef CONFIG_TRACER_MAX_TRACE | 4095 | #ifdef CONFIG_TRACER_MAX_TRACE |
| 3947 | max_tr.buffer = ring_buffer_alloc(trace_buf_size, | 4096 | max_tr.buffer = ring_buffer_alloc(ring_buf_size, |
| 3948 | TRACE_BUFFER_FLAGS); | 4097 | TRACE_BUFFER_FLAGS); |
| 3949 | if (!max_tr.buffer) { | 4098 | if (!max_tr.buffer) { |
| 3950 | printk(KERN_ERR "tracer: failed to allocate max ring buffer!\n"); | 4099 | printk(KERN_ERR "tracer: failed to allocate max ring buffer!\n"); |
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index d80ca0d464d9..f56162806f50 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h | |||
| @@ -20,6 +20,7 @@ enum trace_type { | |||
| 20 | TRACE_WAKE, | 20 | TRACE_WAKE, |
| 21 | TRACE_STACK, | 21 | TRACE_STACK, |
| 22 | TRACE_PRINT, | 22 | TRACE_PRINT, |
| 23 | TRACE_BPRINT, | ||
| 23 | TRACE_SPECIAL, | 24 | TRACE_SPECIAL, |
| 24 | TRACE_MMIO_RW, | 25 | TRACE_MMIO_RW, |
| 25 | TRACE_MMIO_MAP, | 26 | TRACE_MMIO_MAP, |
| @@ -119,7 +120,7 @@ struct userstack_entry { | |||
| 119 | /* | 120 | /* |
| 120 | * trace_printk entry: | 121 | * trace_printk entry: |
| 121 | */ | 122 | */ |
| 122 | struct print_entry { | 123 | struct bprint_entry { |
| 123 | struct trace_entry ent; | 124 | struct trace_entry ent; |
| 124 | unsigned long ip; | 125 | unsigned long ip; |
| 125 | int depth; | 126 | int depth; |
| @@ -127,6 +128,13 @@ struct print_entry { | |||
| 127 | u32 buf[]; | 128 | u32 buf[]; |
| 128 | }; | 129 | }; |
| 129 | 130 | ||
| 131 | struct print_entry { | ||
| 132 | struct trace_entry ent; | ||
| 133 | unsigned long ip; | ||
| 134 | int depth; | ||
| 135 | char buf[]; | ||
| 136 | }; | ||
| 137 | |||
| 130 | #define TRACE_OLD_SIZE 88 | 138 | #define TRACE_OLD_SIZE 88 |
| 131 | 139 | ||
| 132 | struct trace_field_cont { | 140 | struct trace_field_cont { |
| @@ -301,6 +309,7 @@ extern void __ftrace_bad_type(void); | |||
| 301 | IF_ASSIGN(var, ent, struct stack_entry, TRACE_STACK); \ | 309 | IF_ASSIGN(var, ent, struct stack_entry, TRACE_STACK); \ |
| 302 | IF_ASSIGN(var, ent, struct userstack_entry, TRACE_USER_STACK);\ | 310 | IF_ASSIGN(var, ent, struct userstack_entry, TRACE_USER_STACK);\ |
| 303 | IF_ASSIGN(var, ent, struct print_entry, TRACE_PRINT); \ | 311 | IF_ASSIGN(var, ent, struct print_entry, TRACE_PRINT); \ |
| 312 | IF_ASSIGN(var, ent, struct bprint_entry, TRACE_BPRINT); \ | ||
| 304 | IF_ASSIGN(var, ent, struct special_entry, 0); \ | 313 | IF_ASSIGN(var, ent, struct special_entry, 0); \ |
| 305 | IF_ASSIGN(var, ent, struct trace_mmiotrace_rw, \ | 314 | IF_ASSIGN(var, ent, struct trace_mmiotrace_rw, \ |
| 306 | TRACE_MMIO_RW); \ | 315 | TRACE_MMIO_RW); \ |
| @@ -589,6 +598,8 @@ extern int trace_selftest_startup_branch(struct tracer *trace, | |||
| 589 | extern void *head_page(struct trace_array_cpu *data); | 598 | extern void *head_page(struct trace_array_cpu *data); |
| 590 | extern long ns2usecs(cycle_t nsec); | 599 | extern long ns2usecs(cycle_t nsec); |
| 591 | extern int | 600 | extern int |
| 601 | trace_vbprintk(unsigned long ip, int depth, const char *fmt, va_list args); | ||
| 602 | extern int | ||
| 592 | trace_vprintk(unsigned long ip, int depth, const char *fmt, va_list args); | 603 | trace_vprintk(unsigned long ip, int depth, const char *fmt, va_list args); |
| 593 | 604 | ||
| 594 | extern unsigned long trace_flags; | 605 | extern unsigned long trace_flags; |
| @@ -756,6 +767,9 @@ static inline void trace_branch_disable(void) | |||
| 756 | } | 767 | } |
| 757 | #endif /* CONFIG_BRANCH_TRACER */ | 768 | #endif /* CONFIG_BRANCH_TRACER */ |
| 758 | 769 | ||
| 770 | /* set ring buffers to default size if not already done so */ | ||
| 771 | int tracing_update_buffers(void); | ||
| 772 | |||
| 759 | /* trace event type bit fields, not numeric */ | 773 | /* trace event type bit fields, not numeric */ |
| 760 | enum { | 774 | enum { |
| 761 | TRACE_EVENT_TYPE_PRINTF = 1, | 775 | TRACE_EVENT_TYPE_PRINTF = 1, |
| @@ -778,4 +792,26 @@ void event_trace_printk(unsigned long ip, const char *fmt, ...); | |||
| 778 | extern struct ftrace_event_call __start_ftrace_events[]; | 792 | extern struct ftrace_event_call __start_ftrace_events[]; |
| 779 | extern struct ftrace_event_call __stop_ftrace_events[]; | 793 | extern struct ftrace_event_call __stop_ftrace_events[]; |
| 780 | 794 | ||
| 795 | extern const char *__start___trace_bprintk_fmt[]; | ||
| 796 | extern const char *__stop___trace_bprintk_fmt[]; | ||
| 797 | |||
| 798 | /* | ||
| 799 | * The double __builtin_constant_p is because gcc will give us an error | ||
| 800 | * if we try to allocate the static variable to fmt if it is not a | ||
| 801 | * constant. Even with the outer if statement optimizing out. | ||
| 802 | */ | ||
| 803 | #define event_trace_printk(ip, fmt, args...) \ | ||
| 804 | do { \ | ||
| 805 | __trace_printk_check_format(fmt, ##args); \ | ||
| 806 | tracing_record_cmdline(current); \ | ||
| 807 | if (__builtin_constant_p(fmt)) { \ | ||
| 808 | static const char *trace_printk_fmt \ | ||
| 809 | __attribute__((section("__trace_printk_fmt"))) = \ | ||
| 810 | __builtin_constant_p(fmt) ? fmt : NULL; \ | ||
| 811 | \ | ||
| 812 | __trace_bprintk(ip, trace_printk_fmt, ##args); \ | ||
| 813 | } else \ | ||
| 814 | __trace_printk(ip, fmt, ##args); \ | ||
| 815 | } while (0) | ||
| 816 | |||
| 781 | #endif /* _LINUX_KERNEL_TRACE_H */ | 817 | #endif /* _LINUX_KERNEL_TRACE_H */ |
diff --git a/kernel/trace/trace_event_types.h b/kernel/trace/trace_event_types.h index 5cca4c978bde..019915063fe6 100644 --- a/kernel/trace/trace_event_types.h +++ b/kernel/trace/trace_event_types.h | |||
| @@ -102,7 +102,7 @@ TRACE_EVENT_FORMAT(user_stack, TRACE_USER_STACK, userstack_entry, ignore, | |||
| 102 | "\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n") | 102 | "\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n") |
| 103 | ); | 103 | ); |
| 104 | 104 | ||
| 105 | TRACE_EVENT_FORMAT(print, TRACE_PRINT, print_entry, ignore, | 105 | TRACE_EVENT_FORMAT(bprint, TRACE_BPRINT, bprint_entry, ignore, |
| 106 | TRACE_STRUCT( | 106 | TRACE_STRUCT( |
| 107 | TRACE_FIELD(unsigned long, ip, ip) | 107 | TRACE_FIELD(unsigned long, ip, ip) |
| 108 | TRACE_FIELD(unsigned int, depth, depth) | 108 | TRACE_FIELD(unsigned int, depth, depth) |
| @@ -112,6 +112,15 @@ TRACE_EVENT_FORMAT(print, TRACE_PRINT, print_entry, ignore, | |||
| 112 | TP_RAW_FMT("%08lx (%d) fmt:%p %s") | 112 | TP_RAW_FMT("%08lx (%d) fmt:%p %s") |
| 113 | ); | 113 | ); |
| 114 | 114 | ||
| 115 | TRACE_EVENT_FORMAT(print, TRACE_PRINT, print_entry, ignore, | ||
| 116 | TRACE_STRUCT( | ||
| 117 | TRACE_FIELD(unsigned long, ip, ip) | ||
| 118 | TRACE_FIELD(unsigned int, depth, depth) | ||
| 119 | TRACE_FIELD_ZERO_CHAR(buf) | ||
| 120 | ), | ||
| 121 | TP_RAW_FMT("%08lx (%d) fmt:%p %s") | ||
| 122 | ); | ||
| 123 | |||
| 115 | TRACE_EVENT_FORMAT(branch, TRACE_BRANCH, trace_branch, ignore, | 124 | TRACE_EVENT_FORMAT(branch, TRACE_BRANCH, trace_branch, ignore, |
| 116 | TRACE_STRUCT( | 125 | TRACE_STRUCT( |
| 117 | TRACE_FIELD(unsigned int, line, line) | 126 | TRACE_FIELD(unsigned int, line, line) |
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c index 769dfd00fc85..238ea95a4115 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c | |||
| @@ -24,16 +24,6 @@ static DEFINE_MUTEX(event_mutex); | |||
| 24 | (unsigned long)event < (unsigned long)__stop_ftrace_events; \ | 24 | (unsigned long)event < (unsigned long)__stop_ftrace_events; \ |
| 25 | event++) | 25 | event++) |
| 26 | 26 | ||
| 27 | void event_trace_printk(unsigned long ip, const char *fmt, ...) | ||
| 28 | { | ||
| 29 | va_list ap; | ||
| 30 | |||
| 31 | va_start(ap, fmt); | ||
| 32 | tracing_record_cmdline(current); | ||
| 33 | trace_vprintk(ip, task_curr_ret_stack(current), fmt, ap); | ||
| 34 | va_end(ap); | ||
| 35 | } | ||
| 36 | |||
| 37 | static void ftrace_clear_events(void) | 27 | static void ftrace_clear_events(void) |
| 38 | { | 28 | { |
| 39 | struct ftrace_event_call *call = (void *)__start_ftrace_events; | 29 | struct ftrace_event_call *call = (void *)__start_ftrace_events; |
| @@ -141,6 +131,10 @@ ftrace_event_write(struct file *file, const char __user *ubuf, | |||
| 141 | if (!cnt || cnt < 0) | 131 | if (!cnt || cnt < 0) |
| 142 | return 0; | 132 | return 0; |
| 143 | 133 | ||
| 134 | ret = tracing_update_buffers(); | ||
| 135 | if (ret < 0) | ||
| 136 | return ret; | ||
| 137 | |||
| 144 | ret = get_user(ch, ubuf++); | 138 | ret = get_user(ch, ubuf++); |
| 145 | if (ret) | 139 | if (ret) |
| 146 | return ret; | 140 | return ret; |
| @@ -331,6 +325,10 @@ event_enable_write(struct file *filp, const char __user *ubuf, size_t cnt, | |||
| 331 | if (ret < 0) | 325 | if (ret < 0) |
| 332 | return ret; | 326 | return ret; |
| 333 | 327 | ||
| 328 | ret = tracing_update_buffers(); | ||
| 329 | if (ret < 0) | ||
| 330 | return ret; | ||
| 331 | |||
| 334 | switch (val) { | 332 | switch (val) { |
| 335 | case 0: | 333 | case 0: |
| 336 | case 1: | 334 | case 1: |
diff --git a/kernel/trace/trace_events_stage_2.h b/kernel/trace/trace_events_stage_2.h index ca347afd6aa0..5117c43f5c67 100644 --- a/kernel/trace/trace_events_stage_2.h +++ b/kernel/trace/trace_events_stage_2.h | |||
| @@ -57,7 +57,7 @@ ftrace_raw_output_##call(struct trace_iterator *iter, int flags) \ | |||
| 57 | \ | 57 | \ |
| 58 | field = (typeof(field))entry; \ | 58 | field = (typeof(field))entry; \ |
| 59 | \ | 59 | \ |
| 60 | ret = trace_seq_printf(s, print); \ | 60 | ret = trace_seq_printf(s, #call ": " print); \ |
| 61 | if (!ret) \ | 61 | if (!ret) \ |
| 62 | return TRACE_TYPE_PARTIAL_LINE; \ | 62 | return TRACE_TYPE_PARTIAL_LINE; \ |
| 63 | \ | 63 | \ |
diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c index 8566c14b3e9a..4c388607ed67 100644 --- a/kernel/trace/trace_functions_graph.c +++ b/kernel/trace/trace_functions_graph.c | |||
| @@ -684,7 +684,7 @@ print_graph_return(struct ftrace_graph_ret *trace, struct trace_seq *s, | |||
| 684 | } | 684 | } |
| 685 | 685 | ||
| 686 | static enum print_line_t | 686 | static enum print_line_t |
| 687 | print_graph_comment(struct print_entry *trace, struct trace_seq *s, | 687 | print_graph_comment(struct bprint_entry *trace, struct trace_seq *s, |
| 688 | struct trace_entry *ent, struct trace_iterator *iter) | 688 | struct trace_entry *ent, struct trace_iterator *iter) |
| 689 | { | 689 | { |
| 690 | int i; | 690 | int i; |
| @@ -781,8 +781,8 @@ print_graph_function(struct trace_iterator *iter) | |||
| 781 | trace_assign_type(field, entry); | 781 | trace_assign_type(field, entry); |
| 782 | return print_graph_return(&field->ret, s, entry, iter); | 782 | return print_graph_return(&field->ret, s, entry, iter); |
| 783 | } | 783 | } |
| 784 | case TRACE_PRINT: { | 784 | case TRACE_BPRINT: { |
| 785 | struct print_entry *field; | 785 | struct bprint_entry *field; |
| 786 | trace_assign_type(field, entry); | 786 | trace_assign_type(field, entry); |
| 787 | return print_graph_comment(field, s, entry, iter); | 787 | return print_graph_comment(field, s, entry, iter); |
| 788 | } | 788 | } |
diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c index 23e346a734ca..f095916e477f 100644 --- a/kernel/trace/trace_mmiotrace.c +++ b/kernel/trace/trace_mmiotrace.c | |||
| @@ -254,6 +254,7 @@ static enum print_line_t mmio_print_mark(struct trace_iterator *iter) | |||
| 254 | { | 254 | { |
| 255 | struct trace_entry *entry = iter->ent; | 255 | struct trace_entry *entry = iter->ent; |
| 256 | struct print_entry *print = (struct print_entry *)entry; | 256 | struct print_entry *print = (struct print_entry *)entry; |
| 257 | const char *msg = print->buf; | ||
| 257 | struct trace_seq *s = &iter->seq; | 258 | struct trace_seq *s = &iter->seq; |
| 258 | unsigned long long t = ns2usecs(iter->ts); | 259 | unsigned long long t = ns2usecs(iter->ts); |
| 259 | unsigned long usec_rem = do_div(t, USEC_PER_SEC); | 260 | unsigned long usec_rem = do_div(t, USEC_PER_SEC); |
| @@ -261,11 +262,7 @@ static enum print_line_t mmio_print_mark(struct trace_iterator *iter) | |||
| 261 | int ret; | 262 | int ret; |
| 262 | 263 | ||
| 263 | /* The trailing newline must be in the message. */ | 264 | /* The trailing newline must be in the message. */ |
| 264 | ret = trace_seq_printf(s, "MARK %u.%06lu ", secs, usec_rem); | 265 | ret = trace_seq_printf(s, "MARK %u.%06lu %s", secs, usec_rem, msg); |
| 265 | if (!ret) | ||
| 266 | return TRACE_TYPE_PARTIAL_LINE; | ||
| 267 | |||
| 268 | ret = trace_seq_bprintf(s, print->fmt, print->buf); | ||
| 269 | if (!ret) | 266 | if (!ret) |
| 270 | return TRACE_TYPE_PARTIAL_LINE; | 267 | return TRACE_TYPE_PARTIAL_LINE; |
| 271 | 268 | ||
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index 491832af9ba1..ea9d3b410c7a 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c | |||
| @@ -832,13 +832,13 @@ static struct trace_event trace_user_stack_event = { | |||
| 832 | .binary = trace_special_bin, | 832 | .binary = trace_special_bin, |
| 833 | }; | 833 | }; |
| 834 | 834 | ||
| 835 | /* TRACE_PRINT */ | 835 | /* TRACE_BPRINT */ |
| 836 | static enum print_line_t | 836 | static enum print_line_t |
| 837 | trace_print_print(struct trace_iterator *iter, int flags) | 837 | trace_bprint_print(struct trace_iterator *iter, int flags) |
| 838 | { | 838 | { |
| 839 | struct trace_entry *entry = iter->ent; | 839 | struct trace_entry *entry = iter->ent; |
| 840 | struct trace_seq *s = &iter->seq; | 840 | struct trace_seq *s = &iter->seq; |
| 841 | struct print_entry *field; | 841 | struct bprint_entry *field; |
| 842 | 842 | ||
| 843 | trace_assign_type(field, entry); | 843 | trace_assign_type(field, entry); |
| 844 | 844 | ||
| @@ -858,9 +858,10 @@ trace_print_print(struct trace_iterator *iter, int flags) | |||
| 858 | } | 858 | } |
| 859 | 859 | ||
| 860 | 860 | ||
| 861 | static enum print_line_t trace_print_raw(struct trace_iterator *iter, int flags) | 861 | static enum print_line_t |
| 862 | trace_bprint_raw(struct trace_iterator *iter, int flags) | ||
| 862 | { | 863 | { |
| 863 | struct print_entry *field; | 864 | struct bprint_entry *field; |
| 864 | struct trace_seq *s = &iter->seq; | 865 | struct trace_seq *s = &iter->seq; |
| 865 | 866 | ||
| 866 | trace_assign_type(field, iter->ent); | 867 | trace_assign_type(field, iter->ent); |
| @@ -878,12 +879,55 @@ static enum print_line_t trace_print_raw(struct trace_iterator *iter, int flags) | |||
| 878 | } | 879 | } |
| 879 | 880 | ||
| 880 | 881 | ||
| 882 | static struct trace_event trace_bprint_event = { | ||
| 883 | .type = TRACE_BPRINT, | ||
| 884 | .trace = trace_bprint_print, | ||
| 885 | .raw = trace_bprint_raw, | ||
| 886 | }; | ||
| 887 | |||
| 888 | /* TRACE_PRINT */ | ||
| 889 | static enum print_line_t trace_print_print(struct trace_iterator *iter, | ||
| 890 | int flags) | ||
| 891 | { | ||
| 892 | struct print_entry *field; | ||
| 893 | struct trace_seq *s = &iter->seq; | ||
| 894 | |||
| 895 | trace_assign_type(field, iter->ent); | ||
| 896 | |||
| 897 | if (!seq_print_ip_sym(s, field->ip, flags)) | ||
| 898 | goto partial; | ||
| 899 | |||
| 900 | if (!trace_seq_printf(s, ": %s", field->buf)) | ||
| 901 | goto partial; | ||
| 902 | |||
| 903 | return TRACE_TYPE_HANDLED; | ||
| 904 | |||
| 905 | partial: | ||
| 906 | return TRACE_TYPE_PARTIAL_LINE; | ||
| 907 | } | ||
| 908 | |||
| 909 | static enum print_line_t trace_print_raw(struct trace_iterator *iter, int flags) | ||
| 910 | { | ||
| 911 | struct print_entry *field; | ||
| 912 | |||
| 913 | trace_assign_type(field, iter->ent); | ||
| 914 | |||
| 915 | if (!trace_seq_printf(&iter->seq, "# %lx %s", field->ip, field->buf)) | ||
| 916 | goto partial; | ||
| 917 | |||
| 918 | return TRACE_TYPE_HANDLED; | ||
| 919 | |||
| 920 | partial: | ||
| 921 | return TRACE_TYPE_PARTIAL_LINE; | ||
| 922 | } | ||
| 923 | |||
| 881 | static struct trace_event trace_print_event = { | 924 | static struct trace_event trace_print_event = { |
| 882 | .type = TRACE_PRINT, | 925 | .type = TRACE_PRINT, |
| 883 | .trace = trace_print_print, | 926 | .trace = trace_print_print, |
| 884 | .raw = trace_print_raw, | 927 | .raw = trace_print_raw, |
| 885 | }; | 928 | }; |
| 886 | 929 | ||
| 930 | |||
| 887 | static struct trace_event *events[] __initdata = { | 931 | static struct trace_event *events[] __initdata = { |
| 888 | &trace_fn_event, | 932 | &trace_fn_event, |
| 889 | &trace_ctx_event, | 933 | &trace_ctx_event, |
| @@ -891,6 +935,7 @@ static struct trace_event *events[] __initdata = { | |||
| 891 | &trace_special_event, | 935 | &trace_special_event, |
| 892 | &trace_stack_event, | 936 | &trace_stack_event, |
| 893 | &trace_user_stack_event, | 937 | &trace_user_stack_event, |
| 938 | &trace_bprint_event, | ||
| 894 | &trace_print_event, | 939 | &trace_print_event, |
| 895 | NULL | 940 | NULL |
| 896 | }; | 941 | }; |
diff --git a/kernel/trace/trace_printk.c b/kernel/trace/trace_printk.c index a50aea22e929..486785214e3e 100644 --- a/kernel/trace/trace_printk.c +++ b/kernel/trace/trace_printk.c | |||
| @@ -4,18 +4,19 @@ | |||
| 4 | * Copyright (C) 2008 Lai Jiangshan <laijs@cn.fujitsu.com> | 4 | * Copyright (C) 2008 Lai Jiangshan <laijs@cn.fujitsu.com> |
| 5 | * | 5 | * |
| 6 | */ | 6 | */ |
| 7 | #include <linux/seq_file.h> | ||
| 8 | #include <linux/debugfs.h> | ||
| 9 | #include <linux/uaccess.h> | ||
| 7 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
| 8 | #include <linux/ftrace.h> | 11 | #include <linux/ftrace.h> |
| 9 | #include <linux/string.h> | 12 | #include <linux/string.h> |
| 13 | #include <linux/module.h> | ||
| 14 | #include <linux/marker.h> | ||
| 15 | #include <linux/mutex.h> | ||
| 10 | #include <linux/ctype.h> | 16 | #include <linux/ctype.h> |
| 11 | #include <linux/list.h> | 17 | #include <linux/list.h> |
| 12 | #include <linux/mutex.h> | ||
| 13 | #include <linux/slab.h> | 18 | #include <linux/slab.h> |
| 14 | #include <linux/module.h> | ||
| 15 | #include <linux/seq_file.h> | ||
| 16 | #include <linux/fs.h> | 19 | #include <linux/fs.h> |
| 17 | #include <linux/marker.h> | ||
| 18 | #include <linux/uaccess.h> | ||
| 19 | 20 | ||
| 20 | #include "trace.h" | 21 | #include "trace.h" |
| 21 | 22 | ||
| @@ -99,7 +100,7 @@ struct notifier_block module_trace_bprintk_format_nb = { | |||
| 99 | .notifier_call = module_trace_bprintk_format_notify, | 100 | .notifier_call = module_trace_bprintk_format_notify, |
| 100 | }; | 101 | }; |
| 101 | 102 | ||
| 102 | int __trace_printk(unsigned long ip, const char *fmt, ...) | 103 | int __trace_bprintk(unsigned long ip, const char *fmt, ...) |
| 103 | { | 104 | { |
| 104 | int ret; | 105 | int ret; |
| 105 | va_list ap; | 106 | va_list ap; |
| @@ -111,13 +112,13 @@ int __trace_printk(unsigned long ip, const char *fmt, ...) | |||
| 111 | return 0; | 112 | return 0; |
| 112 | 113 | ||
| 113 | va_start(ap, fmt); | 114 | va_start(ap, fmt); |
| 114 | ret = trace_vprintk(ip, task_curr_ret_stack(current), fmt, ap); | 115 | ret = trace_vbprintk(ip, task_curr_ret_stack(current), fmt, ap); |
| 115 | va_end(ap); | 116 | va_end(ap); |
| 116 | return ret; | 117 | return ret; |
| 117 | } | 118 | } |
| 118 | EXPORT_SYMBOL_GPL(__trace_printk); | 119 | EXPORT_SYMBOL_GPL(__trace_bprintk); |
| 119 | 120 | ||
| 120 | int __ftrace_vprintk(unsigned long ip, const char *fmt, va_list ap) | 121 | int __ftrace_vbprintk(unsigned long ip, const char *fmt, va_list ap) |
| 121 | { | 122 | { |
| 122 | if (unlikely(!fmt)) | 123 | if (unlikely(!fmt)) |
| 123 | return 0; | 124 | return 0; |
| @@ -125,10 +126,141 @@ int __ftrace_vprintk(unsigned long ip, const char *fmt, va_list ap) | |||
| 125 | if (!(trace_flags & TRACE_ITER_PRINTK)) | 126 | if (!(trace_flags & TRACE_ITER_PRINTK)) |
| 126 | return 0; | 127 | return 0; |
| 127 | 128 | ||
| 129 | return trace_vbprintk(ip, task_curr_ret_stack(current), fmt, ap); | ||
| 130 | } | ||
| 131 | EXPORT_SYMBOL_GPL(__ftrace_vbprintk); | ||
| 132 | |||
| 133 | int __trace_printk(unsigned long ip, const char *fmt, ...) | ||
| 134 | { | ||
| 135 | int ret; | ||
| 136 | va_list ap; | ||
| 137 | |||
| 138 | if (!(trace_flags & TRACE_ITER_PRINTK)) | ||
| 139 | return 0; | ||
| 140 | |||
| 141 | va_start(ap, fmt); | ||
| 142 | ret = trace_vprintk(ip, task_curr_ret_stack(current), fmt, ap); | ||
| 143 | va_end(ap); | ||
| 144 | return ret; | ||
| 145 | } | ||
| 146 | EXPORT_SYMBOL_GPL(__trace_printk); | ||
| 147 | |||
| 148 | int __ftrace_vprintk(unsigned long ip, const char *fmt, va_list ap) | ||
| 149 | { | ||
| 150 | if (!(trace_flags & TRACE_ITER_PRINTK)) | ||
| 151 | return 0; | ||
| 152 | |||
| 128 | return trace_vprintk(ip, task_curr_ret_stack(current), fmt, ap); | 153 | return trace_vprintk(ip, task_curr_ret_stack(current), fmt, ap); |
| 129 | } | 154 | } |
| 130 | EXPORT_SYMBOL_GPL(__ftrace_vprintk); | 155 | EXPORT_SYMBOL_GPL(__ftrace_vprintk); |
| 131 | 156 | ||
| 157 | static void * | ||
| 158 | t_next(struct seq_file *m, void *v, loff_t *pos) | ||
| 159 | { | ||
| 160 | const char **fmt = m->private; | ||
| 161 | const char **next = fmt; | ||
| 162 | |||
| 163 | (*pos)++; | ||
| 164 | |||
| 165 | if ((unsigned long)fmt >= (unsigned long)__stop___trace_bprintk_fmt) | ||
| 166 | return NULL; | ||
| 167 | |||
| 168 | next = fmt; | ||
| 169 | m->private = ++next; | ||
| 170 | |||
| 171 | return fmt; | ||
| 172 | } | ||
| 173 | |||
| 174 | static void *t_start(struct seq_file *m, loff_t *pos) | ||
| 175 | { | ||
| 176 | return t_next(m, NULL, pos); | ||
| 177 | } | ||
| 178 | |||
| 179 | static int t_show(struct seq_file *m, void *v) | ||
| 180 | { | ||
| 181 | const char **fmt = v; | ||
| 182 | const char *str = *fmt; | ||
| 183 | int i; | ||
| 184 | |||
| 185 | seq_printf(m, "0x%lx : \"", (unsigned long)fmt); | ||
| 186 | |||
| 187 | /* | ||
| 188 | * Tabs and new lines need to be converted. | ||
| 189 | */ | ||
| 190 | for (i = 0; str[i]; i++) { | ||
| 191 | switch (str[i]) { | ||
| 192 | case '\n': | ||
| 193 | seq_puts(m, "\\n"); | ||
| 194 | break; | ||
| 195 | case '\t': | ||
| 196 | seq_puts(m, "\\t"); | ||
| 197 | break; | ||
| 198 | case '\\': | ||
| 199 | seq_puts(m, "\\"); | ||
| 200 | break; | ||
| 201 | case '"': | ||
| 202 | seq_puts(m, "\\\""); | ||
| 203 | break; | ||
| 204 | default: | ||
| 205 | seq_putc(m, str[i]); | ||
| 206 | } | ||
| 207 | } | ||
| 208 | seq_puts(m, "\"\n"); | ||
| 209 | |||
| 210 | return 0; | ||
| 211 | } | ||
| 212 | |||
| 213 | static void t_stop(struct seq_file *m, void *p) | ||
| 214 | { | ||
| 215 | } | ||
| 216 | |||
| 217 | static const struct seq_operations show_format_seq_ops = { | ||
| 218 | .start = t_start, | ||
| 219 | .next = t_next, | ||
| 220 | .show = t_show, | ||
| 221 | .stop = t_stop, | ||
| 222 | }; | ||
| 223 | |||
| 224 | static int | ||
| 225 | ftrace_formats_open(struct inode *inode, struct file *file) | ||
| 226 | { | ||
| 227 | int ret; | ||
| 228 | |||
| 229 | ret = seq_open(file, &show_format_seq_ops); | ||
| 230 | if (!ret) { | ||
| 231 | struct seq_file *m = file->private_data; | ||
| 232 | |||
| 233 | m->private = __start___trace_bprintk_fmt; | ||
| 234 | } | ||
| 235 | return ret; | ||
| 236 | } | ||
| 237 | |||
| 238 | static const struct file_operations ftrace_formats_fops = { | ||
| 239 | .open = ftrace_formats_open, | ||
| 240 | .read = seq_read, | ||
| 241 | .llseek = seq_lseek, | ||
| 242 | .release = seq_release, | ||
| 243 | }; | ||
| 244 | |||
| 245 | static __init int init_trace_printk_function_export(void) | ||
| 246 | { | ||
| 247 | struct dentry *d_tracer; | ||
| 248 | struct dentry *entry; | ||
| 249 | |||
| 250 | d_tracer = tracing_init_dentry(); | ||
| 251 | if (!d_tracer) | ||
| 252 | return 0; | ||
| 253 | |||
| 254 | entry = debugfs_create_file("printk_formats", 0444, d_tracer, | ||
| 255 | NULL, &ftrace_formats_fops); | ||
| 256 | if (!entry) | ||
| 257 | pr_warning("Could not create debugfs " | ||
| 258 | "'printk_formats' entry\n"); | ||
| 259 | |||
| 260 | return 0; | ||
| 261 | } | ||
| 262 | |||
| 263 | fs_initcall(init_trace_printk_function_export); | ||
| 132 | 264 | ||
| 133 | static __init int init_trace_printk(void) | 265 | static __init int init_trace_printk(void) |
| 134 | { | 266 | { |
diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c index d0871bc0aca5..c750f65f9661 100644 --- a/kernel/trace/trace_stack.c +++ b/kernel/trace/trace_stack.c | |||
| @@ -245,16 +245,31 @@ static int trace_lookup_stack(struct seq_file *m, long i) | |||
| 245 | #endif | 245 | #endif |
| 246 | } | 246 | } |
| 247 | 247 | ||
| 248 | static void print_disabled(struct seq_file *m) | ||
| 249 | { | ||
| 250 | seq_puts(m, "#\n" | ||
| 251 | "# Stack tracer disabled\n" | ||
| 252 | "#\n" | ||
| 253 | "# To enable the stack tracer, either add 'stacktrace' to the\n" | ||
| 254 | "# kernel command line\n" | ||
| 255 | "# or 'echo 1 > /proc/sys/kernel/stack_tracer_enabled'\n" | ||
| 256 | "#\n"); | ||
| 257 | } | ||
| 258 | |||
| 248 | static int t_show(struct seq_file *m, void *v) | 259 | static int t_show(struct seq_file *m, void *v) |
| 249 | { | 260 | { |
| 250 | long i; | 261 | long i; |
| 251 | int size; | 262 | int size; |
| 252 | 263 | ||
| 253 | if (v == SEQ_START_TOKEN) { | 264 | if (v == SEQ_START_TOKEN) { |
| 254 | seq_printf(m, " Depth Size Location" | 265 | seq_printf(m, " Depth Size Location" |
| 255 | " (%d entries)\n" | 266 | " (%d entries)\n" |
| 256 | " ----- ---- --------\n", | 267 | " ----- ---- --------\n", |
| 257 | max_stack_trace.nr_entries); | 268 | max_stack_trace.nr_entries); |
| 269 | |||
| 270 | if (!stack_tracer_enabled && !max_stack_size) | ||
| 271 | print_disabled(m); | ||
| 272 | |||
| 258 | return 0; | 273 | return 0; |
| 259 | } | 274 | } |
| 260 | 275 | ||
diff --git a/kernel/trace/trace_workqueue.c b/kernel/trace/trace_workqueue.c index fb5ccac8bbc0..9ab035b58cf1 100644 --- a/kernel/trace/trace_workqueue.c +++ b/kernel/trace/trace_workqueue.c | |||
| @@ -193,12 +193,20 @@ static int workqueue_stat_show(struct seq_file *s, void *p) | |||
| 193 | struct cpu_workqueue_stats *cws = p; | 193 | struct cpu_workqueue_stats *cws = p; |
| 194 | unsigned long flags; | 194 | unsigned long flags; |
| 195 | int cpu = cws->cpu; | 195 | int cpu = cws->cpu; |
| 196 | struct task_struct *tsk = find_task_by_vpid(cws->pid); | 196 | struct pid *pid; |
| 197 | 197 | struct task_struct *tsk; | |
| 198 | seq_printf(s, "%3d %6d %6u %s\n", cws->cpu, | 198 | |
| 199 | atomic_read(&cws->inserted), | 199 | pid = find_get_pid(cws->pid); |
| 200 | cws->executed, | 200 | if (pid) { |
| 201 | tsk ? tsk->comm : "<...>"); | 201 | tsk = get_pid_task(pid, PIDTYPE_PID); |
| 202 | if (tsk) { | ||
| 203 | seq_printf(s, "%3d %6d %6u %s\n", cws->cpu, | ||
| 204 | atomic_read(&cws->inserted), cws->executed, | ||
| 205 | tsk->comm); | ||
| 206 | put_task_struct(tsk); | ||
| 207 | } | ||
| 208 | put_pid(pid); | ||
| 209 | } | ||
| 202 | 210 | ||
| 203 | spin_lock_irqsave(&workqueue_cpu_stat(cpu)->lock, flags); | 211 | spin_lock_irqsave(&workqueue_cpu_stat(cpu)->lock, flags); |
| 204 | if (&cws->list == workqueue_cpu_stat(cpu)->list.next) | 212 | if (&cws->list == workqueue_cpu_stat(cpu)->list.next) |
diff --git a/lib/bitmap.c b/lib/bitmap.c index 1338469ac849..35a1f7ff4149 100644 --- a/lib/bitmap.c +++ b/lib/bitmap.c | |||
| @@ -948,15 +948,15 @@ done: | |||
| 948 | */ | 948 | */ |
| 949 | int bitmap_find_free_region(unsigned long *bitmap, int bits, int order) | 949 | int bitmap_find_free_region(unsigned long *bitmap, int bits, int order) |
| 950 | { | 950 | { |
| 951 | int pos; /* scans bitmap by regions of size order */ | 951 | int pos, end; /* scans bitmap by regions of size order */ |
| 952 | 952 | ||
| 953 | for (pos = 0; pos < bits; pos += (1 << order)) | 953 | for (pos = 0 ; (end = pos + (1 << order)) <= bits; pos = end) { |
| 954 | if (__reg_op(bitmap, pos, order, REG_OP_ISFREE)) | 954 | if (!__reg_op(bitmap, pos, order, REG_OP_ISFREE)) |
| 955 | break; | 955 | continue; |
| 956 | if (pos == bits) | 956 | __reg_op(bitmap, pos, order, REG_OP_ALLOC); |
| 957 | return -ENOMEM; | 957 | return pos; |
| 958 | __reg_op(bitmap, pos, order, REG_OP_ALLOC); | 958 | } |
| 959 | return pos; | 959 | return -ENOMEM; |
| 960 | } | 960 | } |
| 961 | EXPORT_SYMBOL(bitmap_find_free_region); | 961 | EXPORT_SYMBOL(bitmap_find_free_region); |
| 962 | 962 | ||
diff --git a/mm/vmscan.c b/mm/vmscan.c index 79adbd7e21ae..479e46719394 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c | |||
| @@ -1262,7 +1262,6 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone, | |||
| 1262 | * Move the pages to the [file or anon] inactive list. | 1262 | * Move the pages to the [file or anon] inactive list. |
| 1263 | */ | 1263 | */ |
| 1264 | pagevec_init(&pvec, 1); | 1264 | pagevec_init(&pvec, 1); |
| 1265 | pgmoved = 0; | ||
| 1266 | lru = LRU_BASE + file * LRU_FILE; | 1265 | lru = LRU_BASE + file * LRU_FILE; |
| 1267 | 1266 | ||
| 1268 | spin_lock_irq(&zone->lru_lock); | 1267 | spin_lock_irq(&zone->lru_lock); |
| @@ -1274,6 +1273,7 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone, | |||
| 1274 | */ | 1273 | */ |
| 1275 | reclaim_stat->recent_rotated[!!file] += pgmoved; | 1274 | reclaim_stat->recent_rotated[!!file] += pgmoved; |
| 1276 | 1275 | ||
| 1276 | pgmoved = 0; | ||
| 1277 | while (!list_empty(&l_inactive)) { | 1277 | while (!list_empty(&l_inactive)) { |
| 1278 | page = lru_to_page(&l_inactive); | 1278 | page = lru_to_page(&l_inactive); |
| 1279 | prefetchw_prev_lru_page(page, &l_inactive, flags); | 1279 | prefetchw_prev_lru_page(page, &l_inactive, flags); |
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index 385f427bedad..ff50a0546865 100644 --- a/net/sunrpc/sched.c +++ b/net/sunrpc/sched.c | |||
| @@ -293,11 +293,6 @@ static void rpc_make_runnable(struct rpc_task *task) | |||
| 293 | rpc_clear_queued(task); | 293 | rpc_clear_queued(task); |
| 294 | if (rpc_test_and_set_running(task)) | 294 | if (rpc_test_and_set_running(task)) |
| 295 | return; | 295 | return; |
| 296 | /* We might have raced */ | ||
| 297 | if (RPC_IS_QUEUED(task)) { | ||
| 298 | rpc_clear_running(task); | ||
| 299 | return; | ||
| 300 | } | ||
| 301 | if (RPC_IS_ASYNC(task)) { | 296 | if (RPC_IS_ASYNC(task)) { |
| 302 | int status; | 297 | int status; |
| 303 | 298 | ||
| @@ -607,7 +602,9 @@ void rpc_release_calldata(const struct rpc_call_ops *ops, void *calldata) | |||
| 607 | */ | 602 | */ |
| 608 | static void __rpc_execute(struct rpc_task *task) | 603 | static void __rpc_execute(struct rpc_task *task) |
| 609 | { | 604 | { |
| 610 | int status = 0; | 605 | struct rpc_wait_queue *queue; |
| 606 | int task_is_async = RPC_IS_ASYNC(task); | ||
| 607 | int status = 0; | ||
| 611 | 608 | ||
| 612 | dprintk("RPC: %5u __rpc_execute flags=0x%x\n", | 609 | dprintk("RPC: %5u __rpc_execute flags=0x%x\n", |
| 613 | task->tk_pid, task->tk_flags); | 610 | task->tk_pid, task->tk_flags); |
| @@ -647,15 +644,25 @@ static void __rpc_execute(struct rpc_task *task) | |||
| 647 | */ | 644 | */ |
| 648 | if (!RPC_IS_QUEUED(task)) | 645 | if (!RPC_IS_QUEUED(task)) |
| 649 | continue; | 646 | continue; |
| 650 | rpc_clear_running(task); | 647 | /* |
| 651 | if (RPC_IS_ASYNC(task)) { | 648 | * The queue->lock protects against races with |
| 652 | /* Careful! we may have raced... */ | 649 | * rpc_make_runnable(). |
| 653 | if (RPC_IS_QUEUED(task)) | 650 | * |
| 654 | return; | 651 | * Note that once we clear RPC_TASK_RUNNING on an asynchronous |
| 655 | if (rpc_test_and_set_running(task)) | 652 | * rpc_task, rpc_make_runnable() can assign it to a |
| 656 | return; | 653 | * different workqueue. We therefore cannot assume that the |
| 654 | * rpc_task pointer may still be dereferenced. | ||
| 655 | */ | ||
| 656 | queue = task->tk_waitqueue; | ||
| 657 | spin_lock_bh(&queue->lock); | ||
| 658 | if (!RPC_IS_QUEUED(task)) { | ||
| 659 | spin_unlock_bh(&queue->lock); | ||
| 657 | continue; | 660 | continue; |
| 658 | } | 661 | } |
| 662 | rpc_clear_running(task); | ||
| 663 | spin_unlock_bh(&queue->lock); | ||
| 664 | if (task_is_async) | ||
| 665 | return; | ||
| 659 | 666 | ||
| 660 | /* sync task: sleep here */ | 667 | /* sync task: sleep here */ |
| 661 | dprintk("RPC: %5u sync task going to sleep\n", task->tk_pid); | 668 | dprintk("RPC: %5u sync task going to sleep\n", task->tk_pid); |
diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c index 29e401bb612e..62098d101a1f 100644 --- a/net/sunrpc/xprt.c +++ b/net/sunrpc/xprt.c | |||
| @@ -663,7 +663,7 @@ void xprt_connect(struct rpc_task *task) | |||
| 663 | xprt, (xprt_connected(xprt) ? "is" : "is not")); | 663 | xprt, (xprt_connected(xprt) ? "is" : "is not")); |
| 664 | 664 | ||
| 665 | if (!xprt_bound(xprt)) { | 665 | if (!xprt_bound(xprt)) { |
| 666 | task->tk_status = -EIO; | 666 | task->tk_status = -EAGAIN; |
| 667 | return; | 667 | return; |
| 668 | } | 668 | } |
| 669 | if (!xprt_lock_write(xprt, task)) | 669 | if (!xprt_lock_write(xprt, task)) |
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index 5cbb404c4cdf..29c71e645b27 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c | |||
| @@ -467,7 +467,7 @@ static int xs_sendpages(struct socket *sock, struct sockaddr *addr, int addrlen, | |||
| 467 | int err, sent = 0; | 467 | int err, sent = 0; |
| 468 | 468 | ||
| 469 | if (unlikely(!sock)) | 469 | if (unlikely(!sock)) |
| 470 | return -ENOTCONN; | 470 | return -ENOTSOCK; |
| 471 | 471 | ||
| 472 | clear_bit(SOCK_ASYNC_NOSPACE, &sock->flags); | 472 | clear_bit(SOCK_ASYNC_NOSPACE, &sock->flags); |
| 473 | if (base != 0) { | 473 | if (base != 0) { |
| @@ -577,6 +577,8 @@ static int xs_udp_send_request(struct rpc_task *task) | |||
| 577 | req->rq_svec->iov_base, | 577 | req->rq_svec->iov_base, |
| 578 | req->rq_svec->iov_len); | 578 | req->rq_svec->iov_len); |
| 579 | 579 | ||
| 580 | if (!xprt_bound(xprt)) | ||
| 581 | return -ENOTCONN; | ||
| 580 | status = xs_sendpages(transport->sock, | 582 | status = xs_sendpages(transport->sock, |
| 581 | xs_addr(xprt), | 583 | xs_addr(xprt), |
| 582 | xprt->addrlen, xdr, | 584 | xprt->addrlen, xdr, |
| @@ -594,6 +596,10 @@ static int xs_udp_send_request(struct rpc_task *task) | |||
| 594 | } | 596 | } |
| 595 | 597 | ||
| 596 | switch (status) { | 598 | switch (status) { |
| 599 | case -ENOTSOCK: | ||
| 600 | status = -ENOTCONN; | ||
| 601 | /* Should we call xs_close() here? */ | ||
| 602 | break; | ||
| 597 | case -EAGAIN: | 603 | case -EAGAIN: |
| 598 | xs_nospace(task); | 604 | xs_nospace(task); |
| 599 | break; | 605 | break; |
| @@ -693,6 +699,10 @@ static int xs_tcp_send_request(struct rpc_task *task) | |||
| 693 | } | 699 | } |
| 694 | 700 | ||
| 695 | switch (status) { | 701 | switch (status) { |
| 702 | case -ENOTSOCK: | ||
| 703 | status = -ENOTCONN; | ||
| 704 | /* Should we call xs_close() here? */ | ||
| 705 | break; | ||
| 696 | case -EAGAIN: | 706 | case -EAGAIN: |
| 697 | xs_nospace(task); | 707 | xs_nospace(task); |
| 698 | break; | 708 | break; |
| @@ -1523,7 +1533,7 @@ static void xs_udp_connect_worker4(struct work_struct *work) | |||
| 1523 | struct socket *sock = transport->sock; | 1533 | struct socket *sock = transport->sock; |
| 1524 | int err, status = -EIO; | 1534 | int err, status = -EIO; |
| 1525 | 1535 | ||
| 1526 | if (xprt->shutdown || !xprt_bound(xprt)) | 1536 | if (xprt->shutdown) |
| 1527 | goto out; | 1537 | goto out; |
| 1528 | 1538 | ||
| 1529 | /* Start by resetting any existing state */ | 1539 | /* Start by resetting any existing state */ |
| @@ -1564,7 +1574,7 @@ static void xs_udp_connect_worker6(struct work_struct *work) | |||
| 1564 | struct socket *sock = transport->sock; | 1574 | struct socket *sock = transport->sock; |
| 1565 | int err, status = -EIO; | 1575 | int err, status = -EIO; |
| 1566 | 1576 | ||
| 1567 | if (xprt->shutdown || !xprt_bound(xprt)) | 1577 | if (xprt->shutdown) |
| 1568 | goto out; | 1578 | goto out; |
| 1569 | 1579 | ||
| 1570 | /* Start by resetting any existing state */ | 1580 | /* Start by resetting any existing state */ |
| @@ -1648,6 +1658,9 @@ static int xs_tcp_finish_connecting(struct rpc_xprt *xprt, struct socket *sock) | |||
| 1648 | write_unlock_bh(&sk->sk_callback_lock); | 1658 | write_unlock_bh(&sk->sk_callback_lock); |
| 1649 | } | 1659 | } |
| 1650 | 1660 | ||
| 1661 | if (!xprt_bound(xprt)) | ||
| 1662 | return -ENOTCONN; | ||
| 1663 | |||
| 1651 | /* Tell the socket layer to start connecting... */ | 1664 | /* Tell the socket layer to start connecting... */ |
| 1652 | xprt->stat.connect_count++; | 1665 | xprt->stat.connect_count++; |
| 1653 | xprt->stat.connect_start = jiffies; | 1666 | xprt->stat.connect_start = jiffies; |
| @@ -1668,7 +1681,7 @@ static void xs_tcp_connect_worker4(struct work_struct *work) | |||
| 1668 | struct socket *sock = transport->sock; | 1681 | struct socket *sock = transport->sock; |
| 1669 | int err, status = -EIO; | 1682 | int err, status = -EIO; |
| 1670 | 1683 | ||
| 1671 | if (xprt->shutdown || !xprt_bound(xprt)) | 1684 | if (xprt->shutdown) |
| 1672 | goto out; | 1685 | goto out; |
| 1673 | 1686 | ||
| 1674 | if (!sock) { | 1687 | if (!sock) { |
| @@ -1728,7 +1741,7 @@ static void xs_tcp_connect_worker6(struct work_struct *work) | |||
| 1728 | struct socket *sock = transport->sock; | 1741 | struct socket *sock = transport->sock; |
| 1729 | int err, status = -EIO; | 1742 | int err, status = -EIO; |
| 1730 | 1743 | ||
| 1731 | if (xprt->shutdown || !xprt_bound(xprt)) | 1744 | if (xprt->shutdown) |
| 1732 | goto out; | 1745 | goto out; |
| 1733 | 1746 | ||
| 1734 | if (!sock) { | 1747 | if (!sock) { |
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c index ad2434b26970..6654cbed965b 100644 --- a/scripts/kallsyms.c +++ b/scripts/kallsyms.c | |||
| @@ -500,6 +500,51 @@ static void optimize_token_table(void) | |||
| 500 | optimize_result(); | 500 | optimize_result(); |
| 501 | } | 501 | } |
| 502 | 502 | ||
| 503 | /* guess for "linker script provide" symbol */ | ||
| 504 | static int may_be_linker_script_provide_symbol(const struct sym_entry *se) | ||
| 505 | { | ||
| 506 | const char *symbol = (char *)se->sym + 1; | ||
| 507 | int len = se->len - 1; | ||
| 508 | |||
| 509 | if (len < 8) | ||
| 510 | return 0; | ||
| 511 | |||
| 512 | if (symbol[0] != '_' || symbol[1] != '_') | ||
| 513 | return 0; | ||
| 514 | |||
| 515 | /* __start_XXXXX */ | ||
| 516 | if (!memcmp(symbol + 2, "start_", 6)) | ||
| 517 | return 1; | ||
| 518 | |||
| 519 | /* __stop_XXXXX */ | ||
| 520 | if (!memcmp(symbol + 2, "stop_", 5)) | ||
| 521 | return 1; | ||
| 522 | |||
| 523 | /* __end_XXXXX */ | ||
| 524 | if (!memcmp(symbol + 2, "end_", 4)) | ||
| 525 | return 1; | ||
| 526 | |||
| 527 | /* __XXXXX_start */ | ||
| 528 | if (!memcmp(symbol + len - 6, "_start", 6)) | ||
| 529 | return 1; | ||
| 530 | |||
| 531 | /* __XXXXX_end */ | ||
| 532 | if (!memcmp(symbol + len - 4, "_end", 4)) | ||
| 533 | return 1; | ||
| 534 | |||
| 535 | return 0; | ||
| 536 | } | ||
| 537 | |||
| 538 | static int prefix_underscores_count(const char *str) | ||
| 539 | { | ||
| 540 | const char *tail = str; | ||
| 541 | |||
| 542 | while (*tail != '_') | ||
| 543 | tail++; | ||
| 544 | |||
| 545 | return tail - str; | ||
| 546 | } | ||
| 547 | |||
| 503 | static int compare_symbols(const void *a, const void *b) | 548 | static int compare_symbols(const void *a, const void *b) |
| 504 | { | 549 | { |
| 505 | const struct sym_entry *sa; | 550 | const struct sym_entry *sa; |
| @@ -521,6 +566,18 @@ static int compare_symbols(const void *a, const void *b) | |||
| 521 | if (wa != wb) | 566 | if (wa != wb) |
| 522 | return wa - wb; | 567 | return wa - wb; |
| 523 | 568 | ||
| 569 | /* sort by "linker script provide" type */ | ||
| 570 | wa = may_be_linker_script_provide_symbol(sa); | ||
| 571 | wb = may_be_linker_script_provide_symbol(sb); | ||
| 572 | if (wa != wb) | ||
| 573 | return wa - wb; | ||
| 574 | |||
| 575 | /* sort by the number of prefix underscores */ | ||
| 576 | wa = prefix_underscores_count((const char *)sa->sym + 1); | ||
| 577 | wb = prefix_underscores_count((const char *)sb->sym + 1); | ||
| 578 | if (wa != wb) | ||
| 579 | return wa - wb; | ||
| 580 | |||
| 524 | /* sort by initial order, so that other symbols are left undisturbed */ | 581 | /* sort by initial order, so that other symbols are left undisturbed */ |
| 525 | return sa->start_pos - sb->start_pos; | 582 | return sa->start_pos - sb->start_pos; |
| 526 | } | 583 | } |
