> > +static int __cpuinit
> > +time_cpu_notifier(struct notifier_block *nb, unsigned long action, void *hcpu)
> > {
> > - char *timename;
> > - char *gtod;
> > + unsigned cpu = (unsigned long) hcpu;
>
> Is this some kind of "endian magic" ? I mean getting high or low word of 64
> pointer to 32 variable ? Why cast just with (unsigned) doesn't work ?
This is just to avoid a warning from gcc that a pointer is converted
to a 32bit integer -- which is ok here since it uses a "void *" callback argument
to pass an integer.
Arguably there should be a standard macro for this construct, but there
isn't currently.
>
> > + if (action == CPU_ONLINE &&
> > + cpu_has(&cpu_data[cpu], X86_FEATURE_RDTSCP)) {
> > + unsigned p;
> > + p = smp_processor_id() | (cpu_to_node(smp_processor_id())<<12);
>
> Is this code runs under SMP ? I couldn't figure that out.
Yes it is. It handles additional CPUs.
-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]