We just made bdevname() irq-safe. This patch makes cdevname() callable from interrupts as well. fs/char_dev.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff -puN fs/char_dev.c~cdevname-irq-safety-fix fs/char_dev.c --- 25/fs/char_dev.c~cdevname-irq-safety-fix 2003-03-25 18:45:13.000000000 -0800 +++ 25-akpm/fs/char_dev.c 2003-03-25 18:45:13.000000000 -0800 @@ -150,7 +150,7 @@ int register_chrdev_region(unsigned int i = major_to_index(major); - write_lock(&chrdevs_lock); + write_lock_irq(&chrdevs_lock); for (cp = &chrdevs[i]; *cp; cp = &(*cp)->next) if ((*cp)->major > major || ((*cp)->major == major && (*cp)->baseminor >= baseminor)) @@ -162,7 +162,7 @@ int register_chrdev_region(unsigned int cd->next = *cp; *cp = cd; } - write_unlock(&chrdevs_lock); + write_unlock_irq(&chrdevs_lock); return ret; } @@ -183,7 +183,7 @@ int unregister_chrdev_region(unsigned in i = major_to_index(major); - write_lock(&chrdevs_lock); + write_lock_irq(&chrdevs_lock); for (cp = &chrdevs[i]; *cp; cp = &(*cp)->next) if ((*cp)->major == major && (*cp)->baseminor == baseminor && @@ -196,7 +196,7 @@ int unregister_chrdev_region(unsigned in *cp = cd->next; kfree(cd); } - write_unlock(&chrdevs_lock); + write_unlock_irq(&chrdevs_lock); return ret; } _