þÿDe : Matthew Wilcox <willy@debian.org> Date : Mer 12 juin 2002 04:11:30 Europe/Paris À : "Michael S. Zick" <mszick@goquest.com> Cc : Randolph Chung <randolph@tausq.org>, parisc-linux@lists.parisc-linux.org Objet : Rép : [parisc-linux] 2.4.18-pa35 SMP process hangs on a J200 On Tue, Jun 11, 2002 at 01:39:38PM -0500, Michael S. Zick wrote: > using objdump -d on the kernel.o produced by my compiler > (a different version of GCC than used for pa-risc) I find that > for the "c" code sequence: > .... > int cpu = smp_processor_id() ; > > __save_flags(flags) ; > .... > generates assembly code which modifies the flags during the > initialization of "cpu" before the flags are actually saved. are you sure? every architecture (apart from sparc32) uses: #define smp_processor_id() (current->processor) admittedly on i386 (which is where you seem to be investigating), this expands to: get_current()->processor which expands to andl %%esp,%0 where 8191UL has previously been loaded into register %0. but i don't see how this can affect the interrupt flags. admittedly, i know very little about x86, but there are many other instances of code like this in the kernel. -- Revolutions do not require corporate support. _______________________________________________ parisc-linux mailing list parisc-linux@lists.parisc-linux.org http://lists.parisc-linux.org/mailman/listinfo/parisc-linux