User: Password:
Subscribe / Log in / New account

3.0 and RCU: what went wrong

3.0 and RCU: what went wrong

Posted Jul 30, 2011 3:45 UTC (Sat) by pr1268 (subscriber, #24648)
Parent article: 3.0 and RCU: what went wrong

I'm curious, in static void rcu_read_unlock_special(struct task_struct *t), on line 5 unsigned long flags is declared but uninitialized. Later, on line 11, it is passed-by-value to another function. Is there some missing code not shown that initializes flags?

Thank you for the neat article—I openly admit that a lot of it is hard for me to follow, but then I'm not as fluent in low-level kernel internals as Paul is. (And, I'm incredibly happy to know that people as knowledgeable as Paul are running the Linux Kernel Show™. ;-)

(Log in to post comments)

3.0 and RCU: what went wrong

Posted Jul 30, 2011 5:19 UTC (Sat) by cladisch (✭ supporter ✭, #50193) [Link]

local_irq_save() is a macro which disables interrupts on the local CPU and saves the old value of the interrupt flag into its parameter.

Not using a pointer is a little bit more efficient when accessing it from inline assembler.

Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds