Ok, I have got my reply in kernel-janitors. > What would list_del do? Since it does not check if entry is NULL. Please > enlighten! Basically I forgot to look at register_mtd_chip_driver. In this function, list_add is called, which in turn call __list_add. In this function, the drv->list will be initialised with drv->list->prev = chip_drvs_list, and drv->list->next = chip_drvs_list->next. So, the code is valid. Cheers, Eugene -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/