Index: kernel/arch/ia64/src/smp/smp.c
===================================================================
--- kernel/arch/ia64/src/smp/smp.c	(revision 0e56eb1a15c7e636f2beb1a2d7ca2c425fec275f)
+++ kernel/arch/ia64/src/smp/smp.c	(revision 06b2b7feafe67264246ca70e9c1b4f4fb6eefb3c)
@@ -74,5 +74,5 @@
 static void ipi_broadcast_arch_all(int ipi)
 {
-	int id,eid;
+	int id, eid;
 	int myid, myeid;
 	
@@ -88,6 +88,6 @@
 void ipi_broadcast_arch(int ipi )
 {
-	int id,eid;
-	int myid,myeid;
+	int id, eid;
+	int myid, myeid;
 	
 	myid = ia64_get_cpu_id();
@@ -107,5 +107,5 @@
 	
 	/*
-	 * If we have not system prepared by hello, we are not able to start
+	 * If we have not got system prepared by hello, we are not able to start
 	 * AP's. This means we are running on a simulator.
 	 */
@@ -130,5 +130,5 @@
 void kmp(void *arg __attribute__((unused)))
 {
-	int id,eid;
+	int id, eid;
 	int myid, myeid;
 	
@@ -166,17 +166,4 @@
 #endif
 
-
-#ifndef CONFIG_SMP
-
-/* This is just a hack for linking with assembler - may be removed in future. */
-void main_ap(void);
-void main_ap(void)
-{
-	while(1)
-		;
-}
-
-#endif
-
 /** @}
  */
Index: kernel/arch/ia64/src/start.S
===================================================================
--- kernel/arch/ia64/src/start.S	(revision 0e56eb1a15c7e636f2beb1a2d7ca2c425fec275f)
+++ kernel/arch/ia64/src/start.S	(revision 06b2b7feafe67264246ca70e9c1b4f4fb6eefb3c)
@@ -50,4 +50,5 @@
 	.auto
 
+#ifdef CONFIG_SMP
 	# Identify self(CPU) in OS structures by ID / EID
 
@@ -60,4 +61,5 @@
 	add r8 = r8, r9
 	st1 [r8] = r10
+#endif
 
 	mov psr.l = r0
@@ -80,8 +82,8 @@
 	mov cr.ifa = r8
 
-	mov r11 = cr.itir ;;
-	movl r10 = (KERNEL_PAGE_WIDTH << PS_SHIFT);;
-	or r10 = r10, r11 ;;
-	mov cr.itir = r10;;
+	mov r11 = cr.itir
+	movl r10 = (KERNEL_PAGE_WIDTH << PS_SHIFT)
+	or r10 = r10, r11
+	mov cr.itir = r10
 
 	movl r10 = (KERNEL_TRANSLATION_I)
@@ -96,10 +98,10 @@
 	itr.d dtr[r7] = r10
 
-	mov r11 = cr.itir ;;
-	movl r10 = ~0xfc;;
-	and r10 = r10, r11 ;;
-	movl r11 = (IO_PAGE_WIDTH << PS_SHIFT);;
-	or r10 = r10, r11 ;;
-	mov cr.itir = r10;;
+	mov r11 = cr.itir
+	movl r10 = ~0xfc
+	and r10 = r10, r11
+	movl r11 = (IO_PAGE_WIDTH << PS_SHIFT)
+	or r10 = r10, r11
+	mov cr.itir = r10
 
 	movl r7 = 2
@@ -111,10 +113,10 @@
 	# Setup mapping for fimware arrea (also SAPIC)
 
-	mov r11 = cr.itir ;;
-	movl r10 = ~0xfc;;
-	and r10 = r10, r11 ;;
-	movl r11 = (FW_PAGE_WIDTH << PS_SHIFT);;
-	or r10 = r10, r11 ;;
-	mov cr.itir = r10;;
+	mov r11 = cr.itir
+	movl r10 = ~0xfc
+	and r10 = r10, r11
+	movl r11 = (FW_PAGE_WIDTH << PS_SHIFT)
+	or r10 = r10, r11
+	mov cr.itir = r10
 
 	movl r7 = 3
@@ -143,5 +145,5 @@
 	 * fill the upper half word of PSR.
 	 */
-	rfi;;
+	rfi ;;
 
 
@@ -156,8 +158,12 @@
 	bsw.1
 
+#ifdef CONFIG_SMP
 	# Am I BSP or AP?
-	movl r20 = bsp_started;;
-	ld8 r20 = [r20];;
-	cmp.eq p3, p2 = r20, r0;;
+	movl r20 = bsp_started ;;
+	ld8 r20 = [r20] ;;
+	cmp.eq p3, p2 = r20, r0 ;;
+#else
+	cmp.eq p3, p2 = r0, r0 ;;	/* you are BSP */
+#endif	/* CONFIG_SMP */
 	
 	# Initialize register stack
@@ -196,4 +202,5 @@
 	srlz.d ;;
 
+#ifdef CONFIG_SMP
 (p2)	movl r18 = main_ap ;;
 (p2)   	mov b1 = r18 ;;
@@ -201,7 +208,8 @@
 
 	# Mark that BSP is on
-	mov r20=1;;
-	movl r21=bsp_started;;
-	st8 [r21]=r20;;
+	mov r20 = 1 ;;
+	movl r21 = bsp_started ;;
+	st8 [r21] = r20 ;;
+#endif
 
 	br.call.sptk.many b0 = arch_pre_main
@@ -213,6 +221,8 @@
 0:
 	br 0b
+
+#ifdef CONFIG_SMP
+
 .align 4096
-
 kernel_image_ap_start:
 	.auto
@@ -230,4 +240,5 @@
 	
 	# Wait for wakeup synchro signal (#3 in cpu_by_id_eid_list)
+	
 kernel_image_ap_start_loop:
 	movl r11 = kernel_image_ap_start_loop
@@ -235,7 +246,7 @@
    	mov b1 = r11 
 
-	ld1 r20 = [r8];;
-	movl r21 = 3;;
-	cmp.eq p2, p3 = r20, r21;;
+	ld1 r20 = [r8] ;;
+	movl r21 = 3 ;;
+	cmp.eq p2, p3 = r20, r21 ;;
 (p3)	br.call.sptk.many b0 = b1
 
@@ -245,5 +256,4 @@
 	br.call.sptk.many b0 = b1
 
-
 .align 16
 .global bsp_started
@@ -256,2 +266,3 @@
 .space 65536
 
+#endif	/* CONFIG_SMP */
