int chrdev_open(struct inode * inode, struct file * filp)
Funkcja chrdev_open ustala właściwe dla konkretnego typu urządzenia procedury dostępu korzystając z funkcji get_chrfops. Wszystkie niezbędne do tego dane znajdują się w tablicy chrdevs. Jeśli w tej tablicy zostanie znalezione wystąpienie odpowiadające właściwemu numerowi głownemu, następuje zwiększenie liczby odwołań do modułu dostarczającego procedury, jeśli natomiast nie zostanie znalezione właściwe wystąpienie, następuje próba załadowania modułu char-major-nr, gdzie nr oznacza numer główny. Po tej operacji znów badamy tablicę chrdevs.
Jeśli w znalezionej strukturze struct file_operations pole open jest ustawione na NULL, to funkcja chrdev_open kończy się sukcesem (jeśli nie ustawiono żadnej procedury do otwierania urządzenia, to znaczy że żadna nie jest potrzebna), w przeciwnym przypadku wywoływana jest właściwa funkcja (filp->f_op->open).