From 3d372548b4af1a3d0a40f3dde7af5389a30ce359 Mon Sep 17 00:00:00 2001 From: "James.Yang" Date: Wed, 2 May 2007 16:34:43 -0500 Subject: [POWERPC] Remove CPU_FTR_NEED_COHERENT for 7448. Remove CPU_FTR_NEED_COHERENT for MPC7448 (and single-core MPC86xx). This prevents needlessly setting M=1 when not SMP. Signed-off-by: James.Yang Acked-by: Jon Loeliger Signed-off-by: Kumar Gala --- arch/powerpc/kernel/cputable.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index 9cb24d20f0f..6ef87fb90b8 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c @@ -836,7 +836,7 @@ static struct cpu_spec cpu_specs[] = { .pvr_mask = 0xffff0000, .pvr_value = 0x80040000, .cpu_name = "7448", - .cpu_features = CPU_FTRS_7447A, + .cpu_features = CPU_FTRS_7448, .cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP | PPC_FEATURE_PPC_LE, .icache_bsize = 32, -- cgit v1.2.3-70-g09d2 From 991eb43af989002d5c7f4a2ff2a6c806a912b51b Mon Sep 17 00:00:00 2001 From: Kumar Gala Date: Mon, 14 May 2007 17:11:58 -0500 Subject: [POWERPC] Fix COMMON symbol warnings We get the following warnings in various ARCH=powerpc builds: WARNING: "ee_restarts" [arch/powerpc/kernel/built-in] is COMMON symbol WARNING: "fee_restarts" [arch/powerpc/kernel/built-in] is COMMON symbol WARNING: "htab_hash_searches" [arch/powerpc/mm/built-in] is COMMON symbol WARNING: "next_slot" [arch/powerpc/mm/built-in] is COMMON symbol WARNING: "mmu_hash_lock" [arch/powerpc/mm/built-in] is COMMON symbol WARNING: "primary_pteg_full" [arch/powerpc/mm/built-in] is COMMON symbol WARNING: "global_dbcr0" [arch/powerpc/kernel/built-in] is COMMON symbol Switch to moving local symbols (except mmu_hash_lock which is global) and space directive instead. Signed-off-by: Kumar Gala --- arch/powerpc/kernel/entry_32.S | 18 +++++++++++++++--- arch/powerpc/mm/hash_low_32.S | 18 ++++++++++++++---- 2 files changed, 29 insertions(+), 7 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S index c29d1652a42..4074c0b3145 100644 --- a/arch/powerpc/kernel/entry_32.S +++ b/arch/powerpc/kernel/entry_32.S @@ -596,7 +596,11 @@ fast_exception_return: mr r12,r4 /* restart at exc_exit_restart */ b 2b - .comm fee_restarts,4 + .section .bss + .align 2 +fee_restarts: + .space 4 + .previous /* aargh, a nonrecoverable interrupt, panic */ /* aargh, we don't know which trap this is */ @@ -851,7 +855,11 @@ load_dbcr0: mtspr SPRN_DBSR,r11 /* clear all pending debug events */ blr - .comm global_dbcr0,8 + .section .bss + .align 4 +global_dbcr0: + .space 8 + .previous #endif /* !(CONFIG_4xx || CONFIG_BOOKE) */ do_work: /* r10 contains MSR_KERNEL here */ @@ -926,7 +934,11 @@ END_FTR_SECTION_IFSET(CPU_FTR_601) /* shouldn't return */ b 4b - .comm ee_restarts,4 + .section .bss + .align 2 +ee_restarts: + .space 4 + .previous /* * PROM code for specific machines follows. Put it diff --git a/arch/powerpc/mm/hash_low_32.S b/arch/powerpc/mm/hash_low_32.S index ddceefc06ec..7f830a4888d 100644 --- a/arch/powerpc/mm/hash_low_32.S +++ b/arch/powerpc/mm/hash_low_32.S @@ -30,7 +30,11 @@ #include #ifdef CONFIG_SMP - .comm mmu_hash_lock,4 + .section .bss + .align 2 + .globl mmu_hash_lock +mmu_hash_lock: + .space 4 #endif /* CONFIG_SMP */ /* @@ -455,9 +459,15 @@ found_slot: sync /* make sure pte updates get to memory */ blr - .comm next_slot,4 - .comm primary_pteg_full,4 - .comm htab_hash_searches,4 + .section .bss + .align 2 +next_slot: + .space 4 +primary_pteg_full: + .space 4 +htab_hash_searches: + .space 4 + .previous /* * Flush the entry for a particular page from the hash table. -- cgit v1.2.3-70-g09d2 From 1c2de47cd47daa033251dbb4a3643e7e87a681b0 Mon Sep 17 00:00:00 2001 From: Timur Tabi Date: Mon, 14 May 2007 11:31:26 -0500 Subject: [POWERPC] Fix alignment problem in rh_alloc_align() with exact-sized blocks When an rheap is created, the caller can specify the alignment to use. In rh_alloc_align(), if a free block is found that is the exact size needed (including extra space for alignment), that configured alignment value is not used to align the pointer. Instead, the default alignment is used. If the default alignment is smaller than the configured alignment, then the returned value will not be aligned correctly. Signed-off-by: Timur Tabi Signed-off-by: Kumar Gala --- arch/powerpc/lib/rheap.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/lib/rheap.c b/arch/powerpc/lib/rheap.c index b2f6dcc5960..180ee2933ab 100644 --- a/arch/powerpc/lib/rheap.c +++ b/arch/powerpc/lib/rheap.c @@ -468,25 +468,19 @@ unsigned long rh_alloc_align(rh_info_t * info, int size, int alignment, const ch if (blk->size == size) { /* Move from free list to taken list */ list_del(&blk->list); - blk->owner = owner; - start = blk->start; - - attach_taken_block(info, blk); + newblk = blk; + } else { + newblk = get_slot(info); + newblk->start = blk->start; + newblk->size = size; - return start; + /* blk still in free list, with updated start, size */ + blk->start += size; + blk->size -= size; } - newblk = get_slot(info); - newblk->start = blk->start; - newblk->size = size; newblk->owner = owner; - - /* blk still in free list, with updated start, size */ - blk->start += size; - blk->size -= size; - start = newblk->start; - attach_taken_block(info, newblk); /* for larger alignment return fixed up pointer */ -- cgit v1.2.3-70-g09d2 From 50cf67075ba071e0532ccc657ad64cfbb2da3c7a Mon Sep 17 00:00:00 2001 From: Dave Jiang Date: Thu, 10 May 2007 10:03:05 -0700 Subject: [POWERPC] 85xx: Add device nodes for error reporting devices used by EDAC Adding memory-controller and l2-cache-controller entries to be used by EDAC as of_devices for MPC8540 ADS, MPC8548 CDS, and MPC8560 ADS. Also fixed up the size of the PCI node on MPC8560 ADS. Signed-off-by: Dave Jiang Signed-off-by: Kumar Gala --- arch/powerpc/boot/dts/mpc8540ads.dts | 16 ++++++++++++++++ arch/powerpc/boot/dts/mpc8548cds.dts | 16 ++++++++++++++++ arch/powerpc/boot/dts/mpc8560ads.dts | 18 +++++++++++++++++- 3 files changed, 49 insertions(+), 1 deletion(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/boot/dts/mpc8540ads.dts b/arch/powerpc/boot/dts/mpc8540ads.dts index f261d647ac8..d91e81c009f 100644 --- a/arch/powerpc/boot/dts/mpc8540ads.dts +++ b/arch/powerpc/boot/dts/mpc8540ads.dts @@ -48,6 +48,22 @@ reg = ; // CCSRBAR 1M bus-frequency = <0>; + memory-controller@2000 { + compatible = "fsl,8540-memory-controller"; + reg = <2000 1000>; + interrupt-parent = <&mpic>; + interrupts = <2 2>; + }; + + l2-cache-controller@20000 { + compatible = "fsl,8540-l2-cache-controller"; + reg = <20000 1000>; + cache-line-size = <20>; // 32 bytes + cache-size = <40000>; // L2, 256K + interrupt-parent = <&mpic>; + interrupts = <0 2>; + }; + i2c@3000 { device_type = "i2c"; compatible = "fsl-i2c"; diff --git a/arch/powerpc/boot/dts/mpc8548cds.dts b/arch/powerpc/boot/dts/mpc8548cds.dts index b2b2200d042..ad96381033c 100644 --- a/arch/powerpc/boot/dts/mpc8548cds.dts +++ b/arch/powerpc/boot/dts/mpc8548cds.dts @@ -48,6 +48,22 @@ reg = ; // CCSRBAR 1M bus-frequency = <0>; + memory-controller@2000 { + compatible = "fsl,8548-memory-controller"; + reg = <2000 1000>; + interrupt-parent = <&mpic>; + interrupts = <2 2>; + }; + + l2-cache-controller@20000 { + compatible = "fsl,8548-l2-cache-controller"; + reg = <20000 1000>; + cache-line-size = <20>; // 32 bytes + cache-size = <80000>; // L2, 512K + interrupt-parent = <&mpic>; + interrupts = <0 2>; + }; + i2c@3000 { device_type = "i2c"; compatible = "fsl-i2c"; diff --git a/arch/powerpc/boot/dts/mpc8560ads.dts b/arch/powerpc/boot/dts/mpc8560ads.dts index 1f2afe9291d..80682152b0c 100644 --- a/arch/powerpc/boot/dts/mpc8560ads.dts +++ b/arch/powerpc/boot/dts/mpc8560ads.dts @@ -48,6 +48,22 @@ reg = ; bus-frequency = <13ab6680>; + memory-controller@2000 { + compatible = "fsl,8540-memory-controller"; + reg = <2000 1000>; + interrupt-parent = <&mpic>; + interrupts = <2 2>; + }; + + l2-cache-controller@20000 { + compatible = "fsl,8540-l2-cache-controller"; + reg = <20000 1000>; + cache-line-size = <20>; // 32 bytes + cache-size = <40000>; // L2, 256K + interrupt-parent = <&mpic>; + interrupts = <0 2>; + }; + mdio@24520 { device_type = "mdio"; compatible = "gianfar"; @@ -110,7 +126,7 @@ #address-cells = <3>; compatible = "85xx"; device_type = "pci"; - reg = <8000 400>; + reg = <8000 1000>; clock-frequency = <3f940aa>; interrupt-map-mask = ; interrupt-map = < -- cgit v1.2.3-70-g09d2 From 4da421d620fc104adf0b8b3841650c78f0e87b0a Mon Sep 17 00:00:00 2001 From: Kumar Gala Date: Tue, 15 May 2007 13:20:05 -0500 Subject: [POWERPC] 85xx: Add device nodes for error reporting devices used by EDAC Adding memory-controller and l2-cache-controller entries to be used by EDAC as of_devices for MPC8541 CDS, MPC8544 DS, MPC8555 CDS, and MPC8568 MDS. Signed-off-by: Kumar Gala --- arch/powerpc/boot/dts/mpc8541cds.dts | 16 ++++++++++++++++ arch/powerpc/boot/dts/mpc8544ds.dts | 16 ++++++++++++++++ arch/powerpc/boot/dts/mpc8555cds.dts | 16 ++++++++++++++++ arch/powerpc/boot/dts/mpc8568mds.dts | 16 ++++++++++++++++ 4 files changed, 64 insertions(+) (limited to 'arch/powerpc') diff --git a/arch/powerpc/boot/dts/mpc8541cds.dts b/arch/powerpc/boot/dts/mpc8541cds.dts index 5fdcb69554f..4f2c3af2e05 100644 --- a/arch/powerpc/boot/dts/mpc8541cds.dts +++ b/arch/powerpc/boot/dts/mpc8541cds.dts @@ -48,6 +48,22 @@ reg = ; // CCSRBAR 1M bus-frequency = <0>; + memory-controller@2000 { + compatible = "fsl,8541-memory-controller"; + reg = <2000 1000>; + interrupt-parent = <&mpic>; + interrupts = <2 2>; + }; + + l2-cache-controller@20000 { + compatible = "fsl,8541-l2-cache-controller"; + reg = <20000 1000>; + cache-line-size = <20>; // 32 bytes + cache-size = <40000>; // L2, 256K + interrupt-parent = <&mpic>; + interrupts = <0 2>; + }; + i2c@3000 { device_type = "i2c"; compatible = "fsl-i2c"; diff --git a/arch/powerpc/boot/dts/mpc8544ds.dts b/arch/powerpc/boot/dts/mpc8544ds.dts index 6b084605bb4..3033599e74e 100644 --- a/arch/powerpc/boot/dts/mpc8544ds.dts +++ b/arch/powerpc/boot/dts/mpc8544ds.dts @@ -48,6 +48,22 @@ reg = ; // CCSRBAR 1M bus-frequency = <0>; // Filled out by uboot. + memory-controller@2000 { + compatible = "fsl,8544-memory-controller"; + reg = <2000 1000>; + interrupt-parent = <&mpic>; + interrupts = <2 2>; + }; + + l2-cache-controller@20000 { + compatible = "fsl,8544-l2-cache-controller"; + reg = <20000 1000>; + cache-line-size = <20>; // 32 bytes + cache-size = <40000>; // L2, 256K + interrupt-parent = <&mpic>; + interrupts = <0 2>; + }; + i2c@3000 { device_type = "i2c"; compatible = "fsl-i2c"; diff --git a/arch/powerpc/boot/dts/mpc8555cds.dts b/arch/powerpc/boot/dts/mpc8555cds.dts index 68a4795720d..951ed92f115 100644 --- a/arch/powerpc/boot/dts/mpc8555cds.dts +++ b/arch/powerpc/boot/dts/mpc8555cds.dts @@ -48,6 +48,22 @@ reg = ; // CCSRBAR 1M bus-frequency = <0>; + memory-controller@2000 { + compatible = "fsl,8555-memory-controller"; + reg = <2000 1000>; + interrupt-parent = <&mpic>; + interrupts = <2 2>; + }; + + l2-cache-controller@20000 { + compatible = "fsl,8555-l2-cache-controller"; + reg = <20000 1000>; + cache-line-size = <20>; // 32 bytes + cache-size = <40000>; // L2, 256K + interrupt-parent = <&mpic>; + interrupts = <0 2>; + }; + i2c@3000 { device_type = "i2c"; compatible = "fsl-i2c"; diff --git a/arch/powerpc/boot/dts/mpc8568mds.dts b/arch/powerpc/boot/dts/mpc8568mds.dts index 948a3b61bd4..a123ec9456b 100644 --- a/arch/powerpc/boot/dts/mpc8568mds.dts +++ b/arch/powerpc/boot/dts/mpc8568mds.dts @@ -57,6 +57,22 @@ reg = ; bus-frequency = <0>; + memory-controller@2000 { + compatible = "fsl,8568-memory-controller"; + reg = <2000 1000>; + interrupt-parent = <&mpic>; + interrupts = <2 2>; + }; + + l2-cache-controller@20000 { + compatible = "fsl,8568-l2-cache-controller"; + reg = <20000 1000>; + cache-line-size = <20>; // 32 bytes + cache-size = <80000>; // L2, 512K + interrupt-parent = <&mpic>; + interrupts = <0 2>; + }; + i2c@3000 { device_type = "i2c"; compatible = "fsl-i2c"; -- cgit v1.2.3-70-g09d2 From 5c1992f83304cf2d56934dd6c06709b96e1b0c81 Mon Sep 17 00:00:00 2001 From: Kumar Gala Date: Tue, 15 May 2007 16:12:27 -0500 Subject: [POWERPC] Removed hardcoded phandles from dts Remove explicit phandles and move to using references that autogenerate the phandles when needed. Signed-off-by: Kumar Gala --- arch/powerpc/boot/dts/kuroboxHD.dts | 44 ++++++++------------ arch/powerpc/boot/dts/kuroboxHG.dts | 45 ++++++++------------ arch/powerpc/boot/dts/lite5200.dts | 69 ++++++++++++++++--------------- arch/powerpc/boot/dts/lite5200b.dts | 77 +++++++++++++++++------------------ arch/powerpc/boot/dts/mpc7448hpc2.dts | 72 +++++++++++++++----------------- 5 files changed, 139 insertions(+), 168 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/boot/dts/kuroboxHD.dts b/arch/powerpc/boot/dts/kuroboxHD.dts index 157dc98d398..a983680c326 100644 --- a/arch/powerpc/boot/dts/kuroboxHD.dts +++ b/arch/powerpc/boot/dts/kuroboxHD.dts @@ -21,19 +21,16 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" */ / { - linux,phandle = <1000>; model = "KuroboxHD"; compatible = "linkstation"; #address-cells = <1>; #size-cells = <1>; cpus { - linux,phandle = <2000>; #address-cells = <1>; #size-cells = <0>; PowerPC,603e { /* Really 8241 */ - linux,phandle = <2100>; device_type = "cpu"; reg = <0>; clock-frequency = ; /* Fixed by bootwrapper */ @@ -48,13 +45,11 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" }; memory { - linux,phandle = <3000>; device_type = "memory"; reg = <00000000 04000000>; }; soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */ - linux,phandle = <4000>; #address-cells = <1>; #size-cells = <1>; #interrupt-cells = <2>; @@ -69,38 +64,34 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" fef00000 fef00000 00100000>; /* pci iack */ i2c@80003000 { - linux,phandle = <4300>; device_type = "i2c"; compatible = "fsl-i2c"; reg = <80003000 1000>; interrupts = <5 2>; - interrupt-parent = <4400>; + interrupt-parent = <&mpic>; }; serial@80004500 { - linux,phandle = <4511>; device_type = "serial"; compatible = "ns16550"; reg = <80004500 8>; clock-frequency = <5d08d88>; current-speed = <2580>; interrupts = <9 2>; - interrupt-parent = <4400>; + interrupt-parent = <&mpic>; }; serial@80004600 { - linux,phandle = <4512>; device_type = "serial"; compatible = "ns16550"; reg = <80004600 8>; clock-frequency = <5d08d88>; current-speed = ; interrupts = ; - interrupt-parent = <4400>; + interrupt-parent = <&mpic>; }; - pic@80040000 { - linux,phandle = <4400>; + mpic: pic@80040000 { #interrupt-cells = <2>; #address-cells = <0>; device_type = "open-pic"; @@ -111,7 +102,6 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" }; pci@fec00000 { - linux,phandle = <4500>; #address-cells = <3>; #size-cells = <2>; #interrupt-cells = <1>; @@ -122,24 +112,24 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" 02000000 0 80000000 80000000 0 70000000>; bus-range = <0 ff>; clock-frequency = <7f28155>; - interrupt-parent = <4400>; + interrupt-parent = <&mpic>; interrupt-map-mask = ; interrupt-map = < /* IDSEL 11 - IRQ0 ETH */ - 5800 0 0 1 4400 0 1 - 5800 0 0 2 4400 1 1 - 5800 0 0 3 4400 2 1 - 5800 0 0 4 4400 3 1 + 5800 0 0 1 &mpic 0 1 + 5800 0 0 2 &mpic 1 1 + 5800 0 0 3 &mpic 2 1 + 5800 0 0 4 &mpic 3 1 /* IDSEL 12 - IRQ1 IDE0 */ - 6000 0 0 1 4400 1 1 - 6000 0 0 2 4400 2 1 - 6000 0 0 3 4400 3 1 - 6000 0 0 4 4400 0 1 + 6000 0 0 1 &mpic 1 1 + 6000 0 0 2 &mpic 2 1 + 6000 0 0 3 &mpic 3 1 + 6000 0 0 4 &mpic 0 1 /* IDSEL 14 - IRQ3 USB2.0 */ - 7000 0 0 1 4400 3 1 - 7000 0 0 2 4400 3 1 - 7000 0 0 3 4400 3 1 - 7000 0 0 4 4400 3 1 + 7000 0 0 1 &mpic 3 1 + 7000 0 0 2 &mpic 3 1 + 7000 0 0 3 &mpic 3 1 + 7000 0 0 4 &mpic 3 1 >; }; }; diff --git a/arch/powerpc/boot/dts/kuroboxHG.dts b/arch/powerpc/boot/dts/kuroboxHG.dts index 919eb29097d..5cf42dc022d 100644 --- a/arch/powerpc/boot/dts/kuroboxHG.dts +++ b/arch/powerpc/boot/dts/kuroboxHG.dts @@ -21,19 +21,16 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" */ / { - linux,phandle = <1000>; model = "KuroboxHG"; compatible = "linkstation"; #address-cells = <1>; #size-cells = <1>; cpus { - linux,phandle = <2000>; #address-cells = <1>; #size-cells = <0>; PowerPC,603e { /* Really 8241 */ - linux,phandle = <2100>; device_type = "cpu"; reg = <0>; clock-frequency = ; /* Fixed by bootwrapper */ @@ -48,13 +45,11 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" }; memory { - linux,phandle = <3000>; device_type = "memory"; reg = <00000000 08000000>; }; soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */ - linux,phandle = <4000>; #address-cells = <1>; #size-cells = <1>; #interrupt-cells = <2>; @@ -69,38 +64,35 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" fef00000 fef00000 00100000>; /* pci iack */ i2c@80003000 { - linux,phandle = <4300>; device_type = "i2c"; compatible = "fsl-i2c"; reg = <80003000 1000>; interrupts = <5 2>; - interrupt-parent = <4400>; + interrupt-parent = <&mpic>; }; serial@80004500 { - linux,phandle = <4511>; device_type = "serial"; compatible = "ns16550"; reg = <80004500 8>; clock-frequency = <7c044a8>; current-speed = <2580>; interrupts = <9 2>; - interrupt-parent = <4400>; + interrupt-parent = <&mpic>; }; serial@80004600 { - linux,phandle = <4512>; device_type = "serial"; compatible = "ns16550"; reg = <80004600 8>; clock-frequency = <7c044a8>; current-speed = ; interrupts = ; - interrupt-parent = <4400>; + interrupt-parent = <&mpic>; }; - pic@80040000 { - linux,phandle = <4400>; + mpic: pic@80040000 { + interrupt-parent = <&mpic>; #interrupt-cells = <2>; #address-cells = <0>; device_type = "open-pic"; @@ -111,7 +103,6 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" }; pci@fec00000 { - linux,phandle = <4500>; #address-cells = <3>; #size-cells = <2>; #interrupt-cells = <1>; @@ -122,24 +113,24 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" 02000000 0 80000000 80000000 0 70000000>; bus-range = <0 ff>; clock-frequency = <7f28155>; - interrupt-parent = <4400>; + interrupt-parent = <&mpic>; interrupt-map-mask = ; interrupt-map = < /* IDSEL 11 - IRQ0 ETH */ - 5800 0 0 1 4400 0 1 - 5800 0 0 2 4400 1 1 - 5800 0 0 3 4400 2 1 - 5800 0 0 4 4400 3 1 + 5800 0 0 1 &mpic 0 1 + 5800 0 0 2 &mpic 1 1 + 5800 0 0 3 &mpic 2 1 + 5800 0 0 4 &mpic 3 1 /* IDSEL 12 - IRQ1 IDE0 */ - 6000 0 0 1 4400 1 1 - 6000 0 0 2 4400 2 1 - 6000 0 0 3 4400 3 1 - 6000 0 0 4 4400 0 1 + 6000 0 0 1 &mpic 1 1 + 6000 0 0 2 &mpic 2 1 + 6000 0 0 3 &mpic 3 1 + 6000 0 0 4 &mpic 0 1 /* IDSEL 14 - IRQ3 USB2.0 */ - 7000 0 0 1 4400 3 1 - 7000 0 0 2 4400 3 1 - 7000 0 0 3 4400 3 1 - 7000 0 0 4 4400 3 1 + 7000 0 0 1 &mpic 3 1 + 7000 0 0 2 &mpic 3 1 + 7000 0 0 3 &mpic 3 1 + 7000 0 0 4 &mpic 3 1 >; }; }; diff --git a/arch/powerpc/boot/dts/lite5200.dts b/arch/powerpc/boot/dts/lite5200.dts index e13ac6ef05a..eae68ab1177 100644 --- a/arch/powerpc/boot/dts/lite5200.dts +++ b/arch/powerpc/boot/dts/lite5200.dts @@ -49,7 +49,7 @@ soc5200@f0000000 { model = "fsl,mpc5200"; compatible = "mpc5200"; - revision = "" // from bootloader + revision = ""; // from bootloader #interrupt-cells = <3>; device_type = "soc"; ranges = <0 f0000000 f0010000>; @@ -62,13 +62,12 @@ reg = <200 38>; }; - pic@500 { + mpc5200_pic: pic@500 { // 5200 interrupts are encoded into two levels; - linux,phandle = <500>; interrupt-controller; #interrupt-cells = <3>; device_type = "interrupt-controller"; - compatible = "mpc5200-pic"; + compatible = "mpc5200_pic"; reg = <500 80>; built-in; }; @@ -79,7 +78,7 @@ cell-index = <0>; reg = <600 10>; interrupts = <1 9 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; has-wdt; }; @@ -89,7 +88,7 @@ cell-index = <1>; reg = <610 10>; interrupts = <1 a 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; gpt@620 { // General Purpose Timer @@ -98,7 +97,7 @@ cell-index = <2>; reg = <620 10>; interrupts = <1 b 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; gpt@630 { // General Purpose Timer @@ -107,7 +106,7 @@ cell-index = <3>; reg = <630 10>; interrupts = <1 c 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; gpt@640 { // General Purpose Timer @@ -116,7 +115,7 @@ cell-index = <4>; reg = <640 10>; interrupts = <1 d 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; gpt@650 { // General Purpose Timer @@ -125,7 +124,7 @@ cell-index = <5>; reg = <650 10>; interrupts = <1 e 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; gpt@660 { // General Purpose Timer @@ -134,7 +133,7 @@ cell-index = <6>; reg = <660 10>; interrupts = <1 f 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; gpt@670 { // General Purpose Timer @@ -143,7 +142,7 @@ cell-index = <7>; reg = <670 10>; interrupts = <1 10 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; rtc@800 { // Real time clock @@ -151,7 +150,7 @@ device_type = "rtc"; reg = <800 100>; interrupts = <1 5 0 1 6 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; mscan@900 { @@ -159,7 +158,7 @@ compatible = "mpc5200-mscan"; cell-index = <0>; interrupts = <2 11 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; reg = <900 80>; }; @@ -168,7 +167,7 @@ compatible = "mpc5200-mscan"; cell-index = <1>; interrupts = <2 12 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; reg = <980 80>; }; @@ -176,14 +175,14 @@ compatible = "mpc5200-gpio"; reg = ; interrupts = <1 7 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; gpio-wkup@c00 { compatible = "mpc5200-gpio-wkup"; reg = ; interrupts = <1 8 0 0 3 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; pci@0d00 { @@ -194,13 +193,13 @@ compatible = "mpc5200-pci"; reg = ; interrupt-map-mask = ; - interrupt-map = ; + interrupt-map = ; clock-frequency = <0>; // From boot loader interrupts = <2 8 0 2 9 0 2 a 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; bus-range = <0 0>; ranges = <42000000 0 80000000 80000000 0 20000000 02000000 0 a0000000 a0000000 0 10000000 @@ -212,7 +211,7 @@ compatible = "mpc5200-spi"; reg = ; interrupts = <2 d 0 2 e 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; usb@1000 { @@ -220,7 +219,7 @@ compatible = "mpc5200-ohci\0ohci-be"; reg = <1000 ff>; interrupts = <2 6 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; bestcomm@1200 { @@ -231,7 +230,7 @@ 3 4 0 3 5 0 3 6 0 3 7 0 3 8 0 3 9 0 3 a 0 3 b 0 3 c 0 3 d 0 3 e 0 3 f 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; xlb@1f00 { @@ -246,7 +245,7 @@ cell-index = <0>; reg = <2000 100>; interrupts = <2 1 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; // PSC2 in ac97 mode example @@ -256,7 +255,7 @@ // cell-index = <1>; // reg = <2200 100>; // interrupts = <2 2 0>; - // interrupt-parent = <500>; + // interrupt-parent = <&mpc5200_pic>; //}; // PSC3 in CODEC mode example @@ -266,7 +265,7 @@ // cell-index = <2>; // reg = <2400 100>; // interrupts = <2 3 0>; - // interrupt-parent = <500>; + // interrupt-parent = <&mpc5200_pic>; //}; // PSC4 in uart mode example @@ -276,7 +275,7 @@ // cell-index = <3>; // reg = <2600 100>; // interrupts = <2 b 0>; - // interrupt-parent = <500>; + // interrupt-parent = <&mpc5200_pic>; //}; // PSC5 in uart mode example @@ -286,7 +285,7 @@ // cell-index = <4>; // reg = <2800 100>; // interrupts = <2 c 0>; - // interrupt-parent = <500>; + // interrupt-parent = <&mpc5200_pic>; //}; // PSC6 in spi mode example @@ -296,7 +295,7 @@ // cell-index = <5>; // reg = <2c00 100>; // interrupts = <2 4 0>; - // interrupt-parent = <500>; + // interrupt-parent = <&mpc5200_pic>; //}; ethernet@3000 { @@ -305,7 +304,7 @@ reg = <3000 800>; mac-address = [ 02 03 04 05 06 07 ]; // Bad! interrupts = <2 5 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; ata@3a00 { @@ -313,7 +312,7 @@ compatible = "mpc5200-ata"; reg = <3a00 100>; interrupts = <2 7 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; i2c@3d00 { @@ -322,7 +321,7 @@ cell-index = <0>; reg = <3d00 40>; interrupts = <2 f 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; fsl5200-clocking; }; @@ -332,7 +331,7 @@ cell-index = <1>; reg = <3d40 40>; interrupts = <2 10 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; fsl5200-clocking; }; sram@8000 { diff --git a/arch/powerpc/boot/dts/lite5200b.dts b/arch/powerpc/boot/dts/lite5200b.dts index 00211b39a34..5185625a941 100644 --- a/arch/powerpc/boot/dts/lite5200b.dts +++ b/arch/powerpc/boot/dts/lite5200b.dts @@ -62,13 +62,12 @@ reg = <200 38>; }; - pic@500 { + mpc5200_pic: pic@500 { // 5200 interrupts are encoded into two levels; - linux,phandle = <500>; interrupt-controller; #interrupt-cells = <3>; device_type = "interrupt-controller"; - compatible = "mpc5200b-pic\0mpc5200-pic"; + compatible = "mpc5200b-pic\0mpc5200_pic"; reg = <500 80>; built-in; }; @@ -79,7 +78,7 @@ cell-index = <0>; reg = <600 10>; interrupts = <1 9 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; has-wdt; }; @@ -89,7 +88,7 @@ cell-index = <1>; reg = <610 10>; interrupts = <1 a 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; gpt@620 { // General Purpose Timer @@ -98,7 +97,7 @@ cell-index = <2>; reg = <620 10>; interrupts = <1 b 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; gpt@630 { // General Purpose Timer @@ -107,7 +106,7 @@ cell-index = <3>; reg = <630 10>; interrupts = <1 c 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; gpt@640 { // General Purpose Timer @@ -116,7 +115,7 @@ cell-index = <4>; reg = <640 10>; interrupts = <1 d 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; gpt@650 { // General Purpose Timer @@ -125,7 +124,7 @@ cell-index = <5>; reg = <650 10>; interrupts = <1 e 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; gpt@660 { // General Purpose Timer @@ -134,7 +133,7 @@ cell-index = <6>; reg = <660 10>; interrupts = <1 f 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; gpt@670 { // General Purpose Timer @@ -143,7 +142,7 @@ cell-index = <7>; reg = <670 10>; interrupts = <1 10 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; rtc@800 { // Real time clock @@ -151,7 +150,7 @@ device_type = "rtc"; reg = <800 100>; interrupts = <1 5 0 1 6 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; mscan@900 { @@ -159,7 +158,7 @@ compatible = "mpc5200b-mscan\0mpc5200-mscan"; cell-index = <0>; interrupts = <2 11 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; reg = <900 80>; }; @@ -168,7 +167,7 @@ compatible = "mpc5200b-mscan\0mpc5200-mscan"; cell-index = <1>; interrupts = <2 12 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; reg = <980 80>; }; @@ -176,14 +175,14 @@ compatible = "mpc5200b-gpio\0mpc5200-gpio"; reg = ; interrupts = <1 7 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; gpio-wkup@c00 { compatible = "mpc5200b-gpio-wkup\0mpc5200-gpio-wkup"; reg = ; interrupts = <1 8 0 0 3 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; pci@0d00 { @@ -194,18 +193,18 @@ compatible = "mpc5200b-pci\0mpc5200-pci"; reg = ; interrupt-map-mask = ; - interrupt-map = ; + interrupt-map = ; clock-frequency = <0>; // From boot loader interrupts = <2 8 0 2 9 0 2 a 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; bus-range = <0 0>; ranges = <42000000 0 80000000 80000000 0 20000000 02000000 0 a0000000 a0000000 0 10000000 @@ -217,7 +216,7 @@ compatible = "mpc5200b-spi\0mpc5200-spi"; reg = ; interrupts = <2 d 0 2 e 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; usb@1000 { @@ -225,7 +224,7 @@ compatible = "mpc5200b-ohci\0mpc5200-ohci\0ohci-be"; reg = <1000 ff>; interrupts = <2 6 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; bestcomm@1200 { @@ -236,7 +235,7 @@ 3 4 0 3 5 0 3 6 0 3 7 0 3 8 0 3 9 0 3 a 0 3 b 0 3 c 0 3 d 0 3 e 0 3 f 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; xlb@1f00 { @@ -251,7 +250,7 @@ cell-index = <0>; reg = <2000 100>; interrupts = <2 1 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; // PSC2 in ac97 mode example @@ -261,7 +260,7 @@ // cell-index = <1>; // reg = <2200 100>; // interrupts = <2 2 0>; - // interrupt-parent = <500>; + // interrupt-parent = <&mpc5200_pic>; //}; // PSC3 in CODEC mode example @@ -271,7 +270,7 @@ // cell-index = <2>; // reg = <2400 100>; // interrupts = <2 3 0>; - // interrupt-parent = <500>; + // interrupt-parent = <&mpc5200_pic>; //}; // PSC4 in uart mode example @@ -281,7 +280,7 @@ // cell-index = <3>; // reg = <2600 100>; // interrupts = <2 b 0>; - // interrupt-parent = <500>; + // interrupt-parent = <&mpc5200_pic>; //}; // PSC5 in uart mode example @@ -291,7 +290,7 @@ // cell-index = <4>; // reg = <2800 100>; // interrupts = <2 c 0>; - // interrupt-parent = <500>; + // interrupt-parent = <&mpc5200_pic>; //}; // PSC6 in spi mode example @@ -301,7 +300,7 @@ // cell-index = <5>; // reg = <2c00 100>; // interrupts = <2 4 0>; - // interrupt-parent = <500>; + // interrupt-parent = <&mpc5200_pic>; //}; ethernet@3000 { @@ -310,7 +309,7 @@ reg = <3000 800>; mac-address = [ 02 03 04 05 06 07 ]; // Bad! interrupts = <2 5 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; ata@3a00 { @@ -318,7 +317,7 @@ compatible = "mpc5200b-ata\0mpc5200-ata"; reg = <3a00 100>; interrupts = <2 7 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; }; i2c@3d00 { @@ -327,7 +326,7 @@ cell-index = <0>; reg = <3d00 40>; interrupts = <2 f 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; fsl5200-clocking; }; @@ -337,7 +336,7 @@ cell-index = <1>; reg = <3d40 40>; interrupts = <2 10 0>; - interrupt-parent = <500>; + interrupt-parent = <&mpc5200_pic>; fsl5200-clocking; }; sram@8000 { diff --git a/arch/powerpc/boot/dts/mpc7448hpc2.dts b/arch/powerpc/boot/dts/mpc7448hpc2.dts index 6fa3754f293..765c306ecf8 100644 --- a/arch/powerpc/boot/dts/mpc7448hpc2.dts +++ b/arch/powerpc/boot/dts/mpc7448hpc2.dts @@ -16,12 +16,10 @@ compatible = "mpc74xx"; #address-cells = <1>; #size-cells = <1>; - linux,phandle = <100>; cpus { #address-cells = <1>; #size-cells =<0>; - linux,phandle = <200>; PowerPC,7448@0 { device_type = "cpu"; @@ -34,13 +32,11 @@ clock-frequency = <0>; // From U-Boot bus-frequency = <0>; // From U-Boot 32-bit; - linux,phandle = <201>; }; }; memory { device_type = "memory"; - linux,phandle = <300>; reg = <00000000 20000000 // DDR2 512M at 0 >; }; @@ -55,7 +51,7 @@ bus-frequency = <0>; i2c@7000 { - interrupt-parent = <7400>; + interrupt-parent = <&mpic>; interrupts = ; reg = <7000 400>; device_type = "i2c"; @@ -66,18 +62,16 @@ device_type = "mdio"; compatible = "tsi-ethernet"; - ethernet-phy@6000 { - linux,phandle = <6000>; - interrupt-parent = <7400>; + phy8: ethernet-phy@6000 { + interrupt-parent = <&mpic>; interrupts = <2 1>; reg = <6000 50>; phy-id = <8>; device_type = "ethernet-phy"; }; - ethernet-phy@6400 { - linux,phandle = <6400>; - interrupt-parent = <7400>; + phy9: ethernet-phy@6400 { + interrupt-parent = <&mpic>; interrupts = <2 1>; reg = <6000 50>; phy-id = <9>; @@ -94,8 +88,8 @@ reg = <6000 200>; address = [ 00 06 D2 00 00 01 ]; interrupts = <10 2>; - interrupt-parent = <7400>; - phy-handle = <6000>; + interrupt-parent = <&mpic>; + phy-handle = <&phy8>; }; ethernet@6600 { @@ -107,8 +101,8 @@ reg = <6400 200>; address = [ 00 06 D2 00 00 02 ]; interrupts = <11 2>; - interrupt-parent = <7400>; - phy-handle = <6400>; + interrupt-parent = <&mpic>; + phy-handle = <&phy9>; }; serial@7808 { @@ -117,7 +111,7 @@ reg = <7808 200>; clock-frequency = <3f6b5a00>; interrupts = ; - interrupt-parent = <7400>; + interrupt-parent = <&mpic>; }; serial@7c08 { @@ -126,11 +120,10 @@ reg = <7c08 200>; clock-frequency = <3f6b5a00>; interrupts = ; - interrupt-parent = <7400>; + interrupt-parent = <&mpic>; }; - pic@7400 { - linux,phandle = <7400>; + mpic: pic@7400 { clock-frequency = <0>; interrupt-controller; #address-cells = <0>; @@ -144,7 +137,6 @@ pci@1000 { compatible = "tsi10x"; device_type = "pci"; - linux,phandle = <1000>; #interrupt-cells = <1>; #size-cells = <2>; #address-cells = <3>; @@ -153,37 +145,37 @@ ranges = <02000000 0 e0000000 e0000000 0 1A000000 01000000 0 00000000 fa000000 0 00010000>; clock-frequency = <7f28154>; - interrupt-parent = <7400>; + interrupt-parent = <&mpic>; interrupts = <17 2>; interrupt-map-mask = ; interrupt-map = < /* IDSEL 0x11 */ - 0800 0 0 1 1180 24 0 - 0800 0 0 2 1180 25 0 - 0800 0 0 3 1180 26 0 - 0800 0 0 4 1180 27 0 + 0800 0 0 1 &RT0 24 0 + 0800 0 0 2 &RT0 25 0 + 0800 0 0 3 &RT0 26 0 + 0800 0 0 4 &RT0 27 0 /* IDSEL 0x12 */ - 1000 0 0 1 1180 25 0 - 1000 0 0 2 1180 26 0 - 1000 0 0 3 1180 27 0 - 1000 0 0 4 1180 24 0 + 1000 0 0 1 &RT0 25 0 + 1000 0 0 2 &RT0 26 0 + 1000 0 0 3 &RT0 27 0 + 1000 0 0 4 &RT0 24 0 /* IDSEL 0x13 */ - 1800 0 0 1 1180 26 0 - 1800 0 0 2 1180 27 0 - 1800 0 0 3 1180 24 0 - 1800 0 0 4 1180 25 0 + 1800 0 0 1 &RT0 26 0 + 1800 0 0 2 &RT0 27 0 + 1800 0 0 3 &RT0 24 0 + 1800 0 0 4 &RT0 25 0 /* IDSEL 0x14 */ - 2000 0 0 1 1180 27 0 - 2000 0 0 2 1180 24 0 - 2000 0 0 3 1180 25 0 - 2000 0 0 4 1180 26 0 + 2000 0 0 1 &RT0 27 0 + 2000 0 0 2 &RT0 24 0 + 2000 0 0 3 &RT0 25 0 + 2000 0 0 4 &RT0 26 0 >; - router@1180 { - linux,phandle = <1180>; + + RT0: router@1180 { clock-frequency = <0>; interrupt-controller; device_type = "pic-router"; @@ -192,7 +184,7 @@ built-in; big-endian; interrupts = <17 2>; - interrupt-parent = <7400>; + interrupt-parent = <&mpic>; }; }; }; -- cgit v1.2.3-70-g09d2 From e38e3458804019c3fe9b17998e05fd1cd480806d Mon Sep 17 00:00:00 2001 From: Tony Breeds Date: Sun, 13 May 2007 13:40:53 +1000 Subject: [POWERPC] Fix Kconfig undefined symbol 'IBM_NEW_EMAC_ZMII' An allmodconfig on the current powerpc tree yields: arch/powerpc/platforms/44x/Kconfig:41:warning: 'select' used by config symbol '440GP' refers to undefined symbol 'IBM_NEW_EMAC_ZMII' Hide the select until the driver exists. Signed-off-by: Tony Breeds Signed-off-by: Paul Mackerras --- arch/powerpc/platforms/44x/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig index 8e66949e7c6..1b3e008fd14 100644 --- a/arch/powerpc/platforms/44x/Kconfig +++ b/arch/powerpc/platforms/44x/Kconfig @@ -38,7 +38,8 @@ config 440EP config 440GP bool - select IBM_NEW_EMAC_ZMII +# Disabled until the new EMAC Driver is merged. +# select IBM_NEW_EMAC_ZMII config 440GX bool -- cgit v1.2.3-70-g09d2 From 9d561ed46ea33c223def2eb8e2b09ea108a4d70b Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Mon, 14 May 2007 01:50:27 +1000 Subject: [POWERPC] viopath: Use completion Use a completion instead of abusing a semaphore for hypervisor event completion in viopath. Signed-off-by: Christoph Hellwig Acked-by: Stephen Rothwell Signed-off-by: Paul Mackerras --- arch/powerpc/platforms/iseries/viopath.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/platforms/iseries/viopath.c b/arch/powerpc/platforms/iseries/viopath.c index 354b8dd2a2c..7f58e5929a2 100644 --- a/arch/powerpc/platforms/iseries/viopath.c +++ b/arch/powerpc/platforms/iseries/viopath.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -115,7 +116,7 @@ static int proc_viopath_show(struct seq_file *m, void *v) u16 vlanMap; dma_addr_t handle; HvLpEvent_Rc hvrc; - DECLARE_MUTEX_LOCKED(Semaphore); + DECLARE_COMPLETION(done); struct device_node *node; const char *sysid; @@ -132,13 +133,13 @@ static int proc_viopath_show(struct seq_file *m, void *v) HvLpEvent_AckInd_DoAck, HvLpEvent_AckType_ImmediateAck, viopath_sourceinst(viopath_hostLp), viopath_targetinst(viopath_hostLp), - (u64)(unsigned long)&Semaphore, VIOVERSION << 16, + (u64)(unsigned long)&done, VIOVERSION << 16, ((u64)handle) << 32, HW_PAGE_SIZE, 0, 0); if (hvrc != HvLpEvent_Rc_Good) printk(VIOPATH_KERN_WARN "hv error on op %d\n", (int)hvrc); - down(&Semaphore); + wait_for_completion(&done); vlanMap = HvLpConfig_getVirtualLanIndexMap(); @@ -353,7 +354,7 @@ static void handleConfig(struct HvLpEvent *event) return; } - up((struct semaphore *)event->xCorrelationToken); + complete((struct completion *)event->xCorrelationToken); } /* -- cgit v1.2.3-70-g09d2 From 39d207036c76ff16650772b83fb1a12ab788ca26 Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Tue, 15 May 2007 23:10:34 +1000 Subject: [POWERPC] viopath: Use a completion in some more places Signed-off-by: Christoph Hellwig Signed-off-by: Paul Mackerras --- arch/powerpc/platforms/iseries/viopath.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/platforms/iseries/viopath.c b/arch/powerpc/platforms/iseries/viopath.c index 7f58e5929a2..6a0060a5f2e 100644 --- a/arch/powerpc/platforms/iseries/viopath.c +++ b/arch/powerpc/platforms/iseries/viopath.c @@ -82,7 +82,7 @@ static void handleMonitorEvent(struct HvLpEvent *event); * if system_state is not SYSTEM_RUNNING, then wait_atomic is used ... */ struct alloc_parms { - struct semaphore sem; + struct completion done; int number; atomic_t wait_atomic; int used_wait_atomic; @@ -465,7 +465,7 @@ static void viopath_donealloc(void *parm, int number) if (parmsp->used_wait_atomic) atomic_set(&parmsp->wait_atomic, 0); else - up(&parmsp->sem); + complete(&parmsp->done); } static int allocateEvents(HvLpIndex remoteLp, int numEvents) @@ -477,7 +477,7 @@ static int allocateEvents(HvLpIndex remoteLp, int numEvents) atomic_set(&parms.wait_atomic, 1); } else { parms.used_wait_atomic = 0; - init_MUTEX_LOCKED(&parms.sem); + init_completion(&parms.done); } mf_allocate_lp_events(remoteLp, HvLpEvent_Type_VirtualIo, 250, /* It would be nice to put a real number here! */ numEvents, &viopath_donealloc, &parms); @@ -485,7 +485,7 @@ static int allocateEvents(HvLpIndex remoteLp, int numEvents) while (atomic_read(&parms.wait_atomic)) mb(); } else - down(&parms.sem); + wait_for_completion(&parms.done); return parms.number; } @@ -586,10 +586,10 @@ int viopath_close(HvLpIndex remoteLp, int subtype, int numReq) spin_unlock_irqrestore(&statuslock, flags); parms.used_wait_atomic = 0; - init_MUTEX_LOCKED(&parms.sem); + init_completion(&parms.done); mf_deallocate_lp_events(remoteLp, HvLpEvent_Type_VirtualIo, numReq, &viopath_donealloc, &parms); - down(&parms.sem); + wait_for_completion(&parms.done); spin_lock_irqsave(&statuslock, flags); for (i = 0, numOpen = 0; i < VIO_MAX_SUBTYPES; i++) -- cgit v1.2.3-70-g09d2 From 7c40542ffaa20e361f5f37d112aba41a725fc759 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Mon, 14 May 2007 13:13:57 +1000 Subject: [POWERPC] Fix bug adding properties with flatdevtree.c's ft_set_prop() ft_set_prop() from flatdevtree.c in the zImage wrapper will either replace an existing property in the flat device tree, or add a new property definiion if the given property isn't present. However, when adding properties, it adds the property definition immediately before the node's END_NODE tag, potentially after any subnode definitions for the node. This confuses the kernel flat tree parser in prom.c which assumes that all property definitions for a node come before all subnode definitions. This patch corrects ft_set_prop() so that it adds new properties before the first subnode, instead of before the END_NODE tag. Signed-off-by: David Gibson Acked-by: Scott Wood Acked-by: Mark A. Greer Signed-off-by: Paul Mackerras --- arch/powerpc/boot/flatdevtree.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/boot/flatdevtree.c b/arch/powerpc/boot/flatdevtree.c index d00fbd92a45..b732644788d 100644 --- a/arch/powerpc/boot/flatdevtree.c +++ b/arch/powerpc/boot/flatdevtree.c @@ -891,28 +891,27 @@ int ft_set_prop(struct ft_cxt *cxt, const void *phandle, const char *propname, struct ft_atom atom; void *node; char *p, *next; - int nextra, depth; + int nextra; node = ft_node_ph2node(cxt, phandle); if (node == NULL) return -1; - depth = 0; - p = node; + next = ft_next(cxt, node, &atom); + if (atom.tag != OF_DT_BEGIN_NODE) + /* phandle didn't point to a node */ + return -1; + p = next; while ((next = ft_next(cxt, p, &atom)) != NULL) { switch (atom.tag) { - case OF_DT_BEGIN_NODE: - ++depth; - break; + case OF_DT_BEGIN_NODE: /* properties must go before subnodes */ case OF_DT_END_NODE: - if (--depth > 0) - break; /* haven't found the property, insert here */ cxt->p = p; return ft_prop(cxt, propname, buf, buflen); case OF_DT_PROP: - if ((depth != 1) || strcmp(atom.name, propname)) + if (strcmp(atom.name, propname)) break; /* found an existing property, overwrite it */ nextra = _ALIGN(buflen, 4) - _ALIGN(atom.size, 4); -- cgit v1.2.3-70-g09d2 From cbb0503742de65a5931226b5b72830f650cf4947 Mon Sep 17 00:00:00 2001 From: Stephen Rothwell Date: Mon, 14 May 2007 14:36:28 +1000 Subject: [POWERPC] Update iseries_defconfig Signed-off-by: Stephen Rothwell Signed-off-by: Paul Mackerras --- arch/powerpc/configs/iseries_defconfig | 209 ++++++++++++++++++--------------- 1 file changed, 116 insertions(+), 93 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig index 5fc87448704..af25118c8f2 100644 --- a/arch/powerpc/configs/iseries_defconfig +++ b/arch/powerpc/configs/iseries_defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.20-rc5 -# Mon Jan 22 22:16:44 2007 +# Linux kernel version: 2.6.22-rc1 +# Mon May 14 14:27:46 2007 # CONFIG_PPC64=y CONFIG_64BIT=y @@ -40,6 +40,7 @@ CONFIG_PPC_FPU=y # CONFIG_PPC_OF_PLATFORM_PCI is not set # CONFIG_ALTIVEC is not set CONFIG_PPC_STD_MMU=y +# CONFIG_PPC_MM_SLICES is not set CONFIG_VIRT_CPU_ACCOUNTING=y CONFIG_SMP=y CONFIG_NR_CPUS=32 @@ -60,6 +61,7 @@ CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_IPC_NS is not set +CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set @@ -68,9 +70,11 @@ CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=17 # CONFIG_CPUSETS is not set CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y @@ -85,14 +89,19 @@ CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y +CONFIG_ANON_INODES=y CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y CONFIG_SHMEM=y -CONFIG_SLAB=y CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set CONFIG_RT_MUTEXES=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 -# CONFIG_SLOB is not set # # Loadable module support @@ -131,15 +140,30 @@ CONFIG_PPC_MULTIPLATFORM=y # CONFIG_EMBEDDED6xx is not set # CONFIG_APUS is not set # CONFIG_PPC_PSERIES is not set +CONFIG_LPARCFG=y CONFIG_PPC_ISERIES=y + +# +# iSeries device drivers +# +CONFIG_VIODASD=y +CONFIG_VIOCD=m +CONFIG_VIOTAPE=m +CONFIG_VIOPATH=y # CONFIG_PPC_MPC52xx is not set +# CONFIG_PPC_MPC5200 is not set # CONFIG_PPC_PMAC is not set # CONFIG_PPC_MAPLE is not set # CONFIG_PPC_PASEMI is not set +# CONFIG_PPC_CELLEB is not set +# CONFIG_PPC_PS3 is not set # CONFIG_PPC_CELL is not set # CONFIG_PPC_CELL_NATIVE is not set # CONFIG_PPC_IBM_CELL_BLADE is not set -# CONFIG_PPC_PS3 is not set +# CONFIG_PQ2ADS is not set +# CONFIG_MPIC is not set +# CONFIG_MPIC_WEIRD is not set +# CONFIG_PPC_I8259 is not set # CONFIG_U3_DART is not set # CONFIG_PPC_RTAS is not set # CONFIG_MMIO_NVRAM is not set @@ -149,8 +173,7 @@ CONFIG_IBMVIO=y CONFIG_PPC_INDIRECT_IO=y CONFIG_GENERIC_IOMAP=y # CONFIG_CPU_FREQ is not set -# CONFIG_WANT_EARLY_SERIAL is not set -# CONFIG_MPIC is not set +# CONFIG_CPM2 is not set # # Kernel options @@ -172,7 +195,6 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # CONFIG_KEXEC is not set # CONFIG_CRASH_DUMP is not set CONFIG_IRQ_ALL_CPUS=y -CONFIG_LPARCFG=y # CONFIG_NUMA is not set CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_FLATMEM_ENABLE=y @@ -187,34 +209,34 @@ CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_RESOURCES_64BIT=y +CONFIG_ZONE_DMA_FLAG=1 +# CONFIG_PPC_HAS_HASH_64K is not set # CONFIG_PPC_64K_PAGES is not set # CONFIG_SCHED_SMT is not set CONFIG_PROC_DEVICETREE=y # CONFIG_CMDLINE_BOOL is not set # CONFIG_PM is not set CONFIG_SECCOMP=y +# CONFIG_WANT_DEVICE_TREE is not set CONFIG_ISA_DMA_API=y # # Bus options # +CONFIG_ZONE_DMA=y CONFIG_GENERIC_ISA_DMA=y -# CONFIG_MPIC_WEIRD is not set -# CONFIG_PPC_I8259 is not set # CONFIG_PPC_INDIRECT_PCI is not set CONFIG_PCI=y CONFIG_PCI_DOMAINS=y # CONFIG_PCIEPORTBUS is not set +CONFIG_ARCH_SUPPORTS_MSI=y +# CONFIG_PCI_MSI is not set # CONFIG_PCI_DEBUG is not set # # PCCARD (PCMCIA/CardBus) support # # CONFIG_PCCARD is not set - -# -# PCI Hotplug Support -# # CONFIG_HOTPLUG_PCI is not set CONFIG_KERNEL_START=0xc000000000000000 @@ -226,14 +248,15 @@ CONFIG_NET=y # # Networking options # -# CONFIG_NETDEBUG is not set CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=m CONFIG_XFRM_SUB_POLICY=y +# CONFIG_XFRM_MIGRATE is not set CONFIG_NET_KEY=m +# CONFIG_NET_KEY_MIGRATE is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y # CONFIG_IP_ADVANCED_ROUTER is not set @@ -275,8 +298,6 @@ CONFIG_NETFILTER=y # # CONFIG_NETFILTER_NETLINK is not set CONFIG_NF_CONNTRACK_ENABLED=m -CONFIG_NF_CONNTRACK_SUPPORT=y -# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set CONFIG_NF_CONNTRACK=m # CONFIG_NF_CT_ACCT is not set CONFIG_NF_CONNTRACK_MARK=y @@ -288,6 +309,7 @@ CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_IRC=m # CONFIG_NF_CONNTRACK_NETBIOS_NS is not set # CONFIG_NF_CONNTRACK_PPTP is not set +# CONFIG_NF_CONNTRACK_SANE is not set # CONFIG_NF_CONNTRACK_SIP is not set CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NETFILTER_XTABLES=m @@ -298,7 +320,9 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set # CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set +# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set CONFIG_NETFILTER_XT_MATCH_COMMENT=m +# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m # CONFIG_NETFILTER_XT_MATCH_DCCP is not set @@ -340,7 +364,6 @@ CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m CONFIG_IP_NF_TARGET_LOG=m CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_IP_NF_TARGET_TCPMSS=m CONFIG_NF_NAT=m CONFIG_NF_NAT_NEEDED=y CONFIG_IP_NF_TARGET_MASQUERADE=m @@ -373,7 +396,12 @@ CONFIG_IP_NF_ARP_MANGLE=m # # SCTP Configuration (EXPERIMENTAL) # -# CONFIG_IP_SCTP is not set +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_HMAC_NONE is not set +# CONFIG_SCTP_HMAC_SHA1 is not set +CONFIG_SCTP_HMAC_MD5=y # # TIPC Configuration (EXPERIMENTAL) @@ -405,7 +433,16 @@ CONFIG_NET_CLS_ROUTE=y # CONFIG_HAMRADIO is not set # CONFIG_IRDA is not set # CONFIG_BT is not set +# CONFIG_AF_RXRPC is not set + +# +# Wireless +# +# CONFIG_CFG80211 is not set +# CONFIG_WIRELESS_EXT is not set +# CONFIG_MAC80211 is not set # CONFIG_IEEE80211 is not set +# CONFIG_RFKILL is not set # # Device Drivers @@ -418,16 +455,13 @@ CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=m # CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set # # Connector - unified userspace <-> kernelspace linker # # CONFIG_CONNECTOR is not set - -# -# Memory Technology Devices (MTD) -# # CONFIG_MTD is not set # @@ -438,6 +472,7 @@ CONFIG_FW_LOADER=m # # Plug and Play support # +# CONFIG_PNPACPI is not set # # Block devices @@ -456,15 +491,16 @@ CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=65536 CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 -CONFIG_BLK_DEV_INITRD=y # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set # # Misc devices # +# CONFIG_PHANTOM is not set # CONFIG_SGI_IOC4 is not set # CONFIG_TIFM_CORE is not set +# CONFIG_BLINK is not set # # ATA/ATAPI/MFM/RLL support @@ -498,6 +534,7 @@ CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y # CONFIG_SCSI_LOGGING is not set # CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m # # SCSI Transports @@ -544,11 +581,8 @@ CONFIG_SCSI_IBMVSCSI=m # CONFIG_SCSI_DC395x is not set # CONFIG_SCSI_DC390T is not set # CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_ESP_CORE is not set # CONFIG_SCSI_SRP is not set - -# -# Serial ATA (prod) and Parallel ATA (experimental) drivers -# # CONFIG_ATA is not set # @@ -570,6 +604,7 @@ CONFIG_DM_SNAPSHOT=m CONFIG_DM_MIRROR=m CONFIG_DM_ZERO=m # CONFIG_DM_MULTIPATH is not set +# CONFIG_DM_DELAY is not set # # Fusion MPT device support @@ -582,18 +617,14 @@ CONFIG_DM_ZERO=m # # IEEE 1394 (FireWire) support # +# CONFIG_FIREWIRE is not set # CONFIG_IEEE1394 is not set # # I2O device support # # CONFIG_I2O is not set - -# -# Macintosh device drivers -# -# CONFIG_MAC_EMUMOUSEBTN is not set -# CONFIG_WINDFARM is not set +# CONFIG_MACINTOSH_DRIVERS is not set # # Network device support @@ -608,10 +639,6 @@ CONFIG_TUN=m # ARCnet devices # # CONFIG_ARCNET is not set - -# -# PHY device support -# # CONFIG_PHYLIB is not set # @@ -648,10 +675,8 @@ CONFIG_E100=y # CONFIG_EPIC100 is not set # CONFIG_SUNDANCE is not set # CONFIG_VIA_RHINE is not set - -# -# Ethernet (1000 Mbit) -# +# CONFIG_SC92031 is not set +CONFIG_NETDEV_1000=y CONFIG_ACENIC=m # CONFIG_ACENIC_OMIT_TIGON_I is not set # CONFIG_DL2K is not set @@ -670,15 +695,17 @@ CONFIG_E1000=m # CONFIG_TIGON3 is not set # CONFIG_BNX2 is not set # CONFIG_QLA3XXX is not set - -# -# Ethernet (10000 Mbit) -# +# CONFIG_ATL1 is not set +CONFIG_NETDEV_10000=y # CONFIG_CHELSIO_T1 is not set +# CONFIG_CHELSIO_T3 is not set # CONFIG_IXGB is not set # CONFIG_S2IO is not set # CONFIG_MYRI10GE is not set # CONFIG_NETXEN_NIC is not set +# CONFIG_PASEMI_MAC is not set +# CONFIG_MLX4_CORE is not set +CONFIG_MLX4_DEBUG=y # # Token Ring devices @@ -689,13 +716,10 @@ CONFIG_IBMOL=y # CONFIG_TMS380TR is not set # -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set - -# -# Wan interfaces +# Wireless LAN # +# CONFIG_WLAN_PRE80211 is not set +# CONFIG_WLAN_80211 is not set # CONFIG_WAN is not set CONFIG_ISERIES_VETH=y # CONFIG_FDDI is not set @@ -715,7 +739,6 @@ CONFIG_SLHC=m # CONFIG_SHAPER is not set CONFIG_NETCONSOLE=y CONFIG_NETPOLL=y -CONFIG_NETPOLL_RX=y CONFIG_NETPOLL_TRAP=y CONFIG_NET_POLL_CONTROLLER=y @@ -753,6 +776,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_KEYBOARD is not set # CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set # CONFIG_INPUT_MISC is not set @@ -765,6 +789,10 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # # Character devices # +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set # CONFIG_SERIAL_NONSTANDARD is not set # @@ -781,20 +809,17 @@ CONFIG_SERIAL_ICOM=m CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_HVC_DRIVER=y +CONFIG_HVC_ISERIES=y # # IPMI # # CONFIG_IPMI_HANDLER is not set - -# -# Watchdog Cards -# # CONFIG_WATCHDOG is not set # CONFIG_HW_RANDOM is not set CONFIG_GEN_RTC=y # CONFIG_GEN_RTC_X is not set -# CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_AGP is not set @@ -807,10 +832,7 @@ CONFIG_MAX_RAW_DEVS=256 # TPM devices # # CONFIG_TCG_TPM is not set - -# -# I2C support -# +CONFIG_DEVPORT=y # CONFIG_I2C is not set # @@ -823,30 +845,39 @@ CONFIG_MAX_RAW_DEVS=256 # Dallas's 1-wire bus # # CONFIG_W1 is not set +# CONFIG_HWMON is not set # -# Hardware Monitoring support +# Multifunction device drivers # -# CONFIG_HWMON is not set -# CONFIG_HWMON_VID is not set +# CONFIG_MFD_SM501 is not set # # Multimedia devices # # CONFIG_VIDEO_DEV is not set +# CONFIG_DVB_CORE is not set +# CONFIG_DAB is not set # -# Digital Video Broadcasting Devices +# Graphics support # -# CONFIG_DVB is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set # -# Graphics support +# Display device support # -CONFIG_FIRMWARE_EDID=y +# CONFIG_DISPLAY_SUPPORT is not set +# CONFIG_VGASTATE is not set # CONFIG_FB is not set # CONFIG_FB_IBM_GXT4500 is not set -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +CONFIG_DUMMY_CONSOLE=y # # Sound @@ -874,10 +905,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y # USB Gadget Support # # CONFIG_USB_GADGET is not set - -# -# MMC/SD Card support -# # CONFIG_MMC is not set # @@ -920,10 +947,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y # DMA Devices # -# -# Virtualization -# - # # File systems # @@ -979,7 +1002,6 @@ CONFIG_GENERIC_ACL=y CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y -CONFIG_ZISOFS_FS=y CONFIG_UDF_FS=m CONFIG_UDF_NLS=y @@ -1045,6 +1067,7 @@ CONFIG_NFS_ACL_SUPPORT=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y CONFIG_SUNRPC_GSS=y +# CONFIG_SUNRPC_BIND34 is not set CONFIG_RPCSEC_GSS_KRB5=y CONFIG_RPCSEC_GSS_SPKM3=m # CONFIG_SMB_FS is not set @@ -1114,18 +1137,9 @@ CONFIG_NLS_ISO8859_1=y # Distributed Lock Manager # CONFIG_DLM=m -CONFIG_DLM_TCP=y -# CONFIG_DLM_SCTP is not set # CONFIG_DLM_DEBUG is not set - -# -# iSeries device drivers -# -CONFIG_VIOCONS=y -CONFIG_VIODASD=y -CONFIG_VIOCD=m -CONFIG_VIOTAPE=m -CONFIG_VIOPATH=y +# CONFIG_UCC_SLOW is not set +# CONFIG_UCC_FAST is not set # # Library routines @@ -1133,6 +1147,7 @@ CONFIG_VIOPATH=y CONFIG_BITREVERSE=y CONFIG_CRC_CCITT=m # CONFIG_CRC16 is not set +# CONFIG_CRC_ITU_T is not set CONFIG_CRC32=y CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y @@ -1142,7 +1157,9 @@ CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m CONFIG_TEXTSEARCH_FSM=m CONFIG_PLIST=y -CONFIG_IOMAP_COPY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y # # Instrumentation Support @@ -1160,15 +1177,15 @@ CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set CONFIG_DEBUG_KERNEL=y -CONFIG_LOG_BUF_SHIFT=17 +# CONFIG_DEBUG_SHIRQ is not set CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set # CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set @@ -1178,8 +1195,10 @@ CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_LIST is not set # CONFIG_FORCED_INLINING is not set # CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_FAULT_INJECTION is not set CONFIG_DEBUG_STACKOVERFLOW=y CONFIG_DEBUG_STACK_USAGE=y +# CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_DEBUGGER is not set CONFIG_IRQSTACKS=y # CONFIG_BOOTX_TEXT is not set @@ -1212,8 +1231,11 @@ CONFIG_CRYPTO_TGR192=m # CONFIG_CRYPTO_GF128MUL is not set CONFIG_CRYPTO_ECB=m CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_PCBC=m # CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_CRYPTD is not set CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m @@ -1228,6 +1250,7 @@ CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_DEFLATE=m CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_CRC32C=m +# CONFIG_CRYPTO_CAMELLIA is not set CONFIG_CRYPTO_TEST=m # -- cgit v1.2.3-70-g09d2 From 71efe45da9b520fd4621305f8fbcbdd74607f287 Mon Sep 17 00:00:00 2001 From: Olof Johansson Date: Tue, 15 May 2007 06:03:09 +1000 Subject: [POWERPC] pasemi: CONFIG_GENERIC_TBSYNC no longer needed Current kernel implements proper TB sync, no need to keep GENERIC_TBSYNC enabled. Signed-off-by: Olof Johansson Signed-off-by: Paul Mackerras --- arch/powerpc/platforms/pasemi/Kconfig | 1 - 1 file changed, 1 deletion(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/platforms/pasemi/Kconfig b/arch/powerpc/platforms/pasemi/Kconfig index eb4dbc705b0..7c5076e38ea 100644 --- a/arch/powerpc/platforms/pasemi/Kconfig +++ b/arch/powerpc/platforms/pasemi/Kconfig @@ -4,7 +4,6 @@ config PPC_PASEMI default n select MPIC select PPC_UDBG_16550 - select GENERIC_TBSYNC select PPC_NATIVE help This option enables support for PA Semi's PWRficient line -- cgit v1.2.3-70-g09d2 From 63df81ec3bc91cd894e3609b7267ed50df408ebd Mon Sep 17 00:00:00 2001 From: Olof Johansson Date: Tue, 15 May 2007 06:03:30 +1000 Subject: [POWERPC] Update pasemi_defconfig Update pasemi_defconfig, add new relevant drivers. Take out CONFIG_PPC_PSERIES, it should't have been enabled in the first place. Signed-off-by: Olof Johansson Signed-off-by: Paul Mackerras --- arch/powerpc/configs/pasemi_defconfig | 383 +++++++++++++++++++--------------- 1 file changed, 219 insertions(+), 164 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/configs/pasemi_defconfig b/arch/powerpc/configs/pasemi_defconfig index 97a57e99666..0507c8f7bfb 100644 --- a/arch/powerpc/configs/pasemi_defconfig +++ b/arch/powerpc/configs/pasemi_defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.20-rc6 -# Thu Feb 1 22:54:15 2007 +# Linux kernel version: 2.6.21 +# Mon May 14 12:55:04 2007 # CONFIG_PPC64=y CONFIG_64BIT=y @@ -23,7 +23,7 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_PPC_OF=y CONFIG_PPC_UDBG_16550=y -CONFIG_GENERIC_TBSYNC=y +# CONFIG_GENERIC_TBSYNC is not set CONFIG_AUDIT_ARCH=y CONFIG_GENERIC_BUG=y # CONFIG_DEFAULT_UIMAGE is not set @@ -39,6 +39,7 @@ CONFIG_PPC_FPU=y # CONFIG_PPC_OF_PLATFORM_PCI is not set CONFIG_ALTIVEC=y CONFIG_PPC_STD_MMU=y +CONFIG_PPC_MM_SLICES=y # CONFIG_VIRT_CPU_ACCOUNTING is not set CONFIG_SMP=y CONFIG_NR_CPUS=2 @@ -59,15 +60,18 @@ CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_IPC_NS is not set +CONFIG_SYSVIPC_SYSCTL=y # CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set # CONFIG_UTS_NS is not set # CONFIG_AUDIT is not set # CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=17 # CONFIG_CPUSETS is not set CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y @@ -82,14 +86,19 @@ CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y +CONFIG_ANON_INODES=y CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y CONFIG_SHMEM=y -CONFIG_SLAB=y CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set CONFIG_RT_MUTEXES=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 -# CONFIG_SLOB is not set # # Loadable module support @@ -127,39 +136,38 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" CONFIG_PPC_MULTIPLATFORM=y # CONFIG_EMBEDDED6xx is not set # CONFIG_APUS is not set -CONFIG_PPC_PSERIES=y +# CONFIG_PPC_PSERIES is not set # CONFIG_PPC_ISERIES is not set # CONFIG_PPC_MPC52xx is not set +# CONFIG_PPC_MPC5200 is not set # CONFIG_PPC_PMAC is not set # CONFIG_PPC_MAPLE is not set CONFIG_PPC_PASEMI=y + +# +# PA Semi PWRficient options +# +CONFIG_PPC_PASEMI_IOMMU=y +CONFIG_PPC_PASEMI_MDIO=y +# CONFIG_PPC_CELLEB is not set +# CONFIG_PPC_PS3 is not set # CONFIG_PPC_CELL is not set # CONFIG_PPC_CELL_NATIVE is not set # CONFIG_PPC_IBM_CELL_BLADE is not set -# CONFIG_PPC_PS3 is not set +# CONFIG_PQ2ADS is not set CONFIG_PPC_NATIVE=y -# CONFIG_UDBG_RTAS_CONSOLE is not set -CONFIG_XICS=y +CONFIG_MPIC=y +# CONFIG_MPIC_WEIRD is not set +# CONFIG_PPC_I8259 is not set # CONFIG_U3_DART is not set -CONFIG_PPC_RTAS=y -CONFIG_RTAS_ERROR_LOGGING=y -CONFIG_RTAS_PROC=y -# CONFIG_RTAS_FLASH is not set +# CONFIG_PPC_RTAS is not set # CONFIG_MMIO_NVRAM is not set -CONFIG_IBMVIO=y -# CONFIG_IBMEBUS is not set # CONFIG_PPC_MPC106 is not set # CONFIG_PPC_970_NAP is not set # CONFIG_PPC_INDIRECT_IO is not set # CONFIG_GENERIC_IOMAP is not set # CONFIG_CPU_FREQ is not set -# CONFIG_WANT_EARLY_SERIAL is not set -CONFIG_MPIC=y - -# -# PA Semi PWRficient options -# -CONFIG_PPC_PASEMI_IOMMU=y +# CONFIG_CPM2 is not set # # Kernel options @@ -177,20 +185,14 @@ CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_MISC is not set CONFIG_FORCE_MAX_ZONEORDER=13 CONFIG_IOMMU_VMERGE=y -# CONFIG_HOTPLUG_CPU is not set CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # CONFIG_KEXEC is not set # CONFIG_CRASH_DUMP is not set # CONFIG_IRQ_ALL_CPUS is not set -# CONFIG_PPC_SPLPAR is not set -CONFIG_EEH=y -# CONFIG_SCANLOG is not set -# CONFIG_LPARCFG is not set # CONFIG_NUMA is not set CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -201,24 +203,28 @@ CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_RESOURCES_64BIT=y +CONFIG_ZONE_DMA_FLAG=1 +# CONFIG_PPC_HAS_HASH_64K is not set # CONFIG_PPC_64K_PAGES is not set # CONFIG_SCHED_SMT is not set CONFIG_PROC_DEVICETREE=y # CONFIG_CMDLINE_BOOL is not set # CONFIG_PM is not set # CONFIG_SECCOMP is not set +# CONFIG_WANT_DEVICE_TREE is not set CONFIG_ISA_DMA_API=y # # Bus options # +CONFIG_ZONE_DMA=y CONFIG_GENERIC_ISA_DMA=y -# CONFIG_MPIC_WEIRD is not set -CONFIG_PPC_I8259=y # CONFIG_PPC_INDIRECT_PCI is not set CONFIG_PCI=y CONFIG_PCI_DOMAINS=y # CONFIG_PCIEPORTBUS is not set +CONFIG_ARCH_SUPPORTS_MSI=y +# CONFIG_PCI_MSI is not set # CONFIG_PCI_DEBUG is not set # @@ -237,10 +243,6 @@ CONFIG_CARDBUS=y # CONFIG_YENTA is not set # CONFIG_PD6729 is not set # CONFIG_I82092 is not set - -# -# PCI Hotplug Support -# # CONFIG_HOTPLUG_PCI is not set CONFIG_KERNEL_START=0xc000000000000000 @@ -252,14 +254,15 @@ CONFIG_NET=y # # Networking options # -# CONFIG_NETDEBUG is not set CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set CONFIG_UNIX=y CONFIG_XFRM=y # CONFIG_XFRM_USER is not set # CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set CONFIG_NET_KEY=y +# CONFIG_NET_KEY_MIGRATE is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y # CONFIG_IP_ADVANCED_ROUTER is not set @@ -331,7 +334,16 @@ CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_HAMRADIO is not set # CONFIG_IRDA is not set # CONFIG_BT is not set +# CONFIG_AF_RXRPC is not set + +# +# Wireless +# +# CONFIG_CFG80211 is not set +# CONFIG_WIRELESS_EXT is not set +# CONFIG_MAC80211 is not set # CONFIG_IEEE80211 is not set +# CONFIG_RFKILL is not set # # Device Drivers @@ -344,16 +356,13 @@ CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set # # Connector - unified userspace <-> kernelspace linker # # CONFIG_CONNECTOR is not set - -# -# Memory Technology Devices (MTD) -# CONFIG_MTD=y # CONFIG_MTD_DEBUG is not set CONFIG_MTD_CONCAT=y @@ -389,7 +398,6 @@ CONFIG_MTD_CFI_I2=y # CONFIG_MTD_RAM is not set # CONFIG_MTD_ROM is not set # CONFIG_MTD_ABSENT is not set -# CONFIG_MTD_OBSOLETE_CHIPS is not set # # Mapping drivers for chip access @@ -412,17 +420,13 @@ CONFIG_MTD_PHRAM=y # CONFIG_MTD_DOC2000 is not set # CONFIG_MTD_DOC2001 is not set # CONFIG_MTD_DOC2001PLUS is not set - -# -# NAND Flash Device Drivers -# # CONFIG_MTD_NAND is not set -# CONFIG_MTD_NAND_CAFE is not set +# CONFIG_MTD_ONENAND is not set # -# OneNAND Flash Device Drivers +# UBI - Unsorted block images # -# CONFIG_MTD_ONENAND is not set +# CONFIG_MTD_UBI is not set # # Parallel port support @@ -432,6 +436,7 @@ CONFIG_MTD_PHRAM=y # # Plug and Play support # +# CONFIG_PNPACPI is not set # # Block devices @@ -451,15 +456,16 @@ CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 -CONFIG_BLK_DEV_INITRD=y # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set # # Misc devices # +# CONFIG_PHANTOM is not set # CONFIG_SGI_IOC4 is not set # CONFIG_TIFM_CORE is not set +# CONFIG_BLINK is not set # # ATA/ATAPI/MFM/RLL support @@ -474,20 +480,22 @@ CONFIG_BLK_DEV_IDE=y CONFIG_BLK_DEV_IDEDISK=y CONFIG_IDEDISK_MULTI_MODE=y # CONFIG_BLK_DEV_IDECS is not set +# CONFIG_BLK_DEV_DELKIN is not set CONFIG_BLK_DEV_IDECD=y # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set CONFIG_BLK_DEV_IDESCSI=y CONFIG_IDE_TASK_IOCTL=y +CONFIG_IDE_PROC_FS=y # # IDE chipset support/bugfixes # # CONFIG_IDE_GENERIC is not set # CONFIG_BLK_DEV_IDEPCI is not set +# CONFIG_IDEPCI_PCIBUS_ORDER is not set # CONFIG_IDE_ARM is not set # CONFIG_BLK_DEV_IDEDMA is not set -# CONFIG_IDEDMA_AUTO is not set # CONFIG_BLK_DEV_HD is not set # @@ -517,6 +525,7 @@ CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y # CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m # # SCSI Transports @@ -550,7 +559,6 @@ CONFIG_SCSI_3W_9XXX=y # CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_GDTH is not set # CONFIG_SCSI_IPS is not set -# CONFIG_SCSI_IBMVSCSI is not set # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_STEX is not set @@ -563,6 +571,7 @@ CONFIG_SCSI_3W_9XXX=y # CONFIG_SCSI_DC395x is not set # CONFIG_SCSI_DC390T is not set # CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_ESP_CORE is not set # CONFIG_SCSI_SRP is not set # @@ -578,7 +587,7 @@ CONFIG_SCSI_3W_9XXX=y CONFIG_ATA=y # CONFIG_ATA_NONSTANDARD is not set # CONFIG_SATA_AHCI is not set -CONFIG_SATA_SVW=y +# CONFIG_SATA_SVW is not set # CONFIG_ATA_PIIX is not set CONFIG_SATA_MV=y # CONFIG_SATA_NV is not set @@ -586,16 +595,18 @@ CONFIG_SATA_MV=y # CONFIG_SATA_QSTOR is not set # CONFIG_SATA_PROMISE is not set # CONFIG_SATA_SX4 is not set -CONFIG_SATA_SIL=y +# CONFIG_SATA_SIL is not set CONFIG_SATA_SIL24=y # CONFIG_SATA_SIS is not set # CONFIG_SATA_ULI is not set # CONFIG_SATA_VIA is not set # CONFIG_SATA_VITESSE is not set +# CONFIG_SATA_INIC162X is not set # CONFIG_PATA_ALI is not set # CONFIG_PATA_AMD is not set # CONFIG_PATA_ARTOP is not set # CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_CMD640_PCI is not set # CONFIG_PATA_CMD64X is not set # CONFIG_PATA_CS5520 is not set # CONFIG_PATA_CS5530 is not set @@ -607,6 +618,7 @@ CONFIG_ATA_GENERIC=y # CONFIG_PATA_HPT3X2N is not set # CONFIG_PATA_HPT3X3 is not set # CONFIG_PATA_IT821X is not set +# CONFIG_PATA_IT8213 is not set # CONFIG_PATA_JMICRON is not set # CONFIG_PATA_TRIFLEX is not set # CONFIG_PATA_MARVELL is not set @@ -644,27 +656,26 @@ CONFIG_ATA_GENERIC=y # # IEEE 1394 (FireWire) support # +# CONFIG_FIREWIRE is not set CONFIG_IEEE1394=y # # Subsystem Options # # CONFIG_IEEE1394_VERBOSEDEBUG is not set -# CONFIG_IEEE1394_OUI_DB is not set -# CONFIG_IEEE1394_EXTRA_CONFIG_ROMS is not set -# CONFIG_IEEE1394_EXPORT_FULL_API is not set # -# Device Drivers +# Controllers # CONFIG_IEEE1394_PCILYNX=y CONFIG_IEEE1394_OHCI1394=y # -# Protocol Drivers +# Protocols # # CONFIG_IEEE1394_VIDEO1394 is not set CONFIG_IEEE1394_SBP2=y +# CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set # CONFIG_IEEE1394_ETH1394 is not set # CONFIG_IEEE1394_DV1394 is not set CONFIG_IEEE1394_RAWIO=y @@ -673,12 +684,7 @@ CONFIG_IEEE1394_RAWIO=y # I2O device support # # CONFIG_I2O is not set - -# -# Macintosh device drivers -# -# CONFIG_MAC_EMUMOUSEBTN is not set -# CONFIG_WINDFARM is not set +# CONFIG_MACINTOSH_DRIVERS is not set # # Network device support @@ -697,7 +703,20 @@ CONFIG_DUMMY=y # # PHY device support # -# CONFIG_PHYLIB is not set +CONFIG_PHYLIB=y + +# +# MII PHY device drivers +# +CONFIG_MARVELL_PHY=y +# CONFIG_DAVICOM_PHY is not set +# CONFIG_QSEMI_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_CICADA_PHY is not set +# CONFIG_VITESSE_PHY is not set +# CONFIG_SMSC_PHY is not set +# CONFIG_BROADCOM_PHY is not set +# CONFIG_FIXED_PHY is not set # # Ethernet (10 or 100Mbit) @@ -714,7 +733,6 @@ CONFIG_MII=y # # CONFIG_NET_TULIP is not set # CONFIG_HP100 is not set -CONFIG_IBMVETH=y CONFIG_NET_PCI=y # CONFIG_PCNET32 is not set # CONFIG_AMD8111_ETH is not set @@ -722,7 +740,7 @@ CONFIG_NET_PCI=y # CONFIG_B44 is not set # CONFIG_FORCEDETH is not set # CONFIG_DGRS is not set -CONFIG_EEPRO100=y +# CONFIG_EEPRO100 is not set # CONFIG_E100 is not set # CONFIG_FEALNX is not set # CONFIG_NATSEMI is not set @@ -733,6 +751,7 @@ CONFIG_EEPRO100=y # CONFIG_EPIC100 is not set # CONFIG_SUNDANCE is not set # CONFIG_VIA_RHINE is not set +# CONFIG_SC92031 is not set # # Ethernet (1000 Mbit) @@ -754,15 +773,20 @@ CONFIG_E1000_NAPI=y CONFIG_TIGON3=y # CONFIG_BNX2 is not set # CONFIG_QLA3XXX is not set +# CONFIG_ATL1 is not set # # Ethernet (10000 Mbit) # # CONFIG_CHELSIO_T1 is not set +# CONFIG_CHELSIO_T3 is not set # CONFIG_IXGB is not set # CONFIG_S2IO is not set # CONFIG_MYRI10GE is not set # CONFIG_NETXEN_NIC is not set +CONFIG_PASEMI_MAC=y +# CONFIG_MLX4_CORE is not set +CONFIG_MLX4_DEBUG=y # # Token Ring devices @@ -770,9 +794,20 @@ CONFIG_TIGON3=y # CONFIG_TR is not set # -# Wireless LAN (non-hamradio) +# Wireless LAN +# +# CONFIG_WLAN_PRE80211 is not set +# CONFIG_WLAN_80211 is not set + +# +# USB Network Adapters # -# CONFIG_NET_RADIO is not set +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET_MII is not set +# CONFIG_USB_USBNET is not set # # PCMCIA network device support @@ -834,8 +869,10 @@ CONFIG_INPUT_KEYBOARD=y CONFIG_INPUT_MOUSE=y # CONFIG_MOUSE_PS2 is not set # CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_APPLETOUCH is not set # CONFIG_MOUSE_VSXXXAA is not set # CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set # CONFIG_INPUT_MISC is not set @@ -870,29 +907,21 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 # CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_ICOM is not set # CONFIG_SERIAL_JSM is not set +# CONFIG_SERIAL_OF_PLATFORM is not set CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=4 -CONFIG_HVC_DRIVER=y -CONFIG_HVC_CONSOLE=y -CONFIG_HVC_RTAS=y -# CONFIG_HVCS is not set # # IPMI # # CONFIG_IPMI_HANDLER is not set - -# -# Watchdog Cards -# # CONFIG_WATCHDOG is not set CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_PASEMI=y CONFIG_GEN_RTC=y CONFIG_GEN_RTC_X=y -# CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_AGP is not set @@ -912,11 +941,9 @@ CONFIG_MAX_RAW_DEVS=256 # TPM devices # # CONFIG_TCG_TPM is not set - -# -# I2C support -# +CONFIG_DEVPORT=y CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y CONFIG_I2C_CHARDEV=y # @@ -940,16 +967,18 @@ CONFIG_I2C_ALGOPCA=y # CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set +CONFIG_I2C_PASEMI=y # CONFIG_I2C_PROSAVAGE is not set # CONFIG_I2C_SAVAGE4 is not set +# CONFIG_I2C_SIMTEC is not set # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS96X is not set # CONFIG_I2C_STUB is not set +# CONFIG_I2C_TINY_USB is not set # CONFIG_I2C_VIA is not set # CONFIG_I2C_VIAPRO is not set # CONFIG_I2C_VOODOO3 is not set -# CONFIG_I2C_PCA_ISA is not set # # Miscellaneous I2C Chip support @@ -963,7 +992,7 @@ CONFIG_SENSORS_EEPROM=y # CONFIG_SENSORS_MAX6875 is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set -CONFIG_I2C_DEBUG_BUS=y +# CONFIG_I2C_DEBUG_BUS is not set # CONFIG_I2C_DEBUG_CHIP is not set # @@ -976,16 +1005,14 @@ CONFIG_I2C_DEBUG_BUS=y # Dallas's 1-wire bus # # CONFIG_W1 is not set - -# -# Hardware Monitoring support -# CONFIG_HWMON=y CONFIG_HWMON_VID=y # CONFIG_SENSORS_ABITUGURU is not set +# CONFIG_SENSORS_AD7418 is not set # CONFIG_SENSORS_ADM1021 is not set # CONFIG_SENSORS_ADM1025 is not set # CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1029 is not set # CONFIG_SENSORS_ADM1031 is not set # CONFIG_SENSORS_ADM9240 is not set # CONFIG_SENSORS_ASB100 is not set @@ -1008,6 +1035,7 @@ CONFIG_SENSORS_LM85=y CONFIG_SENSORS_LM90=y # CONFIG_SENSORS_LM92 is not set # CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_MAX6650 is not set # CONFIG_SENSORS_PC87360 is not set # CONFIG_SENSORS_PC87427 is not set # CONFIG_SENSORS_SIS5595 is not set @@ -1027,29 +1055,50 @@ CONFIG_SENSORS_LM90=y # CONFIG_HWMON_DEBUG_CHIP is not set # -# Multimedia devices +# Multifunction device drivers # -# CONFIG_VIDEO_DEV is not set +# CONFIG_MFD_SM501 is not set # -# Digital Video Broadcasting Devices +# Multimedia devices # -# CONFIG_DVB is not set +# CONFIG_VIDEO_DEV is not set +# CONFIG_DVB_CORE is not set +CONFIG_DAB=y # CONFIG_USB_DABUSB is not set # # Graphics support # -CONFIG_FIRMWARE_EDID=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=m + +# +# Display device support +# +# CONFIG_DISPLAY_SUPPORT is not set +CONFIG_VGASTATE=y CONFIG_FB=y +CONFIG_FIRMWARE_EDID=y CONFIG_FB_DDC=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_SYS_FILLRECT is not set +# CONFIG_FB_SYS_COPYAREA is not set +# CONFIG_FB_SYS_IMAGEBLIT is not set +# CONFIG_FB_SYS_FOPS is not set +CONFIG_FB_DEFERRED_IO=y +# CONFIG_FB_SVGALIB is not set CONFIG_FB_MACMODES=y -# CONFIG_FB_BACKLIGHT is not set +CONFIG_FB_BACKLIGHT=y CONFIG_FB_MODE_HELPERS=y CONFIG_FB_TILEBLITTING=y + +# +# Frame buffer hardware drivers +# # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set @@ -1060,28 +1109,27 @@ CONFIG_FB_VGA16=y # CONFIG_FB_S1D13XXX is not set CONFIG_FB_NVIDIA=y CONFIG_FB_NVIDIA_I2C=y -CONFIG_FB_RIVA=y -CONFIG_FB_RIVA_I2C=y -# CONFIG_FB_RIVA_DEBUG is not set -CONFIG_FB_MATROX=y -CONFIG_FB_MATROX_MILLENIUM=y -CONFIG_FB_MATROX_MYSTIQUE=y -CONFIG_FB_MATROX_G=y -CONFIG_FB_MATROX_I2C=y -CONFIG_FB_MATROX_MAVEN=y -CONFIG_FB_MATROX_MULTIHEAD=y +# CONFIG_FB_NVIDIA_DEBUG is not set +CONFIG_FB_NVIDIA_BACKLIGHT=y +# CONFIG_FB_RIVA is not set +# CONFIG_FB_MATROX is not set CONFIG_FB_RADEON=y CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RADEON_BACKLIGHT=y # CONFIG_FB_RADEON_DEBUG is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set # CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set # CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set # CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_VIRTUAL is not set @@ -1097,15 +1145,10 @@ CONFIG_FRAMEBUFFER_CONSOLE=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y - -# -# Logo configuration -# CONFIG_LOGO=y CONFIG_LOGO_LINUX_MONO=y CONFIG_LOGO_LINUX_VGA16=y CONFIG_LOGO_LINUX_CLUT224=y -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set # # Sound @@ -1211,6 +1254,7 @@ CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_USB_AUDIO=y CONFIG_SND_USB_USX2Y=y +# CONFIG_SND_USB_CAIAQ is not set # # PCMCIA devices @@ -1218,6 +1262,11 @@ CONFIG_SND_USB_USX2Y=y # CONFIG_SND_VXPOCKET is not set # CONFIG_SND_PDAUDIOCF is not set +# +# System on Chip audio support +# +# CONFIG_SND_SOC is not set + # # Open Sound System # @@ -1227,6 +1276,15 @@ CONFIG_SND_USB_USX2Y=y # HID Devices # CONFIG_HID=y +# CONFIG_HID_DEBUG is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=y +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +# CONFIG_HID_FF is not set +# CONFIG_USB_HIDDEV is not set # # USB support @@ -1241,7 +1299,7 @@ CONFIG_USB=y # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y -# CONFIG_USB_BANDWIDTH is not set +# CONFIG_USB_DEVICE_CLASS is not set # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG is not set @@ -1252,9 +1310,15 @@ CONFIG_USB_EHCI_HCD=y # CONFIG_USB_EHCI_SPLIT_ISO is not set # CONFIG_USB_EHCI_ROOT_HUB_TT is not set # CONFIG_USB_EHCI_TT_NEWSCHED is not set +# CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set # CONFIG_USB_ISP116X_HCD is not set CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_HCD_PPC_OF=y +CONFIG_USB_OHCI_HCD_PPC_OF_BE=y +# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set +CONFIG_USB_OHCI_HCD_PCI=y +CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y +CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=y CONFIG_USB_SL811_HCD=y @@ -1288,42 +1352,12 @@ CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_KARMA is not set CONFIG_USB_LIBUSUAL=y -# -# USB Input Devices -# -CONFIG_USB_HID=y -# CONFIG_USB_HIDINPUT_POWERBOOK is not set -# CONFIG_HID_FF is not set -# CONFIG_USB_HIDDEV is not set -# CONFIG_USB_AIPTEK is not set -# CONFIG_USB_WACOM is not set -# CONFIG_USB_ACECAD is not set -# CONFIG_USB_KBTAB is not set -# CONFIG_USB_POWERMATE is not set -# CONFIG_USB_TOUCHSCREEN is not set -# CONFIG_USB_YEALINK is not set -# CONFIG_USB_XPAD is not set -# CONFIG_USB_ATI_REMOTE is not set -# CONFIG_USB_ATI_REMOTE2 is not set -# CONFIG_USB_KEYSPAN_REMOTE is not set -# CONFIG_USB_APPLETOUCH is not set - # # USB Imaging devices # # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set - -# -# USB Network Adapters -# -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_PEGASUS is not set -# CONFIG_USB_RTL8150 is not set -# CONFIG_USB_USBNET_MII is not set -# CONFIG_USB_USBNET is not set -CONFIG_USB_MON=y +# CONFIG_USB_MON is not set # # USB port drivers @@ -1344,6 +1378,7 @@ CONFIG_USB_MON=y # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LCD is not set +# CONFIG_USB_BERRY_CHARGE is not set # CONFIG_USB_LED is not set # CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set @@ -1354,6 +1389,7 @@ CONFIG_USB_MON=y # CONFIG_USB_SISUSBVGA is not set # CONFIG_USB_LD is not set # CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set # CONFIG_USB_TEST is not set # @@ -1364,10 +1400,6 @@ CONFIG_USB_MON=y # USB Gadget Support # # CONFIG_USB_GADGET is not set - -# -# MMC/SD Card support -# # CONFIG_MMC is not set # @@ -1408,23 +1440,36 @@ CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set # -# RTC drivers +# I2C RTC drivers # -# CONFIG_RTC_DRV_X1205 is not set CONFIG_RTC_DRV_DS1307=y -# CONFIG_RTC_DRV_DS1553 is not set -# CONFIG_RTC_DRV_ISL1208 is not set # CONFIG_RTC_DRV_DS1672 is not set -# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_X1205 is not set # CONFIG_RTC_DRV_PCF8563 is not set # CONFIG_RTC_DRV_PCF8583 is not set -# CONFIG_RTC_DRV_RS5C372 is not set + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1742 is not set # CONFIG_RTC_DRV_M48T86 is not set -# CONFIG_RTC_DRV_TEST is not set # CONFIG_RTC_DRV_V3020 is not set +# +# on-CPU RTC drivers +# + # # DMA Engine support # @@ -1438,10 +1483,6 @@ CONFIG_RTC_DRV_DS1307=y # DMA Devices # -# -# Virtualization -# - # # File systems # @@ -1466,7 +1507,8 @@ CONFIG_FS_POSIX_ACL=y # CONFIG_OCFS2_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set -# CONFIG_INOTIFY is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y # CONFIG_QUOTA is not set CONFIG_DNOTIFY=y CONFIG_AUTOFS_FS=y @@ -1538,6 +1580,7 @@ CONFIG_LOCKD=y CONFIG_LOCKD_V4=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y +# CONFIG_SUNRPC_BIND34 is not set # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set # CONFIG_SMB_FS is not set @@ -1567,6 +1610,7 @@ CONFIG_MSDOS_PARTITION=y # CONFIG_SUN_PARTITION is not set # CONFIG_KARMA_PARTITION is not set # CONFIG_EFI_PARTITION is not set +# CONFIG_SYSV68_PARTITION is not set # # Native Language Support @@ -1616,6 +1660,8 @@ CONFIG_NLS_ISO8859_1=y # Distributed Lock Manager # # CONFIG_DLM is not set +# CONFIG_UCC_SLOW is not set +# CONFIG_UCC_FAST is not set # # Library routines @@ -1623,10 +1669,13 @@ CONFIG_NLS_ISO8859_1=y CONFIG_BITREVERSE=y CONFIG_CRC_CCITT=y # CONFIG_CRC16 is not set +# CONFIG_CRC_ITU_T is not set CONFIG_CRC32=y # CONFIG_LIBCRC32C is not set CONFIG_PLIST=y -CONFIG_IOMAP_COPY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y # # Instrumentation Support @@ -1645,32 +1694,34 @@ CONFIG_MAGIC_SYSRQ=y # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set CONFIG_DEBUG_KERNEL=y -CONFIG_LOG_BUF_SHIFT=17 +# CONFIG_DEBUG_SHIRQ is not set CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set # CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y -CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_LIST is not set -CONFIG_FORCED_INLINING=y +# CONFIG_FORCED_INLINING is not set # CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_FAULT_INJECTION is not set # CONFIG_DEBUG_STACKOVERFLOW is not set # CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_PAGEALLOC is not set CONFIG_DEBUGGER=y CONFIG_XMON=y CONFIG_XMON_DEFAULT=y CONFIG_XMON_DISASSEMBLY=y # CONFIG_IRQSTACKS is not set -CONFIG_BOOTX_TEXT=y +# CONFIG_BOOTX_TEXT is not set # CONFIG_PPC_EARLY_DEBUG is not set # @@ -1700,8 +1751,11 @@ CONFIG_CRYPTO_SHA1=y # CONFIG_CRYPTO_GF128MUL is not set CONFIG_CRYPTO_ECB=m CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_PCBC=m # CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_CRYPTD is not set CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_TWOFISH is not set # CONFIG_CRYPTO_SERPENT is not set @@ -1715,6 +1769,7 @@ CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_DEFLATE is not set # CONFIG_CRYPTO_MICHAEL_MIC is not set # CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_CAMELLIA is not set # CONFIG_CRYPTO_TEST is not set # -- cgit v1.2.3-70-g09d2 From d16f1b648356d70ebbda2eb1b2af18a6816dacb1 Mon Sep 17 00:00:00 2001 From: Olof Johansson Date: Tue, 15 May 2007 06:59:12 +1000 Subject: [POWERPC] Remove warning in mpic.c arch/powerpc/sysdev/mpic.c: In function 'mpic_request_ipis': arch/powerpc/sysdev/mpic.c:1445: warning: ignoring return value of 'request_irq', declared with attribute warn_unused_result Signed-off-by: Olof Johansson Signed-off-by: Paul Mackerras --- arch/powerpc/sysdev/mpic.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index 4fd2bec8991..75aad38179f 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c @@ -1424,7 +1424,7 @@ unsigned int mpic_get_irq(void) void mpic_request_ipis(void) { struct mpic *mpic = mpic_primary; - int i; + int i, err; static char *ipi_names[] = { "IPI0 (call function)", "IPI1 (reschedule)", @@ -1442,8 +1442,14 @@ void mpic_request_ipis(void) printk(KERN_ERR "Failed to map IPI %d\n", i); break; } - request_irq(vipi, mpic_ipi_action, IRQF_DISABLED|IRQF_PERCPU, - ipi_names[i], mpic); + err = request_irq(vipi, mpic_ipi_action, + IRQF_DISABLED|IRQF_PERCPU, + ipi_names[i], mpic); + if (err) { + printk(KERN_ERR "Request of irq %d for IPI %d failed\n", + vipi, i); + break; + } } } -- cgit v1.2.3-70-g09d2 From 6a32d085ae71724edffa30fcd2045520a051cb14 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Tue, 15 May 2007 12:40:23 +1000 Subject: [POWERPC] Fix make rules for treeImage.initrd At present attempting to build treeImage.initrd.* boot images will fail, because make will select the treeImage.% rule which also matches instead of the correct and more specific treeImage.initrd.% rule. This patch corrects the problem by listing the more specific rule first. Signed-off-by: David Gibson Signed-off-by: Paul Mackerras --- arch/powerpc/boot/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index d4f9fef7f9e..6d1f02fd287 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile @@ -204,12 +204,12 @@ dts = $(if $(shell echo $(CONFIG_DEVICE_TREE) | grep '^/'),\ $(obj)/cuImage.%: vmlinux $(dts) $(wrapperbits) $(call if_changed,wrap,cuboot-$*,$(dts)) -$(obj)/treeImage.%: vmlinux $(dts) $(wrapperbits) - $(call if_changed,wrap,treeboot-$*,$(dts)) - $(obj)/treeImage.initrd.%: vmlinux $(dts) $(wrapperbits) $(call if_changed,wrap,treeboot-$*,$(dts),,$(obj)/ramdisk.image.gz) +$(obj)/treeImage.%: vmlinux $(dts) $(wrapperbits) + $(call if_changed,wrap,treeboot-$*,$(dts)) + $(obj)/zImage: $(addprefix $(obj)/, $(image-y)) @rm -f $@; ln $< $@ $(obj)/zImage.initrd: $(addprefix $(obj)/, $(initrd-y)) -- cgit v1.2.3-70-g09d2 From 017e3c53f116d6a0741a21624924528dc9f98418 Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Tue, 15 May 2007 14:16:26 +1000 Subject: [POWERPC] Add spinlock to request_phb_iospace() request_phb_iospace() can be called from different CPUs at init time (at least with my next patch) and thus needs a spinlock. As for the next patch, this is a temporary workaround for 2.6.22 issues until my rewrite of IO mappings is ready (for 2.6.23) Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras --- arch/powerpc/mm/pgtable_64.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'arch/powerpc') diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c index 1d443407423..ad6e135bf21 100644 --- a/arch/powerpc/mm/pgtable_64.c +++ b/arch/powerpc/mm/pgtable_64.c @@ -322,6 +322,8 @@ EXPORT_SYMBOL(__ioremap); EXPORT_SYMBOL(iounmap); EXPORT_SYMBOL(__iounmap); +static DEFINE_SPINLOCK(phb_io_lock); + void __iomem * reserve_phb_iospace(unsigned long size) { void __iomem *virt_addr; @@ -329,8 +331,10 @@ void __iomem * reserve_phb_iospace(unsigned long size) if (phbs_io_bot >= IMALLOC_BASE) panic("reserve_phb_iospace(): phb io space overflow\n"); + spin_lock(&phb_io_lock); virt_addr = (void __iomem *) phbs_io_bot; phbs_io_bot += size; + spin_unlock(&phb_io_lock); return virt_addr; } -- cgit v1.2.3-70-g09d2 From de821204dbd0a967f77213daf7b89070a65e7523 Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Tue, 15 May 2007 16:19:36 +1000 Subject: [POWERPC] Fix IO space on PCI buses created from of_platform This changes the way of_platform_pci creates PCI host bridges such that it uses request_phb_iospace() for mapping the IO ports, instead of using the dynamic hotplug stuff. That guarantees the IO space stays within the 2GB limit and thus doesn't break half of the legacy drivers around. Fixes a couple of warnings due to missing IO space while at it. This patch is a temporary workaround for 2.6.22 before a more complete rewrite of IO mappings is merged in 2.6.23 Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras --- arch/powerpc/kernel/of_platform.c | 10 ++++++---- arch/powerpc/kernel/pci_64.c | 23 ++++++++++++++++++++++- 2 files changed, 28 insertions(+), 5 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/kernel/of_platform.c b/arch/powerpc/kernel/of_platform.c index 84c34d979a8..d501c23e515 100644 --- a/arch/powerpc/kernel/of_platform.c +++ b/arch/powerpc/kernel/of_platform.c @@ -427,11 +427,13 @@ static int __devinit of_pci_phb_probe(struct of_device *dev, /* Process "ranges" property */ pci_process_bridge_OF_ranges(phb, dev->node, 0); - /* Setup IO space. - * This will not work properly for ISA IOs, something needs to be done - * about it if we ever generalize that way of probing PCI brigdes + /* Setup IO space. We use the non-dynamic version of that code here, + * which doesn't quite support unplugging. Next kernel release will + * have a better fix for this. + * Note also that we don't do ISA, this will also be fixed with a + * more massive rework. */ - pci_setup_phb_io_dynamic(phb, 0); + pci_setup_phb_io(phb, 0); /* Init pci_dn data structures */ pci_devs_phb_init_dynamic(phb); diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c index b0409e19b1c..249cca27a9b 100644 --- a/arch/powerpc/kernel/pci_64.c +++ b/arch/powerpc/kernel/pci_64.c @@ -41,6 +41,7 @@ unsigned long pci_probe_only = 1; int pci_assign_all_buses = 0; +static int pci_initial_scan_done; static void fixup_resource(struct resource *res, struct pci_dev *dev); static void do_bus_setup(struct pci_bus *bus); @@ -604,6 +605,8 @@ static int __init pcibios_init(void) /* map in PCI I/O space */ phbs_remap_io(); + pci_initial_scan_done = 1; + printk(KERN_DEBUG "PCI: Probing PCI hardware done\n"); return 0; @@ -1042,13 +1045,16 @@ void __devinit pci_process_bridge_OF_ranges(struct pci_controller *hose, } } -void __init pci_setup_phb_io(struct pci_controller *hose, int primary) +void __devinit pci_setup_phb_io(struct pci_controller *hose, int primary) { unsigned long size = hose->pci_io_size; unsigned long io_virt_offset; struct resource *res; struct device_node *isa_dn; + if (size == 0) + return; + hose->io_base_virt = reserve_phb_iospace(size); DBG("phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n", hose->global_number, hose->io_base_phys, @@ -1069,6 +1075,15 @@ void __init pci_setup_phb_io(struct pci_controller *hose, int primary) res = &hose->io_resource; res->start += io_virt_offset; res->end += io_virt_offset; + + /* If this is called after the initial PCI scan, then we need to + * proceed to IO mappings now + */ + if (pci_initial_scan_done) + __ioremap_explicit(hose->io_base_phys, + (unsigned long)hose->io_base_virt, + hose->pci_io_size, + _PAGE_NO_CACHE | _PAGE_GUARDED); } void __devinit pci_setup_phb_io_dynamic(struct pci_controller *hose, @@ -1078,6 +1093,9 @@ void __devinit pci_setup_phb_io_dynamic(struct pci_controller *hose, unsigned long io_virt_offset; struct resource *res; + if (size == 0) + return; + hose->io_base_virt = __ioremap(hose->io_base_phys, size, _PAGE_NO_CACHE | _PAGE_GUARDED); DBG("phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n", @@ -1106,6 +1124,9 @@ static int get_bus_io_range(struct pci_bus *bus, unsigned long *start_phys, /* Root Bus */ res = &hose->io_resource; + if (res->end == 0 && res->start == 0) + return 1; + *start_virt = pci_io_base + res->start; *start_phys = *start_virt + hose->io_base_phys - (unsigned long) hose->io_base_virt; -- cgit v1.2.3-70-g09d2 From 0453c62c8035f1a8a6e331b235c02ccdcb4e8910 Mon Sep 17 00:00:00 2001 From: Christian Krafft Date: Wed, 16 May 2007 10:33:21 +1000 Subject: [POWERPC] cell_defconfig: Disable cpufreq and pmi Cpufreq using pmi is broken by a dependency issue, that will be fixed in a seperate patch. Bare-metal cpufreq is broken by hardware limitations. As it was the only user, pmi is disabled as well. Signed-off-by: Christian Krafft Signed-off-by: Paul Mackerras --- arch/powerpc/configs/cell_defconfig | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig index 6061e5f7696..02c428affc8 100644 --- a/arch/powerpc/configs/cell_defconfig +++ b/arch/powerpc/configs/cell_defconfig @@ -163,7 +163,6 @@ CONFIG_SPU_FS=m CONFIG_SPU_BASE=y CONFIG_CBE_RAS=y CONFIG_CBE_THERM=m -CONFIG_CBE_CPUFREQ=m CONFIG_PPC_NATIVE=y CONFIG_UDBG_RTAS_CONSOLE=y CONFIG_PPC_UDBG_BEAT=y @@ -172,24 +171,12 @@ CONFIG_PPC_RTAS=y # CONFIG_RTAS_ERROR_LOGGING is not set CONFIG_RTAS_PROC=y CONFIG_RTAS_FLASH=y -CONFIG_PPC_PMI=m +# CONFIG_PPC_PMI is not set CONFIG_MMIO_NVRAM=y # CONFIG_PPC_MPC106 is not set # CONFIG_PPC_970_NAP is not set CONFIG_PPC_INDIRECT_IO=y CONFIG_GENERIC_IOMAP=y -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_TABLE=y -CONFIG_CPU_FREQ_DEBUG=y -CONFIG_CPU_FREQ_STAT=y -# CONFIG_CPU_FREQ_STAT_DETAILS is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # CONFIG_CPU_FREQ_PMAC64 is not set # CONFIG_WANT_EARLY_SERIAL is not set CONFIG_MPIC=y -- cgit v1.2.3-70-g09d2 From f7c0d13b9430c4bb4b6f8507ed19d7cc7971dfa5 Mon Sep 17 00:00:00 2001 From: Stephen Rothwell Date: Wed, 16 May 2007 13:21:09 +1000 Subject: [POWERPC] Fix warning on UP arch/powerpc/platforms/pseries/pseries.h:24: warning: return type defaults to 'int' arch/powerpc/platforms/pseries/pseries.h:25: warning: return type defaults to 'int' arch/powerpc/platforms/pseries/pseries.h:24: warning: control reaches end of non-void function arch/powerpc/platforms/pseries/pseries.h:25: warning: control reaches end of non-void function Signed-off-by: Stephen Rothwell Signed-off-by: Paul Mackerras --- arch/powerpc/platforms/pseries/pseries.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/platforms/pseries/pseries.h b/arch/powerpc/platforms/pseries/pseries.h index 22bc0198974..2729d559fd9 100644 --- a/arch/powerpc/platforms/pseries/pseries.h +++ b/arch/powerpc/platforms/pseries/pseries.h @@ -21,8 +21,8 @@ extern int pSeries_machine_check_exception(struct pt_regs *regs); extern void smp_init_pseries_mpic(void); extern void smp_init_pseries_xics(void); #else -static inline smp_init_pseries_mpic(void) { }; -static inline smp_init_pseries_xics(void) { }; +static inline void smp_init_pseries_mpic(void) { }; +static inline void smp_init_pseries_xics(void) { }; #endif #ifdef CONFIG_KEXEC -- cgit v1.2.3-70-g09d2 From c72ea777d4e51435388fbd863c813a19635fa8ef Mon Sep 17 00:00:00 2001 From: David Gibson Date: Wed, 16 May 2007 13:48:50 +1000 Subject: [POWERPC] Small fixes for the Ebony device tree This patch corrects a number of minor errors in the Ebony device tree: - Missing (given as 0) cache sizes are added to the CPU node - device_type properties are removed from nodes which don't have a reasonably well defined device_type binding. This does require a very small code change to locate the busses to be probed for of_platform devices by 'compatible' instead of 'device_type'. - A node is added for the SRAM controller - The unit address of the small-flash node is adjusted to correctly reflect the reg property. - device_type values for the MAL and ZMII are updated to reflected more up-to-date versions of the binding. - An incorrect offset in the partition map for the large-flash node is corrected. - Some redundant values, already commented out are removed entirely. Signed-off-by: David Gibson Signed-off-by: Paul Mackerras --- arch/powerpc/boot/dts/ebony.dts | 37 +++++++++++++------------------------ arch/powerpc/platforms/44x/ebony.c | 6 +++--- 2 files changed, 16 insertions(+), 27 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/boot/dts/ebony.dts b/arch/powerpc/boot/dts/ebony.dts index b67918651c4..0ec02f4726b 100644 --- a/arch/powerpc/boot/dts/ebony.dts +++ b/arch/powerpc/boot/dts/ebony.dts @@ -33,8 +33,8 @@ timebase-frequency = <0>; // Filled in by zImage i-cache-line-size = <32>; d-cache-line-size = <32>; - i-cache-size = <0>; - d-cache-size = <0>; + i-cache-size = <8000>; /* 32 kB */ + d-cache-size = <8000>; /* 32 kB */ dcr-controller; dcr-access-method = "native"; }; @@ -46,7 +46,6 @@ }; UIC0: interrupt-controller0 { - device_type = "ibm,uic"; compatible = "ibm,uic-440gp", "ibm,uic"; interrupt-controller; cell-index = <0>; @@ -58,7 +57,6 @@ }; UIC1: interrupt-controller1 { - device_type = "ibm,uic"; compatible = "ibm,uic-440gp", "ibm,uic"; interrupt-controller; cell-index = <1>; @@ -71,36 +69,36 @@ }; CPC0: cpc { - device_type = "ibm,cpc"; compatible = "ibm,cpc-440gp"; dcr-reg = <0b0 003 0e0 010>; // FIXME: anything else? }; plb { - device_type = "ibm,plb"; compatible = "ibm,plb-440gp", "ibm,plb4"; #address-cells = <2>; #size-cells = <1>; ranges; clock-frequency = <0>; // Filled in by zImage - SDRAM0: sdram { - device_type = "memory-controller"; - compatible = "ibm,sdram-440gp", "ibm,sdram"; + SDRAM0: memory-controller { + compatible = "ibm,sdram-440gp"; dcr-reg = <010 2>; // FIXME: anything else? }; + SRAM0: sram { + compatible = "ibm,sram-440gp"; + dcr-reg = <020 8 00a 1>; + }; + DMA0: dma { // FIXME: ??? - device_type = "ibm,dma-4xx"; - compatible = "ibm,dma-440gp", "ibm,dma-4xx"; + compatible = "ibm,dma-440gp"; dcr-reg = <100 027>; }; MAL0: mcmal { - device_type = "mcmal-dma"; compatible = "ibm,mcmal-440gp", "ibm,mcmal"; dcr-reg = <180 62>; num-tx-chans = <4>; @@ -119,7 +117,6 @@ }; POB0: opb { - device_type = "ibm,opb"; compatible = "ibm,opb-440gp", "ibm,opb"; #address-cells = <1>; #size-cells = <1>; @@ -133,8 +130,7 @@ clock-frequency = <0>; // Filled in by zImage EBC0: ebc { - device_type = "ibm,ebc"; - compatible = "ibm,ebc-440gp"; + compatible = "ibm,ebc-440gp", "ibm,ebc"; dcr-reg = <012 2>; #address-cells = <2>; #size-cells = <1>; @@ -147,7 +143,7 @@ interrupts = <5 4>; interrupt-parent = <&UIC1>; - small-flash@0,0 { + small-flash@0,80000 { device_type = "rom"; compatible = "direct-mapped"; probe-type = "JEDEC"; @@ -159,7 +155,6 @@ ds1743@1,0 { /* NVRAM & RTC */ - device_type = "nvram"; compatible = "ds1743"; reg = <1 0 2000>; }; @@ -170,7 +165,7 @@ probe-type = "JEDEC"; bank-width = <1>; partitions = <0 380000 - 280000 80000>; + 380000 80000>; partition-names = "fs", "firmware"; reg = <2 0 400000>; }; @@ -226,13 +221,11 @@ GPIO0: gpio@40000700 { /* FIXME */ - device_type = "gpio"; compatible = "ibm,gpio-440gp"; reg = <40000700 20>; }; ZMII0: emac-zmii@40000780 { - device_type = "emac-zmii"; compatible = "ibm,zmii-440gp", "ibm,zmii"; reg = <40000780 c>; }; @@ -299,9 +292,5 @@ chosen { linux,stdout-path = "/plb/opb/serial@40000200"; -// linux,initrd-start = <0>; /* FIXME */ -// linux,initrd-end = <0>; -// bootargs = ""; }; }; - diff --git a/arch/powerpc/platforms/44x/ebony.c b/arch/powerpc/platforms/44x/ebony.c index ad526eafc90..5a7fec8d10d 100644 --- a/arch/powerpc/platforms/44x/ebony.c +++ b/arch/powerpc/platforms/44x/ebony.c @@ -27,9 +27,9 @@ #include "44x.h" static struct of_device_id ebony_of_bus[] = { - { .type = "ibm,plb", }, - { .type = "ibm,opb", }, - { .type = "ibm,ebc", }, + { .compatible = "ibm,plb4", }, + { .compatible = "ibm,opb", }, + { .compatible = "ibm,ebc", }, {}, }; -- cgit v1.2.3-70-g09d2 From 847f5976f90d5637a86a826c1c594091d08f3156 Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Wed, 16 May 2007 16:57:24 +1000 Subject: [POWERPC] Make sure device node type/name is not NULL on hot-added nodes Our device-tree unflattening code makes sure the name and type fields of a device-node are not NULL. However, the code for dynamically adding devices nodes which is used for pSeries hotplug for example didn't do it, potentially causing crashes in some code that assume it can always do things like strcmp on those. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras --- arch/powerpc/kernel/prom.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'arch/powerpc') diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index c065b555036..066a6a7a25b 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c @@ -1472,6 +1472,11 @@ static int of_finish_dynamic_node(struct device_node *node) node->name = of_get_property(node, "name", NULL); node->type = of_get_property(node, "device_type", NULL); + if (!node->name) + node->name = ""; + if (!node->type) + node->type = ""; + if (!parent) { err = -ENODEV; goto out; -- cgit v1.2.3-70-g09d2 From 8995ac8702737147115e1c75879a1a2d75627b9e Mon Sep 17 00:00:00 2001 From: Segher Boessenkool Date: Wed, 16 May 2007 22:34:38 +1000 Subject: [POWERPC] Specify GNUTARGET on $(AR) invocations Without this, some versions of GNU ar fail to create an archive index if the object files it is packing together are of a different object format than ar's default format (for example, binutils compiled to default to 64-bit, with 32-bit objects). Signed-off-by: Segher Boessenkool Signed-off-by: Paul Mackerras --- arch/powerpc/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index d6014a67694..6238b5875fd 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile @@ -29,7 +29,7 @@ CROSS32CC := $(CC) -m32 CROSS32AS := $(AS) -a32 CROSS32LD := $(LD) -m elf32ppc CROSS32OBJCOPY := $(OBJCOPY) -CROSS32AR := $(AR) +CROSS32AR := GNUTARGET=elf32-powerpc $(AR) endif endif @@ -58,6 +58,7 @@ ifeq ($(HAS_BIARCH),y) override AS += -a$(SZ) override LD += -m elf$(SZ)ppc override CC += -m$(SZ) +override AR := GNUTARGET=elf$(SZ)-powerpc $(AR) endif LDFLAGS_vmlinux := -Bstatic -- cgit v1.2.3-70-g09d2 From 67ccd2fcd42333493a33993312c76fb2d4c2a2d6 Mon Sep 17 00:00:00 2001 From: Segher Boessenkool Date: Wed, 16 May 2007 22:49:22 +1000 Subject: [POWERPC] Fix sed command lines for zlib source construction Not every sed understands \+ so use the more portable * instead. Signed-off-by: Segher Boessenkool Signed-off-by: Paul Mackerras --- arch/powerpc/boot/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index 6d1f02fd287..b0b570563f4 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile @@ -54,13 +54,13 @@ obj-wlib := $(addsuffix .o, $(basename $(addprefix $(obj)/, $(src-wlib)))) obj-plat := $(addsuffix .o, $(basename $(addprefix $(obj)/, $(src-plat)))) quiet_cmd_copy_zlib = COPY $@ - cmd_copy_zlib = sed "s@__attribute_used__@@;s@]\+\).*@\"\1\"@" $< > $@ + cmd_copy_zlib = sed "s@__attribute_used__@@;s@]*\).*@\"\1\"@" $< > $@ quiet_cmd_copy_zlibheader = COPY $@ - cmd_copy_zlibheader = sed "s@]\+\).*@\"\1\"@" $< > $@ + cmd_copy_zlibheader = sed "s@]*\).*@\"\1\"@" $< > $@ # stddef.h for NULL quiet_cmd_copy_zliblinuxheader = COPY $@ - cmd_copy_zliblinuxheader = sed "s@@\"string.h\"@;s@@@;s@]\+\).*@\"\1\"@" $< > $@ + cmd_copy_zliblinuxheader = sed "s@@\"string.h\"@;s@@@;s@]*\).*@\"\1\"@" $< > $@ $(addprefix $(obj)/,$(zlib)): $(obj)/%: $(srctree)/lib/zlib_inflate/% $(call cmd,copy_zlib) -- cgit v1.2.3-70-g09d2 From 9a6b50703e95b638f610a65ffcc5faf4356f73c9 Mon Sep 17 00:00:00 2001 From: Segher Boessenkool Date: Wed, 16 May 2007 23:12:17 +1000 Subject: [POWERPC] Fix ppc_rtas_progress_show() Fixes the warning arch/powerpc/kernel/rtas-proc.c: In function 'ppc_rtas_progress_show': arch/powerpc/kernel/rtas-proc.c:382: warning: the address of 'progress_led' will always evaluate as 'true' by fixing the code to do what it presumably is meant to do. Signed-off-by: Segher Boessenkool Signed-off-by: Paul Mackerras --- arch/powerpc/kernel/rtas-proc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/kernel/rtas-proc.c b/arch/powerpc/kernel/rtas-proc.c index 190b7ed1dbf..f2e3bc714d7 100644 --- a/arch/powerpc/kernel/rtas-proc.c +++ b/arch/powerpc/kernel/rtas-proc.c @@ -379,7 +379,7 @@ static ssize_t ppc_rtas_progress_write(struct file *file, /* ****************************************************************** */ static int ppc_rtas_progress_show(struct seq_file *m, void *v) { - if (progress_led) + if (progress_led[0]) seq_printf(m, "%s\n", progress_led); return 0; } -- cgit v1.2.3-70-g09d2 From 5b825831858b92da2417ecb3e3bbde594e5f7c91 Mon Sep 17 00:00:00 2001 From: Jon Tollefson Date: Thu, 17 May 2007 04:43:02 +1000 Subject: [POWERPC] Correct #endif comment Fix up comment on two #endifs to match their #ifs. Signed-off-by: Jon Tollefson ---- hash_utils_64.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Signed-off-by: Paul Mackerras --- arch/powerpc/mm/hash_utils_64.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index 028ba4ed03d..4f2f4534a9d 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c @@ -430,7 +430,7 @@ static void __init htab_finish_init(void) make_bl(ht64_call_hpte_insert2, ppc_md.hpte_insert); make_bl(ht64_call_hpte_remove, ppc_md.hpte_remove); make_bl(ht64_call_hpte_updatepp, ppc_md.hpte_updatepp); -#endif /* CONFIG_PPC_64K_PAGES */ +#endif /* CONFIG_PPC_HAS_HASH_64K */ make_bl(htab_call_hpte_insert1, ppc_md.hpte_insert); make_bl(htab_call_hpte_insert2, ppc_md.hpte_insert); @@ -837,7 +837,7 @@ void hash_preload(struct mm_struct *mm, unsigned long ea, if (mm->context.user_psize == MMU_PAGE_64K) __hash_page_64K(ea, access, vsid, ptep, trap, local); else -#endif /* CONFIG_PPC_64K_PAGES */ +#endif /* CONFIG_PPC_HAS_HASH_64K */ __hash_page_4K(ea, access, vsid, ptep, trap, local); local_irq_restore(flags); -- cgit v1.2.3-70-g09d2 From 60e417536bca8988d22ea1cc20a634ffa67bb2a8 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Thu, 17 May 2007 04:51:37 +1000 Subject: [POWERPC] Pass per-file CFLAGs for platform specific op codes As a result of compiling all of the wrapper files for every platform now, the kernel build can fail for toolchains that don't support various op codes by default. An example of this building a 7xx platform with the ELD4.0 toolchain, is below: /tmp/ccYjhJoL.s: Assembler messages: /tmp/ccYjhJoL.s:42: Error: Unrecognized opcode: `mtdcr' /tmp/ccYjhJoL.s:43: Error: Unrecognized opcode: `mfdcr' make[1]: *** [arch/powerpc/boot/44x.o] Error 1 The following patch introduces additional CFLAGS for the 4xx specific files and fixes the kernel compile. Signed-off-by: Josh Boyer Signed-off-by: Paul Mackerras --- arch/powerpc/boot/Makefile | 3 +++ 1 file changed, 3 insertions(+) (limited to 'arch/powerpc') diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index b0b570563f4..83788986b93 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile @@ -33,6 +33,9 @@ endif BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj) +$(obj)/44x.o: BOOTCFLAGS += -Wa,-mbooke +$(obj)/ebony.o: BOOTCFLAGS += -Wa,-mbooke + zlib := inffast.c inflate.c inftrees.c zlibheader := inffast.h inffixed.h inflate.h inftrees.h infutil.h zliblinuxheader := zlib.h zconf.h zutil.h -- cgit v1.2.3-70-g09d2 From a35afb830f8d71ec211531aeb9a621b09a2efb39 Mon Sep 17 00:00:00 2001 From: Christoph Lameter Date: Wed, 16 May 2007 22:10:57 -0700 Subject: Remove SLAB_CTOR_CONSTRUCTOR SLAB_CTOR_CONSTRUCTOR is always specified. No point in checking it. Signed-off-by: Christoph Lameter Cc: David Howells Cc: Jens Axboe Cc: Steven French Cc: Michael Halcrow Cc: OGAWA Hirofumi Cc: Miklos Szeredi Cc: Steven Whitehouse Cc: Roman Zippel Cc: David Woodhouse Cc: Dave Kleikamp Cc: Trond Myklebust Cc: "J. Bruce Fields" Cc: Anton Altaparmakov Cc: Mark Fasheh Cc: Paul Mackerras Cc: Christoph Hellwig Cc: Jan Kara Cc: David Chinner Cc: "David S. Miller" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- arch/powerpc/platforms/cell/spufs/inode.c | 4 +--- drivers/mtd/ubi/eba.c | 3 --- fs/adfs/super.c | 3 +-- fs/affs/super.c | 8 +++---- fs/afs/super.c | 20 ++++++++-------- fs/befs/linuxvfs.c | 6 ++--- fs/bfs/inode.c | 3 +-- fs/block_dev.c | 16 ++++++------- fs/buffer.c | 22 ++++-------------- fs/cifs/cifsfs.c | 6 ++--- fs/coda/inode.c | 3 +-- fs/ecryptfs/main.c | 3 +-- fs/efs/super.c | 3 +-- fs/ext2/super.c | 8 +++---- fs/ext3/super.c | 10 ++++---- fs/ext4/super.c | 10 ++++---- fs/fat/cache.c | 3 +-- fs/fat/inode.c | 14 +++++------- fs/fuse/inode.c | 3 +-- fs/gfs2/main.c | 34 +++++++++++++-------------- fs/hfs/super.c | 3 +-- fs/hfsplus/super.c | 3 +-- fs/hpfs/super.c | 8 +++---- fs/hugetlbfs/inode.c | 3 +-- fs/inode.c | 3 +-- fs/isofs/inode.c | 3 +-- fs/jffs2/super.c | 6 ++--- fs/jfs/jfs_metapage.c | 18 +++++++-------- fs/jfs/super.c | 22 ++++++++---------- fs/locks.c | 3 --- fs/minix/inode.c | 3 +-- fs/ncpfs/inode.c | 6 ++--- fs/nfs/inode.c | 28 +++++++++++------------ fs/ntfs/super.c | 3 +-- fs/ocfs2/dlm/dlmfs.c | 8 +++---- fs/ocfs2/super.c | 38 +++++++++++++++---------------- fs/openpromfs/inode.c | 3 +-- fs/proc/inode.c | 3 +-- fs/qnx4/inode.c | 3 +-- fs/reiserfs/super.c | 10 ++++---- fs/romfs/inode.c | 7 +++--- fs/smbfs/inode.c | 3 +-- fs/sysv/inode.c | 3 +-- fs/udf/super.c | 6 ++--- fs/ufs/super.c | 3 +-- fs/xfs/linux-2.6/xfs_super.c | 3 +-- include/linux/slab.h | 3 --- ipc/mqueue.c | 3 +-- kernel/fork.c | 6 ++--- mm/rmap.c | 8 +++---- mm/shmem.c | 8 +++---- mm/slab.c | 12 ++++------ mm/slob.c | 2 +- mm/slub.c | 2 +- net/socket.c | 3 +-- net/sunrpc/rpc_pipe.c | 24 +++++++++---------- 56 files changed, 178 insertions(+), 277 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platforms/cell/spufs/inode.c index a93f328a731..7150730e2ff 100644 --- a/arch/powerpc/platforms/cell/spufs/inode.c +++ b/arch/powerpc/platforms/cell/spufs/inode.c @@ -71,9 +71,7 @@ spufs_init_once(void *p, struct kmem_cache * cachep, unsigned long flags) { struct spufs_inode_info *ei = p; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - inode_init_once(&ei->vfs_inode); - } + inode_init_once(&ei->vfs_inode); } static struct inode * diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c index 3dba5733ed1..74002945b71 100644 --- a/drivers/mtd/ubi/eba.c +++ b/drivers/mtd/ubi/eba.c @@ -940,9 +940,6 @@ static void ltree_entry_ctor(void *obj, struct kmem_cache *cache, { struct ltree_entry *le = obj; - if (flags & SLAB_CTOR_CONSTRUCTOR) - return; - le->users = 0; init_rwsem(&le->mutex); } diff --git a/fs/adfs/super.c b/fs/adfs/super.c index 30c29650849..de2ed5ca335 100644 --- a/fs/adfs/super.c +++ b/fs/adfs/super.c @@ -232,8 +232,7 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct adfs_inode_info *ei = (struct adfs_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&ei->vfs_inode); + inode_init_once(&ei->vfs_inode); } static int init_inodecache(void) diff --git a/fs/affs/super.c b/fs/affs/super.c index beff7d21e6e..b800d451cd6 100644 --- a/fs/affs/super.c +++ b/fs/affs/super.c @@ -87,11 +87,9 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct affs_inode_info *ei = (struct affs_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - init_MUTEX(&ei->i_link_lock); - init_MUTEX(&ei->i_ext_lock); - inode_init_once(&ei->vfs_inode); - } + init_MUTEX(&ei->i_link_lock); + init_MUTEX(&ei->i_ext_lock); + inode_init_once(&ei->vfs_inode); } static int init_inodecache(void) diff --git a/fs/afs/super.c b/fs/afs/super.c index 370cecc910d..8d47ad88a09 100644 --- a/fs/afs/super.c +++ b/fs/afs/super.c @@ -451,17 +451,15 @@ static void afs_i_init_once(void *_vnode, struct kmem_cache *cachep, { struct afs_vnode *vnode = _vnode; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - memset(vnode, 0, sizeof(*vnode)); - inode_init_once(&vnode->vfs_inode); - init_waitqueue_head(&vnode->update_waitq); - mutex_init(&vnode->permits_lock); - mutex_init(&vnode->validate_lock); - spin_lock_init(&vnode->writeback_lock); - spin_lock_init(&vnode->lock); - INIT_LIST_HEAD(&vnode->writebacks); - INIT_WORK(&vnode->cb_broken_work, afs_broken_callback_work); - } + memset(vnode, 0, sizeof(*vnode)); + inode_init_once(&vnode->vfs_inode); + init_waitqueue_head(&vnode->update_waitq); + mutex_init(&vnode->permits_lock); + mutex_init(&vnode->validate_lock); + spin_lock_init(&vnode->writeback_lock); + spin_lock_init(&vnode->lock); + INIT_LIST_HEAD(&vnode->writebacks); + INIT_WORK(&vnode->cb_broken_work, afs_broken_callback_work); } /* diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c index fe96108a788..a5c5171c282 100644 --- a/fs/befs/linuxvfs.c +++ b/fs/befs/linuxvfs.c @@ -292,10 +292,8 @@ befs_destroy_inode(struct inode *inode) static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) { struct befs_inode_info *bi = (struct befs_inode_info *) foo; - - if (flags & SLAB_CTOR_CONSTRUCTOR) { - inode_init_once(&bi->vfs_inode); - } + + inode_init_once(&bi->vfs_inode); } static void diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c index edc08d89aab..58c7bd9f530 100644 --- a/fs/bfs/inode.c +++ b/fs/bfs/inode.c @@ -248,8 +248,7 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct bfs_inode_info *bi = foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&bi->vfs_inode); + inode_init_once(&bi->vfs_inode); } static int init_inodecache(void) diff --git a/fs/block_dev.c b/fs/block_dev.c index 74289924087..ea1480a16f5 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -458,17 +458,15 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag struct bdev_inode *ei = (struct bdev_inode *) foo; struct block_device *bdev = &ei->bdev; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - memset(bdev, 0, sizeof(*bdev)); - mutex_init(&bdev->bd_mutex); - sema_init(&bdev->bd_mount_sem, 1); - INIT_LIST_HEAD(&bdev->bd_inodes); - INIT_LIST_HEAD(&bdev->bd_list); + memset(bdev, 0, sizeof(*bdev)); + mutex_init(&bdev->bd_mutex); + sema_init(&bdev->bd_mount_sem, 1); + INIT_LIST_HEAD(&bdev->bd_inodes); + INIT_LIST_HEAD(&bdev->bd_list); #ifdef CONFIG_SYSFS - INIT_LIST_HEAD(&bdev->bd_holder_list); + INIT_LIST_HEAD(&bdev->bd_holder_list); #endif - inode_init_once(&ei->vfs_inode); - } + inode_init_once(&ei->vfs_inode); } static inline void __bd_forget(struct inode *inode) diff --git a/fs/buffer.c b/fs/buffer.c index aecd057cd0e..3deeb886f6e 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -2898,8 +2898,9 @@ static void recalc_bh_state(void) struct buffer_head *alloc_buffer_head(gfp_t gfp_flags) { - struct buffer_head *ret = kmem_cache_alloc(bh_cachep, gfp_flags); + struct buffer_head *ret = kmem_cache_zalloc(bh_cachep, gfp_flags); if (ret) { + INIT_LIST_HEAD(&ret->b_assoc_buffers); get_cpu_var(bh_accounting).nr++; recalc_bh_state(); put_cpu_var(bh_accounting); @@ -2918,17 +2919,6 @@ void free_buffer_head(struct buffer_head *bh) } EXPORT_SYMBOL(free_buffer_head); -static void -init_buffer_head(void *data, struct kmem_cache *cachep, unsigned long flags) -{ - if (flags & SLAB_CTOR_CONSTRUCTOR) { - struct buffer_head * bh = (struct buffer_head *)data; - - memset(bh, 0, sizeof(*bh)); - INIT_LIST_HEAD(&bh->b_assoc_buffers); - } -} - static void buffer_exit_cpu(int cpu) { int i; @@ -2955,12 +2945,8 @@ void __init buffer_init(void) { int nrpages; - bh_cachep = kmem_cache_create("buffer_head", - sizeof(struct buffer_head), 0, - (SLAB_RECLAIM_ACCOUNT|SLAB_PANIC| - SLAB_MEM_SPREAD), - init_buffer_head, - NULL); + bh_cachep = KMEM_CACHE(buffer_head, + SLAB_RECLAIM_ACCOUNT|SLAB_PANIC|SLAB_MEM_SPREAD); /* * Limit the bh occupancy to 10% of ZONE_NORMAL diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index 8568e100953..d38c69b591c 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c @@ -701,10 +701,8 @@ cifs_init_once(void *inode, struct kmem_cache * cachep, unsigned long flags) { struct cifsInodeInfo *cifsi = inode; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - inode_init_once(&cifsi->vfs_inode); - INIT_LIST_HEAD(&cifsi->lockList); - } + inode_init_once(&cifsi->vfs_inode); + INIT_LIST_HEAD(&cifsi->lockList); } static int diff --git a/fs/coda/inode.c b/fs/coda/inode.c index 0aaff3651d1..dbff1bd4fb9 100644 --- a/fs/coda/inode.c +++ b/fs/coda/inode.c @@ -62,8 +62,7 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct coda_inode_info *ei = (struct coda_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&ei->vfs_inode); + inode_init_once(&ei->vfs_inode); } int coda_init_inodecache(void) diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c index 8cbf3f69ebe..606128f5c92 100644 --- a/fs/ecryptfs/main.c +++ b/fs/ecryptfs/main.c @@ -583,8 +583,7 @@ inode_info_init_once(void *vptr, struct kmem_cache *cachep, unsigned long flags) { struct ecryptfs_inode_info *ei = (struct ecryptfs_inode_info *)vptr; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&ei->vfs_inode); + inode_init_once(&ei->vfs_inode); } static struct ecryptfs_cache_info { diff --git a/fs/efs/super.c b/fs/efs/super.c index ba7a8b9da0c..e0a6839e68a 100644 --- a/fs/efs/super.c +++ b/fs/efs/super.c @@ -72,8 +72,7 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct efs_inode_info *ei = (struct efs_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&ei->vfs_inode); + inode_init_once(&ei->vfs_inode); } static int init_inodecache(void) diff --git a/fs/ext2/super.c b/fs/ext2/super.c index 685a1c28717..16337bff027 100644 --- a/fs/ext2/super.c +++ b/fs/ext2/super.c @@ -160,13 +160,11 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct ext2_inode_info *ei = (struct ext2_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - rwlock_init(&ei->i_meta_lock); + rwlock_init(&ei->i_meta_lock); #ifdef CONFIG_EXT2_FS_XATTR - init_rwsem(&ei->xattr_sem); + init_rwsem(&ei->xattr_sem); #endif - inode_init_once(&ei->vfs_inode); - } + inode_init_once(&ei->vfs_inode); } static int init_inodecache(void) diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 54d3c904125..6e3062913a9 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c @@ -466,14 +466,12 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct ext3_inode_info *ei = (struct ext3_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - INIT_LIST_HEAD(&ei->i_orphan); + INIT_LIST_HEAD(&ei->i_orphan); #ifdef CONFIG_EXT3_FS_XATTR - init_rwsem(&ei->xattr_sem); + init_rwsem(&ei->xattr_sem); #endif - mutex_init(&ei->truncate_mutex); - inode_init_once(&ei->vfs_inode); - } + mutex_init(&ei->truncate_mutex); + inode_init_once(&ei->vfs_inode); } static int init_inodecache(void) diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 71912693235..cb9afdd0e26 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -517,14 +517,12 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct ext4_inode_info *ei = (struct ext4_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - INIT_LIST_HEAD(&ei->i_orphan); + INIT_LIST_HEAD(&ei->i_orphan); #ifdef CONFIG_EXT4DEV_FS_XATTR - init_rwsem(&ei->xattr_sem); + init_rwsem(&ei->xattr_sem); #endif - mutex_init(&ei->truncate_mutex); - inode_init_once(&ei->vfs_inode); - } + mutex_init(&ei->truncate_mutex); + inode_init_once(&ei->vfs_inode); } static int init_inodecache(void) diff --git a/fs/fat/cache.c b/fs/fat/cache.c index 1959143c1d2..3c9c8a15ec7 100644 --- a/fs/fat/cache.c +++ b/fs/fat/cache.c @@ -40,8 +40,7 @@ static void init_once(void *foo, struct kmem_cache *cachep, unsigned long flags) { struct fat_cache *cache = (struct fat_cache *)foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - INIT_LIST_HEAD(&cache->cache_list); + INIT_LIST_HEAD(&cache->cache_list); } int __init fat_cache_init(void) diff --git a/fs/fat/inode.c b/fs/fat/inode.c index 2c55e8dce79..479722d8966 100644 --- a/fs/fat/inode.c +++ b/fs/fat/inode.c @@ -500,14 +500,12 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct msdos_inode_info *ei = (struct msdos_inode_info *)foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - spin_lock_init(&ei->cache_lru_lock); - ei->nr_caches = 0; - ei->cache_valid_id = FAT_CACHE_VALID + 1; - INIT_LIST_HEAD(&ei->cache_lru); - INIT_HLIST_NODE(&ei->i_fat_hash); - inode_init_once(&ei->vfs_inode); - } + spin_lock_init(&ei->cache_lru_lock); + ei->nr_caches = 0; + ei->cache_valid_id = FAT_CACHE_VALID + 1; + INIT_LIST_HEAD(&ei->cache_lru); + INIT_HLIST_NODE(&ei->i_fat_hash); + inode_init_once(&ei->vfs_inode); } static int __init fat_init_inodecache(void) diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c index 1397018ff47..c3a2ad0da43 100644 --- a/fs/fuse/inode.c +++ b/fs/fuse/inode.c @@ -687,8 +687,7 @@ static void fuse_inode_init_once(void *foo, struct kmem_cache *cachep, { struct inode * inode = foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(inode); + inode_init_once(inode); } static int __init fuse_fs_init(void) diff --git a/fs/gfs2/main.c b/fs/gfs2/main.c index e460487c055..787a0edef10 100644 --- a/fs/gfs2/main.c +++ b/fs/gfs2/main.c @@ -27,29 +27,27 @@ static void gfs2_init_inode_once(void *foo, struct kmem_cache *cachep, unsigned long flags) { struct gfs2_inode *ip = foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - inode_init_once(&ip->i_inode); - spin_lock_init(&ip->i_spin); - init_rwsem(&ip->i_rw_mutex); - memset(ip->i_cache, 0, sizeof(ip->i_cache)); - } + + inode_init_once(&ip->i_inode); + spin_lock_init(&ip->i_spin); + init_rwsem(&ip->i_rw_mutex); + memset(ip->i_cache, 0, sizeof(ip->i_cache)); } static void gfs2_init_glock_once(void *foo, struct kmem_cache *cachep, unsigned long flags) { struct gfs2_glock *gl = foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - INIT_HLIST_NODE(&gl->gl_list); - spin_lock_init(&gl->gl_spin); - INIT_LIST_HEAD(&gl->gl_holders); - INIT_LIST_HEAD(&gl->gl_waiters1); - INIT_LIST_HEAD(&gl->gl_waiters3); - gl->gl_lvb = NULL; - atomic_set(&gl->gl_lvb_count, 0); - INIT_LIST_HEAD(&gl->gl_reclaim); - INIT_LIST_HEAD(&gl->gl_ail_list); - atomic_set(&gl->gl_ail_count, 0); - } + + INIT_HLIST_NODE(&gl->gl_list); + spin_lock_init(&gl->gl_spin); + INIT_LIST_HEAD(&gl->gl_holders); + INIT_LIST_HEAD(&gl->gl_waiters1); + INIT_LIST_HEAD(&gl->gl_waiters3); + gl->gl_lvb = NULL; + atomic_set(&gl->gl_lvb_count, 0); + INIT_LIST_HEAD(&gl->gl_reclaim); + INIT_LIST_HEAD(&gl->gl_ail_list); + atomic_set(&gl->gl_ail_count, 0); } /** diff --git a/fs/hfs/super.c b/fs/hfs/super.c index 4f1888f16cf..92cf8751e42 100644 --- a/fs/hfs/super.c +++ b/fs/hfs/super.c @@ -434,8 +434,7 @@ static void hfs_init_once(void *p, struct kmem_cache *cachep, unsigned long flag { struct hfs_inode_info *i = p; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&i->vfs_inode); + inode_init_once(&i->vfs_inode); } static int __init init_hfs_fs(void) diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c index 37afbec8a76..ebd1b380cbb 100644 --- a/fs/hfsplus/super.c +++ b/fs/hfsplus/super.c @@ -470,8 +470,7 @@ static void hfsplus_init_once(void *p, struct kmem_cache *cachep, unsigned long { struct hfsplus_inode_info *i = p; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&i->vfs_inode); + inode_init_once(&i->vfs_inode); } static int __init init_hfsplus_fs(void) diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c index 1b95f39fbc3..fca1165d719 100644 --- a/fs/hpfs/super.c +++ b/fs/hpfs/super.c @@ -176,11 +176,9 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct hpfs_inode_info *ei = (struct hpfs_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - mutex_init(&ei->i_mutex); - mutex_init(&ei->i_parent_mutex); - inode_init_once(&ei->vfs_inode); - } + mutex_init(&ei->i_mutex); + mutex_init(&ei->i_parent_mutex); + inode_init_once(&ei->vfs_inode); } static int init_inodecache(void) diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c index 98959b87cdf..aa083dd34e9 100644 --- a/fs/hugetlbfs/inode.c +++ b/fs/hugetlbfs/inode.c @@ -556,8 +556,7 @@ static void init_once(void *foo, struct kmem_cache *cachep, unsigned long flags) { struct hugetlbfs_inode_info *ei = (struct hugetlbfs_inode_info *)foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&ei->vfs_inode); + inode_init_once(&ei->vfs_inode); } const struct file_operations hugetlbfs_file_operations = { diff --git a/fs/inode.c b/fs/inode.c index df2ef15d03d..9a012cc5b6c 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -213,8 +213,7 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct inode * inode = (struct inode *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(inode); + inode_init_once(inode); } /* diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c index e99f7ff4ecb..5c3eecf7542 100644 --- a/fs/isofs/inode.c +++ b/fs/isofs/inode.c @@ -77,8 +77,7 @@ static void init_once(void *foo, struct kmem_cache * cachep, unsigned long flags { struct iso_inode_info *ei = foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&ei->vfs_inode); + inode_init_once(&ei->vfs_inode); } static int init_inodecache(void) diff --git a/fs/jffs2/super.c b/fs/jffs2/super.c index 45368f8bbe7..6488af43bc9 100644 --- a/fs/jffs2/super.c +++ b/fs/jffs2/super.c @@ -47,10 +47,8 @@ static void jffs2_i_init_once(void * foo, struct kmem_cache * cachep, unsigned l { struct jffs2_inode_info *ei = (struct jffs2_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - init_MUTEX(&ei->sem); - inode_init_once(&ei->vfs_inode); - } + init_MUTEX(&ei->sem); + inode_init_once(&ei->vfs_inode); } static int jffs2_sync_fs(struct super_block *sb, int wait) diff --git a/fs/jfs/jfs_metapage.c b/fs/jfs/jfs_metapage.c index 6b3acb0b578..43d4f69afbe 100644 --- a/fs/jfs/jfs_metapage.c +++ b/fs/jfs/jfs_metapage.c @@ -184,16 +184,14 @@ static void init_once(void *foo, struct kmem_cache *cachep, unsigned long flags) { struct metapage *mp = (struct metapage *)foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - mp->lid = 0; - mp->lsn = 0; - mp->flag = 0; - mp->data = NULL; - mp->clsn = 0; - mp->log = NULL; - set_bit(META_free, &mp->flag); - init_waitqueue_head(&mp->wait); - } + mp->lid = 0; + mp->lsn = 0; + mp->flag = 0; + mp->data = NULL; + mp->clsn = 0; + mp->log = NULL; + set_bit(META_free, &mp->flag); + init_waitqueue_head(&mp->wait); } static inline struct metapage *alloc_metapage(gfp_t gfp_mask) diff --git a/fs/jfs/super.c b/fs/jfs/super.c index ea9dc3e65dc..20e4ac1c79a 100644 --- a/fs/jfs/super.c +++ b/fs/jfs/super.c @@ -752,20 +752,18 @@ static void init_once(void *foo, struct kmem_cache * cachep, unsigned long flags { struct jfs_inode_info *jfs_ip = (struct jfs_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - memset(jfs_ip, 0, sizeof(struct jfs_inode_info)); - INIT_LIST_HEAD(&jfs_ip->anon_inode_list); - init_rwsem(&jfs_ip->rdwrlock); - mutex_init(&jfs_ip->commit_mutex); - init_rwsem(&jfs_ip->xattr_sem); - spin_lock_init(&jfs_ip->ag_lock); - jfs_ip->active_ag = -1; + memset(jfs_ip, 0, sizeof(struct jfs_inode_info)); + INIT_LIST_HEAD(&jfs_ip->anon_inode_list); + init_rwsem(&jfs_ip->rdwrlock); + mutex_init(&jfs_ip->commit_mutex); + init_rwsem(&jfs_ip->xattr_sem); + spin_lock_init(&jfs_ip->ag_lock); + jfs_ip->active_ag = -1; #ifdef CONFIG_JFS_POSIX_ACL - jfs_ip->i_acl = JFS_ACL_NOT_CACHED; - jfs_ip->i_default_acl = JFS_ACL_NOT_CACHED; + jfs_ip->i_acl = JFS_ACL_NOT_CACHED; + jfs_ip->i_default_acl = JFS_ACL_NOT_CACHED; #endif - inode_init_once(&jfs_ip->vfs_inode); - } + inode_init_once(&jfs_ip->vfs_inode); } static int __init init_jfs_fs(void) diff --git a/fs/locks.c b/fs/locks.c index 8ec16ab5ef7..431a8b871fc 100644 --- a/fs/locks.c +++ b/fs/locks.c @@ -203,9 +203,6 @@ static void init_once(void *foo, struct kmem_cache *cache, unsigned long flags) { struct file_lock *lock = (struct file_lock *) foo; - if (!(flags & SLAB_CTOR_CONSTRUCTOR)) - return; - locks_init_lock(lock); } diff --git a/fs/minix/inode.c b/fs/minix/inode.c index 2f4d43a2a31..be4044614ac 100644 --- a/fs/minix/inode.c +++ b/fs/minix/inode.c @@ -73,8 +73,7 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct minix_inode_info *ei = (struct minix_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&ei->vfs_inode); + inode_init_once(&ei->vfs_inode); } static int init_inodecache(void) diff --git a/fs/ncpfs/inode.c b/fs/ncpfs/inode.c index c29f00ad495..cf06eb9f050 100644 --- a/fs/ncpfs/inode.c +++ b/fs/ncpfs/inode.c @@ -60,10 +60,8 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct ncp_inode_info *ei = (struct ncp_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - mutex_init(&ei->open_mutex); - inode_init_once(&ei->vfs_inode); - } + mutex_init(&ei->open_mutex); + inode_init_once(&ei->vfs_inode); } static int init_inodecache(void) diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index 2a3fd957320..2b26ad7c977 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c @@ -1164,21 +1164,19 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct nfs_inode *nfsi = (struct nfs_inode *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - inode_init_once(&nfsi->vfs_inode); - spin_lock_init(&nfsi->req_lock); - INIT_LIST_HEAD(&nfsi->dirty); - INIT_LIST_HEAD(&nfsi->commit); - INIT_LIST_HEAD(&nfsi->open_files); - INIT_LIST_HEAD(&nfsi->access_cache_entry_lru); - INIT_LIST_HEAD(&nfsi->access_cache_inode_lru); - INIT_RADIX_TREE(&nfsi->nfs_page_tree, GFP_ATOMIC); - atomic_set(&nfsi->data_updates, 0); - nfsi->ndirty = 0; - nfsi->ncommit = 0; - nfsi->npages = 0; - nfs4_init_once(nfsi); - } + inode_init_once(&nfsi->vfs_inode); + spin_lock_init(&nfsi->req_lock); + INIT_LIST_HEAD(&nfsi->dirty); + INIT_LIST_HEAD(&nfsi->commit); + INIT_LIST_HEAD(&nfsi->open_files); + INIT_LIST_HEAD(&nfsi->access_cache_entry_lru); + INIT_LIST_HEAD(&nfsi->access_cache_inode_lru); + INIT_RADIX_TREE(&nfsi->nfs_page_tree, GFP_ATOMIC); + atomic_set(&nfsi->data_updates, 0); + nfsi->ndirty = 0; + nfsi->ncommit = 0; + nfsi->npages = 0; + nfs4_init_once(nfsi); } static int __init nfs_init_inodecache(void) diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c index 21d834e5ed7..4566b918255 100644 --- a/fs/ntfs/super.c +++ b/fs/ntfs/super.c @@ -3085,8 +3085,7 @@ static void ntfs_big_inode_init_once(void *foo, struct kmem_cache *cachep, { ntfs_inode *ni = (ntfs_inode *)foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(VFS_I(ni)); + inode_init_once(VFS_I(ni)); } /* diff --git a/fs/ocfs2/dlm/dlmfs.c b/fs/ocfs2/dlm/dlmfs.c index 5671cf9d638..fd8cb1badc9 100644 --- a/fs/ocfs2/dlm/dlmfs.c +++ b/fs/ocfs2/dlm/dlmfs.c @@ -262,12 +262,10 @@ static void dlmfs_init_once(void *foo, struct dlmfs_inode_private *ip = (struct dlmfs_inode_private *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - ip->ip_dlm = NULL; - ip->ip_parent = NULL; + ip->ip_dlm = NULL; + ip->ip_parent = NULL; - inode_init_once(&ip->ip_vfs_inode); - } + inode_init_once(&ip->ip_vfs_inode); } static struct inode *dlmfs_alloc_inode(struct super_block *sb) diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 7c5e3f5d663..86b559c7dce 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c @@ -937,31 +937,29 @@ static void ocfs2_inode_init_once(void *data, { struct ocfs2_inode_info *oi = data; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - oi->ip_flags = 0; - oi->ip_open_count = 0; - spin_lock_init(&oi->ip_lock); - ocfs2_extent_map_init(&oi->vfs_inode); - INIT_LIST_HEAD(&oi->ip_io_markers); - oi->ip_created_trans = 0; - oi->ip_last_trans = 0; - oi->ip_dir_start_lookup = 0; + oi->ip_flags = 0; + oi->ip_open_count = 0; + spin_lock_init(&oi->ip_lock); + ocfs2_extent_map_init(&oi->vfs_inode); + INIT_LIST_HEAD(&oi->ip_io_markers); + oi->ip_created_trans = 0; + oi->ip_last_trans = 0; + oi->ip_dir_start_lookup = 0; - init_rwsem(&oi->ip_alloc_sem); - mutex_init(&oi->ip_io_mutex); + init_rwsem(&oi->ip_alloc_sem); + mutex_init(&oi->ip_io_mutex); - oi->ip_blkno = 0ULL; - oi->ip_clusters = 0; + oi->ip_blkno = 0ULL; + oi->ip_clusters = 0; - ocfs2_lock_res_init_once(&oi->ip_rw_lockres); - ocfs2_lock_res_init_once(&oi->ip_meta_lockres); - ocfs2_lock_res_init_once(&oi->ip_data_lockres); - ocfs2_lock_res_init_once(&oi->ip_open_lockres); + ocfs2_lock_res_init_once(&oi->ip_rw_lockres); + ocfs2_lock_res_init_once(&oi->ip_meta_lockres); + ocfs2_lock_res_init_once(&oi->ip_data_lockres); + ocfs2_lock_res_init_once(&oi->ip_open_lockres); - ocfs2_metadata_cache_init(&oi->vfs_inode); + ocfs2_metadata_cache_init(&oi->vfs_inode); - inode_init_once(&oi->vfs_inode); - } + inode_init_once(&oi->vfs_inode); } static int ocfs2_initialize_mem_caches(void) diff --git a/fs/openpromfs/inode.c b/fs/openpromfs/inode.c index 731a90e9f0c..e62397341c3 100644 --- a/fs/openpromfs/inode.c +++ b/fs/openpromfs/inode.c @@ -419,8 +419,7 @@ static void op_inode_init_once(void *data, struct kmem_cache * cachep, unsigned { struct op_inode_info *oi = (struct op_inode_info *) data; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&oi->vfs_inode); + inode_init_once(&oi->vfs_inode); } static int __init init_openprom_fs(void) diff --git a/fs/proc/inode.c b/fs/proc/inode.c index b8171907c83..d5ce65c68d7 100644 --- a/fs/proc/inode.c +++ b/fs/proc/inode.c @@ -109,8 +109,7 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct proc_inode *ei = (struct proc_inode *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&ei->vfs_inode); + inode_init_once(&ei->vfs_inode); } int __init proc_init_inodecache(void) diff --git a/fs/qnx4/inode.c b/fs/qnx4/inode.c index 75fc8498f2e..8d256eb1181 100644 --- a/fs/qnx4/inode.c +++ b/fs/qnx4/inode.c @@ -536,8 +536,7 @@ static void init_once(void *foo, struct kmem_cache * cachep, { struct qnx4_inode_info *ei = (struct qnx4_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&ei->vfs_inode); + inode_init_once(&ei->vfs_inode); } static int init_inodecache(void) diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c index c7762140c42..b4ac9119200 100644 --- a/fs/reiserfs/super.c +++ b/fs/reiserfs/super.c @@ -511,14 +511,12 @@ static void init_once(void *foo, struct kmem_cache * cachep, unsigned long flags { struct reiserfs_inode_info *ei = (struct reiserfs_inode_info *)foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - INIT_LIST_HEAD(&ei->i_prealloc_list); - inode_init_once(&ei->vfs_inode); + INIT_LIST_HEAD(&ei->i_prealloc_list); + inode_init_once(&ei->vfs_inode); #ifdef CONFIG_REISERFS_FS_POSIX_ACL - ei->i_acl_access = NULL; - ei->i_acl_default = NULL; + ei->i_acl_access = NULL; + ei->i_acl_default = NULL; #endif - } } static int init_inodecache(void) diff --git a/fs/romfs/inode.c b/fs/romfs/inode.c index 80428519027..2284e03342c 100644 --- a/fs/romfs/inode.c +++ b/fs/romfs/inode.c @@ -566,12 +566,11 @@ static void romfs_destroy_inode(struct inode *inode) kmem_cache_free(romfs_inode_cachep, ROMFS_I(inode)); } -static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) +static void init_once(void *foo, struct kmem_cache *cachep, unsigned long flags) { - struct romfs_inode_info *ei = (struct romfs_inode_info *) foo; + struct romfs_inode_info *ei = foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&ei->vfs_inode); + inode_init_once(&ei->vfs_inode); } static int init_inodecache(void) diff --git a/fs/smbfs/inode.c b/fs/smbfs/inode.c index 424a3ddf86d..5c9243a23b9 100644 --- a/fs/smbfs/inode.c +++ b/fs/smbfs/inode.c @@ -70,8 +70,7 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct smb_inode_info *ei = (struct smb_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&ei->vfs_inode); + inode_init_once(&ei->vfs_inode); } static int init_inodecache(void) diff --git a/fs/sysv/inode.c b/fs/sysv/inode.c index 3152d741560..56441169339 100644 --- a/fs/sysv/inode.c +++ b/fs/sysv/inode.c @@ -322,8 +322,7 @@ static void init_once(void *p, struct kmem_cache *cachep, unsigned long flags) { struct sysv_inode_info *si = (struct sysv_inode_info *)p; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&si->vfs_inode); + inode_init_once(&si->vfs_inode); } const struct super_operations sysv_sops = { diff --git a/fs/udf/super.c b/fs/udf/super.c index 9b8644a06e5..3a743d854c1 100644 --- a/fs/udf/super.c +++ b/fs/udf/super.c @@ -134,10 +134,8 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct udf_inode_info *ei = (struct udf_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - ei->i_ext.i_data = NULL; - inode_init_once(&ei->vfs_inode); - } + ei->i_ext.i_data = NULL; + inode_init_once(&ei->vfs_inode); } static int init_inodecache(void) diff --git a/fs/ufs/super.c b/fs/ufs/super.c index be7c48c5f20..22ff6ed55ce 100644 --- a/fs/ufs/super.c +++ b/fs/ufs/super.c @@ -1237,8 +1237,7 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag { struct ufs_inode_info *ei = (struct ufs_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&ei->vfs_inode); + inode_init_once(&ei->vfs_inode); } static int init_inodecache(void) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 14e2cbe5a8d..bf9a9d5909b 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -360,8 +360,7 @@ xfs_fs_inode_init_once( kmem_zone_t *zonep, unsigned long flags) { - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(vn_to_inode((bhv_vnode_t *)vnode)); + inode_init_once(vn_to_inode((bhv_vnode_t *)vnode)); } STATIC int diff --git a/include/linux/slab.h b/include/linux/slab.h index 5dbc0bae26e..6fb2ae21415 100644 --- a/include/linux/slab.h +++ b/include/linux/slab.h @@ -32,9 +32,6 @@ typedef struct kmem_cache kmem_cache_t __deprecated; #define SLAB_MEM_SPREAD 0x00100000UL /* Spread some memory over cpuset */ #define SLAB_TRACE 0x00200000UL /* Trace allocations and frees */ -/* Flags passed to a constructor functions */ -#define SLAB_CTOR_CONSTRUCTOR 0x001UL /* If not set, then deconstructor */ - /* * struct kmem_cache related prototypes */ diff --git a/ipc/mqueue.c b/ipc/mqueue.c index fab5707cb5f..a242c83d89d 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c @@ -215,8 +215,7 @@ static void init_once(void *foo, struct kmem_cache * cachep, unsigned long flags { struct mqueue_inode_info *p = (struct mqueue_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&p->vfs_inode); + inode_init_once(&p->vfs_inode); } static struct inode *mqueue_alloc_inode(struct super_block *sb) diff --git a/kernel/fork.c b/kernel/fork.c index 49530e40ea8..87069cfc18a 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1427,10 +1427,8 @@ static void sighand_ctor(void *data, struct kmem_cache *cachep, { struct sighand_struct *sighand = data; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - spin_lock_init(&sighand->siglock); - INIT_LIST_HEAD(&sighand->signalfd_list); - } + spin_lock_init(&sighand->siglock); + INIT_LIST_HEAD(&sighand->signalfd_list); } void __init proc_caches_init(void) diff --git a/mm/rmap.c b/mm/rmap.c index 304f51985c7..1c1af92732d 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -162,12 +162,10 @@ void anon_vma_unlink(struct vm_area_struct *vma) static void anon_vma_ctor(void *data, struct kmem_cache *cachep, unsigned long flags) { - if (flags & SLAB_CTOR_CONSTRUCTOR) { - struct anon_vma *anon_vma = data; + struct anon_vma *anon_vma = data; - spin_lock_init(&anon_vma->lock); - INIT_LIST_HEAD(&anon_vma->head); - } + spin_lock_init(&anon_vma->lock); + INIT_LIST_HEAD(&anon_vma->head); } void __init anon_vma_init(void) diff --git a/mm/shmem.c b/mm/shmem.c index f01e8deed64..e537317bec4 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -2358,13 +2358,11 @@ static void init_once(void *foo, struct kmem_cache *cachep, { struct shmem_inode_info *p = (struct shmem_inode_info *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - inode_init_once(&p->vfs_inode); + inode_init_once(&p->vfs_inode); #ifdef CONFIG_TMPFS_POSIX_ACL - p->i_acl = NULL; - p->i_default_acl = NULL; + p->i_acl = NULL; + p->i_default_acl = NULL; #endif - } } static int init_inodecache(void) diff --git a/mm/slab.c b/mm/slab.c index 2043102c042..1dc0ce1d0d5 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -2610,7 +2610,7 @@ static inline kmem_bufctl_t *slab_bufctl(struct slab *slabp) } static void cache_init_objs(struct kmem_cache *cachep, - struct slab *slabp, unsigned long ctor_flags) + struct slab *slabp) { int i; @@ -2634,7 +2634,7 @@ static void cache_init_objs(struct kmem_cache *cachep, */ if (cachep->ctor && !(cachep->flags & SLAB_POISON)) cachep->ctor(objp + obj_offset(cachep), cachep, - ctor_flags); + 0); if (cachep->flags & SLAB_RED_ZONE) { if (*dbg_redzone2(cachep, objp) != RED_INACTIVE) @@ -2650,7 +2650,7 @@ static void cache_init_objs(struct kmem_cache *cachep, cachep->buffer_size / PAGE_SIZE, 0); #else if (cachep->ctor) - cachep->ctor(objp, cachep, ctor_flags); + cachep->ctor(objp, cachep, 0); #endif slab_bufctl(slabp)[i] = i + 1; } @@ -2739,7 +2739,6 @@ static int cache_grow(struct kmem_cache *cachep, struct slab *slabp; size_t offset; gfp_t local_flags; - unsigned long ctor_flags; struct kmem_list3 *l3; /* @@ -2748,7 +2747,6 @@ static int cache_grow(struct kmem_cache *cachep, */ BUG_ON(flags & ~(GFP_DMA | GFP_LEVEL_MASK)); - ctor_flags = SLAB_CTOR_CONSTRUCTOR; local_flags = (flags & GFP_LEVEL_MASK); /* Take the l3 list lock to change the colour_next on this node */ check_irq_off(); @@ -2793,7 +2791,7 @@ static int cache_grow(struct kmem_cache *cachep, slabp->nodeid = nodeid; slab_map_pages(cachep, slabp, objp); - cache_init_objs(cachep, slabp, ctor_flags); + cache_init_objs(cachep, slabp); if (local_flags & __GFP_WAIT) local_irq_disable(); @@ -3077,7 +3075,7 @@ static void *cache_alloc_debugcheck_after(struct kmem_cache *cachep, #endif objp += obj_offset(cachep); if (cachep->ctor && cachep->flags & SLAB_POISON) - cachep->ctor(objp, cachep, SLAB_CTOR_CONSTRUCTOR); + cachep->ctor(objp, cachep, 0); #if ARCH_SLAB_MINALIGN if ((u32)objp & (ARCH_SLAB_MINALIGN-1)) { printk(KERN_ERR "0x%p: not aligned to ARCH_SLAB_MINALIGN=%d\n", diff --git a/mm/slob.c b/mm/slob.c index 79164a4f54a..71976c5d40d 100644 --- a/mm/slob.c +++ b/mm/slob.c @@ -327,7 +327,7 @@ void *kmem_cache_alloc(struct kmem_cache *c, gfp_t flags) b = (void *)__get_free_pages(flags, get_order(c->size)); if (c->ctor) - c->ctor(b, c, SLAB_CTOR_CONSTRUCTOR); + c->ctor(b, c, 0); return b; } diff --git a/mm/slub.c b/mm/slub.c index 3ca164f3396..e7ad123bb6a 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -994,7 +994,7 @@ static void setup_object(struct kmem_cache *s, struct page *page, } if (unlikely(s->ctor)) - s->ctor(object, s, SLAB_CTOR_CONSTRUCTOR); + s->ctor(object, s, 0); } static struct page *new_slab(struct kmem_cache *s, gfp_t flags, int node) diff --git a/net/socket.c b/net/socket.c index 98a8f67abbf..f4530196a70 100644 --- a/net/socket.c +++ b/net/socket.c @@ -261,8 +261,7 @@ static void init_once(void *foo, struct kmem_cache *cachep, unsigned long flags) { struct socket_alloc *ei = (struct socket_alloc *)foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) - inode_init_once(&ei->vfs_inode); + inode_init_once(&ei->vfs_inode); } static int init_inodecache(void) diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c index a2f1893bde5..5887457dc93 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c @@ -828,19 +828,17 @@ init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) { struct rpc_inode *rpci = (struct rpc_inode *) foo; - if (flags & SLAB_CTOR_CONSTRUCTOR) { - inode_init_once(&rpci->vfs_inode); - rpci->private = NULL; - rpci->nreaders = 0; - rpci->nwriters = 0; - INIT_LIST_HEAD(&rpci->in_upcall); - INIT_LIST_HEAD(&rpci->pipe); - rpci->pipelen = 0; - init_waitqueue_head(&rpci->waitq); - INIT_DELAYED_WORK(&rpci->queue_timeout, - rpc_timeout_upcall_queue); - rpci->ops = NULL; - } + inode_init_once(&rpci->vfs_inode); + rpci->private = NULL; + rpci->nreaders = 0; + rpci->nwriters = 0; + INIT_LIST_HEAD(&rpci->in_upcall); + INIT_LIST_HEAD(&rpci->pipe); + rpci->pipelen = 0; + init_waitqueue_head(&rpci->waitq); + INIT_DELAYED_WORK(&rpci->queue_timeout, + rpc_timeout_upcall_queue); + rpci->ops = NULL; } int register_rpc_pipefs(void) -- cgit v1.2.3-70-g09d2 From 7664709b44a13e2e0b545e2dd8e7b8797a1748dc Mon Sep 17 00:00:00 2001 From: Sam Ravnborg Date: Sun, 13 May 2007 00:31:33 +0200 Subject: all-archs: consolidate .text section definition in asm-generic Move definition of .text section to asm-generic. Signed-off-by: Sam Ravnborg --- arch/alpha/kernel/vmlinux.lds.S | 2 +- arch/arm/kernel/vmlinux.lds.S | 2 +- arch/arm26/kernel/vmlinux-arm26-xip.lds.in | 2 +- arch/arm26/kernel/vmlinux-arm26.lds.in | 2 +- arch/avr32/kernel/vmlinux.lds.c | 2 +- arch/blackfin/kernel/vmlinux.lds.S | 2 +- arch/frv/kernel/vmlinux.lds.S | 3 ++- arch/h8300/kernel/vmlinux.lds.S | 2 +- arch/i386/kernel/vmlinux.lds.S | 2 +- arch/ia64/kernel/vmlinux.lds.S | 2 +- arch/m32r/kernel/vmlinux.lds.S | 2 +- arch/m68k/kernel/vmlinux-std.lds | 2 +- arch/m68k/kernel/vmlinux-sun3.lds | 2 +- arch/m68knommu/kernel/vmlinux.lds.S | 2 +- arch/mips/kernel/vmlinux.lds.S | 2 +- arch/parisc/kernel/vmlinux.lds.S | 2 +- arch/powerpc/kernel/vmlinux.lds.S | 3 ++- arch/ppc/kernel/vmlinux.lds.S | 2 +- arch/s390/kernel/vmlinux.lds.S | 2 +- arch/sh/kernel/vmlinux.lds.S | 2 +- arch/sh64/kernel/vmlinux.lds.S | 2 +- arch/sparc/kernel/vmlinux.lds.S | 2 +- arch/sparc64/kernel/vmlinux.lds.S | 2 +- arch/um/kernel/dyn.lds.S | 2 +- arch/um/kernel/uml.lds.S | 2 +- arch/v850/kernel/vmlinux.lds.S | 2 +- arch/x86_64/kernel/vmlinux.lds.S | 2 +- arch/xtensa/kernel/vmlinux.lds.S | 3 ++- include/asm-generic/vmlinux.lds.h | 6 ++++++ 29 files changed, 37 insertions(+), 28 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/alpha/kernel/vmlinux.lds.S b/arch/alpha/kernel/vmlinux.lds.S index cf1e6fc6c68..ab60e81540b 100644 --- a/arch/alpha/kernel/vmlinux.lds.S +++ b/arch/alpha/kernel/vmlinux.lds.S @@ -15,7 +15,7 @@ SECTIONS _text = .; /* Text and read-only data */ .text : { - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT *(.fixup) diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S index e4156e7868c..8d4e248a954 100644 --- a/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S @@ -90,7 +90,7 @@ SECTIONS __exception_text_start = .; *(.exception.text) __exception_text_end = .; - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT #ifdef CONFIG_MMU diff --git a/arch/arm26/kernel/vmlinux-arm26-xip.lds.in b/arch/arm26/kernel/vmlinux-arm26-xip.lds.in index 046a8505401..89c806a3a51 100644 --- a/arch/arm26/kernel/vmlinux-arm26-xip.lds.in +++ b/arch/arm26/kernel/vmlinux-arm26-xip.lds.in @@ -64,7 +64,7 @@ SECTIONS .text : { /* Real text segment */ _text = .; /* Text and read-only data */ - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT /* FIXME - borrowed from arm32 - check*/ *(.fixup) diff --git a/arch/arm26/kernel/vmlinux-arm26.lds.in b/arch/arm26/kernel/vmlinux-arm26.lds.in index 1d2949e83be..e3f9b18d9d2 100644 --- a/arch/arm26/kernel/vmlinux-arm26.lds.in +++ b/arch/arm26/kernel/vmlinux-arm26.lds.in @@ -65,7 +65,7 @@ SECTIONS .text : { /* Real text segment */ _text = .; /* Text and read-only data */ - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT *(.fixup) diff --git a/arch/avr32/kernel/vmlinux.lds.c b/arch/avr32/kernel/vmlinux.lds.c index e7f72c995a3..dbba3912f7c 100644 --- a/arch/avr32/kernel/vmlinux.lds.c +++ b/arch/avr32/kernel/vmlinux.lds.c @@ -76,7 +76,7 @@ SECTIONS . = 0x100; *(.scall.text) *(.irq.text) - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT KPROBES_TEXT diff --git a/arch/blackfin/kernel/vmlinux.lds.S b/arch/blackfin/kernel/vmlinux.lds.S index 6ae9ebbd8e5..36fcc777ea8 100644 --- a/arch/blackfin/kernel/vmlinux.lds.S +++ b/arch/blackfin/kernel/vmlinux.lds.S @@ -54,7 +54,7 @@ SECTIONS { _text = .; __stext = .; - *(.text) + TEXT_TEXT SCHED_TEXT *(.text.lock) . = ALIGN(16); diff --git a/arch/frv/kernel/vmlinux.lds.S b/arch/frv/kernel/vmlinux.lds.S index 28eae9735ad..7e0998f7f70 100644 --- a/arch/frv/kernel/vmlinux.lds.S +++ b/arch/frv/kernel/vmlinux.lds.S @@ -101,13 +101,14 @@ SECTIONS _stext = .; .text : { *( - .text.start .text .text.* + .text.start .text.* #ifdef CONFIG_DEBUG_INFO .init.text .exit.text .exitcall.exit #endif ) + TEXT_TEXT SCHED_TEXT LOCK_TEXT *(.fixup) diff --git a/arch/h8300/kernel/vmlinux.lds.S b/arch/h8300/kernel/vmlinux.lds.S index 65f1cdc5ee0..4365162952e 100644 --- a/arch/h8300/kernel/vmlinux.lds.S +++ b/arch/h8300/kernel/vmlinux.lds.S @@ -75,7 +75,7 @@ SECTIONS *(.int_redirect) #endif __stext = . ; - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT __etext = . ; diff --git a/arch/i386/kernel/vmlinux.lds.S b/arch/i386/kernel/vmlinux.lds.S index 80bec664023..dfc439a570d 100644 --- a/arch/i386/kernel/vmlinux.lds.S +++ b/arch/i386/kernel/vmlinux.lds.S @@ -44,7 +44,7 @@ SECTIONS /* read-only */ .text : AT(ADDR(.text) - LOAD_OFFSET) { - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT KPROBES_TEXT diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S index 69238264211..19108d0bb06 100644 --- a/arch/ia64/kernel/vmlinux.lds.S +++ b/arch/ia64/kernel/vmlinux.lds.S @@ -44,7 +44,7 @@ SECTIONS .text : AT(ADDR(.text) - LOAD_OFFSET) { IVT_TEXT - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT KPROBES_TEXT diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S index 6c73bca3f47..bb1a2f50255 100644 --- a/arch/m32r/kernel/vmlinux.lds.S +++ b/arch/m32r/kernel/vmlinux.lds.S @@ -27,7 +27,7 @@ SECTIONS _text = .; /* Text and read-only data */ .boot : { *(.boot) } = 0 .text : { - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT *(.fixup) diff --git a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds index 437b4f8d86c..a65cef82697 100644 --- a/arch/m68k/kernel/vmlinux-std.lds +++ b/arch/m68k/kernel/vmlinux-std.lds @@ -11,7 +11,7 @@ SECTIONS . = 0x1000; _text = .; /* Text and read-only data */ .text : { - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT *(.fixup) diff --git a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds index 2868e206fc7..fa44d6c49ac 100644 --- a/arch/m68k/kernel/vmlinux-sun3.lds +++ b/arch/m68k/kernel/vmlinux-sun3.lds @@ -12,7 +12,7 @@ SECTIONS _text = .; /* Text and read-only data */ .text : { *(.head) - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT *(.fixup) diff --git a/arch/m68knommu/kernel/vmlinux.lds.S b/arch/m68knommu/kernel/vmlinux.lds.S index c86a1bf589d..6d4585eb6e7 100644 --- a/arch/m68knommu/kernel/vmlinux.lds.S +++ b/arch/m68knommu/kernel/vmlinux.lds.S @@ -62,7 +62,7 @@ SECTIONS { .text : { _text = .; _stext = . ; - *(.text) + TEXT_TEXT SCHED_TEXT *(.text.lock) diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S index 043f637e3d1..cfe4b67ef26 100644 --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S @@ -27,7 +27,7 @@ SECTIONS /* read-only */ _text = .; /* Text and read-only data */ .text : { - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT *(.fixup) diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S index c7458599059..321de82fa86 100644 --- a/arch/parisc/kernel/vmlinux.lds.S +++ b/arch/parisc/kernel/vmlinux.lds.S @@ -51,7 +51,7 @@ SECTIONS _text = .; /* Text and read-only data */ .text ALIGN(16) : { - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT *(.text.do_softirq) diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S index 13206731314..f2662098886 100644 --- a/arch/powerpc/kernel/vmlinux.lds.S +++ b/arch/powerpc/kernel/vmlinux.lds.S @@ -34,7 +34,8 @@ SECTIONS /* Text and gots */ .text : { _text = .; - *(.text .text.*) + *(.text.*) + TEXT_TEXT SCHED_TEXT LOCK_TEXT KPROBES_TEXT diff --git a/arch/ppc/kernel/vmlinux.lds.S b/arch/ppc/kernel/vmlinux.lds.S index 44cd128fb71..419ef7e8e38 100644 --- a/arch/ppc/kernel/vmlinux.lds.S +++ b/arch/ppc/kernel/vmlinux.lds.S @@ -32,7 +32,7 @@ SECTIONS .text : { _text = .; - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT *(.fixup) diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S index e9d3432aba6..89c2ec5c85f 100644 --- a/arch/s390/kernel/vmlinux.lds.S +++ b/arch/s390/kernel/vmlinux.lds.S @@ -21,7 +21,7 @@ SECTIONS . = 0x00000000; _text = .; /* Text and read-only data */ .text : { - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT KPROBES_TEXT diff --git a/arch/sh/kernel/vmlinux.lds.S b/arch/sh/kernel/vmlinux.lds.S index d83143cc5ca..2367869d214 100644 --- a/arch/sh/kernel/vmlinux.lds.S +++ b/arch/sh/kernel/vmlinux.lds.S @@ -22,7 +22,7 @@ SECTIONS *(.empty_zero_page) } = 0 .text : { - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT *(.fixup) diff --git a/arch/sh64/kernel/vmlinux.lds.S b/arch/sh64/kernel/vmlinux.lds.S index 4f9616f3983..fdf72ceff86 100644 --- a/arch/sh64/kernel/vmlinux.lds.S +++ b/arch/sh64/kernel/vmlinux.lds.S @@ -54,7 +54,7 @@ SECTIONS } = 0 .text : C_PHYS(.text) { - *(.text) + TEXT_TEXT *(.text64) *(.text..SHmedia32) SCHED_TEXT diff --git a/arch/sparc/kernel/vmlinux.lds.S b/arch/sparc/kernel/vmlinux.lds.S index f0bb6e60e62..5cb600e2987 100644 --- a/arch/sparc/kernel/vmlinux.lds.S +++ b/arch/sparc/kernel/vmlinux.lds.S @@ -12,7 +12,7 @@ SECTIONS .text 0xf0004000 : { _text = .; - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT *(.gnu.warning) diff --git a/arch/sparc64/kernel/vmlinux.lds.S b/arch/sparc64/kernel/vmlinux.lds.S index 13fa2a2e451..f06da20533f 100644 --- a/arch/sparc64/kernel/vmlinux.lds.S +++ b/arch/sparc64/kernel/vmlinux.lds.S @@ -14,7 +14,7 @@ SECTIONS .text 0x0000000000404000 : { _text = .; - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT KPROBES_TEXT diff --git a/arch/um/kernel/dyn.lds.S b/arch/um/kernel/dyn.lds.S index 87a4e4427d8..ec8477d0feb 100644 --- a/arch/um/kernel/dyn.lds.S +++ b/arch/um/kernel/dyn.lds.S @@ -62,7 +62,7 @@ SECTIONS } =0x90909090 .plt : { *(.plt) } .text : { - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT *(.fixup) diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S index bc59f97e34d..84351059c35 100644 --- a/arch/um/kernel/uml.lds.S +++ b/arch/um/kernel/uml.lds.S @@ -37,7 +37,7 @@ SECTIONS .text : { - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT *(.fixup) diff --git a/arch/v850/kernel/vmlinux.lds.S b/arch/v850/kernel/vmlinux.lds.S index 35630822125..9e2b4bc06c6 100644 --- a/arch/v850/kernel/vmlinux.lds.S +++ b/arch/v850/kernel/vmlinux.lds.S @@ -92,7 +92,7 @@ #define TEXT_CONTENTS \ _text = .; \ __stext = . ; \ - *(.text) \ + TEXT_TEXT \ SCHED_TEXT \ *(.exit.text) /* 2.5 convention */ \ *(.text.exit) /* 2.4 convention */ \ diff --git a/arch/x86_64/kernel/vmlinux.lds.S b/arch/x86_64/kernel/vmlinux.lds.S index 88cfa50b424..c77142d9fba 100644 --- a/arch/x86_64/kernel/vmlinux.lds.S +++ b/arch/x86_64/kernel/vmlinux.lds.S @@ -31,7 +31,7 @@ SECTIONS *(.bootstrap.text) _stext = .; /* Then the rest */ - *(.text) + TEXT_TEXT SCHED_TEXT LOCK_TEXT KPROBES_TEXT diff --git a/arch/xtensa/kernel/vmlinux.lds.S b/arch/xtensa/kernel/vmlinux.lds.S index 4fbd66a52a8..7d2dfb286a9 100644 --- a/arch/xtensa/kernel/vmlinux.lds.S +++ b/arch/xtensa/kernel/vmlinux.lds.S @@ -84,7 +84,8 @@ SECTIONS { /* The .head.text section must be the first section! */ *(.head.text) - *(.literal .text) + *(.literal) + TEXT_TEXT *(.srom.text) VMLINUX_SYMBOL(__sched_text_start) = .; *(.sched.literal .sched.text) diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index f3806a74c47..a464227a66b 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -139,6 +139,12 @@ VMLINUX_SYMBOL(__security_initcall_end) = .; \ } +/* .text section. Map to function alignment to avoid address changes + * during second ld run in second ld pass when generating System.map */ +#define TEXT_TEXT \ + ALIGN_FUNCTION(); \ + *(.text) + /* sched.text is aling to function alignment to secure we have same * address even at second ld pass when generating System.map */ #define SCHED_TEXT \ -- cgit v1.2.3-70-g09d2 From ca967258b69eb65dcb07bbab90fdf964c6d2ec45 Mon Sep 17 00:00:00 2001 From: Sam Ravnborg Date: Thu, 17 May 2007 13:38:44 +0200 Subject: all-archs: consolidate .data section definition in asm-generic With this consolidation we can now modify the .data section definition in one spot for all archs. Signed-off-by: Sam Ravnborg --- arch/alpha/kernel/vmlinux.lds.S | 2 +- arch/arm/kernel/vmlinux.lds.S | 2 +- arch/arm26/kernel/vmlinux-arm26-xip.lds.in | 2 +- arch/arm26/kernel/vmlinux-arm26.lds.in | 2 +- arch/avr32/kernel/vmlinux.lds.c | 2 +- arch/blackfin/kernel/vmlinux.lds.S | 2 +- arch/frv/kernel/vmlinux.lds.S | 3 ++- arch/h8300/kernel/vmlinux.lds.S | 2 +- arch/i386/kernel/vmlinux.lds.S | 2 +- arch/ia64/kernel/vmlinux.lds.S | 7 ++++++- arch/m32r/kernel/vmlinux.lds.S | 2 +- arch/m68k/kernel/vmlinux-std.lds | 2 +- arch/m68k/kernel/vmlinux-sun3.lds | 2 +- arch/m68knommu/kernel/vmlinux.lds.S | 2 +- arch/mips/kernel/vmlinux.lds.S | 2 +- arch/parisc/kernel/vmlinux.lds.S | 2 +- arch/powerpc/kernel/vmlinux.lds.S | 2 +- arch/ppc/kernel/vmlinux.lds.S | 2 +- arch/s390/kernel/vmlinux.lds.S | 2 +- arch/sh/kernel/vmlinux.lds.S | 2 +- arch/sh64/kernel/vmlinux.lds.S | 2 +- arch/sparc/kernel/vmlinux.lds.S | 2 +- arch/sparc64/kernel/vmlinux.lds.S | 2 +- arch/um/kernel/dyn.lds.S | 3 ++- arch/um/kernel/uml.lds.S | 2 +- arch/v850/kernel/vmlinux.lds.S | 2 +- arch/x86_64/kernel/vmlinux.lds.S | 2 +- arch/xtensa/kernel/vmlinux.lds.S | 3 ++- include/asm-generic/vmlinux.lds.h | 4 ++++ 29 files changed, 40 insertions(+), 28 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/alpha/kernel/vmlinux.lds.S b/arch/alpha/kernel/vmlinux.lds.S index ab60e81540b..449e76f118d 100644 --- a/arch/alpha/kernel/vmlinux.lds.S +++ b/arch/alpha/kernel/vmlinux.lds.S @@ -89,7 +89,7 @@ SECTIONS _data = .; .data : { /* Data */ - *(.data) + DATA_DATA CONSTRUCTORS } diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S index 8d4e248a954..2b7a8f5d8cf 100644 --- a/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S @@ -158,7 +158,7 @@ SECTIONS /* * and the usual data section */ - *(.data) + DATA_DATA CONSTRUCTORS _edata = .; diff --git a/arch/arm26/kernel/vmlinux-arm26-xip.lds.in b/arch/arm26/kernel/vmlinux-arm26-xip.lds.in index 89c806a3a51..4ec715c25de 100644 --- a/arch/arm26/kernel/vmlinux-arm26-xip.lds.in +++ b/arch/arm26/kernel/vmlinux-arm26-xip.lds.in @@ -111,7 +111,7 @@ SECTIONS /* * and the usual data section */ - *(.data) + DATA_DATA CONSTRUCTORS *(.init.data) diff --git a/arch/arm26/kernel/vmlinux-arm26.lds.in b/arch/arm26/kernel/vmlinux-arm26.lds.in index e3f9b18d9d2..6c44f6a17bf 100644 --- a/arch/arm26/kernel/vmlinux-arm26.lds.in +++ b/arch/arm26/kernel/vmlinux-arm26.lds.in @@ -106,7 +106,7 @@ SECTIONS /* * and the usual data section */ - *(.data) + DATA_DATA CONSTRUCTORS _edata = .; diff --git a/arch/avr32/kernel/vmlinux.lds.c b/arch/avr32/kernel/vmlinux.lds.c index dbba3912f7c..db0438f35c0 100644 --- a/arch/avr32/kernel/vmlinux.lds.c +++ b/arch/avr32/kernel/vmlinux.lds.c @@ -112,7 +112,7 @@ SECTIONS /* And the rest... */ *(.data.rel*) - *(.data) + DATA_DATA CONSTRUCTORS _edata = .; diff --git a/arch/blackfin/kernel/vmlinux.lds.S b/arch/blackfin/kernel/vmlinux.lds.S index 36fcc777ea8..86fe6799580 100644 --- a/arch/blackfin/kernel/vmlinux.lds.S +++ b/arch/blackfin/kernel/vmlinux.lds.S @@ -200,7 +200,7 @@ SECTIONS __sdata = .; . = ALIGN(0x2000); *(.data.init_task) - *(.data) + DATA_DATA . = ALIGN(32); *(.data.cacheline_aligned) diff --git a/arch/frv/kernel/vmlinux.lds.S b/arch/frv/kernel/vmlinux.lds.S index 7e0998f7f70..481dc137464 100644 --- a/arch/frv/kernel/vmlinux.lds.S +++ b/arch/frv/kernel/vmlinux.lds.S @@ -136,7 +136,8 @@ SECTIONS _sdata = .; .data : { /* Data */ - *(.data .data.*) + DATA_DATA + *(.data.*) *(.exit.data) CONSTRUCTORS } diff --git a/arch/h8300/kernel/vmlinux.lds.S b/arch/h8300/kernel/vmlinux.lds.S index 4365162952e..a2e72d49555 100644 --- a/arch/h8300/kernel/vmlinux.lds.S +++ b/arch/h8300/kernel/vmlinux.lds.S @@ -103,7 +103,7 @@ SECTIONS . = ALIGN(0x2000) ; *(.data.init_task) . = ALIGN(0x4) ; - *(.data) + DATA_DATA . = ALIGN(0x4) ; *(.data.*) diff --git a/arch/i386/kernel/vmlinux.lds.S b/arch/i386/kernel/vmlinux.lds.S index dfc439a570d..aa87b06c7c8 100644 --- a/arch/i386/kernel/vmlinux.lds.S +++ b/arch/i386/kernel/vmlinux.lds.S @@ -74,7 +74,7 @@ SECTIONS /* writeable */ . = ALIGN(4096); .data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */ - *(.data) + DATA_DATA CONSTRUCTORS } :data diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S index 19108d0bb06..5a65965c8b5 100644 --- a/arch/ia64/kernel/vmlinux.lds.S +++ b/arch/ia64/kernel/vmlinux.lds.S @@ -214,7 +214,12 @@ SECTIONS data : { } :data .data : AT(ADDR(.data) - LOAD_OFFSET) - { *(.data) *(.data1) *(.gnu.linkonce.d*) CONSTRUCTORS } + { + DATA_DATA + *(.data1) + *(.gnu.linkonce.d*) + CONSTRUCTORS + } . = ALIGN(16); /* gp must be 16-byte aligned for exc. table */ .got : AT(ADDR(.got) - LOAD_OFFSET) diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S index bb1a2f50255..4e2d5b9f0a9 100644 --- a/arch/m32r/kernel/vmlinux.lds.S +++ b/arch/m32r/kernel/vmlinux.lds.S @@ -50,7 +50,7 @@ SECTIONS .data : { /* Data */ *(.spu) *(.spi) - *(.data) + DATA_DATA CONSTRUCTORS } diff --git a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds index a65cef82697..78f139226a1 100644 --- a/arch/m68k/kernel/vmlinux-std.lds +++ b/arch/m68k/kernel/vmlinux-std.lds @@ -28,7 +28,7 @@ SECTIONS _etext = .; /* End of text section */ .data : { /* Data */ - *(.data) + DATA_DATA CONSTRUCTORS } diff --git a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds index fa44d6c49ac..c8999b2db23 100644 --- a/arch/m68k/kernel/vmlinux-sun3.lds +++ b/arch/m68k/kernel/vmlinux-sun3.lds @@ -23,7 +23,7 @@ SECTIONS _etext = .; /* End of text section */ .data : { /* Data */ - *(.data) + DATA_DATA CONSTRUCTORS . = ALIGN(16); /* Exception table */ __start___ex_table = .; diff --git a/arch/m68knommu/kernel/vmlinux.lds.S b/arch/m68knommu/kernel/vmlinux.lds.S index 6d4585eb6e7..07a0055602f 100644 --- a/arch/m68knommu/kernel/vmlinux.lds.S +++ b/arch/m68knommu/kernel/vmlinux.lds.S @@ -133,7 +133,7 @@ SECTIONS { .data DATA_ADDR : { . = ALIGN(4); _sdata = . ; - *(.data) + DATA_DATA . = ALIGN(8192) ; *(.data.init_task) _edata = . ; diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S index cfe4b67ef26..9b9992cd562 100644 --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S @@ -62,7 +62,7 @@ SECTIONS . = ALIGN(_PAGE_SIZE); *(.data.init_task) - *(.data) + DATA_DATA CONSTRUCTORS } diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S index 321de82fa86..4d96ba4b984 100644 --- a/arch/parisc/kernel/vmlinux.lds.S +++ b/arch/parisc/kernel/vmlinux.lds.S @@ -91,7 +91,7 @@ SECTIONS . = ALIGN(L1_CACHE_BYTES); .data : { /* Data */ - *(.data) + DATA_DATA CONSTRUCTORS } diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S index f2662098886..f7d7bf19e4f 100644 --- a/arch/powerpc/kernel/vmlinux.lds.S +++ b/arch/powerpc/kernel/vmlinux.lds.S @@ -168,7 +168,7 @@ SECTIONS #ifdef CONFIG_PPC32 .data : { - *(.data) + DATA_DATA *(.sdata) *(.got.plt) *(.got) } diff --git a/arch/ppc/kernel/vmlinux.lds.S b/arch/ppc/kernel/vmlinux.lds.S index 419ef7e8e38..19db8746ff1 100644 --- a/arch/ppc/kernel/vmlinux.lds.S +++ b/arch/ppc/kernel/vmlinux.lds.S @@ -67,7 +67,7 @@ SECTIONS . = ALIGN(4096); .data : { - *(.data) + DATA_DATA *(.data1) *(.sdata) *(.sdata2) diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S index 89c2ec5c85f..7158a804a5e 100644 --- a/arch/s390/kernel/vmlinux.lds.S +++ b/arch/s390/kernel/vmlinux.lds.S @@ -48,7 +48,7 @@ SECTIONS BUG_TABLE .data : { /* Data */ - *(.data) + DATA_DATA CONSTRUCTORS } diff --git a/arch/sh/kernel/vmlinux.lds.S b/arch/sh/kernel/vmlinux.lds.S index 2367869d214..4c5b57e9c3c 100644 --- a/arch/sh/kernel/vmlinux.lds.S +++ b/arch/sh/kernel/vmlinux.lds.S @@ -41,7 +41,7 @@ SECTIONS BUG_TABLE .data : { /* Data */ - *(.data) + DATA_DATA /* Align the initial ramdisk image (INITRD) on page boundaries. */ . = ALIGN(PAGE_SIZE); diff --git a/arch/sh64/kernel/vmlinux.lds.S b/arch/sh64/kernel/vmlinux.lds.S index fdf72ceff86..02aea86c590 100644 --- a/arch/sh64/kernel/vmlinux.lds.S +++ b/arch/sh64/kernel/vmlinux.lds.S @@ -78,7 +78,7 @@ SECTIONS _etext = .; /* End of text section */ .data : C_PHYS(.data) { /* Data */ - *(.data) + DATA_DATA CONSTRUCTORS } diff --git a/arch/sparc/kernel/vmlinux.lds.S b/arch/sparc/kernel/vmlinux.lds.S index 5cb600e2987..f75a1b82278 100644 --- a/arch/sparc/kernel/vmlinux.lds.S +++ b/arch/sparc/kernel/vmlinux.lds.S @@ -22,7 +22,7 @@ SECTIONS RODATA .data : { - *(.data) + DATA_DATA CONSTRUCTORS } .data1 : { *(.data1) } diff --git a/arch/sparc64/kernel/vmlinux.lds.S b/arch/sparc64/kernel/vmlinux.lds.S index f06da20533f..fb648de18a8 100644 --- a/arch/sparc64/kernel/vmlinux.lds.S +++ b/arch/sparc64/kernel/vmlinux.lds.S @@ -27,7 +27,7 @@ SECTIONS .data : { - *(.data) + DATA_DATA CONSTRUCTORS } .data1 : { *(.data1) } diff --git a/arch/um/kernel/dyn.lds.S b/arch/um/kernel/dyn.lds.S index ec8477d0feb..24547741b20 100644 --- a/arch/um/kernel/dyn.lds.S +++ b/arch/um/kernel/dyn.lds.S @@ -99,7 +99,8 @@ SECTIONS *(.data.init_task) . = ALIGN(KERNEL_STACK_SIZE); *(.data.init_irqstack) - *(.data .data.* .gnu.linkonce.d.*) + DATA_DATA + *(.data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S index 84351059c35..307b9373676 100644 --- a/arch/um/kernel/uml.lds.S +++ b/arch/um/kernel/uml.lds.S @@ -61,7 +61,7 @@ SECTIONS *(.data.init_task) . = ALIGN(KERNEL_STACK_SIZE); *(.data.init_irqstack) - *(.data) + DATA_DATA *(.gnu.linkonce.d*) CONSTRUCTORS } diff --git a/arch/v850/kernel/vmlinux.lds.S b/arch/v850/kernel/vmlinux.lds.S index 9e2b4bc06c6..6172599b4ce 100644 --- a/arch/v850/kernel/vmlinux.lds.S +++ b/arch/v850/kernel/vmlinux.lds.S @@ -113,7 +113,7 @@ /* Kernel data segment. */ #define DATA_CONTENTS \ __sdata = . ; \ - *(.data) \ + DATA_DATA \ *(.exit.data) /* 2.5 convention */ \ *(.data.exit) /* 2.4 convention */ \ . = ALIGN (16) ; \ diff --git a/arch/x86_64/kernel/vmlinux.lds.S b/arch/x86_64/kernel/vmlinux.lds.S index c77142d9fba..dbccfda8364 100644 --- a/arch/x86_64/kernel/vmlinux.lds.S +++ b/arch/x86_64/kernel/vmlinux.lds.S @@ -55,7 +55,7 @@ SECTIONS . = ALIGN(PAGE_SIZE); /* Align data segment to page size boundary */ /* Data */ .data : AT(ADDR(.data) - LOAD_OFFSET) { - *(.data) + DATA_DATA CONSTRUCTORS } :data diff --git a/arch/xtensa/kernel/vmlinux.lds.S b/arch/xtensa/kernel/vmlinux.lds.S index 7d2dfb286a9..4b7b4ff7997 100644 --- a/arch/xtensa/kernel/vmlinux.lds.S +++ b/arch/xtensa/kernel/vmlinux.lds.S @@ -145,7 +145,8 @@ SECTIONS _fdata = .; .data : { - *(.data) CONSTRUCTORS + DATA_DATA + CONSTRUCTORS . = ALIGN(XCHAL_ICACHE_LINESIZE); *(.data.cacheline_aligned) } diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index a464227a66b..52e2d69ee53 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -9,6 +9,10 @@ /* Align . to a 8 byte boundary equals to maximum function alignment. */ #define ALIGN_FUNCTION() . = ALIGN(8) +/* .data section */ +#define DATA_DATA \ + *(.data) + #define RODATA \ . = ALIGN(4096); \ .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ -- cgit v1.2.3-70-g09d2 From e8edc6e03a5c8562dc70a6d969f732bdb355a7e7 Mon Sep 17 00:00:00 2001 From: Alexey Dobriyan Date: Mon, 21 May 2007 01:22:52 +0400 Subject: Detach sched.h from mm.h First thing mm.h does is including sched.h solely for can_do_mlock() inline function which has "current" dereference inside. By dealing with can_do_mlock() mm.h can be detached from sched.h which is good. See below, why. This patch a) removes unconditional inclusion of sched.h from mm.h b) makes can_do_mlock() normal function in mm/mlock.c c) exports can_do_mlock() to not break compilation d) adds sched.h inclusions back to files that were getting it indirectly. e) adds less bloated headers to some files (asm/signal.h, jiffies.h) that were getting them indirectly Net result is: a) mm.h users would get less code to open, read, preprocess, parse, ... if they don't need sched.h b) sched.h stops being dependency for significant number of files: on x86_64 allmodconfig touching sched.h results in recompile of 4083 files, after patch it's only 3744 (-8.3%). Cross-compile tested on all arm defconfigs, all mips defconfigs, all powerpc defconfigs, alpha alpha-up arm i386 i386-up i386-defconfig i386-allnoconfig ia64 ia64-up m68k mips parisc parisc-up powerpc powerpc-up s390 s390-up sparc sparc-up sparc64 sparc64-up um-x86_64 x86_64 x86_64-up x86_64-defconfig x86_64-allnoconfig as well as my two usual configs. Signed-off-by: Alexey Dobriyan Signed-off-by: Linus Torvalds --- arch/arm/mach-iop13xx/pci.c | 3 ++- arch/arm/mm/mmap.c | 2 +- arch/arm/plat-iop/pci.c | 1 + arch/i386/kernel/cpu/cpufreq/speedstep-ich.c | 1 + arch/i386/kernel/cpu/cyrix.c | 1 + arch/i386/mm/mmap.c | 1 + arch/mips/kernel/unaligned.c | 2 +- arch/mips/mm/ioremap.c | 2 +- arch/parisc/kernel/cache.c | 2 +- arch/parisc/kernel/processor.c | 2 +- arch/powerpc/mm/mmap.c | 1 + arch/x86_64/ia32/mmap32.c | 1 + arch/x86_64/kernel/reboot.c | 1 + drivers/base/dmapool.c | 1 + drivers/char/agp/frontend.c | 1 + drivers/char/agp/generic.c | 1 + drivers/char/hangcheck-timer.c | 2 +- drivers/infiniband/core/cache.c | 1 + drivers/infiniband/core/device.c | 1 + drivers/infiniband/core/umem.c | 1 + drivers/infiniband/hw/mthca/mthca_cmd.c | 1 + drivers/infiniband/hw/mthca/mthca_cq.c | 1 + drivers/infiniband/hw/mthca/mthca_memfree.c | 1 + drivers/infiniband/hw/mthca/mthca_qp.c | 1 + drivers/infiniband/hw/mthca/mthca_srq.c | 1 + drivers/isdn/icn/icn.c | 1 + drivers/isdn/sc/message.c | 2 +- drivers/kvm/kvm.h | 1 + drivers/kvm/kvm_main.c | 1 + drivers/kvm/svm.c | 1 + drivers/kvm/vmx.c | 1 + drivers/oprofile/buffer_sync.c | 1 + drivers/pci/hotplug/ibmphp_hpc.c | 1 + drivers/pci/pcie/aer/aerdrv.h | 1 + drivers/scsi/megaraid/megaraid_mm.c | 2 +- fs/9p/vfs_addr.c | 1 + fs/9p/vfs_dentry.c | 1 + fs/9p/vfs_inode.c | 1 + fs/9p/vfs_super.c | 1 + fs/affs/inode.c | 2 +- fs/affs/super.c | 1 + fs/afs/callback.c | 1 + fs/afs/cell.c | 1 + fs/afs/dir.c | 1 + fs/afs/inode.c | 1 + fs/afs/internal.h | 1 + fs/afs/main.c | 1 + fs/afs/proc.c | 1 + fs/afs/security.c | 1 + fs/afs/super.c | 1 + fs/afs/vlocation.c | 1 + fs/afs/vnode.c | 1 + fs/afs/volume.c | 1 + fs/binfmt_misc.c | 2 +- fs/coda/cache.c | 1 + fs/coda/upcall.c | 2 +- fs/configfs/inode.c | 1 + fs/ecryptfs/messaging.c | 2 +- fs/fifo.c | 1 + fs/fuse/file.c | 1 + fs/fuse/inode.c | 1 + fs/gfs2/glock.h | 1 + fs/hfs/inode.c | 1 + fs/hfsplus/inode.c | 1 + fs/hpfs/buffer.c | 2 +- fs/hpfs/namei.c | 2 +- fs/hpfs/super.c | 1 + fs/minix/bitmap.c | 1 + fs/ncpfs/file.c | 1 + fs/ncpfs/ioctl.c | 1 + fs/nfs/client.c | 2 +- fs/nfs/dir.c | 1 + fs/nfs/file.c | 1 + fs/nfs/inode.c | 2 +- fs/nfs/pagelist.c | 1 + fs/nfsd/nfs4callback.c | 1 + fs/nfsd/nfs4recover.c | 2 +- fs/nfsd/nfssvc.c | 2 +- fs/ntfs/file.c | 1 + fs/ramfs/inode.c | 2 +- fs/smbfs/dir.c | 1 + fs/smbfs/file.c | 1 + fs/smbfs/inode.c | 1 + fs/smbfs/request.c | 1 + fs/sysfs/inode.c | 1 + fs/udf/file.c | 1 + fs/udf/namei.c | 1 + include/asm-arm/tlbflush.h | 2 ++ include/asm-i386/tlbflush.h | 2 ++ include/asm-mips/pgalloc.h | 1 + include/asm-parisc/mmu_context.h | 1 + include/asm-parisc/tlbflush.h | 1 + include/asm-powerpc/mmu_context.h | 1 + include/asm-x86_64/calgary.h | 1 + include/asm-x86_64/tlbflush.h | 1 + include/linux/mm.h | 11 ++--------- include/linux/smb_fs.h | 1 + include/linux/task_io_accounting_ops.h | 2 ++ include/linux/writeback.h | 2 ++ include/rdma/ib_umem.h | 1 + kernel/profile.c | 1 + kernel/time/ntp.c | 2 ++ lib/ioremap.c | 2 +- mm/filemap_xip.c | 1 + mm/madvise.c | 1 + mm/mlock.c | 11 +++++++++++ mm/msync.c | 1 + mm/vmstat.c | 1 + sound/sound_firmware.c | 1 + 109 files changed, 126 insertions(+), 30 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/arm/mach-iop13xx/pci.c b/arch/arm/mach-iop13xx/pci.c index 1c9e94c38b7..6baeb26c3aa 100644 --- a/arch/arm/mach-iop13xx/pci.c +++ b/arch/arm/mach-iop13xx/pci.c @@ -19,10 +19,11 @@ #include #include - +#include #include #include #include +#include #include #include diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c index 2c4c2422cd1..2728b0e7d2b 100644 --- a/arch/arm/mm/mmap.c +++ b/arch/arm/mm/mmap.c @@ -5,7 +5,7 @@ #include #include #include - +#include #include #define COLOUR_ALIGN(addr,pgoff) \ diff --git a/arch/arm/plat-iop/pci.c b/arch/arm/plat-iop/pci.c index e2744b7227c..7bf422978dd 100644 --- a/arch/arm/plat-iop/pci.c +++ b/arch/arm/plat-iop/pci.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include diff --git a/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c b/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c index b425cd3d183..698f980eb44 100644 --- a/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c +++ b/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c @@ -24,6 +24,7 @@ #include #include #include +#include #include "speedstep-lib.h" diff --git a/arch/i386/kernel/cpu/cyrix.c b/arch/i386/kernel/cpu/cyrix.c index 0b8411a864f..e88d2fba156 100644 --- a/arch/i386/kernel/cpu/cyrix.c +++ b/arch/i386/kernel/cpu/cyrix.c @@ -7,6 +7,7 @@ #include #include #include +#include #include "cpu.h" diff --git a/arch/i386/mm/mmap.c b/arch/i386/mm/mmap.c index e4730a1a43d..552e0847375 100644 --- a/arch/i386/mm/mmap.c +++ b/arch/i386/mm/mmap.c @@ -27,6 +27,7 @@ #include #include #include +#include /* * Top of mmap area (just below the process stack). diff --git a/arch/mips/kernel/unaligned.c b/arch/mips/kernel/unaligned.c index a7d49ae805b..18c4a3c45a3 100644 --- a/arch/mips/kernel/unaligned.c +++ b/arch/mips/kernel/unaligned.c @@ -76,7 +76,7 @@ #include #include #include - +#include #include #include #include diff --git a/arch/mips/mm/ioremap.c b/arch/mips/mm/ioremap.c index cea7d0ea36e..59945b9ee23 100644 --- a/arch/mips/mm/ioremap.c +++ b/arch/mips/mm/ioremap.c @@ -9,7 +9,7 @@ #include #include #include - +#include #include #include #include diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c index 0dc924ccceb..395bbce6499 100644 --- a/arch/parisc/kernel/cache.c +++ b/arch/parisc/kernel/cache.c @@ -18,7 +18,7 @@ #include #include #include - +#include #include #include #include diff --git a/arch/parisc/kernel/processor.c b/arch/parisc/kernel/processor.c index dd5d0cb6b34..566226d78bc 100644 --- a/arch/parisc/kernel/processor.c +++ b/arch/parisc/kernel/processor.c @@ -33,7 +33,7 @@ #include #include #include - +#include #include #include /* for register_parisc_driver() stuff */ #include diff --git a/arch/powerpc/mm/mmap.c b/arch/powerpc/mm/mmap.c index 972a8e884b9..86010fc7d3b 100644 --- a/arch/powerpc/mm/mmap.c +++ b/arch/powerpc/mm/mmap.c @@ -24,6 +24,7 @@ #include #include +#include /* * Top of mmap area (just below the process stack). diff --git a/arch/x86_64/ia32/mmap32.c b/arch/x86_64/ia32/mmap32.c index 079f4132575..e4b84b4a417 100644 --- a/arch/x86_64/ia32/mmap32.c +++ b/arch/x86_64/ia32/mmap32.c @@ -29,6 +29,7 @@ #include #include #include +#include /* * Top of mmap area (just below the process stack). diff --git a/arch/x86_64/kernel/reboot.c b/arch/x86_64/kernel/reboot.c index c116b54d422..7503068e788 100644 --- a/arch/x86_64/kernel/reboot.c +++ b/arch/x86_64/kernel/reboot.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/base/dmapool.c b/drivers/base/dmapool.c index 9406259754a..91970e9bb05 100644 --- a/drivers/base/dmapool.c +++ b/drivers/base/dmapool.c @@ -8,6 +8,7 @@ #include #include #include +#include /* * Pool allocator ... wraps the dma_alloc_coherent page allocator, so diff --git a/drivers/char/agp/frontend.c b/drivers/char/agp/frontend.c index 679d7f97243..c7ed617aa7f 100644 --- a/drivers/char/agp/frontend.c +++ b/drivers/char/agp/frontend.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include "agp.h" diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c index 45aeb917ec6..d535c406b31 100644 --- a/drivers/char/agp/generic.c +++ b/drivers/char/agp/generic.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/char/hangcheck-timer.c b/drivers/char/hangcheck-timer.c index f0e7263dfcd..0e8ceea5ea7 100644 --- a/drivers/char/hangcheck-timer.c +++ b/drivers/char/hangcheck-timer.c @@ -48,7 +48,7 @@ #include #include #include - +#include #define VERSION_STR "0.9.0" diff --git a/drivers/infiniband/core/cache.c b/drivers/infiniband/core/cache.c index 558c9a0fc8b..e85f7013de5 100644 --- a/drivers/infiniband/core/cache.c +++ b/drivers/infiniband/core/cache.c @@ -38,6 +38,7 @@ #include #include #include +#include #include diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c index 592c90aa318..bcecf4ddbf0 100644 --- a/drivers/infiniband/core/device.c +++ b/drivers/infiniband/core/device.c @@ -40,6 +40,7 @@ #include #include #include +#include #include "core_priv.h" diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c index f32ca5fbb26..96a16c0c08f 100644 --- a/drivers/infiniband/core/umem.c +++ b/drivers/infiniband/core/umem.c @@ -36,6 +36,7 @@ #include #include +#include #include "uverbs.h" diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c index 71314460b11..38102520ffb 100644 --- a/drivers/infiniband/hw/mthca/mthca_cmd.c +++ b/drivers/infiniband/hw/mthca/mthca_cmd.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include diff --git a/drivers/infiniband/hw/mthca/mthca_cq.c b/drivers/infiniband/hw/mthca/mthca_cq.c index ca224d018af..be6e1e03bda 100644 --- a/drivers/infiniband/hw/mthca/mthca_cq.c +++ b/drivers/infiniband/hw/mthca/mthca_cq.c @@ -37,6 +37,7 @@ */ #include +#include #include diff --git a/drivers/infiniband/hw/mthca/mthca_memfree.c b/drivers/infiniband/hw/mthca/mthca_memfree.c index 48f7c65e9ae..e61f3e62698 100644 --- a/drivers/infiniband/hw/mthca/mthca_memfree.c +++ b/drivers/infiniband/hw/mthca/mthca_memfree.c @@ -36,6 +36,7 @@ #include #include +#include #include diff --git a/drivers/infiniband/hw/mthca/mthca_qp.c b/drivers/infiniband/hw/mthca/mthca_qp.c index 72fabb822f1..2741ded8929 100644 --- a/drivers/infiniband/hw/mthca/mthca_qp.c +++ b/drivers/infiniband/hw/mthca/mthca_qp.c @@ -37,6 +37,7 @@ #include #include +#include #include diff --git a/drivers/infiniband/hw/mthca/mthca_srq.c b/drivers/infiniband/hw/mthca/mthca_srq.c index 61974b0296c..b8f05a52667 100644 --- a/drivers/infiniband/hw/mthca/mthca_srq.c +++ b/drivers/infiniband/hw/mthca/mthca_srq.c @@ -34,6 +34,7 @@ #include #include +#include #include diff --git a/drivers/isdn/icn/icn.c b/drivers/isdn/icn/icn.c index 1e699bcaba0..82d957bde29 100644 --- a/drivers/isdn/icn/icn.c +++ b/drivers/isdn/icn/icn.c @@ -12,6 +12,7 @@ #include "icn.h" #include #include +#include static int portbase = ICN_BASEADDR; static unsigned long membase = ICN_MEMADDR; diff --git a/drivers/isdn/sc/message.c b/drivers/isdn/sc/message.c index c5a307e3c49..0b4c4f15abd 100644 --- a/drivers/isdn/sc/message.c +++ b/drivers/isdn/sc/message.c @@ -16,7 +16,7 @@ * +1 (416) 297-8565 * +1 (416) 297-6433 Facsimile */ - +#include #include "includes.h" #include "hardware.h" #include "message.h" diff --git a/drivers/kvm/kvm.h b/drivers/kvm/kvm.h index 41634fde8e1..1c040d80c64 100644 --- a/drivers/kvm/kvm.h +++ b/drivers/kvm/kvm.h @@ -11,6 +11,7 @@ #include #include #include +#include #include "vmx.h" #include diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c index 0d892600ff0..da985b31b17 100644 --- a/drivers/kvm/kvm_main.c +++ b/drivers/kvm/kvm_main.c @@ -40,6 +40,7 @@ #include #include #include +#include #include "x86_emulate.h" #include "segment_descriptor.h" diff --git a/drivers/kvm/svm.c b/drivers/kvm/svm.c index 9c15f32eea1..fa17d6d4f0c 100644 --- a/drivers/kvm/svm.c +++ b/drivers/kvm/svm.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include "kvm_svm.h" diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c index 724db0027f0..e6e4d240b2a 100644 --- a/drivers/kvm/vmx.c +++ b/drivers/kvm/vmx.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include diff --git a/drivers/oprofile/buffer_sync.c b/drivers/oprofile/buffer_sync.c index 78c2e6e4b42..edd6de99572 100644 --- a/drivers/oprofile/buffer_sync.c +++ b/drivers/oprofile/buffer_sync.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "oprofile_stats.h" #include "event_buffer.h" diff --git a/drivers/pci/hotplug/ibmphp_hpc.c b/drivers/pci/hotplug/ibmphp_hpc.c index 46abaa8c41f..d06ccb69e41 100644 --- a/drivers/pci/hotplug/ibmphp_hpc.c +++ b/drivers/pci/hotplug/ibmphp_hpc.c @@ -34,6 +34,7 @@ #include #include #include +#include #include "ibmphp.h" diff --git a/drivers/pci/pcie/aer/aerdrv.h b/drivers/pci/pcie/aer/aerdrv.h index bf655dbaf8e..5cca394d599 100644 --- a/drivers/pci/pcie/aer/aerdrv.h +++ b/drivers/pci/pcie/aer/aerdrv.h @@ -8,6 +8,7 @@ #ifndef _AERDRV_H_ #define _AERDRV_H_ +#include #include #include diff --git a/drivers/scsi/megaraid/megaraid_mm.c b/drivers/scsi/megaraid/megaraid_mm.c index e075a52ac10..84d9c27133d 100644 --- a/drivers/scsi/megaraid/megaraid_mm.c +++ b/drivers/scsi/megaraid/megaraid_mm.c @@ -14,7 +14,7 @@ * * Common management module */ - +#include #include "megaraid_mm.h" diff --git a/fs/9p/vfs_addr.c b/fs/9p/vfs_addr.c index 3128aa948a4..9ac4ffe9ac7 100644 --- a/fs/9p/vfs_addr.c +++ b/fs/9p/vfs_addr.c @@ -32,6 +32,7 @@ #include #include #include +#include #include "debug.h" #include "v9fs.h" diff --git a/fs/9p/vfs_dentry.c b/fs/9p/vfs_dentry.c index 775e26e82cb..d93960429c0 100644 --- a/fs/9p/vfs_dentry.c +++ b/fs/9p/vfs_dentry.c @@ -33,6 +33,7 @@ #include #include #include +#include #include "debug.h" #include "v9fs.h" diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c index 7624821729a..c76cd8fa3f6 100644 --- a/fs/9p/vfs_inode.c +++ b/fs/9p/vfs_inode.c @@ -33,6 +33,7 @@ #include #include #include +#include #include "debug.h" #include "v9fs.h" diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c index 8eb9263a67b..7bdf8b32684 100644 --- a/fs/9p/vfs_super.c +++ b/fs/9p/vfs_super.c @@ -36,6 +36,7 @@ #include #include #include +#include #include "debug.h" #include "v9fs.h" diff --git a/fs/affs/inode.c b/fs/affs/inode.c index c5b9d73c084..4609a6c13fe 100644 --- a/fs/affs/inode.c +++ b/fs/affs/inode.c @@ -9,7 +9,7 @@ * * (C) 1991 Linus Torvalds - minix filesystem */ - +#include #include "affs.h" extern const struct inode_operations affs_symlink_inode_operations; diff --git a/fs/affs/super.c b/fs/affs/super.c index b800d451cd6..6d0ebc32153 100644 --- a/fs/affs/super.c +++ b/fs/affs/super.c @@ -15,6 +15,7 @@ #include #include #include +#include #include "affs.h" extern struct timezone sys_tz; diff --git a/fs/afs/callback.c b/fs/afs/callback.c index f64e40fefc0..bacf518c6fa 100644 --- a/fs/afs/callback.c +++ b/fs/afs/callback.c @@ -17,6 +17,7 @@ #include #include #include +#include #include "internal.h" unsigned afs_vnode_update_timeout = 10; diff --git a/fs/afs/cell.c b/fs/afs/cell.c index 9b1311a1df5..175a567db78 100644 --- a/fs/afs/cell.c +++ b/fs/afs/cell.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include "internal.h" diff --git a/fs/afs/dir.c b/fs/afs/dir.c index 719af4fb15d..546c59522eb 100644 --- a/fs/afs/dir.c +++ b/fs/afs/dir.c @@ -16,6 +16,7 @@ #include #include #include +#include #include "internal.h" static struct dentry *afs_lookup(struct inode *dir, struct dentry *dentry, diff --git a/fs/afs/inode.c b/fs/afs/inode.c index 47f5fed7195..d196840127c 100644 --- a/fs/afs/inode.c +++ b/fs/afs/inode.c @@ -19,6 +19,7 @@ #include #include #include +#include #include "internal.h" struct afs_iget_data { diff --git a/fs/afs/internal.h b/fs/afs/internal.h index 4953ba5a6f4..2dac3ad2c44 100644 --- a/fs/afs/internal.h +++ b/fs/afs/internal.h @@ -16,6 +16,7 @@ #include #include #include +#include #include "afs.h" #include "afs_vl.h" diff --git a/fs/afs/main.c b/fs/afs/main.c index f1f71ff7d5c..cd21195bbb2 100644 --- a/fs/afs/main.c +++ b/fs/afs/main.c @@ -13,6 +13,7 @@ #include #include #include +#include #include "internal.h" MODULE_DESCRIPTION("AFS Client File System"); diff --git a/fs/afs/proc.c b/fs/afs/proc.c index d5601f617cd..13df512aea9 100644 --- a/fs/afs/proc.c +++ b/fs/afs/proc.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include "internal.h" diff --git a/fs/afs/security.c b/fs/afs/security.c index e0ea88b63eb..566fe712c68 100644 --- a/fs/afs/security.c +++ b/fs/afs/security.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include "internal.h" diff --git a/fs/afs/super.c b/fs/afs/super.c index 8d47ad88a09..2e8496ba120 100644 --- a/fs/afs/super.c +++ b/fs/afs/super.c @@ -22,6 +22,7 @@ #include #include #include +#include #include "internal.h" #define AFS_FS_MAGIC 0x6B414653 /* 'kAFS' */ diff --git a/fs/afs/vlocation.c b/fs/afs/vlocation.c index 3370cdb7256..09e3ad0fc7c 100644 --- a/fs/afs/vlocation.c +++ b/fs/afs/vlocation.c @@ -12,6 +12,7 @@ #include #include #include +#include #include "internal.h" unsigned afs_vlocation_timeout = 10; /* volume location timeout in seconds */ diff --git a/fs/afs/vnode.c b/fs/afs/vnode.c index c36c98ce2c3..232c55dc245 100644 --- a/fs/afs/vnode.c +++ b/fs/afs/vnode.c @@ -14,6 +14,7 @@ #include #include #include +#include #include "internal.h" #if 0 diff --git a/fs/afs/volume.c b/fs/afs/volume.c index dd160cada45..8bab0e3437f 100644 --- a/fs/afs/volume.c +++ b/fs/afs/volume.c @@ -15,6 +15,7 @@ #include #include #include +#include #include "internal.h" static const char *afs_voltypes[] = { "R/W", "R/O", "BAK" }; diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c index 72d0b412c37..330fd3fe854 100644 --- a/fs/binfmt_misc.c +++ b/fs/binfmt_misc.c @@ -18,7 +18,7 @@ #include #include - +#include #include #include #include diff --git a/fs/coda/cache.c b/fs/coda/cache.c index 5d052713326..fcb88fa8d2f 100644 --- a/fs/coda/cache.c +++ b/fs/coda/cache.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include diff --git a/fs/coda/upcall.c b/fs/coda/upcall.c index a5b5e631ba6..5faacdb1a47 100644 --- a/fs/coda/upcall.c +++ b/fs/coda/upcall.c @@ -16,7 +16,7 @@ #include #include - +#include #include #include #include diff --git a/fs/configfs/inode.c b/fs/configfs/inode.c index 2ec9beac17c..ddc003a9d21 100644 --- a/fs/configfs/inode.c +++ b/fs/configfs/inode.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include "configfs_internal.h" diff --git a/fs/ecryptfs/messaging.c b/fs/ecryptfs/messaging.c index 3baf253be95..a9d87c47f72 100644 --- a/fs/ecryptfs/messaging.c +++ b/fs/ecryptfs/messaging.c @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. */ - +#include #include "ecryptfs_kernel.h" static LIST_HEAD(ecryptfs_msg_ctx_free_list); diff --git a/fs/fifo.c b/fs/fifo.c index 6e7df725678..9785e36f81e 100644 --- a/fs/fifo.c +++ b/fs/fifo.c @@ -12,6 +12,7 @@ #include #include #include +#include #include static void wait_for_partner(struct inode* inode, unsigned int *cnt) diff --git a/fs/fuse/file.c b/fs/fuse/file.c index acfad65a6e8..d0ed60bc318 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -11,6 +11,7 @@ #include #include #include +#include static const struct file_operations fuse_direct_io_file_operations; diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c index c3a2ad0da43..78f7a1dc90d 100644 --- a/fs/fuse/inode.c +++ b/fs/fuse/inode.c @@ -17,6 +17,7 @@ #include #include #include +#include MODULE_AUTHOR("Miklos Szeredi "); MODULE_DESCRIPTION("Filesystem in Userspace"); diff --git a/fs/gfs2/glock.h b/fs/gfs2/glock.h index 11477ca3a3c..b3e152db70c 100644 --- a/fs/gfs2/glock.h +++ b/fs/gfs2/glock.h @@ -10,6 +10,7 @@ #ifndef __GLOCK_DOT_H__ #define __GLOCK_DOT_H__ +#include #include "incore.h" /* Flags for lock requests; used in gfs2_holder gh_flag field. diff --git a/fs/hfs/inode.c b/fs/hfs/inode.c index fafcba59387..9a934db0bd8 100644 --- a/fs/hfs/inode.c +++ b/fs/hfs/inode.c @@ -13,6 +13,7 @@ #include #include +#include #include "hfs_fs.h" #include "btree.h" diff --git a/fs/hfsplus/inode.c b/fs/hfsplus/inode.c index 642012ac337..45dab5d6cc1 100644 --- a/fs/hfsplus/inode.c +++ b/fs/hfsplus/inode.c @@ -12,6 +12,7 @@ #include #include #include +#include #include "hfsplus_fs.h" #include "hfsplus_raw.h" diff --git a/fs/hpfs/buffer.c b/fs/hpfs/buffer.c index b52b7381d10..b6fca543544 100644 --- a/fs/hpfs/buffer.c +++ b/fs/hpfs/buffer.c @@ -5,7 +5,7 @@ * * general buffer i/o */ - +#include #include "hpfs_fn.h" void hpfs_lock_creation(struct super_block *s) diff --git a/fs/hpfs/namei.c b/fs/hpfs/namei.c index 9953cf9a2f1..d256559b410 100644 --- a/fs/hpfs/namei.c +++ b/fs/hpfs/namei.c @@ -5,7 +5,7 @@ * * adding & removing files & directories */ - +#include #include "hpfs_fn.h" static int hpfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c index fca1165d719..29cc34abb2e 100644 --- a/fs/hpfs/super.c +++ b/fs/hpfs/super.c @@ -12,6 +12,7 @@ #include #include #include +#include /* Mark the filesystem dirty, so that chkdsk checks it when os/2 booted */ diff --git a/fs/minix/bitmap.c b/fs/minix/bitmap.c index c4a554df7b7..99a12f12776 100644 --- a/fs/minix/bitmap.c +++ b/fs/minix/bitmap.c @@ -15,6 +15,7 @@ #include #include #include +#include static int nibblemap[] = { 4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0 }; diff --git a/fs/ncpfs/file.c b/fs/ncpfs/file.c index addfd3147ea..d3152f8d95c 100644 --- a/fs/ncpfs/file.c +++ b/fs/ncpfs/file.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include "ncplib_kernel.h" diff --git a/fs/ncpfs/ioctl.c b/fs/ncpfs/ioctl.c index 8843a83d4ef..c67b4bdcf71 100644 --- a/fs/ncpfs/ioctl.c +++ b/fs/ncpfs/ioctl.c @@ -17,6 +17,7 @@ #include #include #include +#include #include diff --git a/fs/nfs/client.c b/fs/nfs/client.c index 50c6821bad2..881fa490092 100644 --- a/fs/nfs/client.c +++ b/fs/nfs/client.c @@ -12,7 +12,7 @@ #include #include - +#include #include #include #include diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index ac92e45432a..c27258b5d3e 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -33,6 +33,7 @@ #include #include #include +#include #include "nfs4_fs.h" #include "delegation.h" diff --git a/fs/nfs/file.c b/fs/nfs/file.c index 5eaee6dd040..9eb8eb4e4a0 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index 2b26ad7c977..bd9f5a83659 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c @@ -15,7 +15,7 @@ #include #include - +#include #include #include #include diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c index e12054c86d0..cbdd1c6aaa9 100644 --- a/fs/nfs/pagelist.c +++ b/fs/nfs/pagelist.c @@ -11,6 +11,7 @@ #include #include +#include #include #include #include diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c index 32ffea033c7..864090edc28 100644 --- a/fs/nfsd/nfs4callback.c +++ b/fs/nfsd/nfs4callback.c @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c index c7774e3a946..ebd03cc0747 100644 --- a/fs/nfsd/nfs4recover.c +++ b/fs/nfsd/nfs4recover.c @@ -45,7 +45,7 @@ #include #include #include - +#include #define NFSDDBG_FACILITY NFSDDBG_PROC diff --git a/fs/nfsd/nfssvc.c b/fs/nfsd/nfssvc.c index d7759ce6ed9..ff55950efb4 100644 --- a/fs/nfsd/nfssvc.c +++ b/fs/nfsd/nfssvc.c @@ -9,7 +9,7 @@ */ #include - +#include #include #include #include diff --git a/fs/ntfs/file.c b/fs/ntfs/file.c index 39a1669506b..7ed56390b58 100644 --- a/fs/ntfs/file.c +++ b/fs/ntfs/file.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include diff --git a/fs/ramfs/inode.c b/fs/ramfs/inode.c index 4ace5d72eae..d40d22b347b 100644 --- a/fs/ramfs/inode.c +++ b/fs/ramfs/inode.c @@ -32,7 +32,7 @@ #include #include #include - +#include #include #include "internal.h" diff --git a/fs/smbfs/dir.c b/fs/smbfs/dir.c index 50136b1a3ec..48da4fa6b7d 100644 --- a/fs/smbfs/dir.c +++ b/fs/smbfs/dir.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include diff --git a/fs/smbfs/file.c b/fs/smbfs/file.c index f161797160c..aea3f8aa54c 100644 --- a/fs/smbfs/file.c +++ b/fs/smbfs/file.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include diff --git a/fs/smbfs/inode.c b/fs/smbfs/inode.c index 5c9243a23b9..6724a6cf01f 100644 --- a/fs/smbfs/inode.c +++ b/fs/smbfs/inode.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include diff --git a/fs/smbfs/request.c b/fs/smbfs/request.c index c288fbe7953..3f54a0f80fa 100644 --- a/fs/smbfs/request.c +++ b/fs/smbfs/request.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c index 4de5c6b8991..bdd30e74de6 100644 --- a/fs/sysfs/inode.c +++ b/fs/sysfs/inode.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include "sysfs.h" diff --git a/fs/udf/file.c b/fs/udf/file.c index 40d5047defe..51b5764685e 100644 --- a/fs/udf/file.c +++ b/fs/udf/file.c @@ -36,6 +36,7 @@ #include #include #include +#include #include "udf_i.h" #include "udf_sb.h" diff --git a/fs/udf/namei.c b/fs/udf/namei.c index 91df4928651..51fe307dc0e 100644 --- a/fs/udf/namei.c +++ b/fs/udf/namei.c @@ -30,6 +30,7 @@ #include #include #include +#include static inline int udf_match(int len1, const char *name1, int len2, const char *name2) { diff --git a/include/asm-arm/tlbflush.h b/include/asm-arm/tlbflush.h index 08c6991dc9c..ccd0de010e8 100644 --- a/include/asm-arm/tlbflush.h +++ b/include/asm-arm/tlbflush.h @@ -144,6 +144,8 @@ #ifndef __ASSEMBLY__ +#include + struct cpu_tlb_fns { void (*flush_user_range)(unsigned long, unsigned long, struct vm_area_struct *); void (*flush_kern_range)(unsigned long, unsigned long); diff --git a/include/asm-i386/tlbflush.h b/include/asm-i386/tlbflush.h index db7f77eacfa..fc525c5cd5a 100644 --- a/include/asm-i386/tlbflush.h +++ b/include/asm-i386/tlbflush.h @@ -90,6 +90,8 @@ #ifndef CONFIG_SMP +#include + #define flush_tlb() __flush_tlb() #define flush_tlb_all() __flush_tlb_all() #define local_flush_tlb() __flush_tlb() diff --git a/include/asm-mips/pgalloc.h b/include/asm-mips/pgalloc.h index 5685d4fc788..9fb57c03521 100644 --- a/include/asm-mips/pgalloc.h +++ b/include/asm-mips/pgalloc.h @@ -11,6 +11,7 @@ #include #include +#include static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) diff --git a/include/asm-parisc/mmu_context.h b/include/asm-parisc/mmu_context.h index bad690298f0..85856c74ad1 100644 --- a/include/asm-parisc/mmu_context.h +++ b/include/asm-parisc/mmu_context.h @@ -2,6 +2,7 @@ #define __PARISC_MMU_CONTEXT_H #include +#include #include #include #include diff --git a/include/asm-parisc/tlbflush.h b/include/asm-parisc/tlbflush.h index 3313da9ea00..270cf309772 100644 --- a/include/asm-parisc/tlbflush.h +++ b/include/asm-parisc/tlbflush.h @@ -4,6 +4,7 @@ /* TLB flushing routines.... */ #include +#include #include diff --git a/include/asm-powerpc/mmu_context.h b/include/asm-powerpc/mmu_context.h index c0d7795e3d2..40c9e5a13ff 100644 --- a/include/asm-powerpc/mmu_context.h +++ b/include/asm-powerpc/mmu_context.h @@ -8,6 +8,7 @@ #include #include +#include #include #include #include diff --git a/include/asm-x86_64/calgary.h b/include/asm-x86_64/calgary.h index 7ee90064571..4d5747a0923 100644 --- a/include/asm-x86_64/calgary.h +++ b/include/asm-x86_64/calgary.h @@ -27,6 +27,7 @@ #include #include #include +#include #include struct iommu_table { diff --git a/include/asm-x86_64/tlbflush.h b/include/asm-x86_64/tlbflush.h index 512401b8725..8516225a838 100644 --- a/include/asm-x86_64/tlbflush.h +++ b/include/asm-x86_64/tlbflush.h @@ -2,6 +2,7 @@ #define _X8664_TLBFLUSH_H #include +#include #include #include diff --git a/include/linux/mm.h b/include/linux/mm.h index 4670ebd1f62..e4183c6c7de 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1,7 +1,6 @@ #ifndef _LINUX_MM_H #define _LINUX_MM_H -#include #include #include @@ -20,6 +19,7 @@ struct mempolicy; struct anon_vma; +struct user_struct; #ifndef CONFIG_DISCONTIGMEM /* Don't use mapnrs, do it properly */ extern unsigned long max_mapnr; @@ -717,14 +717,7 @@ extern unsigned long shmem_get_unmapped_area(struct file *file, unsigned long flags); #endif -static inline int can_do_mlock(void) -{ - if (capable(CAP_IPC_LOCK)) - return 1; - if (current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur != 0) - return 1; - return 0; -} +extern int can_do_mlock(void); extern int user_shm_lock(size_t, struct user_struct *); extern void user_shm_unlock(size_t, struct user_struct *); diff --git a/include/linux/smb_fs.h b/include/linux/smb_fs.h index 13b3af54786..6b51a48e899 100644 --- a/include/linux/smb_fs.h +++ b/include/linux/smb_fs.h @@ -9,6 +9,7 @@ #ifndef _LINUX_SMB_FS_H #define _LINUX_SMB_FS_H +#include #include /* diff --git a/include/linux/task_io_accounting_ops.h b/include/linux/task_io_accounting_ops.h index 1218733ec6b..ff46c6fad79 100644 --- a/include/linux/task_io_accounting_ops.h +++ b/include/linux/task_io_accounting_ops.h @@ -4,6 +4,8 @@ #ifndef __TASK_IO_ACCOUNTING_OPS_INCLUDED #define __TASK_IO_ACCOUNTING_OPS_INCLUDED +#include + #ifdef CONFIG_TASK_IO_ACCOUNTING static inline void task_io_account_read(size_t bytes) { diff --git a/include/linux/writeback.h b/include/linux/writeback.h index 050915b5957..4ef4d22e5e4 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h @@ -4,6 +4,8 @@ #ifndef WRITEBACK_H #define WRITEBACK_H +#include + struct backing_dev_info; extern spinlock_t inode_lock; diff --git a/include/rdma/ib_umem.h b/include/rdma/ib_umem.h index b3a36f7d79e..c533d6c7903 100644 --- a/include/rdma/ib_umem.h +++ b/include/rdma/ib_umem.h @@ -35,6 +35,7 @@ #include #include +#include struct ib_ucontext; diff --git a/kernel/profile.c b/kernel/profile.c index cc91b9bf759..5b20fe977be 100644 --- a/kernel/profile.c +++ b/kernel/profile.c @@ -26,6 +26,7 @@ #include #include #include +#include struct profile_hit { u32 pc, hits; diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c index cb25649c6f5..87aa5ff931e 100644 --- a/kernel/time/ntp.c +++ b/kernel/time/ntp.c @@ -11,6 +11,8 @@ #include #include #include +#include +#include #include #include diff --git a/lib/ioremap.c b/lib/ioremap.c index a9e4415b02d..760521417b6 100644 --- a/lib/ioremap.c +++ b/lib/ioremap.c @@ -7,7 +7,7 @@ */ #include #include - +#include #include #include diff --git a/mm/filemap_xip.c b/mm/filemap_xip.c index 1b49dab9b25..fa360e566d8 100644 --- a/mm/filemap_xip.c +++ b/mm/filemap_xip.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include "filemap.h" diff --git a/mm/madvise.c b/mm/madvise.c index e75096b5a6d..60542d006ec 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -10,6 +10,7 @@ #include #include #include +#include /* * Any behaviour which results in changes to the vma->vm_flags needs to diff --git a/mm/mlock.c b/mm/mlock.c index 3446b7ef731..4d3fea267e0 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -10,7 +10,18 @@ #include #include #include +#include +#include +int can_do_mlock(void) +{ + if (capable(CAP_IPC_LOCK)) + return 1; + if (current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur != 0) + return 1; + return 0; +} +EXPORT_SYMBOL(can_do_mlock); static int mlock_fixup(struct vm_area_struct *vma, struct vm_area_struct **prev, unsigned long start, unsigned long end, unsigned int newflags) diff --git a/mm/msync.c b/mm/msync.c index 358d73cf7b7..144a7570535 100644 --- a/mm/msync.c +++ b/mm/msync.c @@ -12,6 +12,7 @@ #include #include #include +#include /* * MS_SYNC syncs the entire file - including mappings. diff --git a/mm/vmstat.c b/mm/vmstat.c index 8faf27e5aa9..38254297a49 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -12,6 +12,7 @@ #include #include #include +#include #ifdef CONFIG_VM_EVENT_COUNTERS DEFINE_PER_CPU(struct vm_event_state, vm_event_states) = {{0}}; diff --git a/sound/sound_firmware.c b/sound/sound_firmware.c index 3304344713a..96deaefaa89 100644 --- a/sound/sound_firmware.c +++ b/sound/sound_firmware.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include "oss/sound_firmware.h" -- cgit v1.2.3-70-g09d2 From d3fdaed9e973687f088c9c156a6e20870386e0b7 Mon Sep 17 00:00:00 2001 From: Hugh Dickins Date: Sat, 19 May 2007 02:47:01 +1000 Subject: [POWERPC] Fix smp_call_function to be preempt-safe smp_call_function_map() was not safe against preemption to another cpu: its test for removing self from map was outside the spinlock. Rearrange it a little to fix that. smp_call_function_single() was also wrong: now get_cpu() before excluding self, as other architectures do. Signed-off-by: Hugh Dickins Signed-off-by: Paul Mackerras --- arch/powerpc/kernel/smp.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index 22f1ef1b310..d577b71db37 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c @@ -201,13 +201,6 @@ int smp_call_function_map(void (*func) (void *info), void *info, int nonatomic, /* Can deadlock when called with interrupts disabled */ WARN_ON(irqs_disabled()); - /* remove 'self' from the map */ - if (cpu_isset(smp_processor_id(), map)) - cpu_clear(smp_processor_id(), map); - - /* sanity check the map, remove any non-online processors. */ - cpus_and(map, map, cpu_online_map); - if (unlikely(smp_ops == NULL)) return ret; @@ -222,10 +215,17 @@ int smp_call_function_map(void (*func) (void *info), void *info, int nonatomic, /* Must grab online cpu count with preempt disabled, otherwise * it can change. */ num_cpus = num_online_cpus() - 1; - if (!num_cpus || cpus_empty(map)) { - ret = 0; - goto out; - } + if (!num_cpus) + goto done; + + /* remove 'self' from the map */ + if (cpu_isset(smp_processor_id(), map)) + cpu_clear(smp_processor_id(), map); + + /* sanity check the map, remove any non-online processors. */ + cpus_and(map, map, cpu_online_map); + if (cpus_empty(map)) + goto done; call_data = &data; smp_wmb(); @@ -263,6 +263,7 @@ int smp_call_function_map(void (*func) (void *info), void *info, int nonatomic, } } + done: ret = 0; out: @@ -282,16 +283,17 @@ EXPORT_SYMBOL(smp_call_function); int smp_call_function_single(int cpu, void (*func) (void *info), void *info, int nonatomic, int wait) { - cpumask_t map=CPU_MASK_NONE; + cpumask_t map = CPU_MASK_NONE; + int ret = -EBUSY; if (!cpu_online(cpu)) return -EINVAL; - if (cpu == smp_processor_id()) - return -EBUSY; - cpu_set(cpu, map); - return smp_call_function_map(func,info,nonatomic,wait,map); + if (cpu != get_cpu()) + ret = smp_call_function_map(func,info,nonatomic,wait,map); + put_cpu(); + return ret; } EXPORT_SYMBOL(smp_call_function_single); -- cgit v1.2.3-70-g09d2 From 2fae4985a135ca5d7d9bba17d45d674c099621b4 Mon Sep 17 00:00:00 2001 From: Anton Blanchard Date: Sat, 19 May 2007 15:22:41 +1000 Subject: [POWERPC] Add missing pmc_type fields in cpu_table A number of cpu_table entries were missing the pmc_type field, which means that the sysfs entries for the performance monitor counters don't get created. This adds them. Signed-off-by: Anton Blanchard Signed-off-by: Paul Mackerras --- arch/powerpc/kernel/cputable.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'arch/powerpc') diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index 6ef87fb90b8..b2b5d664d32 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c @@ -235,6 +235,7 @@ static struct cpu_spec cpu_specs[] = { .icache_bsize = 128, .dcache_bsize = 128, .num_pmcs = 8, + .pmc_type = PPC_PMC_IBM, .cpu_setup = __setup_cpu_ppc970, .cpu_restore = __restore_cpu_ppc970, .oprofile_cpu_type = "ppc64/970MP", @@ -251,6 +252,7 @@ static struct cpu_spec cpu_specs[] = { .icache_bsize = 128, .dcache_bsize = 128, .num_pmcs = 8, + .pmc_type = PPC_PMC_IBM, .cpu_setup = __setup_cpu_ppc970MP, .cpu_restore = __restore_cpu_ppc970, .oprofile_cpu_type = "ppc64/970MP", @@ -317,6 +319,7 @@ static struct cpu_spec cpu_specs[] = { .icache_bsize = 128, .dcache_bsize = 128, .num_pmcs = 6, + .pmc_type = PPC_PMC_IBM, .oprofile_cpu_type = "ppc64/power6", .oprofile_type = PPC_OPROFILE_POWER4, .oprofile_mmcra_sihv = POWER6_MMCRA_SIHV, @@ -335,6 +338,7 @@ static struct cpu_spec cpu_specs[] = { .icache_bsize = 128, .dcache_bsize = 128, .num_pmcs = 6, + .pmc_type = PPC_PMC_IBM, .oprofile_cpu_type = "ppc64/power6", .oprofile_type = PPC_OPROFILE_POWER4, .oprofile_mmcra_sihv = POWER6_MMCRA_SIHV, -- cgit v1.2.3-70-g09d2 From 177e9ea49deea238f59bb0b1708cfc60b75828fb Mon Sep 17 00:00:00 2001 From: Anton Blanchard Date: Sun, 20 May 2007 03:13:43 +1000 Subject: [POWERPC] Fix typo: MMCR0_PMA0 != MMCR0_PMAO pmc.c has: #ifndef MMCR0_PMA0 #define MMCR0_PMA0 0 This one took a while to find. Unfortunately its the wrong define (number 0 vs letter O). Its probably worth removing this override, since if our includes get screwed up we will have the same (hard to debug) failure. Fix it simply for now, so that we can backport to stable. Signed-off-by: Anton Blanchard Signed-off-by: Paul Mackerras --- arch/powerpc/kernel/pmc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/kernel/pmc.c b/arch/powerpc/kernel/pmc.c index 24d7b7c99bb..ea04e0ab3f2 100644 --- a/arch/powerpc/kernel/pmc.c +++ b/arch/powerpc/kernel/pmc.c @@ -20,8 +20,8 @@ #include #include -#ifndef MMCR0_PMA0 -#define MMCR0_PMA0 0 +#ifndef MMCR0_PMAO +#define MMCR0_PMAO 0 #endif static void dummy_perf(struct pt_regs *regs) @@ -30,7 +30,7 @@ static void dummy_perf(struct pt_regs *regs) mtpmr(PMRN_PMGC0, mfpmr(PMRN_PMGC0) & ~PMGC0_PMIE); #elif defined(CONFIG_PPC64) || defined(CONFIG_6xx) if (cur_cpu_spec->pmc_type == PPC_PMC_IBM) - mtspr(SPRN_MMCR0, mfspr(SPRN_MMCR0) & ~(MMCR0_PMXE|MMCR0_PMA0)); + mtspr(SPRN_MMCR0, mfspr(SPRN_MMCR0) & ~(MMCR0_PMXE|MMCR0_PMAO)); #else mtspr(SPRN_MMCR0, mfspr(SPRN_MMCR0) & ~MMCR0_PMXE); #endif -- cgit v1.2.3-70-g09d2 From 832a791c580a86cbeea5bb12a984d95b1f458539 Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Tue, 22 May 2007 14:33:05 +1000 Subject: [POWERPC] Fix powerpc vmlinux.lds.S Sam's recent change in 7664709b44a13e2e0b545e2dd8e7b8797a1748dc broke things for us because we ended up with *(.text.*) before *(.text), whereas previously *(.text) was first. This was important because the start of the text section contains the kernel entry point. In fact, we don't need that *(.text.*) thing anymore and it incorrectly matched .text.init.refok, thus putting it before .text. .. ouch ! Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras --- arch/powerpc/kernel/vmlinux.lds.S | 1 - 1 file changed, 1 deletion(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S index f7d7bf19e4f..21c39ff2dc3 100644 --- a/arch/powerpc/kernel/vmlinux.lds.S +++ b/arch/powerpc/kernel/vmlinux.lds.S @@ -34,7 +34,6 @@ SECTIONS /* Text and gots */ .text : { _text = .; - *(.text.*) TEXT_TEXT SCHED_TEXT LOCK_TEXT -- cgit v1.2.3-70-g09d2 From 5453e7723b95958f4591b2e0063573d8d53e7699 Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Tue, 22 May 2007 16:25:51 +1000 Subject: [POWERPC] Fix warning in 32-bit builds with CONFIG_HIGHMEM Some missing fixup for the removal of 4 level fixup header. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras --- arch/powerpc/mm/mem.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index 246eeea40ec..0266a94d83b 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c @@ -310,11 +310,12 @@ void __init paging_init(void) #ifdef CONFIG_HIGHMEM map_page(PKMAP_BASE, 0, 0); /* XXX gross */ - pkmap_page_table = pte_offset_kernel(pmd_offset(pgd_offset_k - (PKMAP_BASE), PKMAP_BASE), PKMAP_BASE); + pkmap_page_table = pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k + (PKMAP_BASE), PKMAP_BASE), PKMAP_BASE), PKMAP_BASE); map_page(KMAP_FIX_BEGIN, 0, 0); /* XXX gross */ - kmap_pte = pte_offset_kernel(pmd_offset(pgd_offset_k - (KMAP_FIX_BEGIN), KMAP_FIX_BEGIN), KMAP_FIX_BEGIN); + kmap_pte = pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k + (KMAP_FIX_BEGIN), KMAP_FIX_BEGIN), KMAP_FIX_BEGIN), + KMAP_FIX_BEGIN); kmap_prot = PAGE_KERNEL; #endif /* CONFIG_HIGHMEM */ -- cgit v1.2.3-70-g09d2 From f2fb9eb3482c9ab3cca84cf0c80f646ce9aeb4de Mon Sep 17 00:00:00 2001 From: Domen Puncer Date: Mon, 21 May 2007 08:56:00 +0200 Subject: [POWERPC] 52xx: unbreak lite5200 dts (_pic vs. -pic) Unbreak lite5200 dts, which were broken by 5c1992f83304cf2d56934dd6c06709b96e1b0c81 Signed-off-by: Domen Puncer Acked-by: Sylvain Munaut Signed-off-by: Kumar Gala --- arch/powerpc/boot/dts/lite5200.dts | 2 +- arch/powerpc/boot/dts/lite5200b.dts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/boot/dts/lite5200.dts b/arch/powerpc/boot/dts/lite5200.dts index eae68ab1177..d29308fe4c2 100644 --- a/arch/powerpc/boot/dts/lite5200.dts +++ b/arch/powerpc/boot/dts/lite5200.dts @@ -67,7 +67,7 @@ interrupt-controller; #interrupt-cells = <3>; device_type = "interrupt-controller"; - compatible = "mpc5200_pic"; + compatible = "mpc5200-pic"; reg = <500 80>; built-in; }; diff --git a/arch/powerpc/boot/dts/lite5200b.dts b/arch/powerpc/boot/dts/lite5200b.dts index 5185625a941..f242531f045 100644 --- a/arch/powerpc/boot/dts/lite5200b.dts +++ b/arch/powerpc/boot/dts/lite5200b.dts @@ -67,7 +67,7 @@ interrupt-controller; #interrupt-cells = <3>; device_type = "interrupt-controller"; - compatible = "mpc5200b-pic\0mpc5200_pic"; + compatible = "mpc5200b-pic\0mpc5200-pic"; reg = <500 80>; built-in; }; -- cgit v1.2.3-70-g09d2 From 90c615bc42886f23a6112733a949d0f6fbe343b6 Mon Sep 17 00:00:00 2001 From: Timur Tabi Date: Wed, 23 May 2007 07:23:55 -0500 Subject: [POWERPC] QE: fix Kconfig 'select' warning with UCC_FAST The UCC_GETH Kconfig option in drivers/net/Kconfig had a line to select the UCC_FAST option is arch/powerpc/sysdev/qe_lib/Kconfig, which is only used on PowerPC builds. On other architectures, this would generated a warning. The fix is to have UCC_FAST depend on UCC_GETH. Signed-off-by: Timur Tabi Signed-off-by: Andrew Morton Signed-off-by: Kumar Gala --- arch/powerpc/sysdev/qe_lib/Kconfig | 4 +--- drivers/net/Kconfig | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/sysdev/qe_lib/Kconfig b/arch/powerpc/sysdev/qe_lib/Kconfig index 887739f3bad..f611d344a12 100644 --- a/arch/powerpc/sysdev/qe_lib/Kconfig +++ b/arch/powerpc/sysdev/qe_lib/Kconfig @@ -5,15 +5,13 @@ config UCC_SLOW bool default n - select UCC help This option provides qe_lib support to UCC slow protocols: UART, BISYNC, QMC config UCC_FAST bool - default n - select UCC + default y if UCC_GETH help This option provides qe_lib support to UCC fast protocols: HDLC, Ethernet, ATM, transparent diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index c5baa197bc0..3b204bac1a1 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -2280,7 +2280,6 @@ config GFAR_NAPI config UCC_GETH tristate "Freescale QE Gigabit Ethernet" depends on QUICC_ENGINE - select UCC_FAST help This driver supports the Gigabit Ethernet mode of the QUICC Engine, which is available on some Freescale SOCs. -- cgit v1.2.3-70-g09d2 From 405861a0429113f8e426092af09dd05ec6209410 Mon Sep 17 00:00:00 2001 From: Li Yang Date: Wed, 23 May 2007 11:28:03 +0800 Subject: [POWERPC] Fix Section mismatch warnings This patch fix the following Section mismatch warnings in powerpc code. WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.data:mv643xx_eth_pd_devs from .text between 'mv643xx_eth_add_pds' (at offset 0x9ed2) and 'gg2_read_config' WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.data:mv643xx_eth_pd_devs from .text between 'mv643xx_eth_add_pds' (at offset 0x9ed6) and 'gg2_read_config' WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.text:note_scsi_host from __ksymtab between '__ksymtab_note_scsi_host' (at offset 0x8) and '__ksymtab_sys_ctrler' Signed-off-by: Li Yang Signed-off-by: Kumar Gala --- arch/powerpc/platforms/chrp/pegasos_eth.c | 2 +- arch/powerpc/platforms/powermac/setup.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/platforms/chrp/pegasos_eth.c b/arch/powerpc/platforms/chrp/pegasos_eth.c index 71045677559..5bcc58d9a4d 100644 --- a/arch/powerpc/platforms/chrp/pegasos_eth.c +++ b/arch/powerpc/platforms/chrp/pegasos_eth.c @@ -169,7 +169,7 @@ static int Enable_SRAM(void) /***********/ /***********/ -int mv643xx_eth_add_pds(void) +static int __init mv643xx_eth_add_pds(void) { int ret = 0; static struct pci_device_id pci_marvell_mv64360[] = { diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c index a410bc76a8a..07b1c4ec428 100644 --- a/arch/powerpc/platforms/powermac/setup.c +++ b/arch/powerpc/platforms/powermac/setup.c @@ -384,7 +384,7 @@ int boot_part; static dev_t boot_dev; #ifdef CONFIG_SCSI -void __init note_scsi_host(struct device_node *node, void *host) +void note_scsi_host(struct device_node *node, void *host) { int l; char *p; -- cgit v1.2.3-70-g09d2 From f1aed92464def83fc3677cade823cad71cf5f0d4 Mon Sep 17 00:00:00 2001 From: Kumar Gala Date: Wed, 23 May 2007 07:49:37 -0500 Subject: [POWERPC] Fix modpost warning Mark pte_alloc_one_kernel as __init_refok to fix the following warning: WARNING: arch/powerpc/mm/built-in.o(.text+0x1068): Section mismatch: reference to .init.text:early_get_page (between 'pte_alloc_one_kernel' and 'steal_context') Signed-off-by: Kumar Gala --- arch/powerpc/mm/pgtable_32.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c index d8232b7a08f..f6ae1a57d65 100644 --- a/arch/powerpc/mm/pgtable_32.c +++ b/arch/powerpc/mm/pgtable_32.c @@ -93,7 +93,7 @@ void pgd_free(pgd_t *pgd) free_pages((unsigned long)pgd, PGDIR_ORDER); } -pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) +__init_refok pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) { pte_t *pte; extern int mem_init_done; -- cgit v1.2.3-70-g09d2 From 58da10bb3fe680a197e83d5eccb5265a721c98e2 Mon Sep 17 00:00:00 2001 From: Kumar Gala Date: Wed, 23 May 2007 09:51:46 -0500 Subject: [POWERPC] Fix Kconfig warning Fix config warning related to select usage: drivers/macintosh/Kconfig:117:warning: 'select' used by config symbol 'PMAC_APM_EMU' refers to undefined symbol 'SYS_SUPPORTS_APM_EMULATION' Signed-off-by: Kumar Gala --- arch/powerpc/Kconfig | 1 + drivers/macintosh/Kconfig | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) (limited to 'arch/powerpc') diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 56d3c0dcd2b..5eaeafd30bd 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -118,6 +118,7 @@ config GENERIC_BUG depends on BUG config SYS_SUPPORTS_APM_EMULATION + default y if PMAC_APM_EMU bool config DEFAULT_UIMAGE diff --git a/drivers/macintosh/Kconfig b/drivers/macintosh/Kconfig index 58926da0ae1..f44c94abd88 100644 --- a/drivers/macintosh/Kconfig +++ b/drivers/macintosh/Kconfig @@ -113,7 +113,6 @@ config PMAC_SMU config PMAC_APM_EMU tristate "APM emulation" - select SYS_SUPPORTS_APM_EMULATION select APM_EMULATION depends on ADB_PMU && PM -- cgit v1.2.3-70-g09d2