Index: arch/amd64/src/dummy.s
===================================================================
--- arch/amd64/src/dummy.s	(revision b9e97fb2772f7c034a63b8c019ca6396de53e556)
+++ arch/amd64/src/dummy.s	(revision 393f631224b4e8c0bae38dad34e9b569d175c0ee)
@@ -58,5 +58,4 @@
 .global nm_fault
 .global ss_fault
-.global tss_p
 .global interrupt_handlers
 .global memcpy
@@ -67,7 +66,5 @@
 gp_fault:
 nm_fault:
-ss_fault:
-tss_p:	
-	
+ss_fault:	
 eoi_function:
 syscall:	
Index: arch/amd64/src/pm.c
===================================================================
--- arch/amd64/src/pm.c	(revision b9e97fb2772f7c034a63b8c019ca6396de53e556)
+++ arch/amd64/src/pm.c	(revision 393f631224b4e8c0bae38dad34e9b569d175c0ee)
@@ -109,9 +109,10 @@
 };
 
-struct ptr_16_64 gdtr = {.limit = sizeof(gdtr), .base= (__u64) &gdtr };
+struct ptr_16_64 gdtr = {.limit = sizeof(gdtr), .base= (__u64)KA2PA(&gdt) };
 
 struct idescriptor idt[IDT_ITEMS];
 
 static struct tss tss;
+struct tss *tss_p = NULL;
 
 /* TODO: Does not compile correctly if it does not exist ???? */
@@ -217,5 +218,5 @@
 {
 	struct descriptor *gdt_p = (struct descriptor *) PA2KA(gdtr.base);
-	struct tss_descriptor *tss_d;
+	struct tss_descriptor *tss_desc;
 
 	/*
@@ -240,8 +241,8 @@
 	tss_initialize(tss_p);
 
-	tss_d = (struct tss_descriptor *) &gdt_p[TSS_DES];
-	tss_d[TSS_DES].present = 1;
-	tss_d[TSS_DES].type = AR_TSS;
-	tss_d[TSS_DES].dpl = PL_KERNEL;
+	tss_desc = (struct tss_descriptor *) (&gdt_p[TSS_DES]);
+	tss_desc->present = 1;
+	tss_desc->type = AR_TSS;
+	tss_desc->dpl = PL_KERNEL;
 	
 	gdt_tss_setbase(&gdt_p[TSS_DES], (__address) tss_p);
