I was looking at the code for register_blkdev and unregister_blkdev. I found that no locking (spinlocks) are used to protect the blkdevs struture in these functions. I suspect we have not seen a problem till now since Either 1. register_blkdev is called from modules, and only module initialization is protected. 2. register_blkdev is called during init time for drivers in the kernel and I am not sure about whether calls to register_blkdev at this time are implicitly serialized, since only 1 CPU is active during initialization Anway, what I needed to know was if (1) and (2) are enough to ensure safety in register_blkdev and unregister_blkdev. May be I am missing something, there is already some lock which is held before these routines are invoked, I could not find any. Comments Thanks, Balbir Singh.