diff -Nur linux-2.6.25.org/arch/ppc/kernel/pci.c linux-2.6.25/arch/ppc/kernel/pci.c
--- linux-2.6.25.org/arch/ppc/kernel/pci.c      2008-04-17 11:49:44.000000000 +0900
+++ linux-2.6.25/arch/ppc/kernel/pci.c  2008-05-02 22:10:01.000000000 +0900
@@ -709,7 +709,7 @@
        return start;
 }

-void __init pcibios_fixup_bus(struct pci_bus *bus)
+void __devinit pcibios_fixup_bus(struct pci_bus *bus)
 {
        struct pci_controller *hose = (struct pci_controller *) bus->sysdata;
        unsigned long io_offset;
@@ -770,7 +770,7 @@
                ppc_md.pcibios_fixup_bus(bus);
 }

-char __init *pcibios_setup(char *str)
+char __devinit *pcibios_setup(char *str)
 {
        return str;
 }
diff -Nur linux-2.6.25.org/arch/ppc/kernel/head.S linux-2.6.25/arch/ppc/kernel/head.S
--- linux-2.6.25.org/arch/ppc/kernel/head.S	2008-04-17 11:49:44.000000000 +0900
+++ linux-2.6.25/arch/ppc/kernel/head.S	2008-04-23 20:55:17.000000000 +0900
@@ -49,20 +49,17 @@
 	mtspr	SPRN_DBAT##n##L,RB;	\
 1:
 
-	.text
+	.section	.text.head, "ax"
 	.stabs	"arch/ppc/kernel/",N_SO,0,0,0f
 	.stabs	"head.S",N_SO,0,0,0f
 0:
-	.globl	_stext
-_stext:
+_ENTRY(_stext);
 
 /*
  * _start is defined this way because the XCOFF loader in the OpenFirmware
  * on the powermac expects the entry point to be a procedure descriptor.
  */
-	.text
-	.globl	_start
-_start:
+_ENTRY(_start);
 	/*
 	 * These are here for legacy reasons, the kernel used to
 	 * need to look like a coff function entry for the pmac
@@ -779,7 +776,8 @@
  * r3 = dest addr, r4 = source addr, r5 = copy limit, r6 = start offset
  * on exit, r3, r4, r5 are unchanged, r6 is updated to be >= r5.
  */
-copy_and_flush:
+_ENTRY(copy_and_flush)
+/* copy_and_flush: */
 	addi	r5,r5,-4
 	addi	r6,r6,-4
 4:	li	r0,L1_CACHE_BYTES/4
@@ -872,9 +870,9 @@
  * included in CONFIG_6xx
  */
 #if !defined(CONFIG_6xx)
-_GLOBAL(__save_cpu_setup)
+_ENTRY(__save_cpu_setup)
 	blr
-_GLOBAL(__restore_cpu_setup)
+_ENTRY(__restore_cpu_setup)
 	blr
 #endif /* !defined(CONFIG_6xx) */
 
@@ -995,7 +993,7 @@
 /*
  * Set up the segment registers for a new context.
  */
-_GLOBAL(set_context)
+_ENTRY(set_context)
 	mulli	r3,r3,897	/* multiply context by skew factor */
 	rlwinm	r3,r3,4,8,27	/* VSID = (context & 0xfffff) << 4 */
 	addis	r3,r3,0x6000	/* Set Ks, Ku bits */
diff -Nur linux-2.6.25.org/arch/ppc/kernel/vmlinux.lds.S linux-2.6.25/arch/ppc/kernel/vmlinux.lds.S
--- linux-2.6.25.org/arch/ppc/kernel/vmlinux.lds.S	2008-04-17 11:49:44.000000000 +0900
+++ linux-2.6.25/arch/ppc/kernel/vmlinux.lds.S	2008-04-23 00:41:17.000000000 +0900
@@ -31,6 +31,8 @@
   .plt : { *(.plt) }
   .text      :
   {
+    ALIGN_FUNCTION();
+    *(.text.head)
     _text = .;
     TEXT_TEXT
     SCHED_TEXT
diff -Nur linux-2.6.25.org/drivers/serial/8250_pci.c linux-2.6.25/drivers/serial/8250_pci.c
--- linux-2.6.25.org/drivers/serial/8250_pci.c	2008-04-17 11:49:44.000000000 +0900
+++ linux-2.6.25/drivers/serial/8250_pci.c	2008-04-20 22:06:40.000000000 +0900
@@ -775,7 +775,7 @@
  * This list is ordered alphabetically by vendor then device.
  * Specific entries must come before more generic entries.
  */
-static struct pci_serial_quirk pci_serial_quirks[] = {
+static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
 	/*
 	* ADDI-DATA GmbH communication cards <info@addi-data.com>
 	*/


