Module initialization What about calls like register_chrdev()? It makes things visible to the kernel It can fail A proper solution will require a two-phase API: reserve_chrdev(); allocate_chrdev(); Similar interfaces would be required for many functions Wide-ranging changes Currently no proposal out there A better technique in general