Messages in this thread |  | | From | alad@hss ... | | Date | Fri, 6 Apr 2001 12:53:10 +0530 | | Subject | __switch_to macro |
| |
Hi, The note above __switch_to macro in i386/kernel/process.c says that we no more use hardware context switching as some problems in recovering from saved state that is no longer valid. (I am peeking into 2.2 kernel). Now I have following questions
1) What exactly is meant by ' stale segment register values' in the note. 2) In the above macro, I think we recover gracefully from error condition while recovering fs and gs segment registers . The loadsegment(fs,next->tss.fs) and loadsegment(gs,next->tss.gs) does it. I am not able to understand loadsegment macro. The macro is as under
/** Load a segment. Fall back on loading a zero segment if something goes wrong **/ #define loadsegment(seg,value) \ asm volatile("\n" \ "1:\t" \ "movl %0,%%" #seg "\n" \ "2:\n" \ "3:\t" \ "pushl $0\n\t" \ "jmp 2b\n" \ ".previous\n" \ ".section __ex_table,\"a\"\n\t \ "/align 4\n\t" \ ".long 1b,3b\n" \ ".previous" \ : :"m" (*(unsigned int *)&(value)))
I also want to know what is 'something' in the comment above the macro
Thanks in advance Amol
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |