Messages in this thread | | | Date | Sun, 30 Mar 2008 16:08:43 -0500 | From | Jack Steiner <> | Subject | Re: [RFC 8/8] x86_64: Support for new UV apic |
| |
> > unsigned int get_apic_id(void) > > { > > - return (apic_read(APIC_ID) >> 24) & 0xFFu; > > + unsigned int id; > > + > > + preempt_disable(); > > + id = apic_read(APIC_ID); > > + if (uv_system_type >= UV_X2APIC) > > + id |= __get_cpu_var(x2apic_extra_bits); > > + else > > + id = (id >> 24) & 0xFFu;; > > + preempt_enable(); > > + return id; > > > > you can not shift id here. > > GET_APIC_ID will shift that again. > > you apic id will be 0 for all cpu >
I think this is fixed in the patch that I submitted on Friday. I had to rework the GET_APIC_ID() changes because of the unification of -32 & -64 apic code. I think the new code is much cleaner...
--- jack
| |